@xlcalc/vue 0.21.2 → 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.
Files changed (104) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -2
  3. package/dist/components/CfDialogs.vue.d.ts +3 -0
  4. package/dist/components/CfManager.vue.d.ts +3 -0
  5. package/dist/components/CfPreview.vue.d.ts +9 -0
  6. package/dist/components/CfQuickDialog.vue.d.ts +3 -0
  7. package/dist/components/CfRuleDialog.vue.d.ts +3 -0
  8. package/dist/components/CfStyleDialog.vue.d.ts +15 -0
  9. package/dist/components/CfValuesFields.vue.d.ts +9 -0
  10. package/dist/components/DialogShell.vue.d.ts +1 -1
  11. package/dist/components/FunctionList.vue.d.ts +2 -1
  12. package/dist/components/GoToDialog.vue.d.ts +3 -0
  13. package/dist/components/LinkDialog.vue.d.ts +3 -0
  14. package/dist/components/NameBox.vue.d.ts +3 -0
  15. package/dist/components/NameDialogs.vue.d.ts +3 -0
  16. package/dist/components/NoteBox.vue.d.ts +3 -0
  17. package/dist/components/SheetToolbar.vue.d.ts +7 -4
  18. package/dist/components/SheetView.vue.d.ts +11 -4
  19. package/dist/components/SpellingDialog.vue.d.ts +3 -0
  20. package/dist/components/SymbolDialog.vue.d.ts +3 -0
  21. package/dist/components/TableDialog.vue.d.ts +3 -0
  22. package/dist/components/ToolbarBox.vue.d.ts +31 -0
  23. package/dist/components/TraceArrows.vue.d.ts +3 -0
  24. package/dist/components/ValidationDialog.vue.d.ts +3 -0
  25. package/dist/components/WatchWindow.vue.d.ts +3 -0
  26. package/dist/components/ZoomBar.vue.d.ts +3 -0
  27. package/dist/components/ZoomDialog.vue.d.ts +3 -0
  28. package/dist/components/icons.d.ts +1 -0
  29. package/dist/components/name-icons.d.ts +1 -0
  30. package/dist/components/toolbar-icons.d.ts +16 -0
  31. package/dist/contract/conditional.d.ts +16 -0
  32. package/dist/contract/memory.d.ts +5 -0
  33. package/dist/contract/messages.d.ts +260 -1
  34. package/dist/contract/source.d.ts +41 -0
  35. package/dist/contract/view.d.ts +117 -2
  36. package/dist/contract/workbook.d.ts +73 -0
  37. package/dist/contract.d.ts +4 -2
  38. package/dist/core/autocomplete.d.ts +9 -1
  39. package/dist/core/autosum.d.ts +11 -0
  40. package/dist/core/cell-style.d.ts +5 -0
  41. package/dist/core/cell-view.d.ts +2 -0
  42. package/dist/core/cf-commands.d.ts +70 -0
  43. package/dist/core/cf-describe.d.ts +4 -0
  44. package/dist/core/cf-draft.d.ts +114 -0
  45. package/dist/core/cf-formula.d.ts +30 -0
  46. package/dist/core/cf-presets.d.ts +33 -0
  47. package/dist/core/cf-ranges.d.ts +22 -0
  48. package/dist/core/commands.d.ts +4 -2
  49. package/dist/core/editing.d.ts +6 -1
  50. package/dist/core/extras.d.ts +22 -0
  51. package/dist/core/fill.d.ts +3 -0
  52. package/dist/core/formula-view.d.ts +10 -0
  53. package/dist/core/geometry.d.ts +6 -0
  54. package/dist/core/goto.d.ts +24 -0
  55. package/dist/core/links.d.ts +105 -0
  56. package/dist/core/menu.d.ts +8 -0
  57. package/dist/core/name-dialogs.d.ts +63 -0
  58. package/dist/core/names.d.ts +33 -0
  59. package/dist/core/navigation.d.ts +6 -0
  60. package/dist/core/notes.d.ts +44 -0
  61. package/dist/core/place.d.ts +10 -0
  62. package/dist/core/range-read.d.ts +11 -0
  63. package/dist/core/sheet.d.ts +337 -4
  64. package/dist/core/spell-check.d.ts +54 -0
  65. package/dist/core/state.d.ts +9 -0
  66. package/dist/core/tables.d.ts +63 -0
  67. package/dist/core/trace.d.ts +26 -0
  68. package/dist/core/validation-dialog.d.ts +33 -0
  69. package/dist/core/validation.d.ts +17 -3
  70. package/dist/core/viewport.d.ts +12 -0
  71. package/dist/core/watch.d.ts +35 -0
  72. package/dist/core/windows.d.ts +2 -0
  73. package/dist/core/zoom.d.ts +44 -0
  74. package/dist/format-cells.d.ts +0 -6
  75. package/dist/formula-shift.d.ts +3 -0
  76. package/dist/index.js +12033 -4565
  77. package/dist/local/types.d.ts +4 -1
  78. package/dist/local/workbook.d.ts +25 -0
  79. package/dist/local.js +556 -277
  80. package/dist/memory-workbook.d.ts +21 -0
  81. package/dist/messages-conditional.d.ts +3 -0
  82. package/dist/rect.d.ts +2 -0
  83. package/dist/{ru-RU-BVeg6JGM.js → ru-RU-CzebvM-s.js} +19 -2
  84. package/dist/spelling.d.ts +6 -0
  85. package/dist/style.css +1 -1
  86. package/dist/symbols.d.ts +23 -0
  87. package/dist/toolbar.d.ts +53 -1
  88. package/dist/{typed-entry-2l9Ay-hV.js → typed-entry-3r1pEbc9.js} +4546 -4453
  89. package/dist/validation-rules.d.ts +95 -0
  90. package/docs/api.md +91 -10
  91. package/docs/autocomplete.md +3 -3
  92. package/docs/checks.md +1 -1
  93. package/docs/clipboard.md +1 -1
  94. package/docs/conditional-formatting.md +135 -0
  95. package/docs/editing.md +50 -1
  96. package/docs/go-to-and-symbol.md +37 -0
  97. package/docs/links-notes.md +36 -0
  98. package/docs/local.md +1 -1
  99. package/docs/names.md +62 -0
  100. package/docs/tables.md +40 -0
  101. package/docs/toolbar.md +6 -2
  102. package/docs/validation.md +47 -0
  103. package/docs/view.md +104 -1
  104. 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 a, colLetters as o, linesKey as s, nameKey as c, outlineGroups as l, parseCell as u, parseLines as d, parseRange as f, rangeAddress as p, sameName as ee } from "xlcalc/a1";
