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

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 (480) hide show
  1. package/README.md +1 -1
  2. package/browser/esm/B7aUIvgUjncMMD_i.mjs +394 -0
  3. package/browser/esm/{Cgd5BnM3hg9RyUel.mjs → BFagR2JeWs74iAG3.mjs} +1 -1
  4. package/browser/esm/BGOFfpxr2jPIdqmV.mjs +40 -0
  5. package/browser/esm/{CdLZWVcH8cncBUPJ.mjs → BLoUBId2xZpXAK_H.mjs} +110 -261
  6. package/browser/esm/BMyDRQ716j79h_bH.mjs +86 -0
  7. package/browser/esm/{o8MFgcVXns987D6_.mjs → BVDiOXGMc5_FMGfy.mjs} +6 -6
  8. package/browser/esm/{BzLfNyc6OOShIErH.mjs → BjkCiv5Jz6WYKZeu.mjs} +2 -2
  9. package/browser/esm/{De175LygU7ot4nQm.mjs → BkBhLS0l6z8sxI6D.mjs} +2 -2
  10. package/browser/esm/{Y79I7Sm8kjaYexhf.mjs → BnG31I6Oj_HEtSPS.mjs} +1 -1
  11. package/browser/esm/BoV6zPBnfqCBCqZ7.mjs +7729 -0
  12. package/browser/esm/{CYyv6uGjo10ig5FP.mjs → BpgskG1Er_lGQ_yS.mjs} +1 -1
  13. package/browser/esm/{C9B0djuUarfNdoj0.mjs → BtvLTTfSBdAKplVG.mjs} +1 -1
  14. package/browser/esm/{zqJOaweiXE9D8RY1.mjs → C16ycKja6zG0crV_.mjs} +27687 -38788
  15. package/browser/esm/C2VbEI_XVAoseAwa.mjs +1552 -0
  16. package/browser/esm/{Btg43M1Bf-ENDreu.mjs → C4MqfLn9Dm-l3OIk.mjs} +1 -1
  17. package/browser/esm/C5E6zSGAALWf61n4.mjs +199 -0
  18. package/browser/esm/{CjsUGJEQSbGjnH6R.mjs → CHU6iu_WGlm7fLET.mjs} +1 -1
  19. package/browser/esm/{DhKkrCVASZ6Isvz6.mjs → CQYjO777cmAznUzK.mjs} +1 -1
  20. package/browser/esm/{D4uVlrG0xEFctsSM.mjs → CU3DmJ-YnVVrC1_k.mjs} +285 -67
  21. package/browser/esm/{ClB5ix51roQOpZEr.mjs → CV5EGEjG5_-CPpP0.mjs} +2877 -2067
  22. package/browser/esm/{CSx9ed1JOs7K5BXO.mjs → CaB7J-xgfKO2uAkG.mjs} +2 -2
  23. package/browser/esm/CkxWugaJFjDGZNZ-.mjs +12 -0
  24. package/browser/esm/{CZ5oa92wZEAXebgk.mjs → ClPfI4lODvCece29.mjs} +32 -22
  25. package/browser/esm/ClbvFbFzFzXLBKNN.mjs +193 -0
  26. package/browser/esm/{Cqr3knDsBvoVZ6MN.mjs → Ctjb0SsxV4K4MMqG.mjs} +2 -2
  27. package/browser/esm/{Bk7xxbdDpa7-sIwd.mjs → D5np__Jb1euAyaLw.mjs} +2 -2
  28. package/browser/esm/{Di58Ji1n--3Mgc_2.mjs → DEiPS3Dr-s4fPbVZ.mjs} +1 -1
  29. package/browser/esm/DLLE0FZNsKxbBzRn.mjs +128 -0
  30. package/browser/esm/{BqskM7wA8oPfFQue.mjs → DWNzqw7DUKwoxjri.mjs} +2 -2
  31. package/browser/esm/{BEAY9XgKNx-bakXW.mjs → Dlmig06rIo7cInRk.mjs} +1 -1
  32. package/browser/esm/DvAaxH6z_tGvrRzl.mjs +5132 -0
  33. package/browser/esm/Dyq_ivuHvlXLwPCl.mjs +12831 -0
  34. package/browser/esm/{Dtoyt8q5RyGAlxCp.mjs → PcHFjNzQsE54POri.mjs} +1 -1
  35. package/browser/esm/S2dNNx1a5ydRnARM.mjs +367 -0
  36. package/browser/esm/f1IoRb7tEb0QmCSt.mjs +110 -0
  37. package/browser/esm/gssVX_FH1XFN-twD.mjs +210 -0
  38. package/browser/esm/index.mjs +999 -850
  39. package/browser/esm/nvU0ClAbf0g94YBK.mjs +1695 -0
  40. package/browser/esm/{BcHmrKHwMMOlzc9_.mjs → zlLuW405RSguy4Kn.mjs} +34 -34
  41. package/licenses/dependencies.txt +75 -75
  42. package/node/esm/{CnSQ7MTXAUAyBOoS.mjs → 2Kihw_-5lVTEnwMa.mjs} +285 -64
  43. package/node/esm/857CIBgQgGpnqrXk.mjs +199 -0
  44. package/node/esm/B084DssTcdBheTp_.mjs +7966 -0
  45. package/node/esm/B21JjOLghRoDOrkx.mjs +134 -0
  46. package/node/esm/{CImNvdz1iP-lUlro.mjs → BIRq1kT7lLRzns9t.mjs} +181 -181
  47. package/node/esm/{CD9wbvufChVYYkrI.mjs → BIwObuhTJYf0jpUa.mjs} +2 -2
  48. package/node/esm/Bbf1Pm9Gk7YpLTvg.mjs +12 -0
  49. package/node/esm/{B6D7sSetrcOWLsKj.mjs → BqiexuA89caYnAPz.mjs} +1 -1
  50. package/node/esm/{BH1v-E4Ro3bR7Znw.mjs → BrCKGFRsX_ezFJ4B.mjs} +151 -302
  51. package/node/esm/CCN5vD410obwdz38.mjs +405 -0
  52. package/node/esm/{Bh4dv6tMjXX3X4nI.mjs → CDHdgJXH2vS71WMc.mjs} +1 -1
  53. package/node/esm/{DCplLG93GfTs1vNw.mjs → CGp6VZL-gZa9Uezx.mjs} +1 -1
  54. package/node/esm/{B9ljpEIZg6wOTzRE.mjs → CNCNJNg890KdgkWh.mjs} +1 -1
  55. package/node/esm/{Bqd62L8KFgdS0Vou.mjs → CZICGK_ss0HoGHCP.mjs} +2 -2
  56. package/node/esm/{D7MfcID2Wf6l6VpC.mjs → CZiqiay42tFTrLI4.mjs} +1 -1
  57. package/node/esm/{Bsx9uijd4X_SKV3L.mjs → CdJHUJSBRHZoryPe.mjs} +41 -41
  58. package/node/esm/Ct3h15sCus4Tgt6M.mjs +1762 -0
  59. package/node/esm/CwePQwTILHHjGDkZ.mjs +1033 -0
  60. package/node/esm/{CUUoseJmFsCf82bb.mjs → CzXT00vrQa1_gvW9.mjs} +1 -1
  61. package/node/esm/{C6ZXsNyLXI6zA63X.mjs → D1TKBVmoKGAXf37B.mjs} +9 -9
  62. package/node/esm/{BN9j8V9gCExMjVtJ.mjs → D2KBymQJd1XhpeQD.mjs} +1 -1
  63. package/node/esm/{MiU4rDOiocmJ-9Ry.mjs → D6e2z7eZpxOJXHc7.mjs} +1 -1
  64. package/node/esm/{BtuY37FumvLE7EBo.mjs → D8zEN-6ZdDqDvTxM.mjs} +156 -146
  65. package/node/esm/DNRhGK-8Tr9xcRyc.mjs +8320 -0
  66. package/node/esm/DOU54VsOjG-m-NyQ.mjs +210 -0
  67. package/node/esm/DUTskXCXref-IJnI.mjs +133 -0
  68. package/node/esm/{DMD12JUh7HJw2-jl.mjs → D_t5AUxSm7_icjzq.mjs} +1 -1
  69. package/node/esm/Db0v7zXNnyjBIjjI.mjs +372 -0
  70. package/node/esm/{CUQi5ZtMO02nhG0W.mjs → De2IONBxQhz-Qbyh.mjs} +1 -1
  71. package/node/esm/Df1bL6VFvrqIdSLB.mjs +40 -0
  72. package/node/esm/DkwIPzKc3UwdUIfM.mjs +86 -0
  73. package/node/esm/DrTZbfemSLq2mseG.mjs +111 -0
  74. package/node/esm/OVfaSb506tNSIvbv.mjs +57107 -0
  75. package/node/esm/{DefYISWfdZJFx57m.mjs → cGwrLA1RCE-WhJ7w.mjs} +1 -1
  76. package/node/esm/index.mjs +2657 -65664
  77. package/node/esm/mFiBSM7XgBHV9AY7.mjs +13010 -0
  78. package/node/esm/{DdFgXl-Ux2cMBTs_.mjs → yavzZOiZW_EjG9lE.mjs} +1 -1
  79. package/package.json +6 -7
  80. package/resources/contents.json +120 -0
  81. package/resources/fonts/arial-bold-italic.hinted.json +125 -0
  82. package/resources/fonts/arial-bold-italic.metrics.json +13 -13
  83. package/resources/fonts/arial-bold-italic.rows.json +9 -0
  84. package/resources/fonts/arial-bold.hinted.json +125 -0
  85. package/resources/fonts/arial-bold.metrics.json +12 -12
  86. package/resources/fonts/arial-bold.rows.json +9 -0
  87. package/resources/fonts/arial-italic.hinted.json +125 -0
  88. package/resources/fonts/arial-italic.metrics.json +13 -13
  89. package/resources/fonts/arial-italic.rows.json +9 -0
  90. package/resources/fonts/arial-regular.hinted.json +125 -0
  91. package/resources/fonts/arial-regular.metrics.json +12 -12
  92. package/resources/fonts/arial-regular.rows.json +9 -0
  93. package/resources/fonts/calibri-bold-italic.hinted.json +122 -0
  94. package/resources/fonts/calibri-bold-italic.metrics.json +2 -2
  95. package/resources/fonts/calibri-bold-italic.rows.json +9 -0
  96. package/resources/fonts/calibri-bold.hinted.json +122 -0
  97. package/resources/fonts/calibri-bold.metrics.json +1 -1
  98. package/resources/fonts/calibri-bold.rows.json +9 -0
  99. package/resources/fonts/calibri-italic.hinted.json +121 -0
  100. package/resources/fonts/calibri-italic.metrics.json +2 -2
  101. package/resources/fonts/calibri-italic.rows.json +9 -0
  102. package/resources/fonts/calibri-regular.hinted.json +121 -0
  103. package/resources/fonts/calibri-regular.metrics.json +1 -1
  104. package/resources/fonts/calibri-regular.rows.json +9 -0
  105. package/resources/fonts/cambria-bold-italic.hinted.json +105 -0
  106. package/resources/fonts/cambria-bold-italic.metrics.json +26 -26
  107. package/resources/fonts/cambria-bold-italic.rows.json +9 -0
  108. package/resources/fonts/cambria-bold.hinted.json +108 -0
  109. package/resources/fonts/cambria-bold.metrics.json +19 -19
  110. package/resources/fonts/cambria-bold.rows.json +9 -0
  111. package/resources/fonts/cambria-italic.hinted.json +102 -0
  112. package/resources/fonts/cambria-italic.metrics.json +23 -23
  113. package/resources/fonts/cambria-italic.rows.json +9 -0
  114. package/resources/fonts/cambria-regular.hinted.json +110 -0
  115. package/resources/fonts/cambria-regular.metrics.json +18 -18
  116. package/resources/fonts/cambria-regular.rows.json +9 -0
  117. package/resources/fonts/contents.json +280 -0
  118. package/resources/fonts/courier-new-bold-italic.hinted.json +11 -0
  119. package/resources/fonts/courier-new-bold-italic.metrics.json +12 -12
  120. package/resources/fonts/courier-new-bold-italic.rows.json +9 -0
  121. package/resources/fonts/courier-new-bold.hinted.json +11 -0
  122. package/resources/fonts/courier-new-bold.metrics.json +12 -12
  123. package/resources/fonts/courier-new-bold.rows.json +9 -0
  124. package/resources/fonts/courier-new-italic.hinted.json +11 -0
  125. package/resources/fonts/courier-new-italic.metrics.json +12 -12
  126. package/resources/fonts/courier-new-italic.rows.json +9 -0
  127. package/resources/fonts/courier-new-regular.hinted.json +11 -0
  128. package/resources/fonts/courier-new-regular.metrics.json +12 -12
  129. package/resources/fonts/courier-new-regular.rows.json +9 -0
  130. package/resources/fonts/times-new-roman-bold-italic.hinted.json +125 -0
  131. package/resources/fonts/times-new-roman-bold-italic.metrics.json +15 -15
  132. package/resources/fonts/times-new-roman-bold-italic.rows.json +9 -0
  133. package/resources/fonts/times-new-roman-bold.hinted.json +125 -0
  134. package/resources/fonts/times-new-roman-bold.metrics.json +12 -12
  135. package/resources/fonts/times-new-roman-bold.rows.json +9 -0
  136. package/resources/fonts/times-new-roman-italic.hinted.json +125 -0
  137. package/resources/fonts/times-new-roman-italic.metrics.json +16 -16
  138. package/resources/fonts/times-new-roman-italic.rows.json +9 -0
  139. package/resources/fonts/times-new-roman-regular.hinted.json +125 -0
  140. package/resources/fonts/times-new-roman-regular.metrics.json +16 -16
  141. package/resources/fonts/times-new-roman-regular.rows.json +9 -0
  142. package/resources/locales/de/model.msg.json +87 -9
  143. package/resources/locales/en/model.msg.json +88 -10
  144. package/types/scripting-api.json +10636 -8021
  145. package/types/scripting-enums.json +181 -43
  146. package/types/scripting.d.ts +15886 -8459
  147. package/types/src/.generated/wasm/fonts.d.ts +161 -0
  148. package/types/src/.generated/wasm/fonts_bg.inline.d.ts +3 -0
  149. package/types/src/.generated/wasm/sdk.d.ts +122 -0
  150. package/types/src/.generated/wasm/sdk_bg.inline.d.ts +3 -0
  151. package/types/src/address/AddressUtils.d.ts +10 -1
  152. package/types/src/address/_StructuredAddress.d.ts +58 -0
  153. package/types/src/border/IBorders.d.ts +16 -0
  154. package/types/src/calculation/Calculation.d.ts +93 -363
  155. package/types/src/calculation/FormulaLiterals.d.ts +2 -1
  156. package/types/src/calculation/FormulaText.d.ts +18 -2
  157. package/types/src/calculation/ICalculation.d.ts +37 -9
  158. package/types/src/calculation/INamedFormulasCollection.d.ts +4 -0
  159. package/types/src/calculation/NamedFormulaCollection.d.ts +190 -15
  160. package/types/src/calculation/_FormulaToolkit.d.ts +9 -0
  161. package/types/src/calculation/_TableExtent.d.ts +60 -0
  162. package/types/src/calculation/compiler/CompilerUtils.d.ts +17 -0
  163. package/types/src/calculation/compiler/ParserUtils.d.ts +16 -0
  164. package/types/src/calculation/compiler/Types.d.ts +1 -1
  165. package/types/src/calculation/engine/CalcBackend.d.ts +855 -0
  166. package/types/src/calculation/engine/index.d.ts +10 -0
  167. package/types/src/calculation/executor/CalcExecutor.d.ts +21 -2
  168. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +6 -0
  169. package/types/src/calculation/formula/Formula.d.ts +9 -0
  170. package/types/src/calculation/formula/FormulaBlock.d.ts +6 -0
  171. package/types/src/calculation/formula/IFormulaBlock.d.ts +16 -0
  172. package/types/src/calculation/formula/LambdaValue.d.ts +5 -3
  173. package/types/src/calculation/functions/FunctionDeclarations.d.ts +5 -1
  174. package/types/src/calculation/functions/expandDeclaration.d.ts +15 -0
  175. package/types/src/calculation/functions/initializeFunctions.d.ts +0 -12
  176. package/types/src/calculation/grid/CalcGrid.d.ts +40 -4
  177. package/types/src/calculation/grid/CalcGridBackend.d.ts +30 -0
  178. package/types/src/calculation/grid/CalcGridProxy.d.ts +2 -0
  179. package/types/src/calculation/grid/CalcGridUtils.d.ts +8 -1
  180. package/types/src/calculation/grid/FormulaHost.d.ts +51 -6
  181. package/types/src/calculation/grid/ICalcGrid.d.ts +35 -6
  182. package/types/src/calculation/grid/_CalcRequest.d.ts +11 -1
  183. package/types/src/calculation/grid/_CellValueRun.d.ts +21 -0
  184. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +27 -2
  185. package/types/src/calculation/state/CalcScope.d.ts +15 -6
  186. package/types/src/calculation/state/CalcState.d.ts +10 -0
  187. package/types/src/calculation/state/CalculationContext.d.ts +2 -2
  188. package/types/src/calculation/state/IContextContainer.d.ts +12 -0
  189. package/types/src/calculation/toolkit/FormulaLiteralReader.d.ts +4 -0
  190. package/types/src/calculation/toolkit/FormulaTextParser.d.ts +10 -0
  191. package/types/src/calculation/toolkit/FunctionDeclarationTable.d.ts +4 -0
  192. package/types/src/calculation/toolkit/index.d.ts +12 -0
  193. package/types/src/cell/ICell.d.ts +256 -7
  194. package/types/src/cell/ICellHeader.d.ts +7 -6
  195. package/types/src/cell/ICellProtection.d.ts +1 -1
  196. package/types/src/cellRange/ICellHeaderRange.d.ts +6 -9
  197. package/types/src/cellRange/ICellHeaderRanges.d.ts +5 -0
  198. package/types/src/cellRange/ICellRange.d.ts +322 -55
  199. package/types/src/cellRange/ICellRanges.d.ts +8 -3
  200. package/types/src/chart/Chart.d.ts +217 -15
  201. package/types/src/chart/ChartCollection.d.ts +7 -2
  202. package/types/src/chart/IChart.d.ts +1921 -35
  203. package/types/src/chart/IChartCollection.d.ts +27 -2
  204. package/types/src/chart/_ChartParts.d.ts +1066 -0
  205. package/types/src/chart/_ChartSource.d.ts +47 -0
  206. package/types/src/chart/createChart.d.ts +26 -0
  207. package/types/src/chart/index.d.ts +4 -0
  208. package/types/src/chart/kinds/ChartKind.d.ts +252 -0
  209. package/types/src/chart/kinds/_Area.d.ts +3 -0
  210. package/types/src/chart/kinds/_Bar.d.ts +4 -0
  211. package/types/src/chart/kinds/_BoxWhisker.d.ts +4 -0
  212. package/types/src/chart/kinds/_Bubble.d.ts +3 -0
  213. package/types/src/chart/kinds/_Funnel.d.ts +4 -0
  214. package/types/src/chart/kinds/_Hierarchy.d.ts +31 -0
  215. package/types/src/chart/kinds/_Histogram.d.ts +4 -0
  216. package/types/src/chart/kinds/_HitKinds.d.ts +23 -0
  217. package/types/src/chart/kinds/_Line.d.ts +4 -0
  218. package/types/src/chart/kinds/_OfPie.d.ts +4 -0
  219. package/types/src/chart/kinds/_Pie.d.ts +4 -0
  220. package/types/src/chart/kinds/_Placeholder.d.ts +6 -0
  221. package/types/src/chart/kinds/_Radar.d.ts +4 -0
  222. package/types/src/chart/kinds/_Scatter.d.ts +8 -0
  223. package/types/src/chart/kinds/_Sunburst.d.ts +4 -0
  224. package/types/src/chart/kinds/_Surface.d.ts +4 -0
  225. package/types/src/chart/kinds/_Treemap.d.ts +4 -0
  226. package/types/src/chart/kinds/_Waterfall.d.ts +18 -0
  227. package/types/src/chart/kinds/_builtIns.d.ts +11 -0
  228. package/types/src/chart/layout/ChartLayout.d.ts +825 -0
  229. package/types/src/chart/layout/TextMeasurer.d.ts +38 -0
  230. package/types/src/chart/layout/_HitGeometry.d.ts +50 -0
  231. package/types/src/chart/layout/_HitTest.d.ts +36 -0
  232. package/types/src/chart/layout/_Layout.d.ts +25 -0
  233. package/types/src/chart/layout/_LayoutUtils.d.ts +97 -0
  234. package/types/src/chart/math/BoxStats.d.ts +35 -0
  235. package/types/src/chart/math/DateUnitCalcs.d.ts +80 -0
  236. package/types/src/chart/math/DisplayUnits.d.ts +53 -0
  237. package/types/src/chart/math/Histogram.d.ts +48 -0
  238. package/types/src/chart/math/OrdUnitCalcs.d.ts +166 -0
  239. package/types/src/chart/math/Treemap.d.ts +28 -0
  240. package/types/src/chart/math/Trendlines.d.ts +71 -0
  241. package/types/src/chart/math/UnitCalcs.d.ts +98 -0
  242. package/types/src/chart/model/ChartModel.d.ts +681 -0
  243. package/types/src/chart/model/_ChartType.d.ts +14 -0
  244. package/types/src/chart/model/_Edits.d.ts +489 -0
  245. package/types/src/chart/model/_Grouping.d.ts +83 -0
  246. package/types/src/chart/model/_Inference.d.ts +52 -0
  247. package/types/src/chart/model/_ModelFacts.d.ts +112 -0
  248. package/types/src/chart/model/_NewChart.d.ts +208 -0
  249. package/types/src/chart/model/_OfPie.d.ts +18 -0
  250. package/types/src/chart/resolve/_LegacyStyles.d.ts +48 -0
  251. package/types/src/chart/resolve/_Resolve.d.ts +51 -0
  252. package/types/src/chart/resolve/_ResolvedChart.d.ts +444 -0
  253. package/types/src/collections/RTree.d.ts +116 -36
  254. package/types/src/collections/SparseGrid.d.ts +6 -3
  255. package/types/src/collections/SpatialMap.d.ts +2 -8
  256. package/types/src/collections/SpatialMap3D.d.ts +2 -0
  257. package/types/src/collections/index.d.ts +1 -1
  258. package/types/src/comment/Comment.d.ts +32 -9
  259. package/types/src/comment/IComment.d.ts +41 -4
  260. package/types/src/comment/_NoteBox.d.ts +19 -2
  261. package/types/src/condition/AnchoredConditional.d.ts +28 -2
  262. package/types/src/condition/ICondition.d.ts +3 -2
  263. package/types/src/conditionalFormat/ConditionalFormat.d.ts +9 -3
  264. package/types/src/conditionalFormat/IConditionalFormat.d.ts +4 -3
  265. package/types/src/dataTable/DataTable.d.ts +67 -0
  266. package/types/src/dataTable/DataTableCollection.d.ts +19 -0
  267. package/types/src/dataTable/IDataTable.d.ts +99 -0
  268. package/types/src/dataTable/IDataTableCollection.d.ts +18 -0
  269. package/types/src/dataTable/index.d.ts +6 -0
  270. package/types/src/dataValidation/DataValidation.d.ts +1 -1
  271. package/types/src/dataValidation/DataValidationCollection.d.ts +4 -1
  272. package/types/src/dataValidation/IDataValidation.d.ts +1 -1
  273. package/types/src/dataValidation/IDataValidationCollection.d.ts +24 -0
  274. package/types/src/documentProperties/DocumentProperties.d.ts +66 -0
  275. package/types/src/documentProperties/ICustomProperty.d.ts +69 -0
  276. package/types/src/documentProperties/IDocumentProperties.d.ts +110 -0
  277. package/types/src/documentProperties/index.d.ts +3 -0
  278. package/types/src/externalBook/IExternalBook.d.ts +1 -1
  279. package/types/src/fill/IFill.d.ts +7 -0
  280. package/types/src/fill/IFillable.d.ts +47 -0
  281. package/types/src/fill/IStroke.d.ts +15 -1
  282. package/types/src/fill/PaintUtils.d.ts +22 -0
  283. package/types/src/fill/index.d.ts +2 -0
  284. package/types/src/font/AdvanceBuilder.d.ts +34 -0
  285. package/types/src/font/AdvanceTable.d.ts +128 -14
  286. package/types/src/font/CanvasAdvanceBuilder.d.ts +54 -0
  287. package/types/src/font/FontCapture.d.ts +4 -0
  288. package/types/src/font/FontCollection.d.ts +53 -2
  289. package/types/src/font/FontPlatform.d.ts +20 -0
  290. package/types/src/font/FontUtils.d.ts +5 -0
  291. package/types/src/font/IFont.d.ts +191 -61
  292. package/types/src/font/IFontCollection.d.ts +20 -14
  293. package/types/src/font/IFontStyle.d.ts +207 -0
  294. package/types/src/font/TableFileAdvanceBuilder.d.ts +9 -0
  295. package/types/src/font/_FontUtils.d.ts +11 -4
  296. package/types/src/font/_FontsVersion.d.ts +7 -0
  297. package/types/src/font/index.d.ts +1 -3
  298. package/types/src/font/platform.browser.d.ts +15 -0
  299. package/types/src/font/platform.node.d.ts +5 -0
  300. package/types/src/group/Group.d.ts +5 -0
  301. package/types/src/group/GroupMovableCollection.d.ts +4 -0
  302. package/types/src/history/IHistory.d.ts +19 -2
  303. package/types/src/hyperlink/IHyperlink.d.ts +7 -1
  304. package/types/src/index.d.ts +3 -0
  305. package/types/src/license/LicenseManager.d.ts +21 -0
  306. package/types/src/license/_Utils.d.ts +18 -1
  307. package/types/src/license/runtime.browser.d.ts +5 -0
  308. package/types/src/license/runtime.node.d.ts +10 -0
  309. package/types/src/listener/IListener.d.ts +14 -2
  310. package/types/src/listener/ListenerEmitter.d.ts +11 -3
  311. package/types/src/movable/IMovable.d.ts +28 -15
  312. package/types/src/movable/IMovableCollection.d.ts +1 -1
  313. package/types/src/movable/Movable.d.ts +12 -1
  314. package/types/src/movable/MovableCollection.d.ts +7 -3
  315. package/types/src/movable/_InsertableCollection.d.ts +16 -5
  316. package/types/src/named/INamed.d.ts +30 -0
  317. package/types/src/named/INamedCollection.d.ts +2 -2
  318. package/types/src/named/NamedCollection.d.ts +16 -4
  319. package/types/src/numFmt/NumberFormatParser.d.ts +5 -0
  320. package/types/src/outline/IOutline.d.ts +1 -1
  321. package/types/src/outline/Outline.d.ts +2 -2
  322. package/types/src/picture/IPicture.d.ts +98 -1
  323. package/types/src/picture/Picture.d.ts +15 -7
  324. package/types/src/pivot/IPivotTable.d.ts +2 -2
  325. package/types/src/pivot/PivotTable.d.ts +5 -5
  326. package/types/src/primitives/ReferenceRange.d.ts +2 -2
  327. package/types/src/print/IPageLayout.d.ts +635 -0
  328. package/types/src/print/PageLayout.d.ts +258 -0
  329. package/types/src/print/index.d.ts +1 -1
  330. package/types/src/protectedRange/IProtectedRange.d.ts +2 -2
  331. package/types/src/protection/IProtection.d.ts +6 -0
  332. package/types/src/protection/PasswordHasher.d.ts +13 -0
  333. package/types/src/richData/IRichDataKind.d.ts +22 -0
  334. package/types/src/richData/RichDataRegistry.d.ts +57 -0
  335. package/types/src/richData/RichText.d.ts +59 -0
  336. package/types/src/richData/index.d.ts +3 -0
  337. package/types/src/scripting/IModule.d.ts +3 -3
  338. package/types/src/scripting/IScript.d.ts +2 -2
  339. package/types/src/scripting/ITypedFunction.d.ts +1 -1
  340. package/types/src/scripting/declarations.d.ts +3 -0
  341. package/types/src/selection/ChartElementSelection.d.ts +39 -0
  342. package/types/src/selection/IChartElementSelection.d.ts +103 -0
  343. package/types/src/selection/IItemSelection.d.ts +131 -0
  344. package/types/src/selection/IMovableSelection.d.ts +6 -34
  345. package/types/src/selection/IRangeSelection.d.ts +4 -4
  346. package/types/src/selection/ItemSelection.d.ts +49 -0
  347. package/types/src/selection/MovableSelection.d.ts +11 -30
  348. package/types/src/selection/RangeSelection.d.ts +4 -4
  349. package/types/src/selection/index.d.ts +3 -0
  350. package/types/src/shape/IShape.d.ts +2 -1
  351. package/types/src/shape/IShapeStyle.d.ts +5 -31
  352. package/types/src/shape/ITextBoxStyle.d.ts +85 -0
  353. package/types/src/shape/ShapeStyleUtils.d.ts +13 -1
  354. package/types/src/shape/_Connectors.d.ts +9 -9
  355. package/types/src/shape/_ShapeStyle.d.ts +9 -0
  356. package/types/src/shape/index.d.ts +1 -0
  357. package/types/src/sheet/CellRegion.d.ts +37 -3
  358. package/types/src/sheet/IOpaqueSheet.d.ts +46 -0
  359. package/types/src/sheet/ISheet.d.ts +81 -1078
  360. package/types/src/sheet/IWorksheet.d.ts +1514 -0
  361. package/types/src/sheet/{ISheetCollection.d.ts → IWorksheetCollection.d.ts} +37 -12
  362. package/types/src/sheet/NamedCellRange.d.ts +2 -2
  363. package/types/src/sheet/NamedRange.d.ts +2 -2
  364. package/types/src/sheet/OpaqueSheet.d.ts +114 -0
  365. package/types/src/sheet/SheetCell.d.ts +24 -27
  366. package/types/src/sheet/SheetRange.d.ts +42 -11
  367. package/types/src/sheet/SheetRanges.d.ts +12 -10
  368. package/types/src/sheet/{Sheet.d.ts → Worksheet.d.ts} +510 -144
  369. package/types/src/sheet/WorksheetCollection.d.ts +39 -0
  370. package/types/src/sheet/_Anomalies.d.ts +109 -0
  371. package/types/src/sheet/_AnomalyFormulaChecks.d.ts +125 -0
  372. package/types/src/sheet/_AnomalyLabelChecks.d.ts +21 -0
  373. package/types/src/sheet/_CellBuffer.d.ts +11 -1
  374. package/types/src/sheet/_CopyUtils.d.ts +13 -6
  375. package/types/src/sheet/_IgnoredErrors.d.ts +46 -0
  376. package/types/src/sheet/_InvalidSheetRange.d.ts +3 -2
  377. package/types/src/sheet/_Kinds.d.ts +34 -0
  378. package/types/src/sheet/_Labels.d.ts +38 -0
  379. package/types/src/sheet/_RangeStateSweep.d.ts +2 -3
  380. package/types/src/sheet/_ScalarListFactory.d.ts +1 -1
  381. package/types/src/sheet/_SheetAutoFillUtils.d.ts +3 -3
  382. package/types/src/sheet/_SheetAutoFitUtils.d.ts +3 -3
  383. package/types/src/sheet/_SheetChangeEvent.d.ts +72 -0
  384. package/types/src/sheet/_SheetCoords.d.ts +3 -3
  385. package/types/src/sheet/_SheetEvents.d.ts +1 -1
  386. package/types/src/sheet/_SheetFilterUtils.d.ts +6 -6
  387. package/types/src/sheet/_SheetIntents.d.ts +32 -14
  388. package/types/src/sheet/_SheetMessages.d.ts +1 -1
  389. package/types/src/sheet/_SheetMutations.d.ts +7 -8
  390. package/types/src/sheet/_SheetSortUtils.d.ts +2 -2
  391. package/types/src/sheet/_SheetStateReader.d.ts +18 -0
  392. package/types/src/sheet/_SheetStateTypes.d.ts +60 -1
  393. package/types/src/sheet/_SheetUtils.d.ts +20 -19
  394. package/types/src/sheet/_WatchAnchor.d.ts +15 -2
  395. package/types/src/sheet/clipboard/RangeClipboardItems.d.ts +4 -4
  396. package/types/src/sheet/clipboard/SheetHTMLTableParser.d.ts +3 -3
  397. package/types/src/sheet/clipboard/SheetHTMLTableWriter.d.ts +3 -3
  398. package/types/src/sheet/index.d.ts +5 -2
  399. package/types/src/sheet/style/SheetCellStyle.d.ts +67 -86
  400. package/types/src/sheet/style/SheetDirectStyle.d.ts +3 -3
  401. package/types/src/sheet/style/SheetNamedStyle.d.ts +2 -0
  402. package/types/src/sheet/style/_DigitWidth.d.ts +7 -0
  403. package/types/src/sheet/style/_Resolvers.d.ts +3 -2
  404. package/types/src/sheet/style/_StyleUtils.d.ts +7 -43
  405. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -2
  406. package/types/src/sheetHeader/SheetCellHeader.d.ts +2 -0
  407. package/types/src/sheetHeader/SheetCellHeaderRange.d.ts +2 -0
  408. package/types/src/sheetHeader/SheetCellHeaderRanges.d.ts +2 -0
  409. package/types/src/sheetHeader/SheetHeader.d.ts +7 -6
  410. package/types/src/sheetHeader/_HeaderUtils.d.ts +2 -3
  411. package/types/src/sheetProtection/{ISheetProtection.d.ts → IWorksheetProtection.d.ts} +28 -28
  412. package/types/src/sheetProtection/WorksheetProtection.d.ts +51 -0
  413. package/types/src/sheetProtection/index.d.ts +1 -1
  414. package/types/src/sheetView/{ISheetView.d.ts → IWorksheetView.d.ts} +168 -61
  415. package/types/src/sheetView/WorksheetView.d.ts +139 -0
  416. package/types/src/sheetView/_SheetViewUtils.d.ts +5 -3
  417. package/types/src/sheetView/index.d.ts +1 -1
  418. package/types/src/slicer/ISlicer.d.ts +2 -2
  419. package/types/src/sort/ISort.d.ts +35 -5
  420. package/types/src/style/ICellStyle.d.ts +56 -44
  421. package/types/src/style/_BuiltInStyleDefs.d.ts +4 -3
  422. package/types/src/table/AnchoredTable.d.ts +23 -7
  423. package/types/src/table/AutoTable.d.ts +1 -1
  424. package/types/src/table/ITable.d.ts +32 -19
  425. package/types/src/table/_NamedTable.d.ts +3 -3
  426. package/types/src/table/_NamedTableSource.d.ts +2 -2
  427. package/types/src/text/IText.d.ts +4 -51
  428. package/types/src/text/TextEngine.d.ts +34 -0
  429. package/types/src/text/TextFrame.d.ts +4 -2
  430. package/types/src/text/TextRun.d.ts +3 -2
  431. package/types/src/text/TextWrapper.d.ts +32 -26
  432. package/types/src/text/_TextUtils.d.ts +5 -5
  433. package/types/src/text/_TextWrapperFallback.d.ts +49 -0
  434. package/types/src/text/impl/TabStrategy.d.ts +3 -1
  435. package/types/src/text/richtext/IRichText.d.ts +16 -2
  436. package/types/src/text/richtext/index.d.ts +0 -1
  437. package/types/src/theme/ITheme.d.ts +108 -7
  438. package/types/src/theme/ThemeCollection.d.ts +5 -0
  439. package/types/src/theme/_OfficeFontScheme.d.ts +8 -0
  440. package/types/src/transaction/ITransaction.d.ts +20 -1
  441. package/types/src/transaction/Transaction.d.ts +8 -1
  442. package/types/src/transaction/_BatchHandle.d.ts +118 -0
  443. package/types/src/type/AbstractCollection.d.ts +4 -13
  444. package/types/src/type/ICollection.d.ts +17 -4
  445. package/types/src/type/IProperties.d.ts +1 -1
  446. package/types/src/utils/_CSSUtils.d.ts +1 -1
  447. package/types/src/wasm/_fontsWasm.d.ts +7 -0
  448. package/types/src/wasm/_sdkWasm.d.ts +1 -1
  449. package/types/src/wasm/fontsWasm.d.ts +32 -0
  450. package/types/src/wasm/index.d.ts +1 -0
  451. package/types/src/wasm/loader.browser.d.ts +9 -0
  452. package/types/src/wasm/loader.node.d.ts +9 -0
  453. package/types/src/wasm/sdkWasm.d.ts +6 -3
  454. package/types/src/workbook/IWorkbook.d.ts +229 -38
  455. package/types/src/workbook/Workbook.d.ts +77 -22
  456. package/types/src/workbook/WorkbookRange.d.ts +2 -2
  457. package/types/src/workbook/WorkbookRanges.d.ts +2 -2
  458. package/types/src/workbook/_WorkbookIntents.d.ts +2 -2
  459. package/types/src/workbook/_WorkbookMessages.d.ts +5 -0
  460. package/types/src/workbookView/IWorkbookView.d.ts +82 -0
  461. package/types/src/workbookView/WorkbookView.d.ts +21 -0
  462. package/browser/esm/BbSmt62FpFIpoVzu.mjs +0 -392
  463. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +0 -412
  464. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +0 -7
  465. package/browser/esm/DUvUK61b2_4pf4tG.mjs +0 -484
  466. package/node/esm/CCouEwT37f08qO3V.mjs +0 -7
  467. package/node/esm/CT0CN82y0_Qgoryk.mjs +0 -7568
  468. package/node/esm/DHUADiCmxNQS1ARz.mjs +0 -417
  469. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +0 -403
  470. package/types/src/chart/_ChartXml.d.ts +0 -70
  471. package/types/src/collections/OverlappingRangeIterator.d.ts +0 -87
  472. package/types/src/collections/_RangeSweep.d.ts +0 -97
  473. package/types/src/font/CanvasFontMeasurer.d.ts +0 -25
  474. package/types/src/font/FontKitFontMeasurer.d.ts +0 -11
  475. package/types/src/font/SimpleFontMeasurer.d.ts +0 -4
  476. package/types/src/print/IPrint.d.ts +0 -212
  477. package/types/src/sheet/SheetCollection.d.ts +0 -29
  478. package/types/src/sheetProtection/SheetProtection.d.ts +0 -51
  479. package/types/src/sheetView/SheetView.d.ts +0 -122
  480. package/types/src/text/richtext/IStyledFont.d.ts +0 -330
