@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
@@ -1,16 +1,30 @@
1
1
  import { BaseCellAnchorXform } from "./base-cell-anchor-xform.js";
2
2
  import { CellPositionXform } from "./cell-position-xform.js";
3
+ import { GraphicFrameXform } from "./graphic-frame-xform.js";
3
4
  import { PicXform } from "./pic-xform.js";
4
5
  import { SpXform } from "./sp-xform.js";
5
6
  import { StaticXform } from "../static-xform.js";
6
7
  class TwoCellAnchorXform extends BaseCellAnchorXform {
7
8
  constructor() {
8
9
  super();
10
+ // Parse state for the inner `<mc:AlternateContent>` block that
11
+ // chartEx drawings place in the shape slot of a `<xdr:twoCellAnchor>`.
12
+ // See `render()` for the canonical layout. When `_inFallback`
13
+ // flips on we swallow every open/close/text until the matching
14
+ // `</mc:Fallback>` — the Fallback contents are a legacy-Excel
15
+ // placeholder shape that structured consumers don't need to
16
+ // surface; `alternateContent.requires` on the model is enough
17
+ // to re-emit it verbatim on save.
18
+ this._acDepth = 0;
19
+ this._inFallback = false;
20
+ this._fallbackDepth = 0;
21
+ this._choiceRequires = undefined;
9
22
  this.map = {
10
23
  "xdr:from": new CellPositionXform({ tag: "xdr:from" }),
11
24
  "xdr:to": new CellPositionXform({ tag: "xdr:to" }),
12
25
  "xdr:pic": new PicXform(),
13
26
  "xdr:sp": new SpXform(),
27
+ "xdr:graphicFrame": new GraphicFrameXform(),
14
28
  "xdr:clientData": new StaticXform({ tag: "xdr:clientData" })
15
29
  };
16
30
  }
@@ -21,40 +35,304 @@ class TwoCellAnchorXform extends BaseCellAnchorXform {
21
35
  if (model.picture) {
22
36
  this.map["xdr:pic"].prepare(model.picture, options);
23
37
  }
38
+ else if (model.graphicFrame) {
39
+ this.map["xdr:graphicFrame"].prepare(model.graphicFrame, options);
40
+ }
24
41
  }
25
42
  render(xmlStream, model) {
26
- const wrapAlternateContent = !!model.alternateContent;
27
- if (wrapAlternateContent) {
43
+ // ChartEx anchors (sunburst, treemap, funnel, waterfall, boxplot,
44
+ // histogram, region map, …) MUST be wrapped in
45
+ // `<mc:AlternateContent>`. ChartEx is a Microsoft extension that
46
+ // was never in the base OOXML spec; Excel's strict loader
47
+ // rejects a bare `<xdr:graphicFrame><cx:chart/>` anchor with
48
+ // "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)".
49
+ //
50
+ // CRITICAL: Excel emits `<mc:AlternateContent>` as the SHAPE slot
51
+ // INSIDE the `<xdr:twoCellAnchor>`, between `<xdr:to>` and
52
+ // `<xdr:clientData>` — NOT around the whole anchor. The Choice
53
+ // carries the `<xdr:graphicFrame>` and the Fallback carries the
54
+ // `<xdr:sp>`; they share the single `<xdr:from>`/`<xdr:to>` of
55
+ // the outer anchor. This is how Microsoft Excel itself writes
56
+ // chartEx drawings — see `tmp/ttttt.xlsx` (Excel 2021-authored)
57
+ // for the canonical byte layout. Earlier revisions of this file
58
+ // wrapped the ENTIRE anchor in `<mc:AlternateContent>` and
59
+ // duplicated `<xdr:from>`/`<xdr:to>` in both Choice and
60
+ // Fallback. Excel's strict loader rejected that nesting even
61
+ // though MC substitution rules permit it in theory — the
62
+ // "Removed Part: drawing1.xml" repair dialog users saw on open
63
+ // was caused by this exact mis-nesting.
64
+ //
65
+ // Canonical structure:
66
+ //
67
+ // <xdr:twoCellAnchor>
68
+ // <xdr:from>…</xdr:from>
69
+ // <xdr:to>…</xdr:to>
70
+ // <mc:AlternateContent>
71
+ // <mc:Choice Requires="cx1" xmlns:cx1="…/2015/9/8/chartex">
72
+ // <xdr:graphicFrame>…<cx:chart/>…</xdr:graphicFrame>
73
+ // </mc:Choice>
74
+ // <mc:Fallback>
75
+ // <xdr:sp>…placeholder…</xdr:sp>
76
+ // </mc:Fallback>
77
+ // </mc:AlternateContent>
78
+ // <xdr:clientData/>
79
+ // </xdr:twoCellAnchor>
80
+ //
81
+ // The Fallback MUST NOT be empty — an empty fallback is spec-legal
82
+ // but Excel's validator treats an empty-choice+empty-fallback
83
+ // pair as "collapses to nothing" and drops the drawing. The
84
+ // placeholder shape we emit mirrors the "This chart isn't
85
+ // available in your version of Excel" message Office uses.
86
+ //
87
+ // The `a14`-requires branch (form-control shapes) uses the LEGACY
88
+ // wrap-the-whole-anchor form with an empty Fallback. That form
89
+ // was fine for 2010-era form controls and round-tripping code
90
+ // still depends on it; it is NOT the chartEx shape.
91
+ const requires = model.alternateContent?.requires;
92
+ const isChartEx = requires === "cx1" || requires === "cx";
93
+ const wrapAnchorInAc = !!requires && !isChartEx;
94
+ if (wrapAnchorInAc) {
95
+ // Legacy wrap-the-whole-anchor path (form controls, etc.)
28
96
  xmlStream.openNode("mc:AlternateContent", {
29
97
  "xmlns:mc": "http://schemas.openxmlformats.org/markup-compatibility/2006"
30
98
  });
31
99
  xmlStream.openNode("mc:Choice", {
32
- Requires: model.alternateContent?.requires,
33
- ...(model.alternateContent?.requires === "a14"
34
- ? {
35
- "xmlns:a14": "http://schemas.microsoft.com/office/drawing/2010/main"
36
- }
100
+ Requires: requires,
101
+ ...(requires === "a14"
102
+ ? { "xmlns:a14": "http://schemas.microsoft.com/office/drawing/2010/main" }
37
103
  : {})
38
104
  });
39
105
  }
40
- xmlStream.openNode(this.tag, { editAs: model.range.editAs ?? "oneCell" });
106
+ const editAs = model.range.editAs ?? (model.graphicFrame ? undefined : "oneCell");
107
+ // `editAs="twoCell"` is the default per the CT_TwoCellAnchor
108
+ // schema — Microsoft Excel omits the attribute in this case.
109
+ // Emitting it anyway is spec-valid but byte-diverges from
110
+ // Excel's own output for chartEx drawings, so suppress it when
111
+ // the effective value is the default.
112
+ const emitEditAs = editAs && editAs !== "twoCell" ? { editAs } : {};
113
+ xmlStream.openNode(this.tag, emitEditAs);
41
114
  this.map["xdr:from"].render(xmlStream, model.range.tl);
42
115
  this.map["xdr:to"].render(xmlStream, model.range.br);
43
- if (model.picture) {
116
+ if (isChartEx) {
117
+ // ChartEx: wrap the graphicFrame/shape INSIDE the anchor in
118
+ // mc:AlternateContent, matching Excel's emitted layout.
119
+ this.renderChartExAlternateContent(xmlStream, model);
120
+ }
121
+ else if (model.picture) {
44
122
  this.map["xdr:pic"].render(xmlStream, model.picture);
45
123
  }
124
+ else if (model.graphicFrame) {
125
+ this.map["xdr:graphicFrame"].render(xmlStream, model.graphicFrame);
126
+ }
46
127
  else if (model.shape) {
47
128
  this.map["xdr:sp"].render(xmlStream, model.shape);
48
129
  }
49
130
  this.map["xdr:clientData"].render(xmlStream, {});
50
- xmlStream.closeNode();
51
- if (wrapAlternateContent) {
131
+ xmlStream.closeNode(); // xdr:twoCellAnchor
132
+ if (wrapAnchorInAc) {
52
133
  xmlStream.closeNode(); // mc:Choice
53
134
  xmlStream.leafNode("mc:Fallback");
54
135
  xmlStream.closeNode(); // mc:AlternateContent
55
136
  }
56
137
  }
138
+ /**
139
+ * Emit the ChartEx `<mc:AlternateContent>` block that occupies the
140
+ * shape slot inside a `<xdr:twoCellAnchor>` — between `<xdr:to>`
141
+ * and `<xdr:clientData>`.
142
+ *
143
+ * Structure mirrors Microsoft Excel's own output:
144
+ *
145
+ * <mc:AlternateContent>
146
+ * <mc:Choice Requires="cx1" xmlns:cx1="…/2015/9/8/chartex">
147
+ * <xdr:graphicFrame>…<cx:chart/>…</xdr:graphicFrame>
148
+ * </mc:Choice>
149
+ * <mc:Fallback>
150
+ * <xdr:sp>…placeholder shape…</xdr:sp>
151
+ * </mc:Fallback>
152
+ * </mc:AlternateContent>
153
+ *
154
+ * Both the Choice graphicFrame and the Fallback shape inherit
155
+ * sizing from the outer `<xdr:from>`/`<xdr:to>` cell range — they
156
+ * do NOT each re-declare the anchor; there is only one anchor.
157
+ */
158
+ renderChartExAlternateContent(xmlStream, model) {
159
+ xmlStream.openNode("mc:AlternateContent", {
160
+ "xmlns:mc": "http://schemas.openxmlformats.org/markup-compatibility/2006"
161
+ });
162
+ xmlStream.openNode("mc:Choice", {
163
+ "xmlns:cx1": "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex",
164
+ Requires: "cx1"
165
+ });
166
+ if (model.graphicFrame) {
167
+ this.map["xdr:graphicFrame"].render(xmlStream, model.graphicFrame);
168
+ }
169
+ xmlStream.closeNode(); // mc:Choice
170
+ xmlStream.openNode("mc:Fallback");
171
+ this.renderChartExFallbackShape(xmlStream, model);
172
+ xmlStream.closeNode(); // mc:Fallback
173
+ xmlStream.closeNode(); // mc:AlternateContent
174
+ }
175
+ /**
176
+ * Emit the placeholder `<xdr:sp>` that lives inside the
177
+ * `<mc:Fallback>` of a ChartEx anchor. Legacy Excel (2010/2013)
178
+ * and non-Microsoft loaders that don't understand the `cx1`
179
+ * namespace render this in place of the `cx:chart`.
180
+ *
181
+ * Matches Microsoft Excel's convention: cNvPr id=0 / empty name
182
+ * (a deliberate placeholder, not a real drawing object), a white
183
+ * rectangle sized to the anchor's cell range, and the localizable
184
+ * "This chart isn't available" message. The shape's own xfrm
185
+ * carries concrete EMU values rather than zeros because the
186
+ * Fallback expansion is meant to be rendered standalone — a
187
+ * zero-size shape would collapse and Excel 2016+ flags that as
188
+ * "drawing shape" validation failure even though the outer
189
+ * twoCellAnchor provides sizing.
190
+ */
191
+ renderChartExFallbackShape(xmlStream, model) {
192
+ xmlStream.openNode("xdr:sp", { macro: "", textlink: "" });
193
+ xmlStream.openNode("xdr:nvSpPr");
194
+ // `id=0`, empty name — Microsoft's convention for Fallback
195
+ // placeholders. Using a real numeric id here would conflict with
196
+ // the real graphicFrame id in Choice on loaders that scan both
197
+ // branches during validation.
198
+ xmlStream.leafNode("xdr:cNvPr", { id: 0, name: "" });
199
+ xmlStream.openNode("xdr:cNvSpPr");
200
+ xmlStream.leafNode("a:spLocks", { noTextEdit: 1 });
201
+ xmlStream.closeNode(); // xdr:cNvSpPr
202
+ xmlStream.closeNode(); // xdr:nvSpPr
203
+ xmlStream.openNode("xdr:spPr");
204
+ xmlStream.openNode("a:xfrm");
205
+ // Non-zero placeholder geometry. Excel expects the fallback
206
+ // shape to have a concrete size even though the outer
207
+ // twoCellAnchor already pins its bounds to from/to. Using
208
+ // 6"×4" (5486400 × 3657600 EMU) here — the dimensions Excel
209
+ // uses in its own fallback shapes. The position (3917950,
210
+ // 698500) roughly tracks Excel's offset for the same fallback
211
+ // shape (the exact values don't matter for validation; they
212
+ // only affect legacy-client rendering).
213
+ xmlStream.leafNode("a:off", { x: 3917950, y: 698500 });
214
+ xmlStream.leafNode("a:ext", { cx: 5486400, cy: 3657600 });
215
+ xmlStream.closeNode(); // a:xfrm
216
+ xmlStream.openNode("a:prstGeom", { prst: "rect" });
217
+ xmlStream.leafNode("a:avLst");
218
+ xmlStream.closeNode(); // a:prstGeom
219
+ xmlStream.openNode("a:solidFill");
220
+ xmlStream.leafNode("a:prstClr", { val: "white" });
221
+ xmlStream.closeNode(); // a:solidFill
222
+ xmlStream.openNode("a:ln", { w: 1 });
223
+ xmlStream.openNode("a:solidFill");
224
+ xmlStream.leafNode("a:prstClr", { val: "black" });
225
+ xmlStream.closeNode(); // a:solidFill
226
+ xmlStream.closeNode(); // a:ln
227
+ xmlStream.closeNode(); // xdr:spPr
228
+ xmlStream.openNode("xdr:txBody");
229
+ xmlStream.leafNode("a:bodyPr", { vertOverflow: "clip", horzOverflow: "clip" });
230
+ xmlStream.leafNode("a:lstStyle");
231
+ xmlStream.openNode("a:p");
232
+ xmlStream.openNode("a:r");
233
+ xmlStream.leafNode("a:rPr", { lang: "en-US", sz: 1100 });
234
+ xmlStream.openNode("a:t");
235
+ xmlStream.writeText("This chart isn't available in your version of Excel.\n\n" +
236
+ "Editing this shape or saving this workbook into a different file format will permanently break the chart.");
237
+ xmlStream.closeNode(); // a:t
238
+ xmlStream.closeNode(); // a:r
239
+ xmlStream.closeNode(); // a:p
240
+ xmlStream.closeNode(); // xdr:txBody
241
+ xmlStream.closeNode(); // xdr:sp
242
+ }
243
+ parseOpen(node) {
244
+ // Swallow everything inside `<mc:Fallback>` — it is a legacy
245
+ // placeholder shape the writer regenerates verbatim.
246
+ if (this._inFallback) {
247
+ this._fallbackDepth++;
248
+ return true;
249
+ }
250
+ // Intercept the MC substitution elements. The children of
251
+ // `<mc:Choice>` (a `<xdr:graphicFrame>`, typically) should be
252
+ // parsed by the existing xforms as if the wrapper weren't there.
253
+ switch (node.name) {
254
+ case "mc:AlternateContent":
255
+ this._acDepth++;
256
+ return true;
257
+ case "mc:Choice":
258
+ if (this._acDepth > 0) {
259
+ this._choiceRequires = node.attributes?.Requires;
260
+ }
261
+ return true;
262
+ case "mc:Fallback":
263
+ if (this._acDepth > 0) {
264
+ this._inFallback = true;
265
+ this._fallbackDepth = 1;
266
+ }
267
+ return true;
268
+ default:
269
+ break;
270
+ }
271
+ if (this.parser) {
272
+ this.parser.parseOpen(node);
273
+ return true;
274
+ }
275
+ switch (node.name) {
276
+ case this.tag:
277
+ this.reset();
278
+ this.model = {
279
+ range: {
280
+ editAs: node.attributes.editAs
281
+ }
282
+ };
283
+ this._acDepth = 0;
284
+ this._inFallback = false;
285
+ this._fallbackDepth = 0;
286
+ this._choiceRequires = undefined;
287
+ break;
288
+ default:
289
+ this.parser = this.map[node.name];
290
+ if (this.parser) {
291
+ this.parser.parseOpen(node);
292
+ }
293
+ break;
294
+ }
295
+ return true;
296
+ }
297
+ parseText(text) {
298
+ if (this._inFallback) {
299
+ return;
300
+ }
301
+ if (this.parser) {
302
+ this.parser.parseText(text);
303
+ }
304
+ }
57
305
  parseClose(name) {
306
+ // Close matching against the inner `<mc:Fallback>` skip window
307
+ // first. `_fallbackDepth` tracks nested opens inside the
308
+ // fallback shape (xdr:sp → xdr:spPr → …); only when it drops
309
+ // back to zero do we exit skip mode.
310
+ if (this._inFallback) {
311
+ this._fallbackDepth--;
312
+ if (this._fallbackDepth === 0) {
313
+ this._inFallback = false;
314
+ }
315
+ return true;
316
+ }
317
+ switch (name) {
318
+ case "mc:AlternateContent":
319
+ this._acDepth--;
320
+ if (this._acDepth <= 0) {
321
+ this._acDepth = 0;
322
+ // Tag the anchor model with the Requires value so the
323
+ // writer re-emits the MC wrapper on save.
324
+ if (this._choiceRequires) {
325
+ this.model.alternateContent = { requires: this._choiceRequires };
326
+ }
327
+ this._choiceRequires = undefined;
328
+ }
329
+ return true;
330
+ case "mc:Choice":
331
+ case "mc:Fallback":
332
+ return true;
333
+ default:
334
+ break;
335
+ }
58
336
  if (this.parser) {
59
337
  if (!this.parser.parseClose(name)) {
60
338
  this.parser = undefined;
@@ -66,6 +344,7 @@ class TwoCellAnchorXform extends BaseCellAnchorXform {
66
344
  this.model.range.tl = this.map["xdr:from"].model;
67
345
  this.model.range.br = this.map["xdr:to"].model;
68
346
  this.model.picture = this.map["xdr:pic"].model;
347
+ this.model.graphicFrame = this.map["xdr:graphicFrame"].model;
69
348
  return false;
70
349
  default:
71
350
  // could be some unrecognised tags
@@ -73,7 +352,10 @@ class TwoCellAnchorXform extends BaseCellAnchorXform {
73
352
  }
74
353
  }
75
354
  reconcile(model, options) {
76
- model.medium = this.reconcilePicture(model.picture, options);
355
+ if (model.picture) {
356
+ model.medium = this.reconcilePicture(model.picture, options);
357
+ }
358
+ // graphicFrame reconciliation handled at DrawingXform level
77
359
  }
78
360
  }
79
361
  export { TwoCellAnchorXform };
@@ -1,4 +1,4 @@
1
- import type { CacheField, DataField, PivotTableSubtotal } from "../../../pivot-table.js";
1
+ import type { CacheField, DataField, PivotTableChartFormat, PivotTableSubtotal } from "../../../pivot-table.js";
2
2
  import { BaseXform } from "../base-xform.js";
3
3
  import type { XmlSink } from "../../../../xml/types.js";
4
4
  /**
@@ -16,6 +16,17 @@ interface PivotTableRenderModel {
16
16
  cacheId: string | number;
17
17
  tableNumber: number;
18
18
  applyWidthHeightFormats: "0" | "1";
19
+ /**
20
+ * Optional top-left anchor (e.g. `"A3"`) for the pivot's displayed block.
21
+ * When set, the rendered `<location>` ref is computed from this anchor
22
+ * instead of the default `A{3 + pageOffset}`. The anchor represents the
23
+ * pivot's display origin — page filters (if any) occupy rows downward from
24
+ * the anchor, followed by a blank separator row and then the pivot body.
25
+ */
26
+ ref?: string;
27
+ name?: string;
28
+ chartFormat?: number;
29
+ chartFormats?: PivotTableChartFormat[];
19
30
  }
20
31
  /**
21
32
  * A single <item> element inside a pivotField's <items> collection.
@@ -151,7 +162,7 @@ interface RowColItem {
151
162
  /**
152
163
  * Chart format item for pivot charts
153
164
  */
154
- interface ChartFormatItem {
165
+ interface ChartFormatItem extends PivotTableChartFormat {
155
166
  chart: number;
156
167
  format: number;
157
168
  series?: boolean;
@@ -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,185 @@
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 type { XmlSink } from "../../../../xml/types.js";
30
+ export interface ChartsheetModel {
31
+ /** Sheet number (positional index in the XLSX archive) */
32
+ sheetNo: number;
33
+ /** Sheet name (from workbook.xml) */
34
+ name: string;
35
+ /** Sheet ID (from workbook.xml) */
36
+ id: number;
37
+ /**
38
+ * Tab order index — the 0-based position in the workbook's
39
+ * `<sheets>` list, shared between worksheets and chartsheets so a
40
+ * combined sort preserves the author's interleaved layout. Assigned
41
+ * at add time (monotonic across both add paths) and at load time
42
+ * (from the workbook.xml `<sheet>` ordinal).
43
+ */
44
+ orderNo?: number;
45
+ /** Relationship ID linking to this chartsheet from workbook.xml.rels */
46
+ rId?: string;
47
+ /** Sheet visibility state */
48
+ state?: "visible" | "hidden" | "veryHidden";
49
+ /** Tab selected */
50
+ tabSelected?: boolean;
51
+ /** Zoom scale */
52
+ zoomScale?: number;
53
+ /**
54
+ * `CT_ChartsheetViewBase/@workbookViewId` — 0-based index into the
55
+ * workbook's `<bookViews>` list that this chartsheet view is bound
56
+ * to. Defaults to 0 per OOXML schema; round-tripped verbatim so
57
+ * multi-view workbooks don't get their view hierarchy rewritten.
58
+ */
59
+ workbookViewId?: number;
60
+ /**
61
+ * `CT_ChartsheetViewBase/@zoomToFit` — when true the chartsheet
62
+ * scales its content to fill the window. Schema default is false;
63
+ * captured/written only when explicitly set to preserve round-trip.
64
+ */
65
+ zoomToFit?: boolean;
66
+ /** Page margins */
67
+ pageMargins?: {
68
+ l?: number;
69
+ r?: number;
70
+ t?: number;
71
+ b?: number;
72
+ left?: number;
73
+ right?: number;
74
+ top?: number;
75
+ bottom?: number;
76
+ header?: number;
77
+ footer?: number;
78
+ };
79
+ /**
80
+ * Chartsheet page setup — `CT_CsPageSetup`.
81
+ *
82
+ * Note the attribute set differs from the worksheet `CT_PageSetup`:
83
+ * - **Supported**: paperSize, firstPageNumber, orientation,
84
+ * usePrinterDefaults, blackAndWhite, draft, useFirstPageNumber,
85
+ * horizontalDpi, verticalDpi, copies, paperHeight, paperWidth
86
+ * - **Not supported on chartsheets** (worksheet-only, will be
87
+ * silently ignored on write): scale, fitToWidth, fitToHeight,
88
+ * pageOrder, cellComments, errors
89
+ */
90
+ pageSetup?: {
91
+ paperSize?: number;
92
+ firstPageNumber?: number;
93
+ orientation?: "default" | "portrait" | "landscape";
94
+ usePrinterDefaults?: boolean;
95
+ blackAndWhite?: boolean;
96
+ draft?: boolean;
97
+ useFirstPageNumber?: boolean;
98
+ horizontalDpi?: number;
99
+ verticalDpi?: number;
100
+ copies?: number;
101
+ /** Paper height in a unit-of-measure string (e.g. "11in", "297mm"). */
102
+ paperHeight?: string;
103
+ /** Paper width in a unit-of-measure string (e.g. "8.5in", "210mm"). */
104
+ paperWidth?: string;
105
+ /**
106
+ * Relationship id referencing a `printerSettings` part. Preserved
107
+ * verbatim through round-trip so an already-authored
108
+ * `xl/printerSettings/…` rel target keeps its XML reference from
109
+ * the chartsheet. Previously this attribute was dropped by the
110
+ * parser and never emitted by the writer, leaving the printer-
111
+ * settings part accessible via the chartsheet's `.rels` but
112
+ * unreferenced from the chartsheet XML — a dangling-rel-reverse
113
+ * that strict validators flag.
114
+ */
115
+ rId?: string;
116
+ };
117
+ /** Drawing relationship reference */
118
+ drawing?: {
119
+ rId: string;
120
+ };
121
+ /** Relationships parsed from the chartsheet .rels file */
122
+ relationships?: any[];
123
+ /** Drawing part name without extension (e.g. drawing2) */
124
+ drawingName?: string;
125
+ /** Classic chart number displayed by this chartsheet */
126
+ chartNumber?: number;
127
+ /** ChartEx number displayed by this chartsheet */
128
+ chartExNumber?: number;
129
+ /**
130
+ * Raw XML captured for elements the structured parser doesn't model
131
+ * (`sheetPr`, `sheetProtection`, `customSheetViews`, `headerFooter`,
132
+ * `legacyDrawing`, `legacyDrawingHF`, `drawingHF`, `picture`,
133
+ * `webPublishItems`, `extLst`). The writer emits these verbatim at
134
+ * the correct schema position so a round-trip through a workbook
135
+ * that uses chartsheet-specific features (e.g. password-protected
136
+ * chartsheets, printer-defined header/footer blocks) doesn't lose
137
+ * them.
138
+ *
139
+ * Keys are the element local name (e.g. `"sheetPr"`); values are the
140
+ * full `<tag …>…</tag>` serialised bytes.
141
+ *
142
+ * Note: `rowBreaks`, `colBreaks`, and `pageBreaks` are NOT captured —
143
+ * per ECMA-376 `CT_Chartsheet` they are worksheet-only elements.
144
+ * Similarly `printOptions` is worksheet-only. Legacy on-disk
145
+ * chartsheets that erroneously contained them are silently
146
+ * discarded on load to produce schema-valid output on save.
147
+ */
148
+ rawChildren?: Record<string, string>;
149
+ }
150
+ declare class ChartsheetXform extends BaseXform<ChartsheetModel> {
151
+ private inSheetView;
152
+ /**
153
+ * Raw-capture state for elements the structured parser doesn't model.
154
+ * When `parseOpen` sees one of the names in {@link RAW_CAPTURE_TAGS}
155
+ * at depth-1 of `<chartsheet>`, it starts recording the full
156
+ * serialised XML (open tags, text, nested children, close tags) into
157
+ * `captureParts`. The recording ends when `parseClose` fires with
158
+ * the matching root name; the assembled string is stored under
159
+ * `model.rawChildren[rootName]` for verbatim re-emission by
160
+ * {@link render}.
161
+ *
162
+ * Without this, elements like `<sheetProtection>` (password-protected
163
+ * chartsheets) and `<headerFooter>` silently disappeared on
164
+ * round-trip, breaking the author's layout / security configuration.
165
+ *
166
+ * `sheetDepth` tracks nesting depth inside `<chartsheet>`: the root
167
+ * itself sits at depth 1, its direct children at depth 2. Capture
168
+ * only ever starts at depth 2 so a nested element whose local name
169
+ * happens to overlap with one in {@link RAW_CAPTURE_TAGS} (e.g. an
170
+ * `<extLst>` inside `<customSheetViews>` as a leaf of that subtree)
171
+ * stays part of the outer capture rather than being promoted to a
172
+ * sibling root child.
173
+ */
174
+ private captureRoot;
175
+ private captureDepth;
176
+ private captureParts;
177
+ private skipNextCaptureClose;
178
+ private sheetDepth;
179
+ get tag(): string;
180
+ render(xmlStream: XmlSink, model?: ChartsheetModel): void;
181
+ parseOpen(node: any): boolean;
182
+ parseText(text: string): void;
183
+ parseClose(name: string): boolean;
184
+ }
185
+ export { ChartsheetXform };