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

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 (522) hide show
  1. package/README.md +1 -1
  2. package/browser/esm/{CYyv6uGjo10ig5FP.mjs → -Jx-jNHmtIQQfLvK.mjs} +1 -1
  3. package/browser/esm/{CdLZWVcH8cncBUPJ.mjs → 2WuhYrIpYmOR5H73.mjs} +110 -261
  4. package/browser/esm/{Cqr3knDsBvoVZ6MN.mjs → 2mIwPy2D2JUX-9wx.mjs} +2 -2
  5. package/browser/esm/B3wf5vZCsWfWsDbj.mjs +12 -0
  6. package/browser/esm/{BzLfNyc6OOShIErH.mjs → BIHrHjRGWVlJglcp.mjs} +2 -2
  7. package/browser/esm/{C9B0djuUarfNdoj0.mjs → BTFBedJMRWGvZyCE.mjs} +1 -1
  8. package/browser/esm/{Btg43M1Bf-ENDreu.mjs → BdCJNawfifyPupCP.mjs} +1 -1
  9. package/browser/esm/{ClB5ix51roQOpZEr.mjs → Bg5Di9GLNAkbqQ1P.mjs} +2877 -2067
  10. package/browser/esm/BnC4-27Igwb8oDf2.mjs +1552 -0
  11. package/browser/esm/{DhKkrCVASZ6Isvz6.mjs → Bt8_m94tBdks209L.mjs} +1 -1
  12. package/browser/esm/{zqJOaweiXE9D8RY1.mjs → BudSIfXBAsTxvu-K.mjs} +31835 -40812
  13. package/browser/esm/C9u8FUewte5ugUjH.mjs +5132 -0
  14. package/browser/esm/{Di58Ji1n--3Mgc_2.mjs → CBYMTDzMf1Vh7pkw.mjs} +1 -1
  15. package/browser/esm/CNdjyofiRu6CYOrr.mjs +12835 -0
  16. package/browser/esm/{Dtoyt8q5RyGAlxCp.mjs → CRkYR-siY2C994KV.mjs} +1 -1
  17. package/browser/esm/CTe2qfmIUEad6FJv.mjs +199 -0
  18. package/browser/esm/CUzYuYTTGsChC_kZ.mjs +8422 -0
  19. package/browser/esm/CdEO8CEee6lEhabA.mjs +117 -0
  20. package/browser/esm/CfRqiPDg6RBTg1EN.mjs +367 -0
  21. package/browser/esm/CndRBvVfQUJIYRRj.mjs +193 -0
  22. package/browser/esm/{Y79I7Sm8kjaYexhf.mjs → CwOPLXU3-9ZHGyOT.mjs} +1 -1
  23. package/browser/esm/{CjsUGJEQSbGjnH6R.mjs → Cxjxk0ncRKx80I-w.mjs} +1 -1
  24. package/browser/esm/D2RZh0O9neOsyLAE.mjs +281 -0
  25. package/browser/esm/{De175LygU7ot4nQm.mjs → D64dM68B1pKYFzdP.mjs} +2 -2
  26. package/browser/esm/{o8MFgcVXns987D6_.mjs → D9xNz46kAfXMZzp4.mjs} +6 -6
  27. package/browser/esm/{BcHmrKHwMMOlzc9_.mjs → DK899HhWX1HINMC1.mjs} +55 -55
  28. package/browser/esm/DPhGQLNGmDZwODwJ.mjs +395 -0
  29. package/browser/esm/DVroRnhi-5IDXNgM.mjs +210 -0
  30. package/browser/esm/{Bk7xxbdDpa7-sIwd.mjs → DZiivy0NmO1Vnyzk.mjs} +2 -2
  31. package/browser/esm/{CZ5oa92wZEAXebgk.mjs → DgrAuRD2qr2DvFeJ.mjs} +78 -68
  32. package/browser/esm/{D4uVlrG0xEFctsSM.mjs → DobHLF6VjHr7Xi40.mjs} +285 -67
  33. package/browser/esm/{CSx9ed1JOs7K5BXO.mjs → DwZCT7DZiiXoTweg.mjs} +2 -2
  34. package/browser/esm/DwwR3O2sEZApPSTF.mjs +86 -0
  35. package/browser/esm/Tah7cnFb_HNZdLtj.mjs +128 -0
  36. package/browser/esm/{BEAY9XgKNx-bakXW.mjs → fXWUMDhZ5yMSO629.mjs} +1 -1
  37. package/browser/esm/{BqskM7wA8oPfFQue.mjs → hCQJcmIzPDxDEv2q.mjs} +2 -2
  38. package/browser/esm/index.mjs +1294 -1008
  39. package/browser/esm/{Cgd5BnM3hg9RyUel.mjs → qO-ujUrgq6H3TQix.mjs} +1 -1
  40. package/browser/esm/w6Jea0TiclPrYZ2M.mjs +1703 -0
  41. package/browser/esm/yuhcOYw6SHQ-RCm3.mjs +114 -0
  42. package/licenses/dependencies.txt +75 -75
  43. package/node/esm/-TA0MneBDKdGhsib.mjs +8668 -0
  44. package/node/esm/B-HUPAcqvK0eeeCz.mjs +134 -0
  45. package/node/esm/BL2iiEoqxDEV2Xrg.mjs +8320 -0
  46. package/node/esm/{C6ZXsNyLXI6zA63X.mjs → BNXLOEddJ6O9gYws.mjs} +9 -9
  47. package/node/esm/{BH1v-E4Ro3bR7Znw.mjs → BSvOluusoDM4z_dx.mjs} +151 -302
  48. package/node/esm/{CD9wbvufChVYYkrI.mjs → BskP3b8vUoIOGLY6.mjs} +2 -2
  49. package/node/esm/{CnSQ7MTXAUAyBOoS.mjs → Btw4148Ot8ifhNc1.mjs} +285 -64
  50. package/node/esm/{B6D7sSetrcOWLsKj.mjs → C14-R6tifRh7pc0p.mjs} +1 -1
  51. package/node/esm/C99zzq8DImQXi4BQ.mjs +133 -0
  52. package/node/esm/{BtuY37FumvLE7EBo.mjs → CBuEu5Jk-LfaDy-H.mjs} +176 -166
  53. package/node/esm/{DdFgXl-Ux2cMBTs_.mjs → CG-qBU5BAaVz7e-P.mjs} +1 -1
  54. package/node/esm/CPI58duc0j0a-HpJ.mjs +115 -0
  55. package/node/esm/CRt3vXe6YmXzqk3H.mjs +406 -0
  56. package/node/esm/{CUUoseJmFsCf82bb.mjs → C_aL7CGS1lrNn1Ng.mjs} +1 -1
  57. package/node/esm/{D7MfcID2Wf6l6VpC.mjs → C_xf5Bz30VqiJjXn.mjs} +1 -1
  58. package/node/esm/CiIymQN6aJCul62g.mjs +610 -0
  59. package/node/esm/{B9ljpEIZg6wOTzRE.mjs → Ci_zLYmCD7e-C79O.mjs} +1 -1
  60. package/node/esm/{Bqd62L8KFgdS0Vou.mjs → CkRYLed8Mmn3giNg.mjs} +2 -2
  61. package/node/esm/D3ptRKzASqBut1DE.mjs +117 -0
  62. package/node/esm/{DefYISWfdZJFx57m.mjs → D4ROK9UwDpS6jO3Z.mjs} +1 -1
  63. package/node/esm/D8hO07ToAibIuniw.mjs +13014 -0
  64. package/node/esm/{Bh4dv6tMjXX3X4nI.mjs → DUTmDHbFbhLDT4F3.mjs} +1 -1
  65. package/node/esm/{DCplLG93GfTs1vNw.mjs → DV5CU37aEbFbWFL0.mjs} +1 -1
  66. package/node/esm/{CUQi5ZtMO02nhG0W.mjs → DdoiuKg9BKubtF1V.mjs} +1 -1
  67. package/node/esm/DggQ23jKMpwhENfa.mjs +372 -0
  68. package/node/esm/DhS6yWjrrSNIJMsn.mjs +1033 -0
  69. package/node/esm/{DMD12JUh7HJw2-jl.mjs → DhTya_mhmN53vskv.mjs} +1 -1
  70. package/node/esm/Dn1M7YWi25DeeYUb.mjs +210 -0
  71. package/node/esm/DrCf6ITcBhVOFpRj.mjs +86 -0
  72. package/node/esm/{BN9j8V9gCExMjVtJ.mjs → DxazKtROyaI51dWl.mjs} +1 -1
  73. package/node/esm/{MiU4rDOiocmJ-9Ry.mjs → Q_S1g46ZOTrdhTae.mjs} +1 -1
  74. package/node/esm/Vocy-I9dKzZMr0Ct.mjs +59323 -0
  75. package/node/esm/ZXPFcsT2zrALCZux.mjs +289 -0
  76. package/node/esm/eimUGjiIP-b8HiM6.mjs +199 -0
  77. package/node/esm/icn2nX5Z8e_3mNAv.mjs +12 -0
  78. package/node/esm/index.mjs +2808 -65678
  79. package/node/esm/lGJ42sHqg5if2bba.mjs +1770 -0
  80. package/node/esm/{Bsx9uijd4X_SKV3L.mjs → pYtP7wPyS96NQyXS.mjs} +51 -51
  81. package/package.json +6 -7
  82. package/resources/contents.json +120 -0
  83. package/resources/fonts/arial-bold-italic.hinted.json +125 -0
  84. package/resources/fonts/arial-bold-italic.metrics.json +13 -13
  85. package/resources/fonts/arial-bold-italic.rows.json +9 -0
  86. package/resources/fonts/arial-bold.hinted.json +125 -0
  87. package/resources/fonts/arial-bold.metrics.json +12 -12
  88. package/resources/fonts/arial-bold.rows.json +9 -0
  89. package/resources/fonts/arial-italic.hinted.json +125 -0
  90. package/resources/fonts/arial-italic.metrics.json +13 -13
  91. package/resources/fonts/arial-italic.rows.json +9 -0
  92. package/resources/fonts/arial-regular.hinted.json +125 -0
  93. package/resources/fonts/arial-regular.metrics.json +12 -12
  94. package/resources/fonts/arial-regular.rows.json +9 -0
  95. package/resources/fonts/calibri-bold-italic.hinted.json +122 -0
  96. package/resources/fonts/calibri-bold-italic.metrics.json +2 -2
  97. package/resources/fonts/calibri-bold-italic.rows.json +9 -0
  98. package/resources/fonts/calibri-bold.hinted.json +122 -0
  99. package/resources/fonts/calibri-bold.metrics.json +1 -1
  100. package/resources/fonts/calibri-bold.rows.json +9 -0
  101. package/resources/fonts/calibri-italic.hinted.json +121 -0
  102. package/resources/fonts/calibri-italic.metrics.json +2 -2
  103. package/resources/fonts/calibri-italic.rows.json +9 -0
  104. package/resources/fonts/calibri-regular.hinted.json +121 -0
  105. package/resources/fonts/calibri-regular.metrics.json +1 -1
  106. package/resources/fonts/calibri-regular.rows.json +9 -0
  107. package/resources/fonts/cambria-bold-italic.hinted.json +105 -0
  108. package/resources/fonts/cambria-bold-italic.metrics.json +26 -26
  109. package/resources/fonts/cambria-bold-italic.rows.json +9 -0
  110. package/resources/fonts/cambria-bold.hinted.json +108 -0
  111. package/resources/fonts/cambria-bold.metrics.json +19 -19
  112. package/resources/fonts/cambria-bold.rows.json +9 -0
  113. package/resources/fonts/cambria-italic.hinted.json +102 -0
  114. package/resources/fonts/cambria-italic.metrics.json +23 -23
  115. package/resources/fonts/cambria-italic.rows.json +9 -0
  116. package/resources/fonts/cambria-regular.hinted.json +110 -0
  117. package/resources/fonts/cambria-regular.metrics.json +18 -18
  118. package/resources/fonts/cambria-regular.rows.json +9 -0
  119. package/resources/fonts/contents.json +280 -0
  120. package/resources/fonts/courier-new-bold-italic.hinted.json +11 -0
  121. package/resources/fonts/courier-new-bold-italic.metrics.json +12 -12
  122. package/resources/fonts/courier-new-bold-italic.rows.json +9 -0
  123. package/resources/fonts/courier-new-bold.hinted.json +11 -0
  124. package/resources/fonts/courier-new-bold.metrics.json +12 -12
  125. package/resources/fonts/courier-new-bold.rows.json +9 -0
  126. package/resources/fonts/courier-new-italic.hinted.json +11 -0
  127. package/resources/fonts/courier-new-italic.metrics.json +12 -12
  128. package/resources/fonts/courier-new-italic.rows.json +9 -0
  129. package/resources/fonts/courier-new-regular.hinted.json +11 -0
  130. package/resources/fonts/courier-new-regular.metrics.json +12 -12
  131. package/resources/fonts/courier-new-regular.rows.json +9 -0
  132. package/resources/fonts/times-new-roman-bold-italic.hinted.json +125 -0
  133. package/resources/fonts/times-new-roman-bold-italic.metrics.json +15 -15
  134. package/resources/fonts/times-new-roman-bold-italic.rows.json +9 -0
  135. package/resources/fonts/times-new-roman-bold.hinted.json +125 -0
  136. package/resources/fonts/times-new-roman-bold.metrics.json +12 -12
  137. package/resources/fonts/times-new-roman-bold.rows.json +9 -0
  138. package/resources/fonts/times-new-roman-italic.hinted.json +125 -0
  139. package/resources/fonts/times-new-roman-italic.metrics.json +16 -16
  140. package/resources/fonts/times-new-roman-italic.rows.json +9 -0
  141. package/resources/fonts/times-new-roman-regular.hinted.json +125 -0
  142. package/resources/fonts/times-new-roman-regular.metrics.json +16 -16
  143. package/resources/fonts/times-new-roman-regular.rows.json +9 -0
  144. package/resources/locales/de/model.msg.json +93 -9
  145. package/resources/locales/en/model.msg.json +95 -10
  146. package/types/scripting-api.json +10809 -8021
  147. package/types/scripting-enums.json +201 -44
  148. package/types/scripting.d.ts +17030 -8666
  149. package/types/src/.generated/wasm/fonts.d.ts +161 -0
  150. package/types/src/.generated/wasm/fonts_bg.inline.d.ts +3 -0
  151. package/types/src/.generated/wasm/sdk.d.ts +122 -0
  152. package/types/src/.generated/wasm/sdk_bg.inline.d.ts +3 -0
  153. package/types/src/address/AddressUtils.d.ts +10 -1
  154. package/types/src/address/_StructuredAddress.d.ts +58 -0
  155. package/types/src/anomalies/_Anomalies.d.ts +109 -0
  156. package/types/src/anomalies/_FocusTable.d.ts +11 -0
  157. package/types/src/anomalies/_FormulaChecks.d.ts +133 -0
  158. package/types/src/anomalies/_LabelChecks.d.ts +21 -0
  159. package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
  160. package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
  161. package/types/src/border/IBorders.d.ts +16 -0
  162. package/types/src/calculation/Calculation.d.ts +139 -371
  163. package/types/src/calculation/ExternalBookBindings.d.ts +2 -3
  164. package/types/src/calculation/FormulaLiterals.d.ts +2 -1
  165. package/types/src/calculation/FormulaText.d.ts +18 -2
  166. package/types/src/calculation/ICalculation.d.ts +133 -18
  167. package/types/src/calculation/INamedFormulasCollection.d.ts +4 -0
  168. package/types/src/calculation/NamedFormulaCollection.d.ts +293 -22
  169. package/types/src/calculation/_CloneBoundary.d.ts +1 -1
  170. package/types/src/calculation/_FormulaToolkit.d.ts +9 -0
  171. package/types/src/calculation/_TableExtent.d.ts +60 -0
  172. package/types/src/calculation/compiler/ASTTypes.d.ts +6 -2
  173. package/types/src/calculation/compiler/CompilerUtils.d.ts +17 -0
  174. package/types/src/calculation/compiler/ParserUtils.d.ts +16 -0
  175. package/types/src/calculation/compiler/Types.d.ts +9 -1
  176. package/types/src/calculation/engine/CalcBackend.d.ts +953 -0
  177. package/types/src/calculation/engine/index.d.ts +10 -0
  178. package/types/src/calculation/executor/CalcExecutor.d.ts +94 -24
  179. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +23 -1
  180. package/types/src/calculation/executor/_WhatIf.d.ts +50 -0
  181. package/types/src/calculation/formula/Formula.d.ts +9 -0
  182. package/types/src/calculation/formula/FormulaBlock.d.ts +10 -3
  183. package/types/src/calculation/formula/IFormulaBlock.d.ts +21 -0
  184. package/types/src/calculation/formula/LambdaValue.d.ts +5 -3
  185. package/types/src/calculation/functions/FunctionDeclarations.d.ts +5 -1
  186. package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
  187. package/types/src/calculation/functions/expandDeclaration.d.ts +15 -0
  188. package/types/src/calculation/functions/initializeFunctions.d.ts +0 -12
  189. package/types/src/calculation/grid/CalcGrid.d.ts +44 -10
  190. package/types/src/calculation/grid/CalcGridBackend.d.ts +35 -27
  191. package/types/src/calculation/grid/CalcGridProxy.d.ts +2 -2
  192. package/types/src/calculation/grid/CalcGridUtils.d.ts +12 -3
  193. package/types/src/calculation/grid/FormulaHost.d.ts +51 -6
  194. package/types/src/calculation/grid/ICalcGrid.d.ts +48 -15
  195. package/types/src/calculation/grid/_CalcRequest.d.ts +28 -6
  196. package/types/src/calculation/grid/_CellValueRun.d.ts +21 -0
  197. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +29 -2
  198. package/types/src/calculation/spatial/SpillEntry.d.ts +16 -2
  199. package/types/src/calculation/state/CalcNode.d.ts +0 -1
  200. package/types/src/calculation/state/CalcScope.d.ts +44 -6
  201. package/types/src/calculation/state/CalcState.d.ts +36 -4
  202. package/types/src/calculation/state/CalculationContext.d.ts +30 -3
  203. package/types/src/calculation/state/DeferredCalls.d.ts +260 -0
  204. package/types/src/calculation/state/IContextContainer.d.ts +32 -0
  205. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +6 -0
  206. package/types/src/calculation/state/_WhatIfLayer.d.ts +91 -0
  207. package/types/src/calculation/toolkit/FormulaLiteralReader.d.ts +4 -0
  208. package/types/src/calculation/toolkit/FormulaTextParser.d.ts +10 -0
  209. package/types/src/calculation/toolkit/FunctionDeclarationTable.d.ts +4 -0
  210. package/types/src/calculation/toolkit/index.d.ts +12 -0
  211. package/types/src/cell/ICell.d.ts +302 -34
  212. package/types/src/cell/ICellHeader.d.ts +7 -6
  213. package/types/src/cell/ICellProtection.d.ts +1 -1
  214. package/types/src/cellControl/CellControl.d.ts +67 -0
  215. package/types/src/cellControl/CellControlCollection.d.ts +29 -0
  216. package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
  217. package/types/src/cellControl/ICellControl.d.ts +99 -0
  218. package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
  219. package/types/src/cellControl/index.d.ts +4 -0
  220. package/types/src/cellRange/ICellHeaderRange.d.ts +6 -9
  221. package/types/src/cellRange/ICellHeaderRanges.d.ts +5 -0
  222. package/types/src/cellRange/ICellRange.d.ts +525 -110
  223. package/types/src/cellRange/ICellRanges.d.ts +12 -6
  224. package/types/src/chart/Chart.d.ts +217 -15
  225. package/types/src/chart/ChartCollection.d.ts +7 -2
  226. package/types/src/chart/IChart.d.ts +1921 -35
  227. package/types/src/chart/IChartCollection.d.ts +27 -2
  228. package/types/src/chart/_ChartParts.d.ts +1066 -0
  229. package/types/src/chart/_ChartSource.d.ts +47 -0
  230. package/types/src/chart/createChart.d.ts +26 -0
  231. package/types/src/chart/index.d.ts +4 -0
  232. package/types/src/chart/kinds/ChartKind.d.ts +252 -0
  233. package/types/src/chart/kinds/_Area.d.ts +3 -0
  234. package/types/src/chart/kinds/_Bar.d.ts +4 -0
  235. package/types/src/chart/kinds/_BoxWhisker.d.ts +4 -0
  236. package/types/src/chart/kinds/_Bubble.d.ts +3 -0
  237. package/types/src/chart/kinds/_Funnel.d.ts +4 -0
  238. package/types/src/chart/kinds/_Hierarchy.d.ts +31 -0
  239. package/types/src/chart/kinds/_Histogram.d.ts +4 -0
  240. package/types/src/chart/kinds/_HitKinds.d.ts +23 -0
  241. package/types/src/chart/kinds/_Line.d.ts +4 -0
  242. package/types/src/chart/kinds/_OfPie.d.ts +4 -0
  243. package/types/src/chart/kinds/_Pie.d.ts +4 -0
  244. package/types/src/chart/kinds/_Placeholder.d.ts +6 -0
  245. package/types/src/chart/kinds/_Radar.d.ts +4 -0
  246. package/types/src/chart/kinds/_Scatter.d.ts +8 -0
  247. package/types/src/chart/kinds/_Sunburst.d.ts +4 -0
  248. package/types/src/chart/kinds/_Surface.d.ts +4 -0
  249. package/types/src/chart/kinds/_Treemap.d.ts +4 -0
  250. package/types/src/chart/kinds/_Waterfall.d.ts +18 -0
  251. package/types/src/chart/kinds/_builtIns.d.ts +11 -0
  252. package/types/src/chart/layout/ChartLayout.d.ts +829 -0
  253. package/types/src/chart/layout/TextMeasurer.d.ts +38 -0
  254. package/types/src/chart/layout/_HitGeometry.d.ts +50 -0
  255. package/types/src/chart/layout/_HitTest.d.ts +36 -0
  256. package/types/src/chart/layout/_Layout.d.ts +25 -0
  257. package/types/src/chart/layout/_LayoutUtils.d.ts +97 -0
  258. package/types/src/chart/math/BoxStats.d.ts +35 -0
  259. package/types/src/chart/math/DateUnitCalcs.d.ts +80 -0
  260. package/types/src/chart/math/DisplayUnits.d.ts +53 -0
  261. package/types/src/chart/math/Histogram.d.ts +48 -0
  262. package/types/src/chart/math/OrdUnitCalcs.d.ts +166 -0
  263. package/types/src/chart/math/Treemap.d.ts +28 -0
  264. package/types/src/chart/math/Trendlines.d.ts +71 -0
  265. package/types/src/chart/math/UnitCalcs.d.ts +98 -0
  266. package/types/src/chart/model/ChartModel.d.ts +681 -0
  267. package/types/src/chart/model/_ChartType.d.ts +14 -0
  268. package/types/src/chart/model/_Edits.d.ts +489 -0
  269. package/types/src/chart/model/_Grouping.d.ts +83 -0
  270. package/types/src/chart/model/_Inference.d.ts +52 -0
  271. package/types/src/chart/model/_ModelFacts.d.ts +112 -0
  272. package/types/src/chart/model/_NewChart.d.ts +208 -0
  273. package/types/src/chart/model/_OfPie.d.ts +18 -0
  274. package/types/src/chart/resolve/_LegacyStyles.d.ts +48 -0
  275. package/types/src/chart/resolve/_Resolve.d.ts +61 -0
  276. package/types/src/chart/resolve/_ResolvedChart.d.ts +447 -0
  277. package/types/src/collections/ISparseGrid.d.ts +11 -2
  278. package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
  279. package/types/src/collections/RTree.d.ts +116 -36
  280. package/types/src/collections/SparseGrid.d.ts +9 -11
  281. package/types/src/collections/SpatialMap.d.ts +2 -8
  282. package/types/src/collections/SpatialMap3D.d.ts +2 -0
  283. package/types/src/collections/index.d.ts +1 -1
  284. package/types/src/comment/Comment.d.ts +32 -9
  285. package/types/src/comment/IComment.d.ts +41 -4
  286. package/types/src/comment/_NoteBox.d.ts +19 -2
  287. package/types/src/condition/AnchoredConditional.d.ts +30 -4
  288. package/types/src/condition/ICondition.d.ts +3 -2
  289. package/types/src/conditionalFormat/ConditionalFormat.d.ts +9 -3
  290. package/types/src/conditionalFormat/IConditionalFormat.d.ts +4 -3
  291. package/types/src/dataValidation/DataValidation.d.ts +1 -1
  292. package/types/src/dataValidation/DataValidationCollection.d.ts +4 -1
  293. package/types/src/dataValidation/IDataValidation.d.ts +1 -1
  294. package/types/src/dataValidation/IDataValidationCollection.d.ts +24 -0
  295. package/types/src/documentProperties/DocumentProperties.d.ts +66 -0
  296. package/types/src/documentProperties/ICustomProperty.d.ts +69 -0
  297. package/types/src/documentProperties/IDocumentProperties.d.ts +110 -0
  298. package/types/src/documentProperties/index.d.ts +3 -0
  299. package/types/src/externalBook/IExternalBook.d.ts +3 -4
  300. package/types/src/fetch/Fetcher.d.ts +15 -0
  301. package/types/src/fetch/IFetcher.d.ts +47 -0
  302. package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
  303. package/types/src/fetch/index.d.ts +3 -0
  304. package/types/src/fill/IFill.d.ts +7 -0
  305. package/types/src/fill/IFillable.d.ts +47 -0
  306. package/types/src/fill/IStroke.d.ts +15 -1
  307. package/types/src/fill/PaintUtils.d.ts +24 -0
  308. package/types/src/fill/index.d.ts +2 -0
  309. package/types/src/font/AdvanceBuilder.d.ts +34 -0
  310. package/types/src/font/AdvanceTable.d.ts +128 -14
  311. package/types/src/font/CanvasAdvanceBuilder.d.ts +54 -0
  312. package/types/src/font/FontCapture.d.ts +4 -0
  313. package/types/src/font/FontCollection.d.ts +53 -2
  314. package/types/src/font/FontPlatform.d.ts +20 -0
  315. package/types/src/font/FontUtils.d.ts +5 -0
  316. package/types/src/font/IFont.d.ts +191 -61
  317. package/types/src/font/IFontCollection.d.ts +20 -14
  318. package/types/src/font/IFontStyle.d.ts +207 -0
  319. package/types/src/font/TableFileAdvanceBuilder.d.ts +9 -0
  320. package/types/src/font/_FontUtils.d.ts +11 -4
  321. package/types/src/font/_FontsVersion.d.ts +7 -0
  322. package/types/src/font/index.d.ts +1 -3
  323. package/types/src/font/platform.browser.d.ts +15 -0
  324. package/types/src/font/platform.node.d.ts +5 -0
  325. package/types/src/group/Group.d.ts +5 -0
  326. package/types/src/group/GroupMovableCollection.d.ts +4 -0
  327. package/types/src/history/IHistory.d.ts +19 -2
  328. package/types/src/hyperlink/IHyperlink.d.ts +17 -1
  329. package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
  330. package/types/src/index.d.ts +4 -0
  331. package/types/src/license/LicenseManager.d.ts +21 -0
  332. package/types/src/license/_Utils.d.ts +18 -1
  333. package/types/src/license/runtime.browser.d.ts +5 -0
  334. package/types/src/license/runtime.node.d.ts +10 -0
  335. package/types/src/listener/IListener.d.ts +14 -2
  336. package/types/src/listener/ListenerEmitter.d.ts +11 -3
  337. package/types/src/movable/IMovable.d.ts +28 -15
  338. package/types/src/movable/IMovableCollection.d.ts +1 -1
  339. package/types/src/movable/Movable.d.ts +12 -1
  340. package/types/src/movable/MovableCollection.d.ts +7 -3
  341. package/types/src/movable/_InsertableCollection.d.ts +16 -5
  342. package/types/src/named/INamed.d.ts +30 -0
  343. package/types/src/named/INamedCollection.d.ts +38 -2
  344. package/types/src/named/NamedCollection.d.ts +34 -4
  345. package/types/src/numFmt/NumberFormatParser.d.ts +5 -0
  346. package/types/src/outline/IOutline.d.ts +1 -1
  347. package/types/src/outline/Outline.d.ts +2 -2
  348. package/types/src/picture/IPicture.d.ts +98 -1
  349. package/types/src/picture/Picture.d.ts +15 -7
  350. package/types/src/pivot/IPivotTable.d.ts +2 -2
  351. package/types/src/pivot/PivotTable.d.ts +5 -5
  352. package/types/src/primitives/AsyncValue.d.ts +58 -0
  353. package/types/src/primitives/ReferenceRange.d.ts +2 -2
  354. package/types/src/print/IPageLayout.d.ts +635 -0
  355. package/types/src/print/PageLayout.d.ts +258 -0
  356. package/types/src/print/index.d.ts +1 -1
  357. package/types/src/protectedRange/IProtectedRange.d.ts +2 -2
  358. package/types/src/protection/IProtection.d.ts +6 -0
  359. package/types/src/protection/PasswordHasher.d.ts +13 -0
  360. package/types/src/resource/IResource.d.ts +9 -0
  361. package/types/src/resource/IResourceCollection.d.ts +4 -0
  362. package/types/src/resource/Resource.d.ts +2 -0
  363. package/types/src/resource/_AddResource.d.ts +13 -0
  364. package/types/src/richData/CellImage.d.ts +95 -0
  365. package/types/src/richData/Hyperlink.d.ts +49 -0
  366. package/types/src/richData/IRichDataCollection.d.ts +76 -0
  367. package/types/src/richData/IRichDataKind.d.ts +66 -0
  368. package/types/src/richData/RichArray.d.ts +42 -0
  369. package/types/src/richData/RichDataCollection.d.ts +23 -0
  370. package/types/src/richData/RichDataRegistry.d.ts +89 -0
  371. package/types/src/richData/RichDataValues.d.ts +20 -0
  372. package/types/src/richData/RichRecord.d.ts +68 -0
  373. package/types/src/richData/RichText.d.ts +59 -0
  374. package/types/src/richData/index.d.ts +9 -0
  375. package/types/src/scripting/FunctionArguments.d.ts +17 -1
  376. package/types/src/scripting/FunctionCollection.d.ts +8 -0
  377. package/types/src/scripting/IModule.d.ts +3 -3
  378. package/types/src/scripting/IScript.d.ts +2 -2
  379. package/types/src/scripting/ITypedFunction.d.ts +1 -1
  380. package/types/src/scripting/Scripts.d.ts +10 -0
  381. package/types/src/scripting/TypedFunction.d.ts +2 -0
  382. package/types/src/scripting/declarations.d.ts +3 -0
  383. package/types/src/selection/ChartElementSelection.d.ts +39 -0
  384. package/types/src/selection/IChartElementSelection.d.ts +103 -0
  385. package/types/src/selection/IItemSelection.d.ts +131 -0
  386. package/types/src/selection/IMovableSelection.d.ts +6 -34
  387. package/types/src/selection/IRangeSelection.d.ts +4 -4
  388. package/types/src/selection/ItemSelection.d.ts +49 -0
  389. package/types/src/selection/MovableSelection.d.ts +11 -30
  390. package/types/src/selection/RangeSelection.d.ts +4 -4
  391. package/types/src/selection/index.d.ts +3 -0
  392. package/types/src/shape/IShape.d.ts +2 -1
  393. package/types/src/shape/IShapeStyle.d.ts +5 -31
  394. package/types/src/shape/ITextBoxStyle.d.ts +85 -0
  395. package/types/src/shape/ShapeStyleUtils.d.ts +13 -1
  396. package/types/src/shape/_Connectors.d.ts +9 -9
  397. package/types/src/shape/_ShapeStyle.d.ts +9 -0
  398. package/types/src/shape/index.d.ts +1 -0
  399. package/types/src/sheet/CellRegion.d.ts +37 -3
  400. package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
  401. package/types/src/sheet/IOpaqueSheet.d.ts +46 -0
  402. package/types/src/sheet/ISheet.d.ts +81 -1078
  403. package/types/src/sheet/IWorksheet.d.ts +1521 -0
  404. package/types/src/sheet/{ISheetCollection.d.ts → IWorksheetCollection.d.ts} +37 -12
  405. package/types/src/sheet/NamedCellRange.d.ts +2 -2
  406. package/types/src/sheet/NamedRange.d.ts +2 -2
  407. package/types/src/sheet/OpaqueSheet.d.ts +114 -0
  408. package/types/src/sheet/SheetCell.d.ts +40 -27
  409. package/types/src/sheet/SheetRange.d.ts +50 -13
  410. package/types/src/sheet/SheetRanges.d.ts +14 -12
  411. package/types/src/sheet/{Sheet.d.ts → Worksheet.d.ts} +591 -171
  412. package/types/src/sheet/WorksheetCollection.d.ts +39 -0
  413. package/types/src/sheet/_CellBuffer.d.ts +11 -1
  414. package/types/src/sheet/_CopyUtils.d.ts +13 -6
  415. package/types/src/sheet/_IgnoredErrors.d.ts +46 -0
  416. package/types/src/sheet/_InvalidSheetRange.d.ts +3 -2
  417. package/types/src/sheet/_Kinds.d.ts +34 -0
  418. package/types/src/sheet/_Labels.d.ts +38 -0
  419. package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
  420. package/types/src/sheet/_RangeStateSweep.d.ts +2 -3
  421. package/types/src/sheet/_ScalarListFactory.d.ts +55 -7
  422. package/types/src/sheet/_SheetAutoFillUtils.d.ts +3 -3
  423. package/types/src/sheet/_SheetAutoFitUtils.d.ts +3 -3
  424. package/types/src/sheet/_SheetChangeEvent.d.ts +72 -0
  425. package/types/src/sheet/_SheetCoords.d.ts +3 -3
  426. package/types/src/sheet/_SheetEvents.d.ts +1 -1
  427. package/types/src/sheet/_SheetFilterUtils.d.ts +6 -6
  428. package/types/src/sheet/_SheetIntents.d.ts +32 -14
  429. package/types/src/sheet/_SheetMessages.d.ts +1 -1
  430. package/types/src/sheet/_SheetMutations.d.ts +11 -9
  431. package/types/src/sheet/_SheetSortUtils.d.ts +2 -2
  432. package/types/src/sheet/_SheetStateReader.d.ts +18 -0
  433. package/types/src/sheet/_SheetStateTypes.d.ts +80 -9
  434. package/types/src/sheet/_SheetUtils.d.ts +20 -19
  435. package/types/src/sheet/_WatchAnchor.d.ts +15 -2
  436. package/types/src/sheet/clipboard/RangeClipboardItems.d.ts +4 -4
  437. package/types/src/sheet/clipboard/SheetHTMLTableParser.d.ts +3 -3
  438. package/types/src/sheet/clipboard/SheetHTMLTableWriter.d.ts +3 -3
  439. package/types/src/sheet/index.d.ts +5 -2
  440. package/types/src/sheet/style/SheetCellStyle.d.ts +67 -86
  441. package/types/src/sheet/style/SheetDirectStyle.d.ts +3 -3
  442. package/types/src/sheet/style/SheetNamedStyle.d.ts +2 -0
  443. package/types/src/sheet/style/_DigitWidth.d.ts +7 -0
  444. package/types/src/sheet/style/_Resolvers.d.ts +3 -2
  445. package/types/src/sheet/style/_StyleUtils.d.ts +7 -43
  446. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -2
  447. package/types/src/sheetHeader/SheetCellHeader.d.ts +2 -0
  448. package/types/src/sheetHeader/SheetCellHeaderRange.d.ts +2 -0
  449. package/types/src/sheetHeader/SheetCellHeaderRanges.d.ts +2 -0
  450. package/types/src/sheetHeader/SheetHeader.d.ts +7 -6
  451. package/types/src/sheetHeader/_HeaderUtils.d.ts +2 -3
  452. package/types/src/sheetProtection/{ISheetProtection.d.ts → IWorksheetProtection.d.ts} +28 -28
  453. package/types/src/sheetProtection/WorksheetProtection.d.ts +51 -0
  454. package/types/src/sheetProtection/index.d.ts +1 -1
  455. package/types/src/sheetView/{ISheetView.d.ts → IWorksheetView.d.ts} +168 -61
  456. package/types/src/sheetView/WorksheetView.d.ts +139 -0
  457. package/types/src/sheetView/_SheetViewUtils.d.ts +5 -3
  458. package/types/src/sheetView/index.d.ts +1 -1
  459. package/types/src/slicer/ISlicer.d.ts +2 -2
  460. package/types/src/sort/ISort.d.ts +35 -5
  461. package/types/src/style/ICellStyle.d.ts +56 -44
  462. package/types/src/style/_BuiltInStyleDefs.d.ts +4 -3
  463. package/types/src/table/AnchoredTable.d.ts +23 -7
  464. package/types/src/table/AutoTable.d.ts +1 -1
  465. package/types/src/table/ITable.d.ts +32 -19
  466. package/types/src/table/_NamedTable.d.ts +3 -3
  467. package/types/src/table/_NamedTableSource.d.ts +2 -2
  468. package/types/src/text/IText.d.ts +4 -51
  469. package/types/src/text/TextEngine.d.ts +34 -0
  470. package/types/src/text/TextFrame.d.ts +4 -2
  471. package/types/src/text/TextRun.d.ts +3 -2
  472. package/types/src/text/TextWrapper.d.ts +32 -26
  473. package/types/src/text/_TextUtils.d.ts +5 -5
  474. package/types/src/text/_TextWrapperFallback.d.ts +49 -0
  475. package/types/src/text/impl/TabStrategy.d.ts +3 -1
  476. package/types/src/text/richtext/IRichText.d.ts +16 -2
  477. package/types/src/text/richtext/index.d.ts +0 -1
  478. package/types/src/theme/ITheme.d.ts +108 -7
  479. package/types/src/theme/ThemeCollection.d.ts +5 -0
  480. package/types/src/theme/_OfficeFontScheme.d.ts +8 -0
  481. package/types/src/transaction/ITransaction.d.ts +20 -1
  482. package/types/src/transaction/Transaction.d.ts +8 -1
  483. package/types/src/transaction/_BatchHandle.d.ts +118 -0
  484. package/types/src/type/AbstractCollection.d.ts +4 -13
  485. package/types/src/type/ICollection.d.ts +17 -4
  486. package/types/src/type/IProperties.d.ts +1 -1
  487. package/types/src/utils/_CSSUtils.d.ts +1 -1
  488. package/types/src/wasm/_fontsWasm.d.ts +7 -0
  489. package/types/src/wasm/_sdkWasm.d.ts +1 -1
  490. package/types/src/wasm/fontsWasm.d.ts +32 -0
  491. package/types/src/wasm/index.d.ts +1 -0
  492. package/types/src/wasm/loader.browser.d.ts +9 -0
  493. package/types/src/wasm/loader.node.d.ts +9 -0
  494. package/types/src/wasm/sdkWasm.d.ts +6 -3
  495. package/types/src/workbook/IWorkbook.d.ts +269 -39
  496. package/types/src/workbook/Workbook.d.ts +102 -25
  497. package/types/src/workbook/WorkbookRange.d.ts +2 -2
  498. package/types/src/workbook/WorkbookRanges.d.ts +3 -3
  499. package/types/src/workbook/_WorkbookIntents.d.ts +2 -2
  500. package/types/src/workbook/_WorkbookMessages.d.ts +5 -0
  501. package/types/src/workbookView/IWorkbookView.d.ts +82 -0
  502. package/types/src/workbookView/WorkbookView.d.ts +21 -0
  503. package/browser/esm/BbSmt62FpFIpoVzu.mjs +0 -392
  504. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +0 -412
  505. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +0 -7
  506. package/browser/esm/DUvUK61b2_4pf4tG.mjs +0 -484
  507. package/node/esm/CCouEwT37f08qO3V.mjs +0 -7
  508. package/node/esm/CImNvdz1iP-lUlro.mjs +0 -610
  509. package/node/esm/CT0CN82y0_Qgoryk.mjs +0 -7568
  510. package/node/esm/DHUADiCmxNQS1ARz.mjs +0 -417
  511. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +0 -403
  512. package/types/src/chart/_ChartXml.d.ts +0 -70
  513. package/types/src/collections/OverlappingRangeIterator.d.ts +0 -87
  514. package/types/src/collections/_RangeSweep.d.ts +0 -97
  515. package/types/src/font/CanvasFontMeasurer.d.ts +0 -25
  516. package/types/src/font/FontKitFontMeasurer.d.ts +0 -11
  517. package/types/src/font/SimpleFontMeasurer.d.ts +0 -4
  518. package/types/src/print/IPrint.d.ts +0 -212
  519. package/types/src/sheet/SheetCollection.d.ts +0 -29
  520. package/types/src/sheetProtection/SheetProtection.d.ts +0 -51
  521. package/types/src/sheetView/SheetView.d.ts +0 -122
  522. package/types/src/text/richtext/IStyledFont.d.ts +0 -330
