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

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/B0AS8k-hrSCBUlUY.cjs +1 -0
  3. package/browser/cjs/B308aXzcAYr1GN1c.cjs +1 -0
  4. package/browser/cjs/B44p8LIyxG3GtaGC.cjs +93 -0
  5. package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → D6YaqporVrSewZpm.cjs} +1 -1
  6. package/browser/cjs/DjWcveVCs0NFiKep.cjs +1 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/-OKDZ9cUBtkgD4Zr.mjs +20 -0
  9. package/browser/esm/8Nw0lKc4ISs7hEJT.mjs +70223 -0
  10. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → BmEEyMxNzlbXG98H.mjs} +2 -2
  11. package/browser/esm/BtdDRkWn-zCV3oic.mjs +394 -0
  12. package/browser/esm/DaCTT4vda0m8Fnxo.mjs +8 -0
  13. package/browser/esm/{B0HS42a7lga1k1U_.mjs → DvFKKE72ZA02l8iF.mjs} +1 -1
  14. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Z-dzbKvqaxll9l_t.mjs} +2 -2
  15. package/browser/esm/index.mjs +871 -696
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/{Cku7XiUvw1xrRasi.mjs → BpMTlTrJLWh_wJ5H.mjs} +1 -1
  18. package/node/esm/D5quDVovf1zjYBgJ.mjs +28 -0
  19. package/node/esm/DP0M3_S_dwLwRMiA.mjs +403 -0
  20. package/node/esm/DTHN_EkuOscW3f3B.mjs +8 -0
  21. package/node/esm/index.mjs +54375 -39377
  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 +7094 -0
  26. package/types/scripting-enums.json +54 -8
  27. package/types/scripting.d.ts +6985 -1171
  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
