ooxml-core 0.3.0 → 0.4.0

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 (451) hide show
  1. package/README.md +15 -14
  2. package/dist/docx/load/index.cjs +11 -11
  3. package/dist/docx/load/index.mjs +11 -11
  4. package/dist/index.cjs +34 -1
  5. package/dist/index.mjs +34 -1
  6. package/dist/opc/index.cjs +18 -1
  7. package/dist/opc/index.mjs +18 -1
  8. package/dist/opc/relationship-types.d.ts +17 -0
  9. package/dist/opc/relationship-types.d.ts.map +1 -1
  10. package/dist/pptx/cli/index.cjs +122 -105
  11. package/dist/pptx/cli/index.mjs +122 -105
  12. package/dist/pptx/index.cjs +144 -127
  13. package/dist/pptx/index.d.ts +8 -8
  14. package/dist/pptx/index.d.ts.map +1 -1
  15. package/dist/pptx/index.mjs +144 -127
  16. package/dist/visio/geometry.d.ts.map +1 -1
  17. package/dist/visio/index.cjs +66 -6
  18. package/dist/visio/index.mjs +66 -6
  19. package/dist/visio/rounded-geometry.d.ts +9 -0
  20. package/dist/visio/rounded-geometry.d.ts.map +1 -1
  21. package/dist/xlsx/address.d.ts +42 -0
  22. package/dist/xlsx/address.d.ts.map +1 -0
  23. package/dist/xlsx/cell-styles.d.ts +25 -0
  24. package/dist/xlsx/cell-styles.d.ts.map +1 -0
  25. package/dist/xlsx/cells.d.ts +25 -0
  26. package/dist/xlsx/cells.d.ts.map +1 -0
  27. package/dist/xlsx/edit/annotations.d.ts +17 -0
  28. package/dist/xlsx/edit/annotations.d.ts.map +1 -0
  29. package/dist/xlsx/edit/band-formulas.d.ts +9 -0
  30. package/dist/xlsx/edit/band-formulas.d.ts.map +1 -0
  31. package/dist/xlsx/edit/borders.d.ts +8 -0
  32. package/dist/xlsx/edit/borders.d.ts.map +1 -0
  33. package/dist/xlsx/edit/calc-mode.d.ts +11 -0
  34. package/dist/xlsx/edit/calc-mode.d.ts.map +1 -0
  35. package/dist/xlsx/edit/cell-shift.d.ts +11 -0
  36. package/dist/xlsx/edit/cell-shift.d.ts.map +1 -0
  37. package/dist/xlsx/edit/cell-style.d.ts +9 -0
  38. package/dist/xlsx/edit/cell-style.d.ts.map +1 -0
  39. package/dist/xlsx/edit/cell-values.d.ts +21 -0
  40. package/dist/xlsx/edit/cell-values.d.ts.map +1 -0
  41. package/dist/xlsx/edit/charts.d.ts +22 -0
  42. package/dist/xlsx/edit/charts.d.ts.map +1 -0
  43. package/dist/xlsx/edit/clipboard-html-parse.d.ts +12 -0
  44. package/dist/xlsx/edit/clipboard-html-parse.d.ts.map +1 -0
  45. package/dist/xlsx/edit/clipboard-html.d.ts +8 -0
  46. package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -0
  47. package/dist/xlsx/edit/clipboard-text.d.ts +8 -0
  48. package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -0
  49. package/dist/xlsx/edit/clipboard.d.ts +16 -0
  50. package/dist/xlsx/edit/clipboard.d.ts.map +1 -0
  51. package/dist/xlsx/edit/columns.d.ts +11 -0
  52. package/dist/xlsx/edit/columns.d.ts.map +1 -0
  53. package/dist/xlsx/edit/conditional-formats.d.ts +17 -0
  54. package/dist/xlsx/edit/conditional-formats.d.ts.map +1 -0
  55. package/dist/xlsx/edit/context.d.ts +42 -0
  56. package/dist/xlsx/edit/context.d.ts.map +1 -0
  57. package/dist/xlsx/edit/deps.d.ts +4 -0
  58. package/dist/xlsx/edit/deps.d.ts.map +1 -0
  59. package/dist/xlsx/edit/dimensions.d.ts +13 -0
  60. package/dist/xlsx/edit/dimensions.d.ts.map +1 -0
  61. package/dist/xlsx/edit/drawings.d.ts +10 -0
  62. package/dist/xlsx/edit/drawings.d.ts.map +1 -0
  63. package/dist/xlsx/edit/duplicates.d.ts +17 -0
  64. package/dist/xlsx/edit/duplicates.d.ts.map +1 -0
  65. package/dist/xlsx/edit/fill-series.d.ts +16 -0
  66. package/dist/xlsx/edit/fill-series.d.ts.map +1 -0
  67. package/dist/xlsx/edit/fill.d.ts +14 -0
  68. package/dist/xlsx/edit/fill.d.ts.map +1 -0
  69. package/dist/xlsx/edit/filter.d.ts +17 -0
  70. package/dist/xlsx/edit/filter.d.ts.map +1 -0
  71. package/dist/xlsx/edit/find.d.ts +17 -0
  72. package/dist/xlsx/edit/find.d.ts.map +1 -0
  73. package/dist/xlsx/edit/format.d.ts +13 -0
  74. package/dist/xlsx/edit/format.d.ts.map +1 -0
  75. package/dist/xlsx/edit/history.d.ts +75 -0
  76. package/dist/xlsx/edit/history.d.ts.map +1 -0
  77. package/dist/xlsx/edit/index.d.ts +23 -0
  78. package/dist/xlsx/edit/index.d.ts.map +1 -0
  79. package/dist/xlsx/edit/merge.d.ts +11 -0
  80. package/dist/xlsx/edit/merge.d.ts.map +1 -0
  81. package/dist/xlsx/edit/outline.d.ts +14 -0
  82. package/dist/xlsx/edit/outline.d.ts.map +1 -0
  83. package/dist/xlsx/edit/page.d.ts +11 -0
  84. package/dist/xlsx/edit/page.d.ts.map +1 -0
  85. package/dist/xlsx/edit/protection.d.ts +26 -0
  86. package/dist/xlsx/edit/protection.d.ts.map +1 -0
  87. package/dist/xlsx/edit/range-math.d.ts +33 -0
  88. package/dist/xlsx/edit/range-math.d.ts.map +1 -0
  89. package/dist/xlsx/edit/row-autofit.d.ts +17 -0
  90. package/dist/xlsx/edit/row-autofit.d.ts.map +1 -0
  91. package/dist/xlsx/edit/session-calc.d.ts +24 -0
  92. package/dist/xlsx/edit/session-calc.d.ts.map +1 -0
  93. package/dist/xlsx/edit/session.d.ts +5 -0
  94. package/dist/xlsx/edit/session.d.ts.map +1 -0
  95. package/dist/xlsx/edit/sheets.d.ts +19 -0
  96. package/dist/xlsx/edit/sheets.d.ts.map +1 -0
  97. package/dist/xlsx/edit/shift-formulas.d.ts +14 -0
  98. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -0
  99. package/dist/xlsx/edit/shift-sheet.d.ts +15 -0
  100. package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -0
  101. package/dist/xlsx/edit/sort.d.ts +17 -0
  102. package/dist/xlsx/edit/sort.d.ts.map +1 -0
  103. package/dist/xlsx/edit/structure.d.ts +10 -0
  104. package/dist/xlsx/edit/structure.d.ts.map +1 -0
  105. package/dist/xlsx/edit/table-edits.d.ts +25 -0
  106. package/dist/xlsx/edit/table-edits.d.ts.map +1 -0
  107. package/dist/xlsx/edit/table-rows.d.ts +11 -0
  108. package/dist/xlsx/edit/table-rows.d.ts.map +1 -0
  109. package/dist/xlsx/edit/tables.d.ts +11 -0
  110. package/dist/xlsx/edit/tables.d.ts.map +1 -0
  111. package/dist/xlsx/edit/test-context.d.ts +15 -0
  112. package/dist/xlsx/edit/test-context.d.ts.map +1 -0
  113. package/dist/xlsx/edit/types-clipboard.d.ts +66 -0
  114. package/dist/xlsx/edit/types-clipboard.d.ts.map +1 -0
  115. package/dist/xlsx/edit/types.d.ts +188 -0
  116. package/dist/xlsx/edit/types.d.ts.map +1 -0
  117. package/dist/xlsx/edit/validation.d.ts +21 -0
  118. package/dist/xlsx/edit/validation.d.ts.map +1 -0
  119. package/dist/xlsx/edit/view.d.ts +12 -0
  120. package/dist/xlsx/edit/view.d.ts.map +1 -0
  121. package/dist/xlsx/formula/array-context.d.ts +7 -0
  122. package/dist/xlsx/formula/array-context.d.ts.map +1 -0
  123. package/dist/xlsx/formula/ast.d.ts +108 -0
  124. package/dist/xlsx/formula/ast.d.ts.map +1 -0
  125. package/dist/xlsx/formula/call.d.ts +13 -0
  126. package/dist/xlsx/formula/call.d.ts.map +1 -0
  127. package/dist/xlsx/formula/coerce.d.ts +22 -0
  128. package/dist/xlsx/formula/coerce.d.ts.map +1 -0
  129. package/dist/xlsx/formula/context.d.ts +74 -0
  130. package/dist/xlsx/formula/context.d.ts.map +1 -0
  131. package/dist/xlsx/formula/date-serial.d.ts +26 -0
  132. package/dist/xlsx/formula/date-serial.d.ts.map +1 -0
  133. package/dist/xlsx/formula/engine-core.d.ts +19 -0
  134. package/dist/xlsx/formula/engine-core.d.ts.map +1 -0
  135. package/dist/xlsx/formula/engine-host.d.ts +51 -0
  136. package/dist/xlsx/formula/engine-host.d.ts.map +1 -0
  137. package/dist/xlsx/formula/engine-types.d.ts +31 -0
  138. package/dist/xlsx/formula/engine-types.d.ts.map +1 -0
  139. package/dist/xlsx/formula/engine-util.d.ts +10 -0
  140. package/dist/xlsx/formula/engine-util.d.ts.map +1 -0
  141. package/dist/xlsx/formula/engine.d.ts +6 -0
  142. package/dist/xlsx/formula/engine.d.ts.map +1 -0
  143. package/dist/xlsx/formula/evaluator.d.ts +17 -0
  144. package/dist/xlsx/formula/evaluator.d.ts.map +1 -0
  145. package/dist/xlsx/formula/functions/array-shape.d.ts +3 -0
  146. package/dist/xlsx/formula/functions/array-shape.d.ts.map +1 -0
  147. package/dist/xlsx/formula/functions/array.d.ts +6 -0
  148. package/dist/xlsx/formula/functions/array.d.ts.map +1 -0
  149. package/dist/xlsx/formula/functions/criteria.d.ts +22 -0
  150. package/dist/xlsx/formula/functions/criteria.d.ts.map +1 -0
  151. package/dist/xlsx/formula/functions/date-calc.d.ts +14 -0
  152. package/dist/xlsx/formula/functions/date-calc.d.ts.map +1 -0
  153. package/dist/xlsx/formula/functions/datetime.d.ts +3 -0
  154. package/dist/xlsx/formula/functions/datetime.d.ts.map +1 -0
  155. package/dist/xlsx/formula/functions/depreciation.d.ts +4 -0
  156. package/dist/xlsx/formula/functions/depreciation.d.ts.map +1 -0
  157. package/dist/xlsx/formula/functions/dist-core.d.ts +22 -0
  158. package/dist/xlsx/formula/functions/dist-core.d.ts.map +1 -0
  159. package/dist/xlsx/formula/functions/distributions-more.d.ts +4 -0
  160. package/dist/xlsx/formula/functions/distributions-more.d.ts.map +1 -0
  161. package/dist/xlsx/formula/functions/distributions.d.ts +3 -0
  162. package/dist/xlsx/formula/functions/distributions.d.ts.map +1 -0
  163. package/dist/xlsx/formula/functions/engineering.d.ts +3 -0
  164. package/dist/xlsx/formula/functions/engineering.d.ts.map +1 -0
  165. package/dist/xlsx/formula/functions/financial-core.d.ts +8 -0
  166. package/dist/xlsx/formula/functions/financial-core.d.ts.map +1 -0
  167. package/dist/xlsx/formula/functions/financial.d.ts +3 -0
  168. package/dist/xlsx/formula/functions/financial.d.ts.map +1 -0
  169. package/dist/xlsx/formula/functions/helpers.d.ts +44 -0
  170. package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -0
  171. package/dist/xlsx/formula/functions/info.d.ts +3 -0
  172. package/dist/xlsx/formula/functions/info.d.ts.map +1 -0
  173. package/dist/xlsx/formula/functions/lambda.d.ts +3 -0
  174. package/dist/xlsx/formula/functions/lambda.d.ts.map +1 -0
  175. package/dist/xlsx/formula/functions/logical.d.ts +7 -0
  176. package/dist/xlsx/formula/functions/logical.d.ts.map +1 -0
  177. package/dist/xlsx/formula/functions/lookup-core.d.ts +32 -0
  178. package/dist/xlsx/formula/functions/lookup-core.d.ts.map +1 -0
  179. package/dist/xlsx/formula/functions/lookup.d.ts +8 -0
  180. package/dist/xlsx/formula/functions/lookup.d.ts.map +1 -0
  181. package/dist/xlsx/formula/functions/math-combin.d.ts +5 -0
  182. package/dist/xlsx/formula/functions/math-combin.d.ts.map +1 -0
  183. package/dist/xlsx/formula/functions/math-more.d.ts +4 -0
  184. package/dist/xlsx/formula/functions/math-more.d.ts.map +1 -0
  185. package/dist/xlsx/formula/functions/math-sum.d.ts +6 -0
  186. package/dist/xlsx/formula/functions/math-sum.d.ts.map +1 -0
  187. package/dist/xlsx/formula/functions/math.d.ts +7 -0
  188. package/dist/xlsx/formula/functions/math.d.ts.map +1 -0
  189. package/dist/xlsx/formula/functions/matrix.d.ts +3 -0
  190. package/dist/xlsx/formula/functions/matrix.d.ts.map +1 -0
  191. package/dist/xlsx/formula/functions/reference.d.ts +3 -0
  192. package/dist/xlsx/formula/functions/reference.d.ts.map +1 -0
  193. package/dist/xlsx/formula/functions/registry.d.ts +8 -0
  194. package/dist/xlsx/formula/functions/registry.d.ts.map +1 -0
  195. package/dist/xlsx/formula/functions/statistical-count.d.ts +3 -0
  196. package/dist/xlsx/formula/functions/statistical-count.d.ts.map +1 -0
  197. package/dist/xlsx/formula/functions/statistical-more.d.ts +10 -0
  198. package/dist/xlsx/formula/functions/statistical-more.d.ts.map +1 -0
  199. package/dist/xlsx/formula/functions/statistical-shape.d.ts +4 -0
  200. package/dist/xlsx/formula/functions/statistical-shape.d.ts.map +1 -0
  201. package/dist/xlsx/formula/functions/statistical-spread.d.ts +4 -0
  202. package/dist/xlsx/formula/functions/statistical-spread.d.ts.map +1 -0
  203. package/dist/xlsx/formula/functions/statistical.d.ts +3 -0
  204. package/dist/xlsx/formula/functions/statistical.d.ts.map +1 -0
  205. package/dist/xlsx/formula/functions/stats-core.d.ts +30 -0
  206. package/dist/xlsx/formula/functions/stats-core.d.ts.map +1 -0
  207. package/dist/xlsx/formula/functions/text-convert.d.ts +4 -0
  208. package/dist/xlsx/formula/functions/text-convert.d.ts.map +1 -0
  209. package/dist/xlsx/formula/functions/text-extra.d.ts +3 -0
  210. package/dist/xlsx/formula/functions/text-extra.d.ts.map +1 -0
  211. package/dist/xlsx/formula/functions/text.d.ts +3 -0
  212. package/dist/xlsx/formula/functions/text.d.ts.map +1 -0
  213. package/dist/xlsx/formula/functions/types.d.ts +30 -0
  214. package/dist/xlsx/formula/functions/types.d.ts.map +1 -0
  215. package/dist/xlsx/formula/functions/workdays.d.ts +3 -0
  216. package/dist/xlsx/formula/functions/workdays.d.ts.map +1 -0
  217. package/dist/xlsx/formula/graph.d.ts +50 -0
  218. package/dist/xlsx/formula/graph.d.ts.map +1 -0
  219. package/dist/xlsx/formula/index.d.ts +14 -0
  220. package/dist/xlsx/formula/index.d.ts.map +1 -0
  221. package/dist/xlsx/formula/lexemes.d.ts +41 -0
  222. package/dist/xlsx/formula/lexemes.d.ts.map +1 -0
  223. package/dist/xlsx/formula/move.d.ts +23 -0
  224. package/dist/xlsx/formula/move.d.ts.map +1 -0
  225. package/dist/xlsx/formula/operators.d.ts +15 -0
  226. package/dist/xlsx/formula/operators.d.ts.map +1 -0
  227. package/dist/xlsx/formula/parser.d.ts +4 -0
  228. package/dist/xlsx/formula/parser.d.ts.map +1 -0
  229. package/dist/xlsx/formula/references.d.ts +36 -0
  230. package/dist/xlsx/formula/references.d.ts.map +1 -0
  231. package/dist/xlsx/formula/scc.d.ts +6 -0
  232. package/dist/xlsx/formula/scc.d.ts.map +1 -0
  233. package/dist/xlsx/formula/sheet-scan.d.ts +10 -0
  234. package/dist/xlsx/formula/sheet-scan.d.ts.map +1 -0
  235. package/dist/xlsx/formula/spill.d.ts +32 -0
  236. package/dist/xlsx/formula/spill.d.ts.map +1 -0
  237. package/dist/xlsx/formula/store.d.ts +10 -0
  238. package/dist/xlsx/formula/store.d.ts.map +1 -0
  239. package/dist/xlsx/formula/structured-to-a1.d.ts +18 -0
  240. package/dist/xlsx/formula/structured-to-a1.d.ts.map +1 -0
  241. package/dist/xlsx/formula/structured.d.ts +4 -0
  242. package/dist/xlsx/formula/structured.d.ts.map +1 -0
  243. package/dist/xlsx/formula/table-refs.d.ts +7 -0
  244. package/dist/xlsx/formula/table-refs.d.ts.map +1 -0
  245. package/dist/xlsx/formula/test-helpers.d.ts +32 -0
  246. package/dist/xlsx/formula/test-helpers.d.ts.map +1 -0
  247. package/dist/xlsx/formula/text-number.d.ts +11 -0
  248. package/dist/xlsx/formula/text-number.d.ts.map +1 -0
  249. package/dist/xlsx/formula/tokenizer.d.ts +21 -0
  250. package/dist/xlsx/formula/tokenizer.d.ts.map +1 -0
  251. package/dist/xlsx/formula/transform.d.ts +49 -0
  252. package/dist/xlsx/formula/transform.d.ts.map +1 -0
  253. package/dist/xlsx/formula/values.d.ts +63 -0
  254. package/dist/xlsx/formula/values.d.ts.map +1 -0
  255. package/dist/xlsx/index.cjs +20579 -0
  256. package/dist/xlsx/index.d.ts +14 -0
  257. package/dist/xlsx/index.d.ts.map +1 -0
  258. package/dist/xlsx/index.mjs +20396 -0
  259. package/dist/xlsx/layout/autofit.d.ts +12 -0
  260. package/dist/xlsx/layout/autofit.d.ts.map +1 -0
  261. package/dist/xlsx/layout/axis-metrics.d.ts +39 -0
  262. package/dist/xlsx/layout/axis-metrics.d.ts.map +1 -0
  263. package/dist/xlsx/layout/cell-view.d.ts +21 -0
  264. package/dist/xlsx/layout/cell-view.d.ts.map +1 -0
  265. package/dist/xlsx/layout/cf-evaluator.d.ts +26 -0
  266. package/dist/xlsx/layout/cf-evaluator.d.ts.map +1 -0
  267. package/dist/xlsx/layout/cf-helpers.d.ts +8 -0
  268. package/dist/xlsx/layout/cf-helpers.d.ts.map +1 -0
  269. package/dist/xlsx/layout/cf-values.d.ts +25 -0
  270. package/dist/xlsx/layout/cf-values.d.ts.map +1 -0
  271. package/dist/xlsx/layout/chart-colors.d.ts +6 -0
  272. package/dist/xlsx/layout/chart-colors.d.ts.map +1 -0
  273. package/dist/xlsx/layout/chart-scale.d.ts +25 -0
  274. package/dist/xlsx/layout/chart-scale.d.ts.map +1 -0
  275. package/dist/xlsx/layout/chart-svg-cartesian.d.ts +5 -0
  276. package/dist/xlsx/layout/chart-svg-cartesian.d.ts.map +1 -0
  277. package/dist/xlsx/layout/chart-svg-radial.d.ts +7 -0
  278. package/dist/xlsx/layout/chart-svg-radial.d.ts.map +1 -0
  279. package/dist/xlsx/layout/chart-svg-util.d.ts +29 -0
  280. package/dist/xlsx/layout/chart-svg-util.d.ts.map +1 -0
  281. package/dist/xlsx/layout/chart-svg.d.ts +7 -0
  282. package/dist/xlsx/layout/chart-svg.d.ts.map +1 -0
  283. package/dist/xlsx/layout/chart-view.d.ts +42 -0
  284. package/dist/xlsx/layout/chart-view.d.ts.map +1 -0
  285. package/dist/xlsx/layout/colors.d.ts +20 -0
  286. package/dist/xlsx/layout/colors.d.ts.map +1 -0
  287. package/dist/xlsx/layout/index.d.ts +21 -0
  288. package/dist/xlsx/layout/index.d.ts.map +1 -0
  289. package/dist/xlsx/layout/metrics.d.ts +41 -0
  290. package/dist/xlsx/layout/metrics.d.ts.map +1 -0
  291. package/dist/xlsx/layout/navigate.d.ts +6 -0
  292. package/dist/xlsx/layout/navigate.d.ts.map +1 -0
  293. package/dist/xlsx/layout/ref-evaluator.d.ts +16 -0
  294. package/dist/xlsx/layout/ref-evaluator.d.ts.map +1 -0
  295. package/dist/xlsx/layout/row-autofit.d.ts +17 -0
  296. package/dist/xlsx/layout/row-autofit.d.ts.map +1 -0
  297. package/dist/xlsx/layout/sheet-queries.d.ts +37 -0
  298. package/dist/xlsx/layout/sheet-queries.d.ts.map +1 -0
  299. package/dist/xlsx/layout/style-view.d.ts +18 -0
  300. package/dist/xlsx/layout/style-view.d.ts.map +1 -0
  301. package/dist/xlsx/layout/tint.d.ts +26 -0
  302. package/dist/xlsx/layout/tint.d.ts.map +1 -0
  303. package/dist/xlsx/layout/types.d.ts +106 -0
  304. package/dist/xlsx/layout/types.d.ts.map +1 -0
  305. package/dist/xlsx/layout/units.d.ts +37 -0
  306. package/dist/xlsx/layout/units.d.ts.map +1 -0
  307. package/dist/xlsx/layout/viewport.d.ts +27 -0
  308. package/dist/xlsx/layout/viewport.d.ts.map +1 -0
  309. package/dist/xlsx/load/csv.d.ts +29 -0
  310. package/dist/xlsx/load/csv.d.ts.map +1 -0
  311. package/dist/xlsx/load/detect.d.ts +22 -0
  312. package/dist/xlsx/load/detect.d.ts.map +1 -0
  313. package/dist/xlsx/load/index.cjs +15619 -0
  314. package/dist/xlsx/load/index.d.ts +4 -0
  315. package/dist/xlsx/load/index.d.ts.map +1 -0
  316. package/dist/xlsx/load/index.mjs +15603 -0
  317. package/dist/xlsx/load/legacy-xls-sheet.d.ts +14 -0
  318. package/dist/xlsx/load/legacy-xls-sheet.d.ts.map +1 -0
  319. package/dist/xlsx/load/legacy-xls-styles.d.ts +9 -0
  320. package/dist/xlsx/load/legacy-xls-styles.d.ts.map +1 -0
  321. package/dist/xlsx/load/legacy-xls.d.ts +10 -0
  322. package/dist/xlsx/load/legacy-xls.d.ts.map +1 -0
  323. package/dist/xlsx/model.d.ts +535 -0
  324. package/dist/xlsx/model.d.ts.map +1 -0
  325. package/dist/xlsx/numfmt/builtins.d.ts +15 -0
  326. package/dist/xlsx/numfmt/builtins.d.ts.map +1 -0
  327. package/dist/xlsx/numfmt/compile.d.ts +26 -0
  328. package/dist/xlsx/numfmt/compile.d.ts.map +1 -0
  329. package/dist/xlsx/numfmt/date.d.ts +34 -0
  330. package/dist/xlsx/numfmt/date.d.ts.map +1 -0
  331. package/dist/xlsx/numfmt/decimal.d.ts +27 -0
  332. package/dist/xlsx/numfmt/decimal.d.ts.map +1 -0
  333. package/dist/xlsx/numfmt/decimals.d.ts +10 -0
  334. package/dist/xlsx/numfmt/decimals.d.ts.map +1 -0
  335. package/dist/xlsx/numfmt/format.d.ts +13 -0
  336. package/dist/xlsx/numfmt/format.d.ts.map +1 -0
  337. package/dist/xlsx/numfmt/fraction.d.ts +38 -0
  338. package/dist/xlsx/numfmt/fraction.d.ts.map +1 -0
  339. package/dist/xlsx/numfmt/general.d.ts +8 -0
  340. package/dist/xlsx/numfmt/general.d.ts.map +1 -0
  341. package/dist/xlsx/numfmt/index.d.ts +8 -0
  342. package/dist/xlsx/numfmt/index.d.ts.map +1 -0
  343. package/dist/xlsx/numfmt/input-date.d.ts +16 -0
  344. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -0
  345. package/dist/xlsx/numfmt/input.d.ts +23 -0
  346. package/dist/xlsx/numfmt/input.d.ts.map +1 -0
  347. package/dist/xlsx/numfmt/number.d.ts +38 -0
  348. package/dist/xlsx/numfmt/number.d.ts.map +1 -0
  349. package/dist/xlsx/numfmt/tokenizer.d.ts +6 -0
  350. package/dist/xlsx/numfmt/tokenizer.d.ts.map +1 -0
  351. package/dist/xlsx/numfmt/types.d.ts +87 -0
  352. package/dist/xlsx/numfmt/types.d.ts.map +1 -0
  353. package/dist/xlsx/read/builtin-formats.d.ts +10 -0
  354. package/dist/xlsx/read/builtin-formats.d.ts.map +1 -0
  355. package/dist/xlsx/read/chart.d.ts +7 -0
  356. package/dist/xlsx/read/chart.d.ts.map +1 -0
  357. package/dist/xlsx/read/comments.d.ts +10 -0
  358. package/dist/xlsx/read/comments.d.ts.map +1 -0
  359. package/dist/xlsx/read/conditional.d.ts +6 -0
  360. package/dist/xlsx/read/conditional.d.ts.map +1 -0
  361. package/dist/xlsx/read/dates.d.ts +6 -0
  362. package/dist/xlsx/read/dates.d.ts.map +1 -0
  363. package/dist/xlsx/read/drawing.d.ts +10 -0
  364. package/dist/xlsx/read/drawing.d.ts.map +1 -0
  365. package/dist/xlsx/read/formula-storage.d.ts +5 -0
  366. package/dist/xlsx/read/formula-storage.d.ts.map +1 -0
  367. package/dist/xlsx/read/formula-text.d.ts +15 -0
  368. package/dist/xlsx/read/formula-text.d.ts.map +1 -0
  369. package/dist/xlsx/read/index.d.ts +3 -0
  370. package/dist/xlsx/read/index.d.ts.map +1 -0
  371. package/dist/xlsx/read/load.d.ts +7 -0
  372. package/dist/xlsx/read/load.d.ts.map +1 -0
  373. package/dist/xlsx/read/metadata.d.ts +8 -0
  374. package/dist/xlsx/read/metadata.d.ts.map +1 -0
  375. package/dist/xlsx/read/package.d.ts +60 -0
  376. package/dist/xlsx/read/package.d.ts.map +1 -0
  377. package/dist/xlsx/read/print-options.d.ts +7 -0
  378. package/dist/xlsx/read/print-options.d.ts.map +1 -0
  379. package/dist/xlsx/read/shared-strings.d.ts +13 -0
  380. package/dist/xlsx/read/shared-strings.d.ts.map +1 -0
  381. package/dist/xlsx/read/sheet-data.d.ts +15 -0
  382. package/dist/xlsx/read/sheet-data.d.ts.map +1 -0
  383. package/dist/xlsx/read/sheet-props.d.ts +21 -0
  384. package/dist/xlsx/read/sheet-props.d.ts.map +1 -0
  385. package/dist/xlsx/read/style-parts.d.ts +20 -0
  386. package/dist/xlsx/read/style-parts.d.ts.map +1 -0
  387. package/dist/xlsx/read/styles.d.ts +17 -0
  388. package/dist/xlsx/read/styles.d.ts.map +1 -0
  389. package/dist/xlsx/read/tables.d.ts +4 -0
  390. package/dist/xlsx/read/tables.d.ts.map +1 -0
  391. package/dist/xlsx/read/theme.d.ts +11 -0
  392. package/dist/xlsx/read/theme.d.ts.map +1 -0
  393. package/dist/xlsx/read/workbook-part.d.ts +23 -0
  394. package/dist/xlsx/read/workbook-part.d.ts.map +1 -0
  395. package/dist/xlsx/read/worksheet.d.ts +18 -0
  396. package/dist/xlsx/read/worksheet.d.ts.map +1 -0
  397. package/dist/xlsx/read/xml-util.d.ts +28 -0
  398. package/dist/xlsx/read/xml-util.d.ts.map +1 -0
  399. package/dist/xlsx/styles.d.ts +27 -0
  400. package/dist/xlsx/styles.d.ts.map +1 -0
  401. package/dist/xlsx/time-period.d.ts +9 -0
  402. package/dist/xlsx/time-period.d.ts.map +1 -0
  403. package/dist/xlsx/workbook.d.ts +26 -0
  404. package/dist/xlsx/workbook.d.ts.map +1 -0
  405. package/dist/xlsx/write/chart-patch.d.ts +9 -0
  406. package/dist/xlsx/write/chart-patch.d.ts.map +1 -0
  407. package/dist/xlsx/write/chart.d.ts +9 -0
  408. package/dist/xlsx/write/chart.d.ts.map +1 -0
  409. package/dist/xlsx/write/comments.d.ts +23 -0
  410. package/dist/xlsx/write/comments.d.ts.map +1 -0
  411. package/dist/xlsx/write/conditional.d.ts +5 -0
  412. package/dist/xlsx/write/conditional.d.ts.map +1 -0
  413. package/dist/xlsx/write/drawing.d.ts +10 -0
  414. package/dist/xlsx/write/drawing.d.ts.map +1 -0
  415. package/dist/xlsx/write/dynamic-array.d.ts +16 -0
  416. package/dist/xlsx/write/dynamic-array.d.ts.map +1 -0
  417. package/dist/xlsx/write/index.d.ts +2 -0
  418. package/dist/xlsx/write/index.d.ts.map +1 -0
  419. package/dist/xlsx/write/package-writer.d.ts +31 -0
  420. package/dist/xlsx/write/package-writer.d.ts.map +1 -0
  421. package/dist/xlsx/write/save.d.ts +8 -0
  422. package/dist/xlsx/write/save.d.ts.map +1 -0
  423. package/dist/xlsx/write/shared-strings.d.ts +13 -0
  424. package/dist/xlsx/write/shared-strings.d.ts.map +1 -0
  425. package/dist/xlsx/write/sheet-data.d.ts +19 -0
  426. package/dist/xlsx/write/sheet-data.d.ts.map +1 -0
  427. package/dist/xlsx/write/sheet-parts.d.ts +34 -0
  428. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -0
  429. package/dist/xlsx/write/sheet-props.d.ts +16 -0
  430. package/dist/xlsx/write/sheet-props.d.ts.map +1 -0
  431. package/dist/xlsx/write/snapshot.d.ts +9 -0
  432. package/dist/xlsx/write/snapshot.d.ts.map +1 -0
  433. package/dist/xlsx/write/style-xml.d.ts +13 -0
  434. package/dist/xlsx/write/style-xml.d.ts.map +1 -0
  435. package/dist/xlsx/write/styles.d.ts +24 -0
  436. package/dist/xlsx/write/styles.d.ts.map +1 -0
  437. package/dist/xlsx/write/tables.d.ts +18 -0
  438. package/dist/xlsx/write/tables.d.ts.map +1 -0
  439. package/dist/xlsx/write/theme.d.ts +9 -0
  440. package/dist/xlsx/write/theme.d.ts.map +1 -0
  441. package/dist/xlsx/write/workbook-part.d.ts +16 -0
  442. package/dist/xlsx/write/workbook-part.d.ts.map +1 -0
  443. package/dist/xlsx/write/worksheet.d.ts +6 -0
  444. package/dist/xlsx/write/worksheet.d.ts.map +1 -0
  445. package/dist/xlsx/write/xml-out.d.ts +25 -0
  446. package/dist/xlsx/write/xml-out.d.ts.map +1 -0
  447. package/dist/xml/index.cjs +16 -0
  448. package/dist/xml/index.mjs +16 -0
  449. package/dist/xml/namespaces.d.ts +16 -0
  450. package/dist/xml/namespaces.d.ts.map +1 -1
  451. package/package.json +16 -3
