@cj-tech-master/excelts 9.4.2 → 9.5.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 (618) hide show
  1. package/dist/browser/index.browser.d.ts +8 -5
  2. package/dist/browser/index.browser.js +19 -1
  3. package/dist/browser/index.d.ts +4 -2
  4. package/dist/browser/index.js +9 -1
  5. package/dist/browser/modules/excel/chart/cache-populator.d.ts +49 -0
  6. package/dist/browser/modules/excel/chart/cache-populator.js +1171 -0
  7. package/dist/browser/modules/excel/chart/chart-api.d.ts +92 -0
  8. package/dist/browser/modules/excel/chart/chart-api.js +364 -0
  9. package/dist/browser/modules/excel/chart/chart-builder.d.ts +48 -0
  10. package/dist/browser/modules/excel/chart/chart-builder.js +2432 -0
  11. package/dist/browser/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  12. package/dist/browser/modules/excel/chart/chart-ex-builder.js +903 -0
  13. package/dist/browser/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  14. package/dist/browser/modules/excel/chart/chart-ex-parser.js +1205 -0
  15. package/dist/browser/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  16. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +5352 -0
  17. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +531 -0
  18. package/dist/browser/modules/excel/chart/chart-ex-types.js +11 -0
  19. package/dist/browser/modules/excel/chart/chart-images.d.ts +78 -0
  20. package/dist/browser/modules/excel/chart/chart-images.js +363 -0
  21. package/dist/browser/modules/excel/chart/chart-presets.d.ts +392 -0
  22. package/dist/browser/modules/excel/chart/chart-presets.js +179 -0
  23. package/dist/browser/modules/excel/chart/chart-renderer.d.ts +550 -0
  24. package/dist/browser/modules/excel/chart/chart-renderer.js +6440 -0
  25. package/dist/browser/modules/excel/chart/chart-sidecar.d.ts +21 -0
  26. package/dist/browser/modules/excel/chart/chart-sidecar.js +427 -0
  27. package/dist/browser/modules/excel/chart/chart-utils.d.ts +306 -0
  28. package/dist/browser/modules/excel/chart/chart-utils.js +821 -0
  29. package/dist/browser/modules/excel/chart/chart.d.ts +504 -0
  30. package/dist/browser/modules/excel/chart/chart.js +1320 -0
  31. package/dist/browser/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  32. package/dist/browser/modules/excel/chart/glyph-rasterizer.js +658 -0
  33. package/dist/browser/modules/excel/chart/index.d.ts +54 -0
  34. package/dist/browser/modules/excel/chart/index.js +46 -0
  35. package/dist/browser/modules/excel/chart/install.d.ts +44 -0
  36. package/dist/browser/modules/excel/chart/install.js +91 -0
  37. package/dist/browser/modules/excel/chart/shape-properties.d.ts +156 -0
  38. package/dist/browser/modules/excel/chart/shape-properties.js +1557 -0
  39. package/dist/browser/modules/excel/chart/stroke-font.d.ts +36 -0
  40. package/dist/browser/modules/excel/chart/stroke-font.js +1556 -0
  41. package/dist/browser/modules/excel/chart/topojson.d.ts +98 -0
  42. package/dist/browser/modules/excel/chart/topojson.js +236 -0
  43. package/dist/browser/modules/excel/chart/types.d.ts +2559 -0
  44. package/dist/browser/modules/excel/chart/types.js +8 -0
  45. package/dist/browser/modules/excel/chart-host-registry.d.ts +157 -0
  46. package/dist/browser/modules/excel/chart-host-registry.js +90 -0
  47. package/dist/browser/modules/excel/chartsheet.d.ts +102 -0
  48. package/dist/browser/modules/excel/chartsheet.js +196 -0
  49. package/dist/browser/modules/excel/defined-names.d.ts +35 -0
  50. package/dist/browser/modules/excel/defined-names.js +44 -4
  51. package/dist/browser/modules/excel/errors.d.ts +6 -0
  52. package/dist/browser/modules/excel/errors.js +9 -0
  53. package/dist/browser/modules/excel/form-control.d.ts +6 -0
  54. package/dist/browser/modules/excel/form-control.js +17 -0
  55. package/dist/browser/modules/excel/image.js +12 -2
  56. package/dist/browser/modules/excel/pivot-chart.d.ts +7 -0
  57. package/dist/browser/modules/excel/pivot-chart.js +53 -0
  58. package/dist/browser/modules/excel/pivot-table.d.ts +55 -0
  59. package/dist/browser/modules/excel/pivot-table.js +35 -0
  60. package/dist/browser/modules/excel/range.js +5 -1
  61. package/dist/browser/modules/excel/sparkline/index.d.ts +7 -0
  62. package/dist/browser/modules/excel/sparkline/index.js +7 -0
  63. package/dist/browser/modules/excel/sparkline/sparkline.d.ts +206 -0
  64. package/dist/browser/modules/excel/sparkline/sparkline.js +750 -0
  65. package/dist/browser/modules/excel/stream/worksheet-writer.js +3 -2
  66. package/dist/browser/modules/excel/table.js +42 -6
  67. package/dist/browser/modules/excel/types.d.ts +72 -0
  68. package/dist/browser/modules/excel/utils/address.d.ts +18 -0
  69. package/dist/browser/modules/excel/utils/address.js +28 -0
  70. package/dist/browser/modules/excel/utils/drawing-utils.js +11 -6
  71. package/dist/browser/modules/excel/utils/guid.d.ts +15 -0
  72. package/dist/browser/modules/excel/utils/guid.js +35 -0
  73. package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +74 -0
  74. package/dist/browser/modules/excel/utils/ooxml-paths.js +206 -9
  75. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  76. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  77. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  78. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  79. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  80. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  81. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  82. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  83. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  84. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  85. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  86. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  87. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  88. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  89. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  90. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  91. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  92. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  93. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  94. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  95. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  96. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  97. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  98. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  99. package/dist/browser/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  100. package/dist/browser/modules/excel/utils/ooxml-validator/context.js +191 -0
  101. package/dist/browser/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  102. package/dist/browser/modules/excel/utils/ooxml-validator/index.js +102 -0
  103. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  104. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  105. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  106. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  107. package/dist/browser/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  108. package/dist/browser/modules/excel/utils/ooxml-validator/types.js +12 -0
  109. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  110. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  111. package/dist/browser/modules/excel/workbook.browser.d.ts +248 -30
  112. package/dist/browser/modules/excel/workbook.browser.js +966 -31
  113. package/dist/browser/modules/excel/workbook.d.ts +43 -0
  114. package/dist/browser/modules/excel/workbook.js +48 -0
  115. package/dist/browser/modules/excel/worksheet.d.ts +157 -3
  116. package/dist/browser/modules/excel/worksheet.js +394 -35
  117. package/dist/browser/modules/excel/xlsx/rel-type.d.ts +40 -0
  118. package/dist/browser/modules/excel/xlsx/rel-type.js +41 -1
  119. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  120. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  121. package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  122. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  123. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  124. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  125. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  126. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  127. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  128. package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  129. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  130. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  131. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  132. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  133. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  134. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  135. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  136. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  137. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  138. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  139. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  140. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  141. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  142. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  143. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  144. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  145. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  146. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  147. package/dist/browser/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  148. package/dist/browser/modules/excel/xlsx/xform/xsd-values.js +101 -0
  149. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  150. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +4422 -78
  151. package/dist/browser/modules/pdf/builder/document-builder.d.ts +74 -0
  152. package/dist/browser/modules/pdf/builder/document-builder.js +507 -2
  153. package/dist/browser/modules/pdf/builder/pdf-editor.js +48 -3
  154. package/dist/browser/modules/pdf/excel-bridge.d.ts +69 -0
  155. package/dist/browser/modules/pdf/excel-bridge.js +683 -12
  156. package/dist/browser/modules/pdf/font/font-manager.d.ts +25 -0
  157. package/dist/browser/modules/pdf/font/font-manager.js +39 -0
  158. package/dist/browser/modules/pdf/index.d.ts +5 -2
  159. package/dist/browser/modules/pdf/index.js +3 -1
  160. package/dist/browser/modules/pdf/render/chart-surface.d.ts +33 -0
  161. package/dist/browser/modules/pdf/render/chart-surface.js +200 -0
  162. package/dist/browser/modules/pdf/render/layout-engine.d.ts +22 -1
  163. package/dist/browser/modules/pdf/render/layout-engine.js +436 -56
  164. package/dist/browser/modules/pdf/render/page-renderer.js +169 -28
  165. package/dist/browser/modules/pdf/render/pdf-exporter.js +117 -7
  166. package/dist/browser/modules/pdf/types.d.ts +227 -23
  167. package/dist/browser/modules/pdf/types.js +4 -0
  168. package/dist/browser/modules/pdf/word-bridge.d.ts +47 -0
  169. package/dist/browser/modules/pdf/word-bridge.js +304 -0
  170. package/dist/browser/modules/word/constants.d.ts +179 -0
  171. package/dist/browser/modules/word/constants.js +231 -0
  172. package/dist/browser/modules/word/content-types.d.ts +27 -0
  173. package/dist/browser/modules/word/content-types.js +53 -0
  174. package/dist/browser/modules/word/digital-signatures.d.ts +87 -0
  175. package/dist/browser/modules/word/digital-signatures.js +134 -0
  176. package/dist/browser/modules/word/document.d.ts +728 -0
  177. package/dist/browser/modules/word/document.js +1795 -0
  178. package/dist/browser/modules/word/docx-packager.d.ts +14 -0
  179. package/dist/browser/modules/word/docx-packager.js +822 -0
  180. package/dist/browser/modules/word/docx-reader.d.ts +11 -0
  181. package/dist/browser/modules/word/docx-reader.js +4929 -0
  182. package/dist/browser/modules/word/encryption.d.ts +102 -0
  183. package/dist/browser/modules/word/encryption.js +274 -0
  184. package/dist/browser/modules/word/errors.d.ts +49 -0
  185. package/dist/browser/modules/word/errors.js +68 -0
  186. package/dist/browser/modules/word/font-obfuscation.d.ts +31 -0
  187. package/dist/browser/modules/word/font-obfuscation.js +83 -0
  188. package/dist/browser/modules/word/html-renderer.d.ts +38 -0
  189. package/dist/browser/modules/word/html-renderer.js +782 -0
  190. package/dist/browser/modules/word/index.base.d.ts +19 -0
  191. package/dist/browser/modules/word/index.base.js +51 -0
  192. package/dist/browser/modules/word/index.browser.d.ts +4 -0
  193. package/dist/browser/modules/word/index.browser.js +4 -0
  194. package/dist/browser/modules/word/index.d.ts +4 -0
  195. package/dist/browser/modules/word/index.js +4 -0
  196. package/dist/browser/modules/word/internal-utils.d.ts +23 -0
  197. package/dist/browser/modules/word/internal-utils.js +54 -0
  198. package/dist/browser/modules/word/relationships.d.ts +31 -0
  199. package/dist/browser/modules/word/relationships.js +56 -0
  200. package/dist/browser/modules/word/types.d.ts +2325 -0
  201. package/dist/browser/modules/word/types.js +10 -0
  202. package/dist/browser/modules/word/units.d.ts +49 -0
  203. package/dist/browser/modules/word/units.js +111 -0
  204. package/dist/browser/modules/word/writers/chart-writer.d.ts +10 -0
  205. package/dist/browser/modules/word/writers/chart-writer.js +385 -0
  206. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +9 -0
  207. package/dist/browser/modules/word/writers/checkbox-writer.js +42 -0
  208. package/dist/browser/modules/word/writers/comment-writer.d.ts +15 -0
  209. package/dist/browser/modules/word/writers/comment-writer.js +70 -0
  210. package/dist/browser/modules/word/writers/document-writer.d.ts +16 -0
  211. package/dist/browser/modules/word/writers/document-writer.js +461 -0
  212. package/dist/browser/modules/word/writers/footnote-writer.d.ts +11 -0
  213. package/dist/browser/modules/word/writers/footnote-writer.js +72 -0
  214. package/dist/browser/modules/word/writers/header-footer-writer.d.ts +13 -0
  215. package/dist/browser/modules/word/writers/header-footer-writer.js +129 -0
  216. package/dist/browser/modules/word/writers/image-writer.d.ts +10 -0
  217. package/dist/browser/modules/word/writers/image-writer.js +185 -0
  218. package/dist/browser/modules/word/writers/math-writer.d.ts +9 -0
  219. package/dist/browser/modules/word/writers/math-writer.js +428 -0
  220. package/dist/browser/modules/word/writers/numbering-writer.d.ts +10 -0
  221. package/dist/browser/modules/word/writers/numbering-writer.js +125 -0
  222. package/dist/browser/modules/word/writers/paragraph-writer.d.ts +13 -0
  223. package/dist/browser/modules/word/writers/paragraph-writer.js +516 -0
  224. package/dist/browser/modules/word/writers/parts-writer.d.ts +26 -0
  225. package/dist/browser/modules/word/writers/parts-writer.js +660 -0
  226. package/dist/browser/modules/word/writers/run-writer.d.ts +15 -0
  227. package/dist/browser/modules/word/writers/run-writer.js +649 -0
  228. package/dist/browser/modules/word/writers/section-writer.d.ts +10 -0
  229. package/dist/browser/modules/word/writers/section-writer.js +238 -0
  230. package/dist/browser/modules/word/writers/styles-writer.d.ts +10 -0
  231. package/dist/browser/modules/word/writers/styles-writer.js +242 -0
  232. package/dist/browser/modules/word/writers/table-writer.d.ts +10 -0
  233. package/dist/browser/modules/word/writers/table-writer.js +503 -0
  234. package/dist/browser/modules/word/writers/textbox-writer.d.ts +9 -0
  235. package/dist/browser/modules/word/writers/textbox-writer.js +53 -0
  236. package/dist/browser/modules/word/writers/toc-writer.d.ts +9 -0
  237. package/dist/browser/modules/word/writers/toc-writer.js +79 -0
  238. package/dist/browser/modules/xml/encode.d.ts +56 -7
  239. package/dist/browser/modules/xml/encode.js +157 -11
  240. package/dist/cjs/index.js +13 -2
  241. package/dist/cjs/modules/excel/chart/cache-populator.js +1178 -0
  242. package/dist/cjs/modules/excel/chart/chart-api.js +371 -0
  243. package/dist/cjs/modules/excel/chart/chart-builder.js +2440 -0
  244. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +907 -0
  245. package/dist/cjs/modules/excel/chart/chart-ex-parser.js +1208 -0
  246. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +5364 -0
  247. package/dist/cjs/modules/excel/chart/chart-ex-types.js +12 -0
  248. package/dist/cjs/modules/excel/chart/chart-images.js +366 -0
  249. package/dist/cjs/modules/excel/chart/chart-presets.js +184 -0
  250. package/dist/cjs/modules/excel/chart/chart-renderer.js +6450 -0
  251. package/dist/cjs/modules/excel/chart/chart-sidecar.js +433 -0
  252. package/dist/cjs/modules/excel/chart/chart-utils.js +845 -0
  253. package/dist/cjs/modules/excel/chart/chart.js +1324 -0
  254. package/dist/cjs/modules/excel/chart/glyph-rasterizer.js +664 -0
  255. package/dist/cjs/modules/excel/chart/index.js +101 -0
  256. package/dist/cjs/modules/excel/chart/install.js +95 -0
  257. package/dist/cjs/modules/excel/chart/shape-properties.js +1577 -0
  258. package/dist/cjs/modules/excel/chart/stroke-font.js +1559 -0
  259. package/dist/cjs/modules/excel/chart/topojson.js +239 -0
  260. package/dist/cjs/modules/excel/chart/types.js +9 -0
  261. package/dist/cjs/modules/excel/chart-host-registry.js +96 -0
  262. package/dist/cjs/modules/excel/chartsheet.js +199 -0
  263. package/dist/cjs/modules/excel/defined-names.js +44 -4
  264. package/dist/cjs/modules/excel/errors.js +11 -1
  265. package/dist/cjs/modules/excel/form-control.js +17 -0
  266. package/dist/cjs/modules/excel/image.js +12 -2
  267. package/dist/cjs/modules/excel/pivot-chart.js +56 -0
  268. package/dist/cjs/modules/excel/pivot-table.js +35 -0
  269. package/dist/cjs/modules/excel/range.js +5 -1
  270. package/dist/cjs/modules/excel/sparkline/index.js +23 -0
  271. package/dist/cjs/modules/excel/sparkline/sparkline.js +756 -0
  272. package/dist/cjs/modules/excel/stream/worksheet-writer.js +3 -2
  273. package/dist/cjs/modules/excel/table.js +42 -6
  274. package/dist/cjs/modules/excel/utils/address.js +29 -0
  275. package/dist/cjs/modules/excel/utils/drawing-utils.js +11 -6
  276. package/dist/cjs/modules/excel/utils/guid.js +38 -0
  277. package/dist/cjs/modules/excel/utils/ooxml-paths.js +246 -9
  278. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +103 -0
  279. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart.js +2128 -0
  280. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chartsheet.js +29 -0
  281. package/dist/cjs/modules/excel/utils/ooxml-validator/check-content-types.js +184 -0
  282. package/dist/cjs/modules/excel/utils/ooxml-validator/check-drawing.js +270 -0
  283. package/dist/cjs/modules/excel/utils/ooxml-validator/check-pivot.js +107 -0
  284. package/dist/cjs/modules/excel/utils/ooxml-validator/check-relationships.js +188 -0
  285. package/dist/cjs/modules/excel/utils/ooxml-validator/check-structure.js +60 -0
  286. package/dist/cjs/modules/excel/utils/ooxml-validator/check-styles.js +92 -0
  287. package/dist/cjs/modules/excel/utils/ooxml-validator/check-table.js +180 -0
  288. package/dist/cjs/modules/excel/utils/ooxml-validator/check-workbook.js +166 -0
  289. package/dist/cjs/modules/excel/utils/ooxml-validator/check-worksheet.js +572 -0
  290. package/dist/cjs/modules/excel/utils/ooxml-validator/context.js +196 -0
  291. package/dist/cjs/modules/excel/utils/ooxml-validator/index.js +105 -0
  292. package/dist/cjs/modules/excel/utils/ooxml-validator/path-utils.js +168 -0
  293. package/dist/cjs/modules/excel/utils/ooxml-validator/reporter.js +66 -0
  294. package/dist/cjs/modules/excel/utils/ooxml-validator/types.js +13 -0
  295. package/dist/cjs/modules/excel/utils/ooxml-validator/xml-utils.js +110 -0
  296. package/dist/cjs/modules/excel/workbook.browser.js +973 -38
  297. package/dist/cjs/modules/excel/workbook.js +48 -0
  298. package/dist/cjs/modules/excel/worksheet.js +393 -34
  299. package/dist/cjs/modules/excel/xlsx/rel-type.js +41 -1
  300. package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  301. package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  302. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  303. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6003 -0
  304. package/dist/cjs/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +219 -0
  305. package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +149 -10
  306. package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  307. package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  308. package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  309. package/dist/cjs/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +228 -0
  310. package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  311. package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  312. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  313. package/dist/cjs/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +444 -0
  314. package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  315. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +195 -19
  316. package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  317. package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  318. package/dist/cjs/modules/excel/xlsx/xform/xsd-values.js +106 -0
  319. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +4420 -76
  320. package/dist/cjs/modules/pdf/builder/document-builder.js +506 -1
  321. package/dist/cjs/modules/pdf/builder/pdf-editor.js +48 -3
  322. package/dist/cjs/modules/pdf/excel-bridge.js +684 -12
  323. package/dist/cjs/modules/pdf/font/font-manager.js +39 -0
  324. package/dist/cjs/modules/pdf/index.js +5 -1
  325. package/dist/cjs/modules/pdf/render/chart-surface.js +203 -0
  326. package/dist/cjs/modules/pdf/render/layout-engine.js +437 -56
  327. package/dist/cjs/modules/pdf/render/page-renderer.js +169 -28
  328. package/dist/cjs/modules/pdf/render/pdf-exporter.js +115 -5
  329. package/dist/cjs/modules/pdf/types.js +5 -0
  330. package/dist/cjs/modules/pdf/word-bridge.js +307 -0
  331. package/dist/cjs/modules/word/constants.js +234 -0
  332. package/dist/cjs/modules/word/content-types.js +57 -0
  333. package/dist/cjs/modules/word/digital-signatures.js +140 -0
  334. package/dist/cjs/modules/word/document.js +1909 -0
  335. package/dist/cjs/modules/word/docx-packager.js +825 -0
  336. package/dist/cjs/modules/word/docx-reader.js +4932 -0
  337. package/dist/cjs/modules/word/encryption.js +282 -0
  338. package/dist/cjs/modules/word/errors.js +88 -0
  339. package/dist/cjs/modules/word/font-obfuscation.js +88 -0
  340. package/dist/cjs/modules/word/html-renderer.js +785 -0
  341. package/dist/cjs/modules/word/index.base.js +199 -0
  342. package/dist/cjs/modules/word/index.browser.js +20 -0
  343. package/dist/cjs/modules/word/index.js +20 -0
  344. package/dist/cjs/modules/word/internal-utils.js +59 -0
  345. package/dist/cjs/modules/word/relationships.js +60 -0
  346. package/dist/cjs/modules/word/types.js +11 -0
  347. package/dist/cjs/modules/word/units.js +135 -0
  348. package/dist/cjs/modules/word/writers/chart-writer.js +388 -0
  349. package/dist/cjs/modules/word/writers/checkbox-writer.js +45 -0
  350. package/dist/cjs/modules/word/writers/comment-writer.js +74 -0
  351. package/dist/cjs/modules/word/writers/document-writer.js +465 -0
  352. package/dist/cjs/modules/word/writers/footnote-writer.js +76 -0
  353. package/dist/cjs/modules/word/writers/header-footer-writer.js +134 -0
  354. package/dist/cjs/modules/word/writers/image-writer.js +188 -0
  355. package/dist/cjs/modules/word/writers/math-writer.js +431 -0
  356. package/dist/cjs/modules/word/writers/numbering-writer.js +128 -0
  357. package/dist/cjs/modules/word/writers/paragraph-writer.js +521 -0
  358. package/dist/cjs/modules/word/writers/parts-writer.js +671 -0
  359. package/dist/cjs/modules/word/writers/run-writer.js +655 -0
  360. package/dist/cjs/modules/word/writers/section-writer.js +241 -0
  361. package/dist/cjs/modules/word/writers/styles-writer.js +245 -0
  362. package/dist/cjs/modules/word/writers/table-writer.js +506 -0
  363. package/dist/cjs/modules/word/writers/textbox-writer.js +56 -0
  364. package/dist/cjs/modules/word/writers/toc-writer.js +82 -0
  365. package/dist/cjs/modules/xml/encode.js +158 -11
  366. package/dist/esm/index.browser.js +20 -2
  367. package/dist/esm/index.js +9 -1
  368. package/dist/esm/modules/excel/chart/cache-populator.js +1171 -0
  369. package/dist/esm/modules/excel/chart/chart-api.js +364 -0
  370. package/dist/esm/modules/excel/chart/chart-builder.js +2432 -0
  371. package/dist/esm/modules/excel/chart/chart-ex-builder.js +903 -0
  372. package/dist/esm/modules/excel/chart/chart-ex-parser.js +1205 -0
  373. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +5352 -0
  374. package/dist/esm/modules/excel/chart/chart-ex-types.js +11 -0
  375. package/dist/esm/modules/excel/chart/chart-images.js +363 -0
  376. package/dist/esm/modules/excel/chart/chart-presets.js +179 -0
  377. package/dist/esm/modules/excel/chart/chart-renderer.js +6440 -0
  378. package/dist/esm/modules/excel/chart/chart-sidecar.js +427 -0
  379. package/dist/esm/modules/excel/chart/chart-utils.js +821 -0
  380. package/dist/esm/modules/excel/chart/chart.js +1320 -0
  381. package/dist/esm/modules/excel/chart/glyph-rasterizer.js +658 -0
  382. package/dist/esm/modules/excel/chart/index.js +46 -0
  383. package/dist/esm/modules/excel/chart/install.js +91 -0
  384. package/dist/esm/modules/excel/chart/shape-properties.js +1557 -0
  385. package/dist/esm/modules/excel/chart/stroke-font.js +1556 -0
  386. package/dist/esm/modules/excel/chart/topojson.js +236 -0
  387. package/dist/esm/modules/excel/chart/types.js +8 -0
  388. package/dist/esm/modules/excel/chart-host-registry.js +90 -0
  389. package/dist/esm/modules/excel/chartsheet.js +196 -0
  390. package/dist/esm/modules/excel/defined-names.js +44 -4
  391. package/dist/esm/modules/excel/errors.js +9 -0
  392. package/dist/esm/modules/excel/form-control.js +17 -0
  393. package/dist/esm/modules/excel/image.js +12 -2
  394. package/dist/esm/modules/excel/pivot-chart.js +53 -0
  395. package/dist/esm/modules/excel/pivot-table.js +35 -0
  396. package/dist/esm/modules/excel/range.js +5 -1
  397. package/dist/esm/modules/excel/sparkline/index.js +7 -0
  398. package/dist/esm/modules/excel/sparkline/sparkline.js +750 -0
  399. package/dist/esm/modules/excel/stream/worksheet-writer.js +3 -2
  400. package/dist/esm/modules/excel/table.js +42 -6
  401. package/dist/esm/modules/excel/utils/address.js +28 -0
  402. package/dist/esm/modules/excel/utils/drawing-utils.js +11 -6
  403. package/dist/esm/modules/excel/utils/guid.js +35 -0
  404. package/dist/esm/modules/excel/utils/ooxml-paths.js +206 -9
  405. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  406. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  407. package/dist/esm/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  408. package/dist/esm/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  409. package/dist/esm/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  410. package/dist/esm/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  411. package/dist/esm/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  412. package/dist/esm/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  413. package/dist/esm/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  414. package/dist/esm/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  415. package/dist/esm/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  416. package/dist/esm/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  417. package/dist/esm/modules/excel/utils/ooxml-validator/context.js +191 -0
  418. package/dist/esm/modules/excel/utils/ooxml-validator/index.js +102 -0
  419. package/dist/esm/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  420. package/dist/esm/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  421. package/dist/esm/modules/excel/utils/ooxml-validator/types.js +12 -0
  422. package/dist/esm/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  423. package/dist/esm/modules/excel/workbook.browser.js +969 -34
  424. package/dist/esm/modules/excel/workbook.js +48 -0
  425. package/dist/esm/modules/excel/worksheet.js +394 -35
  426. package/dist/esm/modules/excel/xlsx/rel-type.js +41 -1
  427. package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  428. package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  429. package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  430. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  431. package/dist/esm/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  432. package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  433. package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  434. package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  435. package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  436. package/dist/esm/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  437. package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  438. package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  439. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  440. package/dist/esm/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  441. package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  442. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  443. package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  444. package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  445. package/dist/esm/modules/excel/xlsx/xform/xsd-values.js +101 -0
  446. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +4422 -78
  447. package/dist/esm/modules/pdf/builder/document-builder.js +507 -2
  448. package/dist/esm/modules/pdf/builder/pdf-editor.js +48 -3
  449. package/dist/esm/modules/pdf/excel-bridge.js +683 -12
  450. package/dist/esm/modules/pdf/font/font-manager.js +39 -0
  451. package/dist/esm/modules/pdf/index.js +3 -1
  452. package/dist/esm/modules/pdf/render/chart-surface.js +200 -0
  453. package/dist/esm/modules/pdf/render/layout-engine.js +436 -56
  454. package/dist/esm/modules/pdf/render/page-renderer.js +169 -28
  455. package/dist/esm/modules/pdf/render/pdf-exporter.js +117 -7
  456. package/dist/esm/modules/pdf/types.js +4 -0
  457. package/dist/esm/modules/pdf/word-bridge.js +304 -0
  458. package/dist/esm/modules/word/constants.js +231 -0
  459. package/dist/esm/modules/word/content-types.js +53 -0
  460. package/dist/esm/modules/word/digital-signatures.js +134 -0
  461. package/dist/esm/modules/word/document.js +1795 -0
  462. package/dist/esm/modules/word/docx-packager.js +822 -0
  463. package/dist/esm/modules/word/docx-reader.js +4929 -0
  464. package/dist/esm/modules/word/encryption.js +274 -0
  465. package/dist/esm/modules/word/errors.js +68 -0
  466. package/dist/esm/modules/word/font-obfuscation.js +83 -0
  467. package/dist/esm/modules/word/html-renderer.js +782 -0
  468. package/dist/esm/modules/word/index.base.js +51 -0
  469. package/dist/esm/modules/word/index.browser.js +4 -0
  470. package/dist/esm/modules/word/index.js +4 -0
  471. package/dist/esm/modules/word/internal-utils.js +54 -0
  472. package/dist/esm/modules/word/relationships.js +56 -0
  473. package/dist/esm/modules/word/types.js +10 -0
  474. package/dist/esm/modules/word/units.js +111 -0
  475. package/dist/esm/modules/word/writers/chart-writer.js +385 -0
  476. package/dist/esm/modules/word/writers/checkbox-writer.js +42 -0
  477. package/dist/esm/modules/word/writers/comment-writer.js +70 -0
  478. package/dist/esm/modules/word/writers/document-writer.js +461 -0
  479. package/dist/esm/modules/word/writers/footnote-writer.js +72 -0
  480. package/dist/esm/modules/word/writers/header-footer-writer.js +129 -0
  481. package/dist/esm/modules/word/writers/image-writer.js +185 -0
  482. package/dist/esm/modules/word/writers/math-writer.js +428 -0
  483. package/dist/esm/modules/word/writers/numbering-writer.js +125 -0
  484. package/dist/esm/modules/word/writers/paragraph-writer.js +516 -0
  485. package/dist/esm/modules/word/writers/parts-writer.js +660 -0
  486. package/dist/esm/modules/word/writers/run-writer.js +649 -0
  487. package/dist/esm/modules/word/writers/section-writer.js +238 -0
  488. package/dist/esm/modules/word/writers/styles-writer.js +242 -0
  489. package/dist/esm/modules/word/writers/table-writer.js +503 -0
  490. package/dist/esm/modules/word/writers/textbox-writer.js +53 -0
  491. package/dist/esm/modules/word/writers/toc-writer.js +79 -0
  492. package/dist/esm/modules/xml/encode.js +157 -11
  493. package/dist/iife/excelts.iife.js +11789 -687
  494. package/dist/iife/excelts.iife.js.map +1 -1
  495. package/dist/iife/excelts.iife.min.js +52 -44
  496. package/dist/types/index.browser.d.ts +8 -5
  497. package/dist/types/index.d.ts +4 -2
  498. package/dist/types/modules/excel/chart/cache-populator.d.ts +49 -0
  499. package/dist/types/modules/excel/chart/chart-api.d.ts +92 -0
  500. package/dist/types/modules/excel/chart/chart-builder.d.ts +48 -0
  501. package/dist/types/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  502. package/dist/types/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  503. package/dist/types/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  504. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +531 -0
  505. package/dist/types/modules/excel/chart/chart-images.d.ts +78 -0
  506. package/dist/types/modules/excel/chart/chart-presets.d.ts +392 -0
  507. package/dist/types/modules/excel/chart/chart-renderer.d.ts +550 -0
  508. package/dist/types/modules/excel/chart/chart-sidecar.d.ts +21 -0
  509. package/dist/types/modules/excel/chart/chart-utils.d.ts +306 -0
  510. package/dist/types/modules/excel/chart/chart.d.ts +504 -0
  511. package/dist/types/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  512. package/dist/types/modules/excel/chart/index.d.ts +54 -0
  513. package/dist/types/modules/excel/chart/install.d.ts +44 -0
  514. package/dist/types/modules/excel/chart/shape-properties.d.ts +156 -0
  515. package/dist/types/modules/excel/chart/stroke-font.d.ts +36 -0
  516. package/dist/types/modules/excel/chart/topojson.d.ts +98 -0
  517. package/dist/types/modules/excel/chart/types.d.ts +2559 -0
  518. package/dist/types/modules/excel/chart-host-registry.d.ts +157 -0
  519. package/dist/types/modules/excel/chartsheet.d.ts +102 -0
  520. package/dist/types/modules/excel/defined-names.d.ts +35 -0
  521. package/dist/types/modules/excel/errors.d.ts +6 -0
  522. package/dist/types/modules/excel/form-control.d.ts +6 -0
  523. package/dist/types/modules/excel/pivot-chart.d.ts +7 -0
  524. package/dist/types/modules/excel/pivot-table.d.ts +55 -0
  525. package/dist/types/modules/excel/sparkline/index.d.ts +7 -0
  526. package/dist/types/modules/excel/sparkline/sparkline.d.ts +206 -0
  527. package/dist/types/modules/excel/types.d.ts +72 -0
  528. package/dist/types/modules/excel/utils/address.d.ts +18 -0
  529. package/dist/types/modules/excel/utils/guid.d.ts +15 -0
  530. package/dist/types/modules/excel/utils/ooxml-paths.d.ts +74 -0
  531. package/dist/types/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  532. package/dist/types/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  533. package/dist/types/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  534. package/dist/types/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  535. package/dist/types/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  536. package/dist/types/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  537. package/dist/types/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  538. package/dist/types/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  539. package/dist/types/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  540. package/dist/types/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  541. package/dist/types/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  542. package/dist/types/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  543. package/dist/types/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  544. package/dist/types/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  545. package/dist/types/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  546. package/dist/types/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  547. package/dist/types/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  548. package/dist/types/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  549. package/dist/types/modules/excel/workbook.browser.d.ts +248 -30
  550. package/dist/types/modules/excel/workbook.d.ts +43 -0
  551. package/dist/types/modules/excel/worksheet.d.ts +157 -3
  552. package/dist/types/modules/excel/xlsx/rel-type.d.ts +40 -0
  553. package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  554. package/dist/types/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  555. package/dist/types/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  556. package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  557. package/dist/types/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  558. package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  559. package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  560. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  561. package/dist/types/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  562. package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  563. package/dist/types/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  564. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  565. package/dist/types/modules/pdf/builder/document-builder.d.ts +74 -0
  566. package/dist/types/modules/pdf/excel-bridge.d.ts +69 -0
  567. package/dist/types/modules/pdf/font/font-manager.d.ts +25 -0
  568. package/dist/types/modules/pdf/index.d.ts +5 -2
  569. package/dist/types/modules/pdf/render/chart-surface.d.ts +33 -0
  570. package/dist/types/modules/pdf/render/layout-engine.d.ts +22 -1
  571. package/dist/types/modules/pdf/types.d.ts +227 -23
  572. package/dist/types/modules/pdf/word-bridge.d.ts +47 -0
  573. package/dist/types/modules/word/constants.d.ts +179 -0
  574. package/dist/types/modules/word/content-types.d.ts +27 -0
  575. package/dist/types/modules/word/digital-signatures.d.ts +87 -0
  576. package/dist/types/modules/word/document.d.ts +728 -0
  577. package/dist/types/modules/word/docx-packager.d.ts +14 -0
  578. package/dist/types/modules/word/docx-reader.d.ts +11 -0
  579. package/dist/types/modules/word/encryption.d.ts +102 -0
  580. package/dist/types/modules/word/errors.d.ts +49 -0
  581. package/dist/types/modules/word/font-obfuscation.d.ts +31 -0
  582. package/dist/types/modules/word/html-renderer.d.ts +38 -0
  583. package/dist/types/modules/word/index.base.d.ts +19 -0
  584. package/dist/types/modules/word/index.browser.d.ts +4 -0
  585. package/dist/types/modules/word/index.d.ts +4 -0
  586. package/dist/types/modules/word/internal-utils.d.ts +23 -0
  587. package/dist/types/modules/word/relationships.d.ts +31 -0
  588. package/dist/types/modules/word/types.d.ts +2325 -0
  589. package/dist/types/modules/word/units.d.ts +49 -0
  590. package/dist/types/modules/word/writers/chart-writer.d.ts +10 -0
  591. package/dist/types/modules/word/writers/checkbox-writer.d.ts +9 -0
  592. package/dist/types/modules/word/writers/comment-writer.d.ts +15 -0
  593. package/dist/types/modules/word/writers/document-writer.d.ts +16 -0
  594. package/dist/types/modules/word/writers/footnote-writer.d.ts +11 -0
  595. package/dist/types/modules/word/writers/header-footer-writer.d.ts +13 -0
  596. package/dist/types/modules/word/writers/image-writer.d.ts +10 -0
  597. package/dist/types/modules/word/writers/math-writer.d.ts +9 -0
  598. package/dist/types/modules/word/writers/numbering-writer.d.ts +10 -0
  599. package/dist/types/modules/word/writers/paragraph-writer.d.ts +13 -0
  600. package/dist/types/modules/word/writers/parts-writer.d.ts +26 -0
  601. package/dist/types/modules/word/writers/run-writer.d.ts +15 -0
  602. package/dist/types/modules/word/writers/section-writer.d.ts +10 -0
  603. package/dist/types/modules/word/writers/styles-writer.d.ts +10 -0
  604. package/dist/types/modules/word/writers/table-writer.d.ts +10 -0
  605. package/dist/types/modules/word/writers/textbox-writer.d.ts +9 -0
  606. package/dist/types/modules/word/writers/toc-writer.d.ts +9 -0
  607. package/dist/types/modules/xml/encode.d.ts +56 -7
  608. package/package.json +29 -11
  609. package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +0 -48
  610. package/dist/browser/modules/excel/utils/ooxml-validator.js +0 -493
  611. package/dist/browser/modules/excel/utils/passthrough-manager.d.ts +0 -77
  612. package/dist/browser/modules/excel/utils/passthrough-manager.js +0 -129
  613. package/dist/cjs/modules/excel/utils/ooxml-validator.js +0 -499
  614. package/dist/cjs/modules/excel/utils/passthrough-manager.js +0 -133
  615. package/dist/esm/modules/excel/utils/ooxml-validator.js +0 -493
  616. package/dist/esm/modules/excel/utils/passthrough-manager.js +0 -129
  617. package/dist/types/modules/excel/utils/ooxml-validator.d.ts +0 -48
  618. package/dist/types/modules/excel/utils/passthrough-manager.d.ts +0 -77
