@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,26 +4,43 @@ import { RangeCoordValue, RangeCoords } from '@sheetxl/utils';
4
4
  *
5
5
  * Use this to answer "which items overlap this region?" without a linear scan.
6
6
  *
7
- * @typeParam T must extend `RangeCoordValue` (carries `colStart/rowStart/colEnd/rowEnd`)
7
+ * {@link clone} is O(1): the copies share every node, and a change to either copies only the
8
+ * nodes on its path from the root, so each keeps the version it had.
9
+ *
10
+ * Items are returned by identity: {@link search} and {@link all} return the objects that were
11
+ * inserted. An item's coordinates must not change while it is in the tree.
8
12
  *
9
- * @TODO See RTree-REDESIGN.md for planned structural changes.
13
+ * @typeParam T must extend `RangeCoordValue` (carries `colStart/rowStart/colEnd/rowEnd`)
10
14
  */
11
15
  export declare class RTree<T extends RangeCoordValue> {
12
16
  protected _maxEntries: number;
13
17
  protected _minEntries: number;
14
- protected _data: Node<T>;
18
+ /** The nodes and items, shared with every clone of this tree. */
19
+ protected _arena: Arena<T>;
20
+ /** The id carried by the arena nodes this tree may write in place. */
21
+ protected _owner: number;
22
+ protected _root: number;
23
+ protected _size: number;
24
+ /** The nodes reachable from the root; the arena holding many more is what triggers a compaction. */
25
+ protected _nodes: number;
26
+ protected _colStart: number;
27
+ protected _rowStart: number;
28
+ protected _colEnd: number;
29
+ protected _rowEnd: number;
15
30
  /**
16
31
  * Constructs an `RTree`, a high-performance 2D spatial index for points and
17
32
  * rectangles. Based on an optimized __R-tree__ data structure with
18
33
  * __bulk-insertion__ support.
19
34
  *
20
35
  * @param maxEntries An optional argument to RTree defines the maximum
21
- * number of entries in a tree node. `9` (used by default)
22
- * is a reasonable choice for most applications. Higher
23
- * value means faster insertion and slower search, and
24
- * vice versa.
36
+ * number of entries in a tree node, from `4` to `12`. `9`
37
+ * (used by default) is a reasonable choice for most
38
+ * applications. Higher value means faster insertion and
39
+ * slower search, and vice versa.
25
40
  */
26
41
  constructor(maxEntries?: number);
42
+ /** Returns the number of items in the tree. */
43
+ size(): number;
27
44
  /** Returns all items contained in the tree. */
28
45
  all(result?: T[]): T[];
29
46
  /**
@@ -64,6 +81,10 @@ export declare class RTree<T extends RangeCoordValue> {
64
81
  * Removes all items.
65
82
  */
66
83
  clear(): RTree<T>;
84
+ /**
85
+ * Returns a copy that shares this tree's nodes; changing either leaves the other as it was.
86
+ */
87
+ clone(): this;
67
88
  /**
68
89
  * Inserts an item. To insert many items at once, use `load()`.
69
90
  */
@@ -73,39 +94,98 @@ export declare class RTree<T extends RangeCoordValue> {
73
94
  * Pass `equals` to compare by value instead.
74
95
  */
75
96
  remove(item: T, equals?: (a: T, b: T) => boolean): RTree<T>;
76
- protected _all(node: Node<T>, result: T[]): T[];
77
- protected _build(items: T[], left: number, right: number, height: number): Node<T>;
78
- protected _chooseSubtree(coords: RangeCoordValue, node: Node<T>, level: number, path: Node<T>[]): Node<T>;
79
- protected _insert(node: Node<T>, level: number): void;
80
- protected _split(insertPath: Node<T>[], level: number): void;
81
- protected _splitRoot(node: Node<T>, newNode: Node<T>): void;
82
- protected _chooseSplitIndex(node: Node<T>, min: number, length: number): number;
83
- protected _chooseSplitAxis(node: Node<T>, min: number, length: number): void;
84
- protected _allDistMargin(node: Node<T>, min: number, length: number, compare: (a: Node<T>, b: Node<T>) => number): number;
97
+ protected _rootIntersects(coords: RangeCoords): boolean;
98
+ protected _setRootBox(): void;
99
+ /** The arena, created on the first write: an empty tree holds none. */
100
+ protected _writableArena(): Arena<T>;
101
+ /** `node` if this tree owns it, otherwise an owned copy of it that nothing points at yet. */
102
+ protected _ownDetached(node: number): number;
103
+ /**
104
+ * `node` if this tree owns it, otherwise an owned copy put in its place: in slot `slot` of
105
+ * `parent` (which this tree must own), or as the root when `parent` is `NONE`.
106
+ */
107
+ protected _own(node: number, parent: number, slot: number): number;
108
+ protected _all(node: number, result: T[]): T[];
109
+ /**
110
+ * Builds a subtree over `order[left..right]` (indices into `itemBoxes`, four numbers an item,
111
+ * and into the payload from `first`) and returns its node, leaving its box in `_bx0`..`_bx3` and
112
+ * its height in `_BuiltHeight`. The same overlap-minimizing tiling as rbush's bulk load.
113
+ */
114
+ protected _build(order: Int32Array, itemBoxes: Float64Array, first: number, left: number, right: number, height: number): number;
115
+ /**
116
+ * Adds `child` (an item's payload index when `height` is `0`, otherwise a node of height
117
+ * `height - 1`) to a node of height `height`, copying the shared nodes on the way down and
118
+ * splitting full ones on the way up.
119
+ */
120
+ protected _insertEntry(child: number, colStart: number, rowStart: number, colEnd: number, rowEnd: number, height: number): void;
121
+ /**
122
+ * Adds an entry to an owned node; when the node is full, splits it and returns the new sibling
123
+ * (for the caller to add to the parent), otherwise `NONE`.
124
+ */
125
+ protected _addEntry(node: number, child: number, colStart: number, rowStart: number, colEnd: number, rowEnd: number): number;
126
+ /** Grows the tree by a level: a new root over the old root and `sibling`, of the same height. */
127
+ protected _splitRoot(sibling: number): void;
128
+ /**
129
+ * Finds `item` under `node` as `remove` does: a leaf's items are compared, a node whose children
130
+ * are leaves has every leaf searched, a deeper node only the children that contain the item. On
131
+ * a match, records the path in `_RemovePath`/`_RemoveSlots` and the item's slot in `_RemoveSlot`.
132
+ *
133
+ * The path is written only on the way back up, after the last call to `equals`, so an `equals`
134
+ * that uses another tree cannot disturb it.
135
+ */
136
+ protected _findItem(node: number, depth: number, item: T, equals: ((a: T, b: T) => boolean) | undefined): boolean;
137
+ /**
138
+ * Removes every item under `node` that `isRemove` matches, visiting only children that intersect
139
+ * the given box. A node is written only when something under it is removed, and copied first
140
+ * when it is shared, so a subtree with nothing to remove is never copied.
141
+ *
142
+ * @returns `UNCHANGED`, `EMPTY` (the node should be removed from its parent), or the node to keep
143
+ * in its place (a copy when it was shared).
144
+ */
145
+ protected _removeWithin(node: number, isRemove: (item: T) => boolean, colStart: number, rowStart: number, colEnd: number, rowEnd: number): number;
146
+ /**
147
+ * Compacts when the arena holds much more than this tree reaches: the nodes and items other
148
+ * versions still use, and the ones no version does. A compaction copies the tree's nodes and
149
+ * items, so it waits until the unreached nodes outnumber both, which keeps its cost per write
150
+ * constant.
151
+ */
152
+ protected _maybeCompact(): void;
153
+ /**
154
+ * Moves this tree into an arena of its own, copying what it reaches depth first so a parent is
155
+ * next to its first child. Other versions keep the old arena, which is freed with the last of them.
156
+ */
157
+ protected _detach(): void;
158
+ /**
159
+ * Throws if the tree is inconsistent: heights, boxes, counts, the size and the node count. For
160
+ * tests.
161
+ */
162
+ protected _validate(): void;
85
163
  }
86
164
  /**
87
- * Internal R-tree node.
165
+ * The storage of a tree and every clone of it.
88
166
  *
89
- * - Leaf nodes: `children === null`, `range` is a cast of the user item (`T`), `height === 0`.
90
- * - Internal nodes: `children` is an array of child nodes, `range` is the mutable aggregate
91
- * bounding box of all descendants, `height >= 1`.
167
+ * Nodes are appended and never freed or rewritten once another version can reach them: a tree
168
+ * writes a node in place only when the node carries the tree's owner id, and {@link RTree.clone}
169
+ * gives both trees new ids, so no existing node carries either. That is what makes a clone free
170
+ * and an old version immutable. The garbage collects as a whole: a tree that reaches much less
171
+ * than its arena holds moves to a new one ({@link RTree._detach}), and the old one goes when the
172
+ * last version using it does.
92
173
  */
93
- interface Node<T> {
94
- range: RangeCoordValue<T>;
95
- children: Node<T>[] | null;
96
- height: number;
174
+ declare class Arena<T> {
175
+ boxes: Float64Array;
176
+ meta: Int32Array;
177
+ /** The number of nodes allocated. */
178
+ top: number;
179
+ /** Item by payload index. */
180
+ payload: T[];
181
+ /** The last owner id handed out. */
182
+ owners: number;
183
+ constructor(capacity: number);
184
+ /** A new node carrying `owner`; may replace `boxes` and `meta`, so neither is held across it. */
185
+ alloc(owner: number): number;
186
+ /** Grows the arrays to hold at least `capacity` nodes; replaces `boxes` and `meta` when it does. */
187
+ reserve(capacity: number): void;
188
+ nextOwner(): number;
97
189
  }
98
- /**
99
- * Rearranges items so that all items in the [left, k] are the smallest.
100
- * The k-th element will have the (k - left + 1)-th smallest value in [left, right].
101
- *
102
- * @template T
103
- * @param arr the array to partially sort (in place)
104
- * @param k middle index for partial sorting (as defined above)
105
- * @param left left index of the range to sort
106
- * @param right right index
107
- * @param compare compare function
108
- */
109
- export declare function quickSelect<T>(arr: T[], k: number, left?: number | undefined, right?: number | undefined, compare?: ((a: T, b: T) => number) | undefined): void;
110
190
  export {};
111
191
  //# sourceMappingURL=RTree.d.ts.map
@@ -1,8 +1,9 @@
1
- import { CellCoords, Direction, RangeAxis, RangeCoords } from '@sheetxl/utils';
1
+ import { Direction, RangeAxis, CellCoords, RangeCoords } from '@sheetxl/utils';
2
2
  import { Tuple } from './Tuple';
3
3
  import { IReadableList } from './IReadableList';
4
4
  import { IGrid } from './IGrid';
5
5
  import { ISparseGrid } from './ISparseGrid';
6
+ import { IListLike } from './IList';
6
7
  /**
7
8
  * Implementation of {@link IGrid} that uses a ISparseList of ISparseList.
8
9
  */
@@ -19,13 +20,7 @@ export declare class SparseGrid<T = any> implements ISparseGrid<T> {
19
20
  private _isShared;
20
21
  private _createRun;
21
22
  constructor(options?: SparseGrid.ConstructorOptions);
22
- /**
23
- * Returns an IterableIterator over all the runs in the sparse grid.
24
- * Each run is a contiguous list of values in the grid.
25
- *
26
- * @returns An iterator that yields [majorIndex, minorIndex, IReadableList] entries
27
- */
28
- /** {@inheritDoc ISparseGrid.getMaxCoords} */
23
+ /** {@inheritDoc ISparseGrid.getRuns} */
29
24
  getRuns(options?: ISparseGrid.RunIteratorOptions): ISparseGrid.RunIterableIterator<T>;
30
25
  /** {@inheritDoc IGrid.getAxis} */
31
26
  getAxis(): RangeAxis;
@@ -35,6 +30,7 @@ export declare class SparseGrid<T = any> implements ISparseGrid<T> {
35
30
  values(options?: IGrid.IteratorOptions): IGrid.ValueIterator;
36
31
  /** {@inheritDoc IGrid.keys} */
37
32
  keys(options?: IGrid.IteratorOptions): IGrid.KeyIterator;
33
+ private _entriesPrivateResult;
38
34
  private _updateMajorSpan;
39
35
  /** {@inheritDoc IGrid.setValues} */
40
36
  setValues(values: Tuple.GridTuple<T>): this;
@@ -89,11 +85,13 @@ export declare namespace SparseGrid {
89
85
  */
90
86
  axis?: RangeAxis;
91
87
  /**
92
- * Hook to allow for custom storing of contiguous values.
88
+ * Makes the list a run of contiguous values is stored as: the one place a value enters this
89
+ * grid, so a grid with a policy about what it holds applies it here, once per run.
93
90
  *
94
- * @param values The values to wrap in a List.
91
+ * @param values The run's values: a writer's array, or a list another grid already held.
92
+ * @defaultValue wraps the values as they are
95
93
  */
96
- createRun?: (values: T[]) => IReadableList<T>;
94
+ createRun?: (values: IListLike<T> | T[]) => IReadableList<T>;
97
95
  }
98
96
  }
99
97
  //# sourceMappingURL=SparseGrid.d.ts.map
@@ -5,7 +5,6 @@ import { ISpatialMap } from './ISpatialMap';
5
5
  * The default implementation for {@link ISpatialMap}
6
6
  */
7
7
  export declare class SpatialMap<T = any> implements ISpatialMap<T> {
8
- protected _shared: SharedRecord<T> | null;
9
8
  protected _rTree: FilterRTree<T>;
10
9
  protected _cloneKey: any;
11
10
  protected _options: ISpatialMap.ConstructorOptions<T> | undefined;
@@ -60,13 +59,12 @@ export declare class SpatialMap<T = any> implements ISpatialMap<T> {
60
59
  delete(coords: RangeCoords | null): this;
61
60
  /** {@inheritDoc ISpatialMap.clone} */
62
61
  clone(cloneKey?: any): this;
63
- protected _copy(source: SharedRecord<T>, entries?: ReadonlyArray<ISpatialMap.Entry<T>>): SharedRecord<T>;
64
62
  protected _updateNodes(nodesInsert: ISpatialMap.Entry<T>[], nodesRemove?: ISpatialMap.Entry<T>[], onUpdates?: (nodesInsert: ISpatialMap.Entry<T>[], nodesRemove: ISpatialMap.Entry<T>[], map: ISpatialMap<T>) => void): void;
65
63
  protected _mergeNodes(range: RangeCoords, fullyContained?: boolean): ISpatialMap.Entry<T>[];
66
64
  protected _getReadTree(): FilterRTree<T>;
67
- protected _ensureWritable(entries?: ReadonlyArray<ISpatialMap.Entry<T>>): void;
68
65
  /**
69
- * entries is a special performance optimization to allow a single bulk load.
66
+ * The tree, with the search caches invalidated for a write; loads `entries` into it first if
67
+ * given.
70
68
  */
71
69
  protected _getWritableTree(entries?: ReadonlyArray<ISpatialMap.Entry<T>>): FilterRTree<T>;
72
70
  /**
@@ -78,10 +76,6 @@ export declare class SpatialMap<T = any> implements ISpatialMap<T> {
78
76
  */
79
77
  protected _createClone(options: ISpatialMap.ConstructorOptions<T> | undefined): this;
80
78
  }
81
- interface SharedRecord<T> {
82
- refCount: number;
83
- rTree: FilterRTree<T>;
84
- }
85
79
  /**
86
80
  * Internal class that extends RTree to support Filters.
87
81
  * is needed — the default passthrough in RTree works directly.
@@ -11,6 +11,8 @@ import { ISpatialMap3D } from './ISpatialMap3D';
11
11
  */
12
12
  export declare class SpatialMap3D<T = any> implements ISpatialMap3D<T> {
13
13
  protected _mapScopeTo2Ds: Map<string, ISpatialMap<T>>;
14
+ /** The key this map was cloned under, if any - see {@link clone}. */
15
+ protected _cloneKey: any;
14
16
  protected _last2DKey: string | null | undefined;
15
17
  protected _last2DMap: ISpatialMap<T> | undefined;
16
18
  protected _options: SpatialMap3D.ConstructorOptions<T> | undefined;
@@ -9,7 +9,7 @@ export * from './ISpatialMap3D';
9
9
  export * as IteratorUtils from './IteratorUtils';
10
10
  export * from './ImmutableList';
11
11
  export * from './IList';
12
- export * from './OverlappingRangeIterator';
12
+ export { OverlappingRange } from '@sheetxl/utils';
13
13
  export * from './SortedMap';
14
14
  export * from './SparseGrid';
15
15
  export * from './ScalarGrid';
@@ -1,11 +1,15 @@
1
1
  import { IRange } from '@sheetxl/primitives';
2
+ import { Bounds } from '@sheetxl/utils';
2
3
  import { IListener } from '../listener';
3
4
  import { ITransaction } from '../transaction';
4
5
  import { ICellRange, ICellRanges } from '../cellRange';
5
- import { ISheet } from '../sheet';
6
+ import { IWorksheet } from '../sheet';
6
7
  import { IPerson, IPersonCollection } from '../person';
7
8
  import { IMovable } from '../movable';
8
9
  import { IRichText } from '../text';
10
+ import { IFill, IStroke } from '../fill';
11
+ import { IStyleCollection } from '../style';
12
+ import { IShapeStyle } from '../shape';
9
13
  import { Anchored } from '../anchored/Anchored';
10
14
  import { AbstractAnchored } from '../anchored/AbstractAnchored';
11
15
  import { IComment } from './IComment';
@@ -31,6 +35,7 @@ export declare class Comment extends AbstractAnchored<State, IComment.Events> im
31
35
  * brings the same one back, and a note made again from a thread is given a new one.
32
36
  */
33
37
  private _boxes;
38
+ private _style;
34
39
  /** @internal */
35
40
  protected _initialize(options: Comment.ConstructorOptions): void;
36
41
  /** @internal */
@@ -54,8 +59,8 @@ export declare class Comment extends AbstractAnchored<State, IComment.Events> im
54
59
  * never asks the model for it, so this is free to answer the way Office Scripts does.
55
60
  */
56
61
  getId(): string;
57
- /** {@inheritDoc IComment.getSheet} */
58
- getSheet(): ISheet;
62
+ /** {@inheritDoc IComment.getWorksheet} */
63
+ getWorksheet(): IWorksheet;
59
64
  /** {@inheritDoc IComment.getRange} */
60
65
  getRange(options?: ICellRange.GetRangeOptions): ICellRange;
61
66
  /** {@inheritDoc IComment.getContent} */
@@ -94,17 +99,19 @@ export declare class Comment extends AbstractAnchored<State, IComment.Events> im
94
99
  setDescription(description: string | null): this;
95
100
  /** {@inheritDoc IComment.getMovable} */
96
101
  getMovable(): IMovable | null;
102
+ /** {@inheritDoc IComment.getStyle} */
103
+ getStyle(): IShapeStyle | null;
97
104
  /**
98
105
  * The live box, if there is one.
99
106
  * @internal
100
107
  */
101
108
  protected _getBox(): NoteMovable | null;
102
109
  /**
103
- * Asks the sheet for a box: at `anchor`, its cells counted from this comment's, or where Excel
104
- * puts a new note's. A comment with no sheet to place one on has no box.
110
+ * Asks the sheet for a box: at `placement`, or where Excel puts a new note's. A comment with no
111
+ * sheet to place one on has no box.
105
112
  * @internal
106
113
  */
107
- protected _placeBox(anchor: IMovable.AnchorOffset | null, hidden: boolean): void;
114
+ protected _placeBox(placement: Comment.BoxPlacement | null, hidden: boolean): void;
108
115
  /**
109
116
  * The note is gone, or is a thread now: its box goes with it.
110
117
  * @internal
@@ -182,7 +189,20 @@ export declare namespace Comment {
182
189
  * What places a note's box. A comment given none has no movable.
183
190
  */
184
191
  boxes?: Comment.Boxes;
192
+ /**
193
+ * The workbook's styles, for resolving a note's colors. Lazy, as {@link getPeople} is.
194
+ */
195
+ getStyles?: () => IStyleCollection | null;
185
196
  }
197
+ /**
198
+ * Where a note's box is placed: by its cells counted from the note's, or by pixels from the
199
+ * sheet's top-left (see {@link IComment.BoxJSON.bounds}).
200
+ */
201
+ type BoxPlacement = {
202
+ anchor: IMovable.AnchorOffset;
203
+ } | {
204
+ bounds: Bounds;
205
+ };
186
206
  /**
187
207
  * What a note's box needs of the sheet it is on: to be placed, and to know whether it is where
188
208
  * a new note's goes.
@@ -192,11 +212,10 @@ export declare namespace Comment {
192
212
  * Places a note's box among the sheet's movables, with the note as its content.
193
213
  *
194
214
  * @param comment The note.
195
- * @param anchor Where the box is, its cells counted from the note's; `null` for where Excel
196
- * puts a new note's.
215
+ * @param placement Where the box is; `null` for where Excel puts a new note's.
197
216
  * @param hidden Whether the box appears only while its cell is pointed at.
198
217
  */
199
- add(comment: Comment, anchor: IMovable.AnchorOffset | null, hidden: boolean): NoteMovable;
218
+ add(comment: Comment, placement: BoxPlacement | null, hidden: boolean): NoteMovable;
200
219
  /**
201
220
  * Whether a box is where a new note's goes, which a note saves nothing for.
202
221
  */
@@ -218,6 +237,10 @@ interface State extends AbstractAnchored.State {
218
237
  description: string | null;
219
238
  /** How a note's box is drawn when not the default: markup a file's writer replays. */
220
239
  boxXml: string | null;
240
+ /** The fill a note's box states. */
241
+ boxFill: IFill.JSON | null;
242
+ /** The line a note's box states. */
243
+ boxStroke: IStroke.JSON | null;
221
244
  }
222
245
  export {};
223
246
  //# sourceMappingURL=Comment.d.ts.map
@@ -1,11 +1,14 @@
1
+ import { Bounds } from '@sheetxl/utils';
1
2
  import { IAnchored } from '../anchored';
2
3
  import { ICellRange } from '../cellRange';
3
4
  import { IListener } from '../listener';
4
5
  import { ITransaction } from '../transaction';
5
6
  import { IPerson } from '../person';
6
- import { ISheet } from '../sheet';
7
+ import { IWorksheet } from '../sheet';
7
8
  import { IMovable } from '../movable';
8
9
  import { IRichText } from '../text';
10
+ import { IFill, IStroke } from '../fill';
11
+ import { IShapeStyle } from '../shape';
9
12
  /**
10
13
  * A comment on a cell: the root of a thread, with its replies, or a note.
11
14
  *
@@ -54,6 +57,22 @@ export interface IComment extends IAnchored, IMovable.IContent {
54
57
  * ```
55
58
  */
56
59
  getMovable(): IMovable | null;
60
+ /**
61
+ * The fill and line of a note's box, or `null` for a threaded comment, which has no box.
62
+ *
63
+ * @remarks
64
+ * A note that states neither draws Excel's default: the system tooltip background
65
+ * ({@link IColor.Named.InfoBk}) and a thin line in the tooltip text color. Excel takes only
66
+ * literal colors here; a theme color is written to a file as the color it resolves to.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const note = sheet.getComments().add('B2', 'Check this', { asNote: true });
71
+ * note.getStyle()!.setFill('#ccffcc');
72
+ * note.getStyle()!.getStroke().setWidth(2.25);
73
+ * ```
74
+ */
75
+ getStyle(): IShapeStyle | null;
57
76
  /**
58
77
  * Deletes the comment: its replies with it, or a note's box.
59
78
  */
@@ -61,7 +80,7 @@ export interface IComment extends IAnchored, IMovable.IContent {
61
80
  /**
62
81
  * The sheet the comment is on.
63
82
  */
64
- getSheet(): ISheet;
83
+ getWorksheet(): IWorksheet;
65
84
  /**
66
85
  * The cell the comment is on.
67
86
  *
@@ -339,8 +358,26 @@ export declare namespace IComment {
339
358
  */
340
359
  anchor?: IMovable.AnchorOffset;
341
360
  /**
342
- * How the box is drawn when that is not Excel's default, held as it was read: the VML
343
- * `<v:shape>` without its id, its position or its cell.
361
+ * Where the box is in pixels from the sheet's top-left, for a box placed by position rather
362
+ * than by cells. Used only when there is no {@link anchor}; once loaded, the box is anchored
363
+ * to the cells under it and saves an `anchor`.
364
+ *
365
+ * @remarks
366
+ * A VML note shape with no `<x:Anchor>` (openpyxl writes them) is placed this way in Excel,
367
+ * literally, wherever its note's cell is.
368
+ */
369
+ bounds?: Bounds;
370
+ /**
371
+ * The box's fill, where it states one. Absent draws Excel's default.
372
+ */
373
+ fill?: IFill.JSON;
374
+ /**
375
+ * The box's line, where it states one. Absent draws Excel's default.
376
+ */
377
+ stroke?: IStroke.JSON;
378
+ /**
379
+ * The rest of how the box is drawn when that is not Excel's default, held as it was read: the
380
+ * VML `<v:shape>` without its id, its position, its cell, its fill or its line.
344
381
  */
345
382
  xml?: string;
346
383
  }
@@ -1,6 +1,7 @@
1
1
  import { IRange } from '@sheetxl/primitives';
2
2
  import { Bounds } from '@sheetxl/utils';
3
3
  import { IMovable } from '../movable';
4
+ import { IWorksheet } from '../sheet';
4
5
  import { Movable } from '../movable/Movable';
5
6
  /**
6
7
  * Where a note's box goes when nothing has moved it, and how a note stores where its box is.
@@ -8,7 +9,8 @@ import { Movable } from '../movable/Movable';
8
9
  * @remarks
9
10
  * The default is Excel's, probed with hidden COM on a 96-DPI machine (2026-09-30): a 144×79 px
10
11
  * box hung 15 px right of its cell and 10 px above its top, flipped to the other side when it
11
- * would pass the sheet's last column or row. It is pixel geometry first and the cells those
12
+ * would pass the sheet's last column or row. A note on a merged cell hangs beside the merge
13
+ * (probed 2026-10-20). It is pixel geometry first and the cells those
12
14
  * pixels fall on second, so tall, narrow and hidden rows and columns need no rule of their own.
13
15
  *
14
16
  * A note stores its box's anchor with the cells counted from the note's own, so a note copied
@@ -24,10 +26,25 @@ export declare const NOTE_DEFAULT_HEIGHT = 79;
24
26
  * The cell geometry placing a box needs: the same three a movable is built with.
25
27
  */
26
28
  export type NoteLayout = Required<Pick<Movable.ConstructorOptions, 'getBoundsAtCoords' | 'getCoordsAtBounds' | 'getMaxBounds'>>;
29
+ /** The merge a cell is in, or `null` when it is in none. */
30
+ export type MergeAt = (cell: IRange.CellCoords) => IRange.Coords | null;
31
+ /** {@link MergeAt} through a sheet's cells, for once it has loaded. */
32
+ export declare const sheetMergeAt: (sheet: IWorksheet) => MergeAt;
33
+ /**
34
+ * The cells a note's box hangs beside: the note's cell, or the merge it anchors.
35
+ */
36
+ export declare function noteBoxTarget(mergeAt: MergeAt, cell: IRange.CellCoords): IRange.Coords;
27
37
  /**
28
38
  * The bounds of a note's box when nothing has moved or resized it.
39
+ *
40
+ * @param target The cells the box hangs beside, from {@link noteBoxTarget}.
41
+ */
42
+ export declare function defaultNoteBounds(target: IRange.Coords, layout: NoteLayout): Bounds;
43
+ /**
44
+ * Bounds measured from the sheet's top-left (as a file's VML `style` places a box with no anchor)
45
+ * in the layout's coordinates.
29
46
  */
30
- export declare function defaultNoteBounds(cell: IRange.CellCoords, layout: NoteLayout): Bounds;
47
+ export declare function sheetNoteBounds(bounds: Bounds, layout: NoteLayout): Bounds;
31
48
  /**
32
49
  * The cells and offsets a box's corners fall on, as a movable is loaded from.
33
50
  */
@@ -4,6 +4,7 @@ import { IListener } from '../listener';
4
4
  import { ITransaction } from '../transaction';
5
5
  import { Tuple, ISparseGrid } from '../collections';
6
6
  import { ICalculation } from '../calculation';
7
+ import { FormulaHost } from '../calculation/grid';
7
8
  import { ICellRange, ICellRanges } from '../cellRange';
8
9
  import { ICondition } from '../condition';
9
10
  import { ConditionFormulaBinding } from '../condition/_ConditionFormula';
@@ -15,7 +16,7 @@ import * as _ConditionUtils from '../condition/_ConditionUtils';
15
16
  * Implementation of {@link IDataValidation}.
16
17
  */
17
18
  export declare abstract class AnchoredConditional<STATE extends AnchoredConditional.State, EVENTS extends ICondition.Events = ICondition.Events, JSON = any> extends AbstractAnchored<STATE, EVENTS> implements IAnchored, ITransaction.ITransactional, IListener.ISource<IAnchored> {
18
- protected _rangeListener: ICellRange.Listener | null;
19
+ protected _rangeListener: ICellRange.Listener<ICellRanges> | null;
19
20
  protected _getValueGrid: () => ISparseGrid<Scalar>;
20
21
  /**
21
22
  * One registered watch per formula the condition asked for, keyed by the formula: its remove, and
@@ -45,8 +46,29 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
45
46
  protected abstract _getActionDescription(action: 'delete' | 'initialize' | 'updateListener'): string | null;
46
47
  /** @internal */
47
48
  protected abstract _getType(): string;
48
- /** @internal */
49
- protected abstract _processValueUpdates(range: ICellRange | null): void;
49
+ /**
50
+ * Re-judges the rule after a change.
51
+ *
52
+ * @returns What the re-judging awaits, when it does: counted as calculation in flight until it
53
+ * settles (see `ICalculation.waitUntil`).
54
+ * @internal
55
+ */
56
+ protected abstract _processValueUpdates(range: ICellRange | null): void | Promise<void>;
57
+ /**
58
+ * Whether this rule's formula watches evaluate a blank region the answer of which depends on
59
+ * the position only where the rule is read (`WatchAnchor.Options.paged`): a cell not read yet
60
+ * has no answer and judges as no match until its tile is delivered. Right for a rule read a
61
+ * window at a time - a format, painted where it is on screen - and not for one whose every
62
+ * answer is wanted at once.
63
+ * @internal
64
+ */
65
+ protected _pagesWatches(): boolean;
66
+ /**
67
+ * Whether every formula watch of this rule holds its answer at a cell of the area at
68
+ * `areaIndex`, asking for the cell where one does not (see `FormulaHost.request`).
69
+ * @internal
70
+ */
71
+ protected _requestWatchedCell(areaIndex: number, row: number, column: number): boolean;
50
72
  /** @internal */
51
73
  protected abstract _fromJSON(json: JSON | undefined, options?: ITransaction.OperationOptions): void;
52
74
  /** @internal */
@@ -64,7 +86,7 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
64
86
  * cluster: one calc pass notifies each rule it intersects, and a burst of deliveries would
65
87
  * otherwise start a burst of evaluations for the newest one to win. Coalescing on a microtask
66
88
  * rather than a commit hook is deliberate: the calc-results path notifies AFTER its transaction
67
- * commits (`trigger: 'calc'`), so a commit hook never sees the most frequent trigger.
89
+ * commits (a `'data'` event with no commit), so a commit hook never sees the most frequent trigger.
68
90
  *
69
91
  * Two same-tick marks widen to the whole rule rather than accumulating a range list — the
70
92
  * subclasses evaluate per whole range anyway, and a rule's ranges are small.
@@ -309,9 +331,13 @@ export declare class AreaResultCollector {
309
331
  */
310
332
  interface WatchEntry {
311
333
  remove: IListener.Remove;
334
+ /** The areas the watch was registered over, as an address: a rule reshaped since asks again. */
335
+ areas: string;
312
336
  values: (IRange | null)[];
313
337
  /** Resolvers waiting on an area's first delivery — a LIST: passes overlap, and each has its own. */
314
338
  pending: (((values: IRange | null) => void)[])[];
339
+ /** Each area's host, once registered: what a paged watch is asked for cells through. */
340
+ hosts: (FormulaHost | undefined)[];
315
341
  }
316
342
  /**
317
343
  * Tables are designed to be instantiated as both standalone and anchored items that represent a table of data on a sheet.
@@ -389,9 +389,10 @@ export declare namespace ICondition {
389
389
  */
390
390
  cellColor?: boolean;
391
391
  /**
392
- * If filtered then the id.
392
+ * The format to match: its fill when {@link ICondition.ColorOption.cellColor} is `true`,
393
+ * otherwise its font color.
393
394
  */
394
- styleId?: number;
395
+ style?: ICellStyle.Properties;
395
396
  }
396
397
  /**
397
398
  * Types of time-periods.
@@ -4,7 +4,7 @@ import { ITransaction } from '../transaction';
4
4
  import { IListener } from '../listener';
5
5
  import { ICellRange, ICellRanges } from '../cellRange';
6
6
  import { ICellStyle, IStyleCollection } from '../style';
7
- import { ISheet } from '../sheet';
7
+ import { IWorksheet } from '../sheet';
8
8
  import { ISparseGrid, ISpatialMap } from '../collections';
9
9
  import { ICalculation } from '../calculation';
10
10
  import { BlankResolver } from '../condition/_ConditionUtils';
@@ -61,12 +61,18 @@ export declare class ConditionalFormat extends AnchoredConditional<State, ICondi
61
61
  protected _initialize(options: ConditionalFormat.ConstructorOptions): void;
62
62
  /** @internal */
63
63
  protected _getType(): string;
64
+ /**
65
+ * A format is read where it is painted, so a whole-column rule whose answer depends on the row
66
+ * (`ISODD(ROW())`) is evaluated a window at a time rather than a million cells at once.
67
+ * @internal
68
+ */
69
+ protected _pagesWatches(): boolean;
64
70
  /** @internal */
65
71
  protected _getActionDescription(action: 'delete' | 'initialize' | 'updateListener'): string | null;
66
72
  /** @internal */
67
73
  protected _getDefaultState(options: ConditionalFormat.ConstructorOptions): Readonly<State>;
68
74
  /** @internal */
69
- protected _processValueUpdates(_range?: ICellRange | null): void;
75
+ protected _processValueUpdates(_range?: ICellRange | null): Promise<void>;
70
76
  /**
71
77
  * Resolves every stop to the number it stands for, in the order they were authored.
72
78
  *
@@ -168,7 +174,7 @@ export declare class ConditionalFormat extends AnchoredConditional<State, ICondi
168
174
  }
169
175
  export declare namespace ConditionalFormat {
170
176
  interface ConstructorOptions extends AnchoredConditional.ConstructorOptions<IConditionalFormat.JSON> {
171
- sheet?: ISheet;
177
+ sheet?: IWorksheet;
172
178
  }
173
179
  }
174
180
  interface State extends AnchoredConditional.State {