@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
@@ -92,51 +92,56 @@ export declare namespace IFont {
92
92
  */
93
93
  type Charset = number;
94
94
  /**
95
- * Specifies the style of underline applied to text.
95
+ * Indicate how and if a line will be drawing horizontally through the middle of the text.
96
96
  */
97
- const UnderlineStyle: {
97
+ const StrikeStyle: {
98
98
  /**
99
- * No underline.
99
+ * No strike-through
100
100
  */
101
101
  readonly None: "none";
102
102
  /**
103
- * A double underline.
104
- */
105
- readonly Double: "double";
106
- /**
107
- * A double underline used in accounting contexts (typically thicker and below the descenders).
108
- */
109
- readonly DoubleAccounting: "doubleAccounting";
110
- /**
111
- * A single underline.
103
+ * A single line.
112
104
  */
113
105
  readonly Single: "single";
114
106
  /**
115
- * A single underline used in accounting contexts (typically below the descenders).
107
+ * A double line.
116
108
  */
117
- readonly SingleAccounting: "singleAccounting";
109
+ readonly Double: "double";
118
110
  };
119
- type UnderlineStyle = typeof UnderlineStyle[keyof typeof UnderlineStyle];
111
+ type StrikeStyle = typeof StrikeStyle[keyof typeof StrikeStyle];
120
112
  /**
121
- * Vertical alignment of text within a line.
122
- * @see
123
- * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align}
113
+ * How text is underlined.
114
+ *
115
+ * @remarks
116
+ * A cell draws `none`, `single`, `double` and the two accounting underlines; drawing text (charts,
117
+ * shapes) draws all but the accounting ones.
124
118
  */
125
- const VerticalAlignment: {
126
- /**
127
- * Aligns the baseline of the cell with the baseline of all other cells in the row that are baseline-aligned.
128
- */
129
- readonly Baseline: "baseline";
130
- /**
131
- * Aligns the baseline of the element with the subscript-baseline of its parent.
132
- */
133
- readonly Sub: "sub";
134
- /**
135
- * Aligns the baseline of the element with the superscript-baseline of its parent.
136
- */
137
- readonly Super: "super";
119
+ const UnderlineStyle: {
120
+ readonly None: "none";
121
+ /** Each word underlined, the spaces between them not. */
122
+ readonly Words: "words";
123
+ readonly Single: "single";
124
+ readonly Double: "double";
125
+ /** A single line below the descenders, the width of the cell. */
126
+ readonly SingleAccounting: "singleAccounting";
127
+ /** A double line below the descenders, the width of the cell. */
128
+ readonly DoubleAccounting: "doubleAccounting";
129
+ readonly Heavy: "heavy";
130
+ readonly Dotted: "dotted";
131
+ readonly DottedHeavy: "dottedHeavy";
132
+ readonly Dash: "dash";
133
+ readonly DashHeavy: "dashHeavy";
134
+ readonly DashLong: "dashLong";
135
+ readonly DashLongHeavy: "dashLongHeavy";
136
+ readonly DotDash: "dotDash";
137
+ readonly DotDashHeavy: "dotDashHeavy";
138
+ readonly DotDotDash: "dotDotDash";
139
+ readonly DotDotDashHeavy: "dotDotDashHeavy";
140
+ readonly Wavy: "wavy";
141
+ readonly WavyHeavy: "wavyHeavy";
142
+ readonly WavyDouble: "wavyDouble";
138
143
  };
139
- type VerticalAlignment = typeof VerticalAlignment[keyof typeof VerticalAlignment];
144
+ type UnderlineStyle = typeof UnderlineStyle[keyof typeof UnderlineStyle];
140
145
  /**
141
146
  * Advanced text metrics.
142
147
  */
@@ -145,6 +150,13 @@ export declare namespace IFont {
145
150
  * This is the lineHeight and includes the lineGap
146
151
  */
147
152
  readonly lineHeight: number;
153
+ /**
154
+ * The CSS `letter-spacing`, in the same px as `width`, that makes the platform paint the
155
+ * measured text exactly `width` wide: the difference between the measure (Excel's hinted
156
+ * widths) and what the platform paints with (a browser's fractional advances), spread between
157
+ * the characters. `0` where paint and measure agree, or where nothing paints (Node).
158
+ */
159
+ readonly renderLetterSpacing?: number;
148
160
  }
149
161
  interface Metrics {
150
162
  readonly underlinePosition?: number;
@@ -173,47 +185,165 @@ export declare namespace IFont {
173
185
  /** The font's descent below the baseline in whole px — GDI's `tmDescent` (OS/2 `winDescent`). */
174
186
  readonly descent: number;
175
187
  }
188
+ /**
189
+ * One face's measures, serving every size: what {@link IFontCollection.getByName} answers with.
190
+ *
191
+ * @remarks
192
+ * Advances are per em and vertical metrics follow GDI, so a table measures as Excel does: a
193
+ * shipped face measures GDI's hinted whole pixels and sizes rows as Excel autofits them. Tables
194
+ * are built by the collection from the shipped files or the platform; they are read here, never
195
+ * made or changed.
196
+ */
197
+ interface AdvanceTable {
198
+ /** The family the table measures, as a style names it. */
199
+ readonly family: string;
200
+ /** The CSS weight, 400 regular and 700 bold. */
201
+ readonly weight: number;
202
+ readonly italic: boolean;
203
+ /** Whether widths are GDI's hinted whole pixels. */
204
+ readonly isHinted: boolean;
205
+ /** Whether row heights are Excel's own captured ones. */
206
+ readonly hasRows: boolean;
207
+ /** The number of characters with an advance. */
208
+ readonly size: number;
209
+ /** The advance of `codepoint` per em, or `undefined` when the table has none. */
210
+ advance(codepoint: number): number | undefined;
211
+ /** The characters of `text` with no advance, each once, in first-seen order. */
212
+ missing(text: string): string[];
213
+ /**
214
+ * The advance width of `text` in px at `px` pixels per em: the advances summed, then the
215
+ * super/subscript scale, then `letterSpacing` between characters.
216
+ */
217
+ width(text: string, px: number, options?: AdvanceTable.WidthOptions): number;
218
+ /** The face's whole-px vertical metrics at `px` pixels per em. */
219
+ metrics(px: number): Metrics;
220
+ /**
221
+ * The underline at `px`: its center's offset above the baseline (negative below) and its
222
+ * thickness, in px; `null` when the source did not record one.
223
+ */
224
+ underline(px: number): AdvanceTable.LineRule | null;
225
+ /** The strikeout at `px`, as {@link underline}. */
226
+ strikeout(px: number): AdvanceTable.LineRule | null;
227
+ /**
228
+ * {@link width} and {@link metrics} together, with the underline and strikeout thickness in
229
+ * whole px as they are drawn (at least 1).
230
+ */
231
+ measure(text: string, px: number, options?: AdvanceTable.MeasureOptions): ExtendedMetrics;
232
+ }
233
+ namespace AdvanceTable {
234
+ /** Which face a table measures. */
235
+ interface Face {
236
+ family: string;
237
+ weight: number;
238
+ italic: boolean;
239
+ }
240
+ interface WidthOptions {
241
+ /** Px added between characters. */
242
+ letterSpacing?: number;
243
+ /** Measure as superscript or subscript text. */
244
+ superSub?: boolean;
245
+ }
246
+ interface MeasureOptions extends WidthOptions {
247
+ /**
248
+ * The table of what the platform paints this face with, when that is not this table (a
249
+ * browser's fractional advances against Excel's hinted widths): {@link AdvanceTable.measure}
250
+ * then reports the `renderLetterSpacing` that paints the text at the measured width.
251
+ */
252
+ paint?: AdvanceTable | null;
253
+ }
254
+ /** A horizontal rule (underline, strikeout): offset above the baseline and thickness. */
255
+ interface LineRule {
256
+ readonly position: number;
257
+ readonly thickness: number;
258
+ }
259
+ }
176
260
  interface MetricOptions {
177
261
  isBold?: boolean;
178
262
  isItalic?: boolean;
179
263
  letterSpacing?: number;
180
264
  }
181
- interface Measurer {
182
- (text: string, size: number, family: string, options?: IFont.MetricOptions): IFont.ExtendedMetrics;
183
- }
184
265
  /**
185
- * The contract a per-environment measurer module must satisfy. The active default is resolved
186
- * via the `@sheetxl/sdk/font/FontMeasurer` conditional export:
187
- * `browser` -> canvas, `node` -> fontkit, `default` -> simple (the zero-dependency char counter,
188
- * the only universally-safe fallback - never pull a native/node-only measurer through `default`).
189
- *
190
- * Override the active measurer at runtime with {@link setSharedMeasurer} (e.g. force the simple
191
- * measurer in unit tests), or at build time by aliasing the `@sheetxl/sdk/font/FontMeasurer`
192
- * import in the bundler config.
266
+ * Returns scaling to use for the current device.
193
267
  */
194
- interface MeasurerProvider {
195
- /** The best measurer for the current environment (may itself fall back to the simple measurer). */
196
- getInstance(): IFont.Measurer;
197
- /** The device scale for the current environment. */
198
- getDeviceScale(): number;
268
+ function getDeviceScale(): number;
269
+ /** A face's names and style, read from its own tables. */
270
+ interface FaceIdentity {
271
+ /** The family as Excel names it, which a style's font name is matched against ("Segoe UI Semibold"). */
272
+ readonly family: string;
273
+ /** The family as its designer groups it ("Segoe UI"); the same as {@link family} for most fonts. */
274
+ readonly typographicFamily: string;
275
+ /** The style within {@link family} ("Regular", "Bold Italic"). */
276
+ readonly subfamily: string;
277
+ /** The face's full name ("Segoe UI Semibold Italic"). */
278
+ readonly fullName: string;
279
+ /** The face's PostScript name ("SegoeUI-SemiboldItalic"). */
280
+ readonly postscriptName: string;
281
+ /** The weight class, 100 to 900. */
282
+ readonly weight: number;
283
+ /** Whether this is the bold member of {@link family}. A heavy weight alone is not bold. */
284
+ readonly bold: boolean;
285
+ readonly italic: boolean;
286
+ /** The font's version string. */
287
+ readonly version: string;
288
+ }
289
+ /** A face in a font file, as {@link CaptureOptions.filter} is asked about it. */
290
+ interface FaceToCapture extends FaceIdentity {
291
+ /**
292
+ * The name the face's tables are found by, without a suffix (`tahoma-bold`): its
293
+ * `.metrics.json` and `.hinted.json` go in a `fonts` resource root under this name.
294
+ */
295
+ readonly fileStem: string;
296
+ }
297
+ /** A face's measures tables, as captured by {@link captureTables}. */
298
+ interface CapturedFace extends FaceToCapture {
299
+ /** The `.metrics.json` text, to write as `<fileStem>.metrics.json`. */
300
+ readonly metrics: string;
301
+ /** The `.hinted.json` text, to write as `<fileStem>.hinted.json`; absent when hinting was not captured. */
302
+ readonly hinted?: string;
303
+ }
304
+ /** Options for {@link captureTables}. */
305
+ interface CaptureOptions {
306
+ /**
307
+ * The pixel sizes to capture hinted widths at, which are what make widths match Excel's, or
308
+ * `false` for none.
309
+ *
310
+ * @defaultValue `{ first: 6, last: 120 }`
311
+ */
312
+ hinting?: false | {
313
+ first: number;
314
+ last: number;
315
+ };
316
+ /** The font file's name, recorded in the tables so a copy kept beside them can be found again. */
317
+ sourceFile?: string;
318
+ /** Decides per face, before the costly part, whether to capture it. */
319
+ filter?(face: FaceToCapture): boolean;
320
+ /** Called as each face is captured: for progress, since a face takes about a second. */
321
+ onCaptured?(face: CapturedFace, index: number, count: number): void;
199
322
  }
200
323
  /**
201
- * Override the default mechanism for measuring text.
324
+ * Reads a font file and captures the measures tables of each face in it: what SheetXL measures
325
+ * text with when the font itself is not at hand.
202
326
  *
203
- * @param measurer {@link IFont.Measurer}
204
- */
205
- function setSharedMeasurer(measurer: IFont.Measurer): void;
206
- /**
207
- * Returns the {@link IFont.Measurer} used for measuring text.
327
+ * @remarks
328
+ * The tables are facts about the font's design (its advances and metrics), never its outlines,
329
+ * so they can go where the font itself cannot. Placed in a `fonts` resource root, they are found
330
+ * the next time a style names the family. This is what `sheetxl fonts add` does.
208
331
  *
209
- * @see
210
- * {@link setSharedMeasurer}
211
- */
212
- function getSharedMeasurer(): IFont.Measurer;
213
- /**
214
- * Returns scaling to use for the current device.
332
+ * Accepts `.ttf`, `.otf`, and the collections `.ttc` and `.otc`.
333
+ *
334
+ * @param bytes The font file.
335
+ * @returns One entry per face, in file order, less those {@link CaptureOptions.filter} declined.
336
+ * @throws when the bytes are not a font.
337
+ *
338
+ * @example
339
+ * ```ts
340
+ * for (const face of await IFont.captureTables(bytes)) {
341
+ * await writeFile(`${face.fileStem}.metrics.json`, face.metrics);
342
+ * if (face.hinted) await writeFile(`${face.fileStem}.hinted.json`, face.hinted);
343
+ * }
344
+ * ```
215
345
  */
216
- function getDeviceScale(): number;
346
+ function captureTables(bytes: Uint8Array, options?: CaptureOptions): Promise<CapturedFace[]>;
217
347
  /**
218
348
  * Provides a font-family fallback based on the PANOSE hex string.
219
349
  *
@@ -1,7 +1,5 @@
1
1
  import { IListener } from '../listener';
2
2
  import { IFont } from './IFont';
3
- import { AdvanceBuilder } from './AdvanceBuilder';
4
- import { AdvanceTable } from './AdvanceTable';
5
3
  /**
6
4
  * The fonts text is measured with: one table per family, weight and style, shared by every
7
5
  * workbook, the way a browser's `document.fonts` is shared by a page.
@@ -16,7 +14,8 @@ export interface IFontCollection extends IListener.ISource<IFontCollection, IFon
16
14
  /**
17
15
  * The table to measure a face with, now.
18
16
  *
19
- * @param family The family as a style names it, or a CSS generic name (`sans-serif`).
17
+ * @param family The family as a style names it, a CSS generic name (`sans-serif`), or a CSS
18
+ * `font-family` list (`"Aptos Narrow", Calibri, sans-serif`).
20
19
  * @param options {@link IFontCollection.GetByNameOptions}
21
20
  *
22
21
  * @remarks
@@ -35,15 +34,6 @@ export interface IFontCollection extends IListener.ISource<IFontCollection, IFon
35
34
  whenReady(): Promise<void>;
36
35
  /** Whether a face is loading. */
37
36
  isLoading(): boolean;
38
- /**
39
- * Replaces where tables come from, tried in order, and forgets every table built before; the
40
- * built-in Calibri and Arial stay.
41
- *
42
- * @remarks
43
- * For hosts that capture or ship their own tables, and for tests that pin measurement to the
44
- * shipped tables.
45
- */
46
- setAdvanceBuilders(builders: readonly AdvanceBuilder[]): void;
47
37
  /** The families offered for choosing, as a font picker lists them. */
48
38
  getFontList(): readonly IFontCollection.FontHandle[];
49
39
  /** Replaces the families offered for choosing; `null` restores the default list. */
@@ -87,17 +77,29 @@ export declare namespace IFontCollection {
87
77
  /** The table a face is measured with, and how good an answer it is. */
88
78
  interface Resolution {
89
79
  /** Measures and wraps text in the face. */
90
- readonly table: AdvanceTable;
80
+ readonly table: IFont.AdvanceTable;
91
81
  readonly kind: ResolutionKind;
92
82
  readonly status: FontStatus;
93
83
  /** The face that was asked for. */
94
- readonly requested: AdvanceTable.Face;
84
+ readonly requested: IFont.AdvanceTable.Face;
85
+ /**
86
+ * What the platform paints the face with when that is not `table` (a browser's own advances
87
+ * for the family and its fallbacks, substitutes included), for
88
+ * `IFont.ExtendedMetrics.renderLetterSpacing`. Absent where paint is the measure, where nothing
89
+ * paints (Node), and while it loads (`status` is then `'loading'`).
90
+ */
91
+ readonly paint?: IFont.AdvanceTable;
95
92
  }
96
93
  interface GetByNameOptions {
97
94
  /** Defaults to `false`. */
98
95
  bold?: boolean;
99
96
  /** Defaults to `false`. */
100
97
  italic?: boolean;
98
+ /**
99
+ * Families to measure with, in order, when the family has no table of its own, as a style's
100
+ * font fallbacks list them. A CSS `font-family` list in `family` reads the same way.
101
+ */
102
+ fallbacks?: readonly string[];
101
103
  }
102
104
  /** A face to {@link IFontCollection.load | load}. */
103
105
  interface FaceRequest extends GetByNameOptions {
@@ -106,6 +108,10 @@ export declare namespace IFontCollection {
106
108
  interface FontHandle {
107
109
  /** `null` is used as a cached 'no match' sentinel (see {@link IFontCollection.findBestMatch}). */
108
110
  fontRef: IFont.IFontFace | null;
111
+ /**
112
+ * Whether the platform has the family installed, so paints it as itself; a font menu can show
113
+ * a missing one differently. `true` where the platform cannot tell (Node, which paints nothing).
114
+ */
109
115
  loaded: boolean;
110
116
  }
111
117
  interface FindBestMatchOptions {
@@ -0,0 +1,207 @@
1
+ import { Properties as CSSProperties } from 'csstype';
2
+ import { IColor } from '../color';
3
+ import { ITransaction } from '../transaction';
4
+ import { IFont } from './IFont';
5
+ /**
6
+ * How text is drawn: its typeface, size, weight, slant, lines, color, spacing and baseline.
7
+ *
8
+ * @remarks
9
+ * A cell's font (`range.getStyle().getFont()`) and the text of a chart part
10
+ * (`title.getStyle().getFont()` on a title, legend, axis or data labels) are both text styles, so
11
+ * the same code formats either.
12
+ *
13
+ * What a style does not state it takes from the text around it: a cell's from the Normal style, a
14
+ * chart title's from the chart, the chart's from the theme. Reads answer what is drawn, stated or
15
+ * not.
16
+ *
17
+ * Setters return the text style to keep chaining on. A cell's font is a snapshot of the cell, so
18
+ * its setters return the updated font rather than the one they were called on.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * range.getStyle().getFont().setBold(true).setColor('accent2');
23
+ * chart.getTitle().getStyle().getFont().update({ size: 18, family: IFontStyle.ThemeFamily.Heading });
24
+ * ```
25
+ */
26
+ export interface IFontStyle {
27
+ /**
28
+ * Returns the typeface drawn: the one stated, or the theme's font when the style names
29
+ * {@link IFontStyle.ThemeFamily | a theme font} or none.
30
+ */
31
+ getFamily(): string;
32
+ /**
33
+ * Sets the typeface: a family name, or a {@link IFontStyle.ThemeFamily} to follow the theme's
34
+ * heading or body font. `null` clears it.
35
+ */
36
+ setFamily(family: string | null, options?: ITransaction.OperationOptions): IFontStyle;
37
+ /**
38
+ * Exists to have api parity with Office Scripts.
39
+ *
40
+ * @deprecated Use {@link getFamily}.
41
+ * @hidden
42
+ */
43
+ getName(): string;
44
+ /**
45
+ * Exists to have api parity with Office Scripts.
46
+ *
47
+ * @deprecated Use {@link setFamily}.
48
+ * @hidden
49
+ */
50
+ setName(name: string | null, options?: ITransaction.OperationOptions): IFontStyle;
51
+ /**
52
+ * Returns the theme font the style follows, or `null` when it names its own family.
53
+ */
54
+ getThemeFamily(): IFontStyle.ThemeFamily | null;
55
+ /**
56
+ * Returns the families drawn when {@link IFontStyle.getFamily} cannot draw a character, in order.
57
+ */
58
+ getFallbacks(): string[];
59
+ /** @see {@link IFontStyle.getFallbacks} */
60
+ setFallbacks(fallbacks: string[] | null, options?: ITransaction.OperationOptions): IFontStyle;
61
+ /** Returns the size in points. */
62
+ getSize(): number;
63
+ /** Sets the size in points. */
64
+ setSize(size: number | null, options?: ITransaction.OperationOptions): IFontStyle;
65
+ /** Returns the weight, `400` being regular and `700` bold. */
66
+ getWeight(): number;
67
+ /** @see {@link IFontStyle.getWeight} */
68
+ setWeight(weight: number | null, options?: ITransaction.OperationOptions): IFontStyle;
69
+ /** Returns whether the text is bold: a weight above `400`. */
70
+ getBold(): boolean;
71
+ /** Sets the weight to bold (`700`) or regular (`400`). */
72
+ setBold(bold: boolean | null, options?: ITransaction.OperationOptions): IFontStyle;
73
+ /** Returns whether the text is italic. */
74
+ getItalic(): boolean;
75
+ /** @see {@link IFontStyle.getItalic} */
76
+ setItalic(italic: boolean | null, options?: ITransaction.OperationOptions): IFontStyle;
77
+ /** Returns how the text is underlined; `'none'` when it is not. */
78
+ getUnderline(): IFont.UnderlineStyle;
79
+ /** Sets how the text is underlined; `'none'` removes the underline. */
80
+ setUnderline(underline: IFont.UnderlineStyle | null, options?: ITransaction.OperationOptions): IFontStyle;
81
+ /** Returns how the text is struck through; `'none'` when it is not. */
82
+ getStrike(): IFont.StrikeStyle;
83
+ /** Sets how the text is struck through; `'none'` removes the line. */
84
+ setStrike(strike: IFont.StrikeStyle | null, options?: ITransaction.OperationOptions): IFontStyle;
85
+ /** Returns the text color. */
86
+ getColor(): IColor;
87
+ /** Sets the color: an {@link IColor}, `#FF0000`, `rgb(…)`, or a theme color such as `accent1`. */
88
+ setColor(color: IColor | string | null, options?: ITransaction.OperationOptions): IFontStyle;
89
+ /** Returns the space added between characters, in points; `0` for none, negative to condense. */
90
+ getLetterSpacing(): number;
91
+ /** @see {@link IFontStyle.getLetterSpacing} */
92
+ setLetterSpacing(spacing: number | null, options?: ITransaction.OperationOptions): IFontStyle;
93
+ /**
94
+ * Returns how far the text is raised, as a percentage of its size: positive for superscript,
95
+ * negative for subscript, `0` on the baseline.
96
+ */
97
+ getBaseline(): number;
98
+ /** Raises or lowers the text by a percentage of its size; `0` puts it back on the baseline. */
99
+ setBaseline(baseline: number | null, options?: ITransaction.OperationOptions): IFontStyle;
100
+ /** Sets several properties at once, as one step to undo. */
101
+ update(update: IFontStyle.Update, options?: ITransaction.OperationOptions): IFontStyle;
102
+ /**
103
+ * Returns `true` when `other` measures text the same, so a measured width can be reused.
104
+ */
105
+ isEqualMeasure(other: IFontStyle): boolean;
106
+ /**
107
+ * Returns the style as CSS properties.
108
+ *
109
+ * @param mode How colors are written.
110
+ * @param zoom Scales the font size.
111
+ * @param ignoreNormal Leaves out what equals the Normal style's font, where there is one.
112
+ */
113
+ toCSS(mode?: IColor.CSSMode, zoom?: number, ignoreNormal?: boolean): CSSProperties;
114
+ /** Serializes to a JSON object. */
115
+ toJSON(): IFontStyle.JSON;
116
+ /** For runtime type checking. */
117
+ readonly isIFontStyle: true;
118
+ }
119
+ /**
120
+ * {@inheritDoc IFontStyle}
121
+ * @see
122
+ * ### **Interface**
123
+ *
124
+ * {@link IFontStyle}
125
+ */
126
+ export declare namespace IFontStyle {
127
+ /**
128
+ * A family that follows the theme: its heading font or its body font.
129
+ */
130
+ const ThemeFamily: {
131
+ readonly Heading: "theme:heading";
132
+ readonly Body: "theme:body";
133
+ };
134
+ type ThemeFamily = typeof ThemeFamily[keyof typeof ThemeFamily];
135
+ /**
136
+ * The {@link IFontStyle.getBaseline | baselines} superscript and subscript text take by default.
137
+ */
138
+ const Baseline: {
139
+ readonly Superscript: 30;
140
+ readonly Subscript: -25;
141
+ };
142
+ /**
143
+ * The stored shape of a text style.
144
+ *
145
+ * @remarks
146
+ * One spelling per concept: bold is a {@link Properties.weight | weight}, italic a
147
+ * {@link Properties.style | style}, a theme font a {@link ThemeFamily} in `family`. Updates
148
+ * accept the more forgiving {@link Update}, which is normalized to this before it is stored.
149
+ */
150
+ interface Properties<C = IColor.Serializable> {
151
+ /** A family name, or a {@link ThemeFamily}. */
152
+ family?: string;
153
+ /** {@inheritDoc IFontStyle.getFallbacks} */
154
+ fallbacks?: string[];
155
+ /** {@inheritDoc IFontStyle.getSize} */
156
+ size?: number;
157
+ /** {@inheritDoc IFontStyle.getWeight} */
158
+ weight?: number;
159
+ /** `italic` or `normal`. */
160
+ style?: IFont.Style;
161
+ /** {@inheritDoc IFontStyle.getColor} */
162
+ color?: C;
163
+ /** {@inheritDoc IFontStyle.getLetterSpacing} */
164
+ letterSpacing?: number;
165
+ /** {@inheritDoc IFontStyle.getUnderline} */
166
+ underline?: IFont.UnderlineStyle;
167
+ /** {@inheritDoc IFontStyle.getStrike} */
168
+ strike?: IFont.StrikeStyle;
169
+ /** {@inheritDoc IFontStyle.getBaseline} */
170
+ baseline?: number;
171
+ /**
172
+ * The character set the font was authored against, a font-substitution hint.
173
+ *
174
+ * @remarks
175
+ * An **opaque passthrough**. The model carries the value so it survives a round trip and never
176
+ * interprets it.
177
+ */
178
+ charset?: number;
179
+ /**
180
+ * @remarks
181
+ * An **opaque passthrough**, not drawn. The model carries the value so it survives a round
182
+ * trip.
183
+ */
184
+ shadow?: boolean;
185
+ /** {@inheritDoc IFontStyle.Properties.shadow} */
186
+ outline?: boolean;
187
+ }
188
+ /**
189
+ * What {@link IFontStyle.update} and a cell style's `font` accept: {@link Properties} with
190
+ * shorthands. `null` clears a property.
191
+ */
192
+ type Update<C = IColor.Serializable | IColor> = {
193
+ [K in keyof Omit<Properties<C>, 'weight' | 'underline'>]?: Properties<C>[K] | null;
194
+ } & {
195
+ /** A number (`400`, `700`) or a CSS keyword (`'bold'`). */
196
+ weight?: number | string | null;
197
+ /** `true` for `'single'`, `false` for `'none'`. */
198
+ underline?: IFont.UnderlineStyle | boolean | null;
199
+ /** Sets the weight to `700` or `400`. Ignored when `weight` is also given. */
200
+ bold?: boolean | null;
201
+ /** Sets the style to `italic` or `normal`. Ignored when `style` is also given. */
202
+ italic?: boolean | null;
203
+ };
204
+ interface JSON extends Properties<string> {
205
+ }
206
+ }
207
+ //# sourceMappingURL=IFontStyle.d.ts.map
@@ -22,6 +22,15 @@ export declare class TableFileAdvanceBuilder implements AdvanceBuilder {
22
22
  */
23
23
  constructor(base?: string | null);
24
24
  build(face: AdvanceTable.Face): Promise<AdvanceTable | null>;
25
+ /**
26
+ * Gives `table` the hinted widths of its `.hinted.json` companion and Excel's row heights from
27
+ * its `.rows.json`, those it has.
28
+ *
29
+ * @returns Whether the table is hinted now.
30
+ */
31
+ hint(table: AdvanceTable): Promise<boolean>;
32
+ /** A companion file of a face, or `null` when there is none. */
33
+ private _companion;
25
34
  private _load;
26
35
  }
27
36
  //# sourceMappingURL=TableFileAdvanceBuilder.d.ts.map
@@ -1,9 +1,16 @@
1
- import { IFont } from './IFont';
2
1
  export declare const DefaultMinFontSize: number;
3
2
  export declare const DefaultMaxFontSize: number;
4
3
  export declare const DefaultMaxFontPrecision: number;
5
4
  export declare const DefaultLineHeightMultiplier: number;
6
- export declare function defaultHorizontalPadding(fontSize: number): number;
5
+ /**
6
+ * Excel's horizontal padding a side for a cell whose font's widest digit is `digitWidth` px: a
7
+ * quarter of that digit, rounded up (2 px at Calibri 11, 17 at Calibri 100, 56 at Arial 300).
8
+ * Exact against Excel's own autofit over 130 cells, Calibri and Arial, 8 to 48 pt
9
+ * (`private-assets/design/rust/tools/sweep-excel-autofit.ps1`), and against the column at which
10
+ * Excel stops showing a number as `#` from 20 to 300 pt (`tools/oracle-excel-overflow.ps1`:
11
+ * content + 2 x this + 1 every time).
12
+ */
13
+ export declare function defaultHorizontalPadding(digitWidth: number): number;
7
14
  export declare function defaultVerticalPadding(_fontSize: number): number;
8
15
  /**
9
16
  * The size to scale a font for super/sub text.
@@ -11,12 +18,12 @@ export declare function defaultVerticalPadding(_fontSize: number): number;
11
18
  * **NOT IMPLEMENTED** This should read from the font but is currently hardcoded to `0.6`.
12
19
  * * This will be moved to 'Measurer'
13
20
  */
14
- export declare function superSubScale(_fontFamily: string, _fontSize?: number, _verticalAlign?: IFont.VerticalAlignment): number;
21
+ export declare function superSubScale(_fontFamily: string, _fontSize?: number, _baseline?: number): number;
15
22
  /**
16
23
  * The distance in pixels to shift a font for super/sub text.
17
24
  * @remarks
18
25
  * **NOT IMPLEMENTED** This should read from the font but is currently hardcoded to `+1/5 -1/5`.
19
26
  * * This will be moved to 'Measurer'
20
27
  */
21
- export declare function superSubShift(fontFamily: string, fontSize?: number, verticalAlign?: IFont.VerticalAlignment): number;
28
+ export declare function superSubShift(fontFamily: string, fontSize?: number, baseline?: number): number;
22
29
  //# sourceMappingURL=_FontUtils.d.ts.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A number that changes whenever the shared {@link IFontCollection} does (a table or its hinted
3
+ * widths arrived): part of the key of any cache of measurements, so a cached measure taken before a
4
+ * font loaded is not served after. Listens from its first call on.
5
+ */
6
+ export declare function fontsVersion(): number;
7
+ //# sourceMappingURL=_FontsVersion.d.ts.map
@@ -1,8 +1,6 @@
1
1
  export * from './IFontCollection';
2
2
  export * from './IFont';
3
+ export * from './IFontStyle';
3
4
  export * from './Font';
4
- export * from './AdvanceTable';
5
- export { type AdvanceBuilder } from './AdvanceBuilder';
6
- export { TableFileAdvanceBuilder } from './TableFileAdvanceBuilder';
7
5
  export * as FontUtils from './FontUtils';
8
6
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { AdvanceBuilder } from './AdvanceBuilder';
2
+ /**
3
+ * The browser's builders: a canvas, for installed families we have no captured table for. Known
4
+ * families never reach it; the shipped tables and the built-ins answer first.
5
+ */
6
+ export declare function getAdvanceBuilders(): AdvanceBuilder[];
7
+ /**
8
+ * Returns scaling to use for the current device.
9
+ *
10
+ * @remarks
11
+ * **TODO** This is hardcoded to Non-HD DPI. Revisit: `window.devicePixelRatio`, with a listener
12
+ * for the `(resolution: ...dppx)` media query so a window moving between screens is noticed.
13
+ */
14
+ export declare function getDeviceScale(): number;
15
+ //# sourceMappingURL=platform.browser.d.ts.map