@svgrid/enterprise 3.1.0 → 3.1.1

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 (53) hide show
  1. package/dist/SvSheet.svelte +87 -8
  2. package/dist/cdn/svgrid-enterprise.svelte-external.js +13269 -13209
  3. package/dist/designer/assets/{GridMenus-8gTNssgV.js → GridMenus-DGZJKFvX.js} +1 -1
  4. package/dist/designer/assets/SvGrid.helpers-DE5mmORW.js +1 -0
  5. package/dist/designer/assets/{SvGridCellEditor-DMoWJjEI.js → SvGridCellEditor-C7NWcnNC.js} +1 -1
  6. package/dist/designer/assets/{SvGridChart-Cy1ATrWh.js → SvGridChart-Fg43Yi0M.js} +2 -2
  7. package/dist/designer/assets/{SvGridChartBuilder-eQ3mn0L9.js → SvGridChartBuilder-BqGuA3yU.js} +1 -1
  8. package/dist/designer/assets/{SvGridChartPanel-CATdVc9X.js → SvGridChartPanel-BsiXRAnx.js} +3 -3
  9. package/dist/designer/assets/{SvGridChartView-CmsZtCED.js → SvGridChartView-BgttK0tR.js} +1 -1
  10. package/dist/designer/assets/{SvListBox-BDS66lmZ.js → SvListBox-v2jm0-vf.js} +1 -1
  11. package/dist/designer/assets/cell-formatting-BWrW_O0n.js +1 -0
  12. package/dist/designer/assets/{chart-Cn7MnNqA.js → chart-BIl-dIRv.js} +1 -1
  13. package/dist/designer/assets/{chart-panel-messages-Dz7PTIqT.js → chart-panel-messages-4cF2vw7L.js} +1 -1
  14. package/dist/designer/assets/{chart-summary-BD1qYB2R.js → chart-summary-B7bTtSCC.js} +1 -1
  15. package/dist/designer/assets/{chart-trend-B8xr5LuD.js → chart-trend-CLsn5Hgd.js} +1 -1
  16. package/dist/designer/assets/export-format-DGscOjS9.js +6 -0
  17. package/dist/designer/assets/{index-BSjv6Qec.js → index-DkhD2kIe.js} +314 -314
  18. package/dist/designer/assets/index-l21iGkpF.css +1 -0
  19. package/dist/designer/assets/src-Mu7AGqT8.js +58 -0
  20. package/dist/designer/index.html +12 -12
  21. package/dist/export-ooxml.d.ts +10 -0
  22. package/dist/export-ooxml.js +22 -5
  23. package/dist/import.js +11 -2
  24. package/dist/node/studio.js +221 -129
  25. package/dist/sheet/objects.d.ts +47 -0
  26. package/dist/sheet/objects.js +33 -0
  27. package/dist/studio/cli.js +55 -1
  28. package/dist/studio/init-flow.d.ts +6 -1
  29. package/dist/studio/init-flow.js +43 -2
  30. package/dist/studio/scaffold-app.d.ts +6 -0
  31. package/dist/studio/scaffold-app.js +5 -3
  32. package/dist/studio/scaffold.js +29 -12
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/dist/wc/{GridMenus-By9vPuq0.js → GridMenus-6_fF5jIm.js} +2 -2
  36. package/dist/wc/{SvGrid.helpers-BdVDtjUm.js → SvGrid.helpers-zBkDTryR.js} +36 -37
  37. package/dist/wc/{SvGridCellEditor-Bnf1Kr5C.js → SvGridCellEditor-CzUKEbkI.js} +1 -1
  38. package/dist/wc/{SvGridChart-BqUJh2pG.js → SvGridChart-C6UvNIbN.js} +3 -3
  39. package/dist/wc/{SvGridChartBuilder-CGycC5cn.js → SvGridChartBuilder-ikf_5LyW.js} +3 -3
  40. package/dist/wc/{SvGridChartPanel-CRnizsHD.js → SvGridChartPanel-Dc_jj7B-.js} +4 -4
  41. package/dist/wc/{SvGridChartView-D1pa_xMy.js → SvGridChartView-thkznAOb.js} +2 -2
  42. package/dist/wc/{cell-formatting-CBfgahv1.js → cell-formatting-hb3vzxhJ.js} +27 -5
  43. package/dist/wc/{chart-6OXlybVT.js → chart-CV5D7_k8.js} +1 -1
  44. package/dist/wc/{chart-summary-2m3ia1-n.js → chart-summary-DGx0QhJa.js} +1 -1
  45. package/dist/wc/{chart-trend-CQOQtTMl.js → chart-trend-BIRH_xH8.js} +1 -1
  46. package/dist/wc/sv-sheet-element.js +7444 -7347
  47. package/dist/wc/{svelte-virtualizer.svelte-CXtQy2TQ.js → svelte-virtualizer.svelte-Du4tjrIP.js} +7 -3
  48. package/package.json +3 -3
  49. package/dist/designer/assets/SvGrid.helpers-BgT-gnCo.js +0 -1
  50. package/dist/designer/assets/cell-formatting-BbubJTVz.js +0 -1
  51. package/dist/designer/assets/export-format-DGckmgKr.js +0 -6
  52. package/dist/designer/assets/index-_JVFxt02.css +0 -1
  53. package/dist/designer/assets/src-DUQ4xE3x.js +0 -58
