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

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 (349) hide show
  1. package/THIRD-PARTY-NOTICES.md +172 -0
  2. package/browser/esm/{BMyDRQ716j79h_bH.mjs → -GEhXGMfNcWmHPby.mjs} +6 -6
  3. package/browser/esm/{B7aUIvgUjncMMD_i.mjs → 9WXf_BTKjW1cQisZ.mjs} +95 -94
  4. package/browser/esm/{PcHFjNzQsE54POri.mjs → B2SgIPPBX0wjzuq8.mjs} +1 -1
  5. package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → BC2RwlNwCdRywkoD.mjs} +1 -1
  6. package/browser/esm/{BpgskG1Er_lGQ_yS.mjs → BEqhm9xAUPiHUCFv.mjs} +1 -1
  7. package/browser/esm/BHgqi7KNrl7Vjr0W.mjs +348 -0
  8. package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → BJKH0tDRx2FeSWvt.mjs} +2 -2
  9. package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → BTgWtqdQoh2cB6DL.mjs} +1 -1
  10. package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → BVshV1iY3bcUH9_E.mjs} +1135 -1129
  11. package/browser/esm/{BFagR2JeWs74iAG3.mjs → BYQ63XU7JzB4_itX.mjs} +1 -1
  12. package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → Bax5aOzQkbHKXW_X.mjs} +239 -230
  13. package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → BiDGKhtzV6yIy66o.mjs} +45 -45
  14. package/browser/esm/BmYrWK5OmHRtgyqM.mjs +367 -0
  15. package/browser/esm/{ClPfI4lODvCece29.mjs → BoAlHgjPQ6mxb_oO.mjs} +74 -74
  16. package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → C0mjTq8lhrX3HiPa.mjs} +4328 -3166
  17. package/browser/esm/{nvU0ClAbf0g94YBK.mjs → C5j0IdwtYkWlOftv.mjs} +604 -596
  18. package/browser/esm/{DWNzqw7DUKwoxjri.mjs → CL84-iL2QeKlLzo5.mjs} +2 -2
  19. package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → CLkBe-6n-pStQhnz.mjs} +2 -2
  20. package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/CPzfhTPX2Y4dHX2p.mjs} +2 -2
  21. package/browser/esm/{Dlmig06rIo7cInRk.mjs → CSJuIjYUOE387FIP.mjs} +1 -1
  22. package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → Cdw0mGuoV3IU2LhR.mjs} +2 -2
  23. package/browser/esm/Ced5uyofOWHuL_Jy.mjs +114 -0
  24. package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → Ci_LJ4S_GvYX0STI.mjs} +1 -1
  25. package/browser/esm/{zlLuW405RSguy4Kn.mjs → CwygVKP_RXmne5Ot.mjs} +47 -47
  26. package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → D-mfK0noQrM2jZLT.mjs} +1 -1
  27. package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → D9SH_8v3FYCnxOFK.mjs} +1 -1
  28. package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → DPD8fop6az9HZNiK.mjs} +2 -2
  29. package/browser/esm/DW-MmlgMH87l-_cw.mjs +302 -0
  30. package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DctIlUsO78-OU2ht.mjs} +2 -2
  31. package/browser/esm/DdcKkVb4jM6Y_epY.mjs +184 -0
  32. package/browser/esm/{CHU6iu_WGlm7fLET.mjs → DfKzE0IY0TjaEIxG.mjs} +1 -1
  33. package/browser/esm/{C2VbEI_XVAoseAwa.mjs → DkloMquaR1pbZCER.mjs} +44 -43
  34. package/browser/esm/{C16ycKja6zG0crV_.mjs → Dz86-De57bv2VYIi.mjs} +19447 -16481
  35. package/browser/esm/{BtvLTTfSBdAKplVG.mjs → HApSgmV2FXRRwQac.mjs} +1 -1
  36. package/browser/esm/{CQYjO777cmAznUzK.mjs → IbVAQU4YqtFqLwYk.mjs} +1 -1
  37. package/browser/esm/index.mjs +823 -644
  38. package/browser/esm/mHQ95RAfxHzcUN2r.mjs +18 -0
  39. package/browser/esm/pm00uZZu_H3gxHFx.mjs +117 -0
  40. package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → quEvwgrEuOb0h3q-.mjs} +1926 -1298
  41. package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → zZngLMg6mg6nnNGX.mjs} +66 -66
  42. package/licenses/dependencies.txt +71 -1
  43. package/node/esm/{BqiexuA89caYnAPz.mjs → -K4Cek-bTUItkB_8.mjs} +1 -1
  44. package/node/esm/-b8yNV4v9qiq8EMY.mjs +117 -0
  45. package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → 1V-m67YHbxmg3xk2.mjs} +74 -74
  46. package/node/esm/{D_t5AUxSm7_icjzq.mjs → 4ROAfJC1mokmqubv.mjs} +1 -1
  47. package/node/esm/B89et7t3uRmtxk4v.mjs +115 -0
  48. package/node/esm/BKBkCBNGhMU0nQdY.mjs +372 -0
  49. package/node/esm/{OVfaSb506tNSIvbv.mjs → BQ2XqExomMceAjfe.mjs} +20822 -18373
  50. package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Bfg7qjCXCwXbzW3K.mjs} +1 -1
  51. package/node/esm/{D1TKBVmoKGAXf37B.mjs → BtMeAB_dqJnOfzJM.mjs} +2 -2
  52. package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Byc_bxU_MdjYtt0x.mjs} +1 -1
  53. package/node/esm/{CNCNJNg890KdgkWh.mjs → Bzrl292TNCK3Cpid.mjs} +1 -1
  54. package/node/esm/{De2IONBxQhz-Qbyh.mjs → C0P9zspoypRAj7yv.mjs} +1 -1
  55. package/node/esm/{CzXT00vrQa1_gvW9.mjs → C9gpMN3galHGZyoK.mjs} +1 -1
  56. package/node/esm/CKCG2peOkTq0gIIW.mjs +310 -0
  57. package/node/esm/{DUTskXCXref-IJnI.mjs → CWBS90g3Hz-kQDkY.mjs} +46 -46
  58. package/node/esm/{BIwObuhTJYf0jpUa.mjs → CoGSVnn-hNMtTEus.mjs} +2 -2
  59. package/node/esm/{CwePQwTILHHjGDkZ.mjs → CzrLqStvrcPE2-hb.mjs} +194 -185
  60. package/node/esm/{CCN5vD410obwdz38.mjs → D16EdlZG1hX5WUUK.mjs} +96 -95
  61. package/node/esm/{CDHdgJXH2vS71WMc.mjs → D1mDga2K5sjs8y07.mjs} +1 -1
  62. package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D2jtztjE6c23RKvZ.mjs} +1 -1
  63. package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → D9nRcWsYk3M82iD8.mjs} +1 -1
  64. package/node/esm/{yavzZOiZW_EjG9lE.mjs → DALYzTxZ9Ur9C69Q.mjs} +1 -1
  65. package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DF0nL7s01dp7n0Bx.mjs} +10 -10
  66. package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → DO5ldLqhTvIfPXLW.mjs} +3348 -2610
  67. package/node/esm/DQz8J8ci7EJdqbuB.mjs +351 -0
  68. package/node/esm/{BIRq1kT7lLRzns9t.mjs → DR2OQTKqqyIkZnse.mjs} +2 -2
  69. package/node/esm/{857CIBgQgGpnqrXk.mjs → DSTLPBgpsGW6qP9e.mjs} +73 -73
  70. package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DiXp7KSOZUSWXaZ5.mjs} +1 -1
  71. package/node/esm/{CZiqiay42tFTrLI4.mjs → DwvXHsycOQR219c7.mjs} +1 -1
  72. package/node/esm/{B21JjOLghRoDOrkx.mjs → Hc6B04OyVzHx2F5I.mjs} +38 -37
  73. package/node/esm/{Ct3h15sCus4Tgt6M.mjs → NkPNHsq2T3DXg76x.mjs} +561 -553
  74. package/node/esm/{B084DssTcdBheTp_.mjs → Nl_IIkO1jbk0s9i-.mjs} +4552 -3373
  75. package/node/esm/{D2KBymQJd1XhpeQD.mjs → OQT5lGqq8a4r5xNa.mjs} +1 -1
  76. package/node/esm/OTaaFGhF-k_iwobp.mjs +18 -0
  77. package/node/esm/{CdJHUJSBRHZoryPe.mjs → Z1elC_roIu7LhceZ.mjs} +53 -53
  78. package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/e3F3OVXCxLJrSukW.mjs} +2 -2
  79. package/node/esm/index.mjs +806 -625
  80. package/node/esm/{mFiBSM7XgBHV9AY7.mjs → suOBVUz-pca6ilJH.mjs} +1607 -1601
  81. package/package.json +8 -6
  82. package/resources/contents.json +108 -0
  83. package/resources/fonts/aptos-bold-italic.hinted.json +125 -0
  84. package/resources/fonts/aptos-bold-italic.metrics.json +221 -0
  85. package/resources/fonts/aptos-bold-italic.rows.json +8 -0
  86. package/resources/fonts/aptos-bold.hinted.json +125 -0
  87. package/resources/fonts/aptos-bold.metrics.json +221 -0
  88. package/resources/fonts/aptos-bold.rows.json +8 -0
  89. package/resources/fonts/aptos-display-bold-italic.hinted.json +125 -0
  90. package/resources/fonts/aptos-display-bold-italic.metrics.json +221 -0
  91. package/resources/fonts/aptos-display-bold-italic.rows.json +8 -0
  92. package/resources/fonts/aptos-display-bold.hinted.json +125 -0
  93. package/resources/fonts/aptos-display-bold.metrics.json +221 -0
  94. package/resources/fonts/aptos-display-bold.rows.json +8 -0
  95. package/resources/fonts/aptos-display-italic.hinted.json +124 -0
  96. package/resources/fonts/aptos-display-italic.metrics.json +221 -0
  97. package/resources/fonts/aptos-display-italic.rows.json +8 -0
  98. package/resources/fonts/aptos-display-regular.hinted.json +125 -0
  99. package/resources/fonts/aptos-display-regular.metrics.json +221 -0
  100. package/resources/fonts/aptos-display-regular.rows.json +8 -0
  101. package/resources/fonts/aptos-italic.hinted.json +125 -0
  102. package/resources/fonts/aptos-italic.metrics.json +221 -0
  103. package/resources/fonts/aptos-italic.rows.json +8 -0
  104. package/resources/fonts/aptos-narrow-bold-italic.hinted.json +125 -0
  105. package/resources/fonts/aptos-narrow-bold-italic.metrics.json +221 -0
  106. package/resources/fonts/aptos-narrow-bold-italic.rows.json +8 -0
  107. package/resources/fonts/aptos-narrow-bold.hinted.json +125 -0
  108. package/resources/fonts/aptos-narrow-bold.metrics.json +221 -0
  109. package/resources/fonts/aptos-narrow-bold.rows.json +8 -0
  110. package/resources/fonts/aptos-narrow-italic.hinted.json +125 -0
  111. package/resources/fonts/aptos-narrow-italic.metrics.json +221 -0
  112. package/resources/fonts/aptos-narrow-italic.rows.json +8 -0
  113. package/resources/fonts/aptos-narrow-regular.hinted.json +125 -0
  114. package/resources/fonts/aptos-narrow-regular.metrics.json +221 -0
  115. package/resources/fonts/aptos-narrow-regular.rows.json +8 -0
  116. package/resources/fonts/aptos-regular.hinted.json +125 -0
  117. package/resources/fonts/aptos-regular.metrics.json +221 -0
  118. package/resources/fonts/aptos-regular.rows.json +8 -0
  119. package/resources/fonts/arial-bold-italic.rows.json +0 -1
  120. package/resources/fonts/arial-bold.rows.json +0 -1
  121. package/resources/fonts/arial-italic.rows.json +0 -1
  122. package/resources/fonts/arial-regular.rows.json +0 -1
  123. package/resources/fonts/calibri-bold-italic.rows.json +0 -1
  124. package/resources/fonts/calibri-bold.rows.json +0 -1
  125. package/resources/fonts/calibri-italic.rows.json +0 -1
  126. package/resources/fonts/calibri-regular.rows.json +0 -1
  127. package/resources/fonts/cambria-bold-italic.rows.json +0 -1
  128. package/resources/fonts/cambria-bold.rows.json +0 -1
  129. package/resources/fonts/cambria-italic.rows.json +0 -1
  130. package/resources/fonts/cambria-regular.rows.json +0 -1
  131. package/resources/fonts/contents.json +240 -0
  132. package/resources/fonts/courier-new-bold-italic.rows.json +0 -1
  133. package/resources/fonts/courier-new-bold.rows.json +0 -1
  134. package/resources/fonts/courier-new-italic.rows.json +0 -1
  135. package/resources/fonts/courier-new-regular.rows.json +0 -1
  136. package/resources/fonts/times-new-roman-bold-italic.rows.json +0 -1
  137. package/resources/fonts/times-new-roman-bold.rows.json +0 -1
  138. package/resources/fonts/times-new-roman-italic.rows.json +0 -1
  139. package/resources/fonts/times-new-roman-regular.rows.json +0 -1
  140. package/resources/locales/de/model.msg.json +12 -2
  141. package/resources/locales/en/model.msg.json +13 -2
  142. package/types/scripting-api.json +10638 -10446
  143. package/types/scripting-enums.json +20 -1
  144. package/types/scripting.d.ts +1536 -477
  145. package/types/src/.generated/wasm/sdk.d.ts +5 -27
  146. package/types/src/address/AddressUtils.d.ts +8 -0
  147. package/types/src/address/_SheetNameQuoteChars.d.ts +3 -0
  148. package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
  149. package/types/src/anomalies/_FocusTable.d.ts +5 -0
  150. package/types/src/{sheet/_AnomalyFormulaChecks.d.ts → anomalies/_FormulaChecks.d.ts} +10 -2
  151. package/types/src/{sheet/_AnomalyLabelChecks.d.ts → anomalies/_LabelChecks.d.ts} +1 -1
  152. package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
  153. package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
  154. package/types/src/calculation/Calculation.d.ts +61 -98
  155. package/types/src/calculation/ExternalBookBindings.d.ts +2 -29
  156. package/types/src/calculation/ICalculation.d.ts +96 -9
  157. package/types/src/calculation/NamedFormulaCollection.d.ts +110 -10
  158. package/types/src/calculation/TokenType.d.ts +0 -10
  159. package/types/src/calculation/_CloneBoundary.d.ts +0 -24
  160. package/types/src/calculation/_FormulaToolkit.d.ts +0 -5
  161. package/types/src/calculation/compiler/ASTTypes.d.ts +6 -15
  162. package/types/src/calculation/compiler/CompilerUtils.d.ts +0 -227
  163. package/types/src/calculation/compiler/FormulaLexer.d.ts +0 -8
  164. package/types/src/calculation/compiler/FormulaParser.d.ts +0 -61
  165. package/types/src/calculation/compiler/ParserUtils.d.ts +0 -24
  166. package/types/src/calculation/compiler/Types.d.ts +1 -45
  167. package/types/src/calculation/engine/CalcBackend.d.ts +83 -127
  168. package/types/src/calculation/engine/index.d.ts +0 -8
  169. package/types/src/calculation/executor/CalcExecutor.d.ts +50 -116
  170. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +47 -12
  171. package/types/src/calculation/executor/CircularReference.d.ts +0 -17
  172. package/types/src/calculation/executor/_BlockOrder.d.ts +29 -0
  173. package/types/src/calculation/executor/_WhatIf.d.ts +31 -0
  174. package/types/src/calculation/formula/FormulaBlock.d.ts +4 -31
  175. package/types/src/calculation/formula/FormulaRecordView.d.ts +0 -15
  176. package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -12
  177. package/types/src/calculation/formula/LambdaValue.d.ts +0 -15
  178. package/types/src/calculation/formula/TokenUtils.d.ts +1 -8
  179. package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
  180. package/types/src/calculation/grid/CalcGrid.d.ts +8 -64
  181. package/types/src/calculation/grid/CalcGridBackend.d.ts +12 -35
  182. package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -15
  183. package/types/src/calculation/grid/CalcGridUtils.d.ts +21 -23
  184. package/types/src/calculation/grid/ICalcGrid.d.ts +28 -109
  185. package/types/src/calculation/grid/_CalcRequest.d.ts +17 -33
  186. package/types/src/calculation/spatial/CircularEntry.d.ts +0 -10
  187. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +54 -82
  188. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -3
  189. package/types/src/calculation/state/CalcNode.d.ts +0 -1
  190. package/types/src/calculation/state/CalcScope.d.ts +29 -9
  191. package/types/src/calculation/state/CalcState.d.ts +19 -9
  192. package/types/src/calculation/state/CalculationContext.d.ts +32 -38
  193. package/types/src/calculation/state/DeferredCalls.d.ts +207 -0
  194. package/types/src/calculation/state/IContextContainer.d.ts +19 -55
  195. package/types/src/calculation/state/_KeepBlanks.d.ts +5 -0
  196. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +52 -33
  197. package/types/src/calculation/state/_WhatIfLayer.d.ts +77 -0
  198. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +0 -42
  199. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +0 -6
  200. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +0 -12
  201. package/types/src/calculation/symbol/SymbolRegistry.d.ts +0 -9
  202. package/types/src/calculation/toolkit/index.d.ts +0 -8
  203. package/types/src/cell/ICell.d.ts +59 -54
  204. package/types/src/cellControl/CellControl.d.ts +67 -0
  205. package/types/src/cellControl/CellControlCollection.d.ts +29 -0
  206. package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
  207. package/types/src/cellControl/ICellControl.d.ts +99 -0
  208. package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
  209. package/types/src/cellControl/index.d.ts +4 -0
  210. package/types/src/cellRange/ICellRange.d.ts +226 -67
  211. package/types/src/cellRange/ICellRanges.d.ts +4 -3
  212. package/types/src/chart/Chart.d.ts +0 -16
  213. package/types/src/chart/_ChartParts.d.ts +0 -39
  214. package/types/src/chart/_ChartSource.d.ts +0 -14
  215. package/types/src/chart/createChart.d.ts +1 -1
  216. package/types/src/chart/kinds/ChartKind.d.ts +4 -4
  217. package/types/src/chart/kinds/_Placeholder.d.ts +0 -1
  218. package/types/src/chart/layout/ChartLayout.d.ts +5 -1
  219. package/types/src/chart/layout/TextMeasurer.d.ts +0 -20
  220. package/types/src/chart/layout/_LayoutUtils.d.ts +0 -16
  221. package/types/src/chart/math/BoxStats.d.ts +0 -8
  222. package/types/src/chart/math/DateUnitCalcs.d.ts +0 -10
  223. package/types/src/chart/math/Histogram.d.ts +0 -17
  224. package/types/src/chart/math/OrdUnitCalcs.d.ts +0 -53
  225. package/types/src/chart/math/Treemap.d.ts +0 -15
  226. package/types/src/chart/math/Trendlines.d.ts +0 -8
  227. package/types/src/chart/math/UnitCalcs.d.ts +0 -22
  228. package/types/src/chart/model/_Edits.d.ts +0 -33
  229. package/types/src/chart/model/_Grouping.d.ts +0 -25
  230. package/types/src/chart/model/_Inference.d.ts +0 -18
  231. package/types/src/chart/model/_NewChart.d.ts +0 -41
  232. package/types/src/chart/model/_OfPie.d.ts +0 -7
  233. package/types/src/chart/resolve/_LegacyStyles.d.ts +0 -20
  234. package/types/src/chart/resolve/_Resolve.d.ts +3 -12
  235. package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -8
  236. package/types/src/collections/ISparseGrid.d.ts +11 -2
  237. package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
  238. package/types/src/collections/SparseGrid.d.ts +3 -8
  239. package/types/src/collections/_GridUtils.d.ts +0 -10
  240. package/types/src/comment/_NoteBox.d.ts +0 -15
  241. package/types/src/condition/AnchoredConditional.d.ts +3 -25
  242. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +0 -49
  243. package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +0 -10
  244. package/types/src/condition/ICondition.d.ts +2 -2
  245. package/types/src/condition/_ConditionUtils.d.ts +0 -38
  246. package/types/src/externalBook/ExternalBookCollection.d.ts +0 -15
  247. package/types/src/externalBook/ExternalBookName.d.ts +2 -3
  248. package/types/src/externalBook/IExternalBook.d.ts +16 -18
  249. package/types/src/fetch/Fetcher.d.ts +15 -0
  250. package/types/src/fetch/IFetcher.d.ts +48 -0
  251. package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
  252. package/types/src/fetch/index.d.ts +3 -0
  253. package/types/src/fill/PaintUtils.d.ts +3 -1
  254. package/types/src/font/AdvanceTable.d.ts +16 -42
  255. package/types/src/font/IFont.d.ts +32 -9
  256. package/types/src/font/TableFileAdvanceBuilder.d.ts +6 -3
  257. package/types/src/font/_FontUtils.d.ts +0 -8
  258. package/types/src/font/_StandIns.d.ts +33 -0
  259. package/types/src/hyperlink/IHyperlink.d.ts +10 -0
  260. package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
  261. package/types/src/index.d.ts +2 -1
  262. package/types/src/io/IWorkbookIO.d.ts +3 -3
  263. package/types/src/io/WorkbookOrigin.d.ts +2 -2
  264. package/types/src/license/LicenseManager.d.ts +2 -1
  265. package/types/src/license/_Utils.d.ts +4 -3
  266. package/types/src/license/details.d.ts +3 -1
  267. package/types/src/license/keys.d.ts +6 -0
  268. package/types/src/license/license-key.d.ts +15 -33
  269. package/types/src/license/token.d.ts +55 -0
  270. package/types/src/named/INamedCollection.d.ts +36 -0
  271. package/types/src/named/NamedCollection.d.ts +18 -0
  272. package/types/src/picture/IPicture.d.ts +45 -0
  273. package/types/src/picture/Picture.d.ts +12 -0
  274. package/types/src/pivot/PivotTable.d.ts +0 -7
  275. package/types/src/primitives/AsyncValue.d.ts +46 -0
  276. package/types/src/primitives/PrimitiveUtils.d.ts +1 -110
  277. package/types/src/primitives/Range.d.ts +0 -60
  278. package/types/src/primitives/ScalarCollation.d.ts +0 -106
  279. package/types/src/primitives/stats/AggregateStats.d.ts +0 -19
  280. package/types/src/print/PageLayout.d.ts +0 -6
  281. package/types/src/reference/ReferenceUtils.d.ts +4 -2
  282. package/types/src/resource/IResource.d.ts +9 -0
  283. package/types/src/resource/IResourceCollection.d.ts +4 -0
  284. package/types/src/resource/Resource.d.ts +2 -0
  285. package/types/src/resource/_AddResource.d.ts +13 -0
  286. package/types/src/richData/CellImage.d.ts +95 -0
  287. package/types/src/richData/Hyperlink.d.ts +49 -0
  288. package/types/src/richData/IRichDataCollection.d.ts +76 -0
  289. package/types/src/richData/IRichDataKind.d.ts +55 -11
  290. package/types/src/richData/RichArray.d.ts +42 -0
  291. package/types/src/richData/RichDataCollection.d.ts +23 -0
  292. package/types/src/richData/RichDataRegistry.d.ts +52 -14
  293. package/types/src/richData/RichDataValues.d.ts +20 -0
  294. package/types/src/richData/RichRecord.d.ts +68 -0
  295. package/types/src/richData/RichText.d.ts +5 -5
  296. package/types/src/richData/index.d.ts +6 -0
  297. package/types/src/scripting/FunctionArguments.d.ts +17 -1
  298. package/types/src/scripting/FunctionCollection.d.ts +8 -0
  299. package/types/src/scripting/Scripts.d.ts +10 -0
  300. package/types/src/scripting/TypedFunction.d.ts +2 -109
  301. package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
  302. package/types/src/sheet/IWorksheet.d.ts +26 -22
  303. package/types/src/sheet/NamedCellRange.d.ts +0 -21
  304. package/types/src/sheet/SheetCell.d.ts +25 -3
  305. package/types/src/sheet/SheetRange.d.ts +8 -2
  306. package/types/src/sheet/SheetRanges.d.ts +2 -2
  307. package/types/src/sheet/Worksheet.d.ts +117 -104
  308. package/types/src/sheet/_DelimitedText.d.ts +13 -0
  309. package/types/src/sheet/_IgnoredErrors.d.ts +0 -12
  310. package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
  311. package/types/src/sheet/_ScalarListFactory.d.ts +46 -17
  312. package/types/src/sheet/_SheetCoords.d.ts +0 -7
  313. package/types/src/sheet/_SheetFilterUtils.d.ts +0 -8
  314. package/types/src/sheet/_SheetMutations.d.ts +4 -1
  315. package/types/src/sheet/_SheetStateReader.d.ts +0 -10
  316. package/types/src/sheet/_SheetStateTypes.d.ts +23 -14
  317. package/types/src/sheet/_SheetUtils.d.ts +1 -1
  318. package/types/src/sheet/style/_RowLine.d.ts +32 -0
  319. package/types/src/sheet/style/_StyleUtils.d.ts +6 -14
  320. package/types/src/sheetView/_SheetViewUtils.d.ts +0 -1
  321. package/types/src/slicer/_BuiltInSlicerStyles.d.ts +0 -5
  322. package/types/src/style/ICellStyle.d.ts +4 -0
  323. package/types/src/table/AnchoredTable.d.ts +0 -147
  324. package/types/src/text/TextFrame.d.ts +4 -1
  325. package/types/src/text/TextStacked.d.ts +0 -24
  326. package/types/src/text/TextWrapper.d.ts +3 -5
  327. package/types/src/text/_LineBox.d.ts +24 -0
  328. package/types/src/text/_TextUtils.d.ts +5 -2
  329. package/types/src/text/_TextWrapperFallback.d.ts +2 -1
  330. package/types/src/wasm/sdkWasm.d.ts +1 -1
  331. package/types/src/workbook/IWorkbook.d.ts +40 -1
  332. package/types/src/workbook/Workbook.d.ts +25 -13
  333. package/types/src/workbook/WorkbookRanges.d.ts +1 -1
  334. package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
  335. package/browser/esm/BLoUBId2xZpXAK_H.mjs +0 -698
  336. package/browser/esm/C5E6zSGAALWf61n4.mjs +0 -199
  337. package/browser/esm/S2dNNx1a5ydRnARM.mjs +0 -367
  338. package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
  339. package/browser/esm/gssVX_FH1XFN-twD.mjs +0 -210
  340. package/node/esm/BrCKGFRsX_ezFJ4B.mjs +0 -811
  341. package/node/esm/DOU54VsOjG-m-NyQ.mjs +0 -210
  342. package/node/esm/Db0v7zXNnyjBIjjI.mjs +0 -372
  343. package/node/esm/Df1bL6VFvrqIdSLB.mjs +0 -40
  344. package/node/esm/DrTZbfemSLq2mseG.mjs +0 -111
  345. package/types/src/dataTable/DataTable.d.ts +0 -67
  346. package/types/src/dataTable/DataTableCollection.d.ts +0 -19
  347. package/types/src/dataTable/IDataTable.d.ts +0 -99
  348. package/types/src/dataTable/IDataTableCollection.d.ts +0 -18
  349. package/types/src/dataTable/index.d.ts +0 -6