@@ -0,0 +1,250 @@
1
+ import { IRange } from '@sheetxl/primitives';
2
+ import { ICellRange } from '../cellRange';
3
+ import { IRangeSelection } from '../selection';
4
+ import { ITransaction } from '../transaction';
5
+ import { SheetEvents } from './_SheetEvents';
6
+ /**
7
+ * Directives a sheet operation records on its transaction: something to do once the operation
8
+ * completes, rather than a change the operation makes.
9
+ *
10
+ * @remarks
11
+ * All coords, ids and options - no sheet, view or range instances. An intent is recorded on the
12
+ * root transaction, so a batch of operations resolves one set of them, and it travels on the
13
+ * commit, so undo and redo read it back.
14
+ *
15
+ * @internal
16
+ */
17
+ /** Key for the {@link EventsIntent}. */
18
+ export declare const IntentEvents = "sheet.events";
19
+ /** Key for the {@link FormulasEnteredIntent}. */
20
+ export declare const IntentFormulasEntered = "sheet.formulasEntered";
21
+ /** Key for the {@link SelectionIntent}`[]` the operations of a commit declared. */
22
+ export declare const IntentSelection = "sheet.selection";
23
+ /** Key for the {@link BatchSelectIntent}. */
24
+ export declare const IntentBatchSelect = "sheet.batchSelect";
25
+ /** Key for {@link AutoFitIntent}`[]`. */
26
+ export declare const IntentAutoFit = "sheet.autoFit";
27
+ /**
28
+ * Key for the sheet ids ({@link ISheet.getId}) whose commit-time protection check stands down.
29
+ *
30
+ * @remarks
31
+ * The catch-all at `onBeforeCommitStart` refuses any write to a locked sheet. An operation that
32
+ * has already ruled on its own allowance (`Sheet._protectionCheck`) records itself here so the
33
+ * catch-all does not veto what the allowance permitted; so does a load, which is not a user's
34
+ * write. Read on the way in, so it has to be on the record before the root commits.
35
+ */
36
+ export declare const IntentSkipProtectionCheck = "sheet.skipProtectionCheck";
37
+ /** Key for the {@link FreezePanesIntent}. */
38
+ export declare const IntentFreezePanes = "sheet.freezePanes";
39
+ /** Key for the {@link MovableSelectionIntent}. */
40
+ export declare const IntentMovableSelection = "sheet.movableSelection";
41
+ /**
42
+ * Key for the sheet ids ({@link ISheet.getId}) a load is populating in this commit.
43
+ *
44
+ * @remarks
45
+ * A load is not an edit: nothing it writes is announced, and the calculation it would otherwise
46
+ * trigger is the calc-on-load decision's to make, not the commit's. The writes inside a load go
47
+ * through the same mutation paths as an edit and record the same changes (an added table records
48
+ * `anchored`), so the announce has to be told to stand down for the commit as a whole. Implies
49
+ * {@link IntentSkipProtectionCheck}.
50
+ */
51
+ export declare const IntentInitial = "sheet.initial";
52
+ /**
53
+ * Key for the sheet ids ({@link ISheet.getId}) whose entered formulas should take the number
54
+ * format of the first cell they read that has one, or failing that the format their results
55
+ * carry, once the compile and the calculation have them.
56
+ *
57
+ * @remarks
58
+ * The one directive that cannot be resolved when the operation completes: the result it formats,
59
+ * and the engine's word on which cells the formula reads, do not exist yet. It is resolved by the
60
+ * calculation's amend into this commit (`Sheet._promoteCalcResults`), and only once - see
61
+ * {@link IntentCalcResolved}.
62
+ */
63
+ export declare const IntentAutoFormat = "sheet.autoFormat";
64
+ /**
65
+ * Key for the sheet ids whose entry directives the calculation has resolved for this commit.
66
+ *
67
+ * @remarks
68
+ * Recorded by the calculation's amend once it has formatted and fitted the results of the
69
+ * formulas the commit entered on that sheet. A later pass for the same commit - a dependent on
70
+ * another sheet, an explicit recalculation, the pass a redo triggers - finds the sheet here and
71
+ * leaves the promoted format and the sizes as they are, which is also why an undo and a redo see
72
+ * them: they are in the snapshot, not re-derived.
73
+ */
74
+ export declare const IntentCalcResolved = "sheet.calcResolved";
75
+ /**
76
+ * What to announce once the operation lands, by sheet ({@link ISheet.getId}) and by category.
77
+ *
78
+ * @remarks
79
+ * The one intent every mutation writes. A union: each write appends the ranges it wrote, so a
80
+ * batch describes all of its operations rather than its last, and an amend unions into the commit
81
+ * it folds into. Written copy-on-write ({@link Sheet._recordChange}), because an amend's
82
+ * accumulator is handed the TARGET commit's value as its `prev` and must not mutate it.
83
+ *
84
+ * What it holds is not "what was touched" - a registration amend writes state and deliberately
85
+ * records nothing - but what a consumer has to hear about. Six of the categories have an event of
86
+ * their own; the rest reach a consumer through the union ({@link Sheet._changedRanges}), which is
87
+ * also what an undo selects over and what gates the calculation.
88
+ */
89
+ export type EventsIntent = Readonly<Record<string, SheetEvents>>;
90
+ /**
91
+ * The ranges a formula was entered over, by sheet ({@link ISheet.getId}).
92
+ *
93
+ * @remarks
94
+ * A subset of the `data` category, found from what the write produced rather than named by the
95
+ * caller - a cleared formula is a data change and nothing more. No event fires for it: it is read
96
+ * by the calculation's amend (`Sheet._promoteCalcResults`) to decide what to format and what to
97
+ * fit, which is Excel's rule that entering a formula formats and fits it while recalculating it
98
+ * does not.
99
+ */
100
+ export type FormulasEnteredIntent = Readonly<Record<string, readonly IRange.Coords[]>>;
101
+ /**
102
+ * `list` with `ranges` appended, for an intent accumulator that unions range lists.
103
+ *
104
+ * @param list The list on the record so far, or none.
105
+ * @param ranges What this write adds.
106
+ * @param owner The id of the operation recording it ({@link ITransaction.getId}).
107
+ *
108
+ * @remarks
109
+ * An accumulator must not change the value it is handed: on a fold that value is the TARGET
110
+ * commit's, and a list the target announces would grow by what the amend recorded. A list this
111
+ * operation built is a different matter - nothing else holds it until the operation lands - so it
112
+ * is appended to, and only a list from elsewhere is copied first. Without that, a batch of one
113
+ * write per cell copies every range recorded so far on each write, and so does the replay of those
114
+ * writes when the batch folds.
115
+ */
116
+ export declare const _appendOwnedRanges: (list: readonly IRange.Coords[] | undefined, ranges: readonly IRange.Coords[], owner: string) => readonly IRange.Coords[];
117
+ /**
118
+ * What one operation declared about the selection: where it leaves the user, and where an undo of
119
+ * it lands when that is somewhere else.
120
+ *
121
+ * @remarks
122
+ * Every operation declares, whatever it was asked, and never applies: whether the view moves, and
123
+ * which declaration it moves to, is decided once the commit closes ({@link resolveSelection}). So
124
+ * an operation neither reads the transaction stack nor decides whether it is the one that counts,
125
+ * and a replay can apply a different policy to the same record.
126
+ *
127
+ * Entries are kept in the order they were declared, one per operation, so a batch holds all of
128
+ * its operations'.
129
+ */
130
+ export interface SelectionIntent {
131
+ /** {@link ISheet.getId} of the sheet the selection is on. */
132
+ sheetId: string;
133
+ /**
134
+ * {@link ISheetView.getId} of the view the operation was made against.
135
+ *
136
+ * @remarks
137
+ * A sheet can be shown through more than one view - each user in a shared workbook has their
138
+ * own - and only the view that made the change is moved by undoing it.
139
+ */
140
+ viewId: string;
141
+ /** Where the operation leaves the user, and where a redo of it lands. */
142
+ selection: Partial<IRangeSelection.Coords>;
143
+ /**
144
+ * Where an undo of the operation lands, when it is not {@link selection}: an auto-fill undoes
145
+ * to the template it was dragged from, a cut-drag to the source.
146
+ */
147
+ undo?: Partial<IRangeSelection.Coords>;
148
+ /**
149
+ * The operation's `autoSelect`, resolved against its axis (see `Sheet._resolveSelectOptions`),
150
+ * or `false` when it was not asked to select.
151
+ */
152
+ options: boolean | ICellRange.SelectOptions;
153
+ /** The operation's `autoSelectRestore`, resolved like {@link options}: whether an undo or a redo selects. */
154
+ restoreOptions: boolean | ICellRange.SelectOptions;
155
+ /**
156
+ * The operation ran inside another one ({@link _isInsideOperation}): the writes a table makes
157
+ * when it expands are the expansion's, and where they would put the user is not the
158
+ * expansion's to say.
159
+ */
160
+ nested: boolean;
161
+ }
162
+ /**
163
+ * The `autoSelect` a batch was opened with, by sheet ({@link ISheet.getId}).
164
+ *
165
+ * @remarks
166
+ * A batch asks to select for the operations inside it that did not ask for themselves: a command
167
+ * groups a per-range loop and selects the result, and the operations in the loop were never told.
168
+ */
169
+ export type BatchSelectIntent = Readonly<Record<string, boolean | ICellRange.SelectOptions>>;
170
+ /**
171
+ * Whether `trans` is begun inside a transaction that names an operation
172
+ * ({@link ITransaction.getOperation}).
173
+ *
174
+ * @remarks
175
+ * An enclosing transaction that names no operation - a batch - is not one.
176
+ */
177
+ export declare const _isInsideOperation: (trans: ITransaction) => boolean;
178
+ /**
179
+ * Where a commit moves a view's selection, or `null` when it does not move it.
180
+ *
181
+ * @param intents The commit's intents.
182
+ * @param sheetId The sheet whose view is asking.
183
+ * @param viewId The view that is asking.
184
+ * @param direction Whether the operation has just run, or is being undone or redone.
185
+ *
186
+ * @remarks
187
+ * The local policy. Only an operation that is not part of another one counts, and only one that
188
+ * was asked to select - itself, or by the batch it ran in: by `autoSelect` as it runs, by
189
+ * `autoSelectRestore` when it is undone or redone. A script that did not ask never moves the user,
190
+ * and neither does anything that reacts to the user's edit. Forward and redo land where the LAST
191
+ * such operation left the user; an undo lands where the FIRST one says, since a batch is undone
192
+ * as a whole.
193
+ */
194
+ export declare const resolveSelection: (intents: Readonly<Record<string, any>> | undefined, sheetId: string, viewId: string, direction: "forward" | "undo" | "redo") => {
195
+ selection: Partial<IRangeSelection.Coords>;
196
+ options: boolean | ICellRange.SelectOptions;
197
+ } | null;
198
+ /**
199
+ * Where the freeze panes sit before and after the operation, by sheet ({@link ISheet.getId}).
200
+ *
201
+ * @remarks
202
+ * The one view fact an insert or delete changes: a frozen row above the insertion point moves
203
+ * with the cells. Recorded only by an operation that moved them, and merged the way the
204
+ * selection pair is - `before` first-writer-wins, `after` last-writer-wins - so a batch undoes to
205
+ * where it started and redoes to where it ended. The forward operation moves the panes itself;
206
+ * this is what undo and redo read.
207
+ */
208
+ export type FreezePanesIntent = Readonly<Record<string, {
209
+ before: IRange.CellCoords;
210
+ after: IRange.CellCoords;
211
+ }>>;
212
+ /**
213
+ * Which movables are selected before and after the operation, by sheet ({@link ISheet.getId}).
214
+ *
215
+ * @remarks
216
+ * The movable counterpart of {@link SelectionIntent}, merged the way the freeze pair is - `before`
217
+ * first-writer-wins, `after` last-writer-wins - so a batch undoes to the selection it began with
218
+ * and redoes to the one it ended on. Recorded only by an operation that changes which movables
219
+ * exist or which of them the user is working on; everything else leaves the selection alone.
220
+ *
221
+ * Movables are named by their id ({@link ITransaction.ITransactional.getId}). A snapshot restores
222
+ * the same instances, so holding them would work - but an intent is data, and an id is what
223
+ * survives a reload and a collaborator.
224
+ */
225
+ export type MovableSelectionIntent = Readonly<Record<string, {
226
+ /**
227
+ * {@link ISheetView.getId} of the view the operation was made against.
228
+ *
229
+ * @remarks
230
+ * Only the view that made the change is moved by undoing it - see {@link SelectionIntent}.
231
+ */
232
+ viewId: string;
233
+ before?: readonly string[];
234
+ after?: readonly string[];
235
+ }>>;
236
+ /**
237
+ * Fit these ranges when the operation completes.
238
+ *
239
+ * @remarks
240
+ * A union: every operation in a batch adds the ranges it wrote, and one fit covers them all.
241
+ * Entries are kept per sheet and per option set - two operations that fit differently cannot
242
+ * be measured as one.
243
+ */
244
+ export interface AutoFitIntent {
245
+ /** {@link ISheet.getId} of the sheet to fit on. */
246
+ sheetId: string;
247
+ ranges: IRange.Coords[];
248
+ options?: ICellRange.AutoFitOptions;
249
+ }
250
+ //# sourceMappingURL=_SheetIntents.d.ts.map
@@ -1,4 +1,4 @@
1
- import { IRange } from '@sheetxl/primitives';
1
+ import { IRange, Scalar } from '@sheetxl/primitives';
2
2
  import { CoordUtils } from '@sheetxl/utils';