@@ -441,11 +441,14 @@ function D(e) {
441
441
  }
442
442
  return {
443
443
  setOptions(e) {
444
- let n = {
444
+ let r = {
445
445
  ...t,
446
446
  ...e
447
- };
448
- b(t, n) || (t = n, s());
447
+ }, i = typeof e.estimateSize == "function";
448
+ !i && b(t, r) || (t = r, i && (n = null), s());
449
+ },
450
+ measure() {
451
+ n = null, s();
449
452
  },
450
453
  setScrollOffset(e) {
451
454
  (t.scrollOffset ?? 0) !== e && (t = {
@@ -516,6 +519,7 @@ function O(r) {
516
519
  return e(a);
517
520
  },
518
521
  setOptions: i.setOptions,
522
+ measure: i.measure,
519
523
  setScrollOffset: i.setScrollOffset,
520
524
  setViewportHeight: i.setViewportHeight,
521
525
  scrollToIndex: i.scrollToIndex,
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "commercial",
5
5
  "url": "https://svgrid.com/pricing"
6
6
  },
7
- "version": "3.1.0",
7
+ "version": "3.1.1",
8
8
  "description": "Enterprise feature pack for SvGrid: the server-side row model (lazy grouping, tree, pivot, transactions, selection across unloaded rows), Excel (xlsx) and PDF export, Excel/CSV/JSON import, pivot tables with a drag-and-drop designer, paginated print, Kanban board and scheduler renderers, no-code alerts and batch editing. CSV, TSV and JSON export are already free in @svgrid/grid. Requires a paid license key.",
9
9
  "license": "SEE LICENSE IN LICENSE",
10
10
  "author": "jQWidgets <sales@jqwidgets.com>",
@@ -101,7 +101,7 @@
101
101
  "jszip": "^3.10.0",
102
102
  "pdfmake": "^0.2.0",
103
103
  "svelte": "^5.0.0",
104
- "@svgrid/grid": "^3.0.6"
104
+ "@svgrid/grid": "^3.0.7"
105
105
  },
106
106
  "peerDependenciesMeta": {
107
107
  "jszip": {
@@ -119,7 +119,7 @@
119
119
  "svelte": "^5.55.5",
120
120
  "typescript": "6.0.3",
121
121
  "vite": "^8.2.1",
122
- "@svgrid/grid": "^3.0.6"
122
+ "@svgrid/grid": "^3.0.7"
123
123
  },
124
124
  "repository": {
125
125
  "type": "git",
@@ -1 +0,0 @@
1
- function e(e){let t=``;return e.color&&(t+=`color:${e.color};`),e.fontWeight!=null&&(t+=`font-weight:${e.fontWeight};`),t}function t(e){return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}function n(e,t){return`${e}:${t}`}function r(e){if(!e)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.filter(Boolean).join(` `);if(typeof e==`object`){let t=[];for(let[n,r]of Object.entries(e))r&&t.push(n);return t.join(` `)}return``}function i(e){if(e==null||e===``)return``;if(typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?``:t.toISOString().slice(0,10)}function a(e){if(e==null||e===``)return``;if(typeof e==`string`&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(e))return e;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?``:t.toISOString().slice(0,16)}function o(e){return String(e).replace(/-native$/,``)}function s(e){if(e instanceof Date)return e;if(typeof e==`string`){let t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?/);if(t){let e=new Date;return e.setHours(Math.min(23,+t[1]),Math.min(59,+t[2]),t[3]?+t[3]:0,0),e}}return null}function c(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:null}function l(e,t){let n=o(e);return n===`date`?i(t):n===`datetime`?a(t):String(t??``)}function u(e){let t=o(e);return t===`number`?`number`:t===`date`?`date`:t===`datetime`?`datetime-local`:t===`time`?`time`:t===`password`?`password`:t===`color`?`color`:`text`}function d(e){if(!e||Number.isNaN(e.getTime()))return``;let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}function f(e){if(!e)return null;let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(!t){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}let n=new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isNaN(n.getTime())?null:n}function p(e){if(!e||String(e).endsWith(`-native`))return!1;let t=o(e);return t===`date`||t===`datetime`||t===`time`}function m(e){return o(e)===`number`?`text`:u(e)}function h(e){return/^-?(\d*\.?\d*)(e-?\d*)?$/i.test(e)}function g(e){return e==null||e===``?[]:Array.isArray(e)?e.filter(e=>e!=null&&e!==``):[e]}function _(e,t){let n=e.find(e=>e.value===t||String(e.value)===String(t));return n?n.label:String(t??``)}function v(e,t){return e.find(e=>e.value===t||String(e.value)===String(t))?.color}function y(e){return e?`background: color-mix(in srgb, ${e} 22%, transparent);border-color: color-mix(in srgb, ${e} 45%, transparent);color: color-mix(in srgb, ${e} 80%, var(--sg-fg, #0f172a));`:``}function b(e){let t=o(e);return t===`number`?`sv-grid-cell-editor sv-grid-cell-editor-number`:t===`date`?`sv-grid-cell-editor sv-grid-cell-editor-date`:t===`datetime`?`sv-grid-cell-editor sv-grid-cell-editor-datetime`:t===`color`?`sv-grid-cell-editor sv-grid-cell-editor-color`:`sv-grid-cell-editor`}function x(e){if(e==null||e===``)return null;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:t}function S(e,t){return Math.max(8,Math.min(e,window.innerWidth-t-8))}function C(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e.replace(/"/g,`\\"`)}function w(e,t){if(e==null||e===``)return NaN;if(t){let t=(e instanceof Date?e:new Date(String(e))).getTime();return Number.isFinite(t)?t:NaN}let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:NaN}function T(e){let t=Math.abs(e),n=t>=1e3?0:t>=100?1:t>=1?2:4;return e.toLocaleString(void 0,{maximumFractionDigits:n})}function E(e){return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}export{g as C,d as S,_,C as a,r as b,E as c,m as d,n as f,v as g,u as h,y as i,T as l,b as m,e as n,c as o,l as p,S as r,t as s,x as t,f as u,h as v,p as w,s as x,w as y};
@@ -1 +0,0 @@
1
- function e(e,t){if(e)switch(e.trim()){case`d`:return t===`datetime`?{year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`}:{year:`numeric`,month:`numeric`,day:`numeric`};case`D`:return t===`datetime`?{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`,hour:`numeric`,minute:`numeric`}:{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`};case`y-m-d`:return t===`datetime`?{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}:{year:`numeric`,month:`2-digit`,day:`2-digit`};case`medium`:return{dateStyle:`medium`,timeStyle:t===`datetime`?`short`:void 0};case`short`:return{dateStyle:`short`,timeStyle:t===`datetime`?`short`:void 0};case`long`:return{dateStyle:`long`,timeStyle:t===`datetime`?`short`:void 0};default:return}}var t=new Map;function n(e,n){let r=(Array.isArray(e)?e.join(`,`):e??``)+`|`+(n.style??``)+`|`+(n.currency??``)+`|`+(n.minimumFractionDigits??``)+`|`+(n.maximumFractionDigits??``)+`|`+(n.useGrouping??``)+`|`+(n.currencyDisplay??``)+`|`+(n.notation??``)+`|`+(n.signDisplay??``)+`|`+(n.minimumIntegerDigits??``)+`|`+(n.compactDisplay??``)+`|`+(n.unit??``)+`|`+(n.unitDisplay??``)+`|`+(n.minimumSignificantDigits??``)+`|`+(n.maximumSignificantDigits??``),i=t.get(r);return i||(i=new Intl.NumberFormat(e,n),t.set(r,i)),i}var r=new Map;function i(e,t){let n=(Array.isArray(e)?e.join(`,`):e??``)+`|`+(t.dateStyle??``)+`|`+(t.timeStyle??``)+`|`+(t.year??``)+`|`+(t.month??``)+`|`+(t.day??``)+`|`+(t.hour??``)+`|`+(t.minute??``)+`|`+(t.second??``)+`|`+(t.weekday??``)+`|`+(t.hour12??``),i=r.get(n);return i||(i=new Intl.DateTimeFormat(e,t),r.set(n,i)),i}function a(e,t){let r=typeof e==`number`?e:Number(e);if(!Number.isFinite(r))return String(e??``);let i=t.locales;if(t.type===`currency`)return n(i,{style:`currency`,currency:t.currency??`USD`,...t.options}).format(r);if(t.type===`percent`){let e=t.valueIsPercentPoints===!0?r/100:r;return n(i,{style:`percent`,minimumFractionDigits:0,maximumFractionDigits:2,...t.options}).format(e)}return n(i,t.options??{}).format(r)}export{e as i,i as n,n as r,a as t};
@@ -1,6 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{i as t,n,t as r}from"./cell-formatting-BbubJTVz.js";var i=e({coerceExportDate:()=>a,copyTextToClipboard:()=>O,downloadBlobFile:()=>E,downloadTextFile:()=>D,formatValueForExport:()=>o,projectGridRows:()=>c,serializeDelimited:()=>h,serializeHtml:()=>v,serializeJson:()=>y,serializeMarkdown:()=>x,serializeXml:()=>T,toExcelNumFmt:()=>s,valueForExcel:()=>u});function a(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e==`number`&&Number.isFinite(e)){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e==`string`&&e.trim()!==``){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function o(e,i){if(e==null)return``;if(!i)return String(e);if(i.type===`number`||i.type===`currency`||i.type===`percent`)return r(e,{type:i.type,locales:i.locales,currency:i.type===`currency`?i.currency??`USD`:void 0,valueIsPercentPoints:i.type===`percent`?i.valueIsPercentPoints:void 0,options:i.options});if(i.type===`date`||i.type===`datetime`){let r=a(e);if(r){let e=t(i.pattern,i.type),a=e||i.options?{...e,...i.options}:i.type===`date`?{year:`numeric`,month:`2-digit`,day:`2-digit`}:{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};return n(i.locales,a).format(r)}}return String(e)}function s(e){if(!e)return;let t=()=>{let t=e.options;return t&&typeof t.maximumFractionDigits==`number`?t.maximumFractionDigits:t&&typeof t.minimumFractionDigits==`number`?t.minimumFractionDigits:e.type===`currency`?2:e.type===`number`?0:2},n=e=>e>0?`.`+`0`.repeat(e):``;switch(e.type){case`number`:return`#,##0${n(t())}`;case`currency`:return`"${l(e.currency??`USD`)}"#,##0${n(t())}`;case`percent`:return`0${n(t())}%`;case`date`:return`yyyy-mm-dd`;case`datetime`:return`yyyy-mm-dd hh:mm`;default:return}}function c(e,t,n={}){let r=n.columns&&n.columns.length?n.columns.map(e=>t.find(t=>t.field===e)).filter(e=>!!e):t.filter(e=>e.field),i=r.map(e=>e.field),a={};for(let e of r)e.align&&(a[e.field]=e.align);let s={};for(let e of r)s[e.field]=e.header;let c=[s];for(let t of e){let e={};for(let i of r){let r=t[i.field];e[i.field]=n.rawValues?r:o(r,i.format)}c.push(e)}return{records:c,fields:i,align:a}}function l(e){return{USD:`$`,EUR:`€`,GBP:`£`,JPY:`¥`,CNY:`¥`,INR:`₹`,KRW:`₩`,RUB:`₽`,BRL:`R$`}[e.toUpperCase()]??e.toUpperCase()}function u(e,t){if(e==null||!t)return{ok:!1};if(t.type===`number`||t.type===`currency`){let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?{ok:!0,value:t}:{ok:!1}}if(t.type===`percent`){let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?{ok:!0,value:t.valueIsPercentPoints===!0?n/100:n}:{ok:!1}}if(t.type===`date`||t.type===`datetime`){let t=a(e);return t?{ok:!0,value:t}:{ok:!1}}return{ok:!1}}var d=``;function f(e){if(e?.aborted)throw new DOMException(`Export aborted`,`AbortError`)}var p=()=>new Promise(e=>setTimeout(e,0));function m(e,t){let n=e==null?``:e instanceof Date?e.toISOString():String(e);return n===``?n:n.includes(t)||n.includes(`"`)||n.includes(`
2
- `)||n.includes(`\r`)?`"${n.replace(/"/g,`""`)}"`:n}async function h(e,t,n={}){let r=n.csv?.delimiter??`,`,i=n.csv?.eol??`\r
3
- `,a=n.csv?.bom??!0,o=Math.max(1,n.chunkRows??5e3),s=e.length,c=[];for(let i=0;i<e.length;i++){f(n.signal);let a=e[i];c.push(t.map(e=>m(a[e],r)).join(r)),i>0&&i%o===0&&(n.onProgress?.({phase:`serialize`,ratio:i/s,row:i,total:s}),await p())}n.onProgress?.({phase:`serialize`,ratio:1,row:s,total:s});let l=c.join(i);return(a?d:``)+l}var g={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`};function _(e){return(e==null?``:e instanceof Date?e.toISOString():String(e)).replace(/[&<>"']/g,e=>g[e])}async function v(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length,a=n.align??{},o=n.cellStyle,s=n.cellLink,c=n.title??`Grid export`,l=e[0],u=l?t.map(e=>`<th>${_(l[e])}</th>`).join(``):``,d=[];for(let c=1;c<e.length;c++){f(n.signal);let l=e[c],u=t.map((e,t)=>{let n=a[e],r=[];n&&n!==`left`&&r.push(`text-align:${n}`);let i=o?.(c-1,t);i?.fill&&r.push(`background:${i.fill}`),i?.color&&r.push(`color:${i.color}`),i?.bold&&r.push(`font-weight:700`);let u=r.length?` style="${r.join(`;`)}"`:``,d=i?.icon?`${i.icon} ${_(l[e])}`:_(l[e]),f=s?.(c-1,t);return f&&(d=`<a href="${_(f)}">${d}</a>`),`<td${u}>${d}</td>`}).join(``);d.push(`<tr>${u}</tr>`),c>0&&c%r===0&&(n.onProgress?.({phase:`serialize`,ratio:c/i,row:c,total:i}),await p())}return n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),`<!doctype html><html><head><meta charset="utf-8"><title>${_(c)}</title><style>table{border-collapse:collapse;font-family:system-ui,sans-serif;font-size:13px}th,td{border:1px solid #d0d7de;padding:6px 10px}th{background:#f6f8fa;text-align:left}</style></head><body><table><thead><tr>${u}</tr></thead><tbody>${d.join(``)}</tbody></table></body></html>`}async function y(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length-1,a=[];for(let o=1;o<e.length;o++){f(n.signal);let s=e[o],c={};for(let e of t)c[e]=s[e];a.push(c),o>0&&o%r===0&&(n.onProgress?.({phase:`serialize`,ratio:o/i,row:o,total:i}),await p())}return n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),JSON.stringify(a,null,2)}function b(e){return(e==null?``:e instanceof Date?e.toISOString():String(e)).replace(/\\/g,`\\\\`).replace(/\|/g,`\\|`).replace(/\r?\n/g,`<br>`)}async function x(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length,a=n.align??{},o=e[0],s=`| ${t.map(e=>b(o?.[e])).join(` | `)} |`,c=`| ${t.map(e=>{let t=a[e];return t===`right`?`---:`:t===`center`?`:--:`:`---`}).join(` | `)} |`,l=[];for(let a=1;a<e.length;a++){f(n.signal);let o=e[a];l.push(`| ${t.map(e=>b(o[e])).join(` | `)} |`),a>0&&a%r===0&&(n.onProgress?.({phase:`serialize`,ratio:a/i,row:a,total:i}),await p())}return n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),[s,c,...l].join(`
4
- `)+`
5
- `}var S={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&apos;`};function C(e){return(e==null?``:e instanceof Date?e.toISOString():String(e)).replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g,``).replace(/[&<>"']/g,e=>S[e])}function w(e){let t=e.replace(/[^A-Za-z0-9_.-]/g,`_`);return/^[A-Za-z_]/.test(t)?t:`_${t}`}async function T(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length-1,a=n.rootTag??`rows`,o=n.rowTag??`row`,s=t.map(w),c=[`<?xml version="1.0" encoding="UTF-8"?>`,`<${a}>`];for(let a=1;a<e.length;a++){f(n.signal);let l=e[a],u=t.map((e,t)=>`<${s[t]}>${C(l[e])}</${s[t]}>`).join(``);c.push(` <${o}>${u}</${o}>`),a>0&&a%r===0&&(n.onProgress?.({phase:`serialize`,ratio:a/i,row:a,total:i}),await p())}return c.push(`</${a}>`),n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),c.join(`
6
- `)}function E(e,t){if(typeof document>`u`||typeof URL>`u`)throw Error(`@svgrid/grid: export requires a browser environment`);let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),0)}function D(e,t,n){if(typeof document>`u`||typeof URL>`u`)throw Error(`@svgrid/grid: text export requires a browser environment`);E(new Blob([e],{type:n}),t)}async function O(e){if(typeof navigator>`u`||!navigator.clipboard)throw Error(`@svgrid/grid: clipboard API is unavailable in this context`);await navigator.clipboard.writeText(e)}export{h as a,x as c,u as d,o as i,T as l,D as n,v as o,i as r,y as s,E as t,s as u};