@@ -5,19 +5,6 @@ import { FormulaRecord, FormulaImager } from '../formula';
5
5
  import { ICalculation } from '../ICalculation';
6
6
  import { NamedReference } from '../Types';
7
7
  import { ICalcGrid } from './ICalcGrid';
8
- /**
9
- * A call on a grid, as the service's channel holds it while the engine is `Starting`
10
- * (DESIGN-CALC-SERVICE §4, §7.2): the verb and its arguments, applied in send order once the
11
- * engine is up. The snapshot it was made at rides in its options (`commitId`, `cloneKey`).
12
- *
13
- * @remarks
14
- * Not part of {@link ICalcGrid}: a caller sees the verbs and their promises. This is what the
15
- * in-process channel holds in place of a worker port's queue, and what the clone boundary audits
16
- * (plan step 6): a held call carries what the verb's arguments carry, which is what a proxy
17
- * would post.
18
- *
19
- * @internal Deliberately not exported from the barrel.
20
- */
21
8
  export type CalcRequest =
22
9
  /**
23
10
  * Make the engine's grid for a model grid, from what the model says it is. The grid's first
@@ -166,15 +153,13 @@ export type CalcRequest =
166
153
  }
167
154
  /**
168
155
  * The graph around cells of this grid, answered in the response (`ICalcGrid.GraphNeighbors`,
169
- * cells in calc currency). A question. `asName` walks the defined name this grid holds the body
170
- * of instead: its own precedents or dependents, cells and names.
156
+ * cells in calc currency). A question.
171
157
  */
