@sheetxl/sdk 0.8.0-beta.11 → 0.8.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/browser/esm/{BpgskG1Er_lGQ_yS.mjs → -Jx-jNHmtIQQfLvK.mjs} +1 -1
  2. package/browser/esm/{BLoUBId2xZpXAK_H.mjs → 2WuhYrIpYmOR5H73.mjs} +15 -15
  3. package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → 2mIwPy2D2JUX-9wx.mjs} +2 -2
  4. package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → B3wf5vZCsWfWsDbj.mjs} +1 -1
  5. package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → BIHrHjRGWVlJglcp.mjs} +2 -2
  6. package/browser/esm/{BtvLTTfSBdAKplVG.mjs → BTFBedJMRWGvZyCE.mjs} +1 -1
  7. package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → BdCJNawfifyPupCP.mjs} +1 -1
  8. package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → Bg5Di9GLNAkbqQ1P.mjs} +3 -3
  9. package/browser/esm/{C2VbEI_XVAoseAwa.mjs → BnC4-27Igwb8oDf2.mjs} +2 -2
  10. package/browser/esm/{CQYjO777cmAznUzK.mjs → Bt8_m94tBdks209L.mjs} +1 -1
  11. package/browser/esm/{C16ycKja6zG0crV_.mjs → BudSIfXBAsTxvu-K.mjs} +17836 -15712
  12. package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → C9u8FUewte5ugUjH.mjs} +686 -686
  13. package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → CBYMTDzMf1Vh7pkw.mjs} +1 -1
  14. package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → CNdjyofiRu6CYOrr.mjs} +1106 -1102
  15. package/browser/esm/{PcHFjNzQsE54POri.mjs → CRkYR-siY2C994KV.mjs} +1 -1
  16. package/browser/esm/{C5E6zSGAALWf61n4.mjs → CTe2qfmIUEad6FJv.mjs} +2 -2
  17. package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → CUzYuYTTGsChC_kZ.mjs} +3841 -3148
  18. package/browser/esm/CdEO8CEee6lEhabA.mjs +117 -0
  19. package/browser/esm/{S2dNNx1a5ydRnARM.mjs → CfRqiPDg6RBTg1EN.mjs} +2 -2
  20. package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → CndRBvVfQUJIYRRj.mjs} +50 -50
  21. package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → CwOPLXU3-9ZHGyOT.mjs} +1 -1
  22. package/browser/esm/{CHU6iu_WGlm7fLET.mjs → Cxjxk0ncRKx80I-w.mjs} +1 -1
  23. package/browser/esm/D2RZh0O9neOsyLAE.mjs +281 -0
  24. package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → D64dM68B1pKYFzdP.mjs} +2 -2
  25. package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → D9xNz46kAfXMZzp4.mjs} +2 -2
  26. package/browser/esm/{zlLuW405RSguy4Kn.mjs → DK899HhWX1HINMC1.mjs} +53 -53
  27. package/browser/esm/{B7aUIvgUjncMMD_i.mjs → DPhGQLNGmDZwODwJ.mjs} +5 -4
  28. package/browser/esm/{gssVX_FH1XFN-twD.mjs → DVroRnhi-5IDXNgM.mjs} +1 -1
  29. package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/DZiivy0NmO1Vnyzk.mjs} +2 -2
  30. package/browser/esm/{ClPfI4lODvCece29.mjs → DgrAuRD2qr2DvFeJ.mjs} +61 -61
  31. package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → DobHLF6VjHr7Xi40.mjs} +1 -1
  32. package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DwZCT7DZiiXoTweg.mjs} +2 -2
  33. package/browser/esm/{BMyDRQ716j79h_bH.mjs → DwwR3O2sEZApPSTF.mjs} +6 -6
  34. package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → Tah7cnFb_HNZdLtj.mjs} +45 -45
  35. package/browser/esm/{Dlmig06rIo7cInRk.mjs → fXWUMDhZ5yMSO629.mjs} +1 -1
  36. package/browser/esm/{DWNzqw7DUKwoxjri.mjs → hCQJcmIzPDxDEv2q.mjs} +2 -2
  37. package/browser/esm/index.mjs +679 -542
  38. package/browser/esm/{BFagR2JeWs74iAG3.mjs → qO-ujUrgq6H3TQix.mjs} +1 -1
  39. package/browser/esm/w6Jea0TiclPrYZ2M.mjs +1703 -0
  40. package/browser/esm/yuhcOYw6SHQ-RCm3.mjs +114 -0
  41. package/node/esm/-TA0MneBDKdGhsib.mjs +8668 -0
  42. package/node/esm/{B21JjOLghRoDOrkx.mjs → B-HUPAcqvK0eeeCz.mjs} +1 -1
  43. package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → BL2iiEoqxDEV2Xrg.mjs} +3 -3
  44. package/node/esm/{D1TKBVmoKGAXf37B.mjs → BNXLOEddJ6O9gYws.mjs} +2 -2
  45. package/node/esm/{BrCKGFRsX_ezFJ4B.mjs → BSvOluusoDM4z_dx.mjs} +15 -15
  46. package/node/esm/{BIwObuhTJYf0jpUa.mjs → BskP3b8vUoIOGLY6.mjs} +2 -2
  47. package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Btw4148Ot8ifhNc1.mjs} +1 -1
  48. package/node/esm/{BqiexuA89caYnAPz.mjs → C14-R6tifRh7pc0p.mjs} +1 -1
  49. package/node/esm/{DUTskXCXref-IJnI.mjs → C99zzq8DImQXi4BQ.mjs} +47 -47
  50. package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → CBuEu5Jk-LfaDy-H.mjs} +61 -61
  51. package/node/esm/{yavzZOiZW_EjG9lE.mjs → CG-qBU5BAaVz7e-P.mjs} +1 -1
  52. package/node/esm/CPI58duc0j0a-HpJ.mjs +115 -0
  53. package/node/esm/{CCN5vD410obwdz38.mjs → CRt3vXe6YmXzqk3H.mjs} +15 -14
  54. package/node/esm/{CzXT00vrQa1_gvW9.mjs → C_aL7CGS1lrNn1Ng.mjs} +1 -1
  55. package/node/esm/{CZiqiay42tFTrLI4.mjs → C_xf5Bz30VqiJjXn.mjs} +1 -1
  56. package/node/esm/{BIRq1kT7lLRzns9t.mjs → CiIymQN6aJCul62g.mjs} +9 -9
  57. package/node/esm/{CNCNJNg890KdgkWh.mjs → Ci_zLYmCD7e-C79O.mjs} +1 -1
  58. package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/CkRYLed8Mmn3giNg.mjs} +2 -2
  59. package/node/esm/D3ptRKzASqBut1DE.mjs +117 -0
  60. package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D4ROK9UwDpS6jO3Z.mjs} +1 -1
  61. package/node/esm/{mFiBSM7XgBHV9AY7.mjs → D8hO07ToAibIuniw.mjs} +1535 -1531
  62. package/node/esm/{CDHdgJXH2vS71WMc.mjs → DUTmDHbFbhLDT4F3.mjs} +1 -1
  63. package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DV5CU37aEbFbWFL0.mjs} +1 -1
  64. package/node/esm/{De2IONBxQhz-Qbyh.mjs → DdoiuKg9BKubtF1V.mjs} +1 -1
  65. package/node/esm/{Db0v7zXNnyjBIjjI.mjs → DggQ23jKMpwhENfa.mjs} +2 -2
  66. package/node/esm/{CwePQwTILHHjGDkZ.mjs → DhS6yWjrrSNIJMsn.mjs} +204 -204
  67. package/node/esm/{D_t5AUxSm7_icjzq.mjs → DhTya_mhmN53vskv.mjs} +1 -1
  68. package/node/esm/{DOU54VsOjG-m-NyQ.mjs → Dn1M7YWi25DeeYUb.mjs} +1 -1
  69. package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DrCf6ITcBhVOFpRj.mjs} +6 -6
  70. package/node/esm/{D2KBymQJd1XhpeQD.mjs → DxazKtROyaI51dWl.mjs} +1 -1
  71. package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Q_S1g46ZOTrdhTae.mjs} +1 -1
  72. package/node/esm/{OVfaSb506tNSIvbv.mjs → Vocy-I9dKzZMr0Ct.mjs} +19038 -16822
  73. package/node/esm/ZXPFcsT2zrALCZux.mjs +289 -0
  74. package/node/esm/{857CIBgQgGpnqrXk.mjs → eimUGjiIP-b8HiM6.mjs} +55 -55
  75. package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → icn2nX5Z8e_3mNAv.mjs} +1 -1
  76. package/node/esm/index.mjs +740 -603
  77. package/node/esm/{Ct3h15sCus4Tgt6M.mjs → lGJ42sHqg5if2bba.mjs} +624 -616
  78. package/node/esm/{CdJHUJSBRHZoryPe.mjs → pYtP7wPyS96NQyXS.mjs} +59 -59
  79. package/package.json +6 -6
  80. package/resources/locales/de/model.msg.json +8 -2
  81. package/resources/locales/en/model.msg.json +9 -2
  82. package/types/scripting-api.json +10619 -10446
  83. package/types/scripting-enums.json +20 -1
  84. package/types/scripting.d.ts +1233 -296
  85. package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
  86. package/types/src/anomalies/_FocusTable.d.ts +11 -0
  87. package/types/src/{sheet/_AnomalyFormulaChecks.d.ts → anomalies/_FormulaChecks.d.ts} +10 -2
  88. package/types/src/{sheet/_AnomalyLabelChecks.d.ts → anomalies/_LabelChecks.d.ts} +1 -1
  89. package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
  90. package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
  91. package/types/src/calculation/Calculation.d.ts +47 -9
  92. package/types/src/calculation/ExternalBookBindings.d.ts +2 -3
  93. package/types/src/calculation/ICalculation.d.ts +96 -9
  94. package/types/src/calculation/NamedFormulaCollection.d.ts +104 -8
  95. package/types/src/calculation/_CloneBoundary.d.ts +1 -1
  96. package/types/src/calculation/compiler/ASTTypes.d.ts +6 -2
  97. package/types/src/calculation/compiler/Types.d.ts +8 -0
  98. package/types/src/calculation/engine/CalcBackend.d.ts +104 -6
  99. package/types/src/calculation/executor/CalcExecutor.d.ts +73 -22
  100. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +17 -1
  101. package/types/src/calculation/executor/_WhatIf.d.ts +50 -0
  102. package/types/src/calculation/formula/FormulaBlock.d.ts +4 -3
  103. package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -0
  104. package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
  105. package/types/src/calculation/grid/CalcGrid.d.ts +4 -6
  106. package/types/src/calculation/grid/CalcGridBackend.d.ts +5 -27
  107. package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -2
  108. package/types/src/calculation/grid/CalcGridUtils.d.ts +4 -2
  109. package/types/src/calculation/grid/ICalcGrid.d.ts +16 -12
  110. package/types/src/calculation/grid/_CalcRequest.d.ts +17 -5
  111. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +2 -0
  112. package/types/src/calculation/spatial/SpillEntry.d.ts +16 -2
  113. package/types/src/calculation/state/CalcNode.d.ts +0 -1
  114. package/types/src/calculation/state/CalcScope.d.ts +29 -0
  115. package/types/src/calculation/state/CalcState.d.ts +26 -4
  116. package/types/src/calculation/state/CalculationContext.d.ts +28 -1
  117. package/types/src/calculation/state/DeferredCalls.d.ts +260 -0
  118. package/types/src/calculation/state/IContextContainer.d.ts +20 -0
  119. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +6 -0
  120. package/types/src/calculation/state/_WhatIfLayer.d.ts +91 -0
  121. package/types/src/cell/ICell.d.ts +53 -34
  122. package/types/src/cellControl/CellControl.d.ts +67 -0
  123. package/types/src/cellControl/CellControlCollection.d.ts +29 -0
  124. package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
  125. package/types/src/cellControl/ICellControl.d.ts +99 -0
  126. package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
  127. package/types/src/cellControl/index.d.ts +4 -0
  128. package/types/src/cellRange/ICellRange.d.ts +207 -59
  129. package/types/src/cellRange/ICellRanges.d.ts +4 -3
  130. package/types/src/chart/layout/ChartLayout.d.ts +5 -1
  131. package/types/src/chart/resolve/_Resolve.d.ts +10 -0
  132. package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -2
  133. package/types/src/collections/ISparseGrid.d.ts +11 -2
  134. package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
  135. package/types/src/collections/SparseGrid.d.ts +3 -8
  136. package/types/src/condition/AnchoredConditional.d.ts +2 -2
  137. package/types/src/externalBook/IExternalBook.d.ts +3 -4
  138. package/types/src/fetch/Fetcher.d.ts +15 -0
  139. package/types/src/fetch/IFetcher.d.ts +47 -0
  140. package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
  141. package/types/src/fetch/index.d.ts +3 -0
  142. package/types/src/fill/PaintUtils.d.ts +3 -1
  143. package/types/src/hyperlink/IHyperlink.d.ts +10 -0
  144. package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
  145. package/types/src/index.d.ts +2 -1
  146. package/types/src/named/INamedCollection.d.ts +36 -0
  147. package/types/src/named/NamedCollection.d.ts +18 -0
  148. package/types/src/primitives/AsyncValue.d.ts +58 -0
  149. package/types/src/resource/IResource.d.ts +9 -0
  150. package/types/src/resource/IResourceCollection.d.ts +4 -0
  151. package/types/src/resource/Resource.d.ts +2 -0
  152. package/types/src/resource/_AddResource.d.ts +13 -0
  153. package/types/src/richData/CellImage.d.ts +95 -0
  154. package/types/src/richData/Hyperlink.d.ts +49 -0
  155. package/types/src/richData/IRichDataCollection.d.ts +76 -0
  156. package/types/src/richData/IRichDataKind.d.ts +55 -11
  157. package/types/src/richData/RichArray.d.ts +42 -0
  158. package/types/src/richData/RichDataCollection.d.ts +23 -0
  159. package/types/src/richData/RichDataRegistry.d.ts +46 -14
  160. package/types/src/richData/RichDataValues.d.ts +20 -0
  161. package/types/src/richData/RichRecord.d.ts +68 -0
  162. package/types/src/richData/RichText.d.ts +5 -5
  163. package/types/src/richData/index.d.ts +6 -0
  164. package/types/src/scripting/FunctionArguments.d.ts +17 -1
  165. package/types/src/scripting/FunctionCollection.d.ts +8 -0
  166. package/types/src/scripting/Scripts.d.ts +10 -0
  167. package/types/src/scripting/TypedFunction.d.ts +2 -0
  168. package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
  169. package/types/src/sheet/IWorksheet.d.ts +24 -17
  170. package/types/src/sheet/SheetCell.d.ts +17 -1
  171. package/types/src/sheet/SheetRange.d.ts +8 -2
  172. package/types/src/sheet/SheetRanges.d.ts +2 -2
  173. package/types/src/sheet/Worksheet.d.ts +110 -56
  174. package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
  175. package/types/src/sheet/_ScalarListFactory.d.ts +54 -6
  176. package/types/src/sheet/_SheetMutations.d.ts +4 -1
  177. package/types/src/sheet/_SheetStateTypes.d.ts +23 -11
  178. package/types/src/workbook/IWorkbook.d.ts +40 -1
  179. package/types/src/workbook/Workbook.d.ts +25 -3
  180. package/types/src/workbook/WorkbookRanges.d.ts +1 -1
  181. package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
  182. package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
  183. package/browser/esm/nvU0ClAbf0g94YBK.mjs +0 -1695
  184. package/node/esm/B084DssTcdBheTp_.mjs +0 -7966
  185. package/node/esm/Df1bL6VFvrqIdSLB.mjs +0 -40
  186. package/node/esm/DrTZbfemSLq2mseG.mjs +0 -111
  187. package/types/src/dataTable/DataTable.d.ts +0 -67
  188. package/types/src/dataTable/DataTableCollection.d.ts +0 -19
  189. package/types/src/dataTable/IDataTable.d.ts +0 -99
  190. package/types/src/dataTable/IDataTableCollection.d.ts +0 -18
  191. package/types/src/dataTable/index.d.ts +0 -6
