@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
@@ -4,12 +4,60 @@
4
4
  * Extends browser Workbook with Node.js file system support for CSV and Markdown operations.
5
5
  */
6
6
  import { ExcelFileError } from "./errors.js";
7
+ import { WorkbookReader } from "./stream/workbook-reader.js";
8
+ import { WorkbookWriter } from "./stream/workbook-writer.js";
7
9
  import { Workbook as WorkbookBrowser } from "./workbook.browser.js";
10
+ import { XLSX } from "./xlsx/xlsx.js";
8
11
  import { fileExists, createReadStream, createWriteStream, readFileText, writeFileText } from "../../utils/fs.js";
9
12
  // =============================================================================
10
13
  // Node.js Workbook Class
11
14
  // =============================================================================
12
15
  class Workbook extends WorkbookBrowser {
16
+ /**
17
+ * xlsx file format operations — Node.js variant. Exposes the
18
+ * `readFile` / `writeFile` / streaming `read` / `write` methods that
19
+ * the browser XLSX omits. Overriding here (rather than typing the
20
+ * base getter as Node XLSX directly) keeps the browser
21
+ * `Workbook.xlsx` type clean — browser consumers see only the
22
+ * operations the bundle actually supports and get a TS error if
23
+ * they accidentally reach for file-path APIs.
24
+ */
25
+ get xlsx() {
26
+ if (!this._xlsxNode) {
27
+ this._xlsxNode = new XLSX(this);
28
+ }
29
+ return this._xlsxNode;
30
+ }
31
+ /**
32
+ * Create a streaming workbook writer — Node.js variant. Accepts the
33
+ * Node-only `{ filename }` option for direct file-path output in
34
+ * addition to the cross-platform `{ stream }` option. Overriding
35
+ * here (rather than typing the base factory as the Node writer)
36
+ * keeps the browser bundle free of Node-only stream code.
37
+ *
38
+ * The return type is declared as the browser `WorkbookWriter` to
39
+ * preserve static-side Liskov compatibility with the base class;
40
+ * downcast at the call site if the Node subclass API is needed, or
41
+ * use `new WorkbookWriter()` directly.
42
+ */
43
+ static createStreamWriter(options) {
44
+ return new WorkbookWriter(options);
45
+ }
46
+ /**
47
+ * Create a streaming workbook reader — Node.js variant. Accepts a
48
+ * Node-only file-path `string` in addition to the cross-platform
49
+ * `CommonInput` types (buffer / readable). Overriding here keeps the
50
+ * browser bundle free of Node-only `fs` imports.
51
+ *
52
+ * The return type is declared as the browser `WorkbookReader` to
53
+ * preserve static-side Liskov compatibility with the base class.
54
+ * The runtime instance is the Node `WorkbookReader` subclass and
55
+ * handles file-path inputs transparently; downcast if the subclass
56
+ * API is needed, or use `new WorkbookReader()` directly.
57
+ */
58
+ static createStreamReader(input, options) {
59
+ return new WorkbookReader(input, options);
60
+ }
13
61
  /**
14
62
  * Read CSV from file (Node.js only)
15
63
  *
@@ -1,12 +1,20 @@
1
+ // Chart runtime is accessed via the chart-host-registry slot rather
2
+ // than imported directly. See `chart-host-registry.ts` and
3
+ // `chart/install.ts` for the registration protocol. Types are pulled
4
+ // in via `import type` so bundlers emit zero runtime chart code unless
5
+ // the consumer imports `@cj-tech-master/excelts/chart`.
6
+ import { getChartSupport, tryGetChartSupport } from "./chart-host-registry.js";
1
7
  import { Column } from "./column.js";
2
8
  import { DataValidations } from "./data-validations.js";
3
9
  import { Enums } from "./enums.js";
4
- import { WorksheetNameError, MergeConflictError, TableError } from "./errors.js";
10
+ import { MergeConflictError, TableError } from "./errors.js";
5
11
  import { FormCheckbox } from "./form-control.js";
6
12
  import { Image } from "./image.js";
13
+ import { withPivotChartSource } from "./pivot-chart.js";
7
14
  import { makePivotTable } from "./pivot-table.js";
8
15
  import { Range } from "./range.js";
9
16
  import { Row } from "./row.js";
17
+ import { buildSparklineGroup } from "./sparkline/index.js";
10
18
  import { Table } from "./table.js";
11
19
  import { decodeCell, decodeRange, encodeCol } from "./utils/address.js";
12
20
  import { getCellDisplayText } from "./utils/cell-format.js";
@@ -96,6 +104,9 @@ class Worksheet {
96
104
  this.autoFilter = options.autoFilter ?? null;
97
105
  // for images, etc
98
106
  this._media = [];
107
+ // for charts
108
+ this._charts = [];
109
+ this._sparklineGroups = [];
99
110
  // worksheet protection
100
111
  this.sheetProtection = null;
101
112
  // for tables
@@ -106,6 +117,8 @@ class Worksheet {
106
117
  this.formControls = [];
107
118
  // ignored errors (suppress green triangles in Excel)
108
119
  this.ignoredErrors = [];
120
+ // Office 365 threaded comments (separate from classic VML notes).
121
+ this.threadedComments = [];
109
122
  // watermark configuration
110
123
  this._watermark = null;
111
124
  }
@@ -119,34 +132,15 @@ class Worksheet {
119
132
  if (this._name === name) {
120
133
  return;
121
134
  }
122
- if (typeof name !== "string") {
123
- throw new WorksheetNameError("The name has to be a string.");
124
- }
125
- if (name === "") {
126
- throw new WorksheetNameError("The name can't be empty.");
127
- }
128
- if (name === "History") {
129
- throw new WorksheetNameError('The name "History" is protected. Please use a different name.');
130
- }
131
- // Illegal character in worksheet name: asterisk (*), question mark (?),
132
- // colon (:), forward slash (/ \), or bracket ([])
133
- if (/[*?:/\\[\]]/.test(name)) {
134
- throw new WorksheetNameError(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
135
- }
136
- if (/(^')|('$)/.test(name)) {
137
- throw new WorksheetNameError(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
138
- }
139
- if (name.length > 31) {
140
- if (process.env.NODE_ENV !== "production") {
141
- console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
142
- }
143
- name = name.substring(0, 31);
144
- }
145
- const nameLower = name.toLowerCase();
146
- if (this._workbook.worksheets.find(ws => ws && ws !== this && ws.name.toLowerCase() === nameLower)) {
147
- throw new WorksheetNameError(`Worksheet name already exists: ${name}`);
148
- }
149
- this._name = name;
135
+ // Delegate to the workbook-level validator so both worksheets and
136
+ // chartsheets share a single naming namespace. Previously this
137
+ // setter only cross-checked against other worksheets, allowing a
138
+ // chartsheet named "S" to coexist with a worksheet named "S";
139
+ // Excel itself forbids that collision. `validateSheetName`
140
+ // performs the full type / empty / illegal-char / quote / length
141
+ // / case-insensitive duplicate checks and returns the sanitised
142
+ // name (truncated to 31 chars if needed).
143
+ this._name = this._workbook.validateSheetName(name, this);
150
144
  }
151
145
  /**
152
146
  * The workbook that contains this worksheet
@@ -316,6 +310,8 @@ class Worksheet {
316
310
  }
317
311
  }
318
312
  }
313
+ // account for chart anchors in drawing and programmatic chart objects
314
+ this._shiftChartAnchors("col", start - 1, nExpand);
319
315
  }
320
316
  // account for merges
321
317
  this._spliceMerges("col", start, count, inserts.length);
@@ -658,6 +654,8 @@ class Worksheet {
658
654
  }
659
655
  }
660
656
  }
657
+ // account for chart anchors in drawing and programmatic chart objects
658
+ this._shiftChartAnchors("row", start - 1, nExpand);
661
659
  }
662
660
  // account for merges
663
661
  this._spliceMerges("row", start, count, nInserts);
@@ -776,6 +774,39 @@ class Worksheet {
776
774
  delete this._merges[master.address];
777
775
  }
778
776
  }
777
+ /**
778
+ * Shift all chart anchors (drawing anchors + programmatic charts) by delta along an axis.
779
+ * @param axis "row" or "col"
780
+ * @param threshold 0-based index; anchors at or beyond this are shifted
781
+ * @param delta number of positions to shift (positive = expand, negative = shrink)
782
+ */
783
+ _shiftChartAnchors(axis, threshold, delta) {
784
+ const prop = axis === "row" ? "nativeRow" : "nativeCol";
785
+ // Drawing anchors (from loaded file)
786
+ const drawing = this._drawing;
787
+ if (drawing?.anchors) {
788
+ for (const anchor of drawing.anchors) {
789
+ const tl = anchor.range?.tl;
790
+ const br = anchor.range?.br;
791
+ if (tl && tl[prop] >= threshold) {
792
+ tl[prop] = Math.max(0, tl[prop] + delta);
793
+ }
794
+ if (br && br[prop] >= threshold) {
795
+ br[prop] = Math.max(0, br[prop] + delta);
796
+ }
797
+ }
798
+ }
799
+ // Programmatic chart objects
800
+ for (const chart of this._charts) {
801
+ const { tl, br } = chart.range;
802
+ if (tl[prop] >= threshold) {
803
+ tl[prop] = Math.max(0, tl[prop] + delta);
804
+ }
805
+ if (br && br[prop] >= threshold) {
806
+ br[prop] = Math.max(0, br[prop] + delta);
807
+ }
808
+ }
809
+ }
779
810
  /**
780
811
  * Update _merges dictionary and cell-level merge references after a row or column splice.
781
812
  */
@@ -967,6 +998,300 @@ class Worksheet {
967
998
  getImages() {
968
999
  return this._media.filter(m => m.type === "image");
969
1000
  }
1001
+ // ===========================================================================
1002
+ // Charts
1003
+ // ===========================================================================
1004
+ /**
1005
+ * Add a chart to the worksheet, positioned at the given range.
1006
+ * Returns the chart number (1-based) that identifies this chart in the workbook.
1007
+ */
1008
+ addChart(options, range) {
1009
+ const chart = getChartSupport();
1010
+ return this._registerChart(chart.buildChartModel(options), range, options);
1011
+ }
1012
+ addColumnChart(options, range) {
1013
+ return this.addChart({ ...options, type: "bar", barDir: "col" }, range);
1014
+ }
1015
+ addBarChart(options, range) {
1016
+ return this.addChart({ ...options, type: "bar", barDir: "bar" }, range);
1017
+ }
1018
+ addLineChart(options, range) {
1019
+ return this.addChart({ ...options, type: "line" }, range);
1020
+ }
1021
+ addAreaChart(options, range) {
1022
+ return this.addChart({ ...options, type: "area" }, range);
1023
+ }
1024
+ addPieChart(options, range) {
1025
+ return this.addChart({ ...options, type: "pie" }, range);
1026
+ }
1027
+ addDoughnutChart(options, range) {
1028
+ return this.addChart({ ...options, type: "doughnut" }, range);
1029
+ }
1030
+ addScatterChart(options, range) {
1031
+ return this.addChart({ ...options, type: "scatter" }, range);
1032
+ }
1033
+ addBubbleChart(options, range) {
1034
+ return this.addChart({ ...options, type: "bubble" }, range);
1035
+ }
1036
+ addRadarChart(options, range) {
1037
+ return this.addChart({ ...options, type: "radar" }, range);
1038
+ }
1039
+ addStockChart(options, range) {
1040
+ return this.addChart({ ...options, type: "stock" }, range);
1041
+ }
1042
+ addSurfaceChart(options, range) {
1043
+ return this.addChart({ ...options, type: "surface" }, range);
1044
+ }
1045
+ addHistogramChart(options, range) {
1046
+ return this.addChartEx({ ...options, type: "histogram" }, range);
1047
+ }
1048
+ addParetoChart(options, range) {
1049
+ return this.addChartEx({ ...options, type: "pareto" }, range);
1050
+ }
1051
+ addWaterfallChart(options, range) {
1052
+ return this.addChartEx({ ...options, type: "waterfall" }, range);
1053
+ }
1054
+ addFunnelChart(options, range) {
1055
+ return this.addChartEx({ ...options, type: "funnel" }, range);
1056
+ }
1057
+ addTreemapChart(options, range) {
1058
+ return this.addChartEx({ ...options, type: "treemap" }, range);
1059
+ }
1060
+ addSunburstChart(options, range) {
1061
+ return this.addChartEx({ ...options, type: "sunburst" }, range);
1062
+ }
1063
+ addBoxWhiskerChart(options, range) {
1064
+ return this.addChartEx({ ...options, type: "boxWhisker" }, range);
1065
+ }
1066
+ addRegionMapChart(options, range) {
1067
+ return this.addChartEx({ ...options, type: "regionMap" }, range);
1068
+ }
1069
+ addPresetChart(preset, options, range) {
1070
+ return this.addChart(getChartSupport().applyChartPreset(preset, options), range);
1071
+ }
1072
+ addPresetChartEx(preset, options, range) {
1073
+ return this.addChartEx(getChartSupport().applyChartExPreset(preset, options), range);
1074
+ }
1075
+ seriesFromColumns(options) {
1076
+ return getChartSupport().seriesFromColumns(this.name, options);
1077
+ }
1078
+ addChartFromTable(table, options, range) {
1079
+ return this.addChart(getChartSupport().chartOptionsFromTable(this, table, options), range);
1080
+ }
1081
+ addChartFromRows(rows, options, range) {
1082
+ return this.addChart(getChartSupport().chartOptionsFromRows(this, rows, options), range);
1083
+ }
1084
+ addColumnChartFromRows(rows, options, range) {
1085
+ return this.addChart(getChartSupport().chartOptionsFromRows(this, rows, {
1086
+ ...options,
1087
+ type: "bar",
1088
+ barDir: "col"
1089
+ }), range);
1090
+ }
1091
+ /**
1092
+ * Add a chartEx chart whose data references come from a worksheet Table.
1093
+ * Mirrors {@link addChartFromTable} for the modern `cx:` chart types
1094
+ * (sunburst, treemap, waterfall, funnel, histogram, pareto, boxWhisker).
1095
+ * `regionMap` is not supported through this helper because its data
1096
+ * model expects geographic labels — use {@link addChartEx} directly.
1097
+ */
1098
+ addChartExFromTable(table, options, range) {
1099
+ return this.addChartEx(getChartSupport().chartExOptionsFromTable(this, table, options), range);
1100
+ }
1101
+ /**
1102
+ * Add a chartEx chart whose rows come from a plain object-array, staged
1103
+ * into the worksheet before being referenced by absolute range. Mirrors
1104
+ * {@link addChartFromRows} for the modern `cx:` chart types.
1105
+ */
1106
+ addChartExFromRows(rows, options, range) {
1107
+ return this.addChartEx(getChartSupport().chartExOptionsFromRows(this, rows, options), range);
1108
+ }
1109
+ /**
1110
+ * Add a classic pivot chart linked to an existing pivot table.
1111
+ * Returns the chart number (1-based) that identifies this chart in the workbook.
1112
+ */
1113
+ addPivotChart(pivotTable, options, range) {
1114
+ const pivotChartOptions = withPivotChartSource(pivotTable, options);
1115
+ return this._registerChart(getChartSupport().buildChartModel(pivotChartOptions), range, pivotChartOptions);
1116
+ }
1117
+ /**
1118
+ * Add a combo pivot chart linked to an existing pivot table.
1119
+ * Returns the chart number (1-based) that identifies this chart in the workbook.
1120
+ */
1121
+ addPivotComboChart(pivotTable, options, range) {
1122
+ const pivotChartOptions = withPivotChartSource(pivotTable, options);
1123
+ return this._registerChart(getChartSupport().buildComboChartModel(pivotChartOptions), range, pivotChartOptions);
1124
+ }
1125
+ /**
1126
+ * Add a combo chart (multiple chart type groups) to the worksheet.
1127
+ * Returns the chart number (1-based) that identifies this chart in the workbook.
1128
+ */
1129
+ addComboChart(options, range) {
1130
+ return this._registerChart(getChartSupport().buildComboChartModel(options), range, options);
1131
+ }
1132
+ /**
1133
+ * Add a ChartEx (Office 2016+ extended chart) to the worksheet.
1134
+ *
1135
+ * Supported types: `sunburst`, `treemap`, `waterfall`, `funnel`, `histogram`,
1136
+ * `pareto`, `boxWhisker`, `regionMap`.
1137
+ *
1138
+ * Returns the chartEx number (1-based) that identifies this chart in the workbook.
1139
+ */
1140
+ addChartEx(options, range) {
1141
+ const model = getChartSupport().buildChartExModel(options);
1142
+ return this._registerChartEx(model, range);
1143
+ }
1144
+ /** @internal Register a built chartEx model into the workbook and this worksheet. */
1145
+ _registerChartEx(model, range) {
1146
+ const chart = getChartSupport();
1147
+ const chartExNumber = this._workbook.nextChartExNumber();
1148
+ try {
1149
+ // Pass `this` as context worksheet so sheet-scoped defined names on
1150
+ // this sheet take precedence over workbook-scoped names of the same
1151
+ // bare name (matches Excel resolution order).
1152
+ chart.fillChartExCaches(model, this._workbook, this);
1153
+ }
1154
+ catch {
1155
+ // Cache population is best-effort; never let it break chart creation.
1156
+ }
1157
+ this._workbook.addChartExStructuredEntry({ chartExNumber, model });
1158
+ const chartInstance = chart.createChart(this, { chartExNumber }, range);
1159
+ this._charts.push(chartInstance);
1160
+ return chartExNumber;
1161
+ }
1162
+ /** @internal Register a built chart model into the workbook and this worksheet. */
1163
+ _registerChart(chartModel, range, options) {
1164
+ const chart = getChartSupport();
1165
+ const chartNumber = this._workbook.nextChartNumber();
1166
+ // Auto-populate caches so headless consumers see non-empty charts.
1167
+ // Excel itself will recompute on open; this is a best-effort enrichment.
1168
+ // Pass `this` as context worksheet so sheet-scoped defined names on
1169
+ // this sheet take precedence over workbook-scoped names of the same
1170
+ // bare name (matches Excel resolution order).
1171
+ try {
1172
+ chart.fillChartCaches(chartModel, this._workbook, this);
1173
+ }
1174
+ catch {
1175
+ // Cache population is best-effort; never let it break chart creation.
1176
+ }
1177
+ const entry = { chartNumber, model: chartModel };
1178
+ // Resolve any staged `pictureFill.image` payloads into real workbook
1179
+ // media entries + chart relationships. Safe to call before
1180
+ // `addChartEntry` so the entry we store already carries the final
1181
+ // `entry.rels` array.
1182
+ try {
1183
+ chart.resolvePendingChartImages(entry, this._workbook, chartNumber);
1184
+ }
1185
+ catch {
1186
+ // Image resolution is best-effort; a broken image payload should
1187
+ // never take down chart creation — the series keeps its
1188
+ // `pictureOptions`, just without the blipFill.
1189
+ }
1190
+ this._workbook.addChartEntry(entry);
1191
+ this._applyChartSidecars(chartNumber, options);
1192
+ const chartInstance = chart.createChart(this, { chartNumber }, range);
1193
+ this._charts.push(chartInstance);
1194
+ return chartNumber;
1195
+ }
1196
+ _applyChartSidecars(chartNumber, options) {
1197
+ if (!options?.chartStyle && !options?.chartColors) {
1198
+ return;
1199
+ }
1200
+ const chart = getChartSupport();
1201
+ if (options?.chartStyle) {
1202
+ this._workbook.setChartStyle(chartNumber, new TextEncoder().encode(chart.buildChartStyle(options.chartStyle)));
1203
+ }
1204
+ if (options?.chartColors) {
1205
+ this._workbook.setChartColors(chartNumber, new TextEncoder().encode(chart.buildChartColors(options.chartColors)));
1206
+ }
1207
+ }
1208
+ /**
1209
+ * Get all charts embedded in this worksheet.
1210
+ */
1211
+ getCharts() {
1212
+ return [...this._charts];
1213
+ }
1214
+ /**
1215
+ * Remove a chart from this worksheet.
1216
+ *
1217
+ * @param chart - Either the chart object or its 0-based index in the worksheet.
1218
+ * @returns `true` if a chart was removed, `false` otherwise.
1219
+ */
1220
+ removeChart(chart) {
1221
+ const idx = typeof chart === "number" ? chart : this._charts.indexOf(chart);
1222
+ if (idx < 0 || idx >= this._charts.length) {
1223
+ return false;
1224
+ }
1225
+ const removed = this._charts.splice(idx, 1)[0];
1226
+ if (removed.chartNumber > 0) {
1227
+ this._workbook.removeChartEntry?.(removed.chartNumber);
1228
+ }
1229
+ if (removed.chartExNumber > 0) {
1230
+ this._workbook.removeChartExStructuredEntry?.(removed.chartExNumber);
1231
+ }
1232
+ // Prune the matching anchor from the loaded drawing so the writer
1233
+ // doesn't emit a dangling rel pointing at the now-removed chart
1234
+ // part. The drawing xform regenerates rels from `drawing.anchors`
1235
+ // on every write (see `worksheet-xform.ts` chart-anchor reconcile),
1236
+ // so dropping the anchor here is sufficient — we don't need to
1237
+ // hand-edit `drawing.rels` ourselves.
1238
+ const drawing = this._drawing;
1239
+ if (drawing?.anchors) {
1240
+ drawing.anchors = drawing.anchors.filter(anchor => {
1241
+ if (removed.chartNumber > 0 && anchor.chartNumber === removed.chartNumber) {
1242
+ return false;
1243
+ }
1244
+ if (removed.chartExNumber > 0 && anchor.chartExNumber === removed.chartExNumber) {
1245
+ return false;
1246
+ }
1247
+ return true;
1248
+ });
1249
+ }
1250
+ return true;
1251
+ }
1252
+ // ===========================================================================
1253
+ // Sparklines (x14:sparklineGroups)
1254
+ // ===========================================================================
1255
+ /**
1256
+ * Add a sparkline group to this worksheet.
1257
+ *
1258
+ * A sparkline group is a collection of small in-cell charts sharing common
1259
+ * styling. Sparklines are rendered via `x14:sparklineGroups` inside the
1260
+ * worksheet extension list.
1261
+ *
1262
+ * @returns The newly added SparklineGroup for further modification.
1263
+ */
1264
+ addSparklineGroup(options) {
1265
+ const group = buildSparklineGroup(options);
1266
+ this._sparklineGroups.push(group);
1267
+ return group;
1268
+ }
1269
+ /** Get all sparkline groups on this worksheet. */
1270
+ getSparklineGroups() {
1271
+ return [...this._sparklineGroups];
1272
+ }
1273
+ /** @internal Used by the worksheet xform to access raw storage. */
1274
+ get sparklineGroups() {
1275
+ return this._sparklineGroups;
1276
+ }
1277
+ /** @internal Used when rebuilding from a parsed model. */
1278
+ set sparklineGroups(value) {
1279
+ this._sparklineGroups = value ?? [];
1280
+ }
1281
+ /**
1282
+ * Remove a sparkline group.
1283
+ *
1284
+ * @param groupOrIndex - The group object or its 0-based index.
1285
+ * @returns `true` if removed, `false` otherwise.
1286
+ */
1287
+ removeSparklineGroup(groupOrIndex) {
1288
+ const idx = typeof groupOrIndex === "number" ? groupOrIndex : this._sparklineGroups.indexOf(groupOrIndex);
1289
+ if (idx < 0 || idx >= this._sparklineGroups.length) {
1290
+ return false;
1291
+ }
1292
+ this._sparklineGroups.splice(idx, 1);
1293
+ return true;
1294
+ }
970
1295
  /**
971
1296
  * Using the image id from `Workbook.addImage`, set the background to the worksheet
972
1297
  */
@@ -1162,14 +1487,20 @@ class Worksheet {
1162
1487
  this.conditionalFormattings.push(cf);
1163
1488
  }
1164
1489
  /**
1165
- * Delete conditional formatting rules
1490
+ * Delete conditional formatting rules.
1491
+ *
1492
+ * - When `filter` is a number, removes the rule at that index.
1493
+ * - When `filter` is a function, removes every rule for which it returns `true`
1494
+ * (i.e. the predicate selects the rules to delete, not the ones to keep).
1495
+ * - When `filter` is omitted/falsy, removes all rules.
1166
1496
  */
1167
1497
  removeConditionalFormatting(filter) {
1168
1498
  if (typeof filter === "number") {
1169
1499
  this.conditionalFormattings.splice(filter, 1);
1170
1500
  }
1171
- else if (filter instanceof Function) {
1172
- this.conditionalFormattings = this.conditionalFormattings.filter(filter);
1501
+ else if (typeof filter === "function") {
1502
+ // Keep entries for which the predicate returns false; drop the matches.
1503
+ this.conditionalFormattings = this.conditionalFormattings.filter((value, index, array) => !filter(value, index, array));
1173
1504
  }
1174
1505
  else {
1175
1506
  this.conditionalFormattings = [];
@@ -1386,7 +1717,10 @@ class Worksheet {
1386
1717
  formControls: this.formControls.map(fc => fc.model),
1387
1718
  ignoredErrors: this.ignoredErrors,
1388
1719
  watermark: this._watermark,
1389
- drawing: this._drawing
1720
+ drawing: this._drawing,
1721
+ charts: this._charts.map(c => c.model),
1722
+ sparklineGroups: this._sparklineGroups,
1723
+ threadedComments: this.threadedComments
1390
1724
  };
1391
1725
  // =================================================
1392
1726
  // columns
@@ -1473,12 +1807,37 @@ class Worksheet {
1473
1807
  return tables;
1474
1808
  }, {});
1475
1809
  this.pivotTables = value.pivotTables;
1810
+ for (const pivotTable of this.pivotTables ?? []) {
1811
+ pivotTable.worksheetName ?? (pivotTable.worksheetName = this.name);
1812
+ pivotTable.name ?? (pivotTable.name = `PivotTable${pivotTable.tableNumber}`);
1813
+ }
1476
1814
  this.conditionalFormattings = value.conditionalFormattings;
1477
1815
  this.ignoredErrors = value.ignoredErrors ?? [];
1478
- // Form controls are currently write-only (not parsed from XLSX)
1479
- this.formControls = [];
1816
+ this.threadedComments = value.threadedComments ?? [];
1817
+ // Rebuild form controls from the serialised model so importSheet() and any
1818
+ // other model round-trip preserves checkbox state, position, and links.
1819
+ this.formControls = (value.formControls ?? []).map(fcModel => FormCheckbox.fromModel(this, fcModel));
1480
1820
  // Preserve loaded drawing data (charts, etc.)
1481
1821
  this._drawing = value.drawing;
1822
+ // Restore chart objects from model (explicit charts array) or from drawing anchors.
1823
+ // If chart support is not installed we still preserve the chart data inside
1824
+ // `workbook.charts` entries (the serialiser reads from there), but we leave
1825
+ // `_charts` empty because the `Chart` wrapper class lives in the optional
1826
+ // chart module. Consumers who want to *manipulate* charts must install
1827
+ // chart support; consumers doing pure load-save pass-through don't need to.
1828
+ const chartHost = tryGetChartSupport();
1829
+ if (chartHost && value.charts && value.charts.length > 0) {
1830
+ this._charts = value.charts.map((c) => chartHost.createChart(this, { chartNumber: c.chartNumber, chartExNumber: c.chartExNumber }, c.range));
1831
+ }
1832
+ else if (chartHost && value.drawing?.anchors) {
1833
+ // Extract chart anchors from drawing (loaded from XLSX)
1834
+ this._charts = value.drawing.anchors
1835
+ .filter((a) => a.chartNumber || a.chartExNumber)
1836
+ .map((a) => chartHost.createChart(this, { chartNumber: a.chartNumber ?? 0, chartExNumber: a.chartExNumber ?? 0 }, a.range));
1837
+ }
1838
+ else {
1839
+ this._charts = [];
1840
+ }
1482
1841
  }
1483
1842
  toJSON(opts) {
1484
1843
  const o = opts || {};
@@ -31,6 +31,46 @@ const RelType = {
31
31
  * relative to the current workbook's directory — exactly the behaviour users
32
32
  * expect from `=[测试.xlsx]Sheet1!A1`.
33
33
  */
34
- ExternalLinkPath: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath"
34
+ ExternalLinkPath: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",
35
+ Chart: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
36
+ ChartEx: "http://schemas.microsoft.com/office/2014/relationships/chartEx",
37
+ ChartStyle: "http://schemas.microsoft.com/office/2011/relationships/chartStyle",
38
+ ChartColors: "http://schemas.microsoft.com/office/2011/relationships/chartColorStyle",
39
+ Drawing: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
40
+ /**
41
+ * `c:userShapes` overlay drawing targeted from a chart rels file. OOXML
42
+ * treats this as a separate relationship type from regular worksheet
43
+ * drawings so the spec's schema for the two parts can diverge.
44
+ */
45
+ ChartUserShapes: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes",
46
+ Chartsheet: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",
47
+ /**
48
+ * Office 365 threaded comments — the conversation tree for modern
49
+ * comments, kept alongside classic VML comments so older viewers still
50
+ * see the fallback text. From MS-XLSX ext spec (2018).
51
+ */
52
+ ThreadedComments: "http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",
53
+ /**
54
+ * `xl/persons/person.xml` — the person directory referenced by
55
+ * threaded-comment `personId` fields. Workbook-level relationship.
56
+ */
57
+ Person: "http://schemas.microsoft.com/office/2017/10/relationships/person",
58
+ /**
59
+ * Slicer part reference from sheets. One per slicer definition.
60
+ */
61
+ Slicer: "http://schemas.microsoft.com/office/2007/relationships/slicer",
62
+ /**
63
+ * Slicer cache reference from workbook — each slicer points at a
64
+ * cache defining its filter state.
65
+ */
66
+ SlicerCache: "http://schemas.microsoft.com/office/2007/relationships/slicerCache",
67
+ /**
68
+ * Excel 2013+ timeline control (date-based slicer).
69
+ */
70
+ Timeline: "http://schemas.microsoft.com/office/2011/relationships/timeline",
71
+ /**
72
+ * Cache behind a timeline control.
73
+ */
74
+ TimelineCache: "http://schemas.microsoft.com/office/2011/relationships/timelineCache"
35
75
  };
36
76
  export { RelType };
@@ -8,11 +8,16 @@ class DefinedNamesXform extends BaseXform {
8
8
  // <definedNames>
9
9
  // <definedName name="name">text</definedName>
10
10
  // <definedName name="_xlnm.Print_Area" localSheetId="0">text</definedName>
11
+ // <definedName name="_xlchart.v1.0" hidden="1">Sheet1!$A$1:$A$3</definedName>
11
12
  // </definedNames>
12
- xmlStream.openNode("definedName", {
13
+ const attrs = {
13
14
  name: model.name,
14
15
  localSheetId: model.localSheetId
15
- });
16
+ };
17
+ if (model.hidden) {
18
+ attrs.hidden = 1;
19
+ }
20
+ xmlStream.openNode("definedName", attrs);
16
21
  // For opaque names, write the rawText verbatim to preserve round-trip fidelity.
17
22
  // For reference/formula names, join the ranges array as before.
18
23
  if (model.kind === "opaque" && model.rawText) {
@@ -28,6 +33,7 @@ class DefinedNamesXform extends BaseXform {
28
33
  case "definedName":
29
34
  this._parsedName = node.attributes.name;
30
35
  this._parsedLocalSheetId = node.attributes.localSheetId;
36
+ this._parsedHidden = node.attributes.hidden;
31
37
  this._parsedText = [];
32
38
  return true;
33
39
  default:
@@ -52,6 +58,9 @@ class DefinedNamesXform extends BaseXform {
52
58
  if (this._parsedLocalSheetId !== undefined) {
53
59
  model.localSheetId = parseInt(this._parsedLocalSheetId, 10);
54
60
  }
61
+ if (this._parsedHidden === "1" || this._parsedHidden === "true") {
62
+ model.hidden = true;
63
+ }
55
64
  this.model = model;
56
65
  return false;
57
66
  }