172
158
  | {
173
159
  type: 'graph';
174
160
  kind: 'precedents' | 'dependents';
175
161
  direct: boolean;
176
- coords?: IRange.Coords;
177
- asName?: boolean;
162
+ coords: IRange.Coords;
178
163
  }
179
164
  /** Whether the formula at a cell is volatile, answered in the response. A question. */
180
165
  | {
@@ -186,15 +171,7 @@ export type CalcRequest =
186
171
  | {
187
172
  type: 'setBody';
188
173
  body: ICalcGrid.BodyOptions;
189
- }
190
- /**
191
- * The sheet list as its owner holds it when the message is sent - every sheet's grid id and
192
- * name, in tab order - for the engine's replica (DESIGN-CALC-SERVICE §8). A message of the
193
- * service, not of a grid: the channel holds it in order with the grids' requests, which is what
194
- * lets a seed sent before a rename compile against the names it was sent under. The owner tells
195
- * a sheet before any grid that names it seeds (`Calculation._setSheets`).
196
- */
197
- | {
174
+ } | {
198
175
  type: 'sheets';
199
176
  sheets: readonly (readonly [id: string, name: string | null, gridless?: boolean])[];
200
177
  options?: ICalcGrid.RequestOptions;
@@ -215,6 +192,18 @@ export type CalcRequest =
215
192
  changes: readonly (readonly [id: string, name: NameSymbols | null])[];
216
193
  options?: ICalcGrid.RequestOptions;
217
194
  }
195
+ /**
196
+ * The graph around a defined name - its precedents or dependents, cells in calc currency and
197
+ * names - answered in the response (`ICalcGrid.GraphNeighbors`). A question of the service, not
198
+ * of the name's grid: its readers are found by its id, so a name that has not compiled is asked
199
+ * without making it a grid.
200
+ */
201
+ | {
202
+ type: 'nameGraph';
203
+ nameId: string;
204
+ kind: 'precedents' | 'dependents';
205
+ direct: boolean;
206
+ }
218
207
  /**
219
208
  * A nested savepoint of the model rolled back inside an operation that goes on: what the requests
220
209
  * made under it did goes with it. After them in the channel, so it undoes exactly those.
@@ -255,13 +244,6 @@ export interface CalcGridSpec {
255
244
  export type TableSymbols = readonly [name: string, columns: readonly (readonly [id: string, name: string])[]];
256
245
  /** A defined name as the engine's replica holds it: its name, and the id of the sheet it is scoped to. */
257
246
  export type NameSymbols = readonly [name: string, scopeId: string | null];
258
- /**
259
- * What crosses back (DESIGN-CALC-SERVICE §8): {@link ICalcGrid.Results} with the formula half as
260
- * records - data, since only data crosses. The facade images each record into the
261
- * {@link IFormulaBlockView} the model reads ({@link imageResponse}) before the results reach it.
262
- *
263
- * @internal Deliberately not exported from the barrel.
264
- */
265
247
  export type CalcResponse = Omit<ICalcGrid.Results, 'formulaInserts'> & {
266
248
  formulaInserts?: ISpatialMap.Entry<FormulaRecord>[];
267
249
  /**
@@ -287,6 +269,8 @@ export type GridRequest = Exclude<CalcRequest, {
287
269
  type: 'tables';
288
270
  } | {
289
271
  type: 'names';
272
+ } | {
273
+ type: 'nameGraph';
290
274
  } | {
291
275
  type: 'rollback';
292
276
  } | {
@@ -1,14 +1,4 @@
1
1
  import { ICalculation } from '../ICalculation';
2
- /**
3
- * What a sheet's circular index says about a cell (DESIGN-CIRCULAR-CALC.md §7.2): which
4
- * reference cycle it belongs to, and whether it is in the cycle or merely downstream of it.
5
- *
6
- * @remarks
7
- * The value stays what it is (`0`, Excel's answer with iterative calculation off); this is
8
- * metadata beside it, the way `SpillEntry` marks a spill zone. Entries are interned per
9
- * `(cycle, kind)` by the executor, so equal payloads are the same object and adjacent cells of
10
- * one cycle coalesce into one region — and a region's payload IS the cycle, no id to look up.
11
- */
12
2
  export interface CircularEntry {
13
3
  /** The cycle; one live object per cycle, shared by every cell in it or downstream of it. */
14
4
  readonly cycle: ICalculation.ICircularReference;
@@ -28,21 +28,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
28
28
  */
29
29
  ref: IRange.Coords;
30
30
  formula: IFormulaBlock | null;
31
- /**
32
- * The block's nodes, DENSE - one per cell - for a block the pass evaluates cell by cell; `null`
33
- * for a block that shares one answer over its blank region (PLAN-WATCHES-BLANK-AWARE §4c), which
34
- * keeps its nodes in {@link _nodes} instead, and `null` while nothing has touched the block.
35
- * Never indexed from outside: {@link nodeAt}, {@link nodeAtOrNull}, {@link forEachNodeIn},
36
- * {@link mintNodesIn} and {@link forEachNode} are the reads, and they are the same calls for
37
- * either shape.
38
- *
39
- * @remarks
40
- * Nodes are runtime state, not the formula: they exist from the first touch ({@link nodeAt},
41
- * {@link mintNodesIn}) and are dropped when the block leaves its map ({@link release}). A block
42
- * that nothing has touched, or that was released, holds no node for any cell, which the executor
43
- * reads as "never collected: a value". A superseded block is still held by every earlier
44
- * commit's map, so what it keeps is what the history keeps; a restore mints again on demand.
45
- */
46
31
  calcs: CalcNode[][] | null;
47
32
  /**
48
33
  * A gated block's nodes, keyed by cell. **A node exists only where its cell has been touched**
@@ -75,42 +60,16 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
75
60
  */
76
61
  registeredPrecedents: ISpatialMap.Entry<any>[] | null;
77
62
  /**
78
- * `true` when {@link ref} is a synthetic anchor rather than a position in a real grid — a named
79
- * formula's body (stored at (0,0) in its virtual grid) or the editor's temporary formula.
80
- *
81
- * @remarks
82
- * A **relative** reference is stored as an offset from `ref`, so on these blocks its absolute
83
- * position (`ref + offset`) is fiction: there is no cell it names, and nothing to compare against
84
- * a shift boundary. Structural change must therefore leave relative endpoints alone — the offset
85
- * IS the definition. Measured against Excel: a relative name's `RefersTo` never changes under
86
- * insert/delete/move, while an absolute one always does (`$`-fixed endpoints carry a real
87
- * coordinate that owes nothing to the anchor, so they shift normally on these blocks too).
88
- *
89
- * Deliberately NOT "is a named body". Anything holding a formula at a synthetic anchor wants the
90
- * same treatment, and the shift code should not have to know what a name is.
91
- *
92
- * A calculation pass never evaluates such a block: its anchor is no cell, so there is nothing
93
- * to write an answer to, and whatever reads the body runs it inline at its own position. It is
94
- * evaluated on demand only (`ICalcGrid.evaluateAt`), and `isVolatileAt` answers for it from the
95
- * formula text alone, there being nothing a pass registered (`CalcGridBackend._isVolatileNow`).
96
- *
97
- * Required at construction rather than defaulted: the block is immutable and re-minted on every
98
- * reference rewrite, so an unthreaded copy would silently revert to `false` on the first
99
- * `setReferenceAt` — which is exactly what a shift performs.
63
+ * This block is the one a seed loaded, and what its cells show came with it. A write replaces
64
+ * the block, so a block that is `true` has not been edited since.
100
65
  */
101
- readonly unanchored: boolean;
66
+ fromLoad: boolean;
102
67
  /**
103
- * `true` when every cell of this block is its own 1x1 array-entered formula — the grid's
104
- * {@link ICalcGrid.isArrayFirstCell}, read once at construction.
105
- *
106
- * @remarks
107
- * Excel's rule for a conditional-format formula (DESIGN-LIFT-AND-DEMAND §2): the whole tree is
108
- * array mode (`CalculationContext.isImplicitIntersect`), the tree is evaluated under a first-cell
109
- * demand so a lift builds only `[0,0]` ({@link IFormulaBlock.demandFirstCell}), and the commit
110
- * keeps `[0,0]` of a result that is still a range. Every cell therefore stores a scalar, which
111
- * is what lets the blank region share one answer. No extent is recorded per node: the block is
112
- * a property of the grid, and a sparse block stays sparse.
68
+ * A cell of this block was loaded marked to calculate on load (`JSON.volatile`, xlsx `ca`), which
69
+ * for a call is asking its source: how a call still working at save picks up where it left off.
113
70
  */
71
+ calcOnLoad: boolean;
72
+ readonly unanchored: boolean;
114
73
  readonly arrayFirstCell: boolean;
115
74
  /**
116
75
  * How many static precedent edges each of this block's cells has — the same count at every
@@ -145,12 +104,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
145
104
  protected _scratchCoords: IRange.FixableCoords[] | null;
146
105
  protected _scratchRow: number;
147
106
  protected _scratchCol: number;
148
- /**
149
- * Blank-aware evaluation (PLAN-WATCHES-BLANK-AWARE §4): the block's touched windows, cached per
150
- * collection ({@link getTouched}), and what the pass decided about the blank region's
151
- * representative. Per block INSTANCE — a block is re-minted on every edit, shift and split, so
152
- * none of this survives a change to the block, and none of it has to.
153
- */
154
107
  protected _touched: TouchedWindows | null;
155
108
  protected _touchedCycleId: number;
156
109
  protected _touchedMarkId: number;
@@ -200,14 +153,17 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
200
153
  * of that pass only.
201
154
  */
202
155
  blankFallbackCycleId: number;
156
+ uncalculated: boolean;
203
157
  /**
204
- * Loaded with cells that carried no cached value (`CalcGridBackend._seedNow`'s repair). Such a cell
205
- * has never been evaluated, and it was not ENTERED either, so Excel gives it no entry
206
- * evaluation: joining a cycle, it starts the sweeps from `""` (DESIGN-CIRCULAR-CALC §2.4).
207
- * Read only where the grid holds nothing for the cell — once evaluated, the value is the start.
208
- * Carried through the rebuilds that keep the nodes (shift, split, merge), not by a copy.
158
+ * An evaluation of some cell of this block read its position, or something else of the cell's
159
+ * own - `ROW()`, `ROW(A5)`, `CELL("address", A5)`, `FORMULATEXT(A5)` (`CalcScope.positionRead`,
160
+ * `CalcScope.perCellRead`). The text cannot tell (`collectBlankCacheable` in the compiler says
161
+ * why), so it is learned as the block runs and kept: a block that moves with such a read answers
162
+ * differently at its new cells, where one without answers there as it did
163
+ * (`CalcGridBackend._shiftNow`). Carried through the rebuilds that keep the nodes, like
164
+ * {@link uncalculated}.
209
165
  */
210
- uncalculated: boolean;
166
+ positionRead: boolean;
211
167
  constructor(coords: IRange.Coords, gridId: string | null, formula: IFormulaBlock | null, container: IContextContainer, unanchored: boolean, nodes?: FormulaSpatialValue.NodeSource[]);
212
168
  /** Every source block's nodes, at this block's cells - see {@link FormulaSpatialValue.NodeSource}. */
213
169
  getNodeSource(): FormulaSpatialValue.NodeSource[];
@@ -232,6 +188,11 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
232
188
  protected _mintDense(): CalcNode[][];
233
189
  /** The static edges a fresh node of this block stores at a cell - what {@link _createCalcs} gives every cell. */
234
190
  protected _freshPrecedents(row: number, col: number): CalcNode['precedents'];
191
+ /**
192
+ * Reads the static edges again, for when a name the formula mentions has gained a body: a name
193
+ * contributes its body's cells. The nodes keep everything else they hold.
194
+ */
195
+ refreshPrecedents(): void;
235
196
  /**
236
197
  * Drops the nodes. Called as the block leaves its map, so the maps of earlier commits, which
237
198
  * still hold it, do not hold a generation of nodes with it. The anchor stays (see
@@ -261,17 +222,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
261
222
  * is the block's shared buffer — see {@link _scratch} for how long it stays valid.
262
223
  */
263
224
  getPrecedentsAt(row: number, col: number): (IRange.Coords | FormulaError.Known)[];
264
- /**
265
- * Whether the pass may evaluate ONE cell of this block's blank region and share its answer with
266
- * the rest (PLAN-WATCHES-BLANK-AWARE §4) — the block-level gate over the formula's compile-time
267
- * one ({@link isBlankCacheable}).
268
- *
269
- * @remarks
270
- * A template is the shape the touched predicate needs (one relative edge per reference, the
271
- * same at every cell); an array-entered block has its own fitted write; a one-cell block has
272
- * nothing to share. The two pass-side verdicts — {@link blankRefused}, {@link blankFallbackCycleId}
273
- * — close the gate after the fact.
274
- */
275
225
  isBlankAware(cycleId: number): boolean;
276
226
  /**
277
227
  * The block's touched windows for one collection — computed on first ask, from the grids its
@@ -341,22 +291,39 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
341
291
  /** A fresh node for a cell of this block. */
342
292
  protected _newNode(cellRow: number, cellCol: number, gridId: string | null, cellPrecedents: CalcNode['precedents']): CalcNode;
343
293
  /**
344
- * The static edges a cloned or minted node of a non-templated block stores; `null` under a
345
- * template. The top-left's answer doubles as `paramLength`, so it is resolved once per clone.
294
+ * The static edges a taken or minted node of a non-templated block stores; `null` under a
295
+ * template. The top-left's answer doubles as `paramLength`, so it is resolved once per take.
346
296
  */
347
- protected _clonePrecedents(cellRow: number, cellCol: number, topLeft: CalcNode['precedents']): CalcNode['precedents'];
297
+ protected _takePrecedents(cellRow: number, cellCol: number, topLeft: CalcNode['precedents']): CalcNode['precedents'];
348
298
  /**
349
- * `original` re-minted as this block's node for (`cellRow`, `cellCol`): the same value, promise
350
- * and cycle state, fresh slots and stamps - a new position, so nothing that described the old
351
- * one is kept.
299
+ * Takes the sources' nodes as this block's - see {@link FormulaSpatialValue.NodeSource}.
300
+ *
301
+ * @remarks
302
+ * The nodes are MOVED, not copied. A node is reachable by identity from outside its block - a
303
+ * deferred call's owner, a cycle member's `cycleNext`, the volatile roster - and the moved node
304
+ * is the live one, so those stay right with no fix-up. Each source is then released: a block
305
+ * whose nodes left it must not answer for them to a restore. A caller with another block still
306
+ * to take from the same source passes `releaseSources` false and releases it itself
307
+ * ({@link getSplit}).
308
+ */
309
+ protected _adopt(sources: FormulaSpatialValue.NodeSource[], releaseSources: boolean): void;
310
+ /**
311
+ * `node` re-seated as this block's node for (`cellRow`, `cellCol`): the same object, with fresh
312
+ * slots and stamps - a new position, so nothing that described the old one is kept.
352
313
  */
353
- protected _cloneNode(original: CalcNode, cellRow: number, cellCol: number, gridId: string | null | undefined, cellPrecedents: CalcNode['precedents']): CalcNode;
314
+ protected _adoptNode(node: CalcNode, cellRow: number, cellCol: number, cellPrecedents: CalcNode['precedents']): CalcNode;
315
+ /**
316
+ * A copy of `node` as this block's node for (`cellRow`, `cellCol`): the same value and cycle
317
+ * state, fresh slots and stamps. For the anchor a {@link release} keeps once the node itself has
318
+ * moved to another block; a live node is never copied, it is adopted.
319
+ */
320
+ protected _copyNode(node: CalcNode, cellRow: number, cellCol: number): CalcNode;
354
321
  /** The source node for this block's cell (`i`, `j`), whichever source holds it; `null` for none. */
355
322
  protected _sourceNodeAt(sources: FormulaSpatialValue.NodeSource[], i: number, j: number): CalcNode | null;
356
- /** A dense node array over this block, each cell cloned from its source node or minted fresh. */
357
- protected _cloneDense(sources: FormulaSpatialValue.NodeSource[], gridId: string | null | undefined): CalcNode[][];
358
- /** This block's sparse nodes: every source node whose cell lands inside the block, cloned there. */
359
- protected _cloneSparse(sources: FormulaSpatialValue.NodeSource[], gridId: string | null | undefined): void;
323
+ /** A dense node array over this block: each source node taken, and a fresh node where no source has one. */
324
+ protected _takeDense(sources: FormulaSpatialValue.NodeSource[]): CalcNode[][];
325
+ /** This block's sparse nodes: every source node whose cell lands inside the block, taken. */
326
+ protected _takeSparse(sources: FormulaSpatialValue.NodeSource[]): void;
360
327
  /**
361
328
  * @param coords The extent to serialize as. Defaults to the block's own; a caller that has
362
329
  * coalesced adjacent equal blocks passes the merged extent, whose anchor is this block's.
@@ -428,6 +395,8 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
428
395
  getReferencedSymbolIds(): string[];
429
396
  /** {@inheritDoc IFormulaBlock.hasTotals} */
430
397
  hasTotals(): boolean;
398
+ /** {@inheritDoc IFormulaBlock.hasDataTable} */
399
+ hasDataTable(): boolean;
431
400
  /** {@inheritDoc IFormulaBlock.hasVolatile} */
432
401
  hasVolatile(): boolean;
433
402
  /** {@inheritDoc IFormulaBlock.isBlankCacheable} */
@@ -454,6 +423,9 @@ export declare namespace FormulaSpatialValue {
454
423
  * block's cell (`i`, `j`). A split reads one source at an offset; a merge reads two, the
455
424
  * second at a negative origin; a shift, re-image or re-anchor reads the block itself at
456
425
  * (0, 0). A cell no source holds gets a fresh node.
426
+ *
427
+ * The nodes MOVE: the source is left released. Build from a block's nodes only for the block
428
+ * that replaces it in its map; a block that stays in a map is read through its formula instead.
457
429
  */
458
430
  interface NodeSource {
459
431
  readonly block: FormulaSpatialValue;
@@ -1,6 +1,7 @@
1
1
  import { IRange } from '@sheetxl/primitives';
2
2
  import { ITypes } from '../../type';
3
- import { ISpatialMap } from '../../collections';
3
+ import { ISpatialMap, ISpatialQuery } from '../../collections';
4
+ import { AsyncValue } from '../../primitives/AsyncValue';
4
5
  /**
5
6
  * Spill Entries are used to track the extent an array formula occupies.
6
7
  *
@@ -15,7 +16,11 @@ export declare class SpillEntry {
15
16
  private _c;
16
17
  private _k;
17
18
  private _cycleId;
18
- constructor(coords: IRange.Coords, cycleId: number, kind?: ITypes.FormulaArrayKind);
19
+ private _h;
20
+ private _b;
21
+ constructor(coords: IRange.Coords, cycleId: number, kind?: ITypes.FormulaArrayKind, holder?: AsyncValue | null, blocked?: IRange.Coords | null);
22
+ /** The anchor's holder, for a spill laid out by an evaluation that deferred; `null` otherwise. */
23
+ getHolder(): AsyncValue | null;
19
24
  getCycleId(): number;
20
25
  /** {@inheritDoc ITypes.FormulaArrayKind} */
21
26
  getKind(): ITypes.FormulaArrayKind;
@@ -25,7 +30,14 @@ export declare class SpillEntry {
25
30
  */
26
31
  isFixed(): boolean;
27
32
  getCoords(): IRange.Coords;
28
- setError(error: boolean, cycleId: number): ISpatialMap.Entry<this>;
33
+ /** The extent a blocked spill would take; `null` for any other. */
34
+ getBlockedCoords(): IRange.Coords | null;
35
+ /** {@link getBlockedCoords} moved by what moved the anchor to `to`. */
36
+ protected _blockedAt(to: IRange.Coords): IRange.Coords | null;
37
+ /**
38
+ * @param keepExtent For the sheet's map of blocked spills, whose entries are at the extent they would take.
39
+ */
40
+ setError(error: boolean, cycleId: number, keepExtent?: boolean): ISpatialMap.Entry<this>;
29
41
  /**
30
42
  * Refuses a shift that would change part of a fixed block - Excel's "You can't change part of
31
43
  * an array." A block the shift lands entirely before or after translates whole; a delete that
@@ -52,4 +64,9 @@ export declare class SpillEntry {
52
64
  /** {@inheritDoc ISpatialMap.IUpdatableValue.getSplit} */
53
65
  getSplit(coords: [IRange.Coords, IRange.Coords], _axis: IRange.Axis): [this, this] | undefined;
54
66
  }
67
+ /**
68
+ * The holder of the spill anchored at (`row`, `col`), or `null` when no spill is anchored there
69
+ * or its evaluation did not defer. A blocked spill's entry is anchored too.
70
+ */
71
+ export declare const spillHolderAt: (spills: ISpatialQuery<SpillEntry> | null | undefined, row: number, col: number) => AsyncValue | null;
55
72
  //# sourceMappingURL=SpillEntry.d.ts.map
@@ -51,7 +51,6 @@ export interface CalcNodeExt {
51
51
  * and by `setInputs` with a `arrayFixed`; translated with the node when its block moves.
52
52
  */
53
53
  fixedRef: IRange.Coords | null;
54
- pendingPromise: Promise<any> | null;
55
54
  /**
56
55
  * The demand evaluation's result — finalized for the cell, or a pending promise — which
57
56
  * `doEvaluate` consumes in place of an `evaluateAt` of its own. Cleared once consumed.
@@ -1,4 +1,5 @@
1
1
  import { CalcNode } from './CalcNode';
2
+ import { DeferredCall } from './DeferredCalls';
2
3
  /**
3
4
  * A reused data structure passed to CalculationContext.
4
5
  *
@@ -41,15 +42,6 @@ export interface CalcScope {
41
42
  * inherits it.
42
43
  */
43
44
  firstCell: boolean;
44
- /**
45
- * Set when the evaluation read something that is PER CELL rather than a property of its inputs
46
- * — a random draw (`IFormulaContext.getRandom`), another cell's formula or sheet
47
- * (`getFormulaAt`, `getSheetIndex`), or a reference it computed (a dynamic precedent) — so its
48
- * answer cannot stand in for another cell's even when the two cells' inputs are identical.
49
- * Cleared by whoever evaluates a cell as the representative of a block's blank region and read
50
- * at its finalize (PLAN-WATCHES-BLANK-AWARE §4); a cell evaluated on its own behalf never
51
- * reads it.
52
- */
53
45
  perCellRead: boolean;
54
46
  /**
55
47
  * Set when the evaluation read its own POSITION — `getRow`, `getColumn`, its own address, a
@@ -70,6 +62,34 @@ export interface CalcScope {
70
62
  * before. Ignored when no seed is set.
71
63
  */
72
64
  drawIndex: number;
65
+ /**
66
+ * How many `IFormulaContext.defer` calls the backend has taken, ever.
67
+ *
68
+ * @remarks
69
+ * Never reset. A dispatch, or the executor around an evaluation, reads it before and compares
70
+ * after: a change means a body deferred inside, however deeply nested. Nothing else on the
71
+ * synchronous path reads it.
72
+ */
73
+ deferCount: number;
74
+ /**
75
+ * How many calls the evaluation in progress has deferred: the next call's ordinal, which is how
76
+ * a later evaluation of the same cell finds it. Back to `0` once the evaluation's calls are
77
+ * taken, which only an evaluation that deferred needs.
78
+ */
79
+ deferOrdinal: number;
80
+ /**
81
+ * Whether the formula's ROOT call deferred in the evaluation in progress. With one call in all,
82
+ * the cell's value is that call's answer and a settle needs no re-evaluation. Cleared with
83
+ * {@link deferOrdinal}.
84
+ */
85
+ deferRoot: boolean;
86
+ /**
87
+ * The call the last `defer` was served — the site's call standing for its payload — or `null`
88
+ * when that `defer` made a new one. The dispatch around the deferring body takes it and, when
89
+ * the call has a latest, answers that in place of the body's return. Cleared with
90
+ * {@link deferOrdinal}.
91
+ */
92
+ deferServed: DeferredCall | null;
73
93
  /**
74
94
  * Stable nameIds currently on the resolution stack — the cycle guard for named
75
95
  * formulas. A plain name re-entering itself (`X = X + 1`) is a circular reference.
@@ -23,10 +23,6 @@ export declare const CalcState: {
23
23
  readonly Removed: number;
24
24
  /** The node is in the pending spatial (the user has been given a pending status). */
25
25
  readonly Pending: number;
26
- /** A precedent evaluated to a pending value this pass, so the node keeps its cached value. */
27
- readonly PendingPrecedents: number;
28
- /** The node's promise resolved; the result waits in `cachedValue` for the next pass. */
29
- readonly PendingResolved: number;
30
26
  /**
31
27
  * The topological sort could not order the node this pass — it is in a reference cycle, or
32
28
  * downstream of one — so it was (or will be) evaluated by demand and `doEvaluate` takes its
@@ -82,14 +78,28 @@ export declare const CalcState: {
82
78
  * never needed for a right answer.
83
79
  */
84
80
  readonly Queued: number;
81
+ /**
82
+ * A precedent is pending with a value this pass: the node evaluates from that value, as any
83
+ * dependent does, and is pending with it.
84
+ */
85
+ readonly WaitingPrecedents: number;
86
+ /**
87
+ * The node is {@link Pending} with a value its dependents calculate from — it holds a call that
88
+ * has not answered, or was calculated from such a value — rather than holding them. Decided by
89
+ * each evaluation, so outside {@link PassMask}.
90
+ */
91
+ readonly PendingValue: number;
92
+ readonly ServeLatest: number;
93
+ /**
94
+ * The evaluation recorded a call of the cell's own that has not answered: the cell is working,
95
+ * not merely waiting on a precedent. Decided by each evaluation, so outside {@link PassMask}.
96
+ */
97
+ readonly OwnCall: number;
98
+ /** What the status index was last told, while {@link Pending}: working (set) or waiting (clear). */
99
+ readonly SentWorking: number;
85
100
  /** What the mark phase resets: everything a single pass decides. `Skip` and the shown role survive. */
86
101
  readonly PassMask: number;
87
102
  };
88
- /**
89
- * Where a node the topological sort could not order stands in the demand evaluation
90
- * (DESIGN-CIRCULAR-CALC.md §4.3). Meaningful only while `CalcState.Circular` is set for the
91
- * current pass. Values sit in the `CalcState.DemandMask` field.
92
- */
93
103
  export declare const DemandState: {
94
104
  /** Not yet evaluated; a read of it suspends the reader so it can go first. */
95
105
  readonly Unevaluated: 0;
@@ -1,10 +1,11 @@
1
- import { IRange, ScalarType, FormulaError, Scalar, IReferenceRange, IFunction, IFormulaContext, IFunctionArguments, IRuntime } from '@sheetxl/primitives';
1
+ import { IRange, ScalarType, FormulaError, Scalar, IReferenceRange, IFunction, IFormulaContext, IFunctionArguments, IRuntime, IRichData } from '@sheetxl/primitives';
2
2
  import { FunctionProvider } from '@sheetxl/scripting';
3
3
  import { ITransaction } from '../../transaction';
4
4
  import { IFunctionCollection } from '../../scripting';
5
5
  import { Tuple } from '../../collections';
6
6
  import { IContextContainer } from './IContextContainer';
7
7
  import { CalcScope } from './CalcScope';
8
+ import { WhatIfTable } from '../executor/_WhatIf';
8
9
  import { ReadHook } from './_ReadObservedGrid';
9
10
  export declare class CalculationContext implements IFormulaContext {
10
11
  protected _instanceScope: any;
@@ -29,12 +30,6 @@ export declare class CalculationContext implements IFormulaContext {
29
30
  * single-cell read {@link getValueAt} falls back to. Constructing a reference is not a read.
30
31
  */
31
32
  protected _onRead: ReadHook | null;
32
- /**
33
- * Receives the reads of references built on the DYNAMIC branch of {@link getReference} — the
34
- * result of `OFFSET`/`INDIRECT`/`INDEX` — when {@link _onRead} is not armed. The executor arms
35
- * it for the length of an ordinary pass so that a dynamic read landing on the evaluating cell
36
- * is seen (DESIGN-CIRCULAR-CALC.md §5); `null` outside a pass.
37
- */
38
33
  protected _dynamicRead: ReadHook | null;
39
34
  /**
40
35
  * Marks the evaluation in progress as having read its position, so its answer stands in for
@@ -60,6 +55,22 @@ export declare class CalculationContext implements IFormulaContext {
60
55
  * hook is armed. See {@link _dynamicRead}.
61
56
  */
62
57
  _setDynamicReadHook(hook: ReadHook | null): void;
58
+ /**
59
+ * @hidden
60
+ * Disarms both read hooks and returns what they were, for {@link _restoreReadHooks}: a what-if
61
+ * evaluation reads plainly in the middle of a node that is itself observed.
62
+ */
63
+ _takeReadHooks(): [ReadHook | null, ReadHook | null];
64
+ /** @hidden Re-arms the hooks {@link _takeReadHooks} returned. */
65
+ _restoreReadHooks(hooks: [ReadHook | null, ReadHook | null]): void;
66
+ /**
67
+ * @hidden
68
+ * The grid id of the cell being evaluated and of an input reference, for `TABLE`: `null` for a
69
+ * reference whose sheet does not resolve.
70
+ */
71
+ _gridIdOfReference(coords: Readonly<IRange.Coords> | null): string | null;
72
+ /** @hidden The what-if results of a data table, for the `TABLE` node being evaluated. */
73
+ _evaluateWhatIf(table: WhatIfTable): Scalar[][] | null;
63
74
  /**
64
75
  * @hidden
65
76
  *
@@ -68,19 +79,21 @@ export declare class CalculationContext implements IFormulaContext {
68
79
  _initialize(transactions?: ITransaction.IStore): Promise<{
69
80
  functions: IFunctionCollection;
70
81
  }>;
82
+ _createScoped(sheet: string): CalculationContext | null;
71
83
  /**
72
84
  * @hidden
73
- * A context bound to `sheet`'s grid INDEPENDENT of evaluation state — the public-API vend
74
- * behind `IFunctionCollection.getByName(name, { sheet })` (CALC-ISSUES item 35). The engine's
75
- * shared context resolves references through the mutable `CalcScope` the container owns, which
76
- * only carries a grid while a formula is evaluating; a vended function called outside the
77
- * graph needs a grid of its own. Shares every initialized part (runtime, functions, coercer) —
78
- * only the scope object is new — and is NEVER used on the engine's evaluation path, which
79
- * stays allocation-free on the shared instance.
85
+ * The workbook's context with no cell, for `IDeferContext.getFormulaContext`: shares every
86
+ * initialized part, as {@link _createScoped} does, and refuses what needs a cell.
80
87
  */
81
- _createScoped(sheet: string): CalculationContext | null;
88
+ _createCellFree(): CalculationContext;
82
89
  /** @inheritdoc IFormulaContext.getFunction */
83
90
  getFunction(name: string): IFunction | null;
91
+ /**
92
+ * @hidden
93
+ * The function registry's stamp: a function {@link getFunction} returned stays the answer for its
94
+ * name while this is unchanged.
95
+ */
96
+ _getFunctionStamp(): number;
84
97
  /** @inheritdoc IFormulaContext.getNumberFormat */
85
98
  getNumberFormat(formatText: string, value: Scalar): string | null;
86
99
  /** @inheritdoc IFormulaContext.getEntireCoords */
@@ -89,6 +102,8 @@ export declare class CalculationContext implements IFormulaContext {
89
102
  getFormulaAt(row: number, column: number, sheetName?: string): string | null;
90
103
  /** @inheritdoc IFormulaContext.markVolatile */
91
104
  markVolatile(): void;
105
+ /** @inheritdoc IFormulaContext.defer */
106
+ defer(executor: IFormulaContext.DeferExecutor, payload?: unknown): unknown;
92
107
  /** @inheritdoc IFormulaContext.formatResults */
93
108
  formatResults(numFmt: string): void;
94
109
  /** @inheritdoc IFormulaContext.filterHidden */
@@ -157,29 +172,6 @@ export declare class CalculationContext implements IFormulaContext {
157
172
  _expandSheetSpan(value: any): IRange.Coords[] | null;
158
173
  /** @inheritdoc IFormulaContext.getResizedReference */
159
174
  getResizedReference(anchor: Readonly<IRange.Coords>, rowCount: number, colCount: number): IReferenceRange;
160
- /**
161
- * Builds the {@link ReferenceRange} every {@link getReference} path returns.
162
- *
163
- * @remarks
164
- * Coords that land off the grid cannot be formed into a reference at all, and `ReferenceRange`
165
- * says so with an internal `OutOfBoundsError`. Left alone that escapes the calculation as a
166
- * `#VALUE!` carrying the text "Out of bounds"; the formula-visible answer is `#REF!`, which is
167
- * what {@link IFormulaContext.getReference} documents and what Excel answers for every consumer
168
- * whose reference IS the result (`OFFSET` in all four directions, `INDIRECT` past the last
169
- * row/column - probe-oob-getreference.ps1).
170
- *
171
- * A caller that reads a WINDOW rather than returning a reference - `SUMIF`'s `sum_range`,
172
- * `LOOKUP`'s `result_vector`, both anchor-plus-length - goes through
173
- * {@link getResizedReference} instead: Excel reads the part that fits rather than failing.
174
- *
175
- * This is the one place a reference is built on a formula's behalf, so it is where the read
176
- * hook attaches: while {@link _onRead} is armed the reference is built over a
177
- * {@link ReadObservedGrid} and every value it (or a view derived from it) opens is reported.
178
- * Unarmed, a static reference's grid is used as is — the ordinary path pays nothing, not even a
179
- * branch per read — while a `dynamic` one (the result of `OFFSET`/`INDIRECT`/`INDEX`, the rare
180
- * path) reports to {@link _dynamicRead} when that is armed: a dynamic read that lands on the
181
- * evaluating cell is a cycle on any path (design §5).
182
- */
183
175
  private _toReference;
184
176
  /** @inheritdoc IFormulaContext.getAddress */
185
177
  getAddress(coords?: Readonly<IRange.FixableCoords | IRange.FixableCellCoords>, r1c1?: boolean): string;
@@ -205,6 +197,8 @@ export declare class CalculationContext implements IFormulaContext {
205
197
  toText(value: Scalar | undefined): string;
206
198
  /** @inheritdoc IFormulaContext.getRuntime */
207
199
  getRuntime(): IRuntime;
200
+ /** @inheritdoc IFormulaContext.createRichData */
201
+ createRichData(type: string, data?: any): IRichData;
208
202
  /** @inheritdoc IFormulaContext.getArgs */
209
203
  getArgs(): IFunctionArguments;
210
204
  get [Symbol.toStringTag](): string;