@@ -1,28 +1,30 @@
1
- import { FormulaError, IRange, Scalar, InteropScalar, IRangeStats } from '@sheetxl/primitives';
1
+ import { FormulaError, IRange, Scalar, InteropScalar, IRangeStats, IRichData } from '@sheetxl/primitives';
2
2
  import { Bounds, Size, ReferenceableClipboard } from '@sheetxl/utils';
3
3
  import { ITypes } from '../type';
4
4
  import { IListener } from '../listener';
5
5
  import { ITransaction } from '../transaction';
6
+ import { IAnchored } from '../anchored/IAnchored';
6
7
  import { IHyperlink } from '../hyperlink';
7
- import { IComment, ICommentCollection } from '../comment';
8
+ import { IRichText } from '../text';
8
9
  import { ISort } from '../sort';
9
10
  import { ICondition } from '../condition';
10
11
  import { IAutoFill } from '../autoFill';
11
12
  import { ICellStyle } from '../style';
12
13
  import { ICalculation } from '../calculation';
14
+ import { IWorksheet } from '../sheet';
15
+ import { ICell } from '../cell';
16
+ import { IComment, ICommentCollection } from '../comment';
13
17
  import { ITable, ITableCollection } from '../table';
14
18
  import { IMovable, IMovableCollection } from '../movable';
