ooxml-core 1.1.0 → 1.2.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 (833) hide show
  1. package/README.md +18 -18
  2. package/dist/{PptxHandler-75LOVF7I.mjs → PptxHandler-SJTINPU4.mjs} +3 -3
  3. package/dist/automation/index.cjs +6550 -4115
  4. package/dist/automation/index.mjs +6550 -4115
  5. package/dist/chart/color-palettes.d.ts +2 -2
  6. package/dist/chart/color-palettes.d.ts.map +1 -1
  7. package/dist/chart/data-cache.d.ts +6 -0
  8. package/dist/chart/data-cache.d.ts.map +1 -0
  9. package/dist/chart/gradient-coincident-stops.d.ts +17 -0
  10. package/dist/chart/gradient-coincident-stops.d.ts.map +1 -0
  11. package/dist/chart/gradient-definition.d.ts +3 -3
  12. package/dist/chart/gradient-definition.d.ts.map +1 -1
  13. package/dist/chart/index.cjs +3065 -139
  14. package/dist/chart/index.d.ts +7 -0
  15. package/dist/chart/index.d.ts.map +1 -1
  16. package/dist/chart/index.mjs +3045 -140
  17. package/dist/chart/model-chrome.d.ts +39 -0
  18. package/dist/chart/model-chrome.d.ts.map +1 -0
  19. package/dist/chart/model-series.d.ts +189 -0
  20. package/dist/chart/model-series.d.ts.map +1 -0
  21. package/dist/chart/model.d.ts +202 -0
  22. package/dist/chart/model.d.ts.map +1 -0
  23. package/dist/chart/parse-chrome.d.ts +16 -0
  24. package/dist/chart/parse-chrome.d.ts.map +1 -0
  25. package/dist/chart/parse-plot.d.ts +11 -0
  26. package/dist/chart/parse-plot.d.ts.map +1 -0
  27. package/dist/chart/parse-series.d.ts +8 -0
  28. package/dist/chart/parse-series.d.ts.map +1 -0
  29. package/dist/chart/parse-space.d.ts +8 -0
  30. package/dist/chart/parse-space.d.ts.map +1 -0
  31. package/dist/chart/parse-text.d.ts +12 -0
  32. package/dist/chart/parse-text.d.ts.map +1 -0
  33. package/dist/chart/parse-util.d.ts +42 -0
  34. package/dist/chart/parse-util.d.ts.map +1 -0
  35. package/dist/{xlsx/layout → chart/render}/chart-appearance.d.ts +4 -4
  36. package/dist/chart/render/chart-appearance.d.ts.map +1 -0
  37. package/dist/chart/render/chart-colors.d.ts +9 -0
  38. package/dist/chart/render/chart-colors.d.ts.map +1 -0
  39. package/dist/chart/render/chart-scale.d.ts.map +1 -0
  40. package/dist/chart/render/chart-spacing.d.ts +6 -0
  41. package/dist/chart/render/chart-spacing.d.ts.map +1 -0
  42. package/dist/{xlsx/layout → chart/render}/chart-svg-appearance.d.ts +1 -1
  43. package/dist/chart/render/chart-svg-appearance.d.ts.map +1 -0
  44. package/dist/chart/render/chart-svg-bars.d.ts.map +1 -0
  45. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -0
  46. package/dist/chart/render/chart-svg-legend.d.ts.map +1 -0
  47. package/dist/chart/render/chart-svg-radial.d.ts.map +1 -0
  48. package/dist/chart/render/chart-svg-text-metrics.d.ts.map +1 -0
  49. package/dist/chart/render/chart-svg-title-text.d.ts.map +1 -0
  50. package/dist/chart/render/chart-svg-util.d.ts.map +1 -0
  51. package/dist/chart/render/chart-svg.d.ts.map +1 -0
  52. package/dist/chart/render/chart-title-text.d.ts +14 -0
  53. package/dist/chart/render/chart-title-text.d.ts.map +1 -0
  54. package/dist/chart/render/chart-value-axis.d.ts +6 -0
  55. package/dist/chart/render/chart-value-axis.d.ts.map +1 -0
  56. package/dist/chart/render/chart-view.d.ts +71 -0
  57. package/dist/chart/render/chart-view.d.ts.map +1 -0
  58. package/dist/chart/render/index.d.ts +9 -0
  59. package/dist/chart/render/index.d.ts.map +1 -0
  60. package/dist/chart/render/render-space.d.ts +34 -0
  61. package/dist/chart/render/render-space.d.ts.map +1 -0
  62. package/dist/chart/render/summary-from-space.d.ts +15 -0
  63. package/dist/chart/render/summary-from-space.d.ts.map +1 -0
  64. package/dist/chart/render/summary.d.ts +51 -0
  65. package/dist/chart/render/summary.d.ts.map +1 -0
  66. package/dist/chart/render/theme-palette.d.ts +8 -0
  67. package/dist/chart/render/theme-palette.d.ts.map +1 -0
  68. package/dist/chart/style-definition.d.ts +7 -7
  69. package/dist/chart/style-definition.d.ts.map +1 -1
  70. package/dist/chart/write-axes.d.ts +5 -0
  71. package/dist/chart/write-axes.d.ts.map +1 -0
  72. package/dist/chart/write-chrome.d.ts +9 -0
  73. package/dist/chart/write-chrome.d.ts.map +1 -0
  74. package/dist/chart/write-plot.d.ts +7 -0
  75. package/dist/chart/write-plot.d.ts.map +1 -0
  76. package/dist/chart/write-series.d.ts +7 -0
  77. package/dist/chart/write-series.d.ts.map +1 -0
  78. package/dist/chart/write-shape.d.ts +21 -0
  79. package/dist/chart/write-shape.d.ts.map +1 -0
  80. package/dist/chart/write-space.d.ts +15 -0
  81. package/dist/chart/write-space.d.ts.map +1 -0
  82. package/dist/chart/write-text-body.d.ts +6 -0
  83. package/dist/chart/write-text-body.d.ts.map +1 -0
  84. package/dist/chart/write-text.d.ts +15 -0
  85. package/dist/chart/write-text.d.ts.map +1 -0
  86. package/dist/chart/write-util.d.ts +24 -0
  87. package/dist/chart/write-util.d.ts.map +1 -0
  88. package/dist/chart/xml-fragment.d.ts +13 -0
  89. package/dist/chart/xml-fragment.d.ts.map +1 -0
  90. package/dist/{chunk-HUBK4EOT.mjs → chunk-3IT6ZD7K.mjs} +2 -0
  91. package/dist/{chunk-TS3E27NK.mjs → chunk-3UMDVJRN.mjs} +12 -1
  92. package/dist/{chunk-P22OKTRK.mjs → chunk-54S5A5PZ.mjs} +208 -159
  93. package/dist/{chunk-75LA7H3F.mjs → chunk-CQQAPUAG.mjs} +27440 -27402
  94. package/dist/{chunk-Q27H4HFS.mjs → chunk-FI4RSJ24.mjs} +1 -1
  95. package/dist/{chunk-OJI3N5AY.cjs → chunk-FRUB573B.cjs} +2 -0
  96. package/dist/{chunk-OMGH6IKY.mjs → chunk-TEOAOAIF.mjs} +42 -5
  97. package/dist/{chunk-RFX7AJDZ.mjs → chunk-VYTA2OUN.mjs} +2 -2
  98. package/dist/{chunk-LA7D6ZYQ.mjs → chunk-XCZ7U3GZ.mjs} +3569 -2075
  99. package/dist/{chunk-2C72N64G.cjs → chunk-XROY25LN.cjs} +12 -0
  100. package/dist/collab/index.cjs +1 -0
  101. package/dist/collab/index.mjs +1 -0
  102. package/dist/collab/transport-provider.d.ts.map +1 -1
  103. package/dist/color/hex-rgb.d.ts +5 -0
  104. package/dist/color/hex-rgb.d.ts.map +1 -0
  105. package/dist/color/index.cjs +12 -0
  106. package/dist/color/index.d.ts +1 -0
  107. package/dist/color/index.d.ts.map +1 -1
  108. package/dist/color/index.mjs +11 -1
  109. package/dist/diagram/engine/alg-composite.d.ts +18 -0
  110. package/dist/diagram/engine/alg-composite.d.ts.map +1 -0
  111. package/dist/diagram/engine/alg-connector.d.ts +17 -0
  112. package/dist/diagram/engine/alg-connector.d.ts.map +1 -0
  113. package/dist/diagram/engine/alg-cycle.d.ts +28 -0
  114. package/dist/diagram/engine/alg-cycle.d.ts.map +1 -0
  115. package/dist/diagram/engine/alg-hier.d.ts +33 -0
  116. package/dist/diagram/engine/alg-hier.d.ts.map +1 -0
  117. package/dist/diagram/engine/alg-linear.d.ts +24 -0
  118. package/dist/diagram/engine/alg-linear.d.ts.map +1 -0
  119. package/dist/diagram/engine/alg-pyra.d.ts +117 -0
  120. package/dist/diagram/engine/alg-pyra.d.ts.map +1 -0
  121. package/dist/diagram/engine/alg-snake.d.ts +21 -0
  122. package/dist/diagram/engine/alg-snake.d.ts.map +1 -0
  123. package/dist/diagram/engine/axis.d.ts +24 -0
  124. package/dist/diagram/engine/axis.d.ts.map +1 -0
  125. package/dist/diagram/engine/conditions.d.ts +12 -0
  126. package/dist/diagram/engine/conditions.d.ts.map +1 -0
  127. package/dist/diagram/engine/connector-shape.d.ts +25 -0
  128. package/dist/diagram/engine/connector-shape.d.ts.map +1 -0
  129. package/dist/diagram/engine/connector-size.d.ts +30 -0
  130. package/dist/diagram/engine/connector-size.d.ts.map +1 -0
  131. package/dist/diagram/engine/constraint-eval.d.ts +37 -0
  132. package/dist/diagram/engine/constraint-eval.d.ts.map +1 -0
  133. package/dist/diagram/engine/constraint-fill-idiom.d.ts +61 -0
  134. package/dist/diagram/engine/constraint-fill-idiom.d.ts.map +1 -0
  135. package/dist/diagram/engine/constraint-units.d.ts +35 -0
  136. package/dist/diagram/engine/constraint-units.d.ts.map +1 -0
  137. package/dist/diagram/engine/data-points.d.ts +48 -0
  138. package/dist/diagram/engine/data-points.d.ts.map +1 -0
  139. package/dist/diagram/engine/engine-context.d.ts +21 -0
  140. package/dist/diagram/engine/engine-context.d.ts.map +1 -0
  141. package/dist/diagram/engine/engine-first-allowlist.d.ts +31 -0
  142. package/dist/diagram/engine/engine-first-allowlist.d.ts.map +1 -0
  143. package/dist/diagram/engine/engine-fonts.d.ts +26 -0
  144. package/dist/diagram/engine/engine-fonts.d.ts.map +1 -0
  145. package/dist/diagram/engine/engine-node.d.ts +72 -0
  146. package/dist/diagram/engine/engine-node.d.ts.map +1 -0
  147. package/dist/diagram/engine/engine-to-result.d.ts +43 -0
  148. package/dist/diagram/engine/engine-to-result.d.ts.map +1 -0
  149. package/dist/diagram/engine/engine.d.ts +18 -0
  150. package/dist/diagram/engine/engine.d.ts.map +1 -0
  151. package/dist/diagram/engine/font-groups.d.ts +33 -0
  152. package/dist/diagram/engine/font-groups.d.ts.map +1 -0
  153. package/dist/diagram/engine/font-length.d.ts +26 -0
  154. package/dist/diagram/engine/font-length.d.ts.map +1 -0
  155. package/dist/diagram/engine/font-search.d.ts +38 -0
  156. package/dist/diagram/engine/font-search.d.ts.map +1 -0
  157. package/dist/diagram/engine/hier-assistants.d.ts +47 -0
  158. package/dist/diagram/engine/hier-assistants.d.ts.map +1 -0
  159. package/dist/diagram/engine/hier-hang.d.ts +28 -0
  160. package/dist/diagram/engine/hier-hang.d.ts.map +1 -0
  161. package/dist/diagram/engine/hier-measure.d.ts +33 -0
  162. package/dist/diagram/engine/hier-measure.d.ts.map +1 -0
  163. package/dist/diagram/engine/hier-node-size.d.ts +23 -0
  164. package/dist/diagram/engine/hier-node-size.d.ts.map +1 -0
  165. package/dist/diagram/engine/hier-shape.d.ts +31 -0
  166. package/dist/diagram/engine/hier-shape.d.ts.map +1 -0
  167. package/dist/diagram/engine/index.d.ts +6 -0
  168. package/dist/diagram/engine/index.d.ts.map +1 -0
  169. package/dist/diagram/engine/layout-def-parse.d.ts +13 -0
  170. package/dist/diagram/engine/layout-def-parse.d.ts.map +1 -0
  171. package/dist/diagram/engine/layout-def-types.d.ts +118 -0
  172. package/dist/diagram/engine/layout-def-types.d.ts.map +1 -0
  173. package/dist/diagram/engine/layout-driver.d.ts +41 -0
  174. package/dist/diagram/engine/layout-driver.d.ts.map +1 -0
  175. package/dist/diagram/engine/layout-font.d.ts +27 -0
  176. package/dist/diagram/engine/layout-font.d.ts.map +1 -0
  177. package/dist/diagram/engine/move-with-merge.d.ts +49 -0
  178. package/dist/diagram/engine/move-with-merge.d.ts.map +1 -0
  179. package/dist/diagram/engine/node-text.d.ts +20 -0
  180. package/dist/diagram/engine/node-text.d.ts.map +1 -0
  181. package/dist/diagram/engine/ordered-xml.d.ts +30 -0
  182. package/dist/diagram/engine/ordered-xml.d.ts.map +1 -0
  183. package/dist/diagram/engine/preferred-size.d.ts +28 -0
  184. package/dist/diagram/engine/preferred-size.d.ts.map +1 -0
  185. package/dist/diagram/engine/pres-tree.d.ts +58 -0
  186. package/dist/diagram/engine/pres-tree.d.ts.map +1 -0
  187. package/dist/diagram/engine/registry.d.ts +7 -0
  188. package/dist/diagram/engine/registry.d.ts.map +1 -0
  189. package/dist/diagram/engine/render-filter.d.ts +43 -0
  190. package/dist/diagram/engine/render-filter.d.ts.map +1 -0
  191. package/dist/diagram/engine/shape-adjust.d.ts +16 -0
  192. package/dist/diagram/engine/shape-adjust.d.ts.map +1 -0
  193. package/dist/diagram/engine/shape-transform.d.ts +14 -0
  194. package/dist/diagram/engine/shape-transform.d.ts.map +1 -0
  195. package/dist/diagram/engine/snake-rule-fit.d.ts +34 -0
  196. package/dist/diagram/engine/snake-rule-fit.d.ts.map +1 -0
  197. package/dist/diagram/engine/style-label.d.ts +24 -0
  198. package/dist/diagram/engine/style-label.d.ts.map +1 -0
  199. package/dist/diagram/engine/text-fit.d.ts +61 -0
  200. package/dist/diagram/engine/text-fit.d.ts.map +1 -0
  201. package/dist/diagram/engine/text-grow.d.ts +33 -0
  202. package/dist/diagram/engine/text-grow.d.ts.map +1 -0
  203. package/dist/diagram/engine/text-measure.d.ts +77 -0
  204. package/dist/diagram/engine/text-measure.d.ts.map +1 -0
  205. package/dist/diagram/hierarchy/index.d.ts +5 -0
  206. package/dist/diagram/hierarchy/index.d.ts.map +1 -0
  207. package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts +65 -0
  208. package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts.map +1 -0
  209. package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts +68 -0
  210. package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts.map +1 -0
  211. package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts +54 -0
  212. package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts.map +1 -0
  213. package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts +58 -0
  214. package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts.map +1 -0
  215. package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts +63 -0
  216. package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts.map +1 -0
  217. package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts +41 -0
  218. package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts.map +1 -0
  219. package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts +129 -0
  220. package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts.map +1 -0
  221. package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts +76 -0
  222. package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts.map +1 -0
  223. package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts +49 -0
  224. package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts.map +1 -0
  225. package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts +58 -0
  226. package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts.map +1 -0
  227. package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts +48 -0
  228. package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts.map +1 -0
  229. package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts +97 -0
  230. package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts.map +1 -0
  231. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts +42 -0
  232. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts.map +1 -0
  233. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts +74 -0
  234. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts.map +1 -0
  235. package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts +111 -0
  236. package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts.map +1 -0
  237. package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts +44 -0
  238. package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts.map +1 -0
  239. package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts +60 -0
  240. package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts.map +1 -0
  241. package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts +106 -0
  242. package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts.map +1 -0
  243. package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts +133 -0
  244. package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts.map +1 -0
  245. package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts +28 -0
  246. package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts.map +1 -0
  247. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts +28 -0
  248. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts.map +1 -0
  249. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts +86 -0
  250. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts.map +1 -0
  251. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts +36 -0
  252. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts.map +1 -0
  253. package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts +118 -0
  254. package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts.map +1 -0
  255. package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts +64 -0
  256. package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts.map +1 -0
  257. package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts +53 -0
  258. package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts.map +1 -0
  259. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts +36 -0
  260. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts.map +1 -0
  261. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts +81 -0
  262. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts.map +1 -0
  263. package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts +78 -0
  264. package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts.map +1 -0
  265. package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts +140 -0
  266. package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts.map +1 -0
  267. package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts +131 -0
  268. package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts.map +1 -0
  269. package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts +91 -0
  270. package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts.map +1 -0
  271. package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts +21 -0
  272. package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts.map +1 -0
  273. package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts +36 -0
  274. package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts.map +1 -0
  275. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts +20 -0
  276. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts.map +1 -0
  277. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts +50 -0
  278. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts.map +1 -0
  279. package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts +23 -0
  280. package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts.map +1 -0
  281. package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts +22 -0
  282. package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts.map +1 -0
  283. package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts +93 -0
  284. package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts.map +1 -0
  285. package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts +49 -0
  286. package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts.map +1 -0
  287. package/dist/diagram/index.cjs +22537 -80
  288. package/dist/diagram/index.d.ts +4 -0
  289. package/dist/diagram/index.d.ts.map +1 -1
  290. package/dist/diagram/index.mjs +22453 -81
  291. package/dist/diagram/layout/index.d.ts +38 -0
  292. package/dist/diagram/layout/index.d.ts.map +1 -0
  293. package/dist/diagram/layout/smartart-choose-xml.d.ts +32 -0
  294. package/dist/diagram/layout/smartart-choose-xml.d.ts.map +1 -0
  295. package/dist/diagram/layout/smartart-constraint-branch-index.d.ts +49 -0
  296. package/dist/diagram/layout/smartart-constraint-branch-index.d.ts.map +1 -0
  297. package/dist/diagram/layout/smartart-constraint-declared-by.d.ts +64 -0
  298. package/dist/diagram/layout/smartart-constraint-declared-by.d.ts.map +1 -0
  299. package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts +18 -0
  300. package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts.map +1 -0
  301. package/dist/diagram/layout/smartart-constraint-resolve.d.ts +24 -0
  302. package/dist/diagram/layout/smartart-constraint-resolve.d.ts.map +1 -0
  303. package/dist/diagram/layout/smartart-constraint-rules.d.ts +26 -0
  304. package/dist/diagram/layout/smartart-constraint-rules.d.ts.map +1 -0
  305. package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts +100 -0
  306. package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts.map +1 -0
  307. package/dist/diagram/layout/smartart-constraint-solver.d.ts +133 -0
  308. package/dist/diagram/layout/smartart-constraint-solver.d.ts.map +1 -0
  309. package/dist/diagram/layout/smartart-constraint-values.d.ts +5 -0
  310. package/dist/diagram/layout/smartart-constraint-values.d.ts.map +1 -0
  311. package/dist/diagram/layout/smartart-font-table.d.ts +14 -0
  312. package/dist/diagram/layout/smartart-font-table.d.ts.map +1 -0
  313. package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts +75 -0
  314. package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts.map +1 -0
  315. package/dist/diagram/layout/smartart-layout-control-flow.d.ts +25 -0
  316. package/dist/diagram/layout/smartart-layout-control-flow.d.ts.map +1 -0
  317. package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts +56 -0
  318. package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts.map +1 -0
  319. package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts +37 -0
  320. package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts.map +1 -0
  321. package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts +66 -0
  322. package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts.map +1 -0
  323. package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts +128 -0
  324. package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts.map +1 -0
  325. package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts +73 -0
  326. package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts.map +1 -0
  327. package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts +48 -0
  328. package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts.map +1 -0
  329. package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts +19 -0
  330. package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts.map +1 -0
  331. package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts +60 -0
  332. package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts.map +1 -0
  333. package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts +36 -0
  334. package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts.map +1 -0
  335. package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts +42 -0
  336. package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts.map +1 -0
  337. package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts +102 -0
  338. package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts.map +1 -0
  339. package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts +32 -0
  340. package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts.map +1 -0
  341. package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts +33 -0
  342. package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts.map +1 -0
  343. package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts +95 -0
  344. package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts.map +1 -0
  345. package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts +84 -0
  346. package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts.map +1 -0
  347. package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts +60 -0
  348. package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts.map +1 -0
  349. package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts +86 -0
  350. package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts.map +1 -0
  351. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts +44 -0
  352. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts.map +1 -0
  353. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts +109 -0
  354. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts.map +1 -0
  355. package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts +182 -0
  356. package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts.map +1 -0
  357. package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts +60 -0
  358. package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts.map +1 -0
  359. package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts +36 -0
  360. package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts.map +1 -0
  361. package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts +92 -0
  362. package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts.map +1 -0
  363. package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts +45 -0
  364. package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts.map +1 -0
  365. package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts +57 -0
  366. package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts.map +1 -0
  367. package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts +24 -0
  368. package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts.map +1 -0
  369. package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts +41 -0
  370. package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts.map +1 -0
  371. package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts +34 -0
  372. package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts.map +1 -0
  373. package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts +29 -0
  374. package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts.map +1 -0
  375. package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts +40 -0
  376. package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts.map +1 -0
  377. package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts +22 -0
  378. package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts.map +1 -0
  379. package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts +69 -0
  380. package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts.map +1 -0
  381. package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts +56 -0
  382. package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts.map +1 -0
  383. package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts +42 -0
  384. package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts.map +1 -0
  385. package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts +23 -0
  386. package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts.map +1 -0
  387. package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts +28 -0
  388. package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts.map +1 -0
  389. package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts +31 -0
  390. package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts.map +1 -0
  391. package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts +36 -0
  392. package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts.map +1 -0
  393. package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts +21 -0
  394. package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts.map +1 -0
  395. package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts +116 -0
  396. package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts.map +1 -0
  397. package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts +110 -0
  398. package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts.map +1 -0
  399. package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts +50 -0
  400. package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts.map +1 -0
  401. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts +66 -0
  402. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts.map +1 -0
  403. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts +81 -0
  404. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts.map +1 -0
  405. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts +109 -0
  406. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts.map +1 -0
  407. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts +121 -0
  408. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts.map +1 -0
  409. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts +57 -0
  410. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts.map +1 -0
  411. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts +34 -0
  412. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts.map +1 -0
  413. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts +39 -0
  414. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts.map +1 -0
  415. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts +22 -0
  416. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts.map +1 -0
  417. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts +43 -0
  418. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts.map +1 -0
  419. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts +76 -0
  420. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts.map +1 -0
  421. package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts +40 -0
  422. package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts.map +1 -0
  423. package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts +69 -0
  424. package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts.map +1 -0
  425. package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts +18 -0
  426. package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts.map +1 -0
  427. package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts +29 -0
  428. package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts.map +1 -0
  429. package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts +49 -0
  430. package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts.map +1 -0
  431. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts +60 -0
  432. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts.map +1 -0
  433. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts +45 -0
  434. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts.map +1 -0
  435. package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts +26 -0
  436. package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts.map +1 -0
  437. package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts +62 -0
  438. package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts.map +1 -0
  439. package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts +36 -0
  440. package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts.map +1 -0
  441. package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts +80 -0
  442. package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts.map +1 -0
  443. package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts +102 -0
  444. package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts.map +1 -0
  445. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts +23 -0
  446. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts.map +1 -0
  447. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts +77 -0
  448. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts.map +1 -0
  449. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts +20 -0
  450. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts.map +1 -0
  451. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts +53 -0
  452. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts.map +1 -0
  453. package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts +50 -0
  454. package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts.map +1 -0
  455. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts +87 -0
  456. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts.map +1 -0
  457. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts +57 -0
  458. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts.map +1 -0
  459. package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts +109 -0
  460. package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts.map +1 -0
  461. package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts +42 -0
  462. package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts.map +1 -0
  463. package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts +94 -0
  464. package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts.map +1 -0
  465. package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts +17 -0
  466. package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts.map +1 -0
  467. package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts +21 -0
  468. package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts.map +1 -0
  469. package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts +76 -0
  470. package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts.map +1 -0
  471. package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts +20 -0
  472. package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts.map +1 -0
  473. package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts +77 -0
  474. package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts.map +1 -0
  475. package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts +93 -0
  476. package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts.map +1 -0
  477. package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts +58 -0
  478. package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts.map +1 -0
  479. package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts +61 -0
  480. package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts.map +1 -0
  481. package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts +29 -0
  482. package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts.map +1 -0
  483. package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts +41 -0
  484. package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts.map +1 -0
  485. package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts +100 -0
  486. package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts.map +1 -0
  487. package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts +86 -0
  488. package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts.map +1 -0
  489. package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts +18 -0
  490. package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts.map +1 -0
  491. package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts +28 -0
  492. package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts.map +1 -0
  493. package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts +15 -0
  494. package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts.map +1 -0
  495. package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts +12 -0
  496. package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts.map +1 -0
  497. package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts +69 -0
  498. package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts.map +1 -0
  499. package/dist/diagram/layout/smartart-layout-interpreter.d.ts +80 -0
  500. package/dist/diagram/layout/smartart-layout-interpreter.d.ts.map +1 -0
  501. package/dist/diagram/layout/smartart-layout-item-font-role.d.ts +80 -0
  502. package/dist/diagram/layout/smartart-layout-item-font-role.d.ts.map +1 -0
  503. package/dist/diagram/layout/smartart-layout-item-font-size.d.ts +129 -0
  504. package/dist/diagram/layout/smartart-layout-item-font-size.d.ts.map +1 -0
  505. package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts +70 -0
  506. package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts.map +1 -0
  507. package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts +139 -0
  508. package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts.map +1 -0
  509. package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts +105 -0
  510. package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts.map +1 -0
  511. package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts +17 -0
  512. package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts.map +1 -0
  513. package/dist/diagram/layout/smartart-layout-shape-preset.d.ts +127 -0
  514. package/dist/diagram/layout/smartart-layout-shape-preset.d.ts.map +1 -0
  515. package/dist/diagram/layout/smartart-layout-snake-grid.d.ts +43 -0
  516. package/dist/diagram/layout/smartart-layout-snake-grid.d.ts.map +1 -0
  517. package/dist/diagram/layout/smartart-layout-style-helpers.d.ts +84 -0
  518. package/dist/diagram/layout/smartart-layout-style-helpers.d.ts.map +1 -0
  519. package/dist/diagram/layout/smartart-layout-types.d.ts +253 -0
  520. package/dist/diagram/layout/smartart-layout-types.d.ts.map +1 -0
  521. package/dist/diagram/layout/smartart-line-pitch.d.ts +29 -0
  522. package/dist/diagram/layout/smartart-line-pitch.d.ts.map +1 -0
  523. package/dist/diagram/layout/smartart-node-role-colors.d.ts +30 -0
  524. package/dist/diagram/layout/smartart-node-role-colors.d.ts.map +1 -0
  525. package/dist/diagram/layout/smartart-node-tree-axis.d.ts +91 -0
  526. package/dist/diagram/layout/smartart-node-tree-axis.d.ts.map +1 -0
  527. package/dist/diagram/layout/smartart-text-wrap-fit.d.ts +84 -0
  528. package/dist/diagram/layout/smartart-text-wrap-fit.d.ts.map +1 -0
  529. package/dist/diagram/layout/smartart-tree.d.ts +33 -0
  530. package/dist/diagram/layout/smartart-tree.d.ts.map +1 -0
  531. package/dist/diagram/model/constraint-rules.d.ts +31 -0
  532. package/dist/diagram/model/constraint-rules.d.ts.map +1 -0
  533. package/dist/diagram/model/data.d.ts +109 -0
  534. package/dist/diagram/model/data.d.ts.map +1 -0
  535. package/dist/diagram/model/index.d.ts +7 -0
  536. package/dist/diagram/model/index.d.ts.map +1 -0
  537. package/dist/diagram/model/layout-definition.d.ts +276 -0
  538. package/dist/diagram/model/layout-definition.d.ts.map +1 -0
  539. package/dist/diagram/model/layout-primitives.d.ts +82 -0
  540. package/dist/diagram/model/layout-primitives.d.ts.map +1 -0
  541. package/dist/diagram/model/node.d.ts +194 -0
  542. package/dist/diagram/model/node.d.ts.map +1 -0
  543. package/dist/diagram/model/style-definition.d.ts +131 -0
  544. package/dist/diagram/model/style-definition.d.ts.map +1 -0
  545. package/dist/docx/chart-paint.d.ts +14 -0
  546. package/dist/docx/chart-paint.d.ts.map +1 -0
  547. package/dist/docx/chart.d.ts +43 -0
  548. package/dist/docx/chart.d.ts.map +1 -0
  549. package/dist/docx/drawing.d.ts.map +1 -1
  550. package/dist/docx/embedded.cjs +1393 -326
  551. package/dist/docx/embedded.mjs +1393 -326
  552. package/dist/docx/index.cjs +4042 -683
  553. package/dist/docx/index.d.ts +2 -0
  554. package/dist/docx/index.d.ts.map +1 -1
  555. package/dist/docx/index.mjs +4038 -684
  556. package/dist/docx/inline-model.d.ts +3 -0
  557. package/dist/docx/inline-model.d.ts.map +1 -1
  558. package/dist/docx/layout/adapter.d.ts.map +1 -1
  559. package/dist/docx/layout/index.cjs +2672 -88
  560. package/dist/docx/layout/index.mjs +2673 -89
  561. package/dist/docx/layout/input.d.ts +5 -0
  562. package/dist/docx/layout/input.d.ts.map +1 -1
  563. package/dist/docx/load/index.cjs +1616 -549
  564. package/dist/docx/load/index.mjs +1616 -549
  565. package/dist/docx/parse.d.ts.map +1 -1
  566. package/dist/docx/ui/chart-spec.d.ts +10 -0
  567. package/dist/docx/ui/chart-spec.d.ts.map +1 -0
  568. package/dist/docx/ui/index.cjs +2600 -186
  569. package/dist/docx/ui/index.d.ts +1 -0
  570. package/dist/docx/ui/index.d.ts.map +1 -1
  571. package/dist/docx/ui/index.mjs +2599 -188
  572. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -1
  573. package/dist/docx/ui/run-adapter.d.ts.map +1 -1
  574. package/dist/drawingml/write-line.d.ts +7 -0
  575. package/dist/drawingml/write-line.d.ts.map +1 -0
  576. package/dist/geometry/ooxml-arc.d.ts +31 -0
  577. package/dist/geometry/ooxml-arc.d.ts.map +1 -0
  578. package/dist/geometry/preset-shape-evaluator.d.ts +73 -0
  579. package/dist/geometry/preset-shape-evaluator.d.ts.map +1 -0
  580. package/dist/index.cjs +34835 -18367
  581. package/dist/index.mjs +34831 -18367
  582. package/dist/opc/embedded-packages.d.ts +11 -0
  583. package/dist/opc/embedded-packages.d.ts.map +1 -0
  584. package/dist/opc/index.cjs +365 -70
  585. package/dist/opc/index.d.ts +1 -0
  586. package/dist/opc/index.d.ts.map +1 -1
  587. package/dist/opc/index.mjs +353 -71
  588. package/dist/opc/properties/app.d.ts +9 -3
  589. package/dist/opc/properties/app.d.ts.map +1 -1
  590. package/dist/opc/properties/core.d.ts +5 -1
  591. package/dist/opc/properties/core.d.ts.map +1 -1
  592. package/dist/opc/properties/custom.d.ts +19 -0
  593. package/dist/opc/properties/custom.d.ts.map +1 -1
  594. package/dist/opc/properties/index.d.ts +6 -3
  595. package/dist/opc/properties/index.d.ts.map +1 -1
  596. package/dist/opc/properties/patch.d.ts +38 -0
  597. package/dist/opc/properties/patch.d.ts.map +1 -0
  598. package/dist/opc/properties/title-groups.d.ts +30 -0
  599. package/dist/opc/properties/title-groups.d.ts.map +1 -0
  600. package/dist/opc/properties/types.d.ts +15 -0
  601. package/dist/opc/properties/types.d.ts.map +1 -1
  602. package/dist/pptx/automation/index.cjs +9023 -7151
  603. package/dist/pptx/automation/index.d.ts +4 -4
  604. package/dist/pptx/automation/index.mjs +6 -6
  605. package/dist/pptx/chunks/{index-BYkdcS8J.d.ts → index-EZJZ7USt.d.ts} +907 -962
  606. package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -0
  607. package/dist/pptx/chunks/{index-BHqL5KXH.d.ts → index-JNv7AJx5.d.ts} +163 -210
  608. package/dist/pptx/chunks/index-JNv7AJx5.d.ts.map +1 -0
  609. package/dist/pptx/chunks/{smart-art-CO2jmJFf.d.ts → smart-art-Q2kZQtHh.d.ts} +436 -374
  610. package/dist/pptx/chunks/smart-art-Q2kZQtHh.d.ts.map +1 -0
  611. package/dist/pptx/chunks/{text-operations-DEJ7alZR.d.ts → text-operations-DtCxXrMh.d.ts} +55 -4
  612. package/dist/pptx/chunks/text-operations-DtCxXrMh.d.ts.map +1 -0
  613. package/dist/pptx/cli/index.cjs +8702 -6830
  614. package/dist/pptx/cli/index.d.ts +1 -1
  615. package/dist/pptx/cli/index.mjs +5 -5
  616. package/dist/pptx/converter/index.cjs +7124 -7136
  617. package/dist/pptx/converter/index.d.ts +1 -1
  618. package/dist/pptx/converter/index.mjs +3 -3
  619. package/dist/pptx/editor/render/table-cell-edit.cjs +7 -3
  620. package/dist/pptx/editor/render/table-cell-edit.d.ts +16 -1
  621. package/dist/pptx/editor/render/table-cell-edit.d.ts.map +1 -1
  622. package/dist/pptx/editor/render/table-cell-edit.mjs +1 -1
  623. package/dist/pptx/editor/render/table-cell-merge.cjs +3 -3
  624. package/dist/pptx/editor/render/table-cell-merge.mjs +1 -1
  625. package/dist/pptx/editor/render/table-data-grid-ops.cjs +7 -7
  626. package/dist/pptx/editor/render/table-data-grid-ops.mjs +2 -2
  627. package/dist/pptx/editor/render/table-layout.cjs +6 -6
  628. package/dist/pptx/editor/render/table-layout.d.ts.map +1 -1
  629. package/dist/pptx/editor/render/table-layout.mjs +1 -1
  630. package/dist/pptx/editor/render/table-merge.cjs +5 -5
  631. package/dist/pptx/editor/render/table-merge.mjs +1 -1
  632. package/dist/pptx/index.cjs +9345 -7304
  633. package/dist/pptx/index.d.ts +5 -5
  634. package/dist/pptx/index.mjs +6 -6
  635. package/dist/pptx/smartart-layouts/index.cjs +135 -106
  636. package/dist/pptx/smartart-layouts/index.d.ts +1 -1
  637. package/dist/pptx/smartart-layouts/index.mjs +1 -1
  638. package/dist/teams/content.d.ts.map +1 -1
  639. package/dist/teams/index.cjs +3778 -1999
  640. package/dist/teams/index.d.ts +1 -0
  641. package/dist/teams/index.d.ts.map +1 -1
  642. package/dist/teams/index.mjs +3777 -1999
  643. package/dist/teams/server-file-storage.d.ts +11 -0
  644. package/dist/teams/server-file-storage.d.ts.map +1 -0
  645. package/dist/teams/store.d.ts +2 -0
  646. package/dist/teams/store.d.ts.map +1 -1
  647. package/dist/teams/stored-file.d.ts.map +1 -1
  648. package/dist/{xlsx/layout/font-family.d.ts → text/css-font-family.d.ts} +1 -1
  649. package/dist/text/css-font-family.d.ts.map +1 -0
  650. package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts +10 -0
  651. package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts.map +1 -0
  652. package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts +10 -0
  653. package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts.map +1 -0
  654. package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts +10 -0
  655. package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts.map +1 -0
  656. package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts +10 -0
  657. package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts.map +1 -0
  658. package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts +10 -0
  659. package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts.map +1 -0
  660. package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts +10 -0
  661. package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts.map +1 -0
  662. package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts +10 -0
  663. package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts.map +1 -0
  664. package/dist/text/font-metrics/font-advance-widths.generated.d.ts +48 -0
  665. package/dist/text/font-metrics/font-advance-widths.generated.d.ts.map +1 -0
  666. package/dist/text/font-metrics/font-kerning.d.ts +19 -0
  667. package/dist/text/font-metrics/font-kerning.d.ts.map +1 -0
  668. package/dist/visio/index.cjs +645 -119
  669. package/dist/visio/index.mjs +645 -119
  670. package/dist/visio/theme-color.d.ts +13 -3
  671. package/dist/visio/theme-color.d.ts.map +1 -1
  672. package/dist/visio/theme-resolve.d.ts +2 -1
  673. package/dist/visio/theme-resolve.d.ts.map +1 -1
  674. package/dist/visio/theme.d.ts +5 -2
  675. package/dist/visio/theme.d.ts.map +1 -1
  676. package/dist/xlsx/collab/adapter.d.ts +18 -0
  677. package/dist/xlsx/collab/adapter.d.ts.map +1 -0
  678. package/dist/xlsx/collab/apply.d.ts +8 -0
  679. package/dist/xlsx/collab/apply.d.ts.map +1 -0
  680. package/dist/xlsx/collab/bind.d.ts +34 -0
  681. package/dist/xlsx/collab/bind.d.ts.map +1 -0
  682. package/dist/xlsx/collab/codec.d.ts +35 -0
  683. package/dist/xlsx/collab/codec.d.ts.map +1 -0
  684. package/dist/xlsx/collab/dirty.d.ts +23 -0
  685. package/dist/xlsx/collab/dirty.d.ts.map +1 -0
  686. package/dist/xlsx/collab/index.cjs +1245 -0
  687. package/dist/xlsx/collab/index.d.ts +10 -0
  688. package/dist/xlsx/collab/index.d.ts.map +1 -0
  689. package/dist/xlsx/collab/index.mjs +1207 -0
  690. package/dist/xlsx/collab/lines.d.ts +22 -0
  691. package/dist/xlsx/collab/lines.d.ts.map +1 -0
  692. package/dist/xlsx/collab/names.d.ts +16 -0
  693. package/dist/xlsx/collab/names.d.ts.map +1 -0
  694. package/dist/xlsx/collab/presence.d.ts +31 -0
  695. package/dist/xlsx/collab/presence.d.ts.map +1 -0
  696. package/dist/xlsx/collab/schema.d.ts +30 -0
  697. package/dist/xlsx/collab/schema.d.ts.map +1 -0
  698. package/dist/xlsx/collab/sheets.d.ts +34 -0
  699. package/dist/xlsx/collab/sheets.d.ts.map +1 -0
  700. package/dist/xlsx/collab/styles.d.ts +26 -0
  701. package/dist/xlsx/collab/styles.d.ts.map +1 -0
  702. package/dist/xlsx/collab/write.d.ts +14 -0
  703. package/dist/xlsx/collab/write.d.ts.map +1 -0
  704. package/dist/xlsx/edit/chart-colors.d.ts +2 -2
  705. package/dist/xlsx/edit/chart-colors.d.ts.map +1 -1
  706. package/dist/xlsx/edit/chart-element-fill.d.ts +3 -3
  707. package/dist/xlsx/edit/chart-element-fill.d.ts.map +1 -1
  708. package/dist/xlsx/edit/chart-series-fill.d.ts +2 -2
  709. package/dist/xlsx/edit/chart-series-fill.d.ts.map +1 -1
  710. package/dist/xlsx/edit/chart-series-gradient.d.ts +3 -3
  711. package/dist/xlsx/edit/chart-series-gradient.d.ts.map +1 -1
  712. package/dist/xlsx/edit/chart-series-target.d.ts +15 -0
  713. package/dist/xlsx/edit/chart-series-target.d.ts.map +1 -0
  714. package/dist/xlsx/edit/chart-series-transparency.d.ts +2 -2
  715. package/dist/xlsx/edit/chart-series-transparency.d.ts.map +1 -1
  716. package/dist/xlsx/edit/external.d.ts +28 -0
  717. package/dist/xlsx/edit/external.d.ts.map +1 -0
  718. package/dist/xlsx/edit/index.d.ts +1 -0
  719. package/dist/xlsx/edit/index.d.ts.map +1 -1
  720. package/dist/xlsx/edit/session-calc.d.ts +7 -0
  721. package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
  722. package/dist/xlsx/edit/session.d.ts.map +1 -1
  723. package/dist/xlsx/edit/types.d.ts +14 -1
  724. package/dist/xlsx/edit/types.d.ts.map +1 -1
  725. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  726. package/dist/xlsx/formula/lexemes.d.ts +6 -0
  727. package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
  728. package/dist/xlsx/formula/tokenizer.d.ts.map +1 -1
  729. package/dist/xlsx/index.cjs +4599 -2399
  730. package/dist/xlsx/index.mjs +4589 -2400
  731. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  732. package/dist/xlsx/layout/chart-view.d.ts +3 -54
  733. package/dist/xlsx/layout/chart-view.d.ts.map +1 -1
  734. package/dist/xlsx/layout/colors.d.ts +1 -4
  735. package/dist/xlsx/layout/colors.d.ts.map +1 -1
  736. package/dist/xlsx/layout/index.d.ts +7 -4
  737. package/dist/xlsx/layout/index.d.ts.map +1 -1
  738. package/dist/xlsx/layout/remote-selections.d.ts +40 -0
  739. package/dist/xlsx/layout/remote-selections.d.ts.map +1 -0
  740. package/dist/xlsx/layout/sparkline-data.d.ts +19 -0
  741. package/dist/xlsx/layout/sparkline-data.d.ts.map +1 -0
  742. package/dist/xlsx/layout/sparkline-view.d.ts +52 -0
  743. package/dist/xlsx/layout/sparkline-view.d.ts.map +1 -0
  744. package/dist/xlsx/layout/tint.d.ts +3 -12
  745. package/dist/xlsx/layout/tint.d.ts.map +1 -1
  746. package/dist/xlsx/layout/types.d.ts +3 -0
  747. package/dist/xlsx/layout/types.d.ts.map +1 -1
  748. package/dist/xlsx/load/index.cjs +3036 -1286
  749. package/dist/xlsx/load/index.mjs +3036 -1286
  750. package/dist/xlsx/model-sparklines.d.ts +52 -0
  751. package/dist/xlsx/model-sparklines.d.ts.map +1 -0
  752. package/dist/xlsx/model.d.ts +10 -47
  753. package/dist/xlsx/model.d.ts.map +1 -1
  754. package/dist/xlsx/read/chart.d.ts +1 -4
  755. package/dist/xlsx/read/chart.d.ts.map +1 -1
  756. package/dist/xlsx/read/index.d.ts +1 -0
  757. package/dist/xlsx/read/index.d.ts.map +1 -1
  758. package/dist/xlsx/read/sheet-data-source.d.ts +10 -0
  759. package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -0
  760. package/dist/xlsx/read/sparklines.d.ts +12 -0
  761. package/dist/xlsx/read/sparklines.d.ts.map +1 -0
  762. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  763. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
  764. package/dist/xlsx/ui/context.d.ts +15 -1
  765. package/dist/xlsx/ui/context.d.ts.map +1 -1
  766. package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -1
  767. package/dist/xlsx/ui/grid/cell-paint.d.ts +1 -1
  768. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -1
  769. package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -1
  770. package/dist/xlsx/ui/index.cjs +1127 -559
  771. package/dist/xlsx/ui/index.mjs +1127 -560
  772. package/dist/xlsx/ui/locales/de/collab.d.ts +2 -0
  773. package/dist/xlsx/ui/locales/de/collab.d.ts.map +1 -0
  774. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
  775. package/dist/xlsx/ui/locales/en/collab.d.ts +2 -0
  776. package/dist/xlsx/ui/locales/en/collab.d.ts.map +1 -0
  777. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
  778. package/dist/xlsx/ui/locales/es/collab.d.ts +2 -0
  779. package/dist/xlsx/ui/locales/es/collab.d.ts.map +1 -0
  780. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
  781. package/dist/xlsx/ui/locales/fr/collab.d.ts +2 -0
  782. package/dist/xlsx/ui/locales/fr/collab.d.ts.map +1 -0
  783. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
  784. package/dist/xlsx/ui/locales/zh-CN/collab.d.ts +2 -0
  785. package/dist/xlsx/ui/locales/zh-CN/collab.d.ts.map +1 -0
  786. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
  787. package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -1
  788. package/dist/xlsx/write/chart-colors.d.ts +3 -0
  789. package/dist/xlsx/write/chart-colors.d.ts.map +1 -1
  790. package/dist/xlsx/write/chart-space.d.ts +5 -0
  791. package/dist/xlsx/write/chart-space.d.ts.map +1 -0
  792. package/dist/xlsx/write/chart-title.d.ts +4 -1
  793. package/dist/xlsx/write/chart-title.d.ts.map +1 -1
  794. package/dist/xlsx/write/chart.d.ts +4 -1
  795. package/dist/xlsx/write/chart.d.ts.map +1 -1
  796. package/dist/xml/index.cjs +162 -0
  797. package/dist/xml/index.d.ts +1 -0
  798. package/dist/xml/index.d.ts.map +1 -1
  799. package/dist/xml/index.mjs +161 -1
  800. package/dist/xml/lite.d.ts +30 -0
  801. package/dist/xml/lite.d.ts.map +1 -0
  802. package/package.json +6 -1
  803. package/dist/pptx/chunks/index-BHqL5KXH.d.ts.map +0 -1
  804. package/dist/pptx/chunks/index-BYkdcS8J.d.ts.map +0 -1
  805. package/dist/pptx/chunks/smart-art-CO2jmJFf.d.ts.map +0 -1
  806. package/dist/pptx/chunks/text-operations-DEJ7alZR.d.ts.map +0 -1
  807. package/dist/xlsx/layout/chart-appearance.d.ts.map +0 -1
  808. package/dist/xlsx/layout/chart-colors.d.ts +0 -9
  809. package/dist/xlsx/layout/chart-colors.d.ts.map +0 -1
  810. package/dist/xlsx/layout/chart-scale.d.ts.map +0 -1
  811. package/dist/xlsx/layout/chart-spacing.d.ts +0 -6
  812. package/dist/xlsx/layout/chart-spacing.d.ts.map +0 -1
  813. package/dist/xlsx/layout/chart-svg-appearance.d.ts.map +0 -1
  814. package/dist/xlsx/layout/chart-svg-bars.d.ts.map +0 -1
  815. package/dist/xlsx/layout/chart-svg-cartesian.d.ts.map +0 -1
  816. package/dist/xlsx/layout/chart-svg-legend.d.ts.map +0 -1
  817. package/dist/xlsx/layout/chart-svg-radial.d.ts.map +0 -1
  818. package/dist/xlsx/layout/chart-svg-text-metrics.d.ts.map +0 -1
  819. package/dist/xlsx/layout/chart-svg-title-text.d.ts.map +0 -1
  820. package/dist/xlsx/layout/chart-svg-util.d.ts.map +0 -1
  821. package/dist/xlsx/layout/chart-svg.d.ts.map +0 -1
  822. package/dist/xlsx/layout/chart-title-text.d.ts +0 -14
  823. package/dist/xlsx/layout/chart-title-text.d.ts.map +0 -1
  824. package/dist/xlsx/layout/font-family.d.ts.map +0 -1
  825. /package/dist/{xlsx/layout → chart/render}/chart-scale.d.ts +0 -0
  826. /package/dist/{xlsx/layout → chart/render}/chart-svg-bars.d.ts +0 -0
  827. /package/dist/{xlsx/layout → chart/render}/chart-svg-cartesian.d.ts +0 -0
  828. /package/dist/{xlsx/layout → chart/render}/chart-svg-legend.d.ts +0 -0
  829. /package/dist/{xlsx/layout → chart/render}/chart-svg-radial.d.ts +0 -0
  830. /package/dist/{xlsx/layout → chart/render}/chart-svg-text-metrics.d.ts +0 -0
  831. /package/dist/{xlsx/layout → chart/render}/chart-svg-title-text.d.ts +0 -0
  832. /package/dist/{xlsx/layout → chart/render}/chart-svg-util.d.ts +0 -0
  833. /package/dist/{xlsx/layout → chart/render}/chart-svg.d.ts +0 -0
