@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
@@ -4,6 +4,7 @@ import { ITypes, ICollection, IProperties } from '../type';
4
4
  import { IWorkbook } from '../workbook';
5
5
  import { IListener } from '../listener';
6
6
  import { ITransaction } from '../transaction';
7
+ import { BatchHandle } from '../transaction/_BatchHandle';
7
8
  import { IResource, IResourceCollection } from '../resource';
8
9
  import { IStringCollection } from '../string';
9
10
  import { IProtection } from '../protection';
@@ -28,12 +29,17 @@ import { IChartCollection } from '../chart';
28
29
  import { IPicture } from '../picture';
29
30
  import { InsertableCollection } from '../movable/_InsertableCollection';
30
31
  import { IPivotTable, IPivotTableCollection } from '../pivot';
32
+ import { AnomalyFindings, AnomalySet, AnomalySource, RoleSource } from '../anomalies/_Anomalies';
33
+ import { CellKind } from './_Kinds';
34
+ import { IRichDataKind } from '../richData/IRichDataKind';
35
+ import { IRichDataCollection } from '../richData/IRichDataCollection';
31
36
  import { ICell } from '../cell';
32
37
  import { ICellRange, ICellRegions, ICellRanges } from '../cellRange';
33
38
  import { ICellStyle, IStyleCollection } from '../style';
34
39
  import { IRangeSelection } from '../selection';
35
40
  import { IConditionalFormat, IConditionalFormatCollection } from '../conditionalFormat';
36
41
  import { IProtectedRange, IProtectedRangeCollection } from '../protectedRange';
42
+ import { ICellControl, ICellControlCollection } from '../cellControl';
37
43
  import { Tuple, ISpatialMap, ISpatialQuery } from '../collections';
38
44
  import { ListenerEmitter } from '../listener/ListenerEmitter';
39
45
  import { ICondition } from '../condition';
@@ -41,18 +47,23 @@ import { ConditionalFormat } from '../conditionalFormat/ConditionalFormat';
41
47
  import { IDataValidationCollection, IDataValidation } from '../dataValidation';
42
48
  import { DataValidation } from '../dataValidation/DataValidation';
43
49
  import { ProtectedRange } from '../protectedRange/ProtectedRange';
50
+ import { CellControl } from '../cellControl/CellControl';
44
51
  import { Comment } from '../comment/Comment';
45
52
  import { NoteMovable } from '../comment/NoteMovable';
46
53
  import { NoteLayout } from '../comment/_NoteBox';
47
- import { ISheetProtection } from '../sheetProtection';
54
+ import { IWorksheetProtection } from '../sheetProtection';
48
55
  import { IOutline } from '../outline';
56
+ import { IPageLayout } from '../print';
49
57
  import { ISheetHeader } from '../sheetHeader';
50
- import { ISheetView } from '../sheetView';
58
+ import { IWorksheetView } from '../sheetView';
59
+ import { IWorksheet } from './IWorksheet';
51
60
  import { ISheet } from './ISheet';
52
61
  import { ScalarListFactory } from './_ScalarListFactory';
53
62
  import { ListenerAnchor } from './_ListenerAnchor';
54
63
  import { WatchAnchor } from './_WatchAnchor';
64
+ import { ShiftIntent } from './_SheetIntents';
55
65
  import { EventCategory, SheetEvents } from './_SheetEvents';
66
+ import { SheetChangeDetails } from './_SheetChangeEvent';
56
67
  import { SheetHeader } from '../sheetHeader/SheetHeader';
57
68
  import { SheetDirectStyle } from './style/SheetDirectStyle';
58
69
  import { IUsedRangeSpatialMap } from './style/UsedRangeSpatialMap';
@@ -61,37 +72,43 @@ import { CellBuffer } from './_CellBuffer';
61
72
  import { SheetReadContext, GetTypedRangeOptions, OverFlowsAndStops } from './_SheetStateReader';
62
73
  import { AutoFillProjection, AutoFillPreviewCache } from './_SheetAutoFillUtils';
63
74
  import { ProtectionCheck } from './_SheetCoords';
64
- import { SheetProtection } from '../sheetProtection/SheetProtection';
75
+ import { WorksheetProtection } from '../sheetProtection/WorksheetProtection';
65
76
  import { Outline } from '../outline/Outline';
77
+ import { PageLayout } from '../print/PageLayout';
66
78
  import { SheetCellOptions } from './SheetCell';
67
79
  import { ICalculation } from '../calculation';
68
80
  import { ICalcGrid } from '../calculation/grid';
69
81
  import * as _SheetFilterUtils from './_SheetFilterUtils';
82
+ /** The font colors a workbook writes its roles in, and a key that compares by content. */
83
+ interface WorkbookRoleColors {
84
+ readonly key: string;
85
+ readonly colors: ReadonlySet<string>;
86
+ }
70
87
  /**
71
- * Implementation of {@link ISheet}.
88
+ * Implementation of {@link IWorksheet}.
72
89
  */
73
90
  /**
74
- * The internal capability surface a {@link Sheet} vends to `SheetRange`/`SheetRanges` and (later)
75
- * extracted operation modules. It carries ONLY genuinely-internal operations; the public `ISheet`
76
- * API is reached via `getSheet()` and never duplicated here. The type is derived from the concrete
91
+ * The internal capability surface a {@link Worksheet} vends to `SheetRange`/`SheetRanges` and (later)
92
+ * extracted operation modules. It carries ONLY genuinely-internal operations; the public `IWorksheet`
93
+ * API is reached via `getWorksheet()` and never duplicated here. The type is derived from the concrete
77
94
  * `_internal` object so it can never drift from the implementation.
78
95
  * @internal
79
96
  */
80
- export type ISheetInternal = ReturnType<Sheet['_getInternal']>;
97
+ export type IWorksheetInternal = ReturnType<Worksheet['_getInternal']>;
81
98
  /**
82
- * The context a {@link Sheet} vends to `_SheetMutations` (the shift/insert/delete engine). Derived
99
+ * The context a {@link Worksheet} vends to `_SheetMutations` (the shift/insert/delete engine). Derived
83
100
  * from the concrete `_buildMutationCtx` object so it can never drift from the implementation.
84
101
  * @internal
85
102
  */
86
- export type SheetMutationContext = ReturnType<Sheet['_buildMutationCtx']>;
103
+ export type SheetMutationContext = ReturnType<Worksheet['_buildMutationCtx']>;
87
104
  /**
88
- * The context a {@link Sheet} vends to `_SheetCoords` (address/coord resolution). Derived from the
105
+ * The context a {@link Worksheet} vends to `_SheetCoords` (address/coord resolution). Derived from the
89
106
  * concrete `_buildCoordCtx` object so it can never drift from the implementation.
90
107
  * @internal
91
108
  */
92
- export type SheetCoordContext = ReturnType<Sheet['_buildCoordCtx']>;
109
+ export type SheetCoordContext = ReturnType<Worksheet['_buildCoordCtx']>;
93
110
  /**
94
- * What an operation hands {@link Sheet._commitWithDirectives} beyond its selection and options.
111
+ * What an operation hands {@link Worksheet._commitWithDirectives} beyond its selection and options.
95
112
  * @internal
96
113
  */