3
3
  import { ITransaction } from '../transaction';
4
4
  import { Tuple, ISpatialMap } from '../collections';
@@ -7,8 +7,11 @@ import { ICell } from '../cell';
7
7
  import { IComment } from '../comment';
8
8
  import { IHyperlink } from '../hyperlink';
9
9
  import { IStyle } from '../style';
10
- import { IAutoFill } from '../autoFill';
11
- import { InternalTupleUpdate } from './_SheetStateTypes';
10
+ import { IProperties } from '../type';
11
+ import { FormulaEntry } from '../calculation/grid';
12
+ import { CellStateIteratorContext } from './_SheetUtils';
13
+ import { SheetDirectStyle } from './style/SheetDirectStyle';
14
+ import { RangeState, InternalTupleUpdate } from './_SheetStateTypes';
12
15
  import { SheetMutationContext } from './Sheet';
13
16
  /**
14
17
  * The shared insert/delete engine (see SHEET-SPLIT-DESIGN §6e). Shifts every state map (values,
@@ -19,11 +22,16 @@ import { SheetMutationContext } from './Sheet';
19
22
  */
20
23
  export declare function shiftCells(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], options: IRange.Axis | ICellRange.InsertOptions | ICellRange.DeleteOptions | undefined, isInsert: boolean, coordValidator?: CoordUtils.CoordValidator): void;