@@ -1,4 +1,5 @@
1
1
  import { IFont } from './IFont';
2
+ import { SdkWasmExports } from '../wasm';
2
3
  /**
3
4
  * One face's advances and vertical metrics, per em: one table per family, weight and style that
4
5
  * serves every size.
@@ -11,8 +12,12 @@ import { IFont } from './IFont';
11
12
  *
12
13
  * Vertical metrics follow GDI: the font is realized at a whole-pixel em (`round(px)`), and the
13
14
  * OS/2 `winAscent` and `winDescent` are scaled to it and rounded.
15
+ *
16
+ * A table given its `.hinted.json` ({@link applyHinting}) measures widths as GDI does too, and so
17
+ * as Excel does: each character's design-unit advance rounded at that whole-pixel em, plus the
18
+ * delta the original font's hinting moves it by there. Without one, widths are fractional.
14
19
  */
15
- export declare class AdvanceTable {
20
+ export declare class AdvanceTable implements IFont.AdvanceTable {
16
21
  /** The family the table measures, as a style names it (`Calibri`, not its twin `Carlito`). */
17
22
  readonly family: string;
18
23
  /** The CSS weight, 400 regular and 700 bold. */
@@ -20,6 +25,19 @@ export declare class AdvanceTable {
20
25
  readonly italic: boolean;
21
26
  private readonly _vertical;
22
27
  private readonly _perEm;
28
+ /** Design-unit advances, kept from a `.metrics.json`: what hinted widths round from. */
29
+ private readonly _units;
30
+ private _unitsPerEm;
31
+ /** Hinted deltas by ppem, then by codepoint; set once {@link applyHinting} has run. */
32
+ private _hinting;
33
+ /** Measures a character the table lacks, per em; see {@link setMeasureMissing}. */
34
+ private _measureMissing;
35
+ /** Excel's row pitch per integer ppem from `first`; set once {@link applyRows} has run. */
36
+ private _rows;
37
+ /** The table in the wasm, built on first ask from this table's data; see {@link native}. */
38
+ private _native;
39
+ /** Per-em advances recorded since the twin was built, written to it on the next ask. */
40
+ private _nativePending;
23
41
  constructor(face: AdvanceTable.Face, vertical: AdvanceTable.VerticalPerEm);
24
42
  /**
25
43
  * A table from a captured `.metrics.json` (format `sheetxl-font-metrics/1`).
@@ -27,6 +45,26 @@ export declare class AdvanceTable {
27
45
  * @throws when the format is not one this reads.
28
46
  */
29
47
  static fromJSON(json: AdvanceTable.JSON): AdvanceTable;
48
+ /**
49
+ * Makes this a hinted table: widths from now on are GDI's whole pixels, from the companion
50
+ * `.hinted.json` (format `sheetxl-font-hinting/1`) captured from the original font.
51
+ *
52
+ * @throws when the format is not one this reads, or the file is for another face.
53
+ */
54
+ applyHinting(json: AdvanceTable.HintedJSON): void;
55
+ /** Whether widths are GDI's hinted whole pixels ({@link applyHinting}). */
56
+ get isHinted(): boolean;
57
+ /**
58
+ * Gives the table Excel's own row heights, from the companion `.rows.json` (format
59
+ * `sheetxl-font-rows/1`) captured from Excel: {@link metrics} then reports the pitch Excel
60
+ * autofits a row of this face to at each size. GDI's box plus 2 is Excel's up to about 22 pt
61
+ * and runs under it from there, by a per-font amount no table predicts.
62
+ *
63
+ * @throws when the format is not one this reads, or fewer than two sizes are listed.
64
+ */
65
+ applyRows(json: AdvanceTable.RowsJSON): void;
66
+ /** Whether row heights are Excel's captured ones ({@link applyRows}). */
67
+ get hasRows(): boolean;
30
68
  /** The number of characters with an advance. */
31
69
  get size(): number;
32
70
  /** The advance of `codepoint` per em, or `undefined` when the table has none. */
@@ -36,6 +74,33 @@ export declare class AdvanceTable {
36
74
  * (a canvas) fills a table.
37
75
  */
38
76
  set(entries: Iterable<readonly [codepoint: number, perEm: number]>): void;
77
+ /** Records one per-em advance, and queues it for the wasm twin when there is one. */
78
+ private _record;
79
+ /**
80
+ * This table in the wasm (the binding's `MetricsTable`), for the Rust wrapper to measure from:
81
+ * filled once from the same advances, hinted deltas and row pitches, and kept in step with them
82
+ * afterwards, so the wrapper measures exactly what {@link width} and {@link metrics} do. The
83
+ * table stays the owner; the twin is its view, freed by {@link release}.
84
+ *
85
+ * @param text Measured in first, character by character, when the table grows on demand
86
+ * ({@link setMeasureMissing}): the twin cannot ask back across the boundary.
87
+ */
88
+ native(wasm: SdkWasmExports, text?: string): AdvanceTable.Native;
89
+ /** Whether {@link native} has built the wasm twin. */
90
+ get hasNative(): boolean;
91
+ /**
92
+ * Frees the wasm twin, if there is one; the next {@link native} builds it again. The wasm has
93
+ * no garbage collector, so a table that changes what it would answer ({@link applyHinting},
94
+ * {@link applyRows}) or goes out of use lets its twin go here.
95
+ */
96
+ release(): void;
97
+ private _buildNative;
98
+ /**
99
+ * Makes the table grow on demand: a character it lacks is measured by `measure` (its advance per
100
+ * em, or `undefined` when it cannot say) the first time it is asked for, and remembered. How a
101
+ * canvas fills a table, since no table built from one can list every character up front.
102
+ */
103
+ setMeasureMissing(measure: ((text: string) => number | undefined) | null): void;
39
104
  /** The characters of `text` with no advance, each once, in first-seen order. */
40
105
  missing(text: string): string[];
41
106
  /**
@@ -43,6 +108,8 @@ export declare class AdvanceTable {
43
108
  * super/subscript scale, then `letterSpacing` between characters.
44
109
  */
45
110
  width(text: string, px: number, options?: AdvanceTable.WidthOptions): number;
111
+ /** One character's advance in px: hinted whole pixels when the table is hinted. */
112
+ private _advancePx;
46
113
  /** The face's whole-px vertical metrics at `px` pixels per em. */
47
114
  metrics(px: number): IFont.Metrics;
48
115
  /**
@@ -52,29 +119,76 @@ export declare class AdvanceTable {
52
119
  underline(px: number): AdvanceTable.LineRule | null;
53
120
  /** The strikeout at `px`, as {@link underline}. */
54
121
  strikeout(px: number): AdvanceTable.LineRule | null;
55
- /** {@link width} and {@link metrics} together, the shape `TextWrapper` measures with. */
56
- measure(text: string, px: number, options?: AdvanceTable.WidthOptions): IFont.ExtendedMetrics;
122
+ /**
123
+ * {@link width} and {@link metrics} together, with the underline and strikeout thickness in
124
+ * whole px as they are drawn (at least 1).
125
+ */
126
+ measure(text: string, px: number, options?: AdvanceTable.MeasureOptions): IFont.ExtendedMetrics;
127
+ /**
128
+ * The letter-spacing that paints `text` at `width` when the platform paints it with
129
+ * `options.paint`'s advances: the difference spread between the characters (CSS spacing is
130
+ * added after each character but the last, as {@link width} counts it).
131
+ */
132
+ private _renderLetterSpacing;
57
133
  }
58
134
  export declare namespace AdvanceTable {
59
135
  /** The `format` of a `.metrics.json` this version reads. */
60
136
  const FORMAT = "sheetxl-font-metrics/1";
61
- /** Which face a table measures. */
62
- interface Face {
137
+ /** The `format` of a `.hinted.json` this version reads. */
138
+ const HINTED_FORMAT = "sheetxl-font-hinting/1";
139
+ /**
140
+ * A captured `.hinted.json`, the companion of a `.metrics.json`: where the original font's
141
+ * hinting moves an advance off its rounded value, by size.
142
+ */
143
+ interface HintedJSON {
144
+ format: typeof HINTED_FORMAT;
63
145
  family: string;
64
146
  weight: number;
65
147
  italic: boolean;
148
+ /** The original font the hinting programs were run from. */
149
+ source?: {
150
+ family: string;
151
+ version?: string;
152
+ };
153
+ /** The units the table's advances are in; must match the table's. */
154
+ unitsPerEm: number;
155
+ /**
156
+ * `[ppem, [codepoint, delta, codepoint, delta, ...]]`: whole px over the advance rounded at
157
+ * that ppem. A size not listed moves no advance.
158
+ */
159
+ sizes: [number, number[]][];
66
160
  }
67
- interface WidthOptions {
68
- /** Px added between characters. */
69
- letterSpacing?: number;
70
- /** Measure as superscript or subscript text. */
71
- superSub?: boolean;
161
+ /** The `format` of a `.rows.json` this version reads. */
162
+ const ROWS_FORMAT = "sheetxl-font-rows/1";
163
+ /**
164
+ * A captured `.rows.json`, the companion of a `.metrics.json`: Excel's autofit row height for
165
+ * the face, in px at 96 dpi, at every integer ppem from `firstPpem` up to where the row reaches
166
+ * Excel's 409 pt cap (`private-assets/design/rust/tools/capture-excel-row-heights.ps1`).
167
+ */
168
+ interface RowsJSON {
169
+ format: typeof ROWS_FORMAT;
170
+ family: string;
171
+ weight: number;
172
+ italic: boolean;
173
+ source?: {
174
+ application?: string;
175
+ dpi?: number;
176
+ };
177
+ firstPpem: number;
178
+ /** `pitches[i]` is the pitch at `firstPpem + i`. */
179
+ pitches: number[];
72
180
  }
73
- /** A horizontal rule (underline, strikeout): offset above the baseline and thickness. */
74
- interface LineRule {
75
- readonly position: number;
76
- readonly thickness: number;
181
+ /** Excel's row pitch per integer ppem, from `first` on. */
182
+ interface RowPitches {
183
+ readonly first: number;
184
+ readonly pitches: readonly number[];
77
185
  }
186
+ /** A table's twin in the wasm: the binding's `MetricsTable` (`crates/sheetxl-wasm-sdk`). */
187
+ type Native = InstanceType<SdkWasmExports['MetricsTable']>;
188
+ type Face = IFont.AdvanceTable.Face;
189
+ type WidthOptions = IFont.AdvanceTable.WidthOptions;
190
+ type MeasureOptions = IFont.AdvanceTable.MeasureOptions;
191
+ type LineRule = IFont.AdvanceTable.LineRule;
78
192
  /** Vertical metrics per em. */
79
193
  interface VerticalPerEm {
80
194
  /** OS/2 `winAscent` per em. */
@@ -0,0 +1,54 @@
1
+ import { AdvanceBuilder } from './AdvanceBuilder';
2
+ import { AdvanceTable } from './AdvanceTable';
3
+ /** The part of a 2D context the builder uses. */
4
+ export interface MeasureContext {
5
+ font: string;
6
+ measureText(text: string): {
7
+ width: number;
8
+ fontBoundingBoxAscent?: number;
9
+ fontBoundingBoxDescent?: number;
10
+ };
11
+ }
12
+ /**
13
+ * Builds tables in a browser for families we have no captured table for, by
14
+ * measuring with a canvas: each character once, at one size, stored per em, so the table serves
15
+ * every size. Characters beyond printable ASCII are measured the first time text uses them.
16
+ *
17
+ * @remarks
18
+ * Advances are the browser's own (unhinted, fractional), which is what it paints with. The vertical
19
+ * metrics come from the canvas's font box and are the only approximate numbers: a canvas does not
20
+ * expose the OS/2 `win` metrics Excel sizes rows with.
21
+ *
22
+ * A family the browser does not have gets no table. Cells are painted by the style's family list,
23
+ * so the browser paints such a family as the first fallback it has, while the bare name measures
24
+ * as the browser's default face (Michael's `testing_b`: measured as Times New Roman, painted as
25
+ * Arial, clipped). The collection measures the fallbacks instead, in the browser's order, and a
26
+ * CSS generic name among them is built here as the face the browser paints for it.
27
+ */
28
+ export declare class CanvasAdvanceBuilder implements AdvanceBuilder {
29
+ readonly name = "canvas";
30
+ readonly kind = "exact";
31
+ private readonly _createContext;
32
+ private _context;
33
+ /**
34
+ * @param createContext Where to measure; a 2D context of an offscreen canvas by default.
35
+ */
36
+ constructor(createContext?: () => MeasureContext | null);
37
+ build(face: AdvanceTable.Face): Promise<AdvanceTable | null>;
38
+ /**
39
+ * What the browser paints `face` with when a cell names `families`: the same canvas measure, of
40
+ * the whole CSS stack, with no question asked about which face answers. Where the cell's own
41
+ * table is Excel's hinted one, this is what the hinted widths are reconciled to.
42
+ */
43
+ paint(face: AdvanceTable.Face, families: readonly string[]): Promise<AdvanceTable | null>;
44
+ /**
45
+ * Measures a character a captured table lacks as the browser paints it in `face`: the face
46
+ * itself when installed, or the browser's fallback for that character.
47
+ */
48
+ measureMissing(face: AdvanceTable.Face): ((text: string) => number | undefined) | null;
49
+ /** Whether the browser has `family`, by the same telltale {@link build} uses; a CSS generic always. */
50
+ isInstalled(family: string): boolean | undefined;
51
+ private _measure;
52
+ private _ctx;
53
+ }
54
+ //# sourceMappingURL=CanvasAdvanceBuilder.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { IFont } from './IFont';
2
+ /** {@inheritDoc IFont.captureTables} */
3
+ export declare function captureTables(bytes: Uint8Array, options?: IFont.CaptureOptions): Promise<IFont.CapturedFace[]>;
4
+ //# sourceMappingURL=FontCapture.d.ts.map
@@ -20,8 +20,9 @@ export declare class FontCollection implements IFontCollection {
20
20
  private _builders;
21
21
  private readonly _entries;
22
22
  private readonly _resolutions;
23
+ /** What the platform paints each requested stack with, by stack; see {@link _paint}. */
24
+ private readonly _paints;
23
25
  private readonly _loading;
24
- private _builtins;
25
26
  private readonly _emitter;
26
27
  private _fontList;
27
28
  private readonly _fontsByFamily;
@@ -30,15 +31,35 @@ export declare class FontCollection implements IFontCollection {
30
31
  * @param builders Where tables come from, tried in order.
31
32
  */
32
33
  constructor(builders: readonly AdvanceBuilder[]);
34
+ /**
35
+ * Starts the text engine loading (the sdk's wasm, or the TypeScript wrapper where that cannot
36
+ * load), as one of the loads {@link whenReady} waits for: nothing wraps text until one of them
37
+ * is there, and every table here gets its twin in the wasm on first use. Its arrival changes no
38
+ * size, so it is not a collection change.
39
+ */
40
+ private _loadNative;
33
41
  /** {@inheritDoc IFontCollection.getByName} */
34
42
  getByName(family: string, options?: IFontCollection.GetByNameOptions): IFontCollection.Resolution;
43
+ private _loadingAnswers;
44
+ /** Counts the answers given while their face was still loading; see {@link loadingAnswers}. */
45
+ private _answer;
46
+ /**
47
+ * How many lookups so far were answered with a stand-in because the face was loading. A
48
+ * measurement that reads this before and after knows whether it used one, and so whether it
49
+ * is to be taken again when the face lands (a sheet's pending autofits).
50
+ */
51
+ get loadingAnswers(): number;
35
52
  /** {@inheritDoc IFontCollection.load} */
36
53
  load(faces: readonly (string | IFontCollection.FaceRequest)[]): Promise<void>;
37
54
  /** {@inheritDoc IFontCollection.whenReady} */
38
55
  whenReady(): Promise<void>;
39
56
  /** {@inheritDoc IFontCollection.isLoading} */
40
57
  isLoading(): boolean;
41
- /** {@inheritDoc IFontCollection.setAdvanceBuilders} */
58
+ /**
59
+ * Replaces where tables come from, tried in order, and forgets every table built before; the
60
+ * built-in Calibri and Arial stay. Not on the interface: tables are the sdk's to make, and this
61
+ * is for tests that pin measurement to a source.
62
+ */
42
63
  setAdvanceBuilders(builders: readonly AdvanceBuilder[]): void;
43
64
  /** {@inheritDoc IFontCollection.getFontList} */
44
65
  getFontList(): readonly IFontCollection.FontHandle[];
@@ -49,9 +70,39 @@ export declare class FontCollection implements IFontCollection {
49
70
  /** {@inheritDoc IListener.ISource.addListeners} */
50
71
  addListeners(listeners: IFontCollection.IListeners, options?: IListener.Options): IListener.Remove;
51
72
  get isIFontCollection(): true;
73
+ /**
74
+ * Whether the platform paints `family` as itself, as the first builder that can tell says (a
75
+ * browser's canvas); available where none can (Node paints nothing).
76
+ */
77
+ private _isInstalled;
52
78
  private _seedBuiltins;
79
+ /**
80
+ * Refines a built-in table the first time it is used: its hinted widths and Excel's row heights
81
+ * from the shipped resources. Where those cannot be reached (a browser that serves no resource
82
+ * root), the platform's own measure of the family, if it has the family installed, replaces it:
83
+ * the widths the browser paints with, a pixel or so off Excel's, rather than the bare unhinted
84
+ * table.
85
+ */
86
+ private _refine;
53
87
  private _resolve;
88
+ /**
89
+ * The first family with a table of its own, then the first family's relation, then the first
90
+ * fallback with any table but a built-in one; failing all, the first family's built-in answer.
91
+ */
92
+ private _resolveFirst;
54
93
  private _ensure;
94
+ /**
95
+ * Lets a captured table measure the characters it lacks on the platform, when a builder can:
96
+ * otherwise a character outside the captured font (a symbol, an emoji) measures as nothing.
97
+ */
98
+ private _measureMissing;
55
99
  private _changed;
100
+ /**
101
+ * `measured` with what the platform paints the requested stack with, when a builder can see
102
+ * that and it is not the measure itself: a table measured from the platform's own paint
103
+ * (`'exact'`) needs none. The paint loads once per stack, weight and style, and the resolution
104
+ * is `'loading'` until it lands, like any closer answer.
105
+ */
106
+ private _withPaint;
56
107
  }
57
108
  //# sourceMappingURL=FontCollection.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { AdvanceBuilder } from './AdvanceBuilder';
2
+ /**
3
+ * What a font platform module provides. The `@sheetxl/sdk/font/platform` conditional export
4
+ * resolves to `platform.node.ts` (`node`, `default`) or `platform.browser.ts` (`browser`); the
5
+ * facade below is the one place the sdk reads it, the way `LicenseManager` reads
6
+ * `license/runtime`. Nothing outside the package imports the subpath.
7
+ */
8
+ export interface FontPlatformModule {
9
+ /** The device scale for the current environment. */
10
+ getDeviceScale(): number;
11
+ /** The table builders this platform adds beyond the shipped tables, tried after them in order. */
12
+ getAdvanceBuilders(): AdvanceBuilder[];
13
+ }
14
+ /**
15
+ * The font platform the sdk runs on, behind one facade: the device scale, and the table builders
16
+ * the platform adds (a canvas in a browser, none in Node yet). Internal: measuring goes through
17
+ * `IFontCollection`, and `IFont.getDeviceScale` is the public face of the scale.
18
+ */
19
+ export declare const FontPlatform: FontPlatformModule;
20
+ //# sourceMappingURL=FontPlatform.d.ts.map
@@ -6,4 +6,9 @@ export declare const DefaultFontSizes: readonly number[];
6
6
  * Searches an array of numbers for the next value.
7
7
  */
8
8
  export declare function findNextFontSize(size: number, increase?: boolean, steps?: readonly number[]): number;
9
+ /**
10
+ * The size, as a fraction of the font's, that superscript and subscript text (a nonzero
11
+ * {@link IFontStyle.getBaseline | baseline}) is drawn at.
12
+ */
13
+ export declare const SuperSubScale: number;
9
14
  //# sourceMappingURL=FontUtils.d.ts.map