@cj-tech-master/excelts 9.5.4 → 9.5.5

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 (767) hide show
  1. package/dist/browser/modules/archive/compression/streaming-compress.browser.js +29 -0
  2. package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
  3. package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  4. package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
  5. package/dist/browser/modules/archive/fs/archive-file.js +78 -16
  6. package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
  7. package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
  8. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
  9. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
  10. package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
  11. package/dist/browser/modules/excel/chart/chart.js +1 -7
  12. package/dist/browser/modules/excel/chart/types.d.ts +0 -6
  13. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
  14. package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
  15. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  16. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
  17. package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
  18. package/dist/browser/modules/excel/utils/string-buf.js +4 -81
  19. package/dist/browser/modules/excel/workbook.browser.js +135 -25
  20. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  21. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  22. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
  23. package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
  24. package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
  25. package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
  26. package/dist/browser/modules/pdf/excel-bridge.js +32 -0
  27. package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
  28. package/dist/browser/modules/pdf/font/metrics.js +3 -237
  29. package/dist/browser/modules/pdf/index.d.ts +1 -1
  30. package/dist/browser/modules/pdf/index.js +1 -1
  31. package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  32. package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
  33. package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
  34. package/dist/browser/modules/pdf/word-bridge.js +122 -274
  35. package/dist/browser/modules/stream/index.base.d.ts +2 -0
  36. package/dist/browser/modules/stream/index.base.js +2 -1
  37. package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
  38. package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
  39. package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
  40. package/dist/browser/modules/stream/pull-stream.js +51 -5
  41. package/dist/browser/modules/stream/types.d.ts +13 -1
  42. package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
  43. package/dist/browser/modules/word/advanced/diff.js +167 -0
  44. package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
  45. package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
  46. package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
  47. package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
  48. package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
  49. package/dist/browser/modules/word/advanced/glossary.js +79 -0
  50. package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
  51. package/dist/browser/modules/word/advanced/math-convert.js +595 -0
  52. package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
  53. package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
  54. package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
  55. package/dist/browser/modules/word/advanced/style-map.js +322 -0
  56. package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
  57. package/dist/browser/modules/word/advanced/validation.js +1065 -0
  58. package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
  59. package/dist/browser/modules/word/advanced/vba-project.js +265 -0
  60. package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
  61. package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
  62. package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
  63. package/dist/browser/modules/word/builder/document-handle.js +664 -0
  64. package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
  65. package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
  66. package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
  67. package/dist/browser/modules/word/builder/run-builders.js +600 -0
  68. package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
  69. package/dist/browser/modules/word/builder/table-builders.js +45 -0
  70. package/dist/browser/modules/word/constants.d.ts +39 -1
  71. package/dist/browser/modules/word/constants.js +109 -1
  72. package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
  73. package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
  74. package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
  75. package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
  76. package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
  77. package/dist/browser/modules/word/convert/flat-opc.js +385 -0
  78. package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
  79. package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
  80. package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
  81. package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
  82. package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
  83. package/dist/browser/modules/word/convert/html/html.js +15 -0
  84. package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  85. package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
  86. package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  87. package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
  88. package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
  89. package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
  90. package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
  91. package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
  92. package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  93. package/dist/browser/modules/word/core/color-utils.js +43 -0
  94. package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
  95. package/dist/browser/modules/word/core/internal-utils.js +209 -0
  96. package/dist/browser/modules/word/core/mapper.d.ts +44 -0
  97. package/dist/browser/modules/word/core/mapper.js +427 -0
  98. package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
  99. package/dist/browser/modules/word/core/opc-paths.js +48 -0
  100. package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
  101. package/dist/browser/modules/word/core/text-utils.js +202 -0
  102. package/dist/browser/modules/word/core/walker.d.ts +119 -0
  103. package/dist/browser/modules/word/core/walker.js +570 -0
  104. package/dist/browser/modules/word/crypto.d.ts +14 -9
  105. package/dist/browser/modules/word/crypto.js +13 -7
  106. package/dist/browser/modules/word/document-io.d.ts +59 -27
  107. package/dist/browser/modules/word/document-io.js +80 -197
  108. package/dist/browser/modules/word/errors.d.ts +44 -1
  109. package/dist/browser/modules/word/errors.js +54 -2
  110. package/dist/browser/modules/word/excel.d.ts +14 -0
  111. package/dist/browser/modules/word/excel.js +13 -0
  112. package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
  113. package/dist/browser/modules/word/font/font-embed.js +646 -0
  114. package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
  115. package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
  116. package/dist/browser/modules/word/font/hyphenation.js +4210 -0
  117. package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
  118. package/dist/browser/modules/word/font/text-shaping.js +635 -0
  119. package/dist/browser/modules/word/html.d.ts +7 -6
  120. package/dist/browser/modules/word/html.js +6 -5
  121. package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
  122. package/dist/browser/modules/word/incremental-edit.js +361 -0
  123. package/dist/browser/modules/word/index.base.d.ts +194 -10
  124. package/dist/browser/modules/word/index.base.js +138 -29
  125. package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
  126. package/dist/browser/modules/word/layout/layout-constants.js +17 -0
  127. package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
  128. package/dist/browser/modules/word/layout/layout-full.js +1696 -0
  129. package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
  130. package/dist/browser/modules/word/layout/layout-model.js +16 -0
  131. package/dist/browser/modules/word/layout/layout.d.ts +63 -0
  132. package/dist/browser/modules/word/layout/layout.js +1167 -0
  133. package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
  134. package/dist/browser/modules/word/layout/render-page.js +1238 -0
  135. package/dist/browser/modules/word/markdown.d.ts +14 -0
  136. package/dist/browser/modules/word/markdown.js +13 -0
  137. package/dist/browser/modules/word/patcher.d.ts +62 -0
  138. package/dist/browser/modules/word/patcher.js +537 -0
  139. package/dist/browser/modules/word/query/compat.d.ts +25 -0
  140. package/dist/browser/modules/word/query/compat.js +58 -0
  141. package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
  142. package/dist/browser/modules/word/query/data-binding.js +392 -0
  143. package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
  144. package/dist/browser/modules/word/query/form-fields.js +268 -0
  145. package/dist/browser/modules/word/query/format-search.d.ts +99 -0
  146. package/dist/browser/modules/word/query/format-search.js +329 -0
  147. package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
  148. package/dist/browser/modules/word/query/mail-merge.js +111 -0
  149. package/dist/browser/modules/word/query/merge.d.ts +50 -0
  150. package/dist/browser/modules/word/query/merge.js +617 -0
  151. package/dist/browser/modules/word/query/replace.d.ts +47 -0
  152. package/dist/browser/modules/word/query/replace.js +301 -0
  153. package/dist/browser/modules/word/query/revisions.d.ts +67 -0
  154. package/dist/browser/modules/word/query/revisions.js +879 -0
  155. package/dist/browser/modules/word/query/search.d.ts +129 -0
  156. package/dist/browser/modules/word/query/search.js +346 -0
  157. package/dist/browser/modules/word/query/split.d.ts +44 -0
  158. package/dist/browser/modules/word/query/split.js +135 -0
  159. package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
  160. package/dist/browser/modules/word/query/style-resolve.js +368 -0
  161. package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
  162. package/dist/browser/modules/word/reader/chart-parser.js +810 -0
  163. package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
  164. package/dist/browser/modules/word/reader/comments-parser.js +92 -0
  165. package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
  166. package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
  167. package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
  168. package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
  169. package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
  170. package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
  171. package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
  172. package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
  173. package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
  174. package/dist/browser/modules/word/reader/image-parsers.js +291 -0
  175. package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
  176. package/dist/browser/modules/word/reader/math-parser.js +422 -0
  177. package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
  178. package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
  179. package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
  180. package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
  181. package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  182. package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
  183. package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
  184. package/dist/browser/modules/word/reader/parse-utils.js +249 -0
  185. package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
  186. package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
  187. package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
  188. package/dist/browser/modules/word/reader/reader-context.js +61 -0
  189. package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
  190. package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
  191. package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
  192. package/dist/browser/modules/word/reader/settings-parser.js +263 -0
  193. package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
  194. package/dist/browser/modules/word/reader/styles-parser.js +147 -0
  195. package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
  196. package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
  197. package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
  198. package/dist/browser/modules/word/reader/theme-parser.js +167 -0
  199. package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
  200. package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
  201. package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
  202. package/dist/browser/modules/word/security/cfb-reader.js +410 -0
  203. package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  204. package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  205. package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
  206. package/dist/browser/modules/word/security/document-protection.js +201 -0
  207. package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
  208. package/dist/browser/modules/word/security/encryption.js +602 -0
  209. package/dist/browser/modules/word/security/policy.d.ts +80 -0
  210. package/dist/browser/modules/word/security/policy.js +102 -0
  211. package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
  212. package/dist/browser/modules/word/template/template-chart.js +167 -0
  213. package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
  214. package/dist/browser/modules/word/template/template-datasource.js +541 -0
  215. package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
  216. package/dist/browser/modules/word/template/template-engine.js +1435 -0
  217. package/dist/browser/modules/word/types.d.ts +224 -25
  218. package/dist/browser/modules/word/units.d.ts +26 -0
  219. package/dist/browser/modules/word/units.js +43 -14
  220. package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
  221. package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
  222. package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
  223. package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
  224. package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
  225. package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
  226. package/dist/browser/modules/word/writer/common-parts.js +101 -0
  227. package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
  228. package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
  229. package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
  230. package/dist/browser/modules/word/writer/document-writer.js +473 -0
  231. package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
  232. package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
  233. package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
  234. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
  235. package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
  236. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
  237. package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
  238. package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
  239. package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
  240. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
  241. package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  242. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
  243. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  244. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  245. package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  246. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
  247. package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
  248. package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
  249. package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
  250. package/dist/browser/modules/word/writer/relationships.js +117 -0
  251. package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
  252. package/dist/browser/modules/word/writer/render-context.js +46 -0
  253. package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  254. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
  255. package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
  256. package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
  257. package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
  258. package/dist/browser/modules/word/writer/stream-buf.js +73 -0
  259. package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
  260. package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
  261. package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
  262. package/dist/browser/modules/word/writer/string-buf.js +7 -0
  263. package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
  264. package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  265. package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
  266. package/dist/browser/modules/xml/types.d.ts +22 -0
  267. package/dist/browser/utils/crypto.browser.d.ts +3 -1
  268. package/dist/browser/utils/crypto.browser.js +3 -1
  269. package/dist/browser/utils/crypto.d.ts +4 -1
  270. package/dist/browser/utils/crypto.js +4 -1
  271. package/dist/browser/utils/font-metrics.d.ts +63 -0
  272. package/dist/browser/utils/font-metrics.js +293 -0
  273. package/dist/browser/utils/string-buf.d.ts +42 -0
  274. package/dist/browser/utils/string-buf.js +89 -0
  275. package/dist/browser/utils/theme-colors.d.ts +55 -0
  276. package/dist/browser/utils/theme-colors.js +120 -0
  277. package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
  278. package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
  279. package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  280. package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
  281. package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
  282. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
  283. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
  284. package/dist/cjs/modules/excel/chart/chart.js +1 -7
  285. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
  286. package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
  287. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
  288. package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
  289. package/dist/cjs/modules/excel/workbook.browser.js +135 -25
  290. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  291. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
  292. package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
  293. package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
  294. package/dist/cjs/modules/pdf/font/metrics.js +11 -244
  295. package/dist/cjs/modules/pdf/index.js +2 -1
  296. package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
  297. package/dist/cjs/modules/pdf/word-bridge.js +155 -274
  298. package/dist/cjs/modules/stream/index.base.js +4 -2
  299. package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
  300. package/dist/cjs/modules/stream/pull-stream.js +51 -5
  301. package/dist/cjs/modules/word/advanced/diff.js +170 -0
  302. package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
  303. package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
  304. package/dist/cjs/modules/word/advanced/glossary.js +87 -0
  305. package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
  306. package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
  307. package/dist/cjs/modules/word/advanced/style-map.js +329 -0
  308. package/dist/cjs/modules/word/advanced/validation.js +1068 -0
  309. package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
  310. package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
  311. package/dist/cjs/modules/word/builder/document-handle.js +667 -0
  312. package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
  313. package/dist/cjs/modules/word/builder/run-builders.js +676 -0
  314. package/dist/cjs/modules/word/builder/table-builders.js +53 -0
  315. package/dist/cjs/modules/word/constants.js +111 -2
  316. package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
  317. package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
  318. package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
  319. package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
  320. package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
  321. package/dist/cjs/modules/word/convert/html/html.js +20 -0
  322. package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
  323. package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
  324. package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
  325. package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
  326. package/dist/cjs/modules/word/core/color-utils.js +47 -0
  327. package/dist/cjs/modules/word/core/internal-utils.js +219 -0
  328. package/dist/cjs/modules/word/core/mapper.js +430 -0
  329. package/dist/cjs/modules/word/core/opc-paths.js +53 -0
  330. package/dist/cjs/modules/word/core/text-utils.js +210 -0
  331. package/dist/cjs/modules/word/core/walker.js +577 -0
  332. package/dist/cjs/modules/word/crypto.js +19 -8
  333. package/dist/cjs/modules/word/document-io.js +117 -197
  334. package/dist/cjs/modules/word/errors.js +59 -13
  335. package/dist/cjs/modules/word/excel.js +22 -0
  336. package/dist/cjs/modules/word/font/font-embed.js +652 -0
  337. package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
  338. package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
  339. package/dist/cjs/modules/word/font/text-shaping.js +640 -0
  340. package/dist/cjs/modules/word/html.js +9 -7
  341. package/dist/cjs/modules/word/incremental-edit.js +366 -0
  342. package/dist/cjs/modules/word/index.base.js +370 -137
  343. package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
  344. package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
  345. package/dist/cjs/modules/word/layout/layout-model.js +17 -0
  346. package/dist/cjs/modules/word/layout/layout.js +1170 -0
  347. package/dist/cjs/modules/word/layout/render-page.js +1243 -0
  348. package/dist/cjs/modules/word/markdown.js +19 -0
  349. package/dist/cjs/modules/word/patcher.js +539 -0
  350. package/dist/cjs/modules/word/query/compat.js +61 -0
  351. package/dist/cjs/modules/word/query/data-binding.js +395 -0
  352. package/dist/cjs/modules/word/query/form-fields.js +272 -0
  353. package/dist/cjs/modules/word/query/format-search.js +334 -0
  354. package/dist/cjs/modules/word/query/mail-merge.js +114 -0
  355. package/dist/cjs/modules/word/query/merge.js +620 -0
  356. package/dist/cjs/modules/word/query/replace.js +304 -0
  357. package/dist/cjs/modules/word/query/revisions.js +885 -0
  358. package/dist/cjs/modules/word/query/search.js +361 -0
  359. package/dist/cjs/modules/word/query/split.js +138 -0
  360. package/dist/cjs/modules/word/query/style-resolve.js +374 -0
  361. package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
  362. package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
  363. package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
  364. package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
  365. package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
  366. package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
  367. package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
  368. package/dist/cjs/modules/word/reader/math-parser.js +424 -0
  369. package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
  370. package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
  371. package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
  372. package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
  373. package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
  374. package/dist/cjs/modules/word/reader/reader-context.js +66 -0
  375. package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
  376. package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
  377. package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
  378. package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
  379. package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
  380. package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
  381. package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
  382. package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  383. package/dist/cjs/modules/word/security/document-protection.js +208 -0
  384. package/dist/cjs/modules/word/security/encryption.js +612 -0
  385. package/dist/cjs/modules/word/security/policy.js +106 -0
  386. package/dist/cjs/modules/word/template/template-chart.js +170 -0
  387. package/dist/cjs/modules/word/template/template-datasource.js +549 -0
  388. package/dist/cjs/modules/word/template/template-engine.js +1430 -0
  389. package/dist/cjs/modules/word/units.js +44 -14
  390. package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
  391. package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
  392. package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
  393. package/dist/cjs/modules/word/writer/common-parts.js +104 -0
  394. package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
  395. package/dist/cjs/modules/word/writer/document-writer.js +478 -0
  396. package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
  397. package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
  398. package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
  399. package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
  400. package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
  401. package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
  402. package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
  403. package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
  404. package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
  405. package/dist/cjs/modules/word/writer/relationships.js +124 -0
  406. package/dist/cjs/modules/word/writer/render-context.js +51 -0
  407. package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
  408. package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
  409. package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
  410. package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
  411. package/dist/cjs/modules/word/writer/string-buf.js +11 -0
  412. package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
  413. package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
  414. package/dist/cjs/utils/crypto.browser.js +3 -1
  415. package/dist/cjs/utils/crypto.js +4 -1
  416. package/dist/cjs/utils/font-metrics.js +303 -0
  417. package/dist/cjs/utils/string-buf.js +92 -0
  418. package/dist/cjs/utils/theme-colors.js +126 -0
  419. package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
  420. package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
  421. package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  422. package/dist/esm/modules/archive/fs/archive-file.js +78 -16
  423. package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
  424. package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
  425. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
  426. package/dist/esm/modules/excel/chart/chart.js +1 -7
  427. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
  428. package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
  429. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
  430. package/dist/esm/modules/excel/utils/string-buf.js +4 -81
  431. package/dist/esm/modules/excel/workbook.browser.js +135 -25
  432. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  433. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
  434. package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
  435. package/dist/esm/modules/pdf/excel-bridge.js +32 -0
  436. package/dist/esm/modules/pdf/font/metrics.js +3 -237
  437. package/dist/esm/modules/pdf/index.js +1 -1
  438. package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
  439. package/dist/esm/modules/pdf/word-bridge.js +122 -274
  440. package/dist/esm/modules/stream/index.base.js +2 -1
  441. package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
  442. package/dist/esm/modules/stream/pull-stream.js +51 -5
  443. package/dist/esm/modules/word/advanced/diff.js +167 -0
  444. package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
  445. package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
  446. package/dist/esm/modules/word/advanced/glossary.js +79 -0
  447. package/dist/esm/modules/word/advanced/math-convert.js +595 -0
  448. package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
  449. package/dist/esm/modules/word/advanced/style-map.js +322 -0
  450. package/dist/esm/modules/word/advanced/validation.js +1065 -0
  451. package/dist/esm/modules/word/advanced/vba-project.js +265 -0
  452. package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
  453. package/dist/esm/modules/word/builder/document-handle.js +664 -0
  454. package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
  455. package/dist/esm/modules/word/builder/run-builders.js +600 -0
  456. package/dist/esm/modules/word/builder/table-builders.js +45 -0
  457. package/dist/esm/modules/word/constants.js +109 -1
  458. package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
  459. package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
  460. package/dist/esm/modules/word/convert/flat-opc.js +385 -0
  461. package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
  462. package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
  463. package/dist/esm/modules/word/convert/html/html.js +15 -0
  464. package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
  465. package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
  466. package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
  467. package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
  468. package/dist/esm/modules/word/core/color-utils.js +43 -0
  469. package/dist/esm/modules/word/core/internal-utils.js +209 -0
  470. package/dist/esm/modules/word/core/mapper.js +427 -0
  471. package/dist/esm/modules/word/core/opc-paths.js +48 -0
  472. package/dist/esm/modules/word/core/text-utils.js +202 -0
  473. package/dist/esm/modules/word/core/walker.js +570 -0
  474. package/dist/esm/modules/word/crypto.js +13 -7
  475. package/dist/esm/modules/word/document-io.js +80 -197
  476. package/dist/esm/modules/word/errors.js +54 -2
  477. package/dist/esm/modules/word/excel.js +13 -0
  478. package/dist/esm/modules/word/font/font-embed.js +646 -0
  479. package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
  480. package/dist/esm/modules/word/font/hyphenation.js +4210 -0
  481. package/dist/esm/modules/word/font/text-shaping.js +635 -0
  482. package/dist/esm/modules/word/html.js +6 -5
  483. package/dist/esm/modules/word/incremental-edit.js +361 -0
  484. package/dist/esm/modules/word/index.base.js +138 -29
  485. package/dist/esm/modules/word/layout/layout-constants.js +17 -0
  486. package/dist/esm/modules/word/layout/layout-full.js +1696 -0
  487. package/dist/esm/modules/word/layout/layout-model.js +16 -0
  488. package/dist/esm/modules/word/layout/layout.js +1167 -0
  489. package/dist/esm/modules/word/layout/render-page.js +1238 -0
  490. package/dist/esm/modules/word/markdown.js +13 -0
  491. package/dist/esm/modules/word/patcher.js +537 -0
  492. package/dist/esm/modules/word/query/compat.js +58 -0
  493. package/dist/esm/modules/word/query/data-binding.js +392 -0
  494. package/dist/esm/modules/word/query/form-fields.js +268 -0
  495. package/dist/esm/modules/word/query/format-search.js +329 -0
  496. package/dist/esm/modules/word/query/mail-merge.js +111 -0
  497. package/dist/esm/modules/word/query/merge.js +617 -0
  498. package/dist/esm/modules/word/query/replace.js +301 -0
  499. package/dist/esm/modules/word/query/revisions.js +879 -0
  500. package/dist/esm/modules/word/query/search.js +346 -0
  501. package/dist/esm/modules/word/query/split.js +135 -0
  502. package/dist/esm/modules/word/query/style-resolve.js +368 -0
  503. package/dist/esm/modules/word/reader/chart-parser.js +810 -0
  504. package/dist/esm/modules/word/reader/comments-parser.js +92 -0
  505. package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
  506. package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
  507. package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
  508. package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
  509. package/dist/esm/modules/word/reader/image-parsers.js +291 -0
  510. package/dist/esm/modules/word/reader/math-parser.js +422 -0
  511. package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
  512. package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
  513. package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
  514. package/dist/esm/modules/word/reader/parse-utils.js +249 -0
  515. package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
  516. package/dist/esm/modules/word/reader/reader-context.js +61 -0
  517. package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
  518. package/dist/esm/modules/word/reader/settings-parser.js +263 -0
  519. package/dist/esm/modules/word/reader/styles-parser.js +147 -0
  520. package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
  521. package/dist/esm/modules/word/reader/theme-parser.js +167 -0
  522. package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
  523. package/dist/esm/modules/word/security/cfb-reader.js +410 -0
  524. package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  525. package/dist/esm/modules/word/security/document-protection.js +201 -0
  526. package/dist/esm/modules/word/security/encryption.js +602 -0
  527. package/dist/esm/modules/word/security/policy.js +102 -0
  528. package/dist/esm/modules/word/template/template-chart.js +167 -0
  529. package/dist/esm/modules/word/template/template-datasource.js +541 -0
  530. package/dist/esm/modules/word/template/template-engine.js +1435 -0
  531. package/dist/esm/modules/word/units.js +43 -14
  532. package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
  533. package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
  534. package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
  535. package/dist/esm/modules/word/writer/common-parts.js +101 -0
  536. package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
  537. package/dist/esm/modules/word/writer/document-writer.js +473 -0
  538. package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
  539. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
  540. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
  541. package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
  542. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
  543. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
  544. package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  545. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
  546. package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
  547. package/dist/esm/modules/word/writer/relationships.js +117 -0
  548. package/dist/esm/modules/word/writer/render-context.js +46 -0
  549. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
  550. package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
  551. package/dist/esm/modules/word/writer/stream-buf.js +73 -0
  552. package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
  553. package/dist/esm/modules/word/writer/string-buf.js +7 -0
  554. package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
  555. package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
  556. package/dist/esm/utils/crypto.browser.js +3 -1
  557. package/dist/esm/utils/crypto.js +4 -1
  558. package/dist/esm/utils/font-metrics.js +293 -0
  559. package/dist/esm/utils/string-buf.js +89 -0
  560. package/dist/esm/utils/theme-colors.js +120 -0
  561. package/dist/iife/excelts.iife.js +70692 -70337
  562. package/dist/iife/excelts.iife.js.map +1 -1
  563. package/dist/iife/excelts.iife.min.js +57 -57
  564. package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
  565. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
  566. package/dist/types/modules/excel/chart/chart.d.ts +1 -5
  567. package/dist/types/modules/excel/chart/types.d.ts +0 -6
  568. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  569. package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
  570. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  571. package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
  572. package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
  573. package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
  574. package/dist/types/modules/pdf/index.d.ts +1 -1
  575. package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  576. package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
  577. package/dist/types/modules/stream/index.base.d.ts +2 -0
  578. package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
  579. package/dist/types/modules/stream/pull-stream.d.ts +19 -2
  580. package/dist/types/modules/stream/types.d.ts +13 -1
  581. package/dist/types/modules/word/advanced/diff.d.ts +61 -0
  582. package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
  583. package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
  584. package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
  585. package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
  586. package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
  587. package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
  588. package/dist/types/modules/word/advanced/validation.d.ts +56 -0
  589. package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
  590. package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
  591. package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
  592. package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
  593. package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
  594. package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
  595. package/dist/types/modules/word/constants.d.ts +39 -1
  596. package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
  597. package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
  598. package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
  599. package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
  600. package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
  601. package/dist/types/modules/word/convert/html/html.d.ts +15 -0
  602. package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  603. package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  604. package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
  605. package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
  606. package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  607. package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
  608. package/dist/types/modules/word/core/mapper.d.ts +44 -0
  609. package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
  610. package/dist/types/modules/word/core/text-utils.d.ts +38 -0
  611. package/dist/types/modules/word/core/walker.d.ts +119 -0
  612. package/dist/types/modules/word/crypto.d.ts +14 -9
  613. package/dist/types/modules/word/document-io.d.ts +59 -27
  614. package/dist/types/modules/word/errors.d.ts +44 -1
  615. package/dist/types/modules/word/excel.d.ts +14 -0
  616. package/dist/types/modules/word/font/font-embed.d.ts +112 -0
  617. package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
  618. package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
  619. package/dist/types/modules/word/html.d.ts +7 -6
  620. package/dist/types/modules/word/incremental-edit.d.ts +123 -0
  621. package/dist/types/modules/word/index.base.d.ts +194 -10
  622. package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
  623. package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
  624. package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
  625. package/dist/types/modules/word/layout/layout.d.ts +63 -0
  626. package/dist/types/modules/word/layout/render-page.d.ts +57 -0
  627. package/dist/types/modules/word/markdown.d.ts +14 -0
  628. package/dist/types/modules/word/patcher.d.ts +62 -0
  629. package/dist/types/modules/word/query/compat.d.ts +25 -0
  630. package/dist/types/modules/word/query/data-binding.d.ts +22 -0
  631. package/dist/types/modules/word/query/form-fields.d.ts +41 -0
  632. package/dist/types/modules/word/query/format-search.d.ts +99 -0
  633. package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
  634. package/dist/types/modules/word/query/merge.d.ts +50 -0
  635. package/dist/types/modules/word/query/replace.d.ts +47 -0
  636. package/dist/types/modules/word/query/revisions.d.ts +67 -0
  637. package/dist/types/modules/word/query/search.d.ts +129 -0
  638. package/dist/types/modules/word/query/split.d.ts +44 -0
  639. package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
  640. package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
  641. package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
  642. package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
  643. package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
  644. package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
  645. package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
  646. package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
  647. package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
  648. package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
  649. package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
  650. package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  651. package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
  652. package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
  653. package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
  654. package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
  655. package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
  656. package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
  657. package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
  658. package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
  659. package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
  660. package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
  661. package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  662. package/dist/types/modules/word/security/document-protection.d.ts +93 -0
  663. package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
  664. package/dist/types/modules/word/security/policy.d.ts +80 -0
  665. package/dist/types/modules/word/template/template-chart.d.ts +56 -0
  666. package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
  667. package/dist/types/modules/word/template/template-engine.d.ts +121 -0
  668. package/dist/types/modules/word/types.d.ts +224 -25
  669. package/dist/types/modules/word/units.d.ts +26 -0
  670. package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
  671. package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
  672. package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
  673. package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
  674. package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
  675. package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
  676. package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
  677. package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
  678. package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
  679. package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
  680. package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  681. package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  682. package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  683. package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
  684. package/dist/types/modules/word/writer/relationships.d.ts +52 -0
  685. package/dist/types/modules/word/writer/render-context.d.ts +124 -0
  686. package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  687. package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
  688. package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
  689. package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
  690. package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
  691. package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  692. package/dist/types/modules/xml/types.d.ts +22 -0
  693. package/dist/types/utils/crypto.browser.d.ts +3 -1
  694. package/dist/types/utils/crypto.d.ts +4 -1
  695. package/dist/types/utils/font-metrics.d.ts +63 -0
  696. package/dist/types/utils/string-buf.d.ts +42 -0
  697. package/dist/types/utils/theme-colors.d.ts +55 -0
  698. package/package.json +121 -39
  699. package/dist/browser/modules/word/color-utils.js +0 -94
  700. package/dist/browser/modules/word/document.d.ts +0 -657
  701. package/dist/browser/modules/word/document.js +0 -1533
  702. package/dist/browser/modules/word/docx-packager.d.ts +0 -14
  703. package/dist/browser/modules/word/docx-packager.js +0 -822
  704. package/dist/browser/modules/word/docx-reader.d.ts +0 -11
  705. package/dist/browser/modules/word/docx-reader.js +0 -4929
  706. package/dist/browser/modules/word/encryption.js +0 -274
  707. package/dist/browser/modules/word/internal-utils.d.ts +0 -23
  708. package/dist/browser/modules/word/internal-utils.js +0 -54
  709. package/dist/browser/modules/word/namespaces.d.ts +0 -159
  710. package/dist/browser/modules/word/namespaces.js +0 -189
  711. package/dist/browser/modules/word/relationships.d.ts +0 -30
  712. package/dist/browser/modules/word/relationships.js +0 -48
  713. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
  714. package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
  715. package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
  716. package/dist/browser/modules/word/writers/document-writer.js +0 -461
  717. package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
  718. package/dist/cjs/modules/word/color-utils.js +0 -97
  719. package/dist/cjs/modules/word/document.js +0 -1645
  720. package/dist/cjs/modules/word/docx-packager.js +0 -825
  721. package/dist/cjs/modules/word/docx-reader.js +0 -4932
  722. package/dist/cjs/modules/word/encryption.js +0 -282
  723. package/dist/cjs/modules/word/internal-utils.js +0 -59
  724. package/dist/cjs/modules/word/namespaces.js +0 -192
  725. package/dist/cjs/modules/word/relationships.js +0 -55
  726. package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
  727. package/dist/cjs/modules/word/writers/document-writer.js +0 -465
  728. package/dist/esm/modules/word/color-utils.js +0 -94
  729. package/dist/esm/modules/word/document.js +0 -1533
  730. package/dist/esm/modules/word/docx-packager.js +0 -822
  731. package/dist/esm/modules/word/docx-reader.js +0 -4929
  732. package/dist/esm/modules/word/encryption.js +0 -274
  733. package/dist/esm/modules/word/internal-utils.js +0 -54
  734. package/dist/esm/modules/word/namespaces.js +0 -189
  735. package/dist/esm/modules/word/relationships.js +0 -48
  736. package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
  737. package/dist/esm/modules/word/writers/document-writer.js +0 -461
  738. package/dist/types/modules/word/document.d.ts +0 -657
  739. package/dist/types/modules/word/docx-packager.d.ts +0 -14
  740. package/dist/types/modules/word/docx-reader.d.ts +0 -11
  741. package/dist/types/modules/word/internal-utils.d.ts +0 -23
  742. package/dist/types/modules/word/namespaces.d.ts +0 -159
  743. package/dist/types/modules/word/relationships.d.ts +0 -30
  744. package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
  745. package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
  746. package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
  747. /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  748. /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  749. /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  750. /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
  751. /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  752. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  753. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
  754. /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
  755. /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
  756. /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
  757. /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
  758. /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
  759. /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
  760. /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
  761. /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
  762. /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  763. /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  764. /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  765. /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  766. /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  767. /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