21
24
  /**
22
- * Replace the comments over each range with the given comment (or clear when `comments === null`).
23
- * Writes a fresh `commentsSpatial` and commits with auto-select. See SHEET-SPLIT-DESIGN §5.4.
25
+ * Sets the comment on each range's first cell, or clears every comment within a range when its
26
+ * update is `null`. Commits with auto-select. See SHEET-SPLIT-DESIGN §5.4.
27
+ *
28
+ * @remarks
29
+ * A comment is one cell's, so a value lands on the top-left cell: the comment there is updated
30
+ * when the update is modifiers, replaced when it is a whole JSON (how `updateTuples` carries a
31
+ * moved cell's thread, id and replies included), and added when there is none.
24
32
  * @internal
25
33
  */
26
- export declare function setComments(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IComment.Properties>[], comments?: IComment.JSON | null, // we do this because updateTuples may update each
34
+ export declare function setComments(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IComment.Update>[], comments?: IComment.Update, // `undefined` = each entry carries its own (updateTuples)
27
35
  options?: ITransaction.OperationOptions): void;
28
36
  /**
29
37
  * Set (or clear when the resolved update is `null`) the hyperlink over each range, applying the
@@ -45,7 +53,38 @@ options?: ITransaction.OperationOptions): void;
45
53
  * @internal
46
54
  */
47
55
  export declare function updateStyles(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IStyle.Update>[], defaultUpdate?: IStyle.Update, // we do this because updateTuples may update each
48
- options?: IStyle.UpdateOptions, calcedNumberFormat?: boolean): void;
56
+ options?: IStyle.UpdateOptions, calcedNumberFormat?: boolean, // this is a bit of a hack. This is prevent number formats from functions to override user defined formats.
57
+ isStep?: boolean): void;
58
+ /**
59
+ * A cell's direct styles as `update` leaves them, applied to each style map the way
60
+ * {@link updateStyles} applies it, so a held style reads without being written.
61
+ *
62
+ * @remarks
63
+ * A function update is given the cell's composed direct style and its result is split back by
64
+ * category, as `updateStyles`' function form does over its region.
65
+ *
66
+ * @param intersection The cell's range state before the update.
67
+ * @returns The intersection with the updated styles; `null` if the update reaches past the cell
68
+ * (a border, a continuous alignment) or clears every style, so it has to be written to know.
69
+ * @internal
70
+ */
71
+ export declare function intersectionAfterStyleUpdate(ctx: SheetMutationContext, intersection: RangeState.Intersection | null, rowIndex: number, colIndex: number, update: ScanStyleUpdate): RangeState.Intersection | null;
72
+ /**
73
+ * Whether a style update written to one cell changes that cell alone. A border does not: it
74
+ * changes the neighbor's edge. Nor does a horizontal alignment that is, or replaces, a continuous
75
+ * one: it is drawn across the neighbors.
76
+ *
77
+ * @param continuousFillSpatial The sheet's continuous alignments.
78
+ * @internal
79
+ */
80
+ export declare function isLocalStyleUpdate(ctx: SheetMutationContext, continuousFillSpatial: ISpatialMap<SheetDirectStyle>, rowIndex: number, colIndex: number, update: IStyle.Update): boolean;
81
+ /**
82
+ * Whether a cell's number reads as a date once `update` is applied to its style - decided as
83
+ * {@link updateStyles} decides its date map: by the number format the update leaves in the cell's
84
+ * direct style. `contentSpatial` is the content map the update would be applied over.
85
+ * @internal
86
+ */
87
+ export declare function isDateAfterStyleUpdate(ctx: SheetMutationContext, contentSpatial: ISpatialMap<SheetDirectStyle>, rowIndex: number, colIndex: number, update: ScanStyleUpdate): boolean;
49
88
  /**
50
89
  * Merge each range into a single cell: relocates/keeps a lone value at the top-left (discarding the
51
90
  * rest, or throwing on multiple values unless `discardMultipleValues`), unifies the style over the
@@ -61,77 +100,158 @@ export declare function merge(ctx: SheetMutationContext, ranges: readonly IRange
61
100
  */
