@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/README.md +9 -8
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/engine/cellBuilder.d.ts +1 -0
- package/dist/engine/registry.d.ts +4 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{samples-Cylf7cMw.js → samples-CaAbe1tF.js} +1 -1
- package/dist/{samples-BzI0GdUj.cjs → samples-DUNRjoGw.cjs} +1 -1
- package/dist/vue.cjs +4 -4
- package/dist/vue.js +568 -538
- package/package.json +5 -4
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-
|
|
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 =
|
|
14296
|
-
for (let
|
|
14297
|
-
let
|
|
14298
|
-
if (
|
|
14299
|
-
else if (
|
|
14300
|
-
|
|
14301
|
-
|
|
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 (!
|
|
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
|
|
14315
|
-
let t =
|
|
14316
|
-
for (let e
|
|
14317
|
-
|
|
14318
|
-
|
|
14319
|
-
|
|
14320
|
-
|
|
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
|
|
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
|
|
14338
|
-
let { value: t, quoted: n } =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
14356
|
+
function Um(e) {
|
|
14357
14357
|
return typeof e == "boolean" ? e : typeof e == "number" ? e !== 0 : e !== "";
|
|
14358
14358
|
}
|
|
14359
|
-
function
|
|
14360
|
-
let n =
|
|
14361
|
-
return n ?
|
|
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
|
|
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
|
|
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
|
-
]),
|
|
14383
|
+
]), qm = /* @__PURE__ */ new Set([
|
|
14384
14384
|
"us",
|
|
14385
14385
|
"ca",
|
|
14386
14386
|
"ph"
|
|
14387
14387
|
]);
|
|
14388
|
-
function
|
|
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
|
|
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 =
|
|
14400
|
-
return e !== "" && !
|
|
14399
|
+
let e = Jm(n);
|
|
14400
|
+
return e !== "" && !qm.has(e);
|
|
14401
14401
|
}
|
|
14402
|
-
return
|
|
14402
|
+
return Km.has(t);
|
|
14403
14403
|
}
|
|
14404
14404
|
//#endregion
|
|
14405
14405
|
//#region src/engine/cellEmpty.ts
|
|
14406
|
-
function
|
|
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
|
|
14419
|
-
let t = Math.floor(e), n = e - t, r = new Date(
|
|
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
|
-
},
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
14464
|
-
function
|
|
14465
|
-
let n = e.getUTCMonth() + t, r = e.getUTCFullYear() + Math.floor(n /
|
|
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
|
|
14468
|
+
function ch(e, t, n) {
|
|
14469
14469
|
if (e > t) return Em;
|
|
14470
|
-
let r =
|
|
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 *
|
|
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 =
|
|
14483
|
-
return Math.round((t - e.getTime()) /
|
|
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 +
|
|
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()) /
|
|
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
|
|
14498
|
+
function lh(e) {
|
|
14499
14499
|
return /[YMD]|MMM|DD|YYYY|h:mm|AM\/PM/i.test(e);
|
|
14500
14500
|
}
|
|
14501
|
-
var
|
|
14502
|
-
function
|
|
14503
|
-
let n =
|
|
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:
|
|
14507
|
-
MMM:
|
|
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:
|
|
14511
|
-
ddd:
|
|
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(
|
|
14523
|
+
return t.replace(uh, (e) => p[e] ?? e);
|
|
14524
14524
|
}
|
|
14525
|
-
var
|
|
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 : [
|
|
14527
|
+
return t === void 0 ? e : [ph(t), ...n].join(".");
|
|
14528
14528
|
};
|
|
14529
|
-
function
|
|
14529
|
+
function hh(e, t) {
|
|
14530
14530
|
if (!t) return e.toString();
|
|
14531
14531
|
try {
|
|
14532
|
-
if (
|
|
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(",") ?
|
|
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 =
|
|
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
|
|
14553
|
+
function gh(e) {
|
|
14554
14554
|
return e.replace(/\^/g, "**");
|
|
14555
14555
|
}
|
|
14556
|
-
function
|
|
14556
|
+
function _h(e, t) {
|
|
14557
14557
|
return e === "" ? t : t === e ? "" : e;
|
|
14558
14558
|
}
|
|
14559
|
-
function
|
|
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 =
|
|
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
|
|
14565
|
+
function yh(e) {
|
|
14566
14566
|
return e.replace(/([^<>!])=([^=])/g, "$1==$2");
|
|
14567
14567
|
}
|
|
14568
|
-
function
|
|
14568
|
+
function bh(e) {
|
|
14569
14569
|
return /^[\d+\-*/(). ]+$/.test(e);
|
|
14570
14570
|
}
|
|
14571
|
-
function
|
|
14571
|
+
function xh(e) {
|
|
14572
14572
|
return /^[\d+\-*/(). <>!=]+$/.test(e);
|
|
14573
14573
|
}
|
|
14574
14574
|
//#endregion
|
|
14575
14575
|
//#region src/engine/formulaError.ts
|
|
14576
|
-
var
|
|
14576
|
+
var Sh = {
|
|
14577
14577
|
div_zero: "#DIV/0!",
|
|
14578
14578
|
invalid_ref: "#REF!",
|
|
14579
14579
|
syntax: "#NAME?",
|
|
14580
14580
|
unknown: "#ERROR!"
|
|
14581
|
-
},
|
|
14582
|
-
[
|
|
14583
|
-
[
|
|
14584
|
-
[
|
|
14585
|
-
},
|
|
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
|
-
},
|
|
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:
|
|
14597
|
-
},
|
|
14598
|
-
function
|
|
14596
|
+
display: Sh.unknown
|
|
14597
|
+
}, Mh = (e) => isNaN(e) ? null : e;
|
|
14598
|
+
function Nh(e) {
|
|
14599
14599
|
if (e.includes("%")) {
|
|
14600
|
-
let t =
|
|
14600
|
+
let t = Mh(parseFloat(e.replace("%", "").trim()));
|
|
14601
14601
|
return t === null ? null : t / 100;
|
|
14602
14602
|
}
|
|
14603
|
-
return e.includes("$") ?
|
|
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 == "
|
|
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
|
|
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
|
|
14615
|
+
if (r === void 0) throw Ih(e.functionName, n + 1);
|
|
14616
14616
|
return r;
|
|
14617
|
-
},
|
|
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 :
|
|
14641
|
+
return typeof e == "number" ? e : Nh(String(e)) ?? 0;
|
|
14642
14642
|
}
|
|
14643
|
-
function
|
|
14643
|
+
function zh(e) {
|
|
14644
14644
|
return String(e);
|
|
14645
14645
|
}
|
|
14646
|
-
var
|
|
14647
|
-
function
|
|
14648
|
-
let t = RegExp(`^${
|
|
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
|
|
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 =
|
|
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
|
|
14667
|
+
return Kh(t);
|
|
14668
14668
|
}
|
|
14669
|
-
function
|
|
14670
|
-
let t =
|
|
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
|
|
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
|
|
14688
|
-
return
|
|
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
|
|
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
|
|
14699
|
-
function
|
|
14700
|
-
let t = e.toLowerCase(), n =
|
|
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 =
|
|
14702
|
+
let r = nh.findIndex((e) => e.toLowerCase() === t);
|
|
14703
14703
|
return r === -1 ? null : r + 1;
|
|
14704
14704
|
}
|
|
14705
|
-
function
|
|
14706
|
-
if (!
|
|
14707
|
-
let n = e.trim(), r =
|
|
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
|
|
14710
|
+
return Jh(parseInt(e), parseInt(t), parseInt(n));
|
|
14711
14711
|
}
|
|
14712
|
-
let i =
|
|
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
|
|
14715
|
+
return ig(rg(parseInt(n)), t, parseInt(e));
|
|
14716
14716
|
}
|
|
14717
|
-
let a =
|
|
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
|
|
14720
|
+
return ig(parseInt(n), e, parseInt(t));
|
|
14721
14721
|
}
|
|
14722
|
-
let o =
|
|
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
|
|
14725
|
+
return ig(parseInt(n), t, parseInt(e));
|
|
14726
14726
|
}
|
|
14727
|
-
let s =
|
|
14727
|
+
let s = Yh(n, Xh);
|
|
14728
14728
|
if (s) {
|
|
14729
|
-
let [e, n, r] = s, i =
|
|
14730
|
-
return
|
|
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
|
|
14735
|
-
function
|
|
14736
|
-
return 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
|
|
14739
|
-
let r =
|
|
14740
|
-
return r === null ? null :
|
|
14738
|
+
function ig(e, t, n) {
|
|
14739
|
+
let r = $h(t);
|
|
14740
|
+
return r === null ? null : Jh(e, r, n);
|
|
14741
14741
|
}
|
|
14742
|
-
function
|
|
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
|
|
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 =
|
|
14754
|
+
let r = Yh(n, Xh);
|
|
14755
14755
|
if (r) {
|
|
14756
14756
|
let [e, n] = r;
|
|
14757
|
-
return
|
|
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
|
|
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
|
|
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
|
|
14783
|
-
let t =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
14815
|
+
n = ug(e, n);
|
|
14816
14816
|
continue;
|
|
14817
14817
|
}
|
|
14818
14818
|
if (r === "'") {
|
|
14819
|
-
let r =
|
|
14819
|
+
let r = dg(e, n);
|
|
14820
14820
|
r ? (t.push({
|
|
14821
14821
|
ref: r,
|
|
14822
14822
|
start: n
|
|
14823
|
-
}), n += r.length) : n =
|
|
14823
|
+
}), n += r.length) : n = ug(e, n);
|
|
14824
14824
|
continue;
|
|
14825
14825
|
}
|
|
14826
|
-
let i =
|
|
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
|
|
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
|
|
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
|
|
14845
|
+
function gg(e) {
|
|
14846
14846
|
let t;
|
|
14847
14847
|
try {
|
|
14848
14848
|
t = Function(`return (${e})`)();
|
|
14849
14849
|
} catch {
|
|
14850
|
-
throw
|
|
14850
|
+
throw kh();
|
|
14851
14851
|
}
|
|
14852
14852
|
if (typeof t == "number") {
|
|
14853
|
-
if (!Number.isFinite(t)) throw
|
|
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
|
|
14857
|
+
throw kh();
|
|
14858
14858
|
}
|
|
14859
|
-
function
|
|
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 =
|
|
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]
|
|
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 =
|
|
14876
|
-
if (o.minArgs !== void 0 && e.length < o.minArgs) throw
|
|
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
|
|
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
|
-
|
|
14892
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
14916
|
+
a = mg(a, c, (e) => {
|
|
14914
14917
|
let n = t.getCellValue(e), r = Nm(n);
|
|
14915
|
-
if (r !== null) throw
|
|
14916
|
-
return
|
|
14918
|
+
if (r !== null) throw Ah(r);
|
|
14919
|
+
return sg(n);
|
|
14917
14920
|
}), a = a.replace(/"([^"]+)"/g, (e, n) => {
|
|
14918
|
-
let r =
|
|
14921
|
+
let r = eg(n, t.preferDDMMYYYY);
|
|
14919
14922
|
return r === null ? e : r.toString();
|
|
14920
|
-
}), a =
|
|
14923
|
+
}), a = gh(a);
|
|
14921
14924
|
let u = a.includes("&"), d = /["']/.test(a);
|
|
14922
14925
|
if (u && d) {
|
|
14923
|
-
let e =
|
|
14924
|
-
if (
|
|
14926
|
+
let e = vh(a);
|
|
14927
|
+
if (lg(e)) return gg(e);
|
|
14925
14928
|
}
|
|
14926
|
-
if (
|
|
14927
|
-
if (
|
|
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
|
|
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 (!
|
|
14938
|
+
if (!bg(e) || typeof t != "number") return t;
|
|
14936
14939
|
let r = typeof e.f == "string" ? e.f : "";
|
|
14937
|
-
return r ?
|
|
14938
|
-
},
|
|
14939
|
-
function
|
|
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
|
|
14943
|
-
function
|
|
14944
|
-
let [, t, n] = e.match(
|
|
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
|
|
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 =
|
|
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
|
|
14960
|
-
let t =
|
|
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
|
|
14972
|
+
function Ag(e) {
|
|
14970
14973
|
let t = e.trim().toUpperCase();
|
|
14971
14974
|
if (t.includes(":")) {
|
|
14972
|
-
let e =
|
|
14975
|
+
let e = kg(t);
|
|
14973
14976
|
return e.length > 0 ? e : null;
|
|
14974
14977
|
}
|
|
14975
|
-
let n =
|
|
14978
|
+
let n = jg(t);
|
|
14976
14979
|
return n ? [n] : null;
|
|
14977
14980
|
}
|
|
14978
|
-
function
|
|
14979
|
-
let t =
|
|
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
|
|
14986
|
-
let t = e.lastIndexOf("!"), n = t >= 0 ? e.slice(0, t + 1) : "", r =
|
|
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
|
|
14998
|
-
function
|
|
15000
|
+
var Ng = 0, Pg = 1;
|
|
15001
|
+
function Fg(e, t) {
|
|
14999
15002
|
let n = Math.trunc(e);
|
|
15000
|
-
return Number.isFinite(n) ? n ===
|
|
15003
|
+
return Number.isFinite(n) ? n === Ng ? t === 1 ? 0 : null : n < Pg || n > t ? null : n - Pg : null;
|
|
15001
15004
|
}
|
|
15002
|
-
function
|
|
15003
|
-
let r =
|
|
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
|
|
15012
|
+
function Lg(e, t) {
|
|
15010
15013
|
let n = Math.trunc(e);
|
|
15011
|
-
return !Number.isFinite(n) || n <
|
|
15014
|
+
return !Number.isFinite(n) || n < Pg || n > t ? null : n - Pg;
|
|
15012
15015
|
}
|
|
15013
|
-
function
|
|
15014
|
-
let t =
|
|
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(
|
|
15019
|
-
let a = t.replace(
|
|
15020
|
-
for (let e of a.match(
|
|
15021
|
-
let t =
|
|
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
|
|
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
|
|
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 =
|
|
15049
|
+
let r = eg(n, t);
|
|
15047
15050
|
if (r !== null) return {
|
|
15048
15051
|
v: r,
|
|
15049
|
-
f: e.f ||
|
|
15052
|
+
f: e.f || og(n, t)
|
|
15050
15053
|
};
|
|
15051
15054
|
}
|
|
15052
15055
|
return e;
|
|
15053
15056
|
}));
|
|
15054
15057
|
}
|
|
15055
|
-
function
|
|
15056
|
-
let i = r.preferDDMMYYYY ?? !1, o = r.skipFormatting ?? !1, s =
|
|
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:
|
|
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 } =
|
|
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 =
|
|
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
|
|
15156
|
-
let { sheetData: n, ref: r, isCurrentSheet: i } = t, a =
|
|
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 =
|
|
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 ? !
|
|
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) =>
|
|
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] =
|
|
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
|
|
15227
|
-
return e.map((n) =>
|
|
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
|
|
15278
|
-
function
|
|
15279
|
-
return e.length === 0 ? Sm :
|
|
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
|
|
15282
|
-
return e.length === 0 ? Em :
|
|
15238
|
+
function Gg(e) {
|
|
15239
|
+
return e.length === 0 ? Em : Ug(Kg([...e].sort((e, t) => e - t)));
|
|
15283
15240
|
}
|
|
15284
|
-
function
|
|
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
|
|
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
|
|
15296
|
-
function
|
|
15297
|
-
if (e.length <
|
|
15298
|
-
let t =
|
|
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
|
|
15302
|
-
let t =
|
|
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
|
|
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] =
|
|
15310
|
-
return !t || !n ? !1 :
|
|
15311
|
-
},
|
|
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 && (
|
|
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
|
-
},
|
|
15325
|
-
let n =
|
|
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
|
-
},
|
|
15328
|
-
let n =
|
|
15284
|
+
}, l_ = (e, t) => {
|
|
15285
|
+
let n = i_(e, t);
|
|
15329
15286
|
return n.length > 0 ? Math.min(...n) : 0;
|
|
15330
|
-
},
|
|
15331
|
-
let n = X(t, e, 0), r =
|
|
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:
|
|
15292
|
+
matches: Gh(X(t, e, 1).trim())
|
|
15336
15293
|
};
|
|
15337
|
-
},
|
|
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:
|
|
15303
|
+
handler: o_,
|
|
15347
15304
|
minArgs: 1,
|
|
15348
|
-
maxArgs:
|
|
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:
|
|
15311
|
+
handler: s_,
|
|
15355
15312
|
minArgs: 1,
|
|
15356
|
-
maxArgs:
|
|
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:
|
|
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:
|
|
15333
|
+
handler: d_,
|
|
15377
15334
|
minArgs: 1,
|
|
15378
|
-
maxArgs:
|
|
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:
|
|
15341
|
+
handler: f_,
|
|
15385
15342
|
minArgs: 1,
|
|
15386
|
-
maxArgs:
|
|
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:
|
|
15349
|
+
handler: p_,
|
|
15393
15350
|
minArgs: 1,
|
|
15394
|
-
maxArgs:
|
|
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:
|
|
15357
|
+
handler: m_,
|
|
15401
15358
|
minArgs: 1,
|
|
15402
|
-
maxArgs:
|
|
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:
|
|
15365
|
+
handler: h_,
|
|
15409
15366
|
minArgs: 1,
|
|
15410
|
-
maxArgs:
|
|
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:
|
|
15373
|
+
handler: g_,
|
|
15417
15374
|
minArgs: 1,
|
|
15418
|
-
maxArgs:
|
|
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:
|
|
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 } =
|
|
15434
|
-
return
|
|
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 } =
|
|
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
|
|
15456
|
-
function
|
|
15457
|
-
let n =
|
|
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
|
|
15461
|
-
let n =
|
|
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
|
|
15465
|
-
let n =
|
|
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
|
|
15469
|
-
function
|
|
15470
|
-
return t === 0 ? Sm :
|
|
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
|
|
15473
|
-
return t === 0 ? 0 :
|
|
15429
|
+
function D_(e, t) {
|
|
15430
|
+
return t === 0 ? 0 : T_(e, t) ? Math.ceil(e / t) * t : Em;
|
|
15474
15431
|
}
|
|
15475
|
-
function
|
|
15432
|
+
function O_(e, t) {
|
|
15476
15433
|
return t === 0 ? Sm : e - t * Math.floor(e / t);
|
|
15477
15434
|
}
|
|
15478
|
-
function
|
|
15435
|
+
function k_(e, t) {
|
|
15479
15436
|
return e < 0 && !Number.isInteger(t) ? Em : e ** +t;
|
|
15480
15437
|
}
|
|
15481
|
-
function
|
|
15438
|
+
function A_(e) {
|
|
15482
15439
|
return e <= 0 ? Em : Math.log(e);
|
|
15483
15440
|
}
|
|
15484
|
-
function
|
|
15485
|
-
let n =
|
|
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
|
|
15445
|
+
function M_(e) {
|
|
15489
15446
|
return e <= 0 ? Em : Math.log10(e);
|
|
15490
15447
|
}
|
|
15491
|
-
function
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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 =
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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 =
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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
|
|
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 =
|
|
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 (!
|
|
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 (
|
|
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) => !
|
|
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 (
|
|
15733
|
-
let n =
|
|
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
|
|
15763
|
-
let t =
|
|
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 (
|
|
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:
|
|
15773
|
-
minDecimals:
|
|
15774
|
-
maxDecimals:
|
|
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
|
-
},
|
|
15778
|
-
let n = e.replace(
|
|
15734
|
+
}, U_ = (e, t) => {
|
|
15735
|
+
let n = e.replace(z_, "");
|
|
15779
15736
|
return n.length >= t ? n : e.slice(0, t);
|
|
15780
|
-
},
|
|
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 ?
|
|
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
|
-
},
|
|
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 =
|
|
15742
|
+
let n = H_(t);
|
|
15786
15743
|
if (!n) return null;
|
|
15787
|
-
let r = n.isPercent ? e *
|
|
15788
|
-
return `${r < 0 &&
|
|
15789
|
-
},
|
|
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 || !
|
|
15750
|
+
return r === void 0 || !q_(r) ? e.toUpperCase() : e.toLowerCase();
|
|
15794
15751
|
}).join("");
|
|
15795
|
-
},
|
|
15796
|
-
let n =
|
|
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
|
-
},
|
|
15799
|
-
let n =
|
|
15755
|
+
}, Z_ = (e, t) => {
|
|
15756
|
+
let n = Y_(t);
|
|
15800
15757
|
return Mm(n) ? n : e.substring(e.length - n);
|
|
15801
|
-
},
|
|
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
|
-
},
|
|
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 :
|
|
15809
|
-
},
|
|
15810
|
-
let r =
|
|
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
|
-
},
|
|
15816
|
-
let n =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
15822
|
-
let n = t.evaluateFormula(X(t, e, 0)), r =
|
|
15823
|
-
return typeof n == "number" ?
|
|
15824
|
-
},
|
|
15825
|
-
if (!
|
|
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
|
-
},
|
|
15785
|
+
}, xv = (e) => {
|
|
15829
15786
|
let t = e.replace(/[$,]/g, "").trim();
|
|
15830
15787
|
if (t.endsWith("%")) {
|
|
15831
|
-
let e =
|
|
15788
|
+
let e = bv(t.slice(0, -1).trim());
|
|
15832
15789
|
return e === null ? Cm : e / 100;
|
|
15833
15790
|
}
|
|
15834
|
-
let n =
|
|
15791
|
+
let n = bv(t);
|
|
15835
15792
|
return n === null ? Cm : n;
|
|
15836
15793
|
};
|
|
15837
15794
|
Z.register({
|
|
15838
15795
|
name: "CONCATENATE",
|
|
15839
|
-
handler:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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) =>
|
|
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) =>
|
|
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
|
|
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
|
|
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
|
|
15985
|
-
let o =
|
|
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 =
|
|
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
|
|
15991
|
-
return
|
|
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
|
|
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
|
|
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
|
|
16004
|
-
function
|
|
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 <
|
|
16007
|
-
Math.abs(o) <
|
|
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) <
|
|
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
|
|
15971
|
+
function jv(e, t) {
|
|
16015
15972
|
return t.reduce((t, n, r) => t + n / (1 + e) ** +(r + 1), 0);
|
|
16016
15973
|
}
|
|
16017
|
-
function
|
|
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
|
|
15986
|
+
function Nv(e, t) {
|
|
16030
15987
|
let n = t;
|
|
16031
|
-
for (let t = 0; t <
|
|
16032
|
-
let { npv: t, dnpv: r } =
|
|
16033
|
-
if (Math.abs(t) <
|
|
16034
|
-
if (Math.abs(r) <
|
|
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) <
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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) =>
|
|
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
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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("?")) ?
|
|
16138
|
-
return r === 1 ? t.findIndex(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 ?
|
|
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 =
|
|
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 = +!!
|
|
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 =
|
|
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 =
|
|
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 = +!!
|
|
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 =
|
|
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 =
|
|
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 =
|
|
16171
|
+
let n = Mg(X(t, e, 0));
|
|
16191
16172
|
if (!n) throw Error("Invalid range format");
|
|
16192
|
-
let r =
|
|
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 =
|
|
16204
|
-
if (o === 0 || o === 2) d =
|
|
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
|
|
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
|
|
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
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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
|
|
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
|
|
16381
|
+
return Vg(e, t, { preferDDMMYYYY: this.options.preferDDMMYYYY });
|
|
16352
16382
|
}
|
|
16353
16383
|
calculateWorkbook(e) {
|
|
16354
|
-
return
|
|
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
|
-
},
|
|
16375
|
-
function
|
|
16404
|
+
}, uy = "cell-editing", dy = "cell-referenced";
|
|
16405
|
+
function fy(e) {
|
|
16376
16406
|
if (e) {
|
|
16377
|
-
e.querySelector(`.${
|
|
16378
|
-
for (let t of e.querySelectorAll(`.${
|
|
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
|
|
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
|
|
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 &&
|
|
16393
|
-
for (let e of n)
|
|
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
|
|
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
|
|
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
|
|
16456
|
+
var _y = {
|
|
16427
16457
|
"&": "&",
|
|
16428
16458
|
"<": "<",
|
|
16429
16459
|
">": ">",
|
|
16430
16460
|
"\"": """,
|
|
16431
16461
|
"'": "'"
|
|
16432
|
-
},
|
|
16433
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
16685
|
+
}, Dy = { class: "error" }, Oy = {
|
|
16656
16686
|
key: 2,
|
|
16657
16687
|
class: "min-h-full p-8 flex items-center justify-center"
|
|
16658
|
-
},
|
|
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
|
-
},
|
|
16691
|
+
}, Fy = ["onClick"], Iy = ["innerHTML"], Ly = ["disabled"], Ry = {
|
|
16662
16692
|
key: 1,
|
|
16663
16693
|
class: "mini-editor-panel"
|
|
16664
|
-
},
|
|
16694
|
+
}, zy = { class: "mini-editor-content" }, By = {
|
|
16665
16695
|
key: 0,
|
|
16666
16696
|
class: "cell-ref"
|
|
16667
|
-
},
|
|
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 =
|
|
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
|
|
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 =
|
|
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:
|
|
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:
|
|
16779
|
+
data: zg(e)
|
|
16750
16780
|
};
|
|
16751
|
-
return p.setOptions({ preferDDMMYYYY:
|
|
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: ${
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 || !
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
16901
|
+
let { row: t, col: n } = M.value, r = hy(e.key, t, n);
|
|
16872
16902
|
if (r) try {
|
|
16873
|
-
if (!
|
|
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",
|
|
16884
|
-
v("div",
|
|
16885
|
-
v("div",
|
|
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",
|
|
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,
|
|
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,
|
|
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,
|
|
16951
|
+
}, O(k(r).applyChanges), 9, Ly)
|
|
16922
16952
|
], 512)),
|
|
16923
|
-
ge.value ? (T(), _("div",
|
|
16924
|
-
M.value ? (T(), _("span",
|
|
16925
|
-
v("div",
|
|
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",
|
|
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,
|
|
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,
|
|
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,
|
|
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"]]),
|
|
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
|
-
},
|
|
16999
|
+
}, Zy = /* @__PURE__ */ b({
|
|
16970
17000
|
__name: "Preview",
|
|
16971
17001
|
props: { result: {} },
|
|
16972
17002
|
setup(e) {
|
|
16973
|
-
let t =
|
|
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",
|
|
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
|
-
}),
|
|
17009
|
+
}), Qy = {
|
|
16980
17010
|
...l,
|
|
16981
|
-
viewComponent:
|
|
16982
|
-
previewComponent:
|
|
17011
|
+
viewComponent: qy,
|
|
17012
|
+
previewComponent: Zy,
|
|
16983
17013
|
samples: d
|
|
16984
|
-
},
|
|
17014
|
+
}, $y = { plugin: Qy };
|
|
16985
17015
|
//#endregion
|
|
16986
|
-
export {
|
|
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 };
|