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

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 (564) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/esm/{B0HS42a7lga1k1U_.mjs → BEAY9XgKNx-bakXW.mjs} +2 -2
  3. package/browser/esm/BbSmt62FpFIpoVzu.mjs +392 -0
  4. package/browser/esm/BcHmrKHwMMOlzc9_.mjs +357 -0
  5. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +412 -0
  6. package/browser/esm/Bk7xxbdDpa7-sIwd.mjs +7 -0
  7. package/browser/esm/BqskM7wA8oPfFQue.mjs +20 -0
  8. package/browser/esm/Btg43M1Bf-ENDreu.mjs +540 -0
  9. package/browser/esm/BzLfNyc6OOShIErH.mjs +598 -0
  10. package/browser/esm/C9B0djuUarfNdoj0.mjs +466 -0
  11. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → CSx9ed1JOs7K5BXO.mjs} +2 -2
  12. package/browser/esm/CYyv6uGjo10ig5FP.mjs +142 -0
  13. package/browser/esm/CZ5oa92wZEAXebgk.mjs +622 -0
  14. package/browser/esm/CdLZWVcH8cncBUPJ.mjs +849 -0
  15. package/browser/esm/Cgd5BnM3hg9RyUel.mjs +171 -0
  16. package/browser/esm/CjsUGJEQSbGjnH6R.mjs +1001 -0
  17. package/browser/esm/ClB5ix51roQOpZEr.mjs +7402 -0
  18. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → Cqr3knDsBvoVZ6MN.mjs} +179 -202
  19. package/browser/esm/D4uVlrG0xEFctsSM.mjs +905 -0
  20. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +7 -0
  21. package/browser/esm/DUvUK61b2_4pf4tG.mjs +484 -0
  22. package/browser/esm/De175LygU7ot4nQm.mjs +441 -0
  23. package/browser/esm/DhKkrCVASZ6Isvz6.mjs +527 -0
  24. package/browser/esm/Di58Ji1n--3Mgc_2.mjs +607 -0
  25. package/browser/esm/Dtoyt8q5RyGAlxCp.mjs +1141 -0
  26. package/browser/esm/Y79I7Sm8kjaYexhf.mjs +167 -0
  27. package/browser/esm/index.mjs +1472 -1023
  28. package/browser/esm/o8MFgcVXns987D6_.mjs +400 -0
  29. package/browser/esm/zqJOaweiXE9D8RY1.mjs +66681 -0
  30. package/licenses/dependencies.txt +209 -209
  31. package/node/esm/B6D7sSetrcOWLsKj.mjs +1135 -0
  32. package/node/esm/B9ljpEIZg6wOTzRE.mjs +142 -0
  33. package/node/esm/BH1v-E4Ro3bR7Znw.mjs +962 -0
  34. package/node/esm/BN9j8V9gCExMjVtJ.mjs +540 -0
  35. package/node/esm/{Cku7XiUvw1xrRasi.mjs → Bh4dv6tMjXX3X4nI.mjs} +1 -1
  36. package/node/esm/Bqd62L8KFgdS0Vou.mjs +7 -0
  37. package/node/esm/Bsx9uijd4X_SKV3L.mjs +360 -0
  38. package/node/esm/BtuY37FumvLE7EBo.mjs +629 -0
  39. package/node/esm/C6ZXsNyLXI6zA63X.mjs +402 -0
  40. package/node/esm/CCouEwT37f08qO3V.mjs +7 -0
  41. package/node/esm/CD9wbvufChVYYkrI.mjs +451 -0
  42. package/node/esm/CImNvdz1iP-lUlro.mjs +610 -0
  43. package/node/esm/CT0CN82y0_Qgoryk.mjs +7568 -0
  44. package/node/esm/CUQi5ZtMO02nhG0W.mjs +596 -0
  45. package/node/esm/CUUoseJmFsCf82bb.mjs +28 -0
  46. package/node/esm/CnSQ7MTXAUAyBOoS.mjs +911 -0
  47. package/node/esm/D7MfcID2Wf6l6VpC.mjs +171 -0
  48. package/node/esm/DCplLG93GfTs1vNw.mjs +1860 -0
  49. package/node/esm/DHUADiCmxNQS1ARz.mjs +417 -0
  50. package/node/esm/DMD12JUh7HJw2-jl.mjs +638 -0
  51. package/node/esm/DdFgXl-Ux2cMBTs_.mjs +15 -0
  52. package/node/esm/DefYISWfdZJFx57m.mjs +255 -0
  53. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +403 -0
  54. package/node/esm/MiU4rDOiocmJ-9Ry.mjs +1783 -0
  55. package/node/esm/index.mjs +51616 -39665
  56. package/package.json +15 -16
  57. package/resources/contents.json +64 -0
  58. package/resources/fonts/arial-bold-italic.metrics.json +139 -0
  59. package/resources/fonts/arial-bold.metrics.json +139 -0
  60. package/resources/fonts/arial-italic.metrics.json +139 -0
  61. package/resources/fonts/arial-regular.metrics.json +139 -0
  62. package/resources/fonts/calibri-bold-italic.metrics.json +137 -0
  63. package/resources/fonts/calibri-bold.metrics.json +137 -0
  64. package/resources/fonts/calibri-italic.metrics.json +137 -0
  65. package/resources/fonts/calibri-regular.metrics.json +137 -0
  66. package/resources/fonts/cambria-bold-italic.metrics.json +66 -0
  67. package/resources/fonts/cambria-bold.metrics.json +66 -0
  68. package/resources/fonts/cambria-italic.metrics.json +66 -0
  69. package/resources/fonts/cambria-regular.metrics.json +66 -0
  70. package/resources/fonts/contents.json +126 -0
  71. package/resources/fonts/courier-new-bold-italic.metrics.json +143 -0
  72. package/resources/fonts/courier-new-bold.metrics.json +143 -0
  73. package/resources/fonts/courier-new-italic.metrics.json +143 -0
  74. package/resources/fonts/courier-new-regular.metrics.json +143 -0
  75. package/resources/fonts/times-new-roman-bold-italic.metrics.json +141 -0
  76. package/resources/fonts/times-new-roman-bold.metrics.json +141 -0
  77. package/resources/fonts/times-new-roman-italic.metrics.json +143 -0
  78. package/resources/fonts/times-new-roman-regular.metrics.json +141 -0
  79. package/resources/locales/de/model.msg.json +112 -12
  80. package/resources/locales/en/model.msg.json +119 -13
  81. package/types/scripting-api.json +8048 -0
  82. package/types/scripting-enums.json +277 -110
  83. package/types/scripting.d.ts +13077 -3224
  84. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  85. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  86. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  87. package/types/src/autoFill/AutoFill.d.ts +316 -32
  88. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  89. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +42 -41
  90. package/types/src/border/index.d.ts +1 -1
  91. package/types/src/calculation/Calculation.d.ts +754 -49
  92. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  93. package/types/src/calculation/FormulaText.d.ts +82 -0
  94. package/types/src/calculation/ICalculation.d.ts +318 -81
  95. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  96. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  97. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  98. package/types/src/calculation/TokenType.d.ts +9 -0
  99. package/types/src/calculation/Types.d.ts +83 -2
  100. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  101. package/types/src/calculation/_TableRename.d.ts +13 -0
  102. package/types/src/calculation/compiler/ASTTypes.d.ts +71 -0
  103. package/types/src/calculation/compiler/CompilerUtils.d.ts +135 -44
  104. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  105. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  106. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  107. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  108. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  109. package/types/src/calculation/compiler/Types.d.ts +79 -9
  110. package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
  111. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  112. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  113. package/types/src/calculation/formula/Formula.d.ts +58 -21
  114. package/types/src/calculation/formula/FormulaBlock.d.ts +125 -23
  115. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  116. package/types/src/calculation/formula/FunctionValues.d.ts +10 -0
  117. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  118. package/types/src/calculation/formula/LambdaValue.d.ts +46 -23
  119. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  120. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  121. package/types/src/calculation/formula/index.d.ts +1 -0
  122. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  123. package/types/src/calculation/functions/Operators.d.ts +8 -0
  124. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  125. package/types/src/calculation/grid/CalcGrid.d.ts +407 -158
  126. package/types/src/calculation/grid/CalcGridBackend.d.ts +493 -0
  127. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  128. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  129. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  130. package/types/src/calculation/grid/FormulaHost.d.ts +239 -0
  131. package/types/src/calculation/grid/ICalcGrid.d.ts +499 -141
  132. package/types/src/calculation/grid/_CalcRequest.d.ts +289 -0
  133. package/types/src/calculation/grid/index.d.ts +4 -0
  134. package/types/src/calculation/index.d.ts +2 -0
  135. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  136. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  137. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  138. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  139. package/types/src/calculation/spatial/index.d.ts +1 -0
  140. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  141. package/types/src/calculation/state/CalcNode.d.ts +141 -30
  142. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  143. package/types/src/calculation/state/CalcState.d.ts +22 -1
  144. package/types/src/calculation/state/CalculationContext.d.ts +50 -3
  145. package/types/src/calculation/state/IContextContainer.d.ts +129 -27
  146. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  147. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  148. package/types/src/calculation/state/index.d.ts +1 -0
  149. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  150. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  151. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  152. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  153. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  154. package/types/src/calculation/symbol/index.d.ts +3 -2
  155. package/types/src/cell/ICell.d.ts +104 -29
  156. package/types/src/cell/ICellHeader.d.ts +24 -2
  157. package/types/src/cell/ICellProtection.d.ts +50 -10
  158. package/types/src/cellRange/ICellRange.d.ts +419 -79
  159. package/types/src/cellRange/ICellRanges.d.ts +23 -21
  160. package/types/src/chart/Chart.d.ts +41 -13
  161. package/types/src/chart/ChartCollection.d.ts +26 -0
  162. package/types/src/chart/IChart.d.ts +166 -12
  163. package/types/src/chart/IChartCollection.d.ts +25 -0
  164. package/types/src/chart/_ChartXml.d.ts +70 -0
  165. package/types/src/chart/index.d.ts +1 -3
  166. package/types/src/collections/ArraysGrid.d.ts +1 -1
  167. package/types/src/collections/IGrid.d.ts +1 -1
  168. package/types/src/collections/ISparseGrid.d.ts +9 -0
  169. package/types/src/collections/ISpatialMap.d.ts +59 -21
  170. package/types/src/collections/ImmutableList.d.ts +28 -0
  171. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  172. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  173. package/types/src/collections/RepeatingList.d.ts +7 -0
  174. package/types/src/collections/ScalarGrid.d.ts +50 -0
  175. package/types/src/collections/SparseGrid.d.ts +1 -1
  176. package/types/src/collections/SpatialMap.d.ts +13 -21
  177. package/types/src/collections/Tuple.d.ts +128 -16
  178. package/types/src/collections/_GridUtils.d.ts +19 -6
  179. package/types/src/collections/_RangeSweep.d.ts +97 -0
  180. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  181. package/types/src/collections/index.d.ts +1 -0
  182. package/types/src/color/_BuiltInIndexDefs.d.ts +6 -0
  183. package/types/src/comment/Comment.d.ts +223 -0
  184. package/types/src/comment/CommentCollection.d.ts +40 -0
  185. package/types/src/comment/IComment.d.ts +340 -50
  186. package/types/src/comment/ICommentCollection.d.ts +90 -0
  187. package/types/src/comment/NoteMovable.d.ts +26 -0
  188. package/types/src/comment/_CommentUtils.d.ts +50 -0
  189. package/types/src/comment/_NoteBox.d.ts +50 -0
  190. package/types/src/comment/index.d.ts +1 -0
  191. package/types/src/condition/AnchoredConditional.d.ts +82 -17
  192. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +42 -12
  193. package/types/src/condition/BuiltInOperators/AfterEqualToOperator.d.ts +2 -0
  194. package/types/src/condition/BuiltInOperators/AfterOperator.d.ts +2 -0
  195. package/types/src/condition/BuiltInOperators/AndOperator.d.ts +3 -1
  196. package/types/src/condition/BuiltInOperators/AverageOperator.d.ts +2 -0
  197. package/types/src/condition/BuiltInOperators/BeforeEqualToOperator.d.ts +2 -0
  198. package/types/src/condition/BuiltInOperators/BeforeOperator.d.ts +2 -0
  199. package/types/src/condition/BuiltInOperators/BetweenOperator.d.ts +2 -0
  200. package/types/src/condition/BuiltInOperators/ColorOperator.d.ts +4 -0
  201. package/types/src/condition/BuiltInOperators/ContainsOperator.d.ts +2 -0
  202. package/types/src/condition/BuiltInOperators/EndsWithOperator.d.ts +2 -0
  203. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +4 -1
  204. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +5 -6
  205. package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +2 -0
  206. package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +2 -0
  207. package/types/src/condition/BuiltInOperators/IconOperator.d.ts +4 -0
  208. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +22 -5
  209. package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +2 -0
  210. package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +2 -0
  211. package/types/src/condition/BuiltInOperators/NotOperator.d.ts +2 -0
  212. package/types/src/condition/BuiltInOperators/OrOperator.d.ts +3 -1
  213. package/types/src/condition/BuiltInOperators/StartsWithOperator.d.ts +2 -0
  214. package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +2 -0
  215. package/types/src/condition/BuiltInOperators/TopNOperator.d.ts +6 -0
  216. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +21 -6
  217. package/types/src/condition/BuiltinSelectors/DateSelector.d.ts +4 -5
  218. package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +20 -0
  219. package/types/src/condition/BuiltinSelectors/TextLengthSelector.d.ts +7 -5
  220. package/types/src/condition/BuiltinSelectors/TimeSelector.d.ts +3 -5
  221. package/types/src/condition/BuiltinSelectors/WholeSelector.d.ts +3 -5
  222. package/types/src/condition/BuiltinSelectors/index.d.ts +12 -6
  223. package/types/src/condition/Condition.d.ts +19 -1
  224. package/types/src/condition/ICondition.d.ts +293 -73
  225. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  226. package/types/src/condition/_ConditionUtils.d.ts +167 -13
  227. package/types/src/conditionalFormat/ConditionalEntry.d.ts +3 -3
  228. package/types/src/conditionalFormat/ConditionalFormat.d.ts +25 -14
  229. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  230. package/types/src/conditionalFormat/IConditionalFormat.d.ts +12 -10
  231. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  232. package/types/src/dataValidation/DataValidation.d.ts +69 -3
  233. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  234. package/types/src/dataValidation/IDataValidation.d.ts +149 -30
  235. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  236. package/types/src/date/DateUtils.d.ts +20 -0
  237. package/types/src/date/_DateUtils.d.ts +91 -7
  238. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  239. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  240. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  241. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  242. package/types/src/externalBook/index.d.ts +1 -0
  243. package/types/src/{lib/file → file}/file.browser.d.ts +22 -8
  244. package/types/src/{lib/file → file}/file.node.d.ts +7 -2
  245. package/types/src/fill/IEffect.d.ts +5 -5
  246. package/types/src/fill/IFill.d.ts +123 -78
  247. package/types/src/fill/IStroke.d.ts +190 -64
  248. package/types/src/fill/RectAlignment.d.ts +20 -0
  249. package/types/src/fill/_Fills.d.ts +187 -0
  250. package/types/src/fill/_Stroke.d.ts +89 -0
  251. package/types/src/fill/index.d.ts +1 -0
  252. package/types/src/filter/IFilter.d.ts +188 -5
  253. package/types/src/font/AdvanceBuilder.d.ts +25 -0
  254. package/types/src/font/AdvanceTable.d.ts +114 -0
  255. package/types/src/font/FontCollection.d.ts +57 -0
  256. package/types/src/font/IFont.d.ts +17 -0
  257. package/types/src/font/IFontCollection.d.ts +120 -22
  258. package/types/src/font/TableFileAdvanceBuilder.d.ts +27 -0
  259. package/types/src/font/_BuiltinFontTables.d.ts +10 -0
  260. package/types/src/font/index.d.ts +4 -1
  261. package/types/src/group/Group.d.ts +136 -0
  262. package/types/src/group/GroupMovableCollection.d.ts +37 -0
  263. package/types/src/group/IGroup.d.ts +129 -0
  264. package/types/src/group/index.d.ts +2 -0
  265. package/types/src/history/IHistory.d.ts +3 -2
  266. package/types/src/hyperlink/IHyperlink.d.ts +13 -0
  267. package/types/src/hyperlink/_Hyperlink.d.ts +5 -1
  268. package/types/src/i18n/LanguagePack.d.ts +12 -4
  269. package/types/src/index.d.ts +5 -0
  270. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  271. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  272. package/types/src/io/EmbeddedPart.d.ts +20 -0
  273. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  274. package/types/src/io/IWorkbookIO.d.ts +185 -18
  275. package/types/src/io/WorkbookIO.d.ts +9 -0
  276. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  277. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  278. package/types/src/io/_XmlFragment.d.ts +49 -0
  279. package/types/src/io/index.d.ts +1 -0
  280. package/types/src/license/LicenseDetails.d.ts +1 -0
  281. package/types/src/license/LicenseManager.d.ts +4 -1
  282. package/types/src/license/Types.d.ts +38 -0
  283. package/types/src/license/_Utils.d.ts +22 -0
  284. package/types/src/license/details.d.ts +24 -0
  285. package/types/src/license/license-key.d.ts +49 -2
  286. package/types/src/license/runtime.browser.d.ts +41 -0
  287. package/types/src/{lib/utils/utils.node.d.ts → license/runtime.node.d.ts} +9 -12
  288. package/types/src/listener/IListener.d.ts +12 -7
  289. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  290. package/types/src/model/AbstractModel.d.ts +14 -5
  291. package/types/src/movable/AbstractMovableContent.d.ts +182 -0
  292. package/types/src/movable/CustomElement.d.ts +4 -5
  293. package/types/src/movable/ErrorContent.d.ts +49 -0
  294. package/types/src/movable/FormControl.d.ts +285 -0
  295. package/types/src/movable/GroupMember.d.ts +87 -0
  296. package/types/src/movable/ICustomElement.d.ts +7 -2
  297. package/types/src/movable/IErrorContent.d.ts +23 -0
  298. package/types/src/movable/IFormControl.d.ts +455 -0
  299. package/types/src/movable/IMovable.d.ts +378 -46
  300. package/types/src/movable/IMovableCollection.d.ts +63 -3
  301. package/types/src/movable/Movable.d.ts +149 -49
  302. package/types/src/movable/MovableCollection.d.ts +15 -8
  303. package/types/src/movable/MovableContentRegistry.d.ts +113 -0
  304. package/types/src/movable/_BuiltInContents.d.ts +14 -0
  305. package/types/src/movable/_ContentFactory.d.ts +35 -0
  306. package/types/src/movable/_DrawnBounds.d.ts +37 -0
  307. package/types/src/movable/_InsertableCollection.d.ts +28 -0
  308. package/types/src/movable/_MovableUtils.d.ts +5 -0
  309. package/types/src/movable/_PendingContent.d.ts +25 -0
  310. package/types/src/movable/_PlacementUtils.d.ts +55 -0
  311. package/types/src/movable/_RotatedFrame.d.ts +20 -0
  312. package/types/src/movable/index.d.ts +7 -1
  313. package/types/src/named/AbstractNamed.d.ts +1 -1
  314. package/types/src/named/INamed.d.ts +4 -1
  315. package/types/src/named/INamedCollection.d.ts +26 -0
  316. package/types/src/named/NamedCollection.d.ts +16 -15
  317. package/types/src/numFmt/BuiltInFormats.d.ts +20 -7
  318. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  319. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  320. package/types/src/numFmt/_FormatCell.d.ts +11 -2
  321. package/types/src/numFmt/_NumFmtUtils.d.ts +0 -1
  322. package/types/src/numFmt/vendor/numfmt/_sheetxl.d.ts +6 -0
  323. package/types/src/outline/IOutline.d.ts +186 -0
  324. package/types/src/outline/Outline.d.ts +157 -0
  325. package/types/src/outline/index.d.ts +2 -0
  326. package/types/src/person/IPerson.d.ts +99 -0
  327. package/types/src/person/IPersonCollection.d.ts +51 -0
  328. package/types/src/person/Person.d.ts +32 -0
  329. package/types/src/person/PersonCollection.d.ts +49 -0
  330. package/types/src/person/index.d.ts +4 -0
  331. package/types/src/picture/IPicture.d.ts +33 -3
  332. package/types/src/picture/Picture.d.ts +33 -13
  333. package/types/src/pivot/IPivotTable.d.ts +72 -0
  334. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  335. package/types/src/pivot/PivotCache.d.ts +34 -0
  336. package/types/src/pivot/PivotTable.d.ts +61 -0
  337. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  338. package/types/src/pivot/_PivotXml.d.ts +24 -0
  339. package/types/src/pivot/index.d.ts +6 -0
  340. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  341. package/types/src/primitives/Criteria.d.ts +1 -1
  342. package/types/src/primitives/Grouping.d.ts +65 -0
  343. package/types/src/primitives/LambdaBrand.d.ts +26 -0
  344. package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
  345. package/types/src/primitives/Range.d.ts +133 -25
  346. package/types/src/primitives/RangeStats.d.ts +30 -2
  347. package/types/src/primitives/ReferenceRange.d.ts +44 -0
  348. package/types/src/primitives/Runtime.d.ts +15 -2
  349. package/types/src/primitives/environment.browser.d.ts +9 -0
  350. package/types/src/primitives/environment.node.d.ts +10 -0
  351. package/types/src/primitives/stats/AggregateStats.d.ts +49 -15
  352. package/types/src/primitives/stats/Cancellation.d.ts +13 -0
  353. package/types/src/primitives/stats/FrequencyStats.d.ts +10 -1
  354. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  355. package/types/src/primitives/stats/Ranked.d.ts +1 -1
  356. package/types/src/primitives/stats/SortedNumbers.d.ts +4 -2
  357. package/types/src/primitives/stats/index.d.ts +1 -0
  358. package/types/src/print/IPrint.d.ts +0 -22
  359. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  360. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  361. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  362. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  363. package/types/src/protection/DefaultProtection.d.ts +12 -1
  364. package/types/src/protection/IProtection.d.ts +36 -2
  365. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  366. package/types/src/reference/index.d.ts +2 -0
  367. package/types/src/resource/IResource.d.ts +21 -1
  368. package/types/src/resource/IResourceCollection.d.ts +9 -1
  369. package/types/src/resource/ResourceCollection.d.ts +6 -6
  370. package/types/src/scripting/FunctionCollection.d.ts +49 -15
  371. package/types/src/scripting/IFunctionCollection.d.ts +62 -32
  372. package/types/src/scripting/IModule.d.ts +25 -0
  373. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  374. package/types/src/scripting/IScript.d.ts +28 -26
  375. package/types/src/scripting/Module.d.ts +34 -6
  376. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  377. package/types/src/scripting/Runtime.d.ts +15 -0
  378. package/types/src/scripting/Scripts.d.ts +3 -7
  379. package/types/src/scripting/TypedFunction.d.ts +154 -18
  380. package/types/src/scripting/_FunctionIndex.d.ts +8 -3
  381. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  382. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  383. package/types/src/scripting/declarations.browser.d.ts +10 -0
  384. package/types/src/scripting/declarations.d.ts +49 -0
  385. package/types/src/scripting/declarations.node.d.ts +9 -0
  386. package/types/src/scripting/index.d.ts +3 -0
  387. package/types/src/selection/IMovableSelection.d.ts +148 -0
  388. package/types/src/selection/IRangeSelection.d.ts +9 -4
  389. package/types/src/selection/MovableSelection.d.ts +48 -0
  390. package/types/src/selection/RangeSelection.d.ts +15 -0
  391. package/types/src/selection/index.d.ts +1 -0
  392. package/types/src/shape/GeometryPreset.d.ts +197 -0
  393. package/types/src/shape/IGeometry.d.ts +380 -0
  394. package/types/src/shape/IShape.d.ts +341 -194
  395. package/types/src/shape/IShapeStyle.d.ts +135 -0
  396. package/types/src/shape/Shape.d.ts +107 -21
  397. package/types/src/shape/ShapeStyleUtils.d.ts +54 -0
  398. package/types/src/shape/_ConnectorFrame.d.ts +32 -0
  399. package/types/src/shape/_ConnectorRoute.d.ts +33 -0
  400. package/types/src/shape/_Connectors.d.ts +108 -0
  401. package/types/src/shape/_Geometry.d.ts +14 -0
  402. package/types/src/shape/_GeometryLoader.d.ts +21 -0
  403. package/types/src/shape/_ShapeStyle.d.ts +70 -0
  404. package/types/src/shape/_builtIn/_BuiltInChunks.d.ts +10 -0
  405. package/types/src/shape/_builtIn/_BuiltInDef.d.ts +9 -0
  406. package/types/src/shape/_builtIn/arrows.d.ts +6 -0
  407. package/types/src/shape/_builtIn/basic.d.ts +6 -0
  408. package/types/src/shape/_builtIn/callouts.d.ts +6 -0
  409. package/types/src/shape/_builtIn/flowchart.d.ts +6 -0
  410. package/types/src/shape/_builtIn/lines.d.ts +6 -0
  411. package/types/src/shape/_builtIn/math.d.ts +6 -0
  412. package/types/src/shape/_builtIn/other.d.ts +6 -0
  413. package/types/src/shape/_builtIn/rectangles.d.ts +6 -0
  414. package/types/src/shape/_builtIn/starsBanners.d.ts +6 -0
  415. package/types/src/shape/geometry/_strokeEnds.d.ts +7 -0
  416. package/types/src/shape/geometry/format.d.ts +3 -0
  417. package/types/src/shape/geometry/geometry.d.ts +85 -0
  418. package/types/src/shape/geometry/guides.d.ts +54 -0
  419. package/types/src/shape/geometry/handles.d.ts +14 -0
  420. package/types/src/shape/geometry/index.d.ts +7 -0
  421. package/types/src/shape/geometry/lineEnds.d.ts +54 -0
  422. package/types/src/shape/geometry/paths.d.ts +35 -0
  423. package/types/src/shape/geometry/segments.d.ts +114 -0
  424. package/types/src/shape/index.d.ts +3 -0
  425. package/types/src/sheet/CellRegion.d.ts +6 -0
  426. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  427. package/types/src/sheet/ISheet.d.ts +197 -50
  428. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  429. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  430. package/types/src/sheet/NamedRange.d.ts +8 -0
  431. package/types/src/sheet/Sheet.d.ts +915 -138
  432. package/types/src/sheet/SheetCell.d.ts +92 -32
  433. package/types/src/sheet/SheetCollection.d.ts +19 -8
  434. package/types/src/sheet/SheetRange.d.ts +90 -18
  435. package/types/src/sheet/SheetRanges.d.ts +22 -9
  436. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  437. package/types/src/sheet/_HeldFormula.d.ts +69 -0
  438. package/types/src/sheet/_InvalidSheetRange.d.ts +7 -7
  439. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  440. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  441. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  442. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  443. package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
  444. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  445. package/types/src/sheet/_SheetFilterUtils.d.ts +49 -1
  446. package/types/src/sheet/_SheetIntents.d.ts +296 -0
  447. package/types/src/sheet/_SheetMutations.d.ts +182 -62
  448. package/types/src/sheet/_SheetStateReader.d.ts +19 -13
  449. package/types/src/sheet/_SheetStateTypes.d.ts +83 -78
  450. package/types/src/sheet/_SheetUtils.d.ts +39 -22
  451. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  452. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  453. package/types/src/sheet/spatial/index.d.ts +1 -0
  454. package/types/src/sheet/style/SheetCellStyle.d.ts +209 -304
  455. package/types/src/sheet/style/SheetDirectStyle.d.ts +30 -19
  456. package/types/src/sheet/style/SheetNamedStyle.d.ts +17 -17
  457. package/types/src/sheet/style/SheetTableStyle.d.ts +5 -5
  458. package/types/src/sheet/style/_Resolvers.d.ts +14 -8
  459. package/types/src/sheet/style/_StyleUtils.d.ts +38 -8
  460. package/types/src/sheetHeader/ISheetHeader.d.ts +94 -53
  461. package/types/src/sheetHeader/SheetCellHeader.d.ts +4 -0
  462. package/types/src/sheetHeader/SheetHeader.d.ts +42 -22
  463. package/types/src/sheetHeader/_HeaderMetrics.d.ts +37 -0
  464. package/types/src/sheetHeader/_HeaderUtils.d.ts +5 -3
  465. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  466. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  467. package/types/src/sheetView/ISheetView.d.ts +69 -15
  468. package/types/src/sheetView/SheetView.d.ts +20 -11
  469. package/types/src/slicer/ISlicer.d.ts +304 -17
  470. package/types/src/slicer/ISlicerStyle.d.ts +109 -0
  471. package/types/src/slicer/Slicer.d.ts +128 -13
  472. package/types/src/slicer/SlicerStyle.d.ts +25 -0
  473. package/types/src/slicer/_BuiltInSlicerStyles.d.ts +13 -0
  474. package/types/src/slicer/_SlicerUtils.d.ts +30 -0
  475. package/types/src/slicer/index.d.ts +1 -0
  476. package/types/src/sort/ISort.d.ts +4 -2
  477. package/types/src/string/IStringCollection.d.ts +5 -0
  478. package/types/src/string/StringCollection.d.ts +6 -6
  479. package/types/src/style/{IStyle.d.ts → ICellStyle.d.ts} +72 -52
  480. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  481. package/types/src/style/ISlicerStyleCollection.d.ts +77 -0
  482. package/types/src/style/IStyleCollection.d.ts +91 -60
  483. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  484. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  485. package/types/src/style/SlicerStyleCollection.d.ts +46 -0
  486. package/types/src/style/StyleCollection.d.ts +81 -26
  487. package/types/src/style/TableStyleCollection.d.ts +49 -0
  488. package/types/src/style/_BuiltInStyleDefs.d.ts +6 -6
  489. package/types/src/style/_BuiltInStyleNames.d.ts +2 -2
  490. package/types/src/style/index.d.ts +7 -1
  491. package/types/src/table/AnchoredTable.d.ts +701 -72
  492. package/types/src/table/AutoTable.d.ts +7 -5
  493. package/types/src/table/ITable.d.ts +261 -34
  494. package/types/src/table/ITableCollection.d.ts +12 -0
  495. package/types/src/table/ITableStyle.d.ts +37 -37
  496. package/types/src/table/TableCollection.d.ts +19 -8
  497. package/types/src/table/_FilterField.d.ts +19 -6
  498. package/types/src/table/_NamedTable.d.ts +17 -1
  499. package/types/src/table/_NamedTableSource.d.ts +1 -0
  500. package/types/src/table/_SortField.d.ts +2 -0
  501. package/types/src/table/_TableColumn.d.ts +13 -2
  502. package/types/src/table/_TableMessages.d.ts +1 -0
  503. package/types/src/table/_TableUtils.d.ts +40 -0
  504. package/types/src/text/Bullet.d.ts +4 -0
  505. package/types/src/text/IText.d.ts +182 -0
  506. package/types/src/text/ITextFrame.d.ts +110 -1
  507. package/types/src/text/TextBoxAlignment.d.ts +25 -16
  508. package/types/src/text/TextFrame.d.ts +4 -0
  509. package/types/src/text/TextLine.d.ts +4 -0
  510. package/types/src/text/TextParagraph.d.ts +4 -0
  511. package/types/src/text/TextRotation.d.ts +3 -3
  512. package/types/src/text/TextRun.d.ts +9 -0
  513. package/types/src/text/TextStacked.d.ts +83 -0
  514. package/types/src/text/index.d.ts +1 -0
  515. package/types/src/text/richtext/IRichText.d.ts +36 -0
  516. package/types/src/text/richtext/IStyledFont.d.ts +18 -18
  517. package/types/src/text/richtext/index.d.ts +1 -0
  518. package/types/src/theme/ITheme.d.ts +45 -4
  519. package/types/src/theme/IThemeCollection.d.ts +2 -0
  520. package/types/src/theme/ThemeCollection.d.ts +11 -7
  521. package/types/src/theme/_OfficeFormatScheme.d.ts +3 -0
  522. package/types/src/transaction/ITransaction.d.ts +258 -45
  523. package/types/src/transaction/Transaction.d.ts +101 -11
  524. package/types/src/transaction/TransactionUndoManager.d.ts +4 -1
  525. package/types/src/type/AbstractCollection.d.ts +101 -0
  526. package/types/src/type/ICollection.d.ts +117 -0
  527. package/types/src/type/ITypes.d.ts +9 -7
  528. package/types/src/type/index.d.ts +1 -0
  529. package/types/src/utils/_CSSUtils.d.ts +3 -3
  530. package/types/src/wasm/_sdkWasm.d.ts +7 -0
  531. package/types/src/wasm/index.d.ts +2 -0
  532. package/types/src/wasm/sdkWasm.d.ts +29 -0
  533. package/types/src/workbook/IWorkbook.d.ts +180 -40
  534. package/types/src/workbook/Workbook.d.ts +123 -10
  535. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  536. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  537. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  538. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  539. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  540. package/browser/cjs/B7_pDFYCVzt-3hUs.cjs +0 -1
  541. package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
  542. package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
  543. package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
  544. package/browser/cjs/Dv3x6zut1ZRUt3IF.cjs +0 -10
  545. package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
  546. package/browser/cjs/a0Z-SXs_N71CtqYb.cjs +0 -1
  547. package/browser/cjs/index.cjs +0 -3
  548. package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
  549. package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
  550. package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
  551. package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
  552. package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
  553. package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
  554. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  555. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +0 -12
  556. package/types/src/dataValidation/_Utils.d.ts +0 -10
  557. package/types/src/lib/utils/_Utils.d.ts +0 -27
  558. package/types/src/lib/utils/utils.browser.d.ts +0 -33
  559. package/types/src/movable/IGroup.d.ts +0 -30
  560. package/types/src/movable/IMovableSelection.d.ts +0 -49
  561. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  562. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  563. package/types/src/sheet/listener/index.d.ts +0 -3
  564. /package/types/src/{lib/utils → license}/banner.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { ScalarType, IRange, IRuntime, IRangeStats, Scalar } from '@sheetxl/primitives';