62
101
  export declare function unmerge(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], options?: ITransaction.OperationOptions): void;
63
102
  /**
64
- * The central cell-write path: iterates the incoming `ICell.Update` tuples, resolves each cell
65
- * (parsing text, applying merges/spills), splits out style / hyperlink / formula side-updates, writes
66
- * values + contentful + calc grids, and delegates the side-updates to {@link updateStyles} /
67
- * {@link setHyperlinks} / {@link merge}. See SHEET-SPLIT-DESIGN §5.4.
68
- * @internal
103
+ * A formula text on its way through {@link updateTuples}: the A1 text as entered, the cell it was
104
+ * entered at, and its relative (R1C1) form, derived only when a neighbor asks for it.
69
105
  */
70
- export declare function updateTuples(ctx: SheetMutationContext, boundedTuples: Tuple.BoundedTuples<ICell.Update> | null, options?: ICellRange.UpdateCellsOptions, coordValidator?: CoordUtils.CoordValidator | null | undefined, internalOptions?: InternalTupleUpdate | null): void;
106
+ export interface FormulaTextUpdate {
107
+ a1: string;
108
+ rowIndex: number;
109
+ colIndex: number;
110
+ /** Derived on first use by {@link relativeFormOf}. */
111
+ r1c1: string | null;
112
+ /** Derived on first use by {@link formulaEntryFor}. */
113
+ entry: FormulaEntry | null;
114
+ }
71
115
  /**
72
- * Clear the given content category (values/formats/comments/hyperlinks, or all) over each range:
73
- * delegates styles/hyperlinks/comments to their ops, deletes values + spills + calc, and drops tables
74
- * / auto-tables inside the cleared area (unless `excludeSorts`). See SHEET-SPLIT-DESIGN §5.4.
116
+ * The text a conflated run's formula reads as at one of the run's cells, before the run is written.
117
+ *
118
+ * @remarks
119
+ * A run keeps its FIRST cell's text, and every other cell reads that text imaged at it - as it
120
+ * will once the run is written and until it is compiled.
75
121
  * @internal
76
122
  */
77
- export declare function clear(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], applyTo?: ICell.Content | null, options?: ITransaction.OperationOptions, excludeSorts?: boolean, isCut?: boolean): void;
123
+ export declare function formulaTextAt(update: FormulaTextUpdate, rowIndex: number, colIndex: number): string;
78
124
  /**
79
- * Resolve a raw destination to the nearest destination {@link autoFill} accepts — what
80
- * {@link ICellRange.AutoFillOptions.snap} runs before the fill.
125
+ * Style updates to one cell, in the order they were made: a cell styled more than once in one
126
+ * scan. Written in that order, as separate calls would write them; a callback cannot be folded
127
+ * into the update before it.
81
128
  * @internal
82
129
  */