@@ -271,14 +271,14 @@ function parseOle2(buffer) {
271
271
  return result.subarray(0, size);
272
272
  }
273
273
  function getStream(name) {
274
- const entry = entries.find((e) => (e.type === ENTRY_TYPE_STREAM || e.type === ENTRY_TYPE_ROOT) && e.name === name);
275
- if (!entry) {
274
+ const entry2 = entries.find((e) => (e.type === ENTRY_TYPE_STREAM || e.type === ENTRY_TYPE_ROOT) && e.name === name);
275
+ if (!entry2) {
276
276
  return void 0;
277
277
  }
278
- if (entry.size < miniStreamCutoff && entry.type !== ENTRY_TYPE_ROOT) {
279
- return readMiniStream(entry.startSector, entry.size);
278
+ if (entry2.size < miniStreamCutoff && entry2.type !== ENTRY_TYPE_ROOT) {
279
+ return readMiniStream(entry2.startSector, entry2.size);
280
280
  }
281
- return readStream(entry.startSector, entry.size);
281
+ return readStream(entry2.startSector, entry2.size);
282
282
  }
283
283
  return { entries, getStream };
284
284
  }
@@ -1262,8 +1262,8 @@ function applyLane(r, ops, f6, x, startTarget) {
1262
1262
  const i4 = (target + 4) % 5;
1263
1263
  const sum = r[target] + f6(r[i1], r[i2], r[i3]) + x[k] + addConst >>> 0;
1264
1264
  const newTarget = (sum << s | sum >>> 32 - s) + r[i4] >>> 0;
1265
- const c = r[i2];
1266
- r[i2] = (c << 10 | c >>> 22) >>> 0;
1265
+ const c2 = r[i2];
1266
+ r[i2] = (c2 << 10 | c2 >>> 22) >>> 0;
1267
1267
  r[target] = newTarget;
1268
1268
  target = (target + 4) % 5;
1269
1269
  }
@@ -1376,32 +1376,32 @@ var rotr = (x, n) => x >>> n | x << 32 - n;
1376
1376
  function compress(h2, view, offset) {
1377
1377
  for (let i2 = 0; i2 < 16; i2++) W[i2] = view.getUint32(offset + i2 * 4);
1378
1378
  for (let i2 = 16; i2 < 64; i2++) {
1379
- const a2 = W[i2 - 15];
1379
+ const a3 = W[i2 - 15];
1380
1380
  const b2 = W[i2 - 2];
1381
- const s0 = rotr(a2, 7) ^ rotr(a2, 18) ^ a2 >>> 3;
1381
+ const s0 = rotr(a3, 7) ^ rotr(a3, 18) ^ a3 >>> 3;
1382
1382
  const s1 = rotr(b2, 17) ^ rotr(b2, 19) ^ b2 >>> 10;
1383
1383
  W[i2] = W[i2 - 16] + s0 + W[i2 - 7] + s1 >>> 0;
1384
1384
  }
1385
- let a = h2[0], b = h2[1], c = h2[2], d = h2[3], e = h2[4], f6 = h2[5], g2 = h2[6], k = h2[7];
1385
+ let a2 = h2[0], b = h2[1], c2 = h2[2], d = h2[3], e = h2[4], f6 = h2[5], g2 = h2[6], k = h2[7];
1386
1386
  for (let i2 = 0; i2 < 64; i2++) {
1387
1387
  const S1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
1388
1388
  const ch = e & f6 ^ ~e & g2;
1389
1389
  const t1 = k + S1 + ch + K[i2] + W[i2] >>> 0;
1390
- const S0 = rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22);
1391
- const maj = a & b ^ a & c ^ b & c;
1390
+ const S0 = rotr(a2, 2) ^ rotr(a2, 13) ^ rotr(a2, 22);
1391
+ const maj = a2 & b ^ a2 & c2 ^ b & c2;
1392
1392
  const t2 = S0 + maj >>> 0;
1393
1393
  k = g2;
1394
1394
  g2 = f6;
1395
1395
  f6 = e;
1396
1396
  e = d + t1 >>> 0;
1397
- d = c;
1398
- c = b;
1399
- b = a;
1400
- a = t1 + t2 >>> 0;
1397
+ d = c2;
1398
+ c2 = b;
1399
+ b = a2;
1400
+ a2 = t1 + t2 >>> 0;
1401
1401
  }
1402
- h2[0] = h2[0] + a >>> 0;
1402
+ h2[0] = h2[0] + a2 >>> 0;
1403
1403
  h2[1] = h2[1] + b >>> 0;
1404
- h2[2] = h2[2] + c >>> 0;
1404
+ h2[2] = h2[2] + c2 >>> 0;
1405
1405
  h2[3] = h2[3] + d >>> 0;
1406
1406
  h2[4] = h2[4] + e >>> 0;
1407
1407
  h2[5] = h2[5] + f6 >>> 0;
@@ -1437,33 +1437,33 @@ var rotl = (x, n) => x << n | x >>> 32 - n;
1437
1437
  function compress2(h2, view, offset) {
1438
1438
  for (let i2 = 0; i2 < 16; i2++) W2[i2] = view.getUint32(offset + i2 * 4);
1439
1439
  for (let i2 = 16; i2 < 80; i2++) W2[i2] = rotl(W2[i2 - 3] ^ W2[i2 - 8] ^ W2[i2 - 14] ^ W2[i2 - 16], 1);
1440
- let a = h2[0], b = h2[1], c = h2[2], d = h2[3], e = h2[4];
1440
+ let a2 = h2[0], b = h2[1], c2 = h2[2], d = h2[3], e = h2[4];
1441
1441
  for (let i2 = 0; i2 < 80; i2++) {
1442
1442
  let f6;
1443
1443
  let k;
1444
1444
  if (i2 < 20) {
1445
- f6 = b & c | ~b & d;
1445
+ f6 = b & c2 | ~b & d;
1446
1446
  k = 1518500249;
1447
1447
  } else if (i2 < 40) {
1448
- f6 = b ^ c ^ d;
1448
+ f6 = b ^ c2 ^ d;
1449
1449
  k = 1859775393;
1450
1450
  } else if (i2 < 60) {
1451
- f6 = b & c | b & d | c & d;
1451
+ f6 = b & c2 | b & d | c2 & d;
1452
1452
  k = 2400959708;
1453
1453
  } else {
1454
- f6 = b ^ c ^ d;
1454
+ f6 = b ^ c2 ^ d;
1455
1455
  k = 3395469782;
1456
1456
  }
1457
- const t = rotl(a, 5) + f6 + e + k + W2[i2] >>> 0;
1457
+ const t = rotl(a2, 5) + f6 + e + k + W2[i2] >>> 0;
1458
1458
  e = d;
1459
- d = c;
1460
- c = rotl(b, 30) >>> 0;
1461
- b = a;
1462
- a = t;
1459
+ d = c2;
1460
+ c2 = rotl(b, 30) >>> 0;
1461
+ b = a2;
1462
+ a2 = t;
1463
1463
  }
1464
- h2[0] = h2[0] + a >>> 0;
1464
+ h2[0] = h2[0] + a2 >>> 0;
1465
1465
  h2[1] = h2[1] + b >>> 0;
1466
- h2[2] = h2[2] + c >>> 0;
1466
+ h2[2] = h2[2] + c2 >>> 0;
1467
1467
  h2[3] = h2[3] + d >>> 0;
1468
1468
  h2[4] = h2[4] + e >>> 0;
1469
1469
  }
@@ -2050,8 +2050,8 @@ var ROUND_CONSTANTS = [
2050
2050
  0xfbee7c66dd17479en,
2051
2051
  0xca2dbf07ad5a8333n
2052
2052
  ];
2053
- var ROUND_CONSTANTS_HI = Uint32Array.from(ROUND_CONSTANTS, (c) => Number(c >> 32n));
2054
- var ROUND_CONSTANTS_LO = Uint32Array.from(ROUND_CONSTANTS, (c) => Number(c & LOW_MASK));
2053
+ var ROUND_CONSTANTS_HI = Uint32Array.from(ROUND_CONSTANTS, (c2) => Number(c2 >> 32n));
2054
+ var ROUND_CONSTANTS_LO = Uint32Array.from(ROUND_CONSTANTS, (c2) => Number(c2 & LOW_MASK));
2055
2055
 
2056
2056
  // digest/whirlpool.ts
2057
2057
  var TABLES_HI2 = TABLES_HI;
@@ -2372,7 +2372,7 @@ function openEncryptedPackage(input) {
2372
2372
  if (!isCompoundFile(bytes)) return void 0;
2373
2373
  try {
2374
2374
  const file = parseOle2(toArrayBuffer(bytes));
2375
- if (!file.entries.some((entry) => entry.name === "EncryptedPackage")) return void 0;
2375
+ if (!file.entries.some((entry2) => entry2.name === "EncryptedPackage")) return void 0;
2376
2376
  const encryptionInfo = file.getStream("EncryptionInfo");
2377
2377
  const encryptedPackage = encryptionInfo && file.getStream("EncryptedPackage");
2378
2378
  return encryptionInfo && encryptedPackage ? { encryptionInfo, encryptedPackage } : void 0;
@@ -2384,7 +2384,7 @@ function isEncryptedOoxmlPackage(input) {
2384
2384
  const bytes = toBytes(input);
2385
2385
  if (!isCompoundFile(bytes)) return false;
2386
2386
  try {
2387
- const names = new Set(parseOle2(toArrayBuffer(bytes)).entries.map((entry) => entry.name));
2387
+ const names = new Set(parseOle2(toArrayBuffer(bytes)).entries.map((entry2) => entry2.name));
2388
2388
  return names.has("EncryptionInfo") && names.has("EncryptedPackage");
2389
2389
  } catch {
2390
2390
  return false;
@@ -2392,14 +2392,14 @@ function isEncryptedOoxmlPackage(input) {
2392
2392
  }
2393
2393
 
2394
2394
  // ../../node_modules/.bun/@christophervr+ole2@0.12.0/node_modules/@christophervr/ole2/dist/ole2-parser-write-helpers.js
2395
- function compareDirEntryNames(a, b) {
2396
- const ua = a.toUpperCase();
2395
+ function compareDirEntryNames(a2, b) {
2396
+ const ua = a2.toUpperCase();
2397
2397
  const ub = b.toUpperCase();
2398
- if (ua.length !== a.length || ub.length !== b.length) {
2398
+ if (ua.length !== a2.length || ub.length !== b.length) {
2399
2399
  throw new Error("CFB stream names with expanding uppercase mappings are unsupported");
2400
2400
  }
2401
- if (a.length !== b.length) {
2402
- return a.length - b.length;
2401
+ if (a2.length !== b.length) {
2402
+ return a2.length - b.length;
2403
2403
  }
2404
2404
  for (let i2 = 0; i2 < ua.length; i2++) {
2405
2405
  const diff = ua.charCodeAt(i2) - ub.charCodeAt(i2);
@@ -2518,15 +2518,15 @@ function serializeDirectoryEntries(dirEntries, numDirSectors, sectorSize) {
2518
2518
  const dirView = new DataView(dirData.buffer);
2519
2519
  const tree = buildDirectoryTree(dirEntries.length);
2520
2520
  for (let i2 = 0; i2 < dirEntries.length; i2++) {
2521
- const entry = dirEntries[i2];
2521
+ const entry2 = dirEntries[i2];
2522
2522
  const entryOffset = i2 * DIR_ENTRY_SIZE;
2523
- const nameBytes = encodeName(entry.name);
2523
+ const nameBytes = encodeName(entry2.name);
2524
2524
  dirData.set(nameBytes.subarray(0, Math.min(nameBytes.length, 64)), entryOffset);
2525
- dirView.setUint16(entryOffset + 64, Math.min((entry.name.length + 1) * 2, 64), true);
2526
- dirData[entryOffset + 66] = entry.type;
2525
+ dirView.setUint16(entryOffset + 64, Math.min((entry2.name.length + 1) * 2, 64), true);
2526
+ dirData[entryOffset + 66] = entry2.type;
2527
2527
  dirData[entryOffset + 67] = i2 === 0 ? 1 : tree.links.get(i2).color;
2528
- if (entry.clsid) {
2529
- dirData.set(entry.clsid.subarray(0, 16), entryOffset + 80);
2528
+ if (entry2.clsid) {
2529
+ dirData.set(entry2.clsid.subarray(0, 16), entryOffset + 80);
2530
2530
  }
2531
2531
  if (i2 === 0) {
2532
2532
  dirView.setUint32(entryOffset + 68, 4294967295, true);
@@ -2537,8 +2537,8 @@ function serializeDirectoryEntries(dirEntries, numDirSectors, sectorSize) {
2537
2537
  dirView.setUint32(entryOffset + 72, tree.links.get(i2).right, true);
2538
2538
  dirView.setUint32(entryOffset + 76, 4294967295, true);
2539
2539
  }
2540
- dirView.setUint32(entryOffset + 116, entry.startSector, true);
2541
- dirView.setUint32(entryOffset + 120, entry.size, true);
2540
+ dirView.setUint32(entryOffset + 116, entry2.startSector, true);
2541
+ dirView.setUint32(entryOffset + 120, entry2.size, true);
2542
2542
  }
2543
2543
  return dirData;
2544
2544
  }
@@ -2649,7 +2649,7 @@ function buildOle2(streams2, rootClsid, miniStreamCutoff = 4096) {
2649
2649
  });
2650
2650
  }
2651
2651
  const [rootEntry, ...streamEntries] = dirEntries;
2652
- streamEntries.sort((a, b) => compareDirEntryNames(a.name, b.name));
2652
+ streamEntries.sort((a2, b) => compareDirEntryNames(a2.name, b.name));
2653
2653
  const sortedDirEntries = [rootEntry, ...streamEntries];
2654
2654
  const numDirSectors = Math.ceil(dirEntries.length * DIR_ENTRY_SIZE / sectorSize);
2655
2655
  const firstDirSector = nextSector;
@@ -3077,12 +3077,18 @@ var NS = {
3077
3077
  w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
3078
3078
  /** DrawingML main. */
3079
3079
  a: "http://schemas.openxmlformats.org/drawingml/2006/main",
3080
+ /** DrawingML chart. */
3081
+ c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
3082
+ /** Office 2010 chart extensions, including built-in modern chart styles. */
3083
+ c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
3080
3084
  /** DrawingML diagram (SmartArt) main. */
3081
3085
  dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
3082
3086
  /** Office 2007+ diagram drawing (`dsp`). */
3083
3087
  dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
3084
3088
  /** Relationships (`r:id`, `r:embed`). */
3085
3089
  r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
3090
+ /** Markup compatibility (`mc:AlternateContent`). */
3091
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
3086
3092
  /** OPC relationships part. */
3087
3093
  rels: "http://schemas.openxmlformats.org/package/2006/relationships",
3088
3094
  /** OPC content types part. */
@@ -3163,6 +3169,10 @@ function resolvePartPath(basePart, target) {
3163
3169
  }
3164
3170
  return resolved.join("/");
3165
3171
  }
3172
+ function relationshipsPartFor(partName) {
3173
+ const slash = partName.lastIndexOf("/");
3174
+ return `${partName.slice(0, slash + 1)}_rels/${partName.slice(slash + 1)}.rels`;
3175
+ }
3166
3176
  function nextRelationshipId(used) {
3167
3177
  let index = 1;
3168
3178
  while (used.has(`rId${index}`)) index++;
@@ -3305,7 +3315,7 @@ function parseCoreProperties(xml) {
3305
3315
  }
3306
3316
  return Object.keys(result).length ? result : void 0;
3307
3317
  }
3308
- var same = (a, b) => PROPERTY_FIELDS.every((field) => (a?.[field] ?? "") === (b?.[field] ?? ""));
3318
+ var same = (a2, b) => PROPERTY_FIELDS.every((field) => (a2?.[field] ?? "") === (b?.[field] ?? ""));
3309
3319
  async function applyCoreProperties(zip, next, prior) {
3310
3320
  if (same(next, prior)) return;
3311
3321
  const existing = zip.file(CORE_PATH);
@@ -3464,13 +3474,13 @@ function buildCommentsExtendedDocument(comments) {
3464
3474
  );
3465
3475
  const root = doc.documentElement;
3466
3476
  comments.forEach((comment, index) => {
3467
- const entry = doc.createElementNS(W15_NS, "w15:commentEx");
3468
- entry.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
3469
- if (comment.resolved) entry.setAttributeNS(W15_NS, "w15:done", "1");
3470
- const parentIndex = comments.findIndex((c) => c.id === comment.parentId);
3477
+ const entry2 = doc.createElementNS(W15_NS, "w15:commentEx");
3478
+ entry2.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
3479
+ if (comment.resolved) entry2.setAttributeNS(W15_NS, "w15:done", "1");
3480
+ const parentIndex = comments.findIndex((c2) => c2.id === comment.parentId);
3471
3481
  if (parentIndex >= 0)
3472
- entry.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
3473
- root.appendChild(entry);
3482
+ entry2.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
3483
+ root.appendChild(entry2);
3474
3484
  });
3475
3485
  return doc;
3476
3486
  }
@@ -3600,7 +3610,7 @@ function rangeEdges(runs, ranges) {
3600
3610
  const opens = /* @__PURE__ */ new Map();
3601
3611
  const closes = /* @__PURE__ */ new Map();
3602
3612
  const order = (key) => key.startsWith("comment:") ? 0 : 1;
3603
- for (const key of [...first3.keys()].sort((a, b) => order(a) - order(b))) {
3613
+ for (const key of [...first3.keys()].sort((a2, b) => order(a2) - order(b))) {
3604
3614
  if (!ranges?.before.has(key)) {
3605
3615
  const index = first3.get(key);
3606
3616
  (opens.get(index) ?? opens.set(index, []).get(index)).push(edgeFor(key, index));
@@ -3948,8 +3958,8 @@ function orderChildren(parent, order) {
3948
3958
  if (rank >= 0) previousRank = rank;
3949
3959
  return { element, index, rank: rank >= 0 ? rank : previousRank + 0.5 };
3950
3960
  });
3951
- const sorted = [...ranked].sort((a, b) => a.rank - b.rank || a.index - b.index);
3952
- if (sorted.every((entry, index) => entry.element === elements2[index])) return;
3961
+ const sorted = [...ranked].sort((a2, b) => a2.rank - b.rank || a2.index - b.index);
3962
+ if (sorted.every((entry2, index) => entry2.element === elements2[index])) return;
3953
3963
  for (const { element } of sorted) parent.appendChild(element);
3954
3964
  }
3955
3965
  var SECTPR_ORDER = [
@@ -4911,7 +4921,7 @@ function borderElement(doc, name, side) {
4911
4921
  }
4912
4922
  return element;
4913
4923
  }
4914
- var sameJson = (a, b) => JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
4924
+ var sameJson = (a2, b) => JSON.stringify(a2 ?? null) === JSON.stringify(b ?? null);
4915
4925
  function updateShading(doc, props, paragraph, base) {
4916
4926
  if (base && paragraph.shadingFill === base.shadingFill) return;
4917
4927
  for (const element of children2(props, "shd")) props.removeChild(element);
@@ -5103,8 +5113,8 @@ function reconcileBookmarks(doc, starts, ends, names, baseNames, nextId) {
5103
5113
  function setAttribute3(element, local, value) {
5104
5114
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
5105
5115
  }
5106
- function sameNumbering(a, b) {
5107
- return a?.numId === b?.numId && a?.level === b?.level;
5116
+ function sameNumbering(a2, b) {
5117
+ return a2?.numId === b?.numId && a2?.level === b?.level;
5108
5118
  }
5109
5119
  function writeNumberingProperties(doc, props, paragraph, base) {
5110
5120
  if (base && sameNumbering(paragraph.numbering, base.numbering)) return;
@@ -5431,11 +5441,11 @@ var allowedRunPropertyAttributes = {
5431
5441
  shd: ["val", "fill", "color", "themeFill", "themeFillTint", "themeFillShade"]
5432
5442
  };
5433
5443
  function hasUnexpectedAttributes(element, allowed, allowDateUtc = false) {
5434
- for (const attribute of Array.from(element.attributes)) {
5435
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5436
- if (allowDateUtc && attribute.namespaceURI === WORD_DATE_UTC_NS && attribute.localName === "dateUtc")
5444
+ for (const attribute2 of Array.from(element.attributes)) {
5445
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5446
+ if (allowDateUtc && attribute2.namespaceURI === WORD_DATE_UTC_NS && attribute2.localName === "dateUtc")
5437
5447
  continue;
5438
- if (attribute.namespaceURI !== WORD_NS || !allowed.includes(attribute.localName)) return true;
5448
+ if (attribute2.namespaceURI !== WORD_NS || !allowed.includes(attribute2.localName)) return true;
5439
5449
  }
5440
5450
  return false;
5441
5451
  }
@@ -5462,7 +5472,7 @@ function runPropertiesHaveUnknownContent(properties) {
5462
5472
  if (!isLigatures(property.getAttributeNS(WORD_2010_NS, "val")) || elements(property).length)
5463
5473
  return true;
5464
5474
  if (Array.from(property.attributes).some(
5465
- (attribute) => attribute.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute.namespaceURI !== WORD_2010_NS || attribute.localName !== "val")
5475
+ (attribute2) => attribute2.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute2.namespaceURI !== WORD_2010_NS || attribute2.localName !== "val")
5466
5476
  ))
5467
5477
  return true;
5468
5478
  continue;
@@ -5512,12 +5522,12 @@ function runPropertyChanged(run, base, key) {
5512
5522
  function parseDirectRunProperties(props) {
5513
5523
  const result = parseRunProperties(props);
5514
5524
  const language = first2(props, "lang");
5515
- for (const [attribute, key] of [
5525
+ for (const [attribute2, key] of [
5516
5526
  ["val", "language"],
5517
5527
  ["eastAsia", "eastAsiaLanguage"],
5518
5528
  ["bidi", "bidiLanguage"]
5519
5529
  ]) {
5520
- const value = getW(language, attribute);
5530
+ const value = getW(language, attribute2);
5521
5531
  if (value !== void 0) result[key] = value;
5522
5532
  }
5523
5533
  const rtl = onOffElement(first2(props, "rtl"));
@@ -5730,19 +5740,19 @@ function colorOf(value) {
5730
5740
  }
5731
5741
  function parseWatermarkShape(shape) {
5732
5742
  if (!shape || !(shape.getAttribute("id") ?? "").startsWith(WATERMARK_PREFIX)) return void 0;
5733
- const path = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
5734
- if (!path) return void 0;
5743
+ const path2 = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
5744
+ if (!path2) return void 0;
5735
5745
  const style = shape.getAttribute("style") ?? "";
5736
5746
  const fill = Array.from(shape.getElementsByTagNameNS(VML_NS, "fill"))[0];
5737
5747
  const opacity = fill?.getAttribute("opacity");
5738
5748
  const family = /font-family:\s*(?:&quot;|"|')?([^;"'&]+)/i.exec(
5739
- path.getAttribute("style") ?? ""
5749
+ path2.getAttribute("style") ?? ""
5740
5750
  )?.[1];
5741
5751
  const width = /width:\s*([\d.]+)pt/i.exec(style);
5742
5752
  const height = /height:\s*([\d.]+)pt/i.exec(style);
5743
5753
  const rotation = /rotation:\s*(-?[\d.]+)/i.exec(style);
5744
5754
  const spec = {
5745
- text: path.getAttribute("string") ?? "",
5755
+ text: path2.getAttribute("string") ?? "",
5746
5756
  color: colorOf(shape.getAttribute("fillcolor")),
5747
5757
  semitransparent: opacity !== null && opacity !== "" && opacity !== "1",
5748
5758
  layout: rotation && Math.abs(Number(rotation[1]) % 360) > 1 ? "diagonal" : "horizontal",
@@ -5798,11 +5808,11 @@ function buildWatermarkRun(doc, spec, uniqueId) {
5798
5808
  f6.setAttribute("eqn", eqn);
5799
5809
  formulas.appendChild(f6);
5800
5810
  }
5801
- const path = v("path");
5802
- path.setAttribute("textpathok", "t");
5803
- path.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
5804
- path.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
5805
- path.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
5811
+ const path2 = v("path");
5812
+ path2.setAttribute("textpathok", "t");
5813
+ path2.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
5814
+ path2.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
5815
+ path2.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
5806
5816
  const typePath = v("textpath");
5807
5817
  typePath.setAttribute("on", "t");
5808
5818
  typePath.setAttribute("fitshape", "t");
@@ -5815,7 +5825,7 @@ function buildWatermarkRun(doc, spec, uniqueId) {
5815
5825
  lock.setAttributeNS(VML_NS, "v:ext", "edit");
5816
5826
  lock.setAttribute("text", "t");
5817
5827
  lock.setAttribute("shapetype", "t");
5818
- for (const child3 of [formulas, path, typePath, handles, lock]) type.appendChild(child3);
5828
+ for (const child3 of [formulas, path2, typePath, handles, lock]) type.appendChild(child3);
5819
5829
  const size = watermarkSizePt(spec);
5820
5830
  const shape = v("shape");
5821
5831
  shape.setAttribute("id", `${WATERMARK_PREFIX}${uniqueId}`);
@@ -6048,8 +6058,8 @@ var CUSTOM_LAYOUT_ATTRIBUTES = [
6048
6058
  ];
6049
6059
  function parseCustomLayoutAttributes(get) {
6050
6060
  const custom = {};
6051
- for (const [key, attribute, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
6052
- const raw = get(attribute);
6061
+ for (const [key, attribute2, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
6062
+ const raw = get(attribute2);
6053
6063
  const value = kind === "flag" ? optionalBoolean(raw) : optionalScaled(raw, kind === "angle" ? 6e4 : 1e5);
6054
6064
  if (value !== void 0) custom[key] = value;
6055
6065
  }
@@ -6063,8 +6073,8 @@ var RELATIONSHIP_ATTRIBUTES = [
6063
6073
  ];
6064
6074
  function parseRelationshipIdAttributes(get) {
6065
6075
  const result = {};
6066
- for (const [property, attribute] of RELATIONSHIP_ATTRIBUTES) {
6067
- const value = optionalString(get(attribute));
6076
+ for (const [property, attribute2] of RELATIONSHIP_ATTRIBUTES) {
6077
+ const value = optionalString(get(attribute2));
6068
6078
  if (value) result[property] = value;
6069
6079
  }
6070
6080
  return result;
@@ -6126,7 +6136,7 @@ async function resolveDiagramDrawingPart(hostPart, dataRelId, drawingExtensionRe
6126
6136
  const entries = await host.readRelationshipEntries(diagramRelationshipsPart(dataPath));
6127
6137
  if (!entries) return void 0;
6128
6138
  const drawing = entries.find(
6129
- (entry) => (!drawingExtensionRelId || entry.id.trim() === drawingExtensionRelId) && entry.type.endsWith("/diagramDrawing")
6139
+ (entry2) => (!drawingExtensionRelId || entry2.id.trim() === drawingExtensionRelId) && entry2.type.endsWith("/diagramDrawing")
6130
6140
  );
6131
6141
  const id = drawing?.id.trim() ?? "";
6132
6142
  const target = drawing?.target.trim() ?? "";
@@ -6271,14 +6281,14 @@ function parseDiagramDataModel(source, part) {
6271
6281
  if (connection.modelId && connectionIds.has(connection.modelId))
6272
6282
  report("CONNECTION_ID_DUPLICATE", `Duplicate dgm:cxn modelId: ${connection.modelId}.`);
6273
6283
  if (connection.modelId) connectionIds.add(connection.modelId);
6274
- for (const [attribute, id] of [
6284
+ for (const [attribute2, id] of [
6275
6285
  ["srcId", connection.sourceId],
6276
6286
  ["destId", connection.destId]
6277
6287
  ])
6278
6288
  if (!ids.has(id))
6279
6289
  report(
6280
6290
  "CONNECTION_ENDPOINT_MISSING",
6281
- `dgm:cxn ${attribute} references missing point: ${id}.`
6291
+ `dgm:cxn ${attribute2} references missing point: ${id}.`
6282
6292
  );
6283
6293
  const label = connectionLabel(connection, transitionText);
6284
6294
  connections.push(label ? { ...connection, label } : connection);
@@ -6307,10 +6317,10 @@ var COLOR_ELEMENTS = {
6307
6317
  hslClr: "hsl"
6308
6318
  };
6309
6319
  function colorValue(kind, element) {
6310
- const attribute = (name) => element.getAttribute(name) ?? "";
6311
- if (kind === "scrgb") return `${attribute("r")},${attribute("g")},${attribute("b")}`;
6312
- if (kind === "hsl") return `${attribute("hue")},${attribute("sat")},${attribute("lum")}`;
6313
- return attribute("val");
6320
+ const attribute2 = (name) => element.getAttribute(name) ?? "";
6321
+ if (kind === "scrgb") return `${attribute2("r")},${attribute2("g")},${attribute2("b")}`;
6322
+ if (kind === "hsl") return `${attribute2("hue")},${attribute2("sat")},${attribute2("lum")}`;
6323
+ return attribute2("val");
6314
6324
  }
6315
6325
  function parseDrawingColorIn(container2) {
6316
6326
  if (!container2) return void 0;
@@ -6468,7 +6478,7 @@ function parseDrawingFill(properties) {
6468
6478
  });
6469
6479
  const angle = Number.parseInt(first(fill, "lin", NS.a)?.getAttribute("ang") ?? "", 10);
6470
6480
  const scaled = first(fill, "lin", NS.a)?.getAttribute("scaled");
6471
- const path = first(fill, "path", NS.a)?.getAttribute("path");
6481
+ const path2 = first(fill, "path", NS.a)?.getAttribute("path");
6472
6482
  const focus = first(first(fill, "path", NS.a), "fillToRect", NS.a);
6473
6483
  const tile = first(fill, "tileRect", NS.a);
6474
6484
  const tileRect = tile ? {
@@ -6490,7 +6500,7 @@ function parseDrawingFill(properties) {
6490
6500
  ...Number.isFinite(angle) ? { angle: angle / 6e4 } : {},
6491
6501
  ...scaled === "1" || scaled === "true" ? { scaled: true } : {},
6492
6502
  ...scaled === "0" || scaled === "false" ? { scaled: false } : {},
6493
- ...path ? { path } : {},
6503
+ ...path2 ? { path: path2 } : {},
6494
6504
  ...fillToRect && Object.values(fillToRect).every(Number.isFinite) ? { fillToRect } : {},
6495
6505
  ...tileRect && Object.values(tileRect).every(Number.isFinite) ? { tileRect } : {}
6496
6506
  };
@@ -6594,13 +6604,13 @@ function parseDrawingTextBody(body) {
6594
6604
  const anchor = properties?.getAttribute("anchor");
6595
6605
  if (anchor) result.anchor = anchor;
6596
6606
  const insets = {};
6597
- for (const [key, attribute] of [
6607
+ for (const [key, attribute2] of [
6598
6608
  ["left", "lIns"],
6599
6609
  ["top", "tIns"],
6600
6610
  ["right", "rIns"],
6601
6611
  ["bottom", "bIns"]
6602
6612
  ]) {
6603
- const value = Number.parseInt(properties?.getAttribute(attribute) ?? "", 10);
6613
+ const value = Number.parseInt(properties?.getAttribute(attribute2) ?? "", 10);
6604
6614
  if (Number.isFinite(value)) insets[key] = value;
6605
6615
  }
6606
6616
  if (Object.keys(insets).length > 0) result.insetsEmu = insets;
@@ -6631,18 +6641,18 @@ function parseTransform(xfrm) {
6631
6641
  ...booleanAttribute(xfrm, "flipV") ? { flipVertical: true } : {}
6632
6642
  };
6633
6643
  }
6634
- function parsePathCommands(path) {
6644
+ function parsePathCommands(path2) {
6635
6645
  const commands = [];
6636
6646
  const point = (element) => {
6637
6647
  const x = int(element, "x");
6638
6648
  const y = int(element, "y");
6639
6649
  return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : void 0;
6640
6650
  };
6641
- for (const element of Array.from(path.childNodes)) {
6651
+ for (const element of Array.from(path2.childNodes)) {
6642
6652
  if (element.nodeType !== 1) continue;
6643
6653
  const node = element;
6644
6654
  const points = children(node, "pt", NS.a).map(point);
6645
- if (points.some((entry) => entry === void 0)) return void 0;
6655
+ if (points.some((entry2) => entry2 === void 0)) return void 0;
6646
6656
  const [p0, p1, p2] = points;
6647
6657
  switch (node.localName) {
6648
6658
  case "moveTo":
@@ -6685,17 +6695,17 @@ function parseDrawingGeometry(spPr) {
6685
6695
  const custom = first(spPr, "custGeom", NS.a);
6686
6696
  if (custom) {
6687
6697
  const paths = [];
6688
- for (const path of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
6689
- const commands = parsePathCommands(path);
6698
+ for (const path2 of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
6699
+ const commands = parsePathCommands(path2);
6690
6700
  if (!commands) return { geometry: "custom", issue: "CUSTOM_GEOMETRY_GUIDES_UNSUPPORTED" };
6691
- const width = int(path, "w");
6692
- const height = int(path, "h");
6701
+ const width = int(path2, "w");
6702
+ const height = int(path2, "h");
6693
6703
  paths.push({
6694
6704
  commands,
6695
6705
  ...Number.isFinite(width) ? { width } : {},
6696
6706
  ...Number.isFinite(height) ? { height } : {},
6697
- ...path.getAttribute("fill") ? { fill: path.getAttribute("fill") } : {},
6698
- ...path.getAttribute("stroke") === "0" || path.getAttribute("stroke") === "false" ? { stroke: false } : {}
6707
+ ...path2.getAttribute("fill") ? { fill: path2.getAttribute("fill") } : {},
6708
+ ...path2.getAttribute("stroke") === "0" || path2.getAttribute("stroke") === "false" ? { stroke: false } : {}
6699
6709
  });
6700
6710
  }
6701
6711
  return { geometry: "custom", paths };
@@ -6963,78 +6973,1316 @@ function parseDiagramGraphic(graphicData, extent, docPr, rels, isAnchor) {
6963
6973
  const id = docPr?.getAttribute("id") || void 0;
6964
6974
  return {
6965
6975
  placement: isAnchor ? "anchor" : "inline",
6966
- extentEmu: { width: emu2(extent, "cx"), height: emu2(extent, "cy") },
6976
+ extentEmu: { width: emu2(extent, "cx"), height: emu2(extent, "cy") },
6977
+ ...name ? { name } : {},
6978
+ ...id ? { id } : {},
6979
+ relationshipIds,
6980
+ parts,
6981
+ hostRelationships,
6982
+ nodes: [],
6983
+ rendering: "placeholder",
6984
+ notice: diagramNotice("placeholder"),
6985
+ issues
6986
+ };
6987
+ }
6988
+ async function resolveDiagramParts(diagram, readText) {
6989
+ const hostPart = "word/document.xml";
6990
+ const dataPart = diagram.parts.data?.partName;
6991
+ let declaredDrawing;
6992
+ try {
6993
+ const dataXml = dataPart ? await readText(dataPart) : void 0;
6994
+ declaredDrawing = dataXml ? parseDiagramDataModel(dataXml).drawingRelId : void 0;
6995
+ } catch {
6996
+ }
6997
+ const offered = Object.entries(diagram.hostRelationships).filter(
6998
+ ([id]) => id === declaredDrawing || !isDrawingRelationship(diagram, id)
6999
+ );
7000
+ const loaded = await loadDiagram(hostPart, diagram.relationshipIds, {
7001
+ hostRelationships: () => new Map(offered.map(([id, name]) => [id, `/${name}`])),
7002
+ resolvePath: resolvePartPath,
7003
+ readText,
7004
+ readRelationshipEntries: async (relsPart) => {
7005
+ const xml = await readText(relsPart);
7006
+ if (!xml) return void 0;
7007
+ try {
7008
+ return [...parseRelationships(xml).values()].map(({ id, type, target }) => ({
7009
+ id,
7010
+ type,
7011
+ target
7012
+ }));
7013
+ } catch {
7014
+ return void 0;
7015
+ }
7016
+ }
7017
+ });
7018
+ const known = new Set(diagram.issues.map((issue) => `${issue.code}|${issue.message}`));
7019
+ const fresh = loaded.issues.filter(
7020
+ (issue) => !issue.code.startsWith("DIAGRAM_RELATIONSHIP_") && !known.has(`${issue.code}|${issue.message}`)
7021
+ );
7022
+ diagram.issues.push(...fresh);
7023
+ if (loaded.paths.drawing && loaded.drawingRelId)
7024
+ diagram.parts.drawing = { relId: loaded.drawingRelId, partName: loaded.paths.drawing };
7025
+ if (loaded.layout) {
7026
+ diagram.layout = {
7027
+ uniqueId: loaded.layout.uniqueId,
7028
+ ...loaded.layout.family ? { family: loaded.layout.family } : {},
7029
+ ...loaded.layout.rootAlgorithm ? { rootAlgorithm: loaded.layout.rootAlgorithm } : {}
7030
+ };
7031
+ }
7032
+ if (loaded.colors?.uniqueId) diagram.colorsId = loaded.colors.uniqueId;
7033
+ if (loaded.quickStyle?.uniqueId) diagram.quickStyleId = loaded.quickStyle.uniqueId;
7034
+ if (loaded.data)
7035
+ diagram.nodes = loaded.data.nodes.map((node) => ({
7036
+ id: node.modelId,
7037
+ text: node.text,
7038
+ ...loaded.data?.parentById.get(node.modelId) ? { parentId: loaded.data.parentById.get(node.modelId) } : {}
7039
+ }));
7040
+ if (loaded.drawing && loaded.drawing.shapes.length > 0) {
7041
+ diagram.drawing = loaded.drawing;
7042
+ diagram.rendering = "cached-drawing";
7043
+ } else {
7044
+ delete diagram.drawing;
7045
+ diagram.rendering = "placeholder";
7046
+ }
7047
+ diagram.notice = diagramNotice(diagram.rendering);
7048
+ }
7049
+
7050
+ // chart/color-style.ts
7051
+ var CHART_COLOR_STYLE_NS = "http://schemas.microsoft.com/office/drawing/2012/chartStyle";
7052
+ function chartColorStyleId(xml) {
7053
+ const root = parseXml(xml).documentElement;
7054
+ if (root.localName !== "colorStyle" || root.namespaceURI !== CHART_COLOR_STYLE_NS)
7055
+ return void 0;
7056
+ const value = root.getAttribute("id");
7057
+ if (!value || !/^\d+$/.test(value)) return void 0;
7058
+ const id = Number(value);
7059
+ return Number.isInteger(id) && id >= 0 ? id : void 0;
7060
+ }
7061
+
7062
+ // chart/built-in-text-style.ts
7063
+ var C14 = NS.c14;
7064
+ function readBuiltInChartStyle(root) {
7065
+ for (const content of children(root, "AlternateContent", NS.mc)) {
7066
+ for (const choice of children(content, "Choice", NS.mc)) {
7067
+ const requires = choice.getAttribute("Requires")?.trim().split(/\s+/);
7068
+ if (!requires?.length || !requires.every((prefix) => choice.lookupNamespaceURI(prefix) === C14))
7069
+ continue;
7070
+ const modern = first(choice, "style", C14)?.getAttribute("val");
7071
+ if (modern && /^\d+$/.test(modern) && Number(modern) >= 101 && Number(modern) <= 148)
7072
+ return Number(modern);
7073
+ }
7074
+ }
7075
+ const legacy = first(root, "style", NS.c) ?? first(first(first(root, "AlternateContent", NS.mc), "Fallback", NS.mc), "style", NS.c);
7076
+ const value = legacy?.getAttribute("val");
7077
+ if (!legacy) return 2;
7078
+ return value && /^\d+$/.test(value) && Number.isSafeInteger(Number(value)) ? Number(value) : void 0;
7079
+ }
7080
+
7081
+ // chart/read-appearance.ts
7082
+ function readChartAppearance(text, properties) {
7083
+ const out = {};
7084
+ const size = Number(text?.getAttribute("sz") ?? NaN);
7085
+ if (Number.isFinite(size) && size > 0) out.fontSize = size / 100;
7086
+ for (const [attribute2, key] of [
7087
+ ["b", "bold"],
7088
+ ["i", "italic"]
7089
+ ]) {
7090
+ const value = text?.getAttribute(attribute2);
7091
+ if (value !== null && value !== void 0) out[key] = value === "1" || value === "true";
7092
+ }
7093
+ const typeface = first(text, "latin", NS.a)?.getAttribute("typeface");
7094
+ const underline = text?.getAttribute("u");
7095
+ if (underline) out.underline = underline !== "none";
7096
+ if (typeface) out.typeface = typeface;
7097
+ const color = parseDrawingColorIn(first(text, "solidFill", NS.a));
7098
+ if (color) out.textColor = color;
7099
+ const fill = parseDrawingFill(properties);
7100
+ const line = parseDrawingLine(first(properties, "ln", NS.a));
7101
+ if (fill) out.fill = fill;
7102
+ if (line) out.line = line;
7103
+ const effects = first(text, "effectLst", NS.a);
7104
+ if (effects) out.textEffectsXml = buildXml(effects);
7105
+ return out;
7106
+ }
7107
+
7108
+ // chart/formatting-nodes.ts
7109
+ function chartFormattingNodes(root) {
7110
+ const chart = first(root, "chart", NS.c);
7111
+ const plot = first(chart, "plotArea", NS.c);
7112
+ const category = first(plot, "catAx", NS.c) ?? first(plot, "dateAx", NS.c);
7113
+ const values = plot ? children(plot, "valAx", NS.c) : [];
7114
+ return {
7115
+ chartArea: root,
7116
+ plotArea: plot,
7117
+ title: first(chart, "title", NS.c),
7118
+ legend: first(chart, "legend", NS.c),
7119
+ categoryAxis: category ?? values[0],
7120
+ valueAxis: category ? values[0] : values[1],
7121
+ gridlineMajor: first(values[0], "majorGridlines", NS.c),
7122
+ gridlineMinor: first(values[0], "minorGridlines", NS.c)
7123
+ };
7124
+ }
7125
+
7126
+ // chart/manual-layout.ts
7127
+ function readChartManualLayoutValues(value) {
7128
+ const result = {};
7129
+ const enumeration = (name, values) => {
7130
+ const raw = value(name);
7131
+ return values.includes(raw) ? raw : void 0;
7132
+ };
7133
+ const target = enumeration("layoutTarget", ["inner", "outer"]);
7134
+ if (target) result.layoutTarget = target;
7135
+ for (const [xml, key] of [
7136
+ ["xMode", "xMode"],
7137
+ ["yMode", "yMode"],
7138
+ ["wMode", "widthMode"],
7139
+ ["hMode", "heightMode"]
7140
+ ]) {
7141
+ const mode = enumeration(xml, ["edge", "factor"]);
7142
+ if (mode) result[key] = mode;
7143
+ }
7144
+ for (const [xml, key] of [
7145
+ ["x", "x"],
7146
+ ["y", "y"],
7147
+ ["w", "width"],
7148
+ ["h", "height"]
7149
+ ]) {
7150
+ const raw = value(xml);
7151
+ if (typeof raw !== "string" && typeof raw !== "number" || typeof raw === "string" && !raw.trim())
7152
+ continue;
7153
+ const number = Number(raw);
7154
+ if (Number.isFinite(number)) result[key] = number;
7155
+ }
7156
+ return Object.keys(result).length ? result : void 0;
7157
+ }
7158
+
7159
+ // chart/read-formatting.ts
7160
+ var c = (parent, name) => first(parent, name, NS.c);
7161
+ var a = (parent, name) => first(parent, name, NS.a);
7162
+ function entry(node) {
7163
+ const body = c(node, "txPr");
7164
+ const paragraph = a(body, "p");
7165
+ const defaults = a(a(paragraph, "pPr"), "defRPr");
7166
+ const rich = c(c(node, "tx"), "rich");
7167
+ const richParagraph = a(rich, "p");
7168
+ const textBody = parseDrawingTextBody(rich);
7169
+ const manual = c(c(node, "layout"), "manualLayout");
7170
+ const layout2 = manual ? readChartManualLayoutValues((name) => c(manual, name)?.getAttribute("val")) : void 0;
7171
+ const overlay = c(node, "overlay")?.getAttribute("val");
7172
+ const out = {
7173
+ sourceXml: buildXml(node),
7174
+ ...layout2 ? { layout: layout2 } : {},
7175
+ ...overlay === "0" || overlay === "false" ? { overlay: false } : overlay === "1" || overlay === "true" ? { overlay: true } : {},
7176
+ ...readChartAppearance(defaults, c(node, "spPr")),
7177
+ ...readChartAppearance(a(a(richParagraph, "pPr"), "defRPr"), void 0),
7178
+ ...readChartAppearance(a(a(richParagraph, "r"), "rPr"), void 0),
7179
+ ...textBody ? { textBody, textBodyStyle: readChartAppearance(defaults, void 0) } : {}
7180
+ };
7181
+ if (["catAx", "dateAx", "valAx"].includes(node.localName)) {
7182
+ const deleted = c(node, "delete")?.getAttribute("val");
7183
+ if (deleted !== void 0) out.axisVisible = deleted !== "1" && deleted !== "true";
7184
+ out.labelsVisible = out.axisVisible !== false && c(node, "tickLblPos")?.getAttribute("val") !== "none";
7185
+ }
7186
+ return out;
7187
+ }
7188
+ function readChartFormatting(root) {
7189
+ const nodes = chartFormattingNodes(root);
7190
+ const entries = Object.fromEntries(
7191
+ Object.entries(nodes).flatMap(([name, node]) => node ? [[name, entry(node)]] : [])
7192
+ );
7193
+ const builtInStyle = readBuiltInChartStyle(root);
7194
+ const textBody = c(root, "txPr");
7195
+ const textDefaults = textBody ? {
7196
+ sourceXml: buildXml(textBody),
7197
+ ...readChartAppearance(a(a(a(textBody, "p"), "pPr"), "defRPr"), void 0)
7198
+ } : void 0;
7199
+ return Object.keys(entries).length ? {
7200
+ entries,
7201
+ sourceXml: buildXml(root),
7202
+ ...builtInStyle === void 0 ? {} : { builtInStyle },
7203
+ ...textDefaults ? { textDefaults } : {}
7204
+ } : void 0;
7205
+ }
7206
+
7207
+ // chart/data-cache.ts
7208
+ function chartCacheValues(cache) {
7209
+ if (!cache) return [];
7210
+ const numeric = cache.type === "number";
7211
+ const out = [];
7212
+ for (const point of cache.points) {
7213
+ const text = point.value;
7214
+ out[point.index ?? out.length] = numeric && text.trim() !== "" && Number.isFinite(Number(text)) ? Number(text) : text;
7215
+ }
7216
+ const size = Math.max(cache.pointCount ?? 0, out.length);
7217
+ for (let index = 0; index < size; index++) if (out[index] === void 0) out[index] = "";
7218
+ return out;
7219
+ }
7220
+
7221
+ // chart/xml-fragment.ts
7222
+ var CHART_ROOT_BINDINGS = /* @__PURE__ */ new Map([
7223
+ ["c", NS.c],
7224
+ ["a", NS.a],
7225
+ ["r", NS.r]
7226
+ ]);
7227
+ var DECLARATION = / xmlns:([A-Za-z_][\w.-]*)="([^"]*)"/g;
7228
+ function stripDeclarations(xml, bindings) {
7229
+ const conflicting = /* @__PURE__ */ new Set();
7230
+ for (const [, prefix, uri] of xml.matchAll(DECLARATION))
7231
+ if (prefix !== void 0 && bindings.has(prefix) && bindings.get(prefix) !== uri)
7232
+ conflicting.add(prefix);
7233
+ return xml.replace(
7234
+ DECLARATION,
7235
+ (match, prefix, uri) => bindings.get(prefix) === uri && !conflicting.has(prefix) ? "" : match
7236
+ );
7237
+ }
7238
+ var innerXml = (element) => stripDeclarations(elements(element).map(buildXml).join(""), CHART_ROOT_BINDINGS);
7239
+
7240
+ // chart/parse-util.ts
7241
+ var cChild = (parent, local) => first(parent, local, NS.c);
7242
+ var attribute = (element, name) => element?.hasAttribute(name) ? element.getAttribute(name) ?? void 0 : void 0;
7243
+ var cVal = (parent, local) => attribute(cChild(parent, local), "val");
7244
+ var path = (element) => `c:${element.parentNode?.localName ?? ""}/c:${element.localName}`;
7245
+ function malformed(context, element, value) {
7246
+ context.issues.push({
7247
+ code: "CHART_VALUE_INVALID",
7248
+ message: `${path(element)} has an unreadable value "${value}".`
7249
+ });
7250
+ }
7251
+ function cBool(context, parent, local) {
7252
+ const element = cChild(parent, local);
7253
+ if (!element) return void 0;
7254
+ const raw = attribute(element, "val");
7255
+ if (raw === void 0) return true;
7256
+ const value = raw.trim().toLowerCase();
7257
+ if (value === "1" || value === "true") return true;
7258
+ if (value === "0" || value === "false") return false;
7259
+ malformed(context, element, raw);
7260
+ return void 0;
7261
+ }
7262
+ function cNumber(context, parent, local) {
7263
+ const element = cChild(parent, local);
7264
+ const raw = attribute(element, "val");
7265
+ if (!element || raw === void 0) return void 0;
7266
+ const value = raw.trim() ? Number(raw) : Number.NaN;
7267
+ if (Number.isFinite(value)) return value;
7268
+ malformed(context, element, raw);
7269
+ return void 0;
7270
+ }
7271
+ function reportUnmodelled(context, element, handled) {
7272
+ for (const child3 of elements(element)) {
7273
+ if (handled.has(child3.localName)) continue;
7274
+ context.issues.push({
7275
+ code: "CHART_ELEMENT_NOT_MODELLED",
7276
+ message: `${path(child3)} is not modelled; it is kept only in the source part.`
7277
+ });
7278
+ }
7279
+ }
7280
+ function extensionList(parent) {
7281
+ const extLst = cChild(parent, "extLst");
7282
+ return extLst ? buildXml(extLst) : void 0;
7283
+ }
7284
+ function readShapeFields(spPr) {
7285
+ const out = {};
7286
+ const fill = parseDrawingFill(spPr);
7287
+ if (fill) out.fill = fill;
7288
+ const line = parseDrawingLine(first(spPr, "ln", NS.a));
7289
+ if (line) out.line = line;
7290
+ const effects = first(spPr, "effectLst", NS.a);
7291
+ if (effects) out.effectsXml = buildXml(effects);
7292
+ return out;
7293
+ }
7294
+ function shapeProperties(parent) {
7295
+ const spPr = cChild(parent, "spPr");
7296
+ if (!spPr) return void 0;
7297
+ const out = readShapeFields(spPr);
7298
+ const source = innerXml(spPr);
7299
+ if (source) out.sourceXml = source;
7300
+ return out;
7301
+ }
7302
+ function chartTextBody(element) {
7303
+ const body = parseDrawingTextBody(element);
7304
+ if (!body || !element) return body;
7305
+ const source = innerXml(element);
7306
+ if (source) body.sourceXml = source;
7307
+ return body;
7308
+ }
7309
+ var textProperties = (parent) => chartTextBody(cChild(parent, "txPr"));
7310
+ function chartLines(parent, local) {
7311
+ const element = cChild(parent, local);
7312
+ if (!element) return void 0;
7313
+ const spPr = shapeProperties(element);
7314
+ return spPr ? { spPr } : {};
7315
+ }
7316
+ function numberFormat(parent) {
7317
+ const element = cChild(parent, "numFmt");
7318
+ const formatCode = attribute(element, "formatCode");
7319
+ if (formatCode === void 0) return void 0;
7320
+ const linked = attribute(element, "sourceLinked");
7321
+ return {
7322
+ formatCode,
7323
+ ...linked === "1" || linked === "true" ? { sourceLinked: true } : {},
7324
+ ...linked === "0" || linked === "false" ? { sourceLinked: false } : {}
7325
+ };
7326
+ }
7327
+ function readLayoutFields(layout2) {
7328
+ const manual = cChild(layout2, "manualLayout");
7329
+ return (manual && readChartManualLayoutValues((name) => cVal(manual, name))) ?? {};
7330
+ }
7331
+ function manualLayout(parent) {
7332
+ const layout2 = cChild(parent, "layout");
7333
+ if (!layout2) return void 0;
7334
+ const out = readLayoutFields(layout2);
7335
+ const source = innerXml(layout2);
7336
+ if (source) out.sourceXml = source;
7337
+ return out;
7338
+ }
7339
+ function assignDefined(target, values) {
7340
+ for (const [key, value] of Object.entries(values))
7341
+ if (value !== void 0) target[key] = value;
7342
+ return target;
7343
+ }
7344
+
7345
+ // chart/parse-text.ts
7346
+ function parseCache(node) {
7347
+ const cache = {
7348
+ type: node.localName === "numCache" || node.localName === "numLit" ? "number" : "string",
7349
+ points: children(node, "pt", NS.c).map((pt) => {
7350
+ const point = { value: cChild(pt, "v")?.textContent ?? "" };
7351
+ const index = Number(attribute(pt, "idx") ?? Number.NaN);
7352
+ if (Number.isInteger(index) && index >= 0) point.index = index;
7353
+ const formatCode2 = attribute(pt, "formatCode");
7354
+ if (formatCode2 !== void 0) point.formatCode = formatCode2;
7355
+ return point;
7356
+ })
7357
+ };
7358
+ const count = Number(cVal(node, "ptCount") ?? Number.NaN);
7359
+ if (Number.isInteger(count) && count >= 0) cache.pointCount = count;
7360
+ const formatCode = cChild(node, "formatCode")?.textContent;
7361
+ if (formatCode) cache.formatCode = formatCode;
7362
+ return cache;
7363
+ }
7364
+ function parseDataSource(element) {
7365
+ if (!element) return void 0;
7366
+ const source = {};
7367
+ const ref = cChild(element, "numRef") ?? cChild(element, "strRef") ?? cChild(element, "multiLvlStrRef");
7368
+ if (ref) {
7369
+ source.kind = ref.localName;
7370
+ const formula = cChild(ref, "f")?.textContent;
7371
+ if (formula) source.formula = formula;
7372
+ const cache = cChild(ref, "numCache") ?? cChild(ref, "strCache");
7373
+ if (cache) source.cache = parseCache(cache);
7374
+ const levels = cChild(ref, "multiLvlStrCache");
7375
+ if (levels) {
7376
+ source.levels = children(levels, "lvl", NS.c).map(parseCache);
7377
+ const count = Number(cVal(levels, "ptCount") ?? Number.NaN);
7378
+ if (Number.isInteger(count) && count >= 0) source.levelPointCount = count;
7379
+ }
7380
+ return source;
7381
+ }
7382
+ const literal = cChild(element, "numLit") ?? cChild(element, "strLit");
7383
+ if (literal) {
7384
+ source.kind = literal.localName;
7385
+ source.cache = parseCache(literal);
7386
+ }
7387
+ return source;
7388
+ }
7389
+ function parseChartText(context, tx, allowValue) {
7390
+ if (!tx) return void 0;
7391
+ const text = {};
7392
+ const rich = chartTextBody(cChild(tx, "rich"));
7393
+ if (rich) text.rich = rich;
7394
+ if (cChild(tx, "strRef")) {
7395
+ const reference = parseDataSource(tx);
7396
+ if (reference) text.reference = reference;
7397
+ }
7398
+ const value = allowValue ? cChild(tx, "v")?.textContent : void 0;
7399
+ if (value !== void 0 && value !== null) text.value = value;
7400
+ const cached2 = chartCacheValues(text.reference?.cache)[0];
7401
+ const flat = text.value ?? (rich ? rich.text : cached2 === void 0 ? void 0 : String(cached2));
7402
+ if (flat !== void 0) text.text = flat;
7403
+ reportUnmodelled(context, tx, new Set(allowValue ? ["strRef", "v"] : ["rich", "strRef"]));
7404
+ return text;
7405
+ }
7406
+ var TITLE = /* @__PURE__ */ new Set(["tx", "layout", "overlay", "spPr", "txPr", "extLst"]);
7407
+ function parseTitle(context, element) {
7408
+ const tx = parseChartText(context, cChild(element, "tx"), false);
7409
+ reportUnmodelled(context, element, TITLE);
7410
+ return assignDefined(
7411
+ {},
7412
+ {
7413
+ tx,
7414
+ text: tx?.text,
7415
+ overlay: cBool(context, element, "overlay"),
7416
+ layout: manualLayout(element),
7417
+ spPr: shapeProperties(element),
7418
+ txPr: textProperties(element),
7419
+ extLst: extensionList(element)
7420
+ }
7421
+ );
7422
+ }
7423
+ var LABEL_OPTIONS = [
7424
+ "delete",
7425
+ "showLegendKey",
7426
+ "showVal",
7427
+ "showCatName",
7428
+ "showSerName",
7429
+ "showPercent",
7430
+ "showBubbleSize",
7431
+ "separator",
7432
+ "dLblPos",
7433
+ "numFmt",
7434
+ "spPr",
7435
+ "txPr",
7436
+ "extLst"
7437
+ ];
7438
+ function labelOptions(context, element) {
7439
+ const flag2 = (local) => cBool(context, element, local);
7440
+ return assignDefined(
7441
+ {},
7442
+ {
7443
+ deleted: flag2("delete"),
7444
+ showLegendKey: flag2("showLegendKey"),
7445
+ showValue: flag2("showVal"),
7446
+ showCategoryName: flag2("showCatName"),
7447
+ showSeriesName: flag2("showSerName"),
7448
+ showPercent: flag2("showPercent"),
7449
+ showBubbleSize: flag2("showBubbleSize"),
7450
+ separator: cChild(element, "separator")?.textContent ?? void 0,
7451
+ position: cVal(element, "dLblPos"),
7452
+ numberFormat: numberFormat(element),
7453
+ spPr: shapeProperties(element),
7454
+ txPr: textProperties(element),
7455
+ extLst: extensionList(element)
7456
+ }
7457
+ );
7458
+ }
7459
+ var LABEL = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "idx", "layout", "tx"]);
7460
+ var LABELS = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "dLbl", "showLeaderLines", "leaderLines"]);
7461
+ function parseDataLabels(context, element) {
7462
+ if (!element) return void 0;
7463
+ const labels = children(element, "dLbl", NS.c).map((node) => {
7464
+ reportUnmodelled(context, node, LABEL);
7465
+ return assignDefined(labelOptions(context, node), {
7466
+ index: cNumber(context, node, "idx"),
7467
+ tx: parseChartText(context, cChild(node, "tx"), false),
7468
+ layout: manualLayout(node)
7469
+ });
7470
+ });
7471
+ reportUnmodelled(context, element, LABELS);
7472
+ return assignDefined(
7473
+ { ...labelOptions(context, element), labels },
7474
+ {
7475
+ showLeaderLines: cBool(context, element, "showLeaderLines"),
7476
+ leaderLines: chartLines(element, "leaderLines")
7477
+ }
7478
+ );
7479
+ }
7480
+
7481
+ // chart/parse-chrome.ts
7482
+ var SURFACE = /* @__PURE__ */ new Set(["thickness", "spPr", "pictureOptions", "extLst"]);
7483
+ function parseSurface(context, element) {
7484
+ if (!element) return void 0;
7485
+ reportUnmodelled(context, element, SURFACE);
7486
+ const pictureOptions = cChild(element, "pictureOptions");
7487
+ return assignDefined(
7488
+ {},
7489
+ {
7490
+ thickness: cNumber(context, element, "thickness"),
7491
+ spPr: shapeProperties(element),
7492
+ pictureOptionsXml: pictureOptions ? buildXml(pictureOptions) : void 0,
7493
+ extLst: extensionList(element)
7494
+ }
7495
+ );
7496
+ }
7497
+ var DATA_TABLE = /* @__PURE__ */ new Set([
7498
+ "showHorzBorder",
7499
+ "showVertBorder",
7500
+ "showOutline",
7501
+ "showKeys",
7502
+ "spPr",
7503
+ "txPr",
7504
+ "extLst"
7505
+ ]);
7506
+ function parseDataTable(context, element) {
7507
+ if (!element) return void 0;
7508
+ reportUnmodelled(context, element, DATA_TABLE);
7509
+ return assignDefined(
7510
+ {},
7511
+ {
7512
+ showHorizontalBorder: cBool(context, element, "showHorzBorder"),
7513
+ showVerticalBorder: cBool(context, element, "showVertBorder"),
7514
+ showOutline: cBool(context, element, "showOutline"),
7515
+ showKeys: cBool(context, element, "showKeys"),
7516
+ spPr: shapeProperties(element),
7517
+ txPr: textProperties(element),
7518
+ extLst: extensionList(element)
7519
+ }
7520
+ );
7521
+ }
7522
+ var DISPLAY_UNITS = /* @__PURE__ */ new Set(["custUnit", "builtInUnit", "dispUnitsLbl", "extLst"]);
7523
+ var DISPLAY_UNITS_LABEL = /* @__PURE__ */ new Set(["layout", "tx", "spPr", "txPr"]);
7524
+ function parseDisplayUnits(context, element) {
7525
+ if (!element) return void 0;
7526
+ reportUnmodelled(context, element, DISPLAY_UNITS);
7527
+ const labelElement = cChild(element, "dispUnitsLbl");
7528
+ let label;
7529
+ if (labelElement) {
7530
+ reportUnmodelled(context, labelElement, DISPLAY_UNITS_LABEL);
7531
+ label = assignDefined(
7532
+ {},
7533
+ {
7534
+ layout: manualLayout(labelElement),
7535
+ tx: parseChartText(context, cChild(labelElement, "tx"), false),
7536
+ spPr: shapeProperties(labelElement),
7537
+ txPr: textProperties(labelElement)
7538
+ }
7539
+ );
7540
+ }
7541
+ return assignDefined(
7542
+ {},
7543
+ {
7544
+ builtInUnit: cVal(element, "builtInUnit"),
7545
+ customUnit: cNumber(context, element, "custUnit"),
7546
+ label,
7547
+ extLst: extensionList(element)
7548
+ }
7549
+ );
7550
+ }
7551
+
7552
+ // chart/parse-series.ts
7553
+ var MARKER = /* @__PURE__ */ new Set(["symbol", "size", "spPr", "extLst"]);
7554
+ function parseMarker(context, element) {
7555
+ if (!element) return void 0;
7556
+ reportUnmodelled(context, element, MARKER);
7557
+ return assignDefined(
7558
+ {},
7559
+ {
7560
+ symbol: cVal(element, "symbol"),
7561
+ size: cNumber(context, element, "size"),
7562
+ spPr: shapeProperties(element),
7563
+ extLst: extensionList(element)
7564
+ }
7565
+ );
7566
+ }
7567
+ var POINT = /* @__PURE__ */ new Set([
7568
+ "idx",
7569
+ "invertIfNegative",
7570
+ "marker",
7571
+ "bubble3D",
7572
+ "explosion",
7573
+ "spPr",
7574
+ "extLst"
7575
+ ]);
7576
+ function parseDataPoint(context, element) {
7577
+ reportUnmodelled(context, element, POINT);
7578
+ const index = cNumber(context, element, "idx");
7579
+ return assignDefined(
7580
+ {},
7581
+ {
7582
+ index: index !== void 0 && Number.isInteger(index) && index >= 0 ? index : void 0,
7583
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
7584
+ bubble3D: cBool(context, element, "bubble3D"),
7585
+ explosion: cNumber(context, element, "explosion"),
7586
+ marker: parseMarker(context, cChild(element, "marker")),
7587
+ spPr: shapeProperties(element),
7588
+ extLst: extensionList(element)
7589
+ }
7590
+ );
7591
+ }
7592
+ var SERIES = /* @__PURE__ */ new Set([
7593
+ "idx",
7594
+ "order",
7595
+ "tx",
7596
+ "spPr",
7597
+ "invertIfNegative",
7598
+ "dPt",
7599
+ "dLbls",
7600
+ "cat",
7601
+ "val",
7602
+ "xVal",
7603
+ "yVal",
7604
+ "smooth",
7605
+ "marker",
7606
+ "explosion",
7607
+ "bubbleSize",
7608
+ "bubble3D",
7609
+ "shape",
7610
+ "extLst"
7611
+ ]);
7612
+ function parseSeries(context, element) {
7613
+ reportUnmodelled(context, element, SERIES);
7614
+ return assignDefined(
7615
+ { dataPoints: children(element, "dPt", NS.c).map((point) => parseDataPoint(context, point)) },
7616
+ {
7617
+ index: cNumber(context, element, "idx"),
7618
+ order: cNumber(context, element, "order"),
7619
+ tx: parseChartText(context, cChild(element, "tx"), true),
7620
+ spPr: shapeProperties(element),
7621
+ marker: parseMarker(context, cChild(element, "marker")),
7622
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
7623
+ categories: parseDataSource(cChild(element, "cat")),
7624
+ values: parseDataSource(cChild(element, "val")),
7625
+ xValues: parseDataSource(cChild(element, "xVal")),
7626
+ yValues: parseDataSource(cChild(element, "yVal")),
7627
+ bubbleSizes: parseDataSource(cChild(element, "bubbleSize")),
7628
+ smooth: cBool(context, element, "smooth"),
7629
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
7630
+ explosion: cNumber(context, element, "explosion"),
7631
+ bubble3D: cBool(context, element, "bubble3D"),
7632
+ shape: cVal(element, "shape"),
7633
+ extLst: extensionList(element)
7634
+ }
7635
+ );
7636
+ }
7637
+
7638
+ // chart/parse-plot.ts
7639
+ var CHART_GROUP_ELEMENTS = {
7640
+ barChart: { kind: "bar", is3D: false },
7641
+ bar3DChart: { kind: "bar", is3D: true },
7642
+ lineChart: { kind: "line", is3D: false },
7643
+ line3DChart: { kind: "line", is3D: true },
7644
+ areaChart: { kind: "area", is3D: false },
7645
+ area3DChart: { kind: "area", is3D: true },
7646
+ pieChart: { kind: "pie", is3D: false },
7647
+ pie3DChart: { kind: "pie", is3D: true },
7648
+ ofPieChart: { kind: "ofPie", is3D: false },
7649
+ doughnutChart: { kind: "doughnut", is3D: false },
7650
+ scatterChart: { kind: "scatter", is3D: false },
7651
+ radarChart: { kind: "radar", is3D: false },
7652
+ bubbleChart: { kind: "bubble", is3D: false },
7653
+ stockChart: { kind: "stock", is3D: false },
7654
+ surfaceChart: { kind: "surface", is3D: false },
7655
+ surface3DChart: { kind: "surface", is3D: true }
7656
+ };
7657
+ var AXIS_ELEMENTS = {
7658
+ catAx: "cat",
7659
+ valAx: "val",
7660
+ dateAx: "date",
7661
+ serAx: "ser"
7662
+ };
7663
+ var GROUP = /* @__PURE__ */ new Set([
7664
+ "ser",
7665
+ "axId",
7666
+ "varyColors",
7667
+ "dLbls",
7668
+ "barDir",
7669
+ "grouping",
7670
+ "gapWidth",
7671
+ "overlap",
7672
+ "gapDepth",
7673
+ "shape",
7674
+ "marker",
7675
+ "smooth",
7676
+ "dropLines",
7677
+ "hiLowLines",
7678
+ "upDownBars",
7679
+ "serLines",
7680
+ "firstSliceAng",
7681
+ "holeSize",
7682
+ "ofPieType",
7683
+ "scatterStyle",
7684
+ "radarStyle",
7685
+ "bubble3D",
7686
+ "bubbleScale",
7687
+ "showNegBubbles",
7688
+ "sizeRepresents",
7689
+ "wireframe",
7690
+ "extLst"
7691
+ ]);
7692
+ function parseGroup(context, element) {
7693
+ const { kind, is3D } = CHART_GROUP_ELEMENTS[element.localName] ?? { kind: "bar", is3D: false };
7694
+ reportUnmodelled(context, element, GROUP);
7695
+ const number = (local) => cNumber(context, element, local);
7696
+ const flag2 = (local) => cBool(context, element, local);
7697
+ const barDir = cVal(element, "barDir");
7698
+ const present = (local) => cChild(element, local) ? true : void 0;
7699
+ const linesShape = (local) => chartLines(element, local)?.spPr;
7700
+ const bars = cChild(element, "upDownBars");
7701
+ return assignDefined(
7702
+ {
7703
+ kind,
7704
+ element: element.localName,
7705
+ is3D,
7706
+ series: children(element, "ser", NS.c).map((ser) => parseSeries(context, ser)),
7707
+ axisIds: children(element, "axId", NS.c).flatMap((axis) => {
7708
+ const raw = attribute(axis, "val")?.trim();
7709
+ const id = raw ? Number(raw) : Number.NaN;
7710
+ return Number.isFinite(id) ? [id] : [];
7711
+ })
7712
+ },
7713
+ {
7714
+ varyColors: flag2("varyColors"),
7715
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
7716
+ barDirection: barDir === "bar" || barDir === "col" ? barDir : void 0,
7717
+ grouping: cVal(element, "grouping"),
7718
+ gapWidth: number("gapWidth"),
7719
+ overlap: number("overlap"),
7720
+ gapDepth: number("gapDepth"),
7721
+ shape: cVal(element, "shape"),
7722
+ marker: flag2("marker"),
7723
+ smooth: flag2("smooth"),
7724
+ dropLines: present("dropLines"),
7725
+ hiLowLines: present("hiLowLines"),
7726
+ upDownBars: present("upDownBars"),
7727
+ seriesLines: present("serLines"),
7728
+ dropLinesSpPr: linesShape("dropLines"),
7729
+ hiLowLinesSpPr: linesShape("hiLowLines"),
7730
+ seriesLinesSpPr: linesShape("serLines"),
7731
+ upDownBarsGapWidth: cNumber(context, bars, "gapWidth"),
7732
+ upBars: chartLines(bars, "upBars"),
7733
+ downBars: chartLines(bars, "downBars"),
7734
+ firstSliceAngle: number("firstSliceAng"),
7735
+ holeSize: number("holeSize"),
7736
+ ofPieType: cVal(element, "ofPieType"),
7737
+ scatterStyle: cVal(element, "scatterStyle"),
7738
+ radarStyle: cVal(element, "radarStyle"),
7739
+ bubble3D: flag2("bubble3D"),
7740
+ bubbleScale: number("bubbleScale"),
7741
+ showNegativeBubbles: flag2("showNegBubbles"),
7742
+ sizeRepresents: cVal(element, "sizeRepresents"),
7743
+ wireframe: flag2("wireframe"),
7744
+ extLst: extensionList(element)
7745
+ }
7746
+ );
7747
+ }
7748
+ var SCALING = /* @__PURE__ */ new Set(["orientation", "logBase", "min", "max", "extLst"]);
7749
+ var AXIS = /* @__PURE__ */ new Set([
7750
+ "axId",
7751
+ "scaling",
7752
+ "delete",
7753
+ "axPos",
7754
+ "majorGridlines",
7755
+ "minorGridlines",
7756
+ "title",
7757
+ "numFmt",
7758
+ "majorTickMark",
7759
+ "minorTickMark",
7760
+ "tickLblPos",
7761
+ "spPr",
7762
+ "txPr",
7763
+ "crossAx",
7764
+ "crosses",
7765
+ "crossesAt",
7766
+ "crossBetween",
7767
+ "majorUnit",
7768
+ "minorUnit",
7769
+ "auto",
7770
+ "lblAlgn",
7771
+ "lblOffset",
7772
+ "tickLblSkip",
7773
+ "tickMarkSkip",
7774
+ "noMultiLvlLbl",
7775
+ "baseTimeUnit",
7776
+ "dispUnits",
7777
+ "extLst"
7778
+ ]);
7779
+ function parseAxis(context, element, kind) {
7780
+ reportUnmodelled(context, element, AXIS);
7781
+ const number = (local) => cNumber(context, element, local);
7782
+ const scalingElement = cChild(element, "scaling");
7783
+ if (scalingElement) reportUnmodelled(context, scalingElement, SCALING);
7784
+ const scaling = assignDefined(
7785
+ {},
7786
+ {
7787
+ orientation: cVal(scalingElement, "orientation"),
7788
+ min: cNumber(context, scalingElement, "min"),
7789
+ max: cNumber(context, scalingElement, "max"),
7790
+ logBase: cNumber(context, scalingElement, "logBase")
7791
+ }
7792
+ );
7793
+ const title = cChild(element, "title");
7794
+ return assignDefined(
7795
+ {
7796
+ kind,
7797
+ scaling,
7798
+ majorGridlines: cChild(element, "majorGridlines") !== void 0,
7799
+ minorGridlines: cChild(element, "minorGridlines") !== void 0
7800
+ },
7801
+ {
7802
+ majorGridlinesSpPr: chartLines(element, "majorGridlines")?.spPr,
7803
+ minorGridlinesSpPr: chartLines(element, "minorGridlines")?.spPr,
7804
+ id: number("axId"),
7805
+ crossAxisId: number("crossAx"),
7806
+ position: cVal(element, "axPos"),
7807
+ deleted: cBool(context, element, "delete"),
7808
+ title: title ? parseTitle(context, title) : void 0,
7809
+ numberFormat: numberFormat(element),
7810
+ majorTickMark: cVal(element, "majorTickMark"),
7811
+ minorTickMark: cVal(element, "minorTickMark"),
7812
+ tickLabelPosition: cVal(element, "tickLblPos"),
7813
+ crosses: cVal(element, "crosses"),
7814
+ crossesAt: number("crossesAt"),
7815
+ crossBetween: cVal(element, "crossBetween"),
7816
+ majorUnit: number("majorUnit"),
7817
+ minorUnit: number("minorUnit"),
7818
+ auto: cBool(context, element, "auto"),
7819
+ labelAlign: cVal(element, "lblAlgn"),
7820
+ labelOffset: number("lblOffset"),
7821
+ tickLabelSkip: number("tickLblSkip"),
7822
+ tickMarkSkip: number("tickMarkSkip"),
7823
+ noMultiLevelLabels: cBool(context, element, "noMultiLvlLbl"),
7824
+ baseTimeUnit: cVal(element, "baseTimeUnit"),
7825
+ displayUnits: parseDisplayUnits(context, cChild(element, "dispUnits")),
7826
+ spPr: shapeProperties(element),
7827
+ txPr: textProperties(element),
7828
+ extLst: extensionList(element)
7829
+ }
7830
+ );
7831
+ }
7832
+ var PLOT_AREA = /* @__PURE__ */ new Set(["layout", "dTable", "spPr", "extLst"]);
7833
+ function parsePlotArea(context, element) {
7834
+ const plotArea = { groups: [], axes: [] };
7835
+ if (!element) {
7836
+ context.issues.push({
7837
+ code: "CHART_PLOT_AREA_MISSING",
7838
+ message: "The chart has no c:plotArea."
7839
+ });
7840
+ return plotArea;
7841
+ }
7842
+ const handled = new Set(PLOT_AREA);
7843
+ for (const child3 of elements(element)) {
7844
+ if (CHART_GROUP_ELEMENTS[child3.localName]) {
7845
+ plotArea.groups.push(parseGroup(context, child3));
7846
+ handled.add(child3.localName);
7847
+ }
7848
+ const axis = AXIS_ELEMENTS[child3.localName];
7849
+ if (axis) {
7850
+ plotArea.axes.push(parseAxis(context, child3, axis));
7851
+ handled.add(child3.localName);
7852
+ }
7853
+ }
7854
+ reportUnmodelled(context, element, handled);
7855
+ return assignDefined(plotArea, {
7856
+ layout: manualLayout(element),
7857
+ dataTable: parseDataTable(context, cChild(element, "dTable")),
7858
+ spPr: shapeProperties(element),
7859
+ extLst: extensionList(element)
7860
+ });
7861
+ }
7862
+
7863
+ // chart/parse-space.ts
7864
+ var LEGEND = /* @__PURE__ */ new Set(["legendPos", "legendEntry", "layout", "overlay", "spPr", "txPr", "extLst"]);
7865
+ function parseLegend(context, element) {
7866
+ reportUnmodelled(context, element, LEGEND);
7867
+ const entries = children(element, "legendEntry", NS.c).map(
7868
+ (entry2) => assignDefined(
7869
+ {},
7870
+ {
7871
+ index: cNumber(context, entry2, "idx"),
7872
+ deleted: cBool(context, entry2, "delete"),
7873
+ txPr: textProperties(entry2)
7874
+ }
7875
+ )
7876
+ );
7877
+ return assignDefined(
7878
+ { entries },
7879
+ {
7880
+ position: cVal(element, "legendPos"),
7881
+ overlay: cBool(context, element, "overlay"),
7882
+ layout: manualLayout(element),
7883
+ spPr: shapeProperties(element),
7884
+ txPr: textProperties(element),
7885
+ extLst: extensionList(element)
7886
+ }
7887
+ );
7888
+ }
7889
+ var VIEW_3D = /* @__PURE__ */ new Set(["rotX", "rotY", "depthPercent", "hPercent", "rAngAx", "perspective"]);
7890
+ function parseView3D(context, element) {
7891
+ reportUnmodelled(context, element, VIEW_3D);
7892
+ return assignDefined(
7893
+ {},
7894
+ {
7895
+ rotX: cNumber(context, element, "rotX"),
7896
+ rotY: cNumber(context, element, "rotY"),
7897
+ depthPercent: cNumber(context, element, "depthPercent"),
7898
+ heightPercent: cNumber(context, element, "hPercent"),
7899
+ rightAngleAxes: cBool(context, element, "rAngAx"),
7900
+ perspective: cNumber(context, element, "perspective")
7901
+ }
7902
+ );
7903
+ }
7904
+ function chartStyle(context, space) {
7905
+ const direct = cNumber(context, space, "style");
7906
+ if (direct !== void 0) return direct;
7907
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
7908
+ const style = cNumber(context, first(alternate, "Fallback", NS.mc), "style");
7909
+ if (style !== void 0) return style;
7910
+ }
7911
+ return void 0;
7912
+ }
7913
+ function c14Style(space) {
7914
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
7915
+ const raw = attribute(first(first(alternate, "Choice", NS.mc), "style", NS.c14, false), "val");
7916
+ const value = raw?.trim() ? Number(raw) : Number.NaN;
7917
+ if (Number.isFinite(value)) return value;
7918
+ }
7919
+ return void 0;
7920
+ }
7921
+ function namespaceDeclarations(root) {
7922
+ const out = [];
7923
+ for (const item of Array.from(root.attributes)) {
7924
+ if (item.prefix !== "xmlns" || CHART_ROOT_BINDINGS.get(item.localName) === item.value) continue;
7925
+ out.push({ prefix: item.localName, uri: item.value });
7926
+ }
7927
+ return out.length ? out : void 0;
7928
+ }
7929
+ var CHART = /* @__PURE__ */ new Set([
7930
+ "title",
7931
+ "autoTitleDeleted",
7932
+ "view3D",
7933
+ "floor",
7934
+ "sideWall",
7935
+ "backWall",
7936
+ "plotArea",
7937
+ "legend",
7938
+ "plotVisOnly",
7939
+ "dispBlanksAs",
7940
+ "showDLblsOverMax",
7941
+ "extLst"
7942
+ ]);
7943
+ var SPACE = /* @__PURE__ */ new Set([
7944
+ "date1904",
7945
+ "lang",
7946
+ "roundedCorners",
7947
+ "AlternateContent",
7948
+ "style",
7949
+ "chart",
7950
+ "spPr",
7951
+ "txPr",
7952
+ "externalData",
7953
+ "printSettings",
7954
+ "userShapes",
7955
+ "extLst"
7956
+ ]);
7957
+ function parseChartSpace(source) {
7958
+ const context = { issues: [] };
7959
+ const root = typeof source === "string" ? parseXml(source, { label: "Chart part" }).documentElement : source;
7960
+ if (root.localName !== "chartSpace" || root.namespaceURI && root.namespaceURI !== NS.c) {
7961
+ context.issues.push({
7962
+ code: "CHART_ROOT_UNEXPECTED",
7963
+ message: `The part root is {${root.namespaceURI ?? ""}}${root.localName}, not c:chartSpace (chartex parts are not modelled).`
7964
+ });
7965
+ return { chartSpace: { plotArea: { groups: [], axes: [] } }, issues: context.issues };
7966
+ }
7967
+ reportUnmodelled(context, root, SPACE);
7968
+ const chart = cChild(root, "chart");
7969
+ if (!chart)
7970
+ context.issues.push({ code: "CHART_CHART_MISSING", message: "The part has no c:chart." });
7971
+ else reportUnmodelled(context, chart, CHART);
7972
+ const title = cChild(chart, "title");
7973
+ const legend = cChild(chart, "legend");
7974
+ const view3D = cChild(chart, "view3D");
7975
+ const printSettings = cChild(root, "printSettings");
7976
+ const chartSpace = assignDefined(
7977
+ { plotArea: parsePlotArea(context, cChild(chart, "plotArea")) },
7978
+ {
7979
+ date1904: cBool(context, root, "date1904"),
7980
+ language: cVal(root, "lang"),
7981
+ roundedCorners: cBool(context, root, "roundedCorners"),
7982
+ style: chartStyle(context, root),
7983
+ c14Style: c14Style(root),
7984
+ title: title ? parseTitle(context, title) : void 0,
7985
+ autoTitleDeleted: cBool(context, chart, "autoTitleDeleted"),
7986
+ view3D: view3D ? parseView3D(context, view3D) : void 0,
7987
+ floor: parseSurface(context, cChild(chart, "floor")),
7988
+ sideWall: parseSurface(context, cChild(chart, "sideWall")),
7989
+ backWall: parseSurface(context, cChild(chart, "backWall")),
7990
+ legend: legend ? parseLegend(context, legend) : void 0,
7991
+ plotVisibleOnly: cBool(context, chart, "plotVisOnly"),
7992
+ displayBlanksAs: cVal(chart, "dispBlanksAs"),
7993
+ showDataLabelsOverMax: cBool(context, chart, "showDLblsOverMax"),
7994
+ spPr: shapeProperties(root),
7995
+ txPr: textProperties(root),
7996
+ externalDataRelId: relAttr(cChild(root, "externalData"), "id") || void 0,
7997
+ externalDataAutoUpdate: cBool(context, cChild(root, "externalData"), "autoUpdate"),
7998
+ printSettings: printSettings ? buildXml(printSettings) : void 0,
7999
+ userShapesRelId: relAttr(cChild(root, "userShapes"), "id") || void 0,
8000
+ chartExtLst: extensionList(chart),
8001
+ extLst: extensionList(root),
8002
+ namespaceDeclarations: namespaceDeclarations(root)
8003
+ }
8004
+ );
8005
+ return { chartSpace, issues: context.issues };
8006
+ }
8007
+
8008
+ // drawingml/theme.ts
8009
+ new Set(THEME_COLOR_SLOTS);
8010
+ function nonEmpty(value) {
8011
+ return value ? value : void 0;
8012
+ }
8013
+ function parseThemeColorScheme(scheme) {
8014
+ const result = { colors: {} };
8015
+ if (!scheme) return result;
8016
+ const name = nonEmpty(scheme.getAttribute("name"));
8017
+ if (name) result.name = name;
8018
+ for (const slot2 of THEME_COLOR_SLOTS) {
8019
+ const color = parseDrawingColorIn(first(scheme, slot2, NS.a));
8020
+ if (color) result.colors[slot2] = color;
8021
+ }
8022
+ return result;
8023
+ }
8024
+ function parseFontCollection(collection) {
8025
+ const result = { scripts: {} };
8026
+ if (!collection) return result;
8027
+ const typeface = (local) => nonEmpty(first(collection, local, NS.a)?.getAttribute("typeface"));
8028
+ const latin = typeface("latin");
8029
+ const eastAsia = typeface("ea");
8030
+ const complexScript = typeface("cs");
8031
+ if (latin) result.latin = latin;
8032
+ if (eastAsia) result.eastAsia = eastAsia;
8033
+ if (complexScript) result.complexScript = complexScript;
8034
+ for (const font of elements(collection)) {
8035
+ if (font.localName !== "font") continue;
8036
+ const script = nonEmpty(font.getAttribute("script"));
8037
+ const face = nonEmpty(font.getAttribute("typeface"));
8038
+ if (script && face && !Object.hasOwn(result.scripts, script)) result.scripts[script] = face;
8039
+ }
8040
+ return result;
8041
+ }
8042
+ function parseThemeFontScheme(scheme) {
8043
+ const result = {
8044
+ major: parseFontCollection(first(scheme, "majorFont", NS.a)),
8045
+ minor: parseFontCollection(first(scheme, "minorFont", NS.a))
8046
+ };
8047
+ const name = nonEmpty(scheme?.getAttribute("name"));
8048
+ if (name) result.name = name;
8049
+ return result;
8050
+ }
8051
+ function rootOf2(source) {
8052
+ return "documentElement" in source ? source.documentElement : source;
8053
+ }
8054
+ function parseTheme(source) {
8055
+ const root = rootOf2(source);
8056
+ const holder = first(root, "themeElements", NS.a) ?? root;
8057
+ const theme = {
8058
+ colorScheme: parseThemeColorScheme(first(holder, "clrScheme", NS.a)),
8059
+ fontScheme: parseThemeFontScheme(first(holder, "fontScheme", NS.a))
8060
+ };
8061
+ const name = nonEmpty(root.getAttribute("name"));
8062
+ if (name) theme.name = name;
8063
+ return theme;
8064
+ }
8065
+
8066
+ // drawingml/theme-color.ts
8067
+ function themeSlotHex(color) {
8068
+ if (!color) return void 0;
8069
+ const value = color.kind === "srgb" ? color.value : color.kind === "system" ? color.fallback : void 0;
8070
+ return value ? value.toUpperCase() : void 0;
8071
+ }
8072
+
8073
+ // docx/breaks.ts
8074
+ function isCachedPageBreak(element) {
8075
+ return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
8076
+ (attribute2) => attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/"
8077
+ );
8078
+ }
8079
+ function hasSpecialBreak(element) {
8080
+ for (const attribute2 of Array.from(element.attributes)) {
8081
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
8082
+ if (attribute2.namespaceURI !== WORD_NS) return true;
8083
+ if (attribute2.localName === "type") {
8084
+ if (attribute2.value !== "textWrapping") return true;
8085
+ } else if (attribute2.localName === "clear") {
8086
+ if (attribute2.value !== "none") return true;
8087
+ } else return true;
8088
+ }
8089
+ return false;
8090
+ }
8091
+ function classifyBreak(element) {
8092
+ const type = getW(element, "type");
8093
+ return type === "page" || type === "column" ? type : "textWrapping";
8094
+ }
8095
+ function isModeledBreak(element) {
8096
+ const kind = classifyBreak(element);
8097
+ if (kind === "textWrapping") return false;
8098
+ for (const attribute2 of Array.from(element.attributes)) {
8099
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
8100
+ if (attribute2.namespaceURI !== WORD_NS || attribute2.localName !== "type") return false;
8101
+ }
8102
+ return true;
8103
+ }
8104
+
8105
+ // docx/parse-warnings.ts
8106
+ function hasAny(document, names) {
8107
+ return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
8108
+ }
8109
+ function warningsFor(document) {
8110
+ const warnings = [];
8111
+ const features = [
8112
+ [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
8113
+ [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
8114
+ [
8115
+ ["fldSimple", "instrText", "fldChar"],
8116
+ "Fields show the result Word last saved while editing; Print Layout recalculates PAGE, NUMPAGES, SECTIONPAGES, DATE and TIME, and tables of contents update from the References tab."
8117
+ ],
8118
+ [
8119
+ ["moveFrom", "moveTo"],
8120
+ "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
8121
+ ],
8122
+ [
8123
+ ["rPrChange"],
8124
+ "Formatting-change revisions retain their prior run-properties snapshots and support acceptance and rejection; recording new formatting changes and showing prior formatting in Original display are not supported yet."
8125
+ ],
8126
+ [
8127
+ ["pPrChange"],
8128
+ "Paragraph-formatting-change revisions retain their prior properties snapshots and support acceptance and rejection; recording new paragraph formatting changes and showing prior formatting in Original display are not supported yet."
8129
+ ],
8130
+ [
8131
+ ["tblPrChange", "trPrChange", "tcPrChange"],
8132
+ "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
8133
+ ]
8134
+ ];
8135
+ for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
8136
+ if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
8137
+ (el3) => /HYPERLINK/i.test(textContent(el3))
8138
+ ))
8139
+ warnings.push(
8140
+ "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
8141
+ );
8142
+ const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
8143
+ (br) => hasSpecialBreak(br) && !isModeledBreak(br)
8144
+ ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
8145
+ (cr) => cr.attributes.length > 0
8146
+ );
8147
+ if (specialBreak)
8148
+ warnings.push(
8149
+ "Some non-line breaks other than page and column breaks are not distinguished from line breaks in the document model; edits to paragraphs containing them are rejected to preserve the original XML."
8150
+ );
8151
+ return warnings;
8152
+ }
8153
+ function forEachParagraph2(blocks, visit) {
8154
+ for (const block of blocks) {
8155
+ if (block.type === "paragraph") visit(block);
8156
+ else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
8157
+ }
8158
+ }
8159
+ function imageAndBookmarkWarnings(blocks) {
8160
+ const warnings = [];
8161
+ let hasPicture = false;
8162
+ let hasAnchored = false;
8163
+ const unsupportedKinds = /* @__PURE__ */ new Set();
8164
+ let hasBookmarks = false;
8165
+ forEachParagraph2(blocks, (paragraph) => {
8166
+ if (paragraph.bookmarks?.length) hasBookmarks = true;
8167
+ for (const run of paragraph.runs) {
8168
+ if (!run.image) continue;
8169
+ if (run.image.unsupported) {
8170
+ if (run.image.diagram?.rendering !== "cached-drawing")
8171
+ unsupportedKinds.add(run.image.unsupported);
8172
+ } else hasPicture = true;
8173
+ if (run.image.anchored) hasAnchored = true;
8174
+ }
8175
+ });
8176
+ if (hasPicture)
8177
+ warnings.push(
8178
+ "Inline pictures render from their original bytes and can be deleted or newly inserted; crop, artistic effects, and non-inline text wrapping are not reproduced."
8179
+ );
8180
+ if (hasAnchored)
8181
+ warnings.push(
8182
+ "Floating pictures follow their text wrapping approximately (floated left or right, or on their own line); exact positions, vertical offsets and in-front/behind layering are not reproduced."
8183
+ );
8184
+ if (unsupportedKinds.size)
8185
+ warnings.push(
8186
+ `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
8187
+ );
8188
+ if (hasBookmarks)
8189
+ warnings.push(
8190
+ "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
8191
+ );
8192
+ return warnings;
8193
+ }
8194
+
8195
+ // docx/chart.ts
8196
+ var CHART_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
8197
+ var CHART_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart";
8198
+ var PACKAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
8199
+ var CHART_NOTICE = "The chart is drawn from the values cached in its part (bar, column, line, area, pie, doughnut, scatter and radar charts; other kinds show a labelled frame). It is not editable, and the chart part and its workbook are preserved unchanged on save.";
8200
+ function parseChartGraphic(graphicData, docPr, rels, isAnchor) {
8201
+ const element = Array.from(graphicData.childNodes).find(
8202
+ (node) => isElement(node) && node.localName === "chart"
8203
+ );
8204
+ const relId = getR(element, "id") || void 0;
8205
+ const issues = [];
8206
+ let partName;
8207
+ const rel = relId ? rels.get(relId) : void 0;
8208
+ if (!relId)
8209
+ issues.push({
8210
+ code: "CHART_RELATIONSHIP_MISSING",
8211
+ message: "The graphic has no c:chart/@r:id."
8212
+ });
8213
+ else if (!rel || rel.mode === "External")
8214
+ issues.push({
8215
+ code: "CHART_RELATIONSHIP_UNRESOLVED",
8216
+ message: `Chart relationship ${relId} does not point at a part in this package.`
8217
+ });
8218
+ else {
8219
+ if (rel.type !== CHART_RELATIONSHIP_TYPE)
8220
+ issues.push({
8221
+ code: "CHART_RELATIONSHIP_TYPE",
8222
+ message: `Chart relationship ${relId} has type ${rel.type}, expected ${CHART_RELATIONSHIP_TYPE}.`
8223
+ });
8224
+ partName = resolvePartPath("word/document.xml", rel.target);
8225
+ }
8226
+ const name = docPr?.getAttribute("name") || void 0;
8227
+ const id = docPr?.getAttribute("id") || void 0;
8228
+ return {
8229
+ placement: isAnchor ? "anchor" : "inline",
6967
8230
  ...name ? { name } : {},
6968
8231
  ...id ? { id } : {},
6969
- relationshipIds,
6970
- parts,
6971
- hostRelationships,
6972
- nodes: [],
6973
- rendering: "placeholder",
6974
- notice: diagramNotice("placeholder"),
8232
+ ...relId ? { relId } : {},
8233
+ ...partName ? { partName } : {},
8234
+ notice: CHART_NOTICE,
6975
8235
  issues
6976
8236
  };
6977
8237
  }
6978
- async function resolveDiagramParts(diagram, readText) {
6979
- const hostPart = "word/document.xml";
6980
- const dataPart = diagram.parts.data?.partName;
6981
- let declaredDrawing;
8238
+ async function resolveChartPart(chart, readText) {
8239
+ if (!chart.partName) return;
6982
8240
  try {
6983
- const dataXml = dataPart ? await readText(dataPart) : void 0;
6984
- declaredDrawing = dataXml ? parseDiagramDataModel(dataXml).drawingRelId : void 0;
6985
- } catch {
6986
- }
6987
- const offered = Object.entries(diagram.hostRelationships).filter(
6988
- ([id]) => id === declaredDrawing || !isDrawingRelationship(diagram, id)
6989
- );
6990
- const loaded = await loadDiagram(hostPart, diagram.relationshipIds, {
6991
- hostRelationships: () => new Map(offered.map(([id, name]) => [id, `/${name}`])),
6992
- resolvePath: resolvePartPath,
6993
- readText,
6994
- readRelationshipEntries: async (relsPart) => {
6995
- const xml = await readText(relsPart);
6996
- if (!xml) return void 0;
6997
- try {
6998
- return [...parseRelationships(xml).values()].map(({ id, type, target }) => ({
6999
- id,
7000
- type,
7001
- target
7002
- }));
7003
- } catch {
7004
- return void 0;
7005
- }
8241
+ const xml = await readText(chart.partName);
8242
+ if (xml === void 0) {
8243
+ chart.issues.push({
8244
+ code: "CHART_PART_MISSING",
8245
+ message: `The chart part ${chart.partName} is not in the package.`
8246
+ });
8247
+ return;
7006
8248
  }
7007
- });
7008
- const known = new Set(diagram.issues.map((issue) => `${issue.code}|${issue.message}`));
7009
- const fresh = loaded.issues.filter(
7010
- (issue) => !issue.code.startsWith("DIAGRAM_RELATIONSHIP_") && !known.has(`${issue.code}|${issue.message}`)
7011
- );
7012
- diagram.issues.push(...fresh);
7013
- if (loaded.paths.drawing && loaded.drawingRelId)
7014
- diagram.parts.drawing = { relId: loaded.drawingRelId, partName: loaded.paths.drawing };
7015
- if (loaded.layout) {
7016
- diagram.layout = {
7017
- uniqueId: loaded.layout.uniqueId,
7018
- ...loaded.layout.family ? { family: loaded.layout.family } : {},
7019
- ...loaded.layout.rootAlgorithm ? { rootAlgorithm: loaded.layout.rootAlgorithm } : {}
7020
- };
7021
- }
7022
- if (loaded.colors?.uniqueId) diagram.colorsId = loaded.colors.uniqueId;
7023
- if (loaded.quickStyle?.uniqueId) diagram.quickStyleId = loaded.quickStyle.uniqueId;
7024
- if (loaded.data)
7025
- diagram.nodes = loaded.data.nodes.map((node) => ({
7026
- id: node.modelId,
7027
- text: node.text,
7028
- ...loaded.data?.parentById.get(node.modelId) ? { parentId: loaded.data.parentById.get(node.modelId) } : {}
7029
- }));
7030
- if (loaded.drawing && loaded.drawing.shapes.length > 0) {
7031
- diagram.drawing = loaded.drawing;
7032
- diagram.rendering = "cached-drawing";
7033
- } else {
7034
- delete diagram.drawing;
7035
- diagram.rendering = "placeholder";
8249
+ const root = parseXml(xml, { label: "Chart part" }).documentElement;
8250
+ const { chartSpace, issues } = parseChartSpace(root);
8251
+ chart.chartSpace = chartSpace;
8252
+ chart.issues.push(...issues);
8253
+ const title = chartSpace.autoTitleDeleted ? void 0 : chartSpace.title?.text;
8254
+ if (title) chart.title = title;
8255
+ if (chartSpace.plotArea.groups.length) {
8256
+ const formatting = readChartFormatting(root);
8257
+ if (formatting) chart.formatting = formatting;
8258
+ }
8259
+ const rels = parseRelationships(await readText(relationshipsPartFor(chart.partName)));
8260
+ const dataRelId = chartSpace.externalDataRelId;
8261
+ const dataRel = dataRelId ? rels.get(dataRelId) : void 0;
8262
+ if (dataRel && dataRel.mode !== "External" && dataRel.type === PACKAGE_RELATIONSHIP_TYPE)
8263
+ chart.workbookPartName = resolvePartPath(chart.partName, dataRel.target);
8264
+ const colorsRel = [...rels.values()].find(
8265
+ (rel) => rel.mode !== "External" && rel.type.endsWith("/chartColorStyle")
8266
+ );
8267
+ const colorsXml = colorsRel && await readText(resolvePartPath(chart.partName, colorsRel.target));
8268
+ const palette = colorsXml ? chartColorStyleId(colorsXml) : void 0;
8269
+ if (palette !== void 0) chart.colorPalette = palette;
8270
+ } catch (error) {
8271
+ chart.issues.push({
8272
+ code: "CHART_PART_UNREADABLE",
8273
+ message: `The chart part ${chart.partName} could not be read: ${error instanceof Error ? error.message : String(error)}`
8274
+ });
7036
8275
  }
7037
- diagram.notice = diagramNotice(diagram.rendering);
8276
+ }
8277
+ function chartsIn(blocks) {
8278
+ const charts = [];
8279
+ forEachParagraph2(blocks, (paragraph) => {
8280
+ for (const run of paragraph.runs) if (run.image?.chart) charts.push(run.image.chart);
8281
+ });
8282
+ return charts;
8283
+ }
8284
+ async function resolveDocumentCharts(blocks, readText) {
8285
+ for (const chart of chartsIn(blocks)) await resolveChartPart(chart, readText);
7038
8286
  }
7039
8287
 
7040
8288
  // docx/drawing.ts
@@ -7152,6 +8400,7 @@ function parseModernDrawing(node, context) {
7152
8400
  ...svg ? { svgPartName: svg.partName } : {}
7153
8401
  };
7154
8402
  const diagram = uri === DIAGRAM_GRAPHIC_URI && graphicData ? parseDiagramGraphic(graphicData, extent, docPr, context.rels, Boolean(anchored)) : void 0;
8403
+ const chart = uri === CHART_GRAPHIC_URI && graphicData ? parseChartGraphic(graphicData, docPr, context.rels, Boolean(anchored)) : void 0;
7155
8404
  const textBox = uri.includes("wordprocessingShape") ? textBoxParagraphs(graphicData) : void 0;
7156
8405
  return {
7157
8406
  relId: relId ?? "",
@@ -7162,6 +8411,7 @@ function parseModernDrawing(node, context) {
7162
8411
  ...definedProps({ altText, title, anchored }),
7163
8412
  unsupported: textBox ? "Text box" : unsupportedKindLabel(uri),
7164
8413
  ...diagram ? { diagram } : {},
8414
+ ...chart ? { chart } : {},
7165
8415
  ...diagram && placement ? { placement } : {},
7166
8416
  ...textBox ? { textBoxText: textBox } : {},
7167
8417
  ...textBox && isSimpleTextBox(graphicData, Boolean(anchored)) ? { textBoxEditable: true, textBoxBorder: textBoxHasBorder(graphicData) } : {}
@@ -7241,8 +8491,8 @@ function findDrawingChild(run) {
7241
8491
  if (isElement(child3) && (named2(child3, "drawing") || named2(child3, "pict"))) return child3;
7242
8492
  return void 0;
7243
8493
  }
7244
- function sameUnderlyingImage(a, b) {
7245
- return Boolean(a.partName) && a.relId === b.relId && a.partName === b.partName;
8494
+ function sameUnderlyingImage(a2, b) {
8495
+ return Boolean(a2.partName) && a2.relId === b.relId && a2.partName === b.partName;
7246
8496
  }
7247
8497
  function walk(root, visit) {
7248
8498
  const stack = [root];
@@ -7452,17 +8702,17 @@ function setBooleanAttribute(doc, props, local, value) {
7452
8702
  }
7453
8703
  setAttribute6(element, "val", value ? "1" : "0");
7454
8704
  }
7455
- function setLanguageAttribute(doc, props, attribute, value) {
8705
+ function setLanguageAttribute(doc, props, attribute2, value) {
7456
8706
  let language = first2(props, "lang");
7457
8707
  if (value === void 0 || value === "") {
7458
8708
  if (!language) return;
7459
- language.removeAttributeNS(WORD_NS, attribute);
8709
+ language.removeAttributeNS(WORD_NS, attribute2);
7460
8710
  } else {
7461
8711
  if (!language) {
7462
8712
  language = makeW(doc, "lang");
7463
8713
  props.appendChild(language);
7464
8714
  }
7465
- setAttribute6(language, attribute, value);
8715
+ setAttribute6(language, attribute2, value);
7466
8716
  }
7467
8717
  if (language && !language.attributes.length && !language.childNodes.length)
7468
8718
  props.removeChild(language);
@@ -7562,8 +8812,8 @@ function setRunProperties(doc, runNode, run, base) {
7562
8812
  };
7563
8813
  for (const script of ["ascii", "hAnsi", "eastAsia", "cs"]) {
7564
8814
  const role = run.fontTheme?.[script];
7565
- const [attribute, suffix] = themeAttribute[script];
7566
- if (role) setAttribute6(fonts, attribute, `${role}${suffix}`);
8815
+ const [attribute2, suffix] = themeAttribute[script];
8816
+ if (role) setAttribute6(fonts, attribute2, `${role}${suffix}`);
7567
8817
  }
7568
8818
  props.appendChild(fonts);
7569
8819
  }
@@ -7651,8 +8901,8 @@ function createRun(doc, run, base, old, allocator) {
7651
8901
  }
7652
8902
 
7653
8903
  // docx/inline-source.ts
7654
- function samePictureSource(a, b) {
7655
- return !!a?.partName && a.partName === b?.partName && a.relId === b?.relId;
8904
+ function samePictureSource(a2, b) {
8905
+ return !!a2?.partName && a2.partName === b?.partName && a2.relId === b?.relId;
7656
8906
  }
7657
8907
  function inlineSourceLookup(runs, base) {
7658
8908
  const usedPictures = /* @__PURE__ */ new Set();
@@ -7694,8 +8944,8 @@ function takeSimpleFieldCommentEdges(doc, runs, start, end, opens, closes) {
7694
8944
  }
7695
8945
 
7696
8946
  // docx/field-lock.ts
7697
- function sameFieldFlags(a, b) {
7698
- return a?.locked === b?.locked && a?.dirty === b?.dirty;
8947
+ function sameFieldFlags(a2, b) {
8948
+ return a2?.locked === b?.locked && a2?.dirty === b?.dirty;
7699
8949
  }
7700
8950
  var MATH_NAMESPACES = /* @__PURE__ */ new Set([
7701
8951
  "http://schemas.openxmlformats.org/officeDocument/2006/math",
@@ -7722,38 +8972,6 @@ function preserveEquation(run, base, old) {
7722
8972
  return old.cloneNode(true);
7723
8973
  }
7724
8974
 
7725
- // docx/breaks.ts
7726
- function isCachedPageBreak(element) {
7727
- return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
7728
- (attribute) => attribute.namespaceURI === "http://www.w3.org/2000/xmlns/"
7729
- );
7730
- }
7731
- function hasSpecialBreak(element) {
7732
- for (const attribute of Array.from(element.attributes)) {
7733
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
7734
- if (attribute.namespaceURI !== WORD_NS) return true;
7735
- if (attribute.localName === "type") {
7736
- if (attribute.value !== "textWrapping") return true;
7737
- } else if (attribute.localName === "clear") {
7738
- if (attribute.value !== "none") return true;
7739
- } else return true;
7740
- }
7741
- return false;
7742
- }
7743
- function classifyBreak(element) {
7744
- const type = getW(element, "type");
7745
- return type === "page" || type === "column" ? type : "textWrapping";
7746
- }
7747
- function isModeledBreak(element) {
7748
- const kind = classifyBreak(element);
7749
- if (kind === "textWrapping") return false;
7750
- for (const attribute of Array.from(element.attributes)) {
7751
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
7752
- if (attribute.namespaceURI !== WORD_NS || attribute.localName !== "type") return false;
7753
- }
7754
- return true;
7755
- }
7756
-
7757
8975
  // docx/parse-revisions.ts
7758
8976
  var REVISION_WRAPPERS = {
7759
8977
  ins: "insert",
@@ -7775,7 +8993,7 @@ function trackMoveRange(item, moves) {
7775
8993
  const open = moves[range.kind];
7776
8994
  if (range.start) open.push({ name: getW(item, "name") ?? id, id });
7777
8995
  else {
7778
- const index = open.findIndex((entry) => entry.id === id);
8996
+ const index = open.findIndex((entry2) => entry2.id === id);
7779
8997
  if (index >= 0) open.splice(index, 1);
7780
8998
  }
7781
8999
  return true;
@@ -7948,10 +9166,10 @@ function replaceableInlineChildren(paragraph) {
7948
9166
  (child3) => isElement(child3) && (isEquationElement(child3) || named2(child3, "r") || named2(child3, "hyperlink") || named2(child3, "fldSimple") || isRevisionWrapperElement(child3) || isCommentAnchorElement(child3))
7949
9167
  );
7950
9168
  }
7951
- function sameLink(a, b) {
7952
- if (!a && !b) return true;
7953
- if (!a || !b) return false;
7954
- return a.href === b.href && a.anchor === b.anchor && a.tooltip === b.tooltip;
9169
+ function sameLink(a2, b) {
9170
+ if (!a2 && !b) return true;
9171
+ if (!a2 || !b) return false;
9172
+ return a2.href === b.href && a2.anchor === b.anchor && a2.tooltip === b.tooltip;
7955
9173
  }
7956
9174
  function setW6(element, local, value) {
7957
9175
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
@@ -8040,10 +9258,10 @@ function containerGroup(run) {
8040
9258
  };
8041
9259
  return void 0;
8042
9260
  }
8043
- function sameGroup(a, b) {
8044
- if (!a || !b) return a === b;
8045
- if (a.kind === "link" && b.kind === "link") return sameLink(a.link, b.link);
8046
- return a.kind === "simpleField" && b.kind === "simpleField" && a.instr === b.instr && a.instanceId === b.instanceId && sameFieldFlags(a.fieldFlags, b.fieldFlags);
9261
+ function sameGroup(a2, b) {
9262
+ if (!a2 || !b) return a2 === b;
9263
+ if (a2.kind === "link" && b.kind === "link") return sameLink(a2.link, b.link);
9264
+ return a2.kind === "simpleField" && b.kind === "simpleField" && a2.instr === b.instr && a2.instanceId === b.instanceId && sameFieldFlags(a2.fieldFlags, b.fieldFlags);
8047
9265
  }
8048
9266
 
8049
9267
  // docx/paragraph-styles.ts
@@ -8392,8 +9610,8 @@ var IMAGE_RELATIONSHIP_TYPE = RELATIONSHIP_TYPES.image;
8392
9610
  function scanUsedRelationshipIds(doc) {
8393
9611
  const used = /* @__PURE__ */ new Set();
8394
9612
  const visit = (node) => {
8395
- for (const attribute of Array.from(node.attributes))
8396
- if (attribute.namespaceURI === REL_NS) used.add(attribute.value);
9613
+ for (const attribute2 of Array.from(node.attributes))
9614
+ if (attribute2.namespaceURI === REL_NS) used.add(attribute2.value);
8397
9615
  for (const child3 of Array.from(node.childNodes)) if (isElement(child3)) visit(child3);
8398
9616
  };
8399
9617
  if (doc.documentElement) visit(doc.documentElement);
@@ -8631,9 +9849,9 @@ function isXsdDateTime(value) {
8631
9849
  return !zone || Number(zone[1]) <= 14 && Number(zone[2]) <= 59;
8632
9850
  }
8633
9851
  var Checker = class _Checker {
8634
- constructor(issues, path) {
9852
+ constructor(issues, path2) {
8635
9853
  this.issues = issues;
8636
- this.path = path;
9854
+ this.path = path2;
8637
9855
  }
8638
9856
  issues;
8639
9857
  path;
@@ -8679,78 +9897,78 @@ var Checker = class _Checker {
8679
9897
 
8680
9898
  // docx/validate-paragraph.ts
8681
9899
  var isFraction = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
8682
- function validateThemeReference(c, field, value) {
9900
+ function validateThemeReference(c2, field, value) {
8683
9901
  if (value === void 0) return;
8684
- const at = c.at(`.${field}`);
9902
+ const at = c2.at(`.${field}`);
8685
9903
  at.theme("token", value.token);
8686
9904
  at.check("tint", value.tint, isFraction, "must be a fraction between 0 and 1");
8687
9905
  at.check("shade", value.shade, isFraction, "must be a fraction between 0 and 1");
8688
9906
  }
8689
- function validateRevision(c, field, revision) {
9907
+ function validateRevision(c2, field, revision) {
8690
9908
  if (revision === void 0) return;
8691
- c.at(`.${field}`).dateTime("date", revision.date);
9909
+ c2.at(`.${field}`).dateTime("date", revision.date);
8692
9910
  }
8693
- function validateFontSize(c, value) {
8694
- c.check(
9911
+ function validateFontSize(c2, value) {
9912
+ c2.check(
8695
9913
  "fontSize",
8696
9914
  value,
8697
9915
  (v) => typeof v === "number" && Number.isFinite(v) && Math.round(v * 2) >= 0,
8698
9916
  "must be a finite, non-negative point size that converts to whole half-points (ST_HpsMeasure)"
8699
9917
  );
8700
9918
  }
8701
- function validateRun(c, run) {
8702
- c.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
8703
- validateFontSize(c, run.fontSize);
8704
- c.check(
9919
+ function validateRun(c2, run) {
9920
+ c2.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
9921
+ validateFontSize(c2, run.fontSize);
9922
+ c2.check(
8705
9923
  "textScalePercent",
8706
9924
  run.textScalePercent,
8707
9925
  (v) => Number.isSafeInteger(v) && v >= 0 && v <= 600,
8708
9926
  "must be a whole percentage from 0 through 600 (ST_TextScale)"
8709
9927
  );
8710
- c.check(
9928
+ c2.check(
8711
9929
  "kerningHalfPoints",
8712
9930
  run.kerningHalfPoints,
8713
9931
  (v) => Number.isSafeInteger(v) && v >= 0,
8714
9932
  "must be a nonnegative whole number of half-points (ST_HpsMeasure)"
8715
9933
  );
8716
- c.check(
9934
+ c2.check(
8717
9935
  "positionHalfPoints",
8718
9936
  run.positionHalfPoints,
8719
9937
  Number.isSafeInteger,
8720
9938
  "must be a signed whole number of half-points (ST_SignedHpsMeasure)"
8721
9939
  );
8722
- c.hex("color", run.color);
8723
- c.hex("shadingFill", run.shadingFill);
8724
- c.hex("underlineColor", run.underlineColor);
8725
- validateThemeReference(c, "colorTheme", run.colorTheme);
8726
- validateThemeReference(c, "shadingThemeFill", run.shadingThemeFill);
8727
- c.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
9940
+ c2.hex("color", run.color);
9941
+ c2.hex("shadingFill", run.shadingFill);
9942
+ c2.hex("underlineColor", run.underlineColor);
9943
+ validateThemeReference(c2, "colorTheme", run.colorTheme);
9944
+ validateThemeReference(c2, "shadingThemeFill", run.shadingThemeFill);
9945
+ c2.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
8728
9946
  if (run.highlight !== void 0 && !isStHighlightColor(run.highlight))
8729
- c.fail(
9947
+ c2.fail(
8730
9948
  "highlight",
8731
9949
  run.highlight,
8732
9950
  `Unsupported Word highlight token: ${String(run.highlight)}`
8733
9951
  );
8734
- c.enum("break", run.break, isStBrType, "ST_BrType");
8735
- c.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
8736
- c.check(
9952
+ c2.enum("break", run.break, isStBrType, "ST_BrType");
9953
+ c2.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
9954
+ c2.check(
8737
9955
  "characterSpacingTwips",
8738
9956
  run.characterSpacingTwips,
8739
9957
  (v) => typeof v === "number" && Number.isFinite(v),
8740
9958
  "must be a finite number of twips (ST_SignedTwipsMeasure)"
8741
9959
  );
8742
- c.language("language", run.language);
8743
- c.language("eastAsiaLanguage", run.eastAsiaLanguage);
8744
- c.language("bidiLanguage", run.bidiLanguage);
8745
- c.check(
9960
+ c2.language("language", run.language);
9961
+ c2.language("eastAsiaLanguage", run.eastAsiaLanguage);
9962
+ c2.language("bidiLanguage", run.bidiLanguage);
9963
+ c2.check(
8746
9964
  "verticalAlign",
8747
9965
  run.verticalAlign,
8748
9966
  isStVerticalAlignRun,
8749
9967
  'must be "baseline", "superscript" or "subscript"'
8750
9968
  );
8751
- validateRevision(c, "revision", run.revision);
9969
+ validateRevision(c2, "revision", run.revision);
8752
9970
  if (run.image) {
8753
- const image = c.at(".image");
9971
+ const image = c2.at(".image");
8754
9972
  for (const key of ["widthPx", "heightPx"])
8755
9973
  image.check(
8756
9974
  key,
@@ -8760,14 +9978,14 @@ function validateRun(c, run) {
8760
9978
  );
8761
9979
  }
8762
9980
  }
8763
- function validateTabStop(c, stop) {
8764
- c.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
8765
- c.enum("align", stop.align, isStTabJc, "ST_TabJc");
8766
- c.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
9981
+ function validateTabStop(c2, stop) {
9982
+ c2.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
9983
+ c2.enum("align", stop.align, isStTabJc, "ST_TabJc");
9984
+ c2.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
8767
9985
  }
8768
- function validateParagraph(c, paragraph) {
9986
+ function validateParagraph(c2, paragraph) {
8769
9987
  if (paragraph.dropCap) {
8770
- const at = c.at(".dropCap");
9988
+ const at = c2.at(".dropCap");
8771
9989
  at.check(
8772
9990
  "style",
8773
9991
  paragraph.dropCap.style,
@@ -8787,14 +10005,14 @@ function validateParagraph(c, paragraph) {
8787
10005
  "must be a nonnegative whole number of twips"
8788
10006
  );
8789
10007
  }
8790
- c.check(
10008
+ c2.check(
8791
10009
  "align",
8792
10010
  paragraph.align,
8793
10011
  (v) => v === "left" || v === "center" || v === "right" || v === "justify",
8794
10012
  'must be "left", "center", "right" or "justify"'
8795
10013
  );
8796
- c.enum("justification", paragraph.justification, isStJc, "ST_Jc");
8797
- c.check(
10014
+ c2.enum("justification", paragraph.justification, isStJc, "ST_Jc");
10015
+ c2.check(
8798
10016
  "direction",
8799
10017
  paragraph.direction,
8800
10018
  (v) => v === "ltr" || v === "rtl",
@@ -8806,7 +10024,7 @@ function validateParagraph(c, paragraph) {
8806
10024
  "firstLineTwips",
8807
10025
  "hangingTwips"
8808
10026
  ])
8809
- c.unsigned(key, paragraph[key], "ST_TwipsMeasure");
10027
+ c2.unsigned(key, paragraph[key], "ST_TwipsMeasure");
8810
10028
  for (const key of [
8811
10029
  "lineSpacingTwips",
8812
10030
  "indentLeftTwips",
@@ -8814,87 +10032,87 @@ function validateParagraph(c, paragraph) {
8814
10032
  "indentStartTwips",
8815
10033
  "indentEndTwips"
8816
10034
  ])
8817
- c.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
8818
- c.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
10035
+ c2.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
10036
+ c2.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
8819
10037
  if (paragraph.numbering) {
8820
- const numbering = c.at(".numbering");
10038
+ const numbering = c2.at(".numbering");
8821
10039
  numbering.unsigned("numId", paragraph.numbering.numId, "ST_DecimalNumber");
8822
10040
  numbering.unsigned("level", paragraph.numbering.level, "ST_DecimalNumber");
8823
10041
  }
8824
- paragraph.tabStops?.forEach((stop, index) => validateTabStop(c.at(`.tabStops[${index}]`), stop));
8825
- validateRevision(c, "markRevision", paragraph.markRevision);
8826
- paragraph.runs.forEach((run, index) => validateRun(c.at(`.runs[${index}]`), run));
10042
+ paragraph.tabStops?.forEach((stop, index) => validateTabStop(c2.at(`.tabStops[${index}]`), stop));
10043
+ validateRevision(c2, "markRevision", paragraph.markRevision);
10044
+ paragraph.runs.forEach((run, index) => validateRun(c2.at(`.runs[${index}]`), run));
8827
10045
  }
8828
10046
 
8829
10047
  // docx/validate-structure.ts
8830
- function validateBorderSide(c, side) {
10048
+ function validateBorderSide(c2, side) {
8831
10049
  if (!side) return;
8832
- c.enum("style", side.style, isStBorder, "ST_Border");
8833
- c.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
8834
- c.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
8835
- c.hex("color", side.color);
8836
- c.theme("themeColor", side.themeColor);
10050
+ c2.enum("style", side.style, isStBorder, "ST_Border");
10051
+ c2.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
10052
+ c2.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
10053
+ c2.hex("color", side.color);
10054
+ c2.theme("themeColor", side.themeColor);
8837
10055
  }
8838
- function validateBorders(c, borders) {
10056
+ function validateBorders(c2, borders) {
8839
10057
  if (!borders) return;
8840
10058
  for (const side of ["top", "left", "bottom", "right", "insideH", "insideV"])
8841
- validateBorderSide(c.at(`.${side}`), borders[side]);
10059
+ validateBorderSide(c2.at(`.${side}`), borders[side]);
8842
10060
  }
8843
- function validateCell(c, cell) {
8844
- c.check(
10061
+ function validateCell(c2, cell) {
10062
+ c2.check(
8845
10063
  "gridSpan",
8846
10064
  cell.gridSpan,
8847
10065
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v >= 1,
8848
10066
  "must be a positive integer (CT_DecimalNumber)"
8849
10067
  );
8850
- c.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
8851
- c.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
8852
- c.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
8853
- c.hex("shadingFill", cell.shadingFill);
8854
- validateThemeReference(c, "shadingThemeFill", cell.shadingThemeFill);
8855
- validateBorders(c.at(".borders"), cell.borders);
10068
+ c2.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
10069
+ c2.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
10070
+ c2.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
10071
+ c2.hex("shadingFill", cell.shadingFill);
10072
+ validateThemeReference(c2, "shadingThemeFill", cell.shadingThemeFill);
10073
+ validateBorders(c2.at(".borders"), cell.borders);
8856
10074
  if (cell.margins)
8857
10075
  for (const side of ["top", "bottom", "left", "right"])
8858
- c.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
10076
+ c2.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
8859
10077
  }
8860
- function validateTable(c, table) {
8861
- c.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
8862
- c.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
8863
- c.check(
10078
+ function validateTable(c2, table) {
10079
+ c2.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
10080
+ c2.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
10081
+ c2.check(
8864
10082
  "alignment",
8865
10083
  table.alignment,
8866
10084
  (v) => v === "left" || v === "center" || v === "right",
8867
10085
  'must be "left", "center" or "right"'
8868
10086
  );
8869
- c.enum("justification", table.justification, isStJcTable, "ST_JcTable");
10087
+ c2.enum("justification", table.justification, isStJcTable, "ST_JcTable");
8870
10088
  table.grid?.forEach(
8871
- (width, index) => c.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
10089
+ (width, index) => c2.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
8872
10090
  );
8873
- validateBorders(c.at(".borders"), table.borders);
10091
+ validateBorders(c2.at(".borders"), table.borders);
8874
10092
  if (table.cellMargins)
8875
10093
  for (const side of ["top", "bottom", "left", "right"])
8876
- c.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
10094
+ c2.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
8877
10095
  table.rowProperties?.forEach((row, index) => {
8878
10096
  if (row)
8879
- c.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
10097
+ c2.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
8880
10098
  });
8881
10099
  table.rows.forEach(
8882
- (row, r) => row.forEach((cell, k) => validateCell(c.at(`.rows[${r}][${k}]`), cell))
10100
+ (row, r) => row.forEach((cell, k) => validateCell(c2.at(`.rows[${r}][${k}]`), cell))
8883
10101
  );
8884
10102
  }
8885
- function validateSection(c, section) {
8886
- c.enum("type", section.type, isStSectionMark, "ST_SectionMark");
8887
- c.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
8888
- c.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
10103
+ function validateSection(c2, section) {
10104
+ c2.enum("type", section.type, isStSectionMark, "ST_SectionMark");
10105
+ c2.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
10106
+ c2.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
8889
10107
  for (const key of ["pageWidthTwips", "pageHeightTwips"])
8890
- c.check(
10108
+ c2.check(
8891
10109
  key,
8892
10110
  section[key],
8893
10111
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v > 0,
8894
10112
  "must be a positive integer number of twips (CT_PageSz)"
8895
10113
  );
8896
10114
  for (const key of ["marginTopTwips", "marginBottomTwips"])
8897
- c.signed(key, section[key], "ST_SignedTwipsMeasure");
10115
+ c2.signed(key, section[key], "ST_SignedTwipsMeasure");
8898
10116
  for (const key of [
8899
10117
  "marginLeftTwips",
8900
10118
  "marginRightTwips",
@@ -8902,8 +10120,8 @@ function validateSection(c, section) {
8902
10120
  "footerDistanceTwips",
8903
10121
  "gutterTwips"
8904
10122
  ])
8905
- c.unsigned(key, section[key], "ST_TwipsMeasure");
8906
- const columns = c.at(".columns");
10123
+ c2.unsigned(key, section[key], "ST_TwipsMeasure");
10124
+ const columns = c2.at(".columns");
8907
10125
  columns.check(
8908
10126
  "count",
8909
10127
  section.columns?.count,
@@ -8917,7 +10135,7 @@ function validateSection(c, section) {
8917
10135
  at.unsigned("spacingTwips", column.spacingTwips, "ST_TwipsMeasure");
8918
10136
  });
8919
10137
  if (section.lineNumberSettings) {
8920
- const line = c.at(".lineNumberSettings");
10138
+ const line = c2.at(".lineNumberSettings");
8921
10139
  const settings = section.lineNumberSettings;
8922
10140
  line.check(
8923
10141
  "countBy",
@@ -8940,12 +10158,12 @@ function validateSection(c, section) {
8940
10158
  line.unsigned("distanceTwips", settings.distanceTwips, "ST_TwipsMeasure");
8941
10159
  }
8942
10160
  if (section.pageNumbering) {
8943
- const numbering = c.at(".pageNumbering");
10161
+ const numbering = c2.at(".pageNumbering");
8944
10162
  numbering.enum("format", section.pageNumbering.format, isStNumberFormat, "ST_NumberFormat");
8945
10163
  numbering.signed("start", section.pageNumbering.start, "ST_DecimalNumber");
8946
10164
  }
8947
10165
  }
8948
- function validateNumberingCatalog(c, catalog) {
10166
+ function validateNumberingCatalog(c2, catalog) {
8949
10167
  const levelOf = (at, level) => {
8950
10168
  at.enum("numFmt", level.numFmt, isStNumberFormat, "ST_NumberFormat");
8951
10169
  at.signed("start", level.start, "ST_DecimalNumber");
@@ -8976,19 +10194,19 @@ function validateNumberingCatalog(c, catalog) {
8976
10194
  };
8977
10195
  for (const [id, abstract] of Object.entries(catalog.abstractNums))
8978
10196
  for (const [key, level] of Object.entries(abstract.levels))
8979
- levelOf(new Checker(c.issues, `${c.path}.abstractNums[${id}].levels[${key}]`), level);
10197
+ levelOf(new Checker(c2.issues, `${c2.path}.abstractNums[${id}].levels[${key}]`), level);
8980
10198
  for (const [id, num] of Object.entries(catalog.nums))
8981
10199
  for (const [key, override] of Object.entries(num.levelOverrides ?? {})) {
8982
- const at = new Checker(c.issues, `${c.path}.nums[${id}].levelOverrides[${key}]`);
10200
+ const at = new Checker(c2.issues, `${c2.path}.nums[${id}].levelOverrides[${key}]`);
8983
10201
  at.signed("startOverride", override.startOverride, "ST_DecimalNumber");
8984
10202
  if (override.lvl) levelOf(at.at(".lvl"), override.lvl);
8985
10203
  }
8986
10204
  }
8987
10205
 
8988
10206
  // docx/validate-model.ts
8989
- function validateBlocks(c, blocks) {
10207
+ function validateBlocks(c2, blocks) {
8990
10208
  blocks?.forEach((block, index) => {
8991
- const at = c.at(`[${index}]`);
10209
+ const at = c2.at(`[${index}]`);
8992
10210
  if (block.type === "paragraph") return validateParagraph(at, block);
8993
10211
  validateTable(at, block);
8994
10212
  block.rows.forEach(
@@ -9002,8 +10220,8 @@ function validateBlocks(c, blocks) {
9002
10220
  }
9003
10221
  function validateDocumentModel(model) {
9004
10222
  const issues = [];
9005
- const path = (suffix) => new Checker(issues, suffix);
9006
- const page = path("page");
10223
+ const path2 = (suffix) => new Checker(issues, suffix);
10224
+ const page = path2("page");
9007
10225
  for (const key of ["width", "height"])
9008
10226
  page.check(
9009
10227
  key,
@@ -9018,9 +10236,9 @@ function validateDocumentModel(model) {
9018
10236
  (v) => typeof v === "number" && Number.isFinite(v) && (key === "marginTop" || key === "marginBottom" || v >= 0),
9019
10237
  "must be a finite pixel size (converted to integer twips; left/right non-negative)"
9020
10238
  );
9021
- validateBlocks(path("blocks"), model.blocks);
10239
+ validateBlocks(path2("blocks"), model.blocks);
9022
10240
  model.sections?.forEach((section, index) => {
9023
- const at = path(`sections[${index}]`);
10241
+ const at = path2(`sections[${index}]`);
9024
10242
  validateSection(at, section);
9025
10243
  for (const kind of ["headers", "footers"])
9026
10244
  for (const [slot2, content] of Object.entries(section[kind] ?? {}))
@@ -9028,16 +10246,16 @@ function validateDocumentModel(model) {
9028
10246
  });
9029
10247
  for (const kind of ["footnotes", "endnotes"])
9030
10248
  model[kind]?.forEach(
9031
- (note, index) => validateBlocks(path(`${kind}[${index}].blocks`), note.blocks)
10249
+ (note, index) => validateBlocks(path2(`${kind}[${index}].blocks`), note.blocks)
9032
10250
  );
9033
10251
  model.comments?.forEach(
9034
- (comment, index) => path(`comments[${index}]`).dateTime("date", comment.date)
10252
+ (comment, index) => path2(`comments[${index}]`).dateTime("date", comment.date)
9035
10253
  );
9036
- path("model").hex("pageColor", model.pageColor);
9037
- path("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
9038
- path("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
10254
+ path2("model").hex("pageColor", model.pageColor);
10255
+ path2("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
10256
+ path2("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
9039
10257
  if (model.numberingCatalog)
9040
- validateNumberingCatalog(path("numberingCatalog"), model.numberingCatalog);
10258
+ validateNumberingCatalog(path2("numberingCatalog"), model.numberingCatalog);
9041
10259
  return issues;
9042
10260
  }
9043
10261
  function assertValidDocumentModel(model) {
@@ -9153,12 +10371,12 @@ function parseNum(element) {
9153
10371
  const levelOverrides = {};
9154
10372
  for (const override of children2(element, "lvlOverride")) {
9155
10373
  const level = integer2(getW(override, "ilvl"), 0);
9156
- const entry = {};
10374
+ const entry2 = {};
9157
10375
  const startOverride = getW(first2(override, "startOverride"), "val");
9158
- if (startOverride !== void 0) entry.startOverride = integer2(startOverride, 1);
10376
+ if (startOverride !== void 0) entry2.startOverride = integer2(startOverride, 1);
9159
10377
  const lvl = first2(override, "lvl");
9160
- if (lvl) entry.lvl = parseNumberingLevel(lvl);
9161
- if (Object.keys(entry).length) levelOverrides[level] = entry;
10378
+ if (lvl) entry2.lvl = parseNumberingLevel(lvl);
10379
+ if (Object.keys(entry2).length) levelOverrides[level] = entry2;
9162
10380
  }
9163
10381
  return {
9164
10382
  id,
@@ -9364,7 +10582,7 @@ function buildAbstractNumElement(doc, def) {
9364
10582
  const element = makeW(doc, "abstractNum");
9365
10583
  setAttribute8(element, "abstractNumId", def.id);
9366
10584
  element.appendChild(valueElement(doc, "multiLevelType", "hybridMultilevel"));
9367
- for (const level of Object.values(def.levels).sort((a, b) => a.level - b.level))
10585
+ for (const level of Object.values(def.levels).sort((a2, b) => a2.level - b.level))
9368
10586
  element.appendChild(buildLevelElement(doc, level));
9369
10587
  return element;
9370
10588
  }
@@ -9483,13 +10701,13 @@ async function applyStyleNumbering(zip, model, base) {
9483
10701
  // docx/part-relationships.ts
9484
10702
  var CONTENT_TYPES_PART = "[Content_Types].xml";
9485
10703
  var extensionOf = (partName) => partName.split(".").pop()?.toLowerCase() ?? "";
9486
- function relationshipsPartFor(partName) {
10704
+ function relationshipsPartFor2(partName) {
9487
10705
  const slash = partName.lastIndexOf("/");
9488
10706
  return `${partName.slice(0, slash)}/_rels/${partName.slice(slash + 1)}.rels`;
9489
10707
  }
9490
10708
  async function allocatorForPart(zip, partName, doc, docPrIds) {
9491
10709
  const declared = parseRelationships(
9492
- await zip.file(relationshipsPartFor(partName))?.async("string")
10710
+ await zip.file(relationshipsPartFor2(partName))?.async("string")
9493
10711
  );
9494
10712
  const allocator = new RelationshipAllocator(
9495
10713
  [...scanUsedRelationshipIds(doc), ...declared.keys()],
@@ -9500,7 +10718,7 @@ async function allocatorForPart(zip, partName, doc, docPrIds) {
9500
10718
  }
9501
10719
  async function writeNewRelationships(zip, partName, created, pendingMedia) {
9502
10720
  if (!created.length) return;
9503
- const relsPath = relationshipsPartFor(partName);
10721
+ const relsPath = relationshipsPartFor2(partName);
9504
10722
  const relationships = parseRelationships(await zip.file(relsPath)?.async("string"));
9505
10723
  let contentTypesXml = await zip.file(CONTENT_TYPES_PART)?.async("string");
9506
10724
  for (const relationship of created) {
@@ -9584,8 +10802,8 @@ async function createHeaderFooterParts(zip, model, base, docPrIds) {
9584
10802
  (_match, start, end) => `${start}${docPrIds.next()}${end}`
9585
10803
  ) : xml
9586
10804
  );
9587
- const rels = zip.file(relationshipsPartFor(content.sourcePartName));
9588
- if (rels) zip.file(relationshipsPartFor(partName), await rels.async("uint8array"));
10805
+ const rels = zip.file(relationshipsPartFor2(content.sourcePartName));
10806
+ if (rels) zip.file(relationshipsPartFor2(partName), await rels.async("uint8array"));
9589
10807
  }
9590
10808
  await ensureContentTypeOverride(
9591
10809
  zip,
@@ -10805,15 +12023,15 @@ function parseNotesPart(xml, kind, parseBlocks) {
10805
12023
  }
10806
12024
 
10807
12025
  // docx/document-parts.ts
10808
- async function partContext(zip, path, base) {
12026
+ async function partContext(zip, path2, base) {
10809
12027
  if (!base) return void 0;
10810
- const slash = path.lastIndexOf("/");
10811
- const relsPath = `${path.slice(0, slash)}/_rels/${path.slice(slash + 1)}.rels`;
12028
+ const slash = path2.lastIndexOf("/");
12029
+ const relsPath = `${path2.slice(0, slash)}/_rels/${path2.slice(slash + 1)}.rels`;
10812
12030
  return { ...base, rels: parseRelationships(await readPart(zip, relsPath)) };
10813
12031
  }
10814
12032
  var FIELD_MARKUP = /<w:(?:fldSimple|instrText|fldChar)\b/;
10815
- async function readPart(zip, path) {
10816
- return zip.file(path)?.async("string");
12033
+ async function readPart(zip, path2) {
12034
+ return zip.file(path2)?.async("string");
10817
12035
  }
10818
12036
  function parseSettings(xml) {
10819
12037
  if (!xml) return { evenAndOddHeaders: false, autoHyphenation: false };
@@ -10841,21 +12059,21 @@ async function resolveSlots(zip, relationships, refs, cache, fieldMarkup, drawin
10841
12059
  for (const ref of refs) {
10842
12060
  const relationship = relationships.get(ref.rId);
10843
12061
  if (!relationship) continue;
10844
- const path = resolvePartPath("word/document.xml", relationship.target);
10845
- let blocks = cache.get(path);
12062
+ const path2 = resolvePartPath("word/document.xml", relationship.target);
12063
+ let blocks = cache.get(path2);
10846
12064
  if (!blocks) {
10847
- const xml = await readPart(zip, path);
12065
+ const xml = await readPart(zip, path2);
10848
12066
  if (xml === void 0) continue;
10849
12067
  if (FIELD_MARKUP.test(xml)) fieldMarkup.seen = true;
10850
- const context = await partContext(zip, path, drawings);
12068
+ const context = await partContext(zip, path2, drawings);
10851
12069
  const root = parseXml2(xml).documentElement;
10852
12070
  blocks = withParseWarnings(
10853
12071
  sink2,
10854
- () => parseBlocksFromContainer(root, `${path.replace(/[^a-z0-9]+/gi, "")}-`, context)
12072
+ () => parseBlocksFromContainer(root, `${path2.replace(/[^a-z0-9]+/gi, "")}-`, context)
10855
12073
  );
10856
- cache.set(path, blocks);
12074
+ cache.set(path2, blocks);
10857
12075
  }
10858
- slots[ref.slot] = { blocks, partName: path };
12076
+ slots[ref.slot] = { blocks, partName: path2 };
10859
12077
  }
10860
12078
  return Object.keys(slots).length ? slots : void 0;
10861
12079
  }
@@ -10891,8 +12109,8 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
10891
12109
  }
10892
12110
  const footnotesXml = await readPart(zip, "word/footnotes.xml");
10893
12111
  const endnotesXml = await readPart(zip, "word/endnotes.xml");
10894
- const notesParser = async (path) => {
10895
- const context = await partContext(zip, path, drawings);
12112
+ const notesParser = async (path2) => {
12113
+ const context = await partContext(zip, path2, drawings);
10896
12114
  return (container2, prefix) => withParseWarnings(warnings, () => parseBlocksFromContainer(container2, prefix, context));
10897
12115
  };
10898
12116
  const footnotes = footnotesXml ? parseNotesPart(footnotesXml, "footnote", await notesParser("word/footnotes.xml")) : void 0;
@@ -10944,15 +12162,15 @@ function parseComments(commentsXml, extendedXml) {
10944
12162
  });
10945
12163
  if (extendedXml) {
10946
12164
  const extended = parseXml2(extendedXml);
10947
- for (const entry of Array.from(
12165
+ for (const entry2 of Array.from(
10948
12166
  extended.getElementsByTagNameNS(W15_NS2, "commentEx")
10949
12167
  )) {
10950
- const paraId = entry.getAttributeNS(W15_NS2, "paraId");
10951
- const comment = paraId && comments.find((c) => c.id === paraIdToCommentId.get(paraId));
12168
+ const paraId = entry2.getAttributeNS(W15_NS2, "paraId");
12169
+ const comment = paraId && comments.find((c2) => c2.id === paraIdToCommentId.get(paraId));
10952
12170
  if (!comment) continue;
10953
- const done = entry.getAttributeNS(W15_NS2, "done");
12171
+ const done = entry2.getAttributeNS(W15_NS2, "done");
10954
12172
  comment.resolved = done === "1" || done === "true";
10955
- const parentParaId = entry.getAttributeNS(W15_NS2, "paraIdParent");
12173
+ const parentParaId = entry2.getAttributeNS(W15_NS2, "paraIdParent");
10956
12174
  const parentId = parentParaId && paraIdToCommentId.get(parentParaId);
10957
12175
  if (parentId) comment.parentId = parentId;
10958
12176
  }
@@ -10960,71 +12178,6 @@ function parseComments(commentsXml, extendedXml) {
10960
12178
  return comments;
10961
12179
  }
10962
12180
 
10963
- // drawingml/theme.ts
10964
- new Set(THEME_COLOR_SLOTS);
10965
- function nonEmpty(value) {
10966
- return value ? value : void 0;
10967
- }
10968
- function parseThemeColorScheme(scheme) {
10969
- const result = { colors: {} };
10970
- if (!scheme) return result;
10971
- const name = nonEmpty(scheme.getAttribute("name"));
10972
- if (name) result.name = name;
10973
- for (const slot2 of THEME_COLOR_SLOTS) {
10974
- const color = parseDrawingColorIn(first(scheme, slot2, NS.a));
10975
- if (color) result.colors[slot2] = color;
10976
- }
10977
- return result;
10978
- }
10979
- function parseFontCollection(collection) {
10980
- const result = { scripts: {} };
10981
- if (!collection) return result;
10982
- const typeface = (local) => nonEmpty(first(collection, local, NS.a)?.getAttribute("typeface"));
10983
- const latin = typeface("latin");
10984
- const eastAsia = typeface("ea");
10985
- const complexScript = typeface("cs");
10986
- if (latin) result.latin = latin;
10987
- if (eastAsia) result.eastAsia = eastAsia;
10988
- if (complexScript) result.complexScript = complexScript;
10989
- for (const font of elements(collection)) {
10990
- if (font.localName !== "font") continue;
10991
- const script = nonEmpty(font.getAttribute("script"));
10992
- const face = nonEmpty(font.getAttribute("typeface"));
10993
- if (script && face && !Object.hasOwn(result.scripts, script)) result.scripts[script] = face;
10994
- }
10995
- return result;
10996
- }
10997
- function parseThemeFontScheme(scheme) {
10998
- const result = {
10999
- major: parseFontCollection(first(scheme, "majorFont", NS.a)),
11000
- minor: parseFontCollection(first(scheme, "minorFont", NS.a))
11001
- };
11002
- const name = nonEmpty(scheme?.getAttribute("name"));
11003
- if (name) result.name = name;
11004
- return result;
11005
- }
11006
- function rootOf2(source) {
11007
- return "documentElement" in source ? source.documentElement : source;
11008
- }
11009
- function parseTheme(source) {
11010
- const root = rootOf2(source);
11011
- const holder = first(root, "themeElements", NS.a) ?? root;
11012
- const theme = {
11013
- colorScheme: parseThemeColorScheme(first(holder, "clrScheme", NS.a)),
11014
- fontScheme: parseThemeFontScheme(first(holder, "fontScheme", NS.a))
11015
- };
11016
- const name = nonEmpty(root.getAttribute("name"));
11017
- if (name) theme.name = name;
11018
- return theme;
11019
- }
11020
-
11021
- // drawingml/theme-color.ts
11022
- function themeSlotHex(color) {
11023
- if (!color) return void 0;
11024
- const value = color.kind === "srgb" ? color.value : color.kind === "system" ? color.fallback : void 0;
11025
- return value ? value.toUpperCase() : void 0;
11026
- }
11027
-
11028
12181
  // docx/theme.ts
11029
12182
  function fontSetOf(collection) {
11030
12183
  const { latin, eastAsia, complexScript } = collection;
@@ -11075,96 +12228,6 @@ function parseColorSchemeMapping(xml) {
11075
12228
  return result;
11076
12229
  }
11077
12230
 
11078
- // docx/parse-warnings.ts
11079
- function hasAny(document, names) {
11080
- return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
11081
- }
11082
- function warningsFor(document) {
11083
- const warnings = [];
11084
- const features = [
11085
- [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
11086
- [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
11087
- [
11088
- ["fldSimple", "instrText", "fldChar"],
11089
- "Fields show the result Word last saved while editing; Print Layout recalculates PAGE, NUMPAGES, SECTIONPAGES, DATE and TIME, and tables of contents update from the References tab."
11090
- ],
11091
- [
11092
- ["moveFrom", "moveTo"],
11093
- "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
11094
- ],
11095
- [
11096
- ["rPrChange"],
11097
- "Formatting-change revisions retain their prior run-properties snapshots and support acceptance and rejection; recording new formatting changes and showing prior formatting in Original display are not supported yet."
11098
- ],
11099
- [
11100
- ["pPrChange"],
11101
- "Paragraph-formatting-change revisions retain their prior properties snapshots and support acceptance and rejection; recording new paragraph formatting changes and showing prior formatting in Original display are not supported yet."
11102
- ],
11103
- [
11104
- ["tblPrChange", "trPrChange", "tcPrChange"],
11105
- "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
11106
- ]
11107
- ];
11108
- for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
11109
- if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
11110
- (el3) => /HYPERLINK/i.test(textContent(el3))
11111
- ))
11112
- warnings.push(
11113
- "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
11114
- );
11115
- const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
11116
- (br) => hasSpecialBreak(br) && !isModeledBreak(br)
11117
- ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
11118
- (cr) => cr.attributes.length > 0
11119
- );
11120
- if (specialBreak)
11121
- warnings.push(
11122
- "Some non-line breaks other than page and column breaks are not distinguished from line breaks in the document model; edits to paragraphs containing them are rejected to preserve the original XML."
11123
- );
11124
- return warnings;
11125
- }
11126
- function forEachParagraph2(blocks, visit) {
11127
- for (const block of blocks) {
11128
- if (block.type === "paragraph") visit(block);
11129
- else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
11130
- }
11131
- }
11132
- function imageAndBookmarkWarnings(blocks) {
11133
- const warnings = [];
11134
- let hasPicture = false;
11135
- let hasAnchored = false;
11136
- const unsupportedKinds = /* @__PURE__ */ new Set();
11137
- let hasBookmarks = false;
11138
- forEachParagraph2(blocks, (paragraph) => {
11139
- if (paragraph.bookmarks?.length) hasBookmarks = true;
11140
- for (const run of paragraph.runs) {
11141
- if (!run.image) continue;
11142
- if (run.image.unsupported) {
11143
- if (run.image.diagram?.rendering !== "cached-drawing")
11144
- unsupportedKinds.add(run.image.unsupported);
11145
- } else hasPicture = true;
11146
- if (run.image.anchored) hasAnchored = true;
11147
- }
11148
- });
11149
- if (hasPicture)
11150
- warnings.push(
11151
- "Inline pictures render from their original bytes and can be deleted or newly inserted; crop, artistic effects, and non-inline text wrapping are not reproduced."
11152
- );
11153
- if (hasAnchored)
11154
- warnings.push(
11155
- "Floating pictures follow their text wrapping approximately (floated left or right, or on their own line); exact positions, vertical offsets and in-front/behind layering are not reproduced."
11156
- );
11157
- if (unsupportedKinds.size)
11158
- warnings.push(
11159
- `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
11160
- );
11161
- if (hasBookmarks)
11162
- warnings.push(
11163
- "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
11164
- );
11165
- return warnings;
11166
- }
11167
-
11168
12231
  // docx/diagram-document.ts
11169
12232
  function diagramsIn(blocks) {
11170
12233
  const diagrams = [];
@@ -11202,7 +12265,7 @@ async function readPackage(input) {
11202
12265
  const entries = Object.values(zip.files);
11203
12266
  if (entries.length > 5e3) throw new Error("DOCX package exceeds the 5,000 part limit");
11204
12267
  const totalSize = entries.reduce(
11205
- (sum, entry) => sum + Number(entry._data?.uncompressedSize ?? 0),
12268
+ (sum, entry2) => sum + Number(entry2._data?.uncompressedSize ?? 0),
11206
12269
  0
11207
12270
  );
11208
12271
  if (totalSize > 200 * 1024 * 1024)
@@ -11353,6 +12416,10 @@ async function readPackage(input) {
11353
12416
  pictureBlocks,
11354
12417
  async (partName) => zip.file(partName)?.async("string")
11355
12418
  );
12419
+ await resolveDocumentCharts(
12420
+ pictureBlocks,
12421
+ async (partName) => zip.file(partName)?.async("string")
12422
+ );
11356
12423
  model.warnings.push(...imageAndBookmarkWarnings(blocks), ...diagramWarnings(pictureBlocks));
11357
12424
  for (const warning of schemaWarnings)
11358
12425
  if (!model.warnings.includes(warning)) model.warnings.push(warning);
@@ -11531,10 +12598,10 @@ function chainToEnd(table, start, max) {
11531
12598
  }
11532
12599
  return out;
11533
12600
  }
11534
- function processCompoundFileStream(input, path, replacement) {
12601
+ function processCompoundFileStream(input, path2, replacement) {
11535
12602
  const reject = () => replacement ? input : void 0;
11536
12603
  try {
11537
- if (path.length === 0 || path.some((part) => !part) || input.length < 512)
12604
+ if (path2.length === 0 || path2.some((part) => !part) || input.length < 512)
11538
12605
  return reject();
11539
12606
  const view = new DataView(input.buffer, input.byteOffset, input.byteLength);
11540
12607
  const read32 = (offset2) => view.getUint32(offset2, true);
@@ -11617,7 +12684,7 @@ function processCompoundFileStream(input, path, replacement) {
11617
12684
  if (!root)
11618
12685
  return reject();
11619
12686
  let parent = root, target;
11620
- for (let partIndex = 0; partIndex < path.length; partIndex++) {
12687
+ for (let partIndex = 0; partIndex < path2.length; partIndex++) {
11621
12688
  const matches = [], seen = /* @__PURE__ */ new Set();
11622
12689
  const visit = (id) => {
11623
12690
  if (id === NIL)
@@ -11629,7 +12696,7 @@ function processCompoundFileStream(input, path, replacement) {
11629
12696
  if (!e)
11630
12697
  throw new Error("Invalid directory ID");
11631
12698
  visit(e.left);
11632
- if (e.name.toLocaleLowerCase() === path[partIndex].toLocaleLowerCase())
12699
+ if (e.name.toLocaleLowerCase() === path2[partIndex].toLocaleLowerCase())
11633
12700
  matches.push(e);
11634
12701
  visit(e.right);
11635
12702
  };
@@ -11637,7 +12704,7 @@ function processCompoundFileStream(input, path, replacement) {
11637
12704
  if (matches.length !== 1)
11638
12705
  return reject();
11639
12706
  target = matches[0];
11640
- if (partIndex < path.length - 1) {
12707
+ if (partIndex < path2.length - 1) {
11641
12708
  if (target.type !== 1)
11642
12709
  return reject();
11643
12710
  parent = target;
@@ -11685,12 +12752,12 @@ function processCompoundFileStream(input, path, replacement) {
11685
12752
  const reserved = /* @__PURE__ */ new Set([...fatIds, ...difatIds, ...dirSectors, ...miniFatSectors]);
11686
12753
  const regularUsed = new Set(reserved);
11687
12754
  const rootMini = entries.find((e) => e.type === 5);
11688
- for (const entry of entries) {
11689
- if (entry.type !== 2 && entry.type !== 5 || entry.size === 0)
12755
+ for (const entry2 of entries) {
12756
+ if (entry2.type !== 2 && entry2.type !== 5 || entry2.size === 0)
11690
12757
  continue;
11691
- if (entry.type === 2 && entry.size < miniCutoff)
12758
+ if (entry2.type === 2 && entry2.size < miniCutoff)
11692
12759
  continue;
11693
- for (const id of exactChain(fat, entry.start, entry.size, sectorSize)) {
12760
+ for (const id of exactChain(fat, entry2.start, entry2.size, sectorSize)) {
11694
12761
  sector(id);
11695
12762
  if (regularUsed.has(id))
11696
12763
  return reject();
@@ -11698,10 +12765,10 @@ function processCompoundFileStream(input, path, replacement) {
11698
12765
  }
11699
12766
  }
11700
12767
  const miniUsed = /* @__PURE__ */ new Set();
11701
- for (const entry of entries) {
11702
- if (entry.type !== 2 || entry.size === 0 || entry.size >= miniCutoff)
12768
+ for (const entry2 of entries) {
12769
+ if (entry2.type !== 2 || entry2.size === 0 || entry2.size >= miniCutoff)
11703
12770
  continue;
11704
- const ids = exactChain(miniFat, entry.start, entry.size, miniSize);
12771
+ const ids = exactChain(miniFat, entry2.start, entry2.size, miniSize);
11705
12772
  for (const id of ids) {
11706
12773
  if ((id + 1) * miniSize > rootMini.size || miniUsed.has(id))
11707
12774
  return reject();
@@ -11762,11 +12829,11 @@ function processCompoundFileStream(input, path, replacement) {
11762
12829
  return reject();
11763
12830
  }
11764
12831
  }
11765
- function readCompoundFileStream(input, path) {
11766
- return processCompoundFileStream(input, path);
12832
+ function readCompoundFileStream(input, path2) {
12833
+ return processCompoundFileStream(input, path2);
11767
12834
  }
11768
- function replaceCompoundFileStream(input, path, replacement) {
11769
- return processCompoundFileStream(input, path, replacement) ?? input;
12835
+ function replaceCompoundFileStream(input, path2, replacement) {
12836
+ return processCompoundFileStream(input, path2, replacement) ?? input;
11770
12837
  }
11771
12838
 
11772
12839
  // ../../node_modules/.bun/@christophervr+ole2@0.12.0/node_modules/@christophervr/ole2/dist/ole2-stream-resize-v4.js
@@ -11783,12 +12850,12 @@ function follow(table, start) {
11783
12850
  }
11784
12851
  return ids;
11785
12852
  }
11786
- function findSlot(slots, path) {
12853
+ function findSlot(slots, path2) {
11787
12854
  let parent = slots.get(0);
11788
12855
  if (!parent || parent.type !== 5)
11789
12856
  throw new Error("Invalid root");
11790
12857
  const parents = /* @__PURE__ */ new Set();
11791
- for (let part = 0; part < path.length; part++) {
12858
+ for (let part = 0; part < path2.length; part++) {
11792
12859
  if (parents.has(parent.id))
11793
12860
  throw new Error("Cyclic storage hierarchy");
11794
12861
  parents.add(parent.id);
@@ -11803,14 +12870,14 @@ function findSlot(slots, path) {
11803
12870
  const slot2 = slots.get(id);
11804
12871
  if (!slot2)
11805
12872
  throw new Error("Missing directory slot");
11806
- if (slot2.name.toLocaleLowerCase() === path[part].toLocaleLowerCase())
12873
+ if (slot2.name.toLocaleLowerCase() === path2[part].toLocaleLowerCase())
11807
12874
  matches.push(slot2);
11808
12875
  stack.push(slot2.left, slot2.right);
11809
12876
  }
11810
12877
  if (matches.length !== 1)
11811
12878
  throw new Error("Missing or ambiguous stream");
11812
12879
  parent = matches[0];
11813
- if (parent.type !== (part === path.length - 1 ? 2 : 1))
12880
+ if (parent.type !== (part === path2.length - 1 ? 2 : 1))
11814
12881
  throw new Error("Invalid storage path");
11815
12882
  }
11816
12883
  return parent;
@@ -11840,10 +12907,10 @@ function validateHierarchy(slots) {
11840
12907
  if (owners.size !== slots.size - 1)
11841
12908
  throw new Error("Unreachable directory entries");
11842
12909
  }
11843
- function resizeCompoundFileStreamV4(input, path, replacement) {
12910
+ function resizeCompoundFileStreamV4(input, path2, replacement) {
11844
12911
  const fail = (reason) => ({ ok: false, bytes: input, reason });
11845
12912
  try {
11846
- if (input.length < 512 || !path.length || path.some((part) => !part))
12913
+ if (input.length < 512 || !path2.length || path2.some((part) => !part))
11847
12914
  return fail("invalid-or-missing-stream");
11848
12915
  const view = new DataView(input.buffer, input.byteOffset, input.byteLength);
11849
12916
  const read = (offset) => view.getUint32(offset, true);
@@ -11856,10 +12923,10 @@ function resizeCompoundFileStreamV4(input, path, replacement) {
11856
12923
  const cutoff = read(56);
11857
12924
  if (cutoff !== 0 && cutoff !== 4096)
11858
12925
  return fail("unsupported-layout");
11859
- const original = readCompoundFileStream(input, path);
12926
+ const original = readCompoundFileStream(input, path2);
11860
12927
  if (!original)
11861
12928
  return fail("invalid-or-missing-stream");
11862
- const name = path[path.length - 1].toLocaleLowerCase();
12929
+ const name = path2[path2.length - 1].toLocaleLowerCase();
11863
12930
  if (name === "worddocument" && original.length >= 12 && (original[10] | original[11] << 8) & 33024)
11864
12931
  return fail("unsafe-edit");
11865
12932
  if (name === "book" || name === "workbook") {
@@ -11873,7 +12940,7 @@ function resizeCompoundFileStreamV4(input, path, replacement) {
11873
12940
  offset += 4 + length;
11874
12941
  }
11875
12942
  }
11876
- const validated = replaceCompoundFileStream(input, path, original);
12943
+ const validated = replaceCompoundFileStream(input, path2, original);
11877
12944
  if (validated === input)
11878
12945
  return fail("unsafe-edit");
11879
12946
  const sameLength = replacement.length === original.length;
@@ -11897,8 +12964,8 @@ function resizeCompoundFileStreamV4(input, path, replacement) {
11897
12964
  if (read(40) !== directoryChain.length)
11898
12965
  return fail("unsafe-edit");
11899
12966
  for (const [block, sector] of directoryChain.entries()) {
11900
- for (let entry = 0; entry < DIRECTORY_ENTRIES; entry++) {
11901
- const offset = (sector + 1) * SECTOR3 + entry * 128, type = view.getUint8(offset + 66);
12967
+ for (let entry2 = 0; entry2 < DIRECTORY_ENTRIES; entry2++) {
12968
+ const offset = (sector + 1) * SECTOR3 + entry2 * 128, type = view.getUint8(offset + 66);
11902
12969
  if (!type)
11903
12970
  continue;
11904
12971
  const nameLength = view.getUint16(offset + 64, true);
@@ -11909,16 +12976,16 @@ function resizeCompoundFileStreamV4(input, path, replacement) {
11909
12976
  name2 += String.fromCharCode(view.getUint16(offset + i2, true));
11910
12977
  if (read(offset + 124) !== 0)
11911
12978
  return fail("unsafe-edit");
11912
- const id = block * DIRECTORY_ENTRIES + entry;
12979
+ const id = block * DIRECTORY_ENTRIES + entry2;
11913
12980
  slots.set(id, { id, name: name2, type, left: read(offset + 68), right: read(offset + 72), child: read(offset + 76), start: read(offset + 116), size: read(offset + 120), offset });
11914
12981
  }
11915
12982
  }
11916
12983
  if ([...slots.values()].filter((slot2) => slot2.type === 5).length !== 1)
11917
12984
  return fail("unsafe-edit");
11918
- const target = findSlot(slots, path);
12985
+ const target = findSlot(slots, path2);
11919
12986
  validateHierarchy(slots);
11920
12987
  if (sameLength) {
11921
- const bytes = replaceCompoundFileStream(input, path, replacement);
12988
+ const bytes = replaceCompoundFileStream(input, path2, replacement);
11922
12989
  return bytes === input ? fail("unsafe-edit") : { ok: true, bytes };
11923
12990
  }
11924
12991
  const oldChain = follow(fat, target.start);
@@ -12092,12 +13159,12 @@ function follow2(table, start) {
12092
13159
  }
12093
13160
  return ids;
12094
13161
  }
12095
- function findSlot2(slots, path) {
13162
+ function findSlot2(slots, path2) {
12096
13163
  let parent = slots.get(0);
12097
13164
  if (!parent || parent.type !== 5)
12098
13165
  throw new Error("Invalid root");
12099
13166
  const parents = /* @__PURE__ */ new Set();
12100
- for (let part = 0; part < path.length; part++) {
13167
+ for (let part = 0; part < path2.length; part++) {
12101
13168
  if (parents.has(parent.id))
12102
13169
  throw new Error("Cyclic storage hierarchy");
12103
13170
  parents.add(parent.id);
@@ -12112,14 +13179,14 @@ function findSlot2(slots, path) {
12112
13179
  const slot2 = slots.get(id);
12113
13180
  if (!slot2)
12114
13181
  throw new Error("Missing directory slot");
12115
- if (slot2.name.toLocaleLowerCase() === path[part].toLocaleLowerCase())
13182
+ if (slot2.name.toLocaleLowerCase() === path2[part].toLocaleLowerCase())
12116
13183
  matches.push(slot2);
12117
13184
  stack.push(slot2.left, slot2.right);
12118
13185
  }
12119
13186
  if (matches.length !== 1)
12120
13187
  throw new Error("Missing or ambiguous stream");
12121
13188
  parent = matches[0];
12122
- if (parent.type !== (part === path.length - 1 ? 2 : 1))
13189
+ if (parent.type !== (part === path2.length - 1 ? 2 : 1))
12123
13190
  throw new Error("Invalid storage path");
12124
13191
  }
12125
13192
  return parent;
@@ -12149,12 +13216,12 @@ function validateHierarchy2(slots) {
12149
13216
  if (owners.size !== slots.size - 1)
12150
13217
  throw new Error("Unreachable directory entries");
12151
13218
  }
12152
- function resizeCompoundFileStream(input, path, replacement) {
13219
+ function resizeCompoundFileStream(input, path2, replacement) {
12153
13220
  if (input.length >= 512 && new DataView(input.buffer, input.byteOffset, input.byteLength).getUint16(26, true) === 4)
12154
- return resizeCompoundFileStreamV4(input, path, replacement);
13221
+ return resizeCompoundFileStreamV4(input, path2, replacement);
12155
13222
  const fail = (reason) => ({ ok: false, bytes: input, reason });
12156
13223
  try {
12157
- if (input.length < SECTOR2 || !path.length || path.some((part) => !part))
13224
+ if (input.length < SECTOR2 || !path2.length || path2.some((part) => !part))
12158
13225
  return fail("invalid-or-missing-stream");
12159
13226
  const view = new DataView(input.buffer, input.byteOffset, input.byteLength);
12160
13227
  const read = (offset) => view.getUint32(offset, true);
@@ -12165,10 +13232,10 @@ function resizeCompoundFileStream(input, path, replacement) {
12165
13232
  const cutoff = read(56);
12166
13233
  if (cutoff !== 0 && cutoff !== 4096)
12167
13234
  return fail("unsupported-layout");
12168
- const original = readCompoundFileStream(input, path);
13235
+ const original = readCompoundFileStream(input, path2);
12169
13236
  if (!original)
12170
13237
  return fail("invalid-or-missing-stream");
12171
- const name = path[path.length - 1].toLocaleLowerCase();
13238
+ const name = path2[path2.length - 1].toLocaleLowerCase();
12172
13239
  if (name === "worddocument" && original.length >= 12 && (original[10] | original[11] << 8) & 33024)
12173
13240
  return fail("unsafe-edit");
12174
13241
  if (name === "book" || name === "workbook") {
@@ -12182,7 +13249,7 @@ function resizeCompoundFileStream(input, path, replacement) {
12182
13249
  offset += 4 + length;
12183
13250
  }
12184
13251
  }
12185
- const validated = replaceCompoundFileStream(input, path, original);
13252
+ const validated = replaceCompoundFileStream(input, path2, original);
12186
13253
  if (validated === input)
12187
13254
  return fail("unsafe-edit");
12188
13255
  const sameLength = replacement.length === original.length;
@@ -12199,8 +13266,8 @@ function resizeCompoundFileStream(input, path, replacement) {
12199
13266
  return fail("unsafe-edit");
12200
13267
  const slots = /* @__PURE__ */ new Map();
12201
13268
  for (const [block, sector] of follow2(fat, read(48)).entries()) {
12202
- for (let entry = 0; entry < 4; entry++) {
12203
- const offset = (sector + 1) * SECTOR2 + entry * 128, type = view.getUint8(offset + 66);
13269
+ for (let entry2 = 0; entry2 < 4; entry2++) {
13270
+ const offset = (sector + 1) * SECTOR2 + entry2 * 128, type = view.getUint8(offset + 66);
12204
13271
  if (!type)
12205
13272
  continue;
12206
13273
  const nameLength = view.getUint16(offset + 64, true);
@@ -12209,16 +13276,16 @@ function resizeCompoundFileStream(input, path, replacement) {
12209
13276
  let name2 = "";
12210
13277
  for (let i2 = 0; i2 < nameLength - 2; i2 += 2)
12211
13278
  name2 += String.fromCharCode(view.getUint16(offset + i2, true));
12212
- const id = block * 4 + entry;
13279
+ const id = block * 4 + entry2;
12213
13280
  slots.set(id, { id, name: name2, type, left: read(offset + 68), right: read(offset + 72), child: read(offset + 76), start: read(offset + 116), size: read(offset + 120), offset });
12214
13281
  }
12215
13282
  }
12216
13283
  if ([...slots.values()].filter((slot2) => slot2.type === 5).length !== 1)
12217
13284
  return fail("unsafe-edit");
12218
- const target = findSlot2(slots, path);
13285
+ const target = findSlot2(slots, path2);
12219
13286
  validateHierarchy2(slots);
12220
13287
  if (sameLength) {
12221
- const bytes = replaceCompoundFileStream(input, path, replacement);
13288
+ const bytes = replaceCompoundFileStream(input, path2, replacement);
12222
13289
  return bytes === input ? fail("unsafe-edit") : { ok: true, bytes };
12223
13290
  }
12224
13291
  if (original.length < cutoff || replacement.length < cutoff) {
@@ -13134,7 +14201,7 @@ async function loadLegacyDoc(input) {
13134
14201
  original.byteOffset + original.byteLength
13135
14202
  )
13136
14203
  );
13137
- streams2 = parsed.entries.map((entry) => entry.name);
14204
+ streams2 = parsed.entries.map((entry2) => entry2.name);
13138
14205
  wordDocument = readCompoundFileStream(original, ["WordDocument"]) ?? null;
13139
14206
  } catch (error) {
13140
14207
  throw new LegacyDocError(