@@ -0,0 +1,658 @@
1
+ /**
2
+ * Lightweight TrueType glyph rasterizer for chart PNG text rendering.
3
+ *
4
+ * Parses the minimal set of TTF tables (cmap, hmtx, loca, glyf, head, hhea,
5
+ * maxp) needed to extract glyph outlines, then rasterizes them via scan-line
6
+ * fill. No dependencies outside this module except `@utils/fs`.
7
+ *
8
+ * Supports:
9
+ * - Simple glyphs (positive numberOfContours)
10
+ * - Composite glyphs (negative numberOfContours, recursive component assembly)
11
+ * - Quadratic B-spline outlines (on-curve / off-curve points, implicit
12
+ * on-curve midpoints between consecutive off-curve points)
13
+ *
14
+ * Does NOT support: hinting, kerning, OpenType features, vertical layout.
15
+ * This is intentional — the goal is readable chart labels, not DTP.
16
+ */
17
+ import { fileExistsSync, readFileBytesSync } from "../../../utils/fs.js";
18
+ // =============================================================================
19
+ // TTF binary reader helpers
20
+ // =============================================================================
21
+ function u16(data, offset) {
22
+ return (data[offset] << 8) | data[offset + 1];
23
+ }
24
+ function i16(data, offset) {
25
+ const v = (data[offset] << 8) | data[offset + 1];
26
+ return v >= 0x8000 ? v - 0x10000 : v;
27
+ }
28
+ function u32(data, offset) {
29
+ return (((data[offset] << 24) |
30
+ (data[offset + 1] << 16) |
31
+ (data[offset + 2] << 8) |
32
+ data[offset + 3]) >>>
33
+ 0);
34
+ }
35
+ function tag(data, offset) {
36
+ return String.fromCharCode(data[offset], data[offset + 1], data[offset + 2], data[offset + 3]);
37
+ }
38
+ function parseTableDirectory(data) {
39
+ const numTables = u16(data, 4);
40
+ const tables = new Map();
41
+ for (let i = 0; i < numTables; i++) {
42
+ const rec = 12 + i * 16;
43
+ const t = tag(data, rec);
44
+ tables.set(t, { offset: u32(data, rec + 8), length: u32(data, rec + 12) });
45
+ }
46
+ return tables;
47
+ }
48
+ function parseCmap(data, table) {
49
+ const base = table.offset;
50
+ const numSubtables = u16(data, base + 2);
51
+ const map = new Map();
52
+ for (let i = 0; i < numSubtables; i++) {
53
+ const rec = base + 4 + i * 8;
54
+ const platformID = u16(data, rec);
55
+ const encodingID = u16(data, rec + 2);
56
+ const subtableOffset = base + u32(data, rec + 4);
57
+ const format = u16(data, subtableOffset);
58
+ // Prefer (3,1) format 4 or (3,10) format 12 — standard Windows Unicode mappings
59
+ if (platformID === 3 && (encodingID === 1 || encodingID === 10)) {
60
+ if (format === 4) {
61
+ parseCmapFormat4(data, subtableOffset, map);
62
+ }
63
+ else if (format === 12) {
64
+ parseCmapFormat12(data, subtableOffset, map);
65
+ }
66
+ }
67
+ }
68
+ return map;
69
+ }
70
+ function parseCmapFormat4(data, offset, map) {
71
+ const segCount = u16(data, offset + 6) >> 1;
72
+ const endCodesOff = offset + 14;
73
+ const startCodesOff = endCodesOff + segCount * 2 + 2; // +2 for reservedPad
74
+ const idDeltasOff = startCodesOff + segCount * 2;
75
+ const idRangeOffsetsOff = idDeltasOff + segCount * 2;
76
+ for (let i = 0; i < segCount; i++) {
77
+ const endCode = u16(data, endCodesOff + i * 2);
78
+ const startCode = u16(data, startCodesOff + i * 2);
79
+ const idDelta = i16(data, idDeltasOff + i * 2);
80
+ const idRangeOffset = u16(data, idRangeOffsetsOff + i * 2);
81
+ if (startCode === 0xffff) {
82
+ break;
83
+ }
84
+ for (let c = startCode; c <= endCode; c++) {
85
+ let gid;
86
+ if (idRangeOffset === 0) {
87
+ gid = (c + idDelta) & 0xffff;
88
+ }
89
+ else {
90
+ const glyphIndexAddr = idRangeOffsetsOff + i * 2 + idRangeOffset + (c - startCode) * 2;
91
+ gid = u16(data, glyphIndexAddr);
92
+ if (gid !== 0) {
93
+ gid = (gid + idDelta) & 0xffff;
94
+ }
95
+ }
96
+ if (gid !== 0 && !map.has(c)) {
97
+ map.set(c, gid);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ function parseCmapFormat12(data, offset, map) {
103
+ const numGroups = u32(data, offset + 12);
104
+ let pos = offset + 16;
105
+ for (let i = 0; i < numGroups; i++) {
106
+ const startCharCode = u32(data, pos);
107
+ const endCharCode = u32(data, pos + 4);
108
+ let startGlyphID = u32(data, pos + 8);
109
+ for (let c = startCharCode; c <= endCharCode; c++) {
110
+ if (!map.has(c)) {
111
+ map.set(c, startGlyphID);
112
+ }
113
+ startGlyphID++;
114
+ }
115
+ pos += 12;
116
+ }
117
+ }
118
+ function parseLoca(data, table, numGlyphs, isLong) {
119
+ const offsets = new Uint32Array(numGlyphs + 1);
120
+ const base = table.offset;
121
+ if (isLong) {
122
+ for (let i = 0; i <= numGlyphs; i++) {
123
+ offsets[i] = u32(data, base + i * 4);
124
+ }
125
+ }
126
+ else {
127
+ for (let i = 0; i <= numGlyphs; i++) {
128
+ offsets[i] = u16(data, base + i * 2) * 2;
129
+ }
130
+ }
131
+ return offsets;
132
+ }
133
+ function parseHmtx(data, table, numHMetrics, numGlyphs) {
134
+ const widths = new Uint16Array(numGlyphs);
135
+ const base = table.offset;
136
+ let lastWidth = 0;
137
+ for (let i = 0; i < numHMetrics; i++) {
138
+ lastWidth = u16(data, base + i * 4);
139
+ widths[i] = lastWidth;
140
+ }
141
+ for (let i = numHMetrics; i < numGlyphs; i++) {
142
+ widths[i] = lastWidth;
143
+ }
144
+ return widths;
145
+ }
146
+ // =============================================================================
147
+ // Glyph Outline Parsing
148
+ // =============================================================================
149
+ // TrueType simple glyph flags
150
+ const ON_CURVE = 0x01;
151
+ const X_SHORT = 0x02;
152
+ const Y_SHORT = 0x04;
153
+ const REPEAT_FLAG = 0x08;
154
+ const X_SAME_OR_POS = 0x10;
155
+ const Y_SAME_OR_POS = 0x20;
156
+ function parseSimpleGlyph(data, offset, numContours) {
157
+ let pos = offset + 10; // skip header (numberOfContours, xMin, yMin, xMax, yMax)
158
+ const endPts = [];
159
+ for (let i = 0; i < numContours; i++) {
160
+ endPts.push(u16(data, pos));
161
+ pos += 2;
162
+ }
163
+ const numPoints = endPts[endPts.length - 1] + 1;
164
+ // Skip instructions
165
+ const instructionLength = u16(data, pos);
166
+ pos += 2 + instructionLength;
167
+ // Read flags
168
+ const flags = [];
169
+ while (flags.length < numPoints) {
170
+ const f = data[pos++];
171
+ flags.push(f);
172
+ if (f & REPEAT_FLAG) {
173
+ const repeat = data[pos++];
174
+ for (let r = 0; r < repeat; r++) {
175
+ flags.push(f);
176
+ }
177
+ }
178
+ }
179
+ // Read X coordinates
180
+ const xs = new Array(numPoints);
181
+ let x = 0;
182
+ for (let i = 0; i < numPoints; i++) {
183
+ const f = flags[i];
184
+ if (f & X_SHORT) {
185
+ const dx = data[pos++];
186
+ x += f & X_SAME_OR_POS ? dx : -dx;
187
+ }
188
+ else if (!(f & X_SAME_OR_POS)) {
189
+ x += i16(data, pos);
190
+ pos += 2;
191
+ }
192
+ xs[i] = x;
193
+ }
194
+ // Read Y coordinates
195
+ const ys = new Array(numPoints);
196
+ let y = 0;
197
+ for (let i = 0; i < numPoints; i++) {
198
+ const f = flags[i];
199
+ if (f & Y_SHORT) {
200
+ const dy = data[pos++];
201
+ y += f & Y_SAME_OR_POS ? dy : -dy;
202
+ }
203
+ else if (!(f & Y_SAME_OR_POS)) {
204
+ y += i16(data, pos);
205
+ pos += 2;
206
+ }
207
+ ys[i] = y;
208
+ }
209
+ // Build contours
210
+ const contours = [];
211
+ let start = 0;
212
+ for (let c = 0; c < numContours; c++) {
213
+ const end = endPts[c];
214
+ const contour = [];
215
+ for (let i = start; i <= end; i++) {
216
+ contour.push({ x: xs[i], y: ys[i], onCurve: !!(flags[i] & ON_CURVE) });
217
+ }
218
+ contours.push(contour);
219
+ start = end + 1;
220
+ }
221
+ return contours;
222
+ }
223
+ // Composite glyph flags
224
+ const COMP_ARG_1_AND_2_ARE_WORDS = 0x0001;
225
+ const COMP_ARGS_ARE_XY_VALUES = 0x0002;
226
+ const COMP_WE_HAVE_A_SCALE = 0x0008;
227
+ const COMP_MORE_COMPONENTS = 0x0020;
228
+ const COMP_WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
229
+ const COMP_WE_HAVE_A_TWO_BY_TWO = 0x0080;
230
+ function parseCompositeGlyph(data, offset, glyfBase, glyphOffsets) {
231
+ let pos = offset + 10; // skip header
232
+ const allContours = [];
233
+ while (true) {
234
+ const flags = u16(data, pos);
235
+ pos += 2;
236
+ const componentGid = u16(data, pos);
237
+ pos += 2;
238
+ // Read translation
239
+ let dx;
240
+ let dy;
241
+ if (flags & COMP_ARG_1_AND_2_ARE_WORDS) {
242
+ if (flags & COMP_ARGS_ARE_XY_VALUES) {
243
+ dx = i16(data, pos);
244
+ dy = i16(data, pos + 2);
245
+ }
246
+ else {
247
+ dx = 0;
248
+ dy = 0;
249
+ }
250
+ pos += 4;
251
+ }
252
+ else {
253
+ if (flags & COMP_ARGS_ARE_XY_VALUES) {
254
+ dx = data[pos] >= 0x80 ? data[pos] - 256 : data[pos];
255
+ dy = data[pos + 1] >= 0x80 ? data[pos + 1] - 256 : data[pos + 1];
256
+ }
257
+ else {
258
+ dx = 0;
259
+ dy = 0;
260
+ }
261
+ pos += 2;
262
+ }
263
+ // Read scale/transform
264
+ let a = 1;
265
+ let b = 0;
266
+ let c = 0;
267
+ let d = 1;
268
+ if (flags & COMP_WE_HAVE_A_SCALE) {
269
+ a = d = i16(data, pos) / 16384;
270
+ pos += 2;
271
+ }
272
+ else if (flags & COMP_WE_HAVE_AN_X_AND_Y_SCALE) {
273
+ a = i16(data, pos) / 16384;
274
+ d = i16(data, pos + 2) / 16384;
275
+ pos += 4;
276
+ }
277
+ else if (flags & COMP_WE_HAVE_A_TWO_BY_TWO) {
278
+ a = i16(data, pos) / 16384;
279
+ b = i16(data, pos + 2) / 16384;
280
+ c = i16(data, pos + 4) / 16384;
281
+ d = i16(data, pos + 6) / 16384;
282
+ pos += 8;
283
+ }
284
+ // Recursively get component outlines
285
+ const compContours = getGlyphContours(data, componentGid, glyfBase, glyphOffsets);
286
+ for (const contour of compContours) {
287
+ const transformed = contour.map(pt => ({
288
+ x: a * pt.x + c * pt.y + dx,
289
+ y: b * pt.x + d * pt.y + dy,
290
+ onCurve: pt.onCurve
291
+ }));
292
+ allContours.push(transformed);
293
+ }
294
+ if (!(flags & COMP_MORE_COMPONENTS)) {
295
+ break;
296
+ }
297
+ }
298
+ return allContours;
299
+ }
300
+ function getGlyphContours(data, glyphId, glyfBase, glyphOffsets) {
301
+ const start = glyphOffsets[glyphId];
302
+ const end = glyphOffsets[glyphId + 1];
303
+ if (end - start < 10) {
304
+ return []; // empty glyph (e.g. space)
305
+ }
306
+ const offset = glyfBase + start;
307
+ const numberOfContours = i16(data, offset);
308
+ if (numberOfContours >= 0) {
309
+ return parseSimpleGlyph(data, offset, numberOfContours);
310
+ }
311
+ return parseCompositeGlyph(data, offset, glyfBase, glyphOffsets);
312
+ }
313
+ /**
314
+ * Flatten a contour (with on-curve and off-curve points) into line segments.
315
+ * TrueType uses quadratic B-splines: between two consecutive off-curve
316
+ * points an implicit on-curve midpoint is inserted.
317
+ */
318
+ function flattenContour(contour) {
319
+ if (contour.length < 2) {
320
+ return [];
321
+ }
322
+ const segments = [];
323
+ const n = contour.length;
324
+ // Find first on-curve point (or synthesize one)
325
+ let startIdx = 0;
326
+ let startPt;
327
+ if (contour[0].onCurve) {
328
+ startPt = contour[0];
329
+ startIdx = 1;
330
+ }
331
+ else if (contour[n - 1].onCurve) {
332
+ startPt = contour[n - 1];
333
+ startIdx = 0;
334
+ }
335
+ else {
336
+ // Both first and last are off-curve; start at midpoint
337
+ startPt = {
338
+ x: (contour[0].x + contour[n - 1].x) / 2,
339
+ y: (contour[0].y + contour[n - 1].y) / 2
340
+ };
341
+ startIdx = 0;
342
+ }
343
+ let cur = startPt;
344
+ for (let i = startIdx; i < n; i++) {
345
+ const pt = contour[i];
346
+ if (pt.onCurve) {
347
+ segments.push({ x1: cur.x, y1: cur.y, x2: pt.x, y2: pt.y });
348
+ cur = pt;
349
+ }
350
+ else {
351
+ // Off-curve: find next on-curve (or implicit midpoint)
352
+ let nextOn;
353
+ const nextIdx = (i + 1) % n;
354
+ const next = contour[nextIdx];
355
+ if (next.onCurve) {
356
+ nextOn = next;
357
+ i++; // skip next since we consumed it
358
+ if (nextIdx === 0) {
359
+ // We've wrapped around; use startPt
360
+ nextOn = startPt;
361
+ i = n; // exit loop after this
362
+ }
363
+ }
364
+ else {
365
+ // Implicit on-curve at midpoint
366
+ nextOn = { x: (pt.x + next.x) / 2, y: (pt.y + next.y) / 2 };
367
+ }
368
+ // Subdivide quadratic bezier: cur, pt(control), nextOn
369
+ subdivideQuadratic(cur.x, cur.y, pt.x, pt.y, nextOn.x, nextOn.y, segments);
370
+ cur = nextOn;
371
+ }
372
+ }
373
+ // Close the contour
374
+ if (cur.x !== startPt.x || cur.y !== startPt.y) {
375
+ segments.push({ x1: cur.x, y1: cur.y, x2: startPt.x, y2: startPt.y });
376
+ }
377
+ return segments;
378
+ }
379
+ function subdivideQuadratic(x0, y0, cx, cy, x1, y1, segments) {
380
+ // Adaptive subdivision based on flatness
381
+ const steps = 8; // fixed subdivision — good enough for chart labels
382
+ let prevX = x0;
383
+ let prevY = y0;
384
+ for (let i = 1; i <= steps; i++) {
385
+ const t = i / steps;
386
+ const mt = 1 - t;
387
+ const nx = mt * mt * x0 + 2 * mt * t * cx + t * t * x1;
388
+ const ny = mt * mt * y0 + 2 * mt * t * cy + t * t * y1;
389
+ segments.push({ x1: prevX, y1: prevY, x2: nx, y2: ny });
390
+ prevX = nx;
391
+ prevY = ny;
392
+ }
393
+ }
394
+ // =============================================================================
395
+ // =============================================================================
396
+ // Public API
397
+ // =============================================================================
398
+ /**
399
+ * Parse a TTF font file into a RasterFont that can render glyphs to pixels.
400
+ */
401
+ export function parseRasterFont(data) {
402
+ // Handle TTC (TrueType Collection) — use first font
403
+ const sfVersion = u32(data, 0);
404
+ const fontData = data;
405
+ if (sfVersion === 0x74746366) {
406
+ // 'ttcf' header
407
+ const firstOffset = u32(data, 12);
408
+ // Re-read tables relative to the font offset — but table offsets in TTC
409
+ // are absolute, so we keep original data and adjust
410
+ const tables = parseTableDirectoryTTC(data, firstOffset);
411
+ return buildRasterFont(data, tables);
412
+ }
413
+ const tables = parseTableDirectory(fontData);
414
+ return buildRasterFont(fontData, tables);
415
+ }
416
+ function parseTableDirectoryTTC(data, fontOffset) {
417
+ const numTables = u16(data, fontOffset + 4);
418
+ const tables = new Map();
419
+ for (let i = 0; i < numTables; i++) {
420
+ const rec = fontOffset + 12 + i * 16;
421
+ const t = tag(data, rec);
422
+ tables.set(t, { offset: u32(data, rec + 8), length: u32(data, rec + 12) });
423
+ }
424
+ return tables;
425
+ }
426
+ function buildRasterFont(data, tables) {
427
+ const head = tables.get("head");
428
+ const hhea = tables.get("hhea");
429
+ const maxp = tables.get("maxp");
430
+ const cmapTable = tables.get("cmap");
431
+ const hmtxTable = tables.get("hmtx");
432
+ const locaTable = tables.get("loca");
433
+ const glyfTable = tables.get("glyf");
434
+ if (!head || !hhea || !maxp || !cmapTable || !hmtxTable || !locaTable || !glyfTable) {
435
+ // Return a dummy font if tables are missing
436
+ return { unitsPerEm: 1000, ascent: 800, descent: -200, getOutline: () => undefined };
437
+ }
438
+ const unitsPerEm = u16(data, head.offset + 18);
439
+ const indexToLocFormat = i16(data, head.offset + 50);
440
+ const ascent = i16(data, hhea.offset + 4);
441
+ const descent = i16(data, hhea.offset + 6);
442
+ const numHMetrics = u16(data, hhea.offset + 34);
443
+ const numGlyphs = u16(data, maxp.offset + 4);
444
+ const cmap = parseCmap(data, cmapTable);
445
+ const advanceWidths = parseHmtx(data, hmtxTable, numHMetrics, numGlyphs);
446
+ const glyphOffsets = parseLoca(data, locaTable, numGlyphs, indexToLocFormat !== 0);
447
+ const glyfBase = glyfTable.offset;
448
+ return {
449
+ unitsPerEm,
450
+ ascent,
451
+ descent,
452
+ getOutline(codePoint) {
453
+ const gid = cmap.get(codePoint);
454
+ if (gid === undefined || gid === 0) {
455
+ return undefined;
456
+ }
457
+ const contours = getGlyphContours(data, gid, glyfBase, glyphOffsets);
458
+ if (contours.length === 0) {
459
+ return undefined;
460
+ }
461
+ return { contours, advanceWidth: advanceWidths[gid] };
462
+ }
463
+ };
464
+ }
465
+ /**
466
+ * Rasterize a single glyph into an alpha bitmap with 4x supersampled
467
+ * anti-aliasing for smooth edges.
468
+ *
469
+ * @param outline - Glyph outline from RasterFont.getOutline()
470
+ * @param fontSize - Target font size in pixels
471
+ * @param unitsPerEm - Font's unitsPerEm
472
+ * @returns { width, height, offsetX, offsetY, pixels }
473
+ * offsetX/offsetY are pixel offsets from the pen position (left of baseline)
474
+ * to the top-left of the bitmap. pixels values are 0–255 (coverage).
475
+ */
476
+ export function rasterizeGlyph(outline, fontSize, unitsPerEm) {
477
+ const scale = fontSize / unitsPerEm;
478
+ // Supersample factor — render at Nx resolution then downsample
479
+ const SS = 4;
480
+ const ssScale = scale * SS;
481
+ // Scale all contour points to hi-res pixel space, flipping Y
482
+ const scaledContours = outline.contours.map(contour => contour.map(pt => ({
483
+ x: pt.x * ssScale,
484
+ y: -pt.y * ssScale,
485
+ onCurve: pt.onCurve
486
+ })));
487
+ // Find bounding box in hi-res pixel space
488
+ let minX = Infinity;
489
+ let minY = Infinity;
490
+ let maxX = -Infinity;
491
+ let maxY = -Infinity;
492
+ for (const contour of scaledContours) {
493
+ for (const pt of contour) {
494
+ if (pt.x < minX) {
495
+ minX = pt.x;
496
+ }
497
+ if (pt.x > maxX) {
498
+ maxX = pt.x;
499
+ }
500
+ if (pt.y < minY) {
501
+ minY = pt.y;
502
+ }
503
+ if (pt.y > maxY) {
504
+ maxY = pt.y;
505
+ }
506
+ }
507
+ }
508
+ if (!Number.isFinite(minX)) {
509
+ return {
510
+ width: Math.ceil(outline.advanceWidth * scale),
511
+ height: Math.ceil(fontSize),
512
+ offsetX: 0,
513
+ offsetY: 0,
514
+ pixels: new Uint8Array(0)
515
+ };
516
+ }
517
+ // Output bitmap dimensions (in final 1x pixels)
518
+ const pad = 1;
519
+ const bmpW = Math.ceil((maxX - minX) / SS) + pad * 2;
520
+ const bmpH = Math.ceil((maxY - minY) / SS) + pad * 2;
521
+ if (bmpW <= 0 || bmpH <= 0) {
522
+ return {
523
+ width: Math.ceil(outline.advanceWidth * scale),
524
+ height: Math.ceil(fontSize),
525
+ offsetX: 0,
526
+ offsetY: 0,
527
+ pixels: new Uint8Array(0)
528
+ };
529
+ }
530
+ // Hi-res bitmap dimensions
531
+ const hiW = bmpW * SS;
532
+ const hiH = bmpH * SS;
533
+ // Translate contours so that minX,minY maps to (pad*SS, pad*SS) in hi-res space
534
+ const txOff = -minX + pad * SS;
535
+ const tyOff = -minY + pad * SS;
536
+ // Flatten contours into line segments (in hi-res pixel coordinates)
537
+ const allSegments = [];
538
+ for (const contour of scaledContours) {
539
+ const translated = contour.map(pt => ({
540
+ x: pt.x + txOff,
541
+ y: pt.y + tyOff,
542
+ onCurve: pt.onCurve
543
+ }));
544
+ allSegments.push(...flattenContour(translated));
545
+ }
546
+ // Scan-line fill at hi-res
547
+ const hiBuf = new Uint8Array(hiW * hiH);
548
+ for (let row = 0; row < hiH; row++) {
549
+ const scanY = row + 0.5;
550
+ const intersections = [];
551
+ for (const seg of allSegments) {
552
+ const y1 = seg.y1;
553
+ const y2 = seg.y2;
554
+ if ((y1 <= scanY && y2 > scanY) || (y2 <= scanY && y1 > scanY)) {
555
+ const t = (scanY - y1) / (y2 - y1);
556
+ intersections.push(seg.x1 + t * (seg.x2 - seg.x1));
557
+ }
558
+ }
559
+ intersections.sort((a, b) => a - b);
560
+ for (let i = 0; i < intersections.length - 1; i += 2) {
561
+ const xStart = Math.max(0, Math.ceil(intersections[i]));
562
+ const xEnd = Math.min(hiW - 1, Math.floor(intersections[i + 1]));
563
+ for (let x = xStart; x <= xEnd; x++) {
564
+ hiBuf[row * hiW + x] = 1;
565
+ }
566
+ }
567
+ }
568
+ // Downsample: average SS×SS blocks → 0–255 coverage
569
+ const pixels = new Uint8Array(bmpW * bmpH);
570
+ const ss2 = SS * SS;
571
+ for (let py = 0; py < bmpH; py++) {
572
+ for (let px = 0; px < bmpW; px++) {
573
+ let count = 0;
574
+ const hiBaseY = py * SS;
575
+ const hiBaseX = px * SS;
576
+ for (let sy = 0; sy < SS; sy++) {
577
+ const hiRow = hiBaseY + sy;
578
+ if (hiRow >= hiH) {
579
+ break;
580
+ }
581
+ for (let sx = 0; sx < SS; sx++) {
582
+ const hiCol = hiBaseX + sx;
583
+ if (hiCol >= hiW) {
584
+ break;
585
+ }
586
+ count += hiBuf[hiRow * hiW + hiCol];
587
+ }
588
+ }
589
+ if (count > 0) {
590
+ pixels[py * bmpW + px] = Math.round((count / ss2) * 255);
591
+ }
592
+ }
593
+ }
594
+ return {
595
+ width: bmpW,
596
+ height: bmpH,
597
+ offsetX: Math.floor(minX / SS) - pad,
598
+ offsetY: Math.floor(minY / SS) - pad,
599
+ pixels
600
+ };
601
+ }
602
+ // =============================================================================
603
+ // System font loading (Node.js only)
604
+ // =============================================================================
605
+ let _cachedFont = null;
606
+ let _fontLoadAttempted = false;
607
+ /**
608
+ * Load a system font for text rasterization.
609
+ * Returns null in browser environments or if no font is found.
610
+ * Results are cached — only loads once.
611
+ */
612
+ export function loadSystemFont() {
613
+ if (_fontLoadAttempted) {
614
+ return _cachedFont;
615
+ }
616
+ _fontLoadAttempted = true;
617
+ try {
618
+ const fontPaths = getSystemFontPaths();
619
+ for (const fontPath of fontPaths) {
620
+ try {
621
+ if (fileExistsSync(fontPath)) {
622
+ const data = readFileBytesSync(fontPath);
623
+ _cachedFont = parseRasterFont(data);
624
+ return _cachedFont;
625
+ }
626
+ }
627
+ catch {
628
+ continue;
629
+ }
630
+ }
631
+ }
632
+ catch {
633
+ // Not in Node.js or fs not available
634
+ }
635
+ return null;
636
+ }
637
+ function getSystemFontPaths() {
638
+ const platform = typeof process !== "undefined" ? process.platform : "";
639
+ const paths = [];
640
+ if (platform === "darwin") {
641
+ // macOS: prefer Arial, then Helvetica, then SF Pro
642
+ paths.push("/System/Library/Fonts/Supplemental/Arial.ttf", "/Library/Fonts/Arial.ttf", "/System/Library/Fonts/Helvetica.ttc", "/System/Library/Fonts/SFNSText.ttf", "/System/Library/Fonts/SFNS.ttf");
643
+ }
644
+ else if (platform === "win32") {
645
+ const windir = process.env.WINDIR || process.env.windir || "C:\\Windows";
646
+ paths.push(`${windir}\\Fonts\\arial.ttf`, `${windir}\\Fonts\\calibri.ttf`, `${windir}\\Fonts\\segoeui.ttf`, `${windir}\\Fonts\\tahoma.ttf`);
647
+ }
648
+ else {
649
+ // Linux
650
+ paths.push("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf", "/usr/share/fonts/TTF/DejaVuSans.ttf", "/usr/share/fonts/noto/NotoSans-Regular.ttf", "/usr/share/fonts/truetype/freefont/FreeSans.ttf");
651
+ }
652
+ return paths;
653
+ }
654
+ /** Reset cached font (for testing). */
655
+ export function resetCachedFont() {
656
+ _cachedFont = null;
657
+ _fontLoadAttempted = false;
658
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Public entry for the excelts chart module.
3
+ *
4
+ * Two complementary usage styles are supported:
5
+ *
6
+ * 1. **Functional, zero-side-effect** — tree-shakeable access to
7
+ * chart builders, renderers, presets and parsers:
8
+ * ```ts
9
+ * import { buildChartModel, renderChartSvg } from "@cj-tech-master/excelts/chart";
10
+ * const model = buildChartModel(options);
11
+ * const svg = renderChartSvg(model);
12
+ * ```
13
+ * Bundlers drop everything the consumer does not reference.
14
+ *
15
+ * 2. **Support installation** — enables `worksheet.addChart()`,
16
+ * `workbook.xlsx.writeFile()` chart-cache population, and chart
17
+ * reconstruction during XLSX load:
18
+ * ```ts
19
+ * import { installChartSupport } from "@cj-tech-master/excelts/chart";
20
+ * installChartSupport(); // once, at startup
21
+ * worksheet.addChart(options, "A1:D20"); // now works
22
+ * ```
23
+ *
24
+ * Chart support is **never installed implicitly** — consumers pay for
25
+ * what they ask for. The package's root `sideEffects: false` contract
26
+ * stays intact, so bundles that only use the functional API include
27
+ * exactly the code paths reachable from the exports they reference.
28
+ *
29
+ * `installChartSupport` lives in a separate module (`./install.ts`) so
30
+ * its host-registry wiring and the full chart builder/renderer pipeline
31
+ * don't get pulled in by consumers who only import one or two
32
+ * functional helpers.
33
+ */
34
+ export { installChartSupport, uninstallChartSupport } from "./install.js";
35
+ export { Chart, buildChartModel } from "./chart.js";
36
+ export { buildComboChartModel } from "./chart-builder.js";
37
+ export { fillChartCaches, fillChartExCaches, fillNumRef, fillStrRef } from "./cache-populator.js";
38
+ export { parseChartColors, buildChartColors, parseChartStyle, buildChartStyle } from "./chart-sidecar.js";
39
+ export { buildChartExModel } from "./chart-ex-builder.js";
40
+ export { parseChartEx } from "./chart-ex-parser.js";
41
+ export { canRenderChartExAsVectorPdf, drawChartExPdf, renderChartEx, renderChartExPng, renderChartExSvg, VECTOR_PDF_CHART_EX_LAYOUT_IDS } from "./chart-ex-renderer.js";
42
+ export { applyChartExPreset, applyChartPreset, CHART_EX_PRESETS, CHART_PRESETS, EXCEL_CHART_EX_PRESETS, EXCEL_CHART_PRESETS } from "./chart-presets.js";
43
+ export { chartExOptionsFromRows, chartExOptionsFromTable, chartOptionsFromRows, chartOptionsFromTable, seriesFromColumns } from "./chart-api.js";
44
+ export { applyAxisTransform, buildChartScene, buildEffectFilter, drawChartPdf, renderChartPng, renderChartSvg } from "./chart-renderer.js";
45
+ export { resolveTopologyObject } from "./topojson.js";
46
+ export { parseSpPr, parseTxPr, getSpPrFillColor, getSpPrLine, getSpPrGradient, getSpPrPattern, getTxPrFontSize, getTxPrColor, buildSpPr, buildTxPr, setSpPrFill, setSpPrLine } from "./shape-properties.js";