@gui-chat-plugin/spreadsheet 4.0.0 → 4.0.2

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";
@@ -14289,43 +14289,43 @@ var Fm = [
14289
14289
  ">",
14290
14290
  "<"
14291
14291
  ];
14292
- 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) {
14293
14300
  let t = e.trim();
14294
14301
  for (; t.startsWith("(") && t.endsWith(")");) {
14295
- let e = 0, n = null, r = !0;
14296
- for (let i = 0; i < t.length; i++) {
14297
- let a = t[i];
14298
- if (n !== null) a === "\\" ? i++ : a === n && (n = null);
14299
- else if (a === "\"" || a === "'") n = a;
14300
- else if (a === "(") e++;
14301
- else if (a === ")") {
14302
- if (e--, e === 0 && i < t.length - 1) {
14303
- 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;
14304
14309
  break;
14305
14310
  }
14306
14311
  if (e < 0) return t;
14307
14312
  }
14308
14313
  }
14309
- if (!r || e !== 0) return t;
14314
+ if (!n || e !== 0) return t;
14310
14315
  t = t.slice(1, -1).trim();
14311
14316
  }
14312
14317
  return t;
14313
14318
  }
14314
- function Lm(e) {
14315
- let t = Im(e), n = null;
14316
- for (let e = 0; e < t.length; e++) {
14317
- let r = t[e];
14318
- if (n !== null) r === "\\" ? e++ : r === n && (n = null);
14319
- else if (r === "\"" || r === "'") n = r;
14320
- else for (let n of Fm) if (t.startsWith(n, e)) return {
14321
- left: t.slice(0, e).trim(),
14322
- operator: n,
14323
- right: t.slice(e + n.length).trim()
14324
- };
14325
- }
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
+ };
14326
14326
  return null;
14327
14327
  }
14328
- function Rm(e) {
14328
+ function zm(e) {
14329
14329
  return e.length >= 2 && (e.startsWith("\"") && e.endsWith("\"") || e.startsWith("'") && e.endsWith("'")) ? {
14330
14330
  value: e.slice(1, -1).replace(/\\(["'\\])/g, "$1"),
14331
14331
  quoted: !0
@@ -14334,8 +14334,8 @@ function Rm(e) {
14334
14334
  quoted: !1
14335
14335
  };
14336
14336
  }
14337
- function zm(e) {
14338
- let { value: t, quoted: n } = Rm(e.trim());
14337
+ function Bm(e) {
14338
+ let { value: t, quoted: n } = zm(e.trim());
14339
14339
  if (n) return t;
14340
14340
  if (t === "") return "";
14341
14341
  let r = t.toUpperCase();
@@ -14344,30 +14344,30 @@ function zm(e) {
14344
14344
  let i = Number(t);
14345
14345
  return Number.isNaN(i) ? t : i;
14346
14346
  }
14347
- function Bm(e, t) {
14347
+ function Vm(e, t) {
14348
14348
  return typeof e == "number" && typeof t == "number" ? e - t : typeof e == "boolean" || typeof t == "boolean" ? null : String(e).localeCompare(String(t));
14349
14349
  }
14350
- function Vm(e, t, n) {
14350
+ function Hm(e, t, n) {
14351
14351
  if (e === "=" || e === "==") return t === n;
14352
14352
  if (e === "<>" || e === "!=") return t !== n;
14353
- let r = Bm(t, n);
14353
+ let r = Vm(t, n);
14354
14354
  return r === null ? !1 : e === ">" ? r > 0 : e === ">=" ? r >= 0 : e === "<" ? r < 0 : r <= 0;
14355
14355
  }
14356
- function Hm(e) {
14356
+ function Um(e) {
14357
14357
  return typeof e == "boolean" ? e : typeof e == "number" ? e !== 0 : e !== "";
14358
14358
  }
14359
- function Um(e, t) {
14360
- let n = Lm(e);
14361
- 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)));
14362
14362
  }
14363
- function Wm(e) {
14363
+ function Gm(e) {
14364
14364
  if (e == null) return "\"\"";
14365
14365
  let t = Mm(e) ? e.code : e;
14366
14366
  return typeof t == "string" ? `"${t.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : t.toString();
14367
14367
  }
14368
14368
  //#endregion
14369
14369
  //#region src/engine/date-locale.ts
14370
- var Gm = /* @__PURE__ */ new Set([
14370
+ var Km = /* @__PURE__ */ new Set([
14371
14371
  "es",
14372
14372
  "pt",
14373
14373
  "fr",
@@ -14380,30 +14380,30 @@ var Gm = /* @__PURE__ */ new Set([
14380
14380
  "id",
14381
14381
  "vi",
14382
14382
  "th"
14383
- ]), Km = /* @__PURE__ */ new Set([
14383
+ ]), qm = /* @__PURE__ */ new Set([
14384
14384
  "us",
14385
14385
  "ca",
14386
14386
  "ph"
14387
14387
  ]);
14388
- function qm(e) {
14388
+ function Jm(e) {
14389
14389
  for (let t of e) {
14390
14390
  if (t.length === 1) break;
14391
14391
  if (/^[a-z]{2}$/.test(t) || /^[0-9]{3}$/.test(t)) return t;
14392
14392
  }
14393
14393
  return "";
14394
14394
  }
14395
- function Jm(e) {
14395
+ function Ym(e) {
14396
14396
  if (!e) return !1;
14397
14397
  let [t = "", ...n] = e.toLowerCase().split(/[-_]/);
14398
14398
  if (t === "en") {
14399
- let e = qm(n);
14400
- return e !== "" && !Km.has(e);
14399
+ let e = Jm(n);
14400
+ return e !== "" && !qm.has(e);
14401
14401
  }
14402
- return Gm.has(t);
14402
+ return Km.has(t);
14403
14403
  }
14404
14404
  //#endregion
14405
14405
  //#region src/engine/cellEmpty.ts
14406
- function Ym(e) {
14406
+ function Xm(e) {
14407
14407
  if (e == null) return !0;
14408
14408
  if (typeof e == "string") return e.trim() === "";
14409
14409
  if (a(e)) {
@@ -14415,10 +14415,10 @@ function Ym(e) {
14415
14415
  }
14416
14416
  //#endregion
14417
14417
  //#region src/engine/date-utils.ts
14418
- var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime() - Zm.getTime()) / Xm, $m = (e) => {
14419
- 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);
14420
14420
  return r.setSeconds(r.getSeconds() + i), r;
14421
- }, eh = [
14421
+ }, th = [
14422
14422
  "Jan",
14423
14423
  "Feb",
14424
14424
  "Mar",
@@ -14431,7 +14431,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14431
14431
  "Oct",
14432
14432
  "Nov",
14433
14433
  "Dec"
14434
- ], th = [
14434
+ ], nh = [
14435
14435
  "January",
14436
14436
  "February",
14437
14437
  "March",
@@ -14444,7 +14444,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14444
14444
  "October",
14445
14445
  "November",
14446
14446
  "December"
14447
- ], nh = [
14447
+ ], rh = [
14448
14448
  "Sun",
14449
14449
  "Mon",
14450
14450
  "Tue",
@@ -14452,7 +14452,7 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14452
14452
  "Thu",
14453
14453
  "Fri",
14454
14454
  "Sat"
14455
- ], rh = [
14455
+ ], ih = [
14456
14456
  "Sunday",
14457
14457
  "Monday",
14458
14458
  "Tuesday",
@@ -14460,55 +14460,55 @@ var Xm = 864e5, Zm = new Date(Date.UTC(1899, 11, 30)), Qm = (e) => (e.getTime()
14460
14460
  "Thursday",
14461
14461
  "Friday",
14462
14462
  "Saturday"
14463
- ], ih = 864e5, ah = 12;
14464
- function oh(e, t) {
14465
- 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);
14466
14466
  return new Date(Date.UTC(r, i, o));
14467
14467
  }
14468
- function sh(e, t, n) {
14468
+ function ch(e, t, n) {
14469
14469
  if (e > t) return Em;
14470
- 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();
14471
14471
  switch (n.toUpperCase()) {
14472
14472
  case "Y": {
14473
14473
  let e = a;
14474
14474
  return o < 0 || o === 0 && s < 0 ? e - 1 : e;
14475
14475
  }
14476
14476
  case "M": {
14477
- let e = a * ah + o;
14477
+ let e = a * oh + o;
14478
14478
  return s < 0 ? e - 1 : e;
14479
14479
  }
14480
14480
  case "D": return Math.floor(t - e);
14481
14481
  case "MD": {
14482
- let e = oh(r, a * ah + o - +(s < 0)), t = Date.UTC(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate());
14483
- 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);
14484
14484
  }
14485
14485
  case "YM": {
14486
14486
  let e = s < 0 ? o - 1 : o;
14487
- return e < 0 ? e + ah : e;
14487
+ return e < 0 ? e + oh : e;
14488
14488
  }
14489
14489
  case "YD": {
14490
14490
  let e = new Date(r);
14491
- 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);
14492
14492
  }
14493
14493
  default: return Em;
14494
14494
  }
14495
14495
  }
14496
14496
  //#endregion
14497
14497
  //#region src/engine/formatter.ts
14498
- function ch(e) {
14498
+ function lh(e) {
14499
14499
  return /[YMD]|MMM|DD|YYYY|h:mm|AM\/PM/i.test(e);
14500
14500
  }
14501
- var lh = /YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|AM\/PM|am\/pm|HH|H|hh|h|mm|ss/g;
14502
- function uh(e, t) {
14503
- 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 = {
14504
14504
  YYYY: r.toString(),
14505
14505
  YY: (r % 100).toString().padStart(2, "0"),
14506
- MMMM: th[i] ?? th[0],
14507
- MMM: eh[i] ?? eh[0],
14506
+ MMMM: nh[i] ?? nh[0],
14507
+ MMM: th[i] ?? th[0],
14508
14508
  MM: (i + 1).toString().padStart(2, "0"),
14509
14509
  M: (i + 1).toString(),
14510
- dddd: rh[l] ?? rh[0],
14511
- ddd: nh[l] ?? nh[0],
14510
+ dddd: ih[l] ?? ih[0],
14511
+ ddd: rh[l] ?? rh[0],
14512
14512
  DD: a.toString().padStart(2, "0"),
14513
14513
  D: a.toString(),
14514
14514
  "AM/PM": f ? "PM" : "AM",
@@ -14520,18 +14520,18 @@ function uh(e, t) {
14520
14520
  mm: s.toString().padStart(2, "0"),
14521
14521
  ss: c.toString().padStart(2, "0")
14522
14522
  };
14523
- return t.replace(lh, (e) => p[e] ?? e);
14523
+ return t.replace(uh, (e) => p[e] ?? e);
14524
14524
  }
14525
- 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) => {
14526
14526
  let [t, ...n] = e.split(".");
14527
- return t === void 0 ? e : [fh(t), ...n].join(".");
14527
+ return t === void 0 ? e : [ph(t), ...n].join(".");
14528
14528
  };
14529
- function mh(e, t) {
14529
+ function hh(e, t) {
14530
14530
  if (!t) return e.toString();
14531
14531
  try {
14532
- if (ch(t)) return uh(e, t);
14532
+ if (lh(t)) return dh(e, t);
14533
14533
  if (t.includes("$")) {
14534
- 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);
14535
14535
  return e < 0 ? "-" + i : i;
14536
14536
  }
14537
14537
  if (t.includes("%")) {
@@ -14539,7 +14539,7 @@ function mh(e, t) {
14539
14539
  return (e * 100).toFixed(n >= 0 ? n : 2) + "%";
14540
14540
  }
14541
14541
  if (t.includes(",")) {
14542
- 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));
14543
14543
  return e < 0 ? "-" + r : r;
14544
14544
  }
14545
14545
  let n = (t.match(/\.0+/) || [""])[0].length - 1;
@@ -14550,71 +14550,71 @@ function mh(e, t) {
14550
14550
  }
14551
14551
  //#endregion
14552
14552
  //#region src/engine/translateFormula.ts
14553
- function hh(e) {
14553
+ function gh(e) {
14554
14554
  return e.replace(/\^/g, "**");
14555
14555
  }
14556
- function gh(e, t) {
14556
+ function _h(e, t) {
14557
14557
  return e === "" ? t : t === e ? "" : e;
14558
14558
  }
14559
- function _h(e) {
14559
+ function vh(e) {
14560
14560
  let t = e.split(""), n = [], r = "";
14561
14561
  return t.forEach((e, i) => {
14562
- !(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);
14563
14563
  }), n.join("");
14564
14564
  }
14565
- function vh(e) {
14565
+ function yh(e) {
14566
14566
  return e.replace(/([^<>!])=([^=])/g, "$1==$2");
14567
14567
  }
14568
- function yh(e) {
14568
+ function bh(e) {
14569
14569
  return /^[\d+\-*/(). ]+$/.test(e);
14570
14570
  }
14571
- function bh(e) {
14571
+ function xh(e) {
14572
14572
  return /^[\d+\-*/(). <>!=]+$/.test(e);
14573
14573
  }
14574
14574
  //#endregion
14575
14575
  //#region src/engine/formulaError.ts
14576
- var xh = {
14576
+ var Sh = {
14577
14577
  div_zero: "#DIV/0!",
14578
14578
  invalid_ref: "#REF!",
14579
14579
  syntax: "#NAME?",
14580
14580
  unknown: "#ERROR!"
14581
- }, Sh = {
14582
- [xh.div_zero]: "div_zero",
14583
- [xh.invalid_ref]: "invalid_ref",
14584
- [xh.syntax]: "syntax"
14585
- }, 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 {
14586
14586
  errorType;
14587
14587
  display;
14588
14588
  constructor(e, t, n) {
14589
14589
  super(n ?? t), this.errorType = e, this.display = t, this.name = "FormulaError";
14590
14590
  }
14591
- }, 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) ? {
14592
14592
  type: e.errorType,
14593
14593
  display: e.display
14594
14594
  } : {
14595
14595
  type: "unknown",
14596
- display: xh.unknown
14597
- }, jh = (e) => isNaN(e) ? null : e;
14598
- function Mh(e) {
14596
+ display: Sh.unknown
14597
+ }, Mh = (e) => isNaN(e) ? null : e;
14598
+ function Nh(e) {
14599
14599
  if (e.includes("%")) {
14600
- let t = jh(parseFloat(e.replace("%", "").trim()));
14600
+ let t = Mh(parseFloat(e.replace("%", "").trim()));
14601
14601
  return t === null ? null : t / 100;
14602
14602
  }
14603
- return e.includes("$") ? jh(parseFloat(e.replace(/[$,]/g, "").trim())) : e.includes(",") ? jh(parseFloat(e.replace(/,/g, "").trim())) : jh(parseFloat(e));
14604
- }
14605
- function Nh(e) {
14606
- 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));
14607
14604
  }
14608
14605
  function Ph(e) {
14609
- 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;
14610
14610
  }
14611
14611
  //#endregion
14612
14612
  //#region src/engine/registry.ts
14613
- 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) => {
14614
14614
  let r = t[n];
14615
- if (r === void 0) throw Fh(e.functionName, n + 1);
14615
+ if (r === void 0) throw Ih(e.functionName, n + 1);
14616
14616
  return r;
14617
- }, Ih = (e) => e.getRangeValuesRaw ?? e.getRangeValues, Z = new class {
14617
+ }, Lh = (e) => e.getRangeValuesRaw ?? e.getRangeValues, Z = new class {
14618
14618
  functions = /* @__PURE__ */ new Map();
14619
14619
  register(e) {
14620
14620
  this.functions.set(e.name.toUpperCase(), e);
@@ -14636,22 +14636,22 @@ var Fh = (e, t) => /* @__PURE__ */ Error(`${e} requires at least ${t} argument${
14636
14636
  }
14637
14637
  return e;
14638
14638
  }
14639
- }();
14639
+ }(), Rh = (e) => /^[A-Z]+$/i.test(e) || Z.hasFunction(e);
14640
14640
  function Q(e) {
14641
- return typeof e == "number" ? e : Mh(String(e)) ?? 0;
14641
+ return typeof e == "number" ? e : Nh(String(e)) ?? 0;
14642
14642
  }
14643
- function Lh(e) {
14643
+ function zh(e) {
14644
14644
  return String(e);
14645
14645
  }
14646
- 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));
14647
- function Hh(e) {
14648
- 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");
14649
14649
  return (e) => t.test(e);
14650
14650
  }
14651
- function Uh(e) {
14651
+ function Gh(e) {
14652
14652
  let t = e.trim().replace(/^["']|["']$/g, ""), [, n, r] = t.match(/^([><=!]+)(.+)$/) ?? [];
14653
14653
  if (n !== void 0 && r !== void 0) {
14654
- let e = parseFloat(r), t = Wh(r);
14654
+ let e = parseFloat(r), t = Kh(r);
14655
14655
  switch (n) {
14656
14656
  case ">": return (t) => Q(t) > e;
14657
14657
  case ">=": return (t) => Q(t) >= e;
@@ -14664,15 +14664,15 @@ function Uh(e) {
14664
14664
  default: return () => !1;
14665
14665
  }
14666
14666
  }
14667
- return Wh(t);
14667
+ return Kh(t);
14668
14668
  }
14669
- function Wh(e) {
14670
- 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);
14671
14671
  return (e) => t(String(e)) || r && Q(e) === n;
14672
14672
  }
14673
14673
  //#endregion
14674
14674
  //#region src/engine/date-parser.ts
14675
- function Gh(e) {
14675
+ function qh(e) {
14676
14676
  if (typeof e != "string" || e.length < 6 || e.length > 30) return !1;
14677
14677
  let t = /\d/.test(e), n = /[/\-\s,]/.test(e);
14678
14678
  return !t || !n ? !1 : [
@@ -14684,10 +14684,10 @@ function Gh(e) {
14684
14684
  /^\d{1,2}\s+[A-Za-z]{3,9}\s+\d{4}$/
14685
14685
  ].some((t) => t.test(e.trim()));
14686
14686
  }
14687
- function Kh(e, t, n) {
14688
- 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;
14689
14689
  }
14690
- function qh(e, t) {
14690
+ function Yh(e, t) {
14691
14691
  let [, n, r, i] = e.match(t) ?? [];
14692
14692
  return n === void 0 || r === void 0 || i === void 0 ? null : [
14693
14693
  n,
@@ -14695,77 +14695,77 @@ function qh(e, t) {
14695
14695
  i
14696
14696
  ];
14697
14697
  }
14698
- var Jh = /^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$/, Yh = 12, Xh = (e, t, n) => e > Yh || t <= Yh && e <= Yh && n;
14699
- function Zh(e) {
14700
- 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);
14701
14701
  if (n !== -1) return n + 1;
14702
- let r = th.findIndex((e) => e.toLowerCase() === t);
14702
+ let r = nh.findIndex((e) => e.toLowerCase() === t);
14703
14703
  return r === -1 ? null : r + 1;
14704
14704
  }
14705
- function Qh(e, t = !1) {
14706
- if (!Gh(e)) return null;
14707
- 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})$/);
14708
14708
  if (r) {
14709
14709
  let [e, t, n] = r;
14710
- return Kh(parseInt(e), parseInt(t), parseInt(n));
14710
+ return Jh(parseInt(e), parseInt(t), parseInt(n));
14711
14711
  }
14712
- 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})$/);
14713
14713
  if (i) {
14714
14714
  let [e, t, n] = i;
14715
- return ng(tg(parseInt(n)), t, parseInt(e));
14715
+ return ig(rg(parseInt(n)), t, parseInt(e));
14716
14716
  }
14717
- 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})$/);
14718
14718
  if (a) {
14719
14719
  let [e, t, n] = a;
14720
- return ng(parseInt(n), e, parseInt(t));
14720
+ return ig(parseInt(n), e, parseInt(t));
14721
14721
  }
14722
- 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})$/);
14723
14723
  if (o) {
14724
14724
  let [e, t, n] = o;
14725
- return ng(parseInt(n), t, parseInt(e));
14725
+ return ig(parseInt(n), t, parseInt(e));
14726
14726
  }
