@sheetxl/sdk 0.7.28-beta.4 → 0.8.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
  3. package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
  4. package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
  5. package/browser/cjs/Dg3GaW0QWwnlqetX.cjs +1 -0
  6. package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/{DBIu6NUHIcxOOBQp.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
  9. package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
  10. package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
  11. package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
  12. package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
  13. package/browser/esm/{CHSahmMFYNB0Ajkf.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
  14. package/browser/esm/index.mjs +871 -696
  15. package/browser/esm/{CKk58ZLcrllMzfou.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
  18. package/node/esm/{DUYP6faJJHCaW1Xf.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
  19. package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
  20. package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
  21. package/node/esm/index.mjs +53973 -38584
  22. package/package.json +6 -7
  23. package/resources/locales/de/model.msg.json +45 -9
  24. package/resources/locales/en/model.msg.json +42 -9
  25. package/types/scripting-api.json +7093 -0
  26. package/types/scripting-enums.json +54 -4
  27. package/types/scripting.d.ts +7185 -1079
  28. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  29. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  30. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  31. package/types/src/autoFill/AutoFill.d.ts +316 -32
  32. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  33. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
  34. package/types/src/border/index.d.ts +1 -1
  35. package/types/src/calculation/Calculation.d.ts +745 -35
  36. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  37. package/types/src/calculation/FormulaText.d.ts +74 -0
  38. package/types/src/calculation/ICalculation.d.ts +318 -81
  39. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  40. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  41. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  42. package/types/src/calculation/TokenType.d.ts +9 -0
  43. package/types/src/calculation/Types.d.ts +83 -2
  44. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  45. package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
  46. package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
  47. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  48. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  49. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  50. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  51. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  52. package/types/src/calculation/compiler/Types.d.ts +79 -9
  53. package/types/src/calculation/executor/CalcExecutor.d.ts +422 -34
  54. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  55. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  56. package/types/src/calculation/formula/Formula.d.ts +58 -21
  57. package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
  58. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  59. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  60. package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
  61. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  62. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  63. package/types/src/calculation/formula/index.d.ts +1 -0
  64. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  65. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  66. package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
  67. package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
  68. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  69. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  70. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  71. package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
  72. package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
  73. package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
  74. package/types/src/calculation/grid/index.d.ts +4 -0
  75. package/types/src/calculation/index.d.ts +2 -0
  76. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  77. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  78. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  79. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  80. package/types/src/calculation/spatial/index.d.ts +1 -0
  81. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  82. package/types/src/calculation/state/CalcNode.d.ts +160 -29
  83. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  84. package/types/src/calculation/state/CalcState.d.ts +22 -1
  85. package/types/src/calculation/state/CalculationContext.d.ts +39 -3
  86. package/types/src/calculation/state/IContextContainer.d.ts +159 -26
  87. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  88. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  89. package/types/src/calculation/state/index.d.ts +1 -0
  90. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  91. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  92. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  93. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  94. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  95. package/types/src/calculation/symbol/index.d.ts +3 -2
  96. package/types/src/cell/ICell.d.ts +78 -23
  97. package/types/src/cell/ICellProtection.d.ts +50 -10
  98. package/types/src/cellRange/ICellRange.d.ts +368 -90
  99. package/types/src/cellRange/ICellRanges.d.ts +9 -7
  100. package/types/src/chart/Chart.d.ts +72 -2
  101. package/types/src/chart/ChartCollection.d.ts +26 -0
  102. package/types/src/chart/IChart.d.ts +162 -9
  103. package/types/src/chart/IChartCollection.d.ts +25 -0
  104. package/types/src/chart/_ChartXml.d.ts +70 -0
  105. package/types/src/chart/index.d.ts +1 -3
  106. package/types/src/collections/ArraysGrid.d.ts +1 -1
  107. package/types/src/collections/IGrid.d.ts +1 -1
  108. package/types/src/collections/ISparseGrid.d.ts +9 -0
  109. package/types/src/collections/ISpatialMap.d.ts +59 -21
  110. package/types/src/collections/ImmutableList.d.ts +28 -0
  111. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  112. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  113. package/types/src/collections/RepeatingList.d.ts +7 -0
  114. package/types/src/collections/ScalarGrid.d.ts +50 -0
  115. package/types/src/collections/SparseGrid.d.ts +1 -1
  116. package/types/src/collections/SpatialMap.d.ts +13 -21
  117. package/types/src/collections/Tuple.d.ts +128 -16
  118. package/types/src/collections/_GridUtils.d.ts +19 -6
  119. package/types/src/collections/_RangeSweep.d.ts +97 -0
  120. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  121. package/types/src/collections/index.d.ts +1 -0
  122. package/types/src/comment/Comment.d.ts +159 -0
  123. package/types/src/comment/CommentCollection.d.ts +40 -0
  124. package/types/src/comment/IComment.d.ts +319 -48
  125. package/types/src/comment/ICommentCollection.d.ts +90 -0
  126. package/types/src/comment/_CommentUtils.d.ts +28 -0
  127. package/types/src/comment/index.d.ts +1 -0
  128. package/types/src/condition/AnchoredConditional.d.ts +76 -17
  129. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
  130. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
  131. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
  132. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
  133. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
  134. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
  135. package/types/src/condition/Condition.d.ts +16 -0
  136. package/types/src/condition/ICondition.d.ts +86 -33
  137. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  138. package/types/src/condition/_ConditionUtils.d.ts +73 -10
  139. package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
  140. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  141. package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
  142. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  143. package/types/src/dataValidation/DataValidation.d.ts +50 -3
  144. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  145. package/types/src/dataValidation/IDataValidation.d.ts +119 -30
  146. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  147. package/types/src/date/DateUtils.d.ts +20 -0
  148. package/types/src/date/_DateUtils.d.ts +91 -7
  149. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  150. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  151. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  152. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  153. package/types/src/externalBook/index.d.ts +1 -0
  154. package/types/src/fill/IStroke.d.ts +1 -1
  155. package/types/src/filter/IFilter.d.ts +29 -4
  156. package/types/src/font/IFont.d.ts +17 -0
  157. package/types/src/history/IHistory.d.ts +3 -2
  158. package/types/src/i18n/LanguagePack.d.ts +12 -4
  159. package/types/src/index.d.ts +3 -0
  160. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  161. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  162. package/types/src/io/EmbeddedPart.d.ts +20 -0
  163. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  164. package/types/src/io/IWorkbookIO.d.ts +185 -18
  165. package/types/src/io/WorkbookIO.d.ts +9 -0
  166. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  167. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  168. package/types/src/io/_XmlFragment.d.ts +49 -0
  169. package/types/src/io/index.d.ts +1 -0
  170. package/types/src/lib/file/file.browser.d.ts +19 -5
  171. package/types/src/lib/file/file.node.d.ts +5 -0
  172. package/types/src/lib/utils/_Utils.d.ts +18 -0
  173. package/types/src/lib/utils/utils.browser.d.ts +9 -3
  174. package/types/src/license/license-key.d.ts +27 -0
  175. package/types/src/listener/IListener.d.ts +12 -7
  176. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  177. package/types/src/model/AbstractModel.d.ts +14 -5
  178. package/types/src/movable/Control.d.ts +57 -0
  179. package/types/src/movable/IControl.d.ts +84 -0
  180. package/types/src/movable/IMovable.d.ts +23 -1
  181. package/types/src/movable/IMovableCollection.d.ts +2 -0
  182. package/types/src/movable/Movable.d.ts +4 -6
  183. package/types/src/movable/MovableCollection.d.ts +7 -7
  184. package/types/src/movable/index.d.ts +4 -0
  185. package/types/src/named/AbstractNamed.d.ts +1 -1
  186. package/types/src/named/INamed.d.ts +4 -1
  187. package/types/src/named/INamedCollection.d.ts +26 -0
  188. package/types/src/named/NamedCollection.d.ts +16 -15
  189. package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
  190. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  191. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  192. package/types/src/person/IPerson.d.ts +99 -0
  193. package/types/src/person/IPersonCollection.d.ts +51 -0
  194. package/types/src/person/Person.d.ts +32 -0
  195. package/types/src/person/PersonCollection.d.ts +49 -0
  196. package/types/src/person/index.d.ts +3 -0
  197. package/types/src/picture/IPicture.d.ts +2 -0
  198. package/types/src/picture/Picture.d.ts +2 -0
  199. package/types/src/pivot/IPivotTable.d.ts +107 -0
  200. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  201. package/types/src/pivot/PivotTable.d.ts +57 -0
  202. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  203. package/types/src/pivot/index.d.ts +6 -0
  204. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  205. package/types/src/primitives/Criteria.d.ts +1 -1
  206. package/types/src/primitives/LambdaBrand.d.ts +21 -0
  207. package/types/src/primitives/PrimitiveUtils.d.ts +60 -21
  208. package/types/src/primitives/Range.d.ts +105 -25
  209. package/types/src/primitives/RangeStats.d.ts +24 -1
  210. package/types/src/primitives/ReferenceRange.d.ts +42 -0
  211. package/types/src/primitives/Runtime.d.ts +15 -2
  212. package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
  213. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  214. package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
  215. package/types/src/primitives/stats/index.d.ts +1 -0
  216. package/types/src/print/IPrint.d.ts +0 -22
  217. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  218. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  219. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  220. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  221. package/types/src/protection/DefaultProtection.d.ts +12 -1
  222. package/types/src/protection/IProtection.d.ts +36 -2
  223. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  224. package/types/src/reference/index.d.ts +2 -0
  225. package/types/src/resource/IResource.d.ts +21 -1
  226. package/types/src/resource/IResourceCollection.d.ts +9 -1
  227. package/types/src/resource/ResourceCollection.d.ts +6 -6
  228. package/types/src/scripting/FunctionArguments.d.ts +22 -0
  229. package/types/src/scripting/FunctionCollection.d.ts +41 -11
  230. package/types/src/scripting/IFunctionCollection.d.ts +41 -0
  231. package/types/src/scripting/IModule.d.ts +25 -0
  232. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  233. package/types/src/scripting/IScript.d.ts +18 -0
  234. package/types/src/scripting/Module.d.ts +34 -6
  235. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  236. package/types/src/scripting/Runtime.d.ts +15 -0
  237. package/types/src/scripting/Scripts.d.ts +2 -0
  238. package/types/src/scripting/TypedFunction.d.ts +197 -4
  239. package/types/src/scripting/_FunctionIndex.d.ts +5 -0
  240. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  241. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  242. package/types/src/scripting/declarations.browser.d.ts +10 -0
  243. package/types/src/scripting/declarations.d.ts +49 -0
  244. package/types/src/scripting/declarations.node.d.ts +9 -0
  245. package/types/src/scripting/index.d.ts +3 -0
  246. package/types/src/selection/IRangeSelection.d.ts +9 -4
  247. package/types/src/selection/RangeSelection.d.ts +2 -0
  248. package/types/src/shape/IShape.d.ts +41 -3
  249. package/types/src/shape/Shape.d.ts +10 -0
  250. package/types/src/shape/_ShapeXml.d.ts +28 -0
  251. package/types/src/sheet/CellRegion.d.ts +6 -0
  252. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  253. package/types/src/sheet/ISheet.d.ts +224 -41
  254. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  255. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  256. package/types/src/sheet/Sheet.d.ts +757 -114
  257. package/types/src/sheet/SheetCell.d.ts +81 -21
  258. package/types/src/sheet/SheetCollection.d.ts +19 -8
  259. package/types/src/sheet/SheetRange.d.ts +65 -14
  260. package/types/src/sheet/SheetRanges.d.ts +4 -6
  261. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  262. package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
  263. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  264. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  265. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  266. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  267. package/types/src/sheet/_SheetAutoFitUtils.d.ts +28 -0
  268. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  269. package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
  270. package/types/src/sheet/_SheetIntents.d.ts +250 -0
  271. package/types/src/sheet/_SheetMutations.d.ts +179 -59
  272. package/types/src/sheet/_SheetStateReader.d.ts +16 -10
  273. package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
  274. package/types/src/sheet/_SheetUtils.d.ts +2 -18
  275. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  276. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  277. package/types/src/sheet/spatial/index.d.ts +1 -0
  278. package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
  279. package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
  280. package/types/src/sheet/style/_Resolvers.d.ts +5 -3
  281. package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
  282. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
  283. package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
  284. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  285. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  286. package/types/src/sheetView/ISheetView.d.ts +45 -1
  287. package/types/src/sheetView/SheetView.d.ts +11 -0
  288. package/types/src/slicer/ISlicer.d.ts +2 -0
  289. package/types/src/slicer/Slicer.d.ts +2 -0
  290. package/types/src/sort/ISort.d.ts +2 -0
  291. package/types/src/string/IStringCollection.d.ts +5 -0
  292. package/types/src/string/StringCollection.d.ts +6 -6
  293. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  294. package/types/src/style/IStyle.d.ts +30 -10
  295. package/types/src/style/IStyleCollection.d.ts +63 -42
  296. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  297. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  298. package/types/src/style/StyleCollection.d.ts +41 -5
  299. package/types/src/style/TableStyleCollection.d.ts +49 -0
  300. package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
  301. package/types/src/style/index.d.ts +4 -0
  302. package/types/src/table/AnchoredTable.d.ts +644 -68
  303. package/types/src/table/AutoTable.d.ts +5 -5
  304. package/types/src/table/ITable.d.ts +228 -30
  305. package/types/src/table/ITableCollection.d.ts +2 -0
  306. package/types/src/table/TableCollection.d.ts +19 -8
  307. package/types/src/table/_FilterField.d.ts +7 -5
  308. package/types/src/table/_NamedTable.d.ts +17 -1
  309. package/types/src/table/_NamedTableSource.d.ts +1 -0
  310. package/types/src/table/_SortField.d.ts +2 -0
  311. package/types/src/table/_TableColumn.d.ts +13 -2
  312. package/types/src/table/_TableMessages.d.ts +1 -0
  313. package/types/src/table/_TableUtils.d.ts +40 -0
  314. package/types/src/text/Bullet.d.ts +4 -0
  315. package/types/src/text/ITextFrame.d.ts +25 -1
  316. package/types/src/text/TextBoxAlignment.d.ts +15 -6
  317. package/types/src/text/TextFrame.d.ts +4 -0
  318. package/types/src/text/TextLine.d.ts +4 -0
  319. package/types/src/text/TextParagraph.d.ts +4 -0
  320. package/types/src/text/TextRun.d.ts +9 -0
  321. package/types/src/text/TextStacked.d.ts +83 -0
  322. package/types/src/text/index.d.ts +1 -0
  323. package/types/src/theme/ITheme.d.ts +2 -0
  324. package/types/src/theme/IThemeCollection.d.ts +2 -0
  325. package/types/src/theme/ThemeCollection.d.ts +8 -7
  326. package/types/src/transaction/ITransaction.d.ts +238 -36
  327. package/types/src/transaction/Transaction.d.ts +99 -11
  328. package/types/src/type/AbstractCollection.d.ts +101 -0
  329. package/types/src/type/ICollection.d.ts +117 -0
  330. package/types/src/type/ITypes.d.ts +9 -7
  331. package/types/src/type/index.d.ts +1 -0
  332. package/types/src/utils/_CSSUtils.d.ts +3 -3
  333. package/types/src/workbook/IWorkbook.d.ts +171 -40
  334. package/types/src/workbook/Workbook.d.ts +103 -7
  335. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  336. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  337. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  338. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  339. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  340. package/browser/cjs/BF14ZEAnaqxXroSj.cjs +0 -1
  341. package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
  342. package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
  343. package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
  344. package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
  345. package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
  346. package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
  347. package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
  348. package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
  349. package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
  350. package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
  351. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  352. package/types/src/dataValidation/_Utils.d.ts +0 -10
  353. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  354. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  355. package/types/src/sheet/listener/index.d.ts +0 -3
@@ -0,0 +1,80 @@
1
+ import { IExternalBookCollection, ExternalScopeParts } from '../../externalBook';
2
+ import { ExternalBookCollection } from '../../externalBook/ExternalBookCollection';
3
+ import { SheetSymbolHandle } from './SheetSymbolProvider';
4
+ /**
5
+ * The stable-id prefix that marks a sheet symbol as living in an external book.
6
+ *
7
+ * @remarks
8
+ * `ext:<bookId>` is the book-scoped form (`[1]!Name`); `ext:<bookId>:<sheetIndex>` adds a sheet, and
9
+ * `ext:<bookId>:<first>:<last>` is a 3-D span across the book's sheets (`[1]Alpha:Data Sheet`). The
10
+ * prefix is the test every consumer uses — "is this scope external" is a `startsWith`, which is why
11
+ * external books needed no new {@link SymbolType} and no new branch in the twenty-odd places that
12
+ * ask the Sheet provider (DESIGN-EXTERNAL-LINKS §4B).
13
+ */
14
+ export declare const EXTERNAL_ID_PREFIX = "ext:";
15
+ /** Is this stable id an external sheet or book? */
16
+ export declare const isExternalSymbolId: (stableId: string | null | undefined) => boolean;
17
+ /**
18
+ * The book id and sheet positions inside an `ext:` stable id, or `null` if it is not one.
19
+ *
20
+ * @remarks
21
+ * A book is `sheetIndex` and `sheetEnd` of `-1`; a sheet has both equal; a 3-D span has the first and
22
+ * last sheet. A uuid carries no `:`, so every `:` after the book id is a separator.
23
+ */
24
+ export declare function splitExternalSymbolId(stableId: string): {
25
+ bookId: string;
26
+ sheetIndex: number;
27
+ sheetEnd: number;
28
+ } | null;
29
+ /**
30
+ * The stable id of a book (`sheetIndex < 0`), of one of its sheets, or of a 3-D span from
31
+ * `sheetIndex` to `sheetEnd` — the inverse of {@link splitExternalSymbolId}.
32
+ */
33
+ export declare const externalSymbolId: (bookId: string, sheetIndex: number, sheetEnd?: number) => string;
34
+ /**
35
+ * The authoring half of {@link bindExternalScope}: how a scope that names no existing book, or a
36
+ * sheet no book lists, becomes one. Supplied by the engine from the collection it owns.
37
+ */
38
+ export interface ExternalBookMinter {
39
+ /** A new book for a typed `<dir>[<file>]` — answers its id. */
40
+ addBook(parts: ExternalScopeParts): string;
41
+ /** Records `sheetName` on an existing book — answers the sheet's index. */
42
+ addSheet(bookId: string, sheetName: string): number;
43
+ }
44
+ /**
45
+ * Binds a sheet scope that names an external book, or `null` if it names none of this workbook's.
46
+ *
47
+ * @remarks
48
+ * Every spelling a book answers to binds to the SAME id, so the storage form (`[1]Sheet1`), the
49
+ * closed display form (`C:\dir\[Book.xlsx]Sheet1`) and the open one (`[Book.xlsx]Sheet1`) are three
50
+ * ways of writing one symbol — which is the invariant that lets a handle's `toString()` be fed
51
+ * straight back to `bind` (see {@link SheetSymbolProvider}).
52
+ *
53
+ * A position that does not exist (`[7]` of three books) answers `null`: the typed image is kept
54
+ * verbatim, the reference is `#REF!`, and the writer warns. A file name matching more than one book
55
+ * answers `null` too — the citation is genuinely ambiguous and `[n]` is the only spelling that is
56
+ * not — unless the typed directory picks one of them out.
57
+ *
58
+ * A 3-D span (`[1]Alpha:Data Sheet`) binds to one id with its sheets in the book's own order, so
59
+ * `[1]Data Sheet:Alpha` is the same symbol; both sheets must be listed.
60
+ *
61
+ * With a `minter`, a file name no book carries MINTS one (DESIGN-EXTERNAL-LINKS §4C): typing
62
+ * `'C:\dir\[Book.xlsx]Sheet1'!A1` creates the link, cache empty, exactly as Excel does when it cannot
63
+ * see the source. A sheet a known book does not list is recorded on it the same way. A `[n]` is never
64
+ * minted — a position is a citation of something that exists, and a directory that differs from a
65
+ * same-named book's is a different book, not a respelling of it. A span never mints either.
66
+ */
67
+ export declare function bindExternalScope(books: ExternalBookCollection | null | undefined, displayName: string, minter?: ExternalBookMinter | null, withinBook?: string | null): string | null;
68
+ /**
69
+ * Resolves an `ext:` stable id to a sheet handle, or `null` if the book has since been removed.
70
+ *
71
+ * @remarks
72
+ * `toString()` is the projection DESIGN-EXTERNAL-LINKS §4B describes: `[n]Sheet1` by default — the
73
+ * form a formula is STORED as, read off the book's current position — and the book's display name
74
+ * when the caller asks for one. Both bind back. A span spells both sheets after one book prefix
75
+ * (`[1]Alpha:Data Sheet`), as Excel writes it.
76
+ */
77
+ export declare function resolveExternalSymbol(books: ExternalBookCollection | null | undefined, stableId: string, display: boolean): SheetSymbolHandle | null;
78
+ /** The `AddOptions` a minted book starts from: the typed directory and file, the typed sheet. */
79
+ export declare function mintedBookOptions(parts: ExternalScopeParts): IExternalBookCollection.AddOptions;
80
+ //# sourceMappingURL=ExternalSheetSymbols.d.ts.map
@@ -10,6 +10,29 @@ export declare const SymbolType: {
10
10
  };
11
11
  export type SymbolType = typeof SymbolType[keyof typeof SymbolType];
12
12
  export interface SheetCtx {
13
+ /**
14
+ * Resolve to the form a READER sees rather than the form a formula is stored as.
15
+ *
16
+ * @remarks
17
+ * The two differ only for an external book: stored is `[n]Sheet1`, where `n` is a position
18
+ * projected from the book's place in the collection, and display is the book's own spelling
19
+ * (`'C:\dir\[Book.xlsx]Sheet1'`). A local sheet has one name and ignores this.
20
+ */
21
+ display?: boolean;
22
+ /**
23
+ * Bind is AUTHORING: a scope that names an external book this workbook has none of may create
24
+ * one (`'C:\dir\[Book.xlsx]Sheet1'` typed into a cell is how a link is made — DESIGN-EXTERNAL-LINKS
25
+ * §5 step 13). Off by default, and off for an editing compile, so a keystroke mints nothing; a
26
+ * local sheet is never minted.
27
+ */
28
+ mint?: boolean;
29
+ /**
30
+ * The formula being linked belongs to an external BOOK — a cached defined name's body — so a
31
+ * plain sheet name (`Alpha`) is that book's sheet, never one of this workbook's, and a `[n]`
32
+ * position cites the source's own links, which this workbook cannot see (`null`). Nothing is
33
+ * minted inside a book.
34
+ */
35
+ book?: string;
13
36
  }
14
37
  export interface NamedFormulaCtx {
15
38
  /** The stableId of the sheet that owns the formula scope, if any. */
@@ -57,6 +57,11 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
57
57
  */
58
58
  private readonly _getByName;
59
59
  private readonly _getById;
60
+ /**
61
+ * The name an item goes by for this provider's reader - what a bind matches and a resolve
62
+ * displays. The item's own name unless the reader holds a copy of the names of its own.
63
+ */
64
+ private readonly _nameOf;
60
65
  private _byName;
61
66
  private _byId;
62
67
  /**
@@ -79,7 +84,12 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
79
84
  * shadowing (a name scoped to that sheet beats a global of the same name). Providers with no
80
85
  * scoped items — tables — may ignore it.
81
86
  */
82
- _getByName: (name: string, scope?: string | null) => T | null, _getById: (id: string) => T | null);
87
+ _getByName: (name: string, scope?: string | null) => T | null, _getById: (id: string) => T | null,
88
+ /**
89
+ * The name an item goes by for this provider's reader - what a bind matches and a resolve
90
+ * displays. The item's own name unless the reader holds a copy of the names of its own.
91
+ */
92
+ _nameOf?: (item: T) => string);
83
93
  /**
84
94
  * @inheritdoc ISymbolProvider.bind
85
95
  *
@@ -98,8 +108,12 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
98
108
  * it heals to turns out to be scoped.
99
109
  *
100
110
  * A miss on `_byName` is not proof the item has no proxy — see {@link _byRealId}.
111
+ *
112
+ * `ctx.existing: true` asks only whether the name is an item NOW: it answers `null` rather than
113
+ * minting a proxy for a name nothing holds. For a caller deciding what a spelling IS (a bare name
114
+ * that may be a table) — a proxy minted for every other name would never heal into anything.
101
115
  */
102
- bind(displayName: string, ctx?: Record<string, unknown>): string;
116
+ bind(displayName: string, ctx?: Record<string, unknown>): string | null;
103
117
  /** Points a proxy at its real item, keeping {@link _byRealId} in step. */
104
118
  private _adopt;
105
119
  /** Moves a proxy to the `_byName` key its current name/scope spell. */
@@ -2,17 +2,77 @@ import { IRange } from '@sheetxl/primitives';
2
2
  import { ISymbolProvider, SymbolHandle } from './ISymbolRegistry';
3
3
  /**
4
4
  * Strict provider for sheet symbols.
5
+ *
6
+ * @remarks
7
+ * An EXTERNAL sheet is a sheet symbol too. A scope this workbook has no sheet for, and which names
8
+ * a book (`[1]Sheet1`, `C:\dir\[Book.xlsx]Sheet1`), falls through to `_getExternal` rather than to a
9
+ * `SymbolType` of its own — the twenty-odd consumers of a scope all ask this provider, and teaching
10
+ * one provider a second spelling touches none of them (DESIGN-EXTERNAL-LINKS §4B).
11
+ *
12
+ * So is a 3-D span (`Alpha:Gamma`, PLAN-3D-REFS §2.1): one symbol naming its two endpoint sheets,
13
+ * `<firstId>:<lastId>`, with the endpoints in tab order.
5
14
  */
6
15
  export declare class SheetSymbolProvider implements ISymbolProvider {
7
16
  private readonly _getId;
8
17
  private readonly _getById;
9
- constructor(_getId: (displayName: string) => string | null, _getById: (sheetId: string) => SheetSymbolHandle | null);
18
+ private readonly _external?;
19
+ /** A sheet's position in tab order, hidden sheets included, or `-1`. */
20
+ private readonly _getIndexById?;
21
+ constructor(_getId: (displayName: string) => string | null, _getById: (sheetId: string) => SheetSymbolHandle | null, _external?: (ExternalSheetSymbols | null) | undefined,
22
+ /** A sheet's position in tab order, hidden sheets included, or `-1`. */
23
+ _getIndexById?: ((sheetId: string) => number) | null | undefined);
10
24
  /** @inheritdoc ISymbolProvider.bind */
11
- bind(displayName: string, _ctx: Record<string, unknown>): string | null;
25
+ bind(displayName: string, ctx?: Record<string, unknown>): string | null;
12
26
  /** @inheritdoc ISymbolProvider.resolve */
13
- resolve(stableId: string, _ctx: Record<string, unknown>): SheetSymbolHandle | null;
27
+ resolve(stableId: string, ctx?: Record<string, unknown>): SheetSymbolHandle | null;
28
+ /**
29
+ * `First:Last` (names or ids) to a span id with the endpoints in tab order, the plain sheet id when
30
+ * both ends are one sheet (`Alpha:Alpha` is `Alpha`, as Excel normalizes it), or `null` when either
31
+ * end is not a sheet of this workbook.
32
+ */
33
+ private _bindSpan;
34
+ /** One end of a span: a sheet's id or name, never a virtual grid (which has no name). */
35
+ private _bindEndpoint;
36
+ private _resolveSpan;
37
+ }
38
+ /**
39
+ * The two endpoint sheet ids of a LOCAL span id (`<firstId>:<lastId>`), or `null` if it is not one.
40
+ *
41
+ * @remarks
42
+ * A sheet id is `<name>-<uuid>` and a sheet name cannot contain `:`, so a `:` in a non-external id is
43
+ * the separator. Both halves must end in a uuid: typed text that never bound (`Alpha:Nope`) reaches
44
+ * `resolve` too, and must not be mistaken for a span whose sheets are gone.
45
+ */
46
+ export declare function splitSheetSpanSymbolId(stableId: string | null | undefined): [string, string] | null;
47
+ /**
48
+ * What a local span id becomes when tab order changes from `before` to `after` — `undefined` when it
49
+ * stands.
50
+ *
51
+ * @remarks
52
+ * An endpoint that is gone, or that `movedId` carried across the other endpoint, is replaced by its
53
+ * inward neighbor in `before`: the nearest sheet between the endpoints that is still there. When both
54
+ * ends land on one sheet the answer is that sheet's plain id, as Excel collapses `Alpha:Beta` to
55
+ * `Beta!A1`. A span that lost every sheet stands too; it has nothing to shrink to.
56
+ */
57
+ export declare function replaceSheetSpanEndpoints(spanId: string, before: readonly string[], after: readonly string[], movedId?: string): string | undefined;
58
+ /** Whether a sheet stable id is a 3-D span — local `<firstId>:<lastId>` or external `ext:<bookId>:<i>:<j>`. */
59
+ export declare function isSpanSymbolId(stableId: string | null | undefined): boolean;
60
+ /** The external-book half of {@link SheetSymbolProvider}, supplied by `Calculation`. */
61
+ export interface ExternalSheetSymbols {
62
+ /**
63
+ * `mint`: a scope naming a book this workbook has none of may CREATE one — see {@link SheetCtx.mint}.
64
+ * `withinBook`: the id of the book a plain sheet name belongs to — see {@link SheetCtx.book}.
65
+ */
66
+ bind(displayName: string, mint: boolean, withinBook?: string | null): string | null;
67
+ resolve(stableId: string, display: boolean): SheetSymbolHandle | null;
14
68
  }
15
69
  export interface SheetSymbolHandle extends SymbolHandle {
16
70
  getEntireCoords(): IRange.Coords | null;
71
+ /**
72
+ * The sheet's own name, `null` for a sheet that has none. `toString` is the DISPLAY form and
73
+ * substitutes a placeholder for a nameless sheet; a caller that means to bind or compare a
74
+ * name reads this instead. Absent on a handle that is not a sheet (a virtual grid).
75
+ */
76
+ getName?(): string | null;
17
77
  }
18
78
  //# sourceMappingURL=SheetSymbolProvider.d.ts.map
@@ -16,4 +16,24 @@ export declare class SymbolRegistry implements ISymbolRegistry {
16
16
  /** @inheritdoc ISymbolRegistry.resolve */
17
17
  resolve(type: SymbolType, stableId: string, ctx?: Record<string, unknown>): SymbolHandle | null;
18
18
  }
19
+ /**
20
+ * A registry that answers some symbol types from providers of its own and every other from a base.
21
+ *
22
+ * @remarks
23
+ * The model's symbol map (DESIGN-CALC-SERVICE §8) is this over the engine's: the types the engine
24
+ * keeps a copy of resolve through the model's live items here, while the rest resolve through the
25
+ * engine's providers. Registering a provider registers it on the base, so a provider that arrives
26
+ * late (the functions, once their module loads) is seen by both.
27
+ */
28
+ export declare class OverlaidSymbolRegistry implements ISymbolRegistry {
29
+ private readonly _base;
30
+ private readonly _overrides;
31
+ constructor(_base: ISymbolRegistry, _overrides: ReadonlyMap<SymbolType, ISymbolProvider>);
32
+ /** @inheritdoc ISymbolRegistry.registerProvider */
33
+ registerProvider(type: SymbolType, provider: ISymbolProvider): void;
34
+ /** @inheritdoc ISymbolRegistry.bind */
35
+ bind(type: SymbolType, displayName: string, ctx?: Record<string, unknown>): string | null;
36
+ /** @inheritdoc ISymbolRegistry.resolve */
37
+ resolve(type: SymbolType, stableId: string, ctx?: Record<string, unknown>): SymbolHandle | null;
38
+ }
19
39
  //# sourceMappingURL=SymbolRegistry.d.ts.map
@@ -1,7 +1,8 @@
1
1
  export { type ISymbolRegistry, type ISymbolProvider, type SymbolHandle, SymbolType } from './ISymbolRegistry';
2
2
  export { type SheetCtx, type NamedFormulaCtx, type TableCtx, type ColumnCtx, type FunctionCtx } from './ISymbolRegistry';
3
- export { SymbolRegistry } from './SymbolRegistry';
4
- export { SheetSymbolProvider } from './SheetSymbolProvider';
3
+ export { SymbolRegistry, OverlaidSymbolRegistry } from './SymbolRegistry';
4
+ export { SheetSymbolProvider, isSpanSymbolId, splitSheetSpanSymbolId, replaceSheetSpanEndpoints, type SheetSymbolHandle, type ExternalSheetSymbols } from './SheetSymbolProvider';
5
+ export { EXTERNAL_ID_PREFIX, isExternalSymbolId, splitExternalSymbolId, externalSymbolId, bindExternalScope, resolveExternalSymbol, mintedBookOptions, type ExternalBookMinter } from './ExternalSheetSymbols';
5
6
  export { TableSymbolProvider } from './TableSymbolProvider';
6
7
  export { IndirectSymbolProvider, IndirectProxy } from './IndirectSymbolProvider';
7
8
  export { TableColumnSymbolProvider } from './TableColumnSymbolProvider';
@@ -1,7 +1,7 @@
1
1
  import { Scalar, ScalarType, InteropScalarType, InteropScalar, IRange } from '@sheetxl/primitives';
2
2
  import { Size, Rectangle, Bounds } from '@sheetxl/utils';
3
3
  import { ITypes } from '../type';
4
- import { ITextFrame, TextRotation } from '../text';
4
+ import { ITextFrame, TextRotation, TextStacked } from '../text';
5
5
  import { NumberFormat } from '../numFmt';
6
6
  import { ITable } from '../table';
7
7
  import { IDataValidation } from '../dataValidation';
@@ -53,16 +53,21 @@ export interface ICell {
53
53
  * Returns the formula assigned to the cell.
54
54
  *
55
55
  * @remarks
56
- * Returns `null` if the cell has no formula.
56
+ * Returns `null` if the cell has no formula, or if its protection hides the formula (see
57
+ * {@link ICell.isFormulaHidden}).
57
58
  */
58
59
  getFormula(options?: ICalculation.FormulaTextOptions): ICalculation.IFormula | null;
59
60
  /**
60
- * Returns the formula text assigned to the cell, WITHOUT a leading `=`.
61
+ * Returns the formula text assigned to the cell, with its leading `=` (`'=SUM(A1:A3)'`).
61
62
  *
62
63
  * @remarks
63
- * A convenience for `getFormula()?.getExpression()` — the stored shape, so `null` and `''` stay
64
- * distinguishable from a formula and the text can be re-parsed as-is. Displaying it the way
65
- * Excel's API answers means prefixing `'=' +`; see {@link ICalculation.IFormula.getExpression}.
64
+ * The form a formula is entered in and the form Excel's API answers, so it can be written back
65
+ * with {@link ICellRange.setValue}. The `=` is what keeps a formula like `=+A1` apart from the
66
+ * text `+A1`. For the stored form without the `=`, use
67
+ * {@link ICalculation.IFormula.getExpression} on {@link ICell.getFormula}.
68
+ *
69
+ * Returns `null` for a cell without a formula, and when protection hides the formula, like
70
+ * {@link ICell.getFormula}.
66
71
  */
67
72
  getFormulaText(options?: ICalculation.FormulaTextOptions): string | null;
68
73
  /**
@@ -77,35 +82,37 @@ export interface ICell {
77
82
  *
78
83
  * @remarks
79
84
  * These represent the direct inputs required to compute the cell's value.
80
- * Returns `null` if the cell has no precedents.
85
+ * Resolves `null` if the cell has no precedents.
86
+ * A question for the calculation engine: it resolves once the engine has answered, in order
87
+ * behind the writes made before it, and with `null` while the engine is `Off`.
81
88
  */
82
- getDirectPrecedents(): ICellRanges;
89
+ getDirectPrecedents(): Promise<ICellRanges | null>;
83
90
  /**
84
91
  * Returns the cells that directly reference this cell in their own formulas.
85
92
  *
86
93
  * @remarks
87
94
  * These represent the immediate consumers of this cell's value.
88
- * Returns `null` if the cell has no dependents.
95
+ * Resolves `null` if the cell has no dependents.
89
96
  */
90
- getDirectDependents(): ICellRanges;
97
+ getDirectDependents(): Promise<ICellRanges | null>;
91
98
  /**
92
99
  * Returns all ranges that contribute to this cell's value, including
93
100
  * those referenced indirectly through the full calculation chain.
94
101
  *
95
102
  * @remarks
96
103
  * This performs a recursive search upstream to find all root data sources.
97
- * Returns `null` if the cell has no precedents.
104
+ * Resolves `null` if the cell has no precedents.
98
105
  */
99
- getPrecedents(): ICellRanges;
106
+ getPrecedents(): Promise<ICellRanges | null>;
100
107
  /**
101
108
  * Returns all cells that are eventually affected by this cell, including
102
109
  * those that depend on it indirectly through the full calculation chain.
103
110
  *
104
111
  * @remarks
105
112
  * This performs a recursive search downstream to find the total impact of a value change.
106
- * Returns `null` if the cell has no dependents.
113
+ * Resolves `null` if the cell has no dependents.
107
114
  */
108
- getDependents(): ICellRanges;
115
+ getDependents(): Promise<ICellRanges | null>;
109
116
  /**
110
117
  * Returns the hyperlink assigned to the cell.
111
118
  *
@@ -114,11 +121,13 @@ export interface ICell {
114
121
  */
115
122
  getHyperlink(): IHyperlink | null;
116
123
  /**
117
- * Retrieves a list of comments associated with the cell.
124
+ * Returns the comment on the cell, or `null` if there is none.
118
125
  *
119
- * **Note**: This feature is not yet implemented.
126
+ * @remarks
127
+ * One per cell — the thread's root, with its replies, or a note. The sheet's
128
+ * {@link ISheet.getComments} is where one is added.
120
129
  */
121
- getComments(): Readonly<IComment.Properties>;
130
+ getComments(): IComment | null;
122
131
  /**
123
132
  * Retrieves any warnings attached to the cell.
124
133
  *
@@ -215,7 +224,11 @@ export interface ICell {
215
224
  */
216
225
  getBestFit(colWidth?: number, minContent?: boolean): Readonly<Partial<Size>> | null;
217
226
  /**
218
- * Returns protection information.
227
+ * Returns the cell's protection format, the same as `getStyle().getProtection()`.
228
+ *
229
+ * @remarks
230
+ * Whether the cell can be edited right now also depends on its sheet and its unlocked ranges; see
231
+ * {@link ICell.isEditAllowed}.
219
232
  */
220
233
  getProtection(): ICellProtection;
221
234
  /**
@@ -237,6 +250,15 @@ export interface ICell {
237
250
  * Returns the range of the cell if it is a spill cell.
238
251
  */
239
252
  getSpill(): ICellRange | null;
253
+ /**
254
+ * Returns which {@link ITypes.FormulaArrayKind | kind} of array block the cell belongs to, or
255
+ * `null` if it is not part of one.
256
+ *
257
+ * @remarks
258
+ * Answers for every cell of the block, not only the anchor — a `fixed` (array-entered) block
259
+ * shows `{=…}` on all of its cells, as Excel does.
260
+ */
261
+ getSpillKind(): ITypes.FormulaArrayKind | null;
240
262
  /**
241
263
  * Returns `true` if the cell is a spill and not the top left.
242
264
  */
@@ -270,10 +292,13 @@ export interface ICell {
270
292
  */
271
293
  getColumn(): ITable.IColumn | null;
272
294
  /**
273
- * Returns the data validation assigned to the cell if there is one.
295
+ * Returns the cell's primary data validation: the highest-priority one that covers it, or `null`
296
+ * when none does.
274
297
  *
275
298
  * @remarks
276
- * Will return null if there is no data validation assigned.
299
+ * Validations may overlap, and every one that covers the cell applies; see
300
+ * {@link ICellRange.getDataValidations} for all of them. The primary one is also the one Excel
301
+ * honors when it opens a file whose validations overlap.
277
302
  */
278
303
  getDataValidation(): IDataValidation | null;
279
304
  /**
@@ -322,7 +347,13 @@ export interface ICell {
322
347
  */
323
348
  isEditAllowed(): boolean;
324
349
  /**
325
- * Returns `true` if the formula is hidden.
350
+ * Returns `true` if protection hides this cell's formula.
351
+ *
352
+ * @remarks
353
+ * The sheet is protected (not paused), and neither the sheet's `showFormulas` nor the cell style's
354
+ * allows it.
355
+ * A hidden formula reads as no formula: {@link ICell.getFormula} and {@link ICell.getFormulaText}
356
+ * return `null`. It still calculates, and is still saved with the workbook.
326
357
  */
327
358
  isFormulaHidden(): boolean;
328
359
  /**
@@ -452,6 +483,13 @@ export declare namespace ICell {
452
483
  * horizontally. See {@link TextRotation.layoutLines} for the model.
453
484
  */
454
485
  rotation?: TextRotation.Layout;
486
+ /**
487
+ * Present when the cell's text is stacked ("vertical text"): per-column slot geometry — every
488
+ * glyph upright in its own slot of the line pitch, columns from line breaks (and from wrapping
489
+ * against the content height), each column aligned on its own. See
490
+ * {@link TextStacked.layoutColumns} for the model. {@link bounds} is then the column group.
491
+ */
492
+ stacked?: TextStacked.Layout;
455
493
  }
456
494
  /**
457
495
  * Expansive way to set cell updates options.
@@ -475,6 +513,10 @@ export declare namespace ICell {
475
513
  * Allow to to set a hyperlink to this value.
476
514
  */
477
515
  hyperlink?: IHyperlink.Update;
516
+ /**
517
+ * Update the comment: modifiers, a plain string as the content, or `null` to remove.
518
+ */
519
+ comments?: IComment.Update;
478
520
  }
479
521
  /**
480
522
  * Configuration options for customizing the parsing of a string into an `ICell.Update` object.
@@ -675,13 +717,26 @@ export declare namespace ICell {
675
717
  /**
676
718
  * Represents notes associated with the cells.
677
719
  * @remarks
678
- * **NOT IMPLEMENTED**
720
+ * A note is a comment carrying `asNote` — the two share one store — so this selects the
721
+ * notes out of a range rather than naming a store of its own. Displaying a note as Excel's
722
+ * simple yellow box, rather than as a comment, is **NOT IMPLEMENTED**.
679
723
  */
680
724
  readonly Notes: "notes";
681
725
  /**
682
- * Represents comments attached to the cells.
726
+ * Represents comments attached to the cells, notes included.
727
+ * @remarks
728
+ * Excel offers a single `Clear Comments and Notes`, and this is it. {@link Content.Notes}
729
+ * is the narrower one, for the notes alone.
683
730
  */
684
731
  readonly Comments: "comments";
732
+ /**
733
+ * Represents the data validations covering the cells.
734
+ * @remarks
735
+ * A clear cuts the cells out of every validation covering them; a validation left covering
736
+ * nothing is deleted, and one that also covers other cells keeps them. Office Scripts'
737
+ * `range.getDataValidation().clear()`.
738
+ */
739
+ readonly DataValidations: "dataValidations";
685
740
  };
686
741
  type Content = typeof Content[keyof typeof Content];
687
742
  }
@@ -1,20 +1,52 @@
1
+ import { IStyle } from '../style';
1
2
  /**
2
- * Additional cell protection properties.
3
+ * The protection format of a cell: whether it stays editable, and whether it shows its formula,
4
+ * while its sheet is protected.
3
5
  *
6
+ * @remarks
7
+ * * Part of the style, so it travels with the format — copy, paste, fill and named styles carry it,
8
+ * and clearing formats resets it.
9
+ * * Only consulted while the sheet is protected. {@link ICell.isEditAllowed} and
10
+ * {@link ICell.isFormulaHidden} combine it with the sheet's protection and its unlocked ranges.
4
11
  */
5
12
  export interface ICellProtection {
6
13
  /**
7
- * This is specified in ooxml but not sure what behavior it has.
8
- * @defaultValue true
14
+ * Returns `true` if the cell stays editable when its sheet is protected.
15
+ *
16
+ * @remarks
17
+ * * This is Excel's *Locked* format, inverted.
18
+ * * It never asks for a password, even inside a password-protected unlocked range. An unlocked
19
+ * range is the other way to make a cell editable; either one is enough.
20
+ *
21
+ * @defaultValue false
9
22
  */
10
- isEditAllowed(): boolean;
23
+ isAlwaysUnlocked(): boolean;
11
24
  /**
12
- * If the formula will be hidden when the worksheet is protected.
25
+ * Sets whether the cell stays editable when its sheet is protected.
26
+ *
27
+ * @param alwaysUnlocked `true` to keep the cell editable. `null` to clear.
28
+ */
29
+ setAlwaysUnlocked(alwaysUnlocked: boolean | null, options?: IStyle.UpdateOptions): ICellProtection;
30
+ /**
31
+ * Returns `true` if the cell's formula stays visible on a protected sheet that hides formulas.
32
+ *
13
33
  * @remarks
14
- * This is called hidden in ooxml but in Excel object model it is formulaHidden.
34
+ * * An exception, like {@link isAlwaysUnlocked}: a formula shows when the sheet
35
+ * (`ISheetProtection.isShowFormulasAllowed`) or the cell allows it, so this only matters while
36
+ * the sheet hides them.
37
+ * * A hidden formula reads as no formula ({@link ICell.getFormula} is `null`), but it still
38
+ * calculates and is still saved with the workbook. It is a view rule, not secrecy.
39
+ *
15
40
  * @defaultValue false
16
41
  */
17
- isFormulaHidden(): boolean;
42
+ isShowFormulas(): boolean;
43
+ /**
44
+ * Sets whether the cell's formula stays visible on a protected sheet that hides formulas.
45
+ *
46
+ * @param showFormulas `true` to keep the formula visible. `null` to clear.
47
+ */
48
+ setShowFormulas(showFormulas: boolean | null, options?: IStyle.UpdateOptions): ICellProtection;
49
+ toJSON(): ICellProtection.JSON;
18
50
  /**
19
51
  * For runtime type checking.
20
52
  */
@@ -29,13 +61,21 @@ export interface ICellProtection {
29
61
  */
30
62
  export declare namespace ICellProtection {
31
63
  /**
32
- * Properties for ICellProperties.
64
+ * Properties for ICellProtection.
33
65
  */
34
66
  interface Properties {
35
- edit?: boolean;
36
- formulaHidden?: boolean;
67
+ alwaysUnlocked?: boolean;
68
+ showFormulas?: boolean;
37
69
  }
38
70
  interface JSON extends Properties {
39
71
  }
72
+ /**
73
+ * Modifiers describe a partial list of properties that can be set.
74
+ */
75
+ type Modifiers = Partial<ICellProtection.Properties>;
76
+ /**
77
+ * Options for updating an ICellProtection.
78
+ */
79
+ type Update = ICellProtection | Modifiers | null;
40
80
  }
41
81
  //# sourceMappingURL=ICellProtection.d.ts.map