pivotkit-element 0.5.0 → 0.6.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/README.md +1 -0
  3. package/dist/chunks/{chunk-SB3L4HHW.js → chunk-7V4PAOK7.js} +1 -1
  4. package/dist/chunks/chunk-CHSIHYYE.js +2 -0
  5. package/dist/chunks/chunk-CXSW4YRL.js +13 -0
  6. package/dist/chunks/chunk-HFUBAP3D.js +1 -0
  7. package/dist/chunks/chunk-KO3EKDH5.js +1 -0
  8. package/dist/chunks/chunk-NXZQI5LC.js +6 -0
  9. package/dist/chunks/{chunk-XETFD6GR.js → chunk-OHKPNELV.js} +1 -1
  10. package/dist/chunks/chunk-R6GXMVRO.js +1 -0
  11. package/dist/chunks/chunk-YMLEL3SK.js +8 -0
  12. package/dist/chunks/export-O6XO33DV.js +1 -0
  13. package/dist/chunks/import-ui-SZTWEYHK.js +1 -0
  14. package/dist/chunks/{link-45LOEA7H.js → link-7K6I4SJS.js} +1 -1
  15. package/dist/chunks/menu-texts-de-CRJ5OIVT.js +1 -0
  16. package/dist/chunks/menus-F36OYGXV.js +2 -0
  17. package/dist/chunks/{report-run-BZBFOMPF-4M6ACMUF.js → report-run-BZBFOMPF-T26ENZEM.js} +7 -7
  18. package/dist/element.js +1 -1
  19. package/dist/import-worker.js +1 -1
  20. package/dist/index.js +1 -1
  21. package/package.json +4 -4
  22. package/types/element.d.ts +23 -2
  23. package/types/jsx.d.ts +1 -1
  24. package/dist/chunks/chunk-4PHDW2LB.js +0 -1
  25. package/dist/chunks/chunk-65O4Z5GI.js +0 -1
  26. package/dist/chunks/chunk-CCL5TDLA.js +0 -6
  27. package/dist/chunks/chunk-PJA6QZ4Y.js +0 -2
  28. package/dist/chunks/chunk-QOKB5RDG.js +0 -6
  29. package/dist/chunks/chunk-YUY4D5MF.js +0 -8
  30. package/dist/chunks/export-YHS47KGK.js +0 -1
  31. package/dist/chunks/import-ui-7XVUBL2H.js +0 -1
  32. package/dist/chunks/menu-texts-de-74DWTJDI.js +0 -1
  33. package/dist/chunks/menus-XBN5D32E.js +0 -2