83
- export declare function autoFillRange(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords): IRange.Coords;
130
+ export declare class StyleUpdateSequence {
131
+ readonly updates: readonly IStyle.Update[];
132
+ constructor(updates: readonly IStyle.Update[]);
133
+ }
134
+ /** A {@link TupleScan}'s style update to a cell: one update, or several in order. @internal */
135
+ export type ScanStyleUpdate = IStyle.Update | StyleUpdateSequence;
136
+ /** The updates in a {@link ScanStyleUpdate}, in order. @internal */
137
+ export declare function styleUpdatesOf(update: ScanStyleUpdate): readonly IStyle.Update[];
84
138
  /**
85
- * What an `autoFill` run with `preview` hands back instead of committing: the destination plus a
86
- * cell-level projection of the fill that *would* happen. `SheetRange` wraps this in a read-only
87
- * `ICellRange` — see {@link ICellRange.autoFill}.
139
+ * One scan of cell updates: what {@link updateTuples} knows while it walks its cells, and what the
140
+ * walk collects for {@link finishTupleScan} to write.
141
+ *
142
+ * @remarks
143
+ * A scan is {@link beginTupleScan}, {@link scanCell} for each cell in order, then
144
+ * {@link finishTupleScan}. The cells are asked in ONE order, major then minor, and both the
145
+ * range-state sweep and the collectors rely on it. Which axis is the major one is the scan's
146
+ * own ({@link TupleScan.isColumn}), not necessarily the sheet's.
147
+ *
148
+ * An open scan changes nothing and holds no transaction: the finish begins one, writes and commits
149
+ * it. So a scan can stay open across calls ({@link CellBuffer}), and one that is dropped needs no
150
+ * undoing.
88
151
  * @internal
89
152
  */
