@sheetxl/sdk 0.7.28-beta.4 → 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 (355) 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/Dg3GaW0QWwnlqetX.cjs +1 -0
  6. package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/{DBIu6NUHIcxOOBQp.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/{CHSahmMFYNB0Ajkf.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
  14. package/browser/esm/index.mjs +871 -696
  15. package/browser/esm/{CKk58ZLcrllMzfou.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
  18. package/node/esm/{DUYP6faJJHCaW1Xf.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 +53973 -38584
  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 -4
  27. package/types/scripting.d.ts +7185 -1079
  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 +745 -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 +422 -34
  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 +160 -29
  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 +39 -3
  86. package/types/src/calculation/state/IContextContainer.d.ts +159 -26
  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 +368 -90
  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 +18 -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 +60 -21
  208. package/types/src/primitives/Range.d.ts +105 -25
  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/FunctionArguments.d.ts +22 -0
  229. package/types/src/scripting/FunctionCollection.d.ts +41 -11
  230. package/types/src/scripting/IFunctionCollection.d.ts +41 -0
  231. package/types/src/scripting/IModule.d.ts +25 -0
  232. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  233. package/types/src/scripting/IScript.d.ts +18 -0
  234. package/types/src/scripting/Module.d.ts +34 -6
  235. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  236. package/types/src/scripting/Runtime.d.ts +15 -0
  237. package/types/src/scripting/Scripts.d.ts +2 -0
  238. package/types/src/scripting/TypedFunction.d.ts +197 -4
  239. package/types/src/scripting/_FunctionIndex.d.ts +5 -0
  240. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  241. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  242. package/types/src/scripting/declarations.browser.d.ts +10 -0
  243. package/types/src/scripting/declarations.d.ts +49 -0
  244. package/types/src/scripting/declarations.node.d.ts +9 -0
  245. package/types/src/scripting/index.d.ts +3 -0
  246. package/types/src/selection/IRangeSelection.d.ts +9 -4
  247. package/types/src/selection/RangeSelection.d.ts +2 -0
  248. package/types/src/shape/IShape.d.ts +41 -3
  249. package/types/src/shape/Shape.d.ts +10 -0
  250. package/types/src/shape/_ShapeXml.d.ts +28 -0
  251. package/types/src/sheet/CellRegion.d.ts +6 -0
  252. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  253. package/types/src/sheet/ISheet.d.ts +224 -41
  254. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  255. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  256. package/types/src/sheet/Sheet.d.ts +757 -114
  257. package/types/src/sheet/SheetCell.d.ts +81 -21
  258. package/types/src/sheet/SheetCollection.d.ts +19 -8
  259. package/types/src/sheet/SheetRange.d.ts +65 -14
  260. package/types/src/sheet/SheetRanges.d.ts +4 -6
  261. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  262. package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
  263. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  264. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  265. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  266. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  267. package/types/src/sheet/_SheetAutoFitUtils.d.ts +28 -0
  268. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  269. package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
  270. package/types/src/sheet/_SheetIntents.d.ts +250 -0
  271. package/types/src/sheet/_SheetMutations.d.ts +179 -59
  272. package/types/src/sheet/_SheetStateReader.d.ts +16 -10
  273. package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
  274. package/types/src/sheet/_SheetUtils.d.ts +2 -18
  275. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  276. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  277. package/types/src/sheet/spatial/index.d.ts +1 -0
  278. package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
  279. package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
  280. package/types/src/sheet/style/_Resolvers.d.ts +5 -3
  281. package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
  282. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
  283. package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
  284. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  285. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  286. package/types/src/sheetView/ISheetView.d.ts +45 -1
  287. package/types/src/sheetView/SheetView.d.ts +11 -0
  288. package/types/src/slicer/ISlicer.d.ts +2 -0
  289. package/types/src/slicer/Slicer.d.ts +2 -0
  290. package/types/src/sort/ISort.d.ts +2 -0
  291. package/types/src/string/IStringCollection.d.ts +5 -0
  292. package/types/src/string/StringCollection.d.ts +6 -6
  293. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  294. package/types/src/style/IStyle.d.ts +30 -10
  295. package/types/src/style/IStyleCollection.d.ts +63 -42
  296. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  297. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  298. package/types/src/style/StyleCollection.d.ts +41 -5
  299. package/types/src/style/TableStyleCollection.d.ts +49 -0
  300. package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
  301. package/types/src/style/index.d.ts +4 -0
  302. package/types/src/table/AnchoredTable.d.ts +644 -68
  303. package/types/src/table/AutoTable.d.ts +5 -5
  304. package/types/src/table/ITable.d.ts +228 -30
  305. package/types/src/table/ITableCollection.d.ts +2 -0
  306. package/types/src/table/TableCollection.d.ts +19 -8
  307. package/types/src/table/_FilterField.d.ts +7 -5
  308. package/types/src/table/_NamedTable.d.ts +17 -1
  309. package/types/src/table/_NamedTableSource.d.ts +1 -0
  310. package/types/src/table/_SortField.d.ts +2 -0
  311. package/types/src/table/_TableColumn.d.ts +13 -2
  312. package/types/src/table/_TableMessages.d.ts +1 -0
  313. package/types/src/table/_TableUtils.d.ts +40 -0
  314. package/types/src/text/Bullet.d.ts +4 -0
  315. package/types/src/text/ITextFrame.d.ts +25 -1
  316. package/types/src/text/TextBoxAlignment.d.ts +15 -6
  317. package/types/src/text/TextFrame.d.ts +4 -0
  318. package/types/src/text/TextLine.d.ts +4 -0
  319. package/types/src/text/TextParagraph.d.ts +4 -0
  320. package/types/src/text/TextRun.d.ts +9 -0
  321. package/types/src/text/TextStacked.d.ts +83 -0
  322. package/types/src/text/index.d.ts +1 -0
  323. package/types/src/theme/ITheme.d.ts +2 -0
  324. package/types/src/theme/IThemeCollection.d.ts +2 -0
  325. package/types/src/theme/ThemeCollection.d.ts +8 -7
  326. package/types/src/transaction/ITransaction.d.ts +238 -36
  327. package/types/src/transaction/Transaction.d.ts +99 -11
  328. package/types/src/type/AbstractCollection.d.ts +101 -0
  329. package/types/src/type/ICollection.d.ts +117 -0
  330. package/types/src/type/ITypes.d.ts +9 -7
  331. package/types/src/type/index.d.ts +1 -0
  332. package/types/src/utils/_CSSUtils.d.ts +3 -3
  333. package/types/src/workbook/IWorkbook.d.ts +171 -40
  334. package/types/src/workbook/Workbook.d.ts +103 -7
  335. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  336. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  337. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  338. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  339. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  340. package/browser/cjs/BF14ZEAnaqxXroSj.cjs +0 -1
  341. package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
  342. package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
  343. package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
  344. package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
  345. package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
  346. package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
  347. package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
  348. package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
  349. package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
  350. package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
  351. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  352. package/types/src/dataValidation/_Utils.d.ts +0 -10
  353. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  354. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  355. package/types/src/sheet/listener/index.d.ts +0 -3
@@ -1,209 +1,435 @@
1
- import { IRange, FormulaError, Scalar, IFormulaContext } from '@sheetxl/primitives';
1
+ import { IRange, Scalar, IRuntime, FormulaError } from '@sheetxl/primitives';
2
+ import { CoordUtils } from '@sheetxl/utils';
3
+ import { ITypes } from '../../type';
2
4
  import { IListener } from '../../listener';
3
5
  import { ListenerEmitter } from '../../listener/ListenerEmitter';
4
- import { Tuple, ISpatialQuery, ISparseGrid, ISpatialMap, ISpatialMap3D } from '../../collections';
5
- import { IContextContainer, CalcNode } from '../state';
6
- import { SpillEntry, FormulaSpatialValue, ContentfulSpatialValue, PrecedentSpatialValue, CircularEntry } from '../spatial';
7
- import { IFormulaBlock } from '../formula';
8
- import { ReferenceCoords } from '../Types';
6
+ import { ITransaction } from '../../transaction';
7
+ import { ISpatialMap, ISpatialQuery, ISparseGrid, Tuple } from '../../collections';
8
+ import { RangeStats } from '../../primitives/RangeStats';
9
9
  import { ICalculation } from '../ICalculation';
10
+ import { IFormulaBlockView } from '../formula';
11
+ import { NamedReference } from '../Types';
12
+ import { ContentfulSpatialValue, SpillEntry, CircularEntry } from '../spatial';
10
13
  import { ICalcGrid } from './ICalcGrid';
14
+ import { FormulaEntry } from './FormulaEntry';
11
15
  /**
12
- * ICalcGrid implementation
16
+ * The grid as the model holds it (DESIGN-CALC-SERVICE §13.23, §13.24): the synchronous half of
17
+ * every implementation, in front of a backend that answers late or not at all.
18
+ *
19
+ * @remarks
20
+ * Owns what a cell holds - the formulas as the model wrote them, text per run; the values, both
21
+ * the literals it entered and the answers the engine vended; and the indexes over them (the
22
+ * contentful summary, the array extents, the error values, the calc status) - versioned in the
23
+ * model's own transaction store, so an undo restores them with everything else the operation
24
+ * wrote. Each formula entry carries the view of the compiled block the backend vends for it.
25
+ * Every write lands here first, in the caller's transaction, and is then forwarded to the backend
26
+ * as the same verb; what the backend answers with is folded into the snapshot the request named
27
+ * and every later one, where what the request was made against is still there, and dropped where
28
+ * something newer wrote ({@link _adopt}, {@link _applyValueVend}). So an undo lands on maps that
29
+ * already carry the engine's answer for them, with no round trip.
30
+ *
31
+ * The backend is an {@link ICalcGrid.Backend}: the in-process engine grid, a message-passing
32
+ * proxy under a worker, and nothing at all is what an `Off` engine amounts to (the channel
33
+ * records nothing, so the text here is the whole truth until a start seeds the engine from it).
34
+ * The same code in every case; only the delegate differs.
13
35
  */
14
36
  export declare class CalcGrid implements ICalcGrid {
37
+ protected readonly _backend: ICalcGrid.Backend;
38
+ protected readonly _calculation: ICalculation | null;
39
+ protected readonly _transactions: ITransaction.IStore;
40
+ protected readonly _stateId: string;
41
+ protected readonly _host: CalcGrid.HostOptions;
42
+ protected readonly _valuesAxis: IRange.Axis;
43
+ protected readonly _runtime: IRuntime;
44
+ /** The aggregate cache over the values; bound to the map INSTANCE, so it follows every clone. */
45
+ protected _rangeStats: RangeStats;
15
46
  /**
16
- * This is MOSTLY set by the user but spills also contribute.
17
- * * Trying to keep lookups to a bare minimum.
18
- */
19
- _values: ISparseGrid<Scalar>;
20
- _spillSpatial: ISpatialMap<SpillEntry>;
21
- _errorSpatial: ISpatialMap<string>;
22
- _pendingSpatial: ISpatialMap<boolean>;
23
- _circularSpatial: ISpatialMap<CircularEntry>;
24
- _contentfulSpatial: ISpatialMap<ContentfulSpatialValue>;
25
- _notifyValues: ISpatialMap;
26
- _notifySpillsInsert: ISpatialMap.Entry<SpillEntry>[];
27
- _notifySpillsRemove: IRange.Coords[];
28
- _notifyFormats: ISpatialMap;
29
- _notifyPending: ISpatialMap<boolean>;
30
- _notifyCircular: ISpatialMap<CircularEntry | false>;
31
- _cloneKey?: CalcGrid;
32
- _version: number;
33
- _iterationId: number;
34
- _gridId: string;
35
- _options: CalcGrid.ConstructorOptions;
36
- _getEntireCoords: () => IRange.Coords;
37
- /**
38
- * @see CalcGrid.ConstructorOptions.unanchored
39
- */
40
- readonly _unanchored: boolean;
41
- _container: IContextContainer;
42
- _context: IFormulaContext;
43
- _calculation: ICalculation | null;
47
+ * Bumped whenever the value map is mutated IN PLACE (a vend that landed on this grid's own
48
+ * instance, a load): what {@link getErrorValues} invalidates its cached view by, since the
49
+ * map's identity does not change then.
50
+ */
51
+ protected _errorEpoch: number;
52
+ /** The reconciled error-VALUE view; see {@link getErrorValues}. */
53
+ protected _errorReconciled: {
54
+ values: ISparseGrid<Scalar>;
55
+ epoch: number;
56
+ spatial: ISpatialMap<boolean>;
57
+ } | null;
58
+ /** Savepoints a write was made under that rolled back since: their answers are dropped. */
59
+ protected _deadSavepoints: Set<string> | null;
60
+ /**
61
+ * Its own store, never open, so every event is delivered as it happens: what an
62
+ * `onInputsWritten` listener writes has to join the operation still open, and every answer is
63
+ * told, not merged into the first.
64
+ */
44
65
  protected _emitter: ListenerEmitter<ICalcGrid, ICalcGrid.IListeners> | null;
45
- protected _isProcessingJSON: boolean;
46
- protected _onCalculated: (results: ICalcGrid.Results) => void;
47
- constructor(options?: CalcGrid.ConstructorOptions);
48
- /** @inheritdoc ICalcGrid.beginUpdates */
49
- beginUpdates(): ICalcGrid.IncrementalUpdates;
50
- /** {@inheritDoc ICalcGrid.calculate} */
51
- calculate(full?: boolean): Promise<ICalculation.Status>;
52
- /** {@inheritDoc ICalcGrid.addListeners} */
53
- addListeners(listeners: ICalcGrid.IListeners, options?: IListener.Options): IListener.Remove;
54
- /** @inheritdoc ICalcGrid.clone */
55
- shift(options: ICalcGrid.ShiftOptions): this;
56
- /** @inheritdoc ICalcGrid.clone */
57
- clone(cloneKey?: any): this;
58
- /** @inheritdoc ICalcGrid.setInputs */
59
- setInputs(values: Tuple.BoundedTuples<Scalar> | null, formulas: readonly ISpatialMap.Entry<string>[] | null): IRange.Coords[];
60
- /** {@inheritDoc ICalcGrid.remove} */
61
- remove(range: IRange.Coords): IRange.Coords[];
62
- /** {@inheritDoc ICalcGrid.autoFill} */
63
- autoFill(template: IRange.Coords | string, destination: IRange.Coords | string): this;
64
- /** {@inheritDoc ICalcGrid.getEntireCoords} */
65
- delete(): void;
66
- /** {@inheritDoc ICalcGrid.markDirtyRegion} */
67
- markDirtyRegions(coords: IRange.Coords[]): void;
68
- /** @inheritdoc ICalcGrid.getId */
69
- getId(): string;
70
- /** {@inheritDoc ICalcGrid.getEntireCoords} */
71
- getEntireCoords(): IRange.Coords;
72
- /** {@inheritDoc ICalcGrid.getBoundingRange} */
73
- getBoundingRange(): IRange.Coords | null;
74
- /** @inheritdoc ICalcGrid.getValues */
75
- getValues(): ISparseGrid<Scalar>;
76
- /** {@inheritDoc ICalcGrid.getDirtyRegions} */
77
- getDirtyRegions(): ISpatialQuery;
66
+ protected _closed: boolean;
67
+ constructor(options: CalcGrid.ConstructorOptions);
68
+ /**
69
+ * Open this grid's maps from a content record, replacing what they hold: the formulas, the
70
+ * values, their contentful summary, the error ones among them, the array extents the record
71
+ * carries and the volatile regions it lists. The same record the backend is opened from.
72
+ */
73
+ protected _loadContent(json: ICalcGrid.JSON, write: CalcGrid.Writer): void;
74
+ /** The backend this grid forwards to. @internal */
75
+ _getBackend(): ICalcGrid.Backend;
76
+ /** {@inheritDoc ICalcGrid.getStateId} */
77
+ getStateId(): string;
78
+ /**
79
+ * This grid's record: the current one, or the one `transaction` sees.
80
+ *
81
+ * @remarks
82
+ * A read through the store makes the writes a cell buffer holds first ({@link getStateId} is
83
+ * in its list), which is what keeps a reader from seeing the sheet without them. The paths that
84
+ * answer a cell FROM those held writes must not make them, so they read through the buffer's
85
+ * own transaction.
86
+ */
87
+ protected _getState(transaction?: ITransaction | null): Readonly<CalcGrid.State>;
88
+ /**
89
+ * This grid's record as it was at a commit; the current one for the operation in progress;
90
+ * `undefined` for a commit the store no longer has on its live history.
91
+ */
92
+ protected _getStateAt(commitId: string): Readonly<CalcGrid.State> | undefined;
93
+ /** {@inheritDoc ICalcGrid.getFormulaAt} */
94
+ getFormulaAt(row: number, column: number): FormulaEntry | null;
78
95
  /** {@inheritDoc ICalcGrid.getFormulas} */
79
- getFormulas(): ISpatialQuery<IFormulaBlock>;
96
+ getFormulas(transaction?: ITransaction | null): ISpatialQuery<FormulaEntry>;
97
+ /** {@inheritDoc ICalcGrid.getValues} */
98
+ getValues(transaction?: ITransaction | null): ISparseGrid<Scalar>;
99
+ /** {@inheritDoc ICalcGrid.getContentful} */
100
+ getContentful(transaction?: ITransaction | null): ISpatialMap<ContentfulSpatialValue>;
80
101
  /** {@inheritDoc ICalcGrid.getSpills} */
81
- getSpills(): ISpatialQuery<SpillEntry>;
82
- /** {@inheritDoc ICalcGrid.getSnapshot} */
83
- getSnapshot(options?: ICalcGrid.GetSnapshotOptions): ICalcGrid.ISnapshot;
84
- /** {@inheritDoc ICalcGrid.getDirectDependentsAt} */
85
- getDirectDependentsAt(coords: IRange.Coords): IRange.Coords[];
86
- /** {@inheritDoc ICalcGrid.getDirectPrecedentsAt} */
87
- getDirectPrecedentsAt(coords: IRange.Coords): IRange.Coords[];
102
+ getSpills(transaction?: ITransaction | null): ISpatialMap<SpillEntry>;
103
+ /** {@inheritDoc ICalcGrid.getPending} */
104
+ getPending(transaction?: ITransaction | null): ISpatialMap<boolean>;
105
+ /** {@inheritDoc ICalcGrid.getCalcErrors} */
106
+ getCalcErrors(transaction?: ITransaction | null): ISpatialMap<string>;
107
+ /** {@inheritDoc ICalcGrid.getCirculars} */
108
+ getCirculars(transaction?: ITransaction | null): ISpatialMap<CircularEntry>;
109
+ /** {@inheritDoc ICalcGrid.getVolatileRegions} */
110
+ getVolatileRegions(): IRange.Address[] | null;
111
+ /** {@inheritDoc ICalcGrid.getRangeStats} */
112
+ getRangeStats(): RangeStats;
113
+ /** {@inheritDoc ICalcGrid.getErrorValues} */
114
+ getErrorValues(): ISpatialMap<boolean>;
88
115
  /**
89
- * One hop of a transitive walk, taken on whichever GRID the coord names.
116
+ * A write to this grid's own maps, in the caller's transaction: each map the write asks for is
117
+ * cloned once, and a map the open savepoint has already cloned is handed back and updated in
118
+ * place. Nothing asked for is nothing copied.
90
119
  *
91
120
  * @remarks
92
- * `getDirect*At` are grid-local by construction — they search their own grid and answer with
93
- * `scope` set only where a neighbor is elsewhere. A walk therefore cannot keep asking `this`:
94
- * once it steps onto `Sheet2!C3` the next hop belongs to Sheet2, and asking Sheet1 for `C3`
95
- * reads a different cell entirely. Results come back bare-relative to the grid that produced
96
- * them, so they are re-expressed against the walk's own anchor before being handed back.
121
+ * The model's own mutation paths take the writer directly ({@link _beginWrite}): a literal
122
+ * entry, a clear or a shift writes the values beside what it writes of its own, in one
123
+ * transaction, and cannot be expressed as one call.
97
124
  * @internal
98
125
  */
99
- private _directAcrossGrids;
100
- /** {@inheritDoc ICalcGrid.getDependentsAt} */
101
- getDependentsAt(coords: IRange.Coords): IRange.Coords[];
102
- /** {@inheritDoc ICalcGrid.getPrecedentsAt} */
103
- getPrecedentsAt(coords: IRange.Coords): IRange.Coords[];
104
- /** {@inheritDoc ICalcGrid.getFormulaBlockAt} */
105
- getFormulaBlockAt(row: number, column: number): IFormulaBlock | null;
106
- /** {@inheritDoc ICalcGrid.getReferencesAt} */
107
- getReferencesAt(row: number, column: number): ReferenceCoords[];
126
+ _beginWrite(options?: ICalcGrid.RequestOptions, isInput?: boolean): CalcGrid.Writer;
127
+ /** One write, begun and committed: what the verbs use. */
128
+ protected _write(mutate: (write: CalcGrid.Writer) => void, options?: ICalcGrid.RequestOptions, isInput?: boolean): void;
129
+ /** A bookkeeping write: folded into the commit the store is at, or the operation in progress. */
130
+ protected _amend(update: Partial<CalcGrid.State>): void;
131
+ /** {@inheritDoc ICalcGrid.setInputs} */
132
+ setInputs(values: Tuple.Region<Scalar> | null, formulas: readonly ISpatialMap.Entry<string>[] | null, options?: ICalcGrid.SetInputsOptions): Promise<ICalcGrid.Results>;
133
+ /**
134
+ * What a write of inputs changes beside the formulas: the values, which cells hold one, the
135
+ * array extents the write replaces or enters, and the error and cycle indexes over the cells.
136
+ */
137
+ protected _writeInputValues(write: CalcGrid.Writer, tuples: Tuple.GridTuple<Scalar> | undefined, formulas: readonly ISpatialMap.Entry<string>[] | null, arrayFixed: IRange.Coords | undefined): void;
138
+ /**
139
+ * What emptying cells changes beside the formulas: the values go, and with them their
140
+ * contentful summary, the error and cycle indexes over them, and the extent of an array
141
+ * anchored among them.
142
+ */
143
+ protected _removeInputValues(write: CalcGrid.Writer, coords: IRange.Coords): void;
144
+ /** {@inheritDoc ICalcGrid.remove} */
145
+ remove(coords: IRange.Coords, options?: ICalcGrid.RemoveOptions): Promise<ICalcGrid.Results>;
146
+ /**
147
+ * What a shift moves beside the formulas: the values and their contentful summary, the array
148
+ * extents - a fixed array the range touches is set aside and put back where the shift takes it -
149
+ * and the error values. An insert refuses to push content off the grid.
150
+ */
151
+ protected _shiftInputValues(write: CalcGrid.Writer, range: IRange.Coords, direction: IRange.Direction): void;
152
+ /** What an insert checks every extent it moves against: the grid's own bounds. */
153
+ protected _insertValidator(): CoordUtils.CoordValidator;
154
+ /** {@inheritDoc ICalcGrid.shift} */
155
+ shift(options: ICalcGrid.ShiftOptions): Promise<ICalcGrid.Results>;
156
+ /** {@inheritDoc ICalcGrid.autoFill} */
157
+ autoFill(template: IRange.Coords | string, destination: IRange.Coords | string, options?: ICalcGrid.RequestOptions): Promise<ICalcGrid.Results>;
158
+ /** {@inheritDoc ICalcGrid.getSnapshot} */
159
+ getSnapshot(options?: ICalcGrid.GetSnapshotOptions): ICalcGrid.ISnapshot;
160
+ /**
161
+ * Copy the entries over `from` in `snapshot` into this grid's map at `to`, in the current
162
+ * transaction, and return them as the text the backend is handed.
163
+ * @internal
164
+ */
165
+ _copyFormulaEntries(snapshot: ISpatialMap<FormulaEntry>, from: IRange.Coords, to: IRange.Coords, copyOptions: FormulaEntry.CopyOptions, options?: ICalcGrid.RequestOptions): ISpatialMap.Entry<string>[];
166
+ /** {@inheritDoc ICalcGrid.seed} */
167
+ seed(json: ICalcGrid.JSON, options?: ICalcGrid.SeedOptions): Promise<ICalcGrid.Results>;
168
+ /** {@inheritDoc ICalcGrid.revert} */
169
+ revert(options: ICalcGrid.RevertOptions): Promise<ICalcGrid.Results>;
170
+ /** {@inheritDoc ICalcGrid.delete} */
171
+ delete(options?: ICalcGrid.RequestOptions): void;
172
+ /**
173
+ * Whether the grid is in the model as the store is now: not closed, made at or before the
174
+ * current snapshot, and not deleted there.
175
+ * @internal
176
+ */
177
+ _isLive(): boolean;
108
178
  /** {@inheritDoc ICalcGrid.setReferenceAt} */
109
- setReferenceAt(row: number, column: number, index: number, precedent: IRange.FixableCoords | IRange.FixableCellCoords | FormulaError.Ref): this;
179
+ setReferenceAt(row: number, column: number, index: number, precedent: IRange.FixableCoords | IRange.FixableCellCoords | NamedReference | FormulaError.Ref): Promise<IFormulaBlockView | null>;
180
+ /** {@inheritDoc ICalcGrid.setReferenceModeAt} */
181
+ setReferenceModeAt(row: number, column: number, index: number, side?: ICalculation.ReferenceSide, mode?: number): Promise<IFormulaBlockView | null>;
182
+ /** {@inheritDoc ICalcGrid.calculate} */
183
+ calculate(full?: boolean): Promise<ICalculation.Status>;
184
+ /** {@inheritDoc ICalcGrid.markDirtyRegions} */
185
+ markDirtyRegions(coords: IRange.Coords[]): void;
186
+ /**
187
+ * Send a formula this grid holds to the engine again, without writing it here: an engine grid
188
+ * made since it was written. The answer lands as any answer does.
189
+ * @internal
190
+ */
191
+ _resendFormula(coords: IRange.Coords, text: string): Promise<ICalcGrid.Results>;
192
+ /** Whether a sheet owns this grid: see {@link CalcGrid.HostOptions.isOwned}. @internal */
193
+ _isOwned(): boolean;
194
+ /** {@inheritDoc ICalcGrid.Backend.requestPass} @internal */
195
+ _requestPass(): void;
196
+ /** {@inheritDoc ICalcGrid.getGraphNeighborsAt} */
197
+ getGraphNeighborsAt(coords: IRange.Coords, kind: 'precedents' | 'dependents', direct: boolean): Promise<ICalcGrid.GraphNeighbors>;
198
+ /** {@inheritDoc ICalcGrid.Backend.getNameGraph} @internal */
199
+ _getNameGraph(kind: 'precedents' | 'dependents', direct: boolean): Promise<ICalcGrid.GraphNeighbors>;
200
+ /** {@inheritDoc ICalcGrid.evaluateAt} */
201
+ evaluateAt(row: number, column: number, options?: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
202
+ /** `true` once closed: its state is gone. @internal */
203
+ _isClosed(): boolean;
204
+ /**
205
+ * Whether the snapshot the store is at holds this grid's maps: a restore to a commit older than
206
+ * the grid leaves it none. @internal
207
+ */
208
+ _hasState(): boolean;
209
+ /** {@inheritDoc ICalcGrid.Backend.evaluateScalarAt} @internal */
210
+ _evaluateScalarAt(row: number, column: number, evalIndex?: number): Promise<Scalar>;
211
+ /**
212
+ * Write a body as authored: the engine anchors it and answers with the record, which lands here
213
+ * as any answer does. Nothing is written here first - the text is the engine's to make.
214
+ * @internal
215
+ */
216
+ _setBody(options: ICalcGrid.BodyOptions): Promise<ICalcGrid.Results>;
110
217
  /** {@inheritDoc ICalcGrid.isVolatileAt} */
111
- isVolatileAt(row: number, column: number): boolean;
112
- protected _formulaAt(row: number, column: number): ISpatialMap.Entry<FormulaSpatialValue> | null;
218
+ isVolatileAt(row: number, column: number): Promise<boolean>;
219
+ /** {@inheritDoc ICalcGrid.addListeners} */
220
+ addListeners(listeners: ICalcGrid.IListeners, options?: IListener.Options): IListener.Remove;
221
+ protected _notify<T>(key: keyof ICalcGrid.Events, params: T): void;
222
+ /** {@inheritDoc ICalcGrid.getEntireCoords} */
223
+ getEntireCoords(): IRange.Coords;
224
+ /** {@inheritDoc ICalcGrid.resize} */
225
+ resize(options?: ICalcGrid.RequestOptions): void;
226
+ /** {@inheritDoc ICalcGrid.getId} */
227
+ getId(): string;
228
+ /** {@inheritDoc ICalcGrid.toJSON} */
229
+ toJSON(options?: ICalcGrid.ToJSONOptions): Promise<ICalcGrid.JSON | null>;
113
230
  /**
114
- * Create non error spill entries for move/copy.
231
+ * What a start seeds the backend from: this map's formulas and every value the host holds. A
232
+ * host with nothing yet still seeds (an empty record), so the engine runs its full pass and
233
+ * answers for it.
234
+ * @internal
115
235
  */
116
- protected _createCopySpillEntries(spillSpatial: ISpatialMap<SpillEntry>, from: IRange.Coords, to: IRange.Coords, reuseInserts?: ISpatialMap.Entry<SpillEntry>[] | null, reuseRemoves?: ISpatialMap.Entry<SpillEntry>[] | null): ISpatialMap.Updates;
236
+ _seedContent(): ICalcGrid.JSON | null;
117
237
  /**
118
- * Because the formula we are copying from maybe have been compiled using
119
- * a different calculation context we have to serialize back to the formula string.
238
+ * This grid's content as its calc JSON (DESIGN-CALC-SERVICE §6.6): the same record a save
239
+ * writes, and what a start opens the backend from. The formulas, the array extents, the
240
+ * volatile regions and - with `includeData` - the values are all this grid's own; a volatile
241
+ * region is kept only where a formula still sits.
120
242
  *
121
- * @param gridExplicitId The grid context to compile in AND the scope prefix added to unqualified refs.
122
- * For formula-move: the source grid (refs get source-grid prefix). For precedent-move: the
123
- * destination grid (refs get destination-grid prefix).
124
- * @param targetScope If provided, the formula entry scope after re-anchoring. Defaults to this._gridId.
125
- * Use from.scope when re-anchoring formulas that stay in the source sheet.
243
+ * A pending entry is written as its own text; a compiled one images its block where it sits.
244
+ * @internal
245
+ */
246
+ _content(options?: ICalcGrid.ToJSONOptions): ICalcGrid.JSON | null;
247
+ /** The array extents a load carries, as spill entries. */
248
+ protected _spillsFromJSON(formulaArray: readonly IRange.JSONReferenceTuple<ITypes.FormulaArrayKind>[]): ISpatialMap.Entry<SpillEntry>[];
249
+ protected _entriesFromJSON(formulas: readonly IRange.JSONReferenceTuple<string>[]): ISpatialMap.Entry<FormulaEntry>[];
250
+ /**
251
+ * What the backend pushed (a pass's results, a seed's): the formula half is adopted here, then
252
+ * the host hears the whole record.
253
+ * @internal
254
+ */
255
+ _onCalculated(results: ICalcGrid.Results): void;
256
+ /**
257
+ * What a verb's answer goes through: the formula half adopted, unless the savepoint the
258
+ * request was made under (read now, as the request is made) has rolled back since.
259
+ */
260
+ protected _adopter(): (results: ICalcGrid.Results) => ICalcGrid.Results;
261
+ /**
262
+ * The block a reference edit answered with, adopted into the entry over that cell, inside the
263
+ * batch that asked for the edit.
264
+ */
265
+ protected _adoptAt(row: number, column: number, block: IFormulaBlockView | null): IFormulaBlockView | null;
266
+ /**
267
+ * The snapshots a record lands in, oldest first: the one it names, every later one on the
268
+ * live history, and the operation in progress if there is one.
126
269
  *
127
- * @remarks
128
- * This modifies the insert in place.
270
+ * @returns `null` when the record answers for a snapshot off the live history (undone, rolled
271
+ * back, pruned) or one this grid did not exist at: nothing it says is true anywhere. A record
272
+ * naming no snapshot, or the operation in progress, is current by construction.
129
273
  */
130
- protected _reanchorFormulas(inserts: ISpatialMap.Entry<FormulaSpatialValue>[], gridExplicitId?: string | null, targetScope?: string | null, force?: boolean): void;
274
+ protected _vendSnapshots(commitId: string | undefined): VendSnapshot[] | null;
131
275
  /**
132
- * Will copy tiles and invalidate relative precedents that are out
133
- * of bounds.
276
+ * The snapshot before the one a record names, or `null` when it is the first: a map instance
277
+ * the record's snapshots share with it is history's, and is cloned before the record lands.
134
278
  */
135
- protected _copyTo(snapshot: CalcGridSnapshot, from: IRange.Coords, to: IRange.Coords): void;
279
+ protected _vendParentState(requested: VendSnapshot): Readonly<CalcGrid.State> | null;
280
+ /** Fold a vend's maps into a snapshot: a bookkeeping write, never an edit. */
281
+ protected _writeVend(snapshot: VendSnapshot, update: Partial<CalcGrid.State>): void;
136
282
  /**
137
- * Will update absolute precedents from precedentEntries relative precedents get shifted
283
+ * Adopt the formula half of a result record: the views the backend vends, onto the entries
284
+ * they were compiled for.
285
+ *
286
+ * @remarks
287
+ * A block that spells the entry's formula (`sum(a1)` compiled to `SUM(A1)`, or the same block
288
+ * vended again on a full pass) is patched into the entry IN PLACE: it is the same formula, so
289
+ * every snapshot that holds the entry carries it, and a handle taken before the vend reads
290
+ * the block through the same object. A block whose formula differs - a reference re-imaged
291
+ * by a shift, a `#REF!` - or a change to the map's shape (a split, a cleared region, a block
292
+ * minted where the map held nothing) is model state: it is written to a clone of the map and
293
+ * folded into the snapshot the record names, so an undo restores the map as it was before the
294
+ * operation that caused it, and never the pending text of a request that has been answered.
295
+ *
296
+ * The record is applied to the snapshot it names first, then to every later snapshot on the
297
+ * live history, where it changes only what nothing newer has written: an entry is settled
298
+ * when the named snapshot holds the same entry at the same cells, and a region is settled when
299
+ * every entry over it is - the newer write's own resolution carries the truth for the rest. A
300
+ * record naming a snapshot off the live history is dropped whole: the backend's revert
301
+ * re-vends every block a restore exposes. On a full record every entry's block is dropped
302
+ * first; the record lists every block.
138
303
  */
139
- protected _moveTo(snapshot: CalcGridSnapshot, from: IRange.Coords, to: IRange.Coords): void;
140
- protected _notifyCalculated(cycleId: number, options: ICalculation.CalculateOptions | boolean): Promise<ICalcGrid.Results>;
141
- protected _setInputs(values: Tuple.BoundedTuples<Scalar> | null, formulas: readonly ISpatialMap.Entry<string>[] | null, deleteRange?: IRange.Coords): IRange.Coords[];
304
+ protected _adopt(results: ICalcGrid.Results, vended?: readonly VendSnapshot[]): void;
142
305
  /**
143
- * Used before loading a new state
306
+ * Land the value half of a record - values, spills, errors, pending and circular marks - in the
307
+ * snapshots it answers for, by ownership (DESIGN-CALC-SERVICE §13.18).
308
+ *
309
+ * @remarks
310
+ * Every item has one owner, and a snapshot's formula map says which: a cell holding a formula
311
+ * entry is the engine's, one holding none is the model's, a spill cell is the engine's through
312
+ * its anchor. So an item lands in a snapshot where that snapshot's map holds, over the item,
313
+ * what the requested snapshot's map held: the requested snapshot itself everywhere, a later one
314
+ * wherever nothing newer wrote. An item that a later write cut into is split at the ownership
315
+ * boundary when its payload is per cell (a value run, a pending or error mark, which the maps
316
+ * merge across neighbors) and left whole when it is one thing (a spill extent, a cycle). A full
317
+ * record clears an engine-owned map, keeping what a later snapshot owns.
318
+ *
319
+ * The maps are the snapshots' own instances, shared by reference until a write clones them, so
320
+ * each distinct instance is written once, settled for every snapshot that holds it. In-process
321
+ * the list is the requested snapshot alone and this is one write, as it always was. Nothing
322
+ * here goes through the caller's transaction: these are the backend's answers, regenerated by
323
+ * any pass.
144
324
  */
145
- protected _clearAll(): void;
146
- /** {@inheritDoc ICalcGrid.fromJSON} */
147
- fromJSON(json: ICalcGrid.JSON, options?: ICalcGrid.FromJSONOptions): ICalcGrid.Results | undefined;
148
- /** {@inheritDoc ICalcGrid.fromJSON} */
149
- toJSON(options?: ICalcGrid.ToJSONOptions): Promise<ICalcGrid.JSON | null>;
325
+ protected _applyValueVend(results: ICalcGrid.Results, snapshots: readonly VendSnapshot[]): void;
326
+ /** {@inheritDoc ICalcGrid.close} */
327
+ close(): void;
328
+ get [Symbol.toStringTag](): string;
150
329
  }
151
330
  export declare namespace CalcGrid {
152
331
  /**
153
- * Options available when creating a CalcGrid.
332
+ * Everything the grid holds for the model, versioned in the model's own store
333
+ * (DESIGN-CALC-SERVICE §13.23, §13.24): what the model wrote and what the backend answered
334
+ * with, one record per commit, so an undo restores them with the operation that wrote them.
154
335
  */
155
- interface ConstructorOptions {
156
- /**
157
- * The calculation instance that will be used to calculate the grid.
158
- *
159
- * @remarks
160
- * Required as this will contain the context
161
- */
162
- context: IFormulaContext;
336
+ interface State {
337
+ /** The formulas as the model wrote them, one entry per run, with the backend's view where it has vended one. */
338
+ formulaSpatial: ISpatialMap<FormulaEntry>;
339
+ /** The values: the literals the model entered and the answers the engine vended, one map. */
340
+ cellValuesGrid: ISparseGrid<Scalar>;
341
+ /** Which cells hold a value, per run: the summary index over {@link cellValuesGrid}. */
342
+ contentfulSpatial: ISpatialMap<ContentfulSpatialValue>;
343
+ /** The array extents: what the file said, what an array entry wrote, what the engine vended. */
344
+ spillSpatial: ISpatialMap<SpillEntry>;
163
345
  /**
164
- * handler for calculation callbacks.
165
- *
166
- * @remarks
167
- * The container contains information shared across all grids
346
+ * The volatile regions the file listed: what an `Off` save writes back and a seed carries,
347
+ * kept where a formula still sits under them. What the engine knows once it is up it answers
348
+ * itself; this list is not shifted by a structural change.
168
349
  */
169
- container: IContextContainer;
350
+ volatile: IRange.Address[] | null;
351
+ /** Cells the engine has not answered for yet. */
352
+ pendingSpatial: ISpatialMap<boolean>;
353
+ /** Engine FAILURES by cell, as a message. Not error values - those are in the values. */
354
+ calcErrorsSpatial: ISpatialMap<string>;
170
355
  /**
171
- * For status listening
356
+ * Cells in a reference cycle or downstream of one, by cycle (DESIGN-CIRCULAR-CALC.md §7.2).
357
+ * Maintained from the executor's deltas, like {@link pendingSpatial}.
172
358
  */
173
- calculation: ICalculation | null;
359
+ circularSpatial: ISpatialMap<CircularEntry>;
174
360
  /**
175
- * A callback that is called when the calculation is completed.
176
- *
177
- * @remarks
178
- * This will persist through clones.
361
+ * Error VALUES by cell, as the WRITE path knows them: fresh for what the model entered and
362
+ * stale for formula cells, which is why {@link CalcGrid.getErrorValues} reconciles it against
363
+ * the values rather than answering from it. It collapses into the values once the executor
364
+ * emits error deltas.
179
365
  */
180
- onCalculated?: (results: ICalcGrid.Results) => void;
366
+ errorSpatial: ISpatialMap<boolean>;
367
+ /** The grid was deleted - a sheet's removal - in this snapshot or before it. */
368
+ deleted: boolean;
369
+ }
370
+ /**
371
+ * The maps a write may change. Each is cloned once, on first ask, under the caller's key; a map
372
+ * the write never asks for is left as it is and copies nothing.
373
+ */
374
+ interface Writer {
375
+ /** The maps as they stand, for the reads a write makes on its way. Never clones. */
376
+ readonly current: Readonly<State>;
181
377
  /**
182
- * A unique id that never changes for the grid.
378
+ * Reading one clones it, once; assigning one replaces it, for the shifts and rebuilds that
379
+ * answer with a map rather than editing the one they were given.
183
380
  */
184
- uuid?: string;
381
+ formulas: ISpatialMap<FormulaEntry>;
382
+ values: ISparseGrid<Scalar>;
383
+ contentful: ISpatialMap<ContentfulSpatialValue>;
384
+ spills: ISpatialMap<SpillEntry>;
385
+ pending: ISpatialMap<boolean>;
386
+ calcErrors: ISpatialMap<string>;
387
+ circulars: ISpatialMap<CircularEntry>;
388
+ errorValues: ISpatialMap<boolean>;
389
+ /** The volatile regions are a list, not a map: replaced, never edited. */
390
+ volatile: IRange.Address[] | null;
391
+ /** An array extent the write set aside, moved or put back: reported with it. */
392
+ noteArray(extent: IRange.Coords): void;
185
393
  /**
186
- * Returns the entire coordinate bounds for this grid.
187
- * If not provided, defaults to the maximum sheet dimensions.
394
+ * Land what was asked for, in the caller's transaction. A write that lands more than once -
395
+ * a shift, which commits per range so a table sees what moved - lands the same maps again,
396
+ * as they stand.
188
397
  */
189
- getEntireCoords?: () => IRange.Coords;
398
+ commit(): void;
399
+ }
400
+ /** What the host of a grid supplies: the sheet, for a grid that is a sheet's. */
401
+ interface HostOptions {
190
402
  /**
191
- * `true` for a grid whose coordinates are a synthetic anchor rather than positions in a real
192
- * sheet — a named formula's compilation host, or the editor's temporary formula.
193
- *
194
- * @remarks
195
- * Stamped onto every {@link FormulaSpatialValue} this grid creates; see
196
- * `FormulaSpatialValue.unanchored` for what it buys. Defaults to `false` (a sheet).
403
+ * This grid has an owner in the model - a sheet. It seeds the engine at a start even when it
404
+ * holds nothing, so the engine runs its full pass and answers for it; a grid the engine made
405
+ * for itself (a name's host, a conditional format's body) does not.
197
406
  */
198
- unanchored?: boolean;
407
+ isOwned?: boolean;
408
+ /** The grid a copy lands on, by id: another sheet's, or this one. */
409
+ getGrid?: (gridId: string) => CalcGrid | null;
410
+ }
411
+ interface ConstructorOptions extends HostOptions {
412
+ /** What the verbs forward to, and what answers. */
413
+ backend: ICalcGrid.Backend;
414
+ /** For the engine's status: an `Off` save is answered from this map. */
415
+ calculation?: ICalculation | null;
416
+ /** The model's store; every map this grid holds versions in it. A transient one with no model. */
417
+ transactions?: ITransaction.IStore;
418
+ /** What the aggregate cache over the values measures with. */
419
+ runtime: IRuntime;
420
+ /** The orientation of the value tuples a write carries. */
421
+ valuesAxis?: IRange.Axis;
199
422
  }
200
423
  }
201
- interface CalcGridSnapshot {
202
- calcGrid: CalcGrid;
203
- formulaSpatial: ISpatialMap3D<FormulaSpatialValue>;
204
- precedentSpatial: ISpatialMap3D<PrecedentSpatialValue>;
205
- volatile: Set<CalcNode> | null;
424
+ /** A snapshot a vend lands in: this grid's record there, and whether it is the operation in progress. */
425
+ interface VendSnapshot {
426
+ id: string;
427
+ state: Readonly<CalcGrid.State>;
428
+ open: boolean;
206
429
  }
207
- export declare function valueCompareValues<T>(a: ISpatialMap.Entry<T>, removing: ISpatialMap.Entry<T>): boolean;
430
+ /** Whether `map` holds this very entry at these cells: what nothing newer has written. @internal */
431
+ export declare const holdsFormulaEntry: (map: ISpatialMap<FormulaEntry>, hit: ISpatialMap.Entry<FormulaEntry>) => boolean;
432
+ /** Whether `map` holds, over `region`, exactly the entries `requested` holds there. @internal */
433
+ export declare const sameFormulaEntries: (requested: ISpatialMap<FormulaEntry>, map: ISpatialMap<FormulaEntry>, region: IRange.Coords) => boolean;
208
434
  export {};
209
435
  //# sourceMappingURL=CalcGrid.d.ts.map