@sheetxl/sdk 0.4.20 → 0.4.22
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/browser/cjs/7IXJLhV4t0ot3XB5.cjs +7 -0
- package/browser/cjs/{CHIrWDL1wDd2pj7r.cjs → 88wgo6pjVpM9y5ul.cjs} +1 -1
- package/browser/cjs/{CgISg2QUFvnxelIg.cjs → B1FA-mZrhIhB8VoC.cjs} +1 -1
- package/browser/cjs/{HoZidg9qBDX62oNO.cjs → BFSSWIb-BPsXlS8k.cjs} +1 -1
- package/browser/cjs/{lTo12h7XrLmPRVhi.cjs → BG_fhZO0IruefQYx.cjs} +1 -1
- package/browser/cjs/{aBAvcAfOvtWy7o9B.cjs → BHMiYQTwGjWzRdGf.cjs} +1 -1
- package/browser/cjs/{We0naT5G_vQo6RkK.cjs → BSj9kpCBxyd5EZvX.cjs} +1 -1
- package/browser/cjs/{B8nuUUIsnE-6vbAQ.cjs → BYwSD92n1THKdj9V.cjs} +1 -1
- package/browser/cjs/{CW9IcRQqCCBSJ1g0.cjs → Bein9-S48RBhhxLW.cjs} +1 -1
- package/browser/cjs/{C4KbNJbRD0LfrFFV.cjs → CFE-vojYpMggdKVQ.cjs} +1 -1
- package/browser/cjs/{BTPJz0JSs5PWhtbO.cjs → CGslljb6hC8DcpsE.cjs} +1 -1
- package/browser/cjs/{gn5aPOY6C-poXjky.cjs → CV_Kse7BQ7sBx0S2.cjs} +1 -1
- package/browser/cjs/{BfMzZ_GULllzBk6l.cjs → CW7Kbm45TFbAZYO3.cjs} +1 -1
- package/browser/cjs/{ZJeHuklpnM-x2Uor.cjs → Cx69pnzjeLfQMYgm.cjs} +1 -1
- package/browser/cjs/{BVwLRpPOJOkPiLVI.cjs → D1ZVN_gmSiXwUeCX.cjs} +1 -1
- package/browser/cjs/D1uvbAWH1atUhVUP.cjs +53 -0
- package/browser/cjs/{BvS85P-7zLIudyqb.cjs → D2eWn6G2QvkYzR0D.cjs} +1 -1
- package/browser/cjs/{CYueUIoDZwYE9fRk.cjs → D3ZDdkSutmtUfAG2.cjs} +1 -1
- package/browser/cjs/{BTa_vDbaAzt6YXV1.cjs → DItG5mSJNZ40zltg.cjs} +1 -1
- package/browser/cjs/{XxdMKuC0y29VOQ05.cjs → DMROSNSDJaUVqfoW.cjs} +1 -1
- package/browser/cjs/{Bw07AlLqg6ZIoMRL.cjs → DWG2lOB7T0SRr5Ni.cjs} +1 -1
- package/browser/cjs/Dub6MS5nk4D_Iv7p.cjs +124 -0
- package/browser/cjs/{BHa5nV8AH6dlgs29.cjs → Ko4UgjHi20zmyEpu.cjs} +1 -1
- package/browser/cjs/{CxXM6xsDd2bFDSNd.cjs → OgnqbIZEb37S4Hcz.cjs} +1 -1
- package/browser/cjs/{BkFMWwFWaisNXSf2.cjs → SkNXytY6UX9i6WhY.cjs} +2 -2
- package/browser/cjs/{CFwigDisNJzRlbSY.cjs → ZyyHV9ugA--j9V3Q.cjs} +1 -1
- package/browser/cjs/index.cjs +2 -2
- package/browser/cjs/{D9SMcp02EIWqiYk0.cjs → rPn2U0Q2Eagh41Xd.cjs} +1 -1
- package/browser/esm/{DK_FQ6Q7AZUprApR.mjs → -z0NclKcw0SSbo2L.mjs} +7603 -8898
- package/browser/esm/{DuvsEieHOiBb-GPZ.mjs → 45xuwq8di_97VrOg.mjs} +1 -1
- package/browser/esm/{CDbE_dl8edWRC33Z.mjs → B5M_o8HB4RRWBd_Y.mjs} +1 -1
- package/browser/esm/{9tFMamEgahdtRDzr.mjs → BANL0IBU0th0Z0aE.mjs} +1 -1
- package/browser/esm/{DOK9VvFQyTAsf7SL.mjs → BE-hRu2cYg4ljCeu.mjs} +1 -1
- package/browser/esm/{BNS7zLc3zoynBPYO.mjs → BcSVj-rRzZCTKFUS.mjs} +6 -4
- package/browser/esm/{DIePzm-XT-alFdDB.mjs → BsPKTSv0eCvPH73D.mjs} +1 -1
- package/{node/esm/Bqc8bvJoWC0_qUKU.mjs → browser/esm/C1VWw92RN5017GH2.mjs} +1 -1
- package/{node/esm/iYqJLAQld4jtK1Be.mjs → browser/esm/C1m7sGNTYP1bb_Uu.mjs} +1 -1
- package/{node/esm/DdDDFLZKFx1DAkKM.mjs → browser/esm/CB1_HpaA6RdaxTgB.mjs} +1 -1
- package/browser/esm/{DV9p0Ai4HUPYjT-H.mjs → CESAJuxgB8SgHaC0.mjs} +2 -2
- package/browser/esm/{_q37vK_NIykwwqbg.mjs → CF-2-aQTgc-DoXzn.mjs} +1 -1
- package/{node/esm/CivKgcEQiXpDFLHE.mjs → browser/esm/CIOhVshLBBACTKw4.mjs} +1 -1
- package/{node/esm/DlNI2fuUSYxsUPt8.mjs → browser/esm/CMSKXl6rbx5miTNQ.mjs} +1 -1
- package/{node/esm/D3YTY3N6YHU69ymA.mjs → browser/esm/CiTlupx_cuXQySFz.mjs} +1 -1
- package/browser/esm/{DoIENSc8L0Rof6Kz.mjs → D3P3XCQVij2nAmi9.mjs} +46 -44
- package/{node/esm/bIOUtGNQ6YQktkYZ.mjs → browser/esm/D6IgoU0LlIv_Vb4m.mjs} +1 -1
- package/{node/esm/DaJrKgrSikJvUv0q.mjs → browser/esm/DDHWZD7Y6pihyVio.mjs} +1 -1
- package/browser/esm/{mxJXDPqwl0wNxd66.mjs → DEAxRkKlMDxHooJB.mjs} +1 -1
- package/browser/esm/{BcUYcXaMbk6W8AWk.mjs → DI52n-xcpb7jEqop.mjs} +1 -1
- package/{node/esm/DP9RiXAeb1fiRFpG.mjs → browser/esm/Dd2ZeNLusT_ZXcoE.mjs} +1 -1
- package/browser/esm/{fP2GLQ5W7VVbn5TA.mjs → E-RGQA1dKJwkkonk.mjs} +1 -1
- package/{node/esm/aF3uflTbayaEj07D.mjs → browser/esm/NvmvIR3jfjlY98jJ.mjs} +1 -1
- package/browser/esm/{BoB-LPOX1uKjZhKH.mjs → OABZjfPgUYHzd5rY.mjs} +1 -1
- package/browser/esm/{BNURhfAYTEVJWTYT.mjs → XxsAmmMnL6UJ_NtN.mjs} +1 -1
- package/browser/esm/{io70M3K8dlSe5V-4.mjs → ease-qEarwjnTOzw.mjs} +1 -1
- package/browser/esm/index.mjs +54 -82
- package/{node/esm/HTDFLMWuQb82Y-GF.mjs → browser/esm/pyVBYhEMGgaVvnd1.mjs} +1 -1
- package/licenses/dependencies.txt +0 -66
- package/node/esm/{9tFMamEgahdtRDzr.mjs → BANL0IBU0th0Z0aE.mjs} +1 -1
- package/node/esm/{DOK9VvFQyTAsf7SL.mjs → BE-hRu2cYg4ljCeu.mjs} +1 -1
- package/node/esm/{BpBhk74DpxGo00aZ.mjs → BFQWsItEwIA8MHSr.mjs} +1 -1
- package/{browser/esm/Bqc8bvJoWC0_qUKU.mjs → node/esm/C1VWw92RN5017GH2.mjs} +1 -1
- package/{browser/esm/iYqJLAQld4jtK1Be.mjs → node/esm/C1m7sGNTYP1bb_Uu.mjs} +1 -1
- package/node/esm/{B7ZcsKf8cxOEMq7p.mjs → C2cb5mfR_vAlX9Fe.mjs} +1 -1
- package/node/esm/{CDjHCv3dEEOY9Foy.mjs → C5pshc3Ik9rfVQTG.mjs} +1 -1
- package/{browser/esm/DdDDFLZKFx1DAkKM.mjs → node/esm/CB1_HpaA6RdaxTgB.mjs} +1 -1
- package/node/esm/{MrOJ8ENTixputV8_.mjs → CE5UUdZ8bidtZxVI.mjs} +362 -360
- package/{browser/esm/CivKgcEQiXpDFLHE.mjs → node/esm/CIOhVshLBBACTKw4.mjs} +1 -1
- package/{browser/esm/DlNI2fuUSYxsUPt8.mjs → node/esm/CMSKXl6rbx5miTNQ.mjs} +1 -1
- package/node/esm/{Tl8jbxaeK1y9aMPJ.mjs → CNmI4DKpe0t8gN4o.mjs} +1 -1
- package/node/esm/{BXc12GgwQ08R7S8e.mjs → CPs770aIZwPh6mF0.mjs} +1 -1
- package/node/esm/{rpVHlxg6GM8pJL5c.mjs → Cb6FcT6gppjhiDSw.mjs} +253 -251
- package/{browser/esm/D3YTY3N6YHU69ymA.mjs → node/esm/CiTlupx_cuXQySFz.mjs} +1 -1
- package/{browser/esm/bIOUtGNQ6YQktkYZ.mjs → node/esm/D6IgoU0LlIv_Vb4m.mjs} +1 -1
- package/{browser/esm/DaJrKgrSikJvUv0q.mjs → node/esm/DDHWZD7Y6pihyVio.mjs} +1 -1
- package/node/esm/{mxJXDPqwl0wNxd66.mjs → DEAxRkKlMDxHooJB.mjs} +1 -1
- package/{browser/esm/DP9RiXAeb1fiRFpG.mjs → node/esm/Dd2ZeNLusT_ZXcoE.mjs} +1 -1
- package/node/esm/{C6lX28OYg20N0MeO.mjs → DzsYVdrM0pVVPfdv.mjs} +1 -1
- package/{browser/esm/aF3uflTbayaEj07D.mjs → node/esm/NvmvIR3jfjlY98jJ.mjs} +1 -1
- package/node/esm/{BNURhfAYTEVJWTYT.mjs → XxsAmmMnL6UJ_NtN.mjs} +1 -1
- package/node/esm/{io70M3K8dlSe5V-4.mjs → ease-qEarwjnTOzw.mjs} +1 -1
- package/node/esm/index.mjs +12252 -13543
- package/{browser/esm/HTDFLMWuQb82Y-GF.mjs → node/esm/pyVBYhEMGgaVvnd1.mjs} +1 -1
- package/node/esm/{CHnRYVDwiNY7YZxQ.mjs → xlM5nOnBp3h54uCb.mjs} +1 -1
- package/package.json +4 -4
- package/browser/cjs/BRvrxzKBJ-g1N73t.cjs +0 -1501
- package/browser/cjs/Ba3X8U1ch1pBFv_a.cjs +0 -124
- package/browser/cjs/C2DyH3SwPIgmFosH.cjs +0 -7
- package/browser/cjs/CEW45o7VnarqfsgH.cjs +0 -6
- package/browser/cjs/CZ4_zpdkkZ0zH7aN.cjs +0 -6
- package/browser/cjs/CbYFnsibjJUHV0xm.cjs +0 -6
- package/browser/cjs/D_zdscoLJ72sNgWv.cjs +0 -32
- package/browser/cjs/mf_wa0ubPjGaRkSW.cjs +0 -13
- package/browser/cjs/wcsUsHAbDuK3rvVp.cjs +0 -60
- package/browser/esm/B0RFp5vlJWj9U4Wn.mjs +0 -29
- package/browser/esm/BikAM7lQn1NrVPNP.mjs +0 -21
- package/browser/esm/C0d1-jgvvUt3Bpg9.mjs +0 -472
- package/browser/esm/CqYcEZmhnI3bq0wV.mjs +0 -820
- package/browser/esm/DbvBy4EEBdPhE-8G.mjs +0 -24
- package/browser/esm/DhIglmQyhLXPjrbo.mjs +0 -1575
- package/node/esm/BI2k0XM8cAqRUH3e.mjs +0 -80
- package/node/esm/BPSX88j1UHZNFlgn.mjs +0 -14
- package/node/esm/BcQcJWzyihj46-gX.mjs +0 -454
- package/node/esm/C4d62D9fLTRjV7rI.mjs +0 -29
- package/node/esm/D_13otLly5j8n5Gg.mjs +0 -813
- package/node/esm/Dsf-AEKpZlzGOrcG.mjs +0 -16
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.22
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { c as e, t, g as n, a as r, b as s, d as i, e as o, r as a, m as l, f as u } from "./index.mjs";
|
|
8
|
+
import { FormulaError as c, ScalarType as p } from "@sheetxl/primitives";
|
|
9
|
+
import { CoordUtils as f, CommonUtils as h } from "@sheetxl/utils";
|
|
8
10
|
import { Lexer as g, createToken as d, EmbeddedActionsParser as m } from "chevrotain";
|
|
9
11
|
const E = d({ name: "WhiteSpace", pattern: /\s+/, group: g.SKIPPED }), A = d({ name: "String", pattern: /"(""|[^"])*"/ }), N = d({ name: "SingleQuotedString", pattern: /'(''|[^'])*'/ }), I = d({ name: "SheetQuoted", pattern: /'((?![\\/[\]*?:]).)+?'!/ }), O = d({ name: "FunctionToken", pattern: /[A-Za-z_]+[A-Za-z_0-9.]*\(/ }), x = d({ name: "NamedTableReference", pattern: /[A-Za-z_]+[A-Za-z_0-9.]*\[/ }), S = d({ name: "BracketedString", pattern: /\[([^[\]]*)\]/, longer_alt: [x, A] }), L = d({ name: "LiteralError", pattern: /#PARSE!|#NULL!|#DIV\/0!|#VALUE!|#NUM!|#FIELD!|#N\/A|#GETTING_DATA|#SPILL!|#CONNECT!|#BLOCKED!|#UNKNOWN!|#FIELD!|#CALC!|#BUSY!|#PYTHON!|#TIMEOUT!/ }), T = d({ name: "RefError", pattern: /#REF!|#NAME\?/ }), R = d({ name: "Sheet", pattern: /[A-Za-z_.\d\u007F-\uFFFF]+!/ }), v = /^[a-zA-Z_][a-zA-Z0-9_.?]*:?/, U = d({ name: "Name", pattern: { exec: (e2, t2) => {
|
|
10
12
|
try {
|
|
@@ -64,60 +66,60 @@ const ue = { boolean: 3, string: 2, number: 1 }, ce = (e2, t2) => {
|
|
|
64
66
|
}, Oe = (e2 = null, t2 = null) => {
|
|
65
67
|
const n2 = typeof e2, r2 = typeof t2;
|
|
66
68
|
return n2 === r2 ? e2 <= t2 : ue[n2] <= ue[r2];
|
|
67
|
-
}, xe = { type:
|
|
68
|
-
if (null !==
|
|
69
|
-
let
|
|
70
|
-
if (
|
|
71
|
-
const
|
|
72
|
-
return
|
|
69
|
+
}, xe = { type: p.Number, coerce: true, includeBoolean: true, includeMistyped: true, mismatchFill: c.BuiltIn.NA }, Se = { type: p.String, coerce: true, includeMistyped: true, mismatchFill: c.BuiltIn.NA }, Le = { type: null, coerce: true, includeMistyped: true, mismatchFill: c.BuiltIn.NA }, Te = (n2, r2, s2, i2) => {
|
|
70
|
+
if (null !== r2 && void 0 !== r2.colStart && (r2 = n2.getValueAt(r2.rowStart, r2.colStart)), null !== s2 && void 0 !== s2.colStart && (s2 = n2.getValueAt(s2.rowStart, s2.colStart)), "number" == typeof r2 && "number" == typeof s2) return i2(r2, s2);
|
|
71
|
+
let o2, a2;
|
|
72
|
+
if (r2?.isIRange ? o2 = r2 : s2?.isIRange && (a2 = s2), !o2 && !a2) {
|
|
73
|
+
const n3 = false;
|
|
74
|
+
return r2 = e(r2, t(r2, true), p.Number, true, n3), s2 = e(s2, t(s2, true), p.Number, true, n3), r2 instanceof c.Value ? r2 : s2 instanceof c.Value ? s2 : i2(r2, s2);
|
|
73
75
|
}
|
|
74
|
-
return
|
|
76
|
+
return o2 || (o2 = n2.getRange(r2)), o2.broadcast(s2, i2, xe).fillEmpty(0);
|
|
75
77
|
}, Re = (e2, t2, n2, r2) => {
|
|
76
78
|
let s2, i2;
|
|
77
79
|
return null !== t2 && void 0 !== t2.colStart && (t2 = e2.getValueAt(t2.rowStart, t2.colStart)), null !== n2 && void 0 !== n2.colStart && (n2 = e2.getValueAt(n2.rowStart, n2.colStart)), t2?.isIRange ? (s2 = t2, i2 = n2) : n2?.isIRange && (s2 = n2, i2 = t2), s2 ? s2.broadcast(i2, r2, Le) : r2(t2, n2);
|
|
78
|
-
}, ve = (
|
|
79
|
-
null ==
|
|
80
|
-
let
|
|
81
|
-
if ("+" ===
|
|
82
|
-
if ("-" !==
|
|
83
|
-
return
|
|
84
|
-
}, Ue = (t2, n2, r2
|
|
85
|
-
if (!
|
|
86
|
-
if (
|
|
87
|
-
if (
|
|
88
|
-
const
|
|
89
|
-
return
|
|
90
|
-
}, ye = { "+": (e2, t2, n2) => Te(e2, t2, n2, ce), "-": (e2, t2, n2) => Te(e2, t2, n2, pe), "*": (e2, t2, n2) => Te(e2, t2, n2, fe), "/": (e2, t2, n2) => Te(e2, t2, n2, he), "^": (e2, t2, n2) => Te(e2, t2, n2, ge), " ": (e2, n2, r2
|
|
91
|
-
const
|
|
92
|
-
return e2.getFunction("TRIMRANGE").execute(
|
|
93
|
-
}, ".:": (e2, n2, r2
|
|
94
|
-
const
|
|
95
|
-
return e2.getFunction("TRIMRANGE").execute(
|
|
96
|
-
}, ":.": (e2, n2, r2
|
|
97
|
-
const
|
|
98
|
-
return e2.getFunction("TRIMRANGE").execute(
|
|
99
|
-
}, "&": (
|
|
100
|
-
if (null !==
|
|
101
|
-
let
|
|
102
|
-
return
|
|
103
|
-
})(
|
|
104
|
-
if (!
|
|
105
|
-
const
|
|
106
|
-
if (
|
|
107
|
-
if (
|
|
108
|
-
const
|
|
109
|
-
if (
|
|
80
|
+
}, ve = (n2, r2) => {
|
|
81
|
+
null == r2 && (r2 = 0);
|
|
82
|
+
let s2, i2 = 1;
|
|
83
|
+
if ("+" === n2) return r2;
|
|
84
|
+
if ("-" !== n2) throw new c.Value(`Unrecognized prefix: ${n2}`);
|
|
85
|
+
return i2 = -i2, r2?.isIRange && (s2 = r2), s2 ? s2.broadcast(i2, fe, Le) : "number" != typeof (r2 = e(r2, t(r2, true), p.Number)) || isNaN(r2) ? c.BuiltIn.Value : r2 * i2;
|
|
86
|
+
}, Ue = (e2, t2, n2, r2) => {
|
|
87
|
+
if (!t2) return c.BuiltIn.Ref;
|
|
88
|
+
if (t2.isIReferenceRange && (t2 = t2.getCoords()), void 0 === t2.colStart) return c.BuiltIn.Ref;
|
|
89
|
+
if (n2.isIReferenceRange && (n2 = n2.getCoords()), void 0 === n2.colStart) return c.BuiltIn.Ref;
|
|
90
|
+
const s2 = r2(t2, n2);
|
|
91
|
+
return s2 ? e2.getReference(s2) : c.BuiltIn.Null;
|
|
92
|
+
}, ye = { "+": (e2, t2, n2) => Te(e2, t2, n2, ce), "-": (e2, t2, n2) => Te(e2, t2, n2, pe), "*": (e2, t2, n2) => Te(e2, t2, n2, fe), "/": (e2, t2, n2) => Te(e2, t2, n2, he), "^": (e2, t2, n2) => Te(e2, t2, n2, ge), " ": (e2, t2, n2, r2) => Ue(e2, t2, n2, f.intersectRanges), ":": (e2, t2, n2, r2) => Ue(e2, t2, n2, f.unionRanges), ".:.": (e2, t2, n2, r2) => {
|
|
93
|
+
const s2 = Ue(e2, t2, n2, f.unionRanges);
|
|
94
|
+
return e2.getFunction("TRIMRANGE").execute(s2, 3, 3);
|
|
95
|
+
}, ".:": (e2, t2, n2, r2) => {
|
|
96
|
+
const s2 = Ue(e2, t2, n2, f.unionRanges);
|
|
97
|
+
return e2.getFunction("TRIMRANGE").execute(s2, 1, 1);
|
|
98
|
+
}, ":.": (e2, t2, n2, r2) => {
|
|
99
|
+
const s2 = Ue(e2, t2, n2, f.unionRanges);
|
|
100
|
+
return e2.getFunction("TRIMRANGE").execute(s2, 2, 2);
|
|
101
|
+
}, "&": (n2, r2, s2) => ((n3, r3, s3, i2) => {
|
|
102
|
+
if (null !== r3 && void 0 !== r3.colStart && (r3 = n3.getValueAt(r3.rowStart, r3.colStart)), null !== s3 && void 0 !== s3.colStart && (s3 = n3.getValueAt(s3.rowStart, s3.colStart)), "string" == typeof r3 && "string" == typeof s3) return i2(r3, s3);
|
|
103
|
+
let o2, a2;
|
|
104
|
+
return r3?.isIRange ? o2 = r3 : s3?.isIRange && (a2 = s3), o2 || a2 ? (o2 || (o2 = n3.getRange(r3)), o2.broadcast(s3, i2, Se)) : i2(r3 = e(r3, t(r3, true), p.String), s3 = e(s3, t(s3, true), p.String));
|
|
105
|
+
})(n2, r2, s2, de), "=": (e2, t2, n2) => Re(e2, t2, n2, me), "<>": (e2, t2, n2) => Re(e2, t2, n2, Ee), ">": (e2, t2, n2) => Re(e2, t2, n2, Ae), "<": (e2, t2, n2) => Re(e2, t2, n2, Ie), ">=": (e2, t2, n2) => Re(e2, t2, n2, Ne), "<=": (e2, t2, n2) => Re(e2, t2, n2, Oe) }, we = { "-": (e2, t2) => ve("-", t2), "+": (e2, t2) => ve("+", t2), "@": (e2, t2) => {
|
|
106
|
+
if (!t2 || !t2.isIReferenceRange) return t2;
|
|
107
|
+
const n2 = t2.getCoords(), r2 = t2, s2 = e2.getPosition(), i2 = r2.getHeight(), o2 = r2.getWidth();
|
|
108
|
+
if (o2 > 1 && i2 > 1) return c.BuiltIn.Value;
|
|
109
|
+
if (i2 > 1) {
|
|
110
|
+
const e3 = s2.rowIndex - n2.rowStart;
|
|
111
|
+
if (e3 >= 0 && e3 < i2) return r2.getValueAt(e3, 0);
|
|
110
112
|
} else {
|
|
111
|
-
if (!(
|
|
113
|
+
if (!(o2 > 1)) return r2.getValueAt(0, 0);
|
|
112
114
|
{
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
115
|
+
const e3 = s2.colIndex - n2.colStart;
|
|
116
|
+
if (e3 >= 0 && e3 < o2) return r2.getValueAt(0, e3);
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
|
-
return
|
|
118
|
-
} }, Ce = { "%": (e2, t2) => Te(e2, t2, 100, he), "#": (
|
|
119
|
-
const
|
|
120
|
-
return
|
|
119
|
+
return c.BuiltIn.Value;
|
|
120
|
+
} }, Ce = { "%": (e2, t2) => Te(e2, t2, 100, he), "#": (e2, t2) => {
|
|
121
|
+
const n2 = e2.getSpillAt(t2.rowStart, t2.colStart);
|
|
122
|
+
return n2 || c.BuiltIn.Ref;
|
|
121
123
|
} };
|
|
122
124
|
function _e(e2) {
|
|
123
125
|
const t2 = (e2 = e2.toUpperCase()).length;
|
|
@@ -172,11 +174,11 @@ function Ge(e2) {
|
|
|
172
174
|
function qe(e2) {
|
|
173
175
|
return { type: "boolean", value: "TRUE" === e2 || "TRUE" === e2.toUpperCase(), isLiteral: true };
|
|
174
176
|
}
|
|
175
|
-
function je(
|
|
176
|
-
return { type: "error", value:
|
|
177
|
+
function je(e2) {
|
|
178
|
+
return { type: "error", value: c.getBuiltInByLabel(e2.toUpperCase()), isLiteral: true };
|
|
177
179
|
}
|
|
178
|
-
function Ye(
|
|
179
|
-
return { type: "error", value:
|
|
180
|
+
function Ye(e2) {
|
|
181
|
+
return { type: "error", value: e2 ? c.getBuiltInByLabel(e2.toUpperCase()) : c.BuiltIn.Ref, inputs: null, isReference: true };
|
|
180
182
|
}
|
|
181
183
|
function De(e2, t2) {
|
|
182
184
|
const n2 = function e3(n3, r2) {
|
|
@@ -195,74 +197,74 @@ function De(e2, t2) {
|
|
|
195
197
|
return n2 || this;
|
|
196
198
|
}
|
|
197
199
|
function Ze(e2, t2) {
|
|
198
|
-
let
|
|
200
|
+
let r2 = 0, s2 = De(e2, (e3) => {
|
|
199
201
|
const t3 = { ...e3 };
|
|
200
|
-
return t3.evalIndex =
|
|
202
|
+
return t3.evalIndex = r2++, t3;
|
|
201
203
|
});
|
|
202
|
-
const
|
|
204
|
+
const i2 = new Array(r2), o2 = /* @__PURE__ */ new Set(), a2 = /* @__PURE__ */ new Map();
|
|
203
205
|
let l2;
|
|
204
206
|
const u2 = /* @__PURE__ */ new Map(), c2 = [], p2 = [];
|
|
205
|
-
|
|
206
|
-
const
|
|
207
|
-
if (
|
|
208
|
-
const t4 = e3,
|
|
209
|
-
if (u2.set(t4,
|
|
210
|
-
const
|
|
211
|
-
return
|
|
207
|
+
s2 = De(s2, (e3, t3) => {
|
|
208
|
+
const r3 = e3.type, s3 = e3.evalIndex;
|
|
209
|
+
if (i2[s3] = null, e3.isReference) {
|
|
210
|
+
const t4 = e3, n2 = { node: e3, index: u2.size, op: null, value: null, inputs: null };
|
|
211
|
+
if (u2.set(t4, n2), "cell" === r3) {
|
|
212
|
+
const r4 = t4.value;
|
|
213
|
+
return r4.$colIndex && (n2.hasHorizontalAbs = true), r4.$rowIndex && (n2.hasVerticalAbs = true), n2.value = a2.size, a2.set(t4, a2.size), o2.add(n2), e3.refIndex = p2.length, void p2.push(n2.index);
|
|
212
214
|
}
|
|
213
|
-
if ("infix" ===
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
const a3 = new Array(
|
|
217
|
-
|
|
218
|
-
for (let e4 = 0; e4 <
|
|
219
|
-
const t5 =
|
|
220
|
-
|
|
215
|
+
if ("infix" === r3 || "prefix" === r3 || "postfix" === r3 || "spill" === r3) {
|
|
216
|
+
const r4 = t4.inputs, s4 = r4.length, i3 = e3.value;
|
|
217
|
+
n2.op = i3;
|
|
218
|
+
const a3 = new Array(s4);
|
|
219
|
+
n2.inputs = a3;
|
|
220
|
+
for (let e4 = 0; e4 < s4; e4++) {
|
|
221
|
+
const t5 = r4[e4], s5 = u2.get(t5);
|
|
222
|
+
s5 && (s5.hasHorizontalAbs && (n2.hasHorizontalAbs = true), s5.hasVerticalAbs && (n2.hasVerticalAbs = true)), a3[e4] = s5 ? s5.index : -1, o2.delete(s5);
|
|
221
223
|
}
|
|
222
|
-
if (o2.add(
|
|
223
|
-
const t5 =
|
|
224
|
-
|
|
225
|
-
} else "#" ===
|
|
224
|
+
if (o2.add(n2), Je.includes(i3)) {
|
|
225
|
+
const t5 = r4[0], s5 = !!t5 && "cell" === t5.type, i4 = r4[1], o3 = !!i4 && "cell" === i4.type;
|
|
226
|
+
s5 && o3 && (p2.splice(i4.refIndex, 1), i4.refIndex = t5.refIndex, e3.refIndex = t5.refIndex, p2[t5.refIndex] = n2.index);
|
|
227
|
+
} else "#" === i3 && (e3.refIndex = r4[0].refIndex);
|
|
226
228
|
return void c2.push(e3);
|
|
227
229
|
}
|
|
228
|
-
if ("error" ===
|
|
230
|
+
if ("error" === r3 || "named" === r3) {
|
|
229
231
|
l2 || (l2 = /* @__PURE__ */ new Map());
|
|
230
|
-
const
|
|
231
|
-
let
|
|
232
|
-
return
|
|
232
|
+
const s4 = t4.value;
|
|
233
|
+
let i3 = l2.get(s4);
|
|
234
|
+
return n2.op = r3, void 0 === i3 && (i3 = l2.size, l2.set(s4, i3)), n2.value = i3, o2.add(n2), e3.refIndex = p2.length, void p2.push(n2.index);
|
|
233
235
|
}
|
|
234
|
-
"tableReference" ===
|
|
236
|
+
"tableReference" === r3 && (n2.op = r3), "tableSpecifier" === r3 && (n2.op = r3), "structuredArg" === r3 && (n2.op = r3);
|
|
235
237
|
} else if (t3 && t3.isReference) {
|
|
236
|
-
const t4 = e3,
|
|
237
|
-
u2.set(t4,
|
|
238
|
+
const t4 = e3, n2 = { node: e3, index: u2.size, op: "function", value: e3.value, inputs: null };
|
|
239
|
+
u2.set(t4, n2);
|
|
238
240
|
}
|
|
239
|
-
if (e3.isLiteral) if ("array" !==
|
|
241
|
+
if (e3.isLiteral) if ("array" !== r3) i2[s3] = e3.value;
|
|
240
242
|
else {
|
|
241
|
-
const t4 = e3.value,
|
|
242
|
-
for (let e4 = 0; e4 <
|
|
243
|
-
const
|
|
244
|
-
for (let e5 = 0; e5 <
|
|
245
|
-
const t5 =
|
|
246
|
-
let
|
|
243
|
+
const t4 = e3.value, r4 = t4.length, o3 = new Array(r4);
|
|
244
|
+
for (let e4 = 0; e4 < r4; e4++) {
|
|
245
|
+
const n2 = t4[e4].value, r5 = n2.length, s4 = new Array(r5);
|
|
246
|
+
for (let e5 = 0; e5 < r5; e5++) {
|
|
247
|
+
const t5 = n2[e5];
|
|
248
|
+
let r6 = t5.value;
|
|
247
249
|
if ("prefix" === t5.type) {
|
|
248
250
|
const e6 = t5.value;
|
|
249
|
-
|
|
251
|
+
r6 = t5.inputs[0].value, "-" === e6 && (r6 = -r6);
|
|
250
252
|
}
|
|
251
|
-
|
|
253
|
+
s4[e5] = r6;
|
|
252
254
|
}
|
|
253
|
-
o3[e4] =
|
|
255
|
+
o3[e4] = s4;
|
|
254
256
|
}
|
|
255
|
-
|
|
257
|
+
i2[s3] = n(o3);
|
|
256
258
|
}
|
|
257
259
|
else {
|
|
258
|
-
if ("empty" !==
|
|
259
|
-
|
|
260
|
+
if ("empty" !== r3) return c2.push(e3), e3;
|
|
261
|
+
i2[s3] = void 0;
|
|
260
262
|
}
|
|
261
263
|
});
|
|
262
264
|
const f2 = new Array(a2.size);
|
|
263
265
|
a2.forEach((e3, t3) => {
|
|
264
|
-
const
|
|
265
|
-
r3 === Number.MIN_SAFE_INTEGER && (a3.colEnd = Number.MAX_SAFE_INTEGER), s3 === Number.MIN_SAFE_INTEGER && (a3.rowEnd = Number.MAX_SAFE_INTEGER),
|
|
266
|
+
const n2 = t3.value, r3 = n2.colIndex, s3 = n2.rowIndex, i3 = n2.$colIndex, o3 = n2.$rowIndex, a3 = { colStart: r3, rowStart: s3, colEnd: r3, rowEnd: s3, $colStart: i3, $rowStart: o3, $colEnd: i3, $rowEnd: o3 };
|
|
267
|
+
r3 === Number.MIN_SAFE_INTEGER && (a3.colEnd = Number.MAX_SAFE_INTEGER), s3 === Number.MIN_SAFE_INTEGER && (a3.rowEnd = Number.MAX_SAFE_INTEGER), n2.sheetName && (a3.sheetName = n2.sheetName), f2[e3] = a3;
|
|
266
268
|
});
|
|
267
269
|
const h2 = f2.length, g2 = new Array(h2);
|
|
268
270
|
for (let e3 = 0; e3 < h2; e3++) g2[e3] = { colStart: 0, rowStart: 0, colEnd: 0, rowEnd: 0, sheetName: null };
|
|
@@ -279,113 +281,113 @@ function Ze(e2, t2) {
|
|
|
279
281
|
});
|
|
280
282
|
const A2 = c2.length;
|
|
281
283
|
for (let e3 = 0; e3 < A2; e3++) {
|
|
282
|
-
const t3 = c2[e3],
|
|
283
|
-
if ("infix" ===
|
|
284
|
+
const t3 = c2[e3], n2 = t3.type;
|
|
285
|
+
if ("infix" === n2) {
|
|
284
286
|
const e4 = t3.value;
|
|
285
287
|
t3.fn = ye[e4];
|
|
286
|
-
} else if ("prefix" ===
|
|
288
|
+
} else if ("prefix" === n2) {
|
|
287
289
|
const e4 = t3.value;
|
|
288
290
|
t3.fn = we[e4];
|
|
289
|
-
} else if ("postfix" ===
|
|
291
|
+
} else if ("postfix" === n2) {
|
|
290
292
|
const e4 = t3.value;
|
|
291
293
|
t3.fn = Ce[e4];
|
|
292
294
|
}
|
|
293
295
|
}
|
|
294
296
|
const N2 = function(e3) {
|
|
295
|
-
const t3 = [],
|
|
297
|
+
const t3 = [], n2 = (e4, n3) => {
|
|
296
298
|
const r4 = { type: e4.type, value: e4.value };
|
|
297
|
-
void 0 !== e4.evalIndex && (r4.evalIndex = e4.evalIndex), void 0 !== e4.refIndex && (r4.refIndex = e4.refIndex),
|
|
298
|
-
}, r3 = (e4,
|
|
299
|
-
if (null ==
|
|
299
|
+
void 0 !== e4.evalIndex && (r4.evalIndex = e4.evalIndex), void 0 !== e4.refIndex && (r4.refIndex = e4.refIndex), n3 && (r4.ctx = n3), t3.push(r4);
|
|
300
|
+
}, r3 = (e4, n3, r4, s4) => {
|
|
301
|
+
if (null == n3) return;
|
|
300
302
|
if (t3.length > 1 && "whitespace" === e4 && "whitespace" === t3[t3.length - 1].type) return;
|
|
301
|
-
const
|
|
302
|
-
r4 && (
|
|
303
|
+
const i3 = { type: e4, value: n3 };
|
|
304
|
+
r4 && (i3.ctx = r4), void 0 !== s4 && (i3.evalIndex = s4), t3.push(i3);
|
|
303
305
|
};
|
|
304
|
-
!function e4(t4, s4,
|
|
305
|
-
const o3 = t4.evalIndex ??
|
|
306
|
+
!function e4(t4, s4, i3) {
|
|
307
|
+
const o3 = t4.evalIndex ?? i3 ?? 0, a3 = t4.type, l3 = (t5, n3, s5) => {
|
|
306
308
|
if (!t5) return;
|
|
307
|
-
const
|
|
308
|
-
for (let o4 = 0; o4 <
|
|
309
|
+
const i4 = t5.length;
|
|
310
|
+
for (let o4 = 0; o4 < i4; o4++) e4(t5[o4], n3, s5), o4 < i4 - 1 && r3("comma", ",", n3);
|
|
309
311
|
};
|
|
310
312
|
if (t4.isLiteral) {
|
|
311
313
|
if (r3("whitespace", t4.wsBefore, s4), "array" === a3) {
|
|
312
314
|
r3("type", "{", s4);
|
|
313
|
-
const
|
|
314
|
-
for (let t5 = 0; t5 <
|
|
315
|
-
const a4 =
|
|
315
|
+
const n3 = t4.value, i4 = n3.length;
|
|
316
|
+
for (let t5 = 0; t5 < i4; t5++) {
|
|
317
|
+
const a4 = n3[t5], l4 = a4.value, u3 = l4.length;
|
|
316
318
|
for (let t6 = 0; t6 < u3; t6++) {
|
|
317
|
-
const
|
|
318
|
-
r3("whitespace",
|
|
319
|
+
const n4 = l4[t6];
|
|
320
|
+
r3("whitespace", n4.wsBefore, s4), e4(n4, s4, o3), r3("whitespace", n4.wsAfter, s4), t6 < u3 - 1 && r3("comma", ",", s4);
|
|
319
321
|
}
|
|
320
|
-
t5 <
|
|
322
|
+
t5 < i4 - 1 && (r3("whitespace", a4.wsBefore, s4), r3("comma", ";", s4), r3("whitespace", a4.wsAfter, s4));
|
|
321
323
|
}
|
|
322
324
|
t4.error || r3("type", "}", s4);
|
|
323
|
-
} else "quotedString" === a3 ? (t4 = { type: a3, value: '"' + t4.value + '"' },
|
|
325
|
+
} else "quotedString" === a3 ? (t4 = { type: a3, value: '"' + t4.value + '"' }, n2(t4, s4)) : n2(t4, s4);
|
|
324
326
|
r3("whitespace", t4.wsAfter, s4);
|
|
325
|
-
} else if ("infix" === a3) e4(t4.inputs[0], s4, o3), r3("whitespace", t4.wsBefore, s4),
|
|
326
|
-
else if ("prefix" === a3) r3("whitespace", t4.wsBefore, s4),
|
|
327
|
-
else if ("postfix" === a3) e4(t4.inputs[0], s4, o3), r3("whitespace", t4.wsBefore, s4),
|
|
327
|
+
} else if ("infix" === a3) e4(t4.inputs[0], s4, o3), r3("whitespace", t4.wsBefore, s4), n2(t4, s4), r3("whitespace", t4.wsAfter, s4), e4(t4.inputs[1], s4, o3);
|
|
328
|
+
else if ("prefix" === a3) r3("whitespace", t4.wsBefore, s4), n2(t4, s4), r3("whitespace", t4.wsAfter, s4), e4(t4.inputs[0], s4, o3);
|
|
329
|
+
else if ("postfix" === a3) e4(t4.inputs[0], s4, o3), r3("whitespace", t4.wsBefore, s4), n2(t4, s4), r3("whitespace", t4.wsAfter, s4);
|
|
328
330
|
else {
|
|
329
331
|
r3("whitespace", t4.wsBefore, s4);
|
|
330
|
-
const
|
|
332
|
+
const i4 = t4.inputs;
|
|
331
333
|
switch (a3) {
|
|
332
334
|
case "function":
|
|
333
|
-
|
|
335
|
+
n2(t4, s4);
|
|
334
336
|
const u3 = { name: String(t4.value), argIndex: -1 };
|
|
335
|
-
if (r3("paren", "(", u3, t4.evalIndex),
|
|
336
|
-
const t5 =
|
|
337
|
-
for (let
|
|
338
|
-
const s5 = { ...u3, argIndex:
|
|
339
|
-
e4(
|
|
337
|
+
if (r3("paren", "(", u3, t4.evalIndex), i4) {
|
|
338
|
+
const t5 = i4.length;
|
|
339
|
+
for (let n3 = 0; n3 < t5; n3++) {
|
|
340
|
+
const s5 = { ...u3, argIndex: n3 };
|
|
341
|
+
e4(i4[n3], s5, o3), n3 < t5 - 1 && r3("comma", ",", s5);
|
|
340
342
|
}
|
|
341
343
|
}
|
|
342
344
|
t4.error || r3("paren", ")", u3, t4.evalIndex);
|
|
343
345
|
break;
|
|
344
346
|
case "cell":
|
|
345
|
-
|
|
347
|
+
n2(t4, s4);
|
|
346
348
|
break;
|
|
347
349
|
case "paren":
|
|
348
|
-
r3(a3, "(", s4, o3), l3(
|
|
350
|
+
r3(a3, "(", s4, o3), l3(i4, s4, o3), t4.error || r3(a3, ")", s4, o3);
|
|
349
351
|
break;
|
|
350
352
|
case "squareParen":
|
|
351
|
-
r3(a3, "[", s4, o3), l3(
|
|
353
|
+
r3(a3, "[", s4, o3), l3(i4, s4, o3), t4.error || r3(a3, "]", s4, o3);
|
|
352
354
|
break;
|
|
353
355
|
case "tableReference":
|
|
354
|
-
|
|
356
|
+
n2(t4, s4);
|
|
355
357
|
const c3 = { name: String(t4.value), argIndex: -1 };
|
|
356
|
-
if (r3("paren", "[", c3),
|
|
357
|
-
const t5 =
|
|
358
|
-
for (let
|
|
359
|
-
const s5 = { ...c3, argIndex:
|
|
360
|
-
e4(
|
|
358
|
+
if (r3("paren", "[", c3), i4) {
|
|
359
|
+
const t5 = i4.length;
|
|
360
|
+
for (let n3 = 0; n3 < t5; n3++) {
|
|
361
|
+
const s5 = { ...c3, argIndex: n3 };
|
|
362
|
+
e4(i4[n3], s5, o3), n3 < t5 - 1 && r3("comma", ",", s5);
|
|
361
363
|
}
|
|
362
364
|
}
|
|
363
365
|
t4.error || r3("paren", "]", c3);
|
|
364
366
|
break;
|
|
365
367
|
default:
|
|
366
|
-
void 0 !== t4.value &&
|
|
368
|
+
void 0 !== t4.value && n2(t4, s4), i4 && i4.forEach((t5) => e4(t5, s4, o3));
|
|
367
369
|
}
|
|
368
370
|
r3("whitespace", t4.wsAfter, s4);
|
|
369
371
|
}
|
|
370
372
|
}(e3);
|
|
371
373
|
const s3 = t3.length;
|
|
372
374
|
for (let e4 = 0; e4 < s3; e4++) {
|
|
373
|
-
const
|
|
374
|
-
if ("whitespace" ===
|
|
375
|
+
const n3 = t3[e4];
|
|
376
|
+
if ("whitespace" === n3.type && void 0 === n3.evalIndex) {
|
|
375
377
|
const r4 = t3[e4 + 1];
|
|
376
|
-
r4 && void 0 !== r4.evalIndex && (
|
|
378
|
+
r4 && void 0 !== r4.evalIndex && (n3.evalIndex = r4.evalIndex);
|
|
377
379
|
}
|
|
378
380
|
}
|
|
379
381
|
return t3;
|
|
380
|
-
}(
|
|
381
|
-
return { ast:
|
|
382
|
+
}(s2);
|
|
383
|
+
return { ast: s2, evaluations: i2, executions: c2, precedentsAbsolute: g2, precedentsExecute: d2, precedentsNamed: m2, precedentsRelative: f2, precedentsRoot: E2, references: p2, tokens: N2, error: t2 };
|
|
382
384
|
}
|
|
383
|
-
function He(
|
|
384
|
-
let
|
|
385
|
-
Number.isSafeInteger(
|
|
386
|
-
` +
|
|
387
|
-
const
|
|
388
|
-
return
|
|
385
|
+
function He(e2, t2) {
|
|
386
|
+
let n2, r2 = -1, s2 = "";
|
|
387
|
+
Number.isSafeInteger(e2.previousToken?.startLine) ? (r2 = e2.previousToken.startLine, n2 = e2.previousToken.endColumn + 1) : Number.isSafeInteger(e2.token?.startLine) && (r2 = e2.token.startLine, n2 = e2.token.startColumn), -1 !== r2 ? (s2 += "\n" + t2.split("\n")[r2 - 1] + "\n", s2 += Array(n2 - 1).fill(" ").join("") + "^\n", s2 += `Error at position ${r2}:${n2}
|
|
388
|
+
` + e2.message, e2.errorLocation = { line: r2, column: n2 }) : s2 = t2 + "\n" + e2.message;
|
|
389
|
+
const i2 = new c.Parse(s2);
|
|
390
|
+
return i2.details = e2, i2;
|
|
389
391
|
}
|
|
390
392
|
const Ke = function(e2, t2) {
|
|
391
393
|
return t2.wsBefore && (e2.wsBefore = t2.wsBefore), t2.wsAfter && (e2.wsAfter = t2.wsAfter), t2.image && (e2.image = t2.image), e2;
|
|
@@ -672,66 +674,66 @@ class Dt extends m {
|
|
|
672
674
|
}
|
|
673
675
|
return e2;
|
|
674
676
|
}
|
|
675
|
-
_createAST(
|
|
676
|
-
const
|
|
677
|
-
const
|
|
678
|
-
if (
|
|
679
|
-
const
|
|
680
|
-
let
|
|
681
|
-
throw
|
|
682
|
-
` +
|
|
677
|
+
_createAST(e2, t2) {
|
|
678
|
+
const n2 = function(e3) {
|
|
679
|
+
const t3 = ae.tokenize(e3);
|
|
680
|
+
if (t3.errors.length > 0) {
|
|
681
|
+
const n3 = t3.errors[0], r3 = n3.line, s3 = n3.column;
|
|
682
|
+
let i3 = "\n" + e3.split("\n")[r3 - 1] + "\n";
|
|
683
|
+
throw i3 += Array(s3 - 1).fill(" ").join("") + "^\n", n3.message = i3 + `Error at position ${r3}:${s3}
|
|
684
|
+
` + n3.message, n3.errorLocation = { line: r3, column: s3 }, new c.Parse(n3.message, { line: r3, column: s3, offset: n3.offset, length: n3.length });
|
|
683
685
|
}
|
|
684
|
-
return
|
|
685
|
-
}(
|
|
686
|
-
let
|
|
687
|
-
if (!
|
|
688
|
-
const
|
|
689
|
-
this.input =
|
|
690
|
-
const
|
|
691
|
-
return this.position =
|
|
692
|
-
let n3 =
|
|
693
|
-
if ("function" === n3 &&
|
|
694
|
-
const t4 =
|
|
695
|
-
let r4 =
|
|
696
|
-
"ANCHORARRAY" === t4 ? (s3 = We("#",
|
|
686
|
+
return t3;
|
|
687
|
+
}(t2);
|
|
688
|
+
let r2;
|
|
689
|
+
if (!n2) return r2 = { type: "text", value: t2 }, r2;
|
|
690
|
+
const s2 = n2.tokens;
|
|
691
|
+
this.input = s2, this.inputTextLength = t2.length;
|
|
692
|
+
const i2 = e2.getPosition();
|
|
693
|
+
return this.position = i2, this.astErrors = [], this.reset(), r2 = this.intersectOp(), r2 = De(r2, (e3, t3) => {
|
|
694
|
+
let n3 = e3.type;
|
|
695
|
+
if ("function" === n3 && e3.value && e3.value.toUpperCase().startsWith(Qe)) {
|
|
696
|
+
const t4 = e3.value.substring(6);
|
|
697
|
+
let r4 = e3.image.substring(6), s3 = e3;
|
|
698
|
+
"ANCHORARRAY" === t4 ? (s3 = We("#", e3.inputs[0], true), r4 = "#") : "SINGLE" === t4 ? (s3 = ze("@", e3.inputs[0], true), r4 = "@") : s3 = Pe(t4, e3.inputs), Ke(s3, e3), s3.image = r4, n3 = (e3 = s3).type;
|
|
697
699
|
}
|
|
698
700
|
const r3 = t3?.isReference;
|
|
699
701
|
if (r3) {
|
|
700
702
|
const n4 = t3.value;
|
|
701
|
-
if ((":" === n4 || ".:." === n4 || ".:" === n4 || ":." === n4) && Number.isInteger(
|
|
702
|
-
const n5 = t3.inputs[0] ===
|
|
703
|
+
if ((":" === n4 || ".:." === n4 || ".:" === n4 || ":." === n4) && Number.isInteger(e3.value)) {
|
|
704
|
+
const n5 = t3.inputs[0] === e3 ? t3.inputs[1] : t3.inputs[0];
|
|
703
705
|
if (n5 && Number.isInteger(n5.value)) {
|
|
704
|
-
const t4 = be(
|
|
705
|
-
return Ke(t4,
|
|
706
|
+
const t4 = be(e3.image, i2);
|
|
707
|
+
return Ke(t4, e3), t4;
|
|
706
708
|
}
|
|
707
709
|
}
|
|
708
710
|
} else if ("cell" === n3) {
|
|
709
|
-
const t4 =
|
|
711
|
+
const t4 = e3.value;
|
|
710
712
|
if (t4.rowIndex === Number.MIN_SAFE_INTEGER || t4.colIndex >= 16384) {
|
|
711
|
-
const t5 = ke(
|
|
712
|
-
return Ke(t5,
|
|
713
|
+
const t5 = ke(e3.image);
|
|
714
|
+
return Ke(t5, e3), t5;
|
|
713
715
|
}
|
|
714
716
|
}
|
|
715
|
-
return
|
|
716
|
-
}),
|
|
717
|
+
return e3;
|
|
718
|
+
}), r2;
|
|
717
719
|
}
|
|
718
|
-
build(
|
|
719
|
-
if (0 ===
|
|
720
|
-
let r2, s2
|
|
720
|
+
build(e2, t2) {
|
|
721
|
+
if (0 === t2.length) throw Error("Input must not be empty.");
|
|
722
|
+
let n2, r2, s2;
|
|
721
723
|
try {
|
|
722
|
-
|
|
723
|
-
} catch (
|
|
724
|
-
|
|
724
|
+
n2 = this._createAST(e2, t2);
|
|
725
|
+
} catch (e3) {
|
|
726
|
+
s2 = e3 instanceof c.Parse ? e3 : new c.Parse(e3.message, e3);
|
|
725
727
|
}
|
|
726
|
-
const
|
|
727
|
-
if (
|
|
728
|
-
|
|
728
|
+
const i2 = this.errors;
|
|
729
|
+
if (i2.length > 0) {
|
|
730
|
+
s2 = He(i2[0], t2);
|
|
729
731
|
}
|
|
730
|
-
const
|
|
731
|
-
if (
|
|
732
|
-
|
|
732
|
+
const o2 = this.astErrors;
|
|
733
|
+
if (o2.length > 0) {
|
|
734
|
+
s2 = He(o2[0], t2);
|
|
733
735
|
}
|
|
734
|
-
return
|
|
736
|
+
return r2 = n2 ? Ze(n2, s2) : { ast: null, evaluations: h.EmptyArray, executions: h.EmptyArray, precedentsAbsolute: h.EmptyArray, precedentsExecute: h.EmptyArray, precedentsNamed: null, precedentsRelative: h.EmptyArray, precedentsRoot: h.EmptyArray, references: h.EmptyArray, tokens: h.EmptyArray, error: s2 }, r2;
|
|
735
737
|
}
|
|
736
738
|
}
|
|
737
739
|
class Zt {
|
|
@@ -739,7 +741,7 @@ class Zt {
|
|
|
739
741
|
this._options = e2, this._compiled = t2;
|
|
740
742
|
}
|
|
741
743
|
getTextAt(e2, t2, n2 = false) {
|
|
742
|
-
return n2 ?
|
|
744
|
+
return n2 ? s(this._compiled.tokens) : r(this._compiled.tokens, e2, t2);
|
|
743
745
|
}
|
|
744
746
|
getTokens() {
|
|
745
747
|
return this._compiled.tokens;
|
|
@@ -752,11 +754,11 @@ class Zt {
|
|
|
752
754
|
if (this === e2) return true;
|
|
753
755
|
const t2 = this._compiled.tokens, n2 = e2._compiled.tokens;
|
|
754
756
|
if (t2.length !== n2.length) return false;
|
|
755
|
-
return
|
|
757
|
+
return s(t2) === s(n2);
|
|
756
758
|
}
|
|
757
759
|
getReferences() {
|
|
758
760
|
const e2 = this._compiled, t2 = e2.references, n2 = t2.length;
|
|
759
|
-
if (0 === n2) return
|
|
761
|
+
if (0 === n2) return h.EmptyArray;
|
|
760
762
|
const r2 = e2.precedentsExecute, s2 = e2.precedentsRelative, i2 = new Array(n2);
|
|
761
763
|
for (let o2 = 0; o2 < n2; o2++) {
|
|
762
764
|
const n3 = r2[t2[o2]], a2 = n3.inputs;
|
|
@@ -773,40 +775,40 @@ class Zt {
|
|
|
773
775
|
}
|
|
774
776
|
return i2;
|
|
775
777
|
}
|
|
776
|
-
setReferenceAt(e2,
|
|
777
|
-
const
|
|
778
|
-
if (0 ===
|
|
779
|
-
const
|
|
780
|
-
if (void 0 ===
|
|
781
|
-
const
|
|
782
|
-
let
|
|
783
|
-
|
|
784
|
-
const g2 = 2 ===
|
|
778
|
+
setReferenceAt(e2, t2) {
|
|
779
|
+
const n2 = this._compiled, r2 = n2.references;
|
|
780
|
+
if (0 === r2.length) return h.EmptyArray;
|
|
781
|
+
const s2 = n2.precedentsExecute, i2 = r2[e2];
|
|
782
|
+
if (void 0 === i2) throw new Error(`Invalid reference index: ${e2}`);
|
|
783
|
+
const o2 = s2[i2], a2 = o2.node, l2 = a2.inputs ?? h.EmptyArray;
|
|
784
|
+
let u2, c2, p2 = false;
|
|
785
|
+
t2 && (u2 = { colIndex: t2.colStart, rowIndex: t2.rowStart, $colIndex: t2.$colStart ?? false, $rowIndex: t2.$rowStart ?? false }, t2.sheetName && (u2.sheetName = t2.sheetName), p2 = !f.isSingleCell(t2), p2 && (c2 = { colIndex: t2.colEnd, rowIndex: t2.rowEnd, $colIndex: t2.$colEnd ?? false, $rowIndex: t2.$rowEnd ?? false }, t2.colEnd === Number.MAX_SAFE_INTEGER && (c2.colIndex = Number.MIN_SAFE_INTEGER), t2.rowEnd === Number.MAX_SAFE_INTEGER && (c2.rowIndex = Number.MIN_SAFE_INTEGER)));
|
|
786
|
+
const g2 = 2 === l2.length;
|
|
785
787
|
let d2 = -1, m2 = -1;
|
|
786
|
-
if (g2) d2 =
|
|
788
|
+
if (g2) d2 = l2[0].evalIndex, m2 = l2[1].evalIndex;
|
|
787
789
|
else {
|
|
788
|
-
if ("cell" !==
|
|
789
|
-
d2 =
|
|
790
|
+
if ("cell" !== a2.type) throw "named" === o2.op ? new Error("Cannot setReference for a named reference") : new Error(`Invalidate reference index: ${e2}`);
|
|
791
|
+
d2 = a2.evalIndex;
|
|
790
792
|
}
|
|
791
793
|
const E2 = this._compiled.ast, A2 = De(E2, (e3) => {
|
|
792
794
|
if (!e3 || !e3.isReference) return;
|
|
793
|
-
const
|
|
794
|
-
if (!
|
|
795
|
-
const e4 =
|
|
796
|
-
let
|
|
797
|
-
if (
|
|
795
|
+
const n3 = e3.type;
|
|
796
|
+
if (!t2 && Je.includes(e3.value)) {
|
|
797
|
+
const e4 = l2[0], t3 = l2[1];
|
|
798
|
+
let n4 = e4.evalIndex === d2, r4 = t3.evalIndex === m2;
|
|
799
|
+
if (n4 || r4) {
|
|
798
800
|
const e5 = Ye();
|
|
799
801
|
return e5.image = "#REF!", e5;
|
|
800
802
|
}
|
|
801
803
|
}
|
|
802
|
-
if (!("cell" ===
|
|
804
|
+
if (!("cell" === n3 || "error" === n3)) return;
|
|
803
805
|
const r3 = e3.evalIndex;
|
|
804
806
|
let s3, i3 = r3 === d2;
|
|
805
807
|
if (i3 || r3 === m2) {
|
|
806
|
-
if (
|
|
807
|
-
let t3 = i3 ?
|
|
808
|
+
if (t2) if (g2 === p2) {
|
|
809
|
+
let t3 = i3 ? u2 : c2;
|
|
808
810
|
s3 = { ...e3 }, s3.value = t3, s3.image = null;
|
|
809
|
-
} else s3 =
|
|
811
|
+
} else s3 = p2 ? $e(":", Me(u2), Me(c2), true) : Me(u2);
|
|
810
812
|
else s3 = Ye(), s3.image = "#REF!";
|
|
811
813
|
return s3;
|
|
812
814
|
}
|
|
@@ -815,147 +817,147 @@ class Zt {
|
|
|
815
817
|
const N2 = Ze(A2, this._compiled.error), I2 = this._options;
|
|
816
818
|
return new Zt(I2, N2);
|
|
817
819
|
}
|
|
818
|
-
_resolveNamed(t2, n2, r2
|
|
819
|
-
const
|
|
820
|
-
if (!
|
|
821
|
-
let o2 =
|
|
822
|
-
return o2 ? (o2.isFormulaError || (o2 =
|
|
820
|
+
_resolveNamed(e2, t2, n2, r2) {
|
|
821
|
+
const s2 = this._options?.getNamed;
|
|
822
|
+
if (!s2) return c.BuiltIn.Name;
|
|
823
|
+
let o2 = s2?.(e2, this._options.getSheetName?.())?.[0];
|
|
824
|
+
return o2 ? (o2.isFormulaError || (o2 = i(o2, t2, n2, r2)), o2) : c.BuiltIn.Name;
|
|
823
825
|
}
|
|
824
|
-
getDirectPrecedentsAt(
|
|
825
|
-
const
|
|
826
|
-
if (0 ===
|
|
827
|
-
const
|
|
828
|
-
for (let
|
|
829
|
-
const
|
|
830
|
-
let s3 =
|
|
831
|
-
|
|
826
|
+
getDirectPrecedentsAt(e2, t2, n2 = false, r2, s2) {
|
|
827
|
+
const o2 = this._compiled, a2 = o2.precedentsRoot, l2 = a2.length;
|
|
828
|
+
if (0 === l2) return h.EmptyArray;
|
|
829
|
+
const u2 = o2.precedentsRelative, p2 = o2.precedentsAbsolute, g2 = u2.length;
|
|
830
|
+
for (let n3 = 0; n3 < g2; n3++) {
|
|
831
|
+
const r3 = u2[n3];
|
|
832
|
+
let s3 = p2[n3], o3 = i(r3, e2, t2, s3);
|
|
833
|
+
p2[n3] = o3;
|
|
832
834
|
}
|
|
833
835
|
let d2 = false;
|
|
834
|
-
const m2 =
|
|
835
|
-
for (let
|
|
836
|
-
const
|
|
837
|
-
if (!
|
|
838
|
-
const
|
|
839
|
-
A2[
|
|
836
|
+
const m2 = o2.precedentsExecute, E2 = m2.length, A2 = Ht;
|
|
837
|
+
for (let n3 = 0; n3 < E2; n3++) {
|
|
838
|
+
const r3 = m2[n3], s3 = r3.op;
|
|
839
|
+
if (!s3) {
|
|
840
|
+
const e3 = p2[r3.value];
|
|
841
|
+
A2[r3.index] = e3;
|
|
840
842
|
continue;
|
|
841
843
|
}
|
|
842
|
-
if ("named" ===
|
|
843
|
-
d2 = true, A2[
|
|
844
|
+
if ("named" === s3) {
|
|
845
|
+
d2 = true, A2[r3.index] = this._resolveNamed(r3.node.value, e2, t2);
|
|
844
846
|
continue;
|
|
845
847
|
}
|
|
846
|
-
if ("error" ===
|
|
847
|
-
A2[
|
|
848
|
+
if ("error" === s3) {
|
|
849
|
+
A2[r3.index] = r3.node.value;
|
|
848
850
|
continue;
|
|
849
851
|
}
|
|
850
|
-
if ("@" ===
|
|
851
|
-
A2[
|
|
852
|
+
if ("@" === s3 || "#" === s3) {
|
|
853
|
+
A2[r3.index] = A2[r3.inputs[0]];
|
|
852
854
|
continue;
|
|
853
855
|
}
|
|
854
|
-
const
|
|
855
|
-
if (!
|
|
856
|
-
let
|
|
857
|
-
if (void 0 ===
|
|
858
|
-
A2[
|
|
856
|
+
const i2 = r3.inputs;
|
|
857
|
+
if (!i2) continue;
|
|
858
|
+
let o3 = A2[i2[0]];
|
|
859
|
+
if (void 0 === o3) {
|
|
860
|
+
A2[r3.index] = c.BuiltIn.Value;
|
|
859
861
|
continue;
|
|
860
862
|
}
|
|
861
|
-
if (
|
|
862
|
-
A2[
|
|
863
|
+
if (o3.isFormulaError) {
|
|
864
|
+
A2[r3.index] = o3;
|
|
863
865
|
continue;
|
|
864
866
|
}
|
|
865
|
-
let
|
|
866
|
-
void 0 !==
|
|
867
|
+
let a3, l3 = A2[i2[1]];
|
|
868
|
+
void 0 !== l3 ? l3.isFormulaError ? A2[r3.index] = l3 : (" " === s3 ? a3 = f.intersectRanges(o3, l3) : ":" !== s3 && ".:." !== s3 && ":." !== s3 && ".:" !== s3 || (a3 = A2[r3.index] = f.unionRanges(o3, l3)), A2[r3.index] = a3 ?? c.BuiltIn.Null) : A2[r3.index] = c.BuiltIn.Value;
|
|
867
869
|
}
|
|
868
|
-
const N2 = new Array(
|
|
869
|
-
for (let
|
|
870
|
-
const
|
|
871
|
-
if (N2[
|
|
872
|
-
const
|
|
873
|
-
d2 && "named" ===
|
|
870
|
+
const N2 = new Array(l2);
|
|
871
|
+
for (let e3 = 0; e3 < l2; e3++) {
|
|
872
|
+
const t3 = a2[e3], n3 = A2[t3];
|
|
873
|
+
if (N2[e3] = void 0 !== n3?.rowStart ? { ...n3 } : n3, r2 || s2) {
|
|
874
|
+
const i2 = m2[t3];
|
|
875
|
+
d2 && "named" === i2.op ? (r2 && (r2[e3] = n3.$colStart || n3.$colEnd), s2 && (s2[e3] = n3.$rowStart || n3.$rowEnd)) : (r2 && (r2[e3] = i2.hasVerticalAbs), s2 && (s2[e3] = i2.hasHorizontalAbs));
|
|
874
876
|
}
|
|
875
877
|
}
|
|
876
878
|
return N2;
|
|
877
879
|
}
|
|
878
|
-
evaluate(t2, n2
|
|
879
|
-
const
|
|
880
|
+
evaluate(e2, t2, n2) {
|
|
881
|
+
const r2 = e2.getPosition(), s2 = r2?.rowIndex ?? 0, o2 = r2?.colIndex ?? 0;
|
|
880
882
|
let a2 = this._compiled;
|
|
881
|
-
if (void 0 !==
|
|
882
|
-
let
|
|
883
|
-
if (De(a2.ast, (
|
|
884
|
-
|
|
885
|
-
}), !
|
|
886
|
-
a2 = Ze(
|
|
883
|
+
if (void 0 !== t2) {
|
|
884
|
+
let e3;
|
|
885
|
+
if (De(a2.ast, (n3) => {
|
|
886
|
+
n3.evalIndex === t2 && (e3 = n3);
|
|
887
|
+
}), !e3) throw new Error(`Invalid evalIndex: ${t2}`);
|
|
888
|
+
a2 = Ze(e3, a2.error);
|
|
887
889
|
}
|
|
888
890
|
if (a2.error) return a2.error;
|
|
889
|
-
const
|
|
890
|
-
let
|
|
891
|
-
|
|
891
|
+
const u2 = a2.evaluations, p2 = a2.executions;
|
|
892
|
+
let f2, h2;
|
|
893
|
+
n2 || (n2 = this._resolvePrecedents(e2));
|
|
892
894
|
const g2 = a2.precedentsExecute, d2 = a2.precedentsRelative, m2 = a2.precedentsAbsolute, E2 = g2.length;
|
|
893
|
-
for (let
|
|
894
|
-
const n3 = g2[
|
|
895
|
+
for (let t3 = 0; t3 < E2; t3++) {
|
|
896
|
+
const n3 = g2[t3], r3 = n3.op;
|
|
895
897
|
if (r3) {
|
|
896
898
|
if ("named" === r3) {
|
|
897
|
-
const
|
|
898
|
-
let r4 = this._resolveNamed(n3.node.value,
|
|
899
|
-
void 0 !== r4?.colStart && (r4 =
|
|
899
|
+
const t4 = n3.node;
|
|
900
|
+
let r4 = this._resolveNamed(n3.node.value, s2, o2);
|
|
901
|
+
void 0 !== r4?.colStart && (r4 = e2.getReference(r4)), u2[t4.evalIndex] = r4;
|
|
900
902
|
} else if ("error" === r3) {
|
|
901
903
|
const e3 = n3.node;
|
|
902
|
-
|
|
904
|
+
u2[e3.evalIndex] = n3.node.value;
|
|
903
905
|
}
|
|
904
906
|
} else {
|
|
905
|
-
const
|
|
906
|
-
let r4 = m2[
|
|
907
|
-
const
|
|
908
|
-
l2
|
|
907
|
+
const e3 = d2[n3.value];
|
|
908
|
+
let r4 = m2[t3];
|
|
909
|
+
const a3 = i(e3, s2, o2, r4), l2 = n3.node;
|
|
910
|
+
u2[l2.evalIndex] = a3;
|
|
909
911
|
}
|
|
910
912
|
}
|
|
911
913
|
const A2 = a2.precedentsRoot, N2 = A2.length;
|
|
912
|
-
if (N2 !==
|
|
913
|
-
for (let
|
|
914
|
-
const t3 = g2[A2[
|
|
915
|
-
let
|
|
916
|
-
|
|
914
|
+
if (N2 !== n2.length) return c.BuiltIn.Parse;
|
|
915
|
+
for (let e3 = 0; e3 < N2; e3++) {
|
|
916
|
+
const t3 = g2[A2[e3]].node;
|
|
917
|
+
let r3 = n2[e3];
|
|
918
|
+
r3.isIRange && "cell" === t3.type && r3.size > 1 && (r3 = r3.getValueAt(0, 0) ?? null), u2[t3.evalIndex] = r3;
|
|
917
919
|
}
|
|
918
920
|
let I2;
|
|
919
|
-
const O2 = (
|
|
920
|
-
const
|
|
921
|
-
let
|
|
922
|
-
switch (
|
|
921
|
+
const O2 = (t3) => {
|
|
922
|
+
const n3 = t3.inputs, r3 = n3 ? n3.length : 0;
|
|
923
|
+
let s3;
|
|
924
|
+
switch (t3.type) {
|
|
923
925
|
case "infix":
|
|
924
|
-
const
|
|
925
|
-
let
|
|
926
|
-
if ("+" ===
|
|
927
|
-
const
|
|
928
|
-
return Math.abs(
|
|
926
|
+
const i2 = t3.value;
|
|
927
|
+
let o3 = u2[n3[0].evalIndex], a3 = u2[n3[1].evalIndex];
|
|
928
|
+
if ("+" === i2 && "number" == typeof o3 && "number" == typeof a3) {
|
|
929
|
+
const e3 = o3 + a3;
|
|
930
|
+
return Math.abs(e3) < 99e-14 ? 0 : e3;
|
|
929
931
|
}
|
|
930
|
-
if ("-" ===
|
|
931
|
-
const
|
|
932
|
-
return Math.abs(
|
|
932
|
+
if ("-" === i2 && "number" == typeof o3 && "number" == typeof a3) {
|
|
933
|
+
const e3 = o3 - a3;
|
|
934
|
+
return Math.abs(e3) < 99e-14 ? 0 : e3;
|
|
933
935
|
}
|
|
936
|
+
if (o3 && o3.isFormulaError) return o3;
|
|
934
937
|
if (a3 && a3.isFormulaError) return a3;
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
return i3 = c3 ? c3(t2, a3, u2) : e.BuiltIn.Value, i3 = f(i3, null), i3;
|
|
938
|
+
const p3 = t3.fn;
|
|
939
|
+
return s3 = p3 ? p3(e2, o3, a3) : c.BuiltIn.Value, s3 = l(s3, null), s3;
|
|
938
940
|
case "function":
|
|
939
|
-
I2 || (I2 = new Array(
|
|
940
|
-
for (let
|
|
941
|
-
return
|
|
942
|
-
|
|
943
|
-
}).catch((
|
|
944
|
-
const
|
|
945
|
-
|
|
946
|
-
}) :
|
|
941
|
+
I2 || (I2 = new Array(r3)), I2.length !== r3 && (I2.length = r3);
|
|
942
|
+
for (let e3 = 0; e3 < r3; e3++) I2[e3] = u2[n3[e3].evalIndex];
|
|
943
|
+
return s3 = this._callFunction(e2, t3, I2), s3 && "function" == typeof s3.then ? s3.then((n4) => {
|
|
944
|
+
n4 = l(n4, e2), s3 instanceof c.Known && (h2 = s3), u2[t3.evalIndex] = n4;
|
|
945
|
+
}).catch((e3) => {
|
|
946
|
+
const n4 = e3 instanceof c.Known ? e3 : new c.Value("Uncaught error", { cause: e3 });
|
|
947
|
+
u2[t3.evalIndex] = n4;
|
|
948
|
+
}) : s3 instanceof c.Known && (h2 = s3), s3;
|
|
947
949
|
case "prefix":
|
|
948
950
|
case "postfix":
|
|
949
|
-
let
|
|
950
|
-
if (
|
|
951
|
-
const g3 =
|
|
952
|
-
return
|
|
951
|
+
let f3 = u2[n3[0].evalIndex];
|
|
952
|
+
if (f3 && f3.isFormulaError) return f3;
|
|
953
|
+
const g3 = t3.fn;
|
|
954
|
+
return s3 = g3 ? g3(e2, f3) : c.BuiltIn.Value, s3;
|
|
953
955
|
case "paren":
|
|
954
|
-
if (1 ===
|
|
956
|
+
if (1 === r3) return u2[n3[0].evalIndex];
|
|
955
957
|
{
|
|
956
|
-
const
|
|
957
|
-
for (let
|
|
958
|
-
return
|
|
958
|
+
const e3 = new Array(r3);
|
|
959
|
+
for (let t4 = 0; t4 < r3; t4++) e3[t4] = u2[n3[t4].evalIndex];
|
|
960
|
+
return e3;
|
|
959
961
|
}
|
|
960
962
|
case "named":
|
|
961
963
|
return null;
|
|
@@ -963,43 +965,43 @@ class Zt {
|
|
|
963
965
|
return;
|
|
964
966
|
}
|
|
965
967
|
};
|
|
966
|
-
let x2 =
|
|
967
|
-
for (let
|
|
968
|
-
const t3 =
|
|
968
|
+
let x2 = p2.length;
|
|
969
|
+
for (let e3 = 0; e3 < x2; e3++) {
|
|
970
|
+
const t3 = p2[e3];
|
|
969
971
|
if (h2) return h2;
|
|
970
|
-
if (
|
|
971
|
-
const
|
|
972
|
-
return
|
|
972
|
+
if (f2) f2 = f2.then(() => {
|
|
973
|
+
const e4 = O2(t3);
|
|
974
|
+
return u2[t3.evalIndex] = e4, e4;
|
|
973
975
|
});
|
|
974
976
|
else {
|
|
975
|
-
const
|
|
976
|
-
|
|
977
|
+
const e4 = O2(t3);
|
|
978
|
+
u2[t3.evalIndex] = e4, e4 && "function" == typeof e4.then && (f2 = e4);
|
|
977
979
|
}
|
|
978
980
|
}
|
|
979
|
-
if (
|
|
980
|
-
const
|
|
981
|
-
return this._finalizeReturnValue(
|
|
981
|
+
if (f2) return f2.then(() => {
|
|
982
|
+
const t3 = u2[u2.length - 1];
|
|
983
|
+
return this._finalizeReturnValue(e2, t3);
|
|
982
984
|
});
|
|
983
|
-
const S2 =
|
|
984
|
-
return this._finalizeReturnValue(
|
|
985
|
+
const S2 = u2[u2.length - 1];
|
|
986
|
+
return this._finalizeReturnValue(e2, S2);
|
|
985
987
|
}
|
|
986
|
-
_resolvePrecedents(
|
|
987
|
-
const
|
|
988
|
-
const
|
|
989
|
-
let
|
|
990
|
-
if (
|
|
991
|
-
|
|
992
|
-
for (let
|
|
993
|
-
const
|
|
994
|
-
if (
|
|
995
|
-
else if (Array.isArray(
|
|
996
|
-
const
|
|
997
|
-
for (let
|
|
998
|
-
|
|
999
|
-
} else
|
|
988
|
+
_resolvePrecedents(e2) {
|
|
989
|
+
const t2 = e2.getPosition(), n2 = t2?.rowIndex ?? 0, r2 = t2?.colIndex ?? 0;
|
|
990
|
+
const s2 = this.getDirectPrecedentsAt(n2, r2), i2 = s2.length;
|
|
991
|
+
let o2;
|
|
992
|
+
if (i2 > 0) {
|
|
993
|
+
o2 = new Array(i2);
|
|
994
|
+
for (let t3 = 0; t3 < i2; t3++) {
|
|
995
|
+
const n3 = s2[t3];
|
|
996
|
+
if (n3 instanceof c.Known) o2[t3] = n3;
|
|
997
|
+
else if (Array.isArray(n3)) {
|
|
998
|
+
const r3 = new Array(n3.length);
|
|
999
|
+
for (let t4 = 0; t4 < n3.length; t4++) r3[t4] = e2.getReference(n3[t4]);
|
|
1000
|
+
o2[t3] = r3;
|
|
1001
|
+
} else o2[t3] = e2.getReference(n3);
|
|
1000
1002
|
}
|
|
1001
|
-
} else
|
|
1002
|
-
return
|
|
1003
|
+
} else o2 = h.EmptyArray;
|
|
1004
|
+
return o2;
|
|
1003
1005
|
}
|
|
1004
1006
|
wrapImplicit(e2, t2, n2) {
|
|
1005
1007
|
const r2 = this._compiled.ast;
|
|
@@ -1007,32 +1009,32 @@ class Zt {
|
|
|
1007
1009
|
if ("cell" === r2.type) return this;
|
|
1008
1010
|
if ("@" === r2.value) return this;
|
|
1009
1011
|
if (!n2) return this;
|
|
1010
|
-
const s2 =
|
|
1012
|
+
const s2 = o(t2) + a(e2);
|
|
1011
1013
|
if (n2.has(s2)) return this;
|
|
1012
1014
|
const i2 = Ze(ze("@", r2, true), this._compiled.error);
|
|
1013
1015
|
return new Zt(this._options, i2);
|
|
1014
1016
|
}
|
|
1015
|
-
_callFunction(t2, n2
|
|
1016
|
-
const
|
|
1017
|
-
if (!
|
|
1018
|
-
const
|
|
1019
|
-
let
|
|
1020
|
-
|
|
1017
|
+
_callFunction(e2, t2, n2) {
|
|
1018
|
+
const r2 = t2?.cacheFn ?? e2.getFunction(t2.value);
|
|
1019
|
+
if (!r2) return new c.Parse();
|
|
1020
|
+
const s2 = r2.isBuiltIn();
|
|
1021
|
+
let i2;
|
|
1022
|
+
s2 ? t2.cacheFn = r2 : this._context = e2;
|
|
1021
1023
|
try {
|
|
1022
|
-
|
|
1023
|
-
} catch (
|
|
1024
|
-
|
|
1024
|
+
i2 = r2.execute(...n2);
|
|
1025
|
+
} catch (e3) {
|
|
1026
|
+
i2 = e3 instanceof c.Known ? e3 : new c.Value(e3.message, { cause: e3 });
|
|
1025
1027
|
}
|
|
1026
|
-
return
|
|
1028
|
+
return s2 || (this._context = null), void 0 === i2 ? new c.Parse() : i2;
|
|
1027
1029
|
}
|
|
1028
|
-
_finalizeReturnValue(
|
|
1029
|
-
if (
|
|
1030
|
+
_finalizeReturnValue(e2, t2) {
|
|
1031
|
+
if (t2 && void 0 !== t2.colStart && (t2 = e2.getValueAt(t2.rowStart, t2.colStart)), Array.isArray(t2)) if (1 === t2.length && Array.isArray(t2[0]) && 1 === t2[0].length) t2 = t2[0][0], Array.isArray(t2) && (t2 = c.BuiltIn.Value);
|
|
1030
1032
|
else try {
|
|
1031
|
-
|
|
1032
|
-
} catch (
|
|
1033
|
-
|
|
1033
|
+
t2 = e2.getRange(t2);
|
|
1034
|
+
} catch (e3) {
|
|
1035
|
+
t2 = c.BuiltIn.Value;
|
|
1034
1036
|
}
|
|
1035
|
-
return
|
|
1037
|
+
return t2?.isIRange ? 1 === t2.size ? (t2 = t2.getValueAt(0, 0, Kt), null === (t2 = l(t2, e2)) && (t2 = 0)) : t2 = t2.fillEmpty(0) : null === (t2 = l(t2, e2)) && (t2 = 0), t2;
|
|
1036
1038
|
}
|
|
1037
1039
|
get [Symbol.toStringTag]() {
|
|
1038
1040
|
return "[FormulaBlock]";
|
|
@@ -1045,7 +1047,7 @@ class Zt {
|
|
|
1045
1047
|
const e3 = t2.getPosition();
|
|
1046
1048
|
return this.getTextAt(e3.rowIndex, e3.colIndex);
|
|
1047
1049
|
}
|
|
1048
|
-
return
|
|
1050
|
+
return s(e2.tokens);
|
|
1049
1051
|
}
|
|
1050
1052
|
}
|
|
1051
1053
|
const Ht = new Array(20);
|
|
@@ -1053,7 +1055,7 @@ for (let e2 = 0; e2 < Ht.length; e2++) Ht[e2] = { colStart: 0, rowStart: 0, colE
|
|
|
1053
1055
|
const Kt = { type: null };
|
|
1054
1056
|
class Qt {
|
|
1055
1057
|
constructor(e2) {
|
|
1056
|
-
this._options = { getEntireCoords:
|
|
1058
|
+
this._options = { getEntireCoords: u, ...e2 }, this._astBuilder = new Dt();
|
|
1057
1059
|
}
|
|
1058
1060
|
parse(e2, t2) {
|
|
1059
1061
|
const n2 = e2.getPosition();
|