@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
@@ -110,17 +110,39 @@ class PivotTableXform extends BaseXform {
110
110
  const pageOffset = pageCount > 0 ? pageCount + 1 : 0;
111
111
  // Location ref: firstDataCol = number of row fields (row label columns),
112
112
  // endCol = row fields + data columns.
113
+ // When the caller supplies `ref`, it anchors the pivot's displayed block
114
+ // (page filters → blank separator → pivot body). The body — which is what
115
+ // <location ref="..."/> actually addresses in OOXML — therefore sits
116
+ // pageOffset rows below the anchor and shares its column.
113
117
  const firstDataCol = rows.length;
114
- const startRow = 3 + pageOffset;
115
- const endRow = startRow + 1; // header + 1 data row placeholder
116
118
  const dataColCount = isMultiValueNoCol ? values.length : 1;
117
- const endCol = firstDataCol + dataColCount;
119
+ const totalPivotCols = firstDataCol + dataColCount;
120
+ let startRow;
121
+ let startCol;
122
+ if (model.ref) {
123
+ // `ref` is pre-normalised by makePivotTable to a canonical cell address,
124
+ // so decodeAddress cannot fail here. Guard anyway to surface any
125
+ // bypasses via `as any` with a clear error.
126
+ const addr = colCache.decodeAddress(model.ref);
127
+ if (!addr.col || !addr.row) {
128
+ throw new Error(`Pivot table ref "${model.ref}" must include both column and row (e.g. "A3").`);
129
+ }
130
+ startRow = addr.row + pageOffset;
131
+ startCol = addr.col;
132
+ }
133
+ else {
134
+ startRow = 3 + pageOffset;
135
+ startCol = 1;
136
+ }
137
+ const endRow = startRow + 1; // header + 1 data row placeholder
138
+ const endCol = startCol + totalPivotCols - 1;
139
+ const startColLetter = colCache.n2l(startCol);
118
140
  const endColLetter = colCache.n2l(endCol);
119
- const locationRef = `A${startRow}:${endColLetter}${endRow}`;
141
+ const locationRef = `${startColLetter}${startRow}:${endColLetter}${endRow}`;
120
142
  xmlStream.openXml(StdDocAttributes);
121
143
  xmlStream.openNode(this.tag, {
122
144
  ...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
123
- name: `PivotTable${tableNumber}`,
145
+ name: model.name ?? `PivotTable${tableNumber}`,
124
146
  cacheId,
125
147
  applyNumberFormats: "0",
126
148
  applyBorderFormats: "0",
@@ -137,7 +159,8 @@ class PivotTableXform extends BaseXform {
137
159
  indent: "0",
138
160
  compact: "0",
139
161
  compactData: "0",
140
- multipleFieldFilters: "0"
162
+ multipleFieldFilters: "0",
163
+ chartFormat: model.chartFormat !== undefined ? String(model.chartFormat) : undefined
141
164
  });
142
165
  // Location
143
166
  const locAttrs = {
@@ -219,6 +242,9 @@ class PivotTableXform extends BaseXform {
219
242
  }
220
243
  // Data fields
221
244
  renderDataFields(xmlStream, cacheFields, values, model.valueMetrics);
245
+ if (model.chartFormats && model.chartFormats.length > 0) {
246
+ this.renderChartFormats(xmlStream, model.chartFormats);
247
+ }
222
248
  // Pivot table style info
223
249
  xmlStream.leafNode("pivotTableStyleInfo", {
224
250
  name: DEFAULT_PIVOT_STYLE,
@@ -0,0 +1,441 @@
1
+ /**
2
+ * ChartsheetXform — parse and render OOXML chartsheet XML.
3
+ *
4
+ * A chartsheet is a simple sheet type that contains only a chart.
5
+ * Structure (ECMA-376 `CT_Chartsheet`):
6
+ * ```xml
7
+ * <chartsheet xmlns="...">
8
+ * <sheetPr/>?
9
+ * <sheetViews><sheetView .../></sheetViews>
10
+ * <sheetProtection/>?
11
+ * <customSheetViews/>?
12
+ * <pageMargins .../>?
13
+ * <pageSetup .../>? CT_CsPageSetup — NOT CT_PageSetup
14
+ * <headerFooter/>?
15
+ * <drawing r:id="rId1"/>
16
+ * <legacyDrawing/>? legacyDrawingHF? drawingHF? picture? webPublishItems? extLst?
17
+ * </chartsheet>
18
+ * ```
19
+ *
20
+ * Note that chartsheets do NOT support `printOptions`, `pageBreaks`,
21
+ * `rowBreaks`, or `colBreaks` — those are worksheet-only elements
22
+ * per ECMA-376 `CT_Chartsheet`. Likewise `<c:pageSetup>` on a
23
+ * chartsheet is `CT_CsPageSetup`, which has a reduced attribute set
24
+ * compared to the worksheet's `CT_PageSetup` (no `scale`,
25
+ * `fitToWidth`, `fitToHeight`, `pageOrder`, `cellComments`, or
26
+ * `errors`).
27
+ */
28
+ import { BaseXform } from "../base-xform.js";
29
+ import { parseXsdBoolean, parseXsdInt } from "../xsd-values.js";
30
+ import { xmlEncode as escapeXml, xmlEncodeAttr } from "../../../../xml/encode.js";
31
+ const CHARTSHEET_ATTRIBUTES = {
32
+ xmlns: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
33
+ "xmlns:r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
34
+ };
35
+ class ChartsheetXform extends BaseXform {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.inSheetView = false;
39
+ this.captureDepth = 0;
40
+ this.captureParts = [];
41
+ this.skipNextCaptureClose = false;
42
+ this.sheetDepth = 0;
43
+ }
44
+ get tag() {
45
+ return "chartsheet";
46
+ }
47
+ render(xmlStream, model) {
48
+ const m = model ?? this.model;
49
+ if (!m) {
50
+ return;
51
+ }
52
+ xmlStream.openNode("chartsheet", CHARTSHEET_ATTRIBUTES);
53
+ // `CT_Chartsheet` schema sequence:
54
+ // sheetPr?, sheetViews, sheetProtection?, customSheetViews?,
55
+ // pageMargins?, pageSetup?, headerFooter?,
56
+ // drawing, legacyDrawing?, legacyDrawingHF?, drawingHF?,
57
+ // picture?, webPublishItems?, extLst?
58
+ //
59
+ // Elements we don't structurally model (most of the tail) are
60
+ // captured as raw XML via `rawChildren` and re-emitted at the
61
+ // correct sequence position so round-tripping a chartsheet with
62
+ // `sheetProtection` / `headerFooter` / `legacyDrawing` doesn't
63
+ // drop them.
64
+ //
65
+ // Notably absent: `printOptions`, `pageBreaks`, `rowBreaks`,
66
+ // `colBreaks` — all worksheet-only per ECMA-376 `CT_Chartsheet`.
67
+ // Legacy workbooks that stored them in chartsheets are silently
68
+ // stripped; Excel itself also ignores them at load time.
69
+ const raw = m.rawChildren ?? {};
70
+ const writeRaw = (name) => {
71
+ const xml = raw[name];
72
+ if (xml) {
73
+ xmlStream.writeRaw(xml);
74
+ }
75
+ };
76
+ writeRaw("sheetPr");
77
+ // sheetViews
78
+ xmlStream.openNode("sheetViews");
79
+ // Preserve the author's `workbookViewId` (0-based index into the
80
+ // workbook's `<bookViews>` list). Default is 0 per schema; writing
81
+ // 0 explicitly is harmless and matches the wire shape Excel emits.
82
+ const svAttrs = {
83
+ workbookViewId: String(m.workbookViewId ?? 0)
84
+ };
85
+ if (m.tabSelected) {
86
+ svAttrs.tabSelected = "1";
87
+ }
88
+ if (m.zoomScale !== undefined) {
89
+ svAttrs.zoomScale = String(m.zoomScale);
90
+ }
91
+ if (m.zoomToFit) {
92
+ svAttrs.zoomToFit = "1";
93
+ }
94
+ xmlStream.leafNode("sheetView", svAttrs);
95
+ xmlStream.closeNode();
96
+ writeRaw("sheetProtection");
97
+ writeRaw("customSheetViews");
98
+ // pageMargins
99
+ if (m.pageMargins) {
100
+ const pm = m.pageMargins;
101
+ xmlStream.leafNode("pageMargins", {
102
+ left: pm.left !== undefined ? String(pm.left) : pm.l !== undefined ? String(pm.l) : "0.7",
103
+ right: pm.right !== undefined ? String(pm.right) : pm.r !== undefined ? String(pm.r) : "0.7",
104
+ top: pm.top !== undefined ? String(pm.top) : pm.t !== undefined ? String(pm.t) : "0.75",
105
+ bottom: pm.bottom !== undefined ? String(pm.bottom) : pm.b !== undefined ? String(pm.b) : "0.75",
106
+ header: pm.header !== undefined ? String(pm.header) : "0.3",
107
+ footer: pm.footer !== undefined ? String(pm.footer) : "0.3"
108
+ });
109
+ }
110
+ // pageSetup — note this is `CT_CsPageSetup`, NOT the worksheet's
111
+ // `CT_PageSetup`. The attribute set is narrower: no `scale`,
112
+ // `fitToWidth`, `fitToHeight`, `pageOrder`, `cellComments`, or
113
+ // `errors`. `definedAttrs` emits only fields with defined values,
114
+ // and the `ChartsheetModel["pageSetup"]` type constrains the
115
+ // permitted field set at compile time.
116
+ if (m.pageSetup) {
117
+ // `rId` rides on this element as `r:id` (namespaced). Project
118
+ // the model's camel-case `rId` onto the wire name and pass the
119
+ // rest through `definedAttrs`. Previously the parser dropped
120
+ // `r:id` entirely and the writer never emitted it, so printer-
121
+ // settings rels preserved in the chartsheet .rels went
122
+ // unreferenced inside the XML.
123
+ const { rId, ...pageSetupAttrs } = m.pageSetup;
124
+ const attrs = definedAttrs(pageSetupAttrs);
125
+ if (rId !== undefined) {
126
+ attrs["r:id"] = rId;
127
+ }
128
+ xmlStream.leafNode("pageSetup", attrs);
129
+ }
130
+ writeRaw("headerFooter");
131
+ // drawing
132
+ if (m.drawing) {
133
+ xmlStream.leafNode("drawing", { "r:id": m.drawing.rId });
134
+ }
135
+ writeRaw("legacyDrawing");
136
+ writeRaw("legacyDrawingHF");
137
+ writeRaw("drawingHF");
138
+ writeRaw("picture");
139
+ writeRaw("webPublishItems");
140
+ writeRaw("extLst");
141
+ xmlStream.closeNode();
142
+ }
143
+ parseOpen(node) {
144
+ var _a;
145
+ const { name } = node;
146
+ const attrs = node.attributes || {};
147
+ const isSelfClosing = !!node.isSelfClosing;
148
+ // If we're already inside a raw-captured element, serialise every
149
+ // child / text node into the capture buffer regardless of name —
150
+ // we don't want to structurally interpret children of, say,
151
+ // `<sheetProtection>`. Honour `isSelfClosing` so the captured
152
+ // bytes match the original encoding (self-closing `<foo/>` stays
153
+ // `<foo/>`, not `<foo></foo>`).
154
+ if (this.captureRoot) {
155
+ if (isSelfClosing) {
156
+ // Self-closing within a capture: append the `<foo/>` bytes
157
+ // verbatim and instruct `parseClose` to skip the synthetic
158
+ // close SAX will fire next. Depth stays where it was — a
159
+ // self-close neither enters nor leaves a level.
160
+ this.captureParts.push(selfCloseTag(node));
161
+ this.skipNextCaptureClose = true;
162
+ }
163
+ else {
164
+ this.captureDepth++;
165
+ this.captureParts.push(openTag(node));
166
+ }
167
+ return true;
168
+ }
169
+ // Track depth from the `<chartsheet>` root so the raw-capture
170
+ // dispatch only fires for direct children. Without this guard a
171
+ // nested `<extLst>` (or any other RAW_CAPTURE_TAG name reused
172
+ // inside a container we don't structurally model) would be
173
+ // promoted to a sibling of `<chartsheet>` — clobbering whichever
174
+ // capture was meant to contain it.
175
+ if (name === "chartsheet") {
176
+ this.sheetDepth = 1;
177
+ this.model = {
178
+ sheetNo: 0,
179
+ name: "",
180
+ id: 0
181
+ };
182
+ return true;
183
+ }
184
+ this.sheetDepth += 1;
185
+ // Start a fresh capture for any DIRECT chartsheet child that we
186
+ // don't structurally model. `sheetDepth === 2` means we're one
187
+ // level below the `<chartsheet>` root.
188
+ if (this.sheetDepth === 2 && RAW_CAPTURE_TAGS.has(name)) {
189
+ if (isSelfClosing) {
190
+ // Empty placeholder (e.g. `<extLst/>`) — store its bytes
191
+ // verbatim and don't enter the multi-event capture loop.
192
+ // The matching `parseClose` must also decrement
193
+ // `sheetDepth`, so we flag to skip stateful close work.
194
+ ((_a = this.model).rawChildren ?? (_a.rawChildren = {}))[name] = selfCloseTag(node);
195
+ // No capture state to clear; `parseClose` handles the
196
+ // close via its fall-through and decrements `sheetDepth`.
197
+ return true;
198
+ }
199
+ this.captureRoot = name;
200
+ this.captureDepth = 1;
201
+ this.captureParts = [openTag(node)];
202
+ return true;
203
+ }
204
+ switch (name) {
205
+ case "sheetView":
206
+ this.inSheetView = true;
207
+ if (this.model) {
208
+ // Use the shared `xsd:boolean` parser — previously this
209
+ // switch only accepted `"1"` and silently mapped `"true"`
210
+ // (the other spec-legal form, emitted by many third-party
211
+ // writers) to `false`, so chartsheets authored elsewhere
212
+ // lost their `tabSelected` / `zoomToFit` state on round-trip.
213
+ const parsedTabSelected = parseXsdBoolean(attrs.tabSelected);
214
+ if (parsedTabSelected !== undefined) {
215
+ this.model.tabSelected = parsedTabSelected;
216
+ }
217
+ const parsedZoom = parseXsdInt(attrs.zoomScale);
218
+ if (parsedZoom !== undefined) {
219
+ this.model.zoomScale = parsedZoom;
220
+ }
221
+ // Round-trip `workbookViewId` — default 0 is only omitted
222
+ // when the attribute was absent on the wire; preserve an
223
+ // explicit 0 if the author wrote it, else leave undefined
224
+ // so `render` falls back to its `?? 0` default.
225
+ const parsedViewId = parseXsdInt(attrs.workbookViewId);
226
+ if (parsedViewId !== undefined) {
227
+ this.model.workbookViewId = parsedViewId;
228
+ }
229
+ const parsedZoomToFit = parseXsdBoolean(attrs.zoomToFit);
230
+ if (parsedZoomToFit !== undefined) {
231
+ this.model.zoomToFit = parsedZoomToFit;
232
+ }
233
+ }
234
+ break;
235
+ case "pageMargins":
236
+ if (this.model) {
237
+ this.model.pageMargins = {
238
+ l: parseMargin(attrs.left),
239
+ r: parseMargin(attrs.right),
240
+ t: parseMargin(attrs.top),
241
+ b: parseMargin(attrs.bottom),
242
+ left: parseMargin(attrs.left),
243
+ right: parseMargin(attrs.right),
244
+ top: parseMargin(attrs.top),
245
+ bottom: parseMargin(attrs.bottom),
246
+ header: parseMargin(attrs.header),
247
+ footer: parseMargin(attrs.footer)
248
+ };
249
+ }
250
+ break;
251
+ case "printOptions":
252
+ // Worksheet-only element per ECMA-376 `CT_Chartsheet`.
253
+ // Silently skip — the containing file is malformed but Excel
254
+ // itself ignores the element at load, so preserving it in
255
+ // `rawChildren` would re-emit invalid XML on save.
256
+ break;
257
+ case "rowBreaks":
258
+ case "colBreaks":
259
+ case "pageBreaks":
260
+ // Same as `printOptions`: worksheet-only. Drop on load.
261
+ break;
262
+ case "pageSetup":
263
+ if (this.model) {
264
+ // `CT_CsPageSetup` — the chartsheet variant. Only the
265
+ // attributes listed in ECMA-376 18.3.1.68 are captured;
266
+ // worksheet-only attributes (`scale`, `fitToWidth`,
267
+ // `fitToHeight`, `pageOrder`, `cellComments`, `errors`)
268
+ // are silently discarded so re-serialised XML matches
269
+ // `CT_CsPageSetup`.
270
+ this.model.pageSetup = {
271
+ paperSize: parseNumber(attrs.paperSize),
272
+ firstPageNumber: parseNumber(attrs.firstPageNumber),
273
+ orientation: attrs.orientation,
274
+ usePrinterDefaults: parseBool(attrs.usePrinterDefaults),
275
+ blackAndWhite: parseBool(attrs.blackAndWhite),
276
+ draft: parseBool(attrs.draft),
277
+ useFirstPageNumber: parseBool(attrs.useFirstPageNumber),
278
+ horizontalDpi: parseNumber(attrs.horizontalDpi),
279
+ verticalDpi: parseNumber(attrs.verticalDpi),
280
+ copies: parseNumber(attrs.copies),
281
+ paperHeight: attrs.paperHeight,
282
+ paperWidth: attrs.paperWidth,
283
+ // Capture the printer-settings rel id so the writer can
284
+ // emit `r:id="…"` back on round-trip. Without this the
285
+ // pre-existing `printerSettings` rel target in the
286
+ // chartsheet .rels file was preserved (via
287
+ // `relationships`) but the XML lost its reference to it —
288
+ // a dangling rel in the saved package.
289
+ rId: attrs["r:id"]
290
+ };
291
+ }
292
+ break;
293
+ case "drawing":
294
+ if (this.model && attrs["r:id"]) {
295
+ this.model.drawing = { rId: attrs["r:id"] };
296
+ }
297
+ break;
298
+ default:
299
+ break;
300
+ }
301
+ // Self-closing leaf at direct-child level: SAX fires a closetag
302
+ // next which would decrement `sheetDepth` — so we do nothing
303
+ // extra here. The increment above already covered the "open"
304
+ // half of the event; the close will balance it.
305
+ if (isSelfClosing) {
306
+ // Balance the increment we just did so `parseClose` sees the
307
+ // expected post-state (the SAX emitter will still fire a
308
+ // `closetag` but our `parseClose` is a no-op for these names).
309
+ // Equivalent: leave `sheetDepth` incremented and let the
310
+ // subsequent `closetag` decrement it. We choose the latter for
311
+ // consistency with non-self-closing paths.
312
+ }
313
+ return true;
314
+ }
315
+ parseText(text) {
316
+ // Pass text content through to the raw-capture buffer when we're
317
+ // recording an unmodeled element. Top-level chartsheet children
318
+ // have no meaningful text content (everything is element-based),
319
+ // so we ignore text outside capture mode.
320
+ if (this.captureRoot && text) {
321
+ this.captureParts.push(escapeXml(text));
322
+ }
323
+ }
324
+ parseClose(name) {
325
+ var _a;
326
+ // Close-tag inside an active capture — pop depth and decide
327
+ // whether the capture ends here.
328
+ if (this.captureRoot) {
329
+ if (this.skipNextCaptureClose) {
330
+ // This close is the synthetic half of a self-closing tag we
331
+ // already wrote as `<foo/>`. Swallow it without touching
332
+ // `captureDepth`.
333
+ this.skipNextCaptureClose = false;
334
+ return true;
335
+ }
336
+ this.captureDepth--;
337
+ this.captureParts.push(`</${name}>`);
338
+ if (this.captureDepth === 0) {
339
+ // Capture complete — store the serialised XML and reset state.
340
+ if (this.model) {
341
+ ((_a = this.model).rawChildren ?? (_a.rawChildren = {}))[this.captureRoot] = this.captureParts.join("");
342
+ }
343
+ this.captureRoot = undefined;
344
+ this.captureParts = [];
345
+ this.sheetDepth -= 1;
346
+ }
347
+ return true;
348
+ }
349
+ this.sheetDepth -= 1;
350
+ switch (name) {
351
+ case "chartsheet":
352
+ return false;
353
+ case "sheetView":
354
+ this.inSheetView = false;
355
+ return true;
356
+ default:
357
+ return true;
358
+ }
359
+ }
360
+ }
361
+ /**
362
+ * Chartsheet children we don't structurally model but preserve as raw
363
+ * XML bytes for round-trip. Adding a new structured path for one of
364
+ * these elements means (a) remove it from this set and (b) add the
365
+ * matching `parseOpen` case + `render` emission.
366
+ *
367
+ * Note: `rowBreaks`, `colBreaks`, `pageBreaks`, and `printOptions`
368
+ * are NOT in this set — they are worksheet-only elements per
369
+ * ECMA-376 `CT_Chartsheet`. A legacy file that has them is silently
370
+ * dropped on load to produce schema-valid output.
371
+ */
372
+ const RAW_CAPTURE_TAGS = new Set([
373
+ "sheetPr",
374
+ "sheetProtection",
375
+ "customSheetViews",
376
+ "headerFooter",
377
+ "legacyDrawing",
378
+ "legacyDrawingHF",
379
+ "drawingHF",
380
+ "picture",
381
+ "webPublishItems",
382
+ "extLst"
383
+ ]);
384
+ /**
385
+ * Build the opening `<tag attr="…" …>` string for a SAX event. Shared
386
+ * with the chart-space xform's `RawXmlCapture` but inlined here to
387
+ * keep the chartsheet module self-contained (chart-space depends on
388
+ * this module's exports, so we can't reach into it without a cycle).
389
+ */
390
+ function openTag(node) {
391
+ let s = `<${node.name}`;
392
+ if (node.attributes) {
393
+ for (const [k, v] of Object.entries(node.attributes)) {
394
+ s += ` ${k}="${xmlEncodeAttr(String(v))}"`;
395
+ }
396
+ }
397
+ return `${s}>`;
398
+ }
399
+ /**
400
+ * Build a self-closing `<tag attr="…"/>` string. Used when the SAX
401
+ * parser reports `isSelfClosing === true` so the captured bytes match
402
+ * the original form — emitting `<tag></tag>` instead breaks
403
+ * byte-for-byte round-trip and can confuse diff tools comparing the
404
+ * reserialised package against the original.
405
+ */
406
+ function selfCloseTag(node) {
407
+ let s = `<${node.name}`;
408
+ if (node.attributes) {
409
+ for (const [k, v] of Object.entries(node.attributes)) {
410
+ s += ` ${k}="${xmlEncodeAttr(String(v))}"`;
411
+ }
412
+ }
413
+ return `${s}/>`;
414
+ }
415
+ function definedAttrs(model) {
416
+ const attrs = {};
417
+ for (const [key, value] of Object.entries(model)) {
418
+ if (value !== undefined) {
419
+ attrs[key] = typeof value === "boolean" ? (value ? "1" : "0") : String(value);
420
+ }
421
+ }
422
+ return attrs;
423
+ }
424
+ function parseBool(value) {
425
+ return value === undefined ? undefined : value === "1" || value === "true";
426
+ }
427
+ function parseMargin(value) {
428
+ if (value === undefined) {
429
+ return undefined;
430
+ }
431
+ const n = parseFloat(value);
432
+ return Number.isFinite(n) ? n : undefined;
433
+ }
434
+ function parseNumber(value) {
435
+ if (value === undefined) {
436
+ return undefined;
437
+ }
438
+ const n = Number(value);
439
+ return Number.isFinite(n) ? n : undefined;
440
+ }
441
+ export { ChartsheetXform };
@@ -1,3 +1,4 @@
1
+ import { renderSparklineGroups, parseSparklineGroups } from "../../../sparkline/index.js";
1
2
  import { CompositeXform } from "../composite-xform.js";
2
3
  import { ConditionalFormattingsExtXform } from "./cf-ext/conditional-formattings-ext-xform.js";
3
4
  class ExtXform extends CompositeXform {
@@ -32,9 +33,52 @@ class ExtXform extends CompositeXform {
32
33
  this.model[name] = parser.model;
33
34
  }
34
35
  }
36
+ /**
37
+ * Lightweight xform for the sparkline extension block.
38
+ * Renders/captures `<ext uri="{05C60535-...}">` containing x14:sparklineGroups.
39
+ */
40
+ class SparklineExtXform {
41
+ constructor() {
42
+ this._parsedModel = null;
43
+ }
44
+ get tag() {
45
+ return "ext";
46
+ }
47
+ hasContent(sparklineGroups) {
48
+ return Array.isArray(sparklineGroups) && sparklineGroups.length > 0;
49
+ }
50
+ render(xmlStream, sparklineGroups) {
51
+ if (!this.hasContent(sparklineGroups)) {
52
+ return;
53
+ }
54
+ // The canonical Microsoft-registered extension uri for
55
+ // `x14:sparklineGroups` is
56
+ // {05C60535-1F16-4fd2-B633-F4F36F0B64E0}
57
+ // as emitted by Excel 2010 through Excel 365. Earlier
58
+ // revisions of this file used the WRONG uri
59
+ // `{05C60535-1F16-4fd2-B633-F4F36F0041E1}` (a typo that
60
+ // looked plausible but doesn't match any registered
61
+ // extension). Excel's MC processor — which is designed to
62
+ // silently skip unknown extension uris — dropped the whole
63
+ // `<ext>` element on load, erasing every sparkline the
64
+ // workbook defined. Verified against a Microsoft Excel 2021
65
+ // sparkline reference (`tmp/ccccc.xlsx`); switching to the
66
+ // correct uri restored sparkline rendering.
67
+ xmlStream.openNode("ext", {
68
+ uri: "{05C60535-1F16-4fd2-B633-F4F36F0B64E0}",
69
+ "xmlns:x14": "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
70
+ });
71
+ xmlStream.writeRaw(renderSparklineGroups(sparklineGroups));
72
+ xmlStream.closeNode();
73
+ }
74
+ parse(xml) {
75
+ return parseSparklineGroups(xml);
76
+ }
77
+ }
35
78
  class ExtLstXform extends CompositeXform {
36
79
  constructor() {
37
80
  super();
81
+ this.sparklineExt = new SparklineExtXform();
38
82
  this.map = {
39
83
  ext: (this.ext = new ExtXform())
40
84
  };
@@ -46,14 +90,19 @@ class ExtLstXform extends CompositeXform {
46
90
  this.ext.prepare(model);
47
91
  }
48
92
  hasContent(model) {
49
- return this.ext.hasContent(model);
93
+ return this.ext.hasContent(model) || this.sparklineExt.hasContent(model?.sparklineGroups);
50
94
  }
51
95
  render(xmlStream, model) {
52
96
  if (!this.hasContent(model)) {
53
97
  return;
54
98
  }
55
99
  xmlStream.openNode("extLst");
56
- this.ext.render(xmlStream, model);
100
+ if (this.ext.hasContent(model)) {
101
+ this.ext.render(xmlStream, model);
102
+ }
103
+ if (this.sparklineExt.hasContent(model?.sparklineGroups)) {
104
+ this.sparklineExt.render(xmlStream, model.sparklineGroups);
105
+ }
57
106
  xmlStream.closeNode();
58
107
  }
59
108
  createNewModel() {