@@ -0,0 +1,12 @@
1
+ import type { Workbook, Worksheet } from '../model.js';
2
+ import type { FontView } from './types.js';
3
+ /** Measures `text` in `font`, in CSS pixels at 100% zoom (injected: canvas, DOM or a font table). */
4
+ export type MeasureText = (text: string, font: FontView) => number;
5
+ /**
6
+ * The file width (as `ColumnInfo.width`) that fits every cell in column `col`, like Excel's
7
+ * AutoFit: the widest display text plus the 5 px cell padding and the 1 px gridline. Cells inside merges spanning several
8
+ * columns are ignored, as Excel does; multi-line text uses its longest line. A column without
9
+ * text gets the sheet's default width.
10
+ */
11
+ export declare function autoFitColumnWidth(sheet: Worksheet | number, workbook: Workbook, col: number, measure: MeasureText, mdw?: number): number;
12
+ //# sourceMappingURL=autofit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofit.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/autofit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,qGAAqG;AACrG,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,SAAS,GAAG,MAAM,EACzB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,GAAG,SAA0B,GAC3B,MAAM,CA6BR"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Offsets along one grid axis (rows or columns) where nearly every line has the default size and
3
+ * a sparse set of lines is custom-sized or hidden (size 0). Lookups are O(log n) in the number of
4
+ * custom lines; nothing proportional to the 1,048,576 rows of a sheet is ever allocated.
5
+ */
6
+ export declare class AxisMetrics {
7
+ readonly defaultSize: number;
8
+ /** Number of lines on the axis (last index + 1). */
9
+ readonly count: number;
10
+ /** Indices of custom-sized lines, ascending. */
11
+ private readonly indices;
12
+ /** Size of each custom line. */
13
+ private readonly sizes;
14
+ /** `prefix[k]`: sum of `(size - defaultSize)` over custom lines before `indices[k]`. */
15
+ private readonly prefix;
16
+ constructor(defaultSize: number,
17
+ /** Number of lines on the axis (last index + 1). */
18
+ count: number, overrides: Iterable<readonly [index: number, size: number]>);
19
+ private readonly totalDelta;
20
+ /** Number of custom entries strictly before `index` (binary search). */
21
+ private rank;
22
+ size(index: number): number;
23
+ /** Offset of the leading edge of `index` (`index` may equal `count` for the axis end). */
24
+ start(index: number): number;
25
+ /** Total extent of lines `0..count-1`. */
26
+ get total(): number;
27
+ /**
28
+ * The line containing `offset`: the last line whose start is at or before it and whose size is
29
+ * not zero. Offsets before the axis give 0, offsets past the end give the last visible line.
30
+ */
31
+ at(offset: number): number;
32
+ /** The first line at or after `index` with a non-zero size (or `count - 1`). */
33
+ firstVisible(index: number): number;
34
+ /** The last line at or before `index` with a non-zero size (or 0). */
35
+ lastVisible(index: number): number;
36
+ /** Largest custom-entry index, or -1. */
37
+ get lastCustom(): number;
38
+ }
39
+ //# sourceMappingURL=axis-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axis-metrics.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/axis-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,WAAW;IAStB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM;IAVvB,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAGxB,WAAW,EAAE,MAAM;IAC5B,oDAAoD;IAC3C,KAAK,EAAE,MAAM,EACtB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAmB5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,wEAAwE;IACxE,OAAO,CAAC,IAAI;IAWZ,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM3B,0FAA0F;IAC1F,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAO5B,0CAA0C;IAC1C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAuB1B,gFAAgF;IAChF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKnC,sEAAsE;IACtE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKlC,yCAAyC;IACzC,IAAI,UAAU,IAAI,MAAM,CAEvB;CACD"}
@@ -0,0 +1,21 @@
1
+ import type { CellValue, Workbook, Worksheet } from '../model.js';
2
+ import type { CellView, ConditionalFormatEvaluator } from './types.js';
3
+ /** The style id that applies to a cell: its own, else its row's, else its column's. */
4
+ export declare function effectiveStyleId(sheet: Worksheet, row: number, col: number): number;
5
+ /** Excel's `General` horizontal alignment: numbers right, booleans and errors centred, text left. */
6
+ export declare function generalAlignment(value: CellValue): 'left' | 'center' | 'right';
7
+ /** Converts `textRotation` (0-90 up, 91-180 down, 255 stacked) to degrees counter-clockwise. */
8
+ export declare function rotationDegrees(textRotation: number | undefined): {
9
+ rotation: number;
10
+ vertical: boolean;
11
+ };
12
+ export interface CellViewOptions {
13
+ /** Pixels per indent level (default 9, Excel's step with 11pt Calibri). */
14
+ indentPx?: number;
15
+ }
16
+ /**
17
+ * Everything the grid needs to paint one cell: display text, resolved font, fill, borders,
18
+ * alignment and conditional-format decorations. DOM-free; text is never measured here.
19
+ */
20
+ export declare function cellView(workbook: Workbook, sheetIndex: number, row: number, col: number, cf?: ConditionalFormatEvaluator, options?: CellViewOptions): CellView;
21
+ //# sourceMappingURL=cell-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-view.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cell-view.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwB,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxF,OAAO,KAAK,EAAE,QAAQ,EAAE,0BAA0B,EAAc,MAAM,YAAY,CAAC;AAGnF,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnF;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAI9E;AAED,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAMA;AAED,MAAM,WAAW,eAAe;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAqBD;;;GAGG;AACH,wBAAgB,QAAQ,CACvB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,CAAC,EAAE,0BAA0B,EAC/B,OAAO,GAAE,eAAoB,GAC3B,QAAQ,CA8FV"}
@@ -0,0 +1,26 @@
1
+ import type { CellValue, Workbook } from '../model.js';
2
+ import type { ConditionalFormatEvaluator } from './types.js';
3
+ export type CellAt = {
4
+ sheet: number;
5
+ row: number;
6
+ col: number;
7
+ };
8
+ export type FormulaEvaluator = (formula: string, at: CellAt) => CellValue;
9
+ export interface ConditionalFormatOptions {
10
+ /** Moves a formula's relative references by `dRow`/`dCol` (defaults to the formula module's). */
11
+ translate?: (formula: string, dRow: number, dCol: number) => string;
12
+ /**
13
+ * Today's date serial for "A Date Occurring" (`timePeriod`) rules. Defaults to evaluating
14
+ * `TODAY()` through the evaluator, then to the local clock.
15
+ */
16
+ today?: () => number;
17
+ }
18
+ /**
19
+ * Evaluates a sheet's conditional formats. Per-format statistics (min, max, average, ranks,
20
+ * duplicates) are computed once and cached; create a new evaluator after the sheet changes.
21
+ * Formulas are relative to the top-left cell of the format's first range, as in SpreadsheetML.
22
+ */
23
+ export declare function createConditionalFormatEvaluator(workbook: Workbook, sheetIndex: number, evaluate: FormulaEvaluator, options?: ConditionalFormatOptions): ConditionalFormatEvaluator;
24
+ /** The colour-scale colour of `value` between threshold positions. */
25
+ export declare function scaleColor(value: number, cuts: readonly number[], colors: readonly string[]): string | undefined;
26
+ //# sourceMappingURL=cf-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cf-evaluator.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-evaluator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,SAAS,EAIT,QAAQ,EAER,MAAM,aAAa,CAAC;AAYrB,OAAO,KAAK,EAAE,0BAA0B,EAA2B,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACxC,iGAAiG;IACjG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACrB;AAQD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,wBAA6B,GACpC,0BAA0B,CA0M5B;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,GAAG,SAAS,CAepB"}
@@ -0,0 +1,8 @@
1
+ import type { CellValue, DifferentialStyle } from '../model.js';
2
+ /** A literal number or string operand, evaluated without the formula engine. */
3
+ export declare function literal(formula: string): CellValue | undefined;
4
+ /** The serial of today's local date. */
5
+ export declare function localTodaySerial(date1904: boolean): number;
6
+ /** Later (lower-priority) differential style under the accumulated one. */
7
+ export declare function mergeDxf(acc: DifferentialStyle | undefined, next: DifferentialStyle): DifferentialStyle;
8
+ //# sourceMappingURL=cf-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cf-helpers.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhE,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ9D;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CACvB,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAClC,IAAI,EAAE,iBAAiB,GACrB,iBAAiB,CAQnB"}
@@ -0,0 +1,25 @@
1
+ import type { CellValue, ConditionalOperator } from '../model.js';
2
+ /** Compares two values the way Excel's `=`/`<` operators do (text case-insensitive). */
3
+ export declare function compareValues(a: CellValue, b: CellValue): number;
4
+ /** Whether `value` satisfies a `cellIs` operator against the evaluated operands. */
5
+ export declare function testOperator(operator: ConditionalOperator, value: CellValue, a: CellValue, b: CellValue): boolean;
6
+ /** Truthiness of a formula result (`TRUE`, non-zero numbers; text and errors are false). */
7
+ export declare function isTruthy(value: CellValue): boolean;
8
+ /** A value reduced to a key for duplicate detection (text case-insensitive). */
9
+ export declare function valueKey(value: CellValue): string | undefined;
10
+ /** `PERCENTILE.INC` over ascending `sorted` values; `p` is 0..1. */
11
+ export declare function percentile(sorted: readonly number[], p: number): number;
12
+ /** Statistics over the numeric cells of a conditional format's ranges. */
13
+ export interface RangeStats {
14
+ /** Numeric values ascending. */
15
+ sorted: number[];
16
+ min: number;
17
+ max: number;
18
+ average: number;
19
+ /** Occurrences per {@link valueKey}. */
20
+ counts: Map<string, number>;
21
+ }
22
+ export declare function computeStats(values: Iterable<CellValue>): RangeStats;
23
+ /** Text of a value as Excel's text rules see it. */
24
+ export declare function valueText(value: CellValue): string;
25
+ //# sourceMappingURL=cf-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cf-values.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWlE,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAgBhE;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACV,OAAO,CAwBT;AAED,4FAA4F;AAC5F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAIlD;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IAC1B,gCAAgC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAoBpE;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKlD"}
@@ -0,0 +1,6 @@
1
+ import type { ThemePalette } from '../model.js';
2
+ /** DrawingML `lumMod`/`lumOff` on HSL luminance. */
3
+ export declare function modulateLuminance(hex: string, lumMod: number, lumOff?: number): string;
4
+ /** The automatic colour of series (or pie point) `index`, `#RRGGBB`. */
5
+ export declare function autoSeriesColor(theme: ThemePalette, index: number): string;
6
+ //# sourceMappingURL=chart-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-colors.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-colors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqBhD,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAQjF;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E"}
@@ -0,0 +1,25 @@
1
+ /** An automatic value-axis scale. */
2
+ export interface AxisScale {
3
+ min: number;
4
+ max: number;
5
+ majorUnit: number;
6
+ /** Tick values from `min` to `max` inclusive. */
7
+ ticks: number[];
8
+ }
9
+ export interface NiceScaleOptions {
10
+ /** Most major intervals allowed (Excel aims for about 5-10 depending on size; default 10). */
11
+ maxIntervals?: number;
12
+ /** Do not pull the axis to zero (scatter X axes). */
13
+ noZero?: boolean;
14
+ }
15
+ /**
16
+ * Excel-like automatic axis bounds: the axis includes zero unless the data sits in the top sixth
17
+ * of its range, 5% headroom is added on the open ends, and the major unit is the smallest of
18
+ * 1/2/5 x 10^n that keeps the interval count within `maxIntervals`.
19
+ */
20
+ export declare function niceScale(dataMin: number, dataMax: number, options?: NiceScaleOptions): AxisScale;
21
+ /** The 0-100% scale of percent-stacked charts. */
22
+ export declare const PERCENT_SCALE: AxisScale;
23
+ /** Formats an axis value compactly (no float noise; percent axes as `40%`). */
24
+ export declare function formatAxisValue(value: number, percent?: boolean): string;
25
+ //# sourceMappingURL=chart-scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-scale.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-scale.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAcD;;;;GAIG;AACH,wBAAgB,SAAS,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC5B,SAAS,CAuCX;AAED,kDAAkD;AAClD,eAAO,MAAM,aAAa,EAAE,SAK3B,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,MAAM,CAQtE"}
@@ -0,0 +1,5 @@
1
+ import { type Rect } from './chart-svg-util.js';
2
+ import { type ChartViewModel } from './chart-view.js';
3
+ /** Paints bar, column, line, area and scatter charts into `area`. */
4
+ export declare function cartesianSvg(model: ChartViewModel, area: Rect): string;
5
+ //# sourceMappingURL=chart-svg-cartesian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-svg-cartesian.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-svg-cartesian.ts"],"names":[],"mappings":"AACA,OAAO,EASN,KAAK,IAAI,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAqMtE,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAWtE"}
@@ -0,0 +1,7 @@
1
+ import { type Rect } from './chart-svg-util.js';
2
+ import type { ChartViewModel } from './chart-view.js';
3
+ /** Pie (first series) and doughnut (one ring per series) charts. */
4
+ export declare function pieSvg(model: ChartViewModel, area: Rect): string;
5
+ /** Radar charts: one closed polyline per series over category spokes. */
6
+ export declare function radarSvg(model: ChartViewModel, area: Rect): string;
7
+ //# sourceMappingURL=chart-svg-radial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-svg-radial.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-svg-radial.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgCtD,oEAAoE;AACpE,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAyBhE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAsClE"}
@@ -0,0 +1,29 @@
1
+ /** Shared helpers for the chart SVG painters. */
2
+ export interface Rect {
3
+ x: number;
4
+ y: number;
5
+ w: number;
6
+ h: number;
7
+ }
8
+ export declare const TEXT_COLOR = "#595959";
9
+ export declare const GRID_COLOR = "#D9D9D9";
10
+ export declare const AXIS_COLOR = "#BFBFBF";
11
+ export declare const FONT_SIZE = 10;
12
+ /** Escapes text for SVG content and attribute values. */
13
+ export declare function esc(text: string): string;
14
+ /** A coordinate with at most two decimals. */
15
+ export declare const n: (value: number) => string;
16
+ /** Rough text width for layout (no measurement available in a DOM-free painter). */
17
+ export declare const textWidth: (text: string, size?: number) => number;
18
+ export declare function text(x: number, y: number, content: string, attrs?: {
19
+ anchor?: 'start' | 'middle' | 'end';
20
+ size?: number;
21
+ weight?: string;
22
+ baseline?: string;
23
+ fill?: string;
24
+ }): string;
25
+ export declare const line: (x1: number, y1: number, x2: number, y2: number, stroke: string, width?: number) => string;
26
+ export declare const rect: (x: number, y: number, w: number, h: number, fill: string) => string;
27
+ /** Shortens text to fit `maxWidth` (estimated) with an ellipsis. */
28
+ export declare function fit(content: string, maxWidth: number, size?: number): string;
29
+ //# sourceMappingURL=chart-svg-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-svg-util.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-svg-util.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,yDAAyD;AACzD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxC;AAED,8CAA8C;AAC9C,eAAO,MAAM,CAAC,GAAI,OAAO,MAAM,KAAG,MAA+C,CAAC;AAElF,oFAAoF;AACpF,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,aAAgB,KAAG,MAAmC,CAAC;AAE/F,wBAAgB,IAAI,CACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,KAAK,GAAE;IACN,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACT,GACJ,MAAM,CAQR;AAED,eAAO,MAAM,IAAI,GAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,IAAI,MAAM,EACV,IAAI,MAAM,EACV,QAAQ,MAAM,EACd,cAAS,KACP,MAC0G,CAAC;AAE9G,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,MAAM,KAAG,MAC4B,CAAC;AAE7G,oEAAoE;AACpE,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAY,GAAG,MAAM,CAI/E"}
@@ -0,0 +1,7 @@
1
+ import type { ChartViewModel } from './chart-view.js';
2
+ /**
3
+ * A standalone SVG document for a chart view model: title, legend, axes and series. Every piece
4
+ * of text is escaped. Unsupported chart types (bubble, stock, surface) render a labelled frame.
5
+ */
6
+ export declare function renderChartSvg(model: ChartViewModel, width: number, height: number): string;
7
+ //# sourceMappingURL=chart-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-svg.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-svg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwDtD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAmC3F"}
@@ -0,0 +1,42 @@
1
+ import type { CellValue, ChartObject, ChartType, Workbook } from '../model.js';
2
+ import { type AxisScale } from './chart-scale.js';
3
+ export interface ChartSeriesView {
4
+ name: string;
5
+ values: (number | null)[];
6
+ /** Scatter X values (numeric categories, or 1..n when the categories are text). */
7
+ xValues?: (number | null)[];
8
+ color: string;
9
+ /** Per-point colours (pie and doughnut vary colours by point). */
10
+ pointColors?: string[];
11
+ }
12
+ export interface ValueAxisView extends AxisScale {
13
+ /** Ticks are fractions shown as percentages (percent-stacked charts). */
14
+ percent: boolean;
15
+ }
16
+ /** Neutral data for a chart painter: series resolved, colours chosen, axes scaled. */
17
+ export interface ChartViewModel {
18
+ type: ChartType;
19
+ grouping: 'clustered' | 'stacked' | 'percentStacked' | 'standard';
20
+ title?: string;
21
+ showLegend: boolean;
22
+ legendPosition: 'r' | 'l' | 't' | 'b' | 'tr';
23
+ categories: string[];
24
+ series: ChartSeriesView[];
25
+ /** Value (Y) axis; for bar charts it runs horizontally. */
26
+ valueAxis?: ValueAxisView;
27
+ /** Scatter X axis. */
28
+ xAxis?: AxisScale;
29
+ /** Bars run horizontally (`bar`), not vertically (`column`). */
30
+ horizontal: boolean;
31
+ /** False for chart types this painter does not draw (bubble, stock, surface). */
32
+ supported: boolean;
33
+ }
34
+ export type EvaluateRef = (ref: string) => CellValue[];
35
+ /**
36
+ * Resolves a chart's series from live cells (`evaluateRef` returns the values of a reference such
37
+ * as `Sheet1!$B$2:$B$9`, flattened row-major), falling back to the values cached in the chart part.
38
+ */
39
+ export declare function chartView(workbook: Workbook, sheetIndex: number, chart: ChartObject, evaluateRef: EvaluateRef): ChartViewModel;
40
+ /** Per-category stacked totals of absolute values (for percent-stacked charts). */
41
+ export declare function categoryTotals(model: ChartViewModel): number[];
42
+ //# sourceMappingURL=chart-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-view.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/chart-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAe,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC1B,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC/C,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;AAyCvD;;;GAGG;AACH,wBAAgB,SAAS,CACxB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,GACtB,cAAc,CAuDhB;AAuCD,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAI9D"}
@@ -0,0 +1,20 @@
1
+ import type { Color, ThemePalette } from '../model.js';
2
+ /**
3
+ * The legacy 64-colour palette (`indexed` 0-63) as `RRGGBB`, followed by the system foreground
4
+ * (64, window text) and background (65, window) colours. A workbook's `indexedColors` override can
5
+ * be passed to {@link resolveColor} instead.
6
+ */
7
+ export declare const INDEXED_COLORS: readonly string[];
8
+ /** Theme slot names in SpreadsheetML index order. */
9
+ export declare const THEME_SLOTS: readonly ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink"];
10
+ /** The `RRGGBB` of theme slot `index` (0 lt1, 1 dk1, 2 lt2, 3 dk2, 4-9 accents, 10 hlink, 11 folHlink). */
11
+ export declare function themeColor(theme: ThemePalette, index: number): string | undefined;
12
+ /**
13
+ * Resolves a SpreadsheetML colour to `#RRGGBB`. Explicit RGB wins, then theme (with Excel's tint),
14
+ * then the indexed palette (64 and 65 are the system foreground and background). `auto` and a
15
+ * missing colour give `fallback`. Alpha in `AARRGGBB` is ignored, as Excel does for cells.
16
+ */
17
+ export declare function resolveColor(color: Color | undefined, theme: ThemePalette, fallback?: string, indexed?: readonly string[]): string | undefined;
18
+ /** Linear RGB interpolation between two `#RRGGBB` colours (`t` 0..1), as colour scales blend. */
19
+ export declare function mixColors(a: string, b: string, t: number): string;
20
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAmE3C,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,WAAW,8HAad,CAAC;AAkBX,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,SAAS,MAAM,EAAmB,GACzC,MAAM,GAAG,SAAS,CASpB;AAED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,21 @@
1
+ export { COLUMN_PADDING_PX, DEFAULT_BASE_COL_WIDTH, DEFAULT_MAX_DIGIT_WIDTH, INDENT_PX_PER_LEVEL, charactersToColumnWidth, charactersToPixels, columnWidthToPixels, defaultColumnPixels, pixelsToCharacters, pixelsToColumnWidth, pixelsToPoints, pointsToPixels, } from './units.js';
2
+ export { AxisMetrics } from './axis-metrics.js';
3
+ export { createGridMetrics, zoomPercent, type GridMetrics, type GridMetricsOptions, } from './metrics.js';
4
+ export { visibleCells, type Viewport, type VisibleCells } from './viewport.js';
5
+ export { applyTint, hls240ToRgb, parseHex, rgbToHls240, toHexColor, type Hls } from './tint.js';
6
+ export { INDEXED_COLORS, THEME_SLOTS, mixColors, resolveColor, themeColor } from './colors.js';
7
+ export type { BordersView, CellView, ConditionalFormatEvaluator, ConditionalFormatResult, DataBarView, EdgeView, FillView, FontView, HAlignView, IconView, MergeView, VAlignView, } from './types.js';
8
+ export { BORDER_STYLES, bordersView, edgeView, fillView, fontView, mergeFont, } from './style-view.js';
9
+ export { cellView, effectiveStyleId, generalAlignment, rotationDegrees, type CellViewOptions, } from './cell-view.js';
10
+ export { createConditionalFormatEvaluator, scaleColor, type CellAt, type ConditionalFormatOptions, type FormulaEvaluator, } from './cf-evaluator.js';
11
+ export { compareValues, percentile } from './cf-values.js';
12
+ export { isOverflowTarget, mergeView, overflowExtent, selectionStats, type OverflowExtent, type SelectionStats, } from './sheet-queries.js';
13
+ export { navigate, type NavigationKey } from './navigate.js';
14
+ export { autoFitColumnWidth, type MeasureText } from './autofit.js';
15
+ export { autoSeriesColor, modulateLuminance } from './chart-colors.js';
16
+ export { formatAxisValue, niceScale, PERCENT_SCALE, type AxisScale, type NiceScaleOptions, } from './chart-scale.js';
17
+ export { categoryTotals, chartView, type ChartSeriesView, type ChartViewModel, type EvaluateRef, type ValueAxisView, } from './chart-view.js';
18
+ export { renderChartSvg } from './chart-svg.js';
19
+ export { createRefEvaluator, type RefEvaluatorOptions } from './ref-evaluator.js';
20
+ export { approximateMeasure, autoFitRowHeight, lineHeightPoints, wrappedLineCount, } from './row-autofit.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACN,iBAAiB,EACjB,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/F,YAAY,EACX,WAAW,EACX,QAAQ,EACR,0BAA0B,EAC1B,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,gCAAgC,EAChC,UAAU,EACV,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACN,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACN,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,SAAS,EACd,KAAK,gBAAgB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,cAAc,EACd,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Worksheet } from '../model.js';
2
+ /** Pixel geometry of a sheet's grid at a zoom level (cell area only, no headers). */
3
+ export interface GridMetrics {
4
+ colLeft(c: number): number;
5
+ colWidth(c: number): number;
6
+ rowTop(r: number): number;
7
+ rowHeight(r: number): number;
8
+ /** The visible column under `x` (hidden columns are skipped). */
9
+ colAt(x: number): number;
10
+ /** The visible row under `y` (hidden rows are skipped). */
11
+ rowAt(y: number): number;
12
+ /** Width of columns `0..maxCol` (default: the scroll extent). */
13
+ totalWidth(maxCol?: number): number;
14
+ /** Height of rows `0..maxRow` (default: the scroll extent). */
15
+ totalHeight(maxRow?: number): number;
16
+ /** Zoom in percent (100 = actual size). */
17
+ zoom: number;
18
+ /** Last row / column of the suggested scroll extent (used range plus the extra margin). */
19
+ lastRow: number;
20
+ lastCol: number;
21
+ isRowHidden(r: number): boolean;
22
+ isColHidden(c: number): boolean;
23
+ }
24
+ export interface GridMetricsOptions {
25
+ /**
26
+ * Zoom in percent (defaults to `sheet.view.zoom`). Values of 4 or less are read as factors
27
+ * (`1.5` = 150%), since Excel's smallest zoom is 10%.
28
+ */
29
+ zoom?: number;
30
+ /** Maximum digit width of the workbook's default font, in pixels. */
31
+ mdw?: number;
32
+ /** Rows beyond the used range included in the scroll extent (default 50). */
33
+ extraRows?: number;
34
+ /** Columns beyond the used range included in the scroll extent (default 20). */
35
+ extraCols?: number;
36
+ }
37
+ /** Normalizes a zoom given as percent or factor to percent within Excel's 10%-400% range. */
38
+ export declare function zoomPercent(zoom: number | undefined): number;
39
+ /** Builds the grid geometry of a sheet. Sizes are whole pixels scaled by the zoom. */
40
+ export declare function createGridMetrics(sheet: Worksheet, options?: GridMetricsOptions): GridMetrics;
41
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/metrics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,iEAAiE;IACjE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,2DAA2D;IAC3D,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,iEAAiE;IACjE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,+DAA+D;IAC/D,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI5D;AAkBD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB,GAAG,WAAW,CA8CjG"}
@@ -0,0 +1,6 @@
1
+ import { type CellAddress } from '../address.js';
2
+ import type { Worksheet } from '../model.js';
3
+ export type NavigationKey = 'up' | 'down' | 'left' | 'right' | 'home' | 'end' | 'pageUp' | 'pageDown' | 'ctrlUp' | 'ctrlDown' | 'ctrlLeft' | 'ctrlRight' | 'ctrlHome' | 'ctrlEnd';
4
+ /** The cell a navigation key moves the active cell to (Excel semantics, hidden rows/cols skipped). */
5
+ export declare function navigate(sheet: Worksheet, from: CellAddress, key: NavigationKey, pageRows?: number): CellAddress;
6
+ //# sourceMappingURL=navigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,aAAa,GACtB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,SAAS,CAAC;AA2Eb,sGAAsG;AACtG,wBAAgB,QAAQ,CACvB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,aAAa,EAClB,QAAQ,SAAK,GACX,WAAW,CA8Db"}
@@ -0,0 +1,16 @@
1
+ import { type CalcEngine } from '../formula/index.js';
2
+ import type { Workbook } from '../model.js';
3
+ import type { EvaluateRef } from './chart-view.js';
4
+ export interface RefEvaluatorOptions {
5
+ /** Sheet unqualified references point at (default: the active sheet). */
6
+ sheet?: number;
7
+ }
8
+ /**
9
+ * An `evaluateRef` for {@link chartView} (and any other "values of this reference" need):
10
+ * `Sheet1!$B$2:$B$9`, `'My Sheet'!A1:A5` or a bare `A1:A5` read row by row from the live cells.
11
+ * With a calc engine, anything else (defined names, `OFFSET(...)`, unions) is evaluated by
12
+ * `calc.evaluateArray` and flattened row-major; without one, such references give `[]`.
13
+ * Whole-column references stop at the sheet's used area.
14
+ */
15
+ export declare function createRefEvaluator(workbook: Workbook, calc?: CalcEngine, options?: RefEvaluatorOptions): EvaluateRef;
16
+ //# sourceMappingURL=ref-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-evaluator.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/ref-evaluator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,MAAM,WAAW,mBAAmB;IACnC,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AA+CD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,UAAU,EACjB,OAAO,GAAE,mBAAwB,GAC/B,WAAW,CAcb"}
@@ -0,0 +1,17 @@
1
+ import type { Workbook } from '../model.js';
2
+ import type { MeasureText } from './autofit.js';
3
+ /** Points one line of text in a font of `sizePt` needs (interpolated, whole pixels). */
4
+ export declare function lineHeightPoints(sizePt: number): number;
5
+ /** How many lines `text` wraps into within `width` px (word wrap, explicit line breaks kept). */
6
+ export declare function wrappedLineCount(text: string, width: number, measure: (text: string) => number): number;
7
+ /**
8
+ * The height in points that fits every cell of `row`, as Excel's row AutoFit computes it:
9
+ * the largest font's line height, times the wrapped line count for cells with wrap text
10
+ * (measured against the column width less the cell padding). Cells inside merges are ignored,
11
+ * as Excel does. A row without text gets the sheet's default height. Line heights follow
12
+ * Calibri metrics, so other fonts are approximate.
13
+ */
14
+ export declare function autoFitRowHeight(workbook: Workbook, sheetIndex: number, row: number, measure: MeasureText): number;
15
+ /** A font-size based text measure (px) for when no real text measurement is available. */
16
+ export declare const approximateMeasure: MeasureText;
17
+ //# sourceMappingURL=row-autofit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-autofit.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/row-autofit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA0BhD,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAevD;AAED,iGAAiG;AACjG,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC/B,MAAM,CAwBR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GAClB,MAAM,CA6BR;AAED,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,EAAE,WACqB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { type CellRange } from '../address.js';
2
+ import type { Workbook, Worksheet } from '../model.js';
3
+ import type { GridMetrics } from './metrics.js';
4
+ import type { HAlignView, MergeView } from './types.js';
5
+ /** How a cell takes part in a merge. */
6
+ export declare function mergeView(sheet: Worksheet, row: number, col: number): MergeView;
7
+ export interface SelectionStats {
8
+ /** Non-empty cells (Excel's "Count"). */
9
+ count: number;
10
+ /** Numeric cells ("Numerical Count"). */
11
+ numericCount: number;
12
+ sum: number;
13
+ average?: number;
14
+ min?: number;
15
+ max?: number;
16
+ }
17
+ /**
18
+ * Status-bar statistics over selected ranges. Only stored cells are visited, so whole-column
19
+ * selections stay cheap. Overlapping ranges count their shared cells once.
20
+ */
21
+ export declare function selectionStats(workbook: Workbook, sheet: number | Worksheet, ranges: CellRange[]): SelectionStats;
22
+ /** A cell that text may overflow into: nothing stored there, or an empty value without a formula. */
23
+ export declare function isOverflowTarget(sheet: Worksheet, row: number, col: number): boolean;
24
+ export interface OverflowExtent {
25
+ startCol: number;
26
+ endCol: number;
27
+ /** Left and right edges of the painted text box in grid pixels. */
28
+ left: number;
29
+ right: number;
30
+ }
31
+ /**
32
+ * How far a cell's text spills over empty neighbours. Left-aligned text extends right,
33
+ * right-aligned text extends left and centred text both ways, each side stopping at the first
34
+ * non-empty or merged cell. `textWidth` is the measured text width in pixels (at the metrics' zoom).
35
+ */
36
+ export declare function overflowExtent(sheet: Worksheet, metrics: GridMetrics, row: number, col: number, textWidth: number, hAlign: HAlignView, maxSpan?: number): OverflowExtent;
37
+ //# sourceMappingURL=sheet-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-queries.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/sheet-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAK/E;AAED,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,SAAS,EAAE,GACjB,cAAc,CA8BhB;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,SAAM,GACX,cAAc,CA+BhB"}
@@ -0,0 +1,18 @@
1
+ import type { Border, BorderEdge, BorderStyle, Fill, Font, ThemePalette } from '../model.js';
2
+ import type { BordersView, EdgeView, FillView, FontView } from './types.js';
3
+ /** `font` over `base`: every property `font` sets wins. */
4
+ export declare function mergeFont(base: Font, font: Font | undefined): Font;
5
+ /** A font ready to paint. Theme fonts (`scheme`) resolve through the workbook theme. */
6
+ export declare function fontView(font: Font, theme: ThemePalette): FontView;
7
+ /**
8
+ * A fill ready to paint. `differential` follows the dxf convention, where a solid fill's colour
9
+ * is its `bgColor` (Excel writes conditional-format fills that way).
10
+ */
11
+ export declare function fillView(fill: Fill | undefined, theme: ThemePalette, differential?: boolean): FillView | undefined;
12
+ /** Pixel width and CSS-like style of each Excel border style at 100% zoom. */
13
+ export declare const BORDER_STYLES: Readonly<Record<BorderStyle, Omit<EdgeView, 'color'>>>;
14
+ export declare function edgeView(edge: BorderEdge | undefined, theme: ThemePalette): EdgeView | undefined;
15
+ /** `border` over `base` per edge (used for conditional-format borders). */
16
+ export declare function mergeBorder(base: Border, border: Border | undefined): Border;
17
+ export declare function bordersView(border: Border, theme: ThemePalette): BordersView;
18
+ //# sourceMappingURL=style-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-view.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/style-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ5E,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAMlE;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,QAAQ,CAqBlE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACvB,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,KAAK,EAAE,YAAY,EACnB,YAAY,UAAQ,GAClB,QAAQ,GAAG,SAAS,CA6BtB;AAID,8EAA8E;AAC9E,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAchF,CAAC;AAEF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAKhG;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM5E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,WAAW,CAa5E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Excel's colour tint (`<color theme="4" tint="0.39997"/>`). Excel converts the base colour to
3
+ * HLS on the Windows integer scale (`HLSMAX` 240, as `ColorRGBToHLS` does), scales the luminance
4
+ * (`L * (1 + tint)` to darken, `L * (1 - tint) + HLSMAX * tint` to lighten) and converts back
5
+ * with the same integer arithmetic.
6
+ *
7
+ * Measured against 252 colours read back from Excel 16 through COM (see
8
+ * `__fixtures__/excel-tints.txt`): 211 match exactly, the rest are within 3 per channel. The
9
+ * standard palette tints of the theme colours (the "Lighter 40%" family) all match.
10
+ */
11
+ export interface Hls {
12
+ h: number;
13
+ l: number;
14
+ s: number;
15
+ }
16
+ /** RGB (0-255) to integer HLS (0-240), the classic `ColorRGBToHLS` algorithm. */
17
+ export declare function rgbToHls240(r: number, g: number, b: number): Hls;
18
+ /** Integer HLS (0-240) back to RGB (0-255), the classic `ColorHLSToRGB` algorithm. */
19
+ export declare function hls240ToRgb({ h, l, s }: Hls): [number, number, number];
20
+ /** Parses `RRGGBB` or `AARRGGBB` (alpha ignored), with or without `#`. */
21
+ export declare function parseHex(hex: string): [number, number, number] | undefined;
22
+ /** `#RRGGBB` (upper case). */
23
+ export declare const toHexColor: (rgb: readonly number[]) => string;
24
+ /** Applies an Excel tint (-1..1) to an `RRGGBB` colour; returns `#RRGGBB`. */
25
+ export declare function applyTint(hex: string, tint: number | undefined): string;
26
+ //# sourceMappingURL=tint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tint.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/tint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,GAAG;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAsBhE;AAgBD,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAatE;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAK1E;AAED,8BAA8B;AAC9B,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,EAAE,KAAG,MAIlC,CAAC;AAEnB,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOvE"}