@svgrid/grid 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GridFooter.svelte +14 -5
- package/dist/GridFooter.svelte.d.ts +8 -0
- package/dist/GridMenus.svelte +18 -10
- package/dist/GridMenus.svelte.d.ts +2 -1
- package/dist/SvGrid.controller.svelte.d.ts +17 -0
- package/dist/SvGrid.controller.svelte.js +128 -14
- package/dist/SvGrid.css +79 -10
- package/dist/SvGrid.svelte +191 -186
- package/dist/SvGrid.types.d.ts +42 -1
- package/dist/SvGridChart.svelte +571 -41
- package/dist/SvGridChart.svelte.d.ts +63 -1
- package/dist/SvGridChartPanel.svelte +169 -21
- package/dist/SvGridChartView.svelte +9 -0
- package/dist/SvGridChartView.svelte.d.ts +7 -0
- package/dist/SvGroupCell.svelte +28 -3
- package/dist/SvGroupCell.svelte.d.ts +8 -0
- package/dist/SvRowGroupPanel.svelte +20 -4
- package/dist/SvRowGroupPanel.svelte.d.ts +8 -0
- package/dist/ai.d.ts +11 -2
- package/dist/ai.js +51 -7
- package/dist/cdn/GridMenus-CHOMnW-c.js +602 -0
- package/dist/cdn/{GridMenus-DFB6iwF8.js → GridMenus-DhdPF700.js} +152 -150
- package/dist/cdn/SvGridChart-1PMSp2LZ.js +1481 -0
- package/dist/cdn/SvGridChart-D02avhyr.js +1480 -0
- package/dist/cdn/SvGridChartPanel-DJnViOv4.js +834 -0
- package/dist/cdn/SvGridChartPanel-vPTNerFZ.js +810 -0
- package/dist/cdn/{SvGridChartView-BhUEJ5ki.js → SvGridChartView-C--HhdUo.js} +5 -3
- package/dist/cdn/{SvGridChartView-00LPUHL1.js → SvGridChartView-KyyFG-wY.js} +5 -3
- package/dist/cdn/cell-formatting-C2Hf5gqd.js +86 -0
- package/dist/cdn/chart-DLg3_zTQ.js +1652 -0
- package/dist/cdn/{export-format-Cv1Dll6k.js → export-format-CUDLy2yn.js} +84 -168
- package/dist/cdn/{src-C8QjSaq-.js → src-Bugf5XlI.js} +3608 -3414
- package/dist/cdn/{src-D0hO2eYN.js → src-D6XvA1Ij.js} +8617 -8423
- package/dist/cdn/svgrid.js +16 -15
- package/dist/cdn/svgrid.svelte-external.js +16 -15
- package/dist/cell-formatting.d.ts +7 -0
- package/dist/cell-formatting.js +7 -1
- package/dist/chart-export.d.ts +23 -2
- package/dist/chart-export.js +80 -6
- package/dist/chart.d.ts +410 -18
- package/dist/chart.js +824 -24
- package/dist/grid-icons.d.ts +49 -0
- package/dist/grid-icons.js +86 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/package.json +11 -11
- package/src/GridFooter.svelte +14 -5
- package/src/GridMenus.svelte +18 -10
- package/src/SvGrid.controller.svelte.ts +146 -13
- package/src/SvGrid.css +79 -10
- package/src/SvGrid.svelte +191 -186
- package/src/SvGrid.types.ts +42 -1
- package/src/SvGridChart.svelte +571 -41
- package/src/SvGridChart.test.ts +243 -1
- package/src/SvGridChartPanel.svelte +169 -21
- package/src/SvGridChartView.svelte +9 -0
- package/src/SvGroupCell.svelte +28 -3
- package/src/SvRowGroupPanel.svelte +20 -4
- package/src/ai.test.ts +60 -1
- package/src/ai.ts +59 -6
- package/src/cell-formatting.ts +7 -1
- package/src/chart-export.test.ts +112 -0
- package/src/chart-export.ts +76 -8
- package/src/chart.test.ts +830 -1
- package/src/chart.ts +1053 -32
- package/src/grid-icons.test.ts +46 -0
- package/src/grid-icons.ts +184 -0
- package/src/icon-overrides.grid.test.ts +188 -0
- package/src/icon-seam.test.ts +100 -0
- package/src/index.ts +19 -0
- package/src/svgrid.charting.test.ts +120 -0
- package/dist/cdn/GridMenus-CYzOvmNQ.js +0 -600
- package/dist/cdn/SvGridChart-BEJmNNx9.js +0 -1203
- package/dist/cdn/SvGridChart-BwVos976.js +0 -1202
- package/dist/cdn/SvGridChartPanel-BOknOkrP.js +0 -561
- package/dist/cdn/SvGridChartPanel-D2PjII4O.js +0 -585
- package/dist/cdn/chart-i4XcXyHJ.js +0 -1214
|
@@ -1,106 +1,22 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
|
|
3
|
-
function t(e, t) {
|
|
4
|
-
if (e) switch (e.trim()) {
|
|
5
|
-
case "d": return t === "datetime" ? {
|
|
6
|
-
year: "numeric",
|
|
7
|
-
month: "numeric",
|
|
8
|
-
day: "numeric",
|
|
9
|
-
hour: "numeric",
|
|
10
|
-
minute: "numeric"
|
|
11
|
-
} : {
|
|
12
|
-
year: "numeric",
|
|
13
|
-
month: "numeric",
|
|
14
|
-
day: "numeric"
|
|
15
|
-
};
|
|
16
|
-
case "D": return t === "datetime" ? {
|
|
17
|
-
weekday: "long",
|
|
18
|
-
year: "numeric",
|
|
19
|
-
month: "long",
|
|
20
|
-
day: "numeric",
|
|
21
|
-
hour: "numeric",
|
|
22
|
-
minute: "numeric"
|
|
23
|
-
} : {
|
|
24
|
-
weekday: "long",
|
|
25
|
-
year: "numeric",
|
|
26
|
-
month: "long",
|
|
27
|
-
day: "numeric"
|
|
28
|
-
};
|
|
29
|
-
case "y-m-d": return t === "datetime" ? {
|
|
30
|
-
year: "numeric",
|
|
31
|
-
month: "2-digit",
|
|
32
|
-
day: "2-digit",
|
|
33
|
-
hour: "2-digit",
|
|
34
|
-
minute: "2-digit",
|
|
35
|
-
hour12: !1
|
|
36
|
-
} : {
|
|
37
|
-
year: "numeric",
|
|
38
|
-
month: "2-digit",
|
|
39
|
-
day: "2-digit"
|
|
40
|
-
};
|
|
41
|
-
case "medium": return {
|
|
42
|
-
dateStyle: "medium",
|
|
43
|
-
timeStyle: t === "datetime" ? "short" : void 0
|
|
44
|
-
};
|
|
45
|
-
case "short": return {
|
|
46
|
-
dateStyle: "short",
|
|
47
|
-
timeStyle: t === "datetime" ? "short" : void 0
|
|
48
|
-
};
|
|
49
|
-
case "long": return {
|
|
50
|
-
dateStyle: "long",
|
|
51
|
-
timeStyle: t === "datetime" ? "short" : void 0
|
|
52
|
-
};
|
|
53
|
-
default: return;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
var n = /* @__PURE__ */ new Map();
|
|
57
|
-
function r(e, t) {
|
|
58
|
-
let r = (Array.isArray(e) ? e.join(",") : e ?? "") + "|" + (t.style ?? "") + "|" + (t.currency ?? "") + "|" + (t.minimumFractionDigits ?? "") + "|" + (t.maximumFractionDigits ?? "") + "|" + (t.useGrouping ?? "") + "|" + (t.currencyDisplay ?? "") + "|" + (t.notation ?? ""), i = n.get(r);
|
|
59
|
-
return i || (i = new Intl.NumberFormat(e, t), n.set(r, i)), i;
|
|
60
|
-
}
|
|
61
|
-
var i = /* @__PURE__ */ new Map();
|
|
62
|
-
function a(e, t) {
|
|
63
|
-
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 ?? ""), r = i.get(n);
|
|
64
|
-
return r || (r = new Intl.DateTimeFormat(e, t), i.set(n, r)), r;
|
|
65
|
-
}
|
|
66
|
-
function o(e, t) {
|
|
67
|
-
let n = typeof e == "number" ? e : Number(e);
|
|
68
|
-
if (!Number.isFinite(n)) return String(e ?? "");
|
|
69
|
-
let i = t.locales;
|
|
70
|
-
if (t.type === "currency") return r(i, {
|
|
71
|
-
style: "currency",
|
|
72
|
-
currency: t.currency ?? "USD",
|
|
73
|
-
...t.options
|
|
74
|
-
}).format(n);
|
|
75
|
-
if (t.type === "percent") {
|
|
76
|
-
let e = t.valueIsPercentPoints === !0 ? n / 100 : n;
|
|
77
|
-
return r(i, {
|
|
78
|
-
style: "percent",
|
|
79
|
-
minimumFractionDigits: 0,
|
|
80
|
-
maximumFractionDigits: 2,
|
|
81
|
-
...t.options
|
|
82
|
-
}).format(e);
|
|
83
|
-
}
|
|
84
|
-
return r(i, t.options ?? {}).format(n);
|
|
85
|
-
}
|
|
86
|
-
//#endregion
|
|
2
|
+
import { i as t, n, t as r } from "./cell-formatting-C2Hf5gqd.js";
|
|
87
3
|
//#region src/export-format.ts
|
|
88
|
-
var
|
|
89
|
-
coerceExportDate: () =>
|
|
90
|
-
copyTextToClipboard: () =>
|
|
91
|
-
downloadBlobFile: () =>
|
|
92
|
-
downloadTextFile: () =>
|
|
93
|
-
formatValueForExport: () =>
|
|
94
|
-
projectGridRows: () =>
|
|
95
|
-
serializeDelimited: () =>
|
|
96
|
-
serializeHtml: () =>
|
|
97
|
-
serializeJson: () =>
|
|
98
|
-
serializeMarkdown: () =>
|
|
99
|
-
serializeXml: () =>
|
|
100
|
-
toExcelNumFmt: () =>
|
|
101
|
-
valueForExcel: () =>
|
|
4
|
+
var i = /* @__PURE__ */ e({
|
|
5
|
+
coerceExportDate: () => a,
|
|
6
|
+
copyTextToClipboard: () => O,
|
|
7
|
+
downloadBlobFile: () => E,
|
|
8
|
+
downloadTextFile: () => D,
|
|
9
|
+
formatValueForExport: () => o,
|
|
10
|
+
projectGridRows: () => c,
|
|
11
|
+
serializeDelimited: () => h,
|
|
12
|
+
serializeHtml: () => v,
|
|
13
|
+
serializeJson: () => y,
|
|
14
|
+
serializeMarkdown: () => x,
|
|
15
|
+
serializeXml: () => T,
|
|
16
|
+
toExcelNumFmt: () => s,
|
|
17
|
+
valueForExcel: () => u
|
|
102
18
|
});
|
|
103
|
-
function
|
|
19
|
+
function a(e) {
|
|
104
20
|
if (e instanceof Date) return Number.isNaN(e.getTime()) ? null : e;
|
|
105
21
|
if (typeof e == "number" && Number.isFinite(e)) {
|
|
106
22
|
let t = new Date(e);
|
|
@@ -112,23 +28,23 @@ function c(e) {
|
|
|
112
28
|
}
|
|
113
29
|
return null;
|
|
114
30
|
}
|
|
115
|
-
function
|
|
31
|
+
function o(e, i) {
|
|
116
32
|
if (e == null) return "";
|
|
117
|
-
if (!
|
|
118
|
-
if (
|
|
119
|
-
type:
|
|
120
|
-
locales:
|
|
121
|
-
currency:
|
|
122
|
-
valueIsPercentPoints:
|
|
123
|
-
options:
|
|
33
|
+
if (!i) return String(e);
|
|
34
|
+
if (i.type === "number" || i.type === "currency" || i.type === "percent") return r(e, {
|
|
35
|
+
type: i.type,
|
|
36
|
+
locales: i.locales,
|
|
37
|
+
currency: i.type === "currency" ? i.currency ?? "USD" : void 0,
|
|
38
|
+
valueIsPercentPoints: i.type === "percent" ? i.valueIsPercentPoints : void 0,
|
|
39
|
+
options: i.options
|
|
124
40
|
});
|
|
125
|
-
if (
|
|
126
|
-
let r =
|
|
41
|
+
if (i.type === "date" || i.type === "datetime") {
|
|
42
|
+
let r = a(e);
|
|
127
43
|
if (r) {
|
|
128
|
-
let e = t(
|
|
44
|
+
let e = t(i.pattern, i.type), a = e || i.options ? {
|
|
129
45
|
...e,
|
|
130
|
-
...
|
|
131
|
-
} :
|
|
46
|
+
...i.options
|
|
47
|
+
} : i.type === "date" ? {
|
|
132
48
|
year: "numeric",
|
|
133
49
|
month: "2-digit",
|
|
134
50
|
day: "2-digit"
|
|
@@ -139,12 +55,12 @@ function l(e, n) {
|
|
|
139
55
|
hour: "2-digit",
|
|
140
56
|
minute: "2-digit"
|
|
141
57
|
};
|
|
142
|
-
return
|
|
58
|
+
return n(i.locales, a).format(r);
|
|
143
59
|
}
|
|
144
60
|
}
|
|
145
61
|
return String(e);
|
|
146
62
|
}
|
|
147
|
-
function
|
|
63
|
+
function s(e) {
|
|
148
64
|
if (!e) return;
|
|
149
65
|
let t = () => {
|
|
150
66
|
let t = e.options;
|
|
@@ -152,34 +68,34 @@ function u(e) {
|
|
|
152
68
|
}, n = (e) => e > 0 ? "." + "0".repeat(e) : "";
|
|
153
69
|
switch (e.type) {
|
|
154
70
|
case "number": return `#,##0${n(t())}`;
|
|
155
|
-
case "currency": return `"${
|
|
71
|
+
case "currency": return `"${l(e.currency ?? "USD")}"#,##0${n(t())}`;
|
|
156
72
|
case "percent": return `0${n(t())}%`;
|
|
157
73
|
case "date": return "yyyy-mm-dd";
|
|
158
74
|
case "datetime": return "yyyy-mm-dd hh:mm";
|
|
159
75
|
default: return;
|
|
160
76
|
}
|
|
161
77
|
}
|
|
162
|
-
function
|
|
78
|
+
function c(e, t, n = {}) {
|
|
163
79
|
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 = {};
|
|
164
80
|
for (let e of r) e.align && (a[e.field] = e.align);
|
|
165
|
-
let
|
|
166
|
-
for (let e of r)
|
|
167
|
-
let
|
|
81
|
+
let s = {};
|
|
82
|
+
for (let e of r) s[e.field] = e.header;
|
|
83
|
+
let c = [s];
|
|
168
84
|
for (let t of e) {
|
|
169
85
|
let e = {};
|
|
170
86
|
for (let i of r) {
|
|
171
87
|
let r = t[i.field];
|
|
172
|
-
e[i.field] = n.rawValues ? r :
|
|
88
|
+
e[i.field] = n.rawValues ? r : o(r, i.format);
|
|
173
89
|
}
|
|
174
|
-
|
|
90
|
+
c.push(e);
|
|
175
91
|
}
|
|
176
92
|
return {
|
|
177
|
-
records:
|
|
93
|
+
records: c,
|
|
178
94
|
fields: i,
|
|
179
95
|
align: a
|
|
180
96
|
};
|
|
181
97
|
}
|
|
182
|
-
function
|
|
98
|
+
function l(e) {
|
|
183
99
|
return {
|
|
184
100
|
USD: "$",
|
|
185
101
|
EUR: "€",
|
|
@@ -192,7 +108,7 @@ function f(e) {
|
|
|
192
108
|
BRL: "R$"
|
|
193
109
|
}[e.toUpperCase()] ?? e.toUpperCase();
|
|
194
110
|
}
|
|
195
|
-
function
|
|
111
|
+
function u(e, t) {
|
|
196
112
|
if (e == null || !t) return { ok: !1 };
|
|
197
113
|
if (t.type === "number" || t.type === "currency") {
|
|
198
114
|
let t = typeof e == "number" ? e : Number(e);
|
|
@@ -209,7 +125,7 @@ function p(e, t) {
|
|
|
209
125
|
} : { ok: !1 };
|
|
210
126
|
}
|
|
211
127
|
if (t.type === "date" || t.type === "datetime") {
|
|
212
|
-
let t =
|
|
128
|
+
let t = a(e);
|
|
213
129
|
return t ? {
|
|
214
130
|
ok: !0,
|
|
215
131
|
value: t
|
|
@@ -217,26 +133,26 @@ function p(e, t) {
|
|
|
217
133
|
}
|
|
218
134
|
return { ok: !1 };
|
|
219
135
|
}
|
|
220
|
-
var
|
|
221
|
-
function
|
|
136
|
+
var d = "";
|
|
137
|
+
function f(e) {
|
|
222
138
|
if (e?.aborted) throw new DOMException("Export aborted", "AbortError");
|
|
223
139
|
}
|
|
224
|
-
var
|
|
225
|
-
function
|
|
140
|
+
var p = () => new Promise((e) => setTimeout(e, 0));
|
|
141
|
+
function m(e, t) {
|
|
226
142
|
let n = e == null ? "" : e instanceof Date ? e.toISOString() : String(e);
|
|
227
143
|
return n === "" ? n : n.includes(t) || n.includes("\"") || n.includes("\n") || n.includes("\r") ? `"${n.replace(/"/g, "\"\"")}"` : n;
|
|
228
144
|
}
|
|
229
|
-
async function
|
|
145
|
+
async function h(e, t, n = {}) {
|
|
230
146
|
let r = n.csv?.delimiter ?? ",", i = n.csv?.eol ?? "\r\n", a = n.csv?.bom ?? !0, o = Math.max(1, n.chunkRows ?? 5e3), s = e.length, c = [];
|
|
231
147
|
for (let i = 0; i < e.length; i++) {
|
|
232
|
-
|
|
148
|
+
f(n.signal);
|
|
233
149
|
let a = e[i];
|
|
234
|
-
c.push(t.map((e) =>
|
|
150
|
+
c.push(t.map((e) => m(a[e], r)).join(r)), i > 0 && i % o === 0 && (n.onProgress?.({
|
|
235
151
|
phase: "serialize",
|
|
236
152
|
ratio: i / s,
|
|
237
153
|
row: i,
|
|
238
154
|
total: s
|
|
239
|
-
}), await
|
|
155
|
+
}), await p());
|
|
240
156
|
}
|
|
241
157
|
n.onProgress?.({
|
|
242
158
|
phase: "serialize",
|
|
@@ -245,48 +161,48 @@ async function v(e, t, n = {}) {
|
|
|
245
161
|
total: s
|
|
246
162
|
});
|
|
247
163
|
let l = c.join(i);
|
|
248
|
-
return (a ?
|
|
164
|
+
return (a ? d : "") + l;
|
|
249
165
|
}
|
|
250
|
-
var
|
|
166
|
+
var g = {
|
|
251
167
|
"&": "&",
|
|
252
168
|
"<": "<",
|
|
253
169
|
">": ">",
|
|
254
170
|
"\"": """,
|
|
255
171
|
"'": "'"
|
|
256
172
|
};
|
|
257
|
-
function
|
|
258
|
-
return (e == null ? "" : e instanceof Date ? e.toISOString() : String(e)).replace(/[&<>"']/g, (e) =>
|
|
173
|
+
function _(e) {
|
|
174
|
+
return (e == null ? "" : e instanceof Date ? e.toISOString() : String(e)).replace(/[&<>"']/g, (e) => g[e]);
|
|
259
175
|
}
|
|
260
|
-
async function
|
|
261
|
-
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>${
|
|
176
|
+
async function v(e, t, n = {}) {
|
|
177
|
+
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 = [];
|
|
262
178
|
for (let c = 1; c < e.length; c++) {
|
|
263
|
-
|
|
179
|
+
f(n.signal);
|
|
264
180
|
let l = e[c], u = t.map((e, t) => {
|
|
265
181
|
let n = a[e], r = [];
|
|
266
182
|
n && n !== "left" && r.push(`text-align:${n}`);
|
|
267
183
|
let i = o?.(c - 1, t);
|
|
268
184
|
i?.fill && r.push(`background:${i.fill}`), i?.color && r.push(`color:${i.color}`), i?.bold && r.push("font-weight:700");
|
|
269
|
-
let u = r.length ? ` style="${r.join(";")}"` : "", d = i?.icon ? `${i.icon} ${
|
|
270
|
-
return f && (d = `<a href="${
|
|
185
|
+
let u = r.length ? ` style="${r.join(";")}"` : "", d = i?.icon ? `${i.icon} ${_(l[e])}` : _(l[e]), f = s?.(c - 1, t);
|
|
186
|
+
return f && (d = `<a href="${_(f)}">${d}</a>`), `<td${u}>${d}</td>`;
|
|
271
187
|
}).join("");
|
|
272
188
|
d.push(`<tr>${u}</tr>`), c > 0 && c % r === 0 && (n.onProgress?.({
|
|
273
189
|
phase: "serialize",
|
|
274
190
|
ratio: c / i,
|
|
275
191
|
row: c,
|
|
276
192
|
total: i
|
|
277
|
-
}), await
|
|
193
|
+
}), await p());
|
|
278
194
|
}
|
|
279
195
|
return n.onProgress?.({
|
|
280
196
|
phase: "serialize",
|
|
281
197
|
ratio: 1,
|
|
282
198
|
row: i,
|
|
283
199
|
total: i
|
|
284
|
-
}), `<!doctype html><html><head><meta charset="utf-8"><title>${
|
|
200
|
+
}), `<!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>`;
|
|
285
201
|
}
|
|
286
|
-
async function
|
|
202
|
+
async function y(e, t, n = {}) {
|
|
287
203
|
let r = Math.max(1, n.chunkRows ?? 5e3), i = e.length - 1, a = [];
|
|
288
204
|
for (let o = 1; o < e.length; o++) {
|
|
289
|
-
|
|
205
|
+
f(n.signal);
|
|
290
206
|
let s = e[o], c = {};
|
|
291
207
|
for (let e of t) c[e] = s[e];
|
|
292
208
|
a.push(c), o > 0 && o % r === 0 && (n.onProgress?.({
|
|
@@ -294,7 +210,7 @@ async function S(e, t, n = {}) {
|
|
|
294
210
|
ratio: o / i,
|
|
295
211
|
row: o,
|
|
296
212
|
total: i
|
|
297
|
-
}), await
|
|
213
|
+
}), await p());
|
|
298
214
|
}
|
|
299
215
|
return n.onProgress?.({
|
|
300
216
|
phase: "serialize",
|
|
@@ -303,23 +219,23 @@ async function S(e, t, n = {}) {
|
|
|
303
219
|
total: i
|
|
304
220
|
}), JSON.stringify(a, null, 2);
|
|
305
221
|
}
|
|
306
|
-
function
|
|
222
|
+
function b(e) {
|
|
307
223
|
return (e == null ? "" : e instanceof Date ? e.toISOString() : String(e)).replace(/\\/g, "\\\\").replace(/\|/g, "\\|").replace(/\r?\n/g, "<br>");
|
|
308
224
|
}
|
|
309
|
-
async function
|
|
310
|
-
let r = Math.max(1, n.chunkRows ?? 5e3), i = e.length, a = n.align ?? {}, o = e[0], s = `| ${t.map((e) =>
|
|
225
|
+
async function x(e, t, n = {}) {
|
|
226
|
+
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) => {
|
|
311
227
|
let t = a[e];
|
|
312
228
|
return t === "right" ? "---:" : t === "center" ? ":--:" : "---";
|
|
313
229
|
}).join(" | ")} |`, l = [];
|
|
314
230
|
for (let a = 1; a < e.length; a++) {
|
|
315
|
-
|
|
231
|
+
f(n.signal);
|
|
316
232
|
let o = e[a];
|
|
317
|
-
l.push(`| ${t.map((e) =>
|
|
233
|
+
l.push(`| ${t.map((e) => b(o[e])).join(" | ")} |`), a > 0 && a % r === 0 && (n.onProgress?.({
|
|
318
234
|
phase: "serialize",
|
|
319
235
|
ratio: a / i,
|
|
320
236
|
row: a,
|
|
321
237
|
total: i
|
|
322
|
-
}), await
|
|
238
|
+
}), await p());
|
|
323
239
|
}
|
|
324
240
|
return n.onProgress?.({
|
|
325
241
|
phase: "serialize",
|
|
@@ -332,31 +248,31 @@ async function w(e, t, n = {}) {
|
|
|
332
248
|
...l
|
|
333
249
|
].join("\n") + "\n";
|
|
334
250
|
}
|
|
335
|
-
var
|
|
251
|
+
var S = {
|
|
336
252
|
"&": "&",
|
|
337
253
|
"<": "<",
|
|
338
254
|
">": ">",
|
|
339
255
|
"\"": """,
|
|
340
256
|
"'": "'"
|
|
341
257
|
};
|
|
342
|
-
function
|
|
343
|
-
return (e == null ? "" : e instanceof Date ? e.toISOString() : String(e)).replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g, "").replace(/[&<>"']/g, (e) =>
|
|
258
|
+
function C(e) {
|
|
259
|
+
return (e == null ? "" : e instanceof Date ? e.toISOString() : String(e)).replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g, "").replace(/[&<>"']/g, (e) => S[e]);
|
|
344
260
|
}
|
|
345
|
-
function
|
|
261
|
+
function w(e) {
|
|
346
262
|
let t = e.replace(/[^A-Za-z0-9_.-]/g, "_");
|
|
347
263
|
return /^[A-Za-z_]/.test(t) ? t : `_${t}`;
|
|
348
264
|
}
|
|
349
|
-
async function
|
|
350
|
-
let r = Math.max(1, n.chunkRows ?? 5e3), i = e.length - 1, a = n.rootTag ?? "rows", o = n.rowTag ?? "row", s = t.map(
|
|
265
|
+
async function T(e, t, n = {}) {
|
|
266
|
+
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}>`];
|
|
351
267
|
for (let a = 1; a < e.length; a++) {
|
|
352
|
-
|
|
353
|
-
let l = e[a], u = t.map((e, t) => `<${s[t]}>${
|
|
268
|
+
f(n.signal);
|
|
269
|
+
let l = e[a], u = t.map((e, t) => `<${s[t]}>${C(l[e])}</${s[t]}>`).join("");
|
|
354
270
|
c.push(` <${o}>${u}</${o}>`), a > 0 && a % r === 0 && (n.onProgress?.({
|
|
355
271
|
phase: "serialize",
|
|
356
272
|
ratio: a / i,
|
|
357
273
|
row: a,
|
|
358
274
|
total: i
|
|
359
|
-
}), await
|
|
275
|
+
}), await p());
|
|
360
276
|
}
|
|
361
277
|
return c.push(`</${a}>`), n.onProgress?.({
|
|
362
278
|
phase: "serialize",
|
|
@@ -365,18 +281,18 @@ async function O(e, t, n = {}) {
|
|
|
365
281
|
total: i
|
|
366
282
|
}), c.join("\n");
|
|
367
283
|
}
|
|
368
|
-
function
|
|
284
|
+
function E(e, t) {
|
|
369
285
|
if (typeof document > "u" || typeof URL > "u") throw Error("@svgrid/grid: export requires a browser environment");
|
|
370
286
|
let n = URL.createObjectURL(e), r = document.createElement("a");
|
|
371
287
|
r.href = n, r.download = t, document.body.appendChild(r), r.click(), r.remove(), setTimeout(() => URL.revokeObjectURL(n), 0);
|
|
372
288
|
}
|
|
373
|
-
function
|
|
289
|
+
function D(e, t, n) {
|
|
374
290
|
if (typeof document > "u" || typeof URL > "u") throw Error("@svgrid/grid: text export requires a browser environment");
|
|
375
|
-
|
|
291
|
+
E(new Blob([e], { type: n }), t);
|
|
376
292
|
}
|
|
377
|
-
async function
|
|
293
|
+
async function O(e) {
|
|
378
294
|
if (typeof navigator > "u" || !navigator.clipboard) throw Error("@svgrid/grid: clipboard API is unavailable in this context");
|
|
379
295
|
await navigator.clipboard.writeText(e);
|
|
380
296
|
}
|
|
381
297
|
//#endregion
|
|
382
|
-
export {
|
|
298
|
+
export { i as a, h as c, x as d, T as f, D as i, v as l, u as m, O as n, o, s as p, E as r, c as s, a as t, y as u };
|