@@ -1,1695 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.11
3
- *
4
- * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- import { $n as e, An as t, En as n, Gr as r, Ht as i, Nt as a, On as o, Pt as s, Qn as c, St as l, Vn as u, Wn as d, Zr as f, _ as p, ar as m, dr as h, f as g, fn as _, h as v, jt as y, kn as b, lr as x, mi as S, n as ee, ni as C, or as w, p as te, s as T, tr as E, u as D, ur as ne } from "./C16ycKja6zG0crV_.mjs";
8
- import { Qt as re } from "./CV5EGEjG5_-CPpP0.mjs";
9
- import { FormulaError as O, Scalar as k, ScalarType as A, ValueKind as j, isLazyValue as ie } from "@sheetxl/primitives";
10
- import { CommonUtils as M } from "@sheetxl/utils";
11
- var ae = (e, t) => e + t, oe = (e, t) => e - t, se = (e, t) => l(e + t, e), ce = (e, t) => l(e - t, e), le = (e, t) => g(e * t), ue = (e, t) => t === 0 ? O.BuiltIn.Div0 : g(e / t), de = (e, t) => {
12
- if (e === 0) {
13
- if (t < 0) return O.BuiltIn.Div0;
14
- if (t === 0) return NaN;
15
- }
16
- if (e < 0) {
17
- if (Number.isInteger(t) && Math.abs(t) <= 4294967294) return g(e ** t);
18
- let n = Number((1 / t).toPrecision(15));
19
- return Number.isInteger(n) && Math.abs(n % 2) === 1 ? g(-((-e) ** t)) : NaN;
20
- }
21
- return g(e ** t);
22
- }, fe = (e = "", t = "") => {
23
- e === null && (e = ""), t === null && (t = "");
24
- let n = typeof t;
25
- typeof e == "boolean" && (e = S(e)), n === "boolean" && (t = S(t));
26
- let r = "" + e + t;
27
- return r.length > k.MAX_TEXT_LENGTH ? r.slice(0, k.MAX_TEXT_LENGTH) : r;
28
- }, pe = (e, t = null, n = null) => e.compare(t, n) === 0, me = (e, t = null, n = null) => e.compare(t, n) !== 0, he = (e, t = null, n = null) => e.compare(t, n) > 0, ge = (e, t = null, n = null) => e.compare(t, n) >= 0, _e = (e, t = null, n = null) => e.compare(t, n) < 0, ve = (e, t = null, n = null) => e.compare(t, n) <= 0, N = {
29
- type: A.Number,
30
- coerce: [A.Boolean, A.String],
31
- onError: "value",
32
- misalignValue: O.BuiltIn.NA
33
- }, ye = {
34
- type: A.String,
35
- coerce: [A.Boolean, A.Number],
36
- onError: "value",
37
- misalignValue: O.BuiltIn.NA
38
- }, be = {
39
- onError: "value",
40
- misalignValue: O.BuiltIn.NA
41
- }, P = (e) => typeof e == "object" && e && !0 === e.isIReferenceRange && e.size === 1 ? e.getValueAt(0, 0) ?? null : e, F = (e, t, n, r) => {
42
- if (t !== null && t.colStart !== void 0 && (t = e.getValueAt(t.rowStart, t.colStart, t.scope)) && O.isError(t)) return t;
43
- if (n !== null && n.colStart !== void 0 && (n = e.getValueAt(n.rowStart, n.colStart, n.scope)) && O.isError(n)) return n;
44
- if (t = P(t), n = P(n), typeof t == "number" && typeof n == "number") return r(t, n);
45
- let i, a;
46
- if (t?.isIRange ? i = t : n?.isIRange && (a = n), !i && !a) {
47
- let i = e.getRuntime();
48
- return t = T(i, t, p(t, !0), A.Number, !0), n = T(i, n, p(n, !0), A.Number, !0), t && O.isError(t) ? t : n && O.isError(n) ? n : r(t, n);
49
- }
50
- let o = !i, s = o ? t : n;
51
- return (i ?? a).broadcast(s, (t, n) => t && O.isError(t) ? t : n && O.isError(n) ? n : v(o ? r(n, t) : r(t, n), e), N).fillEmpty(0);
52
- }, I = (e, t, n, r) => {
53
- if (_(t) || _(n) || ie(t) || ie(n)) return O.BuiltIn.Value;
54
- if (t !== null && t.colStart !== void 0 && (t = e.getValueAt(t.rowStart, t.colStart, t.scope)) && O.isError(t)) return t;
55
- if (n !== null && n.colStart !== void 0 && (n = e.getValueAt(n.rowStart, n.colStart, n.scope)) && O.isError(n)) return n;
56
- let i, a;
57
- t = P(t), n = P(n);
58
- let o = !1;
59
- return t?.isIRange ? (i = t, a = n) : n?.isIRange && (i = n, a = t, o = !0), i ? i.broadcast(a, (t, n) => t && O.isError(t) ? t : n && O.isError(n) ? n : (t = L(t), n = L(n), o ? r(e, n, t) : r(e, t, n)), be) : O.isError(t) ? t : O.isError(n) ? n : r(e, L(t), L(n));
60
- }, L = (e) => !0 === e?.isIRichData ? e.toPrimitive?.() ?? e : e, R = (e, t, n) => {
61
- if (n ??= 0, n !== null && n.colStart !== void 0 && (n = e.getValueAt(n.rowStart, n.colStart, n.scope)) && O.isError(n)) return n;
62
- n = P(n);
63
- let r, i = 1;
64
- if (t === "+") return n;
65
- if (t !== "-") throw new O.Value(`Unrecognized prefix: ${t}`);
66
- if (i = -i, n?.isIRange && (r = n), !r) {
67
- let t = e.getRuntime();
68
- return typeof (n = T(t, n, p(n, !0), A.Number, !0)) == "number" ? n * i : O.BuiltIn.Value;
69
- }
70
- return r.broadcast(i, (e, t) => e && O.isError(e) ? e : t && O.isError(t) ? t : le(e, t), N);
71
- }, z = (e) => e.getCode() <= O.Code.NA ? e : O.BuiltIn.Value, B = (e, t, n, r, i) => {
72
- if (O.isError(t)) return z(t);
73
- if (n && O.isError(n)) return z(n);
74
- if (!t) return O.BuiltIn.Ref;
75
- if (t.isIReferenceRange && n && !n.isIReferenceRange ? n = e.getReference(n) : n && n.isIReferenceRange && t && !t.isIReferenceRange && (t = e.getReference(t)), t.isIReferenceRange && (t = t.getCoords()), t.colStart === void 0 || (n.isIReferenceRange && (n = n.getCoords()), n.colStart === void 0)) return O.BuiltIn.Value;
76
- let a = t.scope ? i !== "either" || n.scope ? null : t : n;
77
- if (a?.scope) {
78
- let t = e.getReference(a);
79
- if (O.isError(t)) return t;
80
- if (e.getSheetIndex() !== e.getSheetIndex(t)) return O.BuiltIn.Value;
81
- }
82
- let o = r(t, n);
83
- return O.isError(o) ? o : o ? e.getReference(o) : O.BuiltIn.Null;
84
- }, xe = {
85
- "+": (e, t, n) => F(e, t, n, ae),
86
- "-": (e, t, n) => F(e, t, n, oe),
87
- "*": (e, t, n) => F(e, t, n, le),
88
- "/": (e, t, n) => F(e, t, n, ue),
89
- "^": (e, t, n) => F(e, t, n, de),
90
- " ": (e, t, n, i) => B(e, t, n, r, "either"),
91
- ":": (e, t, n, r) => B(e, t, n, C, "start"),
92
- ".:.": (e, t, n, r) => {
93
- let i = B(e, t, n, C, "start");
94
- return e.getFunction("TRIMRANGE").execute(i, 3, 3);
95
- },
96
- ".:": (e, t, n, r) => {
97
- let i = B(e, t, n, C, "start");
98
- return e.getFunction("TRIMRANGE").execute(i, 1, 1);
99
- },
100
- ":.": (e, t, n, r) => {
101
- let i = B(e, t, n, C, "start");
102
- return e.getFunction("TRIMRANGE").execute(i, 2, 2);
103
- },
104
- "&": (e, t, n) => ((e, t, n, r) => {
105
- if (t !== null && t.colStart !== void 0 && (t = e.getValueAt(t.rowStart, t.colStart, t.scope)) && O.isError(t)) return t;
106
- if (n !== null && n.colStart !== void 0 && (n = e.getValueAt(n.rowStart, n.colStart, n.scope)) && O.isError(n)) return n;
107
- if (t = P(t), n = P(n), typeof t == "string" && typeof n == "string") return r(t, n);
108
- let i, a;
109
- if (t?.isIRange ? i = t : n?.isIRange && (a = n), !i && !a) {
110
- let i = e.getRuntime();
111
- return t = T(i, t, p(t, !0), A.String, !1), n = T(i, n, p(n, !0), A.String, !1), O.isError(t) ? t : O.isError(n) ? n : r(t, n);
112
- }
113
- let o = !i, s = o ? t : n;
114
- return (i ?? a).broadcast(s, (e, t) => e && O.isError(e) ? e : t && O.isError(t) ? t : o ? r(t, e) : r(e, t), ye);
115
- })(e, t, n, fe),
116
- "=": (e, t, n) => I(e, t, n, pe),
117
- "<>": (e, t, n) => I(e, t, n, me),
118
- ">": (e, t, n) => I(e, t, n, he),
119
- "<": (e, t, n) => I(e, t, n, _e),
120
- ">=": (e, t, n) => I(e, t, n, ge),
121
- "<=": (e, t, n) => I(e, t, n, ve)
122
- }, Se = {
123
- "+": (e, t, n) => F(e, t, n, se),
124
- "-": (e, t, n) => F(e, t, n, ce)
125
- }, Ce = {
126
- "-": (e, t) => R(e, "-", t),
127
- "+": (e, t) => R(e, "+", t),
128
- "@": (e, t) => {
129
- if (!t || !t.isIRange) return t;
130
- let n = t;
131
- if (!t.isIReferenceRange) return n.getValueAt(0, 0);
132
- let r = t.getCoords(), i = n.getRowCount(), a = n.getColumnCount(), o = e.getRow() - r.rowStart, s = e.getColumn() - r.colStart, c = o >= 0 && o < i, l = s >= 0 && s < a;
133
- return c && l ? n.getValueAt(o, s) : c && a === 1 ? n.getValueAt(o, 0) : l && i === 1 ? n.getValueAt(0, s) : i === 1 && a === 1 ? n.getValueAt(0, 0) : O.BuiltIn.Value;
134
- }
135
- }, we = {
136
- "%": (e, t) => F(e, t, 100, ue),
137
- "#": (e, t) => O.isError(t) ? z(t) : t ? (t.isIReferenceRange && (t = t.getCoords()), t.colStart === void 0 ? O.BuiltIn.Value : t.rowStart !== t.rowEnd || t.colStart !== t.colEnd ? O.BuiltIn.Ref : e.getSpillAt(t.rowStart, t.colStart, t.scope) || O.BuiltIn.Ref) : O.BuiltIn.Ref
138
- };
139
- function V(e, t) {
140
- for (let n = e.length - 1; n >= 0; n--) if (e[n].type === t) return e[n];
141
- }
142
- var Te = class {
143
- constructor() {
144
- this.referenceIndices = [], this.rootReferences = /* @__PURE__ */ new Set(), this.cells = /* @__PURE__ */ new Map(), this.references = /* @__PURE__ */ new Map(), this.names = /* @__PURE__ */ new Map();
145
- }
146
- processNode(e, t) {
147
- let n = e.type;
148
- if (e.isReference) {
149
- let t = {
150
- node: e,
151
- index: this.references.size,
152
- op: null,
153
- value: null,
154
- inputs: null
155
- };
156
- if (this.references.set(e, t), n === h.Cell) {
157
- let n = e.value;
158
- n.$colIndex && (t.hasHorizontalAbs = !0), n.$rowIndex && (t.hasVerticalAbs = !0), t.value = this.cells.size, this.cells.set(e, this.cells.size), this.rootReferences.add(t), e.referenceIndex = this.referenceIndices.length, this.referenceIndices.push(t.index);
159
- return;
160
- }
161
- if (n === h.Infix || n === h.Prefix || n === h.Postfix || n === h.List) {
162
- let n = e.inputs || [], r = n.length, i = e.value;
163
- t.op = i;
164
- let a = D(r);
165
- t.inputs = a;
166
- for (let e = 0; e < r; e++) {
167
- let r = n[e], i = this.references.get(r);
168
- i ? (i.hasHorizontalAbs && (t.hasHorizontalAbs = !0), i.hasVerticalAbs && (t.hasVerticalAbs = !0), a[e] = i.index) : a[e] = -1, i && this.rootReferences.delete(i);
169
- }
170
- if (this.rootReferences.add(t), et.includes(i)) {
171
- let r = n[0], i = !!r && r.type === h.Cell, a = n[1], o = !!a && a.type === h.Cell;
172
- i && o && a.referenceIndex !== void 0 && r.referenceIndex !== void 0 && (this.referenceIndices.splice(a.referenceIndex, 1), a.referenceIndex = r.referenceIndex, e.referenceIndex = r.referenceIndex, this.referenceIndices[r.referenceIndex] = t.index);
173
- } else i === "#" && n[0] && (e.referenceIndex = n[0].referenceIndex);
174
- return;
175
- }
176
- if (n === h.Error || n === h.Named) {
177
- let r = n === h.Named ? e.value.nameId : c(e.value), i = this.names.get(r);
178
- t.op = n, i === void 0 && (i = this.names.size, this.names.set(r, i)), t.value = i, this.rootReferences.add(t), e.referenceIndex = this.referenceIndices.length, this.referenceIndices.push(t.index);
179
- return;
180
- }
181
- if (n === h.TableReference) return t.op = n, this.rootReferences.add(t), e.referenceIndex = this.referenceIndices.length, void this.referenceIndices.push(t.index);
182
- } else if (t && t.isReference) {
183
- let t = {
184
- node: e,
185
- index: this.references.size,
186
- op: h.Function,
187
- value: e.value,
188
- inputs: null
189
- };
190
- this.references.set(e, t);
191
- }
192
- }
193
- };
194
- function H(t, r = !1, i = x) {
195
- let a = [], s = /* @__PURE__ */ new Set(), c = (t, n, i) => {
196
- let o = {
197
- type: t.type,
198
- value: t.type === h.Error ? e(t.value) : t.value
199
- };
200
- t.image !== void 0 && (o.text = ((e) => {
201
- let t = r ? e.value?.scopeImage : void 0;
202
- return typeof t == "string" ? t : "";
203
- })(t) + t.image);
204
- let c = t.evalIndex ?? i;
205
- return c !== void 0 && (o.evalIndex = c), n && (o.context = n), t.referenceIndex !== void 0 && (o.referenceIndex = t.referenceIndex), t.isReference && s.add(o), a.push(o), o;
206
- }, l = (e, t, n, r, i) => {
207
- if (t == null || a.length > 1 && e === h.Whitespace && a[a.length - 1].type === h.Whitespace) return;
208
- let o = {
209
- type: e,
210
- value: t,
211
- text: i ?? t
212
- };
213
- r !== void 0 && (o.evalIndex = r), n && (o.context = n), a.push(o);
214
- };
215
- (function e(t, u, d) {
216
- let f = t.evalIndex ?? d ?? 0, p = t.type, m = (t, n, r) => {
217
- if (!t) return;
218
- let a = t.length;
219
- for (let o = 0; o < a; o++) e(t[o], n, r), o < a - 1 && l(h.Separator, ",", n, r, i.separatorFunction);
220
- };
221
- if (t.isLiteral) {
222
- if (l(h.Whitespace, t.wsBefore, u, f), p === h.Array) {
223
- l(h.Type, "{", u, f);
224
- let n = t.value, r = n.length;
225
- for (let t = 0; t < r; t++) {
226
- let a = n[t], o = a.value, s = o.length;
227
- for (let t = 0; t < s; t++) {
228
- let n = o[t];
229
- l(h.Whitespace, n.wsBefore, u, f), e(n, u, f), l(h.Whitespace, n.wsAfter, u, f), t < s - 1 && l(h.Separator, ",", u, f, i.separatorColumn);
230
- }
231
- t < r - 1 && (l(h.Whitespace, a.wsBefore, u, f), l(h.Separator, ";", u, f, i.separatorRow), l(h.Whitespace, a.wsAfter, u, f));
232
- }
233
- t.error || l(h.Type, "}", u, f);
234
- } else p === h.String && (t = {
235
- type: p,
236
- value: "\"" + `${t.value}`.replace(/"/g, "\"\"") + "\"",
237
- image: t.image
238
- }), c(t, u, f);
239
- l(h.Whitespace, t.wsAfter, u, f);
240
- } else if (p === h.Infix) e(t.inputs[0], u, f), l(h.Whitespace, t.wsBefore, u, f), c(t, u, f), l(h.Whitespace, t.wsAfter, u, f), e(t.inputs[1], u, f);
241
- else if (p === h.Prefix) l(h.Whitespace, t.wsBefore, u, f), c(t, u, f), l(h.Whitespace, t.wsAfter, u, f), t.inputs && e(t.inputs[0], u, f);
242
- else if (p === h.Postfix) {
243
- t.inputs?.[0] && e(t.inputs[0], u, f), l(h.Whitespace, t.wsBefore, u, f);
244
- let n = c(t, u, f), r = a[a.length - 2];
245
- t.value === "#" && n.text !== void 0 && !t.wsBefore && s.has(r) && (r.text = (r.text ?? "") + n.text, n.text = ""), l(h.Whitespace, t.wsAfter, u, f);
246
- } else {
247
- l(h.Whitespace, t.wsBefore, u, f);
248
- let d = t.inputs;
249
- switch (p) {
250
- case h.Function: {
251
- let n = String(t.value), r = {
252
- type: h.Function,
253
- value: n,
254
- text: t.image ?? n,
255
- evalIndex: t.evalIndex
256
- };
257
- u && (r.context = u), a.push(r);
258
- let o = {
259
- name: n,
260
- argIndex: -1,
261
- type: t.binder?.kind ?? "function"
262
- };
263
- if (u?.bound && (o.bound = u.bound), l(h.Paren, "(", o, t.evalIndex), d) {
264
- let n = d.length, r = t.binder?.kind, a = r === "lambda" ? 1 : r === "let" ? 2 : 0, s = o.bound;
265
- for (let t = 0; t < n; t++) {
266
- let c = a && t >= a ? d[t - a] : void 0;
267
- if (c?.binding?.declaration) {
268
- let e = c.value.nameId, n = r === "let" ? bt(d[t - 1]) : void 0;
269
- s = yt(s, n ? {
270
- name: e,
271
- params: n
272
- } : { name: e });
273
- }
274
- let u = {
275
- ...o,
276
- argIndex: t
277
- };
278
- s && (u.bound = s), e(d[t], u, f), t < n - 1 && l(h.Separator, ",", u, f, i.separatorFunction);
279
- }
280
- }
281
- t.error || l(h.Paren, ")", o, t.evalIndex);
282
- break;
283
- }
284
- case h.Call: {
285
- let r = o(t), s = a.length;
286
- if (r && e(r, u, f), r?.type === h.Named) for (let e = s; e < a.length; e++) {
287
- let n = a[e];
288
- n.type !== h.Whitespace && (n.evalIndex = t.evalIndex, n.type === h.Named && (n.type = h.Function, n.value = n.value.name));
289
- }
290
- let c = {
291
- name: r?.type === h.Named ? r.value.nameId : "",
292
- argIndex: -1,
293
- type: "function"
294
- };
295
- u?.bound && (c.bound = u.bound), l(h.Paren, "(", c, t.evalIndex);
296
- let d = n(t), p = d.length;
297
- for (let t = 0; t < p; t++) {
298
- let n = {
299
- ...c,
300
- argIndex: t
301
- };
302
- e(d[t], n, f), t < p - 1 && l(h.Separator, ",", n, f, i.separatorFunction);
303
- }
304
- t.error || l(h.Paren, ")", c, t.evalIndex);
305
- break;
306
- }
307
- case h.Cell:
308
- c(t, u, f);
309
- break;
310
- case h.Paren:
311
- l(p, "(", u, f), m(d, u, f), t.error || l(p, ")", u, f);
312
- break;
313
- case h.TableReference: {
314
- let n = t.value?.tableId ?? "", i = {
315
- name: n,
316
- argIndex: -1,
317
- type: "table"
318
- }, o = a.length, c = t.image, p, m = !1;
319
- if (n && c) {
320
- let e = 0;
321
- if (c.charCodeAt(0) === 91) {
322
- let t = c.indexOf("]");
323
- t !== -1 && c.charCodeAt(t + 1) === 33 && (e = t + 2);
324
- }
325
- let t = c.indexOf("[", e);
326
- if (m = t === 0 && d != null, t > 0) p = c.slice(0, t);
327
- else if (!d) {
328
- let e = c.lastIndexOf("!");
329
- p = r || e === -1 ? c : c.slice(e + 1);
330
- }
331
- }
332
- if (!n || m && r || l(h.TableReference, n, u, f, p), d && l(h.Paren, "[", i, f), d) {
333
- let t = d.length;
334
- for (let n = 0; n < t; n++) {
335
- let r = {
336
- ...i,
337
- argIndex: n
338
- };
339
- e(d[n], r, f), n < t - 1 && l(h.Separator, ",", r, f);
340
- }
341
- }
342
- d && !t.error && l(h.Paren, "]", i, f);
343
- let g = t.referenceIndex;
344
- for (let e = o; e < a.length; e++) g !== void 0 && (a[e].referenceIndex = g), s.add(a[e]);
345
- break;
346
- }
347
- case h.TableSpecifier:
348
- case h.TableColumn: {
349
- let e = t.image, n = e != null && e.startsWith("[") && e.endsWith("]");
350
- n && l(h.Paren, "[", u, f);
351
- let r = {
352
- table: u?.type === "table" ? u.name : "",
353
- name: t.value
354
- }, i = {
355
- type: p,
356
- value: r,
357
- text: n ? e.slice(1, -1) : e ?? r.name
358
- };
359
- f !== void 0 && (i.evalIndex = f), u && (i.context = u), a.push(i), n && l(h.Paren, "]", u, f);
360
- break;
361
- }
362
- case h.List:
363
- m(d, u, f);
364
- break;
365
- case h.Named: {
366
- let e = c(t, u, f), n = t.value;
367
- e.value = n.scope ? {
368
- name: n.nameId,
369
- scope: n.scope
370
- } : { name: n.nameId }, t.binding?.declaration && t.binding.optional && (e.value.optional = !0), t.binding && (e.type = h.Parameter, t.binding.declaration && (e.value.declaration = !0)), delete e.referenceIndex;
371
- break;
372
- }
373
- default: t.value !== void 0 && c(t, u, f), d && d.forEach((t) => e(t, u, f));
374
- }
375
- l(h.Whitespace, t.wsAfter, u, f);
376
- }
377
- })(t);
378
- let u = /* @__PURE__ */ new Map();
379
- for (let e of a) if (e.type === h.Cell && e.referenceIndex !== void 0) {
380
- let t = u.get(e.referenceIndex);
381
- t ? t.push(e) : u.set(e.referenceIndex, [e]);
382
- }
383
- for (let e of u.values()) e.length === 1 ? e[0].refSide = "self" : (e[0].refSide = "left", e[e.length - 1].refSide = "right");
384
- let d = /* @__PURE__ */ new Map();
385
- for (let e of a) if (e.referenceIndex !== void 0 && e.evalIndex !== void 0) {
386
- let t = d.get(e.referenceIndex);
387
- (t === void 0 || e.evalIndex < t) && d.set(e.referenceIndex, e.evalIndex);
388
- }
389
- if (d.size > 0) {
390
- for (let e of a) if (e.referenceIndex !== void 0) {
391
- let t = d.get(e.referenceIndex);
392
- t !== void 0 && (e.evalIndex = t);
393
- }
394
- }
395
- return a;
396
- }
397
- function Ee(e, t) {
398
- let n = "";
399
- for (let r = 0; r < e.length; r++) {
400
- let a = e[r], o = a.type;
401
- if (o === h.Cell || o === h.Named || o === h.Error) {
402
- let e = o === h.Cell ? a.value?.scope : (h.Named, a.value?.scope ?? void 0), r = o === h.Error ? a.text !== void 0 && E(a.text) : a.text?.includes("!") ?? !1;
403
- if (e && a.text !== void 0 && !r) {
404
- let r = t?.resolve(i.Sheet, e)?.toString() ?? e;
405
- n += f(r) + "!" + a.text;
406
- continue;
407
- }
408
- if (o === h.Named) {
409
- n += a.text ?? a.value?.name ?? "";
410
- continue;
411
- }
412
- }
413
- if (o === h.Parameter) {
414
- n += a.text ?? a.value?.name ?? "";
415
- continue;
416
- }
417
- let s = a.text ?? a.value;
418
- typeof s == "string" && (n += s);
419
- }
420
- return n;
421
- }
422
- function De(e, t) {
423
- let n;
424
- if (w(e, (e) => {
425
- e.evalIndex === t && (n = e);
426
- }), !n) return [];
427
- let r = H(n);
428
- return r.length > 1 && r[0].type === h.Whitespace && r.shift(), r.length > 1 && r[r.length - 1].type === h.Whitespace && r.pop(), r;
429
- }
430
- function Oe(e) {
431
- return w(e, (e) => {
432
- if (e.type !== h.TableReference) return;
433
- let t = function(e) {
434
- if (e.value !== null && typeof e.value == "object") return e.value;
435
- let t = e.value, n = e.inputs, r = !1, i = !1, a = !1, o = !1, s = null, c = null, l = !1, u = (e) => {
436
- e?.type === h.TableColumn && (s = e.value, c = e.value);
437
- };
438
- if (n) for (let e of n) {
439
- let t = e.type;
440
- if (t === h.TableSpecifier) {
441
- let t = e.value.toUpperCase().trim();
442
- t === "#ALL" ? i = !0 : t === "#HEADERS" ? a = !0 : t === "#TOTALS" ? o = !0 : t === "#DATA" ? r = !0 : t !== "@" && t !== "#THIS ROW" || (l = !0);
443
- } else if (t === h.TableColumn) u(e);
444
- else if (t === h.Infix && e.value === ":") {
445
- let t = e.inputs?.[0], n = e.inputs?.[1];
446
- t?.type === h.TableColumn && (s = t.value), n?.type === h.TableColumn && (c = n.value);
447
- } else if (t === h.Prefix && e.value === "@") {
448
- l = !0;
449
- let t = e.inputs?.[0];
450
- t?.type === h.Infix && t.value === ":" ? (t.inputs?.[0]?.type === h.TableColumn && (s = t.inputs[0].value), t.inputs?.[1]?.type === h.TableColumn && (c = t.inputs[1].value)) : u(t);
451
- }
452
- }
453
- return {
454
- tableId: t,
455
- spec: m(i, a, r, o),
456
- columnFromId: s,
457
- columnToId: c,
458
- isThisRow: l
459
- };
460
- }(e);
461
- return {
462
- ...e,
463
- value: t
464
- };
465
- });
466
- }
467
- function ke(e) {
468
- return w(e, (e) => {
469
- if (e.type !== h.TableReference) return;
470
- let t = e.inputs;
471
- if (!t || t.findIndex((e) => e.type === h.TableSpecifier && e.value.toUpperCase().trim() === "#THIS ROW") === -1) return;
472
- let n = [], r;
473
- for (let e of t) (e.type !== h.TableSpecifier || e.value.toUpperCase().trim() !== "#THIS ROW") && (e.type !== h.TableColumn && (e.type !== h.Infix || e.value !== ":") || r ? n.push(e) : r = e);
474
- if (!r) return n.push({
475
- type: h.Prefix,
476
- value: "@",
477
- inputs: null,
478
- isReference: !0
479
- }), {
480
- ...e,
481
- inputs: n
482
- };
483
- let i = r.image ?? r.value, a = i.startsWith("[") && i.endsWith("]") ? {
484
- ...r,
485
- image: i.slice(1, -1)
486
- } : r;
487
- return n.push(d("@", a, !0)), {
488
- ...e,
489
- inputs: n
490
- };
491
- });
492
- }
493
- function Ae(e) {
494
- return w(e, (e) => {
495
- if (e.type !== h.TableReference || e.inputs?.length !== 0 || e.error) return;
496
- let t = e.value;
497
- return (typeof t == "string" ? t : t?.tableId) ? {
498
- ...e,
499
- inputs: null
500
- } : void 0;
501
- });
502
- }
503
- function je(e) {
504
- return w(e, (e) => {
505
- if (e.type !== h.TableReference || !e.inputs) return;
506
- let t = e.value, n = typeof t == "string" ? t : t?.tableId, r = e.image;
507
- if (!n || r?.charCodeAt(0) !== 91) return;
508
- let i = r.indexOf("]");
509
- if (i !== -1 && r.charCodeAt(i + 1) === 33) return;
510
- let a = { ...e };
511
- return delete a.image, a;
512
- });
513
- }
514
- var Me = (e) => {
515
- if (e?.type !== h.TableSpecifier) return 4;
516
- switch (e.value.toUpperCase().trim()) {
517
- case "#ALL": return 0;
518
- case "#HEADERS": return 1;
519
- case "#DATA": return 2;
520
- case "#TOTALS": return 3;
521
- default: return 4;
522
- }
523
- };
524
- function U(e) {
525
- return w(e, (e) => {
526
- if (e.type !== h.TableReference) return;
527
- let t = e.inputs;
528
- if (!t || t.length < 2) return;
529
- let n = t.map((e, t) => ({
530
- input: e,
531
- index: t,
532
- rank: Me(e)
533
- })).sort((e, t) => e.rank - t.rank || e.index - t.index).map((e) => e.input);
534
- return n.every((e, n) => e === t[n]) ? void 0 : {
535
- ...e,
536
- inputs: n
537
- };
538
- });
539
- }
540
- function Ne(e) {
541
- if (!e) return M.EmptyArray;
542
- let t = M.EmptyArray;
543
- return w(e, (e) => {
544
- if (e.type !== h.Named || e.binding) return;
545
- let n = e.value.nameId;
546
- n && (t === M.EmptyArray && (t = []), t.includes(n) || t.push(n));
547
- }), t;
548
- }
549
- function Pe(e, t) {
550
- if (!e) return M.EmptyArray;
551
- let n = M.EmptyArray;
552
- return w(e, (e, r, i) => {
553
- if (!e.isReference || r?.isReference) return;
554
- let a = e.type;
555
- if (a === h.Named || a === h.Error || a === h.TableReference || V(i, h.TableReference)) return;
556
- let o = function(e) {
557
- let t = e;
558
- for (; t;) {
559
- if (t.referenceIndex !== void 0) return t.referenceIndex;
560
- if (!t.isReference) return;
561
- t = t.inputs?.[0];
562
- }
563
- }(e);
564
- o !== void 0 && function(e, t, n) {
565
- let r = e;
566
- for (let e = t.length - 1; e >= 0; e--) {
567
- let i = t[e];
568
- if (i.type === h.Paren || i.isReference) {
569
- r = i;
570
- continue;
571
- }
572
- if (i.type !== h.Function) return !0;
573
- let a = n?.(String(i.value));
574
- if (!a) return !0;
575
- let o = i.inputs ? i.inputs.indexOf(r) : -1;
576
- return (o >= 0 ? W(a.getDeclaration().getParameters(), o) : null)?.getRangeType() !== "p";
577
- }
578
- return !0;
579
- }(e, i, t) && (n === M.EmptyArray && (n = []), n.includes(o) || n.push(o));
580
- }), n.length > 1 && n.sort((e, t) => e - t), n;
581
- }
582
- var Fe = /* @__PURE__ */ new Set(["SUBTOTAL", "AGGREGATE"]);
583
- function Ie(e, t) {
584
- if (!e || !t) return !1;
585
- let n = !1;
586
- return w(e, (e) => {
587
- if (n || e.type !== h.Function) return;
588
- let r = t(e.value)?.getName();
589
- r && Fe.has(r.toUpperCase()) && (n = !0);
590
- }), n;
591
- }
592
- function Le(e, t) {
593
- if (!e || !t) return !1;
594
- let n = !1;
595
- return w(e, (e) => {
596
- n || e.type !== h.Function || !0 === t(e.value)?.getDeclaration().getReturnType()?.isVolatile() && (n = !0);
597
- }), n;
598
- }
599
- var Re = Object.freeze({
600
- value: !1,
601
- array: !1
602
- }), ze = (e, t) => {
603
- let n = function(e, t) {
604
- if (!e || !t) return Re;
605
- let n = !1, r = !1;
606
- return w(e, (e) => {
607
- if (n) return;
608
- let i = e.type;
609
- if (i === h.Named) return void (e.binding === void 0 && (n = !0));
610
- if (i === h.Prefix) return void (e.value === "@" && (n = !0));
611
- if (i === h.Call) return void (n = !0);
612
- if (i !== h.Function || e.binder !== void 0) return;
613
- let a = t(e.value);
614
- if (!a) return void (n = !0);
615
- if (r || !0 !== e.implicitIntersect) return;
616
- let o = a.getDeclaration().getParameters(), s = e.inputs;
617
- if (s) for (let e = 0; e < s.length; e++) {
618
- let n = W(o, e);
619
- if (n !== null && n.isValueOrRange() && K(s[e], t)) return void (r = !0);
620
- }
621
- }), {
622
- value: !n && !r,
623
- array: !n
624
- };
625
- }(e, t);
626
- return {
627
- isBlankCacheable: n.value,
628
- isBlankCacheableArray: n.array
629
- };
630
- }, Be = (e, t) => {
631
- let n = e.length;
632
- if (n === 0) return null;
633
- if (t < n - 1) return e[t];
634
- let r = e[n - 1], i = r.getRepeatingTypes();
635
- return i && i.length !== 0 ? i[(t - (n - 1)) % i.length] : t < n ? e[t] : r.isRest() ? r : null;
636
- };
637
- function Ve(e) {
638
- if (!e) return M.EmptyArray;
639
- let t = M.EmptyArray, n = (e) => {
640
- e && (t === M.EmptyArray && (t = []), t.includes(e) || t.push(e));
641
- }, r = (e) => {
642
- typeof e == "string" && n(s(e)?.bookId);
643
- };
644
- return w(e, (e) => {
645
- if (e.type === h.Named) {
646
- if (e.binding) return;
647
- let t = e.value;
648
- n(t.nameId), r(t.scope);
649
- } else if (e.type === h.TableReference) {
650
- let t = e.value;
651
- n(typeof t == "string" ? t : t?.tableId);
652
- } else if (e.type === h.Cell) {
653
- let t = e.value?.scope;
654
- r(t), y(t) && n(t);
655
- } else e.type === h.Error && r(e.value?.scope);
656
- }), t;
657
- }
658
- var He = (e, t) => {
659
- if (!0 === e.lazyArg) return !0;
660
- if (t?.binder?.kind !== "lambda") return !1;
661
- let n = t.inputs;
662
- return n[n.length - 1] === e;
663
- }, Ue = /* @__PURE__ */ new Set([
664
- "IF",
665
- "IFS",
666
- "SWITCH",
667
- "CHOOSE",
668
- "IFERROR",
669
- "IFNA"
670
- ]), W = (e, t) => {
671
- let n = e.length;
672
- if (n === 0) return null;
673
- if (t < n) return e[t];
674
- let r = e[n - 1];
675
- if (!r.isRest()) return null;
676
- let i = r.getRepeatingTypes();
677
- return i && i.length !== 0 ? i[(t - (n - 1)) % i.length] : r;
678
- }, We = (e) => e.getScalarType() !== null && e.getRangeType() === null && e.getLambda() === null && !e.isValueOrRange(), Ge = (e, t, n) => !(e.isRest() || !We(e) || !K(t, n)) && !(e.isNoLift() && G(t, n)), G = (e, t) => {
679
- if (!e) return !1;
680
- let n = e.inputs;
681
- switch (e.type) {
682
- case h.Cell:
683
- case h.Named:
684
- case h.TableReference: return !0;
685
- case h.Infix:
686
- case h.Prefix:
687
- case h.Postfix: return !0 === e.isReference && e.value !== "@";
688
- case h.Paren:
689
- case h.List: return !!n && n.length === 1 && G(n[0], t);
690
- case h.Function: {
691
- if (e.binder !== void 0) return !1;
692
- let r = String(e.value).toUpperCase();
693
- if (Ue.has(r)) {
694
- if (!n) return !1;
695
- for (let e = 0; e < n.length; e++) if (G(n[e], t)) return !0;
696
- return !1;
697
- }
698
- let i = t?.(e.value);
699
- return !!i && i.getDeclaration().getReturnType().getKind() === j.Reference;
700
- }
701
- default: return !1;
702
- }
703
- }, Ke = (e, t) => {
704
- if (!e) return !1;
705
- for (let n = 0; n < e.length; n++) if (K(e[n], t)) return !0;
706
- return !1;
707
- };
708
- function K(e, t) {
709
- if (!e) return !1;
710
- if (e.arrayValued !== void 0) return e.arrayValued;
711
- let n, r = e.type, i = e.inputs;
712
- switch (r) {
713
- case h.Array:
714
- n = !0;
715
- break;
716
- case h.Cell: {
717
- let t = e.value;
718
- n = t.rowIndex === -(2 ** 53 - 1) || t.colIndex === -(2 ** 53 - 1);
719
- break;
720
- }
721
- case h.Named:
722
- case h.Call:
723
- case h.TableReference:
724
- n = !0;
725
- break;
726
- case h.Infix:
727
- case h.Prefix:
728
- case h.Postfix:
729
- n = e.isReference ? e.value !== "@" : Ke(i, t);
730
- break;
731
- case h.Paren:
732
- case h.List:
733
- n = !i || i.length !== 1 || K(i[0], t);
734
- break;
735
- case h.Function: {
736
- let r = e.binder;
737
- if (r !== void 0) {
738
- n = r.kind === "lambda" || !!i && K(i[i.length - 1], t);
739
- break;
740
- }
741
- let a = String(e.value).toUpperCase();
742
- if (Ue.has(a)) {
743
- n = Ke(i, t);
744
- break;
745
- }
746
- if (a === "INDEX") {
747
- if (n = !1, i) for (let e = 1; e < i.length; e++) {
748
- let r = i[e];
749
- if (!r || r.type === h.Empty || r.isLiteral && r.value === 0 || K(r, t)) {
750
- n = !0;
751
- break;
752
- }
753
- }
754
- break;
755
- }
756
- let o = t?.(e.value);
757
- if (!o) {
758
- n = !0;
759
- break;
760
- }
761
- let s = o.getDeclaration().getReturnType(), c = s.getKind();
762
- n = c === j.Array || c === j.Reference || c === null && s.getRangeType() !== null;
763
- break;
764
- }
765
- default: n = !1;
766
- }
767
- return e.arrayValued = n, n;
768
- }
769
- function qe(e, t) {
770
- if (e.firstCell !== void 0) return;
771
- let n = (e, r) => {
772
- if (!e) return;
773
- e.firstCell = r;
774
- let i = e.inputs;
775
- if (!i) return;
776
- let a = e.type;
777
- if (a === h.Infix || a === h.Prefix || a === h.Postfix) {
778
- let t = r && !e.isReference;
779
- for (let e = 0; e < i.length; e++) n(i[e], t);
780
- } else if (a === h.Paren || a === h.List) {
781
- let e = r && i.length === 1;
782
- for (let t = 0; t < i.length; t++) n(i[t], e);
783
- } else if (a === h.Function) {
784
- let a = e.binder;
785
- if (a !== void 0) {
786
- let e = i.length - 1;
787
- for (let t = 0; t < i.length; t++) n(i[t], r && a.kind === "let" && t === e);
788
- return;
789
- }
790
- let o = r ? t?.(e.value)?.getDeclaration().getParameters() : null;
791
- for (let e = 0; e < i.length; e++) {
792
- let t = o ? W(o, e) : null;
793
- n(i[e], t !== null && (We(t) || Ze(t)));
794
- }
795
- } else for (let e = 0; e < i.length; e++) n(i[e], !1);
796
- };
797
- n(e, !0);
798
- }
799
- var Je = /* @__PURE__ */ new Set([
800
- "=",
801
- "<>",
802
- "<",
803
- ">",
804
- "<=",
805
- ">="
806
- ]), Ye = /* @__PURE__ */ new Set(["ROW", "COLUMN"]);
807
- function Xe(e, n) {
808
- if (!e || !n) return null;
809
- let r = (e) => n(e.value)?.getName().toUpperCase() ?? null, i = !1;
810
- if (w(e, (e) => {
811
- (e.hasLazyArgs || e.type === h.Call || e.binder !== void 0) && (i = !0);
812
- }), i) return null;
813
- let a = (e) => e.type === h.Number, o = (e) => e.type === h.Number || e.type === h.String || e.type === h.Boolean, s = (e) => {
814
- if (!e) return !1;
815
- let t = e.inputs;
816
- switch (e.type) {
817
- case h.Paren: return t?.length === 1 && s(t[0]);
818
- case h.Prefix: return (e.value === "-" || e.value === "+") && s(t?.[0]);
819
- case h.Infix: {
820
- if (e.value !== "+" && e.value !== "-" && e.value !== "*") return !1;
821
- let [n, r] = t ?? [];
822
- return !(!n || !r) && (s(n) && (s(r) || a(r)) || a(n) && s(r));
823
- }
824
- case h.Function: {
825
- let n = r(e);
826
- if (n !== null && Ye.has(n)) return !t || t.length === 0 || t.length === 1 && t[0]?.type === h.Cell;
827
- if (n === "MOD" && t?.length === 2) {
828
- let e = t[1];
829
- return s(t[0]) && a(e) && e.value !== 0;
830
- }
831
- return !1;
832
- }
833
- }
834
- return !1;
835
- }, c = (e) => {
836
- if (!e) return !1;
837
- let t = e.inputs;
838
- switch (e.type) {
839
- case h.Paren: return t?.length === 1 && c(t[0]);
840
- case h.Infix: {
841
- if (!Je.has(e.value)) return !1;
842
- let [n, r] = t ?? [];
843
- return !(!n || !r) && (s(n) && (s(r) || o(r)) || o(n) && s(r));
844
- }
845
- case h.Function: {
846
- let n = r(e);
847
- if (!t || t.length === 0) return !1;
848
- if (n === "ISODD" || n === "ISEVEN") return t.length === 1 && s(t[0]);
849
- if (n === "NOT") return t.length === 1 && c(t[0]);
850
- if (n === "AND" || n === "OR" || n === "XOR") {
851
- let e = !1;
852
- for (let n = 0; n < t.length; n++) {
853
- let r = t[n];
854
- if (!r) return !1;
855
- if (r.type !== h.Boolean) {
856
- if (!c(r)) return !1;
857
- e = !0;
858
- }
859
- }
860
- return e;
861
- }
862
- return !1;
863
- }
864
- }
865
- return !1;
866
- }, l = [], u = (e) => {
867
- if (!e) return;
868
- if (c(e)) return void l.push(e);
869
- let t = e.inputs;
870
- if (t) for (let e = 0; e < t.length; e++) u(t[e]);
871
- };
872
- u(e);
873
- let d = l.length;
874
- if (d === 0 || d > 4) return null;
875
- let f = [];
876
- for (let n = 0; n < 1 << d; n++) {
877
- let r = (e) => {
878
- let i = l.indexOf(e);
879
- if (i !== -1) return t(n & 1 << i ? "TRUE" : "FALSE");
880
- let a = { ...e };
881
- return delete a.evalIndex, delete a.firstCell, delete a.inLazy, delete a.lazyArg, delete a.hasLazyArgs, delete a.deferred, e.inputs && (a.inputs = e.inputs.map((e) => e && r(e))), a;
882
- };
883
- f.push(r(e));
884
- }
885
- return f;
886
- }
887
- var Ze = (e) => e.getRangeType() === "*" && e.getLambda() === null && e.getArrayDepth() <= +!!e.isRest();
888
- function Qe(e, t, n, r = !1, i = null, a = null) {
889
- let o, s, l = n;
890
- l = Oe(l), r || (l = ke(l), l = U(l), l = Ae(l), l = je(l)), [o, s] = function(e) {
891
- let t = /* @__PURE__ */ new Map(), n = 0, r = [e];
892
- for (; r.length > 0;) {
893
- let e = r.shift();
894
- if (t.set(e, {
895
- ...e,
896
- evalIndex: n++
897
- }), e && e.inputs) for (let t of e.inputs) r.push(t);
898
- }
899
- return t.forEach((e, n) => {
900
- n && n.inputs && (e.inputs = n.inputs.map((e) => t.get(e) ?? e));
901
- }), [t.get(e), n];
902
- }(l);
903
- let u = D(s), d = [], f = [], p = new Te(), m, g = !1;
904
- (function(e, t) {
905
- if (!e || !t) return;
906
- let n = (e) => {
907
- if (!e) return;
908
- e.inLazy = !0, e.type === h.Named && (e.deferredResolve = !0);
909
- let t = e.inputs;
910
- if (t) for (let e = 0; e < t.length; e++) n(t[e]);
911
- };
912
- w(e, (e) => {
913
- if (e.type !== h.Function || e.binder !== void 0) return;
914
- let r = e.inputs;
915
- if (!r || r.length === 0) return;
916
- let i = t(e.value)?.getDeclaration().getParameters();
917
- if (i) for (let t = 0; t < r.length; t++) {
918
- let a = r[t];
919
- a && a.type !== h.Empty && Be(i, t)?.isLazy() && (a.lazyArg = !0, e.hasLazyArgs = !0, n(a));
920
- }
921
- });
922
- })(o, a);
923
- let _ = (e) => {
924
- m === void 0 && (m = /* @__PURE__ */ new Map());
925
- let t = m.get(e);
926
- return t === void 0 && m.set(e, t = []), t;
927
- }, v = (e, t) => {
928
- e === void 0 ? d.push(t) : _(e).push(t);
929
- }, y = (e) => {
930
- e?.type !== h.Infix || e.value !== "+" && e.value !== "-" || (e.snapsCancellation = !0);
931
- };
932
- o = w(o, (t, n, r) => {
933
- let i = t.type, a = t.evalIndex;
934
- if (u[a] = null, i === h.TableColumn || i === h.TableSpecifier || t.isReference && V(r, h.TableReference)) return;
935
- if (g ||= !Y(t), t.binding?.declaration) return f[t.binding.slot] = -1, void (u[a] = void 0);
936
- let o = ((e, t, n) => {
937
- if (He(e, t)) return e;
938
- for (let e = n.length - 1; e >= 0; e--) if (He(n[e], n[e - 1])) return n[e];
939
- })(t, n, r);
940
- o === t && _(t), o !== void 0 && i === h.Named && (t.deferredResolve = !0);
941
- let s = t.binder;
942
- if (s && s.kind === "let") {
943
- let e = t.inputs, n = e?.length ?? 0, r = 0;
944
- for (let t = 0; t + 1 < n && r < s.slots.length; t += 2) e[t]?.binding?.declaration && (f[s.slots[r++]] = e[t + 1]?.evalIndex ?? -1);
945
- }
946
- if ((t.isReference || n && n.isReference) && (p.processNode(t, n), t.isReference)) {
947
- if (i === h.Named) return void (o !== void 0 && v(o, t));
948
- if (i === h.Cell || i === h.TableReference || i === h.Error) return;
949
- if (i === h.Infix || i === h.Prefix || i === h.Postfix || i === h.List) return void v(o, t);
950
- }
951
- if (t.isLiteral) {
952
- if (i !== h.Array) u[a] = t.value;
953
- else {
954
- let n = t.value, r = n.length, i = D(r);
955
- for (let e = 0; e < r; e++) {
956
- let t = n[e].value, r = t.length, a = D(r);
957
- for (let e = 0; e < r; e++) {
958
- let n = t[e], r = null;
959
- if (n && (r = n.type === h.Error ? c(n.value) : n.value, n.type === h.Prefix)) {
960
- let e = n.value;
961
- r = n.inputs[0].value, e === "-" && (r = -r);
962
- }
963
- a[e] = r;
964
- }
965
- i[e] = a;
966
- }
967
- let o = te(i);
968
- u[a] = new ee(e, o.values, o.coords, void 0, o.isLiteral);
969
- }
970
- } else {
971
- if (i !== h.Empty) return t.binder?.kind === "lambda" && y(t.inputs[t.inputs.length - 1]), v(o, t), t;
972
- u[a] = void 0;
973
- }
974
- }), y(o), m?.forEach((e, t) => {
975
- t.deferred = e;
976
- });
977
- let b = D(p.cells.size);
978
- p.cells.forEach((e, t) => {
979
- let n = t.value, r = n.colIndex, i = n.rowIndex, a = n.$colIndex, o = n.$rowIndex, s = {
980
- colStart: r,
981
- rowStart: i,
982
- colEnd: r,
983
- rowEnd: i,
984
- $colStart: a,
985
- $rowStart: o,
986
- $colEnd: a,
987
- $rowEnd: o
988
- };
989
- r === -(2 ** 53 - 1) && (s.colEnd = 2 ** 53 - 1), i === -(2 ** 53 - 1) && (s.rowEnd = 2 ** 53 - 1), n.scope && (s.scope = n.scope), b[e] = s;
990
- });
991
- let S = b.length, C = D(S);
992
- for (let e = 0; e < S; e++) C[e] = {
993
- colStart: 0,
994
- rowStart: 0,
995
- colEnd: 0,
996
- rowEnd: 0,
997
- scope: null
998
- };
999
- let T = D(p.references.size);
1000
- p.references.forEach((e) => {
1001
- T[e.index] = e;
1002
- });
1003
- let E = [];
1004
- p.rootReferences.forEach((e) => {
1005
- E.push(e.index);
1006
- }), function(e, t, n = !1) {
1007
- if (n) {
1008
- let t = (e) => {
1009
- if (!e) return;
1010
- let n = e.type;
1011
- n !== h.Function && n !== h.Call || (e.implicitIntersect = !0);
1012
- let r = e.inputs;
1013
- if (r) for (let e = 0; e < r.length; e++) t(r[e]);
1014
- };
1015
- t(e);
1016
- return;
1017
- }
1018
- let r = (e) => K(e, t), i = (e, n) => {
1019
- if (!e) return;
1020
- let a = e.type;
1021
- a !== h.Function && a !== h.Call || (e.implicitIntersect = n);
1022
- let o = e.inputs;
1023
- if (o) {
1024
- if (a === h.Infix || a === h.Prefix || a === h.Postfix) {
1025
- let t = !e.isReference;
1026
- for (let e = 0; e < o.length; e++) i(o[e], (!t || !r(o[e])) && n);
1027
- return;
1028
- }
1029
- if (a === h.Function) {
1030
- let r = e.binder;
1031
- if (r !== void 0) {
1032
- let e = r.kind !== "lambda" && n;
1033
- for (let t = 0; t < o.length; t++) i(o[t], e);
1034
- return;
1035
- }
1036
- let a = t?.(e.value)?.getDeclaration().getParameters(), s = !1;
1037
- if (a) for (let e = 0; e < o.length && !s; e++) {
1038
- let n = o[e];
1039
- if (!n) continue;
1040
- let r = W(a, e);
1041
- r && Ge(r, n, t) && (s = !0);
1042
- }
1043
- s && (e.implicitIntersect = !1);
1044
- for (let e = 0; e < o.length; e++) i(o[e], !s && n);
1045
- return;
1046
- }
1047
- for (let e = 0; e < o.length; e++) i(o[e], n);
1048
- }
1049
- };
1050
- i(e, !r(e));
1051
- }(o, a, !0 === n.legacyIntersect);
1052
- let O = (e) => {
1053
- let t = e.length;
1054
- for (let n = 0; n < t; n++) {
1055
- let t = e[n], r = t.type;
1056
- if (r === h.Infix) {
1057
- if (!0 === t.snapsCancellation) {
1058
- t.fn = Se[t.value];
1059
- continue;
1060
- }
1061
- t.fn = xe[t.value];
1062
- } else r === h.Prefix ? t.fn = Ce[t.value] : r === h.Postfix && (t.fn = we[t.value]);
1063
- }
1064
- }, k;
1065
- O(d), m?.forEach(O);
1066
- let A = r ? ne(re(e.getLocale()).decimal) : x, j = {
1067
- runtime: e,
1068
- symbols: t,
1069
- getFunction: a,
1070
- ast: o,
1071
- evaluations: u,
1072
- executions: d,
1073
- bindings: f,
1074
- referencesAbsolute: C,
1075
- referencesExecute: T,
1076
- referencesRelative: b,
1077
- referencesRoot: E,
1078
- referenceIndices: p.referenceIndices,
1079
- formatReferenceIndices: Pe(o, a),
1080
- getTokens: () => k ??= H(o, r, A),
1081
- namedIds: Ne(o),
1082
- symbolIds: Ve(o),
1083
- hasTotals: Ie(o, a),
1084
- hasVolatile: Le(o, a),
1085
- ...ze(o, a),
1086
- isReferenceOnly: !g,
1087
- error: i,
1088
- transform: (n) => {
1089
- let s = w(o, n);
1090
- return s === o ? j : Qe(e, t, s, r, i, a);
1091
- }
1092
- };
1093
- return j;
1094
- }
1095
- function $e(e) {
1096
- let t = -1, n = -1;
1097
- return Number.isSafeInteger(e.previousToken?.startLine) ? (t = e.previousToken.startLine, n = e.previousToken.endColumn + 1) : Number.isSafeInteger(e.token?.startLine) && (t = e.token.startLine, n = e.token.startColumn), t === -1 ? new O.Parse(e.message, { cause: e }) : (e.errorLocation = {
1098
- line: t,
1099
- column: n
1100
- }, new O.Parse(e.message, {
1101
- line: t,
1102
- column: n,
1103
- cause: e
1104
- }));
1105
- }
1106
- Object.freeze([
1107
- [
1108
- ":",
1109
- ".:.",
1110
- ".:",
1111
- ":."
1112
- ],
1113
- ["^"],
1114
- ["*", "/"],
1115
- ["+", "-"],
1116
- ["&"],
1117
- [
1118
- "<",
1119
- ">",
1120
- "=",
1121
- "<>",
1122
- "<=",
1123
- ">="
1124
- ]
1125
- ]);
1126
- var et = Object.freeze([
1127
- ":",
1128
- ".:.",
1129
- ".:",
1130
- ":."
1131
- ]), q = Object.freeze([
1132
- ":",
1133
- " ",
1134
- ".:.",
1135
- ".:",
1136
- ":."
1137
- ]), tt = Object.freeze(["@"]), J = Object.freeze(["#"]), nt = Object.freeze(q.concat(J)), Y = (Object.freeze(q.concat(tt).concat(J)), (e) => {
1138
- if (!e) return !1;
1139
- let t = e.type;
1140
- if (t === h.Cell || t === h.TableReference) return !0;
1141
- if (t === h.Infix) {
1142
- if (!q.includes(e.value)) return !1;
1143
- let t = e.inputs, n = t[0], r = t[1];
1144
- return Y(n) && Y(r);
1145
- }
1146
- return t === h.List && (e.inputs?.every(Y) ?? !1);
1147
- }), rt = (e) => !!e && (!(e.type !== h.Infix || !nt.includes(e.value)) || !(e.type !== h.Postfix || !J.includes(e.value)) || e.type === h.Array || e.type === h.TableReference), it = Object.freeze([
1148
- "+",
1149
- "-",
1150
- "*",
1151
- "/",
1152
- "^",
1153
- "&",
1154
- "=",
1155
- "<>",
1156
- ">",
1157
- "<",
1158
- ">=",
1159
- "<="
1160
- ]), at = Object.freeze(["-", "+"]), X = (e, t) => {
1161
- if (!e) return !1;
1162
- let n = e.type;
1163
- if (e.isLiteral) return n !== h.Error;
1164
- if (n === h.Paren || n === h.List) {
1165
- let n = e.inputs;
1166
- return !(!n || n.length === 0) && n.every((e) => X(e, t));
1167
- }
1168
- if (n === h.Infix) return it.includes(e.value);
1169
- if (n === h.Prefix) return at.includes(e.value);
1170
- if (n === h.Postfix) return e.value === "%";
1171
- if (n === h.Function) {
1172
- if (!t) return !1;
1173
- let n = t(e.value);
1174
- if (!n) return !1;
1175
- let r = n.getDeclaration().getReturnType(), i = r.getRangeType();
1176
- return i !== "p" && (i !== null || r.getLambda() === null && r.getScalarType() != null);
1177
- }
1178
- return !1;
1179
- }, ot = (e, t) => {
1180
- if (!e) return null;
1181
- let n = null, r = (e) => {
1182
- if (n || !e) return;
1183
- if (e.type === h.Infix && e.value === " ") {
1184
- let r = e.inputs, i = r?.[0], a = r?.[1];
1185
- if (X(i, t)) return void (n = i);
1186
- if (X(a, t)) return void (n = a);
1187
- }
1188
- let i = e.inputs;
1189
- if (i) for (let e = 0; e < i.length && !n; e++) r(i[e]);
1190
- };
1191
- return r(e), n;
1192
- }, st = (e, t) => {
1193
- if (!e) return null;
1194
- let n = null, r = (e) => {
1195
- if (n || !e) return;
1196
- if (e.type === h.Postfix && e.value === "#") {
1197
- let r = e.inputs?.[0];
1198
- if (r && X(r, t)) return void (n = r);
1199
- }
1200
- let i = e.inputs;
1201
- if (i) for (let e = 0; e < i.length && !n; e++) r(i[e]);
1202
- };
1203
- return r(e), n;
1204
- }, ct = (e) => {
1205
- for (let t = 0; t < e.length; t++) if (e[t].getRepeatingTypes()) return t;
1206
- return -1;
1207
- }, lt = (e, t, n) => {
1208
- let r = e[t].getRepeatingTypes(), i = r.length, a = t, o = e.length - t - 1, s = o;
1209
- for (; s > 0 && e[t + s].isOptional();) s--;
1210
- let c = +!e[t].isOptional(), l = r[i - 1].isOptional();
1211
- for (let e = s; e <= o; e++) {
1212
- let t = n - a - e;
1213
- if (t >= 0 && t % i === 0 && t / i >= c) return {
1214
- n: t / i,
1215
- short: !1,
1216
- variable: t,
1217
- period: i,
1218
- prefix: a,
1219
- suffix: e
1220
- };
1221
- if (l && t === i - 1) return {
1222
- n: 1,
1223
- short: !0,
1224
- variable: t,
1225
- period: i,
1226
- prefix: a,
1227
- suffix: e
1228
- };
1229
- }
1230
- return null;
1231
- }, ut = (e) => {
1232
- if (!e) return null;
1233
- let t = null, n = (e) => {
1234
- if (t || !e) return;
1235
- if (e.type === h.Array && Array.isArray(e.value)) {
1236
- let n = e.value, r = n[0]?.value?.length ?? 0;
1237
- for (let e = 1; e < n.length && !t; e++) {
1238
- let i = n[e]?.value?.length ?? 0;
1239
- i !== r && (t = `Array rows must all be the same length — row ${e + 1} has ${i} value${i === 1 ? "" : "s"}, but row 1 has ${r}.`);
1240
- }
1241
- }
1242
- let r = e.inputs;
1243
- if (r) for (let e = 0; e < r.length && !t; e++) n(r[e]);
1244
- };
1245
- return n(e), t;
1246
- }, dt = (e, t) => {
1247
- if (!e || !t) return null;
1248
- let n = null, r = (e) => {
1249
- if (n || !e) return;
1250
- if (e.type === h.Function) {
1251
- let r = e.value, i = t(r);
1252
- if (i) {
1253
- let t = i.getDeclaration(), a = t.getParameters(), o = e.inputs?.length ?? 0, s = t.getMaxArguments();
1254
- if (o > s) return void (n = `Too many arguments for ${r}. The most it accepts is ${s}, but got ${o}.`);
1255
- let c = a.length > 0 ? ct(a) : -1, l = a.length > 0 && a[a.length - 1].isRest();
1256
- if (c >= 0) {
1257
- if (!lt(a, c, o)) {
1258
- let e = a[c].getRepeatingTypes().length, t = a.length - 1;
1259
- n = e === 1 ? `Too few arguments for ${r}. Expected at least ${t + 1}, but got ${o}.` : `Wrong number of arguments for ${r}. Expected ${t} plus a multiple of ${e}, but got ${o}.`;
1260
- }
1261
- } else if (!l && o > a.length) n = `Too many arguments for ${r}. Expected ${a.length}, but got ${o}.`;
1262
- else for (let e = o; e < a.length && !n; e++) {
1263
- let t = a[e];
1264
- t.isOptional() || t.isRest() || (n = `Parameter ${t.getName()} is missing for ${r}.`);
1265
- }
1266
- }
1267
- }
1268
- let i = e.inputs;
1269
- if (i) for (let e = 0; e < i.length && !n; e++) r(i[e]);
1270
- };
1271
- return r(e), n;
1272
- }, ft = (e, t) => {
1273
- if (!e || !t) return null;
1274
- let n = null, r = (e) => {
1275
- if (n || !e) return;
1276
- if (e.type === h.Function) {
1277
- let r = t(e.value);
1278
- if (r) {
1279
- let i = r.getDeclaration().getParameters(), a = e.inputs;
1280
- if (i.length > 0 && a) {
1281
- let e = ((e, t) => {
1282
- let n = Array(t), r = e.length, i = r > 0 ? ct(e) : -1;
1283
- if (i < 0) {
1284
- let i = r > 0 ? e[r - 1] : null, a = !!i && i.isRest();
1285
- for (let o = 0; o < t; o++) n[o] = o < r ? e[o] : a ? i : null;
1286
- return n;
1287
- }
1288
- let a = e[i].getRepeatingTypes(), o = a.length, s = i, c = lt(e, i, t), l = c ? c.suffix : r - i - 1, u = Math.max(0, t - s - l);
1289
- for (let c = 0; c < t; c++) if (c < s) n[c] = e[c];
1290
- else if (c < s + u) n[c] = a[(c - s) % o];
1291
- else {
1292
- let t = i + 1 + (c - s - u);
1293
- n[c] = t < r ? e[t] : null;
1294
- }
1295
- return n;
1296
- })(i, a.length);
1297
- for (let r = 0; r < a.length && !n; r++) {
1298
- let i = e[r];
1299
- i && i.getRangeType() === "p" && X(a[r], t) && (n = a[r]);
1300
- }
1301
- }
1302
- }
1303
- }
1304
- let i = e.inputs;
1305
- if (i) for (let e = 0; e < i.length && !n; e++) r(i[e]);
1306
- };
1307
- return r(e), n;
1308
- }, pt = (e, t) => {
1309
- if (!e) return null;
1310
- let n = null, r = (e) => {
1311
- if (n || !e) return;
1312
- if (e.type === h.Call) {
1313
- let r = e.inputs?.[0];
1314
- if (r && X(r, t)) return void (n = "This expression always produces a value, so it cannot be called as a function.");
1315
- }
1316
- let i = e.inputs;
1317
- if (i) for (let e = 0; e < i.length && !n; e++) r(i[e]);
1318
- };
1319
- return r(e), n;
1320
- }, Z = (e, t) => {
1321
- if (e.type !== h.Function) return;
1322
- let n = e.value;
1323
- if (typeof n != "string") return;
1324
- let r = (t?.(n)?.getName() ?? n).toUpperCase();
1325
- return r === "LET" ? "let" : r === "LAMBDA" ? "lambda" : void 0;
1326
- }, Q = (e) => {
1327
- if (e?.type !== h.Named) return;
1328
- let t = e.value;
1329
- return t?.nameId && !t.scope && !0 !== t.optional ? t.nameId : void 0;
1330
- }, mt = /^[A-Za-z_\\][A-Za-z0-9_\\]*$/, ht = /* @__PURE__ */ new Set(["TRUE", "FALSE"]), gt = (e) => {
1331
- if (e?.type === h.Named) {
1332
- let t = e.value;
1333
- return !0 !== t?.optional || !t.nameId || t.scope ? void 0 : t.nameId;
1334
- }
1335
- if (e?.type !== h.TableReference) return;
1336
- let t = e.value, n;
1337
- if (t === null || typeof t == "string") {
1338
- if (t) return;
1339
- let r = e.inputs;
1340
- if (!r || r.length !== 1 || r[0]?.type !== h.TableColumn) return;
1341
- let i = r[0].value;
1342
- if (typeof i != "string") return;
1343
- n = i;
1344
- } else {
1345
- let e = t;
1346
- if (!e || e.tableId !== "" || e.spec !== 0 || !0 === e.isThisRow || !e.columnFromId || e.columnFromId !== e.columnToId) return;
1347
- n = e.columnFromId;
1348
- }
1349
- return mt.test(n) && !ht.has(n.toUpperCase()) && e.image === `[${n}]` ? n : void 0;
1350
- }, _t = (e) => {
1351
- let t = u(e.image ?? e.value);
1352
- t.image = e.image ?? e.value, t.wsBefore = e.wsBefore;
1353
- let n = {
1354
- type: h.Call,
1355
- value: null,
1356
- inputs: [t, ...e.inputs ?? []],
1357
- wsAfter: e.wsAfter
1358
- };
1359
- return e.error && (n.error = e.error), n;
1360
- };
1361
- function vt(e, t) {
1362
- return e && t ? w(e, (e) => {
1363
- if (e.type === h.Function && typeof e.value == "string" && !t(e.value)) return _t(e);
1364
- }) : e;
1365
- }
1366
- function yt(e, t) {
1367
- let n = t.name.toUpperCase(), r = e ? e.filter((e) => e.name.toUpperCase() !== n) : [];
1368
- return r.push(t), r;
1369
- }
1370
- function bt(e) {
1371
- if (e?.type !== h.Function || e.binder?.kind !== "lambda") return;
1372
- let t = e.inputs ?? [], n = [];
1373
- for (let e = 0; e < t.length - 1; e++) {
1374
- let r = t[e];
1375
- if (!r?.binding?.declaration) return;
1376
- let i = r.value.nameId;
1377
- n.push(r.binding.optional ? {
1378
- name: i,
1379
- optional: !0
1380
- } : { name: i });
1381
- }
1382
- return n;
1383
- }
1384
- var xt = /* @__PURE__ */ new Set([
1385
- "IF",
1386
- "IFERROR",
1387
- "IFNA"
1388
- ]);
1389
- function $(e, t) {
1390
- if (!e || e.type !== h.Function || typeof e.value != "string") return e;
1391
- let n = (t?.(e.value)?.getName() ?? e.value).toUpperCase();
1392
- if (!xt.has(n)) return e;
1393
- let r = e.inputs, i;
1394
- if (r) for (let e = 0; e < r.length; e++) {
1395
- let n = $(r[e], t);
1396
- n !== r[e] && ((i ??= [...r])[e] = n);
1397
- }
1398
- return {
1399
- ...e,
1400
- inputs: i ?? r,
1401
- passOmitted: !0
1402
- };
1403
- }
1404
- function St(e, t = null) {
1405
- if (!e) return e;
1406
- let n = [], r = 0, i = (e) => {
1407
- let t = e.inputs;
1408
- if (!t) return e;
1409
- let n;
1410
- for (let e = 0; e < t.length; e++) {
1411
- let r = t[e];
1412
- if (!r) continue;
1413
- let i = a(r);
1414
- i !== r && (n ||= [...t], n[e] = i);
1415
- }
1416
- return n ? {
1417
- ...e,
1418
- inputs: n
1419
- } : e;
1420
- }, a = (e) => {
1421
- if (!e) return e;
1422
- let o = Z(e, t);
1423
- if (o) return ((e, o) => {
1424
- let s = e.inputs, c = s?.length ?? 0;
1425
- if (!s || c < 1) return i(e);
1426
- let l = n.length, u = [], d = [...s], f = (e, t = !1) => {
1427
- let i = d[e], a = Q(i), o = !1;
1428
- if (a === void 0 && t) {
1429
- if (a = gt(i), a === void 0) return;
1430
- o = !0;
1431
- } else if (a === void 0) return;
1432
- let s = r++;
1433
- n.push({
1434
- key: a.toUpperCase(),
1435
- slot: s,
1436
- name: a
1437
- }), u.push(s), d[e] = o ? {
1438
- ...i,
1439
- type: h.Named,
1440
- value: {
1441
- nameId: a,
1442
- scope: null
1443
- },
1444
- inputs: null,
1445
- binding: {
1446
- slot: s,
1447
- declaration: !0,
1448
- optional: !0
1449
- },
1450
- isReference: !1
1451
- } : {
1452
- ...i,
1453
- binding: {
1454
- slot: s,
1455
- declaration: !0
1456
- },
1457
- isReference: !1
1458
- };
1459
- };
1460
- if (o === "lambda") {
1461
- for (let e = 0; e < c - 1; e++) f(e, !0);
1462
- d[c - 1] && (d[c - 1] = a(d[c - 1]));
1463
- } else {
1464
- for (let e = 0; e + 1 < c; e += 2) d[e + 1] && (d[e + 1] = $(a(d[e + 1]), t)), f(e);
1465
- c % 2 == 1 && d[c - 1] && (d[c - 1] = a(d[c - 1]));
1466
- }
1467
- for (; n.length > l;) n.pop();
1468
- return {
1469
- ...e,
1470
- inputs: d,
1471
- binder: {
1472
- kind: o,
1473
- slots: u
1474
- }
1475
- };
1476
- })(e, o);
1477
- if (e.type === h.Function && typeof e.value == "string") {
1478
- let r = e.value.toUpperCase();
1479
- if (n.some((e) => e.key === r) && !t?.(e.value)) return i(_t(e));
1480
- }
1481
- if (n.length > 0 && e.isReference && e.value === ":" && e.inputs?.length === 2) {
1482
- let [t, r] = e.inputs;
1483
- if (Ct(t) && Ct(r)) {
1484
- let a = t.image.toUpperCase(), o = r.image.toUpperCase();
1485
- if (n.some((e) => e.key === a || e.key === o)) return i({
1486
- ...e,
1487
- inputs: [wt(t), wt(r)]
1488
- });
1489
- }
1490
- }
1491
- if (e.type === h.Named) {
1492
- let t = Q(e);
1493
- if (t !== void 0) {
1494
- let r = t.toUpperCase();
1495
- for (let i = n.length - 1; i >= 0; i--) {
1496
- if (n[i].key !== r) continue;
1497
- let a = {
1498
- ...e,
1499
- binding: { slot: n[i].slot },
1500
- isReference: !1
1501
- };
1502
- return t !== n[i].name && (a.value = {
1503
- ...e.value,
1504
- nameId: n[i].name
1505
- }), a;
1506
- }
1507
- }
1508
- return e;
1509
- }
1510
- let s = i(e);
1511
- if (s.type === h.Function && typeof s.value == "string" && (t?.(s.value)?.getName() ?? s.value).toUpperCase() === "ISOMITTED") {
1512
- let e = s.inputs;
1513
- if (e) {
1514
- let n;
1515
- for (let r = 0; r < e.length; r++) {
1516
- let i = e[r];
1517
- if (i?.binding && !i.binding.declaration && !0 !== i.rawFrameRead) {
1518
- (n ??= [...e])[r] = {
1519
- ...i,
1520
- rawFrameRead: !0
1521
- };
1522
- continue;
1523
- }
1524
- let a = $(i, t);
1525
- a !== i && ((n ??= [...e])[r] = a);
1526
- }
1527
- if (n) return {
1528
- ...s,
1529
- inputs: n
1530
- };
1531
- }
1532
- }
1533
- return s;
1534
- };
1535
- return a(e);
1536
- }
1537
- var Ct = (e) => {
1538
- if (e?.type !== h.Cell || e.image === void 0) return !1;
1539
- let t = e.value;
1540
- return t.rowIndex === -(2 ** 53 - 1) && !0 !== t.$colIndex && !t.scope;
1541
- }, wt = (e) => {
1542
- let t = u(e.image);
1543
- return b(t, e), t;
1544
- }, Tt = (e) => e?.type === h.Cell, Et = (e, t = null) => {
1545
- if (!e) return e;
1546
- let n = !1, r = (e) => {
1547
- if (n || !e) return;
1548
- let i = Z(e, t), a = e.inputs;
1549
- if (i && a) {
1550
- let e = i === "let" ? 2 : 1;
1551
- for (let t = 0; t < a.length - 1; t += e) if (Tt(a[t])) return void (n = !0);
1552
- }
1553
- if (a) for (let e = 0; e < a.length && !n; e++) r(a[e]);
1554
- };
1555
- if (r(e), !n) return e;
1556
- let i = null, a = w(e, (e) => {
1557
- if (e?.type !== h.Cell) return;
1558
- let t = e.value, n = e.image;
1559
- if (!0 === t?.$colIndex || !0 === t?.$rowIndex) return void (i ??= `'${n ?? "a reference"}' cannot be absolute here. A LET/LAMBDA name that is a cell reference makes every reference in the formula a name, and a name cannot contain '$'.`);
1560
- if (n === void 0) return;
1561
- let r = u(n);
1562
- b(r, e);
1563
- let a = t?.scope;
1564
- return a && (r.value.scope = a, r.value.scopeImage = t.scopeImage), r;
1565
- });
1566
- return i ?? a;
1567
- }, Dt = (e, t) => {
1568
- if (!e) return null;
1569
- let n = null, r = (e) => {
1570
- if (n || !e) return;
1571
- let i = Z(e, t);
1572
- i && ((e, t) => {
1573
- let r = t === "let" ? "LET" : "LAMBDA", i = e.inputs, a = i?.length ?? 0;
1574
- if (!i || a < 2) return;
1575
- if (t === "let" && a % 2 == 0) return void (n = `Wrong number of arguments for LET. Expected name/value pairs followed by a calculation, but got ${a}.`);
1576
- if (t === "lambda" && i[a - 1]?.type === h.Empty) return void (n = "LAMBDA has no calculation: the last argument is empty.");
1577
- let o = /* @__PURE__ */ new Set(), s = t === "let" ? 2 : 1, c = !1;
1578
- for (let e = 0; e < a - 1; e += s) {
1579
- let a = Q(i[e]);
1580
- if (a === void 0 && t === "lambda") a = gt(i[e]), a !== void 0 && (c = !0);
1581
- else if (a !== void 0 && c) return void (n = `Required name '${a}' cannot follow an optional name in ${r}.`);
1582
- if (a === void 0) return void (n = `Expected a name in ${r} argument ${e + 1}; a name cannot be the output of a formula.`);
1583
- if (a.includes(".")) return void (n = `Expected a name in ${r} argument ${e + 1}; a name cannot contain '.'.`);
1584
- let s = a.toUpperCase();
1585
- if (o.has(s)) return void (n = `Duplicate name '${a}' in ${r}.`);
1586
- o.add(s);
1587
- }
1588
- })(e, i);
1589
- let a = e.inputs;
1590
- if (a) for (let e = 0; e < a.length && !n; e++) r(a[e]);
1591
- };
1592
- return r(e), n;
1593
- };
1594
- function Ot(e, t, n, r, o) {
1595
- let s = r, c, l = () => (c === void 0 && (c = o && n ? t.bind(i.Table, "", { at: {
1596
- scope: n,
1597
- rowIndex: o.rowIndex,
1598
- colIndex: o.colIndex
1599
- } }) : null), c);
1600
- return w(e, (e, r, o = []) => {
1601
- let c, u = e.type;
1602
- if (u === h.Cell) {
1603
- let n = e.value;
1604
- if (n?.scope) {
1605
- let r = t.bind(i.Sheet, n.scope, s);
1606
- r !== null && (c ||= { ...e }, c.value = {
1607
- ...n,
1608
- scope: r
1609
- });
1610
- }
1611
- } else if (u === h.Named) {
1612
- let r = e.value;
1613
- if (r && !e.binding) {
1614
- let o = function(e, t, n, r) {
1615
- if (t.scope) {
1616
- let e = n.bind(i.Sheet, t.scope, r);
1617
- if (e === null || a(e)) return;
1618
- }
1619
- let o = n.bind(i.Table, t.nameId, { existing: !0 });
1620
- if (o === null) return;
1621
- let s = {
1622
- type: h.TableReference,
1623
- value: o,
1624
- inputs: null,
1625
- isReference: !0
1626
- };
1627
- b(s, e);
1628
- let c = t.scopeImage;
1629
- return typeof c == "string" && e.image !== void 0 && (s.image = c + e.image), s;
1630
- }(e, r, t, s);
1631
- if (o) return o;
1632
- let l = r.scope ? t.bind(i.Sheet, r.scope, s) : null, u = (l === null ? r.scope : a(l) ? l : t.resolve(i.Sheet, l)?.toString() ?? r.scope) ?? n, d = t.bind(i.NamedFormula, r.nameId, u ? { scope: u } : void 0);
1633
- d === null && l === null || (c ||= { ...e }, c.value = {
1634
- ...r,
1635
- nameId: d ?? r.nameId,
1636
- ...l === null ? void 0 : { scope: l }
1637
- });
1638
- }
1639
- } else if (u === h.Error) {
1640
- let n = e.value;
1641
- if (n?.scope) {
1642
- let r = t.bind(i.Sheet, n.scope, s);
1643
- r !== null && (c ||= { ...e }, c.value = {
1644
- ...n,
1645
- scope: r
1646
- });
1647
- }
1648
- } else if (u === h.TableReference) {
1649
- let n = e.value;
1650
- if (n) {
1651
- let r = t.bind(i.Table, n);
1652
- c ||= { ...e }, r !== null && (c.value = r);
1653
- } else if (typeof n == "string") {
1654
- let n = l();
1655
- if (n !== null && kt(e, t)) return {
1656
- ...e,
1657
- value: n
1658
- };
1659
- }
1660
- } else if (u === h.TableColumn) {
1661
- let n = e.value;
1662
- if (n) {
1663
- let r = V(o, h.TableReference), a = r?.value || (r ? l() ?? void 0 : void 0), s = t.bind(i.TableColumn, n, a ? { tableName: a } : void 0);
1664
- c ||= { ...e }, s !== null && (c.value = s);
1665
- }
1666
- } else if (u === h.Function) {
1667
- let n = e.value;
1668
- if (n) {
1669
- let r = t.bind(i.Function, n);
1670
- c ||= { ...e }, r !== null && (c.value = r);
1671
- }
1672
- }
1673
- return c;
1674
- });
1675
- }
1676
- function kt(e, t) {
1677
- let n = !0, r = e.inputs;
1678
- if (!r) return !0;
1679
- for (let e = 0; e < r.length && n; e++) w(r[e], (e) => {
1680
- e.type === h.TableColumn && t.resolve(i.TableColumn, e.value) === null && (n = !1);
1681
- });
1682
- return n;
1683
- }
1684
- function At(e, t) {
1685
- let n = null;
1686
- return w(e, (e) => {
1687
- if (n || e.type !== h.TableReference) return;
1688
- if (e.value === "") return void (n = "A structured reference without a table name must be in a table that has its columns.");
1689
- let r = e.value;
1690
- if (!t || typeof r != "string") return;
1691
- let a = t.resolve(i.Table, r)?.toString() ?? r;
1692
- t.bind(i.Table, a, { existing: !0 }) === null ? n = `There is no table named '${a}'.` : kt(e, t) || (n = "The table has no such column.");
1693
- }), n;
1694
- }
1695
- export { Ce as A, U as C, Ee as D, vt as E, xe as O, et as S, ke as T, rt as _, Qe as a, Xe as b, pt as c, ot as d, At as f, De as g, H as h, Ae as i, Se as j, we as k, ut as l, $e as m, yt as n, dt as o, ft as p, St as r, Dt as s, qe as t, st as u, Ot as v, Et as w, je as x, Oe as y };