@gui-chat-plugin/spreadsheet 3.0.0 → 4.0.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/dist/vue.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./samples-Cylf7cMw.js";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./samples-CaAbe1tF.js";
2
2
  import { createSerialLock as p } from "gui-chat-protocol";
3
3
  import { Fragment as m, computed as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createTextVNode as y, defineComponent as b, inject as x, normalizeClass as S, onMounted as C, onUnmounted as w, openBlock as T, ref as E, renderList as D, toDisplayString as O, unref as k, vModelRadio as A, vModelText as ee, watch as te, withDirectives as ne, withKeys as re } from "vue";
4
4
  import { PLUGIN_RUNTIME_KEY as ie, createUseT as ae } from "gui-chat-protocol/vue";
@@ -1162,15 +1162,10 @@ function Nt(e, t, n) {
1162
1162
  function Pt(e, t) {
1163
1163
  if (typeof t != "number") {
1164
1164
  t = +t || -1;
1165
- for (var n = 0; n < 392; ++n) {
1166
- if (P[n] == null) {
1167
- t < 0 && (t = n);
1168
- continue;
1169
- }
1170
- if (P[n] == e) {
1171
- t = n;
1172
- break;
1173
- }
1165
+ for (var n = 0; n < 392; ++n) if (P[n] == null) t < 0 && (t = n);
1166
+ else if (P[n] == e) {
1167
+ t = n;
1168
+ break;
1174
1169
  }
1175
1170
  t < 0 && (t = 391);
1176
1171
  }
@@ -1581,13 +1576,13 @@ var Ht = /*#__PURE__*/ (function() {
1581
1576
  for (c = 0; c < 17; ++c) i.write_shift(4, 0);
1582
1577
  for (c = 0; c < 3; ++c) i.write_shift(4, -1);
1583
1578
  for (c = 0; c < 12; ++c) i.write_shift(4, 0);
1584
- continue;
1579
+ } else {
1580
+ u = e.FileIndex[a], a === 0 && (u.start = u.size ? u.start - 1 : O);
1581
+ var f = a === 0 && n.root || u.name;
1582
+ if (f.length > 31 && (console.error("Name " + f + " will be truncated to " + f.slice(0, 31)), f = f.slice(0, 31)), l = 2 * (f.length + 1), i.write_shift(64, f, "utf16le"), i.write_shift(2, l), i.write_shift(1, u.type), i.write_shift(1, u.color), i.write_shift(-4, u.L), i.write_shift(-4, u.R), i.write_shift(-4, u.C), u.clsid) i.write_shift(16, u.clsid, "hex");
1583
+ else for (c = 0; c < 4; ++c) i.write_shift(4, 0);
1584
+ i.write_shift(4, u.state || 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, u.start), i.write_shift(4, u.size), i.write_shift(4, 0);
1585
1585
  }
1586
- u = e.FileIndex[a], a === 0 && (u.start = u.size ? u.start - 1 : O);
1587
- var f = a === 0 && n.root || u.name;
1588
- if (f.length > 31 && (console.error("Name " + f + " will be truncated to " + f.slice(0, 31)), f = f.slice(0, 31)), l = 2 * (f.length + 1), i.write_shift(64, f, "utf16le"), i.write_shift(2, l), i.write_shift(1, u.type), i.write_shift(1, u.color), i.write_shift(-4, u.L), i.write_shift(-4, u.R), i.write_shift(-4, u.C), u.clsid) i.write_shift(16, u.clsid, "hex");
1589
- else for (c = 0; c < 4; ++c) i.write_shift(4, 0);
1590
- i.write_shift(4, u.state || 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, 0), i.write_shift(4, u.start), i.write_shift(4, u.size), i.write_shift(4, 0);
1591
1586
  }
1592
1587
  for (a = 1; a < e.FileIndex.length; ++a) if (u = e.FileIndex[a], u.size >= 4096) {
1593
1588
  if (i.l = u.start + 1 << 9, N && Buffer.isBuffer(u.content)) u.content.copy(i, i.l, 0, u.size), i.l += u.size + 511 & -512;
@@ -1886,25 +1881,25 @@ var Ht = /*#__PURE__*/ (function() {
1886
1881
  if (s < 10) {
1887
1882
  for (i = De(n, i, +(a + s == t.length)), i & 7 && (i += 8 - (i & 7)), n.l = i / 8 | 0, n.write_shift(2, s), n.write_shift(2, ~s & 65535); s-- > 0;) n[n.l++] = t[a++];
1888
1883
  i = n.l * 8;
1889
- continue;
1890
- }
1891
- i = De(n, i, +(a + s == t.length) + 2);
1892
- for (var c = 0; s-- > 0;) {
1893
- var l = t[a];
1894
- c = (c << 5 ^ l) & 32767;
1895
- var u = -1, d = 0;
1896
- if ((u = o[c]) && (u |= a & -32768, u > a && (u -= 32768), u < a)) for (; t[u + d] == t[a + d] && d < 250;) ++d;
1897
- if (d > 2) {
1898
- l = r[d], l <= 22 ? i = Ae(n, i, pe[l + 1] >> 1) - 1 : (Ae(n, i, 3), i += 5, Ae(n, i, pe[l - 23] >> 5), i += 3);
1899
- var f = l < 8 ? 0 : l - 4 >> 2;
1900
- f > 0 && (Ne(n, i, d - ue[l]), i += f), l = e[a - u], i = Ae(n, i, pe[l] >> 3), i -= 3;
1901
- var p = l < 4 ? 0 : l - 2 >> 1;
1902
- p > 0 && (Ne(n, i, a - u - de[l]), i += p);
1903
- for (var m = 0; m < d; ++m) o[c] = a & 32767, c = (c << 5 ^ t[a]) & 32767, ++a;
1904
- s -= d - 1;
1905
- } else l <= 143 ? l += 48 : i = Oe(n, i, 1), i = Ae(n, i, pe[l]), o[c] = a & 32767, ++a;
1884
+ } else {
1885
+ i = De(n, i, +(a + s == t.length) + 2);
1886
+ for (var c = 0; s-- > 0;) {
1887
+ var l = t[a];
1888
+ c = (c << 5 ^ l) & 32767;
1889
+ var u = -1, d = 0;
1890
+ if ((u = o[c]) && (u |= a & -32768, u > a && (u -= 32768), u < a)) for (; t[u + d] == t[a + d] && d < 250;) ++d;
1891
+ if (d > 2) {
1892
+ l = r[d], l <= 22 ? i = Ae(n, i, pe[l + 1] >> 1) - 1 : (Ae(n, i, 3), i += 5, Ae(n, i, pe[l - 23] >> 5), i += 3);
1893
+ var f = l < 8 ? 0 : l - 4 >> 2;
1894
+ f > 0 && (Ne(n, i, d - ue[l]), i += f), l = e[a - u], i = Ae(n, i, pe[l] >> 3), i -= 3;
1895
+ var p = l < 4 ? 0 : l - 2 >> 1;
1896
+ p > 0 && (Ne(n, i, a - u - de[l]), i += p);
1897
+ for (var m = 0; m < d; ++m) o[c] = a & 32767, c = (c << 5 ^ t[a]) & 32767, ++a;
1898
+ s -= d - 1;
1899
+ } else l <= 143 ? l += 48 : i = Oe(n, i, 1), i = Ae(n, i, pe[l]), o[c] = a & 32767, ++a;
1900
+ }
1901
+ i = Ae(n, i, 0) - 1;
1906
1902
  }
1907
- i = Ae(n, i, 0) - 1;
1908
1903
  }
1909
1904
  return n.l = (i + 7) / 8 | 0, n.l;
1910
1905
  }
@@ -2097,11 +2092,8 @@ var Ht = /*#__PURE__*/ (function() {
2097
2092
  t = t.replace(/ $/gm, "=20").replace(/\t$/gm, "=09"), t.charAt(0) == "\n" && (t = "=0D" + t.slice(1)), t = t.replace(/\r(?!\n)/gm, "=0D").replace(/\n\n/gm, "\n=0A").replace(/([^\r\n])\n/gm, "$1=0A");
2098
2093
  for (var n = [], r = t.split("\r\n"), i = 0; i < r.length; ++i) {
2099
2094
  var a = r[i];
2100
- if (a.length == 0) {
2101
- n.push("");
2102
- continue;
2103
- }
2104
- for (var o = 0; o < a.length;) {
2095
+ if (a.length == 0) n.push("");
2096
+ else for (var o = 0; o < a.length;) {
2105
2097
  var s = 76, c = a.slice(o, o + s);
2106
2098
  c.charAt(s - 1) == "=" ? s-- : c.charAt(s - 2) == "=" ? s -= 2 : c.charAt(s - 3) == "=" && (s -= 3), c = a.slice(o, o + s), o += s, o < a.length && (c += "="), n.push(c);
2107
2099
  }
@@ -2510,21 +2502,7 @@ function jn(e) {
2510
2502
  return !1;
2511
2503
  }
2512
2504
  function Mn(e) {
2513
- for (var t = "", n = 0, r = 0, i = 0, a = 0, o = 0, s = 0; n < e.length;) {
2514
- if (r = e.charCodeAt(n++), r < 128) {
2515
- t += String.fromCharCode(r);
2516
- continue;
2517
- }
2518
- if (i = e.charCodeAt(n++), r > 191 && r < 224) {
2519
- o = (r & 31) << 6, o |= i & 63, t += String.fromCharCode(o);
2520
- continue;
2521
- }
2522
- if (a = e.charCodeAt(n++), r < 240) {
2523
- t += String.fromCharCode((r & 15) << 12 | (i & 63) << 6 | a & 63);
2524
- continue;
2525
- }
2526
- o = e.charCodeAt(n++), s = ((r & 7) << 18 | (i & 63) << 12 | (a & 63) << 6 | o & 63) - 65536, t += String.fromCharCode(55296 + (s >>> 10 & 1023)), t += String.fromCharCode(56320 + (s & 1023));
2527
- }
2505
+ for (var t = "", n = 0, r = 0, i = 0, a = 0, o = 0, s = 0; n < e.length;) r = e.charCodeAt(n++), r < 128 ? t += String.fromCharCode(r) : (i = e.charCodeAt(n++), r > 191 && r < 224 ? (o = (r & 31) << 6, o |= i & 63, t += String.fromCharCode(o)) : (a = e.charCodeAt(n++), r < 240 ? t += String.fromCharCode((r & 15) << 12 | (i & 63) << 6 | a & 63) : (o = e.charCodeAt(n++), s = ((r & 7) << 18 | (i & 63) << 12 | (a & 63) << 6 | o & 63) - 65536, t += String.fromCharCode(55296 + (s >>> 10 & 1023)), t += String.fromCharCode(56320 + (s & 1023)))));
2528
2506
  return t;
2529
2507
  }
2530
2508
  function Nn(e) {
@@ -4616,77 +4594,72 @@ var So = /*#__PURE__*/ (function() {
4616
4594
  i.l = u;
4617
4595
  var g = 0, _ = 0;
4618
4596
  for (r[0] = [], _ = 0; _ != f.length; ++_) r[0][_] = f[_].name;
4619
- for (; l-- > 0;) {
4620
- if (i[i.l] === 42) {
4621
- i.l += d;
4622
- continue;
4623
- }
4624
- for (++i.l, r[++g] = [], _ = 0, _ = 0; _ != f.length; ++_) {
4625
- var v = i.slice(i.l, i.l + f[_].len);
4626
- i.l += f[_].len, Or(v, 0);
4627
- var y = De(v);
4628
- switch (f[_].type) {
4629
- case "C":
4630
- y.trim().length && (r[g][_] = y.replace(/([^\s])\s+$/, "$1"));
4631
- break;
4632
- case "D":
4633
- y.length === 8 ? (r[g][_] = new Date(Date.UTC(+y.slice(0, 4), y.slice(4, 6) - 1, +y.slice(6, 8), 0, 0, 0, 0)), n && n.UTC || (r[g][_] = yn(r[g][_]))) : r[g][_] = y;
4634
- break;
4635
- case "F":
4636
- r[g][_] = parseFloat(y.trim());
4637
- break;
4638
- case "+":
4639
- case "I":
4640
- r[g][_] = c ? v.read_shift(-4, "i") ^ 2147483648 : v.read_shift(4, "i");
4641
- break;
4642
- case "L":
4643
- switch (y.trim().toUpperCase()) {
4644
- case "Y":
4645
- case "T":
4646
- r[g][_] = !0;
4647
- break;
4648
- case "N":
4649
- case "F":
4650
- r[g][_] = !1;
4651
- break;
4652
- case "":
4653
- case "\0":
4654
- case "?": break;
4655
- default: throw Error("DBF Unrecognized L:|" + y + "|");
4656
- }
4657
- break;
4658
- case "M":
4659
- if (!o) throw Error("DBF Unexpected MEMO for type " + a.toString(16));
4660
- r[g][_] = "##MEMO##" + (c ? parseInt(y.trim(), 10) : v.read_shift(4));
4661
- break;
4662
- case "N":
4663
- y = y.replace(/\u0000/g, "").trim(), y && y != "." && (r[g][_] = +y || 0);
4664
- break;
4665
- case "@":
4666
- r[g][_] = /* @__PURE__ */ new Date(v.read_shift(-8, "f") - 621356832e5);
4667
- break;
4668
- case "T":
4669
- var b = v.read_shift(4), x = v.read_shift(4);
4670
- if (b == 0 && x == 0) break;
4671
- r[g][_] = new Date((b - 2440588) * 864e5 + x), n && n.UTC || (r[g][_] = yn(r[g][_]));
4672
- break;
4673
- case "Y":
4674
- r[g][_] = v.read_shift(4, "i") / 1e4 + v.read_shift(4, "i") / 1e4 * 2 ** 32;
4675
- break;
4676
- case "O":
4677
- r[g][_] = -v.read_shift(-8, "f");
4678
- break;
4679
- case "B": if (s && f[_].len == 8) {
4680
- r[g][_] = v.read_shift(8, "f");
4681
- break;
4597
+ for (; l-- > 0;) if (i[i.l] === 42) i.l += d;
4598
+ else for (++i.l, r[++g] = [], _ = 0, _ = 0; _ != f.length; ++_) {
4599
+ var v = i.slice(i.l, i.l + f[_].len);
4600
+ i.l += f[_].len, Or(v, 0);
4601
+ var y = De(v);
4602
+ switch (f[_].type) {
4603
+ case "C":
4604
+ y.trim().length && (r[g][_] = y.replace(/([^\s])\s+$/, "$1"));
4605
+ break;
4606
+ case "D":
4607
+ y.length === 8 ? (r[g][_] = new Date(Date.UTC(+y.slice(0, 4), y.slice(4, 6) - 1, +y.slice(6, 8), 0, 0, 0, 0)), n && n.UTC || (r[g][_] = yn(r[g][_]))) : r[g][_] = y;
4608
+ break;
4609
+ case "F":
4610
+ r[g][_] = parseFloat(y.trim());
4611
+ break;
4612
+ case "+":
4613
+ case "I":
4614
+ r[g][_] = c ? v.read_shift(-4, "i") ^ 2147483648 : v.read_shift(4, "i");
4615
+ break;
4616
+ case "L":
4617
+ switch (y.trim().toUpperCase()) {
4618
+ case "Y":
4619
+ case "T":
4620
+ r[g][_] = !0;
4621
+ break;
4622
+ case "N":
4623
+ case "F":
4624
+ r[g][_] = !1;
4625
+ break;
4626
+ case "":
4627
+ case "\0":
4628
+ case "?": break;
4629
+ default: throw Error("DBF Unrecognized L:|" + y + "|");
4682
4630
  }
4683
- case "G":
4684
- case "P":
4685
- v.l += f[_].len;
4686
- break;
4687
- case "0": if (f[_].name === "_NullFlags") break;
4688
- default: throw Error("DBF Unsupported data type " + f[_].type);
4631
+ break;
4632
+ case "M":
4633
+ if (!o) throw Error("DBF Unexpected MEMO for type " + a.toString(16));
4634
+ r[g][_] = "##MEMO##" + (c ? parseInt(y.trim(), 10) : v.read_shift(4));
4635
+ break;
4636
+ case "N":
4637
+ y = y.replace(/\u0000/g, "").trim(), y && y != "." && (r[g][_] = +y || 0);
4638
+ break;
4639
+ case "@":
4640
+ r[g][_] = /* @__PURE__ */ new Date(v.read_shift(-8, "f") - 621356832e5);
4641
+ break;
4642
+ case "T":
4643
+ var b = v.read_shift(4), x = v.read_shift(4);
4644
+ if (b == 0 && x == 0) break;
4645
+ r[g][_] = new Date((b - 2440588) * 864e5 + x), n && n.UTC || (r[g][_] = yn(r[g][_]));
4646
+ break;
4647
+ case "Y":
4648
+ r[g][_] = v.read_shift(4, "i") / 1e4 + v.read_shift(4, "i") / 1e4 * 2 ** 32;
4649
+ break;
4650
+ case "O":
4651
+ r[g][_] = -v.read_shift(-8, "f");
4652
+ break;
4653
+ case "B": if (s && f[_].len == 8) {
4654
+ r[g][_] = v.read_shift(8, "f");
4655
+ break;
4689
4656
  }
4657
+ case "G":
4658
+ case "P":
4659
+ v.l += f[_].len;
4660
+ break;
4661
+ case "0": if (f[_].name === "_NullFlags") break;
4662
+ default: throw Error("DBF Unsupported data type " + f[_].type);
4690
4663
  }
4691
4664
  }
4692
4665
  if (a != 2 && i.l < i.length && i[i.l++] != 26) throw Error("DBF EOF Marker missing " + (i.l - 1) + " of " + i.length + " " + i[i.l - 1].toString(16));
@@ -4732,18 +4705,13 @@ var So = /*#__PURE__*/ (function() {
4732
4705
  raw: !0,
4733
4706
  cellDates: !0
4734
4707
  }), l = c[0], u = c.slice(1), d = n["!cols"] || [], f = 0, p = 0, m = 0, h = 1;
4735
- for (f = 0; f < l.length; ++f) {
4736
- if (((d[f] || {}).DBF || {}).name) {
4737
- l[f] = d[f].DBF.name, ++m;
4738
- continue;
4739
- }
4740
- if (l[f] != null) {
4741
- if (++m, typeof l[f] == "number" && (l[f] = l[f].toString(10)), typeof l[f] != "string") throw Error("DBF Invalid column name " + l[f] + " |" + typeof l[f] + "|");
4742
- if (l.indexOf(l[f]) !== f) {
4743
- for (p = 0; p < 1024; ++p) if (l.indexOf(l[f] + "_" + p) == -1) {
4744
- l[f] += "_" + p;
4745
- break;
4746
- }
4708
+ for (f = 0; f < l.length; ++f) if (((d[f] || {}).DBF || {}).name) l[f] = d[f].DBF.name, ++m;
4709
+ else if (l[f] != null) {
4710
+ if (++m, typeof l[f] == "number" && (l[f] = l[f].toString(10)), typeof l[f] != "string") throw Error("DBF Invalid column name " + l[f] + " |" + typeof l[f] + "|");
4711
+ if (l.indexOf(l[f]) !== f) {
4712
+ for (p = 0; p < 1024; ++p) if (l.indexOf(l[f] + "_" + p) == -1) {
4713
+ l[f] += "_" + p;
4714
+ break;
4747
4715
  }
4748
4716
  }
4749
4717
  }
@@ -4751,34 +4719,33 @@ var So = /*#__PURE__*/ (function() {
4751
4719
  for (f = 0; f <= g.e.c - g.s.c; ++f) {
4752
4720
  var b = "", x = "", S = 0, C = [];
4753
4721
  for (p = 0; p < u.length; ++p) u[p][f] != null && C.push(u[p][f]);
4754
- if (C.length == 0 || l[f] == null) {
4755
- _[f] = "?";
4756
- continue;
4757
- }
4758
- for (p = 0; p < C.length; ++p) {
4759
- switch (typeof C[p]) {
4760
- case "number":
4761
- x = "B";
4762
- break;
4763
- case "string":
4764
- x = "C";
4765
- break;
4766
- case "boolean":
4767
- x = "L";
4768
- break;
4769
- case "object":
4770
- x = C[p] instanceof Date ? "D" : "C";
4771
- break;
4772
- default: x = "C";
4722
+ if (C.length == 0 || l[f] == null) _[f] = "?";
4723
+ else {
4724
+ for (p = 0; p < C.length; ++p) {
4725
+ switch (typeof C[p]) {
4726
+ case "number":
4727
+ x = "B";
4728
+ break;
4729
+ case "string":
4730
+ x = "C";
4731
+ break;
4732
+ case "boolean":
4733
+ x = "L";
4734
+ break;
4735
+ case "object":
4736
+ x = C[p] instanceof Date ? "D" : "C";
4737
+ break;
4738
+ default: x = "C";
4739
+ }
4740
+ S = Math.max(S, String(C[p]).length), b = b && b != x ? "C" : x;
4773
4741
  }
4774
- S = Math.max(S, String(C[p]).length), b = b && b != x ? "C" : x;
4742
+ S > 250 && (S = 250), x = ((d[f] || {}).DBF || {}).type, x == "C" && d[f].DBF.len > S && (S = d[f].DBF.len), b == "B" && x == "N" && (b = "N", y[f] = d[f].DBF.dec, S = d[f].DBF.len), v[f] = b == "C" || x == "N" ? S : a[b] || 0, h += v[f], _[f] = b;
4775
4743
  }
4776
- S > 250 && (S = 250), x = ((d[f] || {}).DBF || {}).type, x == "C" && d[f].DBF.len > S && (S = d[f].DBF.len), b == "B" && x == "N" && (b = "N", y[f] = d[f].DBF.dec, S = d[f].DBF.len), v[f] = b == "C" || x == "N" ? S : a[b] || 0, h += v[f], _[f] = b;
4777
4744
  }
4778
4745
  var w = s.next(32);
4779
4746
  for (w.write_shift(4, 318902576), w.write_shift(4, u.length), w.write_shift(2, 296 + 32 * m), w.write_shift(2, h), f = 0; f < 4; ++f) w.write_shift(4, 0);
4780
4747
  var T = +t[se] || 3;
4781
- for (w.write_shift(4, 0 | T << 8), e[T] != +i.codepage && (i.codepage && console.error("DBF Unsupported codepage " + se + ", using 1252"), se = 1252), f = 0, p = 0; f < l.length; ++f) if (l[f] != null) {
4748
+ for (w.write_shift(4, T << 8), e[T] != +i.codepage && (i.codepage && console.error("DBF Unsupported codepage " + se + ", using 1252"), se = 1252), f = 0, p = 0; f < l.length; ++f) if (l[f] != null) {
4782
4749
  var E = s.next(32), D = (l[f].slice(-10) + "\0\0\0\0\0\0\0\0\0\0\0").slice(0, 11);
4783
4750
  E.write_shift(1, D, "sbcs"), E.write_shift(1, _[f] == "?" ? "C" : _[f], "sbcs"), E.write_shift(4, p), E.write_shift(1, v[f] || a[_[f]] || 0), E.write_shift(1, y[f] || 0), E.write_shift(1, 2), E.write_shift(4, 0), E.write_shift(1, 0), E.write_shift(4, 0), E.write_shift(4, 0), p += v[f] || a[_[f]] || 0;
4784
4751
  }
@@ -5155,30 +5122,25 @@ var So = /*#__PURE__*/ (function() {
5155
5122
  throw Error("Unrecognized type " + n.type);
5156
5123
  }
5157
5124
  function t(e, t) {
5158
- for (var n = e.split("\n"), r = -1, i = -1, a = 0, o = []; a !== n.length; ++a) {
5159
- if (n[a].trim() === "BOT") {
5160
- o[++r] = [], i = 0;
5161
- continue;
5162
- }
5163
- if (!(r < 0)) {
5164
- var s = n[a].trim().split(","), c = s[0], l = s[1];
5165
- ++a;
5166
- for (var u = n[a] || ""; (u.match(/["]/g) || []).length & 1 && a < n.length - 1;) u += "\n" + n[++a];
5167
- switch (u = u.trim(), +c) {
5168
- case -1:
5169
- if (u === "BOT") {
5170
- o[++r] = [], i = 0;
5171
- continue;
5172
- }
5173
- if (u !== "EOD") throw Error("Unrecognized DIF special command " + u);
5174
- break;
5175
- case 0:
5176
- u === "TRUE" ? o[r][i] = !0 : u === "FALSE" ? o[r][i] = !1 : isNaN(un(l)) ? isNaN(vn(l).getDate()) ? o[r][i] = l : (o[r][i] = on(l), t && t.UTC || (o[r][i] = yn(o[r][i]))) : o[r][i] = un(l), ++i;
5177
- break;
5178
- case 1: u = u.slice(1, u.length - 1), u = u.replace(/""/g, "\""), ge && u && u.match(/^=".*"$/) && (u = u.slice(2, -1)), o[r][i++] = u === "" ? null : u;
5179
- }
5180
- if (u === "EOD") break;
5125
+ for (var n = e.split("\n"), r = -1, i = -1, a = 0, o = []; a !== n.length; ++a) if (n[a].trim() === "BOT") o[++r] = [], i = 0;
5126
+ else if (!(r < 0)) {
5127
+ var s = n[a].trim().split(","), c = s[0], l = s[1];
5128
+ ++a;
5129
+ for (var u = n[a] || ""; (u.match(/["]/g) || []).length & 1 && a < n.length - 1;) u += "\n" + n[++a];
5130
+ switch (u = u.trim(), +c) {
5131
+ case -1:
5132
+ if (u === "BOT") {
5133
+ o[++r] = [], i = 0;
5134
+ continue;
5135
+ }
5136
+ if (u !== "EOD") throw Error("Unrecognized DIF special command " + u);
5137
+ break;
5138
+ case 0:
5139
+ u === "TRUE" ? o[r][i] = !0 : u === "FALSE" ? o[r][i] = !1 : isNaN(un(l)) ? isNaN(vn(l).getDate()) ? o[r][i] = l : (o[r][i] = on(l), t && t.UTC || (o[r][i] = yn(o[r][i]))) : o[r][i] = un(l), ++i;
5140
+ break;
5141
+ case 1: u = u.slice(1, u.length - 1), u = u.replace(/""/g, "\""), ge && u && u.match(/^=".*"$/) && (u = u.slice(2, -1)), o[r][i++] = u === "" ? null : u;
5181
5142
  }
5143
+ if (u === "EOD") break;
5182
5144
  }
5183
5145
  return t && t.sheetRows && (o = o.slice(0, t.sheetRows)), o;
5184
5146
  }
@@ -5209,26 +5171,25 @@ var So = /*#__PURE__*/ (function() {
5209
5171
  r: s,
5210
5172
  c: u
5211
5173
  })];
5212
- if (d == null) {
5213
- l += "1,0\r\n\"\"\r\n";
5214
- continue;
5215
- }
5216
- switch (d.t) {
5217
- case "n":
5218
- t ? d.w == null ? d.v == null ? d.f != null && !d.F ? l += a("=" + d.f) : l += "1,0\r\n\"\"" : l += i(d.v, "V") : l += "0," + d.w + "\r\nV" : d.v == null ? l += "1,0\r\n\"\"" : l += i(d.v, "V");
5219
- break;
5220
- case "b":
5221
- l += d.v ? i(1, "TRUE") : i(0, "FALSE");
5222
- break;
5223
- case "s":
5224
- l += a(!t || isNaN(+d.v) ? d.v : "=\"" + d.v + "\"");
5225
- break;
5226
- case "d":
5227
- d.w ||= Nt(d.z || P[14], en(on(d.v))), l += t ? i(d.w, "V") : a(d.w);
5228
- break;
5229
- default: l += "1,0\r\n\"\"";
5174
+ if (d == null) l += "1,0\r\n\"\"\r\n";
5175
+ else {
5176
+ switch (d.t) {
5177
+ case "n":
5178
+ t ? d.w == null ? d.v == null ? d.f != null && !d.F ? l += a("=" + d.f) : l += "1,0\r\n\"\"" : l += i(d.v, "V") : l += "0," + d.w + "\r\nV" : d.v == null ? l += "1,0\r\n\"\"" : l += i(d.v, "V");
5179
+ break;
5180
+ case "b":
5181
+ l += d.v ? i(1, "TRUE") : i(0, "FALSE");
5182
+ break;
5183
+ case "s":
5184
+ l += a(!t || isNaN(+d.v) ? d.v : "=\"" + d.v + "\"");
5185
+ break;
5186
+ case "d":
5187
+ d.w ||= Nt(d.z || P[14], en(on(d.v))), l += t ? i(d.w, "V") : a(d.w);
5188
+ break;
5189
+ default: l += "1,0\r\n\"\"";
5190
+ }
5191
+ l += "\r\n";
5230
5192
  }
5231
- l += "\r\n";
5232
5193
  }
5233
5194
  o.push(l);
5234
5195
  }
@@ -5452,12 +5413,11 @@ var So = /*#__PURE__*/ (function() {
5452
5413
  r: a,
5453
5414
  c: s
5454
5415
  });
5455
- if (r = i ? (e["!data"][a] || [])[s] : e[c], !r || r.v == null) {
5456
- o.push(" ");
5457
- continue;
5416
+ if (r = i ? (e["!data"][a] || [])[s] : e[c], !r || r.v == null) o.push(" ");
5417
+ else {
5418
+ for (var l = (r.w || (Xr(r), r.w) || "").slice(0, 10); l.length < 10;) l += " ";
5419
+ o.push(l + (s === 0 ? " " : ""));
5458
5420
  }
5459
- for (var l = (r.w || (Xr(r), r.w) || "").slice(0, 10); l.length < 10;) l += " ";
5460
- o.push(l + (s === 0 ? " " : ""));
5461
5421
  }
5462
5422
  t.push(o.join(""));
5463
5423
  }
@@ -6506,11 +6466,7 @@ function Io(e, t) {
6506
6466
  r: s,
6507
6467
  c
6508
6468
  });
6509
- if (i = a ? o[c] : e[l], !i || i.v == null && (!i.f || i.F)) {
6510
- n.push(" \\cell");
6511
- continue;
6512
- }
6513
- n.push(" " + (i.w || (Xr(i), i.w) || "").replace(/[\r\n]/g, "\\par ")), n.push("\\cell");
6469
+ i = a ? o[c] : e[l], !i || i.v == null && (!i.f || i.F) ? n.push(" \\cell") : (n.push(" " + (i.w || (Xr(i), i.w) || "").replace(/[\r\n]/g, "\\par ")), n.push("\\cell"));
6514
6470
  }
6515
6471
  n.push("\\pard\\intbl\\row");
6516
6472
  }
@@ -6889,16 +6845,15 @@ function Ps(e, t, n) {
6889
6845
  return e.forEach(function(e) {
6890
6846
  var i = "";
6891
6847
  (e[1] || []).forEach(function(a, o) {
6892
- if (!a.T) {
6893
- delete a.ID;
6894
- return;
6848
+ if (!a.T) delete a.ID;
6849
+ else {
6850
+ a.a && t.indexOf(a.a) == -1 && t.push(a.a);
6851
+ var s = {
6852
+ ref: e[0],
6853
+ id: "{54EE7951-7262-4200-6969-" + ("000000000000" + n.tcid++).slice(-12) + "}"
6854
+ };
6855
+ o == 0 ? i = s.id : s.parentId = i, a.ID = s.id, a.a && (s.personId = "{54EE7950-7262-4200-6969-" + ("000000000000" + t.indexOf(a.a)).slice(-12) + "}"), r.push(R("threadedComment", Bn("text", a.t || ""), s));
6895
6856
  }
6896
- a.a && t.indexOf(a.a) == -1 && t.push(a.a);
6897
- var s = {
6898
- ref: e[0],
6899
- id: "{54EE7951-7262-4200-6969-" + ("000000000000" + n.tcid++).slice(-12) + "}"
6900
- };
6901
- o == 0 ? i = s.id : s.parentId = i, a.ID = s.id, a.a && (s.personId = "{54EE7950-7262-4200-6969-" + ("000000000000" + t.indexOf(a.a)).slice(-12) + "}"), r.push(R("threadedComment", Bn("text", a.t || ""), s));
6902
6857
  });
6903
6858
  }), r.push("</ThreadedComments>"), r.join("");
6904
6859
  }
@@ -9931,11 +9886,7 @@ function _d(e, t, n, r, i) {
9931
9886
  if (f <= a.e.r) for (var m = a.s.c; m <= a.e.c; ++m) {
9932
9887
  f === a.s.r && (s[m] = H(m));
9933
9888
  var h = l ? u[m] : t[s[m] + o];
9934
- if (!h) {
9935
- p = !1;
9936
- continue;
9937
- }
9938
- p = gd(e, h, f, m, r, t, p, c);
9889
+ p = h ? gd(e, h, f, m, r, t, p, c) : !1;
9939
9890
  }
9940
9891
  }
9941
9892
  B(e, 146);
@@ -11535,11 +11486,8 @@ function kf(e, t) {
11535
11486
  }
11536
11487
  function Af(e, t, n, r, i, a) {
11537
11488
  var o = 16 + Zl(i.cellXfs, t, i);
11538
- if (t.v == null && !t.bf) {
11539
- G(e, 513, Ra(n, r, o));
11540
- return;
11541
- }
11542
- if (t.bf) G(e, 6, wl(t, n, r, i, o));
11489
+ if (t.v == null && !t.bf) G(e, 513, Ra(n, r, o));
11490
+ else if (t.bf) G(e, 6, wl(t, n, r, i, o));
11543
11491
  else switch (t.t) {
11544
11492
  case "d":
11545
11493
  case "n":
@@ -11988,52 +11936,50 @@ var Jf = /* @__PURE__ */ (function() {
11988
11936
  (f[p].s.c != u || f[p].s.r != l) && (_ = !0), v["table:number-columns-spanned"] = f[p].e.c - f[p].s.c + 1, v["table:number-rows-spanned"] = f[p].e.r - f[p].s.r + 1;
11989
11937
  break;
11990
11938
  }
11991
- if (_) {
11992
- c.push(" <table:covered-table-cell/>\n");
11993
- continue;
11994
- }
11995
- var b = Ur({
11996
- r: l,
11997
- c: u
11998
- }), x = m ? (n["!data"][l] || [])[u] : n[b];
11999
- if (x && x.f && (v["table:formula"] = L(Gl(x.f)), x.F && x.F.slice(0, b.length) == b)) {
12000
- var S = Wr(x.F);
12001
- v["table:number-matrix-columns-spanned"] = S.e.c - S.s.c + 1, v["table:number-matrix-rows-spanned"] = S.e.r - S.s.r + 1;
12002
- }
12003
- if (!x) {
12004
- c.push(t);
12005
- continue;
12006
- }
12007
- switch (x.t) {
12008
- case "b":
12009
- y = x.v ? "TRUE" : "FALSE", v["office:value-type"] = "boolean", v["office:boolean-value"] = x.v ? "true" : "false";
12010
- break;
12011
- case "n":
12012
- isFinite(x.v) ? (y = x.w || String(x.v || 0), v["office:value-type"] = "float", v["office:value"] = x.v || 0) : (isNaN(x.v) ? (y = "#NUM!", v["table:formula"] = "of:=#NUM!") : (y = "#DIV/0!", v["table:formula"] = "of:=" + (x.v < 0 ? "-" : "") + "1/0"), v["office:string-value"] = "", v["office:value-type"] = "string", v["calcext:value-type"] = "error");
12013
- break;
12014
- case "s":
12015
- case "str":
12016
- y = x.v == null ? "" : x.v, v["office:value-type"] = "string";
12017
- break;
12018
- case "d":
12019
- y = x.w || on(x.v, s).toISOString(), v["office:value-type"] = "date", v["office:date-value"] = on(x.v, s).toISOString(), v["table:style-name"] = "ce1";
12020
- break;
12021
- default:
12022
- c.push(t);
12023
- continue;
12024
- }
12025
- var C = e(y);
12026
- if (x.l && x.l.Target) {
12027
- var w = x.l.Target;
12028
- w = w.charAt(0) == "#" ? "#" + Kl(w.slice(1)) : w, w.charAt(0) != "#" && !w.match(/^\w+:/) && (w = "../" + w), C = R("text:a", C, { "xlink:href": w.replace(/&/g, "&amp;") });
12029
- }
12030
- o[x.z] && (v["table:style-name"] = "ce" + o[x.z].slice(1));
12031
- var T = R("text:p", C, {});
12032
- if (x.c) {
12033
- for (var E = "", D = "", O = {}, k = 0; k < x.c.length; ++k) !E && x.c[k].a && (E = x.c[k].a), D += "<text:p>" + e(x.c[k].t) + "</text:p>";
12034
- x.c.hidden || (O["office:display"] = !0), T = R("office:annotation", D, O) + T;
11939
+ if (_) c.push(" <table:covered-table-cell/>\n");
11940
+ else {
11941
+ var b = Ur({
11942
+ r: l,
11943
+ c: u
11944
+ }), x = m ? (n["!data"][l] || [])[u] : n[b];
11945
+ if (x && x.f && (v["table:formula"] = L(Gl(x.f)), x.F && x.F.slice(0, b.length) == b)) {
11946
+ var S = Wr(x.F);
11947
+ v["table:number-matrix-columns-spanned"] = S.e.c - S.s.c + 1, v["table:number-matrix-rows-spanned"] = S.e.r - S.s.r + 1;
11948
+ }
11949
+ if (!x) c.push(t);
11950
+ else {
11951
+ switch (x.t) {
11952
+ case "b":
11953
+ y = x.v ? "TRUE" : "FALSE", v["office:value-type"] = "boolean", v["office:boolean-value"] = x.v ? "true" : "false";
11954
+ break;
11955
+ case "n":
11956
+ isFinite(x.v) ? (y = x.w || String(x.v || 0), v["office:value-type"] = "float", v["office:value"] = x.v || 0) : (isNaN(x.v) ? (y = "#NUM!", v["table:formula"] = "of:=#NUM!") : (y = "#DIV/0!", v["table:formula"] = "of:=" + (x.v < 0 ? "-" : "") + "1/0"), v["office:string-value"] = "", v["office:value-type"] = "string", v["calcext:value-type"] = "error");
11957
+ break;
11958
+ case "s":
11959
+ case "str":
11960
+ y = x.v == null ? "" : x.v, v["office:value-type"] = "string";
11961
+ break;
11962
+ case "d":
11963
+ y = x.w || on(x.v, s).toISOString(), v["office:value-type"] = "date", v["office:date-value"] = on(x.v, s).toISOString(), v["table:style-name"] = "ce1";
11964
+ break;
11965
+ default:
11966
+ c.push(t);
11967
+ continue;
11968
+ }
11969
+ var C = e(y);
11970
+ if (x.l && x.l.Target) {
11971
+ var w = x.l.Target;
11972
+ w = w.charAt(0) == "#" ? "#" + Kl(w.slice(1)) : w, w.charAt(0) != "#" && !w.match(/^\w+:/) && (w = "../" + w), C = R("text:a", C, { "xlink:href": w.replace(/&/g, "&amp;") });
11973
+ }
11974
+ o[x.z] && (v["table:style-name"] = "ce" + o[x.z].slice(1));
11975
+ var T = R("text:p", C, {});
11976
+ if (x.c) {
11977
+ for (var E = "", D = "", O = {}, k = 0; k < x.c.length; ++k) !E && x.c[k].a && (E = x.c[k].a), D += "<text:p>" + e(x.c[k].t) + "</text:p>";
11978
+ x.c.hidden || (O["office:display"] = !0), T = R("office:annotation", D, O) + T;
11979
+ }
11980
+ c.push(" " + R("table:table-cell", T, v) + "\n");
11981
+ }
12035
11982
  }
12036
- c.push(" " + R("table:table-cell", T, v) + "\n");
12037
11983
  }
12038
11984
  c.push(" </table:table-row>\n");
12039
11985
  }
@@ -12306,21 +12252,21 @@ function lp(e, t) {
12306
12252
  s = t[a], c > 1 && (s |= t[a + 1] << 8), c > 2 && (s |= t[a + 2] << 16), c > 3 && (s |= t[a + 3] << 24), s >>>= 0, s++, a += c;
12307
12253
  }
12308
12254
  i.push(t[Xf](a, a + s)), a += s;
12309
- continue;
12310
- }
12311
- var l = 0, u = 0;
12312
- if (o == 1 ? (u = (t[a] >> 2 & 7) + 4, l = (t[a++] & 224) << 3, l |= t[a++]) : (u = (t[a++] >> 2) + 1, o == 2 ? (l = t[a] | t[a + 1] << 8, a += 2) : (l = (t[a] | t[a + 1] << 8 | t[a + 2] << 16 | t[a + 3] << 24) >>> 0, a += 4)), l == 0) throw Error("Invalid offset 0");
12313
- for (var d = i.length - 1, f = l; d >= 0 && f >= i[d].length;) f -= i[d].length, --d;
12314
- if (d < 0) {
12315
- if (f == 0) f = i[d = 0].length;
12316
- else throw Error("Invalid offset beyond length");
12317
- }
12318
- if (u < f) i.push(i[d][Xf](i[d].length - f, i[d].length - f + u));
12319
- else {
12320
- for (f > 0 && (i.push(i[d][Xf](i[d].length - f)), u -= f), ++d; u >= i[d].length;) i.push(i[d]), u -= i[d].length, ++d;
12321
- u && i.push(i[d][Xf](0, u));
12255
+ } else {
12256
+ var l = 0, u = 0;
12257
+ if (o == 1 ? (u = (t[a] >> 2 & 7) + 4, l = (t[a++] & 224) << 3, l |= t[a++]) : (u = (t[a++] >> 2) + 1, o == 2 ? (l = t[a] | t[a + 1] << 8, a += 2) : (l = (t[a] | t[a + 1] << 8 | t[a + 2] << 16 | t[a + 3] << 24) >>> 0, a += 4)), l == 0) throw Error("Invalid offset 0");
12258
+ for (var d = i.length - 1, f = l; d >= 0 && f >= i[d].length;) f -= i[d].length, --d;
12259
+ if (d < 0) {
12260
+ if (f == 0) f = i[d = 0].length;
12261
+ else throw Error("Invalid offset beyond length");
12262
+ }
12263
+ if (u < f) i.push(i[d][Xf](i[d].length - f, i[d].length - f + u));
12264
+ else {
12265
+ for (f > 0 && (i.push(i[d][Xf](i[d].length - f)), u -= f), ++d; u >= i[d].length;) i.push(i[d]), u -= i[d].length, ++d;
12266
+ u && i.push(i[d][Xf](0, u));
12267
+ }
12268
+ i.length > 25 && (i = [ep(i)]);
12322
12269
  }
12323
- i.length > 25 && (i = [ep(i)]);
12324
12270
  }
12325
12271
  for (var p = 0, m = 0; m < i.length; ++m) p += i[m].length;
12326
12272
  if (p != r) throw Error(`Unexpected length: ${p} != ${r}`);
@@ -12527,11 +12473,8 @@ function yp(e, t, n) {
12527
12473
  var o = new Uint8Array(2 * e.length);
12528
12474
  o.set(r[4][0].data), r[4][0].data = o;
12529
12475
  }
12530
- for (var s = Zf(r[7][0].data), c = 0, l = [], u = Zf(r[4][0].data), d = 0, f = [], p = n ? 4 : 1, m = 0; m < e.length; ++m) {
12531
- if (e[m] == null || e[m].t == "z" && !e[m].c?.length || e[m].t == "e") {
12532
- s.setUint16(m * 2, 65535, !0), u.setUint16(m * 2, 65535);
12533
- continue;
12534
- }
12476
+ for (var s = Zf(r[7][0].data), c = 0, l = [], u = Zf(r[4][0].data), d = 0, f = [], p = n ? 4 : 1, m = 0; m < e.length; ++m) if (e[m] == null || e[m].t == "z" && !e[m].c?.length || e[m].t == "e") s.setUint16(m * 2, 65535, !0), u.setUint16(m * 2, 65535);
12477
+ else {
12535
12478
  s.setUint16(m * 2, c / p, !0), u.setUint16(m * 2, d / p, !0);
12536
12479
  var h, g;
12537
12480
  switch (e[m].t) {
@@ -13964,32 +13907,32 @@ function Zp(e, t, n, r, i, a, o) {
13964
13907
  if (m == null || m.t === void 0) {
13965
13908
  if (c === void 0) continue;
13966
13909
  a[p] != null && (f[a[p]] = c);
13967
- continue;
13968
- }
13969
- var h = m.v;
13970
- switch (m.t) {
13971
- case "z":
13972
- if (h == null) break;
13973
- continue;
13974
- case "e":
13975
- h = h == 0 ? null : void 0;
13976
- break;
13977
- case "s":
13978
- case "b":
13979
- case "n": if (!m.z || !Ot(m.z) || (h = tn(h), typeof h == "number")) break;
13980
- case "d":
13981
- (!o || !o.UTC && o.raw !== !1) && (h = yn(new Date(h)));
13982
- break;
13983
- default: throw Error("unrecognized type " + m.t);
13984
- }
13985
- if (a[p] != null) {
13986
- if (h == null) {
13987
- if (m.t == "e" && h === null) f[a[p]] = null;
13988
- else if (c !== void 0) f[a[p]] = c;
13989
- else if (l && h === null) f[a[p]] = null;
13990
- else continue;
13991
- } else f[a[p]] = (m.t === "n" && typeof o.rawNumbers == "boolean" ? o.rawNumbers : l) ? h : Xr(m, h, o);
13992
- h != null && (u = !1);
13910
+ } else {
13911
+ var h = m.v;
13912
+ switch (m.t) {
13913
+ case "z":
13914
+ if (h == null) break;
13915
+ continue;
13916
+ case "e":
13917
+ h = h == 0 ? null : void 0;
13918
+ break;
13919
+ case "s":
13920
+ case "b":
13921
+ case "n": if (!m.z || !Ot(m.z) || (h = tn(h), typeof h == "number")) break;
13922
+ case "d":
13923
+ (!o || !o.UTC && o.raw !== !1) && (h = yn(new Date(h)));
13924
+ break;
13925
+ default: throw Error("unrecognized type " + m.t);
13926
+ }
13927
+ if (a[p] != null) {
13928
+ if (h == null) {
13929
+ if (m.t == "e" && h === null) f[a[p]] = null;
13930
+ else if (c !== void 0) f[a[p]] = c;
13931
+ else if (l && h === null) f[a[p]] = null;
13932
+ else continue;
13933
+ } else f[a[p]] = (m.t === "n" && typeof o.rawNumbers == "boolean" ? o.rawNumbers : l) ? h : Xr(m, h, o);
13934
+ h != null && (u = !1);
13935
+ }
13993
13936
  }
13994
13937
  }
13995
13938
  return {
@@ -14346,55 +14289,43 @@ var Fm = [
14346
14289
  ">",
14347
14290
  "<"
14348
14291
  ];
14349
- function Im(e) {
14292
+ function* Im(e) {
14293
+ let t = null;
14294
+ for (let n = 0; n < e.length; n++) {
14295
+ let r = e[n];
14296
+ t === null ? r === "\"" || r === "'" ? t = r : yield n : r === "\\" ? n++ : r === t && (t = null);
14297
+ }
14298
+ }
14299
+ function Lm(e) {
14350
14300
  let t = e.trim();
14351
14301
  for (; t.startsWith("(") && t.endsWith(")");) {
14352
- let e = 0, n = null, r = !0;
14353
- for (let i = 0; i < t.length; i++) {
14354
- let a = t[i];
14355
- if (n !== null) {
14356
- a === "\\" ? i++ : a === n && (n = null);
14357
- continue;
14358
- }
14359
- if (a === "\"" || a === "'") {
14360
- n = a;
14361
- continue;
14362
- }
14363
- if (a === "(") e++;
14364
- else if (a === ")") {
14365
- if (e--, e === 0 && i < t.length - 1) {
14366
- r = !1;
14302
+ let e = 0, n = !0;
14303
+ for (let r of Im(t)) {
14304
+ let i = t[r];
14305
+ if (i === "(") e++;
14306
+ else if (i === ")") {
14307
+ if (e--, e === 0 && r < t.length - 1) {
14308
+ n = !1;
14367
14309
  break;
14368
14310
  }
14369
14311
  if (e < 0) return t;
14370
14312
  }
14371
14313
  }
14372
- if (!r || e !== 0) return t;
14314
+ if (!n || e !== 0) return t;
14373
14315
  t = t.slice(1, -1).trim();
14374
14316
  }
14375
14317
  return t;
14376
14318
  }
14377
- function Lm(e) {
14378
- let t = Im(e), n = null;
14379
- for (let e = 0; e < t.length; e++) {
14380
- let r = t[e];
14381
- if (n !== null) {
14382
- r === "\\" ? e++ : r === n && (n = null);
14383
- continue;
14384
- }
14385
- if (r === "\"" || r === "'") {
14386
- n = r;
14387
- continue;
14388
- }
14389
- for (let n of Fm) if (t.startsWith(n, e)) return {
14390
- left: t.slice(0, e).trim(),
14391
- operator: n,
14392
- right: t.slice(e + n.length).trim()
14393
- };
14394
- }
14319
+ function Rm(e) {
14320
+ let t = Lm(e);
14321
+ for (let e of Im(t)) for (let n of Fm) if (t.startsWith(n, e)) return {
14322
+ left: t.slice(0, e).trim(),
14323
+ operator: n,
14324
+ right: t.slice(e + n.length).trim()
14325
+ };
14395
14326
  return null;
14396
14327
  }
14397
- function Rm(e) {
14328
+ function zm(e) {
14398
14329
  return e.length >= 2 && (e.startsWith("\"") && e.endsWith("\"") || e.startsWith("'") && e.endsWith("'")) ? {
14399
14330
  value: e.slice(1, -1).replace(/\\(["'\\])/g, "$1"),
14400
14331
  quoted: !0
@@ -14403,8 +14334,8 @@ function Rm(e) {
14403
14334
  quoted: !1
14404
14335
  };
14405
14336
  }
14406
- function zm(e) {
14407
- let { value: t, quoted: n } = Rm(e.trim());
14337
+ function Bm(e) {
14338
+ let { value: t, quoted: n } = zm(e.trim());
14408
14339
  if (n) return t;
14409
14340
  if (t === "") return "";
14410
14341
  let r = t.toUpperCase();
@@ -14413,30 +14344,30 @@ function zm(e) {
14413
14344
  let i = Number(t);
14414
14345
  return Number.isNaN(i) ? t : i;
14415
14346
  }
14416
- function Bm(e, t) {
14347
+ function Vm(e, t) {
14417
14348
  return typeof e == "number" && typeof t == "number" ? e - t : typeof e == "boolean" || typeof t == "boolean" ? null : String(e).localeCompare(String(t));
14418
14349
  }
14419
- function Vm(e, t, n) {
14350
+ function Hm(e, t, n) {
14420
14351
  if (e === "=" || e === "==") return t === n;
14421
14352
  if (e === "<>" || e === "!=") return t !== n;
14422
- let r = Bm(t, n);
14353
+ let r = Vm(t, n);
14423
14354
  return r === null ? !1 : e === ">" ? r > 0 : e === ">=" ? r >= 0 : e === "<" ? r < 0 : r <= 0;
14424
14355
  }
14425
- function Hm(e) {
14356
+ function Um(e) {
14426
14357
  return typeof e == "boolean" ? e : typeof e == "number" ? e !== 0 : e !== "";
14427
14358
  }
14428
- function Um(e, t) {
14429
- let n = Lm(e);
14430
- return n ? Vm(n.operator, t(n.left), t(n.right)) : Hm(t(Im(e)));
14359
+ function Wm(e, t) {
14360
+ let n = Rm(e);
14361
+ return n ? Hm(n.operator, t(n.left), t(n.right)) : Um(t(Lm(e)));
14431
14362
  }
14432
- function Wm(e) {
14363
+ function Gm(e) {
14433
14364
  if (e == null) return "\"\"";
14434
14365
  let t = Mm(e) ? e.code : e;
14435
14366
  return typeof t == "string" ? `"${t.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : t.toString();
14436
14367
  }
14437
14368
  //#endregion
14438
14369
  //#region src/engine/date-locale.ts
14439
- var Gm = /* @__PURE__ */ new Set([
14370
+ var Km = /* @__PURE__ */ new Set([
14440
14371
  "es",
14441
14372
  "pt",
14442
14373
  "fr",
@@ -14449,30 +14380,30 @@ var Gm = /* @__PURE__ */ new Set([
14449
14380
  "id",
14450
14381
  "vi",
14451
14382
  "th"
14452
- ]), Km = /* @__PURE__ */ new Set([
14383
+ ]), qm = /* @__PURE__ */ new Set([
14453
14384
  "us",
14454
14385
  "ca",
14455
14386
  "ph"
14456
14387
  ]);
14457
- function qm(e) {
14388
+ function Jm(e) {
14458
14389
  for (let t of e) {
14459
14390
  if (t.length === 1) break;
14460
14391
  if (/^[a-z]{2}$/.test(t) || /^[0-9]{3}$/.test(t)) return t;
14461
14392
  }
14462
14393
  return "";
14463
14394
  }
14464
- function Jm(e) {
14395
+ function Ym(e) {
14465
14396
  if (!e) return !1;
14466
14397
  let [t = "", ...n] = e.toLowerCase().split(/[-_]/);
14467
14398
  if (t === "en") {
14468
- let e = qm(n);
14469
- return e !== "" && !Km.has(e);
14399
+ let e = Jm(n);
14400
+ return e !== "" && !qm.has(e);
14470
14401
  }
14471
- return Gm.has(t);
14402
+ return Km.has(t);
14472
14403
  }
14473
14404
  //#endregion
14474
14405
  //#region src/engine/cellEmpty.ts
14475
- function Ym(e) {
14406
+ function Xm(e) {
14476
14407
  if (e == null) return !0;
14477
14408
  if (typeof e == "string") return e.trim() === "";
14478
14409
  if (a(e)) {
@@ -14484,10 +14415,10 @@ function Ym(e) {
14484
14415
  }
14485
14416
  //#endregion
14486
14417
  //#region src/engine/date-utils.ts
14487
- var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime() - Zm.getTime()) / Xm, $m = (e) => {
14488
- let t = Math.floor(e), n = e - t, r = new Date(Zm.getTime() + t * Xm), i = Math.round(n * 24 * 60 * 60);
14418
+ var Zm = 864e5, Qm = new Date(Date.UTC(1899, 11, 30)), $m = (e) => (e.getTime() - Qm.getTime()) / Zm, eh = (e) => {
14419
+ let t = Math.floor(e), n = e - t, r = new Date(Qm.getTime() + t * Zm), i = Math.round(n * 24 * 60 * 60);
14489
14420
  return r.setSeconds(r.getSeconds() + i), r;
14490
- }, eh = [
14421
+ }, th = [
14491
14422
  "Jan",
14492
14423
  "Feb",
14493
14424
  "Mar",
@@ -14500,7 +14431,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14500
14431
  "Oct",
14501
14432
  "Nov",
14502
14433
  "Dec"
14503
- ], th = [
14434
+ ], nh = [
14504
14435
  "January",
14505
14436
  "February",
14506
14437
  "March",
@@ -14513,7 +14444,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14513
14444
  "October",
14514
14445
  "November",
14515
14446
  "December"
14516
- ], nh = [
14447
+ ], rh = [
14517
14448
  "Sun",
14518
14449
  "Mon",
14519
14450
  "Tue",
@@ -14521,7 +14452,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14521
14452
  "Thu",
14522
14453
  "Fri",
14523
14454
  "Sat"
14524
- ], rh = [
14455
+ ], ih = [
14525
14456
  "Sunday",
14526
14457
  "Monday",
14527
14458
  "Tuesday",
@@ -14529,55 +14460,55 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14529
14460
  "Thursday",
14530
14461
  "Friday",
14531
14462
  "Saturday"
14532
- ], ih = 864e5, ah = 12;
14533
- function oh(e, t) {
14534
- let n = e.getUTCMonth() + t, r = e.getUTCFullYear() + Math.floor(n / ah), i = (n % ah + ah) % ah, a = new Date(Date.UTC(r, i + 1, 0)).getUTCDate(), o = Math.min(e.getUTCDate(), a);
14463
+ ], ah = 864e5, oh = 12;
14464
+ function sh(e, t) {
14465
+ let n = e.getUTCMonth() + t, r = e.getUTCFullYear() + Math.floor(n / oh), i = (n % oh + oh) % oh, a = new Date(Date.UTC(r, i + 1, 0)).getUTCDate(), o = Math.min(e.getUTCDate(), a);
14535
14466
  return new Date(Date.UTC(r, i, o));
14536
14467
  }
14537
- function sh(e, t, n) {
14468
+ function ch(e, t, n) {
14538
14469
  if (e > t) return Em;
14539
- let r = $m(e), i = $m(t), a = i.getUTCFullYear() - r.getUTCFullYear(), o = i.getUTCMonth() - r.getUTCMonth(), s = i.getUTCDate() - r.getUTCDate();
14470
+ let r = eh(e), i = eh(t), a = i.getUTCFullYear() - r.getUTCFullYear(), o = i.getUTCMonth() - r.getUTCMonth(), s = i.getUTCDate() - r.getUTCDate();
14540
14471
  switch (n.toUpperCase()) {
14541
14472
  case "Y": {
14542
14473
  let e = a;
14543
14474
  return o < 0 || o === 0 && s < 0 ? e - 1 : e;
14544
14475
  }
14545
14476
  case "M": {
14546
- let e = a * ah + o;
14477
+ let e = a * oh + o;
14547
14478
  return s < 0 ? e - 1 : e;
14548
14479
  }
14549
14480
  case "D": return Math.floor(t - e);
14550
14481
  case "MD": {
14551
- let e = oh(r, a * ah + o - +(s < 0)), t = Date.UTC(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate());
14552
- return Math.round((t - e.getTime()) / ih);
14482
+ let e = sh(r, a * oh + o - +(s < 0)), t = Date.UTC(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate());
14483
+ return Math.round((t - e.getTime()) / ah);
14553
14484
  }
14554
14485
  case "YM": {
14555
14486
  let e = s < 0 ? o - 1 : o;
14556
- return e < 0 ? e + ah : e;
14487
+ return e < 0 ? e + oh : e;
14557
14488
  }
14558
14489
  case "YD": {
14559
14490
  let e = new Date(r);
14560
- return e.setUTCFullYear(i.getUTCFullYear()), e.getTime() - i.getTime() > 0 && e.setUTCFullYear(i.getUTCFullYear() - 1), Math.floor((i.getTime() - e.getTime()) / ih);
14491
+ return e.setUTCFullYear(i.getUTCFullYear()), e.getTime() - i.getTime() > 0 && e.setUTCFullYear(i.getUTCFullYear() - 1), Math.floor((i.getTime() - e.getTime()) / ah);
14561
14492
  }
14562
14493
  default: return Em;
14563
14494
  }
14564
14495
  }
14565
14496
  //#endregion
14566
14497
  //#region src/engine/formatter.ts
14567
- function ch(e) {
14498
+ function lh(e) {
14568
14499
  return /[YMD]|MMM|DD|YYYY|h:mm|AM\/PM/i.test(e);
14569
14500
  }
14570
- var lh = /YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|AM\/PM|am\/pm|HH|H|hh|h|mm|ss/g;
14571
- function uh(e, t) {
14572
- let n = $m(e), r = n.getUTCFullYear(), i = n.getUTCMonth(), a = n.getUTCDate(), o = n.getUTCHours(), s = n.getUTCMinutes(), c = n.getUTCSeconds(), l = n.getUTCDay(), u = /AM\/PM|am\/pm/.test(t), d = o % 12 || 12, f = o >= 12, p = {
14501
+ var uh = /YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|AM\/PM|am\/pm|HH|H|hh|h|mm|ss/g;
14502
+ function dh(e, t) {
14503
+ let n = eh(e), r = n.getUTCFullYear(), i = n.getUTCMonth(), a = n.getUTCDate(), o = n.getUTCHours(), s = n.getUTCMinutes(), c = n.getUTCSeconds(), l = n.getUTCDay(), u = /AM\/PM|am\/pm/.test(t), d = o % 12 || 12, f = o >= 12, p = {
14573
14504
  YYYY: r.toString(),
14574
14505
  YY: (r % 100).toString().padStart(2, "0"),
14575
- MMMM: th[i] ?? th[0],
14576
- MMM: eh[i] ?? eh[0],
14506
+ MMMM: nh[i] ?? nh[0],
14507
+ MMM: th[i] ?? th[0],
14577
14508
  MM: (i + 1).toString().padStart(2, "0"),
14578
14509
  M: (i + 1).toString(),
14579
- dddd: rh[l] ?? rh[0],
14580
- ddd: nh[l] ?? nh[0],
14510
+ dddd: ih[l] ?? ih[0],
14511
+ ddd: rh[l] ?? rh[0],
14581
14512
  DD: a.toString().padStart(2, "0"),
14582
14513
  D: a.toString(),
14583
14514
  "AM/PM": f ? "PM" : "AM",
@@ -14589,18 +14520,18 @@ function uh(e, t) {
14589
14520
  mm: s.toString().padStart(2, "0"),
14590
14521
  ss: c.toString().padStart(2, "0")
14591
14522
  };
14592
- return t.replace(lh, (e) => p[e] ?? e);
14523
+ return t.replace(uh, (e) => p[e] ?? e);
14593
14524
  }
14594
- var dh = 3, fh = (e) => Array.from(e).reduce((t, n, r) => r > 0 && (e.length - r) % dh === 0 ? `${t},${n}` : `${t}${n}`, ""), ph = (e) => {
14525
+ var fh = 3, ph = (e) => Array.from(e).reduce((t, n, r) => r > 0 && (e.length - r) % fh === 0 ? `${t},${n}` : `${t}${n}`, ""), mh = (e) => {
14595
14526
  let [t, ...n] = e.split(".");
14596
- return t === void 0 ? e : [fh(t), ...n].join(".");
14527
+ return t === void 0 ? e : [ph(t), ...n].join(".");
14597
14528
  };
14598
- function mh(e, t) {
14529
+ function hh(e, t) {
14599
14530
  if (!t) return e.toString();
14600
14531
  try {
14601
- if (ch(t)) return uh(e, t);
14532
+ if (lh(t)) return dh(e, t);
14602
14533
  if (t.includes("$")) {
14603
- let n = (t.match(/\.0+/) || [""])[0].length - 1, r = Math.abs(e).toFixed(n >= 0 ? n : 0), i = "$" + (t.includes(",") ? ph(r) : r);
14534
+ let n = (t.match(/\.0+/) || [""])[0].length - 1, r = Math.abs(e).toFixed(n >= 0 ? n : 0), i = "$" + (t.includes(",") ? mh(r) : r);
14604
14535
  return e < 0 ? "-" + i : i;
14605
14536
  }
14606
14537
  if (t.includes("%")) {
@@ -14608,7 +14539,7 @@ function mh(e, t) {
14608
14539
  return (e * 100).toFixed(n >= 0 ? n : 2) + "%";
14609
14540
  }
14610
14541
  if (t.includes(",")) {
14611
- let n = (t.match(/\.0+/) || [""])[0].length - 1, r = ph(Math.abs(e).toFixed(n >= 0 ? n : 0));
14542
+ let n = (t.match(/\.0+/) || [""])[0].length - 1, r = mh(Math.abs(e).toFixed(n >= 0 ? n : 0));
14612
14543
  return e < 0 ? "-" + r : r;
14613
14544
  }
14614
14545
  let n = (t.match(/\.0+/) || [""])[0].length - 1;
@@ -14619,71 +14550,71 @@ function mh(e, t) {
14619
14550
  }
14620
14551
  //#endregion
14621
14552
  //#region src/engine/translateFormula.ts
14622
- function hh(e) {
14553
+ function gh(e) {
14623
14554
  return e.replace(/\^/g, "**");
14624
14555
  }
14625
- function gh(e, t) {
14556
+ function _h(e, t) {
14626
14557
  return e === "" ? t : t === e ? "" : e;
14627
14558
  }
14628
- function _h(e) {
14559
+ function vh(e) {
14629
14560
  let t = e.split(""), n = [], r = "";
14630
14561
  return t.forEach((e, i) => {
14631
- !(i > 0 && t[i - 1] === "\\") && (e === "\"" || e === "'") && (r = gh(r, e)), n.push(e === "&" && r === "" ? "+" : e);
14562
+ !(i > 0 && t[i - 1] === "\\") && (e === "\"" || e === "'") && (r = _h(r, e)), n.push(e === "&" && r === "" ? "+" : e);
14632
14563
  }), n.join("");
14633
14564
  }
14634
- function vh(e) {
14565
+ function yh(e) {
14635
14566
  return e.replace(/([^<>!])=([^=])/g, "$1==$2");
14636
14567
  }
14637
- function yh(e) {
14568
+ function bh(e) {
14638
14569
  return /^[\d+\-*/(). ]+$/.test(e);
14639
14570
  }
14640
- function bh(e) {
14571
+ function xh(e) {
14641
14572
  return /^[\d+\-*/(). <>!=]+$/.test(e);
14642
14573
  }
14643
14574
  //#endregion
14644
14575
  //#region src/engine/formulaError.ts
14645
- var xh = {
14576
+ var Sh = {
14646
14577
  div_zero: "#DIV/0!",
14647
14578
  invalid_ref: "#REF!",
14648
14579
  syntax: "#NAME?",
14649
14580
  unknown: "#ERROR!"
14650
- }, Sh = {
14651
- [xh.div_zero]: "div_zero",
14652
- [xh.invalid_ref]: "invalid_ref",
14653
- [xh.syntax]: "syntax"
14654
- }, Ch = class extends Error {
14581
+ }, Ch = {
14582
+ [Sh.div_zero]: "div_zero",
14583
+ [Sh.invalid_ref]: "invalid_ref",
14584
+ [Sh.syntax]: "syntax"
14585
+ }, wh = class extends Error {
14655
14586
  errorType;
14656
14587
  display;
14657
14588
  constructor(e, t, n) {
14658
14589
  super(n ?? t), this.errorType = e, this.display = t, this.name = "FormulaError";
14659
14590
  }
14660
- }, wh = (e) => e instanceof Ch, Th = () => new Ch("div_zero", xh.div_zero, "Division by zero"), Eh = (e) => new Ch("invalid_ref", xh.invalid_ref, `Invalid reference: ${e}`), Dh = (e) => new Ch("syntax", xh.syntax, `Unknown function: ${e}`), Oh = (e) => new Ch("unknown", xh.unknown, e), kh = (e) => new Ch(Sh[e] ?? "unknown", e, `Propagated error: ${e}`), Ah = (e) => wh(e) ? {
14591
+ }, Th = (e) => e instanceof wh, Eh = () => new wh("div_zero", Sh.div_zero, "Division by zero"), Dh = (e) => new wh("invalid_ref", Sh.invalid_ref, `Invalid reference: ${e}`), Oh = (e) => new wh("syntax", Sh.syntax, `Unknown function: ${e}`), kh = (e) => new wh("unknown", Sh.unknown, e), Ah = (e) => new wh(Ch[e] ?? "unknown", e, `Propagated error: ${e}`), jh = (e) => Th(e) ? {
14661
14592
  type: e.errorType,
14662
14593
  display: e.display
14663
14594
  } : {
14664
14595
  type: "unknown",
14665
- display: xh.unknown
14666
- }, jh = (e) => isNaN(e) ? null : e;
14667
- function Mh(e) {
14596
+ display: Sh.unknown
14597
+ }, Mh = (e) => isNaN(e) ? null : e;
14598
+ function Nh(e) {
14668
14599
  if (e.includes("%")) {
14669
- let t = jh(parseFloat(e.replace("%", "").trim()));
14600
+ let t = Mh(parseFloat(e.replace("%", "").trim()));
14670
14601
  return t === null ? null : t / 100;
14671
14602
  }
14672
- return e.includes("$") ? jh(parseFloat(e.replace(/[$,]/g, "").trim())) : e.includes(",") ? jh(parseFloat(e.replace(/,/g, "").trim())) : jh(parseFloat(e));
14673
- }
14674
- function Nh(e) {
14675
- return typeof e == "number" ? !isNaN(e) : typeof e == "string" && Mh(e) !== null;
14603
+ return e.includes("$") ? Mh(parseFloat(e.replace(/[$,]/g, "").trim())) : e.includes(",") ? Mh(parseFloat(e.replace(/,/g, "").trim())) : Mh(parseFloat(e));
14676
14604
  }
14677
14605
  function Ph(e) {
14678
- return typeof e == "number" ? e : typeof e == "boolean" ? +!!e : typeof e == "string" ? Mh(e) ?? Cm : e;
14606
+ return typeof e == "number" ? !isNaN(e) : typeof e == "string" && Nh(e) !== null;
14607
+ }
14608
+ function Fh(e) {
14609
+ return typeof e == "number" ? e : typeof e == "boolean" ? +!!e : typeof e == "string" ? Nh(e) ?? Cm : e;
14679
14610
  }
14680
14611
  //#endregion
14681
14612
  //#region src/engine/registry.ts
14682
- var Fh = (e, t) => /* @__PURE__ */ Error(`${e} requires at least ${t} argument${t === 1 ? "" : "s"}`), X = (e, t, n) => {
14613
+ var Ih = (e, t) => /* @__PURE__ */ Error(`${e} requires at least ${t} argument${t === 1 ? "" : "s"}`), X = (e, t, n) => {
14683
14614
  let r = t[n];
14684
- if (r === void 0) throw Fh(e.functionName, n + 1);
14615
+ if (r === void 0) throw Ih(e.functionName, n + 1);
14685
14616
  return r;
14686
- }, Ih = (e) => e.getRangeValuesRaw ?? e.getRangeValues, Z = new class {
14617
+ }, Lh = (e) => e.getRangeValuesRaw ?? e.getRangeValues, Z = new class {
14687
14618
  functions = /* @__PURE__ */ new Map();
14688
14619
  register(e) {
14689
14620
  this.functions.set(e.name.toUpperCase(), e);
@@ -14705,22 +14636,22 @@ var Fh = (e, t) => /* @__PURE__ */ Error(`${e} requires at least ${t} argument${
14705
14636
  }
14706
14637
  return e;
14707
14638
  }
14708
- }();
14639
+ }(), Rh = (e) => /^[A-Z]+$/i.test(e) || Z.hasFunction(e);
14709
14640
  function Q(e) {
14710
- return typeof e == "number" ? e : Mh(String(e)) ?? 0;
14641
+ return typeof e == "number" ? e : Nh(String(e)) ?? 0;
14711
14642
  }
14712
- function Lh(e) {
14643
+ function zh(e) {
14713
14644
  return String(e);
14714
14645
  }
14715
- var Rh = /[.*+?^${}()|[\]\\]/, zh = (e) => Rh.test(e) ? `\\${e}` : e, Bh = /~([\s\S])|[\s\S]/g, Vh = (e) => e.replace(Bh, (e, t) => t === void 0 ? e === "*" ? ".*" : e === "?" ? "." : zh(e) : zh(t));
14716
- function Hh(e) {
14717
- let t = RegExp(`^${Vh(e)}$`, "iu");
14646
+ var Bh = /[.*+?^${}()|[\]\\]/, Vh = (e) => Bh.test(e) ? `\\${e}` : e, Hh = /~([\s\S])|[\s\S]/g, Uh = (e) => e.replace(Hh, (e, t) => t === void 0 ? e === "*" ? ".*" : e === "?" ? "." : Vh(e) : Vh(t));
14647
+ function Wh(e) {
14648
+ let t = RegExp(`^${Uh(e)}$`, "iu");
14718
14649
  return (e) => t.test(e);
14719
14650
  }
14720
- function Uh(e) {
14651
+ function Gh(e) {
14721
14652
  let t = e.trim().replace(/^["']|["']$/g, ""), [, n, r] = t.match(/^([><=!]+)(.+)$/) ?? [];
14722
14653
  if (n !== void 0 && r !== void 0) {
14723
- let e = parseFloat(r), t = Wh(r);
14654
+ let e = parseFloat(r), t = Kh(r);
14724
14655
  switch (n) {
14725
14656
  case ">": return (t) => Q(t) > e;
14726
14657
  case ">=": return (t) => Q(t) >= e;
@@ -14733,15 +14664,15 @@ function Uh(e) {
14733
14664
  default: return () => !1;
14734
14665
  }
14735
14666
  }
14736
- return Wh(t);
14667
+ return Kh(t);
14737
14668
  }
14738
- function Wh(e) {
14739
- let t = Hh(e), n = parseFloat(e), r = !isNaN(n);
14669
+ function Kh(e) {
14670
+ let t = Wh(e), n = parseFloat(e), r = !isNaN(n);
14740
14671
  return (e) => t(String(e)) || r && Q(e) === n;
14741
14672
  }
14742
14673
  //#endregion
14743
14674
  //#region src/engine/date-parser.ts
14744
- function Gh(e) {
14675
+ function qh(e) {
14745
14676
  if (typeof e != "string" || e.length < 6 || e.length > 30) return !1;
14746
14677
  let t = /\d/.test(e), n = /[/\-\s,]/.test(e);
14747
14678
  return !t || !n ? !1 : [
@@ -14753,10 +14684,10 @@ function Gh(e) {
14753
14684
  /^\d{1,2}\s+[A-Za-z]{3,9}\s+\d{4}$/
14754
14685
  ].some((t) => t.test(e.trim()));
14755
14686
  }
14756
- function Kh(e, t, n) {
14757
- return rg(e, t, n) ? Qm(new Date(Date.UTC(e, t - 1, n))) : null;
14687
+ function Jh(e, t, n) {
14688
+ return ag(e, t, n) ? $m(new Date(Date.UTC(e, t - 1, n))) : null;
14758
14689
  }
14759
- function qh(e, t) {
14690
+ function Yh(e, t) {
14760
14691
  let [, n, r, i] = e.match(t) ?? [];
14761
14692
  return n === void 0 || r === void 0 || i === void 0 ? null : [
14762
14693
  n,
@@ -14764,77 +14695,77 @@ function qh(e, t) {
14764
14695
  i
14765
14696
  ];
14766
14697
  }
14767
- var Jh = /^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$/, Yh = 12, Xh = (e, t, n) => e > Yh || t <= Yh && e <= Yh && n;
14768
- function Zh(e) {
14769
- let t = e.toLowerCase(), n = eh.findIndex((e) => e.toLowerCase() === t);
14698
+ var Xh = /^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$/, Zh = 12, Qh = (e, t, n) => e > Zh || t <= Zh && e <= Zh && n;
14699
+ function $h(e) {
14700
+ let t = e.toLowerCase(), n = th.findIndex((e) => e.toLowerCase() === t);
14770
14701
  if (n !== -1) return n + 1;
14771
- let r = th.findIndex((e) => e.toLowerCase() === t);
14702
+ let r = nh.findIndex((e) => e.toLowerCase() === t);
14772
14703
  return r === -1 ? null : r + 1;
14773
14704
  }
14774
- function Qh(e, t = !1) {
14775
- if (!Gh(e)) return null;
14776
- let n = e.trim(), r = qh(n, /^(\d{4})[-/](\d{1,2})[-/](\d{1,2})$/);
14705
+ function eg(e, t = !1) {
14706
+ if (!qh(e)) return null;
14707
+ let n = e.trim(), r = Yh(n, /^(\d{4})[-/](\d{1,2})[-/](\d{1,2})$/);
14777
14708
  if (r) {
14778
14709
  let [e, t, n] = r;
14779
- return Kh(parseInt(e), parseInt(t), parseInt(n));
14710
+ return Jh(parseInt(e), parseInt(t), parseInt(n));
14780
14711
  }
14781
- let i = qh(n, /^(\d{1,2})-([A-Za-z]{3})-(\d{2,4})$/);
14712
+ let i = Yh(n, /^(\d{1,2})-([A-Za-z]{3})-(\d{2,4})$/);
14782
14713
  if (i) {
14783
14714
  let [e, t, n] = i;
14784
- return ng(tg(parseInt(n)), t, parseInt(e));
14715
+ return ig(rg(parseInt(n)), t, parseInt(e));
14785
14716
  }
14786
- let a = qh(n, /^([A-Za-z]{3,9})\s+(\d{1,2}),?\s+(\d{4})$/);
14717
+ let a = Yh(n, /^([A-Za-z]{3,9})\s+(\d{1,2}),?\s+(\d{4})$/);
14787
14718
  if (a) {
14788
14719
  let [e, t, n] = a;
14789
- return ng(parseInt(n), e, parseInt(t));
14720
+ return ig(parseInt(n), e, parseInt(t));
14790
14721
  }
14791
- let o = qh(n, /^(\d{1,2})\s+([A-Za-z]{3,9})\s+(\d{4})$/);
14722
+ let o = Yh(n, /^(\d{1,2})\s+([A-Za-z]{3,9})\s+(\d{4})$/);
14792
14723
  if (o) {
14793
14724
  let [e, t, n] = o;
14794
- return ng(parseInt(n), t, parseInt(e));
14725
+ return ig(parseInt(n), t, parseInt(e));
14795
14726
  }
14796
- let s = qh(n, Jh);
14727
+ let s = Yh(n, Xh);
14797
14728
  if (s) {
14798
- let [e, n, r] = s, i = Xh(parseInt(e), parseInt(n), t), a = parseInt(i ? n : e), o = parseInt(i ? e : n);
14799
- return Kh(tg(parseInt(r)), a, o);
14729
+ let [e, n, r] = s, i = Qh(parseInt(e), parseInt(n), t), a = parseInt(i ? n : e), o = parseInt(i ? e : n);
14730
+ return Jh(rg(parseInt(r)), a, o);
14800
14731
  }
14801
14732
  return null;
14802
14733
  }
14803
- var $h = 100, eg = 30;
14804
- function tg(e) {
14805
- return e >= $h ? e : e < eg ? 2e3 + e : 1900 + e;
14734
+ var tg = 100, ng = 30;
14735
+ function rg(e) {
14736
+ return e >= tg ? e : e < ng ? 2e3 + e : 1900 + e;
14806
14737
  }
14807
- function ng(e, t, n) {
14808
- let r = Zh(t);
14809
- return r === null ? null : Kh(e, r, n);
14738
+ function ig(e, t, n) {
14739
+ let r = $h(t);
14740
+ return r === null ? null : Jh(e, r, n);
14810
14741
  }
14811
- function rg(e, t, n) {
14742
+ function ag(e, t, n) {
14812
14743
  if (e < 1900 || e > 2100 || t < 1 || t > 12 || n < 1 || n > 31) return !1;
14813
14744
  let r = new Date(Date.UTC(e, t - 1, n));
14814
14745
  return r.getUTCFullYear() === e && r.getUTCMonth() === t - 1 && r.getUTCDate() === n;
14815
14746
  }
14816
- function ig(e, t = !1) {
14747
+ function og(e, t = !1) {
14817
14748
  let n = e.trim();
14818
14749
  if (/^\d{4}-\d{1,2}-\d{1,2}$/.test(n)) return "YYYY-MM-DD";
14819
14750
  if (/^\d{4}\/\d{1,2}\/\d{1,2}$/.test(n)) return "YYYY/MM/DD";
14820
14751
  if (/^\d{1,2}-[A-Za-z]{3}-\d{2,4}$/.test(n)) return "DD-MMM-YYYY";
14821
14752
  if (/^[A-Za-z]{3}\s+\d{1,2},?\s+\d{4}$/.test(n)) return "MMM D, YYYY";
14822
14753
  if (/^[A-Za-z]{4,9}\s+\d{1,2},?\s+\d{4}$/.test(n)) return "MMMM D, YYYY";
14823
- let r = qh(n, Jh);
14754
+ let r = Yh(n, Xh);
14824
14755
  if (r) {
14825
14756
  let [e, n] = r;
14826
- return Xh(parseInt(e), parseInt(n), t) ? "DD/MM/YYYY" : "MM/DD/YYYY";
14757
+ return Qh(parseInt(e), parseInt(n), t) ? "DD/MM/YYYY" : "MM/DD/YYYY";
14827
14758
  }
14828
14759
  return t ? "DD/MM/YYYY" : "MM/DD/YYYY";
14829
14760
  }
14830
14761
  //#endregion
14831
14762
  //#region src/engine/evaluator.ts
14832
- function ag(e) {
14763
+ function sg(e) {
14833
14764
  if (e == null) return "0";
14834
14765
  let t = Mm(e) ? e.code : e;
14835
14766
  return typeof t == "string" ? `"${t.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : t.toString();
14836
14767
  }
14837
- function og(e) {
14768
+ function cg(e) {
14838
14769
  let t = "", n = null;
14839
14770
  for (let r = 0; r < e.length; r++) {
14840
14771
  let i = e[r];
@@ -14844,39 +14775,30 @@ function og(e) {
14844
14775
  continue;
14845
14776
  }
14846
14777
  i === n && (n = null, t += i);
14847
- continue;
14848
- }
14849
- if (i === "\"" || i === "'") {
14850
- n = i, t += i;
14851
- continue;
14852
- }
14853
- t += i;
14778
+ } else (i === "\"" || i === "'") && (n = i), t += i;
14854
14779
  }
14855
14780
  return t;
14856
14781
  }
14857
- function sg(e) {
14858
- let t = og(e).replace(/\b(?:true|false)\b/g, "");
14782
+ function lg(e) {
14783
+ let t = cg(e).replace(/\b(?:true|false)\b/g, "");
14859
14784
  return /^[\d+\-*/(). "']*$/.test(t);
14860
14785
  }
14861
- function cg(e, t) {
14786
+ function ug(e, t) {
14862
14787
  let n = e[t], r = t + 1;
14863
- for (; r < e.length;) {
14864
- if (e[r] === "\\") {
14865
- r += 2;
14866
- continue;
14867
- }
14788
+ for (; r < e.length;) if (e[r] === "\\") r += 2;
14789
+ else {
14868
14790
  if (e[r] === n) return r + 1;
14869
14791
  r++;
14870
14792
  }
14871
14793
  return e.length;
14872
14794
  }
14873
- function lg(e, t) {
14795
+ function dg(e, t) {
14874
14796
  let n = e.indexOf("'", t + 1);
14875
14797
  if (n === -1 || e[n + 1] !== "!") return null;
14876
14798
  let r = e.substring(n + 2).match(/^(\$?[A-Z]+\$?\d+)/);
14877
14799
  return r ? e.substring(t, n + 2 + r[0].length) : null;
14878
14800
  }
14879
- function ug(e, t) {
14801
+ function fg(e, t) {
14880
14802
  let n = e.substring(t), r = n.match(/^([A-Z][A-Z0-9]*)!/i);
14881
14803
  if (r) {
14882
14804
  let e = n.substring(r[0].length).match(/^(\$?[A-Z]+\$?\d+)/);
@@ -14885,75 +14807,63 @@ function ug(e, t) {
14885
14807
  let i = n.match(/^(\$?[A-Z]+\$?\d+)/);
14886
14808
  return i ? i[0] : null;
14887
14809
  }
14888
- function dg(e) {
14810
+ function pg(e) {
14889
14811
  let t = [], n = 0;
14890
14812
  for (; n < e.length;) {
14891
14813
  let r = e[n];
14892
14814
  if (r === "\"") {
14893
- n = cg(e, n);
14815
+ n = ug(e, n);
14894
14816
  continue;
14895
14817
  }
14896
14818
  if (r === "'") {
14897
- let r = lg(e, n);
14819
+ let r = dg(e, n);
14898
14820
  r ? (t.push({
14899
14821
  ref: r,
14900
14822
  start: n
14901
- }), n += r.length) : n = cg(e, n);
14823
+ }), n += r.length) : n = ug(e, n);
14902
14824
  continue;
14903
14825
  }
14904
- let i = ug(e, n);
14905
- if (i) {
14906
- t.push({
14907
- ref: i,
14908
- start: n
14909
- }), n += i.length;
14910
- continue;
14911
- }
14912
- n++;
14826
+ let i = fg(e, n);
14827
+ i ? (t.push({
14828
+ ref: i,
14829
+ start: n
14830
+ }), n += i.length) : n++;
14913
14831
  }
14914
14832
  return t;
14915
14833
  }
14916
- function fg(e, t, n) {
14834
+ function mg(e, t, n) {
14917
14835
  return [...t].reverse().reduce((e, { ref: t, start: r }) => e.slice(0, r) + n(t) + e.slice(r + t.length), e);
14918
14836
  }
14919
- function pg(e) {
14837
+ function hg(e) {
14920
14838
  let t = [], n = "", r = 0, i = !1, a = "";
14921
14839
  for (let o = 0; o < e.length; o++) {
14922
14840
  let s = e[o], c = o > 0 ? e[o - 1] : "";
14923
- if ((s === "\"" || s === "'") && c !== "\\") {
14924
- i ? s === a && (i = !1, a = "") : (i = !0, a = s), n += s;
14925
- continue;
14926
- }
14927
- if (!i && (s === "(" && r++, s === ")" && r--, s === "," && r === 0)) {
14928
- t.push(n.trim()), n = "";
14929
- continue;
14930
- }
14931
- n += s;
14841
+ (s === "\"" || s === "'") && c !== "\\" ? (i ? s === a && (i = !1, a = "") : (i = !0, a = s), n += s) : !i && (s === "(" && r++, s === ")" && r--, s === "," && r === 0) ? (t.push(n.trim()), n = "") : n += s;
14932
14842
  }
14933
14843
  return n.trim() && t.push(n.trim()), t;
14934
14844
  }
14935
- function mg(e) {
14845
+ function gg(e) {
14936
14846
  let t;
14937
14847
  try {
14938
14848
  t = Function(`return (${e})`)();
14939
14849
  } catch {
14940
- throw Oh();
14850
+ throw kh();
14941
14851
  }
14942
14852
  if (typeof t == "number") {
14943
- if (!Number.isFinite(t)) throw Th();
14853
+ if (!Number.isFinite(t)) throw Eh();
14944
14854
  return t;
14945
14855
  }
14946
14856
  if (typeof t == "string" || typeof t == "boolean") return t;
14947
- throw Oh();
14857
+ throw kh();
14948
14858
  }
14949
- function hg(e, t) {
14859
+ function _g(e, t) {
14950
14860
  let n = e.trim();
14951
14861
  if ((n.startsWith("\"") && n.endsWith("\"") || n.startsWith("'") && n.endsWith("'")) && !n.includes("&")) {
14952
- let e = n.slice(1, -1), r = Qh(e, t.preferDDMMYYYY);
14862
+ let e = n.slice(1, -1), r = eg(e, t.preferDDMMYYYY);
14953
14863
  return r === null ? e : r;
14954
14864
  }
14955
- let [, r, i] = e.match(/^([A-Z]+)\((.*)\)$/i) ?? [];
14956
- if (r !== void 0 && i !== void 0) {
14865
+ let [, r, i] = e.match(/^([A-Z][A-Z0-9]*)\((.*)\)$/i) ?? [];
14866
+ if (r !== void 0 && i !== void 0 && Rh(r)) {
14957
14867
  let e = 0, n = !0;
14958
14868
  for (let t of i) if (t === "(") e++;
14959
14869
  else if (t === ")" && (e--, e < 0)) {
@@ -14962,8 +14872,8 @@ function hg(e, t) {
14962
14872
  }
14963
14873
  let a = r.toUpperCase(), o = Z.get(a);
14964
14874
  if (o && n) {
14965
- let e = pg(i);
14966
- if (o.minArgs !== void 0 && e.length < o.minArgs) throw Fh(a, o.minArgs);
14875
+ let e = hg(i);
14876
+ if (o.minArgs !== void 0 && e.length < o.minArgs) throw Ih(a, o.minArgs);
14967
14877
  if (o.maxArgs !== void 0 && e.length > o.maxArgs) throw Error(`${a} accepts at most ${o.maxArgs} argument${o.maxArgs === 1 ? "" : "s"}`);
14968
14878
  return o.handler(e, {
14969
14879
  functionName: a,
@@ -14973,13 +14883,16 @@ function hg(e, t) {
14973
14883
  evaluateFormula: t.evaluateFormula
14974
14884
  });
14975
14885
  }
14976
- if (n && !o) throw Dh(a);
14886
+ if (n && !o) throw Oh(a);
14977
14887
  }
14978
14888
  let a = e, o = 0, s = 0;
14979
14889
  for (; o < a.length && s < 100;) {
14980
- s++;
14981
- let [, e] = a.substring(o).match(/^([A-Z]+)\(/i) ?? [];
14982
- if (e === void 0) {
14890
+ if (s++, a[o] === "\"" || a[o] === "'") {
14891
+ o = ug(a, o);
14892
+ continue;
14893
+ }
14894
+ let [, e] = a.substring(o).match(/^([A-Z][A-Z0-9]*)\(/i) ?? [];
14895
+ if (e === void 0 || !Rh(e)) {
14983
14896
  if (o++, o >= a.length) break;
14984
14897
  continue;
14985
14898
  }
@@ -14990,64 +14903,64 @@ function hg(e, t) {
14990
14903
  }
14991
14904
  if (i === 0) {
14992
14905
  let e = a.substring(n, c), r = t.evaluateFormula(e);
14993
- if (Mm(r)) throw kh(r.code);
14906
+ if (Mm(r)) throw Ah(r.code);
14994
14907
  let i = typeof r == "string" ? `"${r}"` : `(${r})`;
14995
14908
  a = a.substring(0, n) + i + a.substring(c), o = n + i.length;
14996
14909
  } else o++;
14997
14910
  }
14998
- let c = dg(a), l = c.length === 1 ? c[0] : void 0;
14911
+ let c = pg(a), l = c.length === 1 ? c[0] : void 0;
14999
14912
  if (l) {
15000
14913
  let e = a.slice(0, l.start), n = a.slice(l.start + l.ref.length);
15001
14914
  if (e.trim() === "" && n.trim() === "") return t.getCellValue(l.ref);
15002
14915
  }
15003
- a = fg(a, c, (e) => {
14916
+ a = mg(a, c, (e) => {
15004
14917
  let n = t.getCellValue(e), r = Nm(n);
15005
- if (r !== null) throw kh(r);
15006
- return ag(n);
14918
+ if (r !== null) throw Ah(r);
14919
+ return sg(n);
15007
14920
  }), a = a.replace(/"([^"]+)"/g, (e, n) => {
15008
- let r = Qh(n, t.preferDDMMYYYY);
14921
+ let r = eg(n, t.preferDDMMYYYY);
15009
14922
  return r === null ? e : r.toString();
15010
- }), a = hh(a);
14923
+ }), a = gh(a);
15011
14924
  let u = a.includes("&"), d = /["']/.test(a);
15012
14925
  if (u && d) {
15013
- let e = _h(a);
15014
- if (sg(e)) return mg(e);
14926
+ let e = vh(a);
14927
+ if (lg(e)) return gg(e);
15015
14928
  }
15016
- if (bh(a)) return mg(vh(a));
15017
- if (yh(a)) return mg(a);
14929
+ if (xh(a)) return gg(yh(a));
14930
+ if (bh(a)) return gg(a);
15018
14931
  let f = a.trim();
15019
14932
  return f.startsWith("\"") && f.endsWith("\"") || f.startsWith("'") && f.endsWith("'") ? f.slice(1, -1) : a;
15020
14933
  }
15021
14934
  //#endregion
15022
14935
  //#region src/engine/cellFormatting.ts
15023
- var gg = 36e3, _g = 63499, vg = (e) => f(e) && "v" in e, yg = (e) => typeof e == "number" && Number.isInteger(e) && e >= gg && e <= _g, bg = (e, t, n) => {
14936
+ var vg = 36e3, yg = 63499, bg = (e) => f(e) && "v" in e, xg = (e) => typeof e == "number" && Number.isInteger(e) && e >= vg && e <= yg, Sg = (e, t, n) => {
15024
14937
  if (Mm(t)) return t.code;
15025
- if (!vg(e) || typeof t != "number") return t;
14938
+ if (!bg(e) || typeof t != "number") return t;
15026
14939
  let r = typeof e.f == "string" ? e.f : "";
15027
- return r ? mh(t, r) : typeof e.v == "string" && e.v.startsWith("=") && yg(t) ? mh(t, n ? "DD/MM/YYYY" : "MM/DD/YYYY") : t;
15028
- }, xg = /\$?[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+/g, Sg = /\$?[A-Z]+\$?\d+/g;
15029
- function Cg(e) {
14940
+ return r ? hh(t, r) : typeof e.v == "string" && e.v.startsWith("=") && xg(t) ? hh(t, n ? "DD/MM/YYYY" : "MM/DD/YYYY") : t;
14941
+ }, Cg = /\$?[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+/g, wg = /\$?[A-Z]+\$?\d+/g;
14942
+ function Tg(e) {
15030
14943
  return e.startsWith("=") ? e.slice(1) : e;
15031
14944
  }
15032
- var wg = /^([A-Z]+)(\d+)$/;
15033
- function Tg(e) {
15034
- let [, t, n] = e.match(wg) ?? [];
14945
+ var Eg = /^([A-Z]+)(\d+)$/;
14946
+ function Dg(e) {
14947
+ let [, t, n] = e.match(Eg) ?? [];
15035
14948
  return t === void 0 || n === void 0 ? null : {
15036
14949
  col: _m(t),
15037
14950
  rowNumber: parseInt(n, 10)
15038
14951
  };
15039
14952
  }
15040
- function Eg(e) {
14953
+ function Og(e) {
15041
14954
  let [t, n, ...r] = e.split(":");
15042
14955
  if (t === void 0 || n === void 0 || r.length > 0) return null;
15043
- let i = Tg(t), a = Tg(n);
14956
+ let i = Dg(t), a = Dg(n);
15044
14957
  return i && a ? {
15045
14958
  start: i,
15046
14959
  end: a
15047
14960
  } : null;
15048
14961
  }
15049
- function Dg(e) {
15050
- let t = Eg(e.replace(/\$/g, ""));
14962
+ function kg(e) {
14963
+ let t = Og(e.replace(/\$/g, ""));
15051
14964
  if (!t) return [];
15052
14965
  let { start: n, end: r } = t, i = [];
15053
14966
  for (let e = n.rowNumber - 1; e <= r.rowNumber - 1; e++) for (let t = n.col; t <= r.col; t++) i.push({
@@ -15056,24 +14969,24 @@ function Dg(e) {
15056
14969
  });
15057
14970
  return i;
15058
14971
  }
15059
- function Og(e) {
14972
+ function Ag(e) {
15060
14973
  let t = e.trim().toUpperCase();
15061
14974
  if (t.includes(":")) {
15062
- let e = Dg(t);
14975
+ let e = kg(t);
15063
14976
  return e.length > 0 ? e : null;
15064
14977
  }
15065
- let n = kg(t);
14978
+ let n = jg(t);
15066
14979
  return n ? [n] : null;
15067
14980
  }
15068
- function kg(e) {
15069
- let t = Tg(e.replace(/\$/g, ""));
14981
+ function jg(e) {
14982
+ let t = Dg(e.replace(/\$/g, ""));
15070
14983
  return t ? {
15071
14984
  col: t.col,
15072
14985
  row: t.rowNumber - 1
15073
14986
  } : null;
15074
14987
  }
15075
- function Ag(e) {
15076
- let t = e.lastIndexOf("!"), n = t >= 0 ? e.slice(0, t + 1) : "", r = Eg(t >= 0 ? e.slice(t + 1) : e);
14988
+ function Mg(e) {
14989
+ let t = e.lastIndexOf("!"), n = t >= 0 ? e.slice(0, t + 1) : "", r = Og(t >= 0 ? e.slice(t + 1) : e);
15077
14990
  if (!r) return null;
15078
14991
  let { start: i, end: a } = r;
15079
14992
  return {
@@ -15084,38 +14997,38 @@ function Ag(e) {
15084
14997
  endRow: a.rowNumber
15085
14998
  };
15086
14999
  }
15087
- var jg = 0, Mg = 1;
15088
- function Ng(e, t) {
15000
+ var Ng = 0, Pg = 1;
15001
+ function Fg(e, t) {
15089
15002
  let n = Math.trunc(e);
15090
- return Number.isFinite(n) ? n === jg ? t === 1 ? 0 : null : n < Mg || n > t ? null : n - Mg : null;
15003
+ return Number.isFinite(n) ? n === Ng ? t === 1 ? 0 : null : n < Pg || n > t ? null : n - Pg : null;
15091
15004
  }
15092
- function Pg(e, t, n) {
15093
- let r = Ng(t, e.endRow - e.startRow + 1), i = Ng(n, e.endCol - e.startCol + 1);
15005
+ function Ig(e, t, n) {
15006
+ let r = Fg(t, e.endRow - e.startRow + 1), i = Fg(n, e.endCol - e.startCol + 1);
15094
15007
  return r === null || i === null ? null : {
15095
15008
  colIndex: e.startCol + i,
15096
15009
  row: e.startRow + r
15097
15010
  };
15098
15011
  }
15099
- function Fg(e, t) {
15012
+ function Lg(e, t) {
15100
15013
  let n = Math.trunc(e);
15101
- return !Number.isFinite(n) || n < Mg || n > t ? null : n - Mg;
15014
+ return !Number.isFinite(n) || n < Pg || n > t ? null : n - Pg;
15102
15015
  }
15103
- function Ig(e) {
15104
- let t = Cg(e), n = [], r = /* @__PURE__ */ new Set(), i = (e) => {
15016
+ function Rg(e) {
15017
+ let t = Tg(e), n = [], r = /* @__PURE__ */ new Set(), i = (e) => {
15105
15018
  let t = `${e.row},${e.col}`;
15106
15019
  r.has(t) || (r.add(t), n.push(e));
15107
15020
  };
15108
- for (let e of t.match(xg) ?? []) for (let t of Dg(e)) i(t);
15109
- let a = t.replace(xg, "");
15110
- for (let e of a.match(Sg) ?? []) {
15111
- let t = kg(e);
15021
+ for (let e of t.match(Cg) ?? []) for (let t of kg(e)) i(t);
15022
+ let a = t.replace(Cg, "");
15023
+ for (let e of a.match(wg) ?? []) {
15024
+ let t = jg(e);
15112
15025
  t && i(t);
15113
15026
  }
15114
15027
  return n;
15115
15028
  }
15116
15029
  //#endregion
15117
15030
  //#region src/engine/calculator.ts
15118
- function Lg(e) {
15031
+ function zg(e) {
15119
15032
  if (!e || !Array.isArray(e) || e.length === 0) return [];
15120
15033
  if (Array.isArray(e[0])) return e;
15121
15034
  if (a(e[0])) {
@@ -15128,24 +15041,24 @@ function Lg(e) {
15128
15041
  }
15129
15042
  return console.warn("Unknown data structure in spreadsheet, returning empty:", e), [];
15130
15043
  }
15131
- function Rg(e, t) {
15044
+ function Bg(e, t) {
15132
15045
  return e.map((e) => e.map((e) => {
15133
15046
  if (!a(e) || !("v" in e)) return e;
15134
15047
  let n = e.v;
15135
15048
  if (typeof n == "string" && !n.startsWith("=")) {
15136
- let r = Qh(n, t);
15049
+ let r = eg(n, t);
15137
15050
  if (r !== null) return {
15138
15051
  v: r,
15139
- f: e.f || ig(n, t)
15052
+ f: e.f || og(n, t)
15140
15053
  };
15141
15054
  }
15142
15055
  return e;
15143
15056
  }));
15144
15057
  }
15145
- function zg(e, n, r = {}) {
15146
- let i = r.preferDDMMYYYY ?? !1, o = r.skipFormatting ?? !1, s = Rg(Lg(e.data), i), c = n?.map((e) => ({
15058
+ function Vg(e, n, r = {}) {
15059
+ let i = r.preferDDMMYYYY ?? !1, o = r.skipFormatting ?? !1, s = Bg(zg(e.data), i), c = n?.map((e) => ({
15147
15060
  ...e,
15148
- data: Rg(Lg(e.data), i)
15061
+ data: Bg(zg(e.data), i)
15149
15062
  })), l = s, u = e.name, d = /* @__PURE__ */ new Map(), f = [], p = [], m = l.map((e) => [...e]);
15150
15063
  d.set(u, m);
15151
15064
  let h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set(), _ = (e, { cells: n, row: r, col: i }) => {
@@ -15165,7 +15078,7 @@ function zg(e, n, r = {}) {
15165
15078
  let t = w(e.substring(1));
15166
15079
  return n[i] = t, t;
15167
15080
  } catch (a) {
15168
- let { type: o, display: s } = Ah(a);
15081
+ let { type: o, display: s } = jh(a);
15169
15082
  f.push({
15170
15083
  cell: {
15171
15084
  row: r,
@@ -15231,7 +15144,7 @@ function zg(e, n, r = {}) {
15231
15144
  if (!l || !l.data) return null;
15232
15145
  let u = l.data.map((e) => [...e]);
15233
15146
  d.set(o, u);
15234
- let f = zg(l, c, {
15147
+ let f = Vg(l, c, {
15235
15148
  preferDDMMYYYY: i,
15236
15149
  skipFormatting: !0
15237
15150
  });
@@ -15242,8 +15155,8 @@ function zg(e, n, r = {}) {
15242
15155
  };
15243
15156
  }, b = (e) => {
15244
15157
  let t = y(e);
15245
- if (!t) throw Eh(e);
15246
- let { sheetData: n, ref: r, isCurrentSheet: i } = t, a = kg(r);
15158
+ if (!t) throw Dh(e);
15159
+ let { sheetData: n, ref: r, isCurrentSheet: i } = t, a = jg(r);
15247
15160
  if (!a) return 0;
15248
15161
  let { row: o, col: s } = a, c = o >= 0 ? n[o] : void 0;
15249
15162
  return !c || s < 0 || s >= c.length ? 0 : v(c[s], i ? {
@@ -15254,7 +15167,7 @@ function zg(e, n, r = {}) {
15254
15167
  }, x = (e, t) => {
15255
15168
  let n = y(e);
15256
15169
  if (!n) return [];
15257
- let { sheetData: r, ref: i, isCurrentSheet: a } = n, o = Og(i);
15170
+ let { sheetData: r, ref: i, isCurrentSheet: a } = n, o = Ag(i);
15258
15171
  if (!o) return [];
15259
15172
  let s = [];
15260
15173
  for (let { row: e, col: n } of o) {
@@ -15265,11 +15178,11 @@ function zg(e, n, r = {}) {
15265
15178
  row: e,
15266
15179
  col: n
15267
15180
  } : void 0);
15268
- t.numericOnly ? !Ym(r) && !isNaN(o) && s.push(o) : s.push(o);
15181
+ t.numericOnly ? !Xm(r) && !isNaN(o) && s.push(o) : s.push(o);
15269
15182
  }
15270
15183
  }
15271
15184
  return s;
15272
- }, S = (e) => x(e, { numericOnly: !0 }), C = (e) => x(e, { numericOnly: !1 }), w = (e) => hg(e, {
15185
+ }, S = (e) => x(e, { numericOnly: !0 }), C = (e) => x(e, { numericOnly: !1 }), w = (e) => _g(e, {
15273
15186
  getCellValue: b,
15274
15187
  getRangeValues: S,
15275
15188
  getRangeValuesRaw: C,
@@ -15305,7 +15218,7 @@ function zg(e, n, r = {}) {
15305
15218
  return E((e, t) => {
15306
15219
  typeof t.cells[t.col] == "number" && a(e) && "f" in e || T(e, t);
15307
15220
  }), o || E((e, { cells: t, col: n }) => {
15308
- t[n] = bg(e, t[n], i);
15221
+ t[n] = Sg(e, t[n], i);
15309
15222
  }), {
15310
15223
  name: u,
15311
15224
  data: m,
@@ -15313,99 +15226,50 @@ function zg(e, n, r = {}) {
15313
15226
  errors: f
15314
15227
  };
15315
15228
  }
15316
- function Bg(e, t = {}) {
15317
- return e.map((n) => zg(n, e, t));
15318
- }
15319
- //#endregion
15320
- //#region src/engine/cellBuilder.ts
15321
- var Vg = /^[-+]?\s*[A-Z]+\s*\(/i, Hg = /[A-Z]+\d+\s*[+\-*/^]/, Ug = /\d+\s*[+\-*/^]\s*\d+/, Wg = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?$/;
15322
- function Gg(e) {
15323
- return Vg.test(e) || Hg.test(e) || Ug.test(e);
15324
- }
15325
- function Kg(e) {
15326
- let t = e.trim();
15327
- return t === "" ? "" : Gg(t) ? `=${t}` : Wg.test(t) ? Number(t) : t;
15328
- }
15329
- function qg(e) {
15330
- if (e.type === "string") return { v: String(e.value) };
15331
- let t = { v: Kg(e.formula ?? "") };
15332
- return e.format && e.format.length > 0 && (t.f = e.format), t;
15333
- }
15334
- //#endregion
15335
- //#region src/engine/jsonCellLocator.ts
15336
- function Jg(e, t, n) {
15337
- let r = -1, i = !1;
15338
- for (let a = t; a < e.length; a++) {
15339
- let t = e[a], o = a > 0 ? e[a - 1] : "";
15340
- if (t === "\"" && o !== "\\") {
15341
- i = !i;
15342
- continue;
15343
- }
15344
- if (!i && t === "[" && (r++, r === n)) return a + 1;
15345
- }
15346
- return -1;
15347
- }
15348
- function Yg(e, t, n) {
15349
- let r = 0, i = !1, a = 0, o = 1;
15350
- for (let s = t; s < e.length; s++) {
15351
- let t = e[s], c = s > 0 ? e[s - 1] : "";
15352
- if (t === "\"" && c !== "\\" && (i = !i), !i) {
15353
- if (t === "[" && o++, t === "]" && (o--, o === 0)) return -1;
15354
- t === "{" && a++, t === "}" && a--, t === "," && a === 0 && o === 1 && r++;
15355
- }
15356
- if (r === n && t !== " " && t !== "\n" && t !== " " && t !== "[" && t !== ",") return s;
15357
- }
15358
- return -1;
15359
- }
15360
- function Xg(e, t, n, r) {
15361
- let i = `"name": ${JSON.stringify(t)}`, a = e.indexOf(i);
15362
- if (a === -1) return -1;
15363
- let o = e.indexOf("\"data\": [", a);
15364
- if (o === -1) return -1;
15365
- let s = Jg(e, o + 9, n);
15366
- return s === -1 ? -1 : Yg(e, s, r);
15229
+ function Hg(e, t = {}) {
15230
+ return e.map((n) => Vg(n, e, t));
15367
15231
  }
15368
15232
  //#endregion
15369
15233
  //#region src/engine/functions/statistical-math.ts
15370
- var Zg = (e) => e.reduce((e, t) => e + t, 0) / e.length;
15371
- function Qg(e) {
15372
- return e.length === 0 ? Sm : Zg(e);
15234
+ var Ug = (e) => e.reduce((e, t) => e + t, 0) / e.length;
15235
+ function Wg(e) {
15236
+ return e.length === 0 ? Sm : Ug(e);
15373
15237
  }
15374
- function $g(e) {
15375
- return e.length === 0 ? Em : Zg(e_([...e].sort((e, t) => e - t)));
15238
+ function Gg(e) {
15239
+ return e.length === 0 ? Em : Ug(Kg([...e].sort((e, t) => e - t)));
15376
15240
  }
15377
- function e_(e) {
15241
+ function Kg(e) {
15378
15242
  let t = Math.floor(e.length / 2);
15379
15243
  return e.slice(e.length % 2 == 0 ? t - 1 : t, t + 1);
15380
15244
  }
15381
- function t_(e) {
15245
+ function qg(e) {
15382
15246
  let t = /* @__PURE__ */ new Map();
15383
15247
  for (let n of e) t.set(n, (t.get(n) ?? 0) + 1);
15384
15248
  let n = 0, r = Dm;
15385
15249
  for (let [e, i] of t.entries()) i > n && (n = i, r = e);
15386
15250
  return n >= 2 ? r : Dm;
15387
15251
  }
15388
- var n_ = 2;
15389
- function r_(e) {
15390
- if (e.length < n_) return Sm;
15391
- let t = Zg(e);
15252
+ var Jg = 2;
15253
+ function Yg(e) {
15254
+ if (e.length < Jg) return Sm;
15255
+ let t = Ug(e);
15392
15256
  return e.reduce((e, n) => e + (n - t) ** 2, 0) / (e.length - 1);
15393
15257
  }
15394
- function i_(e) {
15395
- let t = r_(e);
15258
+ function Xg(e) {
15259
+ let t = Yg(e);
15396
15260
  return typeof t == "number" ? Math.sqrt(t) : t;
15397
15261
  }
15398
15262
  //#endregion
15399
15263
  //#region src/engine/functions/statistical.ts
15400
- var a_ = 255, o_ = /^\$?[A-Z]+\$?\d+$/i, s_ = (e) => o_.test(e), c_ = (e) => e.slice(e.lastIndexOf("!") + 1), l_ = (e) => {
15264
+ var Zg = 255, Qg = /^\$?[A-Z]+\$?\d+$/i, $g = (e) => Qg.test(e), e_ = (e) => e.slice(e.lastIndexOf("!") + 1), t_ = (e) => {
15401
15265
  if (!e) return !1;
15402
- let [t, n] = c_(e).split(":");
15403
- return !t || !n ? !1 : s_(t) && s_(n);
15404
- }, u_ = (e) => l_(e) || s_(c_(e)), d_ = (e, t, n) => {
15266
+ let [t, n] = e_(e).split(":");
15267
+ return !t || !n ? !1 : $g(t) && $g(n);
15268
+ }, n_ = (e) => t_(e) || $g(e_(e)), r_ = (e, t, n) => {
15405
15269
  let r = [];
15406
15270
  for (let i of e) {
15407
15271
  let e = i?.trim();
15408
- e && (u_(e) ? n(e).forEach((e) => r.push({
15272
+ e && (n_(e) ? n(e).forEach((e) => r.push({
15409
15273
  value: e,
15410
15274
  isScalar: !1
15411
15275
  })) : r.push({
@@ -15414,20 +15278,20 @@ var a_ = 255, o_ = /^\$?[A-Z]+\$?\d+$/i, s_ = (e) => o_.test(e), c_ = (e) => e.s
15414
15278
  }));
15415
15279
  }
15416
15280
  return r;
15417
- }, f_ = (e, t) => d_(e, t, t.getRangeValues).map(({ value: e }) => Q(e)), p_ = (e, t) => d_(e, t, Ih(t)).map(({ value: e }) => e), m_ = (e, t) => f_(e, t).reduce((e, t) => e + t, 0), h_ = (e, t) => Qg(f_(e, t)), g_ = (e, t) => {
15418
- let n = f_(e, t);
15281
+ }, i_ = (e, t) => r_(e, t, t.getRangeValues).map(({ value: e }) => Q(e)), a_ = (e, t) => r_(e, t, Lh(t)).map(({ value: e }) => e), o_ = (e, t) => i_(e, t).reduce((e, t) => e + t, 0), s_ = (e, t) => Wg(i_(e, t)), c_ = (e, t) => {
15282
+ let n = i_(e, t);
15419
15283
  return n.length > 0 ? Math.max(...n) : 0;
15420
- }, __ = (e, t) => {
15421
- let n = f_(e, t);
15284
+ }, l_ = (e, t) => {
15285
+ let n = i_(e, t);
15422
15286
  return n.length > 0 ? Math.min(...n) : 0;
15423
- }, v_ = ({ value: e, isScalar: t }) => !t || Nh(e), y_ = (e, t) => d_(e, t, t.getRangeValues).filter(v_).length, b_ = (e, t) => $g(f_(e, t)), x_ = (e, t) => t_(f_(e, t)), S_ = (e, t) => i_(f_(e, t)), C_ = (e, t) => r_(f_(e, t)), w_ = (e, t) => p_(e, t).filter((e) => e != null && e !== "").length, T_ = (e, t) => Ih(t)(X(t, e, 0)).filter(Uh(X(t, e, 1).trim())).length, E_ = (e, t) => {
15424
- let n = X(t, e, 0), r = Ih(t), i = e.length === 3 ? X(t, e, 2) : n;
15287
+ }, u_ = ({ value: e, isScalar: t }) => !t || Ph(e), d_ = (e, t) => r_(e, t, t.getRangeValues).filter(u_).length, f_ = (e, t) => Gg(i_(e, t)), p_ = (e, t) => qg(i_(e, t)), m_ = (e, t) => Xg(i_(e, t)), h_ = (e, t) => Yg(i_(e, t)), g_ = (e, t) => a_(e, t).filter((e) => e != null && e !== "").length, __ = (e, t) => Lh(t)(X(t, e, 0)).filter(Gh(X(t, e, 1).trim())).length, v_ = (e, t) => {
15288
+ let n = X(t, e, 0), r = Lh(t), i = e.length === 3 ? X(t, e, 2) : n;
15425
15289
  return {
15426
15290
  criteriaRange: r(n),
15427
15291
  valueRange: r(i),
15428
- matches: Uh(X(t, e, 1).trim())
15292
+ matches: Gh(X(t, e, 1).trim())
15429
15293
  };
15430
- }, D_ = (e, t, n) => e.reduce((e, r, i) => n(r) ? {
15294
+ }, y_ = (e, t, n) => e.reduce((e, r, i) => n(r) ? {
15431
15295
  sum: e.sum + Q(t[i] ?? 0),
15432
15296
  count: e.count + 1
15433
15297
  } : e, {
@@ -15436,85 +15300,85 @@ var a_ = 255, o_ = /^\$?[A-Z]+\$?\d+$/i, s_ = (e) => o_.test(e), c_ = (e) => e.s
15436
15300
  });
15437
15301
  Z.register({
15438
15302
  name: "SUM",
15439
- handler: m_,
15303
+ handler: o_,
15440
15304
  minArgs: 1,
15441
- maxArgs: a_,
15305
+ maxArgs: Zg,
15442
15306
  description: "Returns the sum of all numbers in a range",
15443
15307
  examples: ["SUM(A1:A10)", "SUM(B2:B20)"],
15444
15308
  category: "Statistical"
15445
15309
  }), Z.register({
15446
15310
  name: "AVERAGE",
15447
- handler: h_,
15311
+ handler: s_,
15448
15312
  minArgs: 1,
15449
- maxArgs: a_,
15313
+ maxArgs: Zg,
15450
15314
  description: "Returns the average (arithmetic mean) of numbers in a range",
15451
15315
  examples: ["AVERAGE(A1:A10)", "AVERAGE(B2:B20)"],
15452
15316
  category: "Statistical"
15453
15317
  }), Z.register({
15454
15318
  name: "MAX",
15455
- handler: g_,
15319
+ handler: c_,
15456
15320
  minArgs: 1,
15457
15321
  description: "Returns the largest value in a range",
15458
15322
  examples: ["MAX(A1:A10)", "MAX(B2:B20)"],
15459
15323
  category: "Statistical"
15460
15324
  }), Z.register({
15461
15325
  name: "MIN",
15462
- handler: __,
15326
+ handler: l_,
15463
15327
  minArgs: 1,
15464
15328
  description: "Returns the smallest value in a range",
15465
15329
  examples: ["MIN(A1:A10)", "MIN(B2:B20)"],
15466
15330
  category: "Statistical"
15467
15331
  }), Z.register({
15468
15332
  name: "COUNT",
15469
- handler: y_,
15333
+ handler: d_,
15470
15334
  minArgs: 1,
15471
- maxArgs: a_,
15335
+ maxArgs: Zg,
15472
15336
  description: "Counts the number of cells in a range",
15473
15337
  examples: ["COUNT(A1:A10)", "COUNT(B2:B20)"],
15474
15338
  category: "Statistical"
15475
15339
  }), Z.register({
15476
15340
  name: "MEDIAN",
15477
- handler: b_,
15341
+ handler: f_,
15478
15342
  minArgs: 1,
15479
- maxArgs: a_,
15343
+ maxArgs: Zg,
15480
15344
  description: "Returns the median (middle) value in a range",
15481
15345
  examples: ["MEDIAN(A1:A10)", "MEDIAN(B2:B20)"],
15482
15346
  category: "Statistical"
15483
15347
  }), Z.register({
15484
15348
  name: "MODE",
15485
- handler: x_,
15349
+ handler: p_,
15486
15350
  minArgs: 1,
15487
- maxArgs: a_,
15351
+ maxArgs: Zg,
15488
15352
  description: "Returns the most frequently occurring value in a range",
15489
15353
  examples: ["MODE(A1:A10)", "MODE(B2:B20)"],
15490
15354
  category: "Statistical"
15491
15355
  }), Z.register({
15492
15356
  name: "STDEV",
15493
- handler: S_,
15357
+ handler: m_,
15494
15358
  minArgs: 1,
15495
- maxArgs: a_,
15359
+ maxArgs: Zg,
15496
15360
  description: "Returns the standard deviation of numbers in a range",
15497
15361
  examples: ["STDEV(A1:A10)", "STDEV(B2:B20)"],
15498
15362
  category: "Statistical"
15499
15363
  }), Z.register({
15500
15364
  name: "VAR",
15501
- handler: C_,
15365
+ handler: h_,
15502
15366
  minArgs: 1,
15503
- maxArgs: a_,
15367
+ maxArgs: Zg,
15504
15368
  description: "Returns the variance of numbers in a range",
15505
15369
  examples: ["VAR(A1:A10)", "VAR(B2:B20)"],
15506
15370
  category: "Statistical"
15507
15371
  }), Z.register({
15508
15372
  name: "COUNTA",
15509
- handler: w_,
15373
+ handler: g_,
15510
15374
  minArgs: 1,
15511
- maxArgs: a_,
15375
+ maxArgs: Zg,
15512
15376
  description: "Counts the number of non-empty cells in a range",
15513
15377
  examples: ["COUNTA(A1:A10)", "COUNTA(B2:B20)"],
15514
15378
  category: "Statistical"
15515
15379
  }), Z.register({
15516
15380
  name: "COUNTIF",
15517
- handler: T_,
15381
+ handler: __,
15518
15382
  minArgs: 2,
15519
15383
  maxArgs: 2,
15520
15384
  description: "Counts cells in a range that match a criteria",
@@ -15523,8 +15387,8 @@ Z.register({
15523
15387
  }), Z.register({
15524
15388
  name: "SUMIF",
15525
15389
  handler: (e, t) => {
15526
- let { criteriaRange: n, valueRange: r, matches: i } = E_(e, t);
15527
- return D_(n, r, i).sum;
15390
+ let { criteriaRange: n, valueRange: r, matches: i } = v_(e, t);
15391
+ return y_(n, r, i).sum;
15528
15392
  },
15529
15393
  minArgs: 2,
15530
15394
  maxArgs: 3,
@@ -15534,7 +15398,7 @@ Z.register({
15534
15398
  }), Z.register({
15535
15399
  name: "AVERAGEIF",
15536
15400
  handler: (e, t) => {
15537
- let { criteriaRange: n, valueRange: r, matches: i } = E_(e, t), { sum: a, count: o } = D_(n, r, i);
15401
+ let { criteriaRange: n, valueRange: r, matches: i } = v_(e, t), { sum: a, count: o } = y_(n, r, i);
15538
15402
  return o > 0 ? a / o : Sm;
15539
15403
  },
15540
15404
  minArgs: 2,
@@ -15545,48 +15409,48 @@ Z.register({
15545
15409
  });
15546
15410
  //#endregion
15547
15411
  //#region src/engine/math-ops.ts
15548
- var O_ = 10, k_ = (e) => O_ ** +e;
15549
- function A_(e, t) {
15550
- let n = k_(t);
15412
+ var b_ = 10, x_ = (e) => b_ ** +e;
15413
+ function S_(e, t) {
15414
+ let n = x_(t);
15551
15415
  return Math.sign(e) * Math.round(Math.abs(e) * n) / n;
15552
15416
  }
15553
- function j_(e, t) {
15554
- let n = k_(t);
15417
+ function C_(e, t) {
15418
+ let n = x_(t);
15555
15419
  return Math.sign(e) * Math.ceil(Math.abs(e) * n) / n;
15556
15420
  }
15557
- function M_(e, t) {
15558
- let n = k_(t);
15421
+ function w_(e, t) {
15422
+ let n = x_(t);
15559
15423
  return Math.sign(e) * Math.floor(Math.abs(e) * n) / n;
15560
15424
  }
15561
- var N_ = (e, t) => e === 0 || Math.sign(e) === Math.sign(t);
15562
- function P_(e, t) {
15563
- return t === 0 ? Sm : N_(e, t) ? Math.floor(e / t) * t : Em;
15425
+ var T_ = (e, t) => e === 0 || Math.sign(e) === Math.sign(t);
15426
+ function E_(e, t) {
15427
+ return t === 0 ? Sm : T_(e, t) ? Math.floor(e / t) * t : Em;
15564
15428
  }
15565
- function F_(e, t) {
15566
- return t === 0 ? 0 : N_(e, t) ? Math.ceil(e / t) * t : Em;
15429
+ function D_(e, t) {
15430
+ return t === 0 ? 0 : T_(e, t) ? Math.ceil(e / t) * t : Em;
15567
15431
  }
15568
- function I_(e, t) {
15432
+ function O_(e, t) {
15569
15433
  return t === 0 ? Sm : e - t * Math.floor(e / t);
15570
15434
  }
15571
- function L_(e, t) {
15435
+ function k_(e, t) {
15572
15436
  return e < 0 && !Number.isInteger(t) ? Em : e ** +t;
15573
15437
  }
15574
- function R_(e) {
15438
+ function A_(e) {
15575
15439
  return e <= 0 ? Em : Math.log(e);
15576
15440
  }
15577
- function z_(e, t) {
15578
- let n = R_(e);
15441
+ function j_(e, t) {
15442
+ let n = A_(e);
15579
15443
  return Mm(n) ? n : t <= 0 || t === 1 ? Em : n / Math.log(t);
15580
15444
  }
15581
- function B_(e) {
15445
+ function M_(e) {
15582
15446
  return e <= 0 ? Em : Math.log10(e);
15583
15447
  }
15584
- function V_(e) {
15448
+ function N_(e) {
15585
15449
  return e < 0 ? Em : Math.sqrt(e);
15586
15450
  }
15587
15451
  Z.register({
15588
15452
  name: "ROUND",
15589
- handler: (e, t) => A_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15453
+ handler: (e, t) => S_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15590
15454
  minArgs: 2,
15591
15455
  maxArgs: 2,
15592
15456
  description: "Rounds a number to a specified number of digits",
@@ -15594,7 +15458,7 @@ Z.register({
15594
15458
  category: "Mathematical"
15595
15459
  }), Z.register({
15596
15460
  name: "ROUNDUP",
15597
- handler: (e, t) => j_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15461
+ handler: (e, t) => C_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15598
15462
  minArgs: 2,
15599
15463
  maxArgs: 2,
15600
15464
  description: "Rounds a number up, away from zero",
@@ -15602,7 +15466,7 @@ Z.register({
15602
15466
  category: "Mathematical"
15603
15467
  }), Z.register({
15604
15468
  name: "ROUNDDOWN",
15605
- handler: (e, t) => M_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15469
+ handler: (e, t) => w_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15606
15470
  minArgs: 2,
15607
15471
  maxArgs: 2,
15608
15472
  description: "Rounds a number down, toward zero",
@@ -15610,7 +15474,7 @@ Z.register({
15610
15474
  category: "Mathematical"
15611
15475
  }), Z.register({
15612
15476
  name: "FLOOR",
15613
- handler: (e, t) => P_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15477
+ handler: (e, t) => E_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15614
15478
  minArgs: 2,
15615
15479
  maxArgs: 2,
15616
15480
  description: "Rounds a number down to the nearest multiple of significance",
@@ -15618,7 +15482,7 @@ Z.register({
15618
15482
  category: "Mathematical"
15619
15483
  }), Z.register({
15620
15484
  name: "CEILING",
15621
- handler: (e, t) => F_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15485
+ handler: (e, t) => D_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15622
15486
  minArgs: 2,
15623
15487
  maxArgs: 2,
15624
15488
  description: "Rounds a number up to the nearest multiple of significance",
@@ -15627,7 +15491,7 @@ Z.register({
15627
15491
  }), Z.register({
15628
15492
  name: "ABS",
15629
15493
  handler: (e, t) => {
15630
- let n = Ph(t.evaluateFormula(X(t, e, 0)));
15494
+ let n = Fh(t.evaluateFormula(X(t, e, 0)));
15631
15495
  return Mm(n) ? n : Math.abs(n);
15632
15496
  },
15633
15497
  minArgs: 1,
@@ -15637,7 +15501,7 @@ Z.register({
15637
15501
  category: "Mathematical"
15638
15502
  }), Z.register({
15639
15503
  name: "POWER",
15640
- handler: (e, t) => L_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15504
+ handler: (e, t) => k_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15641
15505
  minArgs: 2,
15642
15506
  maxArgs: 2,
15643
15507
  description: "Returns the result of a number raised to a power",
@@ -15645,7 +15509,7 @@ Z.register({
15645
15509
  category: "Mathematical"
15646
15510
  }), Z.register({
15647
15511
  name: "SQRT",
15648
- handler: (e, t) => V_(Q(t.evaluateFormula(X(t, e, 0)))),
15512
+ handler: (e, t) => N_(Q(t.evaluateFormula(X(t, e, 0)))),
15649
15513
  minArgs: 1,
15650
15514
  maxArgs: 1,
15651
15515
  description: "Returns the square root of a number",
@@ -15653,7 +15517,7 @@ Z.register({
15653
15517
  category: "Mathematical"
15654
15518
  }), Z.register({
15655
15519
  name: "MOD",
15656
- handler: (e, t) => I_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15520
+ handler: (e, t) => O_(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1)))),
15657
15521
  minArgs: 2,
15658
15522
  maxArgs: 2,
15659
15523
  description: "Returns the remainder after division",
@@ -15684,7 +15548,7 @@ Z.register({
15684
15548
  }), Z.register({
15685
15549
  name: "SIGN",
15686
15550
  handler: (e, t) => {
15687
- let n = Ph(t.evaluateFormula(X(t, e, 0)));
15551
+ let n = Fh(t.evaluateFormula(X(t, e, 0)));
15688
15552
  return Mm(n) ? n : Math.sign(n);
15689
15553
  },
15690
15554
  minArgs: 1,
@@ -15713,7 +15577,7 @@ Z.register({
15713
15577
  category: "Mathematical"
15714
15578
  }), Z.register({
15715
15579
  name: "LN",
15716
- handler: (e, t) => R_(Q(t.evaluateFormula(X(t, e, 0)))),
15580
+ handler: (e, t) => A_(Q(t.evaluateFormula(X(t, e, 0)))),
15717
15581
  minArgs: 1,
15718
15582
  maxArgs: 1,
15719
15583
  description: "Returns the natural logarithm of a number",
@@ -15721,7 +15585,7 @@ Z.register({
15721
15585
  category: "Mathematical"
15722
15586
  }), Z.register({
15723
15587
  name: "LOG",
15724
- handler: (e, t) => z_(Q(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Q(t.evaluateFormula(X(t, e, 1))) : 10),
15588
+ handler: (e, t) => j_(Q(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Q(t.evaluateFormula(X(t, e, 1))) : 10),
15725
15589
  minArgs: 1,
15726
15590
  maxArgs: 2,
15727
15591
  description: "Returns the logarithm of a number to a specified base",
@@ -15729,7 +15593,7 @@ Z.register({
15729
15593
  category: "Mathematical"
15730
15594
  }), Z.register({
15731
15595
  name: "LOG10",
15732
- handler: (e, t) => B_(Q(t.evaluateFormula(X(t, e, 0)))),
15596
+ handler: (e, t) => M_(Q(t.evaluateFormula(X(t, e, 0)))),
15733
15597
  minArgs: 1,
15734
15598
  maxArgs: 1,
15735
15599
  description: "Returns the base-10 logarithm of a number",
@@ -15738,7 +15602,7 @@ Z.register({
15738
15602
  });
15739
15603
  //#endregion
15740
15604
  //#region src/engine/coerce-boolean.ts
15741
- function H_(e) {
15605
+ function P_(e) {
15742
15606
  if (typeof e == "boolean") return e;
15743
15607
  if (e == null) return !1;
15744
15608
  if (typeof e == "number") return e !== 0;
@@ -15754,7 +15618,7 @@ function H_(e) {
15754
15618
  Z.register({
15755
15619
  name: "IF",
15756
15620
  handler: (e, t) => {
15757
- let n = X(t, e, 0), r = X(t, e, 1), i = X(t, e, 2), a = H_(t.evaluateFormula(n)) ? r : i;
15621
+ let n = X(t, e, 0), r = X(t, e, 1), i = X(t, e, 2), a = P_(t.evaluateFormula(n)) ? r : i;
15758
15622
  return /^["'](.*)["']$/.test(a) ? a.slice(1, -1) : t.evaluateFormula(a);
15759
15623
  },
15760
15624
  minArgs: 3,
@@ -15765,7 +15629,7 @@ Z.register({
15765
15629
  }), Z.register({
15766
15630
  name: "AND",
15767
15631
  handler: (e, t) => {
15768
- for (let n of e) if (!H_(t.evaluateFormula(n.trim()))) return !1;
15632
+ for (let n of e) if (!P_(t.evaluateFormula(n.trim()))) return !1;
15769
15633
  return !0;
15770
15634
  },
15771
15635
  minArgs: 1,
@@ -15775,7 +15639,7 @@ Z.register({
15775
15639
  }), Z.register({
15776
15640
  name: "OR",
15777
15641
  handler: (e, t) => {
15778
- for (let n of e) if (H_(t.evaluateFormula(n.trim()))) return !0;
15642
+ for (let n of e) if (P_(t.evaluateFormula(n.trim()))) return !0;
15779
15643
  return !1;
15780
15644
  },
15781
15645
  minArgs: 1,
@@ -15784,7 +15648,7 @@ Z.register({
15784
15648
  category: "Logical"
15785
15649
  }), Z.register({
15786
15650
  name: "NOT",
15787
- handler: (e, t) => !H_(t.evaluateFormula(X(t, e, 0))),
15651
+ handler: (e, t) => !P_(t.evaluateFormula(X(t, e, 0))),
15788
15652
  minArgs: 1,
15789
15653
  maxArgs: 1,
15790
15654
  description: "Reverses the logical value of its argument",
@@ -15822,8 +15686,8 @@ Z.register({
15822
15686
  if (e.length < 2 || e.length % 2 != 0) throw Error("IFS requires an even number of arguments (condition-value pairs)");
15823
15687
  for (let n = 0; n < e.length; n += 2) {
15824
15688
  let r = X(t, e, n), i = X(t, e, n + 1);
15825
- if (Um(fg(r, dg(r), (e) => Wm(t.getCellValue(e))), (e) => {
15826
- let n = zm(e);
15689
+ if (Wm(mg(r, pg(r), (e) => Gm(t.getCellValue(e))), (e) => {
15690
+ let n = Bm(e);
15827
15691
  return typeof n == "string" && n === e.trim() ? t.evaluateFormula(e) : n;
15828
15692
  })) return /^["'](.*)["']$/.test(i) ? i.slice(1, -1) : t.evaluateFormula(i);
15829
15693
  }
@@ -15852,98 +15716,98 @@ Z.register({
15852
15716
  });
15853
15717
  //#endregion
15854
15718
  //#region src/engine/textFormat.ts
15855
- var U_ = 100, W_ = "?\\*_[]\"@;/", G_ = /[#0][#0,.]*/, K_ = /[#0]/, q_ = /0+$/, J_ = (e, t) => Array.from(e).filter((e) => t.includes(e)).length, Y_ = (e) => Array.from(e).some((e) => W_.includes(e)), X_ = (e) => {
15856
- let t = G_.exec(e);
15719
+ var F_ = 100, I_ = "?\\*_[]\"@;/", L_ = /[#0][#0,.]*/, R_ = /[#0]/, z_ = /0+$/, B_ = (e, t) => Array.from(e).filter((e) => t.includes(e)).length, V_ = (e) => Array.from(e).some((e) => I_.includes(e)), H_ = (e) => {
15720
+ let t = L_.exec(e);
15857
15721
  if (!t || t[0].endsWith(",")) return null;
15858
15722
  let n = e.slice(0, t.index), r = e.slice(t.index + t[0].length);
15859
- if (K_.test(r) || Y_(n) || Y_(r)) return null;
15723
+ if (R_.test(r) || V_(n) || V_(r)) return null;
15860
15724
  let [i, a = "", ...o] = t[0].split(".");
15861
15725
  return i === void 0 || o.length > 0 ? null : {
15862
15726
  prefix: n,
15863
15727
  suffix: r,
15864
15728
  useGrouping: i.includes(","),
15865
- integerMinDigits: J_(i, "0"),
15866
- minDecimals: J_(a, "0"),
15867
- maxDecimals: J_(a, "#0"),
15729
+ integerMinDigits: B_(i, "0"),
15730
+ minDecimals: B_(a, "0"),
15731
+ maxDecimals: B_(a, "#0"),
15868
15732
  isPercent: n.includes("%") || r.includes("%")
15869
15733
  };
15870
- }, Z_ = (e, t) => {
15871
- let n = e.replace(q_, "");
15734
+ }, U_ = (e, t) => {
15735
+ let n = e.replace(z_, "");
15872
15736
  return n.length >= t ? n : e.slice(0, t);
15873
- }, Q_ = (e, t) => {
15874
- let n = e.toFixed(t.maxDecimals), r = n.indexOf("."), i = r === -1 ? n : n.slice(0, r), a = r === -1 ? "" : n.slice(r + 1), o = i.padStart(t.integerMinDigits, "0"), s = t.useGrouping ? fh(o) : o, c = Z_(a, t.minDecimals);
15737
+ }, W_ = (e, t) => {
15738
+ let n = e.toFixed(t.maxDecimals), r = n.indexOf("."), i = r === -1 ? n : n.slice(0, r), a = r === -1 ? "" : n.slice(r + 1), o = i.padStart(t.integerMinDigits, "0"), s = t.useGrouping ? ph(o) : o, c = U_(a, t.minDecimals);
15875
15739
  return c ? `${s}.${c}` : s;
15876
- }, $_ = (e) => Array.from(e).every((e) => e === "0" || e === "," || e === "."), ev = (e, t) => {
15740
+ }, G_ = (e) => Array.from(e).every((e) => e === "0" || e === "," || e === "."), K_ = (e, t) => {
15877
15741
  if (!Number.isFinite(e)) return null;
15878
- let n = X_(t);
15742
+ let n = H_(t);
15879
15743
  if (!n) return null;
15880
- let r = n.isPercent ? e * U_ : e, i = Q_(Math.abs(r), n);
15881
- return `${r < 0 && !$_(i) ? "-" : ""}${n.prefix}${i}${n.suffix}`;
15882
- }, tv = (e) => /[\p{L}\p{M}]/u.test(e), nv = (e) => {
15744
+ let r = n.isPercent ? e * F_ : e, i = W_(Math.abs(r), n);
15745
+ return `${r < 0 && !G_(i) ? "-" : ""}${n.prefix}${i}${n.suffix}`;
15746
+ }, q_ = (e) => /[\p{L}\p{M}]/u.test(e), J_ = (e) => {
15883
15747
  let t = Array.from(e);
15884
15748
  return t.map((e, n) => {
15885
15749
  let r = t[n - 1];
15886
- return r === void 0 || !tv(r) ? e.toUpperCase() : e.toLowerCase();
15750
+ return r === void 0 || !q_(r) ? e.toUpperCase() : e.toLowerCase();
15887
15751
  }).join("");
15888
- }, rv = (e) => !Number.isFinite(e) || e < 0 ? Cm : Math.trunc(e), iv = (e, t) => {
15889
- let n = rv(t);
15752
+ }, Y_ = (e) => !Number.isFinite(e) || e < 0 ? Cm : Math.trunc(e), X_ = (e, t) => {
15753
+ let n = Y_(t);
15890
15754
  return Mm(n) ? n : e.substring(0, n);
15891
- }, av = (e, t) => {
15892
- let n = rv(t);
15755
+ }, Z_ = (e, t) => {
15756
+ let n = Y_(t);
15893
15757
  return Mm(n) ? n : e.substring(e.length - n);
15894
- }, ov = (e, t, n, r) => {
15758
+ }, Q_ = (e, t, n, r) => {
15895
15759
  let i = e.split(t);
15896
15760
  return r > i.length - 1 ? e : i.slice(0, r).join(t) + n + i.slice(r).join(t);
15897
- }, sv = (e, t, n, r) => {
15761
+ }, $_ = (e, t, n, r) => {
15898
15762
  if (t === "") return e;
15899
15763
  if (r === void 0) return e.split(t).join(n);
15900
15764
  let i = Math.trunc(r);
15901
- return !Number.isFinite(i) || i <= 0 ? Cm : ov(e, t, n, i);
15902
- }, cv = (e, t) => e.map((e) => Lh(t.evaluateFormula(e.trim()))).join(""), lv = cv, uv = (e, t) => iv(Lh(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Number(t.evaluateFormula(X(t, e, 1))) : 1), dv = (e, t) => av(Lh(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Number(t.evaluateFormula(X(t, e, 1))) : 1), fv = (e, t, n) => {
15903
- let r = rv(n);
15765
+ return !Number.isFinite(i) || i <= 0 ? Cm : Q_(e, t, n, i);
15766
+ }, ev = (e, t) => e.map((e) => zh(t.evaluateFormula(e.trim()))).join(""), tv = ev, nv = (e, t) => X_(zh(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Number(t.evaluateFormula(X(t, e, 1))) : 1), rv = (e, t) => Z_(zh(t.evaluateFormula(X(t, e, 0))), e.length === 2 ? Number(t.evaluateFormula(X(t, e, 1))) : 1), iv = (e, t, n) => {
15767
+ let r = Y_(n);
15904
15768
  if (Mm(r)) return r;
15905
15769
  if (!Number.isFinite(t) || t < 1) return Cm;
15906
15770
  let i = Math.trunc(t) - 1;
15907
15771
  return e.substring(i, i + r);
15908
- }, pv = (e, t) => fv(Lh(t.evaluateFormula(X(t, e, 0))), Number(t.evaluateFormula(X(t, e, 1))), Number(t.evaluateFormula(X(t, e, 2)))), mv = (e, t) => Lh(t.evaluateFormula(X(t, e, 0))).length, hv = (e, t) => Lh(t.evaluateFormula(X(t, e, 0))).toUpperCase(), gv = (e, t) => Lh(t.evaluateFormula(X(t, e, 0))).toLowerCase(), _v = (e, t) => nv(Lh(t.evaluateFormula(X(t, e, 0)))), vv = (e, t) => Lh(t.evaluateFormula(X(t, e, 0))).trim().replace(/\s+/g, " "), yv = (e, t) => sv(Lh(t.evaluateFormula(X(t, e, 0))), Lh(t.evaluateFormula(X(t, e, 1))), Lh(t.evaluateFormula(X(t, e, 2))), e.length === 4 ? Number(t.evaluateFormula(X(t, e, 3))) : void 0), bv = (e, t) => {
15909
- let n = Lh(t.evaluateFormula(X(t, e, 0))), r = Number(t.evaluateFormula(X(t, e, 1))) - 1, i = Number(t.evaluateFormula(X(t, e, 2))), a = Lh(t.evaluateFormula(X(t, e, 3)));
15772
+ }, av = (e, t) => iv(zh(t.evaluateFormula(X(t, e, 0))), Number(t.evaluateFormula(X(t, e, 1))), Number(t.evaluateFormula(X(t, e, 2)))), ov = (e, t) => zh(t.evaluateFormula(X(t, e, 0))).length, sv = (e, t) => zh(t.evaluateFormula(X(t, e, 0))).toUpperCase(), cv = (e, t) => zh(t.evaluateFormula(X(t, e, 0))).toLowerCase(), lv = (e, t) => J_(zh(t.evaluateFormula(X(t, e, 0)))), uv = (e, t) => zh(t.evaluateFormula(X(t, e, 0))).trim().replace(/\s+/g, " "), dv = (e, t) => $_(zh(t.evaluateFormula(X(t, e, 0))), zh(t.evaluateFormula(X(t, e, 1))), zh(t.evaluateFormula(X(t, e, 2))), e.length === 4 ? Number(t.evaluateFormula(X(t, e, 3))) : void 0), fv = (e, t) => {
15773
+ let n = zh(t.evaluateFormula(X(t, e, 0))), r = Number(t.evaluateFormula(X(t, e, 1))) - 1, i = Number(t.evaluateFormula(X(t, e, 2))), a = zh(t.evaluateFormula(X(t, e, 3)));
15910
15774
  return n.substring(0, r) + a + n.substring(r + i);
15911
- }, xv = (e, t, n, r) => {
15775
+ }, pv = (e, t, n, r) => {
15912
15776
  let i = r.caseInsensitive ? e.toLowerCase() : e, a = (r.caseInsensitive ? t.toLowerCase() : t).indexOf(i, n);
15913
15777
  return a === -1 ? Cm : a + 1;
15914
- }, Sv = (e, t) => xv(Lh(t.evaluateFormula(X(t, e, 0))), Lh(t.evaluateFormula(X(t, e, 1))), e.length === 3 ? Number(t.evaluateFormula(X(t, e, 2))) - 1 : 0, { caseInsensitive: !1 }), Cv = (e, t) => xv(Lh(t.evaluateFormula(X(t, e, 0))), Lh(t.evaluateFormula(X(t, e, 1))), e.length === 3 ? Number(t.evaluateFormula(X(t, e, 2))) - 1 : 0, { caseInsensitive: !0 }), wv = (e) => e.replace(/^["']/, "").replace(/["']$/, ""), Tv = (e, t) => {
15915
- let n = t.evaluateFormula(X(t, e, 0)), r = wv(Lh(t.evaluateFormula(X(t, e, 1))));
15916
- return typeof n == "number" ? ev(n, r) ?? Lh(n) : Lh(n);
15917
- }, Ev = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/, Dv = (e) => {
15918
- if (!Ev.test(e)) return null;
15778
+ }, mv = (e) => (t, n) => pv(zh(n.evaluateFormula(X(n, t, 0))), zh(n.evaluateFormula(X(n, t, 1))), t.length === 3 ? Number(n.evaluateFormula(X(n, t, 2))) - 1 : 0, { caseInsensitive: e }), hv = mv(!1), gv = mv(!0), _v = (e) => e.replace(/^["']/, "").replace(/["']$/, ""), vv = (e, t) => {
15779
+ let n = t.evaluateFormula(X(t, e, 0)), r = _v(zh(t.evaluateFormula(X(t, e, 1))));
15780
+ return typeof n == "number" ? K_(n, r) ?? zh(n) : zh(n);
15781
+ }, yv = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/, bv = (e) => {
15782
+ if (!yv.test(e)) return null;
15919
15783
  let t = Number(e);
15920
15784
  return Number.isFinite(t) ? t : null;
15921
- }, Ov = (e) => {
15785
+ }, xv = (e) => {
15922
15786
  let t = e.replace(/[$,]/g, "").trim();
15923
15787
  if (t.endsWith("%")) {
15924
- let e = Dv(t.slice(0, -1).trim());
15788
+ let e = bv(t.slice(0, -1).trim());
15925
15789
  return e === null ? Cm : e / 100;
15926
15790
  }
15927
- let n = Dv(t);
15791
+ let n = bv(t);
15928
15792
  return n === null ? Cm : n;
15929
15793
  };
15930
15794
  Z.register({
15931
15795
  name: "CONCATENATE",
15932
- handler: cv,
15796
+ handler: ev,
15933
15797
  minArgs: 1,
15934
15798
  description: "Joins several text strings into one string",
15935
15799
  examples: ["CONCATENATE(\"Hello\", \" \", \"World\")", "CONCATENATE(A1, B1)"],
15936
15800
  category: "Text"
15937
15801
  }), Z.register({
15938
15802
  name: "CONCAT",
15939
- handler: lv,
15803
+ handler: tv,
15940
15804
  minArgs: 1,
15941
15805
  description: "Joins several text strings into one string (same as CONCATENATE)",
15942
15806
  examples: ["CONCAT(\"Hello\", \" \", \"World\")", "CONCAT(A1, B1)"],
15943
15807
  category: "Text"
15944
15808
  }), Z.register({
15945
15809
  name: "LEFT",
15946
- handler: uv,
15810
+ handler: nv,
15947
15811
  minArgs: 1,
15948
15812
  maxArgs: 2,
15949
15813
  description: "Returns the leftmost characters from a text string",
@@ -15951,7 +15815,7 @@ Z.register({
15951
15815
  category: "Text"
15952
15816
  }), Z.register({
15953
15817
  name: "RIGHT",
15954
- handler: dv,
15818
+ handler: rv,
15955
15819
  minArgs: 1,
15956
15820
  maxArgs: 2,
15957
15821
  description: "Returns the rightmost characters from a text string",
@@ -15959,7 +15823,7 @@ Z.register({
15959
15823
  category: "Text"
15960
15824
  }), Z.register({
15961
15825
  name: "MID",
15962
- handler: pv,
15826
+ handler: av,
15963
15827
  minArgs: 3,
15964
15828
  maxArgs: 3,
15965
15829
  description: "Returns characters from the middle of a text string",
@@ -15967,7 +15831,7 @@ Z.register({
15967
15831
  category: "Text"
15968
15832
  }), Z.register({
15969
15833
  name: "LEN",
15970
- handler: mv,
15834
+ handler: ov,
15971
15835
  minArgs: 1,
15972
15836
  maxArgs: 1,
15973
15837
  description: "Returns the number of characters in a text string",
@@ -15975,7 +15839,7 @@ Z.register({
15975
15839
  category: "Text"
15976
15840
  }), Z.register({
15977
15841
  name: "UPPER",
15978
- handler: hv,
15842
+ handler: sv,
15979
15843
  minArgs: 1,
15980
15844
  maxArgs: 1,
15981
15845
  description: "Converts text to uppercase",
@@ -15983,7 +15847,7 @@ Z.register({
15983
15847
  category: "Text"
15984
15848
  }), Z.register({
15985
15849
  name: "LOWER",
15986
- handler: gv,
15850
+ handler: cv,
15987
15851
  minArgs: 1,
15988
15852
  maxArgs: 1,
15989
15853
  description: "Converts text to lowercase",
@@ -15991,7 +15855,7 @@ Z.register({
15991
15855
  category: "Text"
15992
15856
  }), Z.register({
15993
15857
  name: "PROPER",
15994
- handler: _v,
15858
+ handler: lv,
15995
15859
  minArgs: 1,
15996
15860
  maxArgs: 1,
15997
15861
  description: "Capitalizes the first letter of each word",
@@ -15999,7 +15863,7 @@ Z.register({
15999
15863
  category: "Text"
16000
15864
  }), Z.register({
16001
15865
  name: "TRIM",
16002
- handler: vv,
15866
+ handler: uv,
16003
15867
  minArgs: 1,
16004
15868
  maxArgs: 1,
16005
15869
  description: "Removes extra spaces from text",
@@ -16007,7 +15871,7 @@ Z.register({
16007
15871
  category: "Text"
16008
15872
  }), Z.register({
16009
15873
  name: "SUBSTITUTE",
16010
- handler: yv,
15874
+ handler: dv,
16011
15875
  minArgs: 3,
16012
15876
  maxArgs: 4,
16013
15877
  description: "Replaces old text with new text in a string",
@@ -16015,7 +15879,7 @@ Z.register({
16015
15879
  category: "Text"
16016
15880
  }), Z.register({
16017
15881
  name: "REPLACE",
16018
- handler: bv,
15882
+ handler: fv,
16019
15883
  minArgs: 4,
16020
15884
  maxArgs: 4,
16021
15885
  description: "Replaces part of a text string with a different text string",
@@ -16023,7 +15887,7 @@ Z.register({
16023
15887
  category: "Text"
16024
15888
  }), Z.register({
16025
15889
  name: "FIND",
16026
- handler: Sv,
15890
+ handler: hv,
16027
15891
  minArgs: 2,
16028
15892
  maxArgs: 3,
16029
15893
  description: "Finds one text string within another (case-sensitive)",
@@ -16031,7 +15895,7 @@ Z.register({
16031
15895
  category: "Text"
16032
15896
  }), Z.register({
16033
15897
  name: "SEARCH",
16034
- handler: Cv,
15898
+ handler: gv,
16035
15899
  minArgs: 2,
16036
15900
  maxArgs: 3,
16037
15901
  description: "Finds one text string within another (case-insensitive)",
@@ -16039,7 +15903,7 @@ Z.register({
16039
15903
  category: "Text"
16040
15904
  }), Z.register({
16041
15905
  name: "TEXT",
16042
- handler: Tv,
15906
+ handler: vv,
16043
15907
  minArgs: 2,
16044
15908
  maxArgs: 2,
16045
15909
  description: "Formats a number and converts it to text",
@@ -16047,7 +15911,7 @@ Z.register({
16047
15911
  category: "Text"
16048
15912
  }), Z.register({
16049
15913
  name: "VALUE",
16050
- handler: (e, t) => Ov(Lh(t.evaluateFormula(X(t, e, 0)))),
15914
+ handler: (e, t) => xv(zh(t.evaluateFormula(X(t, e, 0)))),
16051
15915
  minArgs: 1,
16052
15916
  maxArgs: 1,
16053
15917
  description: "Converts a text string to a number",
@@ -16055,7 +15919,7 @@ Z.register({
16055
15919
  category: "Text"
16056
15920
  }), Z.register({
16057
15921
  name: "EXACT",
16058
- handler: (e, t) => Lh(t.evaluateFormula(X(t, e, 0))) === Lh(t.evaluateFormula(X(t, e, 1))),
15922
+ handler: (e, t) => zh(t.evaluateFormula(X(t, e, 0))) === zh(t.evaluateFormula(X(t, e, 1))),
16059
15923
  minArgs: 2,
16060
15924
  maxArgs: 2,
16061
15925
  description: "Checks if two text strings are exactly the same",
@@ -16064,50 +15928,50 @@ Z.register({
16064
15928
  });
16065
15929
  //#endregion
16066
15930
  //#region src/engine/financial-math.ts
16067
- function kv(e, t, n, r, i) {
15931
+ function Sv(e, t, n, r, i) {
16068
15932
  if (e === 0) return -(r + n * t);
16069
15933
  let a = (1 + e) ** +t;
16070
15934
  return -r * a - n * (a - 1) * (1 + e * i) / e;
16071
15935
  }
16072
- function Av(e, t, n, r, i) {
15936
+ function Cv(e, t, n, r, i) {
16073
15937
  if (e === 0) return -(r + n) / t;
16074
15938
  let a = (1 + e) ** +t;
16075
15939
  return -e * (r + n * a) / ((a - 1) * (1 + e * i));
16076
15940
  }
16077
- function jv(e, t, n, r, i, a) {
16078
- let o = Av(e, n, r, i, a);
15941
+ function wv(e, t, n, r, i, a) {
15942
+ let o = Cv(e, n, r, i, a);
16079
15943
  if (t === 1 && a === 1) return 0;
16080
- let s = kv(e, a === 1 ? t - 2 : t - 1, o, r, a) * e;
15944
+ let s = Sv(e, a === 1 ? t - 2 : t - 1, o, r, a) * e;
16081
15945
  return a === 1 ? s / (1 + e) : s;
16082
15946
  }
16083
- function Mv(e, t, n, r, i, a) {
16084
- return Av(e, n, r, i, a) - jv(e, t, n, r, i, a);
15947
+ function Tv(e, t, n, r, i, a) {
15948
+ return Cv(e, n, r, i, a) - wv(e, t, n, r, i, a);
16085
15949
  }
16086
- function Nv(e, t, n, r, i) {
15950
+ function Ev(e, t, n, r, i) {
16087
15951
  if (e === 0) return -(r + n * t);
16088
15952
  let a = (1 + e) ** +t;
16089
15953
  return (-r - n * (a - 1) * (1 + e * i) / e) / a;
16090
15954
  }
16091
- function Pv(e, t, n, r, i) {
15955
+ function Dv(e, t, n, r, i) {
16092
15956
  if (e === 0) return -(r + n) / t;
16093
15957
  let a = t * (1 + e * i);
16094
15958
  return Math.log((a - r * e) / (a + n * e)) / Math.log(1 + e);
16095
15959
  }
16096
- var Fv = 100, Iv = 1e-7;
16097
- function Lv(e, t, n, r, i, a) {
15960
+ var Ov = 100, kv = 1e-7;
15961
+ function Av(e, t, n, r, i, a) {
16098
15962
  let o = a;
16099
- for (let a = 0; a < Fv; a++) {
16100
- Math.abs(o) < Iv && (o = Iv);
15963
+ for (let a = 0; a < Ov; a++) {
15964
+ Math.abs(o) < kv && (o = kv);
16101
15965
  let a = (1 + o) ** +e, s = n * a + t * ((a - 1) / o) * (1 + o * i) + r, c = e * n * (1 + o) ** (e - 1) + t * (1 + o * i) * (e * (1 + o) ** (e - 1) * o - (a - 1)) / (o * o) + t * i * ((a - 1) / o), l = o - s / c;
16102
- if (Math.abs(l - o) < Iv) return Number.isFinite(l) ? l : Em;
15966
+ if (Math.abs(l - o) < kv) return Number.isFinite(l) ? l : Em;
16103
15967
  o = l;
16104
15968
  }
16105
15969
  return Em;
16106
15970
  }
16107
- function Rv(e, t) {
15971
+ function jv(e, t) {
16108
15972
  return t.reduce((t, n, r) => t + n / (1 + e) ** +(r + 1), 0);
16109
15973
  }
16110
- function zv(e, t) {
15974
+ function Mv(e, t) {
16111
15975
  return e.reduce((e, n, r) => {
16112
15976
  let i = (1 + t) ** +r;
16113
15977
  return {
@@ -16119,24 +15983,49 @@ function zv(e, t) {
16119
15983
  dnpv: 0
16120
15984
  });
16121
15985
  }
16122
- function Bv(e, t) {
15986
+ function Nv(e, t) {
16123
15987
  let n = t;
16124
- for (let t = 0; t < Fv; t++) {
16125
- let { npv: t, dnpv: r } = zv(e, n);
16126
- if (Math.abs(t) < Iv) return n;
16127
- if (Math.abs(r) < Iv) return Em;
15988
+ for (let t = 0; t < Ov; t++) {
15989
+ let { npv: t, dnpv: r } = Mv(e, n);
15990
+ if (Math.abs(t) < kv) return n;
15991
+ if (Math.abs(r) < kv) return Em;
16128
15992
  let i = n - t / r;
16129
- if (Math.abs(i - n) < Iv) return Number.isFinite(i) ? i : Em;
15993
+ if (Math.abs(i - n) < kv) return Number.isFinite(i) ? i : Em;
16130
15994
  n = i;
16131
15995
  }
16132
15996
  return Em;
16133
15997
  }
16134
15998
  //#endregion
16135
15999
  //#region src/engine/functions/financial.ts
16136
- var Vv = (e, t) => kv(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Q(t.evaluateFormula(X(t, e, 2))), e.length >= 4 ? Q(t.evaluateFormula(X(t, e, 3))) : 0, e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0), Hv = (e, t) => Nv(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Q(t.evaluateFormula(X(t, e, 2))), e.length >= 4 ? Q(t.evaluateFormula(X(t, e, 3))) : 0, e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0), Uv = (e, t) => Av(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Q(t.evaluateFormula(X(t, e, 2))), e.length >= 4 ? Q(t.evaluateFormula(X(t, e, 3))) : 0, e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0), Wv = (e, t) => Pv(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Q(t.evaluateFormula(X(t, e, 2))), e.length >= 4 ? Q(t.evaluateFormula(X(t, e, 3))) : 0, e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0), Gv = (e, t) => Lv(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Q(t.evaluateFormula(X(t, e, 2))), e.length >= 4 ? Q(t.evaluateFormula(X(t, e, 3))) : 0, e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0, e.length >= 6 ? Q(t.evaluateFormula(X(t, e, 5))) : .1), Kv = (e) => (t, n) => e(Q(n.evaluateFormula(X(n, t, 0))), Q(n.evaluateFormula(X(n, t, 1))), Q(n.evaluateFormula(X(n, t, 2))), Q(n.evaluateFormula(X(n, t, 3))), t.length >= 5 ? Q(n.evaluateFormula(X(n, t, 4))) : 0, t.length >= 6 ? Q(n.evaluateFormula(X(n, t, 5))) : 0), qv = Kv(jv), Jv = Kv(Mv), Yv = (e, t) => e.flatMap((e) => (e.includes(":") ? t.getRangeValues(e) : [t.evaluateFormula(e)]).map(Q));
16000
+ var Pv = (e, t, n, r) => {
16001
+ let i = (n) => Q(t.evaluateFormula(X(t, e, n))), a = Array.from({ length: n }, (e, t) => i(t)), o = r.map((t, r) => e.length > n + r ? i(n + r) : t);
16002
+ return [...a, ...o];
16003
+ }, Fv = (e, t) => {
16004
+ let [n, r, i, a, o] = Pv(e, t, 3, [0, 0]);
16005
+ return Sv(n, r, i, a, o);
16006
+ }, Iv = (e, t) => {
16007
+ let [n, r, i, a, o] = Pv(e, t, 3, [0, 0]);
16008
+ return Ev(n, r, i, a, o);
16009
+ }, Lv = (e, t) => {
16010
+ let [n, r, i, a, o] = Pv(e, t, 3, [0, 0]);
16011
+ return Cv(n, r, i, a, o);
16012
+ }, Rv = (e, t) => {
16013
+ let [n, r, i, a, o] = Pv(e, t, 3, [0, 0]);
16014
+ return Dv(n, r, i, a, o);
16015
+ }, zv = (e, t) => {
16016
+ let [n, r, i, a, o, s] = Pv(e, t, 3, [
16017
+ 0,
16018
+ 0,
16019
+ .1
16020
+ ]);
16021
+ return Av(n, r, i, a, o, s);
16022
+ }, Bv = (e) => (t, n) => {
16023
+ let [r, i, a, o, s, c] = Pv(t, n, 4, [0, 0]);
16024
+ return e(r, i, a, o, s, c);
16025
+ }, Vv = Bv(wv), Hv = Bv(Tv), Uv = (e, t) => e.flatMap((e) => (e.includes(":") ? t.getRangeValues(e) : [t.evaluateFormula(e)]).map(Q));
16137
16026
  Z.register({
16138
16027
  name: "FV",
16139
- handler: Vv,
16028
+ handler: Fv,
16140
16029
  minArgs: 3,
16141
16030
  maxArgs: 5,
16142
16031
  description: "Calculates the future value of an investment based on periodic, constant payments and a constant interest rate",
@@ -16144,7 +16033,7 @@ Z.register({
16144
16033
  category: "Financial"
16145
16034
  }), Z.register({
16146
16035
  name: "PV",
16147
- handler: Hv,
16036
+ handler: Iv,
16148
16037
  minArgs: 3,
16149
16038
  maxArgs: 5,
16150
16039
  description: "Calculates the present value of an investment based on periodic, constant payments and a constant interest rate",
@@ -16152,7 +16041,7 @@ Z.register({
16152
16041
  category: "Financial"
16153
16042
  }), Z.register({
16154
16043
  name: "PMT",
16155
- handler: Uv,
16044
+ handler: Lv,
16156
16045
  minArgs: 3,
16157
16046
  maxArgs: 5,
16158
16047
  description: "Calculates the payment for a loan based on constant payments and a constant interest rate",
@@ -16160,7 +16049,7 @@ Z.register({
16160
16049
  category: "Financial"
16161
16050
  }), Z.register({
16162
16051
  name: "NPER",
16163
- handler: Wv,
16052
+ handler: Rv,
16164
16053
  minArgs: 3,
16165
16054
  maxArgs: 5,
16166
16055
  description: "Calculates the number of periods for an investment based on periodic, constant payments and a constant interest rate",
@@ -16168,7 +16057,7 @@ Z.register({
16168
16057
  category: "Financial"
16169
16058
  }), Z.register({
16170
16059
  name: "RATE",
16171
- handler: Gv,
16060
+ handler: zv,
16172
16061
  minArgs: 3,
16173
16062
  maxArgs: 6,
16174
16063
  description: "Calculates the interest rate per period of an annuity using iteration",
@@ -16176,7 +16065,7 @@ Z.register({
16176
16065
  category: "Financial"
16177
16066
  }), Z.register({
16178
16067
  name: "IPMT",
16179
- handler: qv,
16068
+ handler: Vv,
16180
16069
  minArgs: 4,
16181
16070
  maxArgs: 6,
16182
16071
  description: "Calculates the interest payment for a given period for an investment",
@@ -16184,7 +16073,7 @@ Z.register({
16184
16073
  category: "Financial"
16185
16074
  }), Z.register({
16186
16075
  name: "PPMT",
16187
- handler: Jv,
16076
+ handler: Hv,
16188
16077
  minArgs: 4,
16189
16078
  maxArgs: 6,
16190
16079
  description: "Calculates the payment on the principal for a given period for an investment",
@@ -16192,7 +16081,7 @@ Z.register({
16192
16081
  category: "Financial"
16193
16082
  }), Z.register({
16194
16083
  name: "NPV",
16195
- handler: (e, t) => Rv(Q(t.evaluateFormula(X(t, e, 0))), Yv(e.slice(1), t)),
16084
+ handler: (e, t) => jv(Q(t.evaluateFormula(X(t, e, 0))), Uv(e.slice(1), t)),
16196
16085
  minArgs: 2,
16197
16086
  description: "Calculates the net present value of an investment based on a discount rate and a series of future cash flows",
16198
16087
  examples: ["NPV(0.1, -10000, 3000, 4200, 6800)", "NPV(A1, B1:B10)"],
@@ -16202,7 +16091,7 @@ Z.register({
16202
16091
  handler: (e, t) => {
16203
16092
  let n = t.getRangeValues(X(t, e, 0)).map(Q), r = e.length === 2 ? Q(t.evaluateFormula(X(t, e, 1))) : .1;
16204
16093
  if (n.length === 0) throw Error("IRR requires at least one value");
16205
- return Bv(n, r);
16094
+ return Nv(n, r);
16206
16095
  },
16207
16096
  minArgs: 1,
16208
16097
  maxArgs: 2,
@@ -16212,7 +16101,7 @@ Z.register({
16212
16101
  });
16213
16102
  //#endregion
16214
16103
  //#region src/engine/functions/lookup-math.ts
16215
- function Xv(e) {
16104
+ function Wv(e) {
16216
16105
  if (typeof e == "boolean") return e;
16217
16106
  if (typeof e == "number") return e !== 0;
16218
16107
  if (Mm(e)) return !1;
@@ -16221,25 +16110,24 @@ function Xv(e) {
16221
16110
  }
16222
16111
  //#endregion
16223
16112
  //#region src/engine/functions/lookup.ts
16224
- var Zv = (e, t) => Array.from({ length: Math.max(0, t - e + 1) }, (t, n) => e + n), Qv = (e, t, n, r, i) => Zv(r, i).map((r) => e.getCellValue(`${t}${n}${r}`)), $v = (e, t, n, r, i) => Zv(r, i).map((r) => e.getCellValue(`${t}${vm(r)}${n}`)), ey = (e, t) => e.reduce((e, n, r) => t(n) ? r : e, -1), ty = (e, t) => {
16113
+ var Gv = (e, t) => Array.from({ length: Math.max(0, t - e + 1) }, (t, n) => e + n), Kv = (e, t, n, r, i) => Gv(r, i).map((r) => e.getCellValue(`${t}${n}${r}`)), qv = (e, t, n, r, i) => Gv(r, i).map((r) => e.getCellValue(`${t}${vm(r)}${n}`)), Jv = (e, t) => e.reduce((e, n, r) => t(n) ? r : e, -1), Yv = (e, t) => {
16225
16114
  let n = e.findIndex((e) => !t(e));
16226
16115
  return (n === -1 ? e.length : n) - 1;
16227
- }, ny = (e, t, n = 1, r = 1) => {
16228
- let i = (e, t) => typeof e == "number" && typeof t == "number" ? e - t : String(e).localeCompare(String(t));
16116
+ }, Xv = (e, t) => typeof e == "number" && typeof t == "number" ? e - t : String(e).localeCompare(String(t)), Zv = (e, t, n = 1, r = 1) => {
16229
16117
  if (n === 0) {
16230
- let n = typeof e == "string" && (e.includes("*") || e.includes("?")) ? Uh(e) : (t) => t == e;
16231
- return r === 1 ? t.findIndex(n) : ey(t, n);
16118
+ let n = typeof e == "string" && (e.includes("*") || e.includes("?")) ? Gh(e) : (t) => t == e;
16119
+ return r === 1 ? t.findIndex(n) : Jv(t, n);
16232
16120
  }
16233
- return n === 1 ? ty(t, (t) => i(t, e) <= 0) : n === -1 ? ty(t, (t) => i(t, e) >= 0) : -1;
16121
+ return n === 1 ? Yv(t, (t) => Xv(t, e) <= 0) : n === -1 ? Yv(t, (t) => Xv(t, e) >= 0) : -1;
16234
16122
  };
16235
16123
  Z.register({
16236
16124
  name: "VLOOKUP",
16237
16125
  handler: (e, t) => {
16238
- let n = t.evaluateFormula(X(t, e, 0)), r = Ag(X(t, e, 1));
16126
+ let n = t.evaluateFormula(X(t, e, 0)), r = Mg(X(t, e, 1));
16239
16127
  if (!r) throw Error("Invalid table array range");
16240
- let i = Q(t.evaluateFormula(X(t, e, 2))), a = +!!Xv(e.length !== 4 || t.evaluateFormula(X(t, e, 3))), o = Fg(i, r.endCol - r.startCol + 1);
16128
+ let i = Q(t.evaluateFormula(X(t, e, 2))), a = +!!Wv(e.length !== 4 || t.evaluateFormula(X(t, e, 3))), o = Lg(i, r.endCol - r.startCol + 1);
16241
16129
  if (o === null) return wm;
16242
- let s = vm(r.startCol), c = ny(n, Qv(t, r.sheetPrefix, s, r.startRow, r.endRow), a);
16130
+ let s = vm(r.startCol), c = Zv(n, Kv(t, r.sheetPrefix, s, r.startRow, r.endRow), a);
16243
16131
  if (c === -1) return Dm;
16244
16132
  let l = vm(r.startCol + o), u = r.startRow + c;
16245
16133
  return t.getCellValue(`${r.sheetPrefix}${l}${u}`);
@@ -16252,11 +16140,11 @@ Z.register({
16252
16140
  }), Z.register({
16253
16141
  name: "HLOOKUP",
16254
16142
  handler: (e, t) => {
16255
- let n = t.evaluateFormula(X(t, e, 0)), r = Ag(X(t, e, 1));
16143
+ let n = t.evaluateFormula(X(t, e, 0)), r = Mg(X(t, e, 1));
16256
16144
  if (!r) throw Error("Invalid range format");
16257
- let i = Q(t.evaluateFormula(X(t, e, 2))), a = +!!Xv(e.length !== 4 || t.evaluateFormula(X(t, e, 3))), o = Fg(i, r.endRow - r.startRow + 1);
16145
+ let i = Q(t.evaluateFormula(X(t, e, 2))), a = +!!Wv(e.length !== 4 || t.evaluateFormula(X(t, e, 3))), o = Lg(i, r.endRow - r.startRow + 1);
16258
16146
  if (o === null) return wm;
16259
- let s = ny(n, $v(t, r.sheetPrefix, r.startRow, r.startCol, r.endCol), a);
16147
+ let s = Zv(n, qv(t, r.sheetPrefix, r.startRow, r.startCol, r.endCol), a);
16260
16148
  if (s === -1) return Dm;
16261
16149
  let c = vm(r.startCol + s), l = r.startRow + o;
16262
16150
  return t.getCellValue(`${r.sheetPrefix}${c}${l}`);
@@ -16269,7 +16157,7 @@ Z.register({
16269
16157
  }), Z.register({
16270
16158
  name: "MATCH",
16271
16159
  handler: (e, t) => {
16272
- let n = t.evaluateFormula(X(t, e, 0)), r = X(t, e, 1), i = e.length === 3 ? Q(t.evaluateFormula(X(t, e, 2))) : 1, a = ny(n, Ih(t)(r), i);
16160
+ let n = t.evaluateFormula(X(t, e, 0)), r = X(t, e, 1), i = e.length === 3 ? Q(t.evaluateFormula(X(t, e, 2))) : 1, a = Zv(n, Lh(t)(r), i);
16273
16161
  return a === -1 ? Dm : a + 1;
16274
16162
  },
16275
16163
  minArgs: 2,
@@ -16280,9 +16168,9 @@ Z.register({
16280
16168
  }), Z.register({
16281
16169
  name: "INDEX",
16282
16170
  handler: (e, t) => {
16283
- let n = Ag(X(t, e, 0));
16171
+ let n = Mg(X(t, e, 0));
16284
16172
  if (!n) throw Error("Invalid range format");
16285
- let r = Pg(n, Q(t.evaluateFormula(X(t, e, 1))), e.length >= 3 ? Q(t.evaluateFormula(X(t, e, 2))) : 1);
16173
+ let r = Ig(n, Q(t.evaluateFormula(X(t, e, 1))), e.length >= 3 ? Q(t.evaluateFormula(X(t, e, 2))) : 1);
16286
16174
  return r ? t.getCellValue(`${n.sheetPrefix}${vm(r.colIndex)}${r.row}`) : wm;
16287
16175
  },
16288
16176
  minArgs: 2,
@@ -16293,8 +16181,8 @@ Z.register({
16293
16181
  }), Z.register({
16294
16182
  name: "XLOOKUP",
16295
16183
  handler: (e, t) => {
16296
- let n = t.evaluateFormula(X(t, e, 0)), r = X(t, e, 1), i = X(t, e, 2), a = e.length >= 4 ? t.evaluateFormula(X(t, e, 3)) : Dm, o = e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0, s = e.length >= 6 ? Q(t.evaluateFormula(X(t, e, 5))) : 1, c = Ih(t), l = c(r), u = c(i), d = -1;
16297
- if (o === 0 || o === 2) d = ny(n, l, 0, s);
16184
+ let n = t.evaluateFormula(X(t, e, 0)), r = X(t, e, 1), i = X(t, e, 2), a = e.length >= 4 ? t.evaluateFormula(X(t, e, 3)) : Dm, o = e.length >= 5 ? Q(t.evaluateFormula(X(t, e, 4))) : 0, s = e.length >= 6 ? Q(t.evaluateFormula(X(t, e, 5))) : 1, c = Lh(t), l = c(r), u = c(i), d = -1;
16185
+ if (o === 0 || o === 2) d = Zv(n, l, 0, s);
16298
16186
  else {
16299
16187
  let e = Infinity;
16300
16188
  for (let t = 0; t < l.length; t++) {
@@ -16322,7 +16210,7 @@ Z.register({
16322
16210
  name: "NOW",
16323
16211
  handler: () => {
16324
16212
  let e = /* @__PURE__ */ new Date();
16325
- return Qm(new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds())));
16213
+ return $m(new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds())));
16326
16214
  },
16327
16215
  minArgs: 0,
16328
16216
  maxArgs: 0,
@@ -16333,7 +16221,7 @@ Z.register({
16333
16221
  name: "TODAY",
16334
16222
  handler: () => {
16335
16223
  let e = /* @__PURE__ */ new Date();
16336
- return Qm(new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())));
16224
+ return $m(new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())));
16337
16225
  },
16338
16226
  minArgs: 0,
16339
16227
  maxArgs: 0,
@@ -16344,7 +16232,7 @@ Z.register({
16344
16232
  name: "DATE",
16345
16233
  handler: (e, t) => {
16346
16234
  let n = Q(t.evaluateFormula(X(t, e, 0))), r = Q(t.evaluateFormula(X(t, e, 1))), i = Q(t.evaluateFormula(X(t, e, 2)));
16347
- return Qm(new Date(Date.UTC(n, r - 1, i)));
16235
+ return $m(new Date(Date.UTC(n, r - 1, i)));
16348
16236
  },
16349
16237
  minArgs: 3,
16350
16238
  maxArgs: 3,
@@ -16364,7 +16252,7 @@ Z.register({
16364
16252
  category: "Date & Time"
16365
16253
  }), Z.register({
16366
16254
  name: "YEAR",
16367
- handler: (e, t) => $m(Q(t.evaluateFormula(X(t, e, 0)))).getUTCFullYear(),
16255
+ handler: (e, t) => eh(Q(t.evaluateFormula(X(t, e, 0)))).getUTCFullYear(),
16368
16256
  minArgs: 1,
16369
16257
  maxArgs: 1,
16370
16258
  description: "Converts a serial number to a year",
@@ -16372,7 +16260,7 @@ Z.register({
16372
16260
  category: "Date & Time"
16373
16261
  }), Z.register({
16374
16262
  name: "MONTH",
16375
- handler: (e, t) => $m(Q(t.evaluateFormula(X(t, e, 0)))).getUTCMonth() + 1,
16263
+ handler: (e, t) => eh(Q(t.evaluateFormula(X(t, e, 0)))).getUTCMonth() + 1,
16376
16264
  minArgs: 1,
16377
16265
  maxArgs: 1,
16378
16266
  description: "Converts a serial number to a month",
@@ -16380,7 +16268,7 @@ Z.register({
16380
16268
  category: "Date & Time"
16381
16269
  }), Z.register({
16382
16270
  name: "DAY",
16383
- handler: (e, t) => $m(Q(t.evaluateFormula(X(t, e, 0)))).getUTCDate(),
16271
+ handler: (e, t) => eh(Q(t.evaluateFormula(X(t, e, 0)))).getUTCDate(),
16384
16272
  minArgs: 1,
16385
16273
  maxArgs: 1,
16386
16274
  description: "Converts a serial number to a day of the month",
@@ -16421,7 +16309,7 @@ Z.register({
16421
16309
  category: "Date & Time"
16422
16310
  }), Z.register({
16423
16311
  name: "DATEDIF",
16424
- handler: (e, t) => sh(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), Lh(t.evaluateFormula(X(t, e, 2)))),
16312
+ handler: (e, t) => ch(Q(t.evaluateFormula(X(t, e, 0))), Q(t.evaluateFormula(X(t, e, 1))), zh(t.evaluateFormula(X(t, e, 2)))),
16425
16313
  minArgs: 3,
16426
16314
  maxArgs: 3,
16427
16315
  description: "Calculates the number of days, months, or years between two dates",
@@ -16429,8 +16317,57 @@ Z.register({
16429
16317
  category: "Date & Time"
16430
16318
  });
16431
16319
  //#endregion
16320
+ //#region src/engine/cellBuilder.ts
16321
+ var Qv = /^[-+]?\s*([A-Z][A-Z0-9]*)\s*\(/i, $v = (e) => {
16322
+ let t = e.match(Qv)?.[1];
16323
+ return t !== void 0 && Rh(t);
16324
+ }, ey = /[A-Z]+\d+\s*[+\-*/^]/, ty = /\d+\s*[+\-*/^]\s*\d+/, ny = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?$/;
16325
+ function ry(e) {
16326
+ return $v(e) || ey.test(e) || ty.test(e);
16327
+ }
16328
+ function iy(e) {
16329
+ let t = e.trim();
16330
+ return t === "" ? "" : ry(t) ? `=${t}` : ny.test(t) ? Number(t) : t;
16331
+ }
16332
+ function ay(e) {
16333
+ if (e.type === "string") return { v: String(e.value) };
16334
+ let t = { v: iy(e.formula ?? "") };
16335
+ return e.format && e.format.length > 0 && (t.f = e.format), t;
16336
+ }
16337
+ //#endregion
16338
+ //#region src/engine/jsonCellLocator.ts
16339
+ function oy(e, t, n) {
16340
+ let r = -1, i = !1;
16341
+ for (let a = t; a < e.length; a++) {
16342
+ let t = e[a], o = a > 0 ? e[a - 1] : "";
16343
+ if (t === "\"" && o !== "\\") i = !i;
16344
+ else if (!i && t === "[" && (r++, r === n)) return a + 1;
16345
+ }
16346
+ return -1;
16347
+ }
16348
+ function sy(e, t, n) {
16349
+ let r = 0, i = !1, a = 0, o = 1;
16350
+ for (let s = t; s < e.length; s++) {
16351
+ let t = e[s], c = s > 0 ? e[s - 1] : "";
16352
+ if (t === "\"" && c !== "\\" && (i = !i), !i) {
16353
+ if (t === "[" && o++, t === "]" && (o--, o === 0)) return -1;
16354
+ t === "{" && a++, t === "}" && a--, t === "," && a === 0 && o === 1 && r++;
16355
+ }
16356
+ if (r === n && t !== " " && t !== "\n" && t !== " " && t !== "[" && t !== ",") return s;
16357
+ }
16358
+ return -1;
16359
+ }
16360
+ function cy(e, t, n, r) {
16361
+ let i = `"name": ${JSON.stringify(t)}`, a = e.indexOf(i);
16362
+ if (a === -1) return -1;
16363
+ let o = e.indexOf("\"data\": [", a);
16364
+ if (o === -1) return -1;
16365
+ let s = oy(e, o + 9, n);
16366
+ return s === -1 ? -1 : sy(e, s, r);
16367
+ }
16368
+ //#endregion
16432
16369
  //#region src/engine/engine.ts
16433
- var ry = class {
16370
+ var ly = class {
16434
16371
  options;
16435
16372
  constructor(e = {}) {
16436
16373
  this.options = {
@@ -16441,10 +16378,10 @@ var ry = class {
16441
16378
  };
16442
16379
  }
16443
16380
  calculate(e, t) {
16444
- return zg(e, t, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16381
+ return Vg(e, t, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16445
16382
  }
16446
16383
  calculateWorkbook(e) {
16447
- return Bg(e, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16384
+ return Hg(e, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16448
16385
  }
16449
16386
  getOptions() {
16450
16387
  return { ...this.options };
@@ -16464,31 +16401,31 @@ var ry = class {
16464
16401
  toStringArray(e) {
16465
16402
  return e.data.map((e) => e.map((e) => String(e ?? "")));
16466
16403
  }
16467
- }, iy = "cell-editing", ay = "cell-referenced";
16468
- function oy(e) {
16404
+ }, uy = "cell-editing", dy = "cell-referenced";
16405
+ function fy(e) {
16469
16406
  if (e) {
16470
- e.querySelector(`.${iy}`)?.classList.remove(iy);
16471
- for (let t of e.querySelectorAll(`.${ay}`)) t.classList.remove(ay);
16407
+ e.querySelector(`.${uy}`)?.classList.remove(uy);
16408
+ for (let t of e.querySelectorAll(`.${dy}`)) t.classList.remove(dy);
16472
16409
  }
16473
16410
  }
16474
- function sy(e, t, n) {
16411
+ function py(e, t, n) {
16475
16412
  if (!e) return;
16476
16413
  let r = e.querySelectorAll("tr")[t.row];
16477
16414
  if (!r) return;
16478
16415
  let i = r.querySelectorAll("td")[t.col];
16479
16416
  i && i.classList.add(n);
16480
16417
  }
16481
- function cy(e, t, n) {
16418
+ function my(e, t, n) {
16482
16419
  if (!e) return;
16483
16420
  let r = e.querySelector("#spreadsheet-table");
16484
16421
  if (r) {
16485
- t && sy(r, t, iy);
16486
- for (let e of n) sy(r, e, ay);
16422
+ t && py(r, t, uy);
16423
+ for (let e of n) py(r, e, dy);
16487
16424
  }
16488
16425
  }
16489
16426
  //#endregion
16490
16427
  //#region src/vue/keyboardNav.ts
16491
- function ly(e, t, n) {
16428
+ function hy(e, t, n) {
16492
16429
  switch (e) {
16493
16430
  case "ArrowUp": return {
16494
16431
  row: Math.max(0, t - 1),
@@ -16509,21 +16446,21 @@ function ly(e, t, n) {
16509
16446
  default: return null;
16510
16447
  }
16511
16448
  }
16512
- function uy(e, t, n) {
16449
+ function gy(e, t, n) {
16513
16450
  if (!e?.data || t < 0 || t >= e.data.length) return !1;
16514
16451
  let r = e.data[t];
16515
16452
  return r ? n >= 0 && n < r.length : !1;
16516
16453
  }
16517
16454
  //#endregion
16518
16455
  //#region src/vue/htmlText.ts
16519
- var dy = {
16456
+ var _y = {
16520
16457
  "&": "&amp;",
16521
16458
  "<": "&lt;",
16522
16459
  ">": "&gt;",
16523
16460
  "\"": "&quot;",
16524
16461
  "'": "&#39;"
16525
- }, fy = (e) => e.replace(/[&<>"']/g, (e) => dy[e] ?? e);
16526
- function py(e, t) {
16462
+ }, vy = (e) => e.replace(/[&<>"']/g, (e) => _y[e] ?? e);
16463
+ function yy(e, t) {
16527
16464
  if (!e.startsWith("http://") && !e.startsWith("https://")) return !1;
16528
16465
  try {
16529
16466
  return new URL(e).origin !== t;
@@ -16531,7 +16468,7 @@ function py(e, t) {
16531
16468
  return !1;
16532
16469
  }
16533
16470
  }
16534
- var my = ae({
16471
+ var by = ae({
16535
16472
  de: {
16536
16473
  untitled: "Tabelle",
16537
16474
  sheetCount: (e) => e === 1 ? "1 Blatt" : `${e} Blätter`,
@@ -16695,7 +16632,7 @@ var my = ae({
16695
16632
  });
16696
16633
  //#endregion
16697
16634
  //#region src/vue/sheetSession.ts
16698
- async function hy(e, t) {
16635
+ async function xy(e, t) {
16699
16636
  if (!e) return {
16700
16637
  kind: "sheets",
16701
16638
  sheets: []
@@ -16723,12 +16660,12 @@ async function hy(e, t) {
16723
16660
  };
16724
16661
  }
16725
16662
  }
16726
- function gy(e) {
16663
+ function Sy(e) {
16727
16664
  let t = p(), n = 0;
16728
16665
  return {
16729
16666
  async load(t) {
16730
16667
  n += 1;
16731
- let r = n, i = await hy(t, e);
16668
+ let r = n, i = await xy(t, e);
16732
16669
  return r === n ? i : null;
16733
16670
  },
16734
16671
  async save(n, r) {
@@ -16739,25 +16676,25 @@ function gy(e) {
16739
16676
  }
16740
16677
  //#endregion
16741
16678
  //#region src/vue/View.vue?vue&type=script&setup=true&lang.ts
16742
- var _y = { class: "spreadsheet-container" }, vy = {
16679
+ var Cy = { class: "spreadsheet-container" }, wy = {
16743
16680
  key: 0,
16744
16681
  class: "min-h-full p-8 flex items-center justify-center"
16745
- }, yy = { class: "text-gray-500" }, by = {
16682
+ }, Ty = { class: "text-gray-500" }, Ey = {
16746
16683
  key: 1,
16747
16684
  class: "min-h-full p-8 flex items-center justify-center"
16748
- }, xy = { class: "error" }, Sy = {
16685
+ }, Dy = { class: "error" }, Oy = {
16749
16686
  key: 2,
16750
16687
  class: "min-h-full p-8 flex items-center justify-center"
16751
- }, Cy = { class: "text-gray-500" }, wy = { class: "spreadsheet-content-wrapper" }, Ty = { class: "p-4" }, Ey = { class: "header" }, Dy = { class: "title" }, Oy = {
16688
+ }, ky = { class: "text-gray-500" }, Ay = { class: "spreadsheet-content-wrapper" }, jy = { class: "p-4" }, My = { class: "header" }, Ny = { class: "title" }, Py = {
16752
16689
  key: 0,
16753
16690
  class: "sheet-tabs"
16754
- }, ky = ["onClick"], Ay = ["innerHTML"], jy = ["disabled"], My = {
16691
+ }, Fy = ["onClick"], Iy = ["innerHTML"], Ly = ["disabled"], Ry = {
16755
16692
  key: 1,
16756
16693
  class: "mini-editor-panel"
16757
- }, Ny = { class: "mini-editor-content" }, Py = {
16694
+ }, zy = { class: "mini-editor-content" }, By = {
16758
16695
  key: 0,
16759
16696
  class: "cell-ref"
16760
- }, Fy = { class: "radio-group" }, Iy = { class: "radio-option" }, Ly = { class: "radio-option" }, Ry = ["placeholder"], zy = ["placeholder"], By = ["placeholder"], Vy = /*#__PURE__*/ ((e, t) => {
16697
+ }, Vy = { class: "radio-group" }, Hy = { class: "radio-option" }, Uy = { class: "radio-option" }, Wy = ["placeholder"], Gy = ["placeholder"], Ky = ["placeholder"], qy = /*#__PURE__*/ ((e, t) => {
16761
16698
  let n = e.__vccOpts || e;
16762
16699
  for (let [e, r] of t) n[e] = r;
16763
16700
  return n;
@@ -16766,7 +16703,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16766
16703
  props: { selectedResult: {} },
16767
16704
  emits: ["updateResult"],
16768
16705
  setup(e, { emit: n }) {
16769
- let r = my(), i = x(ie, void 0), o = h(() => i?.locale.value ?? "en");
16706
+ let r = by(), i = x(ie, void 0), o = h(() => i?.locale.value ?? "en");
16770
16707
  function c(e) {
16771
16708
  if (!Array.isArray(e) || e.length === 0) return [];
16772
16709
  if (Array.isArray(e[0])) return e;
@@ -16780,11 +16717,11 @@ var _y = { class: "spreadsheet-container" }, vy = {
16780
16717
  }
16781
16718
  return [];
16782
16719
  }
16783
- let l = e, d = n, p = new ry(), b = E(!1), ae = E(""), oe = E([]), se = E(JSON.stringify(oe.value || [], null, 2)), ce = (e) => {
16720
+ let l = e, d = n, p = new ly(), b = E(!1), ae = E(""), oe = E([]), se = E(JSON.stringify(oe.value || [], null, 2)), ce = (e) => {
16784
16721
  let t = f(e) && f(e.data) ? s(e.data.sheets) : null;
16785
16722
  if (!t) throw Error(r.value.dataMustBeArray);
16786
16723
  return t;
16787
- }, le = gy(i ? {
16724
+ }, le = Sy(i ? {
16788
16725
  loadFromHost: (e) => i.dispatch({
16789
16726
  kind: "loadSpreadsheet",
16790
16727
  path: e
@@ -16835,13 +16772,13 @@ var _y = { class: "spreadsheet-container" }, vy = {
16835
16772
  }
16836
16773
  }), Se = vm, Ce = (e) => ({
16837
16774
  name: e.name,
16838
- data: Lg(e.data)
16775
+ data: zg(e.data)
16839
16776
  }), we = (e, t) => {
16840
16777
  let n = oe.value.map(Ce), r = {
16841
16778
  name: t || "Sheet1",
16842
- data: Lg(e)
16779
+ data: zg(e)
16843
16780
  };
16844
- return p.setOptions({ preferDDMMYYYY: Jm(o.value) }), p.calculate(r, n).data;
16781
+ return p.setOptions({ preferDDMMYYYY: Ym(o.value) }), p.calculate(r, n).data;
16845
16782
  }, Te = h(() => {
16846
16783
  if (!oe.value || oe.value.length === 0) return "";
16847
16784
  let e = oe.value[j.value];
@@ -16853,7 +16790,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16853
16790
  editable: !1
16854
16791
  });
16855
16792
  } catch (e) {
16856
- return console.error("Failed to render spreadsheet:", e), `<div class="error">Failed to render spreadsheet: ${fy(t(e, "Unknown error"))}</div>`;
16793
+ return console.error("Failed to render spreadsheet:", e), `<div class="error">Failed to render spreadsheet: ${vy(t(e, "Unknown error"))}</div>`;
16857
16794
  }
16858
16795
  }), Ee = () => {
16859
16796
  if (oe.value && oe.value.length !== 0) try {
@@ -16876,7 +16813,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16876
16813
  let i = r[e][t];
16877
16814
  if (f(i) && "v" in i) {
16878
16815
  let e = i.v, t = typeof i.f == "string" ? i.f : "";
16879
- typeof e == "string" && e.startsWith("=") ? (ve.value = "object", _e.value = "", ye.value = e.substring(1), be.value = t, N.value = Ig(e)) : typeof e == "number" ? (ve.value = "object", _e.value = "", ye.value = String(e), be.value = t, N.value = []) : (ve.value = "string", _e.value = String(e), ye.value = "", be.value = "", N.value = []);
16816
+ typeof e == "string" && e.startsWith("=") ? (ve.value = "object", _e.value = "", ye.value = e.substring(1), be.value = t, N.value = Rg(e)) : typeof e == "number" ? (ve.value = "object", _e.value = "", ye.value = String(e), be.value = t, N.value = []) : (ve.value = "string", _e.value = String(e), ye.value = "", be.value = "", N.value = []);
16880
16817
  } else ve.value = "string", _e.value = ke(i), ye.value = "", be.value = "", N.value = [];
16881
16818
  M.value = {
16882
16819
  row: e,
@@ -16897,13 +16834,13 @@ var _y = { class: "spreadsheet-container" }, vy = {
16897
16834
  let { row: n, col: r } = M.value, i = c(t.data);
16898
16835
  for (; i.length <= n;) i.push([]);
16899
16836
  Array.isArray(i[n]) || (i[n] = []);
16900
- let a = qg({
16837
+ let a = ay({
16901
16838
  type: ve.value,
16902
16839
  value: _e.value,
16903
16840
  formula: ye.value,
16904
16841
  format: be.value
16905
16842
  });
16906
- i[n][r] = a, t.data = i, se.value = JSON.stringify(e, null, 2), fe(e), typeof a.v == "string" && a.v.startsWith("=") ? N.value = Ig(a.v) : N.value = [];
16843
+ i[n][r] = a, t.data = i, se.value = JSON.stringify(e, null, 2), fe(e), typeof a.v == "string" && a.v.startsWith("=") ? N.value = Rg(a.v) : N.value = [];
16907
16844
  } catch (e) {
16908
16845
  alert(`Failed to save cell: ${t(e, "Unknown error")}`);
16909
16846
  }
@@ -16911,7 +16848,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16911
16848
  function Me(e) {
16912
16849
  if (e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey) return !1;
16913
16850
  let t = e.target instanceof Element ? e.target.closest("a") : null;
16914
- return !t || !py(t.href, window.location.origin) ? !1 : (e.preventDefault(), i ? i.openUrl(t.href) : window.open(t.href, "_blank", "noopener,noreferrer"), !0);
16851
+ return !t || !yy(t.href, window.location.origin) ? !1 : (e.preventDefault(), i ? i.openUrl(t.href) : window.open(t.href, "_blank", "noopener,noreferrer"), !0);
16915
16852
  }
16916
16853
  function Ne(e) {
16917
16854
  if (Me(e)) return;
@@ -16920,16 +16857,13 @@ var _y = { class: "spreadsheet-container" }, vy = {
16920
16857
  let n = t.parentElement;
16921
16858
  if (!(n instanceof HTMLTableRowElement)) return;
16922
16859
  let r = t.cellIndex, { rowIndex: i } = n;
16923
- if (!(me.value?.open ?? !1)) {
16924
- Oe(i, r);
16925
- return;
16926
- }
16927
- if (pe.value) try {
16860
+ if (!(me.value?.open ?? !1)) Oe(i, r);
16861
+ else if (pe.value) try {
16928
16862
  let e = JSON.parse(se.value)[j.value];
16929
16863
  if (!e || !e.data) return;
16930
16864
  let t = c(e.data);
16931
16865
  if (!t[i] || t[i][r] === void 0) return;
16932
- let n = JSON.stringify(t[i][r]), a = Xg(se.value, e.name, i, r);
16866
+ let n = JSON.stringify(t[i][r]), a = cy(se.value, e.name, i, r);
16933
16867
  if (a < 0) return;
16934
16868
  pe.value.focus(), pe.value.setSelectionRange(a, a + n.length);
16935
16869
  let o = se.value.substring(0, a).split("\n").length, s = pe.value;
@@ -16957,16 +16891,16 @@ var _y = { class: "spreadsheet-container" }, vy = {
16957
16891
  N,
16958
16892
  Te
16959
16893
  ], () => {
16960
- oy(he.value), ge.value && cy(he.value, M.value, N.value);
16894
+ fy(he.value), ge.value && my(he.value, M.value, N.value);
16961
16895
  }, { flush: "post" });
16962
16896
  function Fe(e) {
16963
16897
  return e instanceof HTMLElement ? e.tagName === "INPUT" || e.tagName === "TEXTAREA" || e.isContentEditable : !1;
16964
16898
  }
16965
16899
  function Ie(e) {
16966
16900
  if (!ge.value || !M.value || Fe(e.target)) return;
16967
- let { row: t, col: n } = M.value, r = ly(e.key, t, n);
16901
+ let { row: t, col: n } = M.value, r = hy(e.key, t, n);
16968
16902
  if (r) try {
16969
- if (!uy(JSON.parse(se.value)[j.value], r.row, r.col)) return;
16903
+ if (!gy(JSON.parse(se.value)[j.value], r.row, r.col)) return;
16970
16904
  e.preventDefault(), Oe(r.row, r.col);
16971
16905
  } catch (e) {
16972
16906
  console.error("Failed to navigate cells:", e);
@@ -16976,24 +16910,24 @@ var _y = { class: "spreadsheet-container" }, vy = {
16976
16910
  document.addEventListener("keydown", Ie);
16977
16911
  }), w(() => {
16978
16912
  document.removeEventListener("keydown", Ie);
16979
- }), (t, n) => (T(), _("div", _y, [b.value ? (T(), _("div", vy, [v("div", yy, O(k(r).loading), 1)])) : ae.value ? (T(), _("div", by, [v("div", xy, O(ae.value), 1)])) : !oe.value || oe.value.length === 0 ? (T(), _("div", Sy, [v("div", Cy, O(k(r).noData), 1)])) : (T(), _(m, { key: 3 }, [
16980
- v("div", wy, [v("div", Ty, [
16981
- v("div", Ey, [v("h1", Dy, O(e.selectedResult.title || k(r).untitled), 1), v("button", {
16913
+ }), (t, n) => (T(), _("div", Cy, [b.value ? (T(), _("div", wy, [v("div", Ty, O(k(r).loading), 1)])) : ae.value ? (T(), _("div", Ey, [v("div", Dy, O(ae.value), 1)])) : !oe.value || oe.value.length === 0 ? (T(), _("div", Oy, [v("div", ky, O(k(r).noData), 1)])) : (T(), _(m, { key: 3 }, [
16914
+ v("div", Ay, [v("div", jy, [
16915
+ v("div", My, [v("h1", Ny, O(e.selectedResult.title || k(r).untitled), 1), v("button", {
16982
16916
  class: "download-btn h-8 px-2.5 flex items-center gap-1 rounded bg-[#217346] hover:bg-[#1e6a3f] active:bg-[#1a5c36] text-white text-sm transition-colors",
16983
16917
  onClick: Ee
16984
16918
  }, [n[6] ||= v("span", { class: "material-icons text-base" }, "download", -1), y(" " + O(k(r).excel), 1)])]),
16985
- oe.value.length > 1 ? (T(), _("div", Oy, [(T(!0), _(m, null, D(oe.value, (e, t) => (T(), _("button", {
16919
+ oe.value.length > 1 ? (T(), _("div", Py, [(T(!0), _(m, null, D(oe.value, (e, t) => (T(), _("button", {
16986
16920
  key: t,
16987
16921
  class: S(["sheet-tab", { active: j.value === t }]),
16988
16922
  onClick: (e) => j.value = t
16989
- }, O(e.name), 11, ky))), 128))])) : g("", !0),
16923
+ }, O(e.name), 11, Fy))), 128))])) : g("", !0),
16990
16924
  v("div", {
16991
16925
  ref_key: "tableContainer",
16992
16926
  ref: he,
16993
16927
  class: "table-container",
16994
16928
  onClick: Ne,
16995
16929
  innerHTML: Te.value
16996
- }, null, 8, Ay)
16930
+ }, null, 8, Iy)
16997
16931
  ])]),
16998
16932
  ge.value ? g("", !0) : (T(), _("details", {
16999
16933
  key: 0,
@@ -17014,15 +16948,15 @@ var _y = { class: "spreadsheet-container" }, vy = {
17014
16948
  class: "apply-btn",
17015
16949
  disabled: !xe.value,
17016
16950
  onClick: Pe
17017
- }, O(k(r).applyChanges), 9, jy)
16951
+ }, O(k(r).applyChanges), 9, Ly)
17018
16952
  ], 512)),
17019
- ge.value ? (T(), _("div", My, [v("div", Ny, [
17020
- M.value ? (T(), _("span", Py, O(k(Se)(M.value.col)) + O(M.value.row + 1), 1)) : g("", !0),
17021
- v("div", Fy, [v("label", Iy, [ne(v("input", {
16953
+ ge.value ? (T(), _("div", Ry, [v("div", zy, [
16954
+ M.value ? (T(), _("span", By, O(k(Se)(M.value.col)) + O(M.value.row + 1), 1)) : g("", !0),
16955
+ v("div", Vy, [v("label", Hy, [ne(v("input", {
17022
16956
  "onUpdate:modelValue": n[1] ||= (e) => ve.value = e,
17023
16957
  type: "radio",
17024
16958
  value: "string"
17025
- }, null, 512), [[A, ve.value]]), y(" " + O(k(r).stringType), 1)]), v("label", Ly, [ne(v("input", {
16959
+ }, null, 512), [[A, ve.value]]), y(" " + O(k(r).stringType), 1)]), v("label", Uy, [ne(v("input", {
17026
16960
  "onUpdate:modelValue": n[2] ||= (e) => ve.value = e,
17027
16961
  type: "radio",
17028
16962
  value: "object"
@@ -17034,20 +16968,20 @@ var _y = { class: "spreadsheet-container" }, vy = {
17034
16968
  class: "form-input",
17035
16969
  placeholder: k(r).valuePlaceholder,
17036
16970
  onKeyup: re(je, ["enter"])
17037
- }, null, 40, Ry)), [[ee, _e.value]]) : g("", !0),
16971
+ }, null, 40, Wy)), [[ee, _e.value]]) : g("", !0),
17038
16972
  ve.value === "object" ? (T(), _(m, { key: 2 }, [ne(v("input", {
17039
16973
  "onUpdate:modelValue": n[4] ||= (e) => ye.value = e,
17040
16974
  type: "text",
17041
16975
  class: "form-input",
17042
16976
  placeholder: k(r).valueOrFormulaPlaceholder,
17043
16977
  onKeyup: re(je, ["enter"])
17044
- }, null, 40, zy), [[ee, ye.value]]), ne(v("input", {
16978
+ }, null, 40, Gy), [[ee, ye.value]]), ne(v("input", {
17045
16979
  "onUpdate:modelValue": n[5] ||= (e) => be.value = e,
17046
16980
  type: "text",
17047
16981
  class: "form-input",
17048
16982
  placeholder: k(r).formatPlaceholder,
17049
16983
  onKeyup: re(je, ["enter"])
17050
- }, null, 40, By), [[ee, be.value]])], 64)) : g("", !0),
16984
+ }, null, 40, Ky), [[ee, be.value]])], 64)) : g("", !0),
17051
16985
  v("button", {
17052
16986
  class: "save-btn",
17053
16987
  onClick: je
@@ -17059,24 +16993,24 @@ var _y = { class: "spreadsheet-container" }, vy = {
17059
16993
  ])])) : g("", !0)
17060
16994
  ], 64))]));
17061
16995
  }
17062
- }), [["__scopeId", "data-v-9281886a"]]), Hy = { class: "p-2 bg-green-50 dark:bg-green-900 rounded" }, Uy = { class: "text-sm text-gray-800 dark:text-gray-200 font-medium break-words" }, Wy = {
16996
+ }), [["__scopeId", "data-v-a54883ee"]]), Jy = { class: "p-2 bg-green-50 dark:bg-green-900 rounded" }, Yy = { class: "text-sm text-gray-800 dark:text-gray-200 font-medium break-words" }, Xy = {
17063
16997
  key: 0,
17064
16998
  class: "text-xs text-gray-600 dark:text-gray-400 mt-1"
17065
- }, Gy = /* @__PURE__ */ b({
16999
+ }, Zy = /* @__PURE__ */ b({
17066
17000
  __name: "Preview",
17067
17001
  props: { result: {} },
17068
17002
  setup(e) {
17069
- let t = my(), n = e, r = h(() => n.result.title || t.value.untitled), i = h(() => {
17003
+ let t = by(), n = e, r = h(() => n.result.title || t.value.untitled), i = h(() => {
17070
17004
  let e = n.result.data?.sheets;
17071
17005
  return !e || typeof e == "string" ? 0 : e.length;
17072
17006
  });
17073
- return (e, n) => (T(), _("div", Hy, [v("div", Uy, O(r.value), 1), i.value > 1 ? (T(), _("div", Wy, O(k(t).sheetCount(i.value)), 1)) : g("", !0)]));
17007
+ return (e, n) => (T(), _("div", Jy, [v("div", Yy, O(r.value), 1), i.value > 1 ? (T(), _("div", Xy, O(k(t).sheetCount(i.value)), 1)) : g("", !0)]));
17074
17008
  }
17075
- }), Ky = {
17009
+ }), Qy = {
17076
17010
  ...l,
17077
- viewComponent: Vy,
17078
- previewComponent: Gy,
17011
+ viewComponent: qy,
17012
+ previewComponent: Zy,
17079
17013
  samples: d
17080
- }, qy = { plugin: Ky };
17014
+ }, $y = { plugin: Qy };
17081
17015
  //#endregion
17082
- export { Gy as Preview, n as SYSTEM_PROMPT, r as TOOL_DEFINITION, c as TOOL_NAME, Vy as View, qy as default, o as executeSpreadsheet, i as executeSpreadsheetDispatch, u as isSpreadsheetArtifactPath, e as isSpreadsheetDispatchArgs, Ky as plugin, l as pluginCore, d as samples };
17016
+ export { Zy as Preview, n as SYSTEM_PROMPT, r as TOOL_DEFINITION, c as TOOL_NAME, qy as View, $y as default, o as executeSpreadsheet, i as executeSpreadsheetDispatch, u as isSpreadsheetArtifactPath, e as isSpreadsheetDispatchArgs, Qy as plugin, l as pluginCore, d as samples };