90
- export interface AutoFillProjection {
91
- /** The destination the projection covers. */
92
- coords: IRange.Coords;
153
+ export interface TupleScan {
154
+ readonly ctx: SheetMutationContext;
155
+ readonly options: ICellRange.UpdateCellsOptions | undefined;
156
+ readonly internalOptions: InternalTupleUpdate | null;
157
+ /** The order the cells are asked in: `true` if a column is the major axis. */
158
+ readonly isColumn: boolean;
159
+ readonly isDataChange: boolean;
160
+ readonly isInternalHyperlink: boolean;
161
+ readonly isBroadcast: boolean;
162
+ readonly isLocked: boolean;
163
+ readonly allowFormatCells: boolean;
164
+ readonly hasUnlockRanges: boolean;
165
+ readonly runtime: SheetMutationContext['runtime'];
166
+ /**
167
+ * A scan that stays open holds only cells whose write cannot fail once scanned, and whose held
168
+ * style changes that cell alone: a cell that carries a hyperlink or comments, or a style that
169
+ * {@link isLocalStyle} refuses, is REFUSED - nothing is collected for it and {@link isRefused} is
170
+ * set - for the caller to write on its own.
171
+ */
172
+ readonly isHeld: boolean;
173
+ isRefused: boolean;
174
+ /**
175
+ * Whether a style held for a cell changes that cell alone; a held scan refuses one that does not,
176
+ * since a read of a neighbor does not see a held write. Set by the scan's holder.
177
+ */
178
+ isLocalStyle: ((rowIndex: number, colIndex: number, update: IStyle.Update) => boolean) | null;
93
179
  /**
94
- * The projected (uncommitted) cell at these coords. Cells the fill does not touch read straight from
95
- * the sheet; filled cells are derived — value, style and, when the template tiles a merge across the
96
- * fill, the merge itself (so `getRange`/`getSpans`/`getExtrusions` report the projected block, and a
97
- * coord inside one resolves to that block's anchor, where the value lives).
180
+ * A merge, hyperlink, comments or a style callback that can throw was collected. Their writes can
181
+ * still refuse after the finish has changed the maps in place, so the finish writes them in a
182
+ * savepoint of its own.
98
183
  */
99
- getCellAt(rowIndex: number, colIndex: number): ICell;
184
+ hasLateRefusals: boolean;
185
+ iterRanges: ReturnType<SheetMutationContext['rangeStateIterator']> | null;
186
+ requiresRangeCheck: boolean;
187
+ readonly seekCoords: IRange.CellCoords;
188
+ cellMajor: number;
189
+ cellMinor: number;
190
+ cellIntersection: RangeState.Intersection | null;
191
+ readonly optionsFromString: ICell.ModifiersFromStringOptions | null;
192
+ readonly contextState: CellStateIteratorContext | null;
193
+ readonly resolvedStringCache: Map<string, ICell.Modifiers>;
194
+ lastDirectStyle: IProperties.ICellRanged<IStyle.Properties> | undefined;
195
+ isTextNumFmt: boolean;
196
+ readonly defaultStyleUnlocked: boolean;
197
+ isStyleUnlocked: boolean;
198
+ usedStyleUnlock: boolean;
199
+ lastUnlock: RangeState.Intersection['unlock'];
200
+ isUnlockExempt: boolean;
201
+ isPasswordGated: boolean;
202
+ readonly deletes: ISpatialMap.IConflatingEntries<any>;
203
+ readonly styleUpdates: ISpatialMap.IConflatingEntries<ScanStyleUpdate>;
204
+ readonly hyperlinkUpdates: ISpatialMap.IConflatingEntries<IHyperlink.Update>;
205
+ readonly commentUpdates: ISpatialMap.IConflatingEntries<IComment.Update>;
206
+ readonly formulaUpdates: ISpatialMap.IConflatingEntries<FormulaTextUpdate | null>;
207
+ readonly mergeUpdates: IRange.Coords[];
100
208
  }
101
209
  /**
102
- * The single-entry series memo behind `autoFill({ preview })` — the "last autofill".
210
+ * Begins a scan of cell updates within `boundsRange`.
103
211
  *
104
- * @remarks
105
- * A drag previews the same template in the same direction over and over, changing only the destination;
106
- * the series does not depend on the destination, so scanning it once serves the whole drag. Held on the
107
- * sheet (one entry) and validated against `state` identity: the transaction store rebuilds the state
108
- * object on every real change (reference-equal *is* its "nothing changed" signal), so any mutation,
109
- * undo or redo drops the memo without anything having to invalidate it explicitly.
110
- * @internal
111
- */
112
- export interface AutoFillPreviewCache {
113
- /** The sheet state the series was read from. */
114
- state: unknown;
115
- template: IRange.Coords;
116
- isForward: boolean;
117
- filler: IAutoFill.Filler;
118
- /** The caller's `fillerOptions` **by reference** — a caller that rebuilds it simply misses the memo. */
119
- fillerOptions: IAutoFill.Options | undefined;
120
- /** Series per line of the opposite axis; `null` marks a line that produced nothing to fill. */
121
- seriesByLine: Map<number, IAutoFill.FillAt | null>;
122
- }
212
+ * @param isColumn The order the cells will be asked in; the sheet's if not given.
213
+ * @param isHeld See {@link TupleScan.isHeld}.
214
+ * @internal
215
+ */
216
+ export declare function beginTupleScan(ctx: SheetMutationContext, boundsRange: IRange.Coords, options: ICellRange.UpdateCellsOptions | undefined, internalOptions: InternalTupleUpdate | null, isColumn?: boolean, isHeld?: boolean): TupleScan;
217
+ /**
218
+ * Scans one cell of a {@link TupleScan}: the next one, major then minor.
219
+ *
220
+ * @returns The value to store, for the caller to place; `null` if the cell is cleared and
221
+ * `undefined` if it is not written - either ends a run of values.
222
+ * @internal
223
+ */
224
+ export declare function scanCell(scan: TupleScan, update: ICell.Update, major: number, minor: number): Scalar | null | undefined;
225
+ /**
226
+ * Writes what a {@link TupleScan} collected, with the values the caller placed, in a transaction
227
+ * of its own; rolled back if the write throws.
228
+ *
229
+ * @param gridTuple The values {@link scanCell} returned, in the SHEET's orientation whatever the
230
+ * scan's was.
231
+ * @param written The cells to report as changed and the selection the write leaves, where they
232
+ * are not `boundsRange`.
233
+ * @internal
234
+ */
235
+ export declare function finishTupleScan(scan: TupleScan, gridTuple: Tuple.GridTuple<Scalar>, bounds: Tuple.OrientatedCoords, boundsRange: IRange.Coords, written?: {
236
+ changes: readonly IRange.Coords[];
237
+ selection: IRange.Coords;
238
+ }): void;
123
239
  /**
124
- * Fill the template's series/pattern into the destination (outward drag of the fill handle). Handles
125
- * merges (tiles them, never splits), date series, previewing, table extension, and copies the
126
- * per-feature style maps into the filled range. Delegates a negative (inward) fill to
127
- * {@link autoFillShrink}. See SHEET-SPLIT-DESIGN §5.4.
240
+ * The central cell-write path: iterates the incoming `ICell.Update` tuples, resolves each cell
241
+ * (parsing text, applying merges/spills), splits out style / hyperlink / formula side-updates, writes
242
+ * values + contentful + calc grids, and delegates the side-updates to {@link updateStyles} /
243
+ * {@link setHyperlinks} / {@link merge}. See SHEET-SPLIT-DESIGN §5.4.
128
244
  * @internal
129
245
  */
130
- export declare function autoFill(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords, options?: ICellRange.AutoFillOptions): boolean | AutoFillProjection;
246
+ export declare function updateTuples(ctx: SheetMutationContext, boundedTuples: Tuple.Region<ICell.Update> | null, options?: ICellRange.UpdateCellsOptions, coordValidator?: CoordUtils.CoordValidator | null | undefined, internalOptions?: InternalTupleUpdate | null): void;
131
247
  /**
132
- * An inward fill — Excel's drag of the fill handle back over the source range. The strip of the
133
- * template beyond the destination edge is vacated: its cells are cleared, not filled.
248
+ * Clear the given content category over each range (`null` = all): delegates styles / hyperlinks /
249
+ * comments / notes to their ops, deletes values + spills + calc, and drops tables / auto-tables
250
+ * inside the cleared area (unless `excludeSorts`). See SHEET-SPLIT-DESIGN §5.4.
251
+ *
252
+ * `cutFrom` is the source of a cut this clear is part of: a table inside it is the cut's to move
253
+ * or remove, so the clear leaves it standing.
134
254
  * @internal
135
255
  */
136
- export declare function autoFillShrink(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords, direction: IRange.Direction, options?: ICellRange.AutoFillOptions): boolean;
256
+ export declare function clear(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], applyTo?: ICell.Content | null, options?: ITransaction.OperationOptions, excludeSorts?: boolean, cutFrom?: IRange.Coords | null): void;
137
257
  //# sourceMappingURL=_SheetMutations.d.ts.map
