@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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * Chartsheet structure check.
4
+ *
5
+ * A chartsheet (`xl/chartsheets/sheetN.xml`) must contain a `<drawing>`
6
+ * reference — the chart itself is always in the linked drawing part.
7
+ * Without it, Excel shows an empty chart sheet.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.checkChartsheet = checkChartsheet;
11
+ const xml_utils_1 = require("./xml-utils");
12
+ const CHARTSHEET_PATH_RE = /^xl\/chartsheets\/sheet\d+\.xml$/;
13
+ function checkChartsheet(ctx) {
14
+ for (const [path, entry] of ctx.files()) {
15
+ if (ctx.reporter.capped) {
16
+ return;
17
+ }
18
+ if (entry.type === "directory" || !CHARTSHEET_PATH_RE.test(path)) {
19
+ continue;
20
+ }
21
+ const dom = ctx.readDom(path);
22
+ if (!dom) {
23
+ continue;
24
+ }
25
+ if (!(0, xml_utils_1.hasDescendantLocal)(dom.root, "drawing")) {
26
+ ctx.reporter.error("chartsheet-missing-drawing", `${path}: missing drawing reference`, path);
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ /**
3
+ * Content-types check.
4
+ *
5
+ * OPC requires every part in the package to be resolvable to a
6
+ * content-type via either a `<Default Extension=...>` entry or a
7
+ * `<Override PartName=...>` entry. Excel rejects packages where this
8
+ * mapping has gaps — the classic "repairable content" error.
9
+ *
10
+ * Beyond the OPC-mandatory rules, we also enforce Microsoft's
11
+ * well-known part→type expectations for the common OOXML part layouts
12
+ * (chart, pivot, chartsheet, drawing, etc.). A wrong content-type on
13
+ * these parts is one of the top causes of "Excel cannot open" errors
14
+ * because Excel uses the type string to route parsing.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.checkContentTypes = checkContentTypes;
18
+ const path_utils_1 = require("./path-utils");
19
+ // -----------------------------------------------------------------------------
20
+ // Well-known content types
21
+ // -----------------------------------------------------------------------------
22
+ const CT = {
23
+ workbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
24
+ styles: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
25
+ sharedStrings: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
26
+ theme: "application/vnd.openxmlformats-officedocument.theme+xml",
27
+ worksheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
28
+ chartsheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
29
+ chart: "application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
30
+ chartEx: "application/vnd.ms-office.chartex+xml",
31
+ chartStyle: "application/vnd.ms-office.chartstyle+xml",
32
+ chartColors: "application/vnd.ms-office.chartcolorstyle+xml",
33
+ drawing: "application/vnd.openxmlformats-officedocument.drawing+xml",
34
+ pivotTable: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml",
35
+ pivotCacheDefinition: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml",
36
+ pivotCacheRecords: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml",
37
+ comments: "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
38
+ threadedComments: "application/vnd.ms-excel.threadedcomments+xml",
39
+ externalLink: "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml",
40
+ tableDef: "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
41
+ calcChain: "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml",
42
+ app: "application/vnd.openxmlformats-officedocument.extended-properties+xml",
43
+ core: "application/vnd.openxmlformats-package.core-properties+xml"
44
+ };
45
+ /**
46
+ * Path→expected content-type rules. The first matching rule wins. We
47
+ * keep these in a single table so it is easy to audit and extend. Exact
48
+ * string keys take precedence over regex rules for performance and
49
+ * readability.
50
+ */
51
+ const EXACT_PART_CONTENT_TYPE = {
52
+ "xl/workbook.xml": CT.workbook,
53
+ "xl/styles.xml": CT.styles,
54
+ "xl/sharedStrings.xml": CT.sharedStrings,
55
+ "xl/calcChain.xml": CT.calcChain,
56
+ "docProps/app.xml": CT.app,
57
+ "docProps/core.xml": CT.core
58
+ };
59
+ const PATTERN_RULES = [
60
+ { pattern: /^xl\/theme\/[^/]+\.xml$/, contentType: CT.theme, label: "theme" },
61
+ { pattern: /^xl\/worksheets\/sheet\d+\.xml$/, contentType: CT.worksheet, label: "worksheet" },
62
+ { pattern: /^xl\/chartsheets\/sheet\d+\.xml$/, contentType: CT.chartsheet, label: "chartsheet" },
63
+ { pattern: /^xl\/charts\/chart\d+\.xml$/, contentType: CT.chart, label: "chart" },
64
+ { pattern: /^xl\/charts\/chartEx\d+\.xml$/, contentType: CT.chartEx, label: "chartEx" },
65
+ { pattern: /^xl\/charts\/style\d+\.xml$/, contentType: CT.chartStyle, label: "chart style" },
66
+ { pattern: /^xl\/charts\/colors\d+\.xml$/, contentType: CT.chartColors, label: "chart colors" },
67
+ { pattern: /^xl\/charts\/styleEx\d+\.xml$/, contentType: CT.chartStyle, label: "chart styleEx" },
68
+ {
69
+ pattern: /^xl\/charts\/colorsEx\d+\.xml$/,
70
+ contentType: CT.chartColors,
71
+ label: "chart colorsEx"
72
+ },
73
+ { pattern: /^xl\/drawings\/drawing\d+\.xml$/, contentType: CT.drawing, label: "drawing" },
74
+ {
75
+ pattern: /^xl\/pivotTables\/pivotTable\d+\.xml$/,
76
+ contentType: CT.pivotTable,
77
+ label: "pivot table"
78
+ },
79
+ {
80
+ pattern: /^xl\/pivotCache\/pivotCacheDefinition\d+\.xml$/,
81
+ contentType: CT.pivotCacheDefinition,
82
+ label: "pivot cache definition"
83
+ },
84
+ {
85
+ pattern: /^xl\/pivotCache\/pivotCacheRecords\d+\.xml$/,
86
+ contentType: CT.pivotCacheRecords,
87
+ label: "pivot cache records"
88
+ },
89
+ { pattern: /^xl\/tables\/table\d+\.xml$/, contentType: CT.tableDef, label: "table" },
90
+ {
91
+ pattern: /^xl\/externalLinks\/externalLink\d+\.xml$/,
92
+ contentType: CT.externalLink,
93
+ label: "external link"
94
+ },
95
+ { pattern: /^xl\/comments\d+\.xml$/, contentType: CT.comments, label: "comments" },
96
+ {
97
+ pattern: /^xl\/threadedComments\/threadedComment\d+\.xml$/,
98
+ contentType: CT.threadedComments,
99
+ label: "threaded comments"
100
+ }
101
+ ];
102
+ function expectedContentType(path) {
103
+ const exact = EXACT_PART_CONTENT_TYPE[path];
104
+ if (exact) {
105
+ return { contentType: exact, label: path };
106
+ }
107
+ for (const rule of PATTERN_RULES) {
108
+ if (rule.pattern.test(path)) {
109
+ return { contentType: rule.contentType, label: rule.label };
110
+ }
111
+ }
112
+ return undefined;
113
+ }
114
+ // -----------------------------------------------------------------------------
115
+ // Checker
116
+ // -----------------------------------------------------------------------------
117
+ function checkContentTypes(ctx) {
118
+ if (!ctx.has("[Content_Types].xml")) {
119
+ // checkStructure will already have reported missing-part.
120
+ return;
121
+ }
122
+ const data = ctx.readContentTypes();
123
+ if (!data.parseOk) {
124
+ // context already reported `content-types-malformed`.
125
+ return;
126
+ }
127
+ // Duplicate overrides — we keep the first and report extras.
128
+ for (const pn of data.duplicateOverrides) {
129
+ ctx.reporter.error("content-types-duplicate-override", `Duplicate Override PartName: ${pn}`, "[Content_Types].xml");
130
+ }
131
+ // The two OPC-mandated defaults.
132
+ const relsDefault = data.defaults.get("rels");
133
+ if (relsDefault !== "application/vnd.openxmlformats-package.relationships+xml") {
134
+ ctx.reporter.error("content-types-missing-default", "Missing/incorrect Default for .rels (expected application/vnd.openxmlformats-package.relationships+xml)", "[Content_Types].xml");
135
+ }
136
+ const xmlDefault = data.defaults.get("xml");
137
+ if (xmlDefault !== "application/xml") {
138
+ ctx.reporter.error("content-types-missing-default", "Missing/incorrect Default for .xml (expected application/xml)", "[Content_Types].xml");
139
+ }
140
+ // Every override must point to an existing part.
141
+ for (const [partName, _ct] of data.overrides) {
142
+ if (ctx.reporter.capped) {
143
+ return;
144
+ }
145
+ if (!ctx.has(partName)) {
146
+ ctx.reporter.error("content-types-missing", `Override PartName points to missing file: /${partName}`, "[Content_Types].xml");
147
+ }
148
+ }
149
+ // Every part in the zip must resolve to a content type and — when we
150
+ // know the expected type — match it.
151
+ for (const [path, entry] of ctx.files()) {
152
+ if (ctx.reporter.capped) {
153
+ return;
154
+ }
155
+ if (entry.type === "directory" || path === "[Content_Types].xml") {
156
+ continue;
157
+ }
158
+ // Reject invalid OPC part names (e.g. containing `\`, ending `/`, or
159
+ // embedded `..`). Excel refuses such packages outright.
160
+ if (!(0, path_utils_1.isLegalPartName)(path)) {
161
+ ctx.reporter.error("part-name-invalid", `Illegal OPC part name: ${path}`, path);
162
+ }
163
+ const overrideType = data.overrides.get(path);
164
+ const ext = (0, path_utils_1.getExtension)(path);
165
+ const defaultType = ext ? data.defaults.get(ext) : undefined;
166
+ if (!overrideType && !defaultType) {
167
+ if (!ext) {
168
+ ctx.reporter.error("content-types-missing-for-part", `No content type for part without extension: ${path}`, "[Content_Types].xml");
169
+ }
170
+ else {
171
+ ctx.reporter.error("content-types-missing-for-part", `No Default/Override content type for part: ${path} (extension .${ext})`, "[Content_Types].xml");
172
+ }
173
+ continue;
174
+ }
175
+ const expected = expectedContentType(path);
176
+ if (!expected) {
177
+ continue;
178
+ }
179
+ const actual = overrideType ?? defaultType;
180
+ if (actual !== expected.contentType) {
181
+ ctx.reporter.error("content-types-wrong-for-part", `Unexpected content type for /${(0, path_utils_1.stripLeadingSlash)(path)}: got "${actual}", expected "${expected.contentType}" (${expected.label})`, "[Content_Types].xml");
182
+ }
183
+ }
184
+ }
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ /**
3
+ * Drawing part structure check.
4
+ *
5
+ * When a drawing file contains `<xdr:graphicFrame>` nodes but neither a
6
+ * classic `<c:chart>` nor a chartEx `<cx:chart>` reference inside them,
7
+ * the graphic frame is dangling — Excel shows a placeholder or drops the
8
+ * frame on load.
9
+ *
10
+ * We also scan anchor coordinates: every anchor must have `from` and
11
+ * `to` child elements, and EMU values (`x`, `y`, `cx`, `cy`,
12
+ * `colOff`, `rowOff`) when present must parse as finite non-negative
13
+ * numbers. Excel rejects anchors with NaN coordinates outright.
14
+ *
15
+ * Finally we enforce the ChartEx drawing-wrapper invariants that
16
+ * trigger "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)"
17
+ * in production Excel logs:
18
+ *
19
+ * - Any `<cx:chart>` reference MUST live inside an
20
+ * `<mc:AlternateContent>` block. The Microsoft ChartEx schema was
21
+ * never part of the base OOXML spec, so Excel's strict loader
22
+ * requires MC substitution so legacy readers see a fallback shape.
23
+ * - The `<mc:Fallback>` MUST be non-empty. An empty Fallback
24
+ * collapses the anchor to nothing on clients that take that
25
+ * branch, and Excel's strict loader has been observed to reject
26
+ * the drawing even on the Choice branch when it sees the
27
+ * degenerate Fallback.
28
+ * - `<mc:AlternateContent>` lives INSIDE the `<xdr:twoCellAnchor>`
29
+ * shape slot (between `<xdr:to>` and `<xdr:clientData>`), NOT
30
+ * around the whole anchor. Wrapping the entire anchor duplicates
31
+ * `<xdr:from>`/`<xdr:to>` across Choice and Fallback, which Excel
32
+ * rejects even though MC substitution permits it in theory.
33
+ */
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.checkDrawing = checkDrawing;
36
+ const xml_utils_1 = require("./xml-utils");
37
+ const DRAWING_PATH_RE = /^xl\/drawings\/drawing\d+\.xml$/;
38
+ function checkDrawing(ctx) {
39
+ for (const [path, entry] of ctx.files()) {
40
+ if (ctx.reporter.capped) {
41
+ return;
42
+ }
43
+ if (entry.type === "directory" || !DRAWING_PATH_RE.test(path)) {
44
+ continue;
45
+ }
46
+ checkSingleDrawing(ctx, path);
47
+ }
48
+ }
49
+ function checkSingleDrawing(ctx, path) {
50
+ const dom = ctx.readDom(path);
51
+ if (!dom) {
52
+ return;
53
+ }
54
+ const root = dom.root;
55
+ // Graphic frame without embedded chart reference.
56
+ for (const gf of (0, xml_utils_1.collectDescendantsLocal)(root, "graphicFrame")) {
57
+ const hasChartFrame = (0, xml_utils_1.hasDescendantLocal)(gf, "chart");
58
+ if (!hasChartFrame) {
59
+ ctx.reporter.error("drawing-graphicFrame-missing-chart", `${path}: xdr:graphicFrame has no c:chart or cx:chart reference`, path);
60
+ }
61
+ }
62
+ // AlternateContent wrap at drawing-root level is the "outer wrap"
63
+ // writer bug — but ONLY for chartEx (`Requires="cx1"` / `"cx"`).
64
+ // Form-control legacy wrappers (`Requires="a14"`) legitimately
65
+ // wrap the whole anchor and Excel handles them fine; those are
66
+ // not the chartEx bug this rule targets. When the whole anchor
67
+ // is wrapped for chartEx, `<xdr:from>` / `<xdr:to>` get
68
+ // duplicated inside Choice and Fallback and Excel rejects the
69
+ // drawing.
70
+ for (const child of root.children) {
71
+ if (child.type === "element" && (0, xml_utils_1.matchesLocal)(child.name, "AlternateContent")) {
72
+ // Only flag if the AlternateContent contains anchor elements —
73
+ // otherwise it might be a root-level extension that's fine.
74
+ if ((0, xml_utils_1.hasDescendantLocal)(child, "twoCellAnchor") ||
75
+ (0, xml_utils_1.hasDescendantLocal)(child, "oneCellAnchor") ||
76
+ (0, xml_utils_1.hasDescendantLocal)(child, "absoluteAnchor")) {
77
+ // Look for a Choice with Requires="cx1" / "cx" — those mean
78
+ // chartEx, which is the bug this rule flags. If the Choice
79
+ // uses any other prefix ("a14" for form controls, etc.) the
80
+ // outer wrap is the Microsoft-sanctioned shape and we skip.
81
+ const choiceRequires = findChoiceRequires(child);
82
+ if (choiceRequires === "cx" || choiceRequires === "cx1") {
83
+ ctx.reporter.error("drawing-chartEx-alternateContent-outer-wrap", `${path}: <mc:AlternateContent> wraps the entire anchor. ` +
84
+ `Move it INSIDE <xdr:twoCellAnchor>, after <xdr:to> and before ` +
85
+ `<xdr:clientData>, so <xdr:from>/<xdr:to> are not duplicated.`, path);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ // Anchors.
91
+ for (const anchorName of ["twoCellAnchor", "oneCellAnchor", "absoluteAnchor"]) {
92
+ for (const anchor of (0, xml_utils_1.findChildrenLocal)(root, anchorName)) {
93
+ checkAnchor(ctx, path, anchor);
94
+ checkChartExWrapping(ctx, path, anchor);
95
+ }
96
+ }
97
+ }
98
+ // -----------------------------------------------------------------------------
99
+ // ChartEx AlternateContent wrapping
100
+ // -----------------------------------------------------------------------------
101
+ /**
102
+ * For every anchor: if it hosts a `<cx:chart>` reference, that
103
+ * reference MUST be wrapped in `<mc:AlternateContent>` (inside the
104
+ * anchor) with a non-empty `<mc:Fallback>`. This mirrors what Excel
105
+ * itself writes for every ChartEx drawing.
106
+ */
107
+ function checkChartExWrapping(ctx, path, anchor) {
108
+ // Collect every `<cx:chart>` descendant of the anchor.
109
+ const chartExRefs = (0, xml_utils_1.collectDescendantsLocal)(anchor, "chart").filter(el => {
110
+ // Distinguish `<cx:chart>` (ChartEx) from `<c:chart>` (classic) by
111
+ // namespace prefix. Both have local name "chart".
112
+ const idx = el.name.indexOf(":");
113
+ return idx !== -1 && el.name.slice(0, idx) === "cx";
114
+ });
115
+ if (chartExRefs.length === 0) {
116
+ return;
117
+ }
118
+ // Is there an `<mc:AlternateContent>` direct child?
119
+ const alternateContent = anchor.children.find((c) => c.type === "element" && (0, xml_utils_1.matchesLocal)(c.name, "AlternateContent"));
120
+ if (!alternateContent) {
121
+ ctx.reporter.error("drawing-chartEx-missing-alternateContent-wrap", `${path}: anchor contains <cx:chart> but has no <mc:AlternateContent> wrapper. ` +
122
+ `ChartEx drawings must place the <xdr:graphicFrame> inside ` +
123
+ `<mc:AlternateContent><mc:Choice>…</mc:Choice><mc:Fallback>…</mc:Fallback></mc:AlternateContent>.`, path);
124
+ return;
125
+ }
126
+ // Fallback must be non-empty.
127
+ const fallback = (0, xml_utils_1.findChildLocal)(alternateContent, "Fallback");
128
+ if (!fallback) {
129
+ ctx.reporter.error("drawing-chartEx-alternateContent-empty-fallback", `${path}: <mc:AlternateContent> has no <mc:Fallback>. ` +
130
+ `Excel's strict loader rejects drawings whose Fallback is missing.`, path);
131
+ return;
132
+ }
133
+ const fallbackHasChildren = fallback.children.some(c => c.type === "element");
134
+ if (!fallbackHasChildren) {
135
+ ctx.reporter.error("drawing-chartEx-alternateContent-empty-fallback", `${path}: <mc:Fallback> is empty. ` +
136
+ `Provide a non-empty legacy shape (e.g. <xdr:sp>) so non-ChartEx ` +
137
+ `readers see a placeholder instead of collapsing the anchor.`, path);
138
+ return;
139
+ }
140
+ // Office creation-id extension. Warning-level: not strictly required
141
+ // by the base OOXML schema, but strict Excel builds have been seen
142
+ // dropping chartEx drawings that lack the extension.
143
+ // Structure: xdr:graphicFrame/xdr:nvGraphicFramePr/xdr:cNvPr/a:extLst/a:ext/a16:creationId
144
+ // We locate the graphicFrame inside Choice and walk down.
145
+ const choice = (0, xml_utils_1.findChildLocal)(alternateContent, "Choice");
146
+ if (!choice) {
147
+ return;
148
+ }
149
+ const graphicFrame = (0, xml_utils_1.findChildLocal)(choice, "graphicFrame");
150
+ if (!graphicFrame) {
151
+ return;
152
+ }
153
+ const nvGraphicFramePr = (0, xml_utils_1.findChildLocal)(graphicFrame, "nvGraphicFramePr");
154
+ if (!nvGraphicFramePr) {
155
+ return;
156
+ }
157
+ const cNvPr = (0, xml_utils_1.findChildLocal)(nvGraphicFramePr, "cNvPr");
158
+ if (!cNvPr) {
159
+ return;
160
+ }
161
+ const extLst = (0, xml_utils_1.findChildLocal)(cNvPr, "extLst");
162
+ const hasCreationId = !!extLst && (0, xml_utils_1.collectDescendantsLocal)(extLst, "creationId").length > 0;
163
+ if (!hasCreationId) {
164
+ ctx.reporter.warning("drawing-chartEx-missing-creationId", `${path}: chartEx drawing <xdr:cNvPr> missing Office creation-id extension ` +
165
+ `(<a:extLst>/<a:ext>/<a16:creationId>). Strict Excel builds may drop the drawing ` +
166
+ `on load without it.`, path);
167
+ }
168
+ }
169
+ function checkAnchor(ctx, path, anchor) {
170
+ const name = anchor.name.includes(":")
171
+ ? anchor.name.slice(anchor.name.lastIndexOf(":") + 1)
172
+ : anchor.name;
173
+ // twoCellAnchor requires from+to; oneCellAnchor requires from+ext;
174
+ // absoluteAnchor requires pos+ext.
175
+ if (name === "twoCellAnchor") {
176
+ if (!(0, xml_utils_1.findChildLocal)(anchor, "from") || !(0, xml_utils_1.findChildLocal)(anchor, "to")) {
177
+ ctx.reporter.error("drawing-anchor-missing", `${path}: ${name} missing from/to`, path);
178
+ return;
179
+ }
180
+ checkCellAnchor(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "from"));
181
+ checkCellAnchor(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "to"));
182
+ }
183
+ else if (name === "oneCellAnchor") {
184
+ if (!(0, xml_utils_1.findChildLocal)(anchor, "from") || !(0, xml_utils_1.findChildLocal)(anchor, "ext")) {
185
+ ctx.reporter.error("drawing-anchor-missing", `${path}: ${name} missing from/ext`, path);
186
+ return;
187
+ }
188
+ checkCellAnchor(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "from"));
189
+ checkExtOrPos(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "ext"), "ext");
190
+ }
191
+ else if (name === "absoluteAnchor") {
192
+ if (!(0, xml_utils_1.findChildLocal)(anchor, "pos") || !(0, xml_utils_1.findChildLocal)(anchor, "ext")) {
193
+ ctx.reporter.error("drawing-anchor-missing", `${path}: ${name} missing pos/ext`, path);
194
+ return;
195
+ }
196
+ checkExtOrPos(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "pos"), "pos");
197
+ checkExtOrPos(ctx, path, (0, xml_utils_1.findChildLocal)(anchor, "ext"), "ext");
198
+ }
199
+ }
200
+ function checkCellAnchor(ctx, path, cellAnchor) {
201
+ if (!cellAnchor) {
202
+ return;
203
+ }
204
+ // Children are col / colOff / row / rowOff (as xdr:col etc.). Each is a
205
+ // plain-text integer. A non-integer is typically the result of a writer
206
+ // that stringified `undefined` / `null` — Excel silently repairs the
207
+ // anchor (the "Removed Part: Drawing shape" message) but the file
208
+ // still opens. So we downgrade this to a warning.
209
+ for (const tag of ["col", "colOff", "row", "rowOff"]) {
210
+ const el = (0, xml_utils_1.findChildLocal)(cellAnchor, tag);
211
+ if (!el) {
212
+ continue; // some producers elide zero offsets — tolerate.
213
+ }
214
+ const text = collectText(el).trim();
215
+ const n = parseInt(text, 10);
216
+ if (!Number.isFinite(n)) {
217
+ ctx.reporter.warning("drawing-anchor-invalid-coords", `${path}: anchor ${tag}=${JSON.stringify(text)} is not an integer`, path);
218
+ }
219
+ // Negatives are permitted for colOff/rowOff in some corner cases
220
+ // (e.g. partial-cell anchors slight-past zero). Only warn on NaN.
221
+ }
222
+ }
223
+ function checkExtOrPos(ctx, path, el, kind) {
224
+ if (!el) {
225
+ return;
226
+ }
227
+ const attrs = kind === "ext" ? ["cx", "cy"] : ["x", "y"];
228
+ for (const a of attrs) {
229
+ const v = (0, xml_utils_1.attrByLocalName)(el, a);
230
+ if (v === undefined) {
231
+ continue;
232
+ }
233
+ const n = parseInt(v, 10);
234
+ if (!Number.isFinite(n)) {
235
+ ctx.reporter.warning("drawing-anchor-invalid-coords", `${path}: ${kind} ${a}=${JSON.stringify(v)} is not a valid EMU integer`, path);
236
+ }
237
+ }
238
+ }
239
+ function collectText(el) {
240
+ let out = "";
241
+ for (const child of el.children) {
242
+ if (child.type === "text" || child.type === "cdata") {
243
+ out += child.value;
244
+ }
245
+ else if (child.type === "element") {
246
+ out += collectText(child);
247
+ }
248
+ }
249
+ return out;
250
+ }
251
+ /**
252
+ * Extract the `Requires` value from the first `<mc:Choice>` inside an
253
+ * `<mc:AlternateContent>` block. Used by the outer-wrap rule to skip
254
+ * form-control (`Requires="a14"`) anchors — only chartEx
255
+ * (`Requires="cx1"` / `"cx"`) should trigger the diagnostic.
256
+ *
257
+ * Returns `undefined` when no Choice with a `Requires` attribute is
258
+ * found.
259
+ */
260
+ function findChoiceRequires(ac) {
261
+ for (const child of ac.children) {
262
+ if (child.type === "element" && (0, xml_utils_1.matchesLocal)(child.name, "Choice")) {
263
+ const req = (0, xml_utils_1.attrByLocalName)(child, "Requires");
264
+ if (req !== undefined) {
265
+ return req;
266
+ }
267
+ }
268
+ }
269
+ return undefined;
270
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Pivot table & pivot cache check.
4
+ *
5
+ * Each `xl/pivotTables/pivotTableN.xml` declares a `cacheId` that must be
6
+ * registered in the workbook's `<pivotCaches>` list; the cache in turn
7
+ * must back a live pivotCacheDefinition/pivotCacheRecords pair.
8
+ *
9
+ * We do a lightweight cross-reference check: (a) every pivot table
10
+ * advertises a cacheId that resolves to a `<pivotCache>` entry in
11
+ * workbook.xml, and (b) each referenced pivotCacheDefinition's rels point
12
+ * at a pivotCacheRecords file that actually exists.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.checkPivot = checkPivot;
16
+ const xml_utils_1 = require("./xml-utils");
17
+ const PIVOT_TABLE_RE = /^xl\/pivotTables\/pivotTable\d+\.xml$/;
18
+ const WORKBOOK_PATH = "xl/workbook.xml";
19
+ function checkPivot(ctx) {
20
+ const declared = collectWorkbookPivotCaches(ctx);
21
+ for (const [path, entry] of ctx.files()) {
22
+ if (ctx.reporter.capped) {
23
+ return;
24
+ }
25
+ if (entry.type === "directory" || !PIVOT_TABLE_RE.test(path)) {
26
+ continue;
27
+ }
28
+ const dom = ctx.readDom(path);
29
+ if (!dom) {
30
+ continue;
31
+ }
32
+ const cacheId = (0, xml_utils_1.attrByLocalName)(dom.root, "cacheId");
33
+ if (cacheId === undefined) {
34
+ ctx.reporter.error("pivot-missing-cacheId", `${path}: missing cacheId attribute`, path);
35
+ continue;
36
+ }
37
+ if (!declared.has(cacheId)) {
38
+ ctx.reporter.error("pivot-cacheId-not-in-workbook", `${path}: cacheId="${cacheId}" is not declared in workbook <pivotCaches>`, path);
39
+ }
40
+ }
41
+ // Each pivotCacheDefinition.rels should point at a pivotCacheRecords file
42
+ // that exists inside the package.
43
+ for (const [path, entry] of ctx.files()) {
44
+ if (ctx.reporter.capped) {
45
+ return;
46
+ }
47
+ if (entry.type === "directory" ||
48
+ !/^xl\/pivotCache\/pivotCacheDefinition\d+\.xml$/.test(path)) {
49
+ continue;
50
+ }
51
+ const defRels = ctx.readRels(defaultRelsPath(path));
52
+ const recordsRel = defRels.rels.find(r => r.type.includes("pivotCacheRecords"));
53
+ if (recordsRel) {
54
+ const resolved = recordsRel.target.startsWith("/")
55
+ ? recordsRel.target.slice(1)
56
+ : joinPath(parentDir(path), recordsRel.target);
57
+ if (!ctx.has(resolved)) {
58
+ ctx.reporter.error("pivot-cacheRecords-missing", `${path}: references missing pivotCacheRecords file ${resolved}`, path);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ function collectWorkbookPivotCaches(ctx) {
64
+ const ids = new Set();
65
+ if (!ctx.has(WORKBOOK_PATH)) {
66
+ return ids;
67
+ }
68
+ const dom = ctx.readDom(WORKBOOK_PATH);
69
+ if (!dom) {
70
+ return ids;
71
+ }
72
+ const pivotCaches = (0, xml_utils_1.findChildLocal)(dom.root, "pivotCaches");
73
+ if (!pivotCaches) {
74
+ return ids;
75
+ }
76
+ for (const pc of (0, xml_utils_1.findChildrenLocal)(pivotCaches, "pivotCache")) {
77
+ const id = (0, xml_utils_1.attrByLocalName)(pc, "cacheId");
78
+ if (id !== undefined) {
79
+ ids.add(id);
80
+ }
81
+ }
82
+ return ids;
83
+ }
84
+ function defaultRelsPath(partPath) {
85
+ const dir = parentDir(partPath);
86
+ const base = partPath.slice(dir.length ? dir.length + 1 : 0);
87
+ return dir ? `${dir}/_rels/${base}.rels` : `_rels/${base}.rels`;
88
+ }
89
+ function parentDir(p) {
90
+ const idx = p.lastIndexOf("/");
91
+ return idx === -1 ? "" : p.slice(0, idx);
92
+ }
93
+ function joinPath(dir, target) {
94
+ // Resolve `./foo/bar` or `../baz` relative to `dir`.
95
+ const parts = dir ? dir.split("/") : [];
96
+ for (const seg of target.split("/")) {
97
+ if (seg === "" || seg === ".") {
98
+ continue;
99
+ }
100
+ if (seg === "..") {
101
+ parts.pop();
102
+ continue;
103
+ }
104
+ parts.push(seg);
105
+ }
106
+ return parts.join("/");
107
+ }