@@ -4,10 +4,7 @@
4
4
  * Generates DrawingML chart part XML (word/charts/chartN.xml) from
5
5
  * high-level Chart definitions.
6
6
  */
7
- import { STD_DOC_ATTRIBUTES } from "../constants.js";
8
- const NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart";
9
- const NS_A_LOCAL = "http://schemas.openxmlformats.org/drawingml/2006/main";
10
- const NS_R_LOCAL = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
7
+ import { NS_A, NS_C_CHART, NS_R, STD_DOC_ATTRIBUTES } from "../constants.js";
11
8
  const CHART_TYPE_CATEGORY = {
12
9
  bar: { tag: "barChart", direction: "bar", grouping: "clustered" },
13
10
  barStacked: { tag: "barChart", direction: "bar", grouping: "stacked" },
@@ -25,15 +22,22 @@ const CHART_TYPE_CATEGORY = {
25
22
  doughnut: { tag: "doughnutChart" },
26
23
  scatter: { tag: "scatterChart", scatterStyle: "marker" },
27
24
  scatterSmooth: { tag: "scatterChart", scatterStyle: "smoothMarker" },
28
- radar: { tag: "radarChart" }
25
+ radar: { tag: "radarChart" },
26
+ radarFilled: { tag: "radarChart", radarStyle: "filled" },
27
+ bubble: { tag: "bubbleChart" },
28
+ stock: { tag: "stockChart" },
29
+ surface: { tag: "surfaceChart" },
30
+ surface3D: { tag: "surface3DChart" },
31
+ surfaceWireframe: { tag: "surfaceChart", wireframe: true },
32
+ surfaceWireframe3D: { tag: "surface3DChart", wireframe: true }
29
33
  };
30
34
  /** Render a chart part (word/charts/chartN.xml). */
31
35
  export function renderChartPart(xml, chart) {
32
36
  xml.openXml(STD_DOC_ATTRIBUTES);
33
37
  xml.openNode("c:chartSpace", {
34
- "xmlns:c": NS_C,
35
- "xmlns:a": NS_A_LOCAL,
36
- "xmlns:r": NS_R_LOCAL
38
+ "xmlns:c": NS_C_CHART,
39
+ "xmlns:a": NS_A,
40
+ "xmlns:r": NS_R
37
41
  });
38
42
  // Date1904 (calendar base)
39
43
  xml.leafNode("c:date1904", { val: "0" });
@@ -82,14 +86,21 @@ export function renderChartPart(xml, chart) {
82
86
  // Chart type-specific rendering
83
87
  const catAxId = "111111111";
84
88
  const valAxId = "222222222";
85
- renderChartTypeElement(xml, chart, catAxId, valAxId);
89
+ const catAxId2 = "333333333";
90
+ const valAxId2 = "444444444";
91
+ const hasSecondary = renderChartTypeElement(xml, chart, catAxId, valAxId, catAxId2, valAxId2);
86
92
  // Axes (unless pie/doughnut which use no axes)
87
93
  const noAxes = chart.type === "pie" || chart.type === "pie3D" || chart.type === "doughnut";
88
94
  if (!noAxes) {
89
- // Category axis
95
+ // Primary category axis
90
96
  renderAxis(xml, "catAx", catAxId, valAxId, chart.categoryAxis, "b");
91
- // Value axis
97
+ // Primary value axis
92
98
  renderAxis(xml, "valAx", valAxId, catAxId, chart.valueAxis, "l");
99
+ // Secondary axes (for combo charts)
100
+ if (hasSecondary) {
101
+ renderAxis(xml, "catAx", catAxId2, valAxId2, undefined, "b", true);
102
+ renderAxis(xml, "valAx", valAxId2, catAxId2, chart.secondaryValueAxis, "r");
103
+ }
93
104
  }
94
105
  // Plot area background
95
106
  if (chart.plotAreaColor) {
@@ -158,8 +169,55 @@ function renderTitle(xml, title) {
158
169
  xml.leafNode("c:overlay", { val: "0" });
159
170
  xml.closeNode(); // c:title
160
171
  }
161
- function renderChartTypeElement(xml, chart, catAxId, valAxId) {
162
- const info = CHART_TYPE_CATEGORY[chart.type] ?? { tag: "barChart" };
172
+ function renderChartTypeElement(xml, chart, catAxId, valAxId, catAxId2, valAxId2) {
173
+ // Determine if this is a combo chart
174
+ const hasSeriesOverrides = chart.series.some(s => s.chartType !== undefined);
175
+ const hasSecondarySeries = chart.secondarySeries !== undefined && chart.secondarySeries.length > 0;
176
+ const hasSecondaryAxis = hasSecondarySeries || chart.series.some(s => s.plotOnSecondaryAxis);
177
+ if (!hasSeriesOverrides && !hasSecondarySeries) {
178
+ // Simple (non-combo) chart — original logic
179
+ renderSingleChartTypeBlock(xml, chart.type, chart.series, chart, catAxId, valAxId, 0);
180
+ return false;
181
+ }
182
+ const groups = [];
183
+ let globalIndex = 0;
184
+ const findOrCreateGroup = (type, secondary) => {
185
+ let group = groups.find(g => g.chartType === type && g.secondary === secondary);
186
+ if (!group) {
187
+ group = { chartType: type, secondary, series: [] };
188
+ groups.push(group);
189
+ }
190
+ return group;
191
+ };
192
+ // Primary series
193
+ for (const s of chart.series) {
194
+ const effectiveType = s.chartType ?? chart.type;
195
+ const secondary = s.plotOnSecondaryAxis ?? false;
196
+ const group = findOrCreateGroup(effectiveType, secondary);
197
+ group.series.push({ series: s, globalIndex });
198
+ globalIndex++;
199
+ }
200
+ // Secondary series (legacy approach)
201
+ if (hasSecondarySeries) {
202
+ const secondaryType = chart.secondaryType ?? "line";
203
+ for (const s of chart.secondarySeries) {
204
+ const group = findOrCreateGroup(secondaryType, true);
205
+ group.series.push({ series: s, globalIndex });
206
+ globalIndex++;
207
+ }
208
+ }
209
+ // Render each group as a separate chart type element
210
+ for (const group of groups) {
211
+ const useCatAx = group.secondary ? catAxId2 : catAxId;
212
+ const useValAx = group.secondary ? valAxId2 : valAxId;
213
+ const seriesItems = group.series.map(item => item.series);
214
+ const startIndex = group.series[0].globalIndex;
215
+ renderSingleChartTypeBlock(xml, group.chartType, seriesItems, chart, useCatAx, useValAx, startIndex);
216
+ }
217
+ return hasSecondaryAxis;
218
+ }
219
+ function renderSingleChartTypeBlock(xml, chartType, series, chart, catAxId, valAxId, startIndex) {
220
+ const info = CHART_TYPE_CATEGORY[chartType] ?? { tag: "barChart" };
163
221
  const tagName = `c:${info.tag}`;
164
222
  xml.openNode(tagName);
165
223
  // Direction (bar vs col)
@@ -174,25 +232,40 @@ function renderChartTypeElement(xml, chart, catAxId, valAxId) {
174
232
  if ("scatterStyle" in info && info.scatterStyle) {
175
233
  xml.leafNode("c:scatterStyle", { val: info.scatterStyle });
176
234
  }
235
+ // Radar style
236
+ if ("radarStyle" in info && info.radarStyle) {
237
+ xml.leafNode("c:radarStyle", { val: info.radarStyle });
238
+ }
239
+ else if (info.tag === "radarChart") {
240
+ xml.leafNode("c:radarStyle", { val: "marker" });
241
+ }
242
+ // Wireframe (surface charts)
243
+ if ("wireframe" in info && info.wireframe) {
244
+ xml.leafNode("c:wireframe", { val: "1" });
245
+ }
177
246
  xml.leafNode("c:varyColors", {
178
- val: chart.type === "pie" || chart.type === "pie3D" || chart.type === "doughnut" ? "1" : "0"
247
+ val: chartType === "pie" || chartType === "pie3D" || chartType === "doughnut" ? "1" : "0"
179
248
  });
180
249
  // Series
181
- chart.series.forEach((series, idx) => {
182
- renderSeries(xml, series, idx, chart.type, "marked" in info && info.marked);
250
+ series.forEach((s, idx) => {
251
+ renderSeries(xml, s, startIndex + idx, chartType, "marked" in info && info.marked);
183
252
  });
253
+ // Chart-level data labels
254
+ if (chart.dataLabels) {
255
+ renderChartDataLabels(xml, chart.dataLabels);
256
+ }
184
257
  // Gap width / overlap (bar/column)
185
258
  if (info.tag === "barChart") {
186
259
  xml.leafNode("c:gapWidth", { val: "150" });
187
- if (chart.type === "barStacked" ||
188
- chart.type === "barPercentStacked" ||
189
- chart.type === "columnStacked" ||
190
- chart.type === "columnPercentStacked") {
260
+ if (chartType === "barStacked" ||
261
+ chartType === "barPercentStacked" ||
262
+ chartType === "columnStacked" ||
263
+ chartType === "columnPercentStacked") {
191
264
  xml.leafNode("c:overlap", { val: "100" });
192
265
  }
193
266
  }
194
267
  // Axes IDs
195
- const noAxes = chart.type === "pie" || chart.type === "pie3D" || chart.type === "doughnut";
268
+ const noAxes = chartType === "pie" || chartType === "pie3D" || chartType === "doughnut";
196
269
  if (!noAxes) {
197
270
  xml.leafNode("c:axId", { val: catAxId });
198
271
  xml.leafNode("c:axId", { val: valAxId });
@@ -336,9 +409,17 @@ function renderSeries(xml, series, index, chartType, markedLine) {
336
409
  xml.closeNode();
337
410
  xml.closeNode();
338
411
  xml.closeNode();
412
+ // Trendline
413
+ if (series.trendline) {
414
+ renderTrendline(xml, series.trendline);
415
+ }
416
+ // Error bars
417
+ if (series.errorBars) {
418
+ renderErrorBars(xml, series.errorBars);
419
+ }
339
420
  xml.closeNode(); // c:ser
340
421
  }
341
- function renderAxis(xml, tagName, axId, crossAxId, axis, defaultPos) {
422
+ function renderAxis(xml, tagName, axId, crossAxId, axis, defaultPos, forceHidden) {
342
423
  xml.openNode(`c:${tagName}`);
343
424
  xml.leafNode("c:axId", { val: axId });
344
425
  // Scaling
@@ -351,7 +432,7 @@ function renderAxis(xml, tagName, axId, crossAxId, axis, defaultPos) {
351
432
  xml.leafNode("c:max", { val: String(axis.max) });
352
433
  }
353
434
  xml.closeNode();
354
- xml.leafNode("c:delete", { val: axis?.hidden ? "1" : "0" });
435
+ xml.leafNode("c:delete", { val: forceHidden || axis?.hidden ? "1" : "0" });
355
436
  xml.leafNode("c:axPos", { val: defaultPos });
356
437
  // Title
357
438
  if (axis?.title) {
@@ -383,3 +464,63 @@ function renderAxis(xml, tagName, axId, crossAxId, axis, defaultPos) {
383
464
  }
384
465
  xml.closeNode();
385
466
  }
467
+ // -- Data labels position map ---------------------------------------------------
468
+ const DATA_LABEL_POSITION_MAP = {
469
+ outsideEnd: "outEnd",
470
+ center: "ctr",
471
+ insideEnd: "inEnd",
472
+ bestFit: "bestFit"
473
+ };
474
+ function renderChartDataLabels(xml, dataLabels) {
475
+ xml.openNode("c:dLbls");
476
+ if (dataLabels.position) {
477
+ xml.leafNode("c:dLblPos", { val: DATA_LABEL_POSITION_MAP[dataLabels.position] ?? "bestFit" });
478
+ }
479
+ xml.leafNode("c:showLegendKey", { val: "0" });
480
+ xml.leafNode("c:showVal", { val: dataLabels.showValue ? "1" : "0" });
481
+ xml.leafNode("c:showCatName", { val: dataLabels.showCategory ? "1" : "0" });
482
+ xml.leafNode("c:showSerName", { val: dataLabels.showSerName ? "1" : "0" });
483
+ xml.leafNode("c:showPercent", { val: dataLabels.showPercent ? "1" : "0" });
484
+ xml.leafNode("c:showBubbleSize", { val: "0" });
485
+ xml.closeNode();
486
+ }
487
+ // -- Trendline ------------------------------------------------------------------
488
+ function renderTrendline(xml, trendline) {
489
+ if (!trendline) {
490
+ return;
491
+ }
492
+ xml.openNode("c:trendline");
493
+ xml.leafNode("c:trendlineType", { val: trendline.type });
494
+ if (trendline.type === "polynomial" && trendline.order !== undefined) {
495
+ xml.leafNode("c:order", { val: String(trendline.order) });
496
+ }
497
+ if (trendline.type === "movingAvg" && trendline.period !== undefined) {
498
+ xml.leafNode("c:period", { val: String(trendline.period) });
499
+ }
500
+ if (trendline.displayEquation) {
501
+ xml.leafNode("c:dispEq", { val: "1" });
502
+ }
503
+ if (trendline.displayRSquared) {
504
+ xml.leafNode("c:dispRSqr", { val: "1" });
505
+ }
506
+ xml.closeNode();
507
+ }
508
+ // -- Error Bars -----------------------------------------------------------------
509
+ function renderErrorBars(xml, errorBars) {
510
+ if (!errorBars) {
511
+ return;
512
+ }
513
+ const directions = errorBars.direction === "both" ? ["x", "y"] : [errorBars.direction];
514
+ for (const dir of directions) {
515
+ xml.openNode("c:errBars");
516
+ xml.leafNode("c:errBarType", { val: "both" });
517
+ xml.leafNode("c:errValType", { val: errorBars.type });
518
+ xml.leafNode("c:errDir", { val: dir });
519
+ if (errorBars.value !== undefined &&
520
+ (errorBars.type === "fixedVal" || errorBars.type === "percentage")) {
521
+ xml.leafNode("c:val", { val: String(errorBars.value) });
522
+ }
523
+ xml.leafNode("c:noEndCap", { val: "0" });
524
+ xml.closeNode();
525
+ }
526
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * DOCX Writers - CheckBox
3
+ *
4
+ * Renders checkbox as a structured document tag (SDT) with w14:checkbox.
5
+ *
6
+ * Per ECMA-376 Part 4 §17.5.2.41 the `w14:checkedState/@w14:val` attribute
7
+ * holds a 4-digit hexadecimal Unicode code point. We persist that hex form
8
+ * verbatim into the `w14:val` attribute, but the displayed glyph is rendered
9
+ * by converting to the actual character. To stay forgiving we accept both
10
+ * the canonical hex form (e.g. `"2612"`) and a literal glyph form (e.g.
11
+ * `"☒"`) on the input side, normalising both to a hex string for the
12
+ * attribute and the actual glyph for the displayed run.
13
+ */
14
+ import type { XmlSink } from "../../xml/types.js";
15
+ import type { CheckBox } from "../types.js";
16
+ /** Render a checkbox as a paragraph with SDT. */
17
+ export declare function renderCheckBox(xml: XmlSink, cb: CheckBox): void;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * DOCX Writers - CheckBox
3
+ *
4
+ * Renders checkbox as a structured document tag (SDT) with w14:checkbox.
5
+ *
6
+ * Per ECMA-376 Part 4 §17.5.2.41 the `w14:checkedState/@w14:val` attribute
7
+ * holds a 4-digit hexadecimal Unicode code point. We persist that hex form
8
+ * verbatim into the `w14:val` attribute, but the displayed glyph is rendered
9
+ * by converting to the actual character. To stay forgiving we accept both
10
+ * the canonical hex form (e.g. `"2612"`) and a literal glyph form (e.g.
11
+ * `"☒"`) on the input side, normalising both to a hex string for the
12
+ * attribute and the actual glyph for the displayed run.
13
+ */
14
+ import { NS_W14 } from "../constants.js";
15
+ /**
16
+ * Normalise a checked-state value to {hex, glyph}.
17
+ *
18
+ * - If the input parses as a hexadecimal code point (1-6 hex digits with
19
+ * no other characters) we treat it as the canonical hex form.
20
+ * - Otherwise we treat it as a literal glyph and derive its hex from the
21
+ * first code point of the string.
22
+ *
23
+ * Empty / nullish input falls back to the supplied default.
24
+ */
25
+ function normaliseCheckState(input, fallback) {
26
+ const value = input && input.length > 0 ? input : fallback;
27
+ // Canonical hex form: 1-6 hex digits and nothing else.
28
+ if (/^[0-9a-fA-F]{1,6}$/.test(value)) {
29
+ const cp = parseInt(value, 16);
30
+ if (Number.isFinite(cp) && cp >= 0 && cp <= 0x10ffff) {
31
+ return { hex: value.toUpperCase().padStart(4, "0"), glyph: String.fromCodePoint(cp) };
32
+ }
33
+ }
34
+ // Literal glyph form: take the first Unicode code point.
35
+ const cp = value.codePointAt(0);
36
+ if (cp === undefined) {
37
+ // Should not happen because fallback is always non-empty, but stay safe.
38
+ return { hex: "2610", glyph: "\u2610" };
39
+ }
40
+ return {
41
+ hex: cp.toString(16).toUpperCase().padStart(4, "0"),
42
+ glyph: String.fromCodePoint(cp)
43
+ };
44
+ }
45
+ /** Render a checkbox as a paragraph with SDT. */
46
+ export function renderCheckBox(xml, cb) {
47
+ const checked = cb.checked ?? false;
48
+ const checkedNorm = normaliseCheckState(cb.checkedState?.value, "2612"); // ☒
49
+ const uncheckedNorm = normaliseCheckState(cb.uncheckedState?.value, "2610"); // ☐
50
+ const checkedFont = cb.checkedState?.font ?? "MS Gothic";
51
+ const uncheckedFont = cb.uncheckedState?.font ?? "MS Gothic";
52
+ const display = checked ? checkedNorm : uncheckedNorm;
53
+ const displayFont = checked ? checkedFont : uncheckedFont;
54
+ xml.openNode("w:sdt");
55
+ // SDT properties
56
+ xml.openNode("w:sdtPr");
57
+ xml.openNode("w14:checkbox", { "xmlns:w14": NS_W14 });
58
+ xml.leafNode("w14:checked", { "w14:val": checked ? "1" : "0" });
59
+ xml.leafNode("w14:checkedState", { "w14:val": checkedNorm.hex, "w14:font": checkedFont });
60
+ xml.leafNode("w14:uncheckedState", { "w14:val": uncheckedNorm.hex, "w14:font": uncheckedFont });
61
+ xml.closeNode();
62
+ xml.closeNode();
63
+ // SDT content - display the checkbox character
64
+ xml.openNode("w:sdtContent");
65
+ xml.openNode("w:r");
66
+ xml.openNode("w:rPr");
67
+ xml.leafNode("w:rFonts", {
68
+ "w:ascii": displayFont,
69
+ "w:hAnsi": displayFont,
70
+ "w:eastAsia": displayFont
71
+ });
72
+ xml.closeNode();
73
+ xml.openNode("w:t");
74
+ xml.writeText(display.glyph);
75
+ xml.closeNode();
76
+ xml.closeNode();
77
+ xml.closeNode();
78
+ xml.closeNode(); // w:sdt
79
+ }
@@ -5,8 +5,9 @@
5
5
  */
6
6
  import type { XmlSink } from "../../xml/types.js";
7
7
  import type { CommentDef } from "../types.js";
8
+ import type { RenderHelpers } from "./render-context.js";
8
9
  /** Render word/comments.xml. */
9
- export declare function renderComments(xml: XmlSink, comments: readonly CommentDef[]): void;
10
+ export declare function renderComments(xml: XmlSink, comments: readonly CommentDef[], helpers?: RenderHelpers): void;
10
11
  /**
11
12
  * Render word/commentsExtended.xml — extended comment metadata (done/parentId).
12
13
  * Only includes comments that have either `done` or `parentId` set.
@@ -3,11 +3,10 @@
3
3
  *
4
4
  * Renders word/comments.xml and word/commentsExtended.xml parts.
5
5
  */
6
- import { NS_W, NS_R, STD_DOC_ATTRIBUTES } from "../constants.js";
6
+ import { NS_W, NS_W15, NS_R, STD_DOC_ATTRIBUTES } from "../constants.js";
7
7
  import { renderParagraph } from "./paragraph-writer.js";
8
- const NS_W15 = "http://schemas.microsoft.com/office/word/2012/wordml";
9
8
  /** Render word/comments.xml. */
10
- export function renderComments(xml, comments) {
9
+ export function renderComments(xml, comments, helpers) {
11
10
  xml.openXml(STD_DOC_ATTRIBUTES);
12
11
  xml.openNode("w:comments", {
13
12
  "xmlns:w": NS_W,
@@ -26,7 +25,7 @@ export function renderComments(xml, comments) {
26
25
  }
27
26
  xml.openNode("w:comment", attrs);
28
27
  for (const para of comment.content) {
29
- renderParagraph(xml, para);
28
+ renderParagraph(xml, para, helpers);
30
29
  }
31
30
  xml.closeNode();
32
31
  }
@@ -57,8 +56,11 @@ export function renderCommentsExtended(xml, comments) {
57
56
  continue;
58
57
  }
59
58
  const attrs = { "w15:paraId": firstPara.paraId };
60
- if (c.done) {
61
- attrs["w15:done"] = "1";
59
+ // Round-trip explicit done state. `done === false` is meaningful — it
60
+ // tells consumers "this comment is explicitly *not* resolved", which
61
+ // can differ semantically from omitting the attribute entirely.
62
+ if (c.done !== undefined) {
63
+ attrs["w15:done"] = c.done ? "1" : "0";
62
64
  }
63
65
  if (c.parentId) {
64
66
  attrs["w15:paraIdParent"] = c.parentId;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * DOCX Module - Common Auxiliary Parts Builder
3
+ *
4
+ * Shared logic for generating auxiliary XML parts (styles, settings, numbering,
5
+ * fontTable, theme, core properties, app properties, custom properties).
6
+ *
7
+ * Both the buffered packager and streaming writer use this to avoid duplicating
8
+ * the same rendering logic.
9
+ */
10
+ import type { AbstractNumbering, AppProperties, CoreProperties, CustomProperty, DocDefaults, DocumentSettings, DocumentTheme, EndnoteDef, FontDef, FootnoteDef, NumPicBullet, NumberingInstance, StyleDef } from "../types.js";
11
+ import type { RenderHelpers } from "./render-context.js";
12
+ /** Input options for building common auxiliary parts. */
13
+ export interface AuxiliaryPartsInput {
14
+ readonly docDefaults?: DocDefaults;
15
+ readonly styles?: readonly StyleDef[];
16
+ readonly settings?: DocumentSettings;
17
+ readonly fonts?: readonly FontDef[];
18
+ readonly theme?: DocumentTheme;
19
+ readonly abstractNumberings?: readonly AbstractNumbering[];
20
+ readonly numberingInstances?: readonly NumberingInstance[];
21
+ readonly numPicBullets?: readonly NumPicBullet[];
22
+ readonly coreProperties?: CoreProperties;
23
+ readonly appProperties?: AppProperties;
24
+ readonly customProperties?: readonly CustomProperty[];
25
+ readonly footnotes?: readonly FootnoteDef[];
26
+ readonly endnotes?: readonly EndnoteDef[];
27
+ /**
28
+ * Optional render helpers passed to footnote/endnote rendering so in-note
29
+ * hyperlinks/images resolve to the rIds the caller has registered against
30
+ * the per-part .rels. Defaults to `{}`, meaning no remap and no
31
+ * hyperlink rIds — sufficient for documents without notes that contain
32
+ * external links or remapped images.
33
+ */
34
+ readonly notesHelpers?: RenderHelpers;
35
+ /**
36
+ * Raw XML output policy. When `"strip"` or `"reject"`, opaque rawXml
37
+ * fields on settings/theme/numbering are skipped or cause an error
38
+ * respectively. Defaults to `"preserve"`.
39
+ */
40
+ readonly rawXmlPolicy?: "preserve" | "strip" | "reject";
41
+ }
42
+ /** A rendered XML part ready to be written to ZIP. */
43
+ export interface RenderedPart {
44
+ readonly path: string;
45
+ readonly content: string;
46
+ }
47
+ /**
48
+ * Build all common auxiliary XML parts that are shared between
49
+ * the buffered packager and streaming writer.
50
+ *
51
+ * Returns an array of rendered parts (path + XML string).
52
+ * Does NOT include: document.xml, images, headers/footers, comments,
53
+ * charts, custom XML, embedded fonts, opaque parts, watermarks.
54
+ * Those are handled by the respective packager/streaming-writer because
55
+ * they require relationship ID coordination.
56
+ */
57
+ export declare function buildCommonAuxiliaryParts(input: AuxiliaryPartsInput): RenderedPart[];
@@ -0,0 +1,101 @@
1
+ /**
2
+ * DOCX Module - Common Auxiliary Parts Builder
3
+ *
4
+ * Shared logic for generating auxiliary XML parts (styles, settings, numbering,
5
+ * fontTable, theme, core properties, app properties, custom properties).
6
+ *
7
+ * Both the buffered packager and streaming writer use this to avoid duplicating
8
+ * the same rendering logic.
9
+ */
10
+ import { XmlWriter } from "../../xml/writer.js";
11
+ import { PartPath } from "../constants.js";
12
+ import { renderFootnotes, renderEndnotes } from "./footnote-writer.js";
13
+ import { renderNumbering } from "./numbering-writer.js";
14
+ import { renderSettings, renderFontTable, renderCoreProperties, renderAppProperties, renderCustomProperties, renderTheme } from "./parts-writer.js";
15
+ import { renderStyles } from "./styles-writer.js";
16
+ // =============================================================================
17
+ // Public API
18
+ // =============================================================================
19
+ /**
20
+ * Build all common auxiliary XML parts that are shared between
21
+ * the buffered packager and streaming writer.
22
+ *
23
+ * Returns an array of rendered parts (path + XML string).
24
+ * Does NOT include: document.xml, images, headers/footers, comments,
25
+ * charts, custom XML, embedded fonts, opaque parts, watermarks.
26
+ * Those are handled by the respective packager/streaming-writer because
27
+ * they require relationship ID coordination.
28
+ */
29
+ export function buildCommonAuxiliaryParts(input) {
30
+ const parts = [];
31
+ // styles.xml (always written)
32
+ parts.push({
33
+ path: PartPath.Styles,
34
+ content: renderXml(xml => renderStyles(xml, input.docDefaults, input.styles))
35
+ });
36
+ // settings.xml
37
+ parts.push({
38
+ path: PartPath.Settings,
39
+ content: renderXml(xml => renderSettings(xml, input.settings, input.rawXmlPolicy))
40
+ });
41
+ // fontTable.xml
42
+ parts.push({
43
+ path: PartPath.FontTable,
44
+ content: renderXml(xml => renderFontTable(xml, input.fonts))
45
+ });
46
+ // theme/theme1.xml
47
+ parts.push({
48
+ path: PartPath.Theme,
49
+ content: renderXml(xml => renderTheme(xml, input.theme, input.rawXmlPolicy))
50
+ });
51
+ // numbering.xml (conditional)
52
+ const hasNumbering = (input.abstractNumberings && input.abstractNumberings.length > 0) ||
53
+ (input.numberingInstances && input.numberingInstances.length > 0);
54
+ if (hasNumbering) {
55
+ parts.push({
56
+ path: PartPath.Numbering,
57
+ content: renderXml(xml => renderNumbering(xml, input.abstractNumberings, input.numberingInstances, input.numPicBullets, input.rawXmlPolicy))
58
+ });
59
+ }
60
+ // footnotes.xml (conditional)
61
+ if (input.footnotes && input.footnotes.length > 0) {
62
+ parts.push({
63
+ path: PartPath.Footnotes,
64
+ content: renderXml(xml => renderFootnotes(xml, input.footnotes, input.notesHelpers))
65
+ });
66
+ }
67
+ // endnotes.xml (conditional)
68
+ if (input.endnotes && input.endnotes.length > 0) {
69
+ parts.push({
70
+ path: PartPath.Endnotes,
71
+ content: renderXml(xml => renderEndnotes(xml, input.endnotes, input.notesHelpers))
72
+ });
73
+ }
74
+ // docProps/core.xml
75
+ parts.push({
76
+ path: PartPath.CoreProps,
77
+ content: renderXml(xml => renderCoreProperties(xml, input.coreProperties))
78
+ });
79
+ // docProps/app.xml
80
+ parts.push({
81
+ path: PartPath.AppProps,
82
+ content: renderXml(xml => renderAppProperties(xml, input.appProperties))
83
+ });
84
+ // docProps/custom.xml (conditional)
85
+ if (input.customProperties && input.customProperties.length > 0) {
86
+ parts.push({
87
+ path: PartPath.CustomProps,
88
+ content: renderXml(xml => renderCustomProperties(xml, input.customProperties))
89
+ });
90
+ }
91
+ return parts;
92
+ }
93
+ // =============================================================================
94
+ // Internal
95
+ // =============================================================================
96
+ /** Render XML to string using XmlWriter. */
97
+ function renderXml(renderFn) {
98
+ const writer = new XmlWriter();
99
+ renderFn(writer);
100
+ return writer.xml;
101
+ }
@@ -4,7 +4,7 @@
4
4
  * Generates [Content_Types].xml for the DOCX package.
5
5
  * Uses a plain data record + free functions for tree-shakeability.
6
6
  */
7
- import type { XmlSink } from "../xml/types.js";
7
+ import type { XmlSink } from "../../xml/types.js";
8
8
  /** Content type override entry. */
9
9
  export interface ContentTypeOverride {
10
10
  readonly partName: string;
@@ -19,7 +19,7 @@ export interface ContentTypesState {
19
19
  export declare function createContentTypes(): ContentTypesState;
20
20
  /** Add a default content type for a file extension. */
21
21
  export declare function addContentTypeDefault(state: ContentTypesState, extension: string, contentType: string): void;
22
- /** Add an override content type for a specific part. */
22
+ /** Add an override content type for a specific part. Deduplicates by partName. */
23
23
  export declare function addContentTypeOverride(state: ContentTypesState, partName: string, contentType: string): void;
24
24
  /** Add image extension defaults from a set of used extensions. */
25
25
  export declare function addImageContentTypeDefaults(state: ContentTypesState, extensions: Iterable<string>): void;
@@ -4,7 +4,7 @@
4
4
  * Generates [Content_Types].xml for the DOCX package.
5
5
  * Uses a plain data record + free functions for tree-shakeability.
6
6
  */
7
- import { NS_CONTENT_TYPES, STD_DOC_ATTRIBUTES, ContentType, IMAGE_CONTENT_TYPES } from "./constants.js";
7
+ import { NS_CONTENT_TYPES, STD_DOC_ATTRIBUTES, ContentType, IMAGE_CONTENT_TYPES } from "../constants.js";
8
8
  /** Create a new ContentTypesState with standard defaults (rels, xml). */
9
9
  export function createContentTypes() {
10
10
  const defaults = new Map();
@@ -16,12 +16,20 @@ export function createContentTypes() {
16
16
  export function addContentTypeDefault(state, extension, contentType) {
17
17
  state.defaults.set(extension, contentType);
18
18
  }
19
- /** Add an override content type for a specific part. */
19
+ /** Add an override content type for a specific part. Deduplicates by partName. */
20
20
  export function addContentTypeOverride(state, partName, contentType) {
21
- state.overrides.push({
22
- partName: partName.startsWith("/") ? partName : `/${partName}`,
23
- contentType
24
- });
21
+ const normalized = partName.startsWith("/") ? partName : `/${partName}`;
22
+ const overrides = state.overrides;
23
+ // Deduplicate: if same partName already exists, update in-place
24
+ const existing = overrides.findIndex(o => o.partName === normalized);
25
+ if (existing !== -1) {
26
+ // Same content type → no-op; different → replace (last wins)
27
+ if (overrides[existing].contentType !== contentType) {
28
+ overrides[existing] = { partName: normalized, contentType };
29
+ }
30
+ return;
31
+ }
32
+ overrides.push({ partName: normalized, contentType });
25
33
  }
26
34
  /** Add image extension defaults from a set of used extensions. */
27
35
  export function addImageContentTypeDefaults(state, extensions) {
@@ -0,0 +1,24 @@
1
+ /**
2
+ * DOCX Writers - Document Body
3
+ *
4
+ * Renders the main word/document.xml part including all block-level
5
+ * content types: paragraphs, tables, floating images, TOC, math,
6
+ * text boxes, and structured document tags.
7
+ */
8
+ import type { XmlSink } from "../../xml/types.js";
9
+ import type { DocxDocument, BodyContent, StructuredDocumentTag } from "../types.js";
10
+ import { type RenderHelpers, type WordRenderContext } from "./render-context.js";
11
+ /**
12
+ * Render a structured document tag.
13
+ *
14
+ * `ctx` may be `undefined` when called from a sub-renderer that only knows
15
+ * about `RenderHelpers` (e.g. table cell, header/footer). In that case we
16
+ * still emit a syntactically valid `<w:sdt>`, but we cannot auto-assign an
17
+ * id from the document-wide id generator — callers that care about
18
+ * uniqueness should provide `properties.id` explicitly.
19
+ */
20
+ export declare function renderSdt(xml: XmlSink, sdt: StructuredDocumentTag, ctx: WordRenderContext | undefined, helpers?: RenderHelpers): void;
21
+ /** Render a single body content element (paragraph, table, image, etc.). */
22
+ export declare function renderBodyContent(xml: XmlSink, content: BodyContent, ctx?: WordRenderContext): void;
23
+ /** Render the complete word/document.xml. */
24
+ export declare function renderDocument(xml: XmlSink, doc: DocxDocument, ctx?: WordRenderContext): void;