15
19
  import { IDataValidation, IDataValidationCollection } from '../dataValidation';
16
- import { IConditionalFormat } from '../conditionalFormat/IConditionalFormat';
17
- import { IConditionalFormatCollection } from '../conditionalFormat/IConditionalFormatCollection';
20
+ import { IConditionalFormat, IConditionalFormatCollection } from '../conditionalFormat';
18
21
  import { IProtectedRange, IProtectedRangeCollection } from '../protectedRange';
19
- import { ISheet } from '../sheet';
20
- import { ICell } from '../cell';
22
+ import { ICellControl, ICellControlCollection } from '../cellControl';
21
23
  import { ICellRanges } from './ICellRanges';
22
24
  import { ICellRegions } from './ICellRegion';
23
25
  import { ICellHeaderRange } from './ICellHeaderRange';
24
26
  /**
25
- * A {@link ICellRange} represents a rectangular collection of {@link ICell} within an {@link ISheet}.
27
+ * A {@link ICellRange} represents a rectangular collection of {@link ICell} within an {@link IWorksheet}.
26
28
  *
27
29
  * **Naming Conventions:** Methods usually adhere to the following conventions except
28
30
  * when adhering to a idiomatic existing conventions of Typescript (for example `size` or 'length'):
@@ -90,11 +92,44 @@ export interface ICellRange {
90
92
  * pass `fullyContained` for the stricter question.
91
93
  *
92
94
  * The items are the sheet's — this is a scoped view of
93
- * `getSheet().getConditionalFormats()`, not a copy — and each appears **once**, however many of
95
+ * `getWorksheet().getConditionalFormats()`, not a copy — and each appears **once**, however many of
94
96
  * its ranges the query hit. The range only says *which* items; ask an item where it lives with
95
97
  * {@link IConditionalFormat.getRanges}.
96
98
  */
