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