2
2
  import { ISparseGrid } from '../collections';
3
- import { SortedNumbers, AggSegmentCache } from './stats';
3
+ import { SortedNumbers, AggSegmentCache, AggResults } from './stats';
4
4
  export declare class RangeStats implements IRangeStats {
5
5
  protected _runtime: IRuntime;
6
6
  protected _grid: ISparseGrid<Scalar>;
@@ -9,20 +9,48 @@ export declare class RangeStats implements IRangeStats {
9
9
  protected _iteratorOptions?: IRange.IteratorOptions;
10
10
  protected _segmentCache: AggSegmentCache;
11
11
  protected _ZoneSizeMinor: number;
12
+ /**
13
+ * The first row and column of the range whose options these are, which its `processRowSkip` /
14
+ * `processColumnSkip` count from; `undefined` when the options skip nothing.
15
+ */
16
+ protected _skipOrigin: IRange.CellCoords | undefined;
12
17
  protected _sortedNumbers: SortedNumbers | undefined;
13
18
  protected _aggregates: IRangeStats.Aggregates | undefined;
14
19
  protected _typedCounts: Readonly<Record<ScalarType, number>> | undefined;
20
+ /**
21
+ * The raw results of the ONE walk this instance has done, whichever consumer asked first.
22
+ * `count`, `typed` and the numeric aggregates are all recorded by the same pass and none of
23
+ * them depends on `onError` (the segment cache's own contract — only `coerce` changes content),
24
+ * so the typed counts a reject scan asks for and the aggregates the body then asks for come
25
+ * from a single scan instead of two. A partial-zone range (a `SUM($K$51:K#)` running total)
26
+ * never caches at the segment level, so without this every such call scanned twice.
27
+ * Two-state: `undefined` = not walked yet, `null` = walked, the grid was empty.
28
+ */
29
+ protected _raw: AggResults | null | undefined;
15
30
  protected _frequencies: Readonly<IRangeStats.IFrequency> | undefined;
16
31
  protected _ranked: readonly Scalar[] | undefined;
17
32
  protected _lastNumber: number | null | undefined;
18
- constructor(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords?: readonly (IRange.Coords | null)[], options?: IRange.IteratorOptions, segmentCache?: AggSegmentCache, zoneSizeMinor?: number);
33
+ constructor(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords?: readonly (IRange.Coords | null)[], options?: IRange.IteratorOptions, segmentCache?: AggSegmentCache, zoneSizeMinor?: number, skipOrigin?: IRange.CellCoords);
34
+ /**
35
+ * The values grid this instance measures. Its owner re-points the cache when the map is
36
+ * replaced, which a clone of the map is.
37
+ */
38
+ getGrid(): ISparseGrid<Scalar>;
19
39
  clone(grid?: ISparseGrid<Scalar>, localCoords?: readonly (IRange.Coords | null)[]): this;
20
40
  clear(): void;
21
41
  /** Lazily resolved, then held for this instance's lifetime like the other per-instance results. */
22
42
  protected _getLastNumber(): number | undefined;
23
43
  toLocalCoords(coords: IRange.Coords | readonly IRange.Coords[], iteratorOptions?: IRange.IteratorOptions): IRangeStats;
44
+ /** @inheritdoc IRangeStats.getCoords */
45
+ getCoords(): IRange.Coords | null;
24
46
  /** @inheritdoc IRangeStats.getSize */
25
47
  getSize(): number;
48
+ /**
49
+ * The instance's one walk (see `_raw`), taken with errors as population — the contract of
50
+ * every consumer that counts. Reused by the aggregate path when the instance's own error
51
+ * policy has no side effect to replay.
52
+ */
53
+ protected _walk(): AggResults | null;
26
54
  /** @inheritdoc IRangeStats.getCount */
27
55
  getCount(): number;
28
56
  /** @inheritdoc IRangeStats.getAggregates */
@@ -1,14 +1,58 @@
1
1
  import { Scalar, ScalarType, IReferenceRange, IRange, IRuntime } from '@sheetxl/primitives';
2
2
  import { ISparseGrid } from '../collections';
3
3
  import { Range } from './Range';
4
+ /**
5
+ * Answers "is there an error value within these coords" for the grid a reference reads, from an
6
+ * index rather than a scan. The calculation grid maintains one at every write; a reference built
7
+ * over any other grid has none and scans.
8
+ */
9
+ export interface ReferenceErrorIndex {
10
+ hasErrorIn(coords: IRange.Coords): boolean;
11
+ }
12
+ /** @internal */
13
+ export declare function _setReferenceErrorIndexAssert(enabled: boolean): void;
4
14
  export declare class ReferenceRange extends Range implements IReferenceRange {
5
15
  protected _getEntireCoords: () => IRange.Coords;
6
16
  protected _resolveScope: (scope: string) => string | undefined;
17
+ /** The grid's error index, when the reference reads a grid that keeps one. */
18
+ protected _errorIndex: ReferenceErrorIndex | null;
19
+ /**
20
+ * Told when a body reads this reference's POSITION (`getCoords`). A reference's values are a
21
+ * property of what it points at; its address is a property of which cell is asking, so a
22
+ * formula that reads it (`ROW(A13)`, `CELL("address",A13)`) cannot share its answer with another
23
+ * cell — see `CalcScope.perCellRead`. Set by the context that builds the reference; a view
24
+ * (`slice`, `toType`) carries it.
25
+ */
26
+ protected _onCoordsRead: (() => void) | null;
7
27
  constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords, options: IRange.ValueOptions | null | undefined, getEntireCoords: (() => IRange.Coords) | undefined, resolveScope: (scope: string) => string | undefined);
8
28
  /** @inheritdoc IReferenceRange.getCoords */
9
29
  getCoords(): Readonly<IRange.Coords>;
10
30
  /** @inheritdoc IReferenceRange.isIReferenceRange */
11
31
  get isIReferenceRange(): true;
32
+ /**
33
+ * @internal
34
+ * Attaches the error index of the grid this reference reads. Set by the context that builds
35
+ * the reference; a typed view (`toType`) carries it.
36
+ */
37
+ _setErrorIndex(index: ReferenceErrorIndex | null): void;
38
+ /**
39
+ * @internal
40
+ * Attaches the hook a position read reports to — see {@link _onCoordsRead}.
41
+ */
42
+ _setCoordsReadHook(hook: (() => void) | null): void;
43
+ /** @inheritdoc IRange.hasError */
44
+ hasError(): boolean;
45
+ /** @inheritdoc IRange.slice */
46
+ slice(coords: Partial<IRange.Coords>): this;
47
+ /** @inheritdoc Range.clone */
48
+ clone(options?: IRange.IteratorOptions, isLiteral?: boolean, isDirectScalar?: boolean): this;
49
+ /**
50
+ * @internal
51
+ * The reference DEMOTED to its values: a plain `Range` over the same grid and coords, with no
52
+ * reference identity. The call-exit applies this to a VALUE-declared function's reference
53
+ * result (IFERROR/IFNA's surviving branch — ISREF of it is FALSE, measured; TypedFunction §3.1).
54
+ */
55
+ _toValueRange(): IRange;
12
56
  /** @inheritdoc IRange.toType */
13
57
  toType(type: ScalarType | IRange.ValueOptions): this;
14
58
  protected _validateCoords(coords: Partial<IRange.Coords>): void;
@@ -17,12 +17,23 @@ export interface RuntimeOptions {
17
17
  */
18
18
  getLocaleOverrides?: () => LocaleProfileOverrides | null;
19
19
  /**
20
- * Returns now as a long date time.
20
+ * The clock behind {@link IRuntime.getNow}, as epoch milliseconds — not a serial date.
21
21
  *
22
22
  * @remarks
23
- * This is not a serial date here.
23
+ * Pinning it makes `NOW` and `TODAY` reproducible. A workbook that builds its own runtime pins
24
+ * this to the current commit's timestamp, so supplying a runtime without one hands those
25
+ * functions the wall clock instead.
24
26
  */
25
27
  getNow?: () => number;
28
+ /**
29
+ * The value behind {@link IRuntime.getRandom}, drawn once per calculation pass — `Math.random`
30
+ * unless a host pins it.
31
+ *
32
+ * @remarks
33
+ * Pinning it makes every draw in the workbook reproducible. Like a pinned clock it is a
34
+ * whole-run choice: collaborators who do not pin the same value do not draw the same values.
35
+ */
36
+ getRandom?: () => number;
26
37
  }
27
38
  export declare const defaultLocale: () => string;
28
39
  export declare const languageLocale: () => string | null;
@@ -37,6 +48,8 @@ export declare class Runtime implements IRuntime {
37
48
  getLocale(): string;
38
49
  /** @inheritdoc IRuntime.getNow */
39
50
  getNow(): number;
51
+ /** @inheritdoc IRuntime.getRandom */
52
+ getRandom(): number;
40
53
  /** @inheritdoc IRuntime.getLocaleProfile */
41
54
  getLocaleProfile(): LocaleProfile;
42
55
  /** @inheritdoc IRuntime.isDate1904 */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The runtime location - the current page url in the browser.
3
+ */
4
+ export declare function getLocation(): string;
5
+ /**
6
+ * The OS platform, used by the `INFO("system")` formula.
7
+ */
8
+ export declare function getOS(): string;
9
+ //# sourceMappingURL=environment.browser.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The runtime location - the current working directory in node.
3
+ */
4
+ export declare function getLocation(): string;
5
+ /**
6
+ * The OS platform, used by the `INFO("system")` formula. `process.platform` is available
7
+ * synchronously without importing `os`.
8
+ */
9
+ export declare function getOS(): string;
10
+ //# sourceMappingURL=environment.node.d.ts.map
@@ -37,8 +37,52 @@ export type AggResults = {
37
37
  export type AggSegmentCache = {
38
38
  coerce: unknown;
39
39
  byRun: WeakMap<IListLike<Scalar>, AggResults[]>;
40
+ /**
41
+ * The segments of a walk that SKIPS cells (`IRange.IteratorOptions.processRowSkip`), by the
42
+ * skip and the origin it counts from: a segment's content then depends on which cells the skip
43
+ * leaves out, and a caller that keeps one skip (the engine's, per hidden set) keeps its zones.
44
+ */
45
+ bySkip: WeakMap<SkipProcessor, Map<number, WeakMap<IListLike<Scalar>, AggResults[]>>>;
40
46
  };
41
47
  export declare const createAggSegmentCache: () => AggSegmentCache;
48
+ /** A skip as `IRange.IteratorOptions.processRowSkip` gives one: the index to read at or past `index`. */
49
+ export type SkipProcessor = (index: number, reverse?: boolean) => number;
50
+ /**
51
+ * A skip a walk honors, on one axis of the grid: the range's callback, which counts from the
52
+ * range's origin on that axis, asked with a grid index less that origin.
53
+ */
54
+ export interface WalkSkip {
55
+ readonly skip: SkipProcessor;
56
+ readonly origin: number;
57
+ }
58
+ /** The skips of a walk, by the grid's axes. */
59
+ export interface WalkSkips {
60
+ /** The skip along the grid's major axis: a run it skips is left out whole. */
61
+ readonly major: WalkSkip | null;
62
+ /** The skip along the grid's minor axis: the cells of a run it skips. */
63
+ readonly minor: WalkSkip | null;
64
+ }
65
+ /**
66
+ * The skips `options` ask for, by the grid's axes; `null` when it asks for none.
67
+ *
68
+ * @param origin The range's first row and column on the grid, which its callbacks count from.
69
+ */
70
+ export declare function resolveSkips(options: IRange.IteratorOptions | undefined, isColumn: boolean, origin: IRange.CellCoords | undefined): WalkSkips | null;
71
+ /** Whether the skip leaves out the grid index. */
72
+ export declare const isSkipped: (skip: WalkSkip, index: number) => boolean;
73
+ /**
74
+ * The grid index to read at or past `index` (at or before, when `reverse`): `index` itself when
75
+ * the skip reads it. A walk moves straight to it, so a hidden block costs one call, not one per
76
+ * cell.
77
+ */
78
+ export declare const nextRead: (skip: WalkSkip, index: number, reverse?: boolean) => number;
79
+ /**
80
+ * How many cells of `coords` a read under `options` takes in: the population blanks are counted
81
+ * from. A skipped cell is outside it, so it is never a blank.
82
+ *
83
+ * @param origin As {@link resolveSkips}.
84
+ */
85
+ export declare function countReadCells(options: IRange.IteratorOptions | undefined, coords: IRange.Coords, origin: IRange.CellCoords | undefined): number;
42
86
  export declare const resolveAggSegmentCache: (grid: ISparseGrid<Scalar>, inherit?: AggSegmentCache) => AggSegmentCache;
43
87
  /**
44
88
  * The default minor zone size for segment caching.
@@ -61,13 +105,13 @@ export declare const EmptyAggregates: Readonly<IRangeStats.Aggregates>;
61
105
  *
62
106
  * @remarks
63
107
  * Results are built using a segment cache keyed by run identity (`segmentsByRun`).
64
- * The cache is shared across all coord shapes that derive from the same root `RangeStats`
65
- * instance (via `toLocalCoords`), so segment aggregates computed for one shape are reused
66
- * by any other shape that overlaps the same run segments.
108
+ * The cache is grid-scoped (see `resolveAggSegmentCache`), so segment aggregates computed for
109
+ * one coord shape are reused by any other shape over the same grid lineage that overlaps the
110
+ * same run segments.
67
111
  *
68
112
  * Returns `null` when the grid is empty.
69
113
  */
70
- export declare function iterateAndCollectStats(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined, segmentCache: AggSegmentCache, zoneSizeMinor: number): AggResults | null;
114
+ export declare function iterateAndCollectStats(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined, segmentCache: AggSegmentCache, zoneSizeMinor: number, skipOrigin?: IRange.CellCoords): AggResults | null;
71
115
  /**
72
116
  * The value Excel added LAST — the final numeric member in ROW-major order, which is the
73
117
  * traversal Excel's accumulators use (measured: `probe-sum-cancel-order.ps1`, two mirrored 2-D
@@ -87,7 +131,7 @@ export declare function iterateAndCollectStats(runtime: IRuntime, grid: ISparseG
87
131
  * `(row, col)` is used rather than reverse iteration because the grid's run iterator has no
88
132
  * reverse, and this way the result is independent of the grid's axis.
89
133
  */
90
- export declare function findLastNumber(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined): number | undefined;
134
+ export declare function findLastNumber(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined, skipOrigin?: IRange.CellCoords): number | undefined;
91
135
  /**
92
136
  * Resolves an iterator's `coerce` option into the callable pair the scans use.
93
137
  *
@@ -106,14 +150,4 @@ export declare function resolveCoerce(runtime: IRuntime, optionsIterator: IRange
106
150
  * Computes derived fields (average, variance, stdDev) and normalizes missing-number fields to null.
107
151
  */
108
152
  export declare function buildAggregates(raw: AggResults | null): Readonly<IRangeStats.Aggregates>;
109
- /**
110
- * Calculates an optimal zone size for a given grid minor dimension.
111
- *
112
- * @remarks
113
- * Strategy: target ~128 segments per full column/row to balance cache granularity
114
- * (smaller = better reuse for small queries) vs. iteration overhead (fewer = faster
115
- * full-column scans). Result is rounded up to the nearest power of 2 and clamped to
116
- * [256, 16384].
117
- */
118
- export declare function calculateZoneSize(maxMinorDimension: number): number;
119
153
  //# sourceMappingURL=AggregateStats.d.ts.map
@@ -40,4 +40,17 @@ export declare const mayCancel: (sum: number, largestMag: number) => boolean;
40
40
  * `SUM(1E-20)` → `1E-20`.
41
41
  */
42
42
  export declare const snapCancelledSum: (sum: number, lastNumber: number | undefined) => number;
43
+ /**
44
+ * The rule itself, for one addition whose left operand is known: `result` is `0` when it lands
45
+ * at least 50 binary exponents below `accBefore`.
46
+ *
47
+ * @param result The sum (or difference) just computed.
48
+ * @param accBefore What was already accumulated — the left operand of a root `+`/`-`.
49
+ *
50
+ * @remarks
51
+ * A binary `+`/`-` is the one-step case of the sum rule: `=H4+H9` (`1 + -(1-2^-50)`) is `0`
52
+ * while `=H9+H4` keeps `8.88178419700125E-16`, the same order dependence as `SUM`. A non-finite
53
+ * result is never a cancellation (see {@link mayCancel}).
54
+ */
55
+ export declare const snapCancelled: (result: number, accBefore: number) => number;
43
56
  //# sourceMappingURL=Cancellation.d.ts.map
@@ -7,6 +7,13 @@ import { ISparseGrid } from '../../collections';
7
7
  export interface FrequencyGroup {
8
8
  readonly value: Scalar;
9
9
  count: number;
10
+ /** Bounding box of the occurrences, in grid coordinates; absent when not tracked (merged, blank). */
11
+ extent?: {
12
+ rowStart: number;
13
+ colStart: number;
14
+ rowEnd: number;
15
+ colEnd: number;
16
+ };
10
17
  }
11
18
  /**
12
19
  * Implements {@link IRangeStats.IFrequency}.
@@ -53,6 +60,8 @@ export declare class FrequencyStats implements IRangeStats.IFrequency {
53
60
  getTotalCount(): number;
54
61
  /** @inheritdoc IRangeStats.IFrequency.isTruncated */
55
62
  isTruncated(): boolean;
63
+ /** @inheritdoc IRangeStats.IFrequency.getExtent */
64
+ getExtent(value: Scalar): IRange.Coords | null;
56
65
  private _getValueOrderAscending;
57
66
  /**
58
67
  * Collects distinct-value frequencies from a grid and returns an instance over them.
@@ -70,7 +79,7 @@ export declare class FrequencyStats implements IRangeStats.IFrequency {
70
79
  * (a custom `filterFn` restricts the population in a way nothing else already counts) and the
71
80
  * scan's own `visitedCount` is used — exact when not truncated, an undercount when truncated.
72
81
  */
73
- static fromGrid(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, options: IRangeStats.GetFrequenciesOptions | undefined, defaultCompareFn: (a: Scalar, b: Scalar) => number, blankCount: number, totalCount: number | undefined): FrequencyStats;
82
+ static fromGrid(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, options: IRangeStats.GetFrequenciesOptions | undefined, defaultCompareFn: (a: Scalar, b: Scalar) => number, blankCount: number, totalCount: number | undefined, skipOrigin?: IRange.CellCoords): FrequencyStats;
74
83
  /**
75
84
  * Builds an instance directly from an already-merged group map — used by
76
85
  * {@link CompositeRangeStats}, which merges its children's own (already-scanned) frequencies
@@ -0,0 +1,46 @@
1
+ import { IRange, Scalar } from '@sheetxl/primitives';
2
+ import { IListLike, ISparseGrid } from '../../collections';
3
+ /**
4
+ * An exact-match index over a grid's stored runs, keyed by run identity.
5
+ *
6
+ * @remarks
7
+ * Behind `IRange.indexOf`, and through it `MATCH(…, 0)`, `VLOOKUP(…, FALSE)` and the exact modes
8
+ * of `XLOOKUP`/`XMATCH`: the shape where one table is read by thousands of lookup cells. Each
9
+ * stored run is walked once into a map from member key to positions, and the map lives exactly as
10
+ * long as the run object. Every write REPLACES the runs it touches (`segmentCopyOnWrite.test.ts`),
11
+ * so a changed run is a miss whose map collects with it, while untouched runs — and every grid
12
+ * clone and sub-range that shares them — stay warm. Nothing is keyed on the grid, the range or the
13
+ * pass: none of those is stable across the calls that share a table.
14
+ *
15
+ * The key is the hashing side of the `=` rule, the one `UNIQUE` dedupes with: a number as itself,
16
+ * text through {@link toCompareKey}, a logical as itself. A `Map` keeps the three apart, so `1`,
17
+ * `"1"` and `TRUE` never collide. Blank, error and rich-data members are never candidates and are
18
+ * not indexed. Numbers match exactly, as the lookup family compares them; text carries the fold
19
+ * but not a locale's collation tailorings, the same deviation `UNIQUE` accepts.
20
+ */
21
+ type Key = number | string | boolean;
22
+ /**
23
+ * The key a member hashes under, or `undefined` for a member that is never a match.
24
+ */
25
+ export declare function lookupKey(value: Scalar): Key | undefined;
26
+ /**
27
+ * The position of `value` along a vector that lies on the grid's own axis, or -1.
28
+ *
29
+ * @param values The grid the vector reads.
30
+ * @param coords One column of a column-oriented grid, or one row of a row-oriented one.
31
+ * @param isColumn Whether the vector is a column.
32
+ * @param value The value to find; one {@link lookupKey} answers for.
33
+ * @param reverse Answer the last position rather than the first.
34
+ *
35
+ * @remarks
36
+ * Runs are asked untrimmed (`overflowRun`), so a run that leaves the vector keeps its identity
37
+ * and its map: `A2:A100` and `A1:A100` are served by the same index, clipped by position.
38
+ */
39
+ export declare function indexOfInRuns(values: ISparseGrid<Scalar>, coords: IRange.Coords, isColumn: boolean, value: Scalar, reverse: boolean): number;
40
+ /**
41
+ * @internal
42
+ * Whether `run` carries an index. For tests of the cache's lifetime.
43
+ */
44
+ export declare function isRunIndexed(run: IListLike<Scalar>): boolean;
45
+ export {};
46
+ //# sourceMappingURL=LookupIndex.d.ts.map
@@ -10,7 +10,7 @@ import { ISparseGrid } from '../../collections';
10
10
  * `includeBlanks` is handled separately: one synthetic `null` candidate is offered per blank
11
11
  * cell, capped at `limit` offers (any beyond that can never displace a kept member).
12
12
  */
13
- export declare function collectRanked(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, options: IRangeStats.GetRankedOptions | undefined, defaultCompareFn: (a: Scalar, b: Scalar) => number): readonly Scalar[];
13
+ export declare function collectRanked(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, options: IRangeStats.GetRankedOptions | undefined, defaultCompareFn: (a: Scalar, b: Scalar) => number, skipOrigin?: IRange.CellCoords): readonly Scalar[];
14
14
  /**
15
15
  * Merges each child's own top-`limit` into the composite's true top-`limit`.
16
16
  *
@@ -22,11 +22,13 @@ export declare class SortedNumbers implements IRangeStats.ISortedNumbers {
22
22
  * Collects the numeric values within `localCoords` from the grid and returns an instance
23
23
  * over them (sorted ascending).
24
24
  */
25
- static fromGrid(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined): SortedNumbers;
25
+ static fromGrid(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, skipOrigin?: IRange.CellCoords): SortedNumbers;
26
26
  /** @inheritdoc IRangeStats.ISortedNumbers.getLarge */
27
27
  getLarge(k: number): number | null;
28
28
  /** @inheritdoc IRangeStats.ISortedNumbers.getSmall */
29
29
  getSmall(k: number): number | null;
30
+ /** Whether a rank names a place at all: `1 <= k <= n`, judged before any truncation. */
31
+ private _inRank;
30
32
  /** @inheritdoc IRangeStats.ISortedNumbers.getPercentile */
31
33
  getPercentile(k: number, exclusive?: boolean): number | null;
32
34
  /** @inheritdoc IRangeStats.ISortedNumbers.getRankOf */
@@ -43,6 +45,6 @@ export declare class SortedNumbers implements IRangeStats.ISortedNumbers {
43
45
  * Collects all numeric values from the range coords and returns them sorted ascending.
44
46
  * Called at most once per instance lifetime (result is cached on `_sortedNumbers`).
45
47
  */
46
- protected static _collectNumbers(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined): readonly number[];
48
+ protected static _collectNumbers(grid: ISparseGrid, localCoords: readonly (IRange.Coords | null)[], iteratorOptions: IRange.IteratorOptions | undefined, skipOrigin?: IRange.CellCoords): readonly number[];
47
49
  }
48
50
  //# sourceMappingURL=SortedNumbers.d.ts.map
@@ -4,4 +4,5 @@ export * from './FrequencyStats';
4
4
  export * from './Ranked';
5
5
  export * from './ScalarOrder';
6
6
  export * from './SortedNumbers';
7
+ export * from './LookupIndex';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -204,28 +204,6 @@ export declare namespace IPrint {
204
204
  */
205
205
  verticalCentered?: boolean;
206
206
  }
207
- /**
208
- * Interface for outline properties used in print, such as
209
- * the summary position and style application.
210
- */
211
- interface OutlineProperties {
212
- /**
213
- * Whether to apply styles to outline symbols.
214
- */
215
- applyStyles?: boolean;
216
- /**
217
- * Whether to display outline symbols in the print.
218
- */
219
- showOutlineSymbols?: boolean;
220
- /**
221
- * Whether the summary rows are displayed below the details.
222
- */
223
- summaryBelow?: boolean;
224
- /**
225
- * Whether the summary columns are displayed to the right of the details.
226
- */
227
- summaryRight?: boolean;
228
- }
229
207
  type Break = IRange.JSONReference<{
230
208
  man?: boolean;
231
209
  pt?: boolean;
@@ -120,6 +120,10 @@ export interface IProtectedRange extends IAnchored {
120
120
  * stack, and resets when the workbook is reopened — the same shape as
121
121
  * {@link IProtection.isPaused}. This is what lets the write path consult it synchronously; a
122
122
  * password check is async and cannot be awaited per cell.
123
+ *
124
+ * It lasts for one protection period: unprotecting the sheet revokes it (protecting again asks
125
+ * for the password afresh), while a {@link IProtection.pause} keeps it. Changing the password
126
+ * revokes it too.
123
127
  */
124
128
  isUnlocked(): boolean;
125
129
  /**
@@ -30,6 +30,8 @@ export interface IProtectedRangeCollection extends ICollection<IProtectedRange>
30
30
  * @param template A template to use for the temporary item.
31
31
  */
32
32
  createItem(template?: IProtectedRange): IProtectedRange;
33
+ /** For runtime type checking. */
34
+ readonly isIProtectedRangeCollection: true;
33
35
  }
34
36
  /**
35
37
  * {@inheritDoc IProtectedRangeCollection}
@@ -13,7 +13,7 @@ import { IProtectedRange } from './IProtectedRange';
13
13
  * Extends {@link AbstractAnchored} directly rather than `AnchoredConditional`: a protected range
14
14
  * has no condition and does not depend on cell values, so it never subscribes to range events.
15
15
  */
16
- export declare class ProtectedRange extends AbstractAnchored<State, CommitView, IProtectedRange.Events> implements IProtectedRange {
16
+ export declare class ProtectedRange extends AbstractAnchored<State, IProtectedRange.Events> implements IProtectedRange {
17
17
  /**
18
18
  * Session edit access — set by {@link unlock}, cleared by {@link relock}.
19
19
  *
@@ -94,8 +94,5 @@ interface State extends AbstractAnchored.State {
94
94
  securityDescriptor: string | null;
95
95
  password: Partial<IProtection.EncryptedPassword> | null;
96
96
  }
97
- /** @internal */
98
- interface CommitView extends AbstractAnchored.CommitView {
99
- }
100
97
  export {};
101
98
  //# sourceMappingURL=ProtectedRange.d.ts.map
@@ -1,21 +1,32 @@
1
1
  import { ICellRanges } from '../cellRange';
2
+ import { ICollection, AbstractCollection } from '../type';
3
+ import { IListener } from '../listener';
2
4
  import { IProtectedRangeCollection } from './IProtectedRangeCollection';
3
5
  import { IProtectedRange } from './IProtectedRange';
4
- export declare class ProtectedRangeCollection implements IProtectedRangeCollection {
6
+ /**
7
+ * Implementation for {@link IProtectedRangeCollection}.
8
+ *
9
+ * @remarks
10
+ * A front over the sheet's own protected-range state — the sheet keeps the store and the
11
+ * events, this class keeps the API. `onCollectionChange` is the sheet's
12
+ * `onProtectedRangesChange`, forwarded with this collection as the source.
13
+ */
14
+ export declare class ProtectedRangeCollection extends AbstractCollection<IProtectedRange, IProtectedRangeCollection.GetItemsOptions> implements IProtectedRangeCollection {
5
15
  private _add;
6
16
  private _get;
7
17
  private _getByName;
8
18
  private _createItem;
9
- constructor(add: (address: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions) => IProtectedRange, get: (address: ICellRanges.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IProtectedRange[], getByName: (name: string) => IProtectedRange | null, createItem: (template?: IProtectedRange | null) => IProtectedRange);
19
+ private _addListeners;
20
+ constructor(add: (address: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions) => IProtectedRange, get: (address: ICellRanges.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IProtectedRange[], getByName: (name: string) => IProtectedRange | null, createItem: (template?: IProtectedRange | null) => IProtectedRange, addListeners: (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove);
10
21
  /** {@inheritDoc IProtectedRangeCollection.add} */
11
22
  add(address: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions): IProtectedRange;
12
- /** {@inheritDoc ICollection.[Symbol.iterator]} */
13
- [Symbol.iterator](): IterableIterator<IProtectedRange>;
14
- /** {@inheritDoc IProtectedRangeCollection.getItems} */
15
- getItems(options?: IProtectedRangeCollection.GetItemsOptions): IProtectedRange[];
23
+ /** {@inheritDoc AbstractCollection._getItems} */
24
+ protected _getItems(options?: IProtectedRangeCollection.GetItemsOptions): IProtectedRange[];
16
25
  /** {@inheritDoc IProtectedRangeCollection.createItem} */
17
26
  createItem(template?: IProtectedRange | null): IProtectedRange;
18
- /** {@inheritDoc IProtectedRangeCollection.getCount} */
19
- getCount(): number;
27
+ /** {@inheritDoc ICollection.addListeners} */
28
+ addListeners(listeners: ICollection.IListeners, options?: IListener.Options): IListener.Remove;
29
+ /** {@inheritDoc IProtectedRangeCollection.isIProtectedRangeCollection} */
30
+ get isIProtectedRangeCollection(): true;
20
31
  }
21
32
  //# sourceMappingURL=ProtectedRangeCollection.d.ts.map
@@ -1,9 +1,11 @@
1
1
  import { IListener } from '../listener';
2
2
  import { IProtection } from './IProtection';
3
3
  import { ListenerEmitter } from '../listener/ListenerEmitter';
4
- export declare class DefaultProtection<T, P extends IProtection.Properties, J extends IProtection.JSON> implements IProtection<T, P, J> {
4
+ export declare abstract class DefaultProtection<T, P extends IProtection.Properties, J extends IProtection.JSON> implements IProtection<T, P, J> {
5
5
  protected _emitter: ListenerEmitter<this, IProtection.IListeners>;
6
6
  protected _isPaused: boolean;
7
+ /** Not protected, but keeping `_properties` for the next lock. Saved as {@link _getAllowedKey}. */
8
+ protected _isDisabled: boolean;
7
9
  protected _password: Partial<IProtection.EncryptedPassword> | null;
8
10
  protected _identities: IProtection.IdentityProvider[] | null;
9
11
  protected _properties: Partial<P> | null;
@@ -21,6 +23,8 @@ export declare class DefaultProtection<T, P extends IProtection.Properties, J ex
21
23
  pause(password?: string): Promise<IProtection<T, P, J>>;
22
24
  /** {@inheritDoc IProtection.resume} */
23
25
  resume(): IProtection<T, P, J>;
26
+ /** {@inheritDoc IProtection.setProperties} */
27
+ setProperties(properties: Partial<P>): Promise<IProtection<T, P, J>>;
24
28
  /** {@inheritDoc IProtection.isPaused} */
25
29
  isPaused(): boolean;
26
30
  /** {@inheritDoc IProtection.isLocked} */
@@ -35,9 +39,16 @@ export declare class DefaultProtection<T, P extends IProtection.Properties, J ex
35
39
  /** {@inheritDoc IListener.ISource.addListeners} */
36
40
  addListeners(listeners: IProtection.IListeners, options?: IListener.Options): IListener.Remove;
37
41
  fromJSON(json?: J): void;
42
+ /**
43
+ * The JSON key that says the whole object stays allowed: unprotected, keeping its options. Named
44
+ * for the object (`sheet`, `workbook`), like the allowances beside it.
45
+ */
46
+ protected abstract _getAllowedKey(): string;
38
47
  protected _fromJSON(_json: J | null): void;
39
48
  protected _toJSON(json: Partial<J>): Partial<J>;
40
49
  /** {@inheritDoc IWorkbookProtection.toJSON} */
41
50
  toJSON(): J | null;
51
+ /** {@inheritDoc IProtection.isIProtection} */
52
+ get isIProtection(): true;
42
53
  }
43
54
  //# sourceMappingURL=DefaultProtection.d.ts.map
@@ -8,13 +8,15 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
8
8
  * Locks the object (workbook or sheet or range) with the specified options and password.
9
9
  *
10
10
  * @param password The password required to unlock the object.
11
- * @param properties The properties to allow to remain unlocked.
11
+ * @param properties The properties to allow to remain unlocked. Omitted, the options the object
12
+ * already carries are used (see {@link unlock} and {@link setProperties}).
12
13
  * @param algorithm The algorithm for encrypting the password.
13
14
  * @param spinCount The spin count for encrypting the password.
14
15
  * @returns The `IProtection` instance for method chaining.
15
16
  *
16
17
  * @remarks
17
18
  * By default all properties are locked but you can specify which properties to remain unlocked.
19
+ * Throws when the object is already protected, paused included.
18
20
  */
19
21
  lock(properties?: Partial<P>, password?: string, algorithm?: string, spinCount?: number): Promise<IProtection<T, P, J>>;
20
22
  /**
@@ -24,9 +26,31 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
24
26
  * @returns The `IProtection` instance for method chaining.
25
27
  *
26
28
  * @remarks
27
- * If the correct password is provided, protection is removed from the object.
29
+ * If the correct password is provided, protection is removed from the object and the password is
30
+ * cleared. The options are kept, and saved, so a later {@link lock} with no properties protects
31
+ * the same way again.
28
32
  */
29
33
  unlock(password?: string): Promise<IProtection<T, P, J>>;
34
+ /**
35
+ * Replaces the options of an unprotected or paused object. On a paused object they apply when it
36
+ * resumes; on an unprotected one, when it is next locked.
37
+ *
38
+ * @param properties The properties to allow to remain unlocked.
39
+ * @returns The `IProtection` instance for method chaining.
40
+ *
41
+ * @remarks
42
+ * Throws while the object is locked: unprotect or {@link pause} first. Neither asks for the
43
+ * password here, since an unprotected object has none and a pause already asked for it.
44
+ */
45
+ setProperties(properties: Partial<P>): Promise<IProtection<T, P, J>>;
46
+ /**
47
+ * The object's options, kept while it is unlocked; `null` when it has none.
48
+ *
49
+ * @remarks
50
+ * A property names what stays **allowed** while locked - it is not a list of what is forbidden.
51
+ * Whether the options are in force is {@link isLocked}.
52
+ */
53
+ getProperties(): Partial<P> | null;
30
54
  /**
31
55
  * Temporarily disables protection with the provided password.
32
56
  *
@@ -36,6 +60,14 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
36
60
  * @remarks
37
61
  * This method allows temporarily pausing protection without permanently unlocking the object.
38
62
  * Use {@link resume} to restore protection.
63
+ *
64
+ * Not a shortcut for {@link unlock}, even on a lock without a password: unlocking is a document
65
+ * change (the file saves unprotected, and the password is gone), whereas a pause
66
+ * keeps the whole configuration - password, options, and any session access already granted to
67
+ * an {@link IProtectedRange} - and {@link resume} restores it exactly. The password is required
68
+ * only when one is set. Throws when the object is not locked.
69
+ *
70
+ * The paused state is session-only and is never serialized.
39
71
  */
40
72
  pause(password?: string): Promise<IProtection<T, P, J>>;
41
73
  /**
@@ -91,6 +123,8 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
91
123
  */
92
124
  addListeners(listeners: IProtection.IListeners, options?: IListener.Options): IListener.Remove;
93
125
  toJSON(): IProtection.JSON | null;
126
+ /** For runtime type checking. */
127
+ readonly isIProtection: true;
94
128
  }
95
129
  /**
96
130
  * {@inheritDoc IProtection}