97
99
  getConditionalFormats(options?: ICellRange.GetItemsOptions<IConditionalFormatCollection.GetItemsOptions>): IConditionalFormat[];
100
+ /**
101
+ * Returns the {@link ICellControl}s on cells within the range, such as checkboxes.
102
+ *
103
+ * @param options The filters of {@link ICellControlCollection.getItems} without `address` —
104
+ * this range is the address.
105
+ *
106
+ * @remarks
107
+ * See {@link getConditionalFormats} for the overlap and one-entry-per-item rules, which are the
108
+ * same for every ranged item lookup. A cell has at most one control; ask a cell for its own with
109
+ * {@link ICell.getControl}.
110
+ *
111
+ * Office Scripts' `Range.getControl()` answers one `CellControl` for the whole range; here
112
+ * `getControls()[0]?.getType()` reads a single cell's, and `toJSON()` gives the
113
+ * `{ type: 'checkbox' }` shape. A control is about the cell, not its value: a checkbox cell
114
+ * holding `2` still has one, though it draws `2` ({@link ICellControl.isAccepted}). A type
115
+ * SheetXL does not know answers with its own name, where Excel answers `unknown`.
116
+ */
117
+ getControls(options?: ICellRange.GetItemsOptions<ICellControlCollection.GetItemsOptions>): ICellControl[];
118
+ /**
119
+ * Puts `control` on every cell of the range, replacing the control each had; `null` removes
120
+ * them.
121
+ *
122
+ * @param control The control, such as `{ type: 'checkbox' }`, or `null`.
123
+ *
124
+ * @remarks
125
+ * Office Scripts' `Range.setControl`, with `null` for its `{ type: 'empty' }`. A cell has at most
126
+ * one control. The values stay as they are: a checkbox draws `TRUE` as checked and `FALSE` or a
127
+ * blank cell as unchecked, and any other value as text.
128
+ *
129
+ * A control is a format: refused on a protected sheet unless formatting cells is allowed, removed
130
+ * by {@link clear} of formats, and carried by a paste of formats.
131
+ */
132
+ setControl(control: ICellControl.JSON | null, options?: ITransaction.OperationOptions): this;
98
133
  /**
99
134
  * Returns the {@link IDataValidation}s that overlap the range.
100
135
  *
@@ -116,7 +151,7 @@ export interface ICellRange {
116
151
  * range is the address.
117
152
  *
118
153
  * @remarks
119
- * The items are the sheet's — a scoped view of `getSheet().getComments()`, not a copy. A
154
+ * The items are the sheet's — a scoped view of `getWorksheet().getComments()`, not a copy. A
120
155
  * comment is on one cell, so each appears once, in reading order.
121
156
  */
122
157
  getComments(options?: ICellRange.GetItemsOptions<ICommentCollection.GetItemsOptions>): IComment[];