97
114
  export interface CommitDirectives {
@@ -102,7 +119,7 @@ export interface CommitDirectives {
102
119
  /** Handed to the commit. */
103
120
  commit?: ITransaction.StoreOperationOptions;
104
121
  }
105
- /** The sheet's legacy drawing as it holds it: {@link ISheet.LegacyDrawingJSON} with each image resolved to its {@link IResource}, so paste and `.sxl` keep working. */
122
+ /** The sheet's legacy drawing as it holds it: {@link IWorksheet.LegacyDrawingJSON} with each image resolved to its {@link IResource}, so paste and `.sxl` keep working. */
106
123
  interface LegacyDrawing {
107
124
  xml: string;
108
125
  images?: LegacyDrawingImage[];
@@ -112,8 +129,8 @@ interface LegacyDrawingImage {
112
129
  id: string;
113
130
  resource: IResource;
114
131
  }
115
- export declare class Sheet implements ISheet {
116
- protected _options: ISheet.ConstructorOptions;
132
+ export declare class Worksheet implements IWorksheet {
133
+ protected _options: IWorksheet.ConstructorOptions;
117
134
  protected _id: string;
118
135
  /** The store-issued key for this sheet's state record. Distinct from `_id`, the document-level id (formula scope / JSON). */
119
136
  protected _stateId: string;
@@ -128,18 +145,45 @@ export declare class Sheet implements ISheet {
128
145
  * close before an earlier one lands. See {@link _onRootTransactionClose}.
129
146
  */
130
147
  protected _movableSelectionAtCommitEnd: Map<ITransaction.ICommit, readonly string[]>;
131
- protected _emitter: ListenerEmitter<ISheet, ISheet.IListeners>;
148
+ /**
149
+ * What calculation passes realized while a root was open, told to listener nodes once it
150
+ * closes. See {@link _realizeCalcedValues}.
151
+ */
152
+ protected _heldPassRanges: IRange.Coords[] | null;
153
+ protected _emitter: ListenerEmitter<IWorksheet, IWorksheet.IListeners>;
132
154
  protected _initializing: boolean;
133
155
  protected _starting: Promise<void> | null;
134
156
  protected _strings: IStringCollection;
135
157
  /** Makes the lists cell values are stored as, over `_strings`. */
136
158
  protected _lists: ScalarListFactory;
159
+ /** What rich values written to or loaded into this sheet are made for. */
160
+ protected _richData: IRichDataKind.Context;
161
+ /** The resource ids of the file being read; unset outside a read. */
162
+ protected _readingResources: IResourceCollection.IPersistScope<IResource.JSON> | null;
137
163
  protected _ownStrings: boolean;
164
+ /** The rich values the sheet's runs hold by id: the workbook's, or the sheet's own. */
165
+ protected _richValues: IRichDataCollection;
166
+ protected _ownRichValues: boolean;
138
167
  protected _styles: IStyleCollection;
139
168
  protected _ownStyles: boolean;
140
169
  protected _stylesRemoveListener: IListener.Remove;
141
170
  protected _languageRemoveListener?: IListener.Remove;
171
+ protected _fontsRemoveListener?: IListener.Remove;
142
172
  protected _regionalRemoveListener?: IListener.Remove;
173
+ /** Autofits that measured with a stand-in while a face was loading; taken again when it lands. */
174
+ /** Fits owed once the faces have loaded: held before they ran (`ran` false), or run against a stand-in. */
175
+ protected _pendingFits: {
176
+ ranges: readonly IRange.Coords[];
177
+ options?: ICellRange.AutoFitOptions;
178
+ ran: boolean;
179
+ }[];
180
+ /** Set while fits are owed to the text engine's arrival; see {@link _autoFit}. */
181
+ private _engineWait;
182
+ /**
183
+ * Whether the load-time row fit was skipped (`disableLoadAutoFit`): the stored heights are the
184
+ * file's, so no row was measured with a stand-in and a font arriving has none to correct.
185
+ */
186
+ protected _loadFitSkipped: boolean;
143
187
  protected _stylesListener: IStyleCollection.IListeners;
144
188
  protected _normalStyleRanged: IProperties.ICellRanged<ICellStyle.Properties>;
145
189
  protected _resources: IResourceCollection;
@@ -180,6 +224,7 @@ export declare class Sheet implements ISheet {
180
224
  protected _conditionals: IConditionalFormatCollection;
181
225
  protected _dataValidations: IDataValidationCollection;
182
226
  protected _protectedRanges: IProtectedRangeCollection;
227
+ protected _cellControls: ICellControlCollection;
183
228
  protected _comments: ICommentCollection;
184
229
  protected _movables: IMovableCollection;
185
230
  protected _charts: IChartCollection;
@@ -217,6 +262,12 @@ export declare class Sheet implements ISheet {
217
262
  coords: IRange.Coords | null;
218
263
  range: ICellRange | null;
219
264
  };
265
+ /**
266
+ * Set while a cut on a protected sheet moves its cells, which it ruled on before it began (see
267
+ * `_copyFromNow`): the move's own steps (its clears, the rules it re-anchors) do not rule again,
268
+ * since the first of them changes the cells the next would read. Synchronous, like the move.
269
+ */
270
+ protected _isMoveRuled: boolean;
220
271
  protected _lastRangeRead: {
221
272
  address: ICellRange.Address | null;
222
273
  range: ICellRange | null;
@@ -225,17 +276,24 @@ export declare class Sheet implements ISheet {
225
276
  protected _entireCoordsCache: IRange.Coords | null;
226
277
  protected _entireRangeCache: ICellRange | null;
227
278
  protected _isDataColumn: boolean;
228
- protected _view: ISheetView;
229
- protected _viewListener: ISheetView.IListeners;
279
+ protected _view: IWorksheetView;
280
+ protected _viewListener: IWorksheetView.IListeners;
230
281
  protected _viewRemoveListener: IListener.Remove;
231
- protected _protection: SheetProtection;
282
+ protected _protection: WorksheetProtection;
232
283
  protected _protectionListener: IProtection.IListeners;
233
284
  protected _protectionRemoveListener: IListener.Remove;
234
285
  protected _tabColor: IColor | null;
235
- /** VBA binding identity; carried from the file, never minted. See {@link ISheet.getCodeName}. */
286
+ /** VBA binding identity; carried from the file, never minted. See {@link IWorksheet.getCodeName}. */
236
287
  protected _codeName: string | null;
288
+ /** See {@link IWorksheet.JSON.baseColSize}. `null` is the default, 8. */
289
+ protected _baseColSize: number | null;
237
290
  protected _outline: Outline;
291
+ protected _pageLayout: PageLayout;
238
292
  protected _conditionalFormatCalculation: boolean;
293
+ /** Carried from `sheetPr`; see {@link IWorksheet.isTransitionFormulaEvaluation} and its neighbors. */
294
+ /** Carried from the file. See {@link IDataValidationCollection.getSettings}. */
295
+ protected _validationSettings: Readonly<IDataValidationCollection.Settings>;
296
+ protected _sheetPr: Pick<IWorksheet.JSON, 'transitionFormulaEvaluation' | 'transitionFormulaEntry' | 'excludeFromPublishing' | 'syncScroll'>;
239
297
  /**
240
298
  * Modules this sheet owns — see {@link getModules}.
241
299
  *
@@ -273,19 +331,20 @@ export declare class Sheet implements ISheet {
273
331
  protected _defaultColWidthCache: number | null;
274
332
  protected _defaultRowHeightCache: number | null;
275
333
  protected _defaultFontBoundsCache: Readonly<Size> | null;
334
+ protected _defaultFontsVersion: number;
276
335
  /**
277
336
  * The internal capability object handed to `SheetRange`/`SheetRanges` (and future extracted
278
337
  * modules) so they can drive the sheet without touching its (non-public) methods or the concrete
279
338
  * class shape. The closures reach `Sheet`'s protected members because they are lexically inside the
280
- * class. Public `ISheet` API is reached via `getSheet()` (never duplicated here). As internal logic
339
+ * class. Public `IWorksheet` API is reached via `getWorksheet()` (never duplicated here). As internal logic
281
340
  * moves out to modules, only the relevant closure repoints — consumers never change.
282
- * The `ISheetInternal` type is derived from this object (see below) so it can never drift.
341
+ * The `IWorksheetInternal` type is derived from this object (see below) so it can never drift.
283
342
  * @internal
284
343
  */
285
344
  private readonly _internal;
286
- /** @internal Access the internal capability object. See {@link ISheetInternal}. */
345
+ /** @internal Access the internal capability object. See {@link IWorksheetInternal}. */
287
346
  _getInternal(): {
288
- getSheet: () => ISheet;
347
+ getSheet: () => IWorksheet;
289
348
  getState: () => Readonly<State>;
290
349
  getCalcGrid: () => ICalcGrid;
291
350
  isDataColumn: () => boolean;
@@ -327,11 +386,11 @@ export declare class Sheet implements ISheet {
327
386
  beginCommit: (options?: ITransaction.StoreOperationOptions | string) => ITransaction;
328
387
  recordSelection: (trans: ITransaction, selection: Partial<IRangeSelection.Coords>, options?: Pick<ICellRange.OperationOptions, "autoSelect" | "autoSelectRestore"> | null, undo?: Partial<IRangeSelection.Coords> | null, axis?: IRange.Axis) => void;
329
388
  commitWithDirectives: (trans: ITransaction, selection: Partial<IRangeSelection.Coords> | null, options?: ICellRange.OperationOptions, directives?: CommitDirectives) => void;
330
- autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions) => void;
389
+ autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions, holdWhileLoading?: boolean) => void;
331
390
  getBestFit: (range: IRange.Coords, options?: ICellRange.BestFitOptions) => Size;
332
- invalidateRendering: () => void;
333
- addListenerNode: (ranges: readonly IRange.Coords[], listener: ICellRange.Listener, options?: ICellRange.ListenerOptions) => IListener.Remove;
334
- addWatch: (coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: ICellRange.WatchOptions) => IListener.Remove;
391
+ invalidateRendering: (axes?: IRange.AxisSelection | null) => void;
392
+ addListenerNode: (ranges: readonly IRange.Coords[], listener: ICellRange.Listener<any>, options?: ICellRange.ListenerOptions, collection?: boolean) => IListener.Remove;
393
+ addWatch: (coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: WatchAnchor.Options) => IListener.Remove;
335
394
  surroundingRegion: (range: IRange.Coords, options?: ICellRange.GetSurroundingOptions) => IRange.Coords;
336
395
  getTraverseRegion: (cell: IRange.CellCoords, axis: IRange.Axis, reverse: boolean) => IRange.Coords | null;
337
396
  sort: (coords: Readonly<IRange.Coords>, options?: boolean | ISort.Options[] | (ISort.RangeOptions & ITransaction.OperationOptions)) => IRange.Coords;
@@ -340,6 +399,8 @@ export declare class Sheet implements ISheet {
340
399
  applyFilterRuns: (runs: _SheetFilterUtils.FilterRuns, options?: ITransaction.OperationOptions) => void;
341
400
  filteredTables: () => ITable[];
342
401
  setHyperlinks: (ranges: readonly ISpatialMap.Entry<IHyperlink.Update>[], defaultUpdate?: IHyperlink.Update, options?: ITransaction.OperationOptions) => void;
402
+ setCellControl: (address: ICellRanges.Address, control: ICellControl.JSON | null, options?: ITransaction.OperationOptions) => ICellControl | null;
403
+ setErrorIgnored: (ranges: readonly IRange.Coords[], check: ICell.ErrorCheck, ignored: boolean, options?: ITransaction.OperationOptions) => void;
343
404
  setComments: (ranges: readonly ISpatialMap.Entry<IComment.Update>[], comments?: IComment.Update | IComment.JSON, options?: ITransaction.OperationOptions) => void;
344
405
  getBoundsAtCoords: (coords: IRange.Coords) => Bounds;
345
406
  extendRange: (direction: IRange.Direction, cell: IRange.CellCoords) => Readonly<IRange.Coords>;
@@ -357,6 +418,96 @@ export declare class Sheet implements ISheet {
357
418
  * @internal
358
419
  */
359
420
  protected _getReadCtx(): SheetReadContext;
421
+ /** This sheet's first-pass findings and what they were derived from; see {@link _getAnomalyFindings}. */
422
+ protected _anomalyFindings: {
423
+ state: Readonly<State>;
424
+ values: unknown;
425
+ formulas: unknown;
426
+ epoch: number;
427
+ roleColors: string;
428
+ findings: AnomalyFindings;
429
+ } | null;
430
+ /**
431
+ * The error checks' findings on this sheet, each ranked alone. Derived on the first read that
432
+ * asks for it and kept until the sheet's state, its formulas or its values move, or the
433
+ * workbook's role colors change.
434
+ * @internal
435
+ */
436
+ protected _getAnomalyFindings(roleColors?: WorkbookRoleColors): AnomalyFindings;
437
+ /** This worksheet and the workbook's others, very hidden included. */
438
+ protected _getWorkbookSheets(): Worksheet[];
439
+ /** The workbook's role colors and the sheets' sets they were the union of; see {@link _getWorkbookRoleColors}. */
440
+ protected _workbookRoleColors: (WorkbookRoleColors & {
441
+ sheets: readonly ReadonlySet<string>[];
442
+ }) | null;
443
+ /**
444
+ * The font colors any sheet writes a role in, the union `styleRole` reads. `key` changes only
445
+ * when the union does, so an edit that recolors nothing keeps the other sheets' findings.
446
+ * @internal
447
+ */
448
+ protected _getWorkbookRoleColors(): WorkbookRoleColors;
449
+ /** The anomalies map and the workbook's findings it was ranked against; see {@link _getAnomalies}. */
450
+ protected _anomalies: {
451
+ workbook: readonly AnomalyFindings[];
452
+ map: ISpatialMap<AnomalySet>;
453
+ } | null;
454
+ /**
455
+ * Where the error checks fire on this sheet (`ICellRange.Feature.Anomalies`).
456
+ *
457
+ * @remarks
458
+ * A finding's rank depends on how often it repeats across the workbook, so the first read on
459
+ * any sheet derives every sheet's findings; each is kept until its own sheet moves, and this map
460
+ * until any of them does. Nothing on a write or a calculation pays for it.
461
+ * @internal
462
+ */
463
+ protected _getAnomalies(): ISpatialMap<AnomalySet>;
464
+ /** What the role layer is read from: this sheet's content and formulas, as they are now. */
465
+ protected _roleSource(): RoleSource;
466
+ /** The roles map and what it was derived from; see {@link _getRoles}. */
467
+ protected _roles: {
468
+ state: Readonly<State>;
469
+ values: unknown;
470
+ formulas: unknown;
471
+ epoch: number;
472
+ map: ISpatialMap<ICell.Role>;
473
+ } | null;
474
+ /**
475
+ * Each cell's job (`ICellRange.Feature.Role`), derived on the first read that asks for it and
476
+ * kept, like {@link _getAnomalies}, until the sheet moves.
477
+ * @internal
478
+ */
479
+ protected _getRoles(): ISpatialMap<ICell.Role>;
480
+ /** What the checks read of this sheet, as it is now. */
481
+ protected _anomalySource(): AnomalySource;
482
+ /** The role colors and what they were derived from; see {@link _getRoleColors}. */
483
+ protected _roleColors: {
484
+ state: Readonly<State>;
485
+ values: unknown;
486
+ formulas: unknown;
487
+ epoch: number;
488
+ colors: ReadonlySet<string>;
489
+ } | null;
490
+ /**
491
+ * The font colors this sheet writes its roles in, for another sheet's `styleRole` check. Derived
492
+ * on the first read and kept, like {@link _getAnomalies}, until the sheet moves.
493
+ */
494
+ protected _getRoleColors(): ReadonlySet<string>;
495
+ /** The kinds map and what it was derived from; see {@link _getKinds}. */
496
+ protected _kinds: {
497
+ state: Readonly<State>;
498
+ values: unknown;
499
+ epoch: number;
500
+ map: ISpatialMap<CellKind>;
501
+ } | null;
502
+ /**
503
+ * What each cell holds, by kind (`ICellRange.Feature.Kind`).
504
+ *
505
+ * @remarks
506
+ * One scan of the values, derived on the first read that asks for it and kept until the sheet's
507
+ * state or its values move, as {@link _getAnomalies} is.
508
+ * @internal
509
+ */
510
+ protected _getKinds(): ISpatialMap<CellKind>;
360
511
  /**
361
512
  * The sheet's grid: the synchronous half of the calculation service for this sheet
362
513
  * (DESIGN-CALC-SERVICE §13.23, §13.24), holding everything a cell contains - the formulas, the
@@ -374,7 +525,7 @@ export declare class Sheet implements ISheet {
374
525
  /** `false` for a snapshot sheet, which holds its source's grid and must not close it. */
375
526
  protected _ownsCalcGrid: boolean;
376
527
  /** @internal Cached mutation-engine context. See {@link SheetMutationContext}. */
377
- protected _mutationCtx: ReturnType<Sheet['_buildMutationCtx']> | null;
528
+ protected _mutationCtx: ReturnType<Worksheet['_buildMutationCtx']> | null;
378
529
  /** @internal Access the mutation context (cached). See {@link SheetMutationContext}. */
379
530
  protected _getMutationCtx(): SheetMutationContext;
380
531
  /**
@@ -386,10 +537,11 @@ export declare class Sheet implements ISheet {
386
537
  protected _buildMutationCtx(): {
387
538
  readonly rowHeaders: SheetHeader;
388
539
  readonly columnHeaders: SheetHeader;
540
+ readonly pageLayout: PageLayout;
389
541
  readonly rowHeadersShiftCallback: SheetHeader.ShiftCallback | null;
390
542
  readonly columnHeadersShiftCallback: SheetHeader.ShiftCallback | null;
391
543
  getEntireCoords: () => IRange.Coords;
392
- getView: () => ISheetView;
544
+ getView: () => IWorksheetView;
393
545
  beginCommit: (options?: ITransaction.StoreOperationOptions | string) => ITransaction;
394
546
  updateState: (updateState?: Partial<State>, options?: ITransaction.OperationOptions | string) => State;
395
547
  getState: () => Readonly<State>;
@@ -399,6 +551,8 @@ export declare class Sheet implements ISheet {
399
551
  invalidateUsedCoords: () => void;
400
552
  validateCoords: (coords: IRange.Coords, oobMessage?: string, allowOutOfBounds?: boolean) => void;
401
553
  protectionCheck: (check?: ProtectionCheck | null, coords?: Readonly<IRange.Coords> | readonly IRange.Coords[] | null, action?: string | null) => void;
554
+ assertContentEditable: (ranges: readonly IRange.Coords[], viaRanges?: boolean) => boolean;
555
+ isMoveRuled: () => boolean;
402
556
  getDefaultShiftAxis: (coords?: IRange.Coords) => IRange.Axis;
403
557
  processLayoutChange: () => void;
404
558
  /** The movables' by-model index as a shift left it, or `null` if the shift moved none. */
@@ -407,6 +561,7 @@ export declare class Sheet implements ISheet {
407
561
  takeShiftedNoteModels: () => Map<IMovable, ISpatialMap.Entry<MovableEntry>> | null;
408
562
  markColumnHeaderTableNames: () => void;
409
563
  commitWithDirectives: (trans: ITransaction, selection: Partial<IRangeSelection.Coords> | null, options?: ICellRange.OperationOptions, directives?: CommitDirectives) => void;
564
+ recordAutoFit: (trans: ITransaction, ranges: readonly IRange.Coords[], autoFit: boolean | ICellRange.AutoFitOptions) => void;
410
565
  readonly styles: IStyleCollection;
411
566
  getRangedEntries: <T, E = T>(spatial: ISpatialQuery, ranges: readonly IRange.Coords[], options?: GetTypedRangeOptions<T, E>, spatialSort?: boolean) => T[];
412
567
  createSparseBuilder: (options?: ICellRange.SparseBuilderOptions, sheetRange?: ICellRange | null, internal?: InternalTupleUpdate) => ICellRange.SparseBuilder;
@@ -415,12 +570,13 @@ export declare class Sheet implements ISheet {
415
570
  fill: IUsedRangeSpatialMap<SheetDirectStyle>;
416
571
  content: IUsedRangeSpatialMap<SheetDirectStyle>;
417
572
  }) => IUsedRangeSpatialMap<SheetDirectStyle>;
418
- autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions) => void;
573
+ autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions, holdWhileLoading?: boolean) => void;
419
574
  recordAutoFormat: (trans: ITransaction) => void;
420
575
  recordSkipProtectionCheck: (trans: ITransaction) => void;
421
576
  recordFreezePanes: (trans: ITransaction, before: IRange.CellCoords, after: IRange.CellCoords) => void;
577
+ recordShift: (trans: ITransaction, kind: IWorksheet.ShiftKind, axis: IRange.Axis, ranges: readonly IRange.Coords[]) => void;
422
578
  recordSelection: (trans: ITransaction, selection: Partial<IRangeSelection.Coords>, options?: Pick<ICellRange.OperationOptions, "autoSelect" | "autoSelectRestore"> | null, undo?: Partial<IRangeSelection.Coords> | null, axis?: IRange.Axis) => void;
423
- notify: (key: keyof ISheet.IListeners) => void | Promise<any>;
579
+ notify: (key: keyof IWorksheet.IListeners) => void | Promise<any>;
424
580
  getRange: (address?: ICellRange.Address, options?: ICellRange.GetRangeOptions) => ICellRange;
425
581
  getSelection: () => IRangeSelection;
426
582
  getMerges: (ranges: readonly IRange.Coords[], ignoreHidden?: boolean | IRange.Axis) => IRange.Coords[];
@@ -430,12 +586,13 @@ export declare class Sheet implements ISheet {
430
586
  readonly isDataColumn: boolean;
431
587
  readonly strings: IStringCollection;
432
588
  readonly lists: ScalarListFactory;
589
+ readonly richData: IRichDataKind.Context;
433
590
  readonly cellOptions: SheetCellOptions;
434
591
  readonly runtime: IRuntime;
435
- getProtection: () => ISheetProtection;
592
+ getProtection: () => IWorksheetProtection;
436
593
  hasRangedEntries: (key: keyof State, range: IRange.Coords) => boolean;
437
594
  rangeStateIterator: (options: RangeState.IteratorOptions) => RangeState.Iterator;
438
- recordChange: (trans: ITransaction, category: EventCategory, ranges: readonly IRange.Coords[] | null | undefined) => void;
595
+ recordChange: (trans: ITransaction, category: EventCategory, ranges: readonly IRange.Coords[] | null | undefined, shifts?: readonly ShiftIntent[]) => void;
439
596
  loadComments: (map: IAnchoredMap<IComment, IComment.JSON>, refs: IRange.JSONReference<IComment.JSON>[]) => IAnchoredMap<IComment, IComment.JSON>;
440
597
  newCommentJSON: (modifiers: IComment.Modifiers) => IComment.JSON;
441
598
  notifyCommentsChange: () => void;
@@ -453,7 +610,7 @@ export declare class Sheet implements ISheet {
453
610
  /** @internal Single-entry memo behind `autoFill({ preview })`. See {@link AutoFillPreviewCache}. */
454
611
  protected _autoFillPreviewCache: AutoFillPreviewCache | null;
455
612
  /** @internal Cached coord-resolution context. See {@link SheetCoordContext}. */
456
- protected _coordCtx: ReturnType<Sheet['_buildCoordCtx']> | null;
613
+ protected _coordCtx: ReturnType<Worksheet['_buildCoordCtx']> | null;
457
614
  /** @internal Access the coord-resolution context (cached). See {@link SheetCoordContext}. */
458
615
  protected _getCoordCtx(): SheetCoordContext;
459
616
  /**
@@ -463,7 +620,7 @@ export declare class Sheet implements ISheet {
463
620
  */
464
621
  protected _buildCoordCtx(): {
465
622
  readonly internal: {
466
- getSheet: () => ISheet;
623
+ getSheet: () => IWorksheet;
467
624
  getState: () => Readonly<State>;
468
625
  getCalcGrid: () => ICalcGrid;
469
626
  isDataColumn: () => boolean;
@@ -505,11 +662,11 @@ export declare class Sheet implements ISheet {
505
662
  beginCommit: (options?: ITransaction.StoreOperationOptions | string) => ITransaction;
506
663
  recordSelection: (trans: ITransaction, selection: Partial<IRangeSelection.Coords>, options?: Pick<ICellRange.OperationOptions, "autoSelect" | "autoSelectRestore"> | null, undo?: Partial<IRangeSelection.Coords> | null, axis?: IRange.Axis) => void;
507
664
  commitWithDirectives: (trans: ITransaction, selection: Partial<IRangeSelection.Coords> | null, options?: ICellRange.OperationOptions, directives?: CommitDirectives) => void;
508
- autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions) => void;
665
+ autoFit: (ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions, holdWhileLoading?: boolean) => void;
509
666
  getBestFit: (range: IRange.Coords, options?: ICellRange.BestFitOptions) => Size;
510
- invalidateRendering: () => void;
511
- addListenerNode: (ranges: readonly IRange.Coords[], listener: ICellRange.Listener, options?: ICellRange.ListenerOptions) => IListener.Remove;
512
- addWatch: (coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: ICellRange.WatchOptions) => IListener.Remove;
667
+ invalidateRendering: (axes?: IRange.AxisSelection | null) => void;
668
+ addListenerNode: (ranges: readonly IRange.Coords[], listener: ICellRange.Listener<any>, options?: ICellRange.ListenerOptions, collection?: boolean) => IListener.Remove;
669
+ addWatch: (coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: WatchAnchor.Options) => IListener.Remove;
513
670
  surroundingRegion: (range: IRange.Coords, options?: ICellRange.GetSurroundingOptions) => IRange.Coords;
514
671
  getTraverseRegion: (cell: IRange.CellCoords, axis: IRange.Axis, reverse: boolean) => IRange.Coords | null;
515
672
  sort: (coords: Readonly<IRange.Coords>, options?: boolean | ISort.Options[] | (ISort.RangeOptions & ITransaction.OperationOptions)) => IRange.Coords;
@@ -518,6 +675,8 @@ export declare class Sheet implements ISheet {
518
675
  applyFilterRuns: (runs: _SheetFilterUtils.FilterRuns, options?: ITransaction.OperationOptions) => void;
519
676
  filteredTables: () => ITable[];
520
677
  setHyperlinks: (ranges: readonly ISpatialMap.Entry<IHyperlink.Update>[], defaultUpdate?: IHyperlink.Update, options?: ITransaction.OperationOptions) => void;
678
+ setCellControl: (address: ICellRanges.Address, control: ICellControl.JSON | null, options?: ITransaction.OperationOptions) => ICellControl | null;
679
+ setErrorIgnored: (ranges: readonly IRange.Coords[], check: ICell.ErrorCheck, ignored: boolean, options?: ITransaction.OperationOptions) => void;
521
680
  setComments: (ranges: readonly ISpatialMap.Entry<IComment.Update>[], comments?: IComment.Update | IComment.JSON, options?: ITransaction.OperationOptions) => void;
522
681
  getBoundsAtCoords: (coords: IRange.Coords) => Bounds;
523
682
  extendRange: (direction: IRange.Direction, cell: IRange.CellCoords) => Readonly<IRange.Coords>;
@@ -536,32 +695,34 @@ export declare class Sheet implements ISheet {
536
695
  getEntireCoords: () => IRange.Coords;
537
696
  getNamedFormulas: () => import('..').INamedFormulasCollection;
538
697
  getNames: () => INamedCollection;
539
- getProtection: () => ISheetProtection;
698
+ getProtection: () => IWorksheetProtection;
540
699
  getName: () => string;
541
700
  resolveRange: (coord: ICellRange.Address) => ICellRange | null | undefined;
542
701
  };
543
- constructor(options?: ISheet.ConstructorOptions);
702
+ constructor(options?: IWorksheet.ConstructorOptions);
544
703
  /** @internal Logic lives in `_SheetCoords.createRange`. */
545
704
  protected _createRange(coords: Readonly<IRange.FixableCoords> | string, getOptions?: ICellRange.GetRangeOptions, readOnly?: string | null): ICellRange;
546
705
  /** @internal Logic lives in `_SheetCoords.createRanges`. */
547
706
  protected _createRanges(coords: readonly (IRange.Coords | string | ICellRange)[], getOptions?: ICellRange.GetRangeOptions, readOnly?: string | null): ICellRanges;
548
- /** {@inheritDoc ISheet.getRange} */
707
+ /** {@inheritDoc IWorksheet.getRange} */
549
708
  getRange(address?: ICellRange.Address, options?: ICellRange.GetRangeOptions): ICellRange;
550
- /** {@inheritDoc ISheet.getCell} */
709
+ /** {@inheritDoc IWorksheet.getCell} */
551
710
  getCell(address?: ICell.Address): ICell;
552
- /** {@inheritDoc ISheet.getRange} */
711
+ /** {@inheritDoc IWorksheet.getRange} */
553
712
  getRanges(address: ICellRanges.Address, options?: ICellRange.GetRangeOptions): ICellRanges;
554
- /** {@inheritDoc ISheet.getEntireRange} */
713
+ /** {@inheritDoc IWorksheet.getEntireRange} */
555
714
  getEntireRange(options?: ICellRange.GetRangeOptions): ICellRange;
556
715
  protected _getEntireCoords(): IRange.Coords;
557
- /** {@inheritDoc ISheet.getEntireCoords} */
716
+ /** {@inheritDoc IWorksheet.getEntireCoords} */
558
717
  getEntireCoords(): IRange.Coords;
559
- /** {@inheritDoc ISheet.getUsedRange} */
718
+ /** {@inheritDoc IWorksheet.getUsedRange} */
560
719
  getUsedRange(options?: ICellRange.GetRangeOptions): ICellRange | null;
561
- /** {@inheritDoc ISheet.getStats} */
720
+ /** {@inheritDoc IWorksheet.getStats} */
562
721
  getStats(options?: ICellRange.GetStatsOptions): IRangeStats;
563
- /** {@inheritDoc ISheet.getRegions} */
722
+ /** {@inheritDoc IWorksheet.getRegions} */
564
723
  getRegions(features?: ICellRange.Feature | readonly ICellRange.Feature[], options?: ICellRange.GetRegionsOptions): ICellRegions;
724
+ /** {@inheritDoc IWorksheet.getAnomalies} */
725
+ getAnomalies(options?: ICellRange.GetAnomaliesOptions): ICellRegions;
565
726
  /** @internal Logic lives in `_SheetCoords.cellToCoords`. */
566
727
  protected _cellToCoords(address: ICell.Address): IRange.CellCoords;
567
728
  /** @internal Logic lives in `_SheetCoords.validateCoords`. */
@@ -683,6 +844,8 @@ export declare class Sheet implements ISheet {
683
844
  protected _autoFillRange(template: IRange.Coords, destination: IRange.Coords): IRange.Coords;
684
845
  /** @internal Logic lives in `_SheetMutations.autoFillShrink`. */
685
846
  protected _autoFillShrink(template: IRange.Coords, destination: IRange.Coords, direction: IRange.Direction, options?: ICellRange.AutoFillOptions): boolean;
847
+ /** @internal Logic lives in `_SheetMutations.setErrorIgnored`. */
848
+ protected _setErrorIgnored(ranges: readonly IRange.Coords[], check: ICell.ErrorCheck, ignored: boolean, options?: ITransaction.OperationOptions): void;
686
849
  /** @internal Logic lives in `_SheetMutations.setHyperlinks`. */
687
850
  protected _setHyperlinks(ranges: readonly ISpatialMap.Entry<IHyperlink.Update>[], defaultUpdate?: IHyperlink.Update, // we do this because updateTuples may update each
688
851
  options?: ITransaction.OperationOptions): void;
@@ -725,6 +888,12 @@ export declare class Sheet implements ISheet {
725
888
  * @internal
726
889
  */
727
890
  protected _realizeCalcedValues(results: ICalcGrid.Results): void;
891
+ /**
892
+ * Tell listener nodes what calculation passes realized. A pass belongs to no commit, so the
893
+ * event carries none: a `'data'` change with a `null` commit.
894
+ * @internal
895
+ */
896
+ protected _notifyPassToListenerNodes(ranges: readonly IRange.Coords[]): void;
728
897
  /**
729
898
  * Land the promoted half of a pass's results - number formats and sizes - in the commit that
730
899
  * entered the formulas they belong to.
@@ -744,10 +913,32 @@ export declare class Sheet implements ISheet {
744
913
  * the references the formula inherits one from, resolved here against the entering commit's
745
914
  * snapshot ({@link _resolveInheritedFormats}), or else the format its functions supplied.
746
915
  *
916
+ * One pass can answer for several entering commits: writes made before the engine runs are
917
+ * calculated together, and the pass names only the last of them. Each one still formats and
918
+ * fits under its own directives and against its own snapshot ({@link _enteredSince}), but the
919
+ * writes land in the target, since an amend reaches only the snapshot it names.
920
+ *
747
921
  * @internal
748
922
  */
749
923
  protected _promoteCalcResults(target: ITransaction.ICommit, results: ICalcGrid.Results): void;
750
- /** {@inheritDoc ISheet.calculate} */
924
+ /**
925
+ * The commits a pass targeting `target` answers for on this sheet, newest first, each with the
926
+ * cells it entered that the pass realized and no newer one of them re-entered.
927
+ *
928
+ * @remarks
929
+ * Walks back from the target to the first commit already resolved for this sheet: anything
930
+ * older was answered by that commit's pass. Bounded by {@link _MAX_PROMOTE_WALK}, since the walk
931
+ * runs on every pass.
932
+ *
933
+ * @internal
934
+ */
935
+ protected _enteredSince(target: ITransaction.ICommit, bounds: IRange.Coords): {
936
+ commit: ITransaction.ICommit;
937
+ entered: IRange.Coords[];
938
+ }[];
939
+ /** How far back a pass looks for entering commits it answers for. */
940
+ private static readonly _MAX_PROMOTE_WALK;
941
+ /** {@inheritDoc IWorksheet.calculate} */
751
942
  calculate(full?: boolean): Promise<ICalculation.Status>;
752
943
  /** @internal */
753
944
  protected _calculate(ranges: ICellRanges.Coords, options?: ICalculation.CalculateOptions): void;
@@ -766,21 +957,46 @@ export declare class Sheet implements ISheet {
766
957
  /** @internal */
767
958
  protected _getMerges(ranges: readonly IRange.Coords[], ignoreHidden?: boolean | IRange.Axis): IRange.Coords[];
768
959
  /** @internal */
769
- protected _clone(): ISheet;
960
+ protected _clone(): IWorksheet;
961
+ /**
962
+ * A read-only sheet as this sheet was at a commit, or `null` when the store no longer has the
963
+ * commit or the sheet did not exist at it.
964
+ *
965
+ * @remarks
966
+ * Built on demand and not kept: it copies no cells, only the state record and a grid pinned
967
+ * to the commit's record.
968
+ * @internal
969
+ */
970
+ _snapshotAt(commitId: string): IWorksheet | null;
971
+ /** The snapshot sheet `_clone` and `_snapshotAt` build, over a given state and grid. */
972
+ private _cloneOver;
770
973
  /** @internal */
771
974
  protected _getSnapshot(coordsFrom: readonly IRange.Coords[], optionsMark?: ICellRange.CopyOptions, getTransactionId?: () => string): ICellRange.ISnapshot;
772
975
  /**
773
976
  * Copy all items at a sheetRange.
774
977
  * @internal
775
978
  `*/
776
- protected _copyRange(sheetFrom: Sheet, sheetMark: Sheet, coordsFrom: readonly IRange.Coords[], sheetRangeTo: ICellRange, options: ICellRange.CopyOptions | undefined, toInfo: any): Promise<IRange.Coords>;
979
+ protected _copyRange(sheetFrom: Worksheet, sheetMark: Worksheet, coordsFrom: readonly IRange.Coords[], sheetRangeTo: ICellRange, options: ICellRange.CopyOptions | undefined, toInfo: any): IRange.Coords;
777
980
  /**
778
981
  * Returns `null` if invalid.
779
982
  * @internal
780
983
  */
781
984
  protected _snapShotFromSource(source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.CopyOptions): ICellRange.ISnapshot;
782
- /** @internal */
985
+ /**
986
+ * A paste: what the snapshot has to wait for is waited for first, outside any transaction
987
+ * ({@link ICellRange.ISnapshot.prepare}), and the paste itself then opens, writes and commits its
988
+ * transaction in one synchronous extent ({@link _copyFromNow}). With nothing to wait for, the
989
+ * whole paste runs in the caller's synchronous extent: a paste begun while another is suspended
990
+ * is never nested in it, and a read made right after sees the pasted cells.
991
+ * @internal
992
+ */
783
993
  protected _copyFrom(destination: IRange.Coords, source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.CopyOptions): Promise<IRange.Coords>;
994
+ /**
995
+ * The paste itself, once its snapshot has prepared: one transaction, opened, written and
996
+ * committed here.
997
+ * @internal
998
+ */
999
+ protected _copyFromNow(destination: IRange.Coords, snapshot: ICellRange.ISnapshot, options?: ICellRange.CopyOptions): IRange.Coords;
784
1000
  /**
785
1001
  * Where a {@link _copyFrom} lands, and whether the merges there let it - Excel's rules:
786
1002
  *
@@ -795,9 +1011,9 @@ export declare class Sheet implements ISheet {
795
1011
  * @internal
796
1012
  */
797
1013
  protected _resolveCopyDestination(destination: IRange.Coords, snapshot: ICellRange.ISnapshot, options: ICellRange.CopyOptions | undefined, isCut: boolean): IRange.Coords;
798
- /** {@inheritDoc ISheet.addAutoTable} */
1014
+ /** {@inheritDoc IWorksheet.addAutoTable} */
799
1015
  addAutoTable(address?: ICellRange.Address, options?: ICellRange.AddAutoTableOptions): ITable;
800
- /** {@inheritDoc ISheet.getAutoTable} */
1016
+ /** {@inheritDoc IWorksheet.getAutoTable} */
801
1017
  getAutoTable(): ITable | null;
802
1018
  /**
803
1019
  * The tables on this sheet that hold a filter condition: the AutoTable, then the tables. What
@@ -833,8 +1049,14 @@ export declare class Sheet implements ISheet {
833
1049
  * @internal
834
1050
  */
835
1051
  protected _canInsertFrom(ranges: readonly IRange.Coords[], source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.InsertFromOptions): boolean;
836
- /** @internal */
1052
+ /**
1053
+ * An insert-paste, in the two parts of a {@link _copyFrom}: the snapshot prepares outside any
1054
+ * transaction, then {@link _insertFromNow} inserts, pastes and commits in one synchronous extent.
1055
+ * @internal
1056
+ */
837
1057
  protected _insertFrom(ranges: readonly IRange.Coords[], source: ICellRange.Address | ICellRange.ISnapshot, options?: ICellRange.InsertFromOptions): Promise<IRange.Coords>;
1058
+ /** @internal */
1059
+ protected _insertFromNow(ranges: readonly IRange.Coords[], snapshot: ICellRange.ISnapshot, options?: ICellRange.InsertFromOptions): IRange.Coords;
838
1060
  /**
839
1061
  * Insert cells, shifting existing content down/right.
840
1062
  * @internal
@@ -857,16 +1079,35 @@ export declare class Sheet implements ISheet {
857
1079
  *
858
1080
  * @remarks
859
1081
  * Implementation lives in `_SheetAutoFitUtils` (same pattern as `_SheetSortUtils.doSort`).
1082
+ * A fit that measured a face still loading (answered with a stand-in) is kept and taken again
1083
+ * when the face lands; a fit that measured only loaded faces is final.
860
1084
  */
861
- protected _autoFit(ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions): void;
1085
+ protected _autoFit(ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions, holdWhileLoading?: boolean): void;
1086
+ /**
1087
+ * Runs the fits owed (see {@link _autoFit}): one held runs for the first time as it was asked;
1088
+ * one that ran against a stand-in runs again, leaving alone a custom size or a hidden row set
1089
+ * since (its first run already cleared what the caller asked to override).
1090
+ *
1091
+ * @returns `false` if none were owed.
1092
+ */
1093
+ private _runPendingFits;
862
1094
  /**
863
1095
  * The size a range's content needs, without writing it. See {@link ICellRange.getBestFit}.
864
1096
  *
865
1097
  * @internal
866
1098
  */
867
1099
  protected _getBestFit(range: IRange.Coords, options?: ICellRange.BestFitOptions): Size;
868
- /** @internal */
869
- protected _createRangeEvent(coords: (readonly IRange.FixableCoords[]) | IRange.FixableCoords, options: NotifierOptions, coordsFrom?: (readonly IRange.FixableCoords[]) | IRange.FixableCoords): ICellRange.Event;
1100
+ /**
1101
+ * The event one delivery hands a listener.
1102
+ *
1103
+ * @param coords Where the node is now; `null` when this snapshot does not hold it.
1104
+ * @param changed The cells a `'data'` change reached, for {@link ICellRange.Event.getRanges}.
1105
+ * @param previous Where the node was before an `'address'` move, for
1106
+ * {@link ICellRange.Event.getPreviousAddress}.
1107
+ *
1108
+ * @internal
1109
+ */
1110
+ protected _createRangeEvent(coords: readonly IRange.FixableCoords[] | null, options: RangeEventOptions, changed?: readonly IRange.FixableCoords[], previous?: readonly IRange.FixableCoords[] | null): ICellRange.Event<ICellRange | ICellRanges>;
870
1111
  /**
871
1112
  * Register a reference node for a range listener.
872
1113
  *
@@ -881,12 +1122,15 @@ export declare class Sheet implements ISheet {
881
1122
  *
882
1123
  * @internal
883
1124
  */
884
- protected _addListenerNode(ranges: readonly IRange.Coords[], listener: ICellRange.Listener, options?: ICellRange.ListenerOptions): IListener.Remove;
1125
+ protected _addListenerNode(ranges: readonly IRange.Coords[], listener: ICellRange.Listener<any>, options?: ICellRange.ListenerOptions, collection?: boolean): IListener.Remove;
885
1126
  /**
886
1127
  * {@link _addListenerNode}, also handing back the node, for a caller that reads its coords.
1128
+ *
1129
+ * @param collection The listener registered on an `ICellRanges`, and is handed one as its
1130
+ * source; otherwise it registered on one range and is handed a range.
887
1131
  * @internal
888
1132
  */
889
- protected _registerListenerNode(ranges: readonly IRange.Coords[], listener: ICellRange.Listener, options?: ICellRange.ListenerOptions, createNode?: (options: ListenerAnchor.ConstructorOptions) => ListenerAnchor): {
1133
+ protected _registerListenerNode(ranges: readonly IRange.Coords[], listener: ICellRange.Listener<any>, options?: ICellRange.ListenerOptions, createNode?: (options: ListenerAnchor.ConstructorOptions) => ListenerAnchor, collection?: boolean): {
890
1134
  node: ListenerAnchor;
891
1135
  remove: IListener.Remove;
892
1136
  };
@@ -914,9 +1158,11 @@ export declare class Sheet implements ISheet {
914
1158
  * @param origin Where `formula` is authored when it is not `coords`' own top-left: the shared
915
1159
  * origin of a multi-area watch, from which the body is filled to `coords`.
916
1160
  * @param options `arrayFirstCell`: every cell of the body is its own 1x1 array-entered formula.
1161
+ * `paged`: the body's blank region is evaluated where its owner asks (see
1162
+ * {@link WatchAnchor.Options.paged}).
917
1163
  * @internal
918
1164
  */
919
- protected _addWatch(coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: ICellRange.WatchOptions): IListener.Remove;
1165
+ protected _addWatch(coords: IRange.Coords, formula: ICalculation.IFormula | string, handlers: WatchAnchor.Handlers, origin?: IRange.CellCoords, options?: WatchAnchor.Options): IListener.Remove;
920
1166
  /**
921
1167
  * The one amend that creates a watch: its node, its grid and its body.
922
1168
  *
@@ -926,7 +1172,7 @@ export declare class Sheet implements ISheet {
926
1172
  * node in the versioned map, the entry that holds its callbacks, and the removal.
927
1173
  * @internal
928
1174
  */
929
- protected _registerWatch(coords: IRange.Coords, expression: string, authoredAt: IRange.CellCoords, handlers: WatchAnchor.Handlers, arrayFirstCell: boolean): IListener.Remove;
1175
+ protected _registerWatch(coords: IRange.Coords, expression: string, authoredAt: IRange.CellCoords, handlers: WatchAnchor.Handlers, arrayFirstCell: boolean, paged: boolean): IListener.Remove;
930
1176
  /**
931
1177
  * A watch's body is a grid the engine holds once, for every snapshot, so a watch is made and
932
1178
  * removed against the commit the store is at. Inside an amend of any other commit its node and
@@ -992,6 +1238,17 @@ export declare class Sheet implements ISheet {
992
1238
  * @internal
993
1239
  */
994
1240
  protected _removeListenerNode(node: ListenerAnchor): void;
1241
+ /**
1242
+ * Tell the participants bound to `batch` of each of its steps, from the step's own intents.
1243
+ *
1244
+ * @remarks
1245
+ * Told inline, as the step commits and before the operation that made it returns, so what a
1246
+ * participant writes is the batch's next step. Moves first, as at the root's end.
1247
+ *
1248
+ * @internal
1249
+ */
1250
+ protected _hearBatchSteps(batch: BatchHandle): void;
1251
+ protected _batchesHeard: WeakSet<BatchHandle> | null;
995
1252
  /**
996
1253
  * Deliver to every node whose reference intersects what changed.
997
1254
  *
@@ -1005,7 +1262,7 @@ export declare class Sheet implements ISheet {
1005
1262
  *
1006
1263
  * @internal
1007
1264
  */
1008
- protected _notifyListenerNodes(state: State, ranges: readonly IRange.Coords[] | null, notificationOptions: NotifierOptions, transactional: boolean, renamed?: boolean): void;
1265
+ protected _notifyListenerNodes(state: State, ranges: readonly IRange.Coords[] | null, notificationOptions: NotifierOptions, transactional: boolean, renamed?: boolean, includes?: ((entry: ListenerNodeEntry) => boolean) | null): void;
1009
1266
  /**
1010
1267
  * Deliver to every live node whose reference is no longer where it was.
1011
1268
  *
@@ -1023,20 +1280,43 @@ export declare class Sheet implements ISheet {
1023
1280
  *
1024
1281
  * @internal
1025
1282
  */
1026
- protected _notifyListenerNodeMoves(state: State, transactional: boolean, notificationOptions: NotifierOptions | null): void;
1283
+ protected _notifyListenerNodeMoves(state: State, transactional: boolean, notificationOptions: NotifierOptions | null, includes?: ((entry: ListenerNodeEntry) => boolean) | null): void;
1027
1284
  /**
1028
1285
  * One delivery, after the option filters.
1029
1286
  *
1030
1287
  * @internal
1031
1288
  */
1032
- protected _deliverToNode(entry: ListenerNodeEntry, trigger: 'data' | 'address' | 'restore', notificationOptions: NotifierOptions, from?: readonly IRange.Coords[]): void;
1289
+ protected _deliverToNode(entry: ListenerNodeEntry, trigger: ICellRange.Event.Trigger, notificationOptions: NotifierOptions, changed?: readonly IRange.Coords[], previous?: readonly IRange.Coords[] | null): void;
1033
1290
  /** @internal */
1034
1291
  protected _notifyUsedRangeChange(): void;
1035
1292
  /** @internal */
1036
- protected _notify(key: keyof ISheet.IListeners): void | Promise<any>;
1293
+ protected _notify(key: keyof IWorksheet.IListeners): void | Promise<any>;
1294
+ /**
1295
+ * Fires one of the events that carry a {@link IWorksheet.ChangeEvent}.
1296
+ *
1297
+ * @param coords What changed, or `null` for the whole sheet.
1298
+ * @param details What wrote it; a `null` commit for a change not written.
1299
+ * @internal
1300
+ */
1301
+ protected _notifyChange(key: IWorksheet.ChangeEventKey, coords: readonly IRange.Coords[] | null, details: SheetChangeDetails): void;
1302
+ /**
1303
+ * The change events a commit announces on this sheet, in the order they fire: what the commit
1304
+ * path delivers and {@link IWorkbook.getChanges} reads back.
1305
+ * @internal
1306
+ */
1307
+ protected _commitChanges(scoped: SheetEvents | null, details: SheetChangeDetails): {
1308
+ key: IWorksheet.ChangeEventKey;
1309
+ coords: IRange.Coords[];
1310
+ details: SheetChangeDetails;
1311
+ }[];
1312
+ /**
1313
+ * What a commit wrote on this sheet, as {@link IWorkbook.getChanges} reports it.
1314
+ * @internal
1315
+ */
1316
+ _changeEventsOf(commit: ITransaction.ICommit, previous: ITransaction.ICommit | null): IWorksheet.ChangeEvent[];
1037
1317
  /**
1038
1318
  * Every collection change fires its fine-grained event PLUS the coarse class event it belongs
1039
- * to (see `ISheet.Events.onStyleChange` / `onProtectionChange`), so renderers subscribe to the
1319
+ * to (see `IWorksheet.Events.onStyleChange` / `onProtectionChange`), so renderers subscribe to the
1040
1320
  * class alone. These helpers are the single place that pairing lives — fire sites must use them
1041
1321
  * rather than `_notify` directly so a collection can never drift out of its class.
1042
1322
  * @internal
@@ -1049,6 +1329,8 @@ export declare class Sheet implements ISheet {
1049
1329
  /** {@inheritDoc Sheet._notifyConditionalFormatsChange} @internal */
1050
1330
  protected _notifyProtectedRangesChange(): void;
1051
1331
  /** {@inheritDoc Sheet._notifyConditionalFormatsChange} @internal */
1332
+ protected _notifyCellControlsChange(): void;
1333
+ /** {@inheritDoc Sheet._notifyConditionalFormatsChange} @internal */
1052
1334
  protected _notifyCommentsChange(): void;
1053
1335
  /**
1054
1336
  * Presents one of the sheet's own events as a collection's `onCollectionChange`, and the
@@ -1059,9 +1341,9 @@ export declare class Sheet implements ISheet {
1059
1341
  * it. Forwarding, rather than a second emitter, is what keeps the two from drifting apart.
1060
1342
  * @internal
1061
1343
  */
1062
- protected _forwardCollectionListeners(key: 'onTablesChange' | 'onConditionalFormatsChange' | 'onDataValidationsChange' | 'onProtectedRangesChange' | 'onCommentsChange', collection: () => ICollection<any>): (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove;
1063
- /** {@inheritDoc ISheet.addListeners} */
1064
- addListeners(listeners: ISheet.IListeners, options?: IListener.Options): IListener.Remove;
1344
+ protected _forwardCollectionListeners(key: 'onTablesChange' | 'onConditionalFormatsChange' | 'onDataValidationsChange' | 'onProtectedRangesChange' | 'onCellControlsChange' | 'onCommentsChange', collection: () => ICollection<any>): (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove;
1345
+ /** {@inheritDoc IWorksheet.addListeners} */
1346
+ addListeners(listeners: IWorksheet.IListeners, options?: IListener.Options): IListener.Remove;
1065
1347
  /** @internal */
1066
1348
  protected _getUsedCoords(options?: ICellRange.GetRangeOptions): IRange.Coords | null;
1067
1349
  /** @internal */
@@ -1079,7 +1361,7 @@ export declare class Sheet implements ISheet {
1079
1361
  *
1080
1362
  * Every public feature is counted INDEPENDENTLY (no refinement — a refined count is
1081
1363
  * `getRegions`), and the result carries the full `ICellRange.Feature` key set with explicit
1082
- * zeros. Every feature reads off its own state map now — `DateFormat` off `dateFormatSpatial`,
1364
+ * zeros, except `anomalies`, which is keyed only when requested. Every feature reads off its own state map now — `DateFormat` off `dateFormatSpatial`,
1083
1365
  * `Error` off the reconciled error spatial (cached per state version) — grouped by backing map
1084
1366
  * so shared backings (the three content-style projections) iterate once. There is no value-scan
1085
1367
  * branch left: that used to exist for the scalar kinds (`String`/`Number`/`Boolean`, and the old
@@ -1153,13 +1435,21 @@ export declare class Sheet implements ISheet {
1153
1435
  * @internal
1154
1436
  */
1155
1437
  protected _featureRegions(bounds: IRange.Coords, requested: readonly ICellRange.Feature[], options?: ICellRange.GetRegionsOptions): IRange.Coords[];
1156
- /** {@inheritDoc ISheet.find} */
1438
+ /** {@inheritDoc IWorksheet.find} */
1157
1439
  find(options?: string | ICellRange.FindOptions): Iterator<ICell>;
1158
- /** {@inheritDoc ISheet.setEntireSize} */
1159
- setEntireSize(size?: Partial<Size> | null, options?: ITransaction.OperationOptions): this;
1440
+ /** {@inheritDoc IWorksheet.setEntireSize} */
1441
+ setEntireSize(size?: Partial<IWorksheet.EntireSize> | null, options?: ITransaction.OperationOptions): this;
1442
+ private _getEntireSize;
1443
+ /** The size that ends where the sheet's content does. */
1444
+ private _getFittedSize;
1445
+ /**
1446
+ * Moves the sheet's end to `size`, within the caller's transaction. The cells it adds or removes
1447
+ * are inserted and deleted at the end, so ranges that reach the end follow it.
1448
+ */
1449
+ private _resizeEntire;
1160
1450
  /** @internal */
1161
1451
  protected _find(ranges: readonly IRange.Coords[], options: string | ICellRange.FindOptions): Iterator<ICell>;
1162
- /** {@inheritDoc ISheet.getRuntime} */
1452
+ /** {@inheritDoc IWorksheet.getRuntime} */
1163
1453
  getRuntime(): IRuntime;
1164
1454
  /**
1165
1455
  * The region a bare-cursor traverse from `cell` wraps within, or `null` for a plain move. A table
@@ -1173,7 +1463,7 @@ export declare class Sheet implements ISheet {
1173
1463
  protected _extendRange(direction: IRange.Direction, cell: IRange.CellCoords): Readonly<IRange.Coords>;
1174
1464
  /** @internal */
1175
1465
  protected _defaultFontDims(): Readonly<Size>;
1176
- /** {@inheritDoc ISheet.getColumnWidthAsFontUnit} */
1466
+ /** {@inheritDoc IWorksheet.getColumnWidthAsFontUnit} */
1177
1467
  getColumnWidthAsFontUnit(pixelWidth: number): number;
1178
1468
  protected _createTupleBuilder<T>(transpose?: boolean): Tuple.IBuilder<T>;
1179
1469
  /**
@@ -1186,14 +1476,14 @@ export declare class Sheet implements ISheet {
1186
1476
  * @internal
1187
1477
  */
1188
1478
  protected _defaultRowHeight(): number;
1189
- /** {@inheritDoc ISheet.getProtection} */
1190
- getProtection(): ISheetProtection;
1479
+ /** {@inheritDoc IWorksheet.getProtection} */
1480
+ getProtection(): IWorksheetProtection;
1191
1481
  /** @internal */
1192
1482
  protected _scrollIntoView(coords: IRange.Coords, scrollIntoView?: boolean | ICellRange.ScrollIntoViewOptions): Promise<boolean>;
1193
1483
  /** @internal */
1194
1484
  protected _selectSheet(coords: IRange.Coords, scrollIntoView?: boolean | ICellRange.ScrollIntoViewOptions): Promise<boolean>;
1195
- /** {@inheritDoc ISheet.scrollTo} */
1196
- scrollTo(coords: Partial<IRange.Coords>, options?: ISheet.ScrollToOptions): Promise<boolean>;
1485
+ /** {@inheritDoc IWorksheet.scrollTo} */
1486
+ scrollTo(coords: Partial<IRange.Coords>, options?: IWorksheet.ScrollToOptions): Promise<boolean>;
1197
1487
  /** @internal */
1198
1488
  protected _resolveSelectOptions(selectOptions: boolean | ICellRange.SelectOptions, axis?: IRange.Axis): ICellRange.SelectOptions | null;
1199
1489
  /**
@@ -1233,7 +1523,7 @@ export declare class Sheet implements ISheet {
1233
1523
  *
1234
1524
  * @remarks
1235
1525
  * A sheet can be shown through more than one view, and a view instance is replaced on load and
1236
- * by {@link setView}, so the match is on {@link ISheetView.getId}.
1526
+ * by {@link setView}, so the match is on {@link IWorksheetView.getId}.
1237
1527
  *
1238
1528
  * @internal
1239
1529
  */
@@ -1258,7 +1548,23 @@ export declare class Sheet implements ISheet {
1258
1548
  *
1259
1549
  * @internal
1260
1550
  */
1261
- protected _recordChange(trans: ITransaction, category: EventCategory, ranges: readonly IRange.Coords[] | null | undefined): void;
1551
+ protected _recordChange(trans: ITransaction, category: EventCategory, ranges: readonly IRange.Coords[] | null | undefined, shifts?: readonly ShiftIntent[]): void;
1552
+ /** Whether a participant hears this sheet's change events, so its writes are made as they come. */
1553
+ protected _hasChangeParticipants(): boolean;
1554
+ /**
1555
+ * Announce a write as it is made, under the event its category belongs to.
1556
+ *
1557
+ * @remarks
1558
+ * Announced inside the operation, so a participant hears each write inline and what it writes
1559
+ * joins the operation, while an observer is told once the operation lands, every write of it
1560
+ * merged into one event (`SheetChangeEvent.merge`). An undo or a redo has no writes to announce
1561
+ * from, and announces what the commit recorded instead (`onAfterStateChange`).
1562
+ *
1563
+ * A load announces nothing ({@link IntentInitial}).
1564
+ *
1565
+ * @internal
1566
+ */
1567
+ protected _announceChange(trans: ITransaction, category: EventCategory, ranges: readonly IRange.Coords[], shifts?: readonly ShiftIntent[]): void;
1262
1568
  /**
1263
1569
  * Record the ranges a formula was entered over.
1264
1570
  *
@@ -1315,6 +1621,26 @@ export declare class Sheet implements ISheet {
1315
1621
  * @internal
1316
1622
  */
1317
1623
  protected _recordSkipProtectionCheck(trans: ITransaction): void;
1624
+ /**
1625
+ * Whether the open operation has ruled on this sheet's protection. See
1626
+ * {@link _recordSkipProtectionCheck}.
1627
+ *
1628
+ * @internal
1629
+ */
1630
+ protected _isProtectionRuled(): boolean;
1631
+ /**
1632
+ * Refuse a content write on a locked sheet unless every cell of `ranges` is editable, by
1633
+ * {@link ICell.isEditAllowed}'s rule: an always-unlocked style, or a covering protected range that
1634
+ * is unlocked (a password-gated one only after `unlock`). Answered per stored block over the
1635
+ * blocks {@link ICellRange.getRegions | getRegions(Unlock)} walks, never per cell.
1636
+ *
1637
+ * @param viaRanges Whether an unlocked protected range makes a cell editable. A cut asks for the
1638
+ * cell's own style alone, as Excel does.
1639
+ * @returns Whether the sheet is locked. A locked sheet's caller then writes content only (no
1640
+ * formats) and stands the commit-time catch-all down, since this has ruled.
1641
+ * @internal
1642
+ */
1643
+ protected _assertContentEditable(ranges: readonly IRange.Coords[], viaRanges?: boolean): boolean;
1318
1644
  /**
1319
1645
  * Record that this commit is a load of the sheet: not a user's write, so the protection check
1320
1646
  * stands down, and not an edit, so nothing it wrote is announced. See {@link IntentInitial}.
@@ -1329,6 +1655,19 @@ export declare class Sheet implements ISheet {
1329
1655
  * @internal
1330
1656
  */
1331
1657
  protected _recordFreezePanes(trans: ITransaction, before: IRange.CellCoords, after: IRange.CellCoords): void;
1658
+ /**
1659
+ * Record an insert or delete of cells. See {@link ShiftsIntent}.
1660
+ *
1661
+ * @internal
1662
+ */
1663
+ protected _recordShift(trans: ITransaction, kind: IWorksheet.ShiftKind, axis: IRange.Axis, ranges: readonly IRange.Coords[]): void;
1664
+ /**
1665
+ * This sheet's inserts and deletes in a commit, as a change event reports them: for an undo,
1666
+ * the inverse of each, last first.
1667
+ *
1668
+ * @internal
1669
+ */
1670
+ protected _sheetShifts(intents: Readonly<Record<string, any>> | undefined, isUndo: boolean): readonly ShiftIntent[];
1332
1671
  /**
1333
1672
  * The movables of this sheet with the given ids, in that order. Ids no longer on the sheet are
1334
1673
  * skipped: an undo of the insert that created a movable lands on a state without it.
@@ -1379,40 +1718,64 @@ export declare class Sheet implements ISheet {
1379
1718
  * @internal
1380
1719
  */
1381
1720
  protected _normalizeSelection(isMergesChanged: boolean): void;
1721
+ /** The selection pulled inside the sheet's end, or itself when it already is. */
1722
+ protected _selectionWithinEntire(coords: IRangeSelection.Coords, entire?: IRange.Coords): IRangeSelection.Coords;
1382
1723
  /** @internal */
1383
1724
  protected _autoSelect(options?: boolean | ICellRange.SelectOptions, selectionOverride?: Partial<IRangeSelection.Coords> | null, axis?: IRange.Axis): Promise<IRange.Coords[]>;
1384
- /** {@inheritDoc ISheet.getSelection} */
1725
+ /** {@inheritDoc IWorksheet.getSelection} */
1385
1726
  getSelection(): IRangeSelection;
1386
- /** {@inheritDoc ISheet.getSelectedCell} */
1727
+ /** {@inheritDoc IWorksheet.getSelectedCell} */
1387
1728
  getSelectedCell(): ICell;
1388
- /** {@inheritDoc ISheet.getSelectedRange} */
1729
+ /** {@inheritDoc IWorksheet.getSelectedRange} */
1389
1730
  getSelectedRange(options?: ICellRange.GetRangeOptions): ICellRange;
1390
- /** {@inheritDoc ISheet.getSelectedRanges} */
1731
+ /** {@inheritDoc IWorksheet.getSelectedRanges} */
1391
1732
  getSelectedRanges(options?: ICellRange.GetRangeOptions): ICellRanges;
1392
- /** {@inheritDoc ISheet.getView} */
1393
- getView(): ISheetView;
1394
- /** {@inheritDoc ISheet.setView} */
1395
- setView(view: ISheetView): this;
1396
- /** {@inheritDoc ISheet.getTabColor} */
1733
+ /** {@inheritDoc IWorksheet.getView} */
1734
+ getView(): IWorksheetView;
1735
+ /** {@inheritDoc IWorksheet.setView} */
1736
+ setView(view: IWorksheetView): this;
1737
+ /** {@inheritDoc IWorksheet.getTabColor} */
1397
1738
  getTabColor(): IColor;
1398
- /** {@inheritDoc ISheet.setTabColor} */
1739
+ /** {@inheritDoc IWorksheet.setTabColor} */
1399
1740
  setTabColor(color: IColor | string | null): this;
1400
- /** {@inheritDoc ISheet.getCodeName} */
1741
+ /** {@inheritDoc IWorksheet.getCodeName} */
1401
1742
  getCodeName(): string | null;
1402
- /** {@inheritDoc ISheet.getOutline} */
1743
+ /** {@inheritDoc IWorksheet.getOutline} */
1403
1744
  getOutline(): IOutline;
1404
- /** {@inheritDoc ISheet.isConditionalFormatCalculationEnabled} */
1745
+ /** {@inheritDoc IWorksheet.getPageLayout} */
1746
+ getPageLayout(): IPageLayout;
1747
+ /** {@inheritDoc IWorksheet.getHorizontalPageBreaks} */
1748
+ getHorizontalPageBreaks(): IPageLayout.IPageBreak[];
1749
+ /** {@inheritDoc IWorksheet.getVerticalPageBreaks} */
1750
+ getVerticalPageBreaks(): IPageLayout.IPageBreak[];
1751
+ /** {@inheritDoc IWorksheet.addHorizontalPageBreak} */
1752
+ addHorizontalPageBreak(pageBreakRange: ICellRange.Address, options?: ITransaction.OperationOptions): IPageLayout.IPageBreak;
1753
+ /** {@inheritDoc IWorksheet.addVerticalPageBreak} */
1754
+ addVerticalPageBreak(pageBreakRange: ICellRange.Address, options?: ITransaction.OperationOptions): IPageLayout.IPageBreak;
1755
+ /** {@inheritDoc IWorksheet.removeAllHorizontalPageBreaks} */
1756
+ removeAllHorizontalPageBreaks(options?: ITransaction.OperationOptions): void;
1757
+ /** {@inheritDoc IWorksheet.removeAllVerticalPageBreaks} */
1758
+ removeAllVerticalPageBreaks(options?: ITransaction.OperationOptions): void;
1759
+ /** {@inheritDoc IWorksheet.isConditionalFormatCalculationEnabled} */
1405
1760
  isConditionalFormatCalculationEnabled(): boolean;
1761
+ /** {@inheritDoc IWorksheet.isTransitionFormulaEvaluation} */
1762
+ isTransitionFormulaEvaluation(): boolean;
1763
+ /** {@inheritDoc IWorksheet.isTransitionFormulaEntry} */
1764
+ isTransitionFormulaEntry(): boolean;
1765
+ /** {@inheritDoc IWorksheet.isExcludedFromPublishing} */
1766
+ isExcludedFromPublishing(): boolean;
1767
+ /** {@inheritDoc IWorksheet.getSyncScroll} */
1768
+ getSyncScroll(): IWorksheet.SyncScroll | null;
1406
1769
  /**
1407
1770
  * A sheet's scripts are workbook structure, like the workbook's own.
1408
1771
  * @internal
1409
1772
  */
1410
1773
  protected _isModulesReadOnly(): boolean;
1411
- /** {@inheritDoc ISheet.getModules} */
1774
+ /** {@inheritDoc IWorksheet.getModules} */
1412
1775
  getModules(): IModuleCollection;
1413
- /** {@inheritDoc ISheet.getRowHeaders} */
1776
+ /** {@inheritDoc IWorksheet.getRowHeaders} */
1414
1777
  getRowHeaders(): ISheetHeader;
1415
- /** {@inheritDoc ISheet.getColumnHeaders} */
1778
+ /** {@inheritDoc IWorksheet.getColumnHeaders} */
1416
1779
  getColumnHeaders(): ISheetHeader;
1417
1780
  /**
1418
1781
  * The sheet's grid, whatever the calculation hands back (DESIGN-CALC-SERVICE §5): opened from
@@ -1423,15 +1786,15 @@ export declare class Sheet implements ISheet {
1423
1786
  * the state as it is now.
1424
1787
  */
1425
1788
  protected _openCalcGrid(json: ICalcGrid.JSON | undefined): ICalcGrid;
1426
- /** {@inheritDoc ISheet.toJSON} */
1427
- toJSON(options?: ISheet.ToJSONOptions): Promise<ISheet.JSON>;
1428
- /** {@inheritDoc ISheet.getStyles} */
1789
+ /** {@inheritDoc IWorksheet.toJSON} */
1790
+ toJSON(options?: IWorksheet.ToJSONOptions): Promise<IWorksheet.JSON>;
1791
+ /** {@inheritDoc IWorksheet.getStyles} */
1429
1792
  getStyles(): IStyleCollection;
1430
- /** {@inheritDoc ISheet.getResources} */
1793
+ /** {@inheritDoc IWorksheet.getResources} */
1431
1794
  getResources(): IResourceCollection;
1432
- /** {@inheritDoc ISheet.getTransactions} */
1795
+ /** {@inheritDoc IWorksheet.getTransactions} */
1433
1796
  getTransactions(): ITransaction.IStore;
1434
- /** {@inheritDoc ISheet.getStrings} */
1797
+ /** {@inheritDoc IWorksheet.getStrings} */
1435
1798
  getStrings(): IStringCollection;
1436
1799
  /**
1437
1800
  * The sheet's movables: those placed on it, then the boxes of its notes.
@@ -1442,7 +1805,7 @@ export declare class Sheet implements ISheet {
1442
1805
  * Places a note's box among the sheet's movables. See {@link Comment.Boxes.add}.
1443
1806
  * @internal
1444
1807
  */
1445
- protected _addNoteBox(comment: Comment, anchor: IMovable.AnchorOffset | null, hidden: boolean): NoteMovable;
1808
+ protected _addNoteBox(comment: Comment, placement: Comment.BoxPlacement | null, hidden: boolean): NoteMovable;
1446
1809
  /**
1447
1810
  * A movable, or something in it, was placed anew as part of the open operation: every connector
1448
1811
  * glued to it follows in the same operation (`translated` when it only moved). A target whose
@@ -1461,6 +1824,8 @@ export declare class Sheet implements ISheet {
1461
1824
  * The cell geometry a note's box is placed with.
1462
1825
  * @internal
1463
1826
  */
1827
+ /** The merge a cell is in, from the merges themselves: a sheet still loading has no cells to ask. */
1828
+ protected _mergeAt(cell: IRange.CellCoords): IRange.Coords | null;
1464
1829
  protected _noteLayout(): NoteLayout;
1465
1830
  /** The farthest any movable of the index paints past its anchor, for each `drawn` version. */
1466
1831
  private _movableOverhangs;
@@ -1489,6 +1854,15 @@ export declare class Sheet implements ISheet {
1489
1854
  protected _updateSelectedMovables(update: (movable: IMovable) => void, description?: string): void;
1490
1855
  /** @internal */
1491
1856
  protected _addMovable(options?: IMovableCollection.AddOptions): Promise<IMovable>;
1857
+ /**
1858
+ * Everything an add waits for, before the insert opens its transaction.
1859
+ *
1860
+ * A kind registered with a loader is loaded first, so the movable is made with its real content,
1861
+ * a group's members included. A load that fails leaves the stand-in, as it does on a read. A
1862
+ * position the caller left open is settled here too ({@link _placeMovable}).
1863
+ * @internal
1864
+ */
1865
+ protected _prepareMovable(options?: IMovableCollection.AddOptions): Promise<InsertableCollection.InsertOptions>;
1492
1866
  /**
1493
1867
  * Where a new movable of a known size goes when the caller left its position open: the visible
1494
1868
  * window's center for `autoPlace: 'viewport'`, else the selection's top-left; then, on the axes the
@@ -1517,29 +1891,35 @@ export declare class Sheet implements ISheet {
1517
1891
  * @internal
1518
1892
  */
1519
1893
  protected _groupMovables(movables: readonly IMovable[], options?: IMovableCollection.GroupOptions): Promise<IMovable>;
1520
- /** @internal */
1521
- protected _addMovablePicture(picture: string | IResourceCollection.AddOptions | IResource, options?: IMovableCollection.AddOptions): Promise<IMovable>;
1522
- /** {@inheritDoc ISheet.setPicture} */
1894
+ /**
1895
+ * Everything an added picture waits for, before the insert opens its transaction: the image
1896
+ * decoded for its size, then what {@link _prepareMovable} waits for.
1897
+ * @internal
1898
+ */
1899
+ protected _preparePicture(picture: string | IResourceCollection.AddOptions | IResource, options?: IMovableCollection.AddOptions): Promise<InsertableCollection.InsertOptions>;
1900
+ /** {@inheritDoc IWorksheet.setPicture} */
1523
1901
  setPicture(picture: string | IResource | IResourceCollection.AddOptions | null, options?: ITransaction.OperationOptions): this;
1524
- /** {@inheritDoc ISheet.getPicture} */
1902
+ /** {@inheritDoc IWorksheet.getPicture} */
1525
1903
  getPicture(): IPicture | null;
1526
- /** {@inheritDoc ISheet.getPivotTables} */
1904
+ /** {@inheritDoc IWorksheet.getPivotTables} */
1527
1905
  getPivotTables(): IPivotTableCollection;
1528
- /** {@inheritDoc ISheet.getTables} */
1906
+ /** {@inheritDoc IWorksheet.getTables} */
1529
1907
  getTables(): ITableCollection;
1530
- /** {@inheritDoc ISheet.getDataValidations} */
1908
+ /** {@inheritDoc IWorksheet.getDataValidations} */
1531
1909
  getDataValidations(): IDataValidationCollection;
1532
- /** {@inheritDoc ISheet.getConditionalFormats} */
1910
+ /** {@inheritDoc IWorksheet.getConditionalFormats} */
1533
1911
  getConditionalFormats(): IConditionalFormatCollection;
1534
- /** {@inheritDoc ISheet.getProtectedRanges} */
1912
+ /** {@inheritDoc IWorksheet.getProtectedRanges} */
1535
1913
  getProtectedRanges(): IProtectedRangeCollection;
1536
- /** {@inheritDoc ISheet.getComments} */
1914
+ /** {@inheritDoc IWorksheet.getCellControls} */
1915
+ getCellControls(): ICellControlCollection;
1916
+ /** {@inheritDoc IWorksheet.getComments} */
1537
1917
  getComments(): ICommentCollection;
1538
- /** @deprecated Use {@link ISheet.getConditionalFormats} */
1918
+ /** @deprecated Use {@link IWorksheet.getConditionalFormats} */
1539
1919
  getConditionals(): IConditionalFormatCollection;
1540
- /** {@inheritDoc ISheet.getMovables} */
1920
+ /** {@inheritDoc IWorksheet.getMovables} */
1541
1921
  getMovables(): IMovableCollection;
1542
- /** {@inheritDoc ISheet.getCharts} */
1922
+ /** {@inheritDoc IWorksheet.getCharts} */
1543
1923
  getCharts(): IChartCollection;
1544
1924
  /** @internal */
1545
1925
  protected _validateOrRemoveOverlaps(rangeCoords: IRange.Coords, type: string, table?: ITable | null, removeIfContains?: boolean, absorbAutoTable?: boolean): void;
@@ -1574,12 +1954,12 @@ export declare class Sheet implements ISheet {
1574
1954
  toJSON(): J | null;
1575
1955
  }, J extends object>(add: ICellRanges.Address | T | null | undefined, options: (IAnchored.AddOptions & J) | undefined, spec: {
1576
1956
  /** The sheet-state slot the collection lives in. */
1577
- key: 'conditionalFormats' | 'dataValidations' | 'protectedRanges' | 'comments';
1957
+ key: 'conditionalFormats' | 'dataValidations' | 'protectedRanges' | 'cellControls' | 'comments';
1578
1958
  /**
1579
1959
  * The sheet-protection allowances the add needs. Empty when no option allows it, so the add is
1580
1960
  * refused whenever the sheet is locked.
1581
1961
  */
1582
- allowance: ISheetProtection.PropertyKeys[];
1962
+ allowance: IWorksheetProtection.PropertyKeys[];
1583
1963
  isItem: (add: unknown) => add is T;
1584
1964
  description: string;
1585
1965
  /** Loads one ref into the map, handing the created model to `capture`. */
@@ -1614,19 +1994,36 @@ export declare class Sheet implements ISheet {
1614
1994
  * @internal
1615
1995
  */
1616
1996
  protected _addProtectedRange(add: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions): IProtectedRange;
1997
+ /**
1998
+ * @internal
1999
+ */
2000
+ protected _addCellControl(address: ICellRanges.Address, control: ICellControl.JSON, options?: ITransaction.OperationOptions): ICellControl;
2001
+ /**
2002
+ * Makes `control` the control of every cell of `address`, or removes the cells' controls when
2003
+ * it is `null`. The write behind `ICellRange.setControl` and `ICellControlCollection.add`.
2004
+ *
2005
+ * @returns The control placed, or `null` for a removal.
2006
+ *
2007
+ * @remarks
2008
+ * A cell has at most one control, so the cells leave whatever control they had. They join a
2009
+ * control of the same definition when the sheet already has one, so repeated writes do not mint
2010
+ * a control each.
2011
+ * @internal
2012
+ */
2013
+ protected _setCellControl(address: ICellRanges.Address, control: ICellControl.JSON | null, options?: ITransaction.OperationOptions): ICellControl | null;
1617
2014
  /**
1618
2015
  * @internal
1619
2016
  */
1620
2017
  protected _addComment(address: ICellRange.Address, content: IComment.Content, options?: ICommentCollection.AddOptions): IComment;
1621
- /** {@inheritDoc ISheet.createCell} */
2018
+ /** {@inheritDoc IWorksheet.createCell} */
1622
2019
  createCell(update: ICell.Update, coords?: IRange.CellCoords | null, options?: ICell.CreateCellOptions): ICell;
1623
2020
  /** @internal */
1624
2021
  protected _getBoundsAtCoords(coords: IRange.Coords): Bounds;
1625
2022
  /** @internal */
1626
2023
  protected _getCoordsAtBounds(bounds: Bounds): IRange.Coords;
1627
- /** {@inheritDoc ISheet.getRangeAtBounds} */
2024
+ /** {@inheritDoc IWorksheet.getRangeAtBounds} */
1628
2025
  getRangeAtBounds(bounds: Bounds, options?: ICellRange.GetRangeOptions): ICellRange;
1629
- /** {@inheritDoc ISheet.getRangeAtBounds} */
2026
+ /** {@inheritDoc IWorksheet.getRangeAtBounds} */
1630
2027
  getRangeAt(rowStart: number, colStart: number, rowEnd?: number, colEnd?: number, options?: ICellRange.GetRangeOptions): ICellRange;
1631
2028
  /** @internal */
1632
2029
  protected _getVisible(coords: readonly IRange.Coords[], options?: ICellRange.GetVisibleOptions): readonly IRange.Coords[];
@@ -1645,15 +2042,15 @@ export declare class Sheet implements ISheet {
1645
2042
  protected _getRangedEntries<T, E = T>(spatial: ISpatialQuery, ranges: readonly IRange.Coords[], options?: GetTypedRangeOptions<T, E>, spatialSort?: boolean): T[];
1646
2043
  /** @internal */
1647
2044
  protected _processAnchorShift<T extends Anchored.Entry<any>>(options: ISpatialMap.ShiftDetails<T>): ISpatialMap.Entry<T> | null;
1648
- /** {@inheritDoc ISheet.delete} */
2045
+ /** {@inheritDoc IWorksheet.delete} */
1649
2046
  delete(): void;
1650
- /** {@inheritDoc ITransaction.ITransactional.doBatch} */
1651
- doBatch<R>(callback: (commit: ITransaction.ICommit) => Promise<R> | R, options?: string | ITransaction.OperationOptions): Promise<R> | R;
1652
- /** {@inheritDoc ISheet.isDeleted} */
2047
+ /** {@inheritDoc IWorksheet.doBatch} */
2048
+ doBatch<R>(callback: (commit: ITransaction.ICommit, sheet: this) => Promise<R> | R, options?: string | ITransaction.OperationOptions): Promise<R> | R;
2049
+ /** {@inheritDoc IWorksheet.isDeleted} */
1653
2050
  isDeleted(): boolean;
1654
- /** {@inheritDoc ISheet.isClosed} */
2051
+ /** {@inheritDoc IWorksheet.isClosed} */
1655
2052
  isClosed(): boolean;
1656
- /** {@inheritDoc ISheet.close} */
2053
+ /** {@inheritDoc IWorksheet.close} */
1657
2054
  close(): void;
1658
2055
  /** {@inheritDoc ITransaction.ITransactional.beginCommit} */
1659
2056
  beginCommit(options?: string | ITransaction.OperationOptions): ITransaction;
@@ -1740,18 +2137,26 @@ export declare class Sheet implements ISheet {
1740
2137
  *
1741
2138
  * @internal
1742
2139
  */
1743
- protected _invalidateRendering(): void;
2140
+ /**
2141
+ * Everything measured is stale: drop the caches, tell the views, and re-fit what grows with its
2142
+ * content (expand only, never a custom size). A language switch re-fits both axes; a font
2143
+ * arriving re-fits rows only, as the load autofit does, since Excel never widens a column for
2144
+ * a font.
2145
+ */
2146
+ protected _invalidateRendering(axes?: IRange.AxisSelection | null): void;
1744
2147
  /** @internal */
1745
- protected _initViewState(entireCoords: IRange.Coords, json: ISheetView.JSON): void;
2148
+ protected _initViewState(entireCoords: IRange.Coords, json: IWorksheetView.JSON): void;
1746
2149
  protected _initCellState(): void;
1747
2150
  /** @internal */
1748
- protected _createTables(tables: IAnchoredMap<ITable, ITable.JSON>, key: keyof State, refs: IRange.JSONReference<ITable.JSON>[], createModel: (options: AnchoredTable.ConstructorOptions) => ITable, addListeners?: (model: ITable) => IListener.Remove): IAnchoredMap<ITable, ITable.JSON>;
2151
+ protected _createTables(tables: IAnchoredMap<ITable, ITable.JSON>, key: keyof State, refs: IRange.JSONReference<ITable.JSON>[], createModel: (options: AnchoredTable.ConstructorOptions) => ITable): IAnchoredMap<ITable, ITable.JSON>;
1749
2152
  /** @internal */
1750
2153
  protected _createDataValidations(dataValidations: IAnchoredMap<IDataValidation, IDataValidation.JSON>, key: keyof State, refs: IRange.JSONReference<IDataValidation.JSON>[], createModel: (options: DataValidation.ConstructorOptions) => IDataValidation, addListeners?: (model: IDataValidation) => IListener.Remove): IAnchoredMap<IDataValidation, IDataValidation.JSON>;
1751
2154
  /** @internal */
1752
2155
  protected _createConditionalFormats(conditionalFormats: IAnchoredMap<IConditionalFormat, IConditionalFormat.JSON>, key: keyof State, refs: IRange.JSONReference<IConditionalFormat.JSON>[], createModel: (options: ConditionalFormat.ConstructorOptions) => IConditionalFormat, addListeners?: (model: IConditionalFormat) => IListener.Remove): IAnchoredMap<IConditionalFormat, IConditionalFormat.JSON>;
1753
2156
  /** @internal */
1754
2157
  protected _createProtectedRanges(protectedRanges: IAnchoredMap<IProtectedRange, IProtectedRange.JSON>, key: keyof State, refs: IRange.JSONReference<IProtectedRange.JSON>[], createModel: (options: ProtectedRange.ConstructorOptions) => IProtectedRange, addListeners?: (model: IProtectedRange) => IListener.Remove): IAnchoredMap<IProtectedRange, IProtectedRange.JSON>;
2158
+ /** @internal */
2159
+ protected _createCellControls(cellControls: IAnchoredMap<ICellControl, ICellControl.JSON>, key: keyof State, refs: IRange.JSONReference<ICellControl.JSON>[], createModel: (options: CellControl.ConstructorOptions) => ICellControl): IAnchoredMap<ICellControl, ICellControl.JSON>;
1755
2160
  /**
1756
2161
  * Loads the pivot tables into their anchored map, each anchored where its part says it sits.
1757
2162
  * The map moves and deletes them with structural edits; the table itself rules on the edit
@@ -1769,44 +2174,48 @@ export declare class Sheet implements ISheet {
1769
2174
  /** @internal */
1770
2175
  protected _createMovableEntry(json: IMovable.JSON, zIndex: number, fromResourceId?: (resourceId: number) => IResource, index?: MovableIndex, contentGiven?: Movable.Content): ISpatialMap.Entry<MovableEntry>;
1771
2176
  /** @internal */
1772
- protected _fromJSON(json: ISheet.JSON | undefined, disableLoadAutoFit?: boolean): void;
2177
+ protected _fromJSON(json: IWorksheet.JSON | undefined, disableLoadAutoFit?: boolean): void;
1773
2178
  /** {@inheritDoc ITransaction.ITransactional.getId} */
1774
2179
  getId(): string;
1775
2180
  /** {@inheritDoc ITransaction.ITransactional.getVersionId} */
1776
2181
  getVersionId(): number;
1777
- /** {@inheritDoc ISheet.getName} */
2182
+ /** {@inheritDoc IWorksheet.getName} */
1778
2183
  getName(): string;
1779
- /** {@inheritDoc ISheet.setName} */
2184
+ /** {@inheritDoc IWorksheet.setName} */
1780
2185
  setName(name: string, options?: ITransaction.OperationOptions): this;
1781
- /** {@inheritDoc ISheet.getVisibility} */
2186
+ /** {@inheritDoc IWorksheet.getVisibility} */
1782
2187
  getVisibility(): ISheet.Visibility;
1783
- /** {@inheritDoc ISheet.setVisibility} */
2188
+ /** {@inheritDoc IWorksheet.setVisibility} */
1784
2189
  setVisibility(visibility?: ISheet.Visibility | boolean, options?: ITransaction.OperationOptions): this;
1785
- /** {@inheritDoc ISheet.select} */
2190
+ /** {@inheritDoc IWorksheet.select} */
1786
2191
  select(options: ITypes.SelectOptions): Promise<this>;
1787
- /** {@inheritDoc ISheet.duplicate} */
2192
+ /** {@inheritDoc IWorksheet.duplicate} */
1788
2193
  duplicate(): Promise<this>;
1789
- /** {@inheritDoc ISheet.getIndex} */
2194
+ /** {@inheritDoc IWorksheet.getIndex} */
1790
2195
  getIndex(): number;
1791
- /** {@inheritDoc ISheet.setIndex} */
2196
+ /** {@inheritDoc IWorksheet.setIndex} */
1792
2197
  setIndex(index: number, options?: ITransaction.OperationOptions): this;
1793
- /** {@inheritDoc ISheet.getNames} */
2198
+ /** {@inheritDoc IWorksheet.getNames} */
1794
2199
  getNames(): INamedCollection;
1795
- /** {@inheritDoc ISheet.getCalculation} */
1796
- /** {@inheritDoc ISheet.getCalculation} */
2200
+ /** {@inheritDoc IWorksheet.getCalculation} */
2201
+ /** {@inheritDoc IWorksheet.getCalculation} */
1797
2202
  getCalculation(): ICalculation;
1798
- /** {@inheritDoc ISheet.createFormula} */
2203
+ /** {@inheritDoc IWorksheet.createFormula} */
1799
2204
  createFormula(expression: string, coords?: Partial<IRange.CellCoords>, options?: ICalculation.CreateFormulaOptions): ICalculation.IFormula;
1800
- /** {@inheritDoc ISheet.evaluate} */
2205
+ /** {@inheritDoc IWorksheet.evaluate} */
1801
2206
  evaluate(expression: string, options?: number | ICalculation.EvaluateOptions & Partial<IRange.CellCoords> & ICalculation.CreateFormulaOptions): Promise<Scalar | IRange>;
1802
- /** {@inheritDoc ISheet.whenCalculationReady} */
2207
+ /** {@inheritDoc IWorksheet.whenCalculationReady} */
1803
2208
  whenCalculationReady(): Promise<ICalculation.Status>;
1804
- /** {@inheritDoc ISheet.getWorkbook} */
2209
+ /** {@inheritDoc IWorksheet.getWorkbook} */
1805
2210
  getWorkbook(): IWorkbook | null;
1806
2211
  get [Symbol.toStringTag](): string;
1807
2212
  toString(): string;
2213
+ /** {@inheritDoc IWorksheet.getKind} */
2214
+ getKind(): typeof ISheet.Kind.Worksheet;
1808
2215
  /** {@inheritDoc ISheet.isISheet} */
1809
2216
  get isISheet(): true;
2217
+ /** {@inheritDoc IWorksheet.isIWorksheet} */
2218
+ get isIWorksheet(): true;
1810
2219
  }
1811
2220
  /**
1812
2221
  * Builds an {@link ICellRange.Counts} from a plain feature record.
@@ -1819,27 +2228,16 @@ export declare class Sheet implements ISheet {
1819
2228
  */
1820
2229
  export declare function createCellRangeCounts(counts: Readonly<Record<ICellRange.Feature, number>>): ICellRange.Counts;
1821
2230
  /**
1822
- * Used for signalling tupleUpdate was called via private apis.
1823
- * This allows use to 'avoid side effects' and skip validation checks.
2231
+ * The change a round of listener deliveries reports; what each delivery adds is
2232
+ * {@link RangeEventOptions}.
1824
2233
  * @internal
1825
2234
  */
1826
2235
  interface NotifierOptions {
1827
- /**
1828
- * Which error an invalid source reports - `#REF!` when the cells were deleted, `#N/A` when the
1829
- * world predates the listener.
1830
- *
1831
- * @defaultValue `#REF!`
1832
- */
1833
- invalidError?: string;
1834
- isDataChange?: boolean;
1835
- getTransactionId: () => string;
2236
+ /** The commit that made the change; `null` for a calculation pass, which belongs to none. */
2237
+ commit: ITransaction.ICommit | null;
2238
+ /** The change is an undo. */
1836
2239
  isUndo?: boolean;
1837
- isRestoreOrRevert?: boolean;
1838
- trigger?: string;
1839
- /** Spell the source with its sheet qualifier (a workbook range), as the listener registered it. */
1840
- qualified?: boolean;
1841
- from?: ICellRanges;
1842
- to?: ICellRange;
2240
+ /** When the change was made; now, when omitted. */
1843
2241
  timeStamp?: number;
1844
2242
  }
1845
2243
  interface TableColumnHeaders {
@@ -1855,11 +2253,31 @@ interface TableColumnHeaders {
1855
2253
  * A live range listener: its node in the versioned map, and the callback the map must never hold.
1856
2254
  * @internal
1857
2255
  */
2256
+ /**
2257
+ * What one delivery adds to the change it reports.
2258
+ * @internal
2259
+ */
2260
+ interface RangeEventOptions extends NotifierOptions {
2261
+ trigger: ICellRange.Event.Trigger;
2262
+ /** Spell the source with its sheet qualifier (a workbook range), as the listener registered it. */
2263
+ qualified?: boolean;
2264
+ /** Hand the source as an `ICellRanges`, as the listener registered on one. */
2265
+ collection?: boolean;
2266
+ /**
2267
+ * Which error an invalid source reports - `#REF!` when the cells were deleted, `#N/A` when the
2268
+ * world predates the listener.
2269
+ *
2270
+ * @defaultValue `#REF!`
2271
+ */
2272
+ invalidError?: string;
2273
+ }
1858
2274
  interface ListenerNodeEntry {
1859
2275
  node: ListenerAnchor;
1860
- handler: ICellRange.Listener | null;
1861
- handlerW: WeakRef<ICellRange.Listener> | null;
2276
+ handler: ICellRange.Listener<any> | null;
2277
+ handlerW: WeakRef<ICellRange.Listener<any>> | null;
1862
2278
  options: ICellRange.ListenerOptions;
2279
+ /** Registered on an `ICellRanges`: the source is handed as one. */
2280
+ collection: boolean;
1863
2281
  /** The coords last delivered, so a restore can tell whether the reference moved. */
1864
2282
  lastCoords: IRange.Coords[] | null;
1865
2283
  /**
@@ -1870,6 +2288,8 @@ interface ListenerNodeEntry {
1870
2288
  qualified: boolean;
1871
2289
  /** Present when the node is a {@link WatchAnchor}: what the watch is told. */
1872
2290
  watch?: WatchAnchor.Handlers;
2291
+ /** The batch a participant was added through: it is told as each step of that batch is made. */
2292
+ batch?: BatchHandle | null;
1873
2293
  }
1874
2294
  /**
1875
2295
  * A run of formula cells with the references they inherit a number format from, relative to the
@@ -1881,4 +2301,4 @@ interface EnteredBlock {
1881
2301
  references: readonly IRange.FixableCoords[];
1882
2302
  }
1883
2303
  export {};
1884
- //# sourceMappingURL=Sheet.d.ts.map
2304
+ //# sourceMappingURL=Worksheet.d.ts.map