@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
@@ -4,7 +4,7 @@ import { ITypes } from '../type';
4
4
  import { IListener } from '../listener';
5
5
  import { ITransaction } from '../transaction';
6
6
  import { IHyperlink } from '../hyperlink';
7
- import { IComment } from '../comment';
7
+ import { IComment, ICommentCollection } from '../comment';
8
8
  import { ISort } from '../sort';
9
9
  import { ICondition } from '../condition';
10
10
  import { IAutoFill } from '../autoFill';
@@ -15,6 +15,7 @@ import { IMovable, IMovableCollection } from '../movable';
15
15
  import { IDataValidation, IDataValidationCollection } from '../dataValidation';
16
16
  import { IConditionalFormat } from '../conditionalFormat/IConditionalFormat';
17
17
  import { IConditionalFormatCollection } from '../conditionalFormat/IConditionalFormatCollection';
18
+ import { IProtectedRange, IProtectedRangeCollection } from '../protectedRange';
18
19
  import { ISheet } from '../sheet';
19
20
  import { ICell } from '../cell';
20
21
  import { ICellRanges } from './ICellRanges';
@@ -66,6 +67,18 @@ export interface ICellRange {
66
67
  * * @returns An array of 'IRange.Coords` that contain merges.
67
68
  */
68
69
  getMerges(): IRange.Coords[];
70
+ /**
71
+ * Returns the unlocked ranges (Excel's *Allow Edit Ranges*) that overlap the range.
72
+ *
73
+ * @param options The filters of {@link IProtectedRangeCollection.getItems} without `address` —
74
+ * this range is the address.
75
+ *
76
+ * @remarks
77
+ * See {@link getConditionalFormats} for the overlap and one-entry-per-item rules, which are the
78
+ * same for every ranged item lookup. A cell can also be unlocked by its style
79
+ * (`IStyle.getProtection()`); {@link ICell.isEditAllowed} answers for both.
80
+ */
81
+ getUnlocked(options?: ICellRange.GetItemsOptions<IProtectedRangeCollection.GetItemsOptions>): IProtectedRange[];
69
82
  /**
70
83
  * Returns the {@link IConditionalFormat}s that overlap the range.
71
84
  *
@@ -96,6 +109,17 @@ export interface ICellRange {
96
109
  * same for every ranged item lookup.
97
110
  */
98
111
  getDataValidations(options?: ICellRange.GetItemsOptions<IDataValidationCollection.GetItemsOptions>): IDataValidation[];
112
+ /**
113
+ * Returns the {@link IComment}s on cells within the range.
114
+ *
115
+ * @param options The filters of {@link ICommentCollection.getItems} without `address` — this
116
+ * range is the address.
117
+ *
118
+ * @remarks
119
+ * The items are the sheet's — a scoped view of `getSheet().getComments()`, not a copy. A
120
+ * comment is on one cell, so each appears once, in reading order.
121
+ */
122
+ getComments(options?: ICellRange.GetItemsOptions<ICommentCollection.GetItemsOptions>): IComment[];
99
123
  /**
100
124
  * Returns the {@link ITable}s that overlap the range.
101
125
  *
@@ -173,13 +197,73 @@ export interface ICellRange {
173
197
  * @remarks
174
198
  * When querying the formula this will always be for the top left. However the
175
199
  * set values work for the entire range.
200
+ *
201
+ * Returns the formula object, or `null` for a cell without one. For formula text across the
202
+ * whole range use {@link ICellRange.getFormulas}, which reads `''` for cells without a formula.
176
203
  */
177
204
  getFormula(address?: ICell.Address): ICalculation.IFormula;
205
+ /**
206
+ * Returns the formula text of every cell in the range.
207
+ *
208
+ * @returns A row-major 2D array in the shape of the range.
209
+ *
210
+ * @remarks
211
+ * - Each formula reads as entered, with its leading `=` (`'=SUM(A1:A3)'`), so the result can be
212
+ * passed straight back to {@link ICellRange.setFormulas}.
213
+ * - A cell without a formula reads as an empty string `''`, not `null`. This differs from
214
+ * {@link ICell.getFormulaText} and {@link ICellRange.getFormula}, which return `null`.
215
+ * - Throws if the range holds more than `10000` cells, like {@link ICellRange.getValues}.
216
+ *
217
+ * @see {@link ICellRange.getFormula}
218
+ */
219
+ getFormulas(): string[][];
220
+ /**
221
+ * Returns the number format of the top-left cell.
222
+ *
223
+ * @remarks
224
+ * Reads the top-left cell, the same contract as {@link ICellRange.getValue} and
225
+ * {@link ICellRange.getStyle}. A cell without an authored format reads `'General'`.
226
+ *
227
+ * @see {@link IStyle.getNumberFormat}
228
+ */
229
+ getNumberFormat(): string;
230
+ /**
231
+ * Returns the number format of every cell in the range.
232
+ *
233
+ * @returns A row-major 2D array in the shape of the range.
234
+ *
235
+ * @remarks
236
+ * - A cell without an authored format reads `'General'`.
237
+ * - Throws if the range holds more than `10000` cells, like {@link ICellRange.getValues}.
238
+ *
239
+ * @see {@link IStyle.getNumberFormat}
240
+ */
241
+ getNumberFormats(): string[][];
242
+ /**
243
+ * Sets one number format on every cell in the range.
244
+ *
245
+ * @param numFmt The format code, or `null` to clear it.
246
+ *
247
+ * @see {@link IStyle.setNumberFormat}
248
+ */
249
+ setNumberFormat(numFmt: string | null, options?: IStyle.UpdateOptions): this;
250
+ /**
251
+ * Sets the number format of each cell in the range.
252
+ *
253
+ * @param formats Format codes in row-major order.
254
+ *
255
+ * @remarks
256
+ * An array smaller than the range writes only the cells it covers, as {@link ICellRange.setValues} does.
257
+ *
258
+ * @see {@link ICellRange.setNumberFormat}
259
+ */
260
+ setNumberFormats(formats: readonly string[][], options?: ICellRange.UpdateCellsOptions): this;
178
261
  /**
179
262
  * Parses a formula expression and returns a *transient* formula object anchored at this range's
180
263
  * top-left cell.
181
264
  *
182
265
  * @param expression The formula expression to parse.
266
+ * @param options Optional parse options; the expression is storage text unless `target` is `'display'`.
183
267
  *
184
268
  * @remarks
185
269
  * The anchored convenience form: equivalent to
@@ -196,7 +280,7 @@ export interface ICellRange {
196
280
  * @see {@link ISheet.createFormula}
197
281
  * @see {@link ICalculation.createFormula}
198
282
  */
199
- createFormula(expression: string): ICalculation.IFormula;
283
+ createFormula(expression: string, options?: ICalculation.CreateFormulaOptions): ICalculation.IFormula;
200
284
  /**
201
285
  * Returns the intersection of the current range and the specified range.
202
286
  *
@@ -486,6 +570,27 @@ export interface ICellRange {
486
570
  * merges.
487
571
  */
488
572
  getDefaultSortCriteria(axis?: IRange.Axis, cell?: ICell.Address): ISort.DefaultSortCriteria | null;
573
+ /**
574
+ * Returns the fill this range implies — which cells it would read, which it would cover, the
575
+ * fill types that can be offered for it, and the one to open on.
576
+ *
577
+ * @param direction Which way the series runs. Defaults to the range's own shape: a single row
578
+ * runs `Right`, anything else runs `Down` — or, with a `destination`, to the way it extends.
579
+ * @param destination Fill the range as it is to here — the fill handle's drag. The template is
580
+ * then the WHOLE range, blanks included, rather than its leading run, and `destination` must
581
+ * extend it on exactly one edge as {@link autoFill} requires.
582
+ * @returns `IAutoFill.DefaultCriteria`, or `null` where there is nowhere to fill: the range is
583
+ * one cell deep along `direction`, or `destination` does not extend it — which is also how a
584
+ * surface learns that a direction is not on offer at all.
585
+ * @throws `Error` If `destination` does not share three edges with the range, or `direction` is
586
+ * not the way it extends.
587
+ *
588
+ * @remarks
589
+ * Useful for displaying options to the ui — a Series dialog, or a fill menu deciding what to
590
+ * grey. Nothing is filled and nothing is committed; see {@link autoFill} to run one, and
591
+ * {@link AutoFill.toFillOptions} for the options a chosen {@link IAutoFill.Preset} amounts to.
592
+ */
593
+ getDefaultAutoFillCriteria(direction?: IRange.Direction, destination?: ICellRange.Address): IAutoFill.DefaultCriteria | null;
489
594
  /**
490
595
  * Returns the ranges immediately referenced by the formulas in this range.
491
596
  *
@@ -494,39 +599,39 @@ export interface ICellRange {
494
599
  * rather than a fan-out — the calculation graph is indexed by range, so the cell form is this
495
600
  * one over a 1×1.
496
601
  *
497
- * - Returns `null` when there are none.
602
+ * - Resolves `null` when there are none; see {@link ICell.getDirectPrecedents} for when it resolves.
498
603
  * - **Not filtered against the range itself.** A block containing both a formula and its input
499
604
  * lists that input; "what does this block read" and "what does it read from outside" are
500
605
  * different questions, and the second is {@link getDifferences} away.
501
606
  */
502
- getDirectPrecedents(): ICellRanges | null;
607
+ getDirectPrecedents(): Promise<ICellRanges | null>;
503
608
  /**
504
609
  * Returns the cells that directly reference any cell in this range.
505
610
  *
506
611
  * @remarks
507
612
  * The range form of {@link ICell.getDirectDependents} — the immediate consumers of anything
508
- * this range produces. Returns `null` when there are none.
613
+ * this range produces. Resolves `null` when there are none.
509
614
  */
510
- getDirectDependents(): ICellRanges | null;
615
+ getDirectDependents(): Promise<ICellRanges | null>;
511
616
  /**
512
617
  * Returns all ranges contributing to this range's values, through the full calculation chain.
513
618
  *
514
619
  * @remarks
515
620
  * The range form of {@link ICell.getPrecedents}: a recursive walk upstream to the root data
516
- * sources. Returns `null` when there are none.
621
+ * sources. Resolves `null` when there are none.
517
622
  *
518
623
  * **Reach for this before editing.** The precedents of a block are what its values depend on,
519
624
  * so they are what a change to it can be wrong about.
520
625
  */
521
- getPrecedents(): ICellRanges | null;
626
+ getPrecedents(): Promise<ICellRanges | null>;
522
627
  /**
523
628
  * Returns all cells eventually affected by this range, through the full calculation chain.
524
629
  *
525
630
  * @remarks
526
631
  * The range form of {@link ICell.getDependents}: a recursive walk downstream giving the total
527
- * blast radius of a write here. Returns `null` when there are none.
632
+ * blast radius of a write here. Resolves `null` when there are none.
528
633
  */
529
- getDependents(): ICellRanges | null;
634
+ getDependents(): Promise<ICellRanges | null>;
530
635
  /**
531
636
  * Returns the statistics for the range.
532
637
  *
@@ -541,12 +646,6 @@ export interface ICellRange {
541
646
  * indexes) — they do not overlap.
542
647
  */
543
648
  getStats(options?: ICellRange.GetStatsOptions): IRangeStats;
544
- /**
545
- * Returns a count for of values.
546
- *
547
- * @deprecated Use `getStats`.
548
- */
549
- getCount(): number;
550
649
  /**
551
650
  * Returns per-feature cell counts for the range.
552
651
  *
@@ -595,13 +694,15 @@ export interface ICellRange {
595
694
  * feature-bearing side of the partition.
596
695
  * - **Nothing is computed until the result is iterated or counted.** The returned
597
696
  * {@link ICellRegions} is a lazily backed handle, so building the query costs nothing.
598
- * - **`Contentful` regions are maximal rectangles.** Every other feature's stored blocks stand
599
- * for a payload two adjacent blocks can disagree about — a fill's color, a formula's
600
- * expression — so distinct blocks stay distinct or the region stops being uniform. Occupancy
601
- * is a boolean: any two occupied rectangles agree, so its blocks carry no information and are
602
- * coalesced. A solid `A1:D4` is one region, not the four column strips it is stored as.
603
- * Refinement is unaffected — `[Contentful, Fill]` still partitions by fill and still excludes
604
- * unoccupied cells.
697
+ * - **Regions follow the payload, not how it was written.** A solid `A1:D4` is one
698
+ * `Contentful` region, and a number format applied in three strokes (or loaded from a file
699
+ * that stored it in pieces) is one `NumberFormat` region. The same holds for `Fill` and the
700
+ * other content-style features (`Font`, `Alignment`, `Protection`), and each of those splits
701
+ * only on its own part: a bold column inside a uniform number format does not split the
702
+ * `NumberFormat` region. `Borders` is the exception — a border's edges belong to the block
703
+ * it was applied to, so two equal boxes side by side are two regions. Refinement is
704
+ * unaffected — `[Contentful, Fill]` still partitions by fill and still excludes unoccupied
705
+ * cells.
605
706
  * - Every {@link Feature} partitions — there is no throwing member left. `DateFormat` splits by
606
707
  * format string, the same way `Fill` splits by color; `Error` splits by error value, backed
607
708
  * by the reconciled error index. Scalar kinds (`String`/`Number`/`Boolean`) are not in this
@@ -636,7 +737,7 @@ export interface ICellRange {
636
737
  * @remarks
637
738
  * - `null` values will clear the corresponding cells.
638
739
  * - `undefined` values will be ignored, leaving the existing cell values unchanged.
639
- * - If an array is passed the values will be in row-major order and will repeat if the range is larger than the array
740
+ * - If an array is passed the values will be in row-major order. An array smaller than the range writes only the cells it covers.
640
741
  * - If a single value is passed in it will repeat the entire range.
641
742
  */
642
743
  setValues(values: ICellRange.ValuesUpdate, options?: ICellRange.SetValuesOptions): this;
@@ -668,11 +769,24 @@ export interface ICellRange {
668
769
  * @returns The current `ICellRange`.
669
770
  *
670
771
  * @remarks
671
- * Identical behavior to setValue. Exists for ergonomics
772
+ * Identical behavior to setValue. Exists for ergonomics.
773
+ *
672
774
  * @see
673
775
  * {@link ICellRange.setValue}
674
776
  */
675
777
  setFormula(value: ICellRange.ValuesUpdateOrCallback, options?: ICellRange.SetValuesOptions): this;
778
+ /**
779
+ * Sets the formula of each cell in the range.
780
+ *
781
+ * @param formulas Formula text in row-major order, each with a leading `=`.
782
+ *
783
+ * @remarks
784
+ * The same write as {@link ICellRange.setValues}: text with a leading `=` is entered as a
785
+ * formula, and an array smaller than the range writes only the cells it covers.
786
+ *
787
+ * @see {@link ICellRange.getFormulas}
788
+ */
789
+ setFormulas(formulas: readonly string[][], options?: ICellRange.SetValuesOptions): this;
676
790
  /**
677
791
  * Re-evaluates and formulas within the range.
678
792
  *
@@ -721,7 +835,7 @@ export interface ICellRange {
721
835
  /**
722
836
  * Clear the range.
723
837
  *
724
- * @param applyTo The type of content to clear. Default `ICell.Content.Values`
838
+ * @param applyTo The type of content to clear. Defaults to all`
725
839
  * @returns The current `ICellRange`.
726
840
  */
727
841
  clear(applyTo?: ICell.Content, options?: ITransaction.OperationOptions): this;
@@ -736,15 +850,18 @@ export interface ICellRange {
736
850
  */
737
851
  setHyperlink(hyperlink: IHyperlink.Update, options?: ITransaction.OperationOptions): this;
738
852
  /**
739
- * Update the comments for the range.
853
+ * Sets or clears the comment on the range's first cell.
740
854
  *
741
- * @param comments Comment properties
855
+ * @param comments Comment modifiers, a plain string as the content, or `null` to remove.
742
856
  * @returns The current `ICellRange`.
743
857
  *
744
858
  * @remarks
745
- * **NOT FINISHED**
859
+ * A comment is on one cell, so a value goes on the range's top-left cell — updating the comment
860
+ * there if it has one, adding one otherwise — while `null` clears every comment within the
861
+ * range. The comment itself is the richer surface: `getSheet().getComments()` to add, and
862
+ * {@link ICell.getComments} to reach the one on a cell.
746
863
  */
747
- setComments(comments: IComment.Properties, options?: ITransaction.OperationOptions): this;
864
+ setComments(comments: IComment.Update, options?: ITransaction.OperationOptions): this;
748
865
  /**
749
866
  * Merges all cells within the selection ranges.
750
867
  *
@@ -908,6 +1025,24 @@ export interface ICellRange {
908
1025
  * * Will return `null` if nothing was inserted or the source doesn't have a range.
909
1026
  */
910
1027
  insertFrom(source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.InsertFromOptions): Promise<this | null>;
1028
+ /**
1029
+ * Whether {@link insertFrom} would go through, asked without performing it.
1030
+ *
1031
+ * @param source The source that would be inserted - the same argument `insertFrom` takes.
1032
+ * @param options The same options `insertFrom` would be given; `axis` and `isCut` both change the
1033
+ * answer, so pass the ones the real call will use.
1034
+ * @returns `false` when `insertFrom` would refuse, `true` otherwise.
1035
+ *
1036
+ * @remarks
1037
+ * A drop can be refused for reasons the caller cannot see: a cut whose gap the insert would only
1038
+ * half close, a merge the shift would tear or land inside of, a table it would split. This answers
1039
+ * the same question `insertFrom` asks itself before it commits, which is what lets an interactive
1040
+ * drag show a drop as refused BEFORE the user commits to it, rather than reporting an error after.
1041
+ *
1042
+ * It reports only what can be known up front. A refusal raised deeper in the operation (protection,
1043
+ * or content pushed off the end of the sheet) still surfaces as a thrown error.
1044
+ */
1045
+ canInsertFrom(source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.InsertFromOptions): boolean;
911
1046
  /**
912
1047
  * Copies (or cuts) data and formatting from a specified source to the current range.
913
1048
  *
@@ -1018,11 +1153,17 @@ export interface ICellRange {
1018
1153
  * caller did not ask. To watch a formula belonging to a multi-area rule, fill it first — or use
1019
1154
  * {@link ICellRanges.addWatch}, which does that for every area.
1020
1155
  *
1021
- * Known limits, both from watching the formula's *written* references: a range discovered at
1022
- * evaluation time (`INDIRECT`, `OFFSET`) is not watched, and a volatile formula (`NOW`, `RAND`)
1023
- * has nothing to watch at all. Neither re-fires.
1156
+ * The formula is held by the calculation engine like a formula in a cell: its references follow
1157
+ * row and column inserts and deletes, a reference to deleted cells reads `#REF!`, and undo
1158
+ * restores it. A range the formula discovers at evaluation time (`INDIRECT`, `OFFSET`) is watched
1159
+ * too. A volatile formula (`NOW`, `RAND`) re-evaluates with the engine's pass and does not re-fire
1160
+ * on its own.
1161
+ *
1162
+ * With {@link ICellRange.WatchOptions.arrayFirstCell} each cell is evaluated the way a
1163
+ * conditional-format or data-validation rule evaluates its formula: as an array-entered formula
1164
+ * whose extent is that one cell.
1024
1165
  */
1025
- addWatch(formula: ICalculation.IFormula | string, callback: ICellRange.WatchCallback): IListener.Remove;
1166
+ addWatch(formula: ICalculation.IFormula | string, callback: ICellRange.WatchCallback, options?: ICellRange.WatchOptions): IListener.Remove;
1026
1167
  /**
1027
1168
  * Returns an iterator that allows you to iterate over the individual values within the range.
1028
1169
  *
@@ -1162,7 +1303,7 @@ export interface ICellRange {
1162
1303
  * Checks if the ranges is empty, meaning it has no values or formatting.
1163
1304
  *
1164
1305
  * @remarks
1165
- * Convenience ```getUsedRange() !== null``` or `getCount() === 0`.
1306
+ * Convenience ```getUsedRange() === null```.
1166
1307
  *
1167
1308
  * @see
1168
1309
  * {@link ICellRange.getUsedRange}
@@ -1322,10 +1463,70 @@ export declare namespace ICellRange {
1322
1463
  * dropped because the range **is** the address — a second one would be a contradictory scope.
1323
1464
  */
1324
1465
  type GetItemsOptions<T> = Omit<T, 'address'>;
1466
+ /**
1467
+ * Options shared by every operation on a range.
1468
+ *
1469
+ * @remarks
1470
+ * `autoSelect` and `autoFit` are *directives*: they name something to do once the operation
1471
+ * completes rather than a change the operation makes. Both are resolved once, for the whole
1472
+ * operation, and neither adds an undo entry of its own - a batch that sets values and fits
1473
+ * the columns is one undo step that puts both back.
1474
+ */
1475
+ interface OperationOptions extends ITransaction.OperationOptions {
1476
+ /**
1477
+ * Select the affected range once the operation completes.
1478
+ *
1479
+ * @defaultValue `false` - the selection is left alone.
1480
+ *
1481
+ * @remarks
1482
+ * The selection is applied once, after the whole operation - within a batch, the last
1483
+ * operation to ask for one wins. It is applied only if the selection is still where it was
1484
+ * when the operation began: a user who moved while it ran keeps where they went.
1485
+ *
1486
+ * Pass it for an edit the user made. A script that passes neither this nor
1487
+ * {@link autoSelectRestore} never moves the user, whether it runs, is undone or is redone.
1488
+ */
1489
+ autoSelect?: boolean | ICellRange.SelectOptions;
1490
+ /**
1491
+ * Select the affected range when the operation is undone or redone.
1492
+ *
1493
+ * @defaultValue {@link autoSelect}
1494
+ *
1495
+ * @remarks
1496
+ * An undo lands where the operation began - for most operations the range they affected, for
1497
+ * an auto-fill the template it was dragged from - and a redo where it left the user. Within a
1498
+ * batch an undo lands where the first operation to ask says, a redo where the last one does.
1499
+ *
1500
+ * For an edit made from where the user already is, pass this without {@link autoSelect}: a
1501
+ * value typed into a cell of a selected block leaves the block selected, and undoing it
1502
+ * selects the cell.
1503
+ */
1504
+ autoSelectRestore?: boolean | ICellRange.SelectOptions;
1505
+ /**
1506
+ * Fit the affected columns and rows to their content once the operation completes.
1507
+ *
1508
+ * @defaultValue `false` - sizes are left alone.
1509
+ *
1510
+ * @remarks
1511
+ * The fit runs once, as the last write of the operation, so it measures the finished
1512
+ * content and its sizes belong to the same undo entry - one undo puts both the content
1513
+ * and the widths back.
1514
+ *
1515
+ * If set to `true` then autoFit will mimic the UI with the following options:
1516
+ ```
1517
+ {
1518
+ skipCustomSize: true,
1519
+ expandOnly: true,
1520
+ minContent: true
1521
+ }
1522
+ ```
1523
+ */
1524
+ autoFit?: boolean | ICellRange.AutoFitOptions;
1525
+ }
1325
1526
  /**
1326
1527
  * Options for adding an auto table to a range.
1327
1528
  */
1328
- interface AddAutoTableOptions extends ITransaction.OperationOptions {
1529
+ interface AddAutoTableOptions extends ICellRange.OperationOptions {
1329
1530
  /**
1330
1531
  * Include sort options.
1331
1532
  */
@@ -1342,7 +1543,7 @@ export declare namespace ICellRange {
1342
1543
  /**
1343
1544
  * Options for `ICellRange.delete`.
1344
1545
  */
1345
- interface InsertOptions extends ITransaction.OperationOptions {
1546
+ interface InsertOptions extends ICellRange.OperationOptions {
1346
1547
  /**
1347
1548
  * The direction in which to shift existing cells.
1348
1549
  *
@@ -1371,7 +1572,7 @@ export declare namespace ICellRange {
1371
1572
  /**
1372
1573
  * Options for `ICellRange.delete`.
1373
1574
  */
1374
- interface DeleteOptions extends ITransaction.OperationOptions {
1575
+ interface DeleteOptions extends ICellRange.OperationOptions {
1375
1576
  /**
1376
1577
  * The direction in which to shift existing cells.
1377
1578
  *
@@ -1474,8 +1675,9 @@ export declare namespace ICellRange {
1474
1675
  * @defaultValue false
1475
1676
  *
1476
1677
  * @remarks
1477
- * If `true` then tables and sheet boundaries will be ignored mimicking the behavior
1478
- * of 'Ctrl+Shift+*'.
1678
+ * If `true`, the region is the contiguous block of content around the range (Excel's
1679
+ * 'Ctrl+Shift+*' current region): tables are not treated as regions of their own, and a range
1680
+ * with no content nearby returns itself rather than the entire sheet.
1479
1681
  */
1480
1682
  contentOnly?: boolean;
1481
1683
  }
@@ -1491,7 +1693,7 @@ export declare namespace ICellRange {
1491
1693
  /**
1492
1694
  * Options for {@link ICellRange.ISnapshot.copyTo}.
1493
1695
  */
1494
- interface CopyOptions extends ITransaction.OperationOptions, ReferenceableClipboard.CopyOptions {
1696
+ interface CopyOptions extends ICellRange.OperationOptions, ReferenceableClipboard.CopyOptions {
1495
1697
  /**
1496
1698
  * When pasting from a smaller range to a larger range copy will repeat or 'wallpaper' the
1497
1699
  * source values.
@@ -1546,7 +1748,7 @@ export declare namespace ICellRange {
1546
1748
  /**
1547
1749
  * Options for {@link ICellRange.setValues}.
1548
1750
  */
1549
- interface SetValuesOptions extends ITransaction.OperationOptions {
1751
+ interface SetValuesOptions extends ICellRange.OperationOptions {
1550
1752
  /**
1551
1753
  * By default setValue will attempt to parse text values into a native type.
1552
1754
  * This can be disabled or customized using the parseText flag.
@@ -1562,21 +1764,6 @@ export declare namespace ICellRange {
1562
1764
  * Both {@link SetValuesOptions} and {@link GetValuesOptions} allow for {@link IRange.Axis}s.
1563
1765
  */
1564
1766
  axis?: IRange.Axis;
1565
- /**
1566
- * Convenience method that calls autoFit after the setValues.
1567
- * @defaultValue `none` - No autofit.
1568
- *
1569
- * @remarks
1570
- * If set to `true` then autoFit will mimic the UI with the following options:
1571
- ```
1572
- {
1573
- skipCustomSize: true,
1574
- expandOnly: true,
1575
- minContent: true
1576
- }
1577
- ```
1578
- */
1579
- autoFit?: boolean | ICellRange.AutoFitOptions;
1580
1767
  /**
1581
1768
  * Skip the bounds check when setting values.
1582
1769
  *
@@ -1587,6 +1774,43 @@ export declare namespace ICellRange {
1587
1774
  * size requires processing the entire dataset.
1588
1775
  */
1589
1776
  skipBoundsCheck?: boolean;
1777
+ /**
1778
+ * Enter a single formula as an array formula (Excel's Ctrl+Shift+Enter) over the whole range.
1779
+ *
1780
+ * @defaultValue `false`
1781
+ *
1782
+ * @remarks
1783
+ * The range is the block's extent and the formula sits at its top-left; the result is fitted
1784
+ * to the extent rather than spilling from it - a dimension of 1 broadcasts, a longer one is
1785
+ * clipped, a shorter one is padded with `#N/A` - and the block never resizes. Its cells can
1786
+ * only be changed as a whole: overwriting, clearing, or inserting/deleting through part of a
1787
+ * block is refused ("You can't change part of an array"); rewriting it through this option
1788
+ * with the same range replaces it.
1789
+ *
1790
+ * Only meaningful for {@link ICellRange.setFormula} with one formula.
1791
+ */
1792
+ arrayFixed?: boolean;
1793
+ /**
1794
+ * Give each entered formula the number format of the first cell it reads that has one, or
1795
+ * failing that the format its result carries, once it has been calculated.
1796
+ *
1797
+ * @defaultValue `false` - the cell keeps the format it has.
1798
+ *
1799
+ * @remarks
1800
+ * What typing a formula into a cell does: `=A1*2` shows currency when `A1` does, `=NOW()`
1801
+ * shows a date, `=DATE(2024,1,15)` a short date. A cell the formula reads ranks ahead of a
1802
+ * function's format (`=A1+TODAY()` is currency when `A1` is); references are taken in the
1803
+ * order written, a range stands for its top-left cell, and a reference a function only
1804
+ * points at (`=ROW(A1)`, `=OFFSET(A1,0,0)`) does not count. The format becomes the cell's
1805
+ * own, exactly as if set by hand, so it stays when the formula is replaced by a value and is
1806
+ * part of the same undo entry as the formula. A format the cell already had wins.
1807
+ *
1808
+ * Only the formulas this operation enters are formatted, and only when they are first
1809
+ * compiled and calculated - a later recalculation of the same cell changes nothing, and
1810
+ * neither does formatting a cell it reads. Pair with {@link OperationOptions.autoFit} to also
1811
+ * widen a column the formatted result no longer fits.
1812
+ */
1813
+ autoFormat?: boolean;
1590
1814
  }
1591
1815
  /**
1592
1816
  * Options for {@link ICellRange.getValues}.
@@ -1729,7 +1953,7 @@ export declare namespace ICellRange {
1729
1953
  /**
1730
1954
  * Options for {@link ICellRange.autoFill}.
1731
1955
  */
1732
- interface AutoFillOptions extends ITransaction.OperationOptions {
1956
+ interface AutoFillOptions extends ICellRange.OperationOptions {
1733
1957
  /**
1734
1958
  * Provide custom fillers.
1735
1959
  *
@@ -1743,11 +1967,21 @@ export declare namespace ICellRange {
1743
1967
  */
1744
1968
  fillerOptions?: IAutoFill.Options;
1745
1969
  /**
1746
- * If `true` then will only copy values and not formatting.
1970
+ * Which part of the cells the fill carries — the same selector {@link CopyOptions.type} takes.
1747
1971
  *
1748
- * @defaultValue false (unless starting within a table)
1972
+ * @defaultValue Everything: values, formulas and formatting.
1973
+ *
1974
+ * @remarks
1975
+ * * {@link ICell.Content.Formats} is Excel's *Fill Formatting Only*: the template's formatting
1976
+ * (styles, number formats, merges, conditional formats and validations) is tiled into the
1977
+ * destination and the values already there are left alone. The `filler` is not consulted.
1978
+ * * {@link ICell.Content.Values} is *Fill Without Formatting*: the series is written and the
1979
+ * destination keeps its own formatting — a date series lands as plain serials in a cell that
1980
+ * has no date format of its own.
1981
+ * * On a shrinking destination the vacated cells lose only the selected part.
1982
+ * * Any other member throws — a fill has no notion of copying just hyperlinks or comments.
1749
1983
  */
1750
- contentsOnly?: boolean;
1984
+ type?: ICell.Content;
1751
1985
  /**
1752
1986
  * Compute the fill but commit nothing — the returned range is a projection of the result.
1753
1987
  *
@@ -1874,7 +2108,7 @@ export declare namespace ICellRange {
1874
2108
  /**
1875
2109
  * Options for {@link ICellRange.textToColumns}.
1876
2110
  */
1877
- interface TextToColumnsOptions extends ITransaction.OperationOptions {
2111
+ interface TextToColumnsOptions extends ICellRange.OperationOptions {
1878
2112
  /**
1879
2113
  * The character used to split the text.
1880
2114
  *
@@ -1940,7 +2174,7 @@ export declare namespace ICellRange {
1940
2174
  /**
1941
2175
  * Options for {@link ICellRange.removeDuplicates}.
1942
2176
  */
1943
- interface RemoveDuplicatesOptions extends ITransaction.OperationOptions {
2177
+ interface RemoveDuplicatesOptions extends ICellRange.OperationOptions {
1944
2178
  /**
1945
2179
  * Indicates if the range has a header row.
1946
2180
  *
@@ -2229,13 +2463,18 @@ export declare namespace ICellRange {
2229
2463
  /** Direct fill. */
2230
2464
  readonly Fill: "fill";
2231
2465
  /** Direct borders. */
2232
- readonly Border: "border";
2466
+ readonly Borders: "borders";
2233
2467
  /** Direct number format. Region payloads carry the format string and its category. */
2234
2468
  readonly NumberFormat: "numberFormat";
2235
2469
  /** Direct alignment. */
2236
2470
  readonly Alignment: "alignment";
2237
2471
  /** Direct font. */
2238
2472
  readonly Font: "font";
2473
+ /**
2474
+ * Direct cell protection format (`IStyle.getProtection()`): always unlocked, show formulas.
2475
+ * A cell with none of its own reads its named style's, then Normal's.
2476
+ */
2477
+ readonly Protection: "protection";
2239
2478
  /** Merged spans. */
2240
2479
  readonly Merge: "merge";
2241
2480
  /** Table membership. */
@@ -2246,7 +2485,10 @@ export declare namespace ICellRange {
2246
2485
  readonly Hyperlink: "hyperlink";
2247
2486
  /** Has comments. */
2248
2487
  readonly Comments: "comments";
2249
- /** Explicitly unlocked cells — *can I write here* is a precondition, not a detail. */
2488
+ /**
2489
+ * Unlocked cells — covered by an unlocked range, or with an always-unlocked style. *Can I write
2490
+ * here* is a precondition, not a detail.
2491
+ */
2250
2492
  readonly Unlock: "unlock";
2251
2493
  /** Cells under conditional-format rules. */
2252
2494
  readonly Conditionals: "conditionals";
@@ -2526,19 +2768,34 @@ export declare namespace ICellRange {
2526
2768
  interface WatchCallback {
2527
2769
  (values: IRange): void;
2528
2770
  }
2771
+ /**
2772
+ * Options for {@link ICellRange.addWatch}.
2773
+ */
2774
+ interface WatchOptions {
2775
+ /**
2776
+ * Evaluate each cell of the range as an array-entered formula whose extent is that one cell.
2777
+ *
2778
+ * @remarks
2779
+ * This is how a conditional-format or data-validation formula is evaluated. Nothing
2780
+ * implicitly intersects — a range reads as the whole array wherever it appears — and each
2781
+ * cell keeps the top-left value of its own result, the way an array-entered formula fits its
2782
+ * result to its extent. So `$J$1:$J$9="x"` answers `J1="x"` in every cell, while
2783
+ * `SUM(IF($J$1:$J$9="x",1,0))>1` still sums the whole array. A relative range moves with the
2784
+ * cell, so `$J1:$J9="x"` answers each row's own `J` cell.
2785
+ *
2786
+ * By default a cell whose result is an array spills, as a formula filled across the range
2787
+ * would.
2788
+ *
2789
+ * @defaultValue `false`
2790
+ */
2791
+ arrayFirstCell?: boolean;
2792
+ }
2529
2793
  /**
2530
2794
  * Options to control which events trigger a listener. By default, all
2531
2795
  * event types will trigger the listener. Setting any of these options to
2532
2796
  * `true` will *prevent* the listener from being called for that event type.
2533
2797
  */
2534
2798
  interface ListenerOptions {
2535
- /**
2536
- * The actual range can also change due to insert/removes or delete of a sheet.
2537
- * Setting absoluteCoords to `true` will ignore shifts in the range.
2538
- *
2539
- * @defaultValue false
2540
- */
2541
- ignoreShifts?: boolean;
2542
2799
  /**
2543
2800
  * If `true`, the listener will *not* be called when the range's
2544
2801
  * address changes (due to row/column insert/delete, or moves)