@@ -5,7 +5,10 @@ import { ICell } from '../cell';
5
5
  import { IStyle } from '../style';
6
6
  import { ICellRange, ICellHeaderRange } from '../cellRange';
7
7
  import { ISheetHeader } from '../sheetHeader';
8
+ import { ScalarListFactory } from './_ScalarListFactory';
8
9
  import { IStringCollection } from '../string';
10
+ import { ITransaction } from '../transaction';
11
+ import { ICalcGrid } from '../calculation/grid';
9
12
  import { RangeState, CellState, State } from './_SheetStateTypes';
10
13
  import { SheetCellOptions } from './SheetCell';
11
14
  /** @internal */
@@ -34,19 +37,21 @@ export interface OverFlowsAndStops {
34
37
  */
35
38
  export interface SheetReadContext {
36
39
  readonly state: Readonly<State>;
40
+ /**
41
+ * The sheet's grid, as an object. NOT part of `state`: one grid serves every version of the
42
+ * sheet, so a scoped read that overrides `state` with a snapshot still gets the live grid here.
43
+ * What it HOLDS versions in its own record; a read that must not make the writes a cell buffer
44
+ * holds asks its reads for that buffer's transaction, beside the `state` it took the same way.
45
+ */
46
+ readonly calcGrid: ICalcGrid;
37
47
  readonly rowHeaders: ISheetHeader;
38
48
  readonly columnHeaders: ISheetHeader;
39
49
  readonly cellOptions: SheetCellOptions;
40
50
  readonly strings: IStringCollection;
51
+ /** Makes the lists cell values are stored as. */
52
+ readonly lists: ScalarListFactory;
41
53
  getEntireCoords(): IRange.Coords;
42
54
  getUsedCoords(options?: ICellRange.GetRangeOptions): IRange.Coords | null;
43
- /**
44
- * The RECONCILED error-VALUE spatial (`RangeState.Type.Error`) — current values are the truth,
45
- * not `state.errorSpatial` (write-path only; stale for formula cells after a recalc). Calling
46
- * this may lazily build the view (a value scan, cached per state version) — which is why
47
- * `Type.Error` is opt-in only and never part of the all-types sweep.
48
- */
49
- getErrorSpatial(): ISpatialMap<boolean>;
50
55
  }
51
56
  /**
52
57
  * The read engine for a {@link Sheet}'s versioned state.
@@ -132,13 +137,14 @@ export declare function getVisible(ctx: SheetReadContext, coords: readonly IRang
132
137
  * `state` defaults to `ctx.state` but can be overridden for a scoped query against a snapshot.
133
138
  * @internal
134
139
  */
135
- export declare function collectRanges(ctx: SheetReadContext, queryCoords: IRange.Coords, rangesByType?: ISpatialMap.Entry<RangeState.Intersection>[], searchTypes?: boolean | RangeState.SearchTypes | null, injectReferences?: IRange.JSONReference<any>[][], state?: Readonly<State>, containedBounds?: IRange.Coords): void;
140
+ export declare function collectRanges(ctx: SheetReadContext, queryCoords: IRange.Coords, rangesByType?: ISpatialMap.Entry<RangeState.Intersection>[], searchTypes?: boolean | RangeState.SearchTypes | null, injectReferences?: IRange.JSONReference<any>[][], state?: Readonly<State>, containedBounds?: IRange.Coords, transaction?: ITransaction | null): void;
136
141
  /**
137
142
  * Iterate the non-overlapping range-state intersections over the bounded region.
138
143
  *
139
144
  * @remarks
140
- * Walks the (optionally visible-only) header spans, collects range types per span via
141
- * {@link collectRanges}, then flattens overlaps into a non-overlapping sequence.
145
+ * Each searched map is queried once over the bounds; `RangeStateSweep` then flattens the entries
146
+ * into a non-overlapping sequence (major-axis bands, minor-axis intervals of constant overlap set),
147
+ * clipped to the visible headers when hidden ones are excluded.
142
148
  * @internal
143
149
  */
144
150
  export declare function rangeStateIterator(ctx: SheetReadContext, options: RangeState.IteratorOptions): RangeState.Iterator;