@sheetxl/sdk 0.8.0-beta.1 → 0.8.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
  3. package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
  4. package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
  5. package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → Dg3GaW0QWwnlqetX.cjs} +1 -1
  6. package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/{B0HS42a7lga1k1U_.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
  9. package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
  10. package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
  11. package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
  12. package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
  13. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
  14. package/browser/esm/index.mjs +871 -696
  15. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
  18. package/node/esm/{Cku7XiUvw1xrRasi.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
  19. package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
  20. package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
  21. package/node/esm/index.mjs +52356 -37345
  22. package/package.json +6 -7
  23. package/resources/locales/de/model.msg.json +45 -9
  24. package/resources/locales/en/model.msg.json +42 -9
  25. package/types/scripting-api.json +7093 -0
  26. package/types/scripting-enums.json +54 -8
  27. package/types/scripting.d.ts +7006 -1202
  28. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  29. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  30. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  31. package/types/src/autoFill/AutoFill.d.ts +316 -32
  32. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  33. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
  34. package/types/src/border/index.d.ts +1 -1
  35. package/types/src/calculation/Calculation.d.ts +740 -35
  36. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  37. package/types/src/calculation/FormulaText.d.ts +74 -0
  38. package/types/src/calculation/ICalculation.d.ts +318 -81
  39. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  40. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  41. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  42. package/types/src/calculation/TokenType.d.ts +9 -0
  43. package/types/src/calculation/Types.d.ts +83 -2
  44. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  45. package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
  46. package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
  47. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  48. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  49. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  50. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  51. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  52. package/types/src/calculation/compiler/Types.d.ts +79 -9
  53. package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
  54. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  55. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  56. package/types/src/calculation/formula/Formula.d.ts +58 -21
  57. package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
  58. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  59. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  60. package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
  61. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  62. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  63. package/types/src/calculation/formula/index.d.ts +1 -0
  64. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  65. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  66. package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
  67. package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
  68. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  69. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  70. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  71. package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
  72. package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
  73. package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
  74. package/types/src/calculation/grid/index.d.ts +4 -0
  75. package/types/src/calculation/index.d.ts +2 -0
  76. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  77. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  78. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  79. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  80. package/types/src/calculation/spatial/index.d.ts +1 -0
  81. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  82. package/types/src/calculation/state/CalcNode.d.ts +141 -30
  83. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  84. package/types/src/calculation/state/CalcState.d.ts +22 -1
  85. package/types/src/calculation/state/CalculationContext.d.ts +36 -2
  86. package/types/src/calculation/state/IContextContainer.d.ts +129 -27
  87. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  88. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  89. package/types/src/calculation/state/index.d.ts +1 -0
  90. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  91. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  92. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  93. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  94. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  95. package/types/src/calculation/symbol/index.d.ts +3 -2
  96. package/types/src/cell/ICell.d.ts +78 -23
  97. package/types/src/cell/ICellProtection.d.ts +50 -10
  98. package/types/src/cellRange/ICellRange.d.ts +329 -72
  99. package/types/src/cellRange/ICellRanges.d.ts +9 -7
  100. package/types/src/chart/Chart.d.ts +72 -2
  101. package/types/src/chart/ChartCollection.d.ts +26 -0
  102. package/types/src/chart/IChart.d.ts +162 -9
  103. package/types/src/chart/IChartCollection.d.ts +25 -0
  104. package/types/src/chart/_ChartXml.d.ts +70 -0
  105. package/types/src/chart/index.d.ts +1 -3
  106. package/types/src/collections/ArraysGrid.d.ts +1 -1
  107. package/types/src/collections/IGrid.d.ts +1 -1
  108. package/types/src/collections/ISparseGrid.d.ts +9 -0
  109. package/types/src/collections/ISpatialMap.d.ts +59 -21
  110. package/types/src/collections/ImmutableList.d.ts +28 -0
  111. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  112. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  113. package/types/src/collections/RepeatingList.d.ts +7 -0
  114. package/types/src/collections/ScalarGrid.d.ts +50 -0
  115. package/types/src/collections/SparseGrid.d.ts +1 -1
  116. package/types/src/collections/SpatialMap.d.ts +13 -21
  117. package/types/src/collections/Tuple.d.ts +128 -16
  118. package/types/src/collections/_GridUtils.d.ts +19 -6
  119. package/types/src/collections/_RangeSweep.d.ts +97 -0
  120. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  121. package/types/src/collections/index.d.ts +1 -0
  122. package/types/src/comment/Comment.d.ts +159 -0
  123. package/types/src/comment/CommentCollection.d.ts +40 -0
  124. package/types/src/comment/IComment.d.ts +319 -48
  125. package/types/src/comment/ICommentCollection.d.ts +90 -0
  126. package/types/src/comment/_CommentUtils.d.ts +28 -0
  127. package/types/src/comment/index.d.ts +1 -0
  128. package/types/src/condition/AnchoredConditional.d.ts +76 -17
  129. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
  130. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
  131. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
  132. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
  133. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
  134. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
  135. package/types/src/condition/Condition.d.ts +16 -0
  136. package/types/src/condition/ICondition.d.ts +86 -33
  137. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  138. package/types/src/condition/_ConditionUtils.d.ts +73 -10
  139. package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
  140. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  141. package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
  142. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  143. package/types/src/dataValidation/DataValidation.d.ts +50 -3
  144. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  145. package/types/src/dataValidation/IDataValidation.d.ts +119 -30
  146. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  147. package/types/src/date/DateUtils.d.ts +20 -0
  148. package/types/src/date/_DateUtils.d.ts +91 -7
  149. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  150. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  151. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  152. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  153. package/types/src/externalBook/index.d.ts +1 -0
  154. package/types/src/fill/IStroke.d.ts +1 -1
  155. package/types/src/filter/IFilter.d.ts +29 -4
  156. package/types/src/font/IFont.d.ts +17 -0
  157. package/types/src/history/IHistory.d.ts +3 -2
  158. package/types/src/i18n/LanguagePack.d.ts +12 -4
  159. package/types/src/index.d.ts +3 -0
  160. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  161. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  162. package/types/src/io/EmbeddedPart.d.ts +20 -0
  163. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  164. package/types/src/io/IWorkbookIO.d.ts +185 -18
  165. package/types/src/io/WorkbookIO.d.ts +9 -0
  166. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  167. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  168. package/types/src/io/_XmlFragment.d.ts +49 -0
  169. package/types/src/io/index.d.ts +1 -0
  170. package/types/src/lib/file/file.browser.d.ts +19 -5
  171. package/types/src/lib/file/file.node.d.ts +5 -0
  172. package/types/src/lib/utils/_Utils.d.ts +11 -0
  173. package/types/src/lib/utils/utils.browser.d.ts +9 -3
  174. package/types/src/license/license-key.d.ts +27 -0
  175. package/types/src/listener/IListener.d.ts +12 -7
  176. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  177. package/types/src/model/AbstractModel.d.ts +14 -5
  178. package/types/src/movable/Control.d.ts +57 -0
  179. package/types/src/movable/IControl.d.ts +84 -0
  180. package/types/src/movable/IMovable.d.ts +23 -1
  181. package/types/src/movable/IMovableCollection.d.ts +2 -0
  182. package/types/src/movable/Movable.d.ts +4 -6
  183. package/types/src/movable/MovableCollection.d.ts +7 -7
  184. package/types/src/movable/index.d.ts +4 -0
  185. package/types/src/named/AbstractNamed.d.ts +1 -1
  186. package/types/src/named/INamed.d.ts +4 -1
  187. package/types/src/named/INamedCollection.d.ts +26 -0
  188. package/types/src/named/NamedCollection.d.ts +16 -15
  189. package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
  190. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  191. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  192. package/types/src/person/IPerson.d.ts +99 -0
  193. package/types/src/person/IPersonCollection.d.ts +51 -0
  194. package/types/src/person/Person.d.ts +32 -0
  195. package/types/src/person/PersonCollection.d.ts +49 -0
  196. package/types/src/person/index.d.ts +3 -0
  197. package/types/src/picture/IPicture.d.ts +2 -0
  198. package/types/src/picture/Picture.d.ts +2 -0
  199. package/types/src/pivot/IPivotTable.d.ts +107 -0
  200. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  201. package/types/src/pivot/PivotTable.d.ts +57 -0
  202. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  203. package/types/src/pivot/index.d.ts +6 -0
  204. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  205. package/types/src/primitives/Criteria.d.ts +1 -1
  206. package/types/src/primitives/LambdaBrand.d.ts +21 -0
  207. package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
  208. package/types/src/primitives/Range.d.ts +102 -24
  209. package/types/src/primitives/RangeStats.d.ts +24 -1
  210. package/types/src/primitives/ReferenceRange.d.ts +42 -0
  211. package/types/src/primitives/Runtime.d.ts +15 -2
  212. package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
  213. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  214. package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
  215. package/types/src/primitives/stats/index.d.ts +1 -0
  216. package/types/src/print/IPrint.d.ts +0 -22
  217. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  218. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  219. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  220. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  221. package/types/src/protection/DefaultProtection.d.ts +12 -1
  222. package/types/src/protection/IProtection.d.ts +36 -2
  223. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  224. package/types/src/reference/index.d.ts +2 -0
  225. package/types/src/resource/IResource.d.ts +21 -1
  226. package/types/src/resource/IResourceCollection.d.ts +9 -1
  227. package/types/src/resource/ResourceCollection.d.ts +6 -6
  228. package/types/src/scripting/FunctionCollection.d.ts +41 -11
  229. package/types/src/scripting/IFunctionCollection.d.ts +41 -0
  230. package/types/src/scripting/IModule.d.ts +25 -0
  231. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  232. package/types/src/scripting/IScript.d.ts +18 -0
  233. package/types/src/scripting/Module.d.ts +34 -6
  234. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  235. package/types/src/scripting/Runtime.d.ts +15 -0
  236. package/types/src/scripting/Scripts.d.ts +2 -0
  237. package/types/src/scripting/TypedFunction.d.ts +151 -18
  238. package/types/src/scripting/_FunctionIndex.d.ts +5 -0
  239. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  240. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  241. package/types/src/scripting/declarations.browser.d.ts +10 -0
  242. package/types/src/scripting/declarations.d.ts +49 -0
  243. package/types/src/scripting/declarations.node.d.ts +9 -0
  244. package/types/src/scripting/index.d.ts +3 -0
  245. package/types/src/selection/IRangeSelection.d.ts +9 -4
  246. package/types/src/selection/RangeSelection.d.ts +2 -0
  247. package/types/src/shape/IShape.d.ts +41 -3
  248. package/types/src/shape/Shape.d.ts +10 -0
  249. package/types/src/shape/_ShapeXml.d.ts +28 -0
  250. package/types/src/sheet/CellRegion.d.ts +6 -0
  251. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  252. package/types/src/sheet/ISheet.d.ts +224 -41
  253. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  254. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  255. package/types/src/sheet/Sheet.d.ts +749 -114
  256. package/types/src/sheet/SheetCell.d.ts +81 -21
  257. package/types/src/sheet/SheetCollection.d.ts +19 -8
  258. package/types/src/sheet/SheetRange.d.ts +62 -14
  259. package/types/src/sheet/SheetRanges.d.ts +4 -6
  260. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  261. package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
  262. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  263. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  264. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  265. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  266. package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
  267. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  268. package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
  269. package/types/src/sheet/_SheetIntents.d.ts +250 -0
  270. package/types/src/sheet/_SheetMutations.d.ts +179 -59
  271. package/types/src/sheet/_SheetStateReader.d.ts +16 -10
  272. package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
  273. package/types/src/sheet/_SheetUtils.d.ts +2 -18
  274. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  275. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  276. package/types/src/sheet/spatial/index.d.ts +1 -0
  277. package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
  278. package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
  279. package/types/src/sheet/style/_Resolvers.d.ts +5 -3
  280. package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
  281. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
  282. package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
  283. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  284. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  285. package/types/src/sheetView/ISheetView.d.ts +45 -1
  286. package/types/src/sheetView/SheetView.d.ts +11 -0
  287. package/types/src/slicer/ISlicer.d.ts +2 -0
  288. package/types/src/slicer/Slicer.d.ts +2 -0
  289. package/types/src/sort/ISort.d.ts +2 -0
  290. package/types/src/string/IStringCollection.d.ts +5 -0
  291. package/types/src/string/StringCollection.d.ts +6 -6
  292. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  293. package/types/src/style/IStyle.d.ts +30 -10
  294. package/types/src/style/IStyleCollection.d.ts +63 -42
  295. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  296. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  297. package/types/src/style/StyleCollection.d.ts +41 -5
  298. package/types/src/style/TableStyleCollection.d.ts +49 -0
  299. package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
  300. package/types/src/style/index.d.ts +4 -0
  301. package/types/src/table/AnchoredTable.d.ts +644 -68
  302. package/types/src/table/AutoTable.d.ts +5 -5
  303. package/types/src/table/ITable.d.ts +228 -30
  304. package/types/src/table/ITableCollection.d.ts +2 -0
  305. package/types/src/table/TableCollection.d.ts +19 -8
  306. package/types/src/table/_FilterField.d.ts +7 -5
  307. package/types/src/table/_NamedTable.d.ts +17 -1
  308. package/types/src/table/_NamedTableSource.d.ts +1 -0
  309. package/types/src/table/_SortField.d.ts +2 -0
  310. package/types/src/table/_TableColumn.d.ts +13 -2
  311. package/types/src/table/_TableMessages.d.ts +1 -0
  312. package/types/src/table/_TableUtils.d.ts +40 -0
  313. package/types/src/text/Bullet.d.ts +4 -0
  314. package/types/src/text/ITextFrame.d.ts +25 -1
  315. package/types/src/text/TextBoxAlignment.d.ts +15 -6
  316. package/types/src/text/TextFrame.d.ts +4 -0
  317. package/types/src/text/TextLine.d.ts +4 -0
  318. package/types/src/text/TextParagraph.d.ts +4 -0
  319. package/types/src/text/TextRun.d.ts +9 -0
  320. package/types/src/text/TextStacked.d.ts +83 -0
  321. package/types/src/text/index.d.ts +1 -0
  322. package/types/src/theme/ITheme.d.ts +2 -0
  323. package/types/src/theme/IThemeCollection.d.ts +2 -0
  324. package/types/src/theme/ThemeCollection.d.ts +8 -7
  325. package/types/src/transaction/ITransaction.d.ts +238 -36
  326. package/types/src/transaction/Transaction.d.ts +99 -11
  327. package/types/src/type/AbstractCollection.d.ts +101 -0
  328. package/types/src/type/ICollection.d.ts +117 -0
  329. package/types/src/type/ITypes.d.ts +9 -7
  330. package/types/src/type/index.d.ts +1 -0
  331. package/types/src/utils/_CSSUtils.d.ts +3 -3
  332. package/types/src/workbook/IWorkbook.d.ts +171 -40
  333. package/types/src/workbook/Workbook.d.ts +103 -7
  334. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  335. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  336. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  337. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  338. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  339. package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
  340. package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
  341. package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
  342. package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
  343. package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
  344. package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
  345. package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
  346. package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
  347. package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
  348. package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
  349. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  350. package/types/src/dataValidation/_Utils.d.ts +0 -10
  351. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  352. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  353. package/types/src/sheet/listener/index.d.ts +0 -3
@@ -4,7 +4,7 @@ import { ICellRanges, ICellRange } from '../../cellRange';
4
4
  import { ICalcGrid } from '../grid';
5
5
  import { ReferenceCoords } from '../Types';
6
6
  import { ICalculation } from '../ICalculation';
7
- import { IFormulaBlock } from './IFormulaBlock';
7
+ import { IFormulaBlock, IFormulaBlockView } from './IFormulaBlock';
8
8
  /**
9
9
  * A formula for a cell.
10
10
  */
@@ -12,6 +12,7 @@ export declare class Formula implements ICalculation.IFormula {
12
12
  protected _coords: IRange.CellCoords | null;
13
13
  private _blockOwn;
14
14
  protected _options: Formula.ConstructorOptions;
15
+ private _isCompiled;
15
16
  /**
16
17
  * The compiled body this formula reads through.
17
18
  *
@@ -23,16 +24,31 @@ export declare class Formula implements ICalculation.IFormula {
23
24
  * undo replaces the block in the versioned store and any captured instance is a snapshot of the
24
25
  * definition as it was. A cell formula is handed its block at construction and keeps it.
25
26
  */
26
- protected get _block(): IFormulaBlock;
27
+ protected get _block(): IFormulaBlockView;
28
+ /**
29
+ * @param isCompiled Whether the engine has compiled the body behind `block` yet. Supplied by a
30
+ * sheet cell, whose block is the sheet's own entry and may still be pending; a detached formula
31
+ * holds a compiled block and omits it. Read on every call, never captured: the entry heals in
32
+ * place when the engine vends, and so does this handle.
33
+ */
27
34
  constructor(coords: IRange.CellCoords | null, // temporary
28
- block: IFormulaBlock, options: Formula.ConstructorOptions);
35
+ block: IFormulaBlockView, options: Formula.ConstructorOptions, isCompiled?: () => boolean);
36
+ /** {@inheritDoc ICalculation.IFormula.isCompiled} */
37
+ isCompiled(): boolean;
29
38
  /** {@inheritDoc ICalculation.IFormula.getTokens} */
30
39
  getTokens(evalIndex?: number): readonly ICalculation.FormulaToken[];
31
40
  /** {@inheritDoc ICalculation.IFormula.isValid} */
32
41
  isValid(): boolean;
33
42
  /** {@inheritDoc ICalculation.IFormula.autoCorrect} */
34
43
  autoCorrect(): ICalculation.IFormula | null;
35
- /** {@inheritDoc ICalculation.IFormula.evaluate} */
44
+ /**
45
+ * {@inheritDoc ICalculation.IFormula.evaluate}
46
+ *
47
+ * @remarks
48
+ * Through the grid, not this formula's own block: evaluating needs the engine's calc scope.
49
+ * ({@link TemporaryFormula} overrides this - an in-flight formula was never written to a grid
50
+ * and evaluates locally.)
51
+ */
36
52
  evaluate(options?: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
37
53
  /** {@inheritDoc ICalculation.IFormula.getCalculationStatus} */
38
54
  getCalculationStatus(): ICalculation.ResultStatus;
@@ -40,6 +56,11 @@ export declare class Formula implements ICalculation.IFormula {
40
56
  getReferences(): ICellRanges | null;
41
57
  /** {@inheritDoc ICalculation.IFormula.hasRefError} */
42
58
  hasRefError(): boolean;
59
+ /**
60
+ * The written references at this formula's cell, absolute, from its block: a committed formula's
61
+ * is the model's view of the engine's record, so nothing asks the engine. `null` with no cell.
62
+ */
63
+ protected _referencesAt(): ReferenceCoords[] | null;
43
64
  /**
44
65
  * Resolve raw ABSOLUTE precedent refs (cell/range coords or named ids) into an {@link ICellRanges}, or
45
66
  * `null` when there are none. Shared by the committed path ({@link getReferences}) and
@@ -47,13 +68,20 @@ export declare class Formula implements ICalculation.IFormula {
47
68
  */
48
69
  protected _resolveReferences(rawRefs: ReferenceCoords[] | undefined): ICellRanges | null;
49
70
  /** {@inheritDoc ICalculation.IFormula.setReferenceAt} */
50
- setReferenceAt(index: number, reference: ICellRange.Address, options?: string | ITransaction.OperationOptions): this;
71
+ setReferenceAt(index: number, reference: ICellRange.Address, options?: string | ITransaction.OperationOptions): Promise<this>;
72
+ /**
73
+ * The formula after a rewrite: the cell's own handle, which reads the entry the grid adopted
74
+ * the block into inside the batch; this one when the rewrite emptied the cell.
75
+ */
76
+ protected _rewritten(written: IFormulaBlockView | null, coords: IRange.CellCoords): this;
51
77
  /** {@inheritDoc ICalculation.IFormula.setReferenceModeAt} */
52
- setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, options?: string | ITransaction.OperationOptions): this;
78
+ setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, options?: string | ITransaction.OperationOptions): Promise<this>;
79
+ /** A reference edit rewrites the compiled body; there is none to rewrite while pending. */
80
+ protected _checkCompiled(): void;
53
81
  /** {@inheritDoc ICalculation.IFormula.isReferenceOnly} */
54
82
  isReferenceOnly(): boolean;
55
83
  /** {@inheritDoc ICalculation.IFormula.isVolatile} */
56
- isVolatile(): boolean;
84
+ isVolatile(): Promise<boolean>;
57
85
  /** {@inheritDoc ICalculation.IFormula.getExpression} */
58
86
  getExpression(options?: ICalculation.FormulaTextOptions): string;
59
87
  /** {@inheritDoc ICalculation.IFormula.getAnchor} */
@@ -69,20 +97,17 @@ export declare class Formula implements ICalculation.IFormula {
69
97
  get isIFormula(): true;
70
98
  }
71
99
  export declare class TemporaryFormula extends Formula {
100
+ /**
101
+ * Narrowed to the full {@link IFormulaBlock}. An in-flight formula evaluates LOCALLY rather
102
+ * than reading a grid, and that path reaches engine-side members (`_doEval` calls
103
+ * `finalizeValueForCell`) - so unlike the committed base, which needs only
104
+ * {@link IFormulaBlockView}, this holds a real compiled block.
105
+ */
106
+ protected get _block(): IFormulaBlock;
72
107
  protected _doEval: (block: IFormulaBlock, options: number | ICalculation.EvaluateOptions) => Promise<Scalar | IRange>;
73
108
  constructor(coords: IRange.CellCoords | null, block: IFormulaBlock, options: Formula.ConstructorOptions, doEval: (block: IFormulaBlock, options: number | ICalculation.EvaluateOptions) => Promise<Scalar | IRange>);
74
109
  /** {@inheritDoc ICalculation.IFormula.evaluate} */
75
110
  evaluate(options: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
76
- /**
77
- * {@inheritDoc ICalculation.IFormula.getReferences}
78
- *
79
- * @remarks
80
- * Sources references from THIS block, not the grid — a temporary / in-flight formula (what the editor
81
- * tokenizes while typing) was never written to the grid, so `getReferencesAt` at these coords would
82
- * come back empty (blank cell) or stale (an existing formula being edited). The block yields RELATIVE
83
- * refs; convert to absolute exactly as `ICalcGrid.getReferencesAt` does, then resolve as usual.
84
- */
85
- getReferences(): ICellRanges | null;
86
111
  /**
87
112
  * {@inheritDoc ICalculation.IFormula.hasRefError}
88
113
  *
@@ -100,7 +125,7 @@ export declare class TemporaryFormula extends Formula {
100
125
  * committed cell); an in-flight edit (an editor range drag) must instead just produce the new text
101
126
  * (via `getExpression`) without committing. Returns a new `TemporaryFormula` so it stays evaluable + chainable.
102
127
  */
103
- setReferenceAt(index: number, reference: ICellRange.Address): this;
128
+ setReferenceAt(index: number, reference: ICellRange.Address): Promise<this>;
104
129
  /**
105
130
  * {@inheritDoc ICalculation.IFormula.setReferenceModeAt}
106
131
  *
@@ -109,14 +134,20 @@ export declare class TemporaryFormula extends Formula {
109
134
  * block's reference and writes through the (pure) {@link setReferenceAt} instead of a grid transaction.
110
135
  * Returns `this` unchanged when there's no reference at `index` (e.g. the caret isn't on one).
111
136
  */
112
- setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, _options?: string | ITransaction.OperationOptions): this;
137
+ setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, _options?: string | ITransaction.OperationOptions): Promise<this>;
113
138
  }
114
139
  export declare namespace Formula {
115
140
  interface ConstructorOptions {
116
141
  getRanges(address: ICellRanges.Address, options?: ICellRange.GetRangeOptions): ICellRanges;
117
142
  getRange(address: ICellRange.Address, options?: ICellRange.GetRangeOptions): ICellRange;
118
- getCalcGrid?(): ICalcGrid;
119
- doBatchCalcGrid?(callback: (calcGrid: ICalcGrid) => IRange.Coords, options?: string | ITransaction.OperationOptions): void;
143
+ /** The grid the formula is in: what it evaluates and rewrites its references through. */
144
+ getCalcGrid?(): Pick<ICalcGrid, 'evaluateAt' | 'setReferenceAt' | 'setReferenceModeAt' | 'isVolatileAt'> | null;
145
+ doBatchCalcGrid?(callback: (calcGrid: ICalcGrid) => Promise<IRange.Coords | null>, options?: string | ITransaction.OperationOptions): Promise<void>;
146
+ /**
147
+ * The engine's status, read when a pending formula is asked to evaluate: a `Starting` engine
148
+ * is awaited, an `Off` one is not started (see {@link ICalculation.IFormula.isCompiled}).
149
+ */
150
+ getCalculationStatus?(): ICalculation.Status;
120
151
  /**
121
152
  * Resolve a sheet's internal stableId (`Sheet1-<uuid>`, rename-safe) to its current display name,
122
153
  * or `null` when it can't be resolved. Reference coords from the calc engine carry stableId scopes;
@@ -143,6 +174,12 @@ export declare namespace Formula {
143
174
  * coords (the temporary path's `scope`-carrying originals) may ignore it.
144
175
  */
145
176
  autoCorrect?(text: string, coords?: Partial<IRange.CellCoords>): ICalculation.IFormula | null;
177
+ /**
178
+ * The form of the text {@link autoCorrect} and {@link createAt} are handed and compile.
179
+ *
180
+ * @defaultValue `'storage'`
181
+ */
182
+ inputTarget?: ICalculation.FormulaTarget;
146
183
  /**
147
184
  * Compile `text` as a DETACHED formula anchored at `coords`. Supplied by the calculation, which
148
185
  * owns the editing compiler (`Calculation.createFormula`), for the same reason
@@ -3,9 +3,9 @@ import { ICalculation } from '../ICalculation';
3
3
  import { CalcScope } from '../state';
4
4
  import { CompiledFormula } from '../compiler';
5
5
  import { ASTNode, FunctionNode } from '../compiler/ASTTypes';
6
- import { NamedReference, StructuredReference, ReferenceCoords, SetReferenceOptions } from '../Types';
6
+ import { NamedReference, StructuredReference, ReferenceCoords, SetReferenceOptions, PrecedentTemplate } from '../Types';
7
7
  import { LambdaValue } from './LambdaValue';
8
- import { IFormulaBlock } from './IFormulaBlock';
8
+ import { IFormulaBlock, FormulaRecord } from './IFormulaBlock';
9
9
  /**
10
10
  * Optional resolver callbacks injected by `Calculation` at construction time.
11
11
  *
@@ -42,9 +42,16 @@ export declare class FormulaBlock implements IFormulaBlock {
42
42
  * When `null` both reference types return formula errors.
43
43
  */
44
44
  protected _resolvers: FormulaBlockResolvers | null;
45
+ /**
46
+ * {@link getPrecedentTemplate}'s answer, computed on first ask. `undefined` = not asked yet,
47
+ * `null` = this block's precedents are not a pure translation.
48
+ */
49
+ protected _precedentTemplate: PrecedentTemplate | null | undefined;
50
+ /** {@link getRecord}'s answer, built on first ask; every vend of this block shares it. */
51
+ private _record;
45
52
  constructor(compiled: CompiledFormula, context: IFormulaContext, scope: CalcScope, gridId: string | null, getEntireCoords: () => IRange.Coords, resolvers?: FormulaBlockResolvers | null);
46
53
  /** @inheritdoc IFormulaBlock.getTextAt */
47
- getTextAt(row: number, column: number, r1c1?: boolean, formulaTransform?: ICalculation.FormulaTransform, evalIndex?: number, canonical?: boolean): string;
54
+ getTextAt(row: number, column: number, r1c1?: boolean, evalIndex?: number, target?: ICalculation.FormulaTarget): string;
48
55
  /**
49
56
  * The display (non-canonical) locale: separators from the workbook locale (Plane 1) and boolean/
50
57
  * error/specifier literals from the active spreadsheet-language pack (Plane 3). Resolved per call so
@@ -52,6 +59,15 @@ export declare class FormulaBlock implements IFormulaBlock {
52
59
  * on the emit path; the parse callbacks and raw word-lists go unused here.
53
60
  */
54
61
  private _displayLocale;
62
+ /** @inheritdoc IFormulaBlock.getRecord */
63
+ getRecord(): FormulaRecord;
64
+ /**
65
+ * The written references as the record carries them: {@link getReferences} before anything is
66
+ * resolved against a cell or a symbol.
67
+ */
68
+ private _recordReferences;
69
+ /** @inheritdoc IFormulaBlock.getNode */
70
+ getNode(): ICalculation.FormulaNode | null;
55
71
  /** @inheritdoc IFormulaBlock.getTokensAt */
56
72
  getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
57
73
  /** @inheritdoc IFormulaBlock.getError */
@@ -62,20 +78,35 @@ export declare class FormulaBlock implements IFormulaBlock {
62
78
  getReferencedSymbolIds(): string[];
63
79
  /** @inheritdoc IFormulaBlock.hasTotals */
64
80
  hasTotals(): boolean;
81
+ /** @inheritdoc IFormulaBlock.isBlankCacheable */
82
+ isBlankCacheable(arrayMode?: boolean): boolean;
83
+ /** @inheritdoc IFormulaBlock.demandFirstCell */
84
+ demandFirstCell(): void;
65
85
  /** @inheritdoc IFormulaBlock.isReferenceOnly */
66
86
  isReferenceOnly(): boolean;
67
87
  /** @inheritdoc IFormulaBlock.isEquals */
68
88
  isEquals(other: IFormulaBlock): boolean;
69
89
  /** @inheritdoc IFormulaBlock.getReferences */
70
90
  getReferences(row: number, column: number): ReferenceCoords[];
91
+ /** @inheritdoc IFormulaBlockView.getReferencesAt */
92
+ getReferencesAt(row: number, column: number): ReferenceCoords[];
93
+ /** Built on first ask; the same array for every cell, so a run of cells conflates by identity. */
94
+ private _formatReferences;
95
+ /** @inheritdoc IFormulaBlock.getFormatReferences */
96
+ getFormatReferences(): IRange.FixableCoords[];
71
97
  /** @inheritdoc IFormulaBlock.getReferenceAt */
72
98
  getReferenceAt(row: number, column: number, index: number): ReferenceCoords;
73
99
  /** @inheritdoc IFormulaBlock.setReferenceAt */
74
100
  setReferenceAt(index: number, reference: ReferenceCoords, options?: SetReferenceOptions): this;
75
101
  /** @inheritdoc IFormulaBlock.reanchorReferences */
76
102
  reanchorReferences(scopeFrom: string, force?: boolean): this;
77
- /** @inheritdoc IFormulaBlock.replaceSheetReferences */
78
- replaceSheetReferences(fromSheetDisplay: string, toSheetDisplay: string): this;
103
+ /** @inheritdoc IFormulaBlock.replaceScopeIds */
104
+ replaceScopeIds(fromScopeId: string | null, toScopeId: string | null): this;
105
+ /**
106
+ * This block with every structured reference to `tableId` replaced by the node `replace` builds
107
+ * for it (`null` keeps the reference), or this block when nothing was replaced.
108
+ */
109
+ replaceTableReferences(tableId: string, replace: (reference: StructuredReference) => ASTNode | null): this;
79
110
  /**
80
111
  * Resolves a named reference by evaluating its shared body at the caller's anchor
81
112
  * (Design 3, apply-at-eval). The body value is taken **raw** (no finalize) so a
@@ -105,6 +136,8 @@ export declare class FormulaBlock implements IFormulaBlock {
105
136
  protected _resolveStructuredRef(structuredReference: StructuredReference, row: number, column: number, reuse?: IRange.Coords): IRange.FixableCoords | FormulaError.Known;
106
137
  /** @inheritdoc IFormulaBlock.resolvedPrecedentsAt */
107
138
  resolvedPrecedentsAt(row: number, column: number, includeInvalidIntersect?: boolean, verticalAbs?: boolean[], horizontalAbs?: boolean[]): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[];
139
+ /** @inheritdoc IFormulaBlock.getPrecedentTemplate */
140
+ getPrecedentTemplate(): PrecedentTemplate | null;
108
141
  /** @inheritdoc IFormulaBlock.evaluateAt */
109
142
  evaluateAt(row: number, column: number, evalIndex?: number): Scalar | Promise<Scalar>;
110
143
  /** @inheritdoc IFormulaBlock.wrapImplicit */
@@ -118,8 +151,11 @@ export declare class FormulaBlock implements IFormulaBlock {
118
151
  * closure so both paths run the identical semantics.
119
152
  * @param row The anchor the formula is being evaluated at (lambda values record it).
120
153
  * @param column The anchor column.
154
+ * @param frame The lambda-parameter frame in scope, when this node is executing inside an
155
+ * activation. Only a LAZY argument's handle needs it — it must resolve a bound name the same way
156
+ * the enclosing body would have.
121
157
  */
122
- protected _executeNode(node: ASTNode, regs: any[], row: number, column: number): any;
158
+ protected _executeNode(node: ASTNode, regs: any[], row: number, column: number, frame?: ReadonlyMap<number, any> | null): any;
123
159
  /**
124
160
  * Closes a `LAMBDA` node over the current registers — the node's whole evaluation (design §3.3).
125
161
  *
@@ -132,6 +168,25 @@ export declare class FormulaBlock implements IFormulaBlock {
132
168
  * shared named-body block at every level, and only a copy keeps an outer activation's captured
133
169
  * environment intact underneath it. See `LambdaValue`.
134
170
  */
171
+ /**
172
+ * Fills the shared argument buffer for a call that has at least one LAZY argument, deciding per
173
+ * call whether to defer at all.
174
+ *
175
+ * @remarks
176
+ * The engine declines whenever an eager argument is a CONTAINER, because the call is then about
177
+ * to LIFT: the body runs once per element and different elements may select different arms, so
178
+ * every arm is needed. Excel abandons laziness there too — `=IF(B1:B3>0,1,A1+1)` in A1 IS a
179
+ * circular reference where the scalar-condition form is not (measured, `probe-lazy-args.ps1`).
180
+ *
181
+ * A declined argument is evaluated ONCE, here, and handed over as the VALUE rather than as a
182
+ * filled handle: the lift SAMPLES an arm per element (`IF(A1:A5>2,A1:A5,0)` answers element by
183
+ * element), and only the marshaller can sample it. The handle it hands the body is rebuilt there,
184
+ * around the sampled member. So the arm is evaluated once and indexed, never re-evaluated.
185
+ *
186
+ * Deferring evaluates nothing, so nothing can re-enter `_reuseArgs` while it is being filled.
187
+ * The decline path does evaluate, and takes a private array for exactly that reason.
188
+ */
189
+ protected _fillLazyArgs(argsIndexed: ASTNode[], argsLength: number, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number, depth: number): void;
135
190
  protected _createLambdaValue(node: FunctionNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): LambdaValue;
136
191
  /**
137
192
  * The callee verdicts + apply for a `Call` node (design §3.4, §1.1):
@@ -149,9 +204,9 @@ export declare class FormulaBlock implements IFormulaBlock {
149
204
  * Apply over VALUES — the marshalled-callable twin of {@link _applyCallee}'s lambda branch
150
205
  * (design §4). Reached through {@link LambdaValue.makeCallable} while a CONSUMER's body
151
206
  * (`BYROW`, `REDUCE`, …) is running; the arguments are plain engine values, so binding needs no
152
- * argument nodes. `undefined` is the callable's spelling for an unsupplied argument — it binds
153
- * the OMITTED sentinel at an OPTIONAL parameter and is `#VALUE!` at a required one, mirroring
154
- * the spelled-call rule (§2.6).
207
+ * argument nodes. An `undefined` IN the list is the callable's spelling for an explicitly
208
+ * empty argument and binds the OMITTED sentinel; a list SHORT of the required count is the
209
+ * arity `#VALUE!`, mirroring the spelled-call rule (§2.6).
155
210
  */
156
211
  _applyValues(callee: LambdaValue, args: readonly any[]): any;
157
212
  /**
@@ -164,20 +219,68 @@ export declare class FormulaBlock implements IFormulaBlock {
164
219
  * enclosing frame — see `_applyCallee`).
165
220
  *
166
221
  * @remarks
167
- * The walker mirrors the eager pipeline exactly: literals and eagerly-resolved references read
168
- * from the activation registers (a copy of the creation snapshot), operators and functions
169
- * execute through the same `_executeNode`, and a node's result lands in its register before the
170
- * parent reads it. Only three things differ from eager evaluation — a bound name may read the
171
- * FRAME (a lambda parameter has no register), an unbound name resolves NOW at the creation
172
- * anchor (`deferredResolve`), and a nested `LAMBDA` closes over this activation.
173
- *
174
- * Recursion arrives only via a defined name cycling back through a deferred resolve, and
175
- * `depth` is the budget that bounds it. NOTE the engine's eager `IF` makes a terminating
176
- * recursion still BURN to the depth limit before unwinding (the un-taken branch is evaluated,
177
- * bottoms out at `#NUM!`, and the selector discards it) — correct results at O(limit) cost;
178
- * Excel Online avoids the cost with a lazy `Conditional` term. Recorded in the plan.
222
+ * The body's list runs against the lambda's register SNAPSHOT (`LambdaValue.regs`), the same
223
+ * loop and node semantics as the eager pass, with this frame in scope. The snapshot is shared
224
+ * by every application of the value: a body writes each register it reads before it reads it,
225
+ * so a sequential re-application (`BYROW` over a range) leaves nothing stale behind. Only a
226
+ * RE-ENTRANT application — the same value applied while an activation of it is still running,
227
+ * which takes the value being passed to itself (`LET(f,LAMBDA(self,n,…self(self,n-1)…),f(f,3))`)
228
+ * — gets a private copy, since the inner run would otherwise clobber registers the outer
229
+ * parent has yet to read.
230
+ *
231
+ * Recursion arrives via a defined name cycling back through a deferred resolve (each level a
232
+ * fresh value with its own snapshot), and `depth` is the budget that bounds it.
179
233
  */
180
234
  protected _evaluateBody(lambda: LambdaValue, frame: ReadonlyMap<number, any>): any;
235
+ /**
236
+ * The VALUE of a lazy argument's subtree — {@link _evaluateSubtree} plus the one conversion the
237
+ * marshaller used to make on the way in.
238
+ *
239
+ * @remarks
240
+ * A bare reference's register holds resolved COORDS, an internal shape: every eager consumer
241
+ * turns it into a reference at the slot it lands in. A forced handle has no slot — its value IS
242
+ * the call's answer — so the conversion happens here, and `=IF(TRUE,E200,0)` answers a reference
243
+ * exactly as the eagerly-marshalled arm did.
244
+ */
245
+ _valueOfLazy(node: ASTNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): any;
246
+ /**
247
+ * Evaluates one subtree that the eager pass did not — a lambda's BODY at apply, or a LAZY
248
+ * argument when the call's answer turns out to be its handle. The deferred half of the
249
+ * carve-out (design §3.3).
250
+ *
251
+ * @param node The subtree root — a node the compiler stamped a `deferred` list on, or (for a
252
+ * partial evaluation) any node inside one.
253
+ * @param regs The register file to evaluate against — a lambda ACTIVATION, or the block's own
254
+ * live file for a lazy argument, which is forced within the evaluation that built it.
255
+ * @param frame slot → argument value for the enclosing activation, or `null` outside one.
256
+ * @param row The anchor to evaluate at.
257
+ * @param column The anchor column.
258
+ *
259
+ * @remarks
260
+ * The same loop as the eager pass over the subtree's own post-order list: literals and
261
+ * eagerly-resolved references are already in their registers, and everything else executes
262
+ * through `_executeNode` into its register before the parent reads it. The frame is the one
263
+ * thing the eager pass never has.
264
+ *
265
+ * Recursion arrives via a defined name cycling back through a deferred resolve, and the caller's
266
+ * `depth` bounds it. With lazy arguments a terminating recursion costs O(depth): the base case's
267
+ * untaken arm is a handle nobody forces.
268
+ */
269
+ protected _evaluateSubtree(node: ASTNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): any;
270
+ /**
271
+ * Runs an execution list — the eager `executions` or a deferred root's list — writing each
272
+ * node's result into its register. Answers the promise chain when a node is async, in which
273
+ * case the rest of the list is queued behind it.
274
+ */
275
+ protected _runList(list: ASTNode[], regs: any[], row: number, column: number, frame: ReadonlyMap<number, any> | null): Promise<any> | undefined;
276
+ /**
277
+ * The execution list of a subtree that is NOT a deferred root — a partial evaluation (the
278
+ * editor's tooltip) pointing inside a lazy argument. The enclosing root's list restricted to
279
+ * the subtree keeps its post-order, and is cached on the node. Not a hot path.
280
+ */
281
+ private _listWithin;
282
+ /** Whether the cell being evaluated is in a block that demands its first cell (`FormulaSpatialValue.arrayFirstCell`). */
283
+ private _demandsFirstCell;
181
284
  /**
182
285
  * Calls a function.
183
286
  *
@@ -0,0 +1,79 @@
1
+ import { FormulaError, IRange } from '@sheetxl/primitives';
2
+ import { ISymbolRegistry } from '../symbol';
3
+ import { ICalculation } from '../ICalculation';
4
+ import { ReferenceCoords, StructuredReference } from '../Types';
5
+ import { CompilerLocale } from '../compiler/CompilerLocale';
6
+ import { FormulaRecord, IFormulaBlockView } from './IFormulaBlock';
7
+ /**
8
+ * What imaging a {@link FormulaRecord} needs beside the record (DESIGN-CALC-SERVICE §8): the
9
+ * symbol map to resolve its stable ids against, the grid the formula sits on, and the reader's
10
+ * locale. The facade supplies the model's own map; the engine never images for it.
11
+ */
12
+ export interface FormulaImager {
13
+ /** Stable ids to display names. */
14
+ readonly symbols: ISymbolRegistry;
15
+ /** The grid the formula sits on: the home scope of a display image (`Table1[@Qty]` drops the table's name). */
16
+ readonly gridId: string | null;
17
+ /** The grid's bounds: a relative reference driven off them images `#REF!`. */
18
+ getEntireCoords(): IRange.Coords;
19
+ /** The reader's separators and literal words, for a display image. */
20
+ getDisplayLocale(): CompilerLocale;
21
+ /**
22
+ * The cells a table reference designates from `row`, against the model's table as it is now.
23
+ * Without it a table reference is a hole.
24
+ */
25
+ resolveTableReference?(reference: StructuredReference, row: number): IRange.FixableCoords | FormulaError.Known;
26
+ }
27
+ /**
28
+ * A block as the model reads it: the engine's record imaged against the reader's own symbols
29
+ * (DESIGN-CALC-SERVICE §8).
30
+ *
31
+ * @remarks
32
+ * What the facade hands the model for every block the engine vends. The record is plain data and
33
+ * crosses the channel; the imager is the facade's and never does. Text is the same function of
34
+ * (tokens, symbols, anchor, locale) the compiled block images by - only where it runs differs -
35
+ * so what a sheet reads is what the engine would image, by the model's names.
36
+ */
37
+ export declare class FormulaRecordView implements IFormulaBlockView {
38
+ /** The block as data: what this view images. */
39
+ readonly record: FormulaRecord;
40
+ private readonly _imager;
41
+ private _error;
42
+ constructor(record: FormulaRecord, imager: FormulaImager);
43
+ /**
44
+ * {@inheritDoc IFormulaBlockView.getTextAt}
45
+ *
46
+ * @remarks
47
+ * A record that did not parse has no faithful tokens and answers with the text as written.
48
+ */
49
+ getTextAt(row: number, column: number, r1c1?: boolean, evalIndex?: number, target?: ICalculation.FormulaTarget): string;
50
+ /** {@inheritDoc IFormulaBlockView.getTokensAt} */
51
+ getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
52
+ /** {@inheritDoc IFormulaBlockView.isReferenceOnly} */
53
+ isReferenceOnly(): boolean;
54
+ /** {@inheritDoc IFormulaBlockView.getError} */
55
+ getError(): FormulaError.Parse | null;
56
+ /**
57
+ * {@inheritDoc IFormulaBlockView.getReferencesAt}
58
+ *
59
+ * @remarks
60
+ * From the record's references: a name is spelled by the model's symbols, a table reference is
61
+ * resolved against the model's table.
62
+ */
63
+ getReferencesAt(row: number, column: number): ReferenceCoords[];
64
+ get [Symbol.toStringTag](): string;
65
+ }
66
+ /**
67
+ * The tokens of the subtree evaluated at `evalIndex`, from the flat token list alone.
68
+ *
69
+ * @remarks
70
+ * A subtree's tokens are contiguous, and its nodes are indexed after the node they hang from:
71
+ * so the subtree is the widest run around the node's own tokens in which every token's index is
72
+ * the node's or greater. A token of the enclosing node - the operator or separator between two
73
+ * siblings, the parenthesis around an argument list - carries the smaller index that bounds it.
74
+ * Whitespace at either end is not part of the expression, and whitespace alone never places a
75
+ * node: the cells of a range carry the range's index, and the whitespace after one may carry
76
+ * the cell's own, which no consumer holding tokens can ask for.
77
+ */
78
+ export declare function subtreeTokens(tokens: readonly ICalculation.FormulaToken[], evalIndex: number): ICalculation.FormulaToken[];
79
+ //# sourceMappingURL=FormulaRecordView.d.ts.map