@xlcalc/vue 0.21.1 → 0.23.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.
- package/CHANGELOG.md +32 -1
- package/README.md +7 -2
- package/dist/components/CfDialogs.vue.d.ts +3 -0
- package/dist/components/CfManager.vue.d.ts +3 -0
- package/dist/components/CfPreview.vue.d.ts +9 -0
- package/dist/components/CfQuickDialog.vue.d.ts +3 -0
- package/dist/components/CfRuleDialog.vue.d.ts +3 -0
- package/dist/components/CfStyleDialog.vue.d.ts +15 -0
- package/dist/components/CfValuesFields.vue.d.ts +9 -0
- package/dist/components/DialogShell.vue.d.ts +1 -1
- package/dist/components/FunctionList.vue.d.ts +2 -1
- package/dist/components/GoToDialog.vue.d.ts +3 -0
- package/dist/components/LinkDialog.vue.d.ts +3 -0
- package/dist/components/NameBox.vue.d.ts +3 -0
- package/dist/components/NameDialogs.vue.d.ts +3 -0
- package/dist/components/NoteBox.vue.d.ts +3 -0
- package/dist/components/SheetToolbar.vue.d.ts +7 -4
- package/dist/components/SheetView.vue.d.ts +11 -4
- package/dist/components/SpellingDialog.vue.d.ts +3 -0
- package/dist/components/SymbolDialog.vue.d.ts +3 -0
- package/dist/components/TableDialog.vue.d.ts +3 -0
- package/dist/components/ToolbarBox.vue.d.ts +31 -0
- package/dist/components/TraceArrows.vue.d.ts +3 -0
- package/dist/components/ValidationDialog.vue.d.ts +3 -0
- package/dist/components/WatchWindow.vue.d.ts +3 -0
- package/dist/components/ZoomBar.vue.d.ts +3 -0
- package/dist/components/ZoomDialog.vue.d.ts +3 -0
- package/dist/components/icons.d.ts +1 -0
- package/dist/components/name-icons.d.ts +1 -0
- package/dist/components/toolbar-icons.d.ts +16 -0
- package/dist/contract/conditional.d.ts +16 -0
- package/dist/contract/memory.d.ts +5 -0
- package/dist/contract/messages.d.ts +260 -1
- package/dist/contract/source.d.ts +41 -0
- package/dist/contract/view.d.ts +117 -2
- package/dist/contract/workbook.d.ts +73 -0
- package/dist/contract.d.ts +4 -2
- package/dist/core/autocomplete.d.ts +9 -1
- package/dist/core/autosum.d.ts +11 -0
- package/dist/core/cell-style.d.ts +5 -0
- package/dist/core/cell-view.d.ts +2 -0
- package/dist/core/cf-commands.d.ts +70 -0
- package/dist/core/cf-describe.d.ts +4 -0
- package/dist/core/cf-draft.d.ts +114 -0
- package/dist/core/cf-formula.d.ts +30 -0
- package/dist/core/cf-presets.d.ts +33 -0
- package/dist/core/cf-ranges.d.ts +22 -0
- package/dist/core/commands.d.ts +4 -2
- package/dist/core/editing.d.ts +6 -1
- package/dist/core/extras.d.ts +22 -0
- package/dist/core/fill.d.ts +3 -0
- package/dist/core/formula-view.d.ts +10 -0
- package/dist/core/geometry.d.ts +6 -0
- package/dist/core/goto.d.ts +24 -0
- package/dist/core/links.d.ts +105 -0
- package/dist/core/menu.d.ts +8 -0
- package/dist/core/name-dialogs.d.ts +63 -0
- package/dist/core/names.d.ts +33 -0
- package/dist/core/navigation.d.ts +6 -0
- package/dist/core/notes.d.ts +44 -0
- package/dist/core/place.d.ts +10 -0
- package/dist/core/range-read.d.ts +11 -0
- package/dist/core/sheet.d.ts +337 -4
- package/dist/core/spell-check.d.ts +54 -0
- package/dist/core/state.d.ts +9 -0
- package/dist/core/tables.d.ts +63 -0
- package/dist/core/trace.d.ts +26 -0
- package/dist/core/validation-dialog.d.ts +33 -0
- package/dist/core/validation.d.ts +17 -3
- package/dist/core/viewport.d.ts +12 -0
- package/dist/core/watch.d.ts +35 -0
- package/dist/core/windows.d.ts +2 -0
- package/dist/core/zoom.d.ts +44 -0
- package/dist/format-cells.d.ts +0 -6
- package/dist/formula-shift.d.ts +3 -0
- package/dist/index.js +12033 -4565
- package/dist/local/types.d.ts +4 -1
- package/dist/local/workbook.d.ts +25 -0
- package/dist/local.js +556 -277
- package/dist/memory-workbook.d.ts +21 -0
- package/dist/messages-conditional.d.ts +3 -0
- package/dist/rect.d.ts +2 -0
- package/dist/{ru-RU-BVeg6JGM.js → ru-RU-CzebvM-s.js} +19 -2
- package/dist/spelling.d.ts +6 -0
- package/dist/style.css +1 -1
- package/dist/symbols.d.ts +23 -0
- package/dist/toolbar.d.ts +53 -1
- package/dist/{typed-entry-2l9Ay-hV.js → typed-entry-3r1pEbc9.js} +4546 -4453
- package/dist/validation-rules.d.ts +95 -0
- package/docs/api.md +91 -10
- package/docs/autocomplete.md +3 -3
- package/docs/checks.md +1 -1
- package/docs/clipboard.md +1 -1
- package/docs/conditional-formatting.md +135 -0
- package/docs/editing.md +50 -1
- package/docs/go-to-and-symbol.md +37 -0
- package/docs/links-notes.md +36 -0
- package/docs/local.md +1 -1
- package/docs/names.md +62 -0
- package/docs/tables.md +40 -0
- package/docs/toolbar.md +6 -2
- package/docs/validation.md +47 -0
- package/docs/view.md +104 -1
- package/package.json +2 -2
package/dist/local.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { FUNCTION_NAMES as e, LOCALES as t, createInlineCalc as n, functionSignature as r, registerLocale as i } from "xlcalc";
|
|
2
|
-
import { cellAddress as
|
|
3
|
-
import { DEFAULT_ROW_HEIGHT as
|
|
1
|
+
import { FUNCTION_NAMES as e, LOCALES as t, createInlineCalc as n, functionSignature as r, registerLocale as i, toLocal as a, validateLocalFormula as o } from "xlcalc";
|
|
2
|
+
import { cellAddress as s, colLetters as c, linesKey as l, nameKey as u, outlineGroups as d, parseCell as f, parseLines as p, parseRange as m, rangeAddress as h, sameName as g } from "xlcalc/a1";
|
|
3
|
+
import { DEFAULT_ROW_HEIGHT as _, valueComparator as v } from "xlcalc/text";
|
|
4
4
|
//#region src/rect.ts
|
|
5
|
-
var
|
|
5
|
+
var y = (e, t) => ({
|
|
6
6
|
top: e,
|
|
7
7
|
left: t,
|
|
8
8
|
bottom: e,
|
|
9
9
|
right: t
|
|
10
|
-
}),
|
|
10
|
+
}), b = (e, t) => ({
|
|
11
11
|
top: Math.min(e.top, t.top),
|
|
12
12
|
left: Math.min(e.left, t.left),
|
|
13
13
|
bottom: Math.max(e.bottom, t.bottom),
|
|
14
14
|
right: Math.max(e.right, t.right)
|
|
15
|
-
}),
|
|
15
|
+
}), x = 500, S = "A1:XFD1048576", C = (e) => [{
|
|
16
16
|
sheet: e.sheet,
|
|
17
|
-
range: e.range ??
|
|
17
|
+
range: e.range ?? S
|
|
18
18
|
}];
|
|
19
|
-
function
|
|
19
|
+
function w(e, t) {
|
|
20
20
|
return {
|
|
21
21
|
wildcards: !0,
|
|
22
22
|
skipHidden: !0,
|
|
@@ -25,29 +25,29 @@ function x(e, t) {
|
|
|
25
25
|
...t ? { rows: t } : {}
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
let n = e.after ?
|
|
28
|
+
function ee(e, t) {
|
|
29
|
+
let n = e.after ? f(e.after) : null;
|
|
30
30
|
if (!n) return;
|
|
31
|
-
let r = e.range ?
|
|
31
|
+
let r = e.range ? m(e.range) : null;
|
|
32
32
|
if (!(r && (n.row < r.top || n.row > r.bottom || n.col < r.left || n.col > r.right)) && (!t || t.includes(n.row))) return {
|
|
33
33
|
sheet: e.sheet,
|
|
34
|
-
cell:
|
|
34
|
+
cell: s(n.row, n.col)
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
async function te(e, t, n, r) {
|
|
38
|
-
let i = t.lookIn === "values", a =
|
|
39
|
-
...
|
|
38
|
+
let i = t.lookIn === "values", a = ee(t, n), o = await e.findCells(C(t), t.query, {
|
|
39
|
+
...w(t, n),
|
|
40
40
|
in: i ? "text" : "edit",
|
|
41
41
|
...t.byColumns ? { byColumns: !0 } : {},
|
|
42
42
|
...a ? { after: a } : {},
|
|
43
43
|
fields: [],
|
|
44
|
-
maxCells:
|
|
44
|
+
maxCells: x,
|
|
45
45
|
count: !0,
|
|
46
46
|
...r ? { signal: r } : {}
|
|
47
47
|
});
|
|
48
48
|
return {
|
|
49
49
|
hits: o.cells.map((e) => {
|
|
50
|
-
let t =
|
|
50
|
+
let t = f(e.cell);
|
|
51
51
|
return {
|
|
52
52
|
row: t.row,
|
|
53
53
|
col: t.col
|
|
@@ -57,15 +57,15 @@ async function te(e, t, n, r) {
|
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
function ne(e, t, n, r) {
|
|
60
|
-
return e.replaceInCells(
|
|
60
|
+
return e.replaceInCells(C(t), t.query, n, w(t, r));
|
|
61
61
|
}
|
|
62
62
|
function re(e, t, n) {
|
|
63
63
|
let r = [], i = null;
|
|
64
|
-
for (let
|
|
65
|
-
let t = a
|
|
64
|
+
for (let a of t) {
|
|
65
|
+
let t = s(a.row, a.col), o = i?.rect, c = o ? b(o, y(a.row, a.col)) : null;
|
|
66
66
|
i && c && (c.bottom - c.top + 1) * (c.right - c.left + 1) <= n ? (i.rect = c, i.only.add(t)) : r.push(i = {
|
|
67
67
|
sheet: e,
|
|
68
|
-
rect:
|
|
68
|
+
rect: y(a.row, a.col),
|
|
69
69
|
only: /* @__PURE__ */ new Set([t])
|
|
70
70
|
});
|
|
71
71
|
}
|
|
@@ -73,16 +73,16 @@ function re(e, t, n) {
|
|
|
73
73
|
}
|
|
74
74
|
//#endregion
|
|
75
75
|
//#region src/locales.ts
|
|
76
|
-
var
|
|
76
|
+
var ie = { "ru-RU": () => import("xlcalc/locales/ru-RU").then((e) => e.ruRU) };
|
|
77
77
|
//#endregion
|
|
78
78
|
//#region src/local/locale.ts
|
|
79
|
-
async function
|
|
79
|
+
async function ae(e) {
|
|
80
80
|
if (t.has(e)) return;
|
|
81
|
-
let n =
|
|
81
|
+
let n = ie[e];
|
|
82
82
|
n && i(await n());
|
|
83
83
|
}
|
|
84
84
|
var T = { "ru-RU": () => import("xlcalc/function-text/ru-RU").then((e) => e.ruRUFunctionText) }, E = /* @__PURE__ */ new Map();
|
|
85
|
-
function
|
|
85
|
+
function oe(e) {
|
|
86
86
|
let n = E.get(e);
|
|
87
87
|
if (!n) {
|
|
88
88
|
let r = T[e], i = t.get(e);
|
|
@@ -95,7 +95,7 @@ function ie(e) {
|
|
|
95
95
|
}
|
|
96
96
|
//#endregion
|
|
97
97
|
//#region src/local/validation.ts
|
|
98
|
-
function
|
|
98
|
+
function se(e) {
|
|
99
99
|
if (!e) return null;
|
|
100
100
|
let { rule: t } = e, n = {};
|
|
101
101
|
return t.type === "list" && t.dropdown !== !1 && (n.list = Array.isArray(e.list) ? e.list.map((e) => e.text) : []), t.showPrompt !== !1 && (t.prompt || t.promptTitle) && (n.prompt = {
|
|
@@ -125,7 +125,7 @@ var O = (e) => ({
|
|
|
125
125
|
reason: "failed",
|
|
126
126
|
message: e
|
|
127
127
|
});
|
|
128
|
-
function
|
|
128
|
+
function ce(e, t) {
|
|
129
129
|
let n = e, r = n?.message ?? String(e);
|
|
130
130
|
return n?.name === "InputError" ? {
|
|
131
131
|
ok: !1,
|
|
@@ -133,15 +133,15 @@ function k(e, t) {
|
|
|
133
133
|
message: r
|
|
134
134
|
} : O(r);
|
|
135
135
|
}
|
|
136
|
-
var
|
|
136
|
+
var k = /* @__PURE__ */ new Set([
|
|
137
137
|
"syntax",
|
|
138
138
|
"empty",
|
|
139
139
|
"too_long",
|
|
140
140
|
"too_deep"
|
|
141
141
|
]);
|
|
142
|
-
function
|
|
142
|
+
function A(e) {
|
|
143
143
|
if (e.code === "validation") return D(e);
|
|
144
|
-
if (!
|
|
144
|
+
if (!k.has(e.code)) return {
|
|
145
145
|
ok: !1,
|
|
146
146
|
reason: "refused",
|
|
147
147
|
message: e.message
|
|
@@ -155,7 +155,7 @@ function j(e) {
|
|
|
155
155
|
...n === void 0 ? {} : { correction: n }
|
|
156
156
|
};
|
|
157
157
|
}
|
|
158
|
-
function
|
|
158
|
+
function le(e, t, n) {
|
|
159
159
|
return {
|
|
160
160
|
sheet: e,
|
|
161
161
|
cell: t,
|
|
@@ -167,40 +167,40 @@ function oe(e, t, n) {
|
|
|
167
167
|
numberFormat: n?.numberFormat ?? null
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
|
-
var
|
|
171
|
-
function
|
|
170
|
+
var ue = (e) => !!(e.layout?.length || e.styles || e.moved?.length || e.changes.some((e) => e.style !== void 0 || e.note !== void 0 || e.link !== void 0)), de = (e, t) => `${u(e)}!${t}`;
|
|
171
|
+
function j(e) {
|
|
172
172
|
let t = /* @__PURE__ */ new Map();
|
|
173
173
|
for (let n of e) {
|
|
174
|
-
let e =
|
|
174
|
+
let e = f(n.cell);
|
|
175
175
|
if (!e) continue;
|
|
176
|
-
let r =
|
|
177
|
-
i ? (i.rect =
|
|
176
|
+
let r = u(n.sheet), i = t.get(r);
|
|
177
|
+
i ? (i.rect = b(i.rect, y(e.row, e.col)), i.only.add(s(e.row, e.col))) : t.set(r, {
|
|
178
178
|
sheet: n.sheet,
|
|
179
|
-
rect:
|
|
180
|
-
only: /* @__PURE__ */ new Set([
|
|
179
|
+
rect: y(e.row, e.col),
|
|
180
|
+
only: /* @__PURE__ */ new Set([s(e.row, e.col)])
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
return [...t.values()];
|
|
184
184
|
}
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region src/abort.ts
|
|
187
|
-
var
|
|
188
|
-
function
|
|
189
|
-
if (e?.aborted) throw
|
|
187
|
+
var M = () => new DOMException("The request was aborted", "AbortError");
|
|
188
|
+
function N(e) {
|
|
189
|
+
if (e?.aborted) throw M();
|
|
190
190
|
}
|
|
191
191
|
//#endregion
|
|
192
192
|
//#region src/filter-key.ts
|
|
193
|
-
var
|
|
193
|
+
var fe = (e) => JSON.stringify([
|
|
194
194
|
e.head,
|
|
195
195
|
Object.entries(e.cols ?? {}).sort(([e], [t]) => Number(e) - Number(t)),
|
|
196
196
|
e.sort ?? null
|
|
197
197
|
]);
|
|
198
198
|
//#endregion
|
|
199
199
|
//#region src/lines.ts
|
|
200
|
-
function
|
|
201
|
-
let n =
|
|
200
|
+
function P(e, t) {
|
|
201
|
+
let n = p(e, t);
|
|
202
202
|
if (n) return n;
|
|
203
|
-
let r =
|
|
203
|
+
let r = m(e.includes(":") ? e : `${e}:${e}`);
|
|
204
204
|
return r?.kind === t ? t === "rows" ? {
|
|
205
205
|
first: r.top,
|
|
206
206
|
last: r.bottom
|
|
@@ -209,10 +209,10 @@ function I(e, t) {
|
|
|
209
209
|
last: r.right
|
|
210
210
|
} : null;
|
|
211
211
|
}
|
|
212
|
-
var
|
|
212
|
+
var F = (e) => e.op === "showLevel" ? e.axis : "rows" in e ? "rows" : "columns";
|
|
213
213
|
//#endregion
|
|
214
214
|
//#region src/memory-outline.ts
|
|
215
|
-
function
|
|
215
|
+
function I(e, t) {
|
|
216
216
|
if (!e.rows.length && !e.columns.length) return;
|
|
217
217
|
let n = (t) => e[t].map((e) => ({
|
|
218
218
|
from: e.first,
|
|
@@ -227,7 +227,7 @@ function R(e, t) {
|
|
|
227
227
|
summaryRight: t?.summaryRight ?? !0
|
|
228
228
|
};
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function L(e, t) {
|
|
231
231
|
if (e.op === "showLevel") return e.axis === "rows" ? {
|
|
232
232
|
op: "showLevels",
|
|
233
233
|
rows: e.level
|
|
@@ -235,10 +235,10 @@ function z(e, t) {
|
|
|
235
235
|
op: "showLevels",
|
|
236
236
|
columns: e.level
|
|
237
237
|
};
|
|
238
|
-
let n =
|
|
238
|
+
let n = F(e), r = "rows" in e ? e.rows : e.columns, i = P(r, n);
|
|
239
239
|
if (!i) return { refused: `Not ${n}: ${r}` };
|
|
240
240
|
if (!("level" in e)) {
|
|
241
|
-
let t =
|
|
241
|
+
let t = l(i.first, i.last, n);
|
|
242
242
|
return n === "rows" ? {
|
|
243
243
|
op: e.op,
|
|
244
244
|
rows: t
|
|
@@ -250,25 +250,25 @@ function z(e, t) {
|
|
|
250
250
|
let a = t(n).find((t) => t.first === i.first && t.last === i.last && t.level === e.level);
|
|
251
251
|
if (!a) return { refused: `No group of level ${e.level} over the ${n} ${r}` };
|
|
252
252
|
if (a.summary === null) return { refused: `The group of ${n} ${r} has no summary ${n === "rows" ? "row" : "column"} within the sheet: Excel draws no button for it` };
|
|
253
|
-
let
|
|
253
|
+
let o = e.op === "collapse" ? "hideDetail" : "showDetail";
|
|
254
254
|
return n === "rows" ? {
|
|
255
|
-
op:
|
|
255
|
+
op: o,
|
|
256
256
|
row: a.summary
|
|
257
257
|
} : {
|
|
258
|
-
op:
|
|
259
|
-
column:
|
|
258
|
+
op: o,
|
|
259
|
+
column: c(a.summary)
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
|
-
var
|
|
263
|
-
function
|
|
262
|
+
var pe = (e, t, n) => Math.max(0, Math.min(t, Math.floor(e / Math.max(1, n)))), R = 1e3;
|
|
263
|
+
function z(e) {
|
|
264
264
|
return !!e && (!!e.sort || Object.values(e.cols ?? {}).some((e) => !!e.values || !!e.text?.trim()));
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function me(e) {
|
|
267
267
|
let t = new Set(Object.keys(e.cols ?? {}).map(Number));
|
|
268
268
|
return e.sort && t.add(e.sort.col), [...t];
|
|
269
269
|
}
|
|
270
|
-
var
|
|
271
|
-
function
|
|
270
|
+
var B = (e, t) => Math.min(Math.max(0, Math.trunc(e.head)), t);
|
|
271
|
+
function V(e, t, n) {
|
|
272
272
|
let r = Object.entries(t.cols ?? {}).filter(([e]) => Number(e) !== n).map(([e, t]) => ({
|
|
273
273
|
col: Number(e),
|
|
274
274
|
values: t.values ? new Set(t.values) : null,
|
|
@@ -279,44 +279,44 @@ function U(e, t, n) {
|
|
|
279
279
|
return (!n.values || n.values.has(r)) && (!n.text || r.toLocaleLowerCase().includes(n.text));
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
|
-
var
|
|
282
|
+
var H = (e) => e === void 0 || e === "" ? null : e, U = (e, t = !1) => v({
|
|
283
283
|
descending: t,
|
|
284
284
|
...e ? { locale: e } : {}
|
|
285
285
|
});
|
|
286
|
-
function
|
|
287
|
-
let r =
|
|
286
|
+
function he(e, t, n) {
|
|
287
|
+
let r = B(t, e.maxRow), i = V(e, t), a = [];
|
|
288
288
|
for (let t = r + 1; t <= e.maxRow; t++) i(t) && a.push(t);
|
|
289
289
|
let o = t.sort, s = a;
|
|
290
290
|
if (o) {
|
|
291
|
-
let t =
|
|
291
|
+
let t = U(n, o.dir === "desc"), r = a.map((t) => H(e.valueAt(t, o.col))), i = a.map((e, t) => t);
|
|
292
292
|
i.sort((e, n) => t(r[e], r[n])), s = i.map((e) => a[e]);
|
|
293
293
|
}
|
|
294
294
|
let c = [];
|
|
295
295
|
for (let e = 1; e <= r; e++) c.push(e);
|
|
296
296
|
return c.concat(s);
|
|
297
297
|
}
|
|
298
|
-
function
|
|
299
|
-
let i =
|
|
300
|
-
for (let r =
|
|
298
|
+
function ge(e, t, n, r) {
|
|
299
|
+
let i = V(e, n, t), a = /* @__PURE__ */ new Map();
|
|
300
|
+
for (let r = B(n, e.maxRow) + 1; r <= e.maxRow; r++) {
|
|
301
301
|
if (!i(r)) continue;
|
|
302
302
|
let n = e.textAt(r, t), o = a.get(n);
|
|
303
303
|
o ? o.count++ : a.set(n, {
|
|
304
304
|
count: 1,
|
|
305
|
-
value:
|
|
305
|
+
value: H(e.valueAt(r, t))
|
|
306
306
|
});
|
|
307
307
|
}
|
|
308
|
-
let o =
|
|
308
|
+
let o = U(r), s = [...a.entries()].sort(([e, t], [n, r]) => o(t.value, r.value) || o(e, n));
|
|
309
309
|
return {
|
|
310
|
-
values: s.slice(0,
|
|
310
|
+
values: s.slice(0, R).map(([e, { count: t }]) => ({
|
|
311
311
|
text: e,
|
|
312
312
|
count: t
|
|
313
313
|
})),
|
|
314
|
-
more: Math.max(0, s.length -
|
|
314
|
+
more: Math.max(0, s.length - R)
|
|
315
315
|
};
|
|
316
316
|
}
|
|
317
317
|
//#endregion
|
|
318
318
|
//#region src/local/query.ts
|
|
319
|
-
var
|
|
319
|
+
var _e = 0, W = 1, G = 2, K = 3, q = 4, J = (e) => e == null || e === "", ve = class {
|
|
320
320
|
texts;
|
|
321
321
|
kinds;
|
|
322
322
|
nums;
|
|
@@ -325,14 +325,14 @@ var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = cl
|
|
|
325
325
|
this.texts = Array(e).fill(""), this.kinds = new Uint8Array(e), this.nums = new Float64Array(e);
|
|
326
326
|
}
|
|
327
327
|
set(e, t, n) {
|
|
328
|
-
e >= this.kinds.length && this.grow(e + 1), this.texts[e] = t, this.other.delete(e),
|
|
328
|
+
e >= this.kinds.length && this.grow(e + 1), this.texts[e] = t, this.other.delete(e), J(n) ? this.kinds[e] = _e : typeof n == "number" ? (this.kinds[e] = W, this.nums[e] = n) : typeof n == "boolean" ? (this.kinds[e] = K, this.nums[e] = +!!n) : typeof n == "string" ? (this.kinds[e] = G, n !== t && this.other.set(e, n)) : (this.kinds[e] = q, this.other.set(e, n.error));
|
|
329
329
|
}
|
|
330
330
|
valueAt(e) {
|
|
331
331
|
switch (this.kinds[e]) {
|
|
332
|
-
case
|
|
333
|
-
case
|
|
334
|
-
case
|
|
335
|
-
case
|
|
332
|
+
case W: return this.nums[e];
|
|
333
|
+
case K: return this.nums[e] === 1;
|
|
334
|
+
case G: return this.other.get(e) ?? this.texts[e];
|
|
335
|
+
case q: return { error: this.other.get(e) };
|
|
336
336
|
default: return null;
|
|
337
337
|
}
|
|
338
338
|
}
|
|
@@ -344,7 +344,7 @@ var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = cl
|
|
|
344
344
|
for (let e = this.texts.length; e < t; e++) this.texts.push("");
|
|
345
345
|
this.kinds = n, this.nums = r;
|
|
346
346
|
}
|
|
347
|
-
},
|
|
347
|
+
}, ye = class {
|
|
348
348
|
maxRow;
|
|
349
349
|
read;
|
|
350
350
|
cols = /* @__PURE__ */ new Map();
|
|
@@ -361,15 +361,15 @@ var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = cl
|
|
|
361
361
|
await Promise.all(r.map((e) => e.done));
|
|
362
362
|
return;
|
|
363
363
|
} catch (e) {
|
|
364
|
-
if (
|
|
364
|
+
if (N(t), !r.some((e) => e.signal?.aborted)) throw e;
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
start(e, t) {
|
|
369
|
-
let n = this.maxRow, r = (n ? this.read(e.map((e) => `${
|
|
370
|
-
let r = new Map(e.map((e) => [e, new
|
|
369
|
+
let n = this.maxRow, r = (n ? this.read(e.map((e) => `${c(e)}1:${c(e)}${n}`), t) : Promise.resolve({})).then((t) => {
|
|
370
|
+
let r = new Map(e.map((e) => [e, new ve(n + 1)]));
|
|
371
371
|
for (let [e, n] of Object.entries(t)) {
|
|
372
|
-
let t =
|
|
372
|
+
let t = f(e);
|
|
373
373
|
t && r.get(t.col)?.set(t.row, n.text ?? "", n.value);
|
|
374
374
|
}
|
|
375
375
|
for (let [e, t] of r) {
|
|
@@ -387,7 +387,7 @@ var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = cl
|
|
|
387
387
|
});
|
|
388
388
|
}
|
|
389
389
|
set(e, t, n, r) {
|
|
390
|
-
e > this.maxRow && (n !== "" || !
|
|
390
|
+
e > this.maxRow && (n !== "" || !J(r)) && (this.maxRow = e);
|
|
391
391
|
let i = this.cols.get(t);
|
|
392
392
|
i ? i.set(e, n, r) : this.reading.get(t)?.missed.push([
|
|
393
393
|
e,
|
|
@@ -404,7 +404,7 @@ var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = cl
|
|
|
404
404
|
};
|
|
405
405
|
//#endregion
|
|
406
406
|
//#region src/local/window.ts
|
|
407
|
-
function
|
|
407
|
+
function be(e, t) {
|
|
408
408
|
let n = [];
|
|
409
409
|
for (let [t, r] of Object.entries(e.styles)) n[Number(t)] = r;
|
|
410
410
|
let r = {
|
|
@@ -424,20 +424,20 @@ function he(e, t) {
|
|
|
424
424
|
tables: e.tables.map((e) => ({
|
|
425
425
|
name: e.name,
|
|
426
426
|
range: e.range,
|
|
427
|
-
headerRow: e.headers ?
|
|
427
|
+
headerRow: e.headers ? m(e.range)?.top ?? 0 : 0
|
|
428
428
|
})),
|
|
429
429
|
appearance: {},
|
|
430
430
|
links: {},
|
|
431
431
|
notes: {},
|
|
432
432
|
...t.notice ? { notice: t.notice } : {}
|
|
433
433
|
};
|
|
434
|
-
for (let t of e.rows) (t.hidden || t.height !==
|
|
434
|
+
for (let t of e.rows) (t.hidden || t.height !== _) && (r.rowHeights[t.row] = t.hidden ? 0 : t.height);
|
|
435
435
|
let i = t.col + t.cols - 1;
|
|
436
436
|
for (let n of t.rows) {
|
|
437
|
-
let
|
|
437
|
+
let a = [], o = [];
|
|
438
438
|
for (let c = t.col; c <= i; c++) {
|
|
439
|
-
let t =
|
|
440
|
-
if (
|
|
439
|
+
let t = s(n, c), i = e.cells[t];
|
|
440
|
+
if (a.push(i?.text ?? ""), o.push(i ? i.value : null), i && (i.effectiveStyle !== void 0 && (r.styleIds[t] = i.effectiveStyle), i.numberFormat !== void 0 && (r.numberFormats[t] = i.numberFormat), i.formulaLocal !== void 0 && (r.formulas[t] = i.formulaLocal), i.editText && (r.editText[t] = i.editText), i.color && (r.colors[t] = i.color), i.note && (r.notes[t] = i.note), i.appearance && (r.appearance[t] = i.appearance), i.link)) {
|
|
441
441
|
let { url: e, location: n, tooltip: a } = i.link, o = e ? { href: n ? `${e}#${n}` : e } : n ? { location: n } : {};
|
|
442
442
|
r.links[t] = {
|
|
443
443
|
...o,
|
|
@@ -445,21 +445,246 @@ function he(e, t) {
|
|
|
445
445
|
};
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
|
-
r.text.push(
|
|
448
|
+
r.text.push(a), r.values.push(o);
|
|
449
449
|
}
|
|
450
450
|
if (!t.filtered) r.merges = e.merges;
|
|
451
451
|
else {
|
|
452
452
|
let n = new Set(t.rows);
|
|
453
453
|
r.merges = e.merges.filter((e) => {
|
|
454
|
-
let t =
|
|
454
|
+
let t = m(e);
|
|
455
455
|
return !!t && t.top === t.bottom && n.has(t.top);
|
|
456
456
|
});
|
|
457
457
|
}
|
|
458
458
|
return r;
|
|
459
459
|
}
|
|
460
460
|
//#endregion
|
|
461
|
+
//#region src/spelling.ts
|
|
462
|
+
var xe = /[\p{L}\p{M}\p{N}]+(?:['’][\p{L}\p{M}]+)*/gu, Se = (e) => /\p{N}/u.test(e) || e === e.toLocaleUpperCase() && e !== e.toLocaleLowerCase();
|
|
463
|
+
function Y(e, t, n, r) {
|
|
464
|
+
for (let i of e.matchAll(xe)) {
|
|
465
|
+
let e = i[0];
|
|
466
|
+
if (!(i.index < t || Se(e) || r.has(e.toLocaleLowerCase())) && !n.check(e)) return {
|
|
467
|
+
word: e,
|
|
468
|
+
at: i.index
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
return null;
|
|
472
|
+
}
|
|
473
|
+
//#endregion
|
|
474
|
+
//#region src/local/workbook.ts
|
|
475
|
+
var X = /* @__PURE__ */ new Set([
|
|
476
|
+
"min",
|
|
477
|
+
"max",
|
|
478
|
+
"num",
|
|
479
|
+
"percent",
|
|
480
|
+
"percentile",
|
|
481
|
+
"formula",
|
|
482
|
+
"autoMin",
|
|
483
|
+
"autoMax"
|
|
484
|
+
]);
|
|
485
|
+
function Z(e, t) {
|
|
486
|
+
let n = (e) => {
|
|
487
|
+
if (Array.isArray(e)) return e.map(n);
|
|
488
|
+
if (!e || typeof e != "object") return e;
|
|
489
|
+
let r = e, i = {}, a = typeof r.type == "string" && X.has(r.type);
|
|
490
|
+
for (let [e, o] of Object.entries(r)) i[e] = typeof o == "string" && (e === "formula" || e === "formula1" || e === "formula2" || a && e === "value") ? t(o) : e === "formulas" && Array.isArray(o) ? o.map((e) => typeof e == "string" ? t(e) : e) : n(o);
|
|
491
|
+
return i;
|
|
492
|
+
};
|
|
493
|
+
return n(e);
|
|
494
|
+
}
|
|
495
|
+
var Q = class extends Error {};
|
|
496
|
+
async function Ce(e) {
|
|
497
|
+
try {
|
|
498
|
+
return await e();
|
|
499
|
+
} catch (e) {
|
|
500
|
+
if (e instanceof Q) return {
|
|
501
|
+
ok: !1,
|
|
502
|
+
reason: "refused",
|
|
503
|
+
message: e.message
|
|
504
|
+
};
|
|
505
|
+
throw e;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
function we(e, t, n) {
|
|
509
|
+
let r = (t) => {
|
|
510
|
+
let n = a(t, e);
|
|
511
|
+
return n.ok ? n.formula : t;
|
|
512
|
+
}, i = (t) => {
|
|
513
|
+
let n = o(t, e);
|
|
514
|
+
if (!n.ok) throw new Q(n.message);
|
|
515
|
+
return n.canonical;
|
|
516
|
+
};
|
|
517
|
+
async function c(e, n, r, i) {
|
|
518
|
+
return r.length ? t.reloaded((await e.clearCells(r.map((e) => ({
|
|
519
|
+
sheet: n,
|
|
520
|
+
range: e
|
|
521
|
+
})), i)).changes) : {
|
|
522
|
+
ok: !0,
|
|
523
|
+
changes: []
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
async function l(e, n, r, i) {
|
|
527
|
+
if (i && !i.href && !i.location) return O("A hyperlink needs an address or a place in the workbook");
|
|
528
|
+
let a = i ? {
|
|
529
|
+
url: i.href,
|
|
530
|
+
location: i.location,
|
|
531
|
+
tooltip: i.tooltip
|
|
532
|
+
} : null, o = a && Object.fromEntries(Object.entries(a).filter(([, e]) => e !== void 0));
|
|
533
|
+
return t.repainted(await e.patchCells([{
|
|
534
|
+
sheet: n,
|
|
535
|
+
range: r,
|
|
536
|
+
set: { link: o }
|
|
537
|
+
}]), [{
|
|
538
|
+
sheet: n,
|
|
539
|
+
range: r
|
|
540
|
+
}]);
|
|
541
|
+
}
|
|
542
|
+
async function u(e, n, r, i) {
|
|
543
|
+
let a = f(r);
|
|
544
|
+
if (!a) return O(`No cell ${n}!${r}`);
|
|
545
|
+
let o = s(a.row, a.col);
|
|
546
|
+
return t.repainted(await e.patchCells([{
|
|
547
|
+
sheet: n,
|
|
548
|
+
cell: o,
|
|
549
|
+
set: { note: i }
|
|
550
|
+
}]), [{
|
|
551
|
+
sheet: n,
|
|
552
|
+
range: o
|
|
553
|
+
}]);
|
|
554
|
+
}
|
|
555
|
+
async function d(e) {
|
|
556
|
+
return ((await e.getLayout()).names ?? []).filter((e) => !e.hidden).map((e) => ({
|
|
557
|
+
name: e.name,
|
|
558
|
+
ref: r(e.ref),
|
|
559
|
+
...e.scope ? { scope: e.scope } : {}
|
|
560
|
+
}));
|
|
561
|
+
}
|
|
562
|
+
async function p(e, n) {
|
|
563
|
+
return Ce(async () => {
|
|
564
|
+
let r = ((await e.getLayout()).names ?? []).filter((e) => e.hidden), a = [...n.map((e) => ({
|
|
565
|
+
name: e.name,
|
|
566
|
+
ref: i(e.ref),
|
|
567
|
+
...e.scope ? { scope: e.scope } : {}
|
|
568
|
+
})), ...r];
|
|
569
|
+
return t.reloaded((await e.setNames(a)).changes);
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
async function m(e, t, n, r) {
|
|
573
|
+
let i = await e.getDependents([{
|
|
574
|
+
sheet: t,
|
|
575
|
+
range: n
|
|
576
|
+
}], {
|
|
577
|
+
maxReferences: 1,
|
|
578
|
+
...r ? { signal: r } : {}
|
|
579
|
+
});
|
|
580
|
+
return {
|
|
581
|
+
cells: i.dependents.map((e) => ({
|
|
582
|
+
sheet: e.sheet,
|
|
583
|
+
cell: e.cell
|
|
584
|
+
})),
|
|
585
|
+
more: i.truncated
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
async function h(e, t) {
|
|
589
|
+
let n = (await e.getLayout()).sheets.find((e) => e.name.toLocaleLowerCase() === t.toLocaleLowerCase());
|
|
590
|
+
if (!n) throw Error(`No sheet ${t}`);
|
|
591
|
+
return {
|
|
592
|
+
conditionalFormats: (n.conditionalFormats ?? []).map((e) => Z(e, r)),
|
|
593
|
+
validations: (n.validations ?? []).map((e) => Z(e, r))
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
async function g(e, n, r) {
|
|
597
|
+
return Ce(async () => {
|
|
598
|
+
let a = [...r.conditionalFormats ? [{
|
|
599
|
+
sheet: n,
|
|
600
|
+
conditionalFormats: r.conditionalFormats.map((e) => Z(e, i))
|
|
601
|
+
}] : [], ...r.validations ? [{
|
|
602
|
+
sheet: n,
|
|
603
|
+
validations: r.validations.map((e) => Z(e, i))
|
|
604
|
+
}] : []];
|
|
605
|
+
return a.length ? t.reloaded((await e.setLayout(a)).changes) : {
|
|
606
|
+
ok: !0,
|
|
607
|
+
changes: []
|
|
608
|
+
};
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
async function _(e, n) {
|
|
612
|
+
let r = await e.editStructure(n);
|
|
613
|
+
return r.ok ? t.reloaded(r.changes) : {
|
|
614
|
+
ok: !1,
|
|
615
|
+
reason: "refused",
|
|
616
|
+
code: r.code,
|
|
617
|
+
message: r.message
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
async function v(e, t, r) {
|
|
621
|
+
if (!n) return null;
|
|
622
|
+
let i = new Set((t.ignore ?? []).map((e) => e.toLocaleLowerCase())), a = (e, t) => {
|
|
623
|
+
if (e.formula || typeof e.value != "string") return null;
|
|
624
|
+
let r = Y(e.value, t, n, i);
|
|
625
|
+
return r && {
|
|
626
|
+
cell: e.cell,
|
|
627
|
+
...r,
|
|
628
|
+
suggestions: n.suggest(r.word)
|
|
629
|
+
};
|
|
630
|
+
}, o = {
|
|
631
|
+
fields: ["value", "formula"],
|
|
632
|
+
...r ? { signal: r } : {}
|
|
633
|
+
}, c = t.after && f(t.after) ? s(f(t.after).row, f(t.after).col) : void 0;
|
|
634
|
+
if (c) {
|
|
635
|
+
let n = (await e.readCells([{
|
|
636
|
+
sheet: t.sheet,
|
|
637
|
+
range: c
|
|
638
|
+
}], {
|
|
639
|
+
...o,
|
|
640
|
+
fields: [...o.fields]
|
|
641
|
+
})).cells[0], r = n && a(n, t.from ?? 0);
|
|
642
|
+
if (r) return r;
|
|
643
|
+
}
|
|
644
|
+
let l = await e.getUsedRange(t.sheet), u = t.range ?? `A1:${s(Math.max(1, l.rows), Math.max(1, l.columns))}`, d;
|
|
645
|
+
do {
|
|
646
|
+
let n = await e.findCells([{
|
|
647
|
+
sheet: t.sheet,
|
|
648
|
+
range: u
|
|
649
|
+
}], "*", {
|
|
650
|
+
...o,
|
|
651
|
+
fields: [...o.fields],
|
|
652
|
+
in: "value",
|
|
653
|
+
wildcards: !0,
|
|
654
|
+
...c ? { after: {
|
|
655
|
+
sheet: t.sheet,
|
|
656
|
+
cell: c
|
|
657
|
+
} } : {},
|
|
658
|
+
...d ? { cursor: d } : {}
|
|
659
|
+
});
|
|
660
|
+
for (let e of n.cells) {
|
|
661
|
+
let t = e.cell === c ? null : a(e, 0);
|
|
662
|
+
if (t) return t;
|
|
663
|
+
}
|
|
664
|
+
d = n.cursor;
|
|
665
|
+
} while (d);
|
|
666
|
+
return null;
|
|
667
|
+
}
|
|
668
|
+
async function y(e) {
|
|
669
|
+
n?.add?.(e);
|
|
670
|
+
}
|
|
671
|
+
return {
|
|
672
|
+
clear: c,
|
|
673
|
+
link: l,
|
|
674
|
+
note: u,
|
|
675
|
+
names: d,
|
|
676
|
+
setNames: p,
|
|
677
|
+
dependents: m,
|
|
678
|
+
rules: h,
|
|
679
|
+
setRules: g,
|
|
680
|
+
table: _,
|
|
681
|
+
spelling: v,
|
|
682
|
+
learnWord: y
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
//#endregion
|
|
461
686
|
//#region src/local/source.ts
|
|
462
|
-
async function
|
|
687
|
+
async function Te(e) {
|
|
463
688
|
if ((typeof e.calc == "string" ? e.calc : typeof Worker == "function" ? "pool" : "inline") === "inline") return n();
|
|
464
689
|
let { createCalcPool: t } = await import("xlcalc/worker");
|
|
465
690
|
return t({
|
|
@@ -467,28 +692,34 @@ async function ge(e) {
|
|
|
467
692
|
...e.pool
|
|
468
693
|
});
|
|
469
694
|
}
|
|
470
|
-
|
|
471
|
-
|
|
695
|
+
var Ee = {
|
|
696
|
+
name: "Calibri",
|
|
697
|
+
size: 11
|
|
698
|
+
};
|
|
699
|
+
function De(e, t, n) {
|
|
700
|
+
let r = e.frozen, i = I(d(e), e.outline);
|
|
472
701
|
return {
|
|
473
702
|
name: e.name,
|
|
474
703
|
maxRow: t.rows,
|
|
475
704
|
maxCol: t.columns,
|
|
476
|
-
...
|
|
477
|
-
rows:
|
|
478
|
-
cols:
|
|
705
|
+
...r ? { freeze: {
|
|
706
|
+
rows: r.rows ?? 0,
|
|
707
|
+
cols: r.columns ?? 0
|
|
479
708
|
} } : {},
|
|
480
709
|
...e.hidden ? { hidden: e.hidden } : {},
|
|
481
|
-
...
|
|
710
|
+
...i ? { outline: i } : {},
|
|
711
|
+
...e.view?.zoom ? { zoom: e.view.zoom } : {},
|
|
712
|
+
font: n
|
|
482
713
|
};
|
|
483
714
|
}
|
|
484
|
-
function
|
|
485
|
-
let n =
|
|
486
|
-
return n &&
|
|
715
|
+
function Oe(e, t) {
|
|
716
|
+
let n = P(e, t);
|
|
717
|
+
return n && l(n.first, n.last, t);
|
|
487
718
|
}
|
|
488
|
-
async function
|
|
719
|
+
async function ke(e, t) {
|
|
489
720
|
let n;
|
|
490
|
-
if ("level" in t && t.op !== "showLevel" && (n = (await e.getLayout()).sheets.find((e) =>
|
|
491
|
-
let r =
|
|
721
|
+
if ("level" in t && t.op !== "showLevel" && (n = (await e.getLayout()).sheets.find((e) => g(e.name, t.sheet)), !n)) return O(`No sheet ${t.sheet}`);
|
|
722
|
+
let r = L(t, (e) => n ? d(n)[e] : []);
|
|
492
723
|
return "refused" in r ? {
|
|
493
724
|
ok: !1,
|
|
494
725
|
reason: "refused",
|
|
@@ -498,28 +729,28 @@ async function ve(e, t) {
|
|
|
498
729
|
sheet: t.sheet
|
|
499
730
|
};
|
|
500
731
|
}
|
|
501
|
-
function
|
|
502
|
-
let
|
|
503
|
-
function
|
|
732
|
+
function Ae(n, i = {}) {
|
|
733
|
+
let a = n.locale ?? "en-US", o, c = i.maxCells ?? 2e4, l = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), _ = null, v = null, y = Promise.resolve();
|
|
734
|
+
function b(e) {
|
|
504
735
|
return (...t) => {
|
|
505
|
-
let n =
|
|
506
|
-
return
|
|
736
|
+
let n = y.then(() => e(...t));
|
|
737
|
+
return y = n.catch(() => {}), n;
|
|
507
738
|
};
|
|
508
739
|
}
|
|
509
|
-
let
|
|
510
|
-
await
|
|
740
|
+
let x = (async () => {
|
|
741
|
+
await ae(a), _ = typeof i.calc == "object" ? i.calc : await Te(i), v = await _.createSession(n, i.session);
|
|
511
742
|
})();
|
|
512
|
-
|
|
513
|
-
let
|
|
514
|
-
function
|
|
515
|
-
for (let t of
|
|
743
|
+
x.catch(() => {});
|
|
744
|
+
let S = async () => (await x, v);
|
|
745
|
+
function C(e) {
|
|
746
|
+
for (let t of l) t(e);
|
|
516
747
|
}
|
|
517
|
-
function
|
|
518
|
-
|
|
748
|
+
function w() {
|
|
749
|
+
d.clear(), p.clear(), C({ kind: "reload" });
|
|
519
750
|
}
|
|
520
|
-
let
|
|
521
|
-
function
|
|
522
|
-
|
|
751
|
+
let ee = n.sheets.some((e) => e.conditionalFormats?.some((e) => "style" in e && e.style?.numberFormat !== void 0));
|
|
752
|
+
function ie(e) {
|
|
753
|
+
ee && d.clear(), C({
|
|
523
754
|
kind: "repaint",
|
|
524
755
|
ranges: e.map((e) => ({
|
|
525
756
|
sheet: e.sheet,
|
|
@@ -527,10 +758,10 @@ function ye(n, i = {}) {
|
|
|
527
758
|
}))
|
|
528
759
|
});
|
|
529
760
|
}
|
|
530
|
-
function
|
|
761
|
+
function T(e, t = /* @__PURE__ */ new Map()) {
|
|
531
762
|
let n = new Map(t);
|
|
532
763
|
for (let t of e) {
|
|
533
|
-
let e =
|
|
764
|
+
let e = de(t.sheet, t.cell);
|
|
534
765
|
n.has(e) || n.set(e, {
|
|
535
766
|
sheet: t.sheet,
|
|
536
767
|
cell: t.cell,
|
|
@@ -541,74 +772,74 @@ function ye(n, i = {}) {
|
|
|
541
772
|
}
|
|
542
773
|
let r = [...n.values()], i = /* @__PURE__ */ new Map();
|
|
543
774
|
for (let e of r) {
|
|
544
|
-
let t =
|
|
775
|
+
let t = d.get(u(e.sheet));
|
|
545
776
|
if (!t) continue;
|
|
546
777
|
let n = i.get(t);
|
|
547
778
|
n ? n.push(e) : i.set(t, [e]);
|
|
548
779
|
}
|
|
549
780
|
for (let [e, t] of i) e.then((e) => {
|
|
550
781
|
for (let n of t) {
|
|
551
|
-
let t =
|
|
782
|
+
let t = f(n.cell);
|
|
552
783
|
t && e.set(t.row, t.col, n.text, n.value);
|
|
553
784
|
}
|
|
554
785
|
});
|
|
555
786
|
return r;
|
|
556
787
|
}
|
|
557
|
-
function
|
|
558
|
-
let n =
|
|
559
|
-
return r || (r = e.getUsedRange(t).then((n) => new
|
|
788
|
+
function E(e, t) {
|
|
789
|
+
let n = u(t), r = d.get(n);
|
|
790
|
+
return r || (r = e.getUsedRange(t).then((n) => new ye(n.rows, (n, r) => e.getCells(t, n, r ? { signal: r } : {}))), d.set(n, r), r.catch(() => d.delete(n))), r;
|
|
560
791
|
}
|
|
561
|
-
async function
|
|
562
|
-
let i = await
|
|
792
|
+
async function D(e, t, n, r) {
|
|
793
|
+
let i = await E(e, t);
|
|
563
794
|
return await i.load(n, r), i;
|
|
564
795
|
}
|
|
565
|
-
async function
|
|
566
|
-
let
|
|
567
|
-
if (!r && s?.key ===
|
|
568
|
-
let
|
|
569
|
-
key:
|
|
570
|
-
rows:
|
|
571
|
-
max:
|
|
796
|
+
async function k(e, t, n, r, i) {
|
|
797
|
+
let o = fe(n), s = p.get(u(t));
|
|
798
|
+
if (!r && s?.key === o) return s;
|
|
799
|
+
let c = await D(e, t, me(n), i), l = {
|
|
800
|
+
key: o,
|
|
801
|
+
rows: he(c, n, a),
|
|
802
|
+
max: c.maxRow
|
|
572
803
|
};
|
|
573
|
-
return
|
|
804
|
+
return p.set(u(t), l), l;
|
|
574
805
|
}
|
|
575
|
-
async function
|
|
576
|
-
if (!
|
|
577
|
-
let i = await
|
|
806
|
+
async function M(e, t, n, r) {
|
|
807
|
+
if (!z(n)) return null;
|
|
808
|
+
let i = await k(e, t, n, !1, r);
|
|
578
809
|
return i.rows.length < i.max ? i.asc ??= [...i.rows].sort((e, t) => e - t) : null;
|
|
579
810
|
}
|
|
580
|
-
async function
|
|
811
|
+
async function P(e, t) {
|
|
581
812
|
let n = /* @__PURE__ */ new Map(), r = !1;
|
|
582
813
|
return await Promise.all(t.map(async (t) => {
|
|
583
|
-
let i = await e.getViewport(t.sheet,
|
|
814
|
+
let i = await e.getViewport(t.sheet, h(t.rect), {
|
|
584
815
|
formulaLocal: !0,
|
|
585
816
|
editText: !0,
|
|
586
|
-
maxCells:
|
|
817
|
+
maxCells: c
|
|
587
818
|
});
|
|
588
819
|
r ||= i.truncated;
|
|
589
|
-
let
|
|
590
|
-
for (let e =
|
|
591
|
-
let
|
|
592
|
-
(!t.only || t.only.has(
|
|
820
|
+
let a = m(i.range);
|
|
821
|
+
for (let e = a.top; e <= a.bottom; e++) for (let r = a.left; r <= a.right; r++) {
|
|
822
|
+
let a = s(e, r);
|
|
823
|
+
(!t.only || t.only.has(a)) && n.set(de(t.sheet, a), le(t.sheet, a, i.cells[a]));
|
|
593
824
|
}
|
|
594
825
|
})), {
|
|
595
826
|
updates: n,
|
|
596
827
|
truncated: r
|
|
597
828
|
};
|
|
598
829
|
}
|
|
599
|
-
async function
|
|
600
|
-
let { updates: r, truncated: i } = await
|
|
601
|
-
return i ||
|
|
830
|
+
async function F(e, t, n) {
|
|
831
|
+
let { updates: r, truncated: i } = await P(e, n), a = T(t.changes, r);
|
|
832
|
+
return i || ue(t) ? w() : (a.length && C({
|
|
602
833
|
kind: "changed",
|
|
603
834
|
changes: a
|
|
604
|
-
}), t.repaint?.length &&
|
|
835
|
+
}), t.repaint?.length && ie(t.repaint)), {
|
|
605
836
|
ok: !0,
|
|
606
837
|
changes: a
|
|
607
838
|
};
|
|
608
839
|
}
|
|
609
|
-
function
|
|
610
|
-
return
|
|
611
|
-
let r = await
|
|
840
|
+
function I(e, t) {
|
|
841
|
+
return b(async (...n) => {
|
|
842
|
+
let r = await S();
|
|
612
843
|
try {
|
|
613
844
|
return await e(r, ...n);
|
|
614
845
|
} catch (e) {
|
|
@@ -616,22 +847,22 @@ function ye(n, i = {}) {
|
|
|
616
847
|
}
|
|
617
848
|
});
|
|
618
849
|
}
|
|
619
|
-
let
|
|
620
|
-
function
|
|
621
|
-
let t =
|
|
622
|
-
return
|
|
850
|
+
let L = (e) => ce(e, "refused"), R = (e) => ce(e, "failed");
|
|
851
|
+
function B(e) {
|
|
852
|
+
let t = T(e);
|
|
853
|
+
return w(), {
|
|
623
854
|
ok: !0,
|
|
624
855
|
changes: t
|
|
625
856
|
};
|
|
626
857
|
}
|
|
627
|
-
async function
|
|
858
|
+
async function V(e, t, n) {
|
|
628
859
|
let r = [];
|
|
629
860
|
for (let e of t) {
|
|
630
|
-
let t =
|
|
861
|
+
let t = f(e.cell);
|
|
631
862
|
if (!t) return O(`No cell ${e.sheet}!${e.cell}`);
|
|
632
863
|
r.push({
|
|
633
864
|
sheet: e.sheet,
|
|
634
|
-
cell:
|
|
865
|
+
cell: s(t.row, t.col),
|
|
635
866
|
text: e.text
|
|
636
867
|
});
|
|
637
868
|
}
|
|
@@ -639,55 +870,55 @@ function ye(n, i = {}) {
|
|
|
639
870
|
ok: !0,
|
|
640
871
|
changes: []
|
|
641
872
|
};
|
|
642
|
-
let i =
|
|
643
|
-
if (r.every((e) => e.text === null)) return
|
|
873
|
+
let i = j(r);
|
|
874
|
+
if (r.every((e) => e.text === null)) return F(e, await e.clearCells(r.map((e) => ({
|
|
644
875
|
sheet: e.sheet,
|
|
645
876
|
range: e.cell
|
|
646
877
|
})), "contents"), i);
|
|
647
|
-
let
|
|
878
|
+
let a = r.map((e) => ({
|
|
648
879
|
sheet: e.sheet,
|
|
649
880
|
cell: e.cell,
|
|
650
881
|
text: e.text ?? ""
|
|
651
|
-
})),
|
|
882
|
+
})), o = await e.setCellTexts(a, {
|
|
652
883
|
refuseInvalid: !n?.accept,
|
|
653
884
|
...n?.inPlace ? { inPlace: !0 } : {}
|
|
654
885
|
});
|
|
655
|
-
return
|
|
886
|
+
return o.ok ? F(e, o, i) : A(o);
|
|
656
887
|
}
|
|
657
|
-
async function
|
|
888
|
+
async function H(e, t, n, r) {
|
|
658
889
|
let i = await e.pasteText(t, n, r);
|
|
659
890
|
return i.ok ? {
|
|
660
|
-
...await
|
|
891
|
+
...await F(e, i, [{
|
|
661
892
|
sheet: t,
|
|
662
|
-
rect:
|
|
893
|
+
rect: m(i.range)
|
|
663
894
|
}]),
|
|
664
895
|
select: {
|
|
665
896
|
sheet: t,
|
|
666
897
|
range: i.range
|
|
667
898
|
}
|
|
668
|
-
} :
|
|
899
|
+
} : A(i);
|
|
669
900
|
}
|
|
670
|
-
async function
|
|
671
|
-
let
|
|
672
|
-
if (!
|
|
673
|
-
let
|
|
901
|
+
async function U(e, t, n, r, i) {
|
|
902
|
+
let a = f(n);
|
|
903
|
+
if (!a) return O(`No cell ${t}!${n}`);
|
|
904
|
+
let o = (await e.getValidation(t, n))?.list, c = Array.isArray(o) ? o[r] : void 0;
|
|
674
905
|
if (!c || c.text !== i) return {
|
|
675
906
|
ok: !1,
|
|
676
907
|
reason: "conflict",
|
|
677
908
|
message: `The list of ${t}!${n} changed: open it again`
|
|
678
909
|
};
|
|
679
|
-
let l = a
|
|
680
|
-
return
|
|
910
|
+
let l = s(a.row, a.col);
|
|
911
|
+
return F(e, await e.setCells([{
|
|
681
912
|
sheet: t,
|
|
682
913
|
cell: l,
|
|
683
914
|
input: c.input
|
|
684
|
-
}]),
|
|
915
|
+
}]), j([{
|
|
685
916
|
sheet: t,
|
|
686
917
|
cell: l
|
|
687
918
|
}]));
|
|
688
919
|
}
|
|
689
|
-
async function
|
|
690
|
-
let o =
|
|
920
|
+
async function _e(e, t, n, r, i, a) {
|
|
921
|
+
let o = m(n);
|
|
691
922
|
if (!o) return O(`Not a range: ${n}`);
|
|
692
923
|
let s = await e.fillCellText(t, n, r, {
|
|
693
924
|
active: i,
|
|
@@ -695,45 +926,45 @@ function ye(n, i = {}) {
|
|
|
695
926
|
...a?.inPlace ? { inPlace: !0 } : {}
|
|
696
927
|
});
|
|
697
928
|
return s.ok ? {
|
|
698
|
-
...await
|
|
929
|
+
...await F(e, s, [{
|
|
699
930
|
sheet: t,
|
|
700
931
|
rect: o
|
|
701
932
|
}]),
|
|
702
933
|
select: {
|
|
703
934
|
sheet: t,
|
|
704
|
-
range:
|
|
935
|
+
range: h(o)
|
|
705
936
|
}
|
|
706
|
-
} :
|
|
937
|
+
} : A(s);
|
|
707
938
|
}
|
|
708
|
-
async function
|
|
939
|
+
async function W(e, t) {
|
|
709
940
|
let n = await e[t]();
|
|
710
941
|
if (!n) return {
|
|
711
942
|
ok: !0,
|
|
712
943
|
changes: []
|
|
713
944
|
};
|
|
714
|
-
if (n.call === "editStructure") return
|
|
715
|
-
let r =
|
|
945
|
+
if (n.call === "editStructure") return B(n.changes);
|
|
946
|
+
let r = j(n.cells ?? []), i = await F(e, n, r), a = r[0];
|
|
716
947
|
return a ? {
|
|
717
948
|
...i,
|
|
718
949
|
select: {
|
|
719
950
|
sheet: a.sheet,
|
|
720
|
-
range:
|
|
951
|
+
range: h(a.rect)
|
|
721
952
|
}
|
|
722
953
|
} : i;
|
|
723
954
|
}
|
|
724
|
-
async function
|
|
955
|
+
async function G(e, t) {
|
|
725
956
|
let n = await e.editStructure(t);
|
|
726
|
-
return n.ok ?
|
|
957
|
+
return n.ok ? B(n.changes) : {
|
|
727
958
|
ok: !1,
|
|
728
959
|
reason: "refused",
|
|
729
960
|
code: n.code,
|
|
730
961
|
message: n.message
|
|
731
962
|
};
|
|
732
963
|
}
|
|
733
|
-
async function
|
|
964
|
+
async function K(e, t) {
|
|
734
965
|
let n = (e) => t.hidden === void 0 ? e !== void 0 && e > 0 ? { hidden: null } : {} : { hidden: t.hidden ? !0 : null }, r;
|
|
735
966
|
if ("columns" in t) {
|
|
736
|
-
let e =
|
|
967
|
+
let e = Oe(t.columns, "columns");
|
|
737
968
|
if (!e) return O(`Not columns: ${t.columns}`);
|
|
738
969
|
r = t.fit ? {
|
|
739
970
|
sheet: t.sheet,
|
|
@@ -751,7 +982,7 @@ function ye(n, i = {}) {
|
|
|
751
982
|
}
|
|
752
983
|
};
|
|
753
984
|
} else {
|
|
754
|
-
let e =
|
|
985
|
+
let e = Oe(t.rows, "rows");
|
|
755
986
|
if (!e) return O(`Not rows: ${t.rows}`);
|
|
756
987
|
r = t.fit ? {
|
|
757
988
|
sheet: t.sheet,
|
|
@@ -770,9 +1001,9 @@ function ye(n, i = {}) {
|
|
|
770
1001
|
};
|
|
771
1002
|
}
|
|
772
1003
|
let i = await e.setLayout([r]);
|
|
773
|
-
if (t.hidden !== void 0 || "fit" in t && t.fit) return
|
|
774
|
-
let a =
|
|
775
|
-
return a.length &&
|
|
1004
|
+
if (t.hidden !== void 0 || "fit" in t && t.fit) return B(i.changes);
|
|
1005
|
+
let a = T(i.changes);
|
|
1006
|
+
return a.length && C({
|
|
776
1007
|
kind: "changed",
|
|
777
1008
|
changes: a
|
|
778
1009
|
}), {
|
|
@@ -780,7 +1011,7 @@ function ye(n, i = {}) {
|
|
|
780
1011
|
changes: a
|
|
781
1012
|
};
|
|
782
1013
|
}
|
|
783
|
-
async function
|
|
1014
|
+
async function q(e, t, n) {
|
|
784
1015
|
let r = [];
|
|
785
1016
|
for (let e of n) {
|
|
786
1017
|
let n = {};
|
|
@@ -794,10 +1025,14 @@ function ye(n, i = {}) {
|
|
|
794
1025
|
ok: !0,
|
|
795
1026
|
changes: []
|
|
796
1027
|
};
|
|
797
|
-
let i = await e.patchCells(r);
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
1028
|
+
let i = await e.patchCells(r), a = T(i.changes);
|
|
1029
|
+
return r.some((e) => e.set.numberFormat !== void 0) ? (w(), {
|
|
1030
|
+
ok: !0,
|
|
1031
|
+
changes: a
|
|
1032
|
+
}) : i.fitted?.length ? (C({ kind: "reload" }), {
|
|
1033
|
+
ok: !0,
|
|
1034
|
+
changes: a
|
|
1035
|
+
}) : (C({
|
|
801
1036
|
kind: "repaint",
|
|
802
1037
|
ranges: [...n.filter((e) => e.style !== void 0).map((e) => ({
|
|
803
1038
|
sheet: t,
|
|
@@ -809,10 +1044,10 @@ function ye(n, i = {}) {
|
|
|
809
1044
|
}), {
|
|
810
1045
|
ok: !0,
|
|
811
1046
|
changes: a
|
|
812
|
-
};
|
|
1047
|
+
});
|
|
813
1048
|
}
|
|
814
|
-
async function
|
|
815
|
-
let r = await ne(e, t, n, await
|
|
1049
|
+
async function J(e, t, n) {
|
|
1050
|
+
let r = await ne(e, t, n, await M(e, t.sheet, t.filter)), i = r.refused?.length ? { refused: r.refused.map((e) => ({
|
|
816
1051
|
sheet: e.sheet,
|
|
817
1052
|
cell: e.cell,
|
|
818
1053
|
message: e.message
|
|
@@ -823,123 +1058,167 @@ function ye(n, i = {}) {
|
|
|
823
1058
|
replaced: 0,
|
|
824
1059
|
...i
|
|
825
1060
|
};
|
|
826
|
-
let a = r.changes.filter((e) =>
|
|
1061
|
+
let a = r.changes.filter((e) => g(e.sheet, t.sheet)).map((e) => f(e.cell));
|
|
827
1062
|
return {
|
|
828
|
-
...await
|
|
1063
|
+
...await F(e, r, re(t.sheet, a, c)),
|
|
829
1064
|
replaced: r.replaced,
|
|
830
1065
|
...i
|
|
831
1066
|
};
|
|
832
1067
|
}
|
|
833
|
-
async function
|
|
834
|
-
let n = await
|
|
835
|
-
return "ok" in n ? n :
|
|
1068
|
+
async function ve(e, t) {
|
|
1069
|
+
let n = await ke(e, t);
|
|
1070
|
+
return "ok" in n ? n : G(e, n);
|
|
836
1071
|
}
|
|
837
|
-
async function
|
|
1072
|
+
async function xe(e, t, n) {
|
|
838
1073
|
let r = n && (n.rows > 0 || n.cols > 0) ? {
|
|
839
1074
|
...n.rows > 0 ? { rows: n.rows } : {},
|
|
840
1075
|
...n.cols > 0 ? { columns: n.cols } : {}
|
|
841
|
-
} : null, i =
|
|
1076
|
+
} : null, i = T((await e.setLayout([{
|
|
842
1077
|
sheet: t,
|
|
843
1078
|
frozen: r
|
|
844
1079
|
}])).changes);
|
|
845
|
-
return
|
|
1080
|
+
return C({ kind: "reload" }), {
|
|
846
1081
|
ok: !0,
|
|
847
1082
|
changes: i
|
|
848
1083
|
};
|
|
849
1084
|
}
|
|
1085
|
+
function Se(e, t) {
|
|
1086
|
+
let n = T(e.changes);
|
|
1087
|
+
return n.length && C({
|
|
1088
|
+
kind: "changed",
|
|
1089
|
+
changes: n
|
|
1090
|
+
}), C({
|
|
1091
|
+
kind: "repaint",
|
|
1092
|
+
ranges: [...t, ...(e.repaint ?? []).map((e) => ({
|
|
1093
|
+
sheet: e.sheet,
|
|
1094
|
+
range: e.range
|
|
1095
|
+
}))]
|
|
1096
|
+
}), {
|
|
1097
|
+
ok: !0,
|
|
1098
|
+
changes: n
|
|
1099
|
+
};
|
|
1100
|
+
}
|
|
1101
|
+
let Y = we(a, {
|
|
1102
|
+
repainted: Se,
|
|
1103
|
+
reloaded: B
|
|
1104
|
+
}, i.spelling), X = (e) => async (...t) => e(await S(), ...t);
|
|
850
1105
|
return {
|
|
851
|
-
maxCells:
|
|
852
|
-
locale:
|
|
853
|
-
ready:
|
|
1106
|
+
maxCells: c,
|
|
1107
|
+
locale: a,
|
|
1108
|
+
ready: x,
|
|
854
1109
|
async sheets(e) {
|
|
855
|
-
let t = await
|
|
856
|
-
|
|
1110
|
+
let t = await S(), n = await t.getLayout(), r = await Promise.all(n.sheets.map((e) => t.getUsedRange(e.name)));
|
|
1111
|
+
N(e);
|
|
1112
|
+
let i = n.font ?? Ee;
|
|
1113
|
+
return n.sheets.map((e, t) => De(e, r[t], i));
|
|
857
1114
|
},
|
|
858
1115
|
async window(e, t) {
|
|
859
|
-
let n = await
|
|
860
|
-
|
|
861
|
-
let r = Math.max(0, e.cols),
|
|
862
|
-
|
|
863
|
-
let u = [...
|
|
1116
|
+
let n = await S();
|
|
1117
|
+
N(t);
|
|
1118
|
+
let r = Math.max(0, e.cols), a = pe(c, e.rows, r), o = z(e.filter), l;
|
|
1119
|
+
l = o ? (await k(n, e.sheet, e.filter, !1, t)).rows.slice(e.row - 1, e.row - 1 + a) : Array.from({ length: a }, (t, n) => e.row + n);
|
|
1120
|
+
let u = [...l].sort((e, t) => e - t), d = u[0] ?? 1, f = `${s(d, e.col)}:${s(u[u.length - 1] ?? d, e.col + Math.max(1, r) - 1)}`, p = await n.getViewport(e.sheet, f, {
|
|
864
1121
|
formulaLocal: !0,
|
|
865
1122
|
editText: !0,
|
|
866
|
-
maxCells:
|
|
867
|
-
...
|
|
1123
|
+
maxCells: c,
|
|
1124
|
+
...o || !l.length ? { rows: u } : {}
|
|
868
1125
|
});
|
|
869
|
-
return
|
|
1126
|
+
return N(t), be(p, {
|
|
870
1127
|
row: e.row,
|
|
871
|
-
rows:
|
|
1128
|
+
rows: l,
|
|
872
1129
|
col: e.col,
|
|
873
1130
|
cols: r,
|
|
874
|
-
filtered:
|
|
1131
|
+
filtered: o,
|
|
875
1132
|
notice: i.notice
|
|
876
1133
|
});
|
|
877
1134
|
},
|
|
878
|
-
edit:
|
|
879
|
-
paste:
|
|
880
|
-
fill:
|
|
881
|
-
pick:
|
|
882
|
-
undo:
|
|
883
|
-
redo:
|
|
884
|
-
structure:
|
|
885
|
-
layout:
|
|
886
|
-
format:
|
|
887
|
-
replace:
|
|
888
|
-
...
|
|
1135
|
+
edit: I(V, L),
|
|
1136
|
+
paste: I(H, L),
|
|
1137
|
+
fill: I(_e, L),
|
|
1138
|
+
pick: I(U, L),
|
|
1139
|
+
undo: I((e) => W(e, "undo"), R),
|
|
1140
|
+
redo: I((e) => W(e, "redo"), R),
|
|
1141
|
+
structure: I(G, R),
|
|
1142
|
+
layout: I(K, R),
|
|
1143
|
+
format: I(q, L),
|
|
1144
|
+
replace: I(J, (e) => ({
|
|
1145
|
+
...L(e),
|
|
889
1146
|
replaced: 0
|
|
890
1147
|
})),
|
|
891
|
-
outline:
|
|
892
|
-
freeze:
|
|
1148
|
+
outline: I(ve, R),
|
|
1149
|
+
freeze: I(xe, R),
|
|
1150
|
+
clear: I(Y.clear, R),
|
|
1151
|
+
link: I(Y.link, L),
|
|
1152
|
+
note: I(Y.note, L),
|
|
1153
|
+
names: X(Y.names),
|
|
1154
|
+
setNames: I(Y.setNames, L),
|
|
1155
|
+
dependents: X(Y.dependents),
|
|
1156
|
+
rules: X(Y.rules),
|
|
1157
|
+
setRules: I(Y.setRules, L),
|
|
1158
|
+
table: I(Y.table, R),
|
|
1159
|
+
...i.spelling ? {
|
|
1160
|
+
spelling: X(Y.spelling),
|
|
1161
|
+
learnWord: Y.learnWord
|
|
1162
|
+
} : {},
|
|
1163
|
+
async autoSum(e, t, n) {
|
|
1164
|
+
let r = await S();
|
|
1165
|
+
if (N(n), typeof r.getAutoSum != "function") return null;
|
|
1166
|
+
let i = await r.getAutoSum(e, t);
|
|
1167
|
+
return N(n), {
|
|
1168
|
+
range: i.range,
|
|
1169
|
+
formula: i.formulaLocal
|
|
1170
|
+
};
|
|
1171
|
+
},
|
|
893
1172
|
get history() {
|
|
894
|
-
return
|
|
1173
|
+
return v?.history ?? {
|
|
895
1174
|
undo: 0,
|
|
896
1175
|
redo: 0
|
|
897
1176
|
};
|
|
898
1177
|
},
|
|
899
1178
|
subscribe(e) {
|
|
900
|
-
return
|
|
1179
|
+
return l.add(e), () => l.delete(e);
|
|
901
1180
|
},
|
|
902
1181
|
async copyText(e, t, n) {
|
|
903
|
-
let r = await
|
|
904
|
-
return
|
|
1182
|
+
let r = await S();
|
|
1183
|
+
return N(n?.signal), r.copyText(e, t, {
|
|
905
1184
|
...n?.trailingNewline === !1 ? { trailingNewline: !1 } : {},
|
|
906
1185
|
...n?.signal ? { signal: n.signal } : {}
|
|
907
1186
|
});
|
|
908
1187
|
},
|
|
909
1188
|
async validation(e, t, n) {
|
|
910
|
-
let r = await
|
|
911
|
-
|
|
912
|
-
let i =
|
|
913
|
-
return
|
|
1189
|
+
let r = await S();
|
|
1190
|
+
N(n);
|
|
1191
|
+
let i = se(await r.getValidation(e, t));
|
|
1192
|
+
return N(n), i;
|
|
914
1193
|
},
|
|
915
1194
|
async functionNames(n) {
|
|
916
|
-
await
|
|
917
|
-
let r = t.get(
|
|
918
|
-
return e.map((e) => r[e] ?? e).sort(new Intl.Collator(
|
|
1195
|
+
await x, N(n);
|
|
1196
|
+
let r = t.get(a)?.functions ?? {};
|
|
1197
|
+
return e.map((e) => r[e] ?? e).sort(new Intl.Collator(a).compare);
|
|
919
1198
|
},
|
|
920
1199
|
async functionSignature(e, t) {
|
|
921
|
-
await
|
|
922
|
-
let n = await
|
|
923
|
-
|
|
1200
|
+
await x, N(t);
|
|
1201
|
+
let n = await oe(a);
|
|
1202
|
+
N(t);
|
|
924
1203
|
let i = r(e, n);
|
|
925
|
-
|
|
926
|
-
let
|
|
927
|
-
return i &&
|
|
1204
|
+
o ??= import("xlcalc/function-text").then((e) => e.functionDescription, () => null);
|
|
1205
|
+
let s = i && (await o)?.(i.fn, n);
|
|
1206
|
+
return i && s ? {
|
|
928
1207
|
...i,
|
|
929
|
-
description:
|
|
1208
|
+
description: s
|
|
930
1209
|
} : i;
|
|
931
1210
|
},
|
|
932
1211
|
async explain(e, t) {
|
|
933
|
-
return (await (await
|
|
1212
|
+
return (await (await S()).explain(e, t)).text;
|
|
934
1213
|
},
|
|
935
1214
|
async end(e, t, n, r) {
|
|
936
|
-
let i = await
|
|
937
|
-
return
|
|
1215
|
+
let i = await S();
|
|
1216
|
+
return N(r), i.getEnd(e, t, n);
|
|
938
1217
|
},
|
|
939
1218
|
async stats(e, t, n, r) {
|
|
940
|
-
let i = await
|
|
941
|
-
|
|
942
|
-
let a = await
|
|
1219
|
+
let i = await S();
|
|
1220
|
+
N(r);
|
|
1221
|
+
let a = await M(i, e, n, r);
|
|
943
1222
|
try {
|
|
944
1223
|
let n = await i.summarizeRanges([{
|
|
945
1224
|
sheet: e,
|
|
@@ -956,48 +1235,48 @@ function ye(n, i = {}) {
|
|
|
956
1235
|
max: n.max
|
|
957
1236
|
};
|
|
958
1237
|
} catch (e) {
|
|
959
|
-
throw
|
|
1238
|
+
throw N(r), e;
|
|
960
1239
|
}
|
|
961
1240
|
},
|
|
962
1241
|
async find(e, t) {
|
|
963
|
-
let n = await
|
|
964
|
-
|
|
965
|
-
let r = await
|
|
1242
|
+
let n = await S();
|
|
1243
|
+
N(t);
|
|
1244
|
+
let r = await M(n, e.sheet, e.filter, t);
|
|
966
1245
|
try {
|
|
967
1246
|
return await te(n, e, r, t);
|
|
968
1247
|
} catch (e) {
|
|
969
|
-
throw
|
|
1248
|
+
throw N(t), e;
|
|
970
1249
|
}
|
|
971
1250
|
},
|
|
972
1251
|
async visibleRows(e, t, n) {
|
|
973
|
-
let r = await
|
|
974
|
-
return
|
|
1252
|
+
let r = await S();
|
|
1253
|
+
return z(t) ? (N(n), { rows: (await k(r, e, t, !0, n)).rows }) : (p.delete(u(e)), { rows: null });
|
|
975
1254
|
},
|
|
976
1255
|
async columnValues(e, t, n, r) {
|
|
977
|
-
let i = await
|
|
978
|
-
return
|
|
1256
|
+
let i = await S();
|
|
1257
|
+
return N(r), ge(await D(i, e, [t, ...Object.keys(n.cols ?? {}).map(Number)], r), t, n, a);
|
|
979
1258
|
},
|
|
980
1259
|
async book() {
|
|
981
|
-
return (await
|
|
1260
|
+
return (await S()).getBook();
|
|
982
1261
|
},
|
|
983
1262
|
async snapshot() {
|
|
984
|
-
return (await
|
|
1263
|
+
return (await S()).getSnapshot();
|
|
985
1264
|
},
|
|
986
1265
|
async close() {
|
|
987
|
-
await
|
|
1266
|
+
await x.catch(() => {}), await v?.close(), _ && typeof i.calc != "object" && await _.close();
|
|
988
1267
|
}
|
|
989
1268
|
};
|
|
990
1269
|
}
|
|
991
1270
|
//#endregion
|
|
992
1271
|
//#region src/local/xlsx.ts
|
|
993
1272
|
async function $(e) {
|
|
994
|
-
return e.locale === void 0 ? {} : (typeof e.locale == "string" && await
|
|
1273
|
+
return e.locale === void 0 ? {} : (typeof e.locale == "string" && await ae(e.locale), { locale: e.locale });
|
|
995
1274
|
}
|
|
996
|
-
async function
|
|
1275
|
+
async function je(e, t = {}) {
|
|
997
1276
|
let n = e instanceof Blob ? new Uint8Array(await e.arrayBuffer()) : e, [{ readXlsx: r }, i] = await Promise.all([import("xlcalc/xlsx"), $(t)]);
|
|
998
1277
|
return r(n, i);
|
|
999
1278
|
}
|
|
1000
|
-
async function
|
|
1279
|
+
async function Me(e, t = {}) {
|
|
1001
1280
|
let [{ writeXlsx: n }, r, i] = await Promise.all([
|
|
1002
1281
|
import("xlcalc/xlsx"),
|
|
1003
1282
|
e.snapshot(),
|
|
@@ -1008,7 +1287,7 @@ async function xe(e, t = {}) {
|
|
|
1008
1287
|
...i
|
|
1009
1288
|
});
|
|
1010
1289
|
}
|
|
1011
|
-
function
|
|
1290
|
+
function Ne(e) {
|
|
1012
1291
|
let t = /* @__PURE__ */ new Map();
|
|
1013
1292
|
for (let n of e) {
|
|
1014
1293
|
let e = t.get(n.code);
|
|
@@ -1022,4 +1301,4 @@ function Se(e) {
|
|
|
1022
1301
|
return [...t.values()];
|
|
1023
1302
|
}
|
|
1024
1303
|
//#endregion
|
|
1025
|
-
export {
|
|
1304
|
+
export { Ne as groupIssues, Ae as localSource, je as openXlsx, Me as saveXlsx };
|