package/CHANGELOG.md CHANGED
@@ -6,11 +6,42 @@ All notable changes to `pivotkit-element` are documented in this file. The forma
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.6.0] - 2026-11-14
10
+
11
+ ### Upgrading from 0.5
12
+
13
+ What a page checks; the [upgrade page](https://pivotkit.eize.dev/getting-started/upgrading/#from-0-5) has the details.
14
+
15
+ - Export → **CSV file (.csv)** is called **Table as CSV (.csv)**; the `pivot-export` kind `"csv"`
16
+ stays. Tests or screenshots that look for the old text take the new one.
17
+ - `export-data` (Export → Source data) is new and off by default.
18
+
19
+ ### Added
20
+
21
+ - `pivot-template-save` and `pivot-template-publish` carry `source` in `detail`: the data shown, with
22
+ a loaded workbook's sheet in `params.sheet`; Publish of a view file or of a view of the browser
23
+ store made for other data gives that data ([#252](https://github.com/eizedev/pivotkit/issues/252)).
24
+ - `export-data` (boolean attribute) and the `exportData` property: pivotkit-react's Export → Source
25
+ data, every row of the data as a CSV or JSON file; `pivot-export` kinds `"data-csv"`, `"data-json"`.
26
+ Off by default.
27
+
28
+ ### Changed
29
+
30
+ - Export → **CSV file (.csv)** is called **Table as CSV (.csv)**, as in pivotkit-react.
31
+ - Bundles pivotkit-core 0.6.0, pivotkit-react 0.6.0 and pivotkit-report 0.2.0.
32
+
33
+ ### Fixed
34
+
35
+ - The element bundles pivotkit-react's fix of views made on a workbook's sheet other than the first:
36
+ they open on that sheet again after the workbook is loaded anew ([#252](https://github.com/eizedev/pivotkit/issues/252)).
37
+ - The element bundles pivotkit-react's fix of a rule on the name whose text is emptied: the rule
38
+ stops filtering ([#159](https://github.com/eizedev/pivotkit/issues/159)).
39
+
9
40
  ## [0.5.0] - 2026-11-13
10
41
 
11
42
  ### Upgrading from 0.4
12
43
 
13
- What a host checks; the [upgrade page](https://pivotkit.eize.dev/getting-started/upgrading/) has the details.
44
+ What a host checks; the [upgrade page](https://pivotkit.eize.dev/getting-started/upgrading/#from-0-4) has the details.
14
45
 
15
46
  - **Breaking:** views, view files and links are written in format version 2; pivotkit 0.4 refuses
16
47
  them as newer. Version 1 loads with the same result.
@@ -317,7 +348,8 @@ First release.
317
348
  thousands separators, CSV percentages and calculations as the table shows them, heatmaps without
318
349
  grey empty cells.
319
350
 
320
- [Unreleased]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.5.0...HEAD
351
+ [Unreleased]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.6.0...HEAD
352
+ [0.6.0]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.5.0...pivotkit-element@0.6.0
321
353
  [0.5.0]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.4.0...pivotkit-element@0.5.0
322
354
  [0.4.0]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.3.0...pivotkit-element@0.4.0
323
355
  [0.3.0]: https://github.com/eizedev/pivotkit/compare/pivotkit-element@0.2.0...pivotkit-element@0.3.0
package/README.md CHANGED
@@ -48,6 +48,7 @@ report.addEventListener("pivot-view-change", (e) => localStorage.setItem("view",
48
48
  | Topic | Page |
49
49
  | --- | --- |
50
50
  | Getting started: install, first report, saving views on a server | [Getting started with the web component](https://pivotkit.eize.dev/getting-started/web-component/) |
51
+ | Loading files and the source data | [Load your own data](https://pivotkit.eize.dev/use/load-data/), [the table or the rows](https://pivotkit.eize.dev/use/export/#the-table-or-the-rows-behind-it) |
51
52
  | PHP and server-rendered pages | [PHP and other server-rendered pages](https://pivotkit.eize.dev/getting-started/web-component/#php-and-other-server-rendered-pages) |
52
53
  | Angular | [Angular](https://pivotkit.eize.dev/getting-started/web-component/#angular), [Angular and zone.js](https://pivotkit.eize.dev/reference/element/#angular-and-zonejs) |
53
54
  | A page with React of its own | [React on the page](https://pivotkit.eize.dev/reference/element/#react-on-the-page) |
@@ -1 +1 @@
1
- import{a as X,d as ce,j as Y,n as fe,r as de,y as f,z as P}from"./chunk-YUY4D5MF.js";import{d as Se,g as Oe}from"./chunk-65O4Z5GI.js";import{e as we}from"./chunk-XETFD6GR.js";import{b as be,c as ke,d as Ce,h as Te}from"./chunk-PJA6QZ4Y.js";import{C as ge,M as ye,c as K,da as ve,h as pe,k as j,r as Q}from"./chunk-4PHDW2LB.js";import{d as me,h as he}from"./chunk-XR4CMFGN.js";import{c as x}from"./chunk-DCANE7XH.js";var D=x(X(),1),p=x(X(),1),qe=x(X(),1);var _=Object.freeze({auto:{chart:{type:"auto",stacked:!1,horizontal:!1},icon:"sparkle",axis:!0},bar:{chart:{type:"bar",stacked:!1,horizontal:!1},icon:"chart",axis:!0},stacked:{chart:{type:"bar",stacked:!0,horizontal:!1},icon:"stacked",axis:!0},horizontal:{chart:{type:"bar",stacked:!1,horizontal:!0},icon:"horizontal",axis:!0},line:{chart:{type:"line",stacked:!1,horizontal:!1},icon:"line",axis:!0},area:{chart:{type:"area",stacked:!1,horizontal:!1},icon:"area",axis:!0},pie:{chart:{type:"pie",stacked:!1,horizontal:!1},icon:"pie",axis:!1},donut:{chart:{type:"donut",stacked:!1,horizontal:!1},icon:"donut",axis:!1},heatmap:{chart:{type:"heatmap",stacked:!1,horizontal:!1},icon:"heatmap",axis:!1}}),Ye=Object.freeze(["pie","donut"]),Le=Object.freeze(Object.keys(_));function Ke(e){let t=Le.find(n=>{let r=_[n].chart;return r.type===e.type&&r.stacked===!!e.stacked&&r.horizontal===!!e.horizontal});return t||(e.type==="bar"?e.horizontal?"horizontal":"stacked":Le.find(n=>_[n].chart.type===e.type)??"bar")}function Qe(e,t){let n=Se(e,t);return{name:Ke(n.chart),...n}}var et=8,Ht=50,Gt=Object.freeze(["filters","cols","rows","values"]),O=e=>JSON.parse(JSON.stringify(e)),z=Object.freeze({"=":"!=",between:"notBetween",equals:"notEquals",contains:"notContains",beginsWith:"notBeginsWith",endsWith:"notEndsWith"}),xt=Object.freeze({text:Object.freeze(["equals","notEquals","contains","notContains","beginsWith","notBeginsWith","endsWith","notEndsWith"]),compare:Object.freeze(["=","!=",">",">=","<","<=","between","notBetween"])}),ie=e=>e.not&&typeof e.op=="string"&&Object.hasOwn(z,e.op)?z[e.op]:String(e.op),tt=e=>!!e.not&&!(typeof e.op=="string"&&Object.hasOwn(z,e.op));function Xt(e){let t=Object.keys(z).find(n=>z[n]===e);return t?{op:t,not:!0}:{op:e,not:!1}}var nt=(e,t)=>({field:e,type:"in",items:t.filter(n=>n!==null),not:!0,blanks:t.includes(null)?"exclude":"include"}),se=e=>nt(e,[]),rt=e=>e.type==="in",ot=e=>rt(e)&&e.not===!0&&e.items.length===0&&e.blanks==="include",m=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.toLowerCase()===t.toLowerCase();function Yt(e,t){let n=Q(t);return n?e.filter(r=>Q(r.label).includes(n)):e}var ne=(e,t)=>Number.isInteger(e)?Math.max(0,Math.min(e,t)):t;function U(e){let t=new Set,n=[];for(let r of e.filters){let i=r.field.toLowerCase();!t.has(i)&&!e.rows.some(o=>m(o,r.field))&&!e.cols.some(o=>m(o,r.field))&&(t.add(i),n.push(r.field))}return n}function Pe(e,t){return e.rows.some(n=>m(n,t))?"rows":e.cols.some(n=>m(n,t))?"cols":null}function it(e,t){return typeof t=="string"&&K(e??"string").includes(t)?t:e==="number"&&K(e).includes("sum")?"sum":"count"}function q(e){let t=new Set([...e.rows,...e.cols,...e.values.map(n=>n.field),...e.filters.map(n=>n.field)].filter(Boolean).map(n=>n.toLowerCase()));return e.derived=e.derived.filter(n=>t.has(n.name.toLowerCase())),e.sort=e.sort.filter(n=>t.has(n.field.toLowerCase())),e}function B(e,t){e.rows=e.rows.filter(n=>!m(n,t)),e.cols=e.cols.filter(n=>!m(n,t))}function $(e,t){for(let n of["rows","cols"])JSON.stringify(t[n])!==JSON.stringify(e[n])&&(e.collapsed[n]=[])}function Kt(e,t){let n=r=>t&&Number.isInteger(t[r])&&t[r]>0?t[r]:me[r];for(let[r,i]of[["rows","axisFields"],["cols","axisFields"],["values","values"]])if((e&&Array.isArray(e[r])?e[r]:[]).length>n(i))return{zone:r,max:n(i)};return null}function Fe(e,t,n,r={}){if(r.dateUnit&&n!=="values"){let o=r.groupName??`${t} (${r.dateUnit})`,s=Fe(st(e,o),t,n,{...r,dateUnit:null,defaults:void 0});return ut(s,t,r.dateUnit,{name:o}).view}let i=O(e);if(n==="rows"||n==="cols"){B(i,t),i[n].splice(ne(r.index,i[n].length),0,t);let o=r.defaults?.order;Array.isArray(o)&&o.length>0&&!i.sort.some(s=>m(s.field,t))&&i.sort.push({field:t,by:"custom",order:"asc",items:[...o]})}else if(n==="values"){let o=r.defaults??{},s=typeof o.format=="string"&&ye(o.format)?o.format:null;i.values.splice(ne(r.index,i.values.length),0,{field:t,agg:it(r.type,o.agg),format:s,label:null,showAs:null,conditional:null})}else n==="filters"&&(B(i,t),i.filters.some(o=>m(o.field,t))||i.filters.push(se(t)));return $(i,e),q(i)}function Qt(e,t,n){let r=O(e);if(t==="values")r.values.splice(n,1);else{let o=(t==="filters"?U(e):e[t])[n];if(o===void 0)return e;B(r,o),r.filters=r.filters.filter(s=>!m(s.field,o))}return $(r,e),q(r)}function st(e,t){if(!Pe(e,t)&&!U(e).some(r=>m(r,t)))return e;let n=O(e);return B(n,t),n.filters=n.filters.filter(r=>!m(r.field,t)),$(n,e),q(n)}function at(e,t,n){return t==="values"?e.values[n]?e.values[n].field:void 0:(t==="filters"?U(e):e[t])[n]}function en(e,t,n,r,i,o={}){if(t===r)return lt(e,t,n,i);let s=at(e,t,n);if(s==null)return e;let a=O(e);return t==="values"?a.values.splice(n,1):r!=="filters"&&(B(a,s),r==="values"&&(a.filters=a.filters.filter(l=>!m(l.field,s)))),a=Fe(a,s,r,{...o,index:i}),$(a,e),q(a)}function lt(e,t,n,r){let i=t==="filters"?null:t==="values"?e.values:e[t];if(!i||n===r||n<0||n>=i.length)return e;let o=O(e),s=o[t],[a]=s.splice(n,1);return s.splice(ne(r,s.length),0,a),$(o,e),o}function tn(e,t){let n=e.column(t);if(!n||n.type!=="number")return null;let r=1/0,i=-1/0;for(let o of n.dict)typeof o=="number"&&Number.isFinite(o)&&(r=Math.min(r,o),i=Math.max(i,o));return r<=i?{min:r,max:i}:null}function nn(e,t){let n=e.column(t);if(!n||n.type!=="date")return null;let r=1/0,i=-1/0;for(let o of n.dict)typeof o=="number"&&(r=Math.min(r,o),i=Math.max(i,o));return r<=i?{min:r,max:i}:null}function ut(e,t,n,r={}){let i=e.derived.find(c=>m(c.name,t)),o=i?i.field:t,s=Pe(e,t),a=O(e),l=o;if(n){l=r.name??`${o} (${n})`;let c=a.derived.find(g=>m(g.name,l)),u=r.origin??(i?.by==="bin"?i.origin??0:0),d=n==="bin"?{name:l,field:o,by:n,size:r.size,origin:u}:{name:l,field:o,by:n};c?Object.assign(c,d):a.derived.push(d)}if(s){let c=s==="rows"?"cols":"rows";if(!m(l,t)&&a[c].some(u=>m(u,l)))a[s]=a[s].filter(u=>!m(u,t));else{let u=new Set;a[s]=a[s].map(d=>m(d,t)?l:d).filter(d=>!u.has(d.toLowerCase())&&u.add(d.toLowerCase()))}}if(!m(l,t)){let c=!s&&U(e).some(u=>m(u,t));a.filters=a.filters.filter(u=>!m(u.field,t)),c&&a.filters.push(se(l))}return a.sort=a.sort.map(c=>m(c.field,t)?{...c,field:l}:c),$(a,e),{view:q(a),field:l}}function ct(e,t){return e.derived.find(n=>m(n.name,t))??null}function ft(e,t){let n=ct(e,t);return n?n.field:t}function rn(e,t,n){let r=O(e);return r.sort=r.sort.filter(i=>!m(i.field,t)),n&&r.sort.push({field:t,...n}),r}function on(e,t){let r=[...e.rows,...e.cols].filter(o=>!e.derived.some(s=>m(s.name,o))&&!e.sort.some(s=>m(s.field,o))).map(o=>({field:o,order:t(o)})).filter(({order:o})=>Array.isArray(o)&&o.length>0);if(!r.length)return e;let i=O(e);for(let{field:o,order:s}of r)i.sort.push({field:o,by:"custom",order:"asc",items:[...s]});return i}function Me(e,t){return e.sort.find(n=>m(n.field,t))??null}function dt(e,t){return e.by==="label"&&e.order==="asc"&&!t?null:e}function sn(e,t,n){if(t.kind==="corner")return t.field&&e.rows.some(i=>m(i,t.field))?{field:t.field}:null;let r=t.kind==="colHeader"&&t.valueIndex!==void 0&&!t.colPath?.length?e.values[t.valueIndex]:void 0;return!r||!e.rows.length||!mt(r,r.field?n(r.field)??"string":"number")?null:{field:e.rows[e.rows.length-1],ref:{field:r.field??null,agg:r.agg}}}function an(e,t){let n=Me(e,t.field),r=i=>i==="desc"?"descending":"ascending";return t.ref?n?.by==="value"&&_e(n.value,t.ref)?{order:r(n.order),chosen:!0}:{order:null,chosen:!1}:n?{order:n.by==="label"?r(n.order):n.by==="custom"?"other":null,chosen:n.by==="label"}:{order:"ascending",chosen:!1}}function ln(e,t,n){let r=Me(e,t.field);if(t.ref){let o=r?.by==="value"&&_e(r.value,t.ref);return o&&r.order==="asc"?null:{by:"value",order:o?"asc":"desc",value:o?r.value:t.ref}}let i=!r||r.by==="label"&&r.order==="asc";return dt({by:"label",order:i?"desc":"asc"},n)}function ae(e,t,n){return e.filters.filter(r=>m(r.field,t)&&(!n||n.includes(r.type)))}function un(e,t,n){let r=n;for(let i of ae(e,t,["in"])){let o=new Set(i.items.map(a=>JSON.stringify(a))),s=i.blanks!=="exclude";r=r.filter(a=>a===null?s:i.blanks!=="only"&&o.has(JSON.stringify(a))!==i.not)}return r}function mt(e,t){return e.agg!=="listUnique"&&!(["first","last"].includes(e.agg)&&t!=="number")&&!(t==="date"&&["average","median","min","max"].includes(e.agg))}function _e(e,t){return!!(e&&t)&&e.agg===t.agg&&(e.field===null||t.field===null?e.field===t.field:m(e.field,t.field))}function ht(e,t){return ae(e,t).some(n=>!ot(n))}function cn(e,t,n){let r=O(e),i=JSON.stringify(n),o=r.collapsed[t],s=o.findIndex(a=>JSON.stringify(a)===i);return s===-1?o.push(n):o.splice(s,1),r}function fn(e,t){let n=new Set(e.collapsed.rows.map(a=>JSON.stringify(a))),r=t.filter(a=>n.has(JSON.stringify(a))).length,i=e.rows.length<2?0:t.length-r,o=e.collapsed.rows.length>0,s=i>0;return{canExpand:o,canCollapse:s,collapsed:e.collapsed.rows.length,open:i,why:{expand:o?null:"expandNothing",collapse:s?null:e.rows.length<2?"collapseNeedsRows":"collapseAllDone"}}}function dn(e,t,n){let r=O(e);return r.collapsed[t]=n||[],r}function mn(e,t,n){let r=O(e);return r.totals[t]=!!n,r}function hn(e,t){let n=O(e);return n.display=t,n}function pn(e,t){let n=O(e);return n.chart={...n.chart,..._[t].chart},n.display="chart",n}function gn(e,t){let n=O(e);return n.chart={...n.chart,...t},n}function yn(e){return e.rows.length===0&&e.cols.length===0&&e.values.length===0}var J=(e,t,n)=>tt(e)?f(n.notRule,{rule:t}):t;function pt(e,t){if(e.label)return e.label;let n=t.core,r;if(!e.field)r=n.countRows;else{let o=Object.hasOwn(n.aggregators,e.agg)?n.aggregators[e.agg]:e.agg;r=f(n.valueName,{agg:o,field:j(e.field,n)})}if(!e.showAs||!n.showAs||!n.showAsName)return r;let i=Object.hasOwn(n.showAs,e.showAs.type)?n.showAs[e.showAs.type]:e.showAs.type;return f(n.showAsName,{showAs:i,value:e.field&&e.agg==="sum"?j(e.field,n):r})}function ze(e,t,n){let r=t?.field??null,i=s=>r===null||s.field===null||s.field===void 0?(s.field??null)===r:s.field.toLowerCase()===r.toLowerCase(),o=t?(e.values??[]).find(s=>s.agg===t.agg&&i(s)):void 0;return!o&&r===null?n.countOfRows:pt({...o??t,showAs:null},n)}function wn(e,t,n){let r=t.order==="desc";return t.by==="value"?f(r?n.sortValueDesc:n.sortValueAsc,{value:ze(e,t.value,n)}):t.by==="custom"?r?n.sortCustomDesc:n.sortCustom:r?n.sortLabelDesc:n.sortLabelAsc}var H=Object.freeze({"=":"=","!=":"\u2260",">":">",">=":"\u2265","<":"<","<=":"\u2264"});function Sn(e,t,n,r){let i=a=>typeof a=="number"?a.toLocaleString(r,{maximumFractionDigits:6}):"",o=ze(e,t.by??(e.values?.[0]?{field:e.values[0].field??null,agg:e.values[0].agg}:null),n),s=ie(t);if(s==="between"||s==="notBetween"){let[a,l]=typeof t.value2=="number"&&t.value2<t.value?[t.value2,t.value]:[t.value,t.value2];return f(n.valueConditions[s],{value:o,from:i(a),to:i(l)})}return J(t,f(n.valueConditions.compare,{value:o,op:Object.hasOwn(H,s)?H[s]:s,number:i(t.value)}),n)}var Be=(e,t)=>new Date(`${e}T00:00Z`).toLocaleDateString(t,{dateStyle:"medium",timeZone:"UTC"}),V=e=>new Date(e).toISOString().slice(0,10),Ee=(e,t=1)=>V(Date.parse(`${e}T00:00Z`)+t*864e5);function gt(e,t,n,r,i={}){let o=Ue(e,t,n,r,i);return o&&o.from!==null?{from:o.from,to:o.to}:null}var Ue=(e,t,n,r,i={})=>ge(e.unit,e.count??1,{timeZone:t,now:n,anchor:e.anchor,latest:r??void 0,first:i.first??void 0,direction:e.direction,calendar:e.calendar,includeCurrent:e.includeCurrent,weekStart:i.weekStart}),yt=e=>["last","this"].includes(e.direction??"last")&&e.calendar!==!1&&(e.anchor===void 0||e.anchor==="today"||e.anchor==="latest")&&["year","quarter","month","week","day"].includes(e.unit);function I(e,t,n){let o=t==="year"?l=>l.slice(0,4):t==="quarter"?l=>`Q${Math.floor((Number(l.slice(5,7))-1)/3)+1} ${l.slice(0,4)}`:t==="month"?l=>new Date(`${l.slice(0,10)}T00:00Z`).toLocaleDateString(n,{month:"short",year:"numeric",timeZone:"UTC"}):l=>Be(l.slice(0,10),n),[s,a]=[o(e.from),o(e.to)];return s===a?s:`${s}\u2013${a}`}function vt(e,t,n,r){let i=t==="quarter"?"month":t==="week"?"day":t;e={from:e.from.slice(0,10),to:e.to.slice(0,10)};let[o,s]=[wt(V(n.min),i),St(V(n.max),i)];if(o<=e.from&&s>=e.to)return null;let a=e.from>o?e.from:o,l=e.to<s?e.to:s;if(a>l)return{none:!0};let c=[],u=0,d=(g,y,h)=>{let v=[],[k,A]=[Number(g.slice(0,4)),Number(y.slice(0,4))];for(let b=k;b<=A;b++)b!==h&&v.push(b);if(v.length&&(c.push(v.length===1?String(v[0]):`${v[0]}\u2013${v[v.length-1]}`),u+=v.length),k<=h&&h<=A){let b=`${String(h).padStart(4,"0")}-01-01`,R=`${String(h).padStart(4,"0")}-12-31`,T={from:g>b?g:b,to:y<R?y:R};c.push(I(T,t,r)),u+=I({from:T.from,to:T.from},t,r)===I({from:T.to,to:T.to},t,r)?1:2}};return e.from<o&&d(e.from,Ee(o,-1),Number(o.slice(0,4))),e.to>s&&d(Ee(s),e.to,Number(s.slice(0,4))),{none:!1,data:I({from:a,to:l},t,r),missing:c,count:u}}var wt=(e,t)=>t==="year"?`${e.slice(0,4)}-01-01`:t==="month"?`${e.slice(0,7)}-01`:e;function St(e,t){if(t==="day")return e;let[n,r]=[Number(e.slice(0,4)),Number(e.slice(5,7))];return V(t==="year"?Date.UTC(n,11,31):Date.UTC(n,r,0))}function Ot(e,t,n,r,i,o,s){if(!yt(e))return bt(e,t,n,r,i,o,s);let a=t.relativeMore,l=e.count??1,c=l===1?e.unit:`${e.unit}s`,u=e.direction==="this"?a.this[e.unit]??e.unit:Object.hasOwn(t.relative,c)?f(t.relative[c],{count:l.toLocaleString(n)}):f(P(a.last[e.unit]??{other:e.unit},l,{lang:t.lang,locale:n}),{count:l.toLocaleString(n)}),d=gt(e,r,i,o?.max,{weekStart:s}),g=e.anchor==="latest";if(e.includeCurrent===!1&&e.direction!=="this"&&!g&&(u=f(a.withoutCurrent,{text:u})),!d)return u;g&&(u=f(t.relativeTo,{text:u,end:I({from:d.to,to:d.to},e.unit,n)}));let y=o?vt(d,e.unit,o,n):null;if(!y)return g?u:f(t.withRange,{text:u,range:I(d,e.unit,n)});let h={lang:t.lang,locale:n};return y.none?f(t.withRange,{text:u,range:f(P(t.noData,1,h),{range:I(d,e.unit,n)})}):f(t.withShare,{text:u,range:y.data,missing:f(P(t.noData,y.count,h),{range:y.missing.join(", ")})})}function bt(e,t,n,r,i,o,s){let a=t.relativeMore,l={lang:t.lang,locale:n},c=e.direction??"last",u=c==="this"?a.this[e.unit]??e.unit:P(a[c]?.[e.unit]??{other:e.unit},e.count??1,l);e.calendar===!1&&c!=="this"?u=f(a.rolling,{text:u}):e.includeCurrent===!1&&c!=="this"&&(u=f(a.withoutCurrent,{text:u})),e.anchor==="latest"?u=f(a.fromLatest,{text:u}):e.anchor==="first"?u=f(a.fromFirst,{text:u}):e.anchor&&e.anchor!=="today"&&(u=f(a.fromDate,{text:u,date:re(e.anchor,n)}));let d=Ue(e,r,i,o?.max,{first:o?.min,weekStart:s});if(!d)return u;let g=(d.from===null||d.from.endsWith("T00:00"))&&d.to.endsWith("T00:00"),y=v=>re(g?v.slice(0,10):v,n),h=y(d.to);return f(t.withRange,{text:u,range:d.from===null?f(a.until,{to:h}):d.from===d.to?h:`${y(d.from)} \u2013 ${h}`})}function kt(e,t,n){if(t==="year"||t==="quarter"||t==="month"){let r=new Date(`${e.slice(0,10)}T00:00Z`);return t==="month"?r.toLocaleDateString(n,{month:"short",year:"numeric",timeZone:"UTC"}):t==="year"?e.slice(0,e.length-6):`Q${Math.floor(r.getUTCMonth()/3)+1} ${e.slice(0,e.length-6)}`}return re(e,n)}var re=(e,t)=>e.length>10?new Date(`${e.slice(0,16)}Z`).toLocaleString(t,{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"}):Be(e,t);function Ct(e,t){return typeof e=="string"&&typeof t=="string"&&/^\d{4}-01-01$/.test(e)&&/^\d{4}-12-31$/.test(t)?[e.slice(0,4),t.slice(0,4)]:null}function Tt(e,t,n,{date:r,labelOf:i}){let o=l=>typeof l=="string"?kt(l,e.precision,n):i?.(l)??(r?String(l):l.toLocaleString(n,{maximumFractionDigits:6})),s=t.compareShort,a=ie(e);if(a==="between"||a==="notBetween"){let[l,c]=e.value2!==void 0&&e.value2<e.value?[e.value2,e.value]:[e.value,e.value2],u=Ct(l,c);return u?u[0]===u[1]?f(s[a==="between"?"=":"!="],{value:u[0]}):f(s[a],{from:u[0],to:u[1]}):f(s[a],{from:o(l),to:o(c)})}return J(e,r&&Object.hasOwn(s,a)?f(s[a],{value:o(e.value)}):`${Object.hasOwn(H,a)?H[a]:a} ${o(e.value)}`,t)}function On(e,t,n,{timeZone:r,date:i,labelOf:o,span:s,weekStart:a}){if(e.type==="relative")return J(e,Ot(e,t,n,r,void 0,s,a),t);if(e.type==="compare")return Tt(e,t,n,{date:i,labelOf:o});let l=ie(e);return J(e,`${Object.hasOwn(t.labelOps,l)?t.labelOps[l]:l} ${f(t.quote,{text:e.value})}`,t)}function bn(e,t,n,r){let i=n.unitInName&&Object.hasOwn(n.unitInName,t)?n.unitInName[t]:n.units[t];return t==="bin"?f(n.binsName,{field:e,size:r}):f(n.derivedName,{field:e,unit:i??t})}var Lt=e=>e==="number"?"values":"rows";function kn(e,t,n,r){let i=Lt(t),o=n.includes(i)?null:i!=="values"&&n.some(l=>l==="cols"||l==="filters")?"move":"add",s=n.length?`${e}, ${f(r.inZone,{zone:n.map(l=>r.zones[l]??l).join(", ")})}`:e,a=o===null?"":f(o==="move"?r.moveTo:r.addTo,{zone:r.zones[i]});return{zone:i,kind:o,name:s,description:a}}var Et=Object.freeze(["rows","cols","values","filters"]);function Cn(e,t){return Et.filter(n=>e[n]&&e[n].length).map(n=>({zone:n,title:t.zones[n],fields:e[n].map(r=>r.text).join(", ")}))}var At=1e3;function Nt(e,t){let n={};for(let r of e.columns){let i=r.codes[t],o=i<0?null:r.dict[i],s=r.type==="date"&&typeof o=="number"?new Date(o).toISOString().replace(/(T00:00:00)?\.000Z$/,"").replace(/:00$/,""):o;Object.defineProperty(n,r.name,{value:s,enumerable:!0,writable:!0,configurable:!0})}return n}function Ln(e,{rowPath:t=[],colPath:n=[],data:r=null,limit:i=At}){let o=we(e,{row:t,col:n}),s=o.slice(0,Math.max(0,i)),a=new Array(s.length);for(let l=0;l<s.length;l++)a[l]=r?r[s[l]]:Nt(e.encoded,s[l]);return{count:o.length,rows:a,indices:s}}function It(e){e.focus({preventScroll:!0});let t;try{e.select();let n=e.ownerDocument;t=typeof n.execCommand=="function"&&n.execCommand("delete")&&e.value===""}catch{t=!1}if(!t){let n=e instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype;Object.getOwnPropertyDescriptor(n,"value")?.set?.call(e,""),e.dispatchEvent(new Event("input",{bubbles:!0}))}}function En({value:e,onChange:t,onClear:n,clearLabel:r,multiline:i=!1,className:o,inputRef:s,...a}){let l=(0,D.useRef)(null),c=ce(),u=s??l,d=()=>{u.current&&It(u.current),n?.()},g=h=>{a.onKeyDown?.(h),h.key==="Escape"&&e!==""&&!h.defaultPrevented&&(h.preventDefault(),h.stopPropagation(),d())},y=i?"textarea":"input";return D.default.createElement("span",{className:`pk-clear-input${i?" pk-clear-multi":""}${o?` ${o}`:""}`},D.default.createElement(y,{name:c,...a,ref:u,value:e,onChange:h=>t(h.target.value),onKeyDown:g}),e!==""?D.default.createElement("button",{type:"button",className:"pk-clear-x","aria-label":r,title:r,onPointerDown:h=>h.preventDefault(),onMouseDown:h=>h.preventDefault(),onClick:d,"data-testid":"clear-input"},D.default.createElement(Y,{name:"x",size:14})):null)}var Ae=250,Dt=1500;function Rt({info:e,labels:t,link:n=!0,className:r="pk-field-desc"}){return p.default.createElement("p",{className:r},p.default.createElement("span",null,e.description),n&&e.href?p.default.createElement(p.default.Fragment,null," ",p.default.createElement("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"pk-learn-more"},t.learnMore)):null)}function An({info:e,name:t,labels:n,className:r,testId:i="field-info",label:o,tabIndex:s,slot:a}){let[l,c]=(0,p.useState)(null),u=(0,p.useRef)(null),d=(0,p.useRef)(!1),g=(0,p.useRef)(null),y=(0,p.useId)(),h=(0,p.useId)(),v=(0,p.useRef)(null),k=()=>{g.current&&(clearTimeout(g.current),g.current=null)},A=w=>{let S=u.current,C=S?.getRootNode()??null,L=C&&"getElementById"in C?C.getElementById(y):null;return!!(S?.matches(":hover")||L?.matches(":hover")||w&&S&&L&&fe(S.getBoundingClientRect(),L.getBoundingClientRect(),v.current))},b=()=>{k();let w=Date.now(),S=()=>{if(A(Date.now()-w<Dt)){g.current=setTimeout(S,Ae);return}g.current=null,c(C=>C==="peek"?null:C)};g.current=setTimeout(S,Ae)};(0,p.useEffect)(()=>k,[]),(0,p.useEffect)(()=>{let w=u.current?.ownerDocument;if(l!=="peek"||!w)return;let S=L=>{v.current={x:L.clientX,y:L.clientY}},C=L=>{L.relatedTarget||(v.current=null)};return w.addEventListener("pointermove",S,{capture:!0,passive:!0}),w.addEventListener("pointerout",C,{capture:!0,passive:!0}),()=>{w.removeEventListener("pointermove",S,{capture:!0}),w.removeEventListener("pointerout",C,{capture:!0}),v.current=null}},[l]);let R=(0,p.useCallback)(()=>{d.current=!0,c(null),requestAnimationFrame(()=>{d.current=!1})},[]),T=o??f(n.aboutField,{field:t});return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",{ref:u,type:"button",className:`pk-info${r?` ${r}`:""}`,"aria-label":T,"aria-describedby":h,"aria-expanded":l==="open","aria-controls":l?y:void 0,"aria-haspopup":"dialog",tabIndex:s,"data-pk-slot":a,"data-testid":i,onPointerEnter:w=>{w.pointerType==="mouse"&&(k(),c(S=>S??"peek"))},onPointerLeave:w=>{w.pointerType==="mouse"&&l==="peek"&&b()},onFocus:()=>{l===null&&!d.current&&c("peek")},onBlur:w=>{let S=w.relatedTarget;l==="peek"&&!(S&&S.closest?.(".pk-info-pop"))&&c(null)},onClick:()=>{k(),c(l==="open"?null:"open")}},p.default.createElement(Y,{name:"info",size:14})),p.default.createElement("span",{id:h,hidden:!0},e.description),p.default.createElement(de,{key:l??"closed",open:l!==null,passive:l==="peek",anchor:u,onClose:R,label:T,role:l==="peek"?"tooltip":"dialog",className:"pk-info-pop",id:y,onPointerEnter:k,onPointerLeave:w=>{w.pointerType==="mouse"&&l==="peek"&&b()}},p.default.createElement(Rt,{info:e,labels:n})))}var Nn=(0,qe.createContext)({explain:!0,labels:null}),Ne=null,We=null;function Dn(){return Ne??=import("./link-45LOEA7H.js").then(e=>(We=e,e)),Ne}var Rn=()=>We,$n=(e,t)=>be(e,t),jn=(e,t,n)=>ke(e,t,n);function Pn(e,t){if(e===!0){if(!t)return null;try{let n=new URL(t);return`${n.origin}${n.pathname}${n.hash}`}catch{return null}}return typeof e=="string"&&e.trim()?e.trim():null}var Ze=e=>`pivotkit:view:${e??""}`;function Fn(e,t){if(!t)return null;try{return t.getItem(Ze(e))}catch{return null}}function Mn(e,t,n){if(t)try{t.setItem(Ze(e),JSON.stringify(n))}catch{}}var _n=Ce.text,Ie=(e,t)=>{let n=e.slice(0,5).map(r=>f(t.quote,{text:r.length>60?`${r.slice(0,59)}\u2026`:r})).join(", ");return e.length>5?`${n} \u2026`:n},De=Object.freeze({newerFormat:"newer",newerView:"newer"});function zn(e,t,n={}){return $t(e,t,n)}function $t(e,t,n={}){let r=Te(e,{data:t,sourceId:n.sourceId});if(r.failed||!r.view){let s=r.failed??"notView";return{view:null,issues:r.issues,failed:Object.hasOwn(De,s)?De[s]:s,file:r}}let{view:i,issues:o}=ve(r.view,t,{limits:he(n.limits)});return o.some(s=>s.path==="version")?{view:null,issues:o,failed:"newer",file:r}:{view:i,issues:o,failed:null,file:r}}function Bn(e,t,n=[]){let r=e.file?.compatible;if(!e.view||!r||r.ok)return null;let i=[],o=e.file?.source,s=r.source==="other"&&o?.id?n.find(a=>a&&a.id===o.id):void 0;if(r.source==="other"){let a=s?.name||o?.name||o?.id;i.push(a?f(t.loadCheckSource,{source:a}):t.loadCheckOtherSource)}return r.missing.length&&i.push(f(t.loadCheckMissing,{fields:Ie(r.missing,t)})),r.changed.length&&i.push(f(t.loadCheckChanged,{fields:Ie(r.changed.map(a=>a.name),t)})),{lines:i,switchTo:s?{id:s.id,name:s.name||s.id}:null}}function Un(){try{return typeof window<"u"&&window.localStorage?window.localStorage:null}catch{return null}}function jt(e,t){try{return t?t.getItem(e):null}catch{return null}}var W=new Map;function Pt(e,t){let n=W.get(e)??new Set;n.add(t),W.set(e,n);let r=o=>{(o.key===null||o.key===e)&&t()},i=typeof window<"u"?window:null;return i?.addEventListener("storage",r),()=>{n.delete(t),n.size===0&&W.delete(e),i?.removeEventListener("storage",r)}}function Ft(e,t,n){let r=!1;if(t)try{n===null?t.removeItem(e):t.setItem(e,n),r=!0}catch{}for(let i of[...W.get(e)??[]])i();return r}var Mt=1,N=Object.freeze({dateColumns:12,dateRows:60,manyColumns:20,changesBeforeSave:5,afterDragChanges:3,pieSlices:7}),_t=Object.freeze(["percentOfGrandTotal","percentOfRowTotal","percentOfColumnTotal","percentOfParentRow","percentOfParentColumn","percentRunningTotal","percentDifferenceFromPrevious"]),F=(e,t)=>j(t,{fields:e.fields}),zt=(e,t)=>e.view.derived.find(n=>n.name.toLowerCase()===String(t).toLowerCase())?.by??"",Re=(e,t)=>e.typeOf(t)==="date"&&ft(e.view,t).toLowerCase()===String(t).toLowerCase(),M=e=>!e.failed&&!e.empty&&e.view.display==="table",G=e=>!e.failed&&e.view.display==="chart"&&e.series!==null&&e.view.values.length>0,E=e=>e.series,oe=e=>G(e)&&_[e.chartPlan.name].axis,Z=e=>["line","area"].includes(e.chartPlan.name),$e=e=>G(e)&&Ye.includes(e.chartPlan.name),je=(e,t)=>e.view[t].some(n=>e.typeOf(n)==="date"),ee=e=>oe(e)&&!e.chartPlan.swap&&Z(e)&&je(e,"cols")&&!je(e,"rows"),le=Object.freeze([{id:"filterEmpty",kind:"notice",icon:"filter",action:"removeFilters",when:e=>!e.failed&&!e.empty&&e.dataRows>0&&e.matched===0&&e.view.filters.some(t=>ht(e.view,t.field))?{}:null},{id:"top",kind:"notice",icon:"top",when:e=>{if(e.failed||e.empty)return null;for(let t of[...e.view.rows,...e.view.cols]){let n=ae(e.view,t,["top"])[0];if(n)return{field:F(e,t),count:n.count,bottom:!!n.bottom}}return null}},{id:"chartCapped",kind:"notice",when:e=>G(e)&&E(e).categoryCount>E(e).categories.length?{shown:E(e).categories.length,total:E(e).categoryCount}:null},{id:"showAs",icon:"sigma",when:e=>{if(e.failed||e.empty)return null;let t=e.view.values.find(n=>n.showAs&&_t.includes(n.showAs.type));return t?{type:t.showAs.type}:null}},{id:"colSubtotals",icon:"sigma",action:"colSubtotalsOff",when:e=>M(e)&&e.view.values.length>0&&e.view.totals.colSubtotals&&e.view.cols.length>=2&&e.colSubtotalShown?{}:null},{id:"chartOverTime",icon:"line",action:"auto",when:e=>{if(!G(e)||e.chartPlan.auto||Z(e)||e.chartPlan.name==="heatmap"||Qe({...e.view,chart:{...e.view.chart,type:"auto"}},e.encoded).name!=="line")return null;let t=[...e.view.rows,...e.view.cols].find(n=>e.typeOf(n)==="date"&&!Oe.cyclicUnits.includes(zt(e,n)));return t?{field:F(e,t)}:null}},{id:"pieSlices",icon:"chart",action:"bars",when:e=>$e(e)&&E(e).categories.length>N.pieSlices?{count:E(e).categories.length,max:N.pieSlices}:null},{id:"pieColumns",icon:"info",action:"bars",when:e=>$e(e)&&e.view.cols.length>0?{fields:e.view.cols.map(t=>F(e,t)).join(", ")}:null},{id:"chartDates",action:"swap",when:e=>ee(e)?{}:null},{id:"chartTrend",icon:"chart",action:"bars",when:e=>{if(!oe(e)||e.chartPlan.auto||ee(e)||!Z(e)||e.view.rows.length===0)return null;let t=e.view.rows[e.view.rows.length-1];return["date","number"].includes(e.typeOf(t))||e.view.sort.some(r=>r.by==="custom"&&String(r.field).toLowerCase()===String(t).toLowerCase())?null:{}}},{id:"chartSeries",action:"swap",when:e=>oe(e)&&!ee(e)&&!(e.chartPlan.auto&&Z(e))&&E(e).series.length>et?{count:E(e).series.length}:null},{id:"textValue",icon:"sigma",when:e=>{if(e.failed||e.empty)return null;let t=e.view.values.find(n=>n.field&&!n.label&&["string","boolean"].includes(e.typeOf(n.field)));return t?{field:F(e,t.field)}:null}},{id:"dateUngrouped",icon:"date",action:"groupDate",when:e=>{if(!M(e))return null;let n=(e.colLeaves>N.dateColumns?e.view.cols.find(s=>Re(e,s)):void 0)??(e.rowLeaves>N.dateRows?e.view.rows.find(s=>Re(e,s)):void 0);if(!n)return null;let r=e.encoded.column(n),i=pe(e.encoded,n),o=!i||i==="day"&&r?.dateOnly?"yearMonth":i;return{field:F(e,n),source:n,unit:o}}},{id:"manyColumns",icon:"swap",action:"swap",when:e=>M(e)&&e.view.cols.length>0&&e.colLeaves>N.manyColumns&&e.rowLeaves<e.colLeaves?{count:e.colLeaves}:null},{id:"afterDrag",icon:"undo",when:e=>!e.failed&&e.dragAt!==null&&e.changes-e.dragAt<=N.afterDragChanges?{}:null},{id:"values",icon:"sigma",when:e=>M(e)&&e.view.values.length===0?{}:null},{id:"saveTemplate",icon:"bookmark",action:"saveTemplate",when:e=>e.canSave&&!e.failed&&!e.empty&&e.changes-e.savedAt>=N.changesBeforeSave?{}:null},{id:"menus",icon:"sparkle",when:e=>!e.failed&&e.empty&&e.view.display==="table"&&e.dragAt===null?{}:null},{id:"cells",icon:"info",when:e=>M(e)&&e.tableShown&&e.view.values.length>0&&!e.drilled?{}:null}]),Je=Object.freeze(le.filter(e=>e.kind!=="notice").map(e=>e.id)),Wn=Object.freeze(le.filter(e=>e.kind==="notice").map(e=>e.id)),He="*",Ve="-explanations",Ge="-fields",xe=Object.freeze([He,Ve,Ge]);function Zn(e,t,n){return e??(t==="collapsed"||t==="open"?t==="collapsed":n.includes(Ge))}var Jn=e=>xe.includes(e);function Hn(e,t,n=Ve){return e==="on"||e==="off"?{on:e==="on",user:!1}:{on:!t.includes(n),user:!0}}var Vn=Object.freeze([{keys:["Mod","Z"],text:"undo"},{keys:["Mod","Shift","Z"],text:"redo"},{keys:["Arrow keys"],text:"move"},{keys:["Enter"],text:"open"},{keys:["Space"],text:"drag"},{keys:["Escape"],text:"close"},{keys:["Arrow keys"],text:"fields"},{keys:["Shift","F10"],text:"fieldMenu"}]);function Bt(e,t,n){let r=new Set(n.map(o=>JSON.stringify(o))),i=o=>o.every((s,a)=>!r.has(JSON.stringify(o.slice(0,a+1))));return e.some(o=>o.depth>0&&o.depth<t&&o.children.length>1&&i(o.path))}function Gn({view:e,result:t,encoded:n,failed:r,empty:i,typeOf:o,fields:s,series:a=null,tableShown:l=!1,drilled:c=!1,changes:u=0,dragAt:d=null,canSave:g=!1,savedAt:y=0,chartPlan:h={name:"bar",auto:!0,swap:!1}}){let v=(k,A)=>t&&A>0?k.reduce((b,R)=>b+(R.depth===A?1:0),0):1;return{view:e,empty:i,failed:r||!t,typeOf:o,encoded:n,fields:s,rowLeaves:t?v(t.rowNodes,t.rowFields.length):0,colLeaves:t?v(t.colNodes,t.colFields.length):0,colSubtotalShown:t?Bt(t.colNodes,t.colFields.length,e.collapsed?.cols??[]):!1,matched:t?t.rows.length:0,dataRows:n.length,series:a,tableShown:l,drilled:c,changes:u,dragAt:d,canSave:g,savedAt:y,chartPlan:h}}function xn(e,{allowed:t,dismissed:n,limit:r=Mt}){let i=new Set(n),o=t==="off"||i.has(He),s=[],a=0;for(let l of le){let c=l.kind==="notice";if(!c&&(o||a>=r||Array.isArray(t)&&!t.includes(l.id)||i.has(l.id)))continue;let u=l.when(e);u&&(s.push({id:l.id,params:u,entry:l}),a+=c?0:1)}return s}function Xn(e,t,n,r){let i=n.tips,o=Object.fromEntries(Object.entries(t).map(([s,a])=>[s,typeof a=="number"?a.toLocaleString(r):a]));if(e==="showAs"){let s=i.showAs;return Object.hasOwn(s,t.type)?s[t.type]:""}return e==="top"?f(t.bottom?i.bottom:i.top,o):e==="dateUngrouped"?f(i.dateUngrouped,{...o,unit:n.units[t.unit]??t.unit}):Object.hasOwn(i,e)&&typeof i[e]=="string"?f(i[e],o):""}function Yn(e,t,n){if(!e.action)return"";let r=Object.hasOwn(n.tipActions,e.action)?n.tipActions[e.action]:"";return f(r,{unit:n.units[t.unit]??t.unit??""})}function Kn(e){if(e==="off"||e===!1)return"off";let t=typeof e=="string"&&e.trim()!=="on"&&e.trim()!==""?e.split(","):Array.isArray(e)?e:null;return t?t.map(n=>String(n).trim()).filter(n=>Je.includes(n)):"on"}function Ut(e){return Array.isArray(e)?[...new Set(e.filter(t=>typeof t=="string"&&(xe.includes(t)||Je.includes(t))))]:[]}var ue=e=>`pivotkit:tips:${e}`;function Qn(e,t){return e?jt(ue(e),t):null}function er(e){if(!e)return[];try{return Ut(JSON.parse(e))}catch{return[]}}function tr(e,t){return e?Pt(ue(e),t):()=>{}}function nr(e,t,n){e&&t&&Ft(ue(e),t,n.length?JSON.stringify(n):null)}function rr(e){return{...e,filters:U(e).map(se)}}var te=null,Xe=null;function or(){return te??=import("./import-ui-7XVUBL2H.js").then(e=>Xe=e,e=>{throw te=null,e}),te}var ir=()=>Xe;export{_ as a,Ye as b,Le as c,Ke as d,Qe as e,Ht as f,Gt as g,O as h,xt as i,ie as j,tt as k,Xt as l,nt as m,se as n,ot as o,m as p,Yt as q,U as r,Pe as s,Kt as t,Fe as u,Qt as v,en as w,lt as x,tn as y,nn as z,ut as A,ct as B,ft as C,rn as D,on as E,Me as F,dt as G,sn as H,an as I,ln as J,ae as K,un as L,mt as M,_e as N,cn as O,fn as P,dn as Q,mn as R,hn as S,pn as T,gn as U,yn as V,pt as W,ze as X,wn as Y,Sn as Z,Be as _,V as $,gt as aa,yt as ba,I as ca,vt as da,Ot as ea,Ct as fa,On as ga,bn as ha,kn as ia,Cn as ja,At as ka,Nt as la,Ln as ma,En as na,An as oa,Nn as pa,Dn as qa,Rn as ra,$n as sa,jn as ta,Pn as ua,Fn as va,Mn as wa,zn as xa,$t as ya,Bn as za,Un as Aa,jt as Ba,Pt as Ca,Ft as Da,He as Ea,Ve as Fa,Ge as Ga,Zn as Ha,Jn as Ia,Hn as Ja,Vn as Ka,Gn as La,xn as Ma,Xn as Na,Yn as Oa,Kn as Pa,Ut as Qa,Qn as Ra,er as Sa,tr as Ta,nr as Ua,rr as Va,or as Wa,ir as Xa};
1
+ import{a as X,d as ce,j as Y,n as fe,r as de,y as f,z as P}from"./chunk-YMLEL3SK.js";import{d as Se,g as Oe}from"./chunk-HFUBAP3D.js";import{e as we}from"./chunk-OHKPNELV.js";import{b as be,c as ke,d as Ce,h as Te}from"./chunk-CHSIHYYE.js";import{F as ge,P as ye,c as K,ga as ve,h as pe,n as j,u as Q}from"./chunk-KO3EKDH5.js";import{d as me,h as he}from"./chunk-XR4CMFGN.js";import{c as x}from"./chunk-DCANE7XH.js";var D=x(X(),1),p=x(X(),1),qe=x(X(),1);var _=Object.freeze({auto:{chart:{type:"auto",stacked:!1,horizontal:!1},icon:"sparkle",axis:!0},bar:{chart:{type:"bar",stacked:!1,horizontal:!1},icon:"chart",axis:!0},stacked:{chart:{type:"bar",stacked:!0,horizontal:!1},icon:"stacked",axis:!0},horizontal:{chart:{type:"bar",stacked:!1,horizontal:!0},icon:"horizontal",axis:!0},line:{chart:{type:"line",stacked:!1,horizontal:!1},icon:"line",axis:!0},area:{chart:{type:"area",stacked:!1,horizontal:!1},icon:"area",axis:!0},pie:{chart:{type:"pie",stacked:!1,horizontal:!1},icon:"pie",axis:!1},donut:{chart:{type:"donut",stacked:!1,horizontal:!1},icon:"donut",axis:!1},heatmap:{chart:{type:"heatmap",stacked:!1,horizontal:!1},icon:"heatmap",axis:!1}}),Ye=Object.freeze(["pie","donut"]),Le=Object.freeze(Object.keys(_));function Ke(e){let t=Le.find(n=>{let r=_[n].chart;return r.type===e.type&&r.stacked===!!e.stacked&&r.horizontal===!!e.horizontal});return t||(e.type==="bar"?e.horizontal?"horizontal":"stacked":Le.find(n=>_[n].chart.type===e.type)??"bar")}function Qe(e,t){let n=Se(e,t);return{name:Ke(n.chart),...n}}var et=8,Ht=50,Gt=Object.freeze(["filters","cols","rows","values"]),O=e=>JSON.parse(JSON.stringify(e)),z=Object.freeze({"=":"!=",between:"notBetween",equals:"notEquals",contains:"notContains",beginsWith:"notBeginsWith",endsWith:"notEndsWith"}),xt=Object.freeze({text:Object.freeze(["equals","notEquals","contains","notContains","beginsWith","notBeginsWith","endsWith","notEndsWith"]),compare:Object.freeze(["=","!=",">",">=","<","<=","between","notBetween"])}),ie=e=>e.not&&typeof e.op=="string"&&Object.hasOwn(z,e.op)?z[e.op]:String(e.op),tt=e=>!!e.not&&!(typeof e.op=="string"&&Object.hasOwn(z,e.op));function Xt(e){let t=Object.keys(z).find(n=>z[n]===e);return t?{op:t,not:!0}:{op:e,not:!1}}var nt=(e,t)=>({field:e,type:"in",items:t.filter(n=>n!==null),not:!0,blanks:t.includes(null)?"exclude":"include"}),se=e=>nt(e,[]),rt=e=>e.type==="in",ot=e=>rt(e)&&e.not===!0&&e.items.length===0&&e.blanks==="include",m=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.toLowerCase()===t.toLowerCase();function Yt(e,t){let n=Q(t);return n?e.filter(r=>Q(r.label).includes(n)):e}var ne=(e,t)=>Number.isInteger(e)?Math.max(0,Math.min(e,t)):t;function U(e){let t=new Set,n=[];for(let r of e.filters){let i=r.field.toLowerCase();!t.has(i)&&!e.rows.some(o=>m(o,r.field))&&!e.cols.some(o=>m(o,r.field))&&(t.add(i),n.push(r.field))}return n}function Pe(e,t){return e.rows.some(n=>m(n,t))?"rows":e.cols.some(n=>m(n,t))?"cols":null}function it(e,t){return typeof t=="string"&&K(e??"string").includes(t)?t:e==="number"&&K(e).includes("sum")?"sum":"count"}function q(e){let t=new Set([...e.rows,...e.cols,...e.values.map(n=>n.field),...e.filters.map(n=>n.field)].filter(Boolean).map(n=>n.toLowerCase()));return e.derived=e.derived.filter(n=>t.has(n.name.toLowerCase())),e.sort=e.sort.filter(n=>t.has(n.field.toLowerCase())),e}function B(e,t){e.rows=e.rows.filter(n=>!m(n,t)),e.cols=e.cols.filter(n=>!m(n,t))}function $(e,t){for(let n of["rows","cols"])JSON.stringify(t[n])!==JSON.stringify(e[n])&&(e.collapsed[n]=[])}function Kt(e,t){let n=r=>t&&Number.isInteger(t[r])&&t[r]>0?t[r]:me[r];for(let[r,i]of[["rows","axisFields"],["cols","axisFields"],["values","values"]])if((e&&Array.isArray(e[r])?e[r]:[]).length>n(i))return{zone:r,max:n(i)};return null}function Fe(e,t,n,r={}){if(r.dateUnit&&n!=="values"){let o=r.groupName??`${t} (${r.dateUnit})`,s=Fe(st(e,o),t,n,{...r,dateUnit:null,defaults:void 0});return ut(s,t,r.dateUnit,{name:o}).view}let i=O(e);if(n==="rows"||n==="cols"){B(i,t),i[n].splice(ne(r.index,i[n].length),0,t);let o=r.defaults?.order;Array.isArray(o)&&o.length>0&&!i.sort.some(s=>m(s.field,t))&&i.sort.push({field:t,by:"custom",order:"asc",items:[...o]})}else if(n==="values"){let o=r.defaults??{},s=typeof o.format=="string"&&ye(o.format)?o.format:null;i.values.splice(ne(r.index,i.values.length),0,{field:t,agg:it(r.type,o.agg),format:s,label:null,showAs:null,conditional:null})}else n==="filters"&&(B(i,t),i.filters.some(o=>m(o.field,t))||i.filters.push(se(t)));return $(i,e),q(i)}function Qt(e,t,n){let r=O(e);if(t==="values")r.values.splice(n,1);else{let o=(t==="filters"?U(e):e[t])[n];if(o===void 0)return e;B(r,o),r.filters=r.filters.filter(s=>!m(s.field,o))}return $(r,e),q(r)}function st(e,t){if(!Pe(e,t)&&!U(e).some(r=>m(r,t)))return e;let n=O(e);return B(n,t),n.filters=n.filters.filter(r=>!m(r.field,t)),$(n,e),q(n)}function at(e,t,n){return t==="values"?e.values[n]?e.values[n].field:void 0:(t==="filters"?U(e):e[t])[n]}function en(e,t,n,r,i,o={}){if(t===r)return lt(e,t,n,i);let s=at(e,t,n);if(s==null)return e;let a=O(e);return t==="values"?a.values.splice(n,1):r!=="filters"&&(B(a,s),r==="values"&&(a.filters=a.filters.filter(l=>!m(l.field,s)))),a=Fe(a,s,r,{...o,index:i}),$(a,e),q(a)}function lt(e,t,n,r){let i=t==="filters"?null:t==="values"?e.values:e[t];if(!i||n===r||n<0||n>=i.length)return e;let o=O(e),s=o[t],[a]=s.splice(n,1);return s.splice(ne(r,s.length),0,a),$(o,e),o}function tn(e,t){let n=e.column(t);if(!n||n.type!=="number")return null;let r=1/0,i=-1/0;for(let o of n.dict)typeof o=="number"&&Number.isFinite(o)&&(r=Math.min(r,o),i=Math.max(i,o));return r<=i?{min:r,max:i}:null}function nn(e,t){let n=e.column(t);if(!n||n.type!=="date")return null;let r=1/0,i=-1/0;for(let o of n.dict)typeof o=="number"&&(r=Math.min(r,o),i=Math.max(i,o));return r<=i?{min:r,max:i}:null}function ut(e,t,n,r={}){let i=e.derived.find(c=>m(c.name,t)),o=i?i.field:t,s=Pe(e,t),a=O(e),l=o;if(n){l=r.name??`${o} (${n})`;let c=a.derived.find(g=>m(g.name,l)),u=r.origin??(i?.by==="bin"?i.origin??0:0),d=n==="bin"?{name:l,field:o,by:n,size:r.size,origin:u}:{name:l,field:o,by:n};c?Object.assign(c,d):a.derived.push(d)}if(s){let c=s==="rows"?"cols":"rows";if(!m(l,t)&&a[c].some(u=>m(u,l)))a[s]=a[s].filter(u=>!m(u,t));else{let u=new Set;a[s]=a[s].map(d=>m(d,t)?l:d).filter(d=>!u.has(d.toLowerCase())&&u.add(d.toLowerCase()))}}if(!m(l,t)){let c=!s&&U(e).some(u=>m(u,t));a.filters=a.filters.filter(u=>!m(u.field,t)),c&&a.filters.push(se(l))}return a.sort=a.sort.map(c=>m(c.field,t)?{...c,field:l}:c),$(a,e),{view:q(a),field:l}}function ct(e,t){return e.derived.find(n=>m(n.name,t))??null}function ft(e,t){let n=ct(e,t);return n?n.field:t}function rn(e,t,n){let r=O(e);return r.sort=r.sort.filter(i=>!m(i.field,t)),n&&r.sort.push({field:t,...n}),r}function on(e,t){let r=[...e.rows,...e.cols].filter(o=>!e.derived.some(s=>m(s.name,o))&&!e.sort.some(s=>m(s.field,o))).map(o=>({field:o,order:t(o)})).filter(({order:o})=>Array.isArray(o)&&o.length>0);if(!r.length)return e;let i=O(e);for(let{field:o,order:s}of r)i.sort.push({field:o,by:"custom",order:"asc",items:[...s]});return i}function Me(e,t){return e.sort.find(n=>m(n.field,t))??null}function dt(e,t){return e.by==="label"&&e.order==="asc"&&!t?null:e}function sn(e,t,n){if(t.kind==="corner")return t.field&&e.rows.some(i=>m(i,t.field))?{field:t.field}:null;let r=t.kind==="colHeader"&&t.valueIndex!==void 0&&!t.colPath?.length?e.values[t.valueIndex]:void 0;return!r||!e.rows.length||!mt(r,r.field?n(r.field)??"string":"number")?null:{field:e.rows[e.rows.length-1],ref:{field:r.field??null,agg:r.agg}}}function an(e,t){let n=Me(e,t.field),r=i=>i==="desc"?"descending":"ascending";return t.ref?n?.by==="value"&&_e(n.value,t.ref)?{order:r(n.order),chosen:!0}:{order:null,chosen:!1}:n?{order:n.by==="label"?r(n.order):n.by==="custom"?"other":null,chosen:n.by==="label"}:{order:"ascending",chosen:!1}}function ln(e,t,n){let r=Me(e,t.field);if(t.ref){let o=r?.by==="value"&&_e(r.value,t.ref);return o&&r.order==="asc"?null:{by:"value",order:o?"asc":"desc",value:o?r.value:t.ref}}let i=!r||r.by==="label"&&r.order==="asc";return dt({by:"label",order:i?"desc":"asc"},n)}function ae(e,t,n){return e.filters.filter(r=>m(r.field,t)&&(!n||n.includes(r.type)))}function un(e,t,n){let r=n;for(let i of ae(e,t,["in"])){let o=new Set(i.items.map(a=>JSON.stringify(a))),s=i.blanks!=="exclude";r=r.filter(a=>a===null?s:i.blanks!=="only"&&o.has(JSON.stringify(a))!==i.not)}return r}function mt(e,t){return e.agg!=="listUnique"&&!(["first","last"].includes(e.agg)&&t!=="number")&&!(t==="date"&&["average","median","min","max"].includes(e.agg))}function _e(e,t){return!!(e&&t)&&e.agg===t.agg&&(e.field===null||t.field===null?e.field===t.field:m(e.field,t.field))}function ht(e,t){return ae(e,t).some(n=>!ot(n))}function cn(e,t,n){let r=O(e),i=JSON.stringify(n),o=r.collapsed[t],s=o.findIndex(a=>JSON.stringify(a)===i);return s===-1?o.push(n):o.splice(s,1),r}function fn(e,t){let n=new Set(e.collapsed.rows.map(a=>JSON.stringify(a))),r=t.filter(a=>n.has(JSON.stringify(a))).length,i=e.rows.length<2?0:t.length-r,o=e.collapsed.rows.length>0,s=i>0;return{canExpand:o,canCollapse:s,collapsed:e.collapsed.rows.length,open:i,why:{expand:o?null:"expandNothing",collapse:s?null:e.rows.length<2?"collapseNeedsRows":"collapseAllDone"}}}function dn(e,t,n){let r=O(e);return r.collapsed[t]=n||[],r}function mn(e,t,n){let r=O(e);return r.totals[t]=!!n,r}function hn(e,t){let n=O(e);return n.display=t,n}function pn(e,t){let n=O(e);return n.chart={...n.chart,..._[t].chart},n.display="chart",n}function gn(e,t){let n=O(e);return n.chart={...n.chart,...t},n}function yn(e){return e.rows.length===0&&e.cols.length===0&&e.values.length===0}var J=(e,t,n)=>tt(e)?f(n.notRule,{rule:t}):t;function pt(e,t){if(e.label)return e.label;let n=t.core,r;if(!e.field)r=n.countRows;else{let o=Object.hasOwn(n.aggregators,e.agg)?n.aggregators[e.agg]:e.agg;r=f(n.valueName,{agg:o,field:j(e.field,n)})}if(!e.showAs||!n.showAs||!n.showAsName)return r;let i=Object.hasOwn(n.showAs,e.showAs.type)?n.showAs[e.showAs.type]:e.showAs.type;return f(n.showAsName,{showAs:i,value:e.field&&e.agg==="sum"?j(e.field,n):r})}function ze(e,t,n){let r=t?.field??null,i=s=>r===null||s.field===null||s.field===void 0?(s.field??null)===r:s.field.toLowerCase()===r.toLowerCase(),o=t?(e.values??[]).find(s=>s.agg===t.agg&&i(s)):void 0;return!o&&r===null?n.countOfRows:pt({...o??t,showAs:null},n)}function wn(e,t,n){let r=t.order==="desc";return t.by==="value"?f(r?n.sortValueDesc:n.sortValueAsc,{value:ze(e,t.value,n)}):t.by==="custom"?r?n.sortCustomDesc:n.sortCustom:r?n.sortLabelDesc:n.sortLabelAsc}var H=Object.freeze({"=":"=","!=":"\u2260",">":">",">=":"\u2265","<":"<","<=":"\u2264"});function Sn(e,t,n,r){let i=a=>typeof a=="number"?a.toLocaleString(r,{maximumFractionDigits:6}):"",o=ze(e,t.by??(e.values?.[0]?{field:e.values[0].field??null,agg:e.values[0].agg}:null),n),s=ie(t);if(s==="between"||s==="notBetween"){let[a,l]=typeof t.value2=="number"&&t.value2<t.value?[t.value2,t.value]:[t.value,t.value2];return f(n.valueConditions[s],{value:o,from:i(a),to:i(l)})}return J(t,f(n.valueConditions.compare,{value:o,op:Object.hasOwn(H,s)?H[s]:s,number:i(t.value)}),n)}var Be=(e,t)=>new Date(`${e}T00:00Z`).toLocaleDateString(t,{dateStyle:"medium",timeZone:"UTC"}),V=e=>new Date(e).toISOString().slice(0,10),Ee=(e,t=1)=>V(Date.parse(`${e}T00:00Z`)+t*864e5);function gt(e,t,n,r,i={}){let o=Ue(e,t,n,r,i);return o&&o.from!==null?{from:o.from,to:o.to}:null}var Ue=(e,t,n,r,i={})=>ge(e.unit,e.count??1,{timeZone:t,now:n,anchor:e.anchor,latest:r??void 0,first:i.first??void 0,direction:e.direction,calendar:e.calendar,includeCurrent:e.includeCurrent,weekStart:i.weekStart}),yt=e=>["last","this"].includes(e.direction??"last")&&e.calendar!==!1&&(e.anchor===void 0||e.anchor==="today"||e.anchor==="latest")&&["year","quarter","month","week","day"].includes(e.unit);function I(e,t,n){let o=t==="year"?l=>l.slice(0,4):t==="quarter"?l=>`Q${Math.floor((Number(l.slice(5,7))-1)/3)+1} ${l.slice(0,4)}`:t==="month"?l=>new Date(`${l.slice(0,10)}T00:00Z`).toLocaleDateString(n,{month:"short",year:"numeric",timeZone:"UTC"}):l=>Be(l.slice(0,10),n),[s,a]=[o(e.from),o(e.to)];return s===a?s:`${s}\u2013${a}`}function vt(e,t,n,r){let i=t==="quarter"?"month":t==="week"?"day":t;e={from:e.from.slice(0,10),to:e.to.slice(0,10)};let[o,s]=[wt(V(n.min),i),St(V(n.max),i)];if(o<=e.from&&s>=e.to)return null;let a=e.from>o?e.from:o,l=e.to<s?e.to:s;if(a>l)return{none:!0};let c=[],u=0,d=(g,y,h)=>{let v=[],[k,A]=[Number(g.slice(0,4)),Number(y.slice(0,4))];for(let b=k;b<=A;b++)b!==h&&v.push(b);if(v.length&&(c.push(v.length===1?String(v[0]):`${v[0]}\u2013${v[v.length-1]}`),u+=v.length),k<=h&&h<=A){let b=`${String(h).padStart(4,"0")}-01-01`,R=`${String(h).padStart(4,"0")}-12-31`,T={from:g>b?g:b,to:y<R?y:R};c.push(I(T,t,r)),u+=I({from:T.from,to:T.from},t,r)===I({from:T.to,to:T.to},t,r)?1:2}};return e.from<o&&d(e.from,Ee(o,-1),Number(o.slice(0,4))),e.to>s&&d(Ee(s),e.to,Number(s.slice(0,4))),{none:!1,data:I({from:a,to:l},t,r),missing:c,count:u}}var wt=(e,t)=>t==="year"?`${e.slice(0,4)}-01-01`:t==="month"?`${e.slice(0,7)}-01`:e;function St(e,t){if(t==="day")return e;let[n,r]=[Number(e.slice(0,4)),Number(e.slice(5,7))];return V(t==="year"?Date.UTC(n,11,31):Date.UTC(n,r,0))}function Ot(e,t,n,r,i,o,s){if(!yt(e))return bt(e,t,n,r,i,o,s);let a=t.relativeMore,l=e.count??1,c=l===1?e.unit:`${e.unit}s`,u=e.direction==="this"?a.this[e.unit]??e.unit:Object.hasOwn(t.relative,c)?f(t.relative[c],{count:l.toLocaleString(n)}):f(P(a.last[e.unit]??{other:e.unit},l,{lang:t.lang,locale:n}),{count:l.toLocaleString(n)}),d=gt(e,r,i,o?.max,{weekStart:s}),g=e.anchor==="latest";if(e.includeCurrent===!1&&e.direction!=="this"&&!g&&(u=f(a.withoutCurrent,{text:u})),!d)return u;g&&(u=f(t.relativeTo,{text:u,end:I({from:d.to,to:d.to},e.unit,n)}));let y=o?vt(d,e.unit,o,n):null;if(!y)return g?u:f(t.withRange,{text:u,range:I(d,e.unit,n)});let h={lang:t.lang,locale:n};return y.none?f(t.withRange,{text:u,range:f(P(t.noData,1,h),{range:I(d,e.unit,n)})}):f(t.withShare,{text:u,range:y.data,missing:f(P(t.noData,y.count,h),{range:y.missing.join(", ")})})}function bt(e,t,n,r,i,o,s){let a=t.relativeMore,l={lang:t.lang,locale:n},c=e.direction??"last",u=c==="this"?a.this[e.unit]??e.unit:P(a[c]?.[e.unit]??{other:e.unit},e.count??1,l);e.calendar===!1&&c!=="this"?u=f(a.rolling,{text:u}):e.includeCurrent===!1&&c!=="this"&&(u=f(a.withoutCurrent,{text:u})),e.anchor==="latest"?u=f(a.fromLatest,{text:u}):e.anchor==="first"?u=f(a.fromFirst,{text:u}):e.anchor&&e.anchor!=="today"&&(u=f(a.fromDate,{text:u,date:re(e.anchor,n)}));let d=Ue(e,r,i,o?.max,{first:o?.min,weekStart:s});if(!d)return u;let g=(d.from===null||d.from.endsWith("T00:00"))&&d.to.endsWith("T00:00"),y=v=>re(g?v.slice(0,10):v,n),h=y(d.to);return f(t.withRange,{text:u,range:d.from===null?f(a.until,{to:h}):d.from===d.to?h:`${y(d.from)} \u2013 ${h}`})}function kt(e,t,n){if(t==="year"||t==="quarter"||t==="month"){let r=new Date(`${e.slice(0,10)}T00:00Z`);return t==="month"?r.toLocaleDateString(n,{month:"short",year:"numeric",timeZone:"UTC"}):t==="year"?e.slice(0,e.length-6):`Q${Math.floor(r.getUTCMonth()/3)+1} ${e.slice(0,e.length-6)}`}return re(e,n)}var re=(e,t)=>e.length>10?new Date(`${e.slice(0,16)}Z`).toLocaleString(t,{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"}):Be(e,t);function Ct(e,t){return typeof e=="string"&&typeof t=="string"&&/^\d{4}-01-01$/.test(e)&&/^\d{4}-12-31$/.test(t)?[e.slice(0,4),t.slice(0,4)]:null}function Tt(e,t,n,{date:r,labelOf:i}){let o=l=>typeof l=="string"?kt(l,e.precision,n):i?.(l)??(r?String(l):l.toLocaleString(n,{maximumFractionDigits:6})),s=t.compareShort,a=ie(e);if(a==="between"||a==="notBetween"){let[l,c]=e.value2!==void 0&&e.value2<e.value?[e.value2,e.value]:[e.value,e.value2],u=Ct(l,c);return u?u[0]===u[1]?f(s[a==="between"?"=":"!="],{value:u[0]}):f(s[a],{from:u[0],to:u[1]}):f(s[a],{from:o(l),to:o(c)})}return J(e,r&&Object.hasOwn(s,a)?f(s[a],{value:o(e.value)}):`${Object.hasOwn(H,a)?H[a]:a} ${o(e.value)}`,t)}function On(e,t,n,{timeZone:r,date:i,labelOf:o,span:s,weekStart:a}){if(e.type==="relative")return J(e,Ot(e,t,n,r,void 0,s,a),t);if(e.type==="compare")return Tt(e,t,n,{date:i,labelOf:o});let l=ie(e);return J(e,`${Object.hasOwn(t.labelOps,l)?t.labelOps[l]:l} ${f(t.quote,{text:e.value})}`,t)}function bn(e,t,n,r){let i=n.unitInName&&Object.hasOwn(n.unitInName,t)?n.unitInName[t]:n.units[t];return t==="bin"?f(n.binsName,{field:e,size:r}):f(n.derivedName,{field:e,unit:i??t})}var Lt=e=>e==="number"?"values":"rows";function kn(e,t,n,r){let i=Lt(t),o=n.includes(i)?null:i!=="values"&&n.some(l=>l==="cols"||l==="filters")?"move":"add",s=n.length?`${e}, ${f(r.inZone,{zone:n.map(l=>r.zones[l]??l).join(", ")})}`:e,a=o===null?"":f(o==="move"?r.moveTo:r.addTo,{zone:r.zones[i]});return{zone:i,kind:o,name:s,description:a}}var Et=Object.freeze(["rows","cols","values","filters"]);function Cn(e,t){return Et.filter(n=>e[n]&&e[n].length).map(n=>({zone:n,title:t.zones[n],fields:e[n].map(r=>r.text).join(", ")}))}var At=1e3;function Nt(e,t){let n={};for(let r of e.columns){let i=r.codes[t],o=i<0?null:r.dict[i],s=r.type==="date"&&typeof o=="number"?new Date(o).toISOString().replace(/(T00:00:00)?\.000Z$/,"").replace(/:00$/,""):o;Object.defineProperty(n,r.name,{value:s,enumerable:!0,writable:!0,configurable:!0})}return n}function Ln(e,{rowPath:t=[],colPath:n=[],data:r=null,limit:i=At}){let o=we(e,{row:t,col:n}),s=o.slice(0,Math.max(0,i)),a=new Array(s.length);for(let l=0;l<s.length;l++)a[l]=r?r[s[l]]:Nt(e.encoded,s[l]);return{count:o.length,rows:a,indices:s}}function It(e){e.focus({preventScroll:!0});let t;try{e.select();let n=e.ownerDocument;t=typeof n.execCommand=="function"&&n.execCommand("delete")&&e.value===""}catch{t=!1}if(!t){let n=e instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype;Object.getOwnPropertyDescriptor(n,"value")?.set?.call(e,""),e.dispatchEvent(new Event("input",{bubbles:!0}))}}function En({value:e,onChange:t,onClear:n,clearLabel:r,multiline:i=!1,className:o,inputRef:s,...a}){let l=(0,D.useRef)(null),c=ce(),u=s??l,d=()=>{u.current&&It(u.current),n?.()},g=h=>{a.onKeyDown?.(h),h.key==="Escape"&&e!==""&&!h.defaultPrevented&&(h.preventDefault(),h.stopPropagation(),d())},y=i?"textarea":"input";return D.default.createElement("span",{className:`pk-clear-input${i?" pk-clear-multi":""}${o?` ${o}`:""}`},D.default.createElement(y,{name:c,...a,ref:u,value:e,onChange:h=>t(h.target.value),onKeyDown:g}),e!==""?D.default.createElement("button",{type:"button",className:"pk-clear-x","aria-label":r,title:r,onPointerDown:h=>h.preventDefault(),onMouseDown:h=>h.preventDefault(),onClick:d,"data-testid":"clear-input"},D.default.createElement(Y,{name:"x",size:14})):null)}var Ae=250,Dt=1500;function Rt({info:e,labels:t,link:n=!0,className:r="pk-field-desc"}){return p.default.createElement("p",{className:r},p.default.createElement("span",null,e.description),n&&e.href?p.default.createElement(p.default.Fragment,null," ",p.default.createElement("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"pk-learn-more"},t.learnMore)):null)}function An({info:e,name:t,labels:n,className:r,testId:i="field-info",label:o,tabIndex:s,slot:a}){let[l,c]=(0,p.useState)(null),u=(0,p.useRef)(null),d=(0,p.useRef)(!1),g=(0,p.useRef)(null),y=(0,p.useId)(),h=(0,p.useId)(),v=(0,p.useRef)(null),k=()=>{g.current&&(clearTimeout(g.current),g.current=null)},A=w=>{let S=u.current,C=S?.getRootNode()??null,L=C&&"getElementById"in C?C.getElementById(y):null;return!!(S?.matches(":hover")||L?.matches(":hover")||w&&S&&L&&fe(S.getBoundingClientRect(),L.getBoundingClientRect(),v.current))},b=()=>{k();let w=Date.now(),S=()=>{if(A(Date.now()-w<Dt)){g.current=setTimeout(S,Ae);return}g.current=null,c(C=>C==="peek"?null:C)};g.current=setTimeout(S,Ae)};(0,p.useEffect)(()=>k,[]),(0,p.useEffect)(()=>{let w=u.current?.ownerDocument;if(l!=="peek"||!w)return;let S=L=>{v.current={x:L.clientX,y:L.clientY}},C=L=>{L.relatedTarget||(v.current=null)};return w.addEventListener("pointermove",S,{capture:!0,passive:!0}),w.addEventListener("pointerout",C,{capture:!0,passive:!0}),()=>{w.removeEventListener("pointermove",S,{capture:!0}),w.removeEventListener("pointerout",C,{capture:!0}),v.current=null}},[l]);let R=(0,p.useCallback)(()=>{d.current=!0,c(null),requestAnimationFrame(()=>{d.current=!1})},[]),T=o??f(n.aboutField,{field:t});return p.default.createElement(p.default.Fragment,null,p.default.createElement("button",{ref:u,type:"button",className:`pk-info${r?` ${r}`:""}`,"aria-label":T,"aria-describedby":h,"aria-expanded":l==="open","aria-controls":l?y:void 0,"aria-haspopup":"dialog",tabIndex:s,"data-pk-slot":a,"data-testid":i,onPointerEnter:w=>{w.pointerType==="mouse"&&(k(),c(S=>S??"peek"))},onPointerLeave:w=>{w.pointerType==="mouse"&&l==="peek"&&b()},onFocus:()=>{l===null&&!d.current&&c("peek")},onBlur:w=>{let S=w.relatedTarget;l==="peek"&&!(S&&S.closest?.(".pk-info-pop"))&&c(null)},onClick:()=>{k(),c(l==="open"?null:"open")}},p.default.createElement(Y,{name:"info",size:14})),p.default.createElement("span",{id:h,hidden:!0},e.description),p.default.createElement(de,{key:l??"closed",open:l!==null,passive:l==="peek",anchor:u,onClose:R,label:T,role:l==="peek"?"tooltip":"dialog",className:"pk-info-pop",id:y,onPointerEnter:k,onPointerLeave:w=>{w.pointerType==="mouse"&&l==="peek"&&b()}},p.default.createElement(Rt,{info:e,labels:n})))}var Nn=(0,qe.createContext)({explain:!0,labels:null}),Ne=null,We=null;function Dn(){return Ne??=import("./link-7K6I4SJS.js").then(e=>(We=e,e)),Ne}var Rn=()=>We,$n=(e,t)=>be(e,t),jn=(e,t,n)=>ke(e,t,n);function Pn(e,t){if(e===!0){if(!t)return null;try{let n=new URL(t);return`${n.origin}${n.pathname}${n.hash}`}catch{return null}}return typeof e=="string"&&e.trim()?e.trim():null}var Ze=e=>`pivotkit:view:${e??""}`;function Fn(e,t){if(!t)return null;try{return t.getItem(Ze(e))}catch{return null}}function Mn(e,t,n){if(t)try{t.setItem(Ze(e),JSON.stringify(n))}catch{}}var _n=Ce.text,Ie=(e,t)=>{let n=e.slice(0,5).map(r=>f(t.quote,{text:r.length>60?`${r.slice(0,59)}\u2026`:r})).join(", ");return e.length>5?`${n} \u2026`:n},De=Object.freeze({newerFormat:"newer",newerView:"newer"});function zn(e,t,n={}){return $t(e,t,n)}function $t(e,t,n={}){let r=Te(e,{data:t,sourceId:n.sourceId});if(r.failed||!r.view){let s=r.failed??"notView";return{view:null,issues:r.issues,failed:Object.hasOwn(De,s)?De[s]:s,file:r}}let{view:i,issues:o}=ve(r.view,t,{limits:he(n.limits)});return o.some(s=>s.path==="version")?{view:null,issues:o,failed:"newer",file:r}:{view:i,issues:o,failed:null,file:r}}function Bn(e,t,n=[]){let r=e.file?.compatible;if(!e.view||!r||r.ok)return null;let i=[],o=e.file?.source,s=r.source==="other"&&o?.id?n.find(a=>a&&a.id===o.id):void 0;if(r.source==="other"){let a=s?.name||o?.name||o?.id;i.push(a?f(t.loadCheckSource,{source:a}):t.loadCheckOtherSource)}return r.missing.length&&i.push(f(t.loadCheckMissing,{fields:Ie(r.missing,t)})),r.changed.length&&i.push(f(t.loadCheckChanged,{fields:Ie(r.changed.map(a=>a.name),t)})),{lines:i,switchTo:s?{id:s.id,name:s.name||s.id}:null}}function Un(){try{return typeof window<"u"&&window.localStorage?window.localStorage:null}catch{return null}}function jt(e,t){try{return t?t.getItem(e):null}catch{return null}}var W=new Map;function Pt(e,t){let n=W.get(e)??new Set;n.add(t),W.set(e,n);let r=o=>{(o.key===null||o.key===e)&&t()},i=typeof window<"u"?window:null;return i?.addEventListener("storage",r),()=>{n.delete(t),n.size===0&&W.delete(e),i?.removeEventListener("storage",r)}}function Ft(e,t,n){let r=!1;if(t)try{n===null?t.removeItem(e):t.setItem(e,n),r=!0}catch{}for(let i of[...W.get(e)??[]])i();return r}var Mt=1,N=Object.freeze({dateColumns:12,dateRows:60,manyColumns:20,changesBeforeSave:5,afterDragChanges:3,pieSlices:7}),_t=Object.freeze(["percentOfGrandTotal","percentOfRowTotal","percentOfColumnTotal","percentOfParentRow","percentOfParentColumn","percentRunningTotal","percentDifferenceFromPrevious"]),F=(e,t)=>j(t,{fields:e.fields}),zt=(e,t)=>e.view.derived.find(n=>n.name.toLowerCase()===String(t).toLowerCase())?.by??"",Re=(e,t)=>e.typeOf(t)==="date"&&ft(e.view,t).toLowerCase()===String(t).toLowerCase(),M=e=>!e.failed&&!e.empty&&e.view.display==="table",G=e=>!e.failed&&e.view.display==="chart"&&e.series!==null&&e.view.values.length>0,E=e=>e.series,oe=e=>G(e)&&_[e.chartPlan.name].axis,Z=e=>["line","area"].includes(e.chartPlan.name),$e=e=>G(e)&&Ye.includes(e.chartPlan.name),je=(e,t)=>e.view[t].some(n=>e.typeOf(n)==="date"),ee=e=>oe(e)&&!e.chartPlan.swap&&Z(e)&&je(e,"cols")&&!je(e,"rows"),le=Object.freeze([{id:"filterEmpty",kind:"notice",icon:"filter",action:"removeFilters",when:e=>!e.failed&&!e.empty&&e.dataRows>0&&e.matched===0&&e.view.filters.some(t=>ht(e.view,t.field))?{}:null},{id:"top",kind:"notice",icon:"top",when:e=>{if(e.failed||e.empty)return null;for(let t of[...e.view.rows,...e.view.cols]){let n=ae(e.view,t,["top"])[0];if(n)return{field:F(e,t),count:n.count,bottom:!!n.bottom}}return null}},{id:"chartCapped",kind:"notice",when:e=>G(e)&&E(e).categoryCount>E(e).categories.length?{shown:E(e).categories.length,total:E(e).categoryCount}:null},{id:"showAs",icon:"sigma",when:e=>{if(e.failed||e.empty)return null;let t=e.view.values.find(n=>n.showAs&&_t.includes(n.showAs.type));return t?{type:t.showAs.type}:null}},{id:"colSubtotals",icon:"sigma",action:"colSubtotalsOff",when:e=>M(e)&&e.view.values.length>0&&e.view.totals.colSubtotals&&e.view.cols.length>=2&&e.colSubtotalShown?{}:null},{id:"chartOverTime",icon:"line",action:"auto",when:e=>{if(!G(e)||e.chartPlan.auto||Z(e)||e.chartPlan.name==="heatmap"||Qe({...e.view,chart:{...e.view.chart,type:"auto"}},e.encoded).name!=="line")return null;let t=[...e.view.rows,...e.view.cols].find(n=>e.typeOf(n)==="date"&&!Oe.cyclicUnits.includes(zt(e,n)));return t?{field:F(e,t)}:null}},{id:"pieSlices",icon:"chart",action:"bars",when:e=>$e(e)&&E(e).categories.length>N.pieSlices?{count:E(e).categories.length,max:N.pieSlices}:null},{id:"pieColumns",icon:"info",action:"bars",when:e=>$e(e)&&e.view.cols.length>0?{fields:e.view.cols.map(t=>F(e,t)).join(", ")}:null},{id:"chartDates",action:"swap",when:e=>ee(e)?{}:null},{id:"chartTrend",icon:"chart",action:"bars",when:e=>{if(!oe(e)||e.chartPlan.auto||ee(e)||!Z(e)||e.view.rows.length===0)return null;let t=e.view.rows[e.view.rows.length-1];return["date","number"].includes(e.typeOf(t))||e.view.sort.some(r=>r.by==="custom"&&String(r.field).toLowerCase()===String(t).toLowerCase())?null:{}}},{id:"chartSeries",action:"swap",when:e=>oe(e)&&!ee(e)&&!(e.chartPlan.auto&&Z(e))&&E(e).series.length>et?{count:E(e).series.length}:null},{id:"textValue",icon:"sigma",when:e=>{if(e.failed||e.empty)return null;let t=e.view.values.find(n=>n.field&&!n.label&&["string","boolean"].includes(e.typeOf(n.field)));return t?{field:F(e,t.field)}:null}},{id:"dateUngrouped",icon:"date",action:"groupDate",when:e=>{if(!M(e))return null;let n=(e.colLeaves>N.dateColumns?e.view.cols.find(s=>Re(e,s)):void 0)??(e.rowLeaves>N.dateRows?e.view.rows.find(s=>Re(e,s)):void 0);if(!n)return null;let r=e.encoded.column(n),i=pe(e.encoded,n),o=!i||i==="day"&&r?.dateOnly?"yearMonth":i;return{field:F(e,n),source:n,unit:o}}},{id:"manyColumns",icon:"swap",action:"swap",when:e=>M(e)&&e.view.cols.length>0&&e.colLeaves>N.manyColumns&&e.rowLeaves<e.colLeaves?{count:e.colLeaves}:null},{id:"afterDrag",icon:"undo",when:e=>!e.failed&&e.dragAt!==null&&e.changes-e.dragAt<=N.afterDragChanges?{}:null},{id:"values",icon:"sigma",when:e=>M(e)&&e.view.values.length===0?{}:null},{id:"saveTemplate",icon:"bookmark",action:"saveTemplate",when:e=>e.canSave&&!e.failed&&!e.empty&&e.changes-e.savedAt>=N.changesBeforeSave?{}:null},{id:"menus",icon:"sparkle",when:e=>!e.failed&&e.empty&&e.view.display==="table"&&e.dragAt===null?{}:null},{id:"cells",icon:"info",when:e=>M(e)&&e.tableShown&&e.view.values.length>0&&!e.drilled?{}:null}]),Je=Object.freeze(le.filter(e=>e.kind!=="notice").map(e=>e.id)),Wn=Object.freeze(le.filter(e=>e.kind==="notice").map(e=>e.id)),He="*",Ve="-explanations",Ge="-fields",xe=Object.freeze([He,Ve,Ge]);function Zn(e,t,n){return e??(t==="collapsed"||t==="open"?t==="collapsed":n.includes(Ge))}var Jn=e=>xe.includes(e);function Hn(e,t,n=Ve){return e==="on"||e==="off"?{on:e==="on",user:!1}:{on:!t.includes(n),user:!0}}var Vn=Object.freeze([{keys:["Mod","Z"],text:"undo"},{keys:["Mod","Shift","Z"],text:"redo"},{keys:["Arrow keys"],text:"move"},{keys:["Enter"],text:"open"},{keys:["Space"],text:"drag"},{keys:["Escape"],text:"close"},{keys:["Arrow keys"],text:"fields"},{keys:["Shift","F10"],text:"fieldMenu"}]);function Bt(e,t,n){let r=new Set(n.map(o=>JSON.stringify(o))),i=o=>o.every((s,a)=>!r.has(JSON.stringify(o.slice(0,a+1))));return e.some(o=>o.depth>0&&o.depth<t&&o.children.length>1&&i(o.path))}function Gn({view:e,result:t,encoded:n,failed:r,empty:i,typeOf:o,fields:s,series:a=null,tableShown:l=!1,drilled:c=!1,changes:u=0,dragAt:d=null,canSave:g=!1,savedAt:y=0,chartPlan:h={name:"bar",auto:!0,swap:!1}}){let v=(k,A)=>t&&A>0?k.reduce((b,R)=>b+(R.depth===A?1:0),0):1;return{view:e,empty:i,failed:r||!t,typeOf:o,encoded:n,fields:s,rowLeaves:t?v(t.rowNodes,t.rowFields.length):0,colLeaves:t?v(t.colNodes,t.colFields.length):0,colSubtotalShown:t?Bt(t.colNodes,t.colFields.length,e.collapsed?.cols??[]):!1,matched:t?t.rows.length:0,dataRows:n.length,series:a,tableShown:l,drilled:c,changes:u,dragAt:d,canSave:g,savedAt:y,chartPlan:h}}function xn(e,{allowed:t,dismissed:n,limit:r=Mt}){let i=new Set(n),o=t==="off"||i.has(He),s=[],a=0;for(let l of le){let c=l.kind==="notice";if(!c&&(o||a>=r||Array.isArray(t)&&!t.includes(l.id)||i.has(l.id)))continue;let u=l.when(e);u&&(s.push({id:l.id,params:u,entry:l}),a+=c?0:1)}return s}function Xn(e,t,n,r){let i=n.tips,o=Object.fromEntries(Object.entries(t).map(([s,a])=>[s,typeof a=="number"?a.toLocaleString(r):a]));if(e==="showAs"){let s=i.showAs;return Object.hasOwn(s,t.type)?s[t.type]:""}return e==="top"?f(t.bottom?i.bottom:i.top,o):e==="dateUngrouped"?f(i.dateUngrouped,{...o,unit:n.units[t.unit]??t.unit}):Object.hasOwn(i,e)&&typeof i[e]=="string"?f(i[e],o):""}function Yn(e,t,n){if(!e.action)return"";let r=Object.hasOwn(n.tipActions,e.action)?n.tipActions[e.action]:"";return f(r,{unit:n.units[t.unit]??t.unit??""})}function Kn(e){if(e==="off"||e===!1)return"off";let t=typeof e=="string"&&e.trim()!=="on"&&e.trim()!==""?e.split(","):Array.isArray(e)?e:null;return t?t.map(n=>String(n).trim()).filter(n=>Je.includes(n)):"on"}function Ut(e){return Array.isArray(e)?[...new Set(e.filter(t=>typeof t=="string"&&(xe.includes(t)||Je.includes(t))))]:[]}var ue=e=>`pivotkit:tips:${e}`;function Qn(e,t){return e?jt(ue(e),t):null}function er(e){if(!e)return[];try{return Ut(JSON.parse(e))}catch{return[]}}function tr(e,t){return e?Pt(ue(e),t):()=>{}}function nr(e,t,n){e&&t&&Ft(ue(e),t,n.length?JSON.stringify(n):null)}function rr(e){return{...e,filters:U(e).map(se)}}var te=null,Xe=null;function or(){return te??=import("./import-ui-SZTWEYHK.js").then(e=>Xe=e,e=>{throw te=null,e}),te}var ir=()=>Xe;export{_ as a,Ye as b,Le as c,Ke as d,Qe as e,Ht as f,Gt as g,O as h,xt as i,ie as j,tt as k,Xt as l,nt as m,se as n,ot as o,m as p,Yt as q,U as r,Pe as s,Kt as t,Fe as u,Qt as v,en as w,lt as x,tn as y,nn as z,ut as A,ct as B,ft as C,rn as D,on as E,Me as F,dt as G,sn as H,an as I,ln as J,ae as K,un as L,mt as M,_e as N,cn as O,fn as P,dn as Q,mn as R,hn as S,pn as T,gn as U,yn as V,pt as W,ze as X,wn as Y,Sn as Z,Be as _,V as $,gt as aa,yt as ba,I as ca,vt as da,Ot as ea,Ct as fa,On as ga,bn as ha,kn as ia,Cn as ja,At as ka,Nt as la,Ln as ma,En as na,An as oa,Nn as pa,Dn as qa,Rn as ra,$n as sa,jn as ta,Pn as ua,Fn as va,Mn as wa,zn as xa,$t as ya,Bn as za,Un as Aa,jt as Ba,Pt as Ca,Ft as Da,He as Ea,Ve as Fa,Ge as Ga,Zn as Ha,Jn as Ia,Hn as Ja,Vn as Ka,Gn as La,xn as Ma,Xn as Na,Yn as Oa,Kn as Pa,Ut as Qa,Qn as Ra,er as Sa,tr as Ta,nr as Ua,rr as Va,or as Wa,ir as Xa};
@@ -0,0 +1,2 @@
1
+ import{W as w}from"./chunk-KO3EKDH5.js";import{d as O,i as A,n as p}from"./chunk-XR4CMFGN.js";var S=e=>e?`pivot-${e}`:"pivot",I=e=>e?e.split("&"):[],$=(e,t)=>e.startsWith(`${encodeURIComponent(t)}=`);function T(e,t){let r=S(t),s=typeof e=="string"?e.replace(/^#/,""):"",o=I(s).find(a=>$(a,r)),i=o?o.slice(encodeURIComponent(r).length+1):"";return i||null}function M(e,t,r){let s=S(t),o=e.indexOf("#"),i=o===-1?e:e.slice(0,o),a=I(o===-1?"":e.slice(o+1)).filter(n=>!$(n,s)),c=r?[...a,`${encodeURIComponent(s)}=${r}`]:a;return c.length?`${i}#${c.join("&")}`:i}var L="pivotkit-view",h=2,x=Object.freeze([1,2]),V="https://pivotkit.eize.dev/schema/view-file-2.json",u=Object.freeze({text:1e6,name:256,description:2e3,fields:1e3}),k=Object.freeze(["string","number","date","boolean","null"]);function m(e,t){return typeof e!="string"?"":e.replace(/[\u0000-\u001F\u007F]+/g," ").trim().slice(0,t)}var l=(e,t)=>p(e)&&Object.hasOwn(e,t)?e[t]:void 0;function _(e,t,r=!1){if(!p(e))return e;let s=r?JSON.parse(JSON.stringify(e)):e,o=n=>{let f=l(s,n);return Array.isArray(f)?f:[]},i=new Set(o("derived").map(n=>l(n,"name")).filter(n=>typeof n=="string").map(n=>n.toLowerCase())),a=n=>i.has(n.toLowerCase())?"grouping":"field",c=(n,f)=>{let d=Array.isArray(n)?n[f]:l(n,f);typeof d=="string"&&d!==""&&t(d,a(d),g=>{n[f]=g})};for(let n of["rows","cols"]){let f=o(n);f.forEach((d,g)=>c(f,g))}o("values").forEach(n=>c(n,"field"));for(let n of o("filters"))c(n,"field"),p(l(n,"by"))&&c(n.by,"field");for(let n of o("sort"))c(n,"field"),p(l(n,"value"))&&c(n.value,"field");for(let n of o("derived")){let f=l(n,"field");typeof f=="string"&&f!==""&&t(f,"source",d=>{n.field=d})}return s}function b(e){let t=new Map,r=l(e,"derived");for(let i of Array.isArray(r)?r:[]){let a=l(i,"name"),c=l(i,"field");typeof a=="string"&&typeof c=="string"&&t.set(a.toLowerCase(),c)}let s=[],o=new Set;return _(e,(i,a)=>{if(a==="source")return;let c=t.get(i.toLowerCase())??i;o.has(c.toLowerCase())||(o.add(c.toLowerCase()),s.push(c))}),s}function C(e){let t=e&&e.schema&&Array.isArray(e.schema.fields)?e.schema.fields:[];return new Map(t.filter(r=>r&&typeof r.name=="string").map(r=>[r.name.toLowerCase(),r]))}function z(e,t={},r={}){if(!p(e))throw new TypeError("toViewFile(view): view must be an object");let s=m(t.name,u.name),o=m(t.source?.id,u.name),i=o?E(t.source?.params,O,()=>{}):null,a=i&&Object.keys(i).length?{params:i}:{};if(r.link)return{format:L,formatVersion:h,...o?{source:{id:o,...a}}:{},...s?{name:s}:{},view:e};let c=m(t.description,u.description),n=t.createdAt instanceof Date?t.createdAt:typeof t.createdAt=="string"&&t.createdAt?new Date(t.createdAt):null,f=n&&!Number.isNaN(n.getTime())?n.toISOString():null,d=t.generator&&typeof t.generator.name=="string"?{name:m(t.generator.name,u.name),version:m(t.generator.version,u.name)}:null,g=m(t.source?.name,u.name),N=t.schemaUrl===void 0?V:typeof t.schemaUrl=="string"?t.schemaUrl.trim():"",F=C(t.data),v=t.data?b(e).map(y=>F.get(y.toLowerCase())).filter(Boolean).map(y=>({name:y.name,type:typeof y.type=="string"?y.type:"string"})):null;return{...N?{$schema:N}:{},format:L,formatVersion:h,name:s,...c?{description:c}:{},...f?{createdAt:f}:{},...d?{generator:d}:{},source:{...o?{id:o}:{},...g?{name:g}:{},...v?{fields:v}:{},...a},extensions:{},view:e}}function W(e){return`${JSON.stringify(e,null,2)}
2
+ `}function G(e){return`${(typeof e=="string"?e:"").toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80).replace(/-+$/,"")||"view"}.pivotkit.json`}function B(e,t={}){let r={view:null,envelope:!1,formatVersion:null,name:"",description:"",createdAt:null,generator:null,source:null,failed:null,issues:[]},s=(n,f)=>({...r,failed:n,issues:[...r.issues,{path:"",message:f}]}),o=e;if(typeof e=="string"){if(e.trim()==="")return s("empty","empty text");if(e.length>u.text)return s("tooLarge",`longer than ${u.text} characters`);try{o=JSON.parse(e)}catch{return s("notJson","not valid JSON")}}if(!p(o))return s("notView","not a JSON object");let i=(n,f)=>r.issues.push({path:n,message:f}),a;if(l(o,"format")===L){r.envelope=!0;let n=l(o,"formatVersion");if(n==null)i("formatVersion","missing; read as 1");else if(!x.includes(n))return(typeof n=="number"?n:typeof n=="string"&&n.trim()!==""?Number(n):NaN)>h?s("newerFormat",`format version ${JSON.stringify(n)} is newer than ${h}`):s("notView",`format version ${JSON.stringify(n)} is not one of ${x.join(", ")}`);r.formatVersion=n??1,a=l(o,"view"),r.name=m(l(o,"name"),u.name),r.description=m(l(o,"description"),u.description);let f=l(o,"createdAt");r.createdAt=typeof f=="string"&&!Number.isNaN(Date.parse(f))?f.slice(0,64):null,f!==void 0&&r.createdAt===null&&i("createdAt","not a date and time");let d=l(o,"generator");p(d)&&typeof l(d,"name")=="string"&&(r.generator={name:m(l(d,"name"),u.name),version:m(l(d,"version"),u.name)}),r.source=J(l(o,"source"),i,A(t))}else{let n=l(o,"view");p(n)&&typeof l(o,"name")=="string"?(a=n,r.name=m(l(o,"name"),u.name)):a=o}if(!p(a))return s("notView","no view object");let c=l(a,"version");return typeof c=="number"&&c>w?s("newerView",`view version ${c} is newer than ${w}`):(r.view=a,t.data&&(r.compatible=j(r,t.data,t.sourceId)),r)}function E(e,t,r){if(e==null)return null;if(!p(e))return r("source.params","not an object"),null;let s=Object.create(null),o=Object.keys(e);o.length>t.srcParams&&r("source.params",`more than ${t.srcParams} parameters; the rest left out`);for(let i of o.slice(0,t.srcParams)){let a=l(e,i);i===""||i.length>t.srcParamLength||typeof a!="string"||a.length>t.srcParamLength?r(`source.params.${i.slice(0,100)}`,`a parameter is a name and a text of at most ${t.srcParamLength} characters`):s[i]=a}return{...s}}function J(e,t,r){if(e===void 0)return null;if(!p(e))return t("source","not an object"),null;let s={},o=m(l(e,"id"),u.name),i=m(l(e,"name"),u.name);o&&(s.id=o),i&&(s.name=i);let a=E(l(e,"params"),r,t);a&&Object.keys(a).length&&(s.params=a);let c=l(e,"fields");return c!==void 0&&(Array.isArray(c)?(c.length>u.fields&&t("source.fields",`more than ${u.fields} fields; the rest left out`),s.fields=[],c.slice(0,u.fields).forEach((n,f)=>{let d=m(l(n,"name"),u.name),g=l(n,"type");d?k.includes(g)?s.fields?.push({name:d,type:g}):(t(`source.fields[${f}].type`,`unknown type ${JSON.stringify(g)}`),s.fields?.push({name:d,type:"string"})):t(`source.fields[${f}]`,"no name")})):t("source.fields","not a list")),s}function j(e,t,r){let s=C(t),o=e.source?.fields,i=b(e.view),a=i.filter(d=>!s.has(d.toLowerCase())),c=(o??[]).filter(d=>s.has(d.name.toLowerCase())&&s.get(d.name.toLowerCase()).type!==d.type).map(d=>({name:d.name,type:d.type,dataType:String(s.get(d.name.toLowerCase()).type)})),n=e.source?.id,f=typeof r=="string"&&r&&n?n===r?"same":"other":"unknown";return{ok:f!=="other"&&a.length===0&&c.length===0,source:f,missing:a,changed:c,needs:i}}export{S as a,T as b,M as c,u as d,z as e,W as f,G as g,B as h,E as i};
@@ -0,0 +1,13 @@
1
+ import{c as se,e as ae}from"./chunk-UTPKLCNX.js";import{c as j,l as D}from"./chunk-OHKPNELV.js";import{N as ee,O as te,P as oe,Q as L,S as ne,T as M,d as Z,j as K,n as Q}from"./chunk-KO3EKDH5.js";import{b as h,c as R,i as B,j as _,k as Y,l as F,m as w,r as q,w as W}from"./chunk-XR4CMFGN.js";import{a as re}from"./chunk-5QXN3X2Q.js";var X=String.raw`[+\-\u2212]?\p{Sc}?\d[\d.,'\u2019\u00a0\u202f ]*(?:[\u00a0\u202f ]?(?:%|\p{Sc}))?`,ge=new RegExp(`^${X}$`,"u"),U=/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/g,be=/^[\s\u0000-\u001f\u007f-\u009f\u00ad\u061c\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff]+/,N=e=>Ee(e.replace(U,"")),Se=new RegExp(`^${X}\\s\u2013\\s${X}$`,"u");function Fe(e){return ue(e)===","?";":","}function ue(e){let t=Z(e).formatToParts(1.5).find(o=>o.type==="decimal");return t?t.value:"."}function Ee(e){if(/^[\t\r]/.test(e))return`'${e}`;let t=e.replace(be,"");return/^[=@]/.test(t)||/^[+-]/.test(t)&&!ge.test(t)&&!Se.test(t)?`'${e}`:e}function ce(e){let t=new Date(e),o=`${F(t.getUTCFullYear(),4)}-${F(t.getUTCMonth()+1)}-${F(t.getUTCDate())}`;return e%_===0?o:`${o} ${F(t.getUTCHours())}:${F(t.getUTCMinutes())}:${F(t.getUTCSeconds())}`}function ke(e,t){let o=String(Number(e.toPrecision(15)));return t==="."?o:o.replace(".",t)}function Re(e,t){let o=Math.sign(e)*Number(Math.abs(e).toFixed(t));return o===0?0:o}function De(e,t,o,n,s){let a=ee(t)?.name,c=a==="percent"||a==="percent100",r=n||c?te(t,s):null,u=a==="percent"?e*100:e,m=ke(r===null?u:Re(u,r),o);return c?`${m}%`:m}function H(e,t){let o=new Map;for(let n of e.merges)for(let s=n.row;s<n.row+n.rowSpan;s++)for(let a=n.col;a<n.col+n.colSpan;a++)(s!==n.row||a!==n.col)&&o.set(`${s},${a}`,e.rows[n.row][n.col]);return e.rows.map((n,s)=>n.map((a,c)=>{if(a)return a;let r=o.get(`${s},${c}`);return t&&r&&r.kind==="rowHeader"&&r.total===0&&(r.colSpan??1)===1?r:null}))}var me=e=>e.kind==="value"&&typeof e.value=="number"&&Number.isFinite(e.value);function ie(e,t){return t=w(t,"toCsv"),h(D(e),"toCsv(grid): grid must come from toGrid()"),O(e,t)}function O(e,t){let o=e.locale??Y,n=t.separator??Fe(o),s=ue(o),a=r=>{let u=N(r);return/["\r\n]/.test(u)||u.includes(n)?`"${u.replace(/"/g,'""')}"`:u};return H(e,t.repeatLabels!==!1).map(r=>r.map(u=>{if(!u)return"";if(me(u)){let m=u.valueIndex!==void 0&&!!e.showAs?.[u.valueIndex];return u.valueType==="date"?ce(u.value):De(u.value,u.format,s,m,o)}return a(u.text)}).join(n)).join(`\r
2
+ `)+`\r
3
+ `}function le(e){let t=o=>{let n=N(String(o??""));return/["\t\r\n]/.test(n)?`"${n.replace(/"/g,'""')}"`:n};return e.map(o=>o.map(t).join(" ")).join(`\r
4
+ `)+`\r
5
+ `}function Ae(e){return Array.isArray(e)?(h(e.every(Array.isArray),"toTsv(rows): rows must be arrays of texts"),le(e)):(h(D(e),"toTsv(grid): grid must come from toGrid() or be an array of rows"),le(H(e,!0).map(t=>t.map(o=>o?o.text:""))))}function Ie(e){return!e||e.value===null||e.value===void 0?null:me(e)?e.valueType==="date"?ce(e.value):Number(e.value.toPrecision(15)):typeof e.value=="number"?null:e.value}function _e(e,t){t=w(t,"toJson"),h(D(e),"toJson(grid): grid must come from toGrid()");let o=H(e,!0),n=e.rowHeaderColumns,s=o.slice(0,e.headerRows),a=m=>m?m.text:"",c=s[s.length-1]??[],r=s.map(m=>m.slice());for(let m of e.merges)for(let d=m.row;d<Math.min(m.row+m.rowSpan,e.headerRows);d++)for(let i=m.col;i<m.col+m.colSpan;i++)r[d][i]=e.rows[m.row][m.col];let u={rowHeaders:Array.from({length:n},(m,d)=>a(c[d]??null)),columns:e.dataColumns.map((m,d)=>{let i=n+d,x=[],b=null;for(let A of r){let v=A[i];v&&v!==b&&v.kind!=="corner"&&v.text!==""&&x.push(v.text),b=v}return{labels:x,value:m.valueIndex>=0?e.valueNames[m.valueIndex]??null:null,total:m.total}}),rows:e.bodyRows.map((m,d)=>{let i=o[e.headerRows+d];return{labels:i.slice(0,n).map(a),total:m.total,collapsed:m.collapsed,values:i.slice(n).map(Ie)}})};return JSON.stringify(u,null,t.space??2)}function Le(e,t){return t=w(t,"toCsvBytes"),new TextEncoder().encode((t.bom===!1?"":"\uFEFF")+ie(e,t))}var Ne=25569,Oe=1048576,Be=16384,fe=32767,je=Date.UTC(1900,0,1),Me=Date.UTC(1900,2,1),Xe=Date.UTC(1e4,0,1),Ue=new Set(["history"]);function G(e){return String(e).replace(U,"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").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 s=(n-1)%26;o=String.fromCharCode(65+s)+o,n=Math.floor((n-1)/26)}return`${o}${t+1}`}function He(e){if(!(e>=je&&e<Xe))return null;let t=e/_+Ne;return e<Me?t-1:t}function pe(e){return`FF${q(e).toUpperCase()}`}function Ge(e){let t=String(e??"").replace(/[\u0000-\u001F\u007F\\/?*[\]:]/g," ").replace(/^'+|'+$/g,"").trim().slice(0,31).trim();return Ue.has(t.toLowerCase())?`${t} 1`:t||"Pivot"}function Pe(e){let t=new Map;for(let[n,s]of e)t.has(s)||t.set(s,[]),t.get(s).push(n);let o=[];for(let[n,s]of[...t.entries()].sort((a,c)=>a[0]-c[0])){s.sort((r,u)=>r-u);let a=s[0],c=s[0];for(let r=1;r<=s.length;r++){if(r<s.length&&s[r]===c+1){c=s[r];continue}o.push(a===c?E(n,a):`${E(n,a)}:${E(n,c)}`),r<s.length&&(a=c=s[r])}}return o.join(" ")}function P(e,t){t=w(t,"toXlsx"),h(D(e),"toXlsx(grid): grid must come from toGrid()"),R("xlsxRows",e.rows.length,Oe,"rows (an Excel sheet)"),R("xlsxColumns",e.columnCount,Be,"columns (an Excel sheet)");let o={...re,...t.theme||{}},n=e.locale,s=new Map,a=[{fmt:0,bold:!1,top:!1}],c=new Map([["0|false|false",0]]),r=(f,p,T=!1)=>{let y=0;f&&f!=="General"&&(s.has(f)||s.set(f,164+s.size),y=s.get(f));let l=`${y}|${p}|${T}`;return c.has(l)||(c.set(l,a.length),a.push({fmt:y,bold:p,top:T})),c.get(l)},u=(f,p,T,y)=>{let l=p.length>fe?p.slice(0,fe):p;return`<c r="${f}" t="inlineStr" s="${r("General",T,y)}"><is><t xml:space="preserve">${G(l)}</t></is></c>`},m=(f,p,T,y,l)=>`<c r="${f}" s="${r(T,y,l)}"><v>${p}</v></c>`,d=new Array(e.columnCount).fill(6),i=new Map,x=e.rows.map((f,p)=>{let T=p<e.headerRows,y=f.map((l,S)=>{if(!l)return"";let $=E(S,p),C=T||l.total>0;if((!l.colSpan||l.colSpan===1)&&(d[S]=Math.max(d[S],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 g=i.get(l.valueIndex)??{cells:[],min:1/0,max:-1/0};g.cells.push([p,S]),g.min=Math.min(g.min,l.value),g.max=Math.max(g.max,l.value),i.set(l.valueIndex,g)}if(l.valueType==="date"){let g=He(l.value);return g===null?u($,l.text,C):m($,g,M(l.format,l.value,n),C)}return m($,l.value,M(l.format,l.value,n),C)}let I=(l.rowSpan??1)>1;return(l.kind==="rowHeader"||l.kind==="colHeader")&&typeof l.value=="number"&&l.text===String(l.value)?m($,l.value,"General",C,I):l.text===""?C?`<c r="${$}" s="${r("General",!0)}"/>`:"":u($,l.text,C,I)});return`<row r="${p+1}">${y.join("")}</row>`}),b=1,A=[...i.entries()].map(([f,{cells:p,min:T,max:y}])=>{let l=e.conditional[f],S;if(l.type==="colorScale"){let $=l.colors.length>=2?l.colors:o.colorScale,C=$.length===3?'<cfvo type="min"/><cfvo type="percentile" val="50"/><cfvo type="max"/>':'<cfvo type="min"/><cfvo type="max"/>';S=`<cfRule type="colorScale" priority="${b++}"><colorScale>${C}${$.map(I=>`<color rgb="${pe(I)}"/>`).join("")}</colorScale></cfRule>`}else{let $=T>0?'<cfvo type="num" val="0"/>':'<cfvo type="min"/>',C=y<0?'<cfvo type="num" val="0"/>':'<cfvo type="max"/>';S=`<cfRule type="dataBar" priority="${b++}"><dataBar>${$}${C}<color rgb="${pe(l.color||o.dataBar)}"/></dataBar></cfRule>`}return`<conditionalFormatting sqref="${Pe(p)}">${S}</conditionalFormatting>`}),v=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"/>`:"",z=d.map((f,p)=>`<col min="${p+1}" max="${p+1}" width="${f}" customWidth="1"/>`).join(""),we=e.merges.length?`<mergeCells count="${e.merges.length}">${e.merges.map(f=>`<mergeCell ref="${E(f.col,f.row)}:${E(f.col+f.colSpan-1,f.row+f.rowSpan-1)}"/>`).join("")}</mergeCells>`:"",k=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
6
+ `,ve=`${k}<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetViews><sheetView workbookViewId="0">${v}</sheetView></sheetViews>${z?`<cols>${z}</cols>`:""}<sheetData>${x.join("")}</sheetData>${we}${A.join("")}</worksheet>`,ye=[...s.entries()].map(([f,p])=>`<numFmt numFmtId="${p}" formatCode="${G(f)}"/>`).join(""),$e=`${k}<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">${s.size?`<numFmts count="${s.size}">${ye}</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(f=>`<xf numFmtId="${f.fmt}" fontId="${f.bold?1:0}"${f.fmt?' applyNumberFormat="1"':""}${f.bold?' applyFont="1"':""}${f.top?' applyAlignment="1"><alignment vertical="top"/></xf>':"/>"}`).join("")}</cellXfs><dxfs count="0"/></styleSheet>`,Te=G(Ge(t.sheetName)),Ce={"[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="${Te}" 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":$e,"xl/worksheets/sheet1.xml":ve},V={};for(let[f,p]of Object.entries(Ce))V[f]=se(p);return ae(V,{level:6})}var de=new Set(["date","datetime","time"]);function Je(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(s=>s.toLowerCase()===o);return n===void 0?void 0:e[n]}function ze(e,t,o,n){let s=t?t.split(":")[0]:null;if(e.type==="date"){let a=s&&de.has(s)?t:e.dateOnly?"date":"datetime",c=L(a,o);return r=>({kind:"value",total:0,value:r,valueType:"date",format:a,text:c(r)})}if(e.type==="number"&&s!=="text"){let a=t&&!de.has(s)?t:null,c=a?L(a,o):null;return r=>{let u=a??`number:${ne(r,6)}`;return{kind:"value",total:0,value:r,valueType:"number",format:u,text:c?c(r):L(u,o)(r)}}}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 J(e,t,o,n){h(j(e),`${n}(data, indices): data must come from encode()`),h(t!==null&&typeof t=="object"&&typeof t.length=="number",`${n}(data, indices): indices must be an array of row positions`);let s=B(o),a=W(null,o.locale),c={...K,...o.labels||{}},r=e.columns;o.columns!==void 0&&(h(Array.isArray(o.columns),`${n}: options.columns must be an array of field names`),r=o.columns.map(i=>e.column(String(i))).filter(i=>i!==void 0)),R("cells",(t.length+1)*r.length,s.cells,"rows x columns of the rows export");let u=r.map(i=>{let x=Je(o.formats,i.name);return ze(i,typeof x=="string"&&oe(x)?x.trim().toLowerCase():null,a,c)}),d=[r.map(i=>({kind:"colHeader",total:0,value:i.name,text:Q(i.name,c)}))];for(let i=0;i<t.length;i++){let x=t[i];h(Number.isInteger(x)&&x>=0&&x<e.length,`${n}: indices[${i}] is not a row of the data`),d.push(r.map((b,A)=>{let v=b.codes[x];return v<0?null:u[A](b.dict[v])}))}return{rows:d,headerRows:1,rowHeaderColumns:0,columnCount:r.length,merges:[],dataColumns:[],bodyRows:[],formats:[],showAs:[],valueNames:[],conditional:[],locale:a,timeZone:e.timeZone}}function Ve(e,t,o){return o=w(o,"rowsToCsv"),O(J(e,t,o,"rowsToCsv"),o)}function Ye(e,t,o){return o=w(o,"rowsToCsvBytes"),new TextEncoder().encode((o.bom===!1?"":"\uFEFF")+O(J(e,t,o,"rowsToCsvBytes"),o))}function qe(e,t,o){return o=w(o,"rowsToXlsx"),P(J(e,t,o,"rowsToXlsx"),{sheetName:o.sheetName})}function We(e,t){let[o,n]=new Date(e).toISOString().split("T");return t?o:`${o}T${e%1e3===0?n.slice(0,8):n.slice(0,12)}`}function he(e,t,o){h(j(e),`${o}(data): data must come from encode()`);let n=e.columns.filter(c=>!c.derived);t.columns!==void 0&&(h(Array.isArray(t.columns),`${o}: options.columns must be an array of field names`),n=[...new Set(t.columns.map(r=>String(r).toLowerCase()))].map(r=>n.find(u=>u.key===r)).filter(r=>r!==void 0)),R("cells",(e.length+1)*n.length,B(t).cells,"rows x columns of the data export");let s=n.map(c=>c.type==="date"?r=>We(r,!!c.dateOnly):r=>r);return{columns:n,cell:(c,r)=>{let u=n[r].codes[c];return u<0?null:s[r](n[r].dict[u])}}}function Ze(e,t){return t=w(t,"dataToCsv"),xe(e,t,"dataToCsv")}function Ke(e,t){return t=w(t,"dataToCsvBytes"),new TextEncoder().encode((t.bom===!1?"":"\uFEFF")+xe(e,t,"dataToCsvBytes"))}function xe(e,t,o){let{columns:n,cell:s}=he(e,t,o),a=u=>{let m=N(String(u));return/[",\r\n]/.test(m)?`"${m.replace(/"/g,'""')}"`:m},c=[n.map(u=>a(u.name)).join(",")],r=n.length===1?'""':"";for(let u=0;u<e.length;u++){let m=new Array(n.length);for(let d=0;d<n.length;d++){let i=s(u,d);m[d]=i===null?r:typeof i=="string"?a(i):String(i)}c.push(m.join(","))}return c.join(`\r
7
+ `)+`\r
8
+ `}function Qe(e,t){t=w(t,"dataToJson");let{columns:o,cell:n}=he(e,t,"dataToJson"),s=[];for(let a=0;a<e.length;a++){let c=Object.create(null);for(let r=0;r<o.length;r++)c[o[r].name]=n(a,r);s.push(JSON.stringify(c))}return s.length?`[
9
+ ${s.join(`,
10
+ `)}
11
+ ]
12
+ `:`[]
13
+ `}export{ie as a,Ae as b,_e as c,Le as d,P as e,Ve as f,Ye as g,qe as h,Ze as i,Ke as j,Qe as k};
@@ -0,0 +1 @@
1
+ import{a as se,c as ne,g as Q,h as je,i as Me,j as ze}from"./chunk-OHKPNELV.js";import{$ as Ce,A as ye,B as we,C as $e,D as Se,E as Le,G as xe,H as Ae,I as Y,J as Ee,M as Oe,Q as H,U as Te,V as Z,Y as ve,Z as q,_ as Ie,a as ie,aa as _e,ba as ke,ca as Ne,da as Fe,e as W,ea as Re,f as ae,g as le,ga as M,ha as K,i as ce,j,o as X,p as fe,s as me,t as ue,v as de,w as pe,x as he,y as ge,z as be}from"./chunk-KO3EKDH5.js";import{b as E,c as re,i as U,m as C,w as V}from"./chunk-XR4CMFGN.js";import{a as O,b as ee}from"./chunk-5QXN3X2Q.js";function Ke(e,t,o){o=C(o,"fieldItems"),E(ne(e),"fieldItems(data, field): data must come from encode()");let r=U(o),{view:n}=M(o.view??{},e,{limits:o.limits}),s=V(n.formatting.locale,o.locale),i={...j,...o.labels||{}};if(typeof t!="string")return null;let a=n.derived.find(h=>h.name.toLowerCase()===t.trim().toLowerCase()),c=a?ce(e,a):e.column(t.trim());if(!c)return null;let p=new Float64Array(c.dict.length+1);for(let h=0;h<c.codes.length;h++)p[c.codes[h]+1]++;let u=fe(c,s,e.cache),m=Ee(n,c.name,c,a?e.column(a.field)??c:c,s,()=>xe(o.now,e.timeZone)),l=h=>!m||m[h+1]===1,f=[];for(let h=0;h<c.dict.length;h++)p[h+1]>0&&f.push(h);f.sort((h,d)=>u[h]-u[d]);let y=f.map(h=>({value:c.dict[h],label:X(c,c.dict[h],s,i),count:p[h+1],kept:l(h)}));return p[0]>0&&y.push({value:null,label:X(c,null,s,i),count:p[0],kept:l(-1)}),{field:c.name,type:c.type,items:y.slice(0,r.items),truncated:y.length>r.items}}function De(e,t){t=C(t,"toSeries"),E(Q(e),"toSeries(result): result must come from computePivot()");let o=U(t),r=e.view,n={...j,...t.labels||{}},s=t.separator??" / ",i=(d,g,w)=>je(d,g,w,!1,!1).filter(b=>b.kind!=="grand"),a=i(e.rowRoot,r.rows.length,r.collapsed.rows),c=i(e.colRoot,r.cols.length,r.collapsed.cols);a.length===0&&(a=[{node:e.rowRoot,kind:"leaf"}]);let p=a.length;t.maxCategories!==void 0&&(E(Number.isInteger(t.maxCategories)&&t.maxCategories>0,"toSeries: maxCategories must be a positive whole number"),a=a.slice(0,t.maxCategories)),c.length===0&&(c=[{node:e.colRoot,kind:"leaf"}]);let u=(d,g)=>{let w=[];for(let b=g;b&&b.parent;b=b.parent)w.unshift(e.label(d,b,n));return w},m=(d,g)=>{let w=u(d,g);return w.length?w.join(s):n.grandTotal},l=r.values.filter((d,g)=>e.valueTypes[g]!=="text").length;re("cells",a.length*Math.max(1,c.length*l),o.cells,"chart data points");let f=r.values.map(d=>ze(d,n)),y=d=>typeof d=="number"&&Number.isFinite(d)?d:null,h=[];for(let{node:d}of c)r.values.forEach((g,w)=>{if(e.valueTypes[w]==="text")return;let b=d.parent?m("cols",d):"",R=b&&r.values.length>1?`${b}${s}${f[w]}`:b||f[w];h.push({name:R,valueIndex:w,colPath:d.path,format:Me(e,w),data:a.map(({node:T})=>y(e.display(T,d,w)))})});return{categories:a.map(({node:d})=>m("rows",d)),categoryLevels:a.map(({node:d})=>u("rows",d)),categoryCount:p,categoryPaths:a.map(({node:d})=>d.path),series:h,totals:r.values.map((d,g)=>a.map(({node:w})=>y(e.display(w,e.colRoot,g))))}}var Qe=e=>e+16,et=e=>({top:Math.max(24,e+10),bottom:Math.max(32,e+18),right:160});function tt(e,t,o,r){let n=et(r.fontSize),s=e==="bottom"||e==="right"||e==="off"?e:t?"top":"off";return s==="off"?{legend:null,room:{top:0,bottom:0,right:0}}:s==="right"?{legend:{type:"scroll",orient:"vertical",right:0,top:o+8,bottom:8,textStyle:r},room:{top:0,bottom:0,right:n.right}}:s==="bottom"?{legend:{type:"scroll",bottom:0,textStyle:r},room:{top:0,bottom:n.bottom,right:0}}:{legend:{type:"scroll",top:o,textStyle:r},room:{top:n.top,bottom:0,right:0}}}var Pe=e=>e+12;function ot(e,t,o,{separator:r,axisLine:n,theme:s}){let i=e.categoryLevels??[];if(o.groupLabels==="off"||t<2||!i.some(f=>f.length>=2))return null;let a=i.map(f=>f[0]??""),c=i.map((f,y)=>f.length>1?f.slice(1).join(r):e.categories[y]),p=a.map((f,y)=>y===0||f!==a[y-1]),u=new Set,m=0,l=a.length;for(let f=1;f<=a.length;f++)(f===a.length||p[f])&&(u.add(Math.floor((m+f-1)/2)),l=Math.min(l,f-m),m=f);return{leaves:c,axis:{type:"category",data:a,position:o.horizontal?"left":"bottom",offset:Pe(s.textSize??O.textSize),axisLine:{show:!1},axisTick:{show:!0,inside:!0,length:Pe(s.textSize??O.textSize),interval:f=>f>0&&p[f]===!0,lineStyle:n.lineStyle},axisLabel:{color:s.textColor,fontSize:s.textSize??O.textSize,fontWeight:s.strongWeight??O.strongWeight,interval:f=>u.has(f)},axisPointer:{show:!1},splitLine:{show:!1},groups:!0,groupsAuto:o.groupLabels!=="on",groupSize:l}}}function z(e,t){let o=Array.isArray(e.derived)?e.derived:[],r=n=>{let s=String(n).toLowerCase(),i=o.find(a=>a&&typeof a.name=="string"&&a.name.toLowerCase()===s);return i&&!W.includes(i.by)?!1:t.column(i?i.field:n)?.type==="date"};return(Array.isArray(e.rows)?e.rows:[]).some(r)?"line":"bar"}function rt(e,t){t=C(t,"toEChartsOption"),E(Q(e),"toEChartsOption(result): result must come from computePivot()");let o=t.theme??{},r={...e.view.chart,...t.chart||{}};r.type==="auto"&&(r.type=z(e.view,e.encoded));let n=V(e.view.formatting.locale,t.locale??e.locale),s=t.series??De(e,t);E(s&&Array.isArray(s.series)&&Array.isArray(s.categories),"toEChartsOption: series must come from toSeries()");let i=s.series[0],a=H(i?i.format:"number",n),c=H(i&&/^percent/.test(i.format)?i.format:"compact",n),p={color:o.textColor,fontFamily:o.fontFamily,fontSize:o.textSize??O.textSize},u={color:p.color,fontSize:p.fontSize},m={lineStyle:{color:o.axisColor}},l={backgroundColor:o.backgroundColor??"transparent",textStyle:p,...o.colors&&o.colors.length?{color:o.colors}:{}},f=S=>typeof S=="number"?a(S):"",y=typeof r.title=="string"&&r.title.trim()?{title:{text:r.title.trim(),left:"center",top:0,textStyle:{...p,fontSize:o.titleSize??O.titleSize,fontWeight:o.strongWeight??O.strongWeight}}}:{},h=y.title?Qe(o.titleSize??O.titleSize):0,{legend:d,room:g}=tt(r.legend,q.includes(r.type)||s.series.length>1,h,p),w=d?{legend:d}:{},b=r.valueLabels==="off"||r.valueLabels==="value"||r.valueLabels==="percent"||r.valueLabels==="both"?r.valueLabels:"auto";if(q.includes(r.type)){let S=i?i.valueIndex:0,v=s.categories.map((L,qe)=>({name:L,value:s.totals[S]?s.totals[S][qe]:null})).filter(L=>typeof L.value=="number"&&L.value>0),_=L=>H("percent100:1",n)(L.percent),I=r.labelPosition==="inside",x={value:L=>a(L.value),percent:_,both:L=>`${a(L.value)} (${_(L)})`},J=b==="off"?{show:!1}:I?{position:"inside",formatter:x[b==="auto"?"percent":b]}:b==="auto"?{}:{formatter:L=>`${L.name}: ${x[b](L)}`},k=r.type==="donut"?o.donutRadius??O.donutRadius:o.pieRadius??O.pieRadius;return{...l,...y,tooltip:{trigger:"item",valueFormatter:f},...w,series:[{type:"pie",name:i?i.name:"",radius:[...k],top:h+g.top,...g.bottom?{bottom:g.bottom}:{},...g.right?{right:g.right}:{},data:v,...I?{minShowLabelAngle:12,labelLine:{show:!1}}:{},label:{...I?{}:{color:o.textColor},...J}}]}}if(r.type==="heatmap"){let S=s.series.filter(x=>x.valueIndex===(i?i.valueIndex:0)),v=[],_=1/0,I=-1/0;return S.forEach((x,J)=>{x.data.forEach((k,L)=>{k!==null&&(v.push([J,L,k]),_=Math.min(_,k),I=Math.max(I,k))})}),{...l,...y,tooltip:{trigger:"item",valueFormatter:f},grid:{top:16+h,bottom:64},xAxis:{type:"category",data:S.map(x=>x.name),axisLine:m,axisLabel:{...u,interval:0},splitArea:{show:!1}},yAxis:{type:"category",data:s.categories,axisLine:m,axisLabel:{...u},splitArea:{show:!1}},visualMap:{min:v.length?_:0,max:v.length?I:1,calculable:!0,orient:"horizontal",left:"center",bottom:0,textStyle:p,formatter:x=>typeof x=="number"?a(x):String(x),...o.heatmapColors?{inRange:{color:o.heatmapColors}}:{}},series:[{type:"heatmap",name:i?i.name:"",data:v,label:{show:b==="auto"?v.length<=200:b!=="off",formatter:x=>a(x.value[2])}}]}}let R=r.type==="line"||r.type==="area"?"line":"bar",T=ot(s,e.view.rows.length,r,{separator:t.separator??" / ",axisLine:m,theme:o}),D={type:"category",data:T?T.leaves:s.categories,axisLine:m,axisLabel:{...u}},oe={type:"value",axisLine:m,axisLabel:{...u,formatter:S=>c(S)},splitLine:{lineStyle:{color:o.gridColor}}},Xe=b!=="auto"&&b!=="off",Ye=R==="line"?"top":r.stacked?"inside":r.horizontal?"right":"top",Ze=Xe?{label:{show:!0,position:Ye,color:o.textColor,formatter:S=>typeof S.value=="number"?a(S.value):""}}:{};return{...l,...y,...w,tooltip:{trigger:"axis",valueFormatter:f},grid:{top:16+h+g.top,...g.bottom?{bottom:g.bottom+8}:{},...g.right?{right:g.right+8}:{}},xAxis:r.horizontal?oe:T?[D,T.axis]:D,yAxis:r.horizontal?T?[{...D,inverse:!0},{...T.axis,inverse:!0}]:{...D,inverse:!0}:oe,series:s.series.map(S=>({type:R,name:S.name,data:S.data,...r.stacked?{stack:"total"}:{},...r.type==="area"?{areaStyle:{}}:{},...R==="line"?{connectNulls:!1,smooth:!!r.smooth}:{},...Ze}))}}function st(e,t){if(e.chart.type!=="auto")return{auto:!1,swap:!1,chart:{type:e.chart.type,stacked:!!e.chart.stacked,horizontal:!!e.chart.horizontal}};let o=z(e,t),r=o==="bar"&&e.cols.length>0&&z({...e,rows:e.cols},t)==="line";return{auto:!0,swap:r,chart:{type:o==="line"||r?"line":"bar",stacked:!1,horizontal:!1}}}var Ue=Object.freeze({percentOfRowTotal:"percentOfColumnTotal",percentOfColumnTotal:"percentOfRowTotal",percentOfParentRow:"percentOfParentColumn",percentOfParentColumn:"percentOfParentRow"});function nt(e){let t=JSON.parse(JSON.stringify(e));[t.rows,t.cols]=[t.cols,t.rows],t.collapsed={rows:t.collapsed.cols,cols:t.collapsed.rows};for(let o of t.values)o.showAs&&o.showAs.axis&&(o.showAs={...o.showAs,axis:o.showAs.axis==="rows"?"cols":"rows"}),o.showAs&&Object.hasOwn(Ue,o.showAs.type)&&(o.showAs={...o.showAs,type:Ue[o.showAs.type]});return t}var Ve=8;function it(e){let t=f=>e.getPropertyValue(f).trim(),o=[];for(let f=1;f<=Ve;f++){let y=t(`--pk-chart-${f}`);y&&o.push(y)}let r={colors:o,textColor:t("--pk-muted")||void 0,axisColor:t("--pk-border")||void 0,gridColor:t("--pk-grid")||t("--pk-border")||void 0,fontFamily:t("font-family")||void 0,backgroundColor:"transparent"},n=Number(t("--pk-weight-strong"));n>=1&&n<=1e3&&(r.strongWeight=n);let s=ee(t("--pk-chart-title-size"));s!==null&&s>=1&&(r.titleSize=s);let i=ee(t("--pk-chart-text-size"));i!==null&&i>=1&&(r.textSize=i);let a=t("--pk-heat-low"),c=t("--pk-heat-high");a&&c&&(r.heatmapColors=[a,c]);let[p,u,m,l]=["--pk-scale-low","--pk-scale-mid","--pk-scale-high","--pk-chart-1"].map(t);return p&&m&&(r.colorScale=u?[p,u,m]:[p,m]),l&&(r.dataBar=l),r}var at=Object.freeze({aggregators:ie,commonAggregators:Object.freeze(["sum","count","average","min","max"]),columnTypes:se,deriveUnits:le,timelineUnits:W,cyclicUnits:ae,filterTypes:Y,filterFields:Object.freeze(Object.fromEntries(Y.map(e=>[e,Ae[e].fields]))),filterBlanks:Le,textOps:be,textOn:ye,matchCases:me,matchWhitespace:ue,compareOps:we,comparePrecisions:$e,topTies:Se,relativeUnits:de,relativeDirections:pe,relativeMaxCount:he,relativeAnchors:ge,formats:Oe,showAs:Z,showAsAlongAxis:Object.freeze(Z.filter(e=>Te[e].alongAxis)),chartTypes:ve,chartValueLabels:_e,chartLegends:Ne,chartAxisLabels:Fe,chartGroupLabels:Re,chartLabelPositions:ke,displayModes:Ie,conditionalTypes:Ce});var te=Object.freeze({items:20,text:80});function ct(e,t){if(e==null)return null;if(t==="date"&&typeof e=="number"){let r=new Date(e).toISOString();return r.endsWith("T00:00:00.000Z")?r.slice(0,10):r.slice(0,16)}let o=String(e);return o.length>te.text?`${o.slice(0,te.text-1)}\u2026`:o}var B=e=>e?e.field?`${e.agg} of ${e.field}`:`${e.agg} of rows`:"the first value",ft=e=>{let t=e.slice(0,10).map(o=>typeof o=="string"?JSON.stringify(ct(o,"string")):String(o));return e.length>10?`${t.join(", ")} and ${e.length-10} more`:t.join(", ")},mt=Object.freeze({exclude:"blanks dropped",include:"blanks kept",only:"only blanks"}),We=Object.freeze({"=":"is",">":"is greater than",">=":"is at least","<":"is less than","<=":"is at most",between:"is between"});function ut(e){let t=e.not?"not ":"",o=e.blanks?` (${mt[e.blanks]})`:"",r=(n,s)=>`${JSON.stringify(n)} and ${JSON.stringify(s)}`;switch(e.type){case"in":return`${e.field} is ${t}one of ${ft(e.items??[])||"(no items)"}${o}`;case"blank":return`${e.field} is ${t}blank`;case"text":return`${e.field}${e.on==="label"?" (as shown)":""} ${t?"does not ":""}${e.op==="equals"?t?"equal":"equals":e.op==="contains"?t?"contain":"contains":e.op==="beginsWith"?t?"begin with":"begins with":t?"end with":"ends with"} ${JSON.stringify(e.value)}${e.match?`, case ${e.match.case}, whitespace ${e.match.whitespace}`:""}${o}`;case"compare":return`${e.field} ${t?"is not":"is"} ${We[e.op].replace(/^is /,"")} ${e.op==="between"?r(e.value,e.value2):JSON.stringify(e.value)}${e.precision&&e.precision!=="day"?` (by ${e.precision})`:""}${o}`;case"relative":{let n=e.direction==="this"?`this ${e.unit}`:`${e.direction} ${e.count} ${e.unit}${e.count===1?"":"s"}`,s=[e.calendar===!1?"rolling":null,e.includeCurrent===!1?"current excluded":null,e.anchor&&e.anchor!=="today"?`from ${e.anchor}`:null].filter(Boolean);return`${e.field} ${t?"is not":"is"} in the ${n}${s.length?` (${s.join(", ")})`:""}${o}`}case"top":return`${e.bottom?"bottom":"top"} ${e.count} ${e.field} by ${B(e.by)}${e.ties==="all"?", ties kept":""}`;case"value":return`${e.field} where ${B(e.by)} ${t?"is not":"is"} ${We[e.op].replace(/^is /,"")} ${e.op==="between"?r(e.value,e.value2):JSON.stringify(e.value)}`;default:return`${e.field}: ${e.type}`}}function dt(e,t,o){o=C(o,"describeView");let{valid:r,errors:n,warnings:s}=K(e,t,o),i=M(e,t,o).view,a=i.values.map(l=>({field:l.field,agg:l.agg,label:l.label,showAs:l.showAs?.type??null,text:l.label??B(l)})),c=i.filters.map(l=>({...l,text:ut(l)})),p=i.derived.map(l=>({...l,text:`${l.name}: ${l.field} by ${l.by}${l.by==="bin"?` of ${l.size}`:""}`})),u=i.sort.map(l=>({...l,text:`${l.field} ${l.by==="value"?`by ${B(l.value)}`:l.by==="custom"?"in a custom order":"by label"}, ${l.order==="desc"?"descending":"ascending"}`})),m=[a.length?a.map(l=>l.text).join(", "):"count of rows",i.rows.length?`by ${i.rows.join(" > ")}`:null,i.cols.length?`across ${i.cols.join(" > ")}`:null,c.length?`where ${c.map(l=>l.text).join("; and ")}`:null,i.display==="chart"?`as a ${i.chart.type==="auto"?"chart":`${i.chart.type} chart`}`:null];return{valid:r,errors:n,warnings:s,rows:{fields:i.rows,text:i.rows.join(" > ")},cols:{fields:i.cols,text:i.cols.join(" > ")},values:a,filters:c,derived:p,sort:u,display:{mode:i.display,chart:i.display==="chart"?i.chart.type:null},text:`${r?"":`(invalid: ${n.length} error${n.length===1?"":"s"}, the parts they name are left out) `}${m.filter(Boolean).join(" ")}`}}var A=Object.freeze({fields:1e3,label:120,description:1e3,order:1e3,href:2e3,depth:32,steps:2e4}),N=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),$=(e,t)=>N(e)&&Object.hasOwn(e,t)?e[t]:void 0,G=(e,...t)=>Object.fromEntries(Object.entries(e).filter(([o])=>!t.includes(o)));function He(e,t){if(typeof e!="string")return;let o=e.slice(0,t*4).replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029]+/g," ").replace(/[\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u2069\ufeff]/g,"").replace(/\s+/g," ").trim();if(o)return o.length>t?`${o.slice(0,t-1).trimEnd()}\u2026`:o}function pt(e){if(!(typeof e!="string"||e.length>A.href))try{let t=new URL(e.trim());return t.protocol==="https:"&&!t.username&&!t.password?t.href:void 0}catch{return}}function Je(e,t){if(typeof t!="string"||!t.startsWith("#"))return;let o=t.slice(1).split("/").slice(1).map(n=>n.replace(/~1/g,"/").replace(/~0/g,"~")),r=e;for(let n of o)if(r=Array.isArray(r)&&/^\d+$/.test(n)?r[Number(n)]:$(r,n),r===void 0)return;return r}var Be=Symbol("resolving");function P(e,t,o,r=o){let n=`${r}:${t}`;!e.said.has(n)&&e.issues.length<100&&(e.said.add(n),e.issues.push({path:t,message:o}))}function F(e,t,o,r=0){if(!N(t))return;if(r>A.depth){P(e,o,`nested deeper than ${A.depth} levels; not read`,"depth");return}if(e.steps<=0){P(e,"",`stopped after ${A.steps} schema objects; the rest is not read`,"steps");return}e.steps-=1;let n=t,s=$(n,"$ref");if(typeof s=="string"){let a=e.refs.get(s);if(a===Be){P(e,o,`$ref ${s.slice(0,200)} refers to itself; not read`);return}if(!e.refs.has(s)){let c=Je(e.root,s);c===void 0&&P(e,o,s.startsWith("#")?`$ref ${s.slice(0,200)} is not in the document`:`$ref ${s.slice(0,200)} is not local; not fetched`),e.refs.set(s,Be),a=F(e,c,s.slice(0,200),r+1),e.refs.set(s,a)}if(!a)return;n={...a,...G(n,"$ref")}}let i=$(n,"allOf");if(Array.isArray(i)){let a=i.slice(0,A.fields).map((u,m)=>F(e,u,`${o}.allOf[${m}]`,r+1)).filter(Boolean),c={};for(let u of[...a,n]){let m=$(u,"properties");if(N(m))for(let l of Object.keys(m))Object.defineProperty(c,l,{value:m[l],enumerable:!0,writable:!0,configurable:!0})}n={...a.reduce((u,m)=>({...u,...G(m,"properties")}),{}),...G(n,"allOf"),properties:c}}for(let a of["anyOf","oneOf"]){let c=$(n,a);if(Array.isArray(c)){let p=c.slice(0,A.fields).map((u,m)=>F(e,u,`${o}.${a}[${m}]`,r+1)).filter(u=>u&&$(u,"type")!=="null");p.length===1&&(n={...p[0],...G(n,a)})}}return n}function Ge(e){let t=$(e,"type"),o=Array.isArray(t)?t.filter(r=>r!=="null"):[t];return o.length===1&&typeof o[0]=="string"?o[0]:void 0}function ht(e,t,o="fieldDefaultsFromSchema"){return E(typeof t=="string"&&t.trim()!=="",`${o}: an OpenAPI document needs options.schema, the name of a schema or a local $ref`),t.startsWith("#")?Je(e,t):$($($(e,"components"),"schemas"),t)??$($(e,"definitions"),t)}function gt(e,t={}){E(N(e),"fieldDefaultsFromSchema: the schema must be an object"),E(N(t),"fieldDefaultsFromSchema: options must be an object");let o=e,r=$(o,"openapi")!==void 0||$(o,"swagger")!==void 0,n={root:o,steps:A.steps,refs:new Map,issues:[],said:new Set},s=F(n,r||t.schema!==void 0?ht(o,t.schema):o,"");E(s,`fieldDefaultsFromSchema: no schema ${JSON.stringify(String(t.schema??"")).slice(0,80)} in the document`),Ge(s)==="array"&&(s=F(n,$(s,"items"),"items"));let i=$(s,"properties");E(N(i),"fieldDefaultsFromSchema: the schema of a row must have properties");let a={},c=Object.keys(i);c.length>A.fields&&P(n,"properties",`${c.length} fields, more than ${A.fields}: the first ${A.fields} are read`);for(let p of c.slice(0,A.fields)){let u=F(n,i[p],`properties.${p.slice(0,200)}`);if(!u)continue;let m={},l=He($(u,"title"),A.label);l&&(m.label=l);let f=He($(u,"description"),A.description);f&&(m.description=f);let y=pt($($(u,"externalDocs"),"url"));y&&(m.href=y);let h=Ge(u),d=$(u,"format");h==="integer"||h==="number"?m.type="number":h==="string"&&(d==="date"||d==="date-time")&&(m.type="date");let g=$(u,"enum");if(Array.isArray(g)){let w=g.slice(0,A.order).filter(b=>b===null||["string","number","boolean"].includes(typeof b));w.length>0&&(m.order=w)}Object.keys(m).length>0&&Object.defineProperty(a,p,{value:m,enumerable:!0,writable:!0,configurable:!0})}return{defaults:a,issues:n.issues}}var bt=Object.freeze(["id","nr","no","number","key","#"]);function yt(e){let t=String(e).replace(/(\s*\([^()]*\))+\s*$/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Za-z])(\d)/g,"$1 $2").replace(/#/g," # ").split(/[\s_.\-/:()]+/).filter(Boolean);for(;t.length>1&&/^\d+$/.test(t[t.length-1]);)t.pop();let o=t[t.length-1];return o!==void 0&&bt.includes(o.toLowerCase())}export{Ke as a,De as b,rt as c,st as d,nt as e,it as f,at as g,dt as h,He as i,gt as j,yt as k};
@@ -0,0 +1 @@
1
+ import{A as He,B as Ye,C as Ze,D as Te,a as We,f as B,g as Q,i as qe,j as h,l as X,m as R,n as k,o as m,p as I,q as p,t as Oe,u as ee,v as Je,w as Ge,x as j}from"./chunk-XR4CMFGN.js";var D=()=>"number",xt=()=>"text";function Pt(e,t){let n=new Float64Array(t);if(!e)return{add:r=>{n[r]++},get:r=>n[r]};let o=e.codes;return{add:(r,s)=>{o[s]!==-1&&n[r]++},get:r=>n[r]}}function Ke(e,t){let n=new Array(t),o=e.codes;return{sets:n,add:(r,s)=>{let i=o[s];if(i===-1)return;let a=n[r];a===void 0&&(a=n[r]=new Set),a.add(i)}}}function Vt(e,t){let n=new Float64Array(t),o=e.values;return{add:(r,s)=>{let i=o[s];i===i&&(n[r]+=i)},get:r=>n[r]}}function Bt(e,t){let n=new Float64Array(t),o=new Float64Array(t),r=e.values;return{add:(s,i)=>{let a=r[i];a===a&&(n[s]+=a,o[s]++)},get:s=>o[s]>0?n[s]/o[s]:null}}function Qe(e){return(t,n)=>{let o=new Float64Array(n).fill(NaN),r=t.values;return{add:(s,i)=>{let a=r[i];a===a&&!(o[s]*e>=a*e)&&(o[s]=a)},get:s=>Number.isNaN(o[s])?null:o[s]}}}function Wt(e,t){let n=new Array(t),o=e.values;return{add:(r,s)=>{let i=o[s];i===i&&(n[r]??=[]).push(i)},get:r=>{let s=n[r];if(!s||s.length===0)return null;let i=Float64Array.from(s).sort(),a=i.length>>1;return i.length%2?i[a]:(i[a-1]+i[a])/2}}}function te(e,t){return(n,o)=>{let r=new Float64Array(o),s=new Float64Array(o),i=new Float64Array(o),a=n.values;return{add:(u,l)=>{let c=a[l];if(c===c){let f=++r[u],d=c-s[u];s[u]+=d/f,i[u]+=d*(c-s[u])}},get:u=>{let l=r[u],c=e?l-1:l;if(c<=0)return null;let f=Math.max(0,i[u])/c;return t?Math.sqrt(f):f}}}}function Xe(e){return(t,n,o)=>{let r=new Int32Array(n).fill(-1),s=t.codes;return{add:(i,a)=>{let u=s[a];if(u===-1)return;let l=r[i];(l===-1||(e?o[u]>o[l]:o[u]<o[l]))&&(r[i]=u)},get:i=>{let a=r[i];if(a===-1)return null;let u=t.dict[a];return typeof u=="boolean"?String(u):u}}}}var ne=e=>e==="date"?"date":"number",et=e=>e==="date"?"date":e==="number"?"number":"text",Se=Object.freeze({count:{numeric:!1,additive:!0,resultType:D,create:Pt},countUnique:{numeric:!1,keepsValues:!0,resultType:D,create:(e,t)=>{let n=Ke(e,t);return{add:n.add,get:o=>n.sets[o]?n.sets[o].size:0}}},listUnique:{numeric:!1,keepsValues:!0,resultType:xt,create:(e,t,n,o)=>{let r=Ke(e,t);return{add:r.add,get:s=>{let i=r.sets[s];return i?[...i].sort((a,u)=>n[a]-n[u]).map(o).join(", "):null}}}},sum:{numeric:!0,additive:!0,resultType:D,create:Vt},average:{numeric:!0,dates:!0,resultType:ne,create:Bt},median:{numeric:!0,dates:!0,keepsValues:!0,resultType:ne,create:Wt},min:{numeric:!0,dates:!0,resultType:ne,create:Qe(-1)},max:{numeric:!0,dates:!0,resultType:ne,create:Qe(1)},stdev:{numeric:!0,resultType:D,create:te(!0,!0)},stdevp:{numeric:!0,resultType:D,create:te(!1,!0)},var:{numeric:!0,resultType:D,create:te(!0,!1)},varp:{numeric:!0,resultType:D,create:te(!1,!1)},first:{numeric:!1,resultType:et,create:Xe(!1)},last:{numeric:!1,resultType:et,create:Xe(!0)}}),Ne=Object.freeze(Object.keys(Se));function W(e){return typeof e=="string"&&Object.hasOwn(Se,e)?Se[e]:null}function ve(e,t){let n=W(e);return n?n.numeric?t==="number"||t==="boolean"||t==="null"||t==="date"&&n.dates===!0:!0:!1}function yr(e){return Ne.filter(t=>ve(t,e))}var ke=ee(128);function N(e,t={}){return ke.getOrSet(`n|${e}|${JSON.stringify(t)}`,()=>new Intl.NumberFormat(e,t))}function A(e,t){return ke.getOrSet(`d|${e}|${JSON.stringify(t)}`,()=>new Intl.DateTimeFormat(e,t))}function tt(e){return ke.getOrSet(`c|${e}`,()=>new Intl.Collator(e,{numeric:!0,sensitivity:"base"}))}var qt={dateStyle:"medium",timeZone:"UTC"},Jt={dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},re=Object.freeze({blank:"(blank)",total:"{label} Total",grandTotal:"Grand Total",values:"Values",valueName:"{agg} of {field}",countRows:"Count",true:"true",false:"false",aggregators:Object.freeze({count:"Count",countUnique:"Count Unique",listUnique:"List Unique",sum:"Sum",average:"Average",median:"Median",min:"Min",max:"Max",stdev:"StdDev",stdevp:"StdDevP",var:"Var",varp:"VarP",first:"First",last:"Last"}),showAsName:"{showAs} of {value}",showAs:Object.freeze({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)"})}),Ae=Object.freeze({en:Object.freeze({...re,true:"Yes",false:"No",aggregators:{count:"Count",countUnique:"Distinct count",listUnique:"List of distinct values",sum:"Sum",average:"Average",median:"Median",min:"Minimum",max:"Maximum",stdev:"Standard deviation (sample)",stdevp:"Standard deviation (population)",var:"Variance (sample)",varp:"Variance (population)",first:"First value",last:"Last value"}}),de:Object.freeze({...re,blank:"(Leer)",total:"{label} gesamt",grandTotal:"Gesamtergebnis",values:"Werte",valueName:"{agg} von {field}",countRows:"Anzahl",true:"Ja",false:"Nein",aggregators:{count:"Anzahl",countUnique:"Anzahl verschiedener Werte",listUnique:"Liste verschiedener Werte",sum:"Summe",average:"Durchschnitt",median:"Median",min:"Minimum",max:"Maximum",stdev:"Standardabweichung (Stichprobe)",stdevp:"Standardabweichung (Grundgesamtheit)",var:"Varianz (Stichprobe)",varp:"Varianz (Grundgesamtheit)",first:"Erster Wert",last:"Letzter Wert"},showAsName:"{showAs} von {value}",showAs:{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)"}})}),Tr=Object.freeze({en:Object.freeze({name:"{field} by {unit}",units:Object.freeze({year:"year",yearQuarter:"quarter",yearMonth:"month",yearWeek:"week",day:"day",quarter:"quarter of year",month:"month of year",week:"week of year",weekday:"weekday",hour:"hour of day",bin:"ranges"}),bins:"{field} (by {size})"}),de:Object.freeze({name:"{field} nach {unit}",units:Object.freeze({year:"Jahr",yearQuarter:"Quartal",yearMonth:"Monat",yearWeek:"Woche",day:"Tag",quarter:"Quartal im Jahr",month:"Monat im Jahr",week:"Woche im Jahr",weekday:"Wochentag",hour:"Stunde am Tag",bin:"Bereichen"}),bins:"{field} (je {size})"})});for(let e of Object.values(Ae))Object.freeze(e.aggregators),Object.freeze(e.showAs);function Sr(e){return String(e??"").split("-")[0].toLowerCase()==="de"?Ae.de:Ae.en}function Nr(e,t){let n=t&&t.fields;if(!n||typeof n!="object"||typeof e!="string")return e;let o=i=>typeof n[i]=="string"&&n[i].trim()!=="";if(Object.hasOwn(n,e)&&o(e))return n[e];let r=e.toLowerCase(),s=Object.keys(n).find(i=>i.toLowerCase()===r&&o(i));return s===void 0?e:n[s]}function nt(e,t,n,o=re){if(t==null)return o.blank??re.blank;if(e.labeler)return e.labeler(t,n);switch(e.type){case"date":return A(n,e.dateOnly?qt:Jt).format(new Date(Number(t)));case"boolean":return t?o.true??"true":o.false??"false";default:return String(t)}}function Gt(e,t,n){let o=e==null,r=t==null;if(o||r)return o===r?0:o?1:-1;let s=typeof e=="number"||typeof e=="boolean",i=typeof t=="number"||typeof t=="boolean";return s&&i?Number(e)-Number(t):s!==i?s?-1:1:tt(n).compare(String(e),String(t))}function vr(e,t,n){return n.getOrSet(`ranks:${e.id}:${t}`,()=>{let o=e.dict.map((s,i)=>i);o.sort((s,i)=>Gt(e.dict[s],e.dict[i],t)||s-i);let r=new Int32Array(o.length);return o.forEach((s,i)=>{r[s]=i}),r})}function kr(e,t){return String(e).replace(/\{(\w+)\}/g,(n,o)=>Object.hasOwn(t,o)?String(t[o]):n)}var L=Object.freeze({case:"insensitive",whitespace:"collapse"}),Ce=Object.freeze(["insensitive","sensitive"]),$e=Object.freeze(["collapse","exact"]),Ht=/\s+/g;function C(e,t=L){let n=typeof e=="string"?e:String(e);return(t.whitespace??L.whitespace)==="collapse"&&(n=n.replace(Ht," ").trim()),(t.case??L.case)==="insensitive"?n.toLowerCase():n}var Ee=1e-9;function rt(e){let t=new Date(e),n=(t.getUTCDay()+6)%7,o=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-n+3),r=new Date(o).getUTCFullYear(),s=new Date(Date.UTC(r,0,4)),i=s.getTime()+(3-(s.getUTCDay()+6)%7)*h,a=1+Math.round((o-i)/(7*h));return{year:r,week:a}}var Yt=(e,t)=>A(t,{month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2e3,e-1,1))),Zt=(e,t)=>{let n=Math.floor(e/100),o=e-n*100,r=new Date(0);return r.setUTCFullYear(n,o-1,1),A(t,{month:"short",year:"numeric",timeZone:"UTC",era:n<=0?"short":void 0}).format(r)},Kt=(e,t)=>A(t,{weekday:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2024,0,e))),Ir=Object.freeze(["year","yearQuarter","yearMonth","yearWeek","day"]),jr=Object.freeze(["quarter","month","week","weekday","hour"]),v=Object.freeze({year:{source:"date",type:"number",value:e=>e.getUTCFullYear(),label:e=>String(e)},quarter:{source:"date",type:"number",value:e=>Math.floor(e.getUTCMonth()/3)+1,label:e=>`Q${e}`},month:{source:"date",type:"number",value:e=>e.getUTCMonth()+1,label:Yt},week:{source:"date",type:"number",value:e=>rt(e.getTime()).week,label:e=>`W${X(e)}`},day:{source:"date",type:"date",value:e=>Math.floor(e.getTime()/h)*h},hour:{source:"date",type:"number",value:e=>e.getUTCHours(),label:e=>`${X(e)}:00`},weekday:{source:"date",type:"number",value:e=>(e.getUTCDay()+6)%7+1,label:Kt},yearQuarter:{source:"date",type:"number",value:e=>e.getUTCFullYear()*10+Math.floor(e.getUTCMonth()/3)+1,label:e=>`Q${e-Math.floor(e/10)*10} ${Math.floor(e/10)}`},yearMonth:{source:"date",type:"number",value:e=>e.getUTCFullYear()*100+e.getUTCMonth()+1,label:Zt},yearWeek:{source:"date",type:"number",value:e=>{let t=rt(e.getTime());return t.year*100+t.week},label:e=>`${Math.floor(e/100)}-W${X(e%100)}`},bin:{source:"number",type:"number"}}),Mr=Object.freeze(Object.keys(v)),Qt=Object.freeze([{unit:"day",maxDays:62},{unit:"yearMonth",maxDays:2*366},{unit:"yearQuarter",maxDays:6*366},{unit:"year",maxDays:1/0}]);function Xt(e,t){let n=Math.abs(t-e)/h;return!(n>=1)||!Number.isFinite(n)?null:Qt.find(o=>n<=o.maxDays).unit}function zr(e,t){let n=e.column(t);if(!n||n.type!=="date"||n.derived)return null;let o=1/0,r=-1/0;for(let s of n.dict)typeof s=="number"&&(o=Math.min(o,s),r=Math.max(r,s));return Xt(o,r)}function en(e,t){let n=Math.min(20,Math.max(Oe(e),Oe(t))),o=10**n,r=Math.round(e*o),s=Math.round(t*o),i=n<=15&&r>0&&Number.isSafeInteger(r)&&Number.isSafeInteger(s),a=u=>{let l=s+u*r;return i&&Number.isSafeInteger(l)?l/o:t+u*e};return{decimals:n,lowerOf(u){let l=Math.floor((u-t)/e);return Number.isSafeInteger(l)?(u>=a(l+1)?l++:u<a(l)&&l--,a(l)):NaN},upperOf(u){return a(Math.round((u-t)/e)+1)}}}function Rr(e,t){let n=e.column(t.field),o=Object.hasOwn(v,t.by)?v[t.by]:null;if(!n||!n.values||!o||n.type!==o.source)return null;let r=`derived:${n.key}:${t.by}:${t.size??""}:${t.origin??""}`,s=e.cache.getOrSet(r,()=>nn(n,t,o,r));return s.name===t.name?s:{...s,name:t.name,key:t.name.toLowerCase()}}var ot=9999;function tn(e,t){return e.decimals>0?!1:t.every(n=>Math.abs(n)<=ot&&Math.abs(e.upperOf(n))<=ot)}function nn(e,t,n,o){let r=e.values.length,s=new Int32Array(r),i=new Float64Array(r),a=[],u=new Map,l=t.by==="bin"?en(t.size,t.origin??0):null,c=new Date(0);for(let d=0;d<r;d++){let g=e.values[d],y=NaN;if(Number.isNaN(g)||(l?y=l.lowerOf(g):(c.setTime(g),y=n.value(c))),Number.isNaN(y)){s[d]=-1,i[d]=NaN;continue}let b=u.get(y);b===void 0&&(b=a.length,a.push(y),u.set(y,b)),s[d]=b,i[d]=y}let f={name:t.name,key:t.name.toLowerCase(),id:o,type:n.type,codes:s,dict:a,values:i,derived:!0};if(n.type==="date")f.dateOnly=!0;else if(l){let d=!tn(l,a);f.labeler=(g,y)=>{let b=N(y,{maximumFractionDigits:l.decimals,signDisplay:"negative",useGrouping:d});return`${b.format(g)} \u2013 ${b.format(l.upperOf(g))}`}}else f.labeler=n.label;return f}var q=Object.freeze(["hour","day","week","month","quarter","year"]),J=Object.freeze(["last","next","this","before"]),U=500,G=Object.freeze(["today","latest","first"]),F=1,Ie=36e5,$=(e,t,n)=>new Date(0).setUTCFullYear(e,t,n);function oe(e,t,n=F,o=0){if(e==="hour"){let u=(Math.floor(t/Ie)+o)*Ie;return j(u)?u:NaN}let r=new Date(t),[s,i,a]=[r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()];switch(e){case"day":return $(s,i,a+o);case"week":return $(s,i,a-((r.getUTCDay()||7)-n+7)%7+7*o);case"month":return $(s,i+o,1);case"quarter":return $(s,i-i%3+3*o,1);default:return $(s+o,0,1)}}function st(e,t,n){if(e==="hour"||e==="day"||e==="week"){let l=t+n*(e==="hour"?Ie:e==="day"?h:7*h);return j(l)?l:NaN}let o=n*(e==="month"?1:e==="quarter"?3:12),r=new Date(t),s=t-$(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i=$(r.getUTCFullYear(),r.getUTCMonth()+o,1);if(Number.isNaN(i))return NaN;let a=new Date(i),u=new Date($(a.getUTCFullYear(),a.getUTCMonth()+1,0)).getUTCDate();return $(a.getUTCFullYear(),a.getUTCMonth(),Math.min(r.getUTCDate(),u))+s}function je(e,t,n=F){let{unit:o,calendar:r,includeCurrent:s}=e,i=e.count??1,a=(f,d)=>({from:Number.isNaN(f)?-1/0:f,to:Number.isNaN(d)?1/0:d}),u=f=>oe(o,t,n,f);if(e.direction==="this")return a(u(0),u(1));let l=s?0:1;if(e.direction==="next")return r?a(u(l),u(i+l)):a(t,st(o,t,i)+1);let c=r?a(u(1-i-l),u(1-l)):a(st(o,t,-i),t+1);return e.direction==="before"?{from:-1/0,to:c.from}:c}var it=Object.freeze(["equals","contains","beginsWith","endsWith"]),rn=Object.freeze(["value","label"]),ue=Object.freeze(["=",">",">=","<","<=","between"]),at=Object.freeze(["year","quarter","month","day","hour"]),ut=Object.freeze(["first","all"]),Me=Object.freeze(["exclude","include","only"]),lt=Object.freeze({notEquals:"equals",notContains:"contains","!=":"=",notBetween:"between"}),z=(e,t)=>typeof e=="string"&&t.includes(e)?e:null;function on(e,t,n,o){let r=C(t,o);switch(e){case"equals":return r===n;case"contains":return r.includes(n);case"beginsWith":return r.startsWith(n);case"endsWith":return r.endsWith(n);default:return!1}}function ft(e,t,n,o){if(typeof t!="number"||Number.isNaN(t))return!1;let r=Math.min(n,o??n),s=Math.max(n,o??n);switch(e){case"=":return t===n;case">":return t>n;case">=":return t>=n;case"<":return t<n;case"<=":return t<=n;case"between":return t>=r&&t<=s;default:return!1}}var sn=e=>Math.floor(e/h)*h,le=e=>new Date(e).toISOString().slice(0,-14);function Gr(e,t,n){n=R(n,"relativeDateRange");let o=n.direction??"last",r=n.anchor??"today",s=n.weekStart??F,i=o==="this"||Number.isInteger(t)&&t>=1&&t<=U;if(!q.includes(e)||!J.includes(o)||!i||!Number.isInteger(s)||s<1||s>7||dt(r)===null||r==="latest"&&n.latest===void 0||r==="first"&&n.first===void 0)return null;let a=He(n.timeZone),u=r==="latest"?ze(n.latest,a):r==="first"?ze(n.first,a):r==="today"?ze(n.now,a):Re(r),l={direction:o,unit:e,count:t,calendar:n.calendar??!0,includeCurrent:n.includeCurrent??!0},{from:c,to:f}=je(l,u,s);if(!Number.isFinite(f)||o!=="before"&&!Number.isFinite(c))return null;let d=y=>!Number.isFinite(y)||y%h===0;if(d(c)&&d(f))return{from:Number.isFinite(c)?le(c):null,to:le(f-h)};let g=y=>new Date(y).toISOString().slice(0,16);return{from:Number.isFinite(c)?g(c):null,to:g(f-1)}}var Re=e=>{let t=typeof e=="string"&&!G.includes(e)?M("date",e):void 0;return typeof t=="number"?t:NaN};function dt(e){if(typeof e=="string"&&G.includes(e))return e;let t=Re(e);return j(t)?t%h===0?le(t):new Date(t).toISOString().slice(0,19):null}function ze(e,t){let n=Ze(t),o=Te(e===void 0?Date.now():e,r=>j(r)?n(r):NaN);if(!j(o))throw new We("INVALID_OPTION","now must be a Date, epoch milliseconds or an ISO date string");return o}function M(e,t){if(t===null)return null;switch(e){case"number":{let n=typeof t=="number"?t:typeof t=="string"&&t.trim()!==""?Number(t):NaN;return Number.isFinite(n)?n:void 0}case"date":{let n=typeof t=="number"?t:typeof t=="string"?Te(t,o=>o):NaN;return Number.isFinite(n)?n:void 0}case"boolean":return typeof t=="boolean"?t:t==="true"?!0:t==="false"?!1:void 0;default:return typeof t=="string"&&t.length<=B||typeof t=="number"||typeof t=="boolean"?String(t):void 0}}function De(e,t,n,o){let r=M(e.type,t);return r===void 0&&(typeof t=="string"&&t.length>B?o.issue(n,`an item longer than ${B} characters`,"itemTooLong",{max:B}):o.issue(n,`item ${JSON.stringify(t)} does not fit the ${e.type} field`,"itemType",{value:p(t),type:e.type})),r}function ce(e,t,n,o){let r=m(e,"not");r!==void 0&&typeof r!="boolean"&&o.issue(`${n}.not`,"not must be true or false","filterNot",{value:p(r)});let s=m(e,"blanks");return s===void 0?o.strict&&o.warn(n,'says nothing about blank items; "exclude" is used',"blanksUnspecified"):Me.includes(s)||o.issue(`${n}.blanks`,`unknown blanks ${JSON.stringify(s)}`,"filterBlanks",{value:p(s),...o.suggest(s,Me)}),Object.assign(t,{not:r===!0,blanks:Me.includes(s)?s:"exclude"})}function an(e,t,n,o,r){let s=m(e,"items");if(!Array.isArray(s))return r.issue(o,"needs a list of items","filterNoItems");s.length>r.limits.items&&r.issue(`${o}.items`,`more than ${r.limits.items} items`,"tooManyItems",{max:r.limits.items}),t.items=[];for(let i of s.slice(0,r.limits.items)){let a=i===null?null:De(n,i,`${o}.items`,r);a===null?r.issue(`${o}.items`,'null is no item: blank items are kept with blanks: "include" or "only"',"filterBlanks",{value:"null"}):a!==void 0&&(r.itemHint(n,a,`${o}.items`),t.items.push(a))}return ce(e,t,o,r),r.strict&&t.items.length===0&&!t.not&&t.blanks==="exclude"&&r.warn(o,"keeps nothing: no items, no blanks","filterEmpty"),t}function un(e,t,n,o,r){let s=m(e,"not");return s!==void 0&&typeof s!="boolean"&&r.issue(`${o}.not`,"not must be true or false","filterNot",{value:p(s)}),Object.assign(t,{not:s===!0})}function ln(e,t,n,o,r){let s=m(e,"op"),i=z(s,it),a=m(e,"value");if(!i){let d=fe(s),g=d?{suggestion:d}:r.suggest(s,it);return r.issue(o,`unknown text operator ${JSON.stringify(s)}${gt(d)}`,"filterTextOp",{value:p(s),...g})}if(typeof a!="string"||a.length>r.limits.textValue)return r.issue(o,`needs a text value of at most ${r.limits.textValue} characters`,"filterText",{max:r.limits.textValue});let u=m(e,"on"),l=u===void 0?"value":z(u,rn);if(!l)return r.issue(`${o}.on`,`unknown on ${JSON.stringify(u)}`,"unknownSetting",{value:p(u)});if(l==="value"&&n.type!=="string")return r.issue(o,`compares text: on a ${n.type} field it compares the label (on: "label")`,"filterFieldType",{field:n.name,type:n.type,value:"text",allowed:"string",suggestion:"label"});let c=m(e,"match"),f={...L};if(c!==void 0){let d=m(c,"case"),g=m(c,"whitespace");(!k(c)||d!==void 0&&!Ce.includes(d)||g!==void 0&&!$e.includes(g))&&r.issue(`${o}.match`,'match is { case: "insensitive" | "sensitive", whitespace: "collapse" | "exact" }',"filterMatch",{value:p(d??g??c)}),r.keys(c,cn,`${o}.match`),f.case=Ce.includes(d)?d:L.case,f.whitespace=$e.includes(g)?g:L.whitespace}return Object.assign(t,{op:i,value:a,on:l,match:f}),ce(e,t,o,r)}var cn=Object.freeze(["case","whitespace"]),mt=(e,t)=>e.derived?t.derived.find(n=>n.name===e.name)?.by:void 0,fn=e=>typeof e.value=="string";function dn(e,t,n,o,r,s){let i=mt(n,s),a=n.type==="date"||i!==void 0&&v[i].source==="date"&&typeof m(e,"value")=="string"&&M("number",m(e,"value"))===void 0,u=m(e,"precision"),l=u===void 0?"day":z(u,at);if(!a&&u!==void 0)r.issue(`${o}.precision`,"a precision compares dates only","filterPrecision",{value:p(u)});else if(!l)return r.issue(o,`unknown precision ${JSON.stringify(u)}`,"filterPrecision",{value:p(u),...r.suggest(u,at)});let c=T=>{if(!a){let we=T===void 0?void 0:M("number",T);return typeof we=="number"?we:null}let V=T===void 0||n.type!=="date"&&typeof T!="string"?void 0:M("date",T);return typeof V=="number"&&j(V)?mn(V,l):null},f=m(e,"op"),d=z(f,ue);if(fe(f))return pt(f,o,"filterCompareValue",r,{type:n.type});let g=c(m(e,"value")),y=d==="between",b=y?c(m(e,"value2")):null;if(!d||g===null||y&&b===null){let T=d||f===void 0?{}:{value:p(f),...r.suggest(f,ue)};return r.issue(o,`needs an operator and ${y?"two values":"a value"} of the ${n.type} field`,"filterCompareValue",{type:n.type,...T})}return Object.assign(t,{op:d,value:g},y?{value2:b}:{},a?{precision:l}:{}),ce(e,t,o,r)}function mn(e,t){let n=oe(t,e);return t==="hour"?new Date(n).toISOString().slice(0,-8):le(Number.isNaN(n)?sn(e):n)}function fe(e){return typeof e=="string"&&Object.hasOwn(lt,e)?lt[e]:null}var gt=e=>e?`; write "${e}" with not: true`:"";function pt(e,t,n,o,r={}){let s=fe(e);return o.issue(t,`unknown operator ${JSON.stringify(e)}${gt(s)}`,n,{...r,value:p(e),suggestion:s})}function gn(e,t,n,o,r){let s=m(e,"direction"),i=s===void 0?"last":z(s,J);if(!i)return r.issue(o,`unknown direction ${JSON.stringify(s)}`,"filterRelativeDirection",{value:p(s),...r.suggest(s,J)});let a=z(m(e,"unit"),q);if(!a)return r.issue(o,`unknown unit ${JSON.stringify(m(e,"unit"))}`,"filterRelativeUnit",{value:p(m(e,"unit")),...r.suggest(m(e,"unit"),q)});let u=m(e,"count"),l=I(u);if(i==="this"?u!==void 0:l===null||!Number.isInteger(l)||l<1||l>U){let g=i==="this"?'"this" is the current unit alone and has no count':`${u===void 0?"count is missing: a":"needs a"} whole count from 1 to ${U}`;return r.issue(o,g,"filterRelativeCount",{max:U,...u===void 0?{}:{value:p(u)}})}let c=g=>{let y=m(e,g);return y!==void 0&&typeof y!="boolean"&&r.issue(`${o}.${g}`,`${g} must be true or false`,"unknownSetting",{value:p(y)}),typeof y=="boolean"?y:!0},f=m(e,"anchor"),d=f===void 0?"today":dt(f);return d?(Object.assign(t,{direction:i,unit:a},i==="this"?{}:{count:l},{calendar:c("calendar"),includeCurrent:c("includeCurrent"),anchor:d}),ce(e,t,o,r)):r.issue(o,`unknown anchor ${JSON.stringify(f)}`,"filterRelativeAnchor",{value:p(f),...r.suggest(f,G)})}function yt(e,t,n,o){let r=m(e,"by"),s=r===void 0?n.defaultRef(o):n.valueRef(r,`${t}.by`);return s&&n.resultType(s)!=="number"?(n.issue(`${t}.by`,`${s.agg} gives no number to filter by`,"filterNotNumber",{agg:s.agg}),null):s}function pn(e,t,n,o,r,s){let i=yt(e,o,r,s);if(!i)return;let a=I(m(e,"count"));if(a===null||a<1||a>r.limits.topCount||!Number.isInteger(a))return r.issue(o,"needs a whole count of 1 or more","filterCount",{max:r.limits.topCount});let u=m(e,"bottom"),l=m(e,"ties"),c=l===void 0?"first":z(l,ut);return c||r.issue(`${o}.ties`,`unknown ties ${JSON.stringify(l)}`,"filterTies",{value:p(l),...r.suggest(l,ut)}),Object.assign(t,{by:i,count:a,bottom:typeof u=="boolean"?u:!1,ties:c??"first"})}function yn(e,t,n,o,r,s){let i=yt(e,o,r,s);if(!i)return;let a=m(e,"op");if(fe(a))return pt(a,o,"filterValue",r);let u=z(a,ue),l=I(m(e,"value"));if(!u||l===null){let f=u||a===void 0?{}:{value:p(a),...r.suggest(a,ue)};return r.issue(o,"needs an operator and a number","filterValue",f)}let c=m(e,"not");if(c!==void 0&&typeof c!="boolean"&&r.issue(`${o}.not`,"not must be true or false","filterNot",{value:p(c)}),Object.assign(t,{by:i,op:u,value:l,not:c===!0}),u==="between"){let f=I(m(e,"value2"));if(f===null)return r.issue(o,`${u} needs value2`,"filterValue2",{value:u});t.value2=f}return t}function se(e){return(t,n,o,r,s)=>{let i=e(t,n,o,r,s),a=new Uint8Array(i.length);if(a[0]=n.blanks==="exclude"?0:1,n.blanks!=="only"){let u=n.not?1:0;for(let l=1;l<i.length;l++)a[l]=i[l]^u}return a}}function bn(e,t){let n=new Map(e.dict.map((r,s)=>[r,s])),o=new Uint8Array(e.dict.length+1);for(let r of t.items){let s=n.get(r);s!==void 0&&(o[s+1]=1)}return o}function hn(e,t){let n=new Uint8Array(e.dict.length+1).fill(t.not?1:0);return n[0]=t.not?0:1,n}function wn(e,t,n){let o=C(t.value,t.match),r=new Uint8Array(e.dict.length+1);return e.dict.forEach((s,i)=>{r[i+1]=on(t.op,t.on==="label"?nt(e,s,n):String(s),o,t.match)?1:0}),r}function On(e,t){let n=e.type==="date",o=t.precision??"day",r=u=>n?M("date",u):u,[s,i]=[r(t.value),t.value2===void 0?void 0:r(t.value2)],a=new Uint8Array(e.dict.length+1);return e.dict.forEach((u,l)=>{a[l+1]=ft(t.op,n&&typeof u=="number"?oe(o,u):u,s,i)?1:0}),a}function Tn(e){let t=-1/0;for(let n of e.dict)typeof n=="number"&&n>t&&(t=n);return Number.isFinite(t)?t:null}function Sn(e){let t=1/0;for(let n of e.dict)typeof n=="number"&&n<t&&(t=n);return Number.isFinite(t)?t:null}function Nn(e,t,n,o,r){let s=t.anchor==="today"?o:t.anchor==="latest"?Tn(e)??o:t.anchor==="first"?Sn(e)??o:Re(t.anchor),{from:i,to:a}=je(t,s,r);return Uint8Array.from([0,...e.dict],(u,l)=>l>0&&typeof u=="number"&&u>=i&&u<a?1:0)}function vn(e,t){return Uint8Array.from(t,n=>typeof n=="number"&&!Number.isNaN(n)&&ft(e.op,n,e.value,e.value2)!==e.not?1:0)}function kn(e,t,n){let o=new Uint8Array(n.length),r=new Map;n.forEach((s,i)=>{let a=s.slice(0,-1).join(",");r.has(a)||r.set(a,[]),r.get(a).push(i)});for(let s of r.values()){let i=s.filter(u=>typeof t[u]=="number").sort((u,l)=>(e.bottom?t[u]-t[l]:t[l]-t[u])||u-l),a=e.ties==="all"&&i.length>e.count?t[i[e.count-1]]:void 0;i.forEach((u,l)=>{(l<e.count||t[u]===a)&&(o[u]=1)})}return o}var w=(...e)=>Object.freeze(["field","type",...e]),ae=(e,t)=>typeof e.source=="function"?e.source(t):!!e.source,H=Object.freeze(["string","number","date","boolean"]),ie=Object.freeze(["not","blanks"]),O=Object.freeze({in:{stage:"items",fields:H,keys:w("items",...ie),required:w("items"),normalize:an,allowed:se(bn)},blank:{stage:"items",fields:H,keys:w("not"),required:w(),normalize:un,allowed:hn},text:{stage:"items",fields:H,keys:w("op","value","on","match",...ie),required:w("op","value"),normalize:ln,allowed:se(wn)},compare:{stage:"items",fields:Object.freeze(["number","date"]),keys:w("op","value","value2","precision",...ie),required:w("op","value"),normalize:dn,allowed:se(On),source:fn},relative:{stage:"items",fields:Object.freeze(["date","dateGrouping"]),keys:w("direction","unit","count","calendar","includeCurrent","anchor",...ie),required:w("unit"),normalize:gn,allowed:se(Nn),source:!0},top:{stage:"values",fields:H,keys:w("by","count","bottom","ties"),required:w("count"),normalize:pn,keep:kn},value:{stage:"values",fields:H,keys:w("by","op","value","value2","not"),required:w("op","value"),normalize:yn,keep:vn}}),Hr=Object.freeze(Object.keys(O)),Le=Object.freeze({include:"in",exclude:"in",label:"text"});function bt(e,t){let n=mt(e,t);return n!==void 0&&v[n].source==="date"?[e.type,"dateGrouping"]:[e.type]}var ht=e=>e==="string"?"text":e==="number"||e==="date"?"compare":"in",An=Object.freeze(["blank","text","compare","relative"]);function Yr(e,t,n,o,r,s){let i=e.filters.filter(d=>d.field.toLowerCase()===t.toLowerCase()&&An.includes(d.type));if(!i.length)return null;let a=i.some(d=>d.type==="relative")?s():0,u=d=>O[d.type].allowed(ae(O[d.type],d)?o:n,d,r,a,e.formatting.weekStart),l=i.filter(d=>!ae(O[d.type],d)).map(u),c=i.filter(d=>ae(O[d.type],d)).map(u),f=new Uint8Array(n.dict.length+1);for(let d=0;d<n.codes.length;d++){let g=n.codes[d]+1;!f[g]&&l.every(y=>y[g]===1)&&c.every(y=>y[o.codes[d]+1]===1)&&(f[g]=1)}return f}function ct(e,t){let n=0,o=new Int32Array(e.length);for(let r=0;r<e.length;r++)t(e[r],r)&&(o[n++]=e[r]);return o.slice(0,n)}function Zr(e,t,n){let{view:o,columnOf:r,locale:s,today:i}=e,a=c=>o.derived.find(f=>f.name.toLowerCase()===c.toLowerCase())?.field??c;o.filters.forEach((c,f)=>{let d=O[c.type],g=r(ae(d,c)?a(c.field):c.field);if(d.stage!=="items"||!g)return;let y=d.allowed(g,c,s,i,o.formatting.weekStart),b=g.codes;t=ct(t,T=>y[b[T]+1]===1),n&&(n[f]=t.length)});let u=c=>{let f=o.rows.indexOf(c);if(f!==-1)return{fields:o.rows.slice(0,f+1),order:f};let d=o.cols.indexOf(c);return d!==-1?{fields:o.cols.slice(0,d+1),order:100+d}:{fields:[c],order:200}},l=o.filters.map((c,f)=>({f:c,i:f,...u(c.field)})).filter(({f:c})=>O[c.type].stage==="values").sort((c,f)=>c.order-f.order||c.i-f.i);for(let{f:c,i:f,fields:d}of l){let g=d.map(r);if(g.includes(null))continue;let{groupOf:y,paths:b}=e.groupBy(g,t),T=e.aggregateGroups(c.by,t,y,b.length),V=O[c.type].keep(c,T,b);t=ct(t,(we,Ut)=>V[y[Ut]]===1),n&&(n[f]=t.length)}return t}var to=Object.freeze(["number","integer","currency","percent","percent100","compact","bytes","duration","date","datetime","time","text"]),Cn=20,St={ms:.001,s:1,min:60,h:3600,d:86400},$n=/^(number|integer|currency|percent|percent100|compact|bytes|duration|date|datetime|time|text)(?::([A-Za-z0-9]{1,10}))?$/,Fe=new Set(["number","percent","percent100"]),Nt={date:{dateStyle:"medium",timeZone:"UTC"},datetime:{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},time:{timeStyle:"short",timeZone:"UTC"}},En={signDisplay:"negative"},de=null;function In(e){return de===null&&(de=typeof Intl.supportedValuesOf=="function"?new Set(Intl.supportedValuesOf("currency")):!1),de?de.has(e.toUpperCase()):/^[a-z]{3}$/i.test(e)}function ge(e){if(typeof e!="string")return null;let t=$n.exec(e.trim().toLowerCase());if(!t)return null;let[,n,o]=t;return o!==void 0&&(n==="currency"&&!In(o)||n==="duration"&&!Object.hasOwn(St,o)||Fe.has(n)&&!(/^\d{1,2}$/.test(o)&&Number(o)<=Cn)||!["currency","duration",...Fe].includes(n))?null:{name:n,arg:o,decimals:Fe.has(n)&&o!==void 0?Number(o):void 0}}function no(e,t){let n=ge(e)||{name:"number",arg:void 0,decimals:void 0};switch(n.name){case"integer":return 0;case"number":return n.decimals??2;case"percent":case"percent100":return n.decimals??1;case"currency":return N(t,{style:"currency",currency:(n.arg||"EUR").toUpperCase()}).resolvedOptions().maximumFractionDigits??2;default:return null}}function vt(e){return ge(e)!==null}function Y(e){return e==null||e===""?NaN:typeof e=="number"?e:Number(e)}var _e=(e,t)=>e===void 0?{maximumFractionDigits:t}:{minimumFractionDigits:e,maximumFractionDigits:e};function jn(e,t){if(!Number.isFinite(e))return"";let n=e<=-.05?"-":"",o=Math.abs(e);if(o<60)return`${n}${N(t,{maximumFractionDigits:1}).format(o)} s`;let r=[["d",86400],["h",3600],["min",60],["s",1]],s=r.findIndex(([,f])=>o>=f),[i,a]=r[s],u=Math.floor(o/a),l=[`${u} ${i}`],c=r[s+1];if(c){let f=Math.floor((o-u*a)/c[1]);f>0&&l.push(`${f} ${c[0]}`)}return n+l.join(" ")}function Mn(e,t){if(!Number.isFinite(e))return"";let n=["B","KB","MB","GB","TB","PB"],o=Math.abs(e),r=0;for(;o>=1024&&r<n.length-1;)o/=1024,r++;let s=N(t,{maximumFractionDigits:r===0?0:1}).format(o);return`${e<0&&/[1-9]/.test(s)?"-":""}${s} ${n[r]}`}function Ue(e){return e==null?"":String(e)}function zn(e,t){let n=ge(e)||{name:"number",arg:void 0,decimals:void 0},o=r=>{let s=N(t,{...En,...r});return i=>{let a=Y(i);return Number.isNaN(a)?Ue(i):s.format(a)}};switch(n.name){case"text":return Ue;case"integer":return o({maximumFractionDigits:0});case"currency":return o({style:"currency",currency:(n.arg||"EUR").toUpperCase()});case"percent":return o({style:"percent",..._e(n.decimals,1)});case"percent100":{let r=o({style:"percent",..._e(n.decimals,1)});return s=>r(Y(s)/100)}case"compact":return o({notation:"compact",maximumFractionDigits:1});case"bytes":return r=>Mn(Y(r),t);case"duration":{let r=St[n.arg||"s"];return s=>jn(Y(s)*r,t)}case"date":case"datetime":case"time":{let r=A(t,Nt[n.name]);return s=>{let i=Y(s);return Number.isFinite(i)?r.format(new Date(i)):Ue(s)}}default:return o(_e(n.decimals,2))}}function ro(e,t){return t=R(t,"formatter"),zn(e,Ge(null,t.locale))}var wt=ee(64),me=e=>e.replace(/[^ :/-]+/g,t=>`"${t.replace(/"/g,"")}"`),pe=e=>e>0?"."+"0".repeat(e):"";function xe(e,t){if(!Number.isFinite(e)||Math.abs(e)>=1e21)return 0;let n=Math.abs(e).toFixed(t).replace(/0+$/,""),o=n.indexOf(".");return o===-1?0:n.length-o-1}function Ot(e,t,n=!0){let o="",r="",s=!1;for(let i of e)i.type==="integer"||i.type==="group"||i.type==="decimal"||i.type==="fraction"||i.type==="minusSign"||i.type==="percentSign"&&n?(o+=me(r),r="",i.type==="minusSign"?o+="-":i.type==="percentSign"?o+="%":s||(o+=t,s=!0)):r+=i.value;return o+me(r)}function kt(e,t,n,o=!0){let r=Ot(e.formatToParts(t),n,o),s=Ot(e.formatToParts(-t),n,o);return s===`-${r}`?r:`${r};${s}`}function Rn(e,t){let n=N(t,{style:"currency",currency:e});return kt(n,1234.5,`#,##0${pe(n.resolvedOptions().maximumFractionDigits)}`)}function Tt(e,t,n){return kt(N(t,{style:"percent"}),.5,`#,##0${pe(e)}`,n)}function Dn(e,t){if(!Number.isFinite(e)||e===0)return"#,##0";let n=N(t,{notation:"compact",maximumFractionDigits:1}).formatToParts(Math.abs(e)),o=n.filter(l=>l.type==="integer").map(l=>l.value).join(""),r=n.filter(l=>l.type==="fraction").map(l=>l.value).join(""),s=+`${o}.${r||0}`,i=s>0?Math.round(Math.log10(Math.abs(e)/s)):0;if(i<0||i%3!==0)return"General";let a=n.findIndex(l=>l.type==="integer"),u=n.slice(a).filter(l=>l.type==="compact"||l.type==="literal").map(l=>l.value).join("");return`#,##0${pe(r.length)}${",".repeat(i/3)}${me(u)}`}function Ln(e,t){return A(t,Nt[e]).formatToParts(new Date(Date.UTC(2026,0,5,3,4))).map(o=>{switch(o.type){case"year":return o.value.length===2?"yy":"yyyy";case"month":return/^\d+$/.test(o.value)?o.value.length===2?"mm":"m":"mmm";case"day":return o.value.length===2?"dd":"d";case"hour":return o.value.length===2?"hh":"h";case"minute":return"mm";case"second":return"ss";case"dayPeriod":return"AM/PM";case"weekday":return"ddd";default:return me(o.value)}}).join("")}function oo(e,t,n){let o=ge(e)||{name:"number",arg:void 0,decimals:void 0};switch(o.name){case"integer":return"#,##0";case"number":return`#,##0${pe(o.decimals??xe(t,2))}`;case"percent":return Tt(o.decimals??xe(t*100,1),n,!0);case"percent100":return Tt(o.decimals??xe(t,1),n,!1);case"currency":return wt.getOrSet(`${e}|${n}`,()=>Rn((o.arg||"EUR").toUpperCase(),n));case"compact":return Dn(t,n);case"date":case"datetime":case"time":return wt.getOrSet(`${o.name}|${n}`,()=>Ln(o.name,n));case"text":return"@";default:return"General"}}var ye=Object.freeze({candidates:1e3,length:64,distance:3});function Fn(e,t,n){if(Math.abs(e.length-t.length)>n)return n+1;let o=[],r=Array.from({length:t.length+1},(i,a)=>a),s=0;for(let i=1;i<=e.length;i++){let a=[i],u=i;for(let l=1;l<=t.length;l++){let c=Math.min(r[l]+1,a[l-1]+1,r[l-1]+(e[i-1]===t[l-1]?0:1));i>1&&l>1&&e[i-1]===t[l-2]&&e[i-2]===t[l-1]&&(c=Math.min(c,o[l-2]+1)),a.push(c),u=Math.min(u,c)}if(u>n&&s>=n)return n+1;s=u,o=r,r=a}return r[t.length]}function At(e,t){if(typeof e!="string"||e.length>ye.length)return null;let n=C(e);if(n==="")return null;let o=Math.min(ye.distance,Math.max(1,Math.floor(n.length/3))),r=null,s=o+1,i=0;for(let a of t){if(i++>=ye.candidates)break;if(typeof a!="string"||a.length>ye.length)continue;let u=Fn(n,C(a),Math.min(o,s-1));if(u<s&&(r=a,s=u,u===0))break}return r}var _=(e,t)=>e===null||t===null||t===0?null:e/t;function Pe(e){let t=e.axis!=="cols",n=t?e.rowNode:e.colNode;return{node:n,at:r=>t?e.raw(r,e.colNode):e.raw(e.rowNode,r),siblings:n.parent?n.parent.children:[n]}}function Ct(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Pe(n);if(!o.parent||o.index===0||t===null)return null;let i=r(s[o.index-1])??0;return e?_(t-i,i):t-i}}function $t(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Pe(n);if(!o.parent)return e?t===null?null:1:t;let i=0;for(let a=0;a<=o.index;a++)i+=r(s[a])??0;return e?_(i,r(o.parent)):i}}function Et(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Pe(n);if(!o.parent||t===null)return null;let i=1;for(let a of s){let u=r(a);u!==null&&(e?u>t:u<t)&&i++}return i}}var be=Object.freeze({percentOfGrandTotal:{format:"percent",compute:(e,t)=>_(e,t.raw(t.rowRoot,t.colRoot))},percentOfRowTotal:{format:"percent",compute:(e,t)=>_(e,t.raw(t.rowNode,t.colRoot))},percentOfColumnTotal:{format:"percent",compute:(e,t)=>_(e,t.raw(t.rowRoot,t.colNode))},percentOfParentRow:{format:"percent",compute:(e,t)=>_(e,t.raw(t.rowNode.parent??t.rowNode,t.colNode))},percentOfParentColumn:{format:"percent",compute:(e,t)=>_(e,t.raw(t.rowNode,t.colNode.parent??t.colNode))},differenceFromPrevious:{format:"number",alongAxis:!0,compute:Ct(!1)},percentDifferenceFromPrevious:{format:"percent",alongAxis:!0,compute:Ct(!0)},runningTotal:{format:"number",alongAxis:!0,additive:!0,compute:$t(!1)},percentRunningTotal:{format:"percent",alongAxis:!0,additive:!0,compute:$t(!0)},rankAscending:{format:"integer",alongAxis:!0,compute:Et(!1)},rankDescending:{format:"integer",alongAxis:!0,compute:Et(!0)}}),uo=Object.freeze(Object.keys(be));var _n="(blank)";function Un(e,t,n){let o=t.toLowerCase(),r=n.toLowerCase();switch(e){case"equals":return o===r;case"notEquals":return o!==r;case"contains":return o.includes(r);case"notContains":return!o.includes(r);case"beginsWith":return o.startsWith(r);case"endsWith":return o.endsWith(r);default:return!1}}var It=Object.freeze({notEquals:"equals",notContains:"contains","!=":"=",notBetween:"between"}),Ve=e=>typeof e=="string"&&Object.hasOwn(It,e)?{op:It[e],not:!0}:{},Be=(e,t)=>m(e,"blanks")===void 0?{blanks:t}:{};function xn(e){if(!k(e))return e;let t=e,n=m(t,"type"),o=m(t,"op");switch(n){case"include":case"exclude":{let r=m(t,"items"),s=n==="exclude"?{not:!0}:{};if(!Array.isArray(r))return{...t,type:"in",...s};let i=r.includes(null),a=n==="include"?i:!i;return{...t,type:"in",items:r.filter(u=>u!==null),...s,...Be(t,a?"include":"exclude")}}case"label":{let r=m(t,"value"),s=typeof r=="string"?Be(t,Un(o,_n,r)?"include":"exclude"):{};return{...t,type:"text",on:"label",match:{case:"insensitive",whitespace:"exact"},...Ve(o),...s}}case"compare":case"relative":return{...t,...Ve(o),...Be(t,"exclude")};case"value":return{...t,...Ve(o)};default:return t}}function jt(e){let t=m(e,"filters");return Array.isArray(t)?{...e,filters:t.map(xn)}:e}var Dt=2,Lt=Pn({notView:"error schema",notJson:"error",tooLarge:"error",badVersion:"error schema",newerVersion:"error schema",noMigration:"error",unknownKey:"error schema",notList:"error schema",tooMany:"error schema",tooManyItems:"error schema",itemType:"error",itemTooLong:"error schema",itemCase:"warning",unknownField:"error",placedTwice:"error",groupingNoName:"error schema",groupingNameTaken:"error",groupingNoSource:"error",groupingUnknown:"error schema",binsNeedNumber:"error",groupingNeedsDate:"error",binSize:"error schema",notValueRef:"error schema",unknownAggregator:"error schema",aggregatorNeedsField:"error schema",aggregatorType:"error",unknownFormat:"error",badLabel:"error schema",unknownShowAs:"error schema",showAsNotAdditive:"error",showAsNotNumber:"error",unknownConditional:"error schema",conditionalNotNumber:"error",colorScaleColors:"error schema",dataBarColor:"error schema",unknownFilterType:"error schema",filterFieldType:"error",filterNoItems:"error schema",filterTextOp:"error schema",filterText:"error schema",filterMatch:"error schema",filterNot:"error schema",filterBlanks:"error schema",blanksUnspecified:"warning",filterEmpty:"warning",filterNotNumber:"error",filterCount:"error schema",filterTies:"error schema",filterPrecision:"error",filterValue:"error schema",filterValue2:"error schema",filterCompareValue:"error",filterRelativeDirection:"error schema",filterRelativeUnit:"error schema",filterRelativeCount:"error schema",filterRelativeAnchor:"error schema",sortNoItems:"error schema",sortedTwice:"error",badTotals:"error schema",collapsedPath:"error",unknownSetting:"error schema",badTitle:"error schema",unknownLocale:"error",unknownTimeZone:"error",timeZoneMismatch:"error",tooManyIssues:"warning"}),vo=Object.freeze(Object.keys(Lt));function Pn(e){let t={};for(let[n,o]of Object.entries(e)){let[r,s]=o.split(" ");t[n]=Object.freeze({severity:r==="warning"?"warning":"error",schema:s==="schema"})}return Object.freeze(t)}function E(e,t,n,o,r=Lt[n].severity){return o?{path:e,message:t,code:n,severity:r,params:o}:{path:e,message:t,code:n,severity:r}}var Vn=Object.freeze(["auto","bar","line","area","pie","donut","heatmap"]),ko=Object.freeze(["pie","donut"]),Bn=Object.freeze(["table","chart"]),Ao=Object.freeze(["colorScale","dataBar"]),Wn=Object.freeze(["auto","off","value","percent","both"]),qn=Object.freeze(["outside","inside"]),Jn=Object.freeze(["auto","bottom","right","off"]),Gn=Object.freeze(["auto","all","nth"]),Hn=Object.freeze(["auto","on","off"]),Mt=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function Z(){return{version:Dt,rows:[],cols:[],values:[],filters:[],derived:[],sort:[],totals:{grandTotalRow:!0,grandTotalColumn:!0,rowSubtotals:!0,colSubtotals:!1},collapsed:{rows:[],cols:[]},display:"table",chart:{type:"auto",stacked:!1,horizontal:!1,valueLabels:"auto",legend:"auto",title:null,smooth:!1,axisLabels:"auto",groupLabels:"auto",labelPosition:"outside"},formatting:{locale:null,timeZone:null,weekStart:F}}}var Yn=Object.freeze({1:jt});function Zn(e){return Kn(e,Yn,Dt)}function Kn(e,t,n){let o=[];if(!k(e))return{view:null,issues:[E("","not a view object","notView")]};let r=m(e,"version")??1;if(!Number.isInteger(r)||r<1)return{view:null,issues:[E("version",`unknown version ${JSON.stringify(r)}`,"badVersion",{value:p(r)})]};if(r>n)return{view:null,issues:[E("version",`version ${r} is newer than this pivotkit-core reads (${n}); update pivotkit-core`,"newerVersion",{value:r,max:n})]};let s=e;for(let i=r;i<n;i++){let a=t[i];if(typeof a!="function")return{view:null,issues:[E("version",`no migration from version ${i}`,"noMigration",{value:i})]};s=a(s)}return{view:{...s,version:n},issues:o}}function K(e,t,n){return typeof e=="string"&&t.includes(e)?e:n}function he(e,t){return typeof e=="boolean"?e:t}function Ft(e){return(Array.isArray(e)?e:e&&Array.isArray(e.fields)?e.fields:e&&e.schema?e.schema.fields:[]).filter(n=>n&&typeof n.name=="string").map(n=>({name:n.name,type:typeof n.type=="string"?n.type:"string"}))}function P(e,t,n,o,r){let s=t.split(".").reduce((i,a)=>m(i,a),e);if(s!==void 0){if(!Array.isArray(s)){o.issue(t,"not a list","notList");return}s.slice(0,n).forEach((i,a)=>r(i,`${t}[${a}]`,a)),s.length>n&&o.issue(t,`more than ${n} entries`,"tooMany",{max:n})}}var S=Object.freeze({view:Object.freeze(Object.keys(Z())),derived:Object.freeze(["name","field","by","size","origin"]),value:Object.freeze(["field","agg","format","label","showAs","conditional"]),valueRef:Object.freeze(["field","agg"]),showAs:Object.freeze(["type","axis"]),conditional:Object.freeze({colorScale:Object.freeze(["type","colors"]),dataBar:Object.freeze(["type","color"])}),sort:Object.freeze(["field","by","order","items","value"]),totals:Object.freeze(Object.keys(Z().totals)),collapsed:Object.freeze(["rows","cols"]),chart:Object.freeze(Object.keys(Z().chart)),formatting:Object.freeze(Object.keys(Z().formatting))});function Qn(e,t,n){P(e,"derived",n.limits.derived,n,(o,r)=>{n.keys(o,S.derived,r);let s=n.text(m(o,"name")),i=n.fields.get(String(m(o,"field")??"").toLowerCase()),a=m(o,"by"),u=typeof a=="string"&&Object.hasOwn(v,a)?v[a]:null;if(!s)return n.issue(r,"needs a name","groupingNoName");if(n.fields.has(s.toLowerCase()))return n.issue(r,`name "${s}" is already a field`,"groupingNameTaken",{field:s});if(!i||i.derived)return n.issue(r,"unknown source field","groupingNoSource",{field:p(m(o,"field"))});if(!u)return n.issue(r,"unknown grouping","groupingUnknown",{value:p(a)});if(i.type!==u.source)return u.source==="number"?n.issue(r,"bins need a number field","binsNeedNumber",{field:i.name}):n.issue(r,"date grouping needs a date field","groupingNeedsDate",{field:i.name});let l={name:s,field:i.name,by:a};if(a==="bin"){let c=I(m(o,"size"));if(c===null||c<Ee)return n.issue(r,`bins need a size of at least ${Ee}`,"binSize");l.size=c,l.origin=I(m(o,"origin"))??0}t.derived.push(l),n.fields.set(s.toLowerCase(),{name:s,type:u.type,derived:!0})})}function Xn(e,t,n){let o=new Set;for(let r of["rows","cols"])P(e,r,n.limits.axisFields,n,(s,i)=>{let a=n.resolve(s);if(!a)return n.unknownField(i,s);if(o.has(a.name))return n.issue(i,`"${a.name}" is already placed`,"placedTwice",{field:a.name});o.add(a.name),t[r].push(a.name)})}function er(e,t,n){let o=m(e,"type");if((o==="colorScale"||o==="dataBar")&&n.keys(e,S.conditional[o],t),o==="colorScale"){let r=m(e,"colors"),s=Array.isArray(r)?r.filter(i=>typeof i=="string"&&Mt.test(i)).slice(0,3):[];return Array.isArray(r)&&r.length>0&&(s.length!==r.length||s.length<2)&&n.issue(`${t}.colors`,"two or three colours as #rgb or #rrggbb","colorScaleColors"),{type:o,colors:s.length>=2?s:[]}}if(o==="dataBar"){let r=m(e,"color"),s=typeof r=="string"&&Mt.test(r);return r!=null&&!s&&n.issue(`${t}.color`,"a colour as #rgb or #rrggbb","dataBarColor"),{type:o,color:s?r:null}}return n.issue(t,`unknown conditional format ${JSON.stringify(o)}`,"unknownConditional",{value:p(o)}),null}function tr(e,t,n,o){let r=typeof e=="string"?{type:e}:e;o.keys(r,S.showAs,n);let s=m(r,"type"),i=typeof s=="string"&&Object.hasOwn(be,s)?be[s]:null;return i?i.additive&&!W(t.agg).additive?(o.issue(n,`${s} needs an aggregator that adds up (sum or count), not ${t.agg}`,"showAsNotAdditive",{value:s,agg:t.agg}),null):{type:s,axis:K(m(r,"axis"),["rows","cols"],"rows")}:(o.issue(n,`unknown show-as ${JSON.stringify(s)}`,"unknownShowAs",{value:p(s)}),null)}function nr(e,t,n){P(e,"values",n.limits.values,n,(o,r)=>{let s=n.valueRef(o,r,S.value);if(!s)return;let i=n.resultType(s)==="number",a={...s,format:null,label:null,showAs:null,conditional:null},u=m(o,"format");u!=null&&(vt(u)?a.format=u.trim().toLowerCase():n.issue(`${r}.format`,`unknown format ${JSON.stringify(u)}`,"unknownFormat",{value:p(u)}));let l=m(o,"label");l!=null&&(a.label=n.text(l),a.label===null&&n.issue(`${r}.label`,`not a text up to ${n.limits.name} characters`,"badLabel",{max:n.limits.name}));let c=m(o,"showAs");c!=null&&(i?a.showAs=tr(c,s,`${r}.showAs`,n):n.issue(`${r}.showAs`,`${s.agg} has no number to show as ${JSON.stringify(m(c,"type")??c)}`,"showAsNotNumber",{agg:s.agg}));let f=m(o,"conditional");f!=null&&(i?a.conditional=er(f,`${r}.conditional`,n):n.issue(`${r}.conditional`,"conditional formatting needs a number value","conditionalNotNumber",{agg:s.agg})),t.values.push(a)})}function rr(e,t,n){P(e,"filters",n.limits.filters,n,(o,r)=>{let s=n.resolve(m(o,"field")),i=m(o,"type"),a=typeof i=="string"&&Object.hasOwn(O,i)?O[i]:null;if(!s)return n.unknownField(r,m(o,"field"));if(!a){let l=typeof i=="string"&&Object.hasOwn(Le,i)?{suggestion:Le[i]}:x(i,Object.keys(O));return n.issue(r,i===void 0?`a filter needs a type: one of ${Object.keys(O).join(", ")}`:`unknown filter type ${JSON.stringify(i)}`,"unknownFilterType",{value:p(i),...l})}if(n.keys(o,a.keys,r),!bt(s,t).some(l=>a.fields.includes(l)))return n.issue(r,`a ${i} filter does not work on the ${s.type} field "${s.name}"`,"filterFieldType",{field:s.name,type:s.type,value:i,allowed:a.fields.join(", "),suggestion:ht(s.type)});let u=a.normalize(o,{field:s.name,type:i},s,r,n,t);u&&t.filters.push(u)})}var or=Object.freeze(["label","value","custom"]);function sr(e,t,n,o){if(!Array.isArray(e))return o.issue(n,"a custom order needs a list of items","sortNoItems"),null;e.length>o.limits.items&&o.issue(n,`more than ${o.limits.items} items`,"tooManyItems",{max:o.limits.items});let r=new Set,s=[];for(let i of e.slice(0,o.limits.items)){let a=De(t,i,n,o);a!==void 0&&!r.has(a)&&(r.add(a),s.push(a))}return s}function ir(e,t,n){let o=new Set;P(e,"sort",n.limits.sort,n,(r,s)=>{n.keys(r,S.sort,s);let i=n.resolve(m(r,"field"));if(!i||o.has(i.name))return i?n.issue(s,`"${i.name}" is sorted twice`,"sortedTwice",{field:i.name}):n.unknownField(s,m(r,"field"));let a=K(m(r,"by"),or,"label"),u={field:i.name,by:a,order:K(m(r,"order"),["asc","desc"],"asc")};if(a==="custom"){let l=sr(m(r,"items"),i,`${s}.items`,n);if(!l)return;u.items=l}if(a==="value"){let l=m(r,"value")===void 0?n.defaultRef(t):n.valueRef(m(r,"value"),`${s}.value`);if(!l)return;u.value=l}o.add(i.name),t.sort.push(u)})}function ar(e,t,n){let o=m(e,"totals");if(o!==void 0){if(!k(o))return n.issue("totals","not an object","badTotals");n.keys(o,S.totals,"totals");for(let r of Object.keys(t.totals))t.totals[r]=he(m(o,r),t.totals[r])}}function ur(e,t,n){n.keys(m(e,"collapsed"),S.collapsed,"collapsed");for(let o of["rows","cols"]){let r=t[o].map(i=>n.fields.get(i.toLowerCase()).type),s=new Set;P(e,`collapsed.${o}`,n.limits.collapsed,n,i=>{if(!Array.isArray(i)||i.length===0||i.length>=r.length)return n.issue(`collapsed.${o}`,`path ${JSON.stringify(i)} does not fit the ${o}`,"collapsedPath");let a=i.map((l,c)=>M(r[c],l));if(a.includes(void 0))return n.issue(`collapsed.${o}`,`path ${JSON.stringify(i)} does not fit the field types`,"collapsedPath");let u=JSON.stringify(a);s.has(u)||(s.add(u),t.collapsed[o].push(a))})}}function lr(e,t,n){let o=m(e,"display");t.display=K(o,Bn,t.display),o!==void 0&&t.display!==o&&n.issue("display",`unknown display ${JSON.stringify(o)}`,"unknownSetting",{value:p(o)});let r=m(e,"chart");if(n.keys(r,S.chart,"chart"),r!==void 0){let s=(a,u,l)=>{let c=m(r,a),f=K(c,u,l);return c!==void 0&&f!==c&&n.issue(`chart.${a}`,`unknown ${a} ${JSON.stringify(c)}`,"unknownSetting",{value:p(c)}),f},i=m(r,"title");t.chart={type:s("type",Vn,t.chart.type),stacked:he(m(r,"stacked"),!1),horizontal:he(m(r,"horizontal"),!1),valueLabels:s("valueLabels",Wn,"auto"),legend:s("legend",Jn,"auto"),title:i==null?null:n.text(i),smooth:he(m(r,"smooth"),!1),axisLabels:s("axisLabels",Gn,"auto"),groupLabels:s("groupLabels",Hn,"auto"),labelPosition:s("labelPosition",qn,"outside")},i!=null&&t.chart.title===null&&!(typeof i=="string"&&i.trim()==="")&&n.issue("chart.title",`not a text up to ${n.limits.name} characters`,"badTitle",{max:n.limits.name})}}function cr(e,t,n){let o=m(e,"formatting");n.keys(o,S.formatting,"formatting");let r=m(o,"locale");r!=null&&(t.formatting.locale=Je(r),t.formatting.locale===null&&n.issue("formatting.locale",`unknown locale ${JSON.stringify(r)}`,"unknownLocale",{value:p(r)}));let s=m(o,"weekStart");s!=null&&(Number.isInteger(s)&&s>=1&&s<=7?t.formatting.weekStart=s:n.issue("formatting.weekStart","the first day of a week is 1 (Monday) to 7 (Sunday)","unknownSetting",{value:p(s)}));let i=m(o,"timeZone");i!=null&&(t.formatting.timeZone=Ye(i),t.formatting.timeZone===null&&n.issue("formatting.timeZone",`unknown time zone ${JSON.stringify(i)}`,"unknownTimeZone",{value:p(i)}))}var fr=[Qn,Xn,nr,rr,ir,ar,ur,lr,cr],zt=Object.freeze({columns:"cols",column:"cols",measures:"values",measure:"values",aggregations:"values",filter:"filters",sorting:"sort"});function x(e,t){let n=At(e,t);return n===null?{}:{suggestion:n}}var Rt=Object.freeze({avg:"average",mean:"average",cnt:"count",total:"sum",distinct:"countUnique",stddev:"stdev"});function dr(e){let t=typeof e=="string"&&Object.hasOwn(Rt,e.trim().toLowerCase())?Rt[e.trim().toLowerCase()]:null;return t?{suggestion:t}:x(e,Ne)}var mr=1e5;function gr(e,t,n,o){let r=new Map(Ft(e).map(u=>[u.name.toLowerCase(),u])),s=new Map,i=u=>{if(!s.has(u)){let l=e,c=l&&!Array.isArray(l)&&typeof l.column=="function"?l.column(u):void 0;s.set(u,c&&c.type==="string"&&c.dict.length<=mr?{exact:new Set(c.dict),byFold:new Map(c.dict.map(f=>[C(f),f]))}:null)}return s.get(u)},a={limits:t,fields:r,strict:o,issue:(u,l,c,f)=>{n(E(u,l,c,f))},warn:(u,l,c,f)=>{n(E(u,l,c,f,"warning"))},suggest:x,unknownField:(u,l)=>a.issue(u,`unknown field ${JSON.stringify(l)}`,"unknownField",{field:p(l),...x(l,[...r.values()].map(c=>c.name))}),keys:(u,l,c)=>{if(k(u))for(let f of Object.keys(u))l.includes(f)||a.warn(`${c}.${f.slice(0,100)}`,"unknown key","unknownKey",{value:p(f),...x(f,l)})},itemHint:(u,l,c)=>{if(typeof l!="string")return;let f=i(u.name),d=f&&!f.exact.has(l)?f.byFold.get(C(l)):void 0;d!==void 0&&a.warn(c,`item ${JSON.stringify(l)} is no item of "${u.name}"; did you mean ${JSON.stringify(d)}?`,"itemCase",{field:u.name,value:p(l),suggestion:d})},text:u=>{if(typeof u!="string")return null;let l=u.trim();return l===""||l.length>t.name?null:l},resolve:u=>typeof u=="string"&&u.length<=t.name?r.get(u.trim().toLowerCase()):void 0,resultType:u=>W(u.agg).resultType(u.field?r.get(u.field.toLowerCase()).type:"number"),defaultRef:u=>u.values.length?{field:u.values[0].field,agg:u.values[0].agg}:{field:null,agg:"count"},valueRef:(u,l,c=S.valueRef)=>{if(!k(u))return a.issue(l,"not a value reference","notValueRef"),null;a.keys(u,c,l);let f=m(u,"agg"),d=m(u,"field"),g=d==null?null:a.resolve(d);return W(f)?g===void 0?(a.unknownField(l,d),null):g===null&&f!=="count"?(a.issue(l,`${f} needs a field`,"aggregatorNeedsField",{agg:f}),null):g&&!ve(f,g.type)?(a.issue(l,`${f} does not work on the ${g.type} field "${g.name}"`,"aggregatorType",{agg:f,type:g.type,field:g.name}),null):{field:g?g.name:null,agg:f}:(a.issue(l,`unknown aggregator ${JSON.stringify(f)}`,"unknownAggregator",{value:p(f),...dr(f)}),null)}};return a}function Co(e,t,n){return n=R(n,"normalize"),_t(e,t,n,!1)}function _t(e,t,n,o){let r=qe(n),s=Z(),i=(d,g,y,b)=>({view:s,issues:[E(d,g,y,b)]}),a;try{let d=typeof e=="string"?e:JSON.stringify(e);if(typeof d!="string")return i("","not a view object","notView");if(d.length>r.json)return i("",`larger than ${r.json} characters`,"tooLarge",{max:r.json});a=JSON.parse(d)}catch{return i("","not valid JSON","notJson")}let u=pr(),l=Zn(a);if(l.issues.forEach(u.add),l.view===null)return{view:s,issues:u.done()};let c=l.view;for(let d of Object.keys(c))Object.hasOwn(s,d)||u.add(E(d.slice(0,100),"unknown key","unknownKey",{value:p(d),...Object.hasOwn(zt,d.toLowerCase())?{suggestion:zt[d.toLowerCase()]}:x(d,S.view)}));let f=gr(t,r,u.add,o);for(let d of fr)d(c,s,f);return{view:s,issues:u.done()}}function pr(){let e=[],t=new Map,n=0;return{add:o=>{let r=t.get(o.code)??0;if(r>=Q.perCode||e.length>=Q.total){n++;return}t.set(o.code,r+1),e.push(o)},done:()=>n===0?e:[...e,E("",`${n} more issues left out`,"tooManyIssues",{value:String(n),max:Q.perCode})]}}function $o(e,t,n){n=R(n,"validate");let{issues:o}=_t(e,t,n,!0),r=o.filter(s=>s.severity!=="warning");return{valid:r.length===0,errors:r,warnings:o.filter(s=>s.severity==="warning")}}function Eo(e,t){return Ft(t).concat((e.derived||[]).map(n=>({name:n.name,type:v[n.by].type,derived:!0})))}export{Ne as a,W as b,yr as c,N as d,Ir as e,jr as f,Mr as g,zr as h,Rr as i,re as j,Ae as k,Tr as l,Sr as m,Nr as n,nt as o,vr as p,kr as q,L as r,Ce as s,$e as t,C as u,q as v,J as w,U as x,G as y,it as z,rn as A,ue as B,at as C,ut as D,Me as E,Gr as F,ze as G,O as H,Hr as I,Yr as J,Zr as K,At as L,to as M,ge as N,no as O,vt as P,zn as Q,ro as R,xe as S,oo as T,be as U,uo as V,Dt as W,E as X,Vn as Y,ko as Z,Bn as _,Ao as $,Wn as aa,qn as ba,Jn as ca,Gn as da,Hn as ea,Z as fa,Co as ga,$o as ha,Eo as ia};