3
- import { DEFAULT_ROW_HEIGHT as m, valueComparator as h } from "xlcalc/text";
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 g = (e, t) => ({
5
+ var y = (e, t) => ({
6
6
  top: e,
7
7
  left: t,
8
8
  bottom: e,
9
9
  right: t
10
- }), _ = (e, t) => ({
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
- }), v = 500, y = "A1:XFD1048576", b = (e) => [{
15
+ }), x = 500, S = "A1:XFD1048576", C = (e) => [{
16
16
  sheet: e.sheet,
17
- range: e.range ?? y
17
+ range: e.range ?? S
18
18
  }];
19
- function x(e, t) {
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 S(e, t) {
29
- let n = e.after ? u(e.after) : null;
28
+ function ee(e, t) {
29
+ let n = e.after ? f(e.after) : null;
30
30
  if (!n) return;
31
- let r = e.range ? f(e.range) : null;
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: a(n.row, n.col)
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 = S(t, n), o = await e.findCells(b(t), t.query, {
39
- ...x(t, n),
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: v,
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 = u(e.cell);
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(b(t), t.query, n, x(t, r));
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 o of t) {
65
- let t = a(o.row, o.col), s = i?.rect, c = s ? _(s, g(o.row, o.col)) : null;
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: g(o.row, o.col),
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 C = { "ru-RU": () => import("xlcalc/locales/ru-RU").then((e) => e.ruRU) };
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 w(e) {
79
+ async function ae(e) {
80
80
  if (t.has(e)) return;
81
- let n = C[e];
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 ie(e) {
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 ae(e) {
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 k(e, t) {
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 A = /* @__PURE__ */ new Set([
136
+ var k = /* @__PURE__ */ new Set([
137
137
  "syntax",
138
138
  "empty",
139
139
  "too_long",
140
140
  "too_deep"
141
141
  ]);
142
- function j(e) {
142
+ function A(e) {
143
143
  if (e.code === "validation") return D(e);
144
- if (!A.has(e.code)) return {
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 oe(e, t, n) {
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 se = (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)), M = (e, t) => `${c(e)}!${t}`;
171
- function N(e) {
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 = u(n.cell);
174
+ let e = f(n.cell);
175
175
  if (!e) continue;
176
- let r = c(n.sheet), i = t.get(r);
177
- i ? (i.rect = _(i.rect, g(e.row, e.col)), i.only.add(a(e.row, e.col))) : t.set(r, {
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: g(e.row, e.col),
180
- only: /* @__PURE__ */ new Set([a(e.row, e.col)])
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 P = () => new DOMException("The request was aborted", "AbortError");
188
- function F(e) {
189
- if (e?.aborted) throw P();
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 ce = (e) => JSON.stringify([
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 I(e, t) {
201
- let n = d(e, t);
200
+ function P(e, t) {
201
+ let n = p(e, t);
202
202
  if (n) return n;
203
- let r = f(e.includes(":") ? e : `${e}:${e}`);
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 L = (e) => e.op === "showLevel" ? e.axis : "rows" in e ? "rows" : "columns";
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 R(e, t) {
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 z(e, t) {
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 = L(e), r = "rows" in e ? e.rows : e.columns, i = I(r, 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 = s(i.first, i.last, n);
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 c = e.op === "collapse" ? "hideDetail" : "showDetail";
253
+ let o = e.op === "collapse" ? "hideDetail" : "showDetail";
254
254
  return n === "rows" ? {
255
- op: c,
255
+ op: o,
256
256
  row: a.summary
257
257
  } : {
258
- op: c,
259
- column: o(a.summary)
258
+ op: o,
259
+ column: c(a.summary)
260
260
  };
261
261
  }
262
- var le = (e, t, n) => Math.max(0, Math.min(t, Math.floor(e / Math.max(1, n)))), B = 1e3;
263
- function V(e) {
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 ue(e) {
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 H = (e, t) => Math.min(Math.max(0, Math.trunc(e.head)), t);
271
- function U(e, t, n) {
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 W = (e) => e === void 0 || e === "" ? null : e, G = (e, t = !1) => h({
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 de(e, t, n) {
287
- let r = H(t, e.maxRow), i = U(e, t), a = [];
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 = G(n, o.dir === "desc"), r = a.map((t) => W(e.valueAt(t, o.col))), i = a.map((e, t) => 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 fe(e, t, n, r) {
299
- let i = U(e, n, t), a = /* @__PURE__ */ new Map();
300
- for (let r = H(n, e.maxRow) + 1; r <= e.maxRow; 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: W(e.valueAt(r, t))
305
+ value: H(e.valueAt(r, t))
306
306
  });
307
307
  }
308
- let o = G(r), s = [...a.entries()].sort(([e, t], [n, r]) => o(t.value, r.value) || o(e, n));
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, B).map(([e, { count: t }]) => ({
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 - B)
314
+ more: Math.max(0, s.length - R)
315
315
  };
316
316
  }
317
317
  //#endregion
318
318
  //#region src/local/query.ts
319
- var K = 0, q = 1, J = 2, Y = 3, X = 4, Z = (e) => e == null || e === "", pe = class {
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), Z(n) ? this.kinds[e] = K : typeof n == "number" ? (this.kinds[e] = q, this.nums[e] = n) : typeof n == "boolean" ? (this.kinds[e] = Y, this.nums[e] = +!!n) : typeof n == "string" ? (this.kinds[e] = J, n !== t && this.other.set(e, n)) : (this.kinds[e] = X, this.other.set(e, n.error));
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 q: return this.nums[e];
333
- case Y: return this.nums[e] === 1;
334
- case J: return this.other.get(e) ?? this.texts[e];
335
- case X: return { error: this.other.get(e) };
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
- }, me = class {
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 (F(t), !r.some((e) => e.signal?.aborted)) throw e;
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) => `${o(e)}1:${o(e)}${n}`), t) : Promise.resolve({})).then((t) => {
370
- let r = new Map(e.map((e) => [e, new pe(n + 1)]));
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 = u(e);
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 !== "" || !Z(r)) && (this.maxRow = e);
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 he(e, t) {
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 ? f(e.range)?.top ?? 0 : 0
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 !== m) && (r.rowHeights[t.row] = t.hidden ? 0 : 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 o = [], s = [];
437
+ let a = [], o = [];
438
438
  for (let c = t.col; c <= i; c++) {
439
- let t = a(n, c), i = e.cells[t];
440
- if (o.push(i?.text ?? ""), s.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)) {
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(o), r.values.push(s);
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 = f(e);
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 ge(e) {
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
- function _e(e, t) {
471
- let n = e.frozen, r = R(l(e), e.outline);
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
- ...n ? { freeze: {
477
- rows: n.rows ?? 0,
478
- cols: n.columns ?? 0
705
+ ...r ? { freeze: {
706
+ rows: r.rows ?? 0,
707
+ cols: r.columns ?? 0
479
708
  } } : {},
480
709
  ...e.hidden ? { hidden: e.hidden } : {},
481
- ...r ? { outline: r } : {}
710
+ ...i ? { outline: i } : {},
711
+ ...e.view?.zoom ? { zoom: e.view.zoom } : {},
712
+ font: n
482
713
  };
483
714
  }
484
- function Q(e, t) {
485
- let n = I(e, t);
486
- return n && s(n.first, n.last, t);
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 ve(e, t) {
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) => ee(e.name, t.sheet)), !n)) return O(`No sheet ${t.sheet}`);
491
- let r = z(t, (e) => n ? l(n)[e] : []);
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 ye(n, i = {}) {
502
- let o = n.locale ?? "en-US", s, l = i.maxCells ?? 2e4, d = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map(), g = null, _ = null, v = Promise.resolve();
503
- function y(e) {
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 = v.then(() => e(...t));
506
- return v = n.catch(() => {}), n;
736
+ let n = y.then(() => e(...t));
737
+ return y = n.catch(() => {}), n;
507
738
  };
508
739
  }
509
- let b = (async () => {
510
- await w(o), g = typeof i.calc == "object" ? i.calc : await ge(i), _ = await g.createSession(n, i.session);
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
- b.catch(() => {});
513
- let x = async () => (await b, _);
514
- function S(e) {
515
- for (let t of d) t(e);
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 C() {
518
- m.clear(), h.clear(), S({ kind: "reload" });
748
+ function w() {
749
+ d.clear(), p.clear(), C({ kind: "reload" });
519
750
  }
520
- let T = n.sheets.some((e) => e.conditionalFormats?.some((e) => "style" in e && e.style?.numberFormat !== void 0));
521
- function E(e) {
522
- T && m.clear(), S({
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 D(e, t = /* @__PURE__ */ new Map()) {
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 = M(t.sheet, t.cell);
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 = m.get(c(e.sheet));
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 = u(n.cell);
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 A(e, t) {
558
- let n = c(t), r = m.get(n);
559
- return r || (r = e.getUsedRange(t).then((n) => new me(n.rows, (n, r) => e.getCells(t, n, r ? { signal: r } : {}))), m.set(n, r), r.catch(() => m.delete(n))), r;
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 P(e, t, n, r) {
562
- let i = await A(e, t);
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 I(e, t, n, r, i) {
566
- let a = ce(n), s = h.get(c(t));
567
- if (!r && s?.key === a) return s;
568
- let l = await P(e, t, ue(n), i), u = {
569
- key: a,
570
- rows: de(l, n, o),
571
- max: l.maxRow
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 h.set(c(t), u), u;
804
+ return p.set(u(t), l), l;
574
805
  }
575
- async function L(e, t, n, r) {
576
- if (!V(n)) return null;
577
- let i = await I(e, t, n, !1, r);
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 R(e, t) {
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, p(t.rect), {
814
+ let i = await e.getViewport(t.sheet, h(t.rect), {
584
815
  formulaLocal: !0,
585
816
  editText: !0,
586
- maxCells: l
817
+ maxCells: c
587
818
  });
588
819
  r ||= i.truncated;
589
- let o = f(i.range);
590
- for (let e = o.top; e <= o.bottom; e++) for (let r = o.left; r <= o.right; r++) {
591
- let o = a(e, r);
592
- (!t.only || t.only.has(o)) && n.set(M(t.sheet, o), oe(t.sheet, o, i.cells[o]));
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 z(e, t, n) {
600
- let { updates: r, truncated: i } = await R(e, n), a = D(t.changes, r);
601
- return i || se(t) ? C() : (a.length && S({
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 && E(t.repaint)), {
835
+ }), t.repaint?.length && ie(t.repaint)), {
605
836
  ok: !0,
606
837
  changes: a
607
838
  };
608
839
  }
609
- function B(e, t) {
610
- return y(async (...n) => {
611
- let r = await x();
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 H = (e) => k(e, "refused"), U = (e) => k(e, "failed");
620
- function W(e) {
621
- let t = D(e);
622
- return C(), {
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 G(e, t, n) {
858
+ async function V(e, t, n) {
628
859
  let r = [];
629
860
  for (let e of t) {
630
- let t = u(e.cell);
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: a(t.row, t.col),
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 = N(r);
643
- if (r.every((e) => e.text === null)) return z(e, await e.clearCells(r.map((e) => ({
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 o = r.map((e) => ({
878
+ let a = r.map((e) => ({
648
879
  sheet: e.sheet,
649
880
  cell: e.cell,
650
881
  text: e.text ?? ""
651
- })), s = await e.setCellTexts(o, {
882
+ })), o = await e.setCellTexts(a, {
652
883
  refuseInvalid: !n?.accept,
653
884
  ...n?.inPlace ? { inPlace: !0 } : {}
654
885
  });
655
- return s.ok ? z(e, s, i) : j(s);
886
+ return o.ok ? F(e, o, i) : A(o);
656
887
  }
657
- async function K(e, t, n, r) {
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 z(e, i, [{
891
+ ...await F(e, i, [{
661
892
  sheet: t,
662
- rect: f(i.range)
893
+ rect: m(i.range)
663
894
  }]),
664
895
  select: {
665
896
  sheet: t,
666
897
  range: i.range
667
898
  }
668
- } : j(i);
899
+ } : A(i);
669
900
  }
670
- async function q(e, t, n, r, i) {
671
- let o = u(n);
672
- if (!o) return O(`No cell ${t}!${n}`);
673
- let s = (await e.getValidation(t, n))?.list, c = Array.isArray(s) ? s[r] : void 0;
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(o.row, o.col);
680
- return z(e, await e.setCells([{
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
- }]), N([{
915
+ }]), j([{
685
916
  sheet: t,
686
917
  cell: l
687
918
  }]));
688
919
  }
689
- async function J(e, t, n, r, i, a) {
690
- let o = f(n);
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 z(e, s, [{
929
+ ...await F(e, s, [{
699
930
  sheet: t,
700
931
  rect: o
701
932
  }]),
702
933
  select: {
703
934
  sheet: t,
704
- range: p(o)
935
+ range: h(o)
705
936
  }
706
- } : j(s);
937
+ } : A(s);
707
938
  }
708
- async function Y(e, t) {
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 W(n.changes);
715
- let r = N(n.cells ?? []), i = await z(e, n, r), a = r[0];
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: p(a.rect)
951
+ range: h(a.rect)
721
952
  }
722
953
  } : i;
723
954
  }
724
- async function X(e, t) {
955
+ async function G(e, t) {
725
956
  let n = await e.editStructure(t);
726
- return n.ok ? W(n.changes) : {
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 Z(e, t) {
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 = Q(t.columns, "columns");
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 = Q(t.rows, "rows");
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 W(i.changes);
774
- let a = D(i.changes);
775
- return a.length && S({
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 pe(e, t, n) {
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
- if (r.some((e) => e.set.numberFormat !== void 0)) return W(i.changes);
799
- let a = D(i.changes);
800
- return S({
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 ye(e, t, n) {
815
- let r = await ne(e, t, n, await L(e, t.sheet, t.filter)), i = r.refused?.length ? { refused: r.refused.map((e) => ({
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) => ee(e.sheet, t.sheet)).map((e) => u(e.cell));
1061
+ let a = r.changes.filter((e) => g(e.sheet, t.sheet)).map((e) => f(e.cell));
827
1062
  return {
828
- ...await z(e, r, re(t.sheet, a, l)),
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 $(e, t) {
834
- let n = await ve(e, t);
835
- return "ok" in n ? n : X(e, 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 be(e, t, n) {
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 = D((await e.setLayout([{
1076
+ } : null, i = T((await e.setLayout([{
842
1077
  sheet: t,
843
1078
  frozen: r
844
1079
  }])).changes);
845
- return S({ kind: "reload" }), {
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: l,
852
- locale: o,
853
- ready: b,
1106
+ maxCells: c,
1107
+ locale: a,
1108
+ ready: x,
854
1109
  async sheets(e) {
855
- let t = await x(), { sheets: n } = await t.getLayout(), r = await Promise.all(n.map((e) => t.getUsedRange(e.name)));
856
- return F(e), n.map((e, t) => _e(e, r[t]));
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 x();
860
- F(t);
861
- let r = Math.max(0, e.cols), o = le(l, e.rows, r), s = V(e.filter), c;
862
- c = s ? (await I(n, e.sheet, e.filter, !1, t)).rows.slice(e.row - 1, e.row - 1 + o) : Array.from({ length: o }, (t, n) => e.row + n);
863
- let u = [...c].sort((e, t) => e - t), d = u[0] ?? 1, f = `${a(d, e.col)}:${a(u[u.length - 1] ?? d, e.col + Math.max(1, r) - 1)}`, p = await n.getViewport(e.sheet, f, {
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: l,
867
- ...s || !c.length ? { rows: u } : {}
1123
+ maxCells: c,
1124
+ ...o || !l.length ? { rows: u } : {}
868
1125
  });
869
- return F(t), he(p, {
1126
+ return N(t), be(p, {
870
1127
  row: e.row,
871
- rows: c,
1128
+ rows: l,
872
1129
  col: e.col,
873
1130
  cols: r,
874
- filtered: s,
1131
+ filtered: o,
875
1132
  notice: i.notice
876
1133
  });
877
1134
  },
878
- edit: B(G, H),
879
- paste: B(K, H),
880
- fill: B(J, H),
881
- pick: B(q, H),
882
- undo: B((e) => Y(e, "undo"), U),
883
- redo: B((e) => Y(e, "redo"), U),
884
- structure: B(X, U),
885
- layout: B(Z, U),
886
- format: B(pe, H),
887
- replace: B(ye, (e) => ({
888
- ...H(e),
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: B($, U),
892
- freeze: B(be, U),
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 _?.history ?? {
1173
+ return v?.history ?? {
895
1174
  undo: 0,
896
1175
  redo: 0
897
1176
  };
898
1177
  },
899
1178
  subscribe(e) {
900
- return d.add(e), () => d.delete(e);
1179
+ return l.add(e), () => l.delete(e);
901
1180
  },
902
1181
  async copyText(e, t, n) {
903
- let r = await x();
904
- return F(n?.signal), r.copyText(e, t, {
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 x();
911
- F(n);
912
- let i = ae(await r.getValidation(e, t));
913
- return F(n), i;
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 b, F(n);
917
- let r = t.get(o)?.functions ?? {};
918
- return e.map((e) => r[e] ?? e).sort(new Intl.Collator(o).compare);
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 b, F(t);
922
- let n = await ie(o);
923
- F(t);
1200
+ await x, N(t);
1201
+ let n = await oe(a);
1202
+ N(t);
924
1203
  let i = r(e, n);
925
- s ??= import("xlcalc/function-text").then((e) => e.functionDescription, () => null);
926
- let a = i && (await s)?.(i.fn, n);
927
- return i && a ? {
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: a
1208
+ description: s
930
1209
  } : i;
931
1210
  },
932
1211
  async explain(e, t) {
933
- return (await (await x()).explain(e, t)).text;
1212
+ return (await (await S()).explain(e, t)).text;
934
1213
  },
935
1214
  async end(e, t, n, r) {
936
- let i = await x();
937
- return F(r), i.getEnd(e, t, n);
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 x();
941
- F(r);
942
- let a = await L(i, e, n, r);
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 F(r), e;
1238
+ throw N(r), e;
960
1239
  }
961
1240
  },
962
1241
  async find(e, t) {
963
- let n = await x();
964
- F(t);
965
- let r = await L(n, e.sheet, e.filter, t);
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 F(t), e;
1248
+ throw N(t), e;
970
1249
  }
971
1250
  },
972
1251
  async visibleRows(e, t, n) {
973
- let r = await x();
974
- return V(t) ? (F(n), { rows: (await I(r, e, t, !0, n)).rows }) : (h.delete(c(e)), { rows: null });
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 x();
978
- return F(r), fe(await P(i, e, [t, ...Object.keys(n.cols ?? {}).map(Number)], r), t, n, o);
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 x()).getBook();
1260
+ return (await S()).getBook();
982
1261
  },
983
1262
  async snapshot() {
984
- return (await x()).getSnapshot();
1263
+ return (await S()).getSnapshot();
985
1264
  },
986
1265
  async close() {
987
- await b.catch(() => {}), await _?.close(), g && typeof i.calc != "object" && await g.close();
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 w(e.locale), { locale: e.locale });
1273
+ return e.locale === void 0 ? {} : (typeof e.locale == "string" && await ae(e.locale), { locale: e.locale });
995
1274
  }
996
- async function be(e, t = {}) {
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 xe(e, t = {}) {
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 Se(e) {
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 { Se as groupIssues, ye as localSource, be as openXlsx, xe as saveXlsx };
1304
+ export { Ne as groupIssues, Ae as localSource, je as openXlsx, Me as saveXlsx };