@@ -151,6 +186,15 @@ export interface ICellRange {
151
186
  * {@link ICellRange.getCells}
152
187
  */
153
188
  getCell(address?: ICell.Address): ICell;
189
+ /**
190
+ * Exists to have api parity with Office Scripts: `row` and `column` are 0-based offsets from the
191
+ * range's top left.
192
+ *
193
+ * @deprecated Use {@link getCell}`('B3')`, or `getCell({ rowIndex, colIndex })` with sheet
194
+ * coordinates.
195
+ * @hidden
196
+ */
197
+ getCell(row: number, column: number): ICell;
154
198
  /**
155
199
  * Return a 2D array of {@link ICell | cells} in the shape of the range.
156
200
  *
@@ -171,6 +215,24 @@ export interface ICellRange {
171
215
  * {@link ICellRange.getValues}
172
216
  */
173
217
  getValue(): Scalar;
218
+ /**
219
+ * Returns the top left cell's value as displayed, with its number format applied.
220
+ *
221
+ * @remarks
222
+ * The same as `getCell().getText(options)`.
223
+ *
224
+ * @see
225
+ * {@link ICell.getText}
226
+ */
227
+ getText(options?: ICell.GetTextOptions): string;
228
+ /**
229
+ * Exists to have api parity with Office Scripts.
230
+ *
231
+ * @deprecated Use {@link getCells}`()` and each cell's `getText()`, or {@link getText} for the
232
+ * top left cell.
233
+ * @hidden
234
+ */
235
+ getTexts(): string[][];
174
236
  /**
175
237
  * Returns the value for the top left `InteropScalar`.
176
238
  *
@@ -189,6 +251,19 @@ export interface ICellRange {
189
251
  * set values work for the entire range.
190
252
  */
191
253
  getStyle(): ICellStyle;
254
+ /**
255
+ * Exists to have api parity with Office Scripts.
256
+ *
257
+ * @deprecated Use {@link getStyle}.
258
+ * @hidden
259
+ */
260
+ getFormat(): ICellStyle;
261
+ /**
262
+ * @deprecated Use {@link getStyle}`().update(style)`, or a setter on the style:
263
+ * `getStyle().getFont().setBold(true)`.
264
+ * @hidden
265
+ */
266
+ setStyle(style: ICellStyle.Update, options?: ICellStyle.UpdateOptions): this;
192
267
  /**
193
268
  * Returns the formula for the range.
194
269
  *
@@ -267,17 +342,17 @@ export interface ICellRange {
267
342
  *
268
343
  * @remarks
269
344
  * The anchored convenience form: equivalent to
270
- * `getSheet().createFormula(expression, topLeftCoords)`, where the anchor is this
345
+ * `getWorksheet().createFormula(expression, topLeftCoords)`, where the anchor is this
271
346
  * range's top-left cell. Nothing is committed — the formula is not registered in the workbook
272
347
  * or the dependency graph.
273
348
  *
274
- * Two behaviors follow from the sheet form (see {@link ISheet.createFormula}):
349
+ * Two behaviors follow from the sheet form (see {@link IWorksheet.createFormula}):
275
350
  *
276
351
  * - A bare reference (`A2`) resolves against THIS range's sheet, never the selected one.
277
352
  * - Relative references resolve **relative to the anchor cell**, so the expression reads
278
353
  * exactly as it would if it were authored here.
279
354
  *
280
- * @see {@link ISheet.createFormula}
355
+ * @see {@link IWorksheet.createFormula}
281
356
  * @see {@link ICalculation.createFormula}
282
357
  */
283
358
  createFormula(expression: string, options?: ICalculation.CreateFormulaOptions): ICalculation.IFormula;
@@ -326,6 +401,20 @@ export interface ICellRange {
326
401
  * @returns `ICellRange` at the repositioned range.
327
402
  */
328
403
  getEntireRows(shift?: boolean, options?: ICellRange.GetRangeOptions): this;
404
+ /**
405
+ * Exists to have api parity with Office Scripts.
406
+ *
407
+ * @deprecated Use {@link getEntireRows}.
408
+ * @hidden
409
+ */
410
+ getEntireRow(): this;
411
+ /**
412
+ * Exists to have api parity with Office Scripts.
413
+ *
414
+ * @deprecated Use {@link getEntireColumns}.
415
+ * @hidden
416
+ */
417
+ getEntireColumn(): this;
329
418
  /**
330
419
  * Returns a range that includes the current range up to a content edge boundary.
331
420
  *
@@ -658,6 +747,8 @@ export interface ICellRange {
658
747
  *
659
748
  * - Every public {@link ICellRange.Feature} appears as a key; features not requested, or not
660
749
  * present, are an explicit `0` — the shape is stable and self-describing, never `null`.
750
+ * `anomalies` is the exception: it is derived on read, so it is counted, and its key
751
+ * present, only when requested by name.
661
752
  * - Each feature is counted **independently**. `getCounts([Fill, Border])` is two numbers,
662
753
  * not the count of their refined intersection — the refined count *is* `getRegions`.
663
754
  * - Counts are cells, never regions: a region count would either disagree with the partition
@@ -709,6 +800,41 @@ export interface ICellRange {
709
800
  * vocabulary at all — see {@link Feature}'s own remarks for where they went.
710
801
  */
711
802
  getRegions(features?: ICellRange.Feature | readonly ICellRange.Feature[], options?: ICellRange.GetRegionsOptions): ICellRegions;
803
+ /**
804
+ * Returns the regions of the `anomalies` feature in reading order: the named checks first, then
805
+ * the rest, each by the named focus or by rank.
806
+ *
807
+ * @param options {@link ICellRange.GetAnomaliesOptions}
808
+ *
809
+ * @example
810
+ * ```ts
811
+ * // Hunting an embedded hardcode: read its checks' findings first, 25 regions at a time.
812
+ * sheet.getAnomalies({ checks: ['hardcodeInRun', 'styleRole'], limit: 25 });
813
+ * sheet.getAnomalies({ checks: ['hardcodeInRun', 'styleRole'], limit: 25, offset: 25 });
814
+ * // Or name the kind of defect and let the measured order decide.
815
+ * sheet.getAnomalies({ focus: 'unitMismatch', limit: 25 });
816
+ * ```
817
+ *
818
+ * @remarks
819
+ * The regions are the ones {@link getRegions | getRegions('anomalies')} returns, with the same
820
+ * findings and ranks ({@link ICell.Anomaly}); only the order and the window differ. A region
821
+ * whose findings include the first named check lists first, highest rank of that check first;
822
+ * then the second check's; then every region no named check fires on, by its highest rank. A
823
+ * region two named checks fire on lists once, under the first. An ignored check
824
+ * ({@link setErrorIgnored}) is not there to list.
825
+ *
826
+ * `focus` names the kind of defect being looked for ({@link ICellRange.AnomalyFocus}). Each
827
+ * finding then weighs as the share of findings like it — the same check, the same kind of
828
+ * evidence, about as often repeated in the listing — that were that kind of defect in audited
829
+ * models, and a region lists by its best finding, by rank where that is equal. Several kinds
830
+ * merge into one order by the best of them. It reorders; it neither adds nor drops a region, and
831
+ * the findings' own ranks are unchanged.
832
+ *
833
+ * `offset` and `limit` page through that one order, so successive windows neither skip nor
834
+ * repeat a region; a window shorter than `limit` is the last. `getRegions('anomalies').getCount()`
835
+ * is the length of the whole list.
836
+ */
837
+ getAnomalies(options?: ICellRange.GetAnomaliesOptions): ICellRegions;
712
838
  /**
713
839
  * Returns a 2D array of {@link Scalar | values} in the shape of the range.
714
840
  *
@@ -737,8 +863,8 @@ export interface ICellRange {
737
863
  * @remarks
738
864
  * - `null` values will clear the corresponding cells.
739
865
  * - `undefined` values will be ignored, leaving the existing cell values unchanged.
740
- * - If an array is passed the values will be in row-major order. An array smaller than the range writes only the cells it covers.
741
- * - If a single value is passed in it will repeat the entire range.
866
+ * - The array is row-major. An array smaller than the range writes only the cells it covers.
867
+ * - A single value is {@link setValue}, which fills the range with it.
742
868
  */
743
869
  setValues(values: ICellRange.ValuesUpdate, options?: ICellRange.SetValuesOptions): this;
744
870
  /**
@@ -761,7 +887,7 @@ export interface ICellRange {
761
887
  * @see
762
888
  * {@link ICellRange.setValues}
763
889
  */
764
- setValue(value: ICellRange.ValuesUpdateOrCallback, options?: ICellRange.SetValuesOptions): this;
890
+ setValue(value: ICellRange.ScalarUpdateOrCallback, options?: ICellRange.SetValuesOptions): this;
765
891
  /**
766
892
  * Set the formula for a range.
767
893
  *
@@ -774,7 +900,7 @@ export interface ICellRange {
774
900
  * @see
775
901
  * {@link ICellRange.setValue}
776
902
  */
777
- setFormula(value: ICellRange.ValuesUpdateOrCallback, options?: ICellRange.SetValuesOptions): this;
903
+ setFormula(value: ICellRange.ScalarUpdateOrCallback, options?: ICellRange.SetValuesOptions): this;
778
904
  /**
779
905
  * Sets the formula of each cell in the range.
780
906
  *
@@ -841,7 +967,7 @@ export interface ICellRange {
841
967
  * @throws `Error` If a row or column in the range is already at the deepest level, `7`. Nothing is
842
968
  * grouped.
843
969
  *
844
- * @see {@link ISheet.getOutline}
970
+ * @see {@link IWorksheet.getOutline}
845
971
  */
846
972
  group(axis?: IRange.Axis, options?: ITransaction.OperationOptions): this;
847
973
  /**
@@ -907,6 +1033,34 @@ export interface ICellRange {
907
1033
  * To clear hyperlinks either set to `null` or call `clear(ICell.Content.Hyperlinks)`.
908
1034
  */
909
1035
  setHyperlink(hyperlink: IHyperlink.Update, options?: ITransaction.OperationOptions): this;
1036
+ /**
1037
+ * Sets the text of every cell in the range as formatted runs.
1038
+ *
1039
+ * @param runs The runs, or plain text for one run. A run's font records what it sets over the
1040
+ * cell's font: `{ text: 'Bold', font: { bold: true } }` then `{ text: ' plain' }`.
1041
+ * @returns The current `ICellRange`.
1042
+ *
1043
+ * @remarks
1044
+ * The value becomes a `RichText`: text to calculation (`LEN`, `&`, `TYPE()` 2) and formatting
1045
+ * to the renderer, carried whole by a reference. A later `setValue` replaces it, runs and all,
1046
+ * as any value write does. Read it with {@link ICell.getRichText}.
1047
+ */
1048
+ setRichText(runs: IRichText.Update, options?: ITransaction.OperationOptions): this;
1049
+ /**
1050
+ * Ignores, or stops ignoring, one of Excel's error checks over the range: the green triangle's
1051
+ * **Ignore Error**.
1052
+ *
1053
+ * @param check The check.
1054
+ * @param ignored `false` to show the check's indicator again. Defaults to `true`.
1055
+ * @returns The current `ICellRange`.
1056
+ *
1057
+ * @remarks
1058
+ * SheetXL does not run the checks yet; the setting is kept for Excel. It follows the cells through
1059
+ * inserts and deletes, is not copied, and is dropped from a cell that is written or cleared, as
1060
+ * in Excel. Read it with {@link ICell.isErrorIgnored}; find it with {@link getRegions} and
1061
+ * {@link Feature.IgnoredErrors}.
1062
+ */
1063
+ setErrorIgnored(check: ICell.ErrorCheck, ignored?: boolean, options?: ITransaction.OperationOptions): this;
910
1064
  /**
911
1065
  * Sets or clears the comment on the range's first cell.
912
1066
  *
@@ -916,7 +1070,7 @@ export interface ICellRange {
916
1070
  * @remarks
917
1071
  * A comment is on one cell, so a value goes on the range's top-left cell — updating the comment
918
1072
  * there if it has one, adding one otherwise — while `null` clears every comment within the
919
- * range. The comment itself is the richer surface: `getSheet().getComments()` to add, and
1073
+ * range. The comment itself is the richer surface: `getWorksheet().getComments()` to add, and
920
1074
  * {@link ICell.getComments} to reach the one on a cell.
921
1075
  */
922
1076
  setComments(comments: IComment.Update, options?: ITransaction.OperationOptions): this;
@@ -1048,7 +1202,7 @@ export interface ICellRange {
1048
1202
  * @param options If a boolean then this indicates if headers are present.
1049
1203
  *
1050
1204
  * @remarks
1051
- * This behaves similarly to {@link ISheet.getTables.add} but uses the current range
1205
+ * This behaves similarly to {@link IWorksheet.getTables.add} but uses the current range
1052
1206
  */
1053
1207
  addTable(options?: ITableCollection.AddOptions | boolean): ITable;
1054
1208
  /**
@@ -1126,12 +1280,17 @@ export interface ICellRange {
1126
1280
  /**
1127
1281
  * Perform a set of operations as a batch.
1128
1282
  *
1129
- * @param callback Function to perform the operations.
1283
+ * @param callback Function to perform the operations. Handed the commit being written and
1284
+ * `range`, this range bound to the batch.
1130
1285
  * @param options Description of the operation or additional options. This will be used for tracking undo/redo and history. @defaultValue 'Range Update'
1131
1286
  * @template R - The callback return type.
1132
1287
  * @returns The result of the callback.
1288
+ *
1289
+ * @remarks
1290
+ * Work through `range` rather than this one: what is reached through it is part of the batch, as
1291
+ * for {@link IWorkbook.doBatch}.
1133
1292
  */
1134
- doBatch<R>(callback: (commit: ITransaction.ICommit) => Promise<R> | R, options?: string | ITransaction.OperationOptions): Promise<R> | R;
1293
+ doBatch<R>(callback: (commit: ITransaction.ICommit, range: this) => Promise<R> | R, options?: string | ITransaction.OperationOptions): Promise<R> | R;
1135
1294
  /**
1136
1295
  * Creates a `SparseBuilder` for efficiently updating sparsely populated cells in a streaming low memory way.
1137
1296
  *
@@ -1173,12 +1332,23 @@ export interface ICellRange {
1173
1332
  */
1174
1333
  select(options?: ICellRange.SelectOptions): Promise<this>;
1175
1334
  /**
1176
- * Add a listener to the range.
1335
+ * Listen for changes at this range: its cells written, recalculated or undone, and the range
1336
+ * itself moved by rows or columns inserted or deleted around it.
1177
1337
  *
1178
- * @returns A callback to remove. {@link IListener.Remove}
1338
+ * @returns A callback that removes the listener. {@link IListener.Remove}
1179
1339
  *
1180
1340
  * @remarks
1181
- * If the range becomes invalid through a delete this will auto remove.
1341
+ * The listener is handed an {@link ICellRange.Event} whose source is the listened range where
1342
+ * it is now. Which events it hears, how it follows inserts and deletes, and whether it takes
1343
+ * part in the change or observes it afterwards are {@link ICellRange.ListenerOptions}.
1344
+ *
1345
+ * @example
1346
+ * ```ts
1347
+ * const remove = sheet.getRange('A1:C3').addListener((event) => {
1348
+ * if (event.getTrigger() === 'data') console.log('changed:', event.getRanges()!.getAddress());
1349
+ * else console.log('now at:', event.getSource().getAddress());
1350
+ * });
1351
+ * ```
1182
1352
  */
1183
1353
  addListener(listener: ICellRange.Listener, options?: ICellRange.ListenerOptions): IListener.Remove;
1184
1354
  /**
@@ -1339,6 +1509,11 @@ export interface ICellRange {
1339
1509
  * @param r1c1 If unspecified returns the environment's default.
1340
1510
  */
1341
1511
  getAddress(r1c1?: boolean): string;
1512
+ /**
1513
+ * @deprecated Use {@link getAddress}.
1514
+ * @hidden
1515
+ */
1516
+ getA1(): string;
1342
1517
  /**
1343
1518
  * Returns the column start.
1344
1519
  */
@@ -1376,7 +1551,7 @@ export interface ICellRange {
1376
1551
  /**
1377
1552
  * Returns the Sheet.
1378
1553
  */
1379
- getSheet(): ISheet;
1554
+ getWorksheet(): IWorksheet;
1380
1555
  /**
1381
1556
  * The IRange.Coords.
1382
1557
  */
@@ -1434,10 +1609,16 @@ export interface INamedRange extends ICellRange {
1434
1609
  export declare namespace ICellRange {
1435
1610
  /**
1436
1611
  * This is either:
1437
- * 1. A string that can be parsed into a CellRange (e.g. 'A1:B2') or a named range.
1612
+ * 1. A string that can be parsed into a CellRange (e.g. 'A1:B2'), a named range, or a
1613
+ * structured reference (e.g. `'Sales[[#Headers],[Qty]]'`).
1438
1614
  * 2. Another ICellRange
1439
1615
  * 3. An IRange
1440
1616
  * 4. Partial IRange.FixableCoords
1617
+ *
1618
+ * @remarks
1619
+ * A structured reference is read from the active cell: one without a table name (`'[Qty]'`)
1620
+ * refers to the table at the active cell, and `@` (`'Sales[@Qty]'`) to the active cell's row.
1621
+ * References into another workbook are not supported.
1441
1622
  */
1442
1623
  type Address = string | ICellRange | IRange | Readonly<Partial<IRange.FixableCoords>> | ICell.Address | FormulaError.Ref;
1443
1624
  /**
@@ -1449,27 +1630,32 @@ export declare namespace ICellRange {
1449
1630
  */
1450
1631
  type ScalarUpdate = Scalar | null | undefined;
1451
1632
  /**
1452
- * Represents an update to a cell's value in JavaScript, allowing `Date` and `null`.
1633
+ * Represents an update to a cell's value in JavaScript, allowing `Date`, a rich value's JSON
1634
+ * and `null`.
1453
1635
  *
1454
1636
  * @remarks
1455
1637
  * This type allows for updating a cell's value, including `Date` for convenience.
1456
1638
  * As with `ScalarUpdate`, `null` can be used to clear the cell's value.
1457
1639
  *
1640
+ * A rich value may be given as its JSON (`{ type, data }`, what {@link IRichData.toJSON}
1641
+ * returns); it is made by the kind registered for `type`, and an unregistered type is kept
1642
+ * as it was given.
1643
+ *
1458
1644
  * * See {@link InteropScalar} for more details on JavaScript scalar values.
1459
1645
  */
1460
- type InteropScalarUpdate = InteropScalar | null | undefined;
1646
+ type InteropScalarUpdate = InteropScalar | IRichData.JSON | null | undefined;
1461
1647
  /**
1462
1648
  * Single or 2D.
1463
1649
  */
1464
1650
  type Update = ICell.Update | readonly ICell.Update[][];
1465
1651
  /**
1466
- * A union of either a Scalar and 2D array of Scalars or an IRange.
1652
+ * A 2D array of scalars or an IRange. A single value is a {@link ScalarUpdateOrCallback}.
1467
1653
  */
1468
- type ValuesUpdate = InteropScalarUpdate | IRange | readonly InteropScalarUpdate[][];
1654
+ type ValuesUpdate = IRange | readonly InteropScalarUpdate[][];
1469
1655
  /**
1470
- * Allows for Values to be set via a callback.
1656
+ * A single value, or a callback that yields one per cell.
1471
1657
  */
1472
- type ValuesUpdateOrCallback<T = Scalar> = ValuesUpdate | ((row: number, column: number) => T | null);
1658
+ type ScalarUpdateOrCallback<T = Scalar> = InteropScalarUpdate | ((row: number, column: number) => T | null);
1473
1659
  /**
1474
1660
  * The read options a range carries.
1475
1661
  *
@@ -1620,7 +1806,7 @@ export declare namespace ICellRange {
1620
1806
  replaceExisting?: boolean;
1621
1807
  }
1622
1808
  /**
1623
- * Options for `ICellRange.delete`.
1809
+ * Options for `ICellRange.insert`.
1624
1810
  */
1625
1811
  interface InsertOptions extends ICellRange.OperationOptions {
1626
1812
  /**
@@ -1647,6 +1833,12 @@ export declare namespace ICellRange {
1647
1833
  * @defaultValue `false` (classic shift-cells)
1648
1834
  */
1649
1835
  span?: boolean;
1836
+ /**
1837
+ * Fit the inserted rows and columns to their content once the insert completes.
1838
+ *
1839
+ * @defaultValue `false` - inserted rows and columns take the default size.
1840
+ */
1841
+ autoFit?: boolean | ICellRange.AutoFitOptions;
1650
1842
  }
1651
1843
  /**
1652
1844
  * Options for `ICellRange.delete`.
@@ -1669,6 +1861,12 @@ export declare namespace ICellRange {
1669
1861
  * @defaultValue `false` (classic shift-cells)
1670
1862
  */
1671
1863
  span?: boolean;
1864
+ /**
1865
+ * Fit the rows and columns the remaining cells shift into once the delete completes.
1866
+ *
1867
+ * @defaultValue `false` - a delete moves rows and columns with the sizes they have.
1868
+ */
1869
+ autoFit?: boolean | ICellRange.AutoFitOptions;
1672
1870
  }
1673
1871
  /**
1674
1872
  * Options for configuring range coordinate reference types.
@@ -1954,7 +2152,7 @@ export declare namespace ICellRange {
1954
2152
  /**
1955
2153
  * Fit to what **formula view** displays rather than to the rendered values.
1956
2154
  *
1957
- * @defaultValue the sheet view's {@link ISheetView.isShowFormulas}
2155
+ * @defaultValue the sheet view's {@link IWorksheetView.isShowFormulas}
1958
2156
  *
1959
2157
  * @remarks
1960
2158
  * In formula view a cell with a formula shows `=` + its formula text, and every other cell
@@ -2398,14 +2596,31 @@ export declare namespace ICellRange {
2398
2596
  * `ISnapshot` can be provided to `ICellRange.copyFrom`.
2399
2597
  */
2400
2598
  interface ISnapshot<T = any, J = any> {
2599
+ /**
2600
+ * Does the asynchronous work a paste needs, before {@link copyTo} is called.
2601
+ *
2602
+ * @remarks
2603
+ * `ICellRange.copyFrom` calls this first, outside any transaction, and then `copyTo` inside
2604
+ * the paste's transaction. Anything that has to wait - loading a kind of content, decoding an
2605
+ * image - is done here, so that `copyTo` can complete synchronously. A snapshot with nothing
2606
+ * to wait for leaves this out, or returns `void`; the paste then runs to its commit in the
2607
+ * caller's synchronous extent.
2608
+ *
2609
+ * @param destination The `ICellRange` the snapshot will be copied to, as the caller gave it.
2610
+ */
2611
+ prepare?(destination: ICellRange, options?: ICellRange.CopyOptions): Promise<void> | void;
2401
2612
  /**
2402
2613
  * Copies the snapshot to the specified range.
2403
2614
  *
2615
+ * @remarks
2616
+ * The copy is made inside the paste's transaction, so it completes synchronously; anything
2617
+ * that has to wait belongs in {@link prepare}.
2618
+ *
2404
2619
  * @param destination The destination `ICellRange` where the snapshot will be copied.
2405
2620
  *
2406
- * @returns A promise that resolves when the copy is complete, or `void` if no asynchronous operation is required.
2621
+ * @returns The coordinates the copy covered, or `null` when it placed no cells.
2407
2622
  */
2408
- copyTo(destination: ICellRange, options?: ICellRange.CopyOptions): Promise<IRange.Coords | null> | IRange.Coords | null;
2623
+ copyTo(destination: ICellRange, options?: ICellRange.CopyOptions): IRange.Coords | null;
2409
2624
  /**
2410
2625
  * Return the options used when creating.
2411
2626
  * @remarks
@@ -2483,12 +2698,12 @@ export declare namespace ICellRange {
2483
2698
  * over the content-style map). `Notes` joins when the backing is implemented; a feature that
2484
2699
  * silently reports nothing is worse than a missing one.
2485
2700
  *
2486
- * `String`/`Number`/`Boolean` are deliberately absent, even though they are real `ScalarType`
2487
- * values. This vocabulary is for things with a spatial identity — a fill, a formula, an
2488
- * occupied cell — and a scalar kind has none: it is read straight off the value, which is
2701
+ * `String`/`Number`/`Boolean` are deliberately absent as separate members, even though they are
2702
+ * real `ScalarType` values. "How many numbers" is a count read straight off the values, which is
2489
2703
  * exactly the one pass `IRangeStats.getTypedCounts()` already makes, richer (it composes with
2490
- * aggregates and frequencies for free, in the same call). `getCounts`/`getRegions`/
2491
- * `isContentful` were never the right vocabulary for "how many numbers" — `range.getStats()` is.
2704
+ * aggregates and frequencies for free, in the same call) — `range.getStats()` is the vocabulary
2705
+ * for that. *Where* the numbers are is a partition, and that is the one {@link Feature.Kind}
2706
+ * answers: a typed row inside a block of text is a region of its own.
2492
2707
  *
2493
2708
  * `Error` stays, for a reason unrelated to the above: it has real spatial identity of its own
2494
2709
  * (the reconciled error view) and partitions like any stored feature — it was never in the same
@@ -2506,6 +2721,34 @@ export declare namespace ICellRange {
2506
2721
  * Occupancy — splits on blank/non-blank, Excel `CurrentRegion` semantics.
2507
2722
  */
2508
2723
  readonly Contentful: "contentful";
2724
+ /**
2725
+ * What a cell holds: a number, a date, text, text that would enter as a number, a boolean, an
2726
+ * error or rich data. A formula cell is the kind of its result.
2727
+ *
2728
+ * @remarks
2729
+ * Regions group by kind, so a column of numbers with one text cell in it is three regions. A
2730
+ * date is a number under a date or time format (the cell's `getInteropType()` is `date`).
2731
+ * Text that a typed entry would read as a number (`'123`, a number imported as text) is a kind
2732
+ * of its own, apart from other text: it is Excel's number stored as text. The anchor's
2733
+ * `getInteropType()` names the kind of every other region.
2734
+ *
2735
+ * Derived from the values on first read and cached until the sheet changes.
2736
+ */
2737
+ readonly Kind: "kind";
2738
+ /**
2739
+ * A cell's job in the model ({@link ICell.Role}): a typed `label` or `input`, a `link` to
2740
+ * another sheet, a `reference` on this sheet, a `computed` cell or an `output`, from what the
2741
+ * cell reads and who reads it. The anchor's {@link ICell.getRole} is the payload.
2742
+ *
2743
+ * @remarks
2744
+ * The kind layer refined by the formulas: a column of typed numbers a model reads is one
2745
+ * `input` region, the links beside it another. Crossed with a format (`['role', 'font']`) it is
2746
+ * the census a color convention is judged by, and what the `styleRole` check reads.
2747
+ *
2748
+ * Derived on first read (the formulas parsed once) and cached until the sheet changes, so
2749
+ * {@link ICellRange.getCounts} counts it only when asked for by name, like `anomalies`.
2750
+ */
2751
+ readonly Role: "role";
2509
2752
  /**
2510
2753
  * Direct date-category number format — `yyyy-mm-dd`, `mm/dd/yyyy`, and the like.
2511
2754
  *
@@ -2531,6 +2774,14 @@ export declare namespace ICellRange {
2531
2774
  * failure — its cells evaluate, to `0` — and is {@link Feature.Circular}.
2532
2775
  */
2533
2776
  readonly CalcError: "calcError";
2777
+ /**
2778
+ * Evaluated state: cells whose result has not settled. Regions group by status — a cell whose
2779
+ * own function has not answered yet ({@link ICalculation.ResultStatus.Pending}), or one
2780
+ * calculated from such a value and calculated again when it arrives
2781
+ * ({@link ICalculation.ResultStatus.Waiting}). The anchor's `getCalculationStatus()` is the
2782
+ * payload. Empty once every answer has landed.
2783
+ */
2784
+ readonly CalcStatus: "calcStatus";
2534
2785
  /**
2535
2786
  * Evaluated state: cells in a reference cycle, or downstream of one. Both evaluate to `0`
2536
2787
  * (Excel, iterative calculation off) with nothing else to show for it — this is the marker.
@@ -2562,6 +2813,11 @@ export declare namespace ICellRange {
2562
2813
  readonly AutoTable: "autoTable";
2563
2814
  /** Has a hyperlink. */
2564
2815
  readonly Hyperlink: "hyperlink";
2816
+ /**
2817
+ * Ignores one or more of Excel's error checks. Regions group by the set of checks ignored.
2818
+ * @see {@link ICellRange.setErrorIgnored}
2819
+ */
2820
+ readonly IgnoredErrors: "ignoredErrors";
2565
2821
  /** Has comments. */
2566
2822
  readonly Comments: "comments";
2567
2823
  /**
@@ -2573,6 +2829,51 @@ export declare namespace ICellRange {
2573
2829
  readonly Conditionals: "conditionals";
2574
2830
  /** Cells under data-validation rules. */
2575
2831
  readonly DataValidations: "dataValidations";
2832
+ /**
2833
+ * Cells under a cell control ({@link ICellRange.setControl}). Regions group by the control's
2834
+ * definition (its type and properties), so adjacent checkboxes set in two strokes are one
2835
+ * region and a checkbox beside a rating are two; the anchor cell's {@link ICell.getControl} is
2836
+ * the payload. Whether a cell draws its control depends on its value, which is a `Kind`
2837
+ * question: ask for both to split a column of checkboxes from the text cells among them.
2838
+ */
2839
+ readonly CellControl: "cellControl";
2840
+ /**
2841
+ * Cells where an error check fires — what breaks the pattern around it. Regions group by the
2842
+ * check and its evidence, so a filled row that breaks the same way is one region; the anchor
2843
+ * cell's {@link ICell.getAnomalies} is the payload.
2844
+ *
2845
+ * @remarks
2846
+ * Excel's background error checks, run over this vocabulary's own partitions rather than cell
2847
+ * by cell: a formula region whose neighbors on both sides agree with each other and not with
2848
+ * it (`formula`), a range that stops one number short (`formulaRange`), text that reads as a
2849
+ * number (`numberStoredAsText`), a reference to an empty cell (`emptyCellReference`), a
2850
+ * formula left unlocked (`unlockedFormula`). The first of these is one rule SheetXL runs on
2851
+ * other layers too: a typed value in a run of formulas (`hardcodeInRun`), and an authored
2852
+ * format that breaks the run around it (`styleBreak`); and a format part paired with the
2853
+ * cell's role, a link left black where links are green (`styleRole`). Then SheetXL's own, read from what a
2854
+ * formula says: a cell counted twice in one sum (`repeatedReference`), an aggregate of one cell
2855
+ * or of typed numbers (`degenerateCall`), a sum holding its own subtotal (`sumIncludesSubtotal`),
2856
+ * a total that also adds a cell outside its block (`misalignedReference`),
2857
+ * a nearest-key lookup (`approximateMatch`), lookup arrays that do not line up (`lookupShape`),
2858
+ * a reference outside the workbook (`externalReference`); and from labels: a link whose target
2859
+ * row is labeled otherwise (`linkLabelMismatch`), a lookup key that is not the row's or
2860
+ * column's label (`keyLabelMismatch`), a link with the other sign from its siblings
2861
+ * (`signVsSiblings`); and from the numbers: a typed number in a formula equal to an input
2862
+ * nothing reads (`literalMatchesInput`), twin formulas that differ in a unit literal or a sign
2863
+ * (`twinBlockDivergence`), a percent typed as a whole number (`scaleOutlier`), every constant a
2864
+ * formula types with how often the workbook types it (`constantFrequency`). An ignored check
2865
+ * ({@link ICellRange.setErrorIgnored}) does not fire.
2866
+ *
2867
+ * Regions list highest rank first ({@link ICell.Anomaly.rank}), unless an `axis` is asked for.
2868
+ *
2869
+ * The checks that read a formula need the calculation engine to have loaded its parser, and
2870
+ * those that read its references need it to have compiled the formula; with the engine off
2871
+ * they do not fire.
2872
+ *
2873
+ * Derived on first read and cached until the sheet changes, so {@link ICellRange.getCounts}
2874
+ * counts it only when asked for by name; otherwise its key is absent, never `0`.
2875
+ */
2876
+ readonly Anomalies: "anomalies";
2576
2877
  };
2577
2878
  type Feature = typeof Feature[keyof typeof Feature];
2578
2879
  /**
@@ -2582,9 +2883,17 @@ export declare namespace ICellRange {
2582
2883
  * Total, not partial — every public {@link ICellRange.Feature} is present, absent features
2583
2884
  * as explicit zeros. A zero is a fact about the range; a missing key would be ambiguous.
2584
2885
  *
2886
+ * The exceptions are `anomalies` and `role`: each is derived, not stored, so it is present only
2887
+ * when it was requested by name. A count that was never taken is absent rather than a `0` that
2888
+ * would read as "nothing fires here".
2889
+ *
2585
2890
  * The brand is non-enumerable: `Object.keys`/`entries` yield exactly the feature keys.
2586
2891
  */
2587
- interface Counts extends Readonly<Record<ICellRange.Feature, number>> {
2892
+ interface Counts extends Readonly<Record<Exclude<ICellRange.Feature, typeof Feature.Anomalies | typeof Feature.Role>, number>> {
2893
+ /** Present only when `anomalies` was requested by name; see {@link Feature.Anomalies}. */
2894
+ readonly anomalies?: number;
2895
+ /** Present only when `role` was requested by name; see {@link Feature.Role}. */
2896
+ readonly role?: number;
2588
2897
  /**
2589
2898
  * For runtime type checking.
2590
2899
  */
@@ -2617,6 +2926,65 @@ export declare namespace ICellRange {
2617
2926
  */
2618
2927
  containment?: 'intersects' | 'fullyContained';
2619
2928
  }
2929
+ /**
2930
+ * A kind of defect a reader is looking for, which {@link ICellRange.getAnomalies} can order its
2931
+ * findings by ({@link GetAnomaliesOptions.focus}).
2932
+ */
2933
+ const AnomalyFocus: {
2934
+ /** A cell or a subtotal counted twice in a sum. */
2935
+ readonly DoubleCounting: "doubleCounting";
2936
+ /** A typed number where a reference belongs. */
2937
+ readonly EmbeddedHardcode: "embeddedHardcode";
2938
+ /** A cell whose font color is not its role's (inputs, links, calculations). */
2939
+ readonly ColorCoding: "colorCoding";
2940
+ /** An average over the wrong cells. */
2941
+ readonly Average: "average";
2942
+ /** A link to another sheet that reads the wrong row or column. */
2943
+ readonly CrossSheetReference: "crossSheetReference";
2944
+ /** A term added that should be taken away, or the reverse. */
2945
+ readonly SignConvention: "signConvention";
2946
+ /** A lookup that matches approximately, or reads arrays that do not line up. */
2947
+ readonly Lookup: "lookup";
2948
+ /** A reference relative where it should be absolute, or the reverse. */
2949
+ readonly ReferenceAnchoring: "referenceAnchoring";
2950
+ /** A value in the wrong unit: a monthly figure in a daily formula, a percent typed as a whole number. */
2951
+ readonly UnitMismatch: "unitMismatch";
2952
+ /** Rows deleted from a model, which leaves references shifted and `#REF!`. */
2953
+ readonly DeletedRows: "deletedRows";
2954
+ };
2955
+ type AnomalyFocus = typeof AnomalyFocus[keyof typeof AnomalyFocus];
2956
+ /**
2957
+ * Options for {@link ICellRange.getAnomalies}.
2958
+ */
2959
+ interface GetAnomaliesOptions {
2960
+ /**
2961
+ * The checks to list first, in this order of priority; an unknown name throws.
2962
+ *
2963
+ * @defaultValue none — every region by rank
2964
+ */
2965
+ checks?: readonly ICell.ErrorCheck[];
2966
+ /**
2967
+ * The kind of defect being looked for, or several: regions are ordered by how often findings
2968
+ * like theirs have been that kind of defect, measured on audited models, and by rank where
2969
+ * that is equal. With `checks` too, the named checks still list first and `focus` orders
2970
+ * within each. An unknown name throws.
2971
+ *
2972
+ * @defaultValue none — by rank
2973
+ */
2974
+ focus?: AnomalyFocus | readonly AnomalyFocus[];
2975
+ /**
2976
+ * At most this many regions.
2977
+ *
2978
+ * @defaultValue every region
2979
+ */
2980
+ limit?: number;
2981
+ /**
2982
+ * Regions to skip first, so `{ limit: 25, offset: 25 }` is the window after `{ limit: 25 }`.
2983
+ *
2984
+ * @defaultValue 0
2985
+ */
2986
+ offset?: number;
2987
+ }
2620
2988
  interface ScrollIntoViewOptions extends globalThis.ScrollIntoViewOptions {
2621
2989
  /**
2622
2990
  * If provided then will only scroll in the provided axis.
@@ -2756,86 +3124,101 @@ export declare namespace ICellRange {
2756
3124
  */
2757
3125
  injectReferences?: IRange.JSONReference<any>[][];
2758
3126
  }
2759
- interface Event {
3127
+ /**
3128
+ * What a range listener is told. See {@link ICellRange.addListener}.
3129
+ *
3130
+ * @typeParam S The source the listener registered on: an `ICellRange` from
3131
+ * {@link ICellRange.addListener}, an `ICellRanges` from {@link ICellRanges.addListener}.
3132
+ */
3133
+ interface Event<S extends ICellRange | ICellRanges = ICellRange> {
2760
3134
  /**
2761
- * The source of the event. This will be a readonly range.
3135
+ * The range that was listened to, where it is now.
2762
3136
  *
2763
3137
  * @remarks
2764
- * This may change shape due to insert/delete/move of cells or sheets.
3138
+ * After an `'address'` or `'restore'` event this is the range at its new address or extent: rows
3139
+ * or columns inserted or deleted around it, or an undo that moved it back. The range
3140
+ * `addListener` was called on keeps the address it was made with, so this is where to read
3141
+ * the range from.
3142
+ *
3143
+ * A range whose cells were deleted is invalid ({@link ICellRange.isInvalid}) and spells
3144
+ * `#REF!`; one restored to a revision from before the listener was added is invalid and
3145
+ * spells `#N/A`.
2765
3146
  */
2766
- getSource<T = ICellRange | ICellRanges>(): T;
3147
+ getSource(): S;
2767
3148
  /**
2768
- * This is the range of data that has been changed.
3149
+ * The cells that changed within the source, for a `'data'` event; `null` for any other.
2769
3150
  *
2770
3151
  * @remarks
2771
- * This is different than the source range as that is the entire range area that was listened to.
2772
- */
2773
- getFrom(): ICellRanges;
2774
- /**
2775
- * Used for moves. Represents the new location of the data that has changed.
3152
+ * A batch is one change: every range of it that reached the listener arrives in one event.
2776
3153
  */
2777
- getTo?(): ICellRange;
3154
+ getRanges(): ICellRanges | null;
2778
3155
  /**
2779
- * Returns a list of updates that occurred during the event. This is only available for data change events and will be `null` for address or restore events.
3156
+ * Where the source was before an `'address'` event moved it; `null` for any other event, and
3157
+ * for a sheet rename, which moves no cells.
3158
+ *
3159
+ * @remarks
3160
+ * An address rather than a range, because the cells at it now are other cells.
2780
3161
  */
3162
+ getPreviousAddress(): string | null;
2781
3163
  /**
2782
- * Indicates the type of change that triggered the event.
3164
+ * What happened to the range.
2783
3165
  *
2784
3166
  * @remarks
2785
- * * `'data'`: Data within the range has changed.
2786
- * The range's address and dimensions remain the same.
2787
- * * `'address'`: The range's *address* or *dimensions* have changed. This
2788
- * occurs due to row/column insertions, deletions, or move operations — and, for a
2789
- * sheet-qualified range (one from {@link IWorkbook.getRange}, or a sheet's range naming
2790
- * another sheet), when the sheet it names is renamed. A bare range on its own sheet has no
2791
- * qualifier, so a rename is not a change to it.
2792
- * * `'restore'`: The range has been restored to a different revision
2793
- * (undo/redo). The 'restore' trigger is not available for transactional listeners.
3167
+ * * `'data'`: Cells within the range changed: written, recalculated, or undone. The range's
3168
+ * address and extent are as they were. {@link getCommit} is `null` for a recalculation,
3169
+ * which belongs to no commit; {@link isUndo} tells an undo from a write.
3170
+ * * `'address'`: The range's address or extent changed: rows or columns inserted or deleted,
3171
+ * cells moved, its cells deleted (the source spells `#REF!`), or, for a sheet-qualified
3172
+ * range (one from {@link IWorkbook.getRange}, or a sheet's range naming another sheet), a
3173
+ * rename of the sheet it names. A bare range on its own sheet has no qualifier, so a rename
3174
+ * is not a change to it. A listener anchored {@link IAnchored.Type.Absolute} never moves and
3175
+ * never has one.
3176
+ * * `'restore'`: The workbook was restored to a revision from before the listener was added,
3177
+ * so the range is not in it (the source spells `#N/A`). Never delivered to a transactional
3178
+ * listener.
2794
3179
  */
2795
- readonly trigger2?: 'data' | 'address' | 'restore';
2796
- readonly trigger: string;
3180
+ getTrigger(): Event.Trigger;
2797
3181
  /**
2798
- * Indicates if the event is being fired from an undo event.
3182
+ * `true` when the change is an undo. A redo is not an undo: it is told as the forward change
3183
+ * was.
2799
3184
  */
2800
- readonly isUndo?: boolean;
3185
+ isUndo(): boolean;
2801
3186
  /**
2802
- * Returns the transaction Id if the event is occurring in a transaction otherwise `null`.
3187
+ * The commit that made the change, or `null` when none did: a recalculation landing.
2803
3188
  *
2804
- * @see
2805
- * {@link ListenerOptions.getTransactionId}
3189
+ * @remarks
3190
+ * A transactional listener is told before the commit is sealed, so this is the commit it is
3191
+ * writing into ({@link ListenerOptions.transactional}).
2806
3192
  */
2807
- getTransactionId(): string | null;
3193
+ getCommit(): ITransaction.ICommit | null;
2808
3194
  /**
2809
- * Indicates if the event is being fired due to a cell value change.
2810
- *
2811
- * @see
2812
- * {@link ListenerOptions.ignoreDataChanges}
3195
+ * The trigger and the source, for logging.
2813
3196
  */
2814
- readonly isDataChange?: boolean;
3197
+ toString(): string;
2815
3198
  /**
2816
- * To string the event.
3199
+ * When the event was made, in milliseconds since the epoch.
2817
3200
  */
2818
- toString(): string;
3201
+ getTimeStamp(): number;
3202
+ }
3203
+ namespace Event {
2819
3204
  /**
2820
- * The timestamp of the event.
3205
+ * What happened to a listened range. See {@link ICellRange.Event.getTrigger}.
2821
3206
  */
2822
- readonly timeStamp: number;
3207
+ type Trigger = 'data' | 'address' | 'restore';
2823
3208
  }
2824
3209
  /**
2825
- * Represents a listen for a range. The listener will be called when the range's
2826
- * data, address, or restore state changes, subject to the provided options.
3210
+ * Called with what changed at a listened range. See {@link ICellRange.addListener}.
2827
3211
  *
2828
- * @remarks
2829
- * If the range is deleted (rows/columns removed), the trigger will be `'address'`
2830
- * `trigger` of `'address'` and `getRange().getError()`
2831
- * returning `"#REF!"`.
3212
+ * @typeParam S The source the listener registered on; see {@link ICellRange.Event}.
2832
3213
  *
2833
- * If the ranges is restored to a revision *before* the listener was
2834
- * added, the listener will receive event with a `trigger` of `'restore'`
2835
- * and `getRange().getError()` returning `"#N/A"`.
3214
+ * @remarks
3215
+ * Read the range from {@link Event.getSource}, which is where the listened cells are now. It is
3216
+ * invalid ({@link ICellRange.isInvalid}) when the cells were deleted (`#REF!`) or the workbook
3217
+ * was restored to a revision from before the listener was added (`#N/A`); the listener stays
3218
+ * registered through both, and hears the range come back.
2836
3219
  */
2837
- interface Listener {
2838
- (event: ICellRange.Event): void;
3220
+ interface Listener<S extends ICellRange | ICellRanges = ICellRange> {
3221
+ (event: ICellRange.Event<S>): void;
2839
3222
  }
2840
3223
  /**
2841
3224
  * Receives a watch's results — one value per cell of the watched range, read with LOCAL
@@ -2881,29 +3264,61 @@ export declare namespace ICellRange {
2881
3264
  /**
2882
3265
  * If `true`, the listener will *not* be called when the range's
2883
3266
  * address changes (due to row/column insert/delete, moves, or a rename of
2884
- * the sheet a qualified range names)
3267
+ * the sheet a qualified range names). The range still follows its cells; see {@link anchor}
3268
+ * for a range that should not.
2885
3269
  *
2886
3270
  * @defaultValue false
2887
3271
  */
2888
3272
  ignoreAddressChanges?: boolean;
2889
3273
  /**
2890
- * If `true`, the listener will be treated as *transactional*. This has
2891
- * a few implications:
2892
- *
2893
- * 1. **Synchronous Execution:** The listener will be called *synchronously*
2894
- * as part of the same transaction that triggered the event. Any
2895
- * side-effects of the listener will be included in the transaction's
2896
- * commit history.
2897
- * 2. **No 'restore' Events:** Transactional listeners will *never* receive
2898
- * 'restore' events. They are only concerned with changes within the
2899
- * current transaction.
2900
- *
2901
- * If `false` (the default), the listener will be called *asynchronously*
2902
- * after the transaction is complete. The listener's side-effects will
2903
- * *not* be part of the transaction's commit history.
2904
- *
2905
- * @defaultValue false
2906
- */
3274
+ * How the listened range follows rows and columns inserted or deleted around it.
3275
+ *
3276
+ * @defaultValue {@link IAnchored.Type.TwoCell}
3277
+ *
3278
+ * @remarks
3279
+ * * `TwoCell`: the range follows its cells, as a formula reference does. An insert above it
3280
+ * moves it down, a delete inside it shrinks it, and deleting all of its cells makes it
3281
+ * `#REF!`. Each move is an `'address'` event.
3282
+ * * `OneCell`: the top-left follows its cell and the extent is kept, as a picture anchored to
3283
+ * one cell. Deleting the top-left cell leaves the range where it is.
3284
+ * * `Absolute`: the range never moves. It names the same addresses whatever is inserted or
3285
+ * deleted, so it never has an `'address'` event. This is what a view listening to the rows
3286
+ * it shows wants: the cells on screen, not the cells that were there when it subscribed.
3287
+ */
3288
+ anchor?: IAnchored.Type;
3289
+ /**
3290
+ * Whether the listener takes part in the operations that change its range.
3291
+ *
3292
+ * @defaultValue `true` when the listener is added through a range reached through the object a
3293
+ * batch hands its callback ({@link IWorkbook.doBatch}, {@link IWorksheet.doBatch},
3294
+ * {@link doBatch}), and `false` otherwise.
3295
+ *
3296
+ * @remarks
3297
+ * A transactional listener (a participant):
3298
+ * * added through a batch, is told as each operation of that batch is made, before the
3299
+ * operation returns, with what that operation changed. It is not told again when the batch
3300
+ * lands;
3301
+ * * added any other way, is told once at the end of each operation, before it is committed;
3302
+ * * writes into the same commit as the change it was told of, so one undo takes back both;
3303
+ * * is never told of an undo or a redo, and is removed by undoing the operation that added it.
3304
+ * If its batch fails, it is told nothing more and goes with the batch.
3305
+ *
3306
+ * A non-transactional listener (an observer) is told once, after the operation has landed,
3307
+ * with everything the operation changed in its range, and not at all if the operation is
3308
+ * rolled back. What it writes is an operation of its own. It is told of an undo or a redo
3309
+ * (`'restore'`), and it survives them.
3310
+ *
3311
+ * @example
3312
+ * ```ts
3313
+ * await workbook.doBatch(async (_commit, wb) => {
3314
+ * const total = wb.getSelectedWorksheet()!.getRange('B1');
3315
+ * const input = wb.getSelectedWorksheet()!.getRange('A1');
3316
+ * input.addListener(() => total.setValue((input.getValue() as number) * 2)); // a participant
3317
+ * input.setValue(21);
3318
+ * total.getValue(); // 42
3319
+ * });
3320
+ * ```
3321
+ */
2907
3322
  transactional?: boolean;
2908
3323
  /**
2909
3324
  * If `true`, the listener will *not* be called when the data