14727
- let s = qh(n, Jh);
14727
+ let s = Yh(n, Xh);
14728
14728
  if (s) {
14729
- let [e, n, r] = s, i = Xh(parseInt(e), parseInt(n), t), a = parseInt(i ? n : e), o = parseInt(i ? e : n);
14730
- 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);
14731
14731
  }
14732
14732
  return null;
14733
14733
  }
14734
- var $h = 100, eg = 30;
14735
- function tg(e) {
14736
- 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;
14737
14737
  }
14738
- function ng(e, t, n) {
14739
- let r = Zh(t);
14740
- 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);
14741
14741
  }
14742
- function rg(e, t, n) {
14742
+ function ag(e, t, n) {
14743
14743
  if (e < 1900 || e > 2100 || t < 1 || t > 12 || n < 1 || n > 31) return !1;
14744
14744
  let r = new Date(Date.UTC(e, t - 1, n));
14745
14745
  return r.getUTCFullYear() === e && r.getUTCMonth() === t - 1 && r.getUTCDate() === n;
14746
14746
  }
14747
- function ig(e, t = !1) {
14747
+ function og(e, t = !1) {
14748
14748
  let n = e.trim();
14749
14749
  if (/^\d{4}-\d{1,2}-\d{1,2}$/.test(n)) return "YYYY-MM-DD";
14750
14750
  if (/^\d{4}\/\d{1,2}\/\d{1,2}$/.test(n)) return "YYYY/MM/DD";
14751
14751
  if (/^\d{1,2}-[A-Za-z]{3}-\d{2,4}$/.test(n)) return "DD-MMM-YYYY";
14752
14752
  if (/^[A-Za-z]{3}\s+\d{1,2},?\s+\d{4}$/.test(n)) return "MMM D, YYYY";
14753
14753
  if (/^[A-Za-z]{4,9}\s+\d{1,2},?\s+\d{4}$/.test(n)) return "MMMM D, YYYY";
14754
- let r = qh(n, Jh);
14754
+ let r = Yh(n, Xh);
14755
14755
  if (r) {
14756
14756
  let [e, n] = r;
14757
- 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";
14758
14758
  }
14759
14759
  return t ? "DD/MM/YYYY" : "MM/DD/YYYY";
14760
14760
  }
14761
14761
  //#endregion
14762
14762
  //#region src/engine/evaluator.ts
14763
- function ag(e) {
14763
+ function sg(e) {
14764
14764
  if (e == null) return "0";
14765
14765
  let t = Mm(e) ? e.code : e;
14766
14766
  return typeof t == "string" ? `"${t.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"` : t.toString();
14767
14767
  }
14768
- function og(e) {
14768
+ function cg(e) {
14769
14769
  let t = "", n = null;
14770
14770
  for (let r = 0; r < e.length; r++) {
14771
14771
  let i = e[r];
@@ -14779,11 +14779,11 @@ function og(e) {
14779
14779
  }
14780
14780
  return t;
14781
14781
  }
14782
- function sg(e) {
14783
- 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, "");
14784
14784
  return /^[\d+\-*/(). "']*$/.test(t);
14785
14785
  }
14786
- function cg(e, t) {
14786
+ function ug(e, t) {
14787
14787
  let n = e[t], r = t + 1;
14788
14788
  for (; r < e.length;) if (e[r] === "\\") r += 2;
14789
14789
  else {
@@ -14792,13 +14792,13 @@ function cg(e, t) {
14792
14792
  }
14793
14793
  return e.length;
14794
14794
  }
14795
- function lg(e, t) {
14795
+ function dg(e, t) {
14796
14796
  let n = e.indexOf("'", t + 1);
14797
14797
  if (n === -1 || e[n + 1] !== "!") return null;
14798
14798
  let r = e.substring(n + 2).match(/^(\$?[A-Z]+\$?\d+)/);
14799
14799
  return r ? e.substring(t, n + 2 + r[0].length) : null;
14800
14800
  }
14801
- function ug(e, t) {
14801
+ function fg(e, t) {
14802
14802
  let n = e.substring(t), r = n.match(/^([A-Z][A-Z0-9]*)!/i);
14803
14803
  if (r) {
14804
14804
  let e = n.substring(r[0].length).match(/^(\$?[A-Z]+\$?\d+)/);
@@ -14807,23 +14807,23 @@ function ug(e, t) {
14807
14807
  let i = n.match(/^(\$?[A-Z]+\$?\d+)/);
14808
14808
  return i ? i[0] : null;
14809
14809
  }
14810
- function dg(e) {
14810
+ function pg(e) {
14811
14811
  let t = [], n = 0;
14812
14812
  for (; n < e.length;) {
14813
14813
  let r = e[n];
14814
14814
  if (r === "\"") {
14815
- n = cg(e, n);
14815
+ n = ug(e, n);
14816
14816
  continue;
14817
14817
  }
14818
14818
  if (r === "'") {
14819
- let r = lg(e, n);
14819
+ let r = dg(e, n);
14820
14820
  r ? (t.push({
14821
14821
  ref: r,
14822
14822
  start: n
14823
- }), n += r.length) : n = cg(e, n);
14823
+ }), n += r.length) : n = ug(e, n);
14824
14824
  continue;
14825
14825
  }
14826
- let i = ug(e, n);
14826
+ let i = fg(e, n);
14827
14827
  i ? (t.push({
14828
14828
  ref: i,
14829
14829
  start: n
@@ -14831,10 +14831,10 @@ function dg(e) {
14831
14831
  }
14832
14832
  return t;
14833
14833
  }
14834
- function fg(e, t, n) {
14834
+ function mg(e, t, n) {
14835
14835
  return [...t].reverse().reduce((e, { ref: t, start: r }) => e.slice(0, r) + n(t) + e.slice(r + t.length), e);
14836
14836
  }
14837
- function pg(e) {
14837
+ function hg(e) {
14838
14838
  let t = [], n = "", r = 0, i = !1, a = "";
14839
14839
  for (let o = 0; o < e.length; o++) {
14840
14840
  let s = e[o], c = o > 0 ? e[o - 1] : "";
@@ -14842,28 +14842,28 @@ function pg(e) {
14842
14842
  }
14843
14843
  return n.trim() && t.push(n.trim()), t;
14844
14844
  }
14845
- function mg(e) {
14845
+ function gg(e) {
14846
14846
  let t;
14847
14847
  try {
14848
14848
  t = Function(`return (${e})`)();
14849
14849
  } catch {
14850
- throw Oh();
14850
+ throw kh();
14851
14851
  }
14852
14852
  if (typeof t == "number") {
14853
- if (!Number.isFinite(t)) throw Th();
14853
+ if (!Number.isFinite(t)) throw Eh();
14854
14854
  return t;
14855
14855
  }
14856
14856
  if (typeof t == "string" || typeof t == "boolean") return t;
14857
- throw Oh();
14857
+ throw kh();
14858
14858
  }
14859
- function hg(e, t) {
14859
+ function _g(e, t) {
14860
14860
  let n = e.trim();
14861
14861
  if ((n.startsWith("\"") && n.endsWith("\"") || n.startsWith("'") && n.endsWith("'")) && !n.includes("&")) {
14862
- let e = n.slice(1, -1), r = Qh(e, t.preferDDMMYYYY);
14862
+ let e = n.slice(1, -1), r = eg(e, t.preferDDMMYYYY);
14863
14863
  return r === null ? e : r;
14864
14864
  }
14865
- let [, r, i] = e.match(/^([A-Z]+)\((.*)\)$/i) ?? [];
14866
- 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)) {
14867
14867
  let e = 0, n = !0;
14868
14868
  for (let t of i) if (t === "(") e++;
14869
14869
  else if (t === ")" && (e--, e < 0)) {
@@ -14872,8 +14872,8 @@ function hg(e, t) {
14872
14872
  }
14873
14873
  let a = r.toUpperCase(), o = Z.get(a);
14874
14874
  if (o && n) {
14875
- let e = pg(i);
14876
- 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);
14877
14877
  if (o.maxArgs !== void 0 && e.length > o.maxArgs) throw Error(`${a} accepts at most ${o.maxArgs} argument${o.maxArgs === 1 ? "" : "s"}`);
14878
14878
  return o.handler(e, {
14879
14879
  functionName: a,
@@ -14883,13 +14883,16 @@ function hg(e, t) {
14883
14883
  evaluateFormula: t.evaluateFormula
14884
14884
  });
14885
14885
  }
14886
- if (n && !o) throw Dh(a);
14886
+ if (n && !o) throw Oh(a);
14887
14887
  }
14888
14888
  let a = e, o = 0, s = 0;
14889
14889
  for (; o < a.length && s < 100;) {
14890
- s++;
14891
- let [, e] = a.substring(o).match(/^([A-Z]+)\(/i) ?? [];
14892
- 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)) {
14893
14896
  if (o++, o >= a.length) break;
14894
14897
  continue;
14895
14898
  }
@@ -14900,64 +14903,64 @@ function hg(e, t) {
14900
14903
  }
14901
14904
  if (i === 0) {
14902
14905
  let e = a.substring(n, c), r = t.evaluateFormula(e);
14903
- if (Mm(r)) throw kh(r.code);
14906
+ if (Mm(r)) throw Ah(r.code);
14904
14907
  let i = typeof r == "string" ? `"${r}"` : `(${r})`;
14905
14908
  a = a.substring(0, n) + i + a.substring(c), o = n + i.length;
14906
14909
  } else o++;
14907
14910
  }
14908
- 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;
14909
14912
  if (l) {
14910
14913
  let e = a.slice(0, l.start), n = a.slice(l.start + l.ref.length);
14911
14914
  if (e.trim() === "" && n.trim() === "") return t.getCellValue(l.ref);
14912
14915
  }
14913
- a = fg(a, c, (e) => {
14916
+ a = mg(a, c, (e) => {
14914
14917
  let n = t.getCellValue(e), r = Nm(n);
14915
- if (r !== null) throw kh(r);
14916
- return ag(n);
14918
+ if (r !== null) throw Ah(r);
14919
+ return sg(n);
14917
14920
  }), a = a.replace(/"([^"]+)"/g, (e, n) => {
14918
- let r = Qh(n, t.preferDDMMYYYY);
14921
+ let r = eg(n, t.preferDDMMYYYY);
14919
14922
  return r === null ? e : r.toString();
14920
- }), a = hh(a);
14923
+ }), a = gh(a);
14921
14924
  let u = a.includes("&"), d = /["']/.test(a);
14922
14925
  if (u && d) {
14923
- let e = _h(a);
14924
- if (sg(e)) return mg(e);
14926
+ let e = vh(a);
14927
+ if (lg(e)) return gg(e);
14925
14928
  }
14926
- if (bh(a)) return mg(vh(a));
14927
- if (yh(a)) return mg(a);
14929
+ if (xh(a)) return gg(yh(a));
14930
+ if (bh(a)) return gg(a);
14928
14931
  let f = a.trim();
14929
14932
  return f.startsWith("\"") && f.endsWith("\"") || f.startsWith("'") && f.endsWith("'") ? f.slice(1, -1) : a;
14930
14933
  }
14931
14934
  //#endregion
14932
14935
  //#region src/engine/cellFormatting.ts
14933
- 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) => {
14934
14937
  if (Mm(t)) return t.code;
14935
- if (!vg(e) || typeof t != "number") return t;
14938
+ if (!bg(e) || typeof t != "number") return t;
14936
14939
  let r = typeof e.f == "string" ? e.f : "";
14937
- return r ? mh(t, r) : typeof e.v == "string" && e.v.startsWith("=") && yg(t) ? mh(t, n ? "DD/MM/YYYY" : "MM/DD/YYYY") : t;
14938
- }, xg = /\$?[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+/g, Sg = /\$?[A-Z]+\$?\d+/g;
14939
- 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) {
14940
14943
  return e.startsWith("=") ? e.slice(1) : e;
14941
14944
  }
14942
- var wg = /^([A-Z]+)(\d+)$/;
14943
- function Tg(e) {
14944
- let [, t, n] = e.match(wg) ?? [];
14945
+ var Eg = /^([A-Z]+)(\d+)$/;
14946
+ function Dg(e) {
14947
+ let [, t, n] = e.match(Eg) ?? [];
14945
14948
  return t === void 0 || n === void 0 ? null : {
14946
14949
  col: _m(t),
14947
14950
  rowNumber: parseInt(n, 10)
14948
14951
  };
14949
14952
  }
14950
- function Eg(e) {
14953
+ function Og(e) {
14951
14954
  let [t, n, ...r] = e.split(":");
14952
14955
  if (t === void 0 || n === void 0 || r.length > 0) return null;
14953
- let i = Tg(t), a = Tg(n);
14956
+ let i = Dg(t), a = Dg(n);
14954
14957
  return i && a ? {
14955
14958
  start: i,
14956
14959
  end: a
14957
14960
  } : null;
14958
14961
  }
14959
- function Dg(e) {
14960
- let t = Eg(e.replace(/\$/g, ""));
14962
+ function kg(e) {
14963
+ let t = Og(e.replace(/\$/g, ""));
14961
14964
  if (!t) return [];
14962
14965
  let { start: n, end: r } = t, i = [];
14963
14966
  for (let e = n.rowNumber - 1; e <= r.rowNumber - 1; e++) for (let t = n.col; t <= r.col; t++) i.push({
@@ -14966,24 +14969,24 @@ function Dg(e) {
14966
14969
  });
14967
14970
  return i;
14968
14971
  }
14969
- function Og(e) {
14972
+ function Ag(e) {
14970
14973
  let t = e.trim().toUpperCase();
14971
14974
  if (t.includes(":")) {
14972
- let e = Dg(t);
14975
+ let e = kg(t);
14973
14976
  return e.length > 0 ? e : null;
14974
14977
  }
14975
- let n = kg(t);
14978
+ let n = jg(t);
14976
14979
  return n ? [n] : null;
14977
14980
  }
14978
- function kg(e) {
14979
- let t = Tg(e.replace(/\$/g, ""));
14981
+ function jg(e) {
14982
+ let t = Dg(e.replace(/\$/g, ""));
14980
14983
  return t ? {
14981
14984
  col: t.col,
14982
14985
  row: t.rowNumber - 1
14983
14986
  } : null;
14984
14987
  }
14985
- function Ag(e) {
14986
- 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);
14987
14990
  if (!r) return null;
14988
14991
  let { start: i, end: a } = r;
14989
14992
  return {
@@ -14994,38 +14997,38 @@ function Ag(e) {
14994
14997
  endRow: a.rowNumber
14995
14998
  };
14996
14999
  }
14997
- var jg = 0, Mg = 1;
14998
- function Ng(e, t) {
15000
+ var Ng = 0, Pg = 1;
15001
+ function Fg(e, t) {
14999
15002
  let n = Math.trunc(e);
15000
- 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;
15001
15004
  }
15002
- function Pg(e, t, n) {
15003
- 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);
15004
15007
  return r === null || i === null ? null : {
15005
15008
  colIndex: e.startCol + i,
15006
15009
  row: e.startRow + r
15007
15010
  };
15008
15011
  }
15009
- function Fg(e, t) {
15012
+ function Lg(e, t) {
15010
15013
  let n = Math.trunc(e);
15011
- return !Number.isFinite(n) || n < Mg || n > t ? null : n - Mg;
15014
+ return !Number.isFinite(n) || n < Pg || n > t ? null : n - Pg;
15012
15015
  }
15013
- function Ig(e) {
15014
- 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) => {
15015
15018
  let t = `${e.row},${e.col}`;
15016
15019
  r.has(t) || (r.add(t), n.push(e));
15017
15020
  };
15018
- for (let e of t.match(xg) ?? []) for (let t of Dg(e)) i(t);
15019
- let a = t.replace(xg, "");
15020
- for (let e of a.match(Sg) ?? []) {
15021
- 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);
15022
15025
  t && i(t);
15023
15026
  }
15024
15027
  return n;
15025
15028
  }
15026
15029
  //#endregion
15027
15030
  //#region src/engine/calculator.ts
15028
- function Lg(e) {
15031
+ function zg(e) {
15029
15032
  if (!e || !Array.isArray(e) || e.length === 0) return [];
15030
15033
  if (Array.isArray(e[0])) return e;
15031
15034
  if (a(e[0])) {
@@ -15038,24 +15041,24 @@ function Lg(e) {
15038
15041
  }
15039
15042
  return console.warn("Unknown data structure in spreadsheet, returning empty:", e), [];
15040
15043
  }
15041
- function Rg(e, t) {
15044
+ function Bg(e, t) {
15042
15045
  return e.map((e) => e.map((e) => {
15043
15046
  if (!a(e) || !("v" in e)) return e;
15044
15047
  let n = e.v;
15045
15048
  if (typeof n == "string" && !n.startsWith("=")) {
15046
- let r = Qh(n, t);
15049
+ let r = eg(n, t);
15047
15050
  if (r !== null) return {
15048
15051
  v: r,
15049
- f: e.f || ig(n, t)
15052
+ f: e.f || og(n, t)
15050
15053
  };
15051
15054
  }
15052
15055
  return e;
15053
15056
  }));
15054
15057
  }
15055
- function zg(e, n, r = {}) {
15056
- 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) => ({
15057
15060
  ...e,
15058
- data: Rg(Lg(e.data), i)
15061
+ data: Bg(zg(e.data), i)
15059
15062
  })), l = s, u = e.name, d = /* @__PURE__ */ new Map(), f = [], p = [], m = l.map((e) => [...e]);
15060
15063
  d.set(u, m);
15061
15064
  let h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set(), _ = (e, { cells: n, row: r, col: i }) => {
@@ -15075,7 +15078,7 @@ function zg(e, n, r = {}) {
15075
15078
  let t = w(e.substring(1));
15076
15079
  return n[i] = t, t;
15077
15080
  } catch (a) {
15078
- let { type: o, display: s } = Ah(a);
15081
+ let { type: o, display: s } = jh(a);
15079
15082
  f.push({
15080
15083
  cell: {
15081
15084
  row: r,
@@ -15141,7 +15144,7 @@ function zg(e, n, r = {}) {
15141
15144
  if (!l || !l.data) return null;
15142
15145
  let u = l.data.map((e) => [...e]);
15143
15146
  d.set(o, u);
15144
- let f = zg(l, c, {
15147
+ let f = Vg(l, c, {
15145
15148
  preferDDMMYYYY: i,
15146
15149
  skipFormatting: !0
15147
15150
  });
@@ -15152,8 +15155,8 @@ function zg(e, n, r = {}) {
15152
15155
  };
15153
15156
  }, b = (e) => {
15154
15157
  let t = y(e);
15155
- if (!t) throw Eh(e);
15156
- 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);
15157
15160
  if (!a) return 0;
15158
15161
  let { row: o, col: s } = a, c = o >= 0 ? n[o] : void 0;
15159
15162
  return !c || s < 0 || s >= c.length ? 0 : v(c[s], i ? {
@@ -15164,7 +15167,7 @@ function zg(e, n, r = {}) {
15164
15167
  }, x = (e, t) => {
15165
15168
  let n = y(e);
15166
15169
  if (!n) return [];
15167
- let { sheetData: r, ref: i, isCurrentSheet: a } = n, o = Og(i);
15170
+ let { sheetData: r, ref: i, isCurrentSheet: a } = n, o = Ag(i);
15168
15171
  if (!o) return [];
15169
15172
  let s = [];
15170
15173
  for (let { row: e, col: n } of o) {
@@ -15175,11 +15178,11 @@ function zg(e, n, r = {}) {
15175
15178
  row: e,
15176
15179
  col: n
15177
15180
  } : void 0);
15178
- 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);
15179
15182
  }
15180
15183
  }
15181
15184
  return s;
15182
- }, 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, {
15183
15186
  getCellValue: b,
15184
15187
  getRangeValues: S,
15185
15188
  getRangeValuesRaw: C,
@@ -15215,7 +15218,7 @@ function zg(e, n, r = {}) {
15215
15218
  return E((e, t) => {
15216
15219
  typeof t.cells[t.col] == "number" && a(e) && "f" in e || T(e, t);
15217
15220
  }), o || E((e, { cells: t, col: n }) => {
15218
- t[n] = bg(e, t[n], i);
15221
+ t[n] = Sg(e, t[n], i);
15219
15222
  }), {
15220
15223
  name: u,
15221
15224
  data: m,
@@ -15223,96 +15226,50 @@ function zg(e, n, r = {}) {
15223
15226
  errors: f
15224
15227
  };
15225
15228
  }
15226
- function Bg(e, t = {}) {
15227
- return e.map((n) => zg(n, e, t));
15228
- }
15229
- //#endregion
15230
- //#region src/engine/cellBuilder.ts
15231
- var Vg = /^[-+]?\s*[A-Z]+\s*\(/i, Hg = /[A-Z]+\d+\s*[+\-*/^]/, Ug = /\d+\s*[+\-*/^]\s*\d+/, Wg = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?$/;
15232
- function Gg(e) {
15233
- return Vg.test(e) || Hg.test(e) || Ug.test(e);
15234
- }
15235
- function Kg(e) {
15236
- let t = e.trim();
15237
- return t === "" ? "" : Gg(t) ? `=${t}` : Wg.test(t) ? Number(t) : t;
15238
- }
15239
- function qg(e) {
15240
- if (e.type === "string") return { v: String(e.value) };
15241
- let t = { v: Kg(e.formula ?? "") };
15242
- return e.format && e.format.length > 0 && (t.f = e.format), t;
15243
- }
15244
- //#endregion
15245
- //#region src/engine/jsonCellLocator.ts
15246
- function Jg(e, t, n) {
15247
- let r = -1, i = !1;
15248
- for (let a = t; a < e.length; a++) {
15249
- let t = e[a], o = a > 0 ? e[a - 1] : "";
15250
- if (t === "\"" && o !== "\\") i = !i;
15251
- else if (!i && t === "[" && (r++, r === n)) return a + 1;
15252
- }
15253
- return -1;
15254
- }
15255
- function Yg(e, t, n) {
15256
- let r = 0, i = !1, a = 0, o = 1;
15257
- for (let s = t; s < e.length; s++) {
15258
- let t = e[s], c = s > 0 ? e[s - 1] : "";
15259
- if (t === "\"" && c !== "\\" && (i = !i), !i) {
15260
- if (t === "[" && o++, t === "]" && (o--, o === 0)) return -1;
15261
- t === "{" && a++, t === "}" && a--, t === "," && a === 0 && o === 1 && r++;
15262
- }
15263
- if (r === n && t !== " " && t !== "\n" && t !== " " && t !== "[" && t !== ",") return s;
15264
- }
15265
- return -1;
15266
- }
15267
- function Xg(e, t, n, r) {
15268
- let i = `"name": ${JSON.stringify(t)}`, a = e.indexOf(i);
15269
- if (a === -1) return -1;
15270
- let o = e.indexOf("\"data\": [", a);
15271
- if (o === -1) return -1;
15272
- let s = Jg(e, o + 9, n);
15273
- return s === -1 ? -1 : Yg(e, s, r);
15229
+ function Hg(e, t = {}) {
15230
+ return e.map((n) => Vg(n, e, t));
15274
15231
  }
15275
15232
  //#endregion
15276
15233
  //#region src/engine/functions/statistical-math.ts
15277
- var Zg = (e) => e.reduce((e, t) => e + t, 0) / e.length;
15278
- function Qg(e) {
15279
- 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);
15280
15237
  }
15281
- function $g(e) {
15282
- 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)));
15283
15240
  }
15284
- function e_(e) {
15241
+ function Kg(e) {
15285
15242
  let t = Math.floor(e.length / 2);
15286
15243
  return e.slice(e.length % 2 == 0 ? t - 1 : t, t + 1);
15287
15244
  }
15288
- function t_(e) {
15245
+ function qg(e) {
15289
15246
  let t = /* @__PURE__ */ new Map();
15290
15247
  for (let n of e) t.set(n, (t.get(n) ?? 0) + 1);
15291
15248
  let n = 0, r = Dm;
15292
15249
  for (let [e, i] of t.entries()) i > n && (n = i, r = e);
15293
15250
  return n >= 2 ? r : Dm;
15294
15251
  }
15295
- var n_ = 2;
15296
- function r_(e) {
15297
- if (e.length < n_) return Sm;
15298
- let t = Zg(e);
15252
+ var Jg = 2;
15253
+ function Yg(e) {
15254
+ if (e.length < Jg) return Sm;
15255
+ let t = Ug(e);
15299
15256
  return e.reduce((e, n) => e + (n - t) ** 2, 0) / (e.length - 1);
15300
15257
  }
15301
- function i_(e) {
15302
- let t = r_(e);
15258
+ function Xg(e) {
15259
+ let t = Yg(e);
15303
15260
  return typeof t == "number" ? Math.sqrt(t) : t;
15304
15261
  }
15305
15262
  //#endregion
15306
15263
  //#region src/engine/functions/statistical.ts
15307
- 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) => {
15308
15265
  if (!e) return !1;
15309
- let [t, n] = c_(e).split(":");
15310
- return !t || !n ? !1 : s_(t) && s_(n);
15311
- }, 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) => {
15312
15269
  let r = [];
15313
15270
  for (let i of e) {
15314
15271
  let e = i?.trim();
15315
- e && (u_(e) ? n(e).forEach((e) => r.push({
15272
+ e && (n_(e) ? n(e).forEach((e) => r.push({
15316
15273
  value: e,
15317
15274
  isScalar: !1
15318
15275
  })) : r.push({
@@ -15321,20 +15278,20 @@ var a_ = 255, o_ = /^\$?[A-Z]+\$?\d+$/i, s_ = (e) => o_.test(e), c_ = (e) => e.s
15321
15278
  }));
15322
15279
  }
15323
15280
  return r;
15324
- }, 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) => {
15325
- 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);
15326
15283
  return n.length > 0 ? Math.max(...n) : 0;
15327
- }, __ = (e, t) => {
15328
- let n = f_(e, t);
15284
+ }, l_ = (e, t) => {
15285
+ let n = i_(e, t);
15329
15286
  return n.length > 0 ? Math.min(...n) : 0;
15330
- }, 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) => {
15331
- 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;
15332
15289
  return {
15333
15290
  criteriaRange: r(n),
15334
15291
  valueRange: r(i),
15335
- matches: Uh(X(t, e, 1).trim())
15292
+ matches: Gh(X(t, e, 1).trim())
15336
15293
  };
15337
- }, D_ = (e, t, n) => e.reduce((e, r, i) => n(r) ? {
15294
+ }, y_ = (e, t, n) => e.reduce((e, r, i) => n(r) ? {
15338
15295
  sum: e.sum + Q(t[i] ?? 0),
15339
15296
  count: e.count + 1
15340
15297
  } : e, {
@@ -15343,85 +15300,85 @@ var a_ = 255, o_ = /^\$?[A-Z]+\$?\d+$/i, s_ = (e) => o_.test(e), c_ = (e) => e.s
15343
15300
  });
15344
15301
  Z.register({
15345
15302
  name: "SUM",
15346
- handler: m_,
15303
+ handler: o_,
15347
15304
  minArgs: 1,
15348
- maxArgs: a_,
15305
+ maxArgs: Zg,
15349
15306
  description: "Returns the sum of all numbers in a range",
15350
15307
  examples: ["SUM(A1:A10)", "SUM(B2:B20)"],
15351
15308
  category: "Statistical"
15352
15309
  }), Z.register({
15353
15310
  name: "AVERAGE",
15354
- handler: h_,
15311
+ handler: s_,
15355
15312
  minArgs: 1,
15356
- maxArgs: a_,
15313
+ maxArgs: Zg,
15357
15314
  description: "Returns the average (arithmetic mean) of numbers in a range",
15358
15315
  examples: ["AVERAGE(A1:A10)", "AVERAGE(B2:B20)"],
15359
15316
  category: "Statistical"
15360
15317
  }), Z.register({
15361
15318
  name: "MAX",
15362
- handler: g_,
15319
+ handler: c_,
15363
15320
  minArgs: 1,
15364
15321
  description: "Returns the largest value in a range",
15365
15322
  examples: ["MAX(A1:A10)", "MAX(B2:B20)"],
15366
15323
  category: "Statistical"
15367
15324
  }), Z.register({
15368
15325
  name: "MIN",
15369
- handler: __,
15326
+ handler: l_,
15370
15327
  minArgs: 1,
15371
15328
  description: "Returns the smallest value in a range",
15372
15329
  examples: ["MIN(A1:A10)", "MIN(B2:B20)"],
15373
15330
  category: "Statistical"
15374
15331
  }), Z.register({
15375
15332
  name: "COUNT",
15376
- handler: y_,
15333
+ handler: d_,
15377
15334
  minArgs: 1,
15378
- maxArgs: a_,
15335
+ maxArgs: Zg,
15379
15336
  description: "Counts the number of cells in a range",
15380
15337
  examples: ["COUNT(A1:A10)", "COUNT(B2:B20)"],
15381
15338
  category: "Statistical"
15382
15339
  }), Z.register({
15383
15340
  name: "MEDIAN",
15384
- handler: b_,
15341
+ handler: f_,
15385
15342
  minArgs: 1,
15386
- maxArgs: a_,
15343
+ maxArgs: Zg,
15387
15344
  description: "Returns the median (middle) value in a range",
15388
15345
  examples: ["MEDIAN(A1:A10)", "MEDIAN(B2:B20)"],
15389
15346
  category: "Statistical"
15390
15347
  }), Z.register({
15391
15348
  name: "MODE",
15392
- handler: x_,
15349
+ handler: p_,
15393
15350
  minArgs: 1,
15394
- maxArgs: a_,
15351
+ maxArgs: Zg,
15395
15352
  description: "Returns the most frequently occurring value in a range",
15396
15353
  examples: ["MODE(A1:A10)", "MODE(B2:B20)"],
15397
15354
  category: "Statistical"
15398
15355
  }), Z.register({
15399
15356
  name: "STDEV",
15400
- handler: S_,
15357
+ handler: m_,
15401
15358
  minArgs: 1,
15402
- maxArgs: a_,
15359
+ maxArgs: Zg,
15403
15360
  description: "Returns the standard deviation of numbers in a range",
15404
15361
  examples: ["STDEV(A1:A10)", "STDEV(B2:B20)"],
15405
15362
  category: "Statistical"
15406
15363
  }), Z.register({
15407
15364
  name: "VAR",
15408
- handler: C_,
15365
+ handler: h_,
15409
15366
  minArgs: 1,
15410
- maxArgs: a_,
15367
+ maxArgs: Zg,
15411
15368
  description: "Returns the variance of numbers in a range",
15412
15369
  examples: ["VAR(A1:A10)", "VAR(B2:B20)"],
15413
15370
  category: "Statistical"
15414
15371
  }), Z.register({
15415
15372
  name: "COUNTA",
15416
- handler: w_,
15373
+ handler: g_,
15417
15374
  minArgs: 1,
15418
- maxArgs: a_,
15375
+ maxArgs: Zg,
15419
15376
  description: "Counts the number of non-empty cells in a range",
15420
15377
  examples: ["COUNTA(A1:A10)", "COUNTA(B2:B20)"],
15421
15378
  category: "Statistical"
15422
15379
  }), Z.register({
15423
15380
  name: "COUNTIF",
15424
- handler: T_,
15381
+ handler: __,
15425
15382
  minArgs: 2,
15426
15383
  maxArgs: 2,
15427
15384
  description: "Counts cells in a range that match a criteria",
@@ -15430,8 +15387,8 @@ Z.register({
15430
15387
  }), Z.register({
15431
15388
  name: "SUMIF",
15432
15389
  handler: (e, t) => {
15433
- let { criteriaRange: n, valueRange: r, matches: i } = E_(e, t);
15434
- return D_(n, r, i).sum;
15390
+ let { criteriaRange: n, valueRange: r, matches: i } = v_(e, t);
15391
+ return y_(n, r, i).sum;
15435
15392
  },
15436
15393
  minArgs: 2,
15437
15394
  maxArgs: 3,
@@ -15441,7 +15398,7 @@ Z.register({
15441
15398
  }), Z.register({
15442
15399
  name: "AVERAGEIF",
15443
15400
  handler: (e, t) => {
15444
- 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);
15445
15402
  return o > 0 ? a / o : Sm;
15446
15403
  },
15447
15404
  minArgs: 2,
@@ -15452,48 +15409,48 @@ Z.register({
15452
15409
  });
15453
15410
  //#endregion
15454
15411
  //#region src/engine/math-ops.ts
15455
- var O_ = 10, k_ = (e) => O_ ** +e;
15456
- function A_(e, t) {
15457
- let n = k_(t);
15412
+ var b_ = 10, x_ = (e) => b_ ** +e;
15413
+ function S_(e, t) {
15414
+ let n = x_(t);
15458
15415
  return Math.sign(e) * Math.round(Math.abs(e) * n) / n;
15459
15416
  }
15460
- function j_(e, t) {
15461
- let n = k_(t);
15417
+ function C_(e, t) {
15418
+ let n = x_(t);
15462
15419
  return Math.sign(e) * Math.ceil(Math.abs(e) * n) / n;
15463
15420
  }
15464
- function M_(e, t) {
15465
- let n = k_(t);
15421
+ function w_(e, t) {
15422
+ let n = x_(t);
15466
15423
  return Math.sign(e) * Math.floor(Math.abs(e) * n) / n;
15467
15424
  }
15468
- var N_ = (e, t) => e === 0 || Math.sign(e) === Math.sign(t);
15469
- function P_(e, t) {
15470
- 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;
15471
15428
  }
15472
- function F_(e, t) {
15473
- 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;
15474
15431
  }
15475
- function I_(e, t) {
15432
+ function O_(e, t) {
15476
15433
  return t === 0 ? Sm : e - t * Math.floor(e / t);
15477
15434
  }
15478
- function L_(e, t) {
15435
+ function k_(e, t) {
15479
15436
  return e < 0 && !Number.isInteger(t) ? Em : e ** +t;
15480
15437
  }
15481
- function R_(e) {
15438
+ function A_(e) {
15482
15439
  return e <= 0 ? Em : Math.log(e);
15483
15440
  }
15484
- function z_(e, t) {
15485
- let n = R_(e);
15441
+ function j_(e, t) {
15442
+ let n = A_(e);
15486
15443
  return Mm(n) ? n : t <= 0 || t === 1 ? Em : n / Math.log(t);
15487
15444
  }
15488
- function B_(e) {
15445
+ function M_(e) {
15489
15446
  return e <= 0 ? Em : Math.log10(e);
15490
15447
  }
15491
- function V_(e) {
15448
+ function N_(e) {
15492
15449
  return e < 0 ? Em : Math.sqrt(e);
15493
15450
  }
15494
15451
  Z.register({
15495
15452
  name: "ROUND",
15496
- 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)))),
15497
15454
  minArgs: 2,
15498
15455
  maxArgs: 2,
15499
15456
  description: "Rounds a number to a specified number of digits",
@@ -15501,7 +15458,7 @@ Z.register({
15501
15458
  category: "Mathematical"
15502
15459
  }), Z.register({
15503
15460
  name: "ROUNDUP",
15504
- 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)))),
15505
15462
  minArgs: 2,
15506
15463
  maxArgs: 2,
15507
15464
  description: "Rounds a number up, away from zero",
@@ -15509,7 +15466,7 @@ Z.register({
15509
15466
  category: "Mathematical"
15510
15467
  }), Z.register({
15511
15468
  name: "ROUNDDOWN",
15512
- 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)))),
15513
15470
  minArgs: 2,
15514
15471
  maxArgs: 2,
15515
15472
  description: "Rounds a number down, toward zero",
@@ -15517,7 +15474,7 @@ Z.register({
15517
15474
  category: "Mathematical"
15518
15475
  }), Z.register({
15519
15476
  name: "FLOOR",
15520
- 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)))),
15521
15478
  minArgs: 2,
15522
15479
  maxArgs: 2,
15523
15480
  description: "Rounds a number down to the nearest multiple of significance",
@@ -15525,7 +15482,7 @@ Z.register({
15525
15482
  category: "Mathematical"
15526
15483
  }), Z.register({
15527
15484
  name: "CEILING",
15528
- 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)))),
15529
15486
  minArgs: 2,
15530
15487
  maxArgs: 2,
15531
15488
  description: "Rounds a number up to the nearest multiple of significance",
@@ -15534,7 +15491,7 @@ Z.register({
15534
15491
  }), Z.register({
15535
15492
  name: "ABS",
15536
15493
  handler: (e, t) => {
15537
- let n = Ph(t.evaluateFormula(X(t, e, 0)));
15494
+ let n = Fh(t.evaluateFormula(X(t, e, 0)));
15538
15495
  return Mm(n) ? n : Math.abs(n);
15539
15496
  },
15540
15497
  minArgs: 1,
@@ -15544,7 +15501,7 @@ Z.register({
15544
15501
  category: "Mathematical"
15545
15502
  }), Z.register({
15546
15503
  name: "POWER",
15547
- 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)))),
15548
15505
  minArgs: 2,
15549
15506
  maxArgs: 2,
15550
15507
  description: "Returns the result of a number raised to a power",
@@ -15552,7 +15509,7 @@ Z.register({
15552
15509
  category: "Mathematical"
15553
15510
  }), Z.register({
15554
15511
  name: "SQRT",
15555
- handler: (e, t) => V_(Q(t.evaluateFormula(X(t, e, 0)))),
15512
+ handler: (e, t) => N_(Q(t.evaluateFormula(X(t, e, 0)))),
15556
15513
  minArgs: 1,
15557
15514
  maxArgs: 1,
15558
15515
  description: "Returns the square root of a number",
@@ -15560,7 +15517,7 @@ Z.register({
15560
15517
  category: "Mathematical"
15561
15518
  }), Z.register({
15562
15519
  name: "MOD",
15563
- 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)))),
15564
15521
  minArgs: 2,
15565
15522
  maxArgs: 2,
15566
15523
  description: "Returns the remainder after division",
@@ -15591,7 +15548,7 @@ Z.register({
15591
15548
  }), Z.register({
15592
15549
  name: "SIGN",
15593
15550
  handler: (e, t) => {
15594
- let n = Ph(t.evaluateFormula(X(t, e, 0)));
15551
+ let n = Fh(t.evaluateFormula(X(t, e, 0)));
15595
15552
  return Mm(n) ? n : Math.sign(n);
15596
15553
  },
15597
15554
  minArgs: 1,
@@ -15620,7 +15577,7 @@ Z.register({
15620
15577
  category: "Mathematical"
15621
15578
  }), Z.register({
15622
15579
  name: "LN",
15623
- handler: (e, t) => R_(Q(t.evaluateFormula(X(t, e, 0)))),
15580
+ handler: (e, t) => A_(Q(t.evaluateFormula(X(t, e, 0)))),
15624
15581
  minArgs: 1,
15625
15582
  maxArgs: 1,
15626
15583
  description: "Returns the natural logarithm of a number",
@@ -15628,7 +15585,7 @@ Z.register({
15628
15585
  category: "Mathematical"
15629
15586
  }), Z.register({
15630
15587
  name: "LOG",
15631
- 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),
15632
15589
  minArgs: 1,
15633
15590
  maxArgs: 2,
15634
15591
  description: "Returns the logarithm of a number to a specified base",
@@ -15636,7 +15593,7 @@ Z.register({
15636
15593
  category: "Mathematical"
15637
15594
  }), Z.register({
15638
15595
  name: "LOG10",
15639
- handler: (e, t) => B_(Q(t.evaluateFormula(X(t, e, 0)))),
15596
+ handler: (e, t) => M_(Q(t.evaluateFormula(X(t, e, 0)))),
15640
15597
  minArgs: 1,
15641
15598
  maxArgs: 1,
15642
15599
  description: "Returns the base-10 logarithm of a number",
@@ -15645,7 +15602,7 @@ Z.register({
15645
15602
  });
15646
15603
  //#endregion
15647
15604
  //#region src/engine/coerce-boolean.ts
15648
- function H_(e) {
15605
+ function P_(e) {
15649
15606
  if (typeof e == "boolean") return e;
15650
15607
  if (e == null) return !1;
15651
15608
  if (typeof e == "number") return e !== 0;
@@ -15661,7 +15618,7 @@ function H_(e) {
15661
15618
  Z.register({
15662
15619
  name: "IF",
15663
15620
  handler: (e, t) => {
15664
- 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;
15665
15622
  return /^["'](.*)["']$/.test(a) ? a.slice(1, -1) : t.evaluateFormula(a);
15666
15623
  },
15667
15624
  minArgs: 3,
@@ -15672,7 +15629,7 @@ Z.register({
15672
15629
  }), Z.register({
15673
15630
  name: "AND",
15674
15631
  handler: (e, t) => {
15675
- 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;
15676
15633
  return !0;
15677
15634
  },
15678
15635
  minArgs: 1,
@@ -15682,7 +15639,7 @@ Z.register({
15682
15639
  }), Z.register({
15683
15640
  name: "OR",
15684
15641
  handler: (e, t) => {
15685
- 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;
15686
15643
  return !1;
15687
15644
  },
15688
15645
  minArgs: 1,
@@ -15691,7 +15648,7 @@ Z.register({
15691
15648
  category: "Logical"
15692
15649
  }), Z.register({
15693
15650
  name: "NOT",
15694
- handler: (e, t) => !H_(t.evaluateFormula(X(t, e, 0))),
15651
+ handler: (e, t) => !P_(t.evaluateFormula(X(t, e, 0))),
15695
15652
  minArgs: 1,
15696
15653
  maxArgs: 1,
15697
15654
  description: "Reverses the logical value of its argument",
@@ -15729,8 +15686,8 @@ Z.register({
15729
15686
  if (e.length < 2 || e.length % 2 != 0) throw Error("IFS requires an even number of arguments (condition-value pairs)");
15730
15687
  for (let n = 0; n < e.length; n += 2) {
15731
15688
  let r = X(t, e, n), i = X(t, e, n + 1);
15732
- if (Um(fg(r, dg(r), (e) => Wm(t.getCellValue(e))), (e) => {
15733
- let n = zm(e);
15689
+ if (Wm(mg(r, pg(r), (e) => Gm(t.getCellValue(e))), (e) => {
15690
+ let n = Bm(e);
15734
15691
  return typeof n == "string" && n === e.trim() ? t.evaluateFormula(e) : n;
15735
15692
  })) return /^["'](.*)["']$/.test(i) ? i.slice(1, -1) : t.evaluateFormula(i);
15736
15693
  }
@@ -15759,98 +15716,98 @@ Z.register({
15759
15716
  });
15760
15717
  //#endregion
15761
15718
  //#region src/engine/textFormat.ts
15762
- 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) => {
15763
- 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);
15764
15721
  if (!t || t[0].endsWith(",")) return null;
15765
15722
  let n = e.slice(0, t.index), r = e.slice(t.index + t[0].length);
15766
- if (K_.test(r) || Y_(n) || Y_(r)) return null;
15723
+ if (R_.test(r) || V_(n) || V_(r)) return null;
15767
15724
  let [i, a = "", ...o] = t[0].split(".");
15768
15725
  return i === void 0 || o.length > 0 ? null : {
15769
15726
  prefix: n,
15770
15727
  suffix: r,
15771
15728
  useGrouping: i.includes(","),
15772
- integerMinDigits: J_(i, "0"),
15773
- minDecimals: J_(a, "0"),
15774
- maxDecimals: J_(a, "#0"),
15729
+ integerMinDigits: B_(i, "0"),
15730
+ minDecimals: B_(a, "0"),
15731
+ maxDecimals: B_(a, "#0"),
15775
15732
  isPercent: n.includes("%") || r.includes("%")
15776
15733
  };
15777
- }, Z_ = (e, t) => {
15778
- let n = e.replace(q_, "");
15734
+ }, U_ = (e, t) => {
15735
+ let n = e.replace(z_, "");
15779
15736
  return n.length >= t ? n : e.slice(0, t);
15780
- }, Q_ = (e, t) => {
15781
- 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);
15782
15739
  return c ? `${s}.${c}` : s;
15783
- }, $_ = (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) => {
15784
15741
  if (!Number.isFinite(e)) return null;
15785
- let n = X_(t);
15742
+ let n = H_(t);
15786
15743
  if (!n) return null;
15787
- let r = n.isPercent ? e * U_ : e, i = Q_(Math.abs(r), n);
15788
- return `${r < 0 && !$_(i) ? "-" : ""}${n.prefix}${i}${n.suffix}`;
15789
- }, 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) => {
15790
15747
  let t = Array.from(e);
15791
15748
  return t.map((e, n) => {
15792
15749
  let r = t[n - 1];
15793
- return r === void 0 || !tv(r) ? e.toUpperCase() : e.toLowerCase();
15750
+ return r === void 0 || !q_(r) ? e.toUpperCase() : e.toLowerCase();
15794
15751
  }).join("");
15795
- }, rv = (e) => !Number.isFinite(e) || e < 0 ? Cm : Math.trunc(e), iv = (e, t) => {
15796
- let n = rv(t);
15752
+ }, Y_ = (e) => !Number.isFinite(e) || e < 0 ? Cm : Math.trunc(e), X_ = (e, t) => {
15753
+ let n = Y_(t);
15797
15754
  return Mm(n) ? n : e.substring(0, n);
15798
- }, av = (e, t) => {
15799
- let n = rv(t);
15755
+ }, Z_ = (e, t) => {
15756
+ let n = Y_(t);
15800
15757
  return Mm(n) ? n : e.substring(e.length - n);
15801
- }, ov = (e, t, n, r) => {
15758
+ }, Q_ = (e, t, n, r) => {
15802
15759
  let i = e.split(t);
15803
15760
  return r > i.length - 1 ? e : i.slice(0, r).join(t) + n + i.slice(r).join(t);
15804
- }, sv = (e, t, n, r) => {
15761
+ }, $_ = (e, t, n, r) => {
15805
15762
  if (t === "") return e;
15806
15763
  if (r === void 0) return e.split(t).join(n);
15807
15764
  let i = Math.trunc(r);
15808
- return !Number.isFinite(i) || i <= 0 ? Cm : ov(e, t, n, i);
15809
- }, 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) => {
15810
- 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);
15811
15768
  if (Mm(r)) return r;
15812
15769
  if (!Number.isFinite(t) || t < 1) return Cm;
15813
15770
  let i = Math.trunc(t) - 1;
15814
15771
  return e.substring(i, i + r);
15815
- }, 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) => {
15816
- 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)));
15817
15774
  return n.substring(0, r) + a + n.substring(r + i);
15818
- }, xv = (e, t, n, r) => {
15775
+ }, pv = (e, t, n, r) => {
15819
15776
  let i = r.caseInsensitive ? e.toLowerCase() : e, a = (r.caseInsensitive ? t.toLowerCase() : t).indexOf(i, n);
15820
15777
  return a === -1 ? Cm : a + 1;
15821
- }, 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) => {
15822
- let n = t.evaluateFormula(X(t, e, 0)), r = wv(Lh(t.evaluateFormula(X(t, e, 1))));
15823
- return typeof n == "number" ? ev(n, r) ?? Lh(n) : Lh(n);
15824
- }, Ev = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/, Dv = (e) => {
15825
- 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;
15826
15783
  let t = Number(e);
15827
15784
  return Number.isFinite(t) ? t : null;
15828
- }, Ov = (e) => {
15785
+ }, xv = (e) => {
15829
15786
  let t = e.replace(/[$,]/g, "").trim();
15830
15787
  if (t.endsWith("%")) {
15831
- let e = Dv(t.slice(0, -1).trim());
15788
+ let e = bv(t.slice(0, -1).trim());
15832
15789
  return e === null ? Cm : e / 100;
15833
15790
  }
15834
- let n = Dv(t);
15791
+ let n = bv(t);
15835
15792
  return n === null ? Cm : n;
15836
15793
  };
15837
15794
  Z.register({
15838
15795
  name: "CONCATENATE",
15839
- handler: cv,
15796
+ handler: ev,
15840
15797
  minArgs: 1,
15841
15798
  description: "Joins several text strings into one string",
15842
15799
  examples: ["CONCATENATE(\"Hello\", \" \", \"World\")", "CONCATENATE(A1, B1)"],
15843
15800
  category: "Text"
15844
15801
  }), Z.register({
15845
15802
  name: "CONCAT",
15846
- handler: lv,
15803
+ handler: tv,
15847
15804
  minArgs: 1,
15848
15805
  description: "Joins several text strings into one string (same as CONCATENATE)",
15849
15806
  examples: ["CONCAT(\"Hello\", \" \", \"World\")", "CONCAT(A1, B1)"],
15850
15807
  category: "Text"
15851
15808
  }), Z.register({
15852
15809
  name: "LEFT",
15853
- handler: uv,
15810
+ handler: nv,
15854
15811
  minArgs: 1,
15855
15812
  maxArgs: 2,
15856
15813
  description: "Returns the leftmost characters from a text string",
@@ -15858,7 +15815,7 @@ Z.register({
15858
15815
  category: "Text"
15859
15816
  }), Z.register({
15860
15817
  name: "RIGHT",
15861
- handler: dv,
15818
+ handler: rv,
15862
15819
  minArgs: 1,
15863
15820
  maxArgs: 2,
15864
15821
  description: "Returns the rightmost characters from a text string",
@@ -15866,7 +15823,7 @@ Z.register({
15866
15823
  category: "Text"
15867
15824
  }), Z.register({
15868
15825
  name: "MID",
15869
- handler: pv,
15826
+ handler: av,
15870
15827
  minArgs: 3,
15871
15828
  maxArgs: 3,
15872
15829
  description: "Returns characters from the middle of a text string",
@@ -15874,7 +15831,7 @@ Z.register({
15874
15831
  category: "Text"
15875
15832
  }), Z.register({
15876
15833
  name: "LEN",
15877
- handler: mv,
15834
+ handler: ov,
15878
15835
  minArgs: 1,
15879
15836
  maxArgs: 1,
15880
15837
  description: "Returns the number of characters in a text string",
@@ -15882,7 +15839,7 @@ Z.register({
15882
15839
  category: "Text"
15883
15840
  }), Z.register({
15884
15841
  name: "UPPER",
15885
- handler: hv,
15842
+ handler: sv,
15886
15843
  minArgs: 1,
15887
15844
  maxArgs: 1,
15888
15845
  description: "Converts text to uppercase",
@@ -15890,7 +15847,7 @@ Z.register({
15890
15847
  category: "Text"
15891
15848
  }), Z.register({
15892
15849
  name: "LOWER",
15893
- handler: gv,
15850
+ handler: cv,
15894
15851
  minArgs: 1,
15895
15852
  maxArgs: 1,
15896
15853
  description: "Converts text to lowercase",
@@ -15898,7 +15855,7 @@ Z.register({
15898
15855
  category: "Text"
15899
15856
  }), Z.register({
15900
15857
  name: "PROPER",
15901
- handler: _v,
15858
+ handler: lv,
15902
15859
  minArgs: 1,
15903
15860
  maxArgs: 1,
15904
15861
  description: "Capitalizes the first letter of each word",
@@ -15906,7 +15863,7 @@ Z.register({
15906
15863
  category: "Text"
15907
15864
  }), Z.register({
15908
15865
  name: "TRIM",
15909
- handler: vv,
15866
+ handler: uv,
15910
15867
  minArgs: 1,
15911
15868
  maxArgs: 1,
15912
15869
  description: "Removes extra spaces from text",
@@ -15914,7 +15871,7 @@ Z.register({
15914
15871
  category: "Text"
15915
15872
  }), Z.register({
15916
15873
  name: "SUBSTITUTE",
15917
- handler: yv,
15874
+ handler: dv,
15918
15875
  minArgs: 3,
15919
15876
  maxArgs: 4,
15920
15877
  description: "Replaces old text with new text in a string",
@@ -15922,7 +15879,7 @@ Z.register({
15922
15879
  category: "Text"
15923
15880
  }), Z.register({
15924
15881
  name: "REPLACE",
15925
- handler: bv,
15882
+ handler: fv,
15926
15883
  minArgs: 4,
15927
15884
  maxArgs: 4,
15928
15885
  description: "Replaces part of a text string with a different text string",
@@ -15930,7 +15887,7 @@ Z.register({
15930
15887
  category: "Text"
15931
15888
  }), Z.register({
15932
15889
  name: "FIND",
15933
- handler: Sv,
15890
+ handler: hv,
15934
15891
  minArgs: 2,
15935
15892
  maxArgs: 3,
15936
15893
  description: "Finds one text string within another (case-sensitive)",
@@ -15938,7 +15895,7 @@ Z.register({
15938
15895
  category: "Text"
15939
15896
  }), Z.register({
15940
15897
  name: "SEARCH",
15941
- handler: Cv,
15898
+ handler: gv,
15942
15899
  minArgs: 2,
15943
15900
  maxArgs: 3,
15944
15901
  description: "Finds one text string within another (case-insensitive)",
@@ -15946,7 +15903,7 @@ Z.register({
15946
15903
  category: "Text"
15947
15904
  }), Z.register({
15948
15905
  name: "TEXT",
15949
- handler: Tv,
15906
+ handler: vv,
15950
15907
  minArgs: 2,
15951
15908
  maxArgs: 2,
15952
15909
  description: "Formats a number and converts it to text",
@@ -15954,7 +15911,7 @@ Z.register({
15954
15911
  category: "Text"
15955
15912
  }), Z.register({
15956
15913
  name: "VALUE",
15957
- handler: (e, t) => Ov(Lh(t.evaluateFormula(X(t, e, 0)))),
15914
+ handler: (e, t) => xv(zh(t.evaluateFormula(X(t, e, 0)))),
15958
15915
  minArgs: 1,
15959
15916
  maxArgs: 1,
15960
15917
  description: "Converts a text string to a number",
@@ -15962,7 +15919,7 @@ Z.register({
15962
15919
  category: "Text"
15963
15920
  }), Z.register({
15964
15921
  name: "EXACT",
15965
- 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))),
15966
15923
  minArgs: 2,
15967
15924
  maxArgs: 2,
15968
15925
  description: "Checks if two text strings are exactly the same",
@@ -15971,50 +15928,50 @@ Z.register({
15971
15928
  });
15972
15929
  //#endregion
15973
15930
  //#region src/engine/financial-math.ts
15974
- function kv(e, t, n, r, i) {
15931
+ function Sv(e, t, n, r, i) {
15975
15932
  if (e === 0) return -(r + n * t);
15976
15933
  let a = (1 + e) ** +t;
15977
15934
  return -r * a - n * (a - 1) * (1 + e * i) / e;
15978
15935
  }
15979
- function Av(e, t, n, r, i) {
15936
+ function Cv(e, t, n, r, i) {
15980
15937
  if (e === 0) return -(r + n) / t;
15981
15938
  let a = (1 + e) ** +t;
15982
15939
  return -e * (r + n * a) / ((a - 1) * (1 + e * i));
15983
15940
  }
15984
- function jv(e, t, n, r, i, a) {
15985
- 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);
15986
15943
  if (t === 1 && a === 1) return 0;
15987
- 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;
15988
15945
  return a === 1 ? s / (1 + e) : s;
15989
15946
  }
15990
- function Mv(e, t, n, r, i, a) {
15991
- 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);
15992
15949
  }
15993
- function Nv(e, t, n, r, i) {
15950
+ function Ev(e, t, n, r, i) {
15994
15951
  if (e === 0) return -(r + n * t);
15995
15952
  let a = (1 + e) ** +t;
15996
15953
  return (-r - n * (a - 1) * (1 + e * i) / e) / a;
15997
15954
  }
15998
- function Pv(e, t, n, r, i) {
15955
+ function Dv(e, t, n, r, i) {
15999
15956
  if (e === 0) return -(r + n) / t;
16000
15957
  let a = t * (1 + e * i);
16001
15958
  return Math.log((a - r * e) / (a + n * e)) / Math.log(1 + e);
16002
15959
  }
16003
- var Fv = 100, Iv = 1e-7;
16004
- function Lv(e, t, n, r, i, a) {
15960
+ var Ov = 100, kv = 1e-7;
15961
+ function Av(e, t, n, r, i, a) {
16005
15962
  let o = a;
16006
- for (let a = 0; a < Fv; a++) {
16007
- Math.abs(o) < Iv && (o = Iv);
15963
+ for (let a = 0; a < Ov; a++) {
15964
+ Math.abs(o) < kv && (o = kv);
16008
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;
16009
- 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;
16010
15967
  o = l;
16011
15968
  }
16012
15969
  return Em;
16013
15970
  }
16014
- function Rv(e, t) {
15971
+ function jv(e, t) {
16015
15972
  return t.reduce((t, n, r) => t + n / (1 + e) ** +(r + 1), 0);
16016
15973
  }
16017
- function zv(e, t) {
15974
+ function Mv(e, t) {
16018
15975
  return e.reduce((e, n, r) => {
16019
15976
  let i = (1 + t) ** +r;
16020
15977
  return {
@@ -16026,24 +15983,49 @@ function zv(e, t) {
16026
15983
  dnpv: 0
16027
15984
  });
16028
15985
  }
16029
- function Bv(e, t) {
15986
+ function Nv(e, t) {
16030
15987
  let n = t;
16031
- for (let t = 0; t < Fv; t++) {
16032
- let { npv: t, dnpv: r } = zv(e, n);
16033
- if (Math.abs(t) < Iv) return n;
16034
- 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;
16035
15992
  let i = n - t / r;
16036
- 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;
16037
15994
  n = i;
16038
15995
  }
16039
15996
  return Em;
16040
15997
  }
16041
15998
  //#endregion
16042
15999
  //#region src/engine/functions/financial.ts
16043
- 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));
16044
16026
  Z.register({
16045
16027
  name: "FV",
16046
- handler: Vv,
16028
+ handler: Fv,
16047
16029
  minArgs: 3,
16048
16030
  maxArgs: 5,
16049
16031
  description: "Calculates the future value of an investment based on periodic, constant payments and a constant interest rate",
@@ -16051,7 +16033,7 @@ Z.register({
16051
16033
  category: "Financial"
16052
16034
  }), Z.register({
16053
16035
  name: "PV",
16054
- handler: Hv,
16036
+ handler: Iv,
16055
16037
  minArgs: 3,
16056
16038
  maxArgs: 5,
16057
16039
  description: "Calculates the present value of an investment based on periodic, constant payments and a constant interest rate",
@@ -16059,7 +16041,7 @@ Z.register({
16059
16041
  category: "Financial"
16060
16042
  }), Z.register({
16061
16043
  name: "PMT",
16062
- handler: Uv,
16044
+ handler: Lv,
16063
16045
  minArgs: 3,
16064
16046
  maxArgs: 5,
16065
16047
  description: "Calculates the payment for a loan based on constant payments and a constant interest rate",
@@ -16067,7 +16049,7 @@ Z.register({
16067
16049
  category: "Financial"
16068
16050
  }), Z.register({
16069
16051
  name: "NPER",
16070
- handler: Wv,
16052
+ handler: Rv,
16071
16053
  minArgs: 3,
16072
16054
  maxArgs: 5,
16073
16055
  description: "Calculates the number of periods for an investment based on periodic, constant payments and a constant interest rate",
@@ -16075,7 +16057,7 @@ Z.register({
16075
16057
  category: "Financial"
16076
16058
  }), Z.register({
16077
16059
  name: "RATE",
16078
- handler: Gv,
16060
+ handler: zv,
16079
16061
  minArgs: 3,
16080
16062
  maxArgs: 6,
16081
16063
  description: "Calculates the interest rate per period of an annuity using iteration",
@@ -16083,7 +16065,7 @@ Z.register({
16083
16065
  category: "Financial"
16084
16066
  }), Z.register({
16085
16067
  name: "IPMT",
16086
- handler: qv,
16068
+ handler: Vv,
16087
16069
  minArgs: 4,
16088
16070
  maxArgs: 6,
16089
16071
  description: "Calculates the interest payment for a given period for an investment",
@@ -16091,7 +16073,7 @@ Z.register({
16091
16073
  category: "Financial"
16092
16074
  }), Z.register({
16093
16075
  name: "PPMT",
16094
- handler: Jv,
16076
+ handler: Hv,
16095
16077
  minArgs: 4,
16096
16078
  maxArgs: 6,
16097
16079
  description: "Calculates the payment on the principal for a given period for an investment",
@@ -16099,7 +16081,7 @@ Z.register({
16099
16081
  category: "Financial"
16100
16082
  }), Z.register({
16101
16083
  name: "NPV",
16102
- 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)),
16103
16085
  minArgs: 2,
16104
16086
  description: "Calculates the net present value of an investment based on a discount rate and a series of future cash flows",
16105
16087
  examples: ["NPV(0.1, -10000, 3000, 4200, 6800)", "NPV(A1, B1:B10)"],
@@ -16109,7 +16091,7 @@ Z.register({
16109
16091
  handler: (e, t) => {
16110
16092
  let n = t.getRangeValues(X(t, e, 0)).map(Q), r = e.length === 2 ? Q(t.evaluateFormula(X(t, e, 1))) : .1;
16111
16093
  if (n.length === 0) throw Error("IRR requires at least one value");
16112
- return Bv(n, r);
16094
+ return Nv(n, r);
16113
16095
  },
16114
16096
  minArgs: 1,
16115
16097
  maxArgs: 2,
@@ -16119,7 +16101,7 @@ Z.register({
16119
16101
  });
16120
16102
  //#endregion
16121
16103
  //#region src/engine/functions/lookup-math.ts
16122
- function Xv(e) {
16104
+ function Wv(e) {
16123
16105
  if (typeof e == "boolean") return e;
16124
16106
  if (typeof e == "number") return e !== 0;
16125
16107
  if (Mm(e)) return !1;
@@ -16128,25 +16110,24 @@ function Xv(e) {
16128
16110
  }
16129
16111
  //#endregion
16130
16112
  //#region src/engine/functions/lookup.ts
16131
- 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) => {
16132
16114
  let n = e.findIndex((e) => !t(e));
16133
16115
  return (n === -1 ? e.length : n) - 1;
16134
- }, ny = (e, t, n = 1, r = 1) => {
16135
- 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) => {
16136
16117
  if (n === 0) {
16137
- let n = typeof e == "string" && (e.includes("*") || e.includes("?")) ? Uh(e) : (t) => t == e;
16138
- 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);
16139
16120
  }
16140
- 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;
16141
16122
  };
16142
16123
  Z.register({
16143
16124
  name: "VLOOKUP",
16144
16125
  handler: (e, t) => {
16145
- 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));
16146
16127
  if (!r) throw Error("Invalid table array range");
16147
- 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);
16148
16129
  if (o === null) return wm;
16149
- 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);
16150
16131
  if (c === -1) return Dm;
16151
16132
  let l = vm(r.startCol + o), u = r.startRow + c;
16152
16133
  return t.getCellValue(`${r.sheetPrefix}${l}${u}`);
@@ -16159,11 +16140,11 @@ Z.register({
16159
16140
  }), Z.register({
16160
16141
  name: "HLOOKUP",
16161
16142
  handler: (e, t) => {
16162
- 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));
16163
16144
  if (!r) throw Error("Invalid range format");
16164
- 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);
16165
16146
  if (o === null) return wm;
16166
- 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);
16167
16148
  if (s === -1) return Dm;
16168
16149
  let c = vm(r.startCol + s), l = r.startRow + o;
16169
16150
  return t.getCellValue(`${r.sheetPrefix}${c}${l}`);
@@ -16176,7 +16157,7 @@ Z.register({
16176
16157
  }), Z.register({
16177
16158
  name: "MATCH",
16178
16159
  handler: (e, t) => {
16179
- 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);
16180
16161
  return a === -1 ? Dm : a + 1;
16181
16162
  },
16182
16163
  minArgs: 2,
@@ -16187,9 +16168,9 @@ Z.register({
16187
16168
  }), Z.register({
16188
16169
  name: "INDEX",
16189
16170
  handler: (e, t) => {
16190
- let n = Ag(X(t, e, 0));
16171
+ let n = Mg(X(t, e, 0));
16191
16172
  if (!n) throw Error("Invalid range format");
16192
- 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);
16193
16174
  return r ? t.getCellValue(`${n.sheetPrefix}${vm(r.colIndex)}${r.row}`) : wm;
16194
16175
  },
16195
16176
  minArgs: 2,
@@ -16200,8 +16181,8 @@ Z.register({
16200
16181
  }), Z.register({
16201
16182
  name: "XLOOKUP",
16202
16183
  handler: (e, t) => {
16203
- 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;
16204
- 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);
16205
16186
  else {
16206
16187
  let e = Infinity;
16207
16188
  for (let t = 0; t < l.length; t++) {
@@ -16229,7 +16210,7 @@ Z.register({
16229
16210
  name: "NOW",
16230
16211
  handler: () => {
16231
16212
  let e = /* @__PURE__ */ new Date();
16232
- 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())));
16233
16214
  },
16234
16215
  minArgs: 0,
16235
16216
  maxArgs: 0,
@@ -16240,7 +16221,7 @@ Z.register({
16240
16221
  name: "TODAY",
16241
16222
  handler: () => {
16242
16223
  let e = /* @__PURE__ */ new Date();
16243
- 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())));
16244
16225
  },
16245
16226
  minArgs: 0,
16246
16227
  maxArgs: 0,
@@ -16251,7 +16232,7 @@ Z.register({
16251
16232
  name: "DATE",
16252
16233
  handler: (e, t) => {
16253
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)));
16254
- return Qm(new Date(Date.UTC(n, r - 1, i)));
16235
+ return $m(new Date(Date.UTC(n, r - 1, i)));
16255
16236
  },
16256
16237
  minArgs: 3,
16257
16238
  maxArgs: 3,
@@ -16271,7 +16252,7 @@ Z.register({
16271
16252
  category: "Date & Time"
16272
16253
  }), Z.register({
16273
16254
  name: "YEAR",
16274
- 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(),
16275
16256
  minArgs: 1,
16276
16257
  maxArgs: 1,
16277
16258
  description: "Converts a serial number to a year",
@@ -16279,7 +16260,7 @@ Z.register({
16279
16260
  category: "Date & Time"
16280
16261
  }), Z.register({
16281
16262
  name: "MONTH",
16282
- 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,
16283
16264
  minArgs: 1,
16284
16265
  maxArgs: 1,
16285
16266
  description: "Converts a serial number to a month",
@@ -16287,7 +16268,7 @@ Z.register({
16287
16268
  category: "Date & Time"
16288
16269
  }), Z.register({
16289
16270
  name: "DAY",
16290
- 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(),
16291
16272
  minArgs: 1,
16292
16273
  maxArgs: 1,
16293
16274
  description: "Converts a serial number to a day of the month",
@@ -16328,7 +16309,7 @@ Z.register({
16328
16309
  category: "Date & Time"
16329
16310
  }), Z.register({
16330
16311
  name: "DATEDIF",
16331
- 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)))),
16332
16313
  minArgs: 3,
16333
16314
  maxArgs: 3,
16334
16315
  description: "Calculates the number of days, months, or years between two dates",
@@ -16336,8 +16317,57 @@ Z.register({
16336
16317
  category: "Date & Time"
16337
16318
  });
16338
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
16339
16369
  //#region src/engine/engine.ts
16340
- var ry = class {
16370
+ var ly = class {
16341
16371
  options;
16342
16372
  constructor(e = {}) {
16343
16373
  this.options = {
@@ -16348,10 +16378,10 @@ var ry = class {
16348
16378
  };
16349
16379
  }
16350
16380
  calculate(e, t) {
16351
- return zg(e, t, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16381
+ return Vg(e, t, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16352
16382
  }
16353
16383
  calculateWorkbook(e) {
16354
- return Bg(e, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16384
+ return Hg(e, { preferDDMMYYYY: this.options.preferDDMMYYYY });
16355
16385
  }
16356
16386
  getOptions() {
16357
16387
  return { ...this.options };
@@ -16371,31 +16401,31 @@ var ry = class {
16371
16401
  toStringArray(e) {
16372
16402
  return e.data.map((e) => e.map((e) => String(e ?? "")));
16373
16403
  }
16374
- }, iy = "cell-editing", ay = "cell-referenced";
16375
- function oy(e) {
16404
+ }, uy = "cell-editing", dy = "cell-referenced";
16405
+ function fy(e) {
16376
16406
  if (e) {
16377
- e.querySelector(`.${iy}`)?.classList.remove(iy);
16378
- 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);
16379
16409
  }
16380
16410
  }
16381
- function sy(e, t, n) {
16411
+ function py(e, t, n) {
16382
16412
  if (!e) return;
16383
16413
  let r = e.querySelectorAll("tr")[t.row];
16384
16414
  if (!r) return;
16385
16415
  let i = r.querySelectorAll("td")[t.col];
16386
16416
  i && i.classList.add(n);
16387
16417
  }
16388
- function cy(e, t, n) {
16418
+ function my(e, t, n) {
16389
16419
  if (!e) return;
16390
16420
  let r = e.querySelector("#spreadsheet-table");
16391
16421
  if (r) {
16392
- t && sy(r, t, iy);
16393
- 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);
16394
16424
  }
16395
16425
  }
16396
16426
  //#endregion
16397
16427
  //#region src/vue/keyboardNav.ts
16398
- function ly(e, t, n) {
16428
+ function hy(e, t, n) {
16399
16429
  switch (e) {
16400
16430
  case "ArrowUp": return {
16401
16431
  row: Math.max(0, t - 1),
@@ -16416,21 +16446,21 @@ function ly(e, t, n) {
16416
16446
  default: return null;
16417
16447
  }
16418
16448
  }
16419
- function uy(e, t, n) {
16449
+ function gy(e, t, n) {
16420
16450
  if (!e?.data || t < 0 || t >= e.data.length) return !1;
16421
16451
  let r = e.data[t];
16422
16452
  return r ? n >= 0 && n < r.length : !1;
16423
16453
  }
16424
16454
  //#endregion
16425
16455
  //#region src/vue/htmlText.ts
16426
- var dy = {
16456
+ var _y = {
16427
16457
  "&": "&amp;",
16428
16458
  "<": "&lt;",
16429
16459
  ">": "&gt;",
16430
16460
  "\"": "&quot;",
16431
16461
  "'": "&#39;"
16432
- }, fy = (e) => e.replace(/[&<>"']/g, (e) => dy[e] ?? e);
16433
- function py(e, t) {
16462
+ }, vy = (e) => e.replace(/[&<>"']/g, (e) => _y[e] ?? e);
16463
+ function yy(e, t) {
16434
16464
  if (!e.startsWith("http://") && !e.startsWith("https://")) return !1;
16435
16465
  try {
16436
16466
  return new URL(e).origin !== t;
@@ -16438,7 +16468,7 @@ function py(e, t) {
16438
16468
  return !1;
16439
16469
  }
16440
16470
  }
16441
- var my = ae({
16471
+ var by = ae({
16442
16472
  de: {
16443
16473
  untitled: "Tabelle",
16444
16474
  sheetCount: (e) => e === 1 ? "1 Blatt" : `${e} Blätter`,
@@ -16602,7 +16632,7 @@ var my = ae({
16602
16632
  });
16603
16633
  //#endregion
16604
16634
  //#region src/vue/sheetSession.ts
16605
- async function hy(e, t) {
16635
+ async function xy(e, t) {
16606
16636
  if (!e) return {
16607
16637
  kind: "sheets",
16608
16638
  sheets: []
@@ -16630,12 +16660,12 @@ async function hy(e, t) {
16630
16660
  };
16631
16661
  }
16632
16662
  }
16633
- function gy(e) {
16663
+ function Sy(e) {
16634
16664
  let t = p(), n = 0;
16635
16665
  return {
16636
16666
  async load(t) {
16637
16667
  n += 1;
16638
- let r = n, i = await hy(t, e);
16668
+ let r = n, i = await xy(t, e);
16639
16669
  return r === n ? i : null;
16640
16670
  },
16641
16671
  async save(n, r) {
@@ -16646,25 +16676,25 @@ function gy(e) {
16646
16676
  }
16647
16677
  //#endregion
16648
16678
  //#region src/vue/View.vue?vue&type=script&setup=true&lang.ts
16649
- var _y = { class: "spreadsheet-container" }, vy = {
16679
+ var Cy = { class: "spreadsheet-container" }, wy = {
16650
16680
  key: 0,
16651
16681
  class: "min-h-full p-8 flex items-center justify-center"
16652
- }, yy = { class: "text-gray-500" }, by = {
16682
+ }, Ty = { class: "text-gray-500" }, Ey = {
16653
16683
  key: 1,
16654
16684
  class: "min-h-full p-8 flex items-center justify-center"
16655
- }, xy = { class: "error" }, Sy = {
16685
+ }, Dy = { class: "error" }, Oy = {
16656
16686
  key: 2,
16657
16687
  class: "min-h-full p-8 flex items-center justify-center"
16658
- }, 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 = {
16659
16689
  key: 0,
16660
16690
  class: "sheet-tabs"
16661
- }, ky = ["onClick"], Ay = ["innerHTML"], jy = ["disabled"], My = {
16691
+ }, Fy = ["onClick"], Iy = ["innerHTML"], Ly = ["disabled"], Ry = {
16662
16692
  key: 1,
16663
16693
  class: "mini-editor-panel"
16664
- }, Ny = { class: "mini-editor-content" }, Py = {
16694
+ }, zy = { class: "mini-editor-content" }, By = {
16665
16695
  key: 0,
16666
16696
  class: "cell-ref"
16667
- }, 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) => {
16668
16698
  let n = e.__vccOpts || e;
16669
16699
  for (let [e, r] of t) n[e] = r;
16670
16700
  return n;
@@ -16673,7 +16703,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16673
16703
  props: { selectedResult: {} },
16674
16704
  emits: ["updateResult"],
16675
16705
  setup(e, { emit: n }) {
16676
- 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");
16677
16707
  function c(e) {
16678
16708
  if (!Array.isArray(e) || e.length === 0) return [];
16679
16709
  if (Array.isArray(e[0])) return e;
@@ -16687,11 +16717,11 @@ var _y = { class: "spreadsheet-container" }, vy = {
16687
16717
  }
16688
16718
  return [];
16689
16719
  }
16690
- 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) => {
16691
16721
  let t = f(e) && f(e.data) ? s(e.data.sheets) : null;
16692
16722
  if (!t) throw Error(r.value.dataMustBeArray);
16693
16723
  return t;
16694
- }, le = gy(i ? {
16724
+ }, le = Sy(i ? {
16695
16725
  loadFromHost: (e) => i.dispatch({
16696
16726
  kind: "loadSpreadsheet",
16697
16727
  path: e
@@ -16742,13 +16772,13 @@ var _y = { class: "spreadsheet-container" }, vy = {
16742
16772
  }
16743
16773
  }), Se = vm, Ce = (e) => ({
16744
16774
  name: e.name,
16745
- data: Lg(e.data)
16775
+ data: zg(e.data)
16746
16776
  }), we = (e, t) => {
16747
16777
  let n = oe.value.map(Ce), r = {
16748
16778
  name: t || "Sheet1",
16749
- data: Lg(e)
16779
+ data: zg(e)
16750
16780
  };
16751
- 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;
16752
16782
  }, Te = h(() => {
16753
16783
  if (!oe.value || oe.value.length === 0) return "";
16754
16784
  let e = oe.value[j.value];
@@ -16760,7 +16790,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16760
16790
  editable: !1
16761
16791
  });
16762
16792
  } catch (e) {
16763
- 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>`;
16764
16794
  }
16765
16795
  }), Ee = () => {
16766
16796
  if (oe.value && oe.value.length !== 0) try {
@@ -16783,7 +16813,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16783
16813
  let i = r[e][t];
16784
16814
  if (f(i) && "v" in i) {
16785
16815
  let e = i.v, t = typeof i.f == "string" ? i.f : "";
16786
- 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 = []);
16787
16817
  } else ve.value = "string", _e.value = ke(i), ye.value = "", be.value = "", N.value = [];
16788
16818
  M.value = {
16789
16819
  row: e,
@@ -16804,13 +16834,13 @@ var _y = { class: "spreadsheet-container" }, vy = {
16804
16834
  let { row: n, col: r } = M.value, i = c(t.data);
16805
16835
  for (; i.length <= n;) i.push([]);
16806
16836
  Array.isArray(i[n]) || (i[n] = []);
16807
- let a = qg({
16837
+ let a = ay({
16808
16838
  type: ve.value,
16809
16839
  value: _e.value,
16810
16840
  formula: ye.value,
16811
16841
  format: be.value
16812
16842
  });
16813
- 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 = [];
16814
16844
  } catch (e) {
16815
16845
  alert(`Failed to save cell: ${t(e, "Unknown error")}`);
16816
16846
  }
@@ -16818,7 +16848,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16818
16848
  function Me(e) {
16819
16849
  if (e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey) return !1;
16820
16850
  let t = e.target instanceof Element ? e.target.closest("a") : null;
16821
- 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);
16822
16852
  }
16823
16853
  function Ne(e) {
16824
16854
  if (Me(e)) return;
@@ -16833,7 +16863,7 @@ var _y = { class: "spreadsheet-container" }, vy = {
16833
16863
  if (!e || !e.data) return;
16834
16864
  let t = c(e.data);
16835
16865
  if (!t[i] || t[i][r] === void 0) return;
16836
- 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);
16837
16867
  if (a < 0) return;
16838
16868
  pe.value.focus(), pe.value.setSelectionRange(a, a + n.length);
16839
16869
  let o = se.value.substring(0, a).split("\n").length, s = pe.value;
@@ -16861,16 +16891,16 @@ var _y = { class: "spreadsheet-container" }, vy = {
16861
16891
  N,
16862
16892
  Te
16863
16893
  ], () => {
16864
- 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);
16865
16895
  }, { flush: "post" });
16866
16896
  function Fe(e) {
16867
16897
  return e instanceof HTMLElement ? e.tagName === "INPUT" || e.tagName === "TEXTAREA" || e.isContentEditable : !1;
16868
16898
  }
16869
16899
  function Ie(e) {
16870
16900
  if (!ge.value || !M.value || Fe(e.target)) return;
16871
- 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);
16872
16902
  if (r) try {
16873
- 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;
16874
16904
  e.preventDefault(), Oe(r.row, r.col);
16875
16905
  } catch (e) {
16876
16906
  console.error("Failed to navigate cells:", e);
@@ -16880,24 +16910,24 @@ var _y = { class: "spreadsheet-container" }, vy = {
16880
16910
  document.addEventListener("keydown", Ie);
16881
16911
  }), w(() => {
16882
16912
  document.removeEventListener("keydown", Ie);
16883
- }), (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 }, [
16884
- v("div", wy, [v("div", Ty, [
16885
- 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", {
16886
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",
16887
16917
  onClick: Ee
16888
16918
  }, [n[6] ||= v("span", { class: "material-icons text-base" }, "download", -1), y(" " + O(k(r).excel), 1)])]),
16889
- 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", {
16890
16920
  key: t,
16891
16921
  class: S(["sheet-tab", { active: j.value === t }]),
16892
16922
  onClick: (e) => j.value = t
16893
- }, O(e.name), 11, ky))), 128))])) : g("", !0),
16923
+ }, O(e.name), 11, Fy))), 128))])) : g("", !0),
16894
16924
  v("div", {
16895
16925
  ref_key: "tableContainer",
16896
16926
  ref: he,
16897
16927
  class: "table-container",
16898
16928
  onClick: Ne,
16899
16929
  innerHTML: Te.value
16900
- }, null, 8, Ay)
16930
+ }, null, 8, Iy)
16901
16931
  ])]),
16902
16932
  ge.value ? g("", !0) : (T(), _("details", {
16903
16933
  key: 0,
@@ -16918,15 +16948,15 @@ var _y = { class: "spreadsheet-container" }, vy = {
16918
16948
  class: "apply-btn",
16919
16949
  disabled: !xe.value,
16920
16950
  onClick: Pe
16921
- }, O(k(r).applyChanges), 9, jy)
16951
+ }, O(k(r).applyChanges), 9, Ly)
16922
16952
  ], 512)),
16923
- ge.value ? (T(), _("div", My, [v("div", Ny, [
16924
- M.value ? (T(), _("span", Py, O(k(Se)(M.value.col)) + O(M.value.row + 1), 1)) : g("", !0),
16925
- 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", {
16926
16956
  "onUpdate:modelValue": n[1] ||= (e) => ve.value = e,
16927
16957
  type: "radio",
16928
16958
  value: "string"
16929
- }, 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", {
16930
16960
  "onUpdate:modelValue": n[2] ||= (e) => ve.value = e,
16931
16961
  type: "radio",
16932
16962
  value: "object"
@@ -16938,20 +16968,20 @@ var _y = { class: "spreadsheet-container" }, vy = {
16938
16968
  class: "form-input",
16939
16969
  placeholder: k(r).valuePlaceholder,
16940
16970
  onKeyup: re(je, ["enter"])
16941
- }, null, 40, Ry)), [[ee, _e.value]]) : g("", !0),
16971
+ }, null, 40, Wy)), [[ee, _e.value]]) : g("", !0),
16942
16972
  ve.value === "object" ? (T(), _(m, { key: 2 }, [ne(v("input", {
16943
16973
  "onUpdate:modelValue": n[4] ||= (e) => ye.value = e,
16944
16974
  type: "text",
16945
16975
  class: "form-input",
16946
16976
  placeholder: k(r).valueOrFormulaPlaceholder,
16947
16977
  onKeyup: re(je, ["enter"])
16948
- }, null, 40, zy), [[ee, ye.value]]), ne(v("input", {
16978
+ }, null, 40, Gy), [[ee, ye.value]]), ne(v("input", {
16949
16979
  "onUpdate:modelValue": n[5] ||= (e) => be.value = e,
16950
16980
  type: "text",
16951
16981
  class: "form-input",
16952
16982
  placeholder: k(r).formatPlaceholder,
16953
16983
  onKeyup: re(je, ["enter"])
16954
- }, null, 40, By), [[ee, be.value]])], 64)) : g("", !0),
16984
+ }, null, 40, Ky), [[ee, be.value]])], 64)) : g("", !0),
16955
16985
  v("button", {
16956
16986
  class: "save-btn",
16957
16987
  onClick: je
@@ -16963,24 +16993,24 @@ var _y = { class: "spreadsheet-container" }, vy = {
16963
16993
  ])])) : g("", !0)
16964
16994
  ], 64))]));
16965
16995
  }
16966
- }), [["__scopeId", "data-v-a54883ee"]]), 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 = {
16967
16997
  key: 0,
16968
16998
  class: "text-xs text-gray-600 dark:text-gray-400 mt-1"
16969
- }, Gy = /* @__PURE__ */ b({
16999
+ }, Zy = /* @__PURE__ */ b({
16970
17000
  __name: "Preview",
16971
17001
  props: { result: {} },
16972
17002
  setup(e) {
16973
- 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(() => {
16974
17004
  let e = n.result.data?.sheets;
16975
17005
  return !e || typeof e == "string" ? 0 : e.length;
16976
17006
  });
16977
- 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)]));
16978
17008
  }
16979
- }), Ky = {
17009
+ }), Qy = {
16980
17010
  ...l,
16981
- viewComponent: Vy,
16982
- previewComponent: Gy,
17011
+ viewComponent: qy,
17012
+ previewComponent: Zy,
16983
17013
  samples: d
16984
- }, qy = { plugin: Ky };
17014
+ }, $y = { plugin: Qy };
16985
17015
  //#endregion
16986
- 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 };