ooxml-core 1.0.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 (991) hide show
  1. package/README.md +18 -18
  2. package/dist/{PptxHandler-G63S6YZU.mjs → PptxHandler-SJTINPU4.mjs} +3 -3
  3. package/dist/automation/index.cjs +8916 -5091
  4. package/dist/automation/index.mjs +8916 -5091
  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 +5 -5
  12. package/dist/chart/gradient-definition.d.ts.map +1 -1
  13. package/dist/chart/index.cjs +3072 -146
  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 +3052 -147
  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 +5 -5
  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/{xlsx/layout → chart/render}/chart-scale.d.ts +5 -1
  40. package/dist/chart/render/chart-scale.d.ts.map +1 -0
  41. package/dist/chart/render/chart-spacing.d.ts +6 -0
  42. package/dist/chart/render/chart-spacing.d.ts.map +1 -0
  43. package/dist/{xlsx/layout → chart/render}/chart-svg-appearance.d.ts +1 -1
  44. package/dist/chart/render/chart-svg-appearance.d.ts.map +1 -0
  45. package/dist/chart/render/chart-svg-bars.d.ts.map +1 -0
  46. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -0
  47. package/dist/chart/render/chart-svg-legend.d.ts +13 -0
  48. package/dist/chart/render/chart-svg-legend.d.ts.map +1 -0
  49. package/dist/chart/render/chart-svg-radial.d.ts.map +1 -0
  50. package/dist/chart/render/chart-svg-text-metrics.d.ts.map +1 -0
  51. package/dist/chart/render/chart-svg-title-text.d.ts.map +1 -0
  52. package/dist/chart/render/chart-svg-util.d.ts.map +1 -0
  53. package/dist/chart/render/chart-svg.d.ts.map +1 -0
  54. package/dist/chart/render/chart-title-text.d.ts +14 -0
  55. package/dist/chart/render/chart-title-text.d.ts.map +1 -0
  56. package/dist/chart/render/chart-value-axis.d.ts +6 -0
  57. package/dist/chart/render/chart-value-axis.d.ts.map +1 -0
  58. package/dist/chart/render/chart-view.d.ts +71 -0
  59. package/dist/chart/render/chart-view.d.ts.map +1 -0
  60. package/dist/chart/render/index.d.ts +9 -0
  61. package/dist/chart/render/index.d.ts.map +1 -0
  62. package/dist/chart/render/render-space.d.ts +34 -0
  63. package/dist/chart/render/render-space.d.ts.map +1 -0
  64. package/dist/chart/render/summary-from-space.d.ts +15 -0
  65. package/dist/chart/render/summary-from-space.d.ts.map +1 -0
  66. package/dist/chart/render/summary.d.ts +51 -0
  67. package/dist/chart/render/summary.d.ts.map +1 -0
  68. package/dist/chart/render/theme-palette.d.ts +8 -0
  69. package/dist/chart/render/theme-palette.d.ts.map +1 -0
  70. package/dist/chart/style-definition.d.ts +7 -7
  71. package/dist/chart/style-definition.d.ts.map +1 -1
  72. package/dist/chart/write-axes.d.ts +5 -0
  73. package/dist/chart/write-axes.d.ts.map +1 -0
  74. package/dist/chart/write-chrome.d.ts +9 -0
  75. package/dist/chart/write-chrome.d.ts.map +1 -0
  76. package/dist/chart/write-plot.d.ts +7 -0
  77. package/dist/chart/write-plot.d.ts.map +1 -0
  78. package/dist/chart/write-series.d.ts +7 -0
  79. package/dist/chart/write-series.d.ts.map +1 -0
  80. package/dist/chart/write-shape.d.ts +21 -0
  81. package/dist/chart/write-shape.d.ts.map +1 -0
  82. package/dist/chart/write-space.d.ts +15 -0
  83. package/dist/chart/write-space.d.ts.map +1 -0
  84. package/dist/chart/write-text-body.d.ts +6 -0
  85. package/dist/chart/write-text-body.d.ts.map +1 -0
  86. package/dist/chart/write-text.d.ts +15 -0
  87. package/dist/chart/write-text.d.ts.map +1 -0
  88. package/dist/chart/write-util.d.ts +24 -0
  89. package/dist/chart/write-util.d.ts.map +1 -0
  90. package/dist/chart/xml-fragment.d.ts +13 -0
  91. package/dist/chart/xml-fragment.d.ts.map +1 -0
  92. package/dist/{chunk-HUBK4EOT.mjs → chunk-3IT6ZD7K.mjs} +2 -0
  93. package/dist/{chunk-TS3E27NK.mjs → chunk-3UMDVJRN.mjs} +12 -1
  94. package/dist/{chunk-P22OKTRK.mjs → chunk-54S5A5PZ.mjs} +208 -159
  95. package/dist/{chunk-BICQYRPW.mjs → chunk-CQQAPUAG.mjs} +27559 -27617
  96. package/dist/{chunk-RWXFQJVF.mjs → chunk-FI4RSJ24.mjs} +1 -1
  97. package/dist/{chunk-OJI3N5AY.cjs → chunk-FRUB573B.cjs} +2 -0
  98. package/dist/{chunk-ROM5MZ7O.mjs → chunk-TEOAOAIF.mjs} +42 -5
  99. package/dist/{chunk-DDG5HTGX.mjs → chunk-VYTA2OUN.mjs} +2 -2
  100. package/dist/{chunk-CKJSWE7N.mjs → chunk-XCZ7U3GZ.mjs} +3805 -2182
  101. package/dist/{chunk-2C72N64G.cjs → chunk-XROY25LN.cjs} +12 -0
  102. package/dist/collab/index.cjs +1 -0
  103. package/dist/collab/index.mjs +1 -0
  104. package/dist/collab/transport-provider.d.ts.map +1 -1
  105. package/dist/color/hex-rgb.d.ts +5 -0
  106. package/dist/color/hex-rgb.d.ts.map +1 -0
  107. package/dist/color/index.cjs +12 -0
  108. package/dist/color/index.d.ts +1 -0
  109. package/dist/color/index.d.ts.map +1 -1
  110. package/dist/color/index.mjs +11 -1
  111. package/dist/crypto/index.cjs +1406 -184
  112. package/dist/crypto/index.mjs +1406 -184
  113. package/dist/diagram/dom.d.ts +1 -14
  114. package/dist/diagram/dom.d.ts.map +1 -1
  115. package/dist/diagram/engine/alg-composite.d.ts +18 -0
  116. package/dist/diagram/engine/alg-composite.d.ts.map +1 -0
  117. package/dist/diagram/engine/alg-connector.d.ts +17 -0
  118. package/dist/diagram/engine/alg-connector.d.ts.map +1 -0
  119. package/dist/diagram/engine/alg-cycle.d.ts +28 -0
  120. package/dist/diagram/engine/alg-cycle.d.ts.map +1 -0
  121. package/dist/diagram/engine/alg-hier.d.ts +33 -0
  122. package/dist/diagram/engine/alg-hier.d.ts.map +1 -0
  123. package/dist/diagram/engine/alg-linear.d.ts +24 -0
  124. package/dist/diagram/engine/alg-linear.d.ts.map +1 -0
  125. package/dist/diagram/engine/alg-pyra.d.ts +117 -0
  126. package/dist/diagram/engine/alg-pyra.d.ts.map +1 -0
  127. package/dist/diagram/engine/alg-snake.d.ts +21 -0
  128. package/dist/diagram/engine/alg-snake.d.ts.map +1 -0
  129. package/dist/diagram/engine/axis.d.ts +24 -0
  130. package/dist/diagram/engine/axis.d.ts.map +1 -0
  131. package/dist/diagram/engine/conditions.d.ts +12 -0
  132. package/dist/diagram/engine/conditions.d.ts.map +1 -0
  133. package/dist/diagram/engine/connector-shape.d.ts +25 -0
  134. package/dist/diagram/engine/connector-shape.d.ts.map +1 -0
  135. package/dist/diagram/engine/connector-size.d.ts +30 -0
  136. package/dist/diagram/engine/connector-size.d.ts.map +1 -0
  137. package/dist/diagram/engine/constraint-eval.d.ts +37 -0
  138. package/dist/diagram/engine/constraint-eval.d.ts.map +1 -0
  139. package/dist/diagram/engine/constraint-fill-idiom.d.ts +61 -0
  140. package/dist/diagram/engine/constraint-fill-idiom.d.ts.map +1 -0
  141. package/dist/diagram/engine/constraint-units.d.ts +35 -0
  142. package/dist/diagram/engine/constraint-units.d.ts.map +1 -0
  143. package/dist/diagram/engine/data-points.d.ts +48 -0
  144. package/dist/diagram/engine/data-points.d.ts.map +1 -0
  145. package/dist/diagram/engine/engine-context.d.ts +21 -0
  146. package/dist/diagram/engine/engine-context.d.ts.map +1 -0
  147. package/dist/diagram/engine/engine-first-allowlist.d.ts +31 -0
  148. package/dist/diagram/engine/engine-first-allowlist.d.ts.map +1 -0
  149. package/dist/diagram/engine/engine-fonts.d.ts +26 -0
  150. package/dist/diagram/engine/engine-fonts.d.ts.map +1 -0
  151. package/dist/diagram/engine/engine-node.d.ts +72 -0
  152. package/dist/diagram/engine/engine-node.d.ts.map +1 -0
  153. package/dist/diagram/engine/engine-to-result.d.ts +43 -0
  154. package/dist/diagram/engine/engine-to-result.d.ts.map +1 -0
  155. package/dist/diagram/engine/engine.d.ts +18 -0
  156. package/dist/diagram/engine/engine.d.ts.map +1 -0
  157. package/dist/diagram/engine/font-groups.d.ts +33 -0
  158. package/dist/diagram/engine/font-groups.d.ts.map +1 -0
  159. package/dist/diagram/engine/font-length.d.ts +26 -0
  160. package/dist/diagram/engine/font-length.d.ts.map +1 -0
  161. package/dist/diagram/engine/font-search.d.ts +38 -0
  162. package/dist/diagram/engine/font-search.d.ts.map +1 -0
  163. package/dist/diagram/engine/hier-assistants.d.ts +47 -0
  164. package/dist/diagram/engine/hier-assistants.d.ts.map +1 -0
  165. package/dist/diagram/engine/hier-hang.d.ts +28 -0
  166. package/dist/diagram/engine/hier-hang.d.ts.map +1 -0
  167. package/dist/diagram/engine/hier-measure.d.ts +33 -0
  168. package/dist/diagram/engine/hier-measure.d.ts.map +1 -0
  169. package/dist/diagram/engine/hier-node-size.d.ts +23 -0
  170. package/dist/diagram/engine/hier-node-size.d.ts.map +1 -0
  171. package/dist/diagram/engine/hier-shape.d.ts +31 -0
  172. package/dist/diagram/engine/hier-shape.d.ts.map +1 -0
  173. package/dist/diagram/engine/index.d.ts +6 -0
  174. package/dist/diagram/engine/index.d.ts.map +1 -0
  175. package/dist/diagram/engine/layout-def-parse.d.ts +13 -0
  176. package/dist/diagram/engine/layout-def-parse.d.ts.map +1 -0
  177. package/dist/diagram/engine/layout-def-types.d.ts +118 -0
  178. package/dist/diagram/engine/layout-def-types.d.ts.map +1 -0
  179. package/dist/diagram/engine/layout-driver.d.ts +41 -0
  180. package/dist/diagram/engine/layout-driver.d.ts.map +1 -0
  181. package/dist/diagram/engine/layout-font.d.ts +27 -0
  182. package/dist/diagram/engine/layout-font.d.ts.map +1 -0
  183. package/dist/diagram/engine/move-with-merge.d.ts +49 -0
  184. package/dist/diagram/engine/move-with-merge.d.ts.map +1 -0
  185. package/dist/diagram/engine/node-text.d.ts +20 -0
  186. package/dist/diagram/engine/node-text.d.ts.map +1 -0
  187. package/dist/diagram/engine/ordered-xml.d.ts +30 -0
  188. package/dist/diagram/engine/ordered-xml.d.ts.map +1 -0
  189. package/dist/diagram/engine/preferred-size.d.ts +28 -0
  190. package/dist/diagram/engine/preferred-size.d.ts.map +1 -0
  191. package/dist/diagram/engine/pres-tree.d.ts +58 -0
  192. package/dist/diagram/engine/pres-tree.d.ts.map +1 -0
  193. package/dist/diagram/engine/registry.d.ts +7 -0
  194. package/dist/diagram/engine/registry.d.ts.map +1 -0
  195. package/dist/diagram/engine/render-filter.d.ts +43 -0
  196. package/dist/diagram/engine/render-filter.d.ts.map +1 -0
  197. package/dist/diagram/engine/shape-adjust.d.ts +16 -0
  198. package/dist/diagram/engine/shape-adjust.d.ts.map +1 -0
  199. package/dist/diagram/engine/shape-transform.d.ts +14 -0
  200. package/dist/diagram/engine/shape-transform.d.ts.map +1 -0
  201. package/dist/diagram/engine/snake-rule-fit.d.ts +34 -0
  202. package/dist/diagram/engine/snake-rule-fit.d.ts.map +1 -0
  203. package/dist/diagram/engine/style-label.d.ts +24 -0
  204. package/dist/diagram/engine/style-label.d.ts.map +1 -0
  205. package/dist/diagram/engine/text-fit.d.ts +61 -0
  206. package/dist/diagram/engine/text-fit.d.ts.map +1 -0
  207. package/dist/diagram/engine/text-grow.d.ts +33 -0
  208. package/dist/diagram/engine/text-grow.d.ts.map +1 -0
  209. package/dist/diagram/engine/text-measure.d.ts +77 -0
  210. package/dist/diagram/engine/text-measure.d.ts.map +1 -0
  211. package/dist/diagram/hierarchy/index.d.ts +5 -0
  212. package/dist/diagram/hierarchy/index.d.ts.map +1 -0
  213. package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts +65 -0
  214. package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts.map +1 -0
  215. package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts +68 -0
  216. package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts.map +1 -0
  217. package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts +54 -0
  218. package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts.map +1 -0
  219. package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts +58 -0
  220. package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts.map +1 -0
  221. package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts +63 -0
  222. package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts.map +1 -0
  223. package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts +41 -0
  224. package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts.map +1 -0
  225. package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts +129 -0
  226. package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts.map +1 -0
  227. package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts +76 -0
  228. package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts.map +1 -0
  229. package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts +49 -0
  230. package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts.map +1 -0
  231. package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts +58 -0
  232. package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts.map +1 -0
  233. package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts +48 -0
  234. package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts.map +1 -0
  235. package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts +97 -0
  236. package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts.map +1 -0
  237. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts +42 -0
  238. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts.map +1 -0
  239. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts +74 -0
  240. package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts.map +1 -0
  241. package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts +111 -0
  242. package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts.map +1 -0
  243. package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts +44 -0
  244. package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts.map +1 -0
  245. package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts +60 -0
  246. package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts.map +1 -0
  247. package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts +106 -0
  248. package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts.map +1 -0
  249. package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts +133 -0
  250. package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts.map +1 -0
  251. package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts +28 -0
  252. package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts.map +1 -0
  253. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts +28 -0
  254. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts.map +1 -0
  255. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts +86 -0
  256. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts.map +1 -0
  257. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts +36 -0
  258. package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts.map +1 -0
  259. package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts +118 -0
  260. package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts.map +1 -0
  261. package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts +64 -0
  262. package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts.map +1 -0
  263. package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts +53 -0
  264. package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts.map +1 -0
  265. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts +36 -0
  266. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts.map +1 -0
  267. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts +81 -0
  268. package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts.map +1 -0
  269. package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts +78 -0
  270. package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts.map +1 -0
  271. package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts +140 -0
  272. package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts.map +1 -0
  273. package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts +131 -0
  274. package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts.map +1 -0
  275. package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts +91 -0
  276. package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts.map +1 -0
  277. package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts +21 -0
  278. package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts.map +1 -0
  279. package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts +36 -0
  280. package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts.map +1 -0
  281. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts +20 -0
  282. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts.map +1 -0
  283. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts +50 -0
  284. package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts.map +1 -0
  285. package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts +23 -0
  286. package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts.map +1 -0
  287. package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts +22 -0
  288. package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts.map +1 -0
  289. package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts +93 -0
  290. package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts.map +1 -0
  291. package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts +49 -0
  292. package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts.map +1 -0
  293. package/dist/diagram/index.cjs +22552 -95
  294. package/dist/diagram/index.d.ts +16 -12
  295. package/dist/diagram/index.d.ts.map +1 -1
  296. package/dist/diagram/index.mjs +22468 -96
  297. package/dist/diagram/layout/index.d.ts +38 -0
  298. package/dist/diagram/layout/index.d.ts.map +1 -0
  299. package/dist/diagram/layout/smartart-choose-xml.d.ts +32 -0
  300. package/dist/diagram/layout/smartart-choose-xml.d.ts.map +1 -0
  301. package/dist/diagram/layout/smartart-constraint-branch-index.d.ts +49 -0
  302. package/dist/diagram/layout/smartart-constraint-branch-index.d.ts.map +1 -0
  303. package/dist/diagram/layout/smartart-constraint-declared-by.d.ts +64 -0
  304. package/dist/diagram/layout/smartart-constraint-declared-by.d.ts.map +1 -0
  305. package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts +18 -0
  306. package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts.map +1 -0
  307. package/dist/diagram/layout/smartart-constraint-resolve.d.ts +24 -0
  308. package/dist/diagram/layout/smartart-constraint-resolve.d.ts.map +1 -0
  309. package/dist/diagram/layout/smartart-constraint-rules.d.ts +26 -0
  310. package/dist/diagram/layout/smartart-constraint-rules.d.ts.map +1 -0
  311. package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts +100 -0
  312. package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts.map +1 -0
  313. package/dist/diagram/layout/smartart-constraint-solver.d.ts +133 -0
  314. package/dist/diagram/layout/smartart-constraint-solver.d.ts.map +1 -0
  315. package/dist/diagram/layout/smartart-constraint-values.d.ts +5 -0
  316. package/dist/diagram/layout/smartart-constraint-values.d.ts.map +1 -0
  317. package/dist/diagram/layout/smartart-font-table.d.ts +14 -0
  318. package/dist/diagram/layout/smartart-font-table.d.ts.map +1 -0
  319. package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts +75 -0
  320. package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts.map +1 -0
  321. package/dist/diagram/layout/smartart-layout-control-flow.d.ts +25 -0
  322. package/dist/diagram/layout/smartart-layout-control-flow.d.ts.map +1 -0
  323. package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts +56 -0
  324. package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts.map +1 -0
  325. package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts +37 -0
  326. package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts.map +1 -0
  327. package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts +66 -0
  328. package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts.map +1 -0
  329. package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts +128 -0
  330. package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts.map +1 -0
  331. package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts +73 -0
  332. package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts.map +1 -0
  333. package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts +48 -0
  334. package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts.map +1 -0
  335. package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts +19 -0
  336. package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts.map +1 -0
  337. package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts +60 -0
  338. package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts.map +1 -0
  339. package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts +36 -0
  340. package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts.map +1 -0
  341. package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts +42 -0
  342. package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts.map +1 -0
  343. package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts +102 -0
  344. package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts.map +1 -0
  345. package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts +32 -0
  346. package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts.map +1 -0
  347. package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts +33 -0
  348. package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts.map +1 -0
  349. package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts +95 -0
  350. package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts.map +1 -0
  351. package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts +84 -0
  352. package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts.map +1 -0
  353. package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts +60 -0
  354. package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts.map +1 -0
  355. package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts +86 -0
  356. package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts.map +1 -0
  357. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts +44 -0
  358. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts.map +1 -0
  359. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts +109 -0
  360. package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts.map +1 -0
  361. package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts +182 -0
  362. package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts.map +1 -0
  363. package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts +60 -0
  364. package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts.map +1 -0
  365. package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts +36 -0
  366. package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts.map +1 -0
  367. package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts +92 -0
  368. package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts.map +1 -0
  369. package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts +45 -0
  370. package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts.map +1 -0
  371. package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts +57 -0
  372. package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts.map +1 -0
  373. package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts +24 -0
  374. package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts.map +1 -0
  375. package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts +41 -0
  376. package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts.map +1 -0
  377. package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts +34 -0
  378. package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts.map +1 -0
  379. package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts +29 -0
  380. package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts.map +1 -0
  381. package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts +40 -0
  382. package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts.map +1 -0
  383. package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts +22 -0
  384. package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts.map +1 -0
  385. package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts +69 -0
  386. package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts.map +1 -0
  387. package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts +56 -0
  388. package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts.map +1 -0
  389. package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts +42 -0
  390. package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts.map +1 -0
  391. package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts +23 -0
  392. package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts.map +1 -0
  393. package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts +28 -0
  394. package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts.map +1 -0
  395. package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts +31 -0
  396. package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts.map +1 -0
  397. package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts +36 -0
  398. package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts.map +1 -0
  399. package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts +21 -0
  400. package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts.map +1 -0
  401. package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts +116 -0
  402. package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts.map +1 -0
  403. package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts +110 -0
  404. package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts.map +1 -0
  405. package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts +50 -0
  406. package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts.map +1 -0
  407. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts +66 -0
  408. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts.map +1 -0
  409. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts +81 -0
  410. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts.map +1 -0
  411. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts +109 -0
  412. package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts.map +1 -0
  413. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts +121 -0
  414. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts.map +1 -0
  415. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts +57 -0
  416. package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts.map +1 -0
  417. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts +34 -0
  418. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts.map +1 -0
  419. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts +39 -0
  420. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts.map +1 -0
  421. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts +22 -0
  422. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts.map +1 -0
  423. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts +43 -0
  424. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts.map +1 -0
  425. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts +76 -0
  426. package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts.map +1 -0
  427. package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts +40 -0
  428. package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts.map +1 -0
  429. package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts +69 -0
  430. package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts.map +1 -0
  431. package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts +18 -0
  432. package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts.map +1 -0
  433. package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts +29 -0
  434. package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts.map +1 -0
  435. package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts +49 -0
  436. package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts.map +1 -0
  437. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts +60 -0
  438. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts.map +1 -0
  439. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts +45 -0
  440. package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts.map +1 -0
  441. package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts +26 -0
  442. package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts.map +1 -0
  443. package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts +62 -0
  444. package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts.map +1 -0
  445. package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts +36 -0
  446. package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts.map +1 -0
  447. package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts +80 -0
  448. package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts.map +1 -0
  449. package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts +102 -0
  450. package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts.map +1 -0
  451. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts +23 -0
  452. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts.map +1 -0
  453. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts +77 -0
  454. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts.map +1 -0
  455. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts +20 -0
  456. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts.map +1 -0
  457. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts +53 -0
  458. package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts.map +1 -0
  459. package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts +50 -0
  460. package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts.map +1 -0
  461. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts +87 -0
  462. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts.map +1 -0
  463. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts +57 -0
  464. package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts.map +1 -0
  465. package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts +109 -0
  466. package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts.map +1 -0
  467. package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts +42 -0
  468. package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts.map +1 -0
  469. package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts +94 -0
  470. package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts.map +1 -0
  471. package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts +17 -0
  472. package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts.map +1 -0
  473. package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts +21 -0
  474. package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts.map +1 -0
  475. package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts +76 -0
  476. package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts.map +1 -0
  477. package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts +20 -0
  478. package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts.map +1 -0
  479. package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts +77 -0
  480. package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts.map +1 -0
  481. package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts +93 -0
  482. package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts.map +1 -0
  483. package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts +58 -0
  484. package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts.map +1 -0
  485. package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts +61 -0
  486. package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts.map +1 -0
  487. package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts +29 -0
  488. package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts.map +1 -0
  489. package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts +41 -0
  490. package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts.map +1 -0
  491. package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts +100 -0
  492. package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts.map +1 -0
  493. package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts +86 -0
  494. package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts.map +1 -0
  495. package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts +18 -0
  496. package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts.map +1 -0
  497. package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts +28 -0
  498. package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts.map +1 -0
  499. package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts +15 -0
  500. package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts.map +1 -0
  501. package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts +12 -0
  502. package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts.map +1 -0
  503. package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts +69 -0
  504. package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts.map +1 -0
  505. package/dist/diagram/layout/smartart-layout-interpreter.d.ts +80 -0
  506. package/dist/diagram/layout/smartart-layout-interpreter.d.ts.map +1 -0
  507. package/dist/diagram/layout/smartart-layout-item-font-role.d.ts +80 -0
  508. package/dist/diagram/layout/smartart-layout-item-font-role.d.ts.map +1 -0
  509. package/dist/diagram/layout/smartart-layout-item-font-size.d.ts +129 -0
  510. package/dist/diagram/layout/smartart-layout-item-font-size.d.ts.map +1 -0
  511. package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts +70 -0
  512. package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts.map +1 -0
  513. package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts +139 -0
  514. package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts.map +1 -0
  515. package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts +105 -0
  516. package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts.map +1 -0
  517. package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts +17 -0
  518. package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts.map +1 -0
  519. package/dist/diagram/layout/smartart-layout-shape-preset.d.ts +127 -0
  520. package/dist/diagram/layout/smartart-layout-shape-preset.d.ts.map +1 -0
  521. package/dist/diagram/layout/smartart-layout-snake-grid.d.ts +43 -0
  522. package/dist/diagram/layout/smartart-layout-snake-grid.d.ts.map +1 -0
  523. package/dist/diagram/layout/smartart-layout-style-helpers.d.ts +84 -0
  524. package/dist/diagram/layout/smartart-layout-style-helpers.d.ts.map +1 -0
  525. package/dist/diagram/layout/smartart-layout-types.d.ts +253 -0
  526. package/dist/diagram/layout/smartart-layout-types.d.ts.map +1 -0
  527. package/dist/diagram/layout/smartart-line-pitch.d.ts +29 -0
  528. package/dist/diagram/layout/smartart-line-pitch.d.ts.map +1 -0
  529. package/dist/diagram/layout/smartart-node-role-colors.d.ts +30 -0
  530. package/dist/diagram/layout/smartart-node-role-colors.d.ts.map +1 -0
  531. package/dist/diagram/layout/smartart-node-tree-axis.d.ts +91 -0
  532. package/dist/diagram/layout/smartart-node-tree-axis.d.ts.map +1 -0
  533. package/dist/diagram/layout/smartart-text-wrap-fit.d.ts +84 -0
  534. package/dist/diagram/layout/smartart-text-wrap-fit.d.ts.map +1 -0
  535. package/dist/diagram/layout/smartart-tree.d.ts +33 -0
  536. package/dist/diagram/layout/smartart-tree.d.ts.map +1 -0
  537. package/dist/diagram/model/constraint-rules.d.ts +31 -0
  538. package/dist/diagram/model/constraint-rules.d.ts.map +1 -0
  539. package/dist/diagram/model/data.d.ts +109 -0
  540. package/dist/diagram/model/data.d.ts.map +1 -0
  541. package/dist/diagram/model/index.d.ts +7 -0
  542. package/dist/diagram/model/index.d.ts.map +1 -0
  543. package/dist/diagram/model/layout-definition.d.ts +276 -0
  544. package/dist/diagram/model/layout-definition.d.ts.map +1 -0
  545. package/dist/diagram/model/layout-primitives.d.ts +82 -0
  546. package/dist/diagram/model/layout-primitives.d.ts.map +1 -0
  547. package/dist/diagram/model/node.d.ts +194 -0
  548. package/dist/diagram/model/node.d.ts.map +1 -0
  549. package/dist/diagram/model/style-definition.d.ts +131 -0
  550. package/dist/diagram/model/style-definition.d.ts.map +1 -0
  551. package/dist/diagram/types.d.ts +12 -148
  552. package/dist/diagram/types.d.ts.map +1 -1
  553. package/dist/digest/algorithm-names.d.ts +2 -2
  554. package/dist/digest/algorithm-names.d.ts.map +1 -1
  555. package/dist/digest/bit-ops.d.ts +30 -0
  556. package/dist/digest/bit-ops.d.ts.map +1 -0
  557. package/dist/digest/digest.d.ts +2 -2
  558. package/dist/digest/digest.d.ts.map +1 -1
  559. package/dist/digest/index.cjs +1319 -90
  560. package/dist/digest/index.d.ts +7 -1
  561. package/dist/digest/index.d.ts.map +1 -1
  562. package/dist/digest/index.mjs +1313 -91
  563. package/dist/digest/md2.d.ts +22 -0
  564. package/dist/digest/md2.d.ts.map +1 -0
  565. package/dist/digest/md4.d.ts +3 -0
  566. package/dist/digest/md4.d.ts.map +1 -0
  567. package/dist/digest/md5.d.ts +3 -0
  568. package/dist/digest/md5.d.ts.map +1 -0
  569. package/dist/digest/password-hash.d.ts +7 -0
  570. package/dist/digest/password-hash.d.ts.map +1 -1
  571. package/dist/digest/ripemd-functions.d.ts +18 -0
  572. package/dist/digest/ripemd-functions.d.ts.map +1 -0
  573. package/dist/digest/ripemd128.d.ts +3 -0
  574. package/dist/digest/ripemd128.d.ts.map +1 -0
  575. package/dist/digest/ripemd160.d.ts +3 -0
  576. package/dist/digest/ripemd160.d.ts.map +1 -0
  577. package/dist/digest/whirlpool-sbox.d.ts +15 -0
  578. package/dist/digest/whirlpool-sbox.d.ts.map +1 -0
  579. package/dist/digest/whirlpool-table.d.ts +12 -0
  580. package/dist/digest/whirlpool-table.d.ts.map +1 -0
  581. package/dist/digest/whirlpool.d.ts +3 -0
  582. package/dist/digest/whirlpool.d.ts.map +1 -0
  583. package/dist/docx/block-parser.d.ts.map +1 -1
  584. package/dist/docx/chart-paint.d.ts +14 -0
  585. package/dist/docx/chart-paint.d.ts.map +1 -0
  586. package/dist/docx/chart.d.ts +43 -0
  587. package/dist/docx/chart.d.ts.map +1 -0
  588. package/dist/docx/diagram-theme.d.ts +3 -3
  589. package/dist/docx/diagram-theme.d.ts.map +1 -1
  590. package/dist/docx/drawing.d.ts.map +1 -1
  591. package/dist/docx/embedded.cjs +1938 -677
  592. package/dist/docx/embedded.mjs +1938 -677
  593. package/dist/docx/field-flags.d.ts +8 -0
  594. package/dist/docx/field-flags.d.ts.map +1 -0
  595. package/dist/docx/field-lock.d.ts +6 -0
  596. package/dist/docx/field-lock.d.ts.map +1 -0
  597. package/dist/docx/field-runs.d.ts +4 -1
  598. package/dist/docx/field-runs.d.ts.map +1 -1
  599. package/dist/docx/index.cjs +6347 -2809
  600. package/dist/docx/index.d.ts +4 -0
  601. package/dist/docx/index.d.ts.map +1 -1
  602. package/dist/docx/index.mjs +6340 -2809
  603. package/dist/docx/inline-model.d.ts +3 -0
  604. package/dist/docx/inline-model.d.ts.map +1 -1
  605. package/dist/docx/layout/adapter.d.ts.map +1 -1
  606. package/dist/docx/layout/index.cjs +2726 -128
  607. package/dist/docx/layout/index.mjs +2727 -129
  608. package/dist/docx/layout/input.d.ts +5 -0
  609. package/dist/docx/layout/input.d.ts.map +1 -1
  610. package/dist/docx/layout/page-fields.d.ts.map +1 -1
  611. package/dist/docx/load/index.cjs +3488 -1005
  612. package/dist/docx/load/index.mjs +3488 -1005
  613. package/dist/docx/model-run.d.ts +5 -0
  614. package/dist/docx/model-run.d.ts.map +1 -1
  615. package/dist/docx/numbering-model.d.ts +1 -1
  616. package/dist/docx/numbering-model.d.ts.map +1 -1
  617. package/dist/docx/numbering-package.d.ts +4 -4
  618. package/dist/docx/numbering-package.d.ts.map +1 -1
  619. package/dist/docx/numbering-start-edit.d.ts +8 -0
  620. package/dist/docx/numbering-start-edit.d.ts.map +1 -0
  621. package/dist/docx/numbering-start-patch.d.ts +13 -0
  622. package/dist/docx/numbering-start-patch.d.ts.map +1 -0
  623. package/dist/docx/parse.d.ts.map +1 -1
  624. package/dist/docx/theme-color.d.ts.map +1 -1
  625. package/dist/docx/theme-model.d.ts +3 -2
  626. package/dist/docx/theme-model.d.ts.map +1 -1
  627. package/dist/docx/theme.d.ts +5 -1
  628. package/dist/docx/theme.d.ts.map +1 -1
  629. package/dist/docx/ui/chart-spec.d.ts +10 -0
  630. package/dist/docx/ui/chart-spec.d.ts.map +1 -0
  631. package/dist/docx/ui/field-guard.d.ts +2 -0
  632. package/dist/docx/ui/field-guard.d.ts.map +1 -1
  633. package/dist/docx/ui/field-results.d.ts.map +1 -1
  634. package/dist/docx/ui/index.cjs +3862 -1276
  635. package/dist/docx/ui/index.d.ts +1 -0
  636. package/dist/docx/ui/index.d.ts.map +1 -1
  637. package/dist/docx/ui/index.mjs +3860 -1278
  638. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -1
  639. package/dist/docx/ui/review-commands.d.ts.map +1 -1
  640. package/dist/docx/ui/run-adapter.d.ts.map +1 -1
  641. package/dist/docx/ui/run-extra-mark.d.ts +1 -1
  642. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
  643. package/dist/docx/ui/simple-field-input.d.ts +3 -0
  644. package/dist/docx/ui/simple-field-input.d.ts.map +1 -1
  645. package/dist/docx/ui/track-changes-mode.d.ts.map +1 -1
  646. package/dist/docx/ui/track-paragraph-boundaries.d.ts +5 -0
  647. package/dist/docx/ui/track-paragraph-boundaries.d.ts.map +1 -0
  648. package/dist/docx/write-inline.d.ts.map +1 -1
  649. package/dist/docx/write-run.d.ts.map +1 -1
  650. package/dist/drawingml/dom.d.ts +15 -0
  651. package/dist/drawingml/dom.d.ts.map +1 -0
  652. package/dist/drawingml/drawing-color-brightness.d.ts +6 -0
  653. package/dist/drawingml/drawing-color-brightness.d.ts.map +1 -0
  654. package/dist/drawingml/drawing-color-css.d.ts.map +1 -0
  655. package/dist/{diagram → drawingml}/drawing-color.d.ts +5 -5
  656. package/dist/drawingml/drawing-color.d.ts.map +1 -0
  657. package/dist/{diagram → drawingml}/drawing-fill.d.ts +3 -3
  658. package/dist/drawingml/drawing-fill.d.ts.map +1 -0
  659. package/dist/{diagram → drawingml}/drawing-geometry.d.ts +4 -4
  660. package/dist/drawingml/drawing-geometry.d.ts.map +1 -0
  661. package/dist/drawingml/drawing-shadow.d.ts.map +1 -0
  662. package/dist/{diagram → drawingml}/drawing-text.d.ts +2 -2
  663. package/dist/drawingml/drawing-text.d.ts.map +1 -0
  664. package/dist/{diagram → drawingml}/gradient-geometry.d.ts +2 -2
  665. package/dist/drawingml/gradient-geometry.d.ts.map +1 -0
  666. package/dist/drawingml/gradient-preset-data.d.ts.map +1 -0
  667. package/dist/{diagram → drawingml}/gradient-presets.d.ts +3 -3
  668. package/dist/drawingml/gradient-presets.d.ts.map +1 -0
  669. package/dist/drawingml/index.cjs +1545 -0
  670. package/dist/drawingml/index.d.ts +19 -0
  671. package/dist/drawingml/index.d.ts.map +1 -0
  672. package/dist/drawingml/index.mjs +1497 -0
  673. package/dist/{diagram → drawingml}/ordered-color-transforms.d.ts +2 -2
  674. package/dist/drawingml/ordered-color-transforms.d.ts.map +1 -0
  675. package/dist/drawingml/rect-path-gradient.d.ts.map +1 -0
  676. package/dist/drawingml/theme-color.d.ts +19 -0
  677. package/dist/drawingml/theme-color.d.ts.map +1 -0
  678. package/dist/drawingml/theme-model.d.ts +40 -0
  679. package/dist/drawingml/theme-model.d.ts.map +1 -0
  680. package/dist/drawingml/theme.d.ts +21 -0
  681. package/dist/drawingml/theme.d.ts.map +1 -0
  682. package/dist/drawingml/types.d.ts +152 -0
  683. package/dist/drawingml/types.d.ts.map +1 -0
  684. package/dist/drawingml/write-color.d.ts +4 -0
  685. package/dist/drawingml/write-color.d.ts.map +1 -0
  686. package/dist/{diagram → drawingml}/write-fill.d.ts +2 -2
  687. package/dist/drawingml/write-fill.d.ts.map +1 -0
  688. package/dist/drawingml/write-line.d.ts +7 -0
  689. package/dist/drawingml/write-line.d.ts.map +1 -0
  690. package/dist/geometry/connector-elbow-geometry.d.ts +14 -0
  691. package/dist/geometry/connector-elbow-geometry.d.ts.map +1 -1
  692. package/dist/geometry/index.cjs +43 -0
  693. package/dist/geometry/index.mjs +42 -1
  694. package/dist/geometry/ooxml-arc.d.ts +31 -0
  695. package/dist/geometry/ooxml-arc.d.ts.map +1 -0
  696. package/dist/geometry/preset-shape-evaluator.d.ts +73 -0
  697. package/dist/geometry/preset-shape-evaluator.d.ts.map +1 -0
  698. package/dist/i18n/dictionary.d.ts +13 -0
  699. package/dist/i18n/dictionary.d.ts.map +1 -0
  700. package/dist/i18n/index.cjs +68 -0
  701. package/dist/i18n/index.d.ts +4 -0
  702. package/dist/i18n/index.d.ts.map +1 -0
  703. package/dist/i18n/index.mjs +60 -0
  704. package/dist/i18n/locale.d.ts +17 -0
  705. package/dist/i18n/locale.d.ts.map +1 -0
  706. package/dist/i18n/translator.d.ts +18 -0
  707. package/dist/i18n/translator.d.ts.map +1 -0
  708. package/dist/index.cjs +34476 -16474
  709. package/dist/index.d.ts +2 -0
  710. package/dist/index.d.ts.map +1 -1
  711. package/dist/index.mjs +34486 -16490
  712. package/dist/opc/embedded-packages.d.ts +11 -0
  713. package/dist/opc/embedded-packages.d.ts.map +1 -0
  714. package/dist/opc/index.cjs +365 -70
  715. package/dist/opc/index.d.ts +1 -0
  716. package/dist/opc/index.d.ts.map +1 -1
  717. package/dist/opc/index.mjs +353 -71
  718. package/dist/opc/properties/app.d.ts +9 -3
  719. package/dist/opc/properties/app.d.ts.map +1 -1
  720. package/dist/opc/properties/core.d.ts +5 -1
  721. package/dist/opc/properties/core.d.ts.map +1 -1
  722. package/dist/opc/properties/custom.d.ts +19 -0
  723. package/dist/opc/properties/custom.d.ts.map +1 -1
  724. package/dist/opc/properties/index.d.ts +6 -3
  725. package/dist/opc/properties/index.d.ts.map +1 -1
  726. package/dist/opc/properties/patch.d.ts +38 -0
  727. package/dist/opc/properties/patch.d.ts.map +1 -0
  728. package/dist/opc/properties/title-groups.d.ts +30 -0
  729. package/dist/opc/properties/title-groups.d.ts.map +1 -0
  730. package/dist/opc/properties/types.d.ts +15 -0
  731. package/dist/opc/properties/types.d.ts.map +1 -1
  732. package/dist/pptx/automation/index.cjs +11799 -8643
  733. package/dist/pptx/automation/index.d.ts +4 -4
  734. package/dist/pptx/automation/index.mjs +6 -6
  735. package/dist/pptx/chunks/{index-lk7dyOPS.d.ts → index-EZJZ7USt.d.ts} +916 -975
  736. package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -0
  737. package/dist/pptx/chunks/{index-C4mfzVoY.d.ts → index-JNv7AJx5.d.ts} +163 -210
  738. package/dist/pptx/chunks/index-JNv7AJx5.d.ts.map +1 -0
  739. package/dist/pptx/chunks/{smart-art-CO2jmJFf.d.ts → smart-art-Q2kZQtHh.d.ts} +436 -374
  740. package/dist/pptx/chunks/smart-art-Q2kZQtHh.d.ts.map +1 -0
  741. package/dist/pptx/chunks/{text-operations-CDLx4hD5.d.ts → text-operations-DtCxXrMh.d.ts} +56 -5
  742. package/dist/pptx/chunks/text-operations-DtCxXrMh.d.ts.map +1 -0
  743. package/dist/pptx/cli/index.cjs +11299 -8143
  744. package/dist/pptx/cli/index.d.ts +1 -1
  745. package/dist/pptx/cli/index.mjs +5 -5
  746. package/dist/pptx/converter/index.cjs +7124 -7136
  747. package/dist/pptx/converter/index.d.ts +1 -1
  748. package/dist/pptx/converter/index.mjs +3 -3
  749. package/dist/pptx/editor/render/table-cell-edit.cjs +7 -3
  750. package/dist/pptx/editor/render/table-cell-edit.d.ts +16 -1
  751. package/dist/pptx/editor/render/table-cell-edit.d.ts.map +1 -1
  752. package/dist/pptx/editor/render/table-cell-edit.mjs +1 -1
  753. package/dist/pptx/editor/render/table-cell-merge.cjs +3 -3
  754. package/dist/pptx/editor/render/table-cell-merge.mjs +1 -1
  755. package/dist/pptx/editor/render/table-data-grid-ops.cjs +7 -7
  756. package/dist/pptx/editor/render/table-data-grid-ops.mjs +2 -2
  757. package/dist/pptx/editor/render/table-layout.cjs +6 -6
  758. package/dist/pptx/editor/render/table-layout.d.ts.map +1 -1
  759. package/dist/pptx/editor/render/table-layout.mjs +1 -1
  760. package/dist/pptx/editor/render/table-merge.cjs +5 -5
  761. package/dist/pptx/editor/render/table-merge.mjs +1 -1
  762. package/dist/pptx/index.cjs +10844 -8788
  763. package/dist/pptx/index.d.ts +5 -5
  764. package/dist/pptx/index.mjs +6 -6
  765. package/dist/pptx/smartart-layouts/index.cjs +135 -106
  766. package/dist/pptx/smartart-layouts/index.d.ts +1 -1
  767. package/dist/pptx/smartart-layouts/index.mjs +1 -1
  768. package/dist/teams/content.d.ts.map +1 -1
  769. package/dist/teams/index.cjs +3906 -2057
  770. package/dist/teams/index.d.ts +1 -0
  771. package/dist/teams/index.d.ts.map +1 -1
  772. package/dist/teams/index.mjs +3905 -2057
  773. package/dist/teams/server-file-storage.d.ts +11 -0
  774. package/dist/teams/server-file-storage.d.ts.map +1 -0
  775. package/dist/teams/store.d.ts +2 -0
  776. package/dist/teams/store.d.ts.map +1 -1
  777. package/dist/teams/stored-file.d.ts.map +1 -1
  778. package/dist/{xlsx/layout/font-family.d.ts → text/css-font-family.d.ts} +1 -1
  779. package/dist/text/css-font-family.d.ts.map +1 -0
  780. package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts +10 -0
  781. package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts.map +1 -0
  782. package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts +10 -0
  783. package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts.map +1 -0
  784. package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts +10 -0
  785. package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts.map +1 -0
  786. package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts +10 -0
  787. package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts.map +1 -0
  788. package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts +10 -0
  789. package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts.map +1 -0
  790. package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts +10 -0
  791. package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts.map +1 -0
  792. package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts +10 -0
  793. package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts.map +1 -0
  794. package/dist/text/font-metrics/font-advance-widths.generated.d.ts +48 -0
  795. package/dist/text/font-metrics/font-advance-widths.generated.d.ts.map +1 -0
  796. package/dist/text/font-metrics/font-kerning.d.ts +19 -0
  797. package/dist/text/font-metrics/font-kerning.d.ts.map +1 -0
  798. package/dist/visio/index.cjs +645 -119
  799. package/dist/visio/index.mjs +645 -119
  800. package/dist/visio/theme-color.d.ts +13 -3
  801. package/dist/visio/theme-color.d.ts.map +1 -1
  802. package/dist/visio/theme-resolve.d.ts +2 -1
  803. package/dist/visio/theme-resolve.d.ts.map +1 -1
  804. package/dist/visio/theme.d.ts +5 -2
  805. package/dist/visio/theme.d.ts.map +1 -1
  806. package/dist/visio/ui/index.cjs +14 -3
  807. package/dist/visio/ui/index.mjs +14 -3
  808. package/dist/visio/ui/shape-rotation.d.ts +1 -1
  809. package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
  810. package/dist/xlsx/collab/adapter.d.ts +18 -0
  811. package/dist/xlsx/collab/adapter.d.ts.map +1 -0
  812. package/dist/xlsx/collab/apply.d.ts +8 -0
  813. package/dist/xlsx/collab/apply.d.ts.map +1 -0
  814. package/dist/xlsx/collab/bind.d.ts +34 -0
  815. package/dist/xlsx/collab/bind.d.ts.map +1 -0
  816. package/dist/xlsx/collab/codec.d.ts +35 -0
  817. package/dist/xlsx/collab/codec.d.ts.map +1 -0
  818. package/dist/xlsx/collab/dirty.d.ts +23 -0
  819. package/dist/xlsx/collab/dirty.d.ts.map +1 -0
  820. package/dist/xlsx/collab/index.cjs +1245 -0
  821. package/dist/xlsx/collab/index.d.ts +10 -0
  822. package/dist/xlsx/collab/index.d.ts.map +1 -0
  823. package/dist/xlsx/collab/index.mjs +1207 -0
  824. package/dist/xlsx/collab/lines.d.ts +22 -0
  825. package/dist/xlsx/collab/lines.d.ts.map +1 -0
  826. package/dist/xlsx/collab/names.d.ts +16 -0
  827. package/dist/xlsx/collab/names.d.ts.map +1 -0
  828. package/dist/xlsx/collab/presence.d.ts +31 -0
  829. package/dist/xlsx/collab/presence.d.ts.map +1 -0
  830. package/dist/xlsx/collab/schema.d.ts +30 -0
  831. package/dist/xlsx/collab/schema.d.ts.map +1 -0
  832. package/dist/xlsx/collab/sheets.d.ts +34 -0
  833. package/dist/xlsx/collab/sheets.d.ts.map +1 -0
  834. package/dist/xlsx/collab/styles.d.ts +26 -0
  835. package/dist/xlsx/collab/styles.d.ts.map +1 -0
  836. package/dist/xlsx/collab/write.d.ts +14 -0
  837. package/dist/xlsx/collab/write.d.ts.map +1 -0
  838. package/dist/xlsx/edit/chart-colors.d.ts +2 -2
  839. package/dist/xlsx/edit/chart-colors.d.ts.map +1 -1
  840. package/dist/xlsx/edit/chart-element-fill.d.ts +3 -3
  841. package/dist/xlsx/edit/chart-element-fill.d.ts.map +1 -1
  842. package/dist/xlsx/edit/chart-series-fill.d.ts +2 -2
  843. package/dist/xlsx/edit/chart-series-fill.d.ts.map +1 -1
  844. package/dist/xlsx/edit/chart-series-gradient.d.ts +4 -4
  845. package/dist/xlsx/edit/chart-series-gradient.d.ts.map +1 -1
  846. package/dist/xlsx/edit/chart-series-target.d.ts +15 -0
  847. package/dist/xlsx/edit/chart-series-target.d.ts.map +1 -0
  848. package/dist/xlsx/edit/chart-series-transparency.d.ts +2 -2
  849. package/dist/xlsx/edit/chart-series-transparency.d.ts.map +1 -1
  850. package/dist/xlsx/edit/external.d.ts +28 -0
  851. package/dist/xlsx/edit/external.d.ts.map +1 -0
  852. package/dist/xlsx/edit/index.d.ts +1 -0
  853. package/dist/xlsx/edit/index.d.ts.map +1 -1
  854. package/dist/xlsx/edit/protection.d.ts +1 -1
  855. package/dist/xlsx/edit/session-calc.d.ts +7 -0
  856. package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
  857. package/dist/xlsx/edit/session.d.ts.map +1 -1
  858. package/dist/xlsx/edit/types.d.ts +14 -1
  859. package/dist/xlsx/edit/types.d.ts.map +1 -1
  860. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  861. package/dist/xlsx/formula/lexemes.d.ts +6 -0
  862. package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
  863. package/dist/xlsx/formula/tokenizer.d.ts.map +1 -1
  864. package/dist/xlsx/index.cjs +7816 -4280
  865. package/dist/xlsx/index.mjs +7806 -4281
  866. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  867. package/dist/xlsx/layout/chart-view.d.ts +3 -52
  868. package/dist/xlsx/layout/chart-view.d.ts.map +1 -1
  869. package/dist/xlsx/layout/colors.d.ts +1 -4
  870. package/dist/xlsx/layout/colors.d.ts.map +1 -1
  871. package/dist/xlsx/layout/index.d.ts +7 -4
  872. package/dist/xlsx/layout/index.d.ts.map +1 -1
  873. package/dist/xlsx/layout/remote-selections.d.ts +40 -0
  874. package/dist/xlsx/layout/remote-selections.d.ts.map +1 -0
  875. package/dist/xlsx/layout/sparkline-data.d.ts +19 -0
  876. package/dist/xlsx/layout/sparkline-data.d.ts.map +1 -0
  877. package/dist/xlsx/layout/sparkline-view.d.ts +52 -0
  878. package/dist/xlsx/layout/sparkline-view.d.ts.map +1 -0
  879. package/dist/xlsx/layout/tint.d.ts +3 -12
  880. package/dist/xlsx/layout/tint.d.ts.map +1 -1
  881. package/dist/xlsx/layout/types.d.ts +3 -0
  882. package/dist/xlsx/layout/types.d.ts.map +1 -1
  883. package/dist/xlsx/load/index.cjs +5127 -2105
  884. package/dist/xlsx/load/index.mjs +5127 -2105
  885. package/dist/xlsx/model-sparklines.d.ts +52 -0
  886. package/dist/xlsx/model-sparklines.d.ts.map +1 -0
  887. package/dist/xlsx/model.d.ts +10 -47
  888. package/dist/xlsx/model.d.ts.map +1 -1
  889. package/dist/xlsx/read/chart.d.ts +1 -4
  890. package/dist/xlsx/read/chart.d.ts.map +1 -1
  891. package/dist/xlsx/read/index.d.ts +1 -0
  892. package/dist/xlsx/read/index.d.ts.map +1 -1
  893. package/dist/xlsx/read/sheet-data-source.d.ts +10 -0
  894. package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -0
  895. package/dist/xlsx/read/sparklines.d.ts +12 -0
  896. package/dist/xlsx/read/sparklines.d.ts.map +1 -0
  897. package/dist/xlsx/read/theme.d.ts +2 -4
  898. package/dist/xlsx/read/theme.d.ts.map +1 -1
  899. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  900. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
  901. package/dist/xlsx/ui/context.d.ts +15 -1
  902. package/dist/xlsx/ui/context.d.ts.map +1 -1
  903. package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -1
  904. package/dist/xlsx/ui/grid/cell-paint.d.ts +1 -1
  905. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -1
  906. package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -1
  907. package/dist/xlsx/ui/index.cjs +3116 -1302
  908. package/dist/xlsx/ui/index.mjs +3116 -1303
  909. package/dist/xlsx/ui/locales/de/collab.d.ts +2 -0
  910. package/dist/xlsx/ui/locales/de/collab.d.ts.map +1 -0
  911. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
  912. package/dist/xlsx/ui/locales/en/collab.d.ts +2 -0
  913. package/dist/xlsx/ui/locales/en/collab.d.ts.map +1 -0
  914. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
  915. package/dist/xlsx/ui/locales/es/collab.d.ts +2 -0
  916. package/dist/xlsx/ui/locales/es/collab.d.ts.map +1 -0
  917. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
  918. package/dist/xlsx/ui/locales/fr/collab.d.ts +2 -0
  919. package/dist/xlsx/ui/locales/fr/collab.d.ts.map +1 -0
  920. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
  921. package/dist/xlsx/ui/locales/merge.d.ts +2 -1
  922. package/dist/xlsx/ui/locales/merge.d.ts.map +1 -1
  923. package/dist/xlsx/ui/locales/zh-CN/collab.d.ts +2 -0
  924. package/dist/xlsx/ui/locales/zh-CN/collab.d.ts.map +1 -0
  925. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
  926. package/dist/xlsx/ui/localization.d.ts.map +1 -1
  927. package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -1
  928. package/dist/xlsx/write/chart-colors.d.ts +3 -0
  929. package/dist/xlsx/write/chart-colors.d.ts.map +1 -1
  930. package/dist/xlsx/write/chart-space.d.ts +5 -0
  931. package/dist/xlsx/write/chart-space.d.ts.map +1 -0
  932. package/dist/xlsx/write/chart-title.d.ts +4 -1
  933. package/dist/xlsx/write/chart-title.d.ts.map +1 -1
  934. package/dist/xlsx/write/chart.d.ts +4 -1
  935. package/dist/xlsx/write/chart.d.ts.map +1 -1
  936. package/dist/xlsx/write/theme.d.ts.map +1 -1
  937. package/dist/xml/index.cjs +162 -0
  938. package/dist/xml/index.d.ts +1 -0
  939. package/dist/xml/index.d.ts.map +1 -1
  940. package/dist/xml/index.mjs +161 -1
  941. package/dist/xml/lite.d.ts +30 -0
  942. package/dist/xml/lite.d.ts.map +1 -0
  943. package/package.json +16 -1
  944. package/dist/diagram/drawing-color-brightness.d.ts +0 -6
  945. package/dist/diagram/drawing-color-brightness.d.ts.map +0 -1
  946. package/dist/diagram/drawing-color-css.d.ts.map +0 -1
  947. package/dist/diagram/drawing-color.d.ts.map +0 -1
  948. package/dist/diagram/drawing-fill.d.ts.map +0 -1
  949. package/dist/diagram/drawing-geometry.d.ts.map +0 -1
  950. package/dist/diagram/drawing-shadow.d.ts.map +0 -1
  951. package/dist/diagram/drawing-text.d.ts.map +0 -1
  952. package/dist/diagram/gradient-geometry.d.ts.map +0 -1
  953. package/dist/diagram/gradient-preset-data.d.ts.map +0 -1
  954. package/dist/diagram/gradient-presets.d.ts.map +0 -1
  955. package/dist/diagram/ordered-color-transforms.d.ts.map +0 -1
  956. package/dist/diagram/rect-path-gradient.d.ts.map +0 -1
  957. package/dist/diagram/write-color.d.ts +0 -4
  958. package/dist/diagram/write-color.d.ts.map +0 -1
  959. package/dist/diagram/write-fill.d.ts.map +0 -1
  960. package/dist/pptx/chunks/index-C4mfzVoY.d.ts.map +0 -1
  961. package/dist/pptx/chunks/index-lk7dyOPS.d.ts.map +0 -1
  962. package/dist/pptx/chunks/smart-art-CO2jmJFf.d.ts.map +0 -1
  963. package/dist/pptx/chunks/text-operations-CDLx4hD5.d.ts.map +0 -1
  964. package/dist/xlsx/layout/chart-appearance.d.ts.map +0 -1
  965. package/dist/xlsx/layout/chart-colors.d.ts +0 -9
  966. package/dist/xlsx/layout/chart-colors.d.ts.map +0 -1
  967. package/dist/xlsx/layout/chart-scale.d.ts.map +0 -1
  968. package/dist/xlsx/layout/chart-spacing.d.ts +0 -6
  969. package/dist/xlsx/layout/chart-spacing.d.ts.map +0 -1
  970. package/dist/xlsx/layout/chart-svg-appearance.d.ts.map +0 -1
  971. package/dist/xlsx/layout/chart-svg-bars.d.ts.map +0 -1
  972. package/dist/xlsx/layout/chart-svg-cartesian.d.ts.map +0 -1
  973. package/dist/xlsx/layout/chart-svg-radial.d.ts.map +0 -1
  974. package/dist/xlsx/layout/chart-svg-text-metrics.d.ts.map +0 -1
  975. package/dist/xlsx/layout/chart-svg-title-text.d.ts.map +0 -1
  976. package/dist/xlsx/layout/chart-svg-util.d.ts.map +0 -1
  977. package/dist/xlsx/layout/chart-svg.d.ts.map +0 -1
  978. package/dist/xlsx/layout/chart-title-text.d.ts +0 -14
  979. package/dist/xlsx/layout/chart-title-text.d.ts.map +0 -1
  980. package/dist/xlsx/layout/font-family.d.ts.map +0 -1
  981. /package/dist/{xlsx/layout → chart/render}/chart-svg-bars.d.ts +0 -0
  982. /package/dist/{xlsx/layout → chart/render}/chart-svg-cartesian.d.ts +0 -0
  983. /package/dist/{xlsx/layout → chart/render}/chart-svg-radial.d.ts +0 -0
  984. /package/dist/{xlsx/layout → chart/render}/chart-svg-text-metrics.d.ts +0 -0
  985. /package/dist/{xlsx/layout → chart/render}/chart-svg-title-text.d.ts +0 -0
  986. /package/dist/{xlsx/layout → chart/render}/chart-svg-util.d.ts +0 -0
  987. /package/dist/{xlsx/layout → chart/render}/chart-svg.d.ts +0 -0
  988. /package/dist/{diagram → drawingml}/drawing-color-css.d.ts +0 -0
  989. /package/dist/{diagram → drawingml}/drawing-shadow.d.ts +0 -0
  990. /package/dist/{diagram → drawingml}/gradient-preset-data.d.ts +0 -0
  991. /package/dist/{diagram → drawingml}/rect-path-gradient.d.ts +0 -0
@@ -7,12 +7,18 @@ var NS = {
7
7
  w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
8
8
  /** DrawingML main. */
9
9
  a: "http://schemas.openxmlformats.org/drawingml/2006/main",
10
+ /** DrawingML chart. */
11
+ c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
12
+ /** Office 2010 chart extensions, including built-in modern chart styles. */
13
+ c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
10
14
  /** DrawingML diagram (SmartArt) main. */
11
15
  dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
12
16
  /** Office 2007+ diagram drawing (`dsp`). */
13
17
  dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
14
18
  /** Relationships (`r:id`, `r:embed`). */
15
19
  r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
20
+ /** Markup compatibility (`mc:AlternateContent`). */
21
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
16
22
  /** OPC relationships part. */
17
23
  rels: "http://schemas.openxmlformats.org/package/2006/relationships",
18
24
  /** OPC content types part. */
@@ -360,12 +366,12 @@ function runPropertyChanged(run, base, key) {
360
366
  function parseDirectRunProperties(props) {
361
367
  const result = parseRunProperties(props);
362
368
  const language = first2(props, "lang");
363
- for (const [attribute, key] of [
369
+ for (const [attribute2, key] of [
364
370
  ["val", "language"],
365
371
  ["eastAsia", "eastAsiaLanguage"],
366
372
  ["bidi", "bidiLanguage"]
367
373
  ]) {
368
- const value = getW(language, attribute);
374
+ const value = getW(language, attribute2);
369
375
  if (value !== void 0) result[key] = value;
370
376
  }
371
377
  const rtl = onOffElement(first2(props, "rtl"));
@@ -867,9 +873,101 @@ function isValidLanguageTag(value) {
867
873
  return /^(?:[A-Za-z]{2,8})(?:-[A-Za-z0-9]{1,8})*$/.test(value);
868
874
  }
869
875
 
870
- // docx/theme.ts
871
- var DRAWING_NS = "http://schemas.openxmlformats.org/drawingml/2006/main";
872
- var SCHEME_ORDER = [
876
+ // color/color-primitives.ts
877
+ function toHex(value) {
878
+ return Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
879
+ }
880
+
881
+ // drawingml/dom.ts
882
+ function attributeReader(element) {
883
+ return (name) => {
884
+ if (!element) return void 0;
885
+ const direct = element.getAttribute(name);
886
+ if (direct !== null) return direct;
887
+ const attributes = element.attributes;
888
+ for (let index = 0; index < attributes.length; index++) {
889
+ const candidate = attributes.item(index);
890
+ if (candidate && candidate.localName === name) return candidate.value;
891
+ }
892
+ return void 0;
893
+ };
894
+ }
895
+ function stringAttribute(element, name) {
896
+ const value = attributeReader(element)(name)?.trim();
897
+ return value ? value : void 0;
898
+ }
899
+ function integerAttribute(element, name) {
900
+ const parsed = Number.parseInt(attributeReader(element)(name) ?? "", 10);
901
+ return Number.isFinite(parsed) ? parsed : void 0;
902
+ }
903
+ function booleanAttribute(element, name) {
904
+ const value = attributeReader(element)(name)?.trim().toLowerCase();
905
+ if (value === "1" || value === "true") return true;
906
+ if (value === "0" || value === "false") return false;
907
+ return void 0;
908
+ }
909
+ function descendants(root, local) {
910
+ const result = [];
911
+ const visit = (node) => {
912
+ for (const child3 of Array.from(node.childNodes)) {
913
+ if (!isElement(child3)) continue;
914
+ if (child3.localName === local) result.push(child3);
915
+ visit(child3);
916
+ }
917
+ };
918
+ visit(root);
919
+ return result;
920
+ }
921
+
922
+ // drawingml/drawing-color.ts
923
+ var COLOR_ELEMENTS = {
924
+ srgbClr: "srgb",
925
+ schemeClr: "scheme",
926
+ sysClr: "system",
927
+ prstClr: "preset",
928
+ scrgbClr: "scrgb",
929
+ hslClr: "hsl"
930
+ };
931
+ function colorValue(kind, element) {
932
+ const attribute2 = (name) => element.getAttribute(name) ?? "";
933
+ if (kind === "scrgb") return `${attribute2("r")},${attribute2("g")},${attribute2("b")}`;
934
+ if (kind === "hsl") return `${attribute2("hue")},${attribute2("sat")},${attribute2("lum")}`;
935
+ return attribute2("val");
936
+ }
937
+ function parseDrawingColorIn(container) {
938
+ if (!container) return void 0;
939
+ for (const element of elements(container)) {
940
+ const kind = COLOR_ELEMENTS[element.localName];
941
+ if (!kind || element.namespaceURI && element.namespaceURI !== NS.a) continue;
942
+ return parseDrawingColor(element);
943
+ }
944
+ return void 0;
945
+ }
946
+ function parseDrawingColor(element) {
947
+ const kind = COLOR_ELEMENTS[element.localName];
948
+ if (!kind) return void 0;
949
+ const color = {
950
+ kind,
951
+ value: colorValue(kind, element),
952
+ transforms: elements(element).map((child3) => ({
953
+ name: child3.localName,
954
+ value: child3.getAttribute("val") ?? ""
955
+ }))
956
+ };
957
+ const fallback = kind === "system" ? element.getAttribute("lastClr") : null;
958
+ if (fallback) color.fallback = fallback;
959
+ return color;
960
+ }
961
+ function parseDrawingColorList(container) {
962
+ if (!container) return [];
963
+ return elements(container).flatMap((element) => {
964
+ const color = parseDrawingColor(element);
965
+ return color ? [color] : [];
966
+ });
967
+ }
968
+
969
+ // drawingml/theme-model.ts
970
+ var THEME_COLOR_SLOTS = [
873
971
  "dk1",
874
972
  "lt1",
875
973
  "dk2",
@@ -883,46 +981,89 @@ var SCHEME_ORDER = [
883
981
  "hlink",
884
982
  "folHlink"
885
983
  ];
886
- function drawingChild(parent, local) {
887
- if (!parent) return void 0;
888
- for (const node of Array.from(parent.childNodes)) {
889
- const element = node;
890
- if (element.nodeType === 1 && element.localName === local && element.namespaceURI === DRAWING_NS)
891
- return element;
984
+
985
+ // drawingml/theme.ts
986
+ new Set(THEME_COLOR_SLOTS);
987
+ function nonEmpty(value) {
988
+ return value ? value : void 0;
989
+ }
990
+ function parseThemeColorScheme(scheme) {
991
+ const result = { colors: {} };
992
+ if (!scheme) return result;
993
+ const name = nonEmpty(scheme.getAttribute("name"));
994
+ if (name) result.name = name;
995
+ for (const slot2 of THEME_COLOR_SLOTS) {
996
+ const color = parseDrawingColorIn(first(scheme, slot2, NS.a));
997
+ if (color) result.colors[slot2] = color;
892
998
  }
893
- return void 0;
999
+ return result;
894
1000
  }
895
- function colorOf(slot2) {
896
- const srgb = drawingChild(slot2, "srgbClr");
897
- if (srgb) return srgb.getAttribute("val")?.toUpperCase() || void 0;
898
- const sys = drawingChild(slot2, "sysClr");
899
- if (sys) return sys.getAttribute("lastClr")?.toUpperCase() || void 0;
900
- return void 0;
1001
+ function parseFontCollection(collection) {
1002
+ const result = { scripts: {} };
1003
+ if (!collection) return result;
1004
+ const typeface = (local) => nonEmpty(first(collection, local, NS.a)?.getAttribute("typeface"));
1005
+ const latin = typeface("latin");
1006
+ const eastAsia = typeface("ea");
1007
+ const complexScript = typeface("cs");
1008
+ if (latin) result.latin = latin;
1009
+ if (eastAsia) result.eastAsia = eastAsia;
1010
+ if (complexScript) result.complexScript = complexScript;
1011
+ for (const font of elements(collection)) {
1012
+ if (font.localName !== "font") continue;
1013
+ const script = nonEmpty(font.getAttribute("script"));
1014
+ const face = nonEmpty(font.getAttribute("typeface"));
1015
+ if (script && face && !Object.hasOwn(result.scripts, script)) result.scripts[script] = face;
1016
+ }
1017
+ return result;
901
1018
  }
902
- function fontSetOf(element) {
903
- if (!element) return {};
904
- const latin = drawingChild(element, "latin")?.getAttribute("typeface") || void 0;
905
- const ea = drawingChild(element, "ea")?.getAttribute("typeface") || void 0;
906
- const cs = drawingChild(element, "cs")?.getAttribute("typeface") || void 0;
1019
+ function parseThemeFontScheme(scheme) {
1020
+ const result = {
1021
+ major: parseFontCollection(first(scheme, "majorFont", NS.a)),
1022
+ minor: parseFontCollection(first(scheme, "minorFont", NS.a))
1023
+ };
1024
+ const name = nonEmpty(scheme?.getAttribute("name"));
1025
+ if (name) result.name = name;
1026
+ return result;
1027
+ }
1028
+ function rootOf(source) {
1029
+ return "documentElement" in source ? source.documentElement : source;
1030
+ }
1031
+ function parseTheme(source) {
1032
+ const root = rootOf(source);
1033
+ const holder = first(root, "themeElements", NS.a) ?? root;
1034
+ const theme = {
1035
+ colorScheme: parseThemeColorScheme(first(holder, "clrScheme", NS.a)),
1036
+ fontScheme: parseThemeFontScheme(first(holder, "fontScheme", NS.a))
1037
+ };
1038
+ const name = nonEmpty(root.getAttribute("name"));
1039
+ if (name) theme.name = name;
1040
+ return theme;
1041
+ }
1042
+
1043
+ // drawingml/theme-color.ts
1044
+ function themeSlotHex(color) {
1045
+ if (!color) return void 0;
1046
+ const value = color.kind === "srgb" ? color.value : color.kind === "system" ? color.fallback : void 0;
1047
+ return value ? value.toUpperCase() : void 0;
1048
+ }
1049
+
1050
+ // docx/theme.ts
1051
+ function fontSetOf(collection) {
1052
+ const { latin, eastAsia, complexScript } = collection;
907
1053
  return {
908
1054
  ...latin ? { latin } : {},
909
- ...ea ? { eastAsia: ea } : {},
910
- ...cs ? { complexScript: cs } : {}
1055
+ ...eastAsia ? { eastAsia } : {},
1056
+ ...complexScript ? { complexScript } : {}
911
1057
  };
912
1058
  }
913
- function parseTheme(xml) {
914
- const document = parseXml2(xml);
915
- const root = document.documentElement;
916
- const clrScheme = Array.from(root.getElementsByTagNameNS(DRAWING_NS, "clrScheme"))[0];
1059
+ function parseTheme2(xml) {
1060
+ const theme = parseTheme(parseXml2(xml));
917
1061
  const colors = {};
918
- for (const slotName of SCHEME_ORDER) {
919
- const slot2 = drawingChild(clrScheme, slotName);
920
- const value = colorOf(slot2);
921
- if (value) colors[slotName] = value;
922
- }
923
- const fontScheme = Array.from(root.getElementsByTagNameNS(DRAWING_NS, "fontScheme"))[0];
924
- const major = drawingChild(fontScheme, "majorFont");
925
- const minor = drawingChild(fontScheme, "minorFont");
1062
+ for (const slot2 of THEME_COLOR_SLOTS) {
1063
+ const value = themeSlotHex(theme.colorScheme.colors[slot2]);
1064
+ if (value) colors[slot2] = value;
1065
+ }
1066
+ const { major, minor } = theme.fontScheme;
926
1067
  return { colors, colorMapping: {}, fonts: { major: fontSetOf(major), minor: fontSetOf(minor) } };
927
1068
  }
928
1069
  var MAPPING_KEYS = ["bg1", "tx1", "bg2", "tx2"];
@@ -960,9 +1101,6 @@ function parseColorSchemeMapping(xml) {
960
1101
  function isThemeColorToken(value) {
961
1102
  return isStThemeColor(value);
962
1103
  }
963
- function toHex(value) {
964
- return Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
965
- }
966
1104
  function fractionToThemeByte(fraction) {
967
1105
  return toHex(Math.round(Math.min(1, Math.max(0, fraction)) * 255));
968
1106
  }
@@ -1016,6 +1154,10 @@ function resolvePartPath(basePart, target) {
1016
1154
  }
1017
1155
  return resolved.join("/");
1018
1156
  }
1157
+ function relationshipsPartFor(partName) {
1158
+ const slash = partName.lastIndexOf("/");
1159
+ return `${partName.slice(0, slash + 1)}_rels/${partName.slice(slash + 1)}.rels`;
1160
+ }
1019
1161
  function nextRelationshipId(used) {
1020
1162
  let index = 1;
1021
1163
  while (used.has(`rId${index}`)) index++;
@@ -1146,7 +1288,7 @@ function parseCoreProperties(xml) {
1146
1288
  }
1147
1289
  return Object.keys(result).length ? result : void 0;
1148
1290
  }
1149
- var same = (a, b) => PROPERTY_FIELDS.every((field) => (a?.[field] ?? "") === (b?.[field] ?? ""));
1291
+ var same = (a2, b) => PROPERTY_FIELDS.every((field) => (a2?.[field] ?? "") === (b?.[field] ?? ""));
1150
1292
  async function applyCoreProperties(zip, next, prior) {
1151
1293
  if (same(next, prior)) return;
1152
1294
  const existing = zip.file(CORE_PATH);
@@ -1305,13 +1447,13 @@ function buildCommentsExtendedDocument(comments) {
1305
1447
  );
1306
1448
  const root = doc.documentElement;
1307
1449
  comments.forEach((comment, index) => {
1308
- const entry = doc.createElementNS(W15_NS, "w15:commentEx");
1309
- entry.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
1310
- if (comment.resolved) entry.setAttributeNS(W15_NS, "w15:done", "1");
1311
- const parentIndex = comments.findIndex((c) => c.id === comment.parentId);
1450
+ const entry2 = doc.createElementNS(W15_NS, "w15:commentEx");
1451
+ entry2.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
1452
+ if (comment.resolved) entry2.setAttributeNS(W15_NS, "w15:done", "1");
1453
+ const parentIndex = comments.findIndex((c2) => c2.id === comment.parentId);
1312
1454
  if (parentIndex >= 0)
1313
- entry.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
1314
- root.appendChild(entry);
1455
+ entry2.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
1456
+ root.appendChild(entry2);
1315
1457
  });
1316
1458
  return doc;
1317
1459
  }
@@ -1441,7 +1583,7 @@ function rangeEdges(runs, ranges) {
1441
1583
  const opens = /* @__PURE__ */ new Map();
1442
1584
  const closes = /* @__PURE__ */ new Map();
1443
1585
  const order = (key) => key.startsWith("comment:") ? 0 : 1;
1444
- for (const key of [...first3.keys()].sort((a, b) => order(a) - order(b))) {
1586
+ for (const key of [...first3.keys()].sort((a2, b) => order(a2) - order(b))) {
1445
1587
  if (!ranges?.before.has(key)) {
1446
1588
  const index = first3.get(key);
1447
1589
  (opens.get(index) ?? opens.set(index, []).get(index)).push(edgeFor(key, index));
@@ -1664,8 +1806,8 @@ function orderChildren(parent, order) {
1664
1806
  if (rank >= 0) previousRank = rank;
1665
1807
  return { element, index, rank: rank >= 0 ? rank : previousRank + 0.5 };
1666
1808
  });
1667
- const sorted = [...ranked].sort((a, b) => a.rank - b.rank || a.index - b.index);
1668
- if (sorted.every((entry, index) => entry.element === elements2[index])) return;
1809
+ const sorted = [...ranked].sort((a2, b) => a2.rank - b.rank || a2.index - b.index);
1810
+ if (sorted.every((entry2, index) => entry2.element === elements2[index])) return;
1669
1811
  for (const { element } of sorted) parent.appendChild(element);
1670
1812
  }
1671
1813
  var SECTPR_ORDER = [
@@ -2452,7 +2594,7 @@ function borderElement(doc, name, side) {
2452
2594
  }
2453
2595
  return element;
2454
2596
  }
2455
- var sameJson = (a, b) => JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
2597
+ var sameJson = (a2, b) => JSON.stringify(a2 ?? null) === JSON.stringify(b ?? null);
2456
2598
  function updateShading(doc, props, paragraph, base) {
2457
2599
  if (base && paragraph.shadingFill === base.shadingFill) return;
2458
2600
  for (const element of children2(props, "shd")) props.removeChild(element);
@@ -2644,8 +2786,8 @@ function reconcileBookmarks(doc, starts, ends, names, baseNames, nextId) {
2644
2786
  function setAttribute3(element, local, value) {
2645
2787
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
2646
2788
  }
2647
- function sameNumbering(a, b) {
2648
- return a?.numId === b?.numId && a?.level === b?.level;
2789
+ function sameNumbering(a2, b) {
2790
+ return a2?.numId === b?.numId && a2?.level === b?.level;
2649
2791
  }
2650
2792
  function writeNumberingProperties(doc, props, paragraph, base) {
2651
2793
  if (base && sameNumbering(paragraph.numbering, base.numbering)) return;
@@ -2828,11 +2970,11 @@ var allowedRunPropertyAttributes = {
2828
2970
  shd: ["val", "fill", "color", "themeFill", "themeFillTint", "themeFillShade"]
2829
2971
  };
2830
2972
  function hasUnexpectedAttributes(element, allowed, allowDateUtc = false) {
2831
- for (const attribute of Array.from(element.attributes)) {
2832
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
2833
- if (allowDateUtc && attribute.namespaceURI === WORD_DATE_UTC_NS && attribute.localName === "dateUtc")
2973
+ for (const attribute2 of Array.from(element.attributes)) {
2974
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
2975
+ if (allowDateUtc && attribute2.namespaceURI === WORD_DATE_UTC_NS && attribute2.localName === "dateUtc")
2834
2976
  continue;
2835
- if (attribute.namespaceURI !== WORD_NS || !allowed.includes(attribute.localName)) return true;
2977
+ if (attribute2.namespaceURI !== WORD_NS || !allowed.includes(attribute2.localName)) return true;
2836
2978
  }
2837
2979
  return false;
2838
2980
  }
@@ -2859,7 +3001,7 @@ function runPropertiesHaveUnknownContent(properties) {
2859
3001
  if (!isLigatures(property.getAttributeNS(WORD_2010_NS, "val")) || elements(property).length)
2860
3002
  return true;
2861
3003
  if (Array.from(property.attributes).some(
2862
- (attribute) => attribute.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute.namespaceURI !== WORD_2010_NS || attribute.localName !== "val")
3004
+ (attribute2) => attribute2.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute2.namespaceURI !== WORD_2010_NS || attribute2.localName !== "val")
2863
3005
  ))
2864
3006
  return true;
2865
3007
  continue;
@@ -2998,7 +3140,7 @@ var NAMED = {
2998
3140
  var POINT_TO_PX = 96 / 72;
2999
3141
  var WATERMARK_PREFIX = "PowerPlusWaterMarkObject";
3000
3142
  var DEFAULT_WATERMARK_COLOR = "#c0c0c0";
3001
- function colorOf2(value) {
3143
+ function colorOf(value) {
3002
3144
  const text = (value ?? "").trim().toLowerCase().split(/\s/)[0] ?? "";
3003
3145
  if (NAMED[text]) return NAMED[text];
3004
3146
  const hex = /^#?([0-9a-f]{6})$/.exec(text);
@@ -3006,20 +3148,20 @@ function colorOf2(value) {
3006
3148
  }
3007
3149
  function parseWatermarkShape(shape) {
3008
3150
  if (!shape || !(shape.getAttribute("id") ?? "").startsWith(WATERMARK_PREFIX)) return void 0;
3009
- const path = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
3010
- if (!path) return void 0;
3151
+ const path2 = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
3152
+ if (!path2) return void 0;
3011
3153
  const style = shape.getAttribute("style") ?? "";
3012
3154
  const fill = Array.from(shape.getElementsByTagNameNS(VML_NS, "fill"))[0];
3013
3155
  const opacity = fill?.getAttribute("opacity");
3014
3156
  const family = /font-family:\s*(?:&quot;|"|')?([^;"'&]+)/i.exec(
3015
- path.getAttribute("style") ?? ""
3157
+ path2.getAttribute("style") ?? ""
3016
3158
  )?.[1];
3017
3159
  const width = /width:\s*([\d.]+)pt/i.exec(style);
3018
3160
  const height = /height:\s*([\d.]+)pt/i.exec(style);
3019
3161
  const rotation = /rotation:\s*(-?[\d.]+)/i.exec(style);
3020
3162
  const spec = {
3021
- text: path.getAttribute("string") ?? "",
3022
- color: colorOf2(shape.getAttribute("fillcolor")),
3163
+ text: path2.getAttribute("string") ?? "",
3164
+ color: colorOf(shape.getAttribute("fillcolor")),
3023
3165
  semitransparent: opacity !== null && opacity !== "" && opacity !== "1",
3024
3166
  layout: rotation && Math.abs(Number(rotation[1]) % 360) > 1 ? "diagonal" : "horizontal",
3025
3167
  ...family ? { fontFamily: family.trim() } : {}
@@ -3074,11 +3216,11 @@ function buildWatermarkRun(doc, spec, uniqueId) {
3074
3216
  f.setAttribute("eqn", eqn);
3075
3217
  formulas.appendChild(f);
3076
3218
  }
3077
- const path = v("path");
3078
- path.setAttribute("textpathok", "t");
3079
- path.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
3080
- path.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
3081
- path.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
3219
+ const path2 = v("path");
3220
+ path2.setAttribute("textpathok", "t");
3221
+ path2.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
3222
+ path2.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
3223
+ path2.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
3082
3224
  const typePath = v("textpath");
3083
3225
  typePath.setAttribute("on", "t");
3084
3226
  typePath.setAttribute("fitshape", "t");
@@ -3091,7 +3233,7 @@ function buildWatermarkRun(doc, spec, uniqueId) {
3091
3233
  lock.setAttributeNS(VML_NS, "v:ext", "edit");
3092
3234
  lock.setAttribute("text", "t");
3093
3235
  lock.setAttribute("shapetype", "t");
3094
- for (const child3 of [formulas, path, typePath, handles, lock]) type.appendChild(child3);
3236
+ for (const child3 of [formulas, path2, typePath, handles, lock]) type.appendChild(child3);
3095
3237
  const size = watermarkSizePt(spec);
3096
3238
  const shape = v("shape");
3097
3239
  shape.setAttribute("id", `${WATERMARK_PREFIX}${uniqueId}`);
@@ -3131,7 +3273,7 @@ var add = (parent, ...items) => {
3131
3273
  return parent;
3132
3274
  };
3133
3275
  var emu = (px2) => String(Math.max(1, Math.round(px2 * EMU_PER_PIXEL)));
3134
- var descendants = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
3276
+ var descendants2 = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
3135
3277
  function paragraphsFor(doc, lines) {
3136
3278
  return (lines.length ? lines : [""]).map((line) => {
3137
3279
  const paragraph = makeW(doc, "p");
@@ -3223,23 +3365,23 @@ function buildTextBoxDrawing(doc, image, docPrId) {
3223
3365
  }
3224
3366
  function isSimpleTextBox(graphicData, anchored) {
3225
3367
  if (!graphicData || anchored) return false;
3226
- const content = descendants(graphicData, W_NS, "txbxContent")[0];
3368
+ const content = descendants2(graphicData, W_NS, "txbxContent")[0];
3227
3369
  if (!content) return false;
3228
3370
  const plain = (node, allowed) => Array.from(node.childNodes).filter(isElement).every((child3) => child3.namespaceURI === W_NS && allowed.includes(child3.localName));
3229
- return plain(content, ["p"]) && descendants(content, W_NS, "p").every(
3230
- (paragraph) => plain(paragraph, ["r"]) && descendants(paragraph, W_NS, "r").every((run) => plain(run, ["t"]))
3371
+ return plain(content, ["p"]) && descendants2(content, W_NS, "p").every(
3372
+ (paragraph) => plain(paragraph, ["r"]) && descendants2(paragraph, W_NS, "r").every((run) => plain(run, ["t"]))
3231
3373
  );
3232
3374
  }
3233
3375
  function textBoxHasBorder(graphicData) {
3234
- const spPr = graphicData && descendants(graphicData, WPS_NS, "spPr")[0];
3376
+ const spPr = graphicData && descendants2(graphicData, WPS_NS, "spPr")[0];
3235
3377
  const ln = spPr && Array.from(spPr.getElementsByTagNameNS(A_NS, "ln"))[0];
3236
3378
  return Boolean(ln && !ln.getElementsByTagNameNS(A_NS, "noFill").length);
3237
3379
  }
3238
3380
  function patchTextBox(doc, drawing, image, base) {
3239
3381
  if (image.widthPx !== base.widthPx || image.heightPx !== base.heightPx)
3240
3382
  for (const node of [
3241
- ...descendants(drawing, WP_NS, "extent"),
3242
- ...descendants(drawing, A_NS, "ext").filter(
3383
+ ...descendants2(drawing, WP_NS, "extent"),
3384
+ ...descendants2(drawing, A_NS, "ext").filter(
3243
3385
  (ext) => ext.parentNode?.localName === "xfrm"
3244
3386
  )
3245
3387
  ]) {
@@ -3247,14 +3389,14 @@ function patchTextBox(doc, drawing, image, base) {
3247
3389
  node.setAttribute("cy", emu(image.heightPx));
3248
3390
  }
3249
3391
  if (JSON.stringify(image.textBoxText) !== JSON.stringify(base.textBoxText)) {
3250
- const content = descendants(drawing, W_NS, "txbxContent")[0];
3392
+ const content = descendants2(drawing, W_NS, "txbxContent")[0];
3251
3393
  if (content) {
3252
3394
  for (const child3 of Array.from(content.childNodes)) content.removeChild(child3);
3253
3395
  add(content, ...paragraphsFor(doc, image.textBoxText ?? []));
3254
3396
  }
3255
3397
  }
3256
3398
  if (image.textBoxBorder !== false !== (base.textBoxBorder !== false)) {
3257
- const spPr = descendants(drawing, WPS_NS, "spPr")[0];
3399
+ const spPr = descendants2(drawing, WPS_NS, "spPr")[0];
3258
3400
  if (spPr) {
3259
3401
  for (const old of Array.from(spPr.childNodes).filter(
3260
3402
  (node) => isElement(node) && node.localName === "ln"
@@ -3324,8 +3466,8 @@ var CUSTOM_LAYOUT_ATTRIBUTES = [
3324
3466
  ];
3325
3467
  function parseCustomLayoutAttributes(get) {
3326
3468
  const custom = {};
3327
- for (const [key, attribute, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
3328
- const raw = get(attribute);
3469
+ for (const [key, attribute2, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
3470
+ const raw = get(attribute2);
3329
3471
  const value = kind === "flag" ? optionalBoolean(raw) : optionalScaled(raw, kind === "angle" ? 6e4 : 1e5);
3330
3472
  if (value !== void 0) custom[key] = value;
3331
3473
  }
@@ -3339,8 +3481,8 @@ var RELATIONSHIP_ATTRIBUTES = [
3339
3481
  ];
3340
3482
  function parseRelationshipIdAttributes(get) {
3341
3483
  const result = {};
3342
- for (const [property, attribute] of RELATIONSHIP_ATTRIBUTES) {
3343
- const value = optionalString(get(attribute));
3484
+ for (const [property, attribute2] of RELATIONSHIP_ATTRIBUTES) {
3485
+ const value = optionalString(get(attribute2));
3344
3486
  if (value) result[property] = value;
3345
3487
  }
3346
3488
  return result;
@@ -3402,7 +3544,7 @@ async function resolveDiagramDrawingPart(hostPart, dataRelId, drawingExtensionRe
3402
3544
  const entries = await host.readRelationshipEntries(diagramRelationshipsPart(dataPath));
3403
3545
  if (!entries) return void 0;
3404
3546
  const drawing = entries.find(
3405
- (entry) => (!drawingExtensionRelId || entry.id.trim() === drawingExtensionRelId) && entry.type.endsWith("/diagramDrawing")
3547
+ (entry2) => (!drawingExtensionRelId || entry2.id.trim() === drawingExtensionRelId) && entry2.type.endsWith("/diagramDrawing")
3406
3548
  );
3407
3549
  const id = drawing?.id.trim() ?? "";
3408
3550
  const target = drawing?.target.trim() ?? "";
@@ -3417,47 +3559,6 @@ var DIAGRAM_RELATIONSHIP_TYPES = {
3417
3559
  drawing: RELATIONSHIP_TYPES.diagramDrawing
3418
3560
  };
3419
3561
 
3420
- // diagram/dom.ts
3421
- function attributeReader(element) {
3422
- return (name) => {
3423
- if (!element) return void 0;
3424
- const direct = element.getAttribute(name);
3425
- if (direct !== null) return direct;
3426
- const attributes = element.attributes;
3427
- for (let index = 0; index < attributes.length; index++) {
3428
- const candidate = attributes.item(index);
3429
- if (candidate && candidate.localName === name) return candidate.value;
3430
- }
3431
- return void 0;
3432
- };
3433
- }
3434
- function stringAttribute(element, name) {
3435
- const value = attributeReader(element)(name)?.trim();
3436
- return value ? value : void 0;
3437
- }
3438
- function integerAttribute(element, name) {
3439
- const parsed = Number.parseInt(attributeReader(element)(name) ?? "", 10);
3440
- return Number.isFinite(parsed) ? parsed : void 0;
3441
- }
3442
- function booleanAttribute(element, name) {
3443
- const value = attributeReader(element)(name)?.trim().toLowerCase();
3444
- if (value === "1" || value === "true") return true;
3445
- if (value === "0" || value === "false") return false;
3446
- return void 0;
3447
- }
3448
- function descendants2(root, local) {
3449
- const result = [];
3450
- const visit = (node) => {
3451
- for (const child3 of Array.from(node.childNodes)) {
3452
- if (!isElement(child3)) continue;
3453
- if (child3.localName === local) result.push(child3);
3454
- visit(child3);
3455
- }
3456
- };
3457
- visit(root);
3458
- return result;
3459
- }
3460
-
3461
3562
  // diagram/data-model.ts
3462
3563
  var TRANSITION_TYPES = /* @__PURE__ */ new Set(["parTrans", "sibTrans"]);
3463
3564
  var STRUCTURAL_TYPES = /* @__PURE__ */ new Set(["doc", "pres", "parTrans", "sibTrans"]);
@@ -3481,7 +3582,7 @@ function connectionLabel(connection, transitionText) {
3481
3582
  function textBodyParagraphs(body) {
3482
3583
  if (!body) return [];
3483
3584
  return children(body, "p", NS.a).map(
3484
- (paragraph) => descendants2(paragraph, "t").map((run) => run.textContent ?? "").join("")
3585
+ (paragraph) => descendants(paragraph, "t").map((run) => run.textContent ?? "").join("")
3485
3586
  );
3486
3587
  }
3487
3588
  function parsePoint(element) {
@@ -3547,21 +3648,21 @@ function parseDiagramDataModel(source, part) {
3547
3648
  if (connection.modelId && connectionIds.has(connection.modelId))
3548
3649
  report("CONNECTION_ID_DUPLICATE", `Duplicate dgm:cxn modelId: ${connection.modelId}.`);
3549
3650
  if (connection.modelId) connectionIds.add(connection.modelId);
3550
- for (const [attribute, id] of [
3651
+ for (const [attribute2, id] of [
3551
3652
  ["srcId", connection.sourceId],
3552
3653
  ["destId", connection.destId]
3553
3654
  ])
3554
3655
  if (!ids.has(id))
3555
3656
  report(
3556
3657
  "CONNECTION_ENDPOINT_MISSING",
3557
- `dgm:cxn ${attribute} references missing point: ${id}.`
3658
+ `dgm:cxn ${attribute2} references missing point: ${id}.`
3558
3659
  );
3559
3660
  const label = connectionLabel(connection, transitionText);
3560
3661
  connections.push(label ? { ...connection, label } : connection);
3561
3662
  if ((!connection.type || connection.type === "parOf") && !parentById.has(connection.destId))
3562
3663
  parentById.set(connection.destId, connection.sourceId);
3563
3664
  }
3564
- const ext = descendants2(root, "dataModelExt")[0];
3665
+ const ext = descendants(root, "dataModelExt")[0];
3565
3666
  const drawingRelId = stringAttribute(ext, "relId");
3566
3667
  return {
3567
3668
  points,
@@ -3573,55 +3674,8 @@ function parseDiagramDataModel(source, part) {
3573
3674
  };
3574
3675
  }
3575
3676
 
3576
- // diagram/drawing-color.ts
3577
- var COLOR_ELEMENTS = {
3578
- srgbClr: "srgb",
3579
- schemeClr: "scheme",
3580
- sysClr: "system",
3581
- prstClr: "preset",
3582
- scrgbClr: "scrgb",
3583
- hslClr: "hsl"
3584
- };
3585
- function colorValue(kind, element) {
3586
- const attribute = (name) => element.getAttribute(name) ?? "";
3587
- if (kind === "scrgb") return `${attribute("r")},${attribute("g")},${attribute("b")}`;
3588
- if (kind === "hsl") return `${attribute("hue")},${attribute("sat")},${attribute("lum")}`;
3589
- return attribute("val");
3590
- }
3591
- function parseDrawingColorIn(container) {
3592
- if (!container) return void 0;
3593
- for (const element of elements(container)) {
3594
- const kind = COLOR_ELEMENTS[element.localName];
3595
- if (!kind || element.namespaceURI && element.namespaceURI !== NS.a) continue;
3596
- return parseDrawingColor(element);
3597
- }
3598
- return void 0;
3599
- }
3600
- function parseDrawingColor(element) {
3601
- const kind = COLOR_ELEMENTS[element.localName];
3602
- if (!kind) return void 0;
3603
- const color = {
3604
- kind,
3605
- value: colorValue(kind, element),
3606
- transforms: elements(element).map((child3) => ({
3607
- name: child3.localName,
3608
- value: child3.getAttribute("val") ?? ""
3609
- }))
3610
- };
3611
- const fallback = kind === "system" ? element.getAttribute("lastClr") : null;
3612
- if (fallback) color.fallback = fallback;
3613
- return color;
3614
- }
3615
- function parseDrawingColorList(container) {
3616
- if (!container) return [];
3617
- return elements(container).flatMap((element) => {
3618
- const color = parseDrawingColor(element);
3619
- return color ? [color] : [];
3620
- });
3621
- }
3622
-
3623
3677
  // diagram/definitions.ts
3624
- var rootOf = (source) => (typeof source === "string" ? parseXml(source, { label: "DiagramML" }) : source).documentElement;
3678
+ var rootOf2 = (source) => (typeof source === "string" ? parseXml(source, { label: "DiagramML" }) : source).documentElement;
3625
3679
  function parseDefinitionHeader(root) {
3626
3680
  const header = {
3627
3681
  uniqueId: stringAttribute(root, "uniqueId") ?? "",
@@ -3642,7 +3696,7 @@ function colorList(container) {
3642
3696
  return { ...method ? { method } : {}, colors: parseDrawingColorList(container) };
3643
3697
  }
3644
3698
  function parseDiagramColors(source) {
3645
- const root = rootOf(source);
3699
+ const root = rootOf2(source);
3646
3700
  const labels = children(root, "styleLbl", NS.dgm).map((label) => ({
3647
3701
  name: stringAttribute(label, "name") ?? "",
3648
3702
  fill: colorList(first(label, "fillClrLst", NS.dgm)),
@@ -3682,7 +3736,7 @@ function parseStyleReferences(style) {
3682
3736
  }
3683
3737
  var hasContent = (element) => Boolean(element && (element.attributes.length > 0 || elements(element).length > 0));
3684
3738
  function parseDiagramQuickStyle(source) {
3685
- const root = rootOf(source);
3739
+ const root = rootOf2(source);
3686
3740
  const labels = children(root, "styleLbl", NS.dgm).map((label) => ({
3687
3741
  name: stringAttribute(label, "name") ?? "",
3688
3742
  ...parseStyleReferences(first(label, "style", NS.dgm)),
@@ -3696,7 +3750,7 @@ function parseDiagramQuickStyle(source) {
3696
3750
  };
3697
3751
  }
3698
3752
  function parseDiagramLayoutSummary(source) {
3699
- const root = rootOf(source);
3753
+ const root = rootOf2(source);
3700
3754
  const header = parseDefinitionHeader(root);
3701
3755
  const family = resolveDiagramLayoutCategory(
3702
3756
  header.uniqueId,
@@ -3708,11 +3762,11 @@ function parseDiagramLayoutSummary(source) {
3708
3762
  ...header,
3709
3763
  ...family ? { family } : {},
3710
3764
  ...rootAlgorithm ? { rootAlgorithm } : {},
3711
- layoutNodeCount: descendants2(root, "layoutNode").length
3765
+ layoutNodeCount: descendants(root, "layoutNode").length
3712
3766
  };
3713
3767
  }
3714
3768
 
3715
- // diagram/drawing-fill.ts
3769
+ // drawingml/drawing-fill.ts
3716
3770
  var FILL_ELEMENTS = /* @__PURE__ */ new Set([
3717
3771
  "noFill",
3718
3772
  "solidFill",
@@ -3744,7 +3798,7 @@ function parseDrawingFill(properties) {
3744
3798
  });
3745
3799
  const angle = Number.parseInt(first(fill, "lin", NS.a)?.getAttribute("ang") ?? "", 10);
3746
3800
  const scaled = first(fill, "lin", NS.a)?.getAttribute("scaled");
3747
- const path = first(fill, "path", NS.a)?.getAttribute("path");
3801
+ const path2 = first(fill, "path", NS.a)?.getAttribute("path");
3748
3802
  const focus = first(first(fill, "path", NS.a), "fillToRect", NS.a);
3749
3803
  const tile = first(fill, "tileRect", NS.a);
3750
3804
  const tileRect = tile ? {
@@ -3766,7 +3820,7 @@ function parseDrawingFill(properties) {
3766
3820
  ...Number.isFinite(angle) ? { angle: angle / 6e4 } : {},
3767
3821
  ...scaled === "1" || scaled === "true" ? { scaled: true } : {},
3768
3822
  ...scaled === "0" || scaled === "false" ? { scaled: false } : {},
3769
- ...path ? { path } : {},
3823
+ ...path2 ? { path: path2 } : {},
3770
3824
  ...fillToRect && Object.values(fillToRect).every(Number.isFinite) ? { fillToRect } : {},
3771
3825
  ...tileRect && Object.values(tileRect).every(Number.isFinite) ? { tileRect } : {}
3772
3826
  };
@@ -3804,7 +3858,7 @@ function parseDrawingLine(ln) {
3804
3858
  return line;
3805
3859
  }
3806
3860
 
3807
- // diagram/drawing-text.ts
3861
+ // drawingml/drawing-text.ts
3808
3862
  function parseSpacing(parent) {
3809
3863
  for (const [name, unit, divisor] of [
3810
3864
  ["spcPts", "points", 100],
@@ -3870,20 +3924,20 @@ function parseDrawingTextBody(body) {
3870
3924
  const anchor = properties?.getAttribute("anchor");
3871
3925
  if (anchor) result.anchor = anchor;
3872
3926
  const insets = {};
3873
- for (const [key, attribute] of [
3927
+ for (const [key, attribute2] of [
3874
3928
  ["left", "lIns"],
3875
3929
  ["top", "tIns"],
3876
3930
  ["right", "rIns"],
3877
3931
  ["bottom", "bIns"]
3878
3932
  ]) {
3879
- const value = Number.parseInt(properties?.getAttribute(attribute) ?? "", 10);
3933
+ const value = Number.parseInt(properties?.getAttribute(attribute2) ?? "", 10);
3880
3934
  if (Number.isFinite(value)) insets[key] = value;
3881
3935
  }
3882
3936
  if (Object.keys(insets).length > 0) result.insetsEmu = insets;
3883
3937
  return result;
3884
3938
  }
3885
3939
 
3886
- // diagram/drawing-geometry.ts
3940
+ // drawingml/drawing-geometry.ts
3887
3941
  var int = (element, name) => Number.parseInt(element?.getAttribute(name) ?? "", 10);
3888
3942
  function parseFrame(container) {
3889
3943
  const off = first(container, "off", NS.a);
@@ -3907,18 +3961,18 @@ function parseTransform(xfrm) {
3907
3961
  ...booleanAttribute(xfrm, "flipV") ? { flipVertical: true } : {}
3908
3962
  };
3909
3963
  }
3910
- function parsePathCommands(path) {
3964
+ function parsePathCommands(path2) {
3911
3965
  const commands = [];
3912
3966
  const point = (element) => {
3913
3967
  const x = int(element, "x");
3914
3968
  const y = int(element, "y");
3915
3969
  return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : void 0;
3916
3970
  };
3917
- for (const element of Array.from(path.childNodes)) {
3971
+ for (const element of Array.from(path2.childNodes)) {
3918
3972
  if (element.nodeType !== 1) continue;
3919
3973
  const node = element;
3920
3974
  const points = children(node, "pt", NS.a).map(point);
3921
- if (points.some((entry) => entry === void 0)) return void 0;
3975
+ if (points.some((entry2) => entry2 === void 0)) return void 0;
3922
3976
  const [p0, p1, p2] = points;
3923
3977
  switch (node.localName) {
3924
3978
  case "moveTo":
@@ -3961,17 +4015,17 @@ function parseDrawingGeometry(spPr) {
3961
4015
  const custom = first(spPr, "custGeom", NS.a);
3962
4016
  if (custom) {
3963
4017
  const paths = [];
3964
- for (const path of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
3965
- const commands = parsePathCommands(path);
4018
+ for (const path2 of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
4019
+ const commands = parsePathCommands(path2);
3966
4020
  if (!commands) return { geometry: "custom", issue: "CUSTOM_GEOMETRY_GUIDES_UNSUPPORTED" };
3967
- const width = int(path, "w");
3968
- const height = int(path, "h");
4021
+ const width = int(path2, "w");
4022
+ const height = int(path2, "h");
3969
4023
  paths.push({
3970
4024
  commands,
3971
4025
  ...Number.isFinite(width) ? { width } : {},
3972
4026
  ...Number.isFinite(height) ? { height } : {},
3973
- ...path.getAttribute("fill") ? { fill: path.getAttribute("fill") } : {},
3974
- ...path.getAttribute("stroke") === "0" || path.getAttribute("stroke") === "false" ? { stroke: false } : {}
4027
+ ...path2.getAttribute("fill") ? { fill: path2.getAttribute("fill") } : {},
4028
+ ...path2.getAttribute("stroke") === "0" || path2.getAttribute("stroke") === "false" ? { stroke: false } : {}
3975
4029
  });
3976
4030
  }
3977
4031
  return { geometry: "custom", paths };
@@ -4313,60 +4367,1233 @@ async function resolveDiagramParts(diagram, readText) {
4313
4367
  diagram.notice = diagramNotice(diagram.rendering);
4314
4368
  }
4315
4369
 
4316
- // docx/drawing.ts
4317
- var WP_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
4318
- var A_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/main";
4319
- var VML_NS2 = "urn:schemas-microsoft-com:vml";
4320
- var WPS_NS2 = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape";
4321
- var W_NS2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
4322
- var PICTURE_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/picture";
4323
- function firstNS(parent, ns, local) {
4324
- if (!parent) return void 0;
4325
- for (const child3 of Array.from(parent.childNodes))
4326
- if (isElement(child3) && child3.namespaceURI === ns && child3.localName === local) return child3;
4327
- return void 0;
4370
+ // chart/color-style.ts
4371
+ var CHART_COLOR_STYLE_NS = "http://schemas.microsoft.com/office/drawing/2012/chartStyle";
4372
+ function chartColorStyleId(xml) {
4373
+ const root = parseXml(xml).documentElement;
4374
+ if (root.localName !== "colorStyle" || root.namespaceURI !== CHART_COLOR_STYLE_NS)
4375
+ return void 0;
4376
+ const value = root.getAttribute("id");
4377
+ if (!value || !/^\d+$/.test(value)) return void 0;
4378
+ const id = Number(value);
4379
+ return Number.isInteger(id) && id >= 0 ? id : void 0;
4328
4380
  }
4329
- function descendantNS(parent, ns, local) {
4330
- if (!parent) return void 0;
4331
- const stack = [parent];
4332
- while (stack.length) {
4333
- const node = stack.shift();
4334
- for (const child3 of Array.from(node.childNodes)) {
4335
- if (!isElement(child3)) continue;
4336
- if (child3.namespaceURI === ns && child3.localName === local) return child3;
4337
- stack.push(child3);
4381
+
4382
+ // chart/built-in-text-style.ts
4383
+ var C14 = NS.c14;
4384
+ function readBuiltInChartStyle(root) {
4385
+ for (const content of children(root, "AlternateContent", NS.mc)) {
4386
+ for (const choice of children(content, "Choice", NS.mc)) {
4387
+ const requires = choice.getAttribute("Requires")?.trim().split(/\s+/);
4388
+ if (!requires?.length || !requires.every((prefix) => choice.lookupNamespaceURI(prefix) === C14))
4389
+ continue;
4390
+ const modern = first(choice, "style", C14)?.getAttribute("val");
4391
+ if (modern && /^\d+$/.test(modern) && Number(modern) >= 101 && Number(modern) <= 148)
4392
+ return Number(modern);
4338
4393
  }
4339
4394
  }
4340
- return void 0;
4395
+ const legacy = first(root, "style", NS.c) ?? first(first(first(root, "AlternateContent", NS.mc), "Fallback", NS.mc), "style", NS.c);
4396
+ const value = legacy?.getAttribute("val");
4397
+ if (!legacy) return 2;
4398
+ return value && /^\d+$/.test(value) && Number.isSafeInteger(Number(value)) ? Number(value) : void 0;
4341
4399
  }
4342
- function emuToPx(value) {
4343
- const n = value ? Number(value) : NaN;
4344
- return Number.isFinite(n) ? Math.round(n / EMU_PER_PIXEL) : 0;
4400
+
4401
+ // chart/read-appearance.ts
4402
+ function readChartAppearance(text, properties) {
4403
+ const out = {};
4404
+ const size = Number(text?.getAttribute("sz") ?? NaN);
4405
+ if (Number.isFinite(size) && size > 0) out.fontSize = size / 100;
4406
+ for (const [attribute2, key] of [
4407
+ ["b", "bold"],
4408
+ ["i", "italic"]
4409
+ ]) {
4410
+ const value = text?.getAttribute(attribute2);
4411
+ if (value !== null && value !== void 0) out[key] = value === "1" || value === "true";
4412
+ }
4413
+ const typeface = first(text, "latin", NS.a)?.getAttribute("typeface");
4414
+ const underline = text?.getAttribute("u");
4415
+ if (underline) out.underline = underline !== "none";
4416
+ if (typeface) out.typeface = typeface;
4417
+ const color = parseDrawingColorIn(first(text, "solidFill", NS.a));
4418
+ if (color) out.textColor = color;
4419
+ const fill = parseDrawingFill(properties);
4420
+ const line = parseDrawingLine(first(properties, "ln", NS.a));
4421
+ if (fill) out.fill = fill;
4422
+ if (line) out.line = line;
4423
+ const effects = first(text, "effectLst", NS.a);
4424
+ if (effects) out.textEffectsXml = buildXml(effects);
4425
+ return out;
4345
4426
  }
4346
- function guessContentType(partName) {
4347
- const extension = partName.split(".").pop()?.toLowerCase();
4348
- const known = {
4349
- png: "image/png",
4350
- jpg: "image/jpeg",
4351
- jpeg: "image/jpeg",
4352
- gif: "image/gif",
4353
- bmp: "image/bmp",
4354
- svg: "image/svg+xml",
4355
- tif: "image/tiff",
4356
- tiff: "image/tiff",
4357
- emf: "image/x-emf",
4358
- wmf: "image/x-wmf"
4427
+
4428
+ // chart/formatting-nodes.ts
4429
+ function chartFormattingNodes(root) {
4430
+ const chart = first(root, "chart", NS.c);
4431
+ const plot = first(chart, "plotArea", NS.c);
4432
+ const category = first(plot, "catAx", NS.c) ?? first(plot, "dateAx", NS.c);
4433
+ const values = plot ? children(plot, "valAx", NS.c) : [];
4434
+ return {
4435
+ chartArea: root,
4436
+ plotArea: plot,
4437
+ title: first(chart, "title", NS.c),
4438
+ legend: first(chart, "legend", NS.c),
4439
+ categoryAxis: category ?? values[0],
4440
+ valueAxis: category ? values[0] : values[1],
4441
+ gridlineMajor: first(values[0], "majorGridlines", NS.c),
4442
+ gridlineMinor: first(values[0], "minorGridlines", NS.c)
4359
4443
  };
4360
- return extension && known[extension] || "application/octet-stream";
4361
4444
  }
4362
- function resolvePicture(relId, context) {
4363
- const rel = context.rels.get(relId);
4364
- if (!rel || rel.mode === "External") return void 0;
4365
- const partName = resolveInternalTarget(rel.target);
4366
- if (!context.mediaParts.has(partName)) return void 0;
4367
- return {
4368
- relId,
4369
- partName,
4445
+
4446
+ // chart/manual-layout.ts
4447
+ function readChartManualLayoutValues(value) {
4448
+ const result = {};
4449
+ const enumeration = (name, values) => {
4450
+ const raw = value(name);
4451
+ return values.includes(raw) ? raw : void 0;
4452
+ };
4453
+ const target = enumeration("layoutTarget", ["inner", "outer"]);
4454
+ if (target) result.layoutTarget = target;
4455
+ for (const [xml, key] of [
4456
+ ["xMode", "xMode"],
4457
+ ["yMode", "yMode"],
4458
+ ["wMode", "widthMode"],
4459
+ ["hMode", "heightMode"]
4460
+ ]) {
4461
+ const mode = enumeration(xml, ["edge", "factor"]);
4462
+ if (mode) result[key] = mode;
4463
+ }
4464
+ for (const [xml, key] of [
4465
+ ["x", "x"],
4466
+ ["y", "y"],
4467
+ ["w", "width"],
4468
+ ["h", "height"]
4469
+ ]) {
4470
+ const raw = value(xml);
4471
+ if (typeof raw !== "string" && typeof raw !== "number" || typeof raw === "string" && !raw.trim())
4472
+ continue;
4473
+ const number = Number(raw);
4474
+ if (Number.isFinite(number)) result[key] = number;
4475
+ }
4476
+ return Object.keys(result).length ? result : void 0;
4477
+ }
4478
+
4479
+ // chart/read-formatting.ts
4480
+ var c = (parent, name) => first(parent, name, NS.c);
4481
+ var a = (parent, name) => first(parent, name, NS.a);
4482
+ function entry(node) {
4483
+ const body = c(node, "txPr");
4484
+ const paragraph = a(body, "p");
4485
+ const defaults = a(a(paragraph, "pPr"), "defRPr");
4486
+ const rich = c(c(node, "tx"), "rich");
4487
+ const richParagraph = a(rich, "p");
4488
+ const textBody = parseDrawingTextBody(rich);
4489
+ const manual = c(c(node, "layout"), "manualLayout");
4490
+ const layout2 = manual ? readChartManualLayoutValues((name) => c(manual, name)?.getAttribute("val")) : void 0;
4491
+ const overlay = c(node, "overlay")?.getAttribute("val");
4492
+ const out = {
4493
+ sourceXml: buildXml(node),
4494
+ ...layout2 ? { layout: layout2 } : {},
4495
+ ...overlay === "0" || overlay === "false" ? { overlay: false } : overlay === "1" || overlay === "true" ? { overlay: true } : {},
4496
+ ...readChartAppearance(defaults, c(node, "spPr")),
4497
+ ...readChartAppearance(a(a(richParagraph, "pPr"), "defRPr"), void 0),
4498
+ ...readChartAppearance(a(a(richParagraph, "r"), "rPr"), void 0),
4499
+ ...textBody ? { textBody, textBodyStyle: readChartAppearance(defaults, void 0) } : {}
4500
+ };
4501
+ if (["catAx", "dateAx", "valAx"].includes(node.localName)) {
4502
+ const deleted = c(node, "delete")?.getAttribute("val");
4503
+ if (deleted !== void 0) out.axisVisible = deleted !== "1" && deleted !== "true";
4504
+ out.labelsVisible = out.axisVisible !== false && c(node, "tickLblPos")?.getAttribute("val") !== "none";
4505
+ }
4506
+ return out;
4507
+ }
4508
+ function readChartFormatting(root) {
4509
+ const nodes = chartFormattingNodes(root);
4510
+ const entries = Object.fromEntries(
4511
+ Object.entries(nodes).flatMap(([name, node]) => node ? [[name, entry(node)]] : [])
4512
+ );
4513
+ const builtInStyle = readBuiltInChartStyle(root);
4514
+ const textBody = c(root, "txPr");
4515
+ const textDefaults = textBody ? {
4516
+ sourceXml: buildXml(textBody),
4517
+ ...readChartAppearance(a(a(a(textBody, "p"), "pPr"), "defRPr"), void 0)
4518
+ } : void 0;
4519
+ return Object.keys(entries).length ? {
4520
+ entries,
4521
+ sourceXml: buildXml(root),
4522
+ ...builtInStyle === void 0 ? {} : { builtInStyle },
4523
+ ...textDefaults ? { textDefaults } : {}
4524
+ } : void 0;
4525
+ }
4526
+
4527
+ // chart/data-cache.ts
4528
+ function chartCacheValues(cache) {
4529
+ if (!cache) return [];
4530
+ const numeric = cache.type === "number";
4531
+ const out = [];
4532
+ for (const point of cache.points) {
4533
+ const text = point.value;
4534
+ out[point.index ?? out.length] = numeric && text.trim() !== "" && Number.isFinite(Number(text)) ? Number(text) : text;
4535
+ }
4536
+ const size = Math.max(cache.pointCount ?? 0, out.length);
4537
+ for (let index = 0; index < size; index++) if (out[index] === void 0) out[index] = "";
4538
+ return out;
4539
+ }
4540
+
4541
+ // chart/xml-fragment.ts
4542
+ var CHART_ROOT_BINDINGS = /* @__PURE__ */ new Map([
4543
+ ["c", NS.c],
4544
+ ["a", NS.a],
4545
+ ["r", NS.r]
4546
+ ]);
4547
+ var DECLARATION = / xmlns:([A-Za-z_][\w.-]*)="([^"]*)"/g;
4548
+ function stripDeclarations(xml, bindings) {
4549
+ const conflicting = /* @__PURE__ */ new Set();
4550
+ for (const [, prefix, uri] of xml.matchAll(DECLARATION))
4551
+ if (prefix !== void 0 && bindings.has(prefix) && bindings.get(prefix) !== uri)
4552
+ conflicting.add(prefix);
4553
+ return xml.replace(
4554
+ DECLARATION,
4555
+ (match, prefix, uri) => bindings.get(prefix) === uri && !conflicting.has(prefix) ? "" : match
4556
+ );
4557
+ }
4558
+ var innerXml = (element) => stripDeclarations(elements(element).map(buildXml).join(""), CHART_ROOT_BINDINGS);
4559
+
4560
+ // chart/parse-util.ts
4561
+ var cChild = (parent, local) => first(parent, local, NS.c);
4562
+ var attribute = (element, name) => element?.hasAttribute(name) ? element.getAttribute(name) ?? void 0 : void 0;
4563
+ var cVal = (parent, local) => attribute(cChild(parent, local), "val");
4564
+ var path = (element) => `c:${element.parentNode?.localName ?? ""}/c:${element.localName}`;
4565
+ function malformed(context, element, value) {
4566
+ context.issues.push({
4567
+ code: "CHART_VALUE_INVALID",
4568
+ message: `${path(element)} has an unreadable value "${value}".`
4569
+ });
4570
+ }
4571
+ function cBool(context, parent, local) {
4572
+ const element = cChild(parent, local);
4573
+ if (!element) return void 0;
4574
+ const raw = attribute(element, "val");
4575
+ if (raw === void 0) return true;
4576
+ const value = raw.trim().toLowerCase();
4577
+ if (value === "1" || value === "true") return true;
4578
+ if (value === "0" || value === "false") return false;
4579
+ malformed(context, element, raw);
4580
+ return void 0;
4581
+ }
4582
+ function cNumber(context, parent, local) {
4583
+ const element = cChild(parent, local);
4584
+ const raw = attribute(element, "val");
4585
+ if (!element || raw === void 0) return void 0;
4586
+ const value = raw.trim() ? Number(raw) : Number.NaN;
4587
+ if (Number.isFinite(value)) return value;
4588
+ malformed(context, element, raw);
4589
+ return void 0;
4590
+ }
4591
+ function reportUnmodelled(context, element, handled) {
4592
+ for (const child3 of elements(element)) {
4593
+ if (handled.has(child3.localName)) continue;
4594
+ context.issues.push({
4595
+ code: "CHART_ELEMENT_NOT_MODELLED",
4596
+ message: `${path(child3)} is not modelled; it is kept only in the source part.`
4597
+ });
4598
+ }
4599
+ }
4600
+ function extensionList(parent) {
4601
+ const extLst = cChild(parent, "extLst");
4602
+ return extLst ? buildXml(extLst) : void 0;
4603
+ }
4604
+ function readShapeFields(spPr) {
4605
+ const out = {};
4606
+ const fill = parseDrawingFill(spPr);
4607
+ if (fill) out.fill = fill;
4608
+ const line = parseDrawingLine(first(spPr, "ln", NS.a));
4609
+ if (line) out.line = line;
4610
+ const effects = first(spPr, "effectLst", NS.a);
4611
+ if (effects) out.effectsXml = buildXml(effects);
4612
+ return out;
4613
+ }
4614
+ function shapeProperties(parent) {
4615
+ const spPr = cChild(parent, "spPr");
4616
+ if (!spPr) return void 0;
4617
+ const out = readShapeFields(spPr);
4618
+ const source = innerXml(spPr);
4619
+ if (source) out.sourceXml = source;
4620
+ return out;
4621
+ }
4622
+ function chartTextBody(element) {
4623
+ const body = parseDrawingTextBody(element);
4624
+ if (!body || !element) return body;
4625
+ const source = innerXml(element);
4626
+ if (source) body.sourceXml = source;
4627
+ return body;
4628
+ }
4629
+ var textProperties = (parent) => chartTextBody(cChild(parent, "txPr"));
4630
+ function chartLines(parent, local) {
4631
+ const element = cChild(parent, local);
4632
+ if (!element) return void 0;
4633
+ const spPr = shapeProperties(element);
4634
+ return spPr ? { spPr } : {};
4635
+ }
4636
+ function numberFormat(parent) {
4637
+ const element = cChild(parent, "numFmt");
4638
+ const formatCode = attribute(element, "formatCode");
4639
+ if (formatCode === void 0) return void 0;
4640
+ const linked = attribute(element, "sourceLinked");
4641
+ return {
4642
+ formatCode,
4643
+ ...linked === "1" || linked === "true" ? { sourceLinked: true } : {},
4644
+ ...linked === "0" || linked === "false" ? { sourceLinked: false } : {}
4645
+ };
4646
+ }
4647
+ function readLayoutFields(layout2) {
4648
+ const manual = cChild(layout2, "manualLayout");
4649
+ return (manual && readChartManualLayoutValues((name) => cVal(manual, name))) ?? {};
4650
+ }
4651
+ function manualLayout(parent) {
4652
+ const layout2 = cChild(parent, "layout");
4653
+ if (!layout2) return void 0;
4654
+ const out = readLayoutFields(layout2);
4655
+ const source = innerXml(layout2);
4656
+ if (source) out.sourceXml = source;
4657
+ return out;
4658
+ }
4659
+ function assignDefined(target, values) {
4660
+ for (const [key, value] of Object.entries(values))
4661
+ if (value !== void 0) target[key] = value;
4662
+ return target;
4663
+ }
4664
+
4665
+ // chart/parse-text.ts
4666
+ function parseCache(node) {
4667
+ const cache = {
4668
+ type: node.localName === "numCache" || node.localName === "numLit" ? "number" : "string",
4669
+ points: children(node, "pt", NS.c).map((pt) => {
4670
+ const point = { value: cChild(pt, "v")?.textContent ?? "" };
4671
+ const index = Number(attribute(pt, "idx") ?? Number.NaN);
4672
+ if (Number.isInteger(index) && index >= 0) point.index = index;
4673
+ const formatCode2 = attribute(pt, "formatCode");
4674
+ if (formatCode2 !== void 0) point.formatCode = formatCode2;
4675
+ return point;
4676
+ })
4677
+ };
4678
+ const count = Number(cVal(node, "ptCount") ?? Number.NaN);
4679
+ if (Number.isInteger(count) && count >= 0) cache.pointCount = count;
4680
+ const formatCode = cChild(node, "formatCode")?.textContent;
4681
+ if (formatCode) cache.formatCode = formatCode;
4682
+ return cache;
4683
+ }
4684
+ function parseDataSource(element) {
4685
+ if (!element) return void 0;
4686
+ const source = {};
4687
+ const ref = cChild(element, "numRef") ?? cChild(element, "strRef") ?? cChild(element, "multiLvlStrRef");
4688
+ if (ref) {
4689
+ source.kind = ref.localName;
4690
+ const formula = cChild(ref, "f")?.textContent;
4691
+ if (formula) source.formula = formula;
4692
+ const cache = cChild(ref, "numCache") ?? cChild(ref, "strCache");
4693
+ if (cache) source.cache = parseCache(cache);
4694
+ const levels = cChild(ref, "multiLvlStrCache");
4695
+ if (levels) {
4696
+ source.levels = children(levels, "lvl", NS.c).map(parseCache);
4697
+ const count = Number(cVal(levels, "ptCount") ?? Number.NaN);
4698
+ if (Number.isInteger(count) && count >= 0) source.levelPointCount = count;
4699
+ }
4700
+ return source;
4701
+ }
4702
+ const literal = cChild(element, "numLit") ?? cChild(element, "strLit");
4703
+ if (literal) {
4704
+ source.kind = literal.localName;
4705
+ source.cache = parseCache(literal);
4706
+ }
4707
+ return source;
4708
+ }
4709
+ function parseChartText(context, tx, allowValue) {
4710
+ if (!tx) return void 0;
4711
+ const text = {};
4712
+ const rich = chartTextBody(cChild(tx, "rich"));
4713
+ if (rich) text.rich = rich;
4714
+ if (cChild(tx, "strRef")) {
4715
+ const reference = parseDataSource(tx);
4716
+ if (reference) text.reference = reference;
4717
+ }
4718
+ const value = allowValue ? cChild(tx, "v")?.textContent : void 0;
4719
+ if (value !== void 0 && value !== null) text.value = value;
4720
+ const cached2 = chartCacheValues(text.reference?.cache)[0];
4721
+ const flat = text.value ?? (rich ? rich.text : cached2 === void 0 ? void 0 : String(cached2));
4722
+ if (flat !== void 0) text.text = flat;
4723
+ reportUnmodelled(context, tx, new Set(allowValue ? ["strRef", "v"] : ["rich", "strRef"]));
4724
+ return text;
4725
+ }
4726
+ var TITLE = /* @__PURE__ */ new Set(["tx", "layout", "overlay", "spPr", "txPr", "extLst"]);
4727
+ function parseTitle(context, element) {
4728
+ const tx = parseChartText(context, cChild(element, "tx"), false);
4729
+ reportUnmodelled(context, element, TITLE);
4730
+ return assignDefined(
4731
+ {},
4732
+ {
4733
+ tx,
4734
+ text: tx?.text,
4735
+ overlay: cBool(context, element, "overlay"),
4736
+ layout: manualLayout(element),
4737
+ spPr: shapeProperties(element),
4738
+ txPr: textProperties(element),
4739
+ extLst: extensionList(element)
4740
+ }
4741
+ );
4742
+ }
4743
+ var LABEL_OPTIONS = [
4744
+ "delete",
4745
+ "showLegendKey",
4746
+ "showVal",
4747
+ "showCatName",
4748
+ "showSerName",
4749
+ "showPercent",
4750
+ "showBubbleSize",
4751
+ "separator",
4752
+ "dLblPos",
4753
+ "numFmt",
4754
+ "spPr",
4755
+ "txPr",
4756
+ "extLst"
4757
+ ];
4758
+ function labelOptions(context, element) {
4759
+ const flag2 = (local) => cBool(context, element, local);
4760
+ return assignDefined(
4761
+ {},
4762
+ {
4763
+ deleted: flag2("delete"),
4764
+ showLegendKey: flag2("showLegendKey"),
4765
+ showValue: flag2("showVal"),
4766
+ showCategoryName: flag2("showCatName"),
4767
+ showSeriesName: flag2("showSerName"),
4768
+ showPercent: flag2("showPercent"),
4769
+ showBubbleSize: flag2("showBubbleSize"),
4770
+ separator: cChild(element, "separator")?.textContent ?? void 0,
4771
+ position: cVal(element, "dLblPos"),
4772
+ numberFormat: numberFormat(element),
4773
+ spPr: shapeProperties(element),
4774
+ txPr: textProperties(element),
4775
+ extLst: extensionList(element)
4776
+ }
4777
+ );
4778
+ }
4779
+ var LABEL = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "idx", "layout", "tx"]);
4780
+ var LABELS = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "dLbl", "showLeaderLines", "leaderLines"]);
4781
+ function parseDataLabels(context, element) {
4782
+ if (!element) return void 0;
4783
+ const labels = children(element, "dLbl", NS.c).map((node) => {
4784
+ reportUnmodelled(context, node, LABEL);
4785
+ return assignDefined(labelOptions(context, node), {
4786
+ index: cNumber(context, node, "idx"),
4787
+ tx: parseChartText(context, cChild(node, "tx"), false),
4788
+ layout: manualLayout(node)
4789
+ });
4790
+ });
4791
+ reportUnmodelled(context, element, LABELS);
4792
+ return assignDefined(
4793
+ { ...labelOptions(context, element), labels },
4794
+ {
4795
+ showLeaderLines: cBool(context, element, "showLeaderLines"),
4796
+ leaderLines: chartLines(element, "leaderLines")
4797
+ }
4798
+ );
4799
+ }
4800
+
4801
+ // chart/parse-chrome.ts
4802
+ var SURFACE = /* @__PURE__ */ new Set(["thickness", "spPr", "pictureOptions", "extLst"]);
4803
+ function parseSurface(context, element) {
4804
+ if (!element) return void 0;
4805
+ reportUnmodelled(context, element, SURFACE);
4806
+ const pictureOptions = cChild(element, "pictureOptions");
4807
+ return assignDefined(
4808
+ {},
4809
+ {
4810
+ thickness: cNumber(context, element, "thickness"),
4811
+ spPr: shapeProperties(element),
4812
+ pictureOptionsXml: pictureOptions ? buildXml(pictureOptions) : void 0,
4813
+ extLst: extensionList(element)
4814
+ }
4815
+ );
4816
+ }
4817
+ var DATA_TABLE = /* @__PURE__ */ new Set([
4818
+ "showHorzBorder",
4819
+ "showVertBorder",
4820
+ "showOutline",
4821
+ "showKeys",
4822
+ "spPr",
4823
+ "txPr",
4824
+ "extLst"
4825
+ ]);
4826
+ function parseDataTable(context, element) {
4827
+ if (!element) return void 0;
4828
+ reportUnmodelled(context, element, DATA_TABLE);
4829
+ return assignDefined(
4830
+ {},
4831
+ {
4832
+ showHorizontalBorder: cBool(context, element, "showHorzBorder"),
4833
+ showVerticalBorder: cBool(context, element, "showVertBorder"),
4834
+ showOutline: cBool(context, element, "showOutline"),
4835
+ showKeys: cBool(context, element, "showKeys"),
4836
+ spPr: shapeProperties(element),
4837
+ txPr: textProperties(element),
4838
+ extLst: extensionList(element)
4839
+ }
4840
+ );
4841
+ }
4842
+ var DISPLAY_UNITS = /* @__PURE__ */ new Set(["custUnit", "builtInUnit", "dispUnitsLbl", "extLst"]);
4843
+ var DISPLAY_UNITS_LABEL = /* @__PURE__ */ new Set(["layout", "tx", "spPr", "txPr"]);
4844
+ function parseDisplayUnits(context, element) {
4845
+ if (!element) return void 0;
4846
+ reportUnmodelled(context, element, DISPLAY_UNITS);
4847
+ const labelElement = cChild(element, "dispUnitsLbl");
4848
+ let label;
4849
+ if (labelElement) {
4850
+ reportUnmodelled(context, labelElement, DISPLAY_UNITS_LABEL);
4851
+ label = assignDefined(
4852
+ {},
4853
+ {
4854
+ layout: manualLayout(labelElement),
4855
+ tx: parseChartText(context, cChild(labelElement, "tx"), false),
4856
+ spPr: shapeProperties(labelElement),
4857
+ txPr: textProperties(labelElement)
4858
+ }
4859
+ );
4860
+ }
4861
+ return assignDefined(
4862
+ {},
4863
+ {
4864
+ builtInUnit: cVal(element, "builtInUnit"),
4865
+ customUnit: cNumber(context, element, "custUnit"),
4866
+ label,
4867
+ extLst: extensionList(element)
4868
+ }
4869
+ );
4870
+ }
4871
+
4872
+ // chart/parse-series.ts
4873
+ var MARKER = /* @__PURE__ */ new Set(["symbol", "size", "spPr", "extLst"]);
4874
+ function parseMarker(context, element) {
4875
+ if (!element) return void 0;
4876
+ reportUnmodelled(context, element, MARKER);
4877
+ return assignDefined(
4878
+ {},
4879
+ {
4880
+ symbol: cVal(element, "symbol"),
4881
+ size: cNumber(context, element, "size"),
4882
+ spPr: shapeProperties(element),
4883
+ extLst: extensionList(element)
4884
+ }
4885
+ );
4886
+ }
4887
+ var POINT = /* @__PURE__ */ new Set([
4888
+ "idx",
4889
+ "invertIfNegative",
4890
+ "marker",
4891
+ "bubble3D",
4892
+ "explosion",
4893
+ "spPr",
4894
+ "extLst"
4895
+ ]);
4896
+ function parseDataPoint(context, element) {
4897
+ reportUnmodelled(context, element, POINT);
4898
+ const index = cNumber(context, element, "idx");
4899
+ return assignDefined(
4900
+ {},
4901
+ {
4902
+ index: index !== void 0 && Number.isInteger(index) && index >= 0 ? index : void 0,
4903
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
4904
+ bubble3D: cBool(context, element, "bubble3D"),
4905
+ explosion: cNumber(context, element, "explosion"),
4906
+ marker: parseMarker(context, cChild(element, "marker")),
4907
+ spPr: shapeProperties(element),
4908
+ extLst: extensionList(element)
4909
+ }
4910
+ );
4911
+ }
4912
+ var SERIES = /* @__PURE__ */ new Set([
4913
+ "idx",
4914
+ "order",
4915
+ "tx",
4916
+ "spPr",
4917
+ "invertIfNegative",
4918
+ "dPt",
4919
+ "dLbls",
4920
+ "cat",
4921
+ "val",
4922
+ "xVal",
4923
+ "yVal",
4924
+ "smooth",
4925
+ "marker",
4926
+ "explosion",
4927
+ "bubbleSize",
4928
+ "bubble3D",
4929
+ "shape",
4930
+ "extLst"
4931
+ ]);
4932
+ function parseSeries(context, element) {
4933
+ reportUnmodelled(context, element, SERIES);
4934
+ return assignDefined(
4935
+ { dataPoints: children(element, "dPt", NS.c).map((point) => parseDataPoint(context, point)) },
4936
+ {
4937
+ index: cNumber(context, element, "idx"),
4938
+ order: cNumber(context, element, "order"),
4939
+ tx: parseChartText(context, cChild(element, "tx"), true),
4940
+ spPr: shapeProperties(element),
4941
+ marker: parseMarker(context, cChild(element, "marker")),
4942
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
4943
+ categories: parseDataSource(cChild(element, "cat")),
4944
+ values: parseDataSource(cChild(element, "val")),
4945
+ xValues: parseDataSource(cChild(element, "xVal")),
4946
+ yValues: parseDataSource(cChild(element, "yVal")),
4947
+ bubbleSizes: parseDataSource(cChild(element, "bubbleSize")),
4948
+ smooth: cBool(context, element, "smooth"),
4949
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
4950
+ explosion: cNumber(context, element, "explosion"),
4951
+ bubble3D: cBool(context, element, "bubble3D"),
4952
+ shape: cVal(element, "shape"),
4953
+ extLst: extensionList(element)
4954
+ }
4955
+ );
4956
+ }
4957
+
4958
+ // chart/parse-plot.ts
4959
+ var CHART_GROUP_ELEMENTS = {
4960
+ barChart: { kind: "bar", is3D: false },
4961
+ bar3DChart: { kind: "bar", is3D: true },
4962
+ lineChart: { kind: "line", is3D: false },
4963
+ line3DChart: { kind: "line", is3D: true },
4964
+ areaChart: { kind: "area", is3D: false },
4965
+ area3DChart: { kind: "area", is3D: true },
4966
+ pieChart: { kind: "pie", is3D: false },
4967
+ pie3DChart: { kind: "pie", is3D: true },
4968
+ ofPieChart: { kind: "ofPie", is3D: false },
4969
+ doughnutChart: { kind: "doughnut", is3D: false },
4970
+ scatterChart: { kind: "scatter", is3D: false },
4971
+ radarChart: { kind: "radar", is3D: false },
4972
+ bubbleChart: { kind: "bubble", is3D: false },
4973
+ stockChart: { kind: "stock", is3D: false },
4974
+ surfaceChart: { kind: "surface", is3D: false },
4975
+ surface3DChart: { kind: "surface", is3D: true }
4976
+ };
4977
+ var AXIS_ELEMENTS = {
4978
+ catAx: "cat",
4979
+ valAx: "val",
4980
+ dateAx: "date",
4981
+ serAx: "ser"
4982
+ };
4983
+ var GROUP = /* @__PURE__ */ new Set([
4984
+ "ser",
4985
+ "axId",
4986
+ "varyColors",
4987
+ "dLbls",
4988
+ "barDir",
4989
+ "grouping",
4990
+ "gapWidth",
4991
+ "overlap",
4992
+ "gapDepth",
4993
+ "shape",
4994
+ "marker",
4995
+ "smooth",
4996
+ "dropLines",
4997
+ "hiLowLines",
4998
+ "upDownBars",
4999
+ "serLines",
5000
+ "firstSliceAng",
5001
+ "holeSize",
5002
+ "ofPieType",
5003
+ "scatterStyle",
5004
+ "radarStyle",
5005
+ "bubble3D",
5006
+ "bubbleScale",
5007
+ "showNegBubbles",
5008
+ "sizeRepresents",
5009
+ "wireframe",
5010
+ "extLst"
5011
+ ]);
5012
+ function parseGroup(context, element) {
5013
+ const { kind, is3D } = CHART_GROUP_ELEMENTS[element.localName] ?? { kind: "bar", is3D: false };
5014
+ reportUnmodelled(context, element, GROUP);
5015
+ const number = (local) => cNumber(context, element, local);
5016
+ const flag2 = (local) => cBool(context, element, local);
5017
+ const barDir = cVal(element, "barDir");
5018
+ const present = (local) => cChild(element, local) ? true : void 0;
5019
+ const linesShape = (local) => chartLines(element, local)?.spPr;
5020
+ const bars = cChild(element, "upDownBars");
5021
+ return assignDefined(
5022
+ {
5023
+ kind,
5024
+ element: element.localName,
5025
+ is3D,
5026
+ series: children(element, "ser", NS.c).map((ser) => parseSeries(context, ser)),
5027
+ axisIds: children(element, "axId", NS.c).flatMap((axis) => {
5028
+ const raw = attribute(axis, "val")?.trim();
5029
+ const id = raw ? Number(raw) : Number.NaN;
5030
+ return Number.isFinite(id) ? [id] : [];
5031
+ })
5032
+ },
5033
+ {
5034
+ varyColors: flag2("varyColors"),
5035
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
5036
+ barDirection: barDir === "bar" || barDir === "col" ? barDir : void 0,
5037
+ grouping: cVal(element, "grouping"),
5038
+ gapWidth: number("gapWidth"),
5039
+ overlap: number("overlap"),
5040
+ gapDepth: number("gapDepth"),
5041
+ shape: cVal(element, "shape"),
5042
+ marker: flag2("marker"),
5043
+ smooth: flag2("smooth"),
5044
+ dropLines: present("dropLines"),
5045
+ hiLowLines: present("hiLowLines"),
5046
+ upDownBars: present("upDownBars"),
5047
+ seriesLines: present("serLines"),
5048
+ dropLinesSpPr: linesShape("dropLines"),
5049
+ hiLowLinesSpPr: linesShape("hiLowLines"),
5050
+ seriesLinesSpPr: linesShape("serLines"),
5051
+ upDownBarsGapWidth: cNumber(context, bars, "gapWidth"),
5052
+ upBars: chartLines(bars, "upBars"),
5053
+ downBars: chartLines(bars, "downBars"),
5054
+ firstSliceAngle: number("firstSliceAng"),
5055
+ holeSize: number("holeSize"),
5056
+ ofPieType: cVal(element, "ofPieType"),
5057
+ scatterStyle: cVal(element, "scatterStyle"),
5058
+ radarStyle: cVal(element, "radarStyle"),
5059
+ bubble3D: flag2("bubble3D"),
5060
+ bubbleScale: number("bubbleScale"),
5061
+ showNegativeBubbles: flag2("showNegBubbles"),
5062
+ sizeRepresents: cVal(element, "sizeRepresents"),
5063
+ wireframe: flag2("wireframe"),
5064
+ extLst: extensionList(element)
5065
+ }
5066
+ );
5067
+ }
5068
+ var SCALING = /* @__PURE__ */ new Set(["orientation", "logBase", "min", "max", "extLst"]);
5069
+ var AXIS = /* @__PURE__ */ new Set([
5070
+ "axId",
5071
+ "scaling",
5072
+ "delete",
5073
+ "axPos",
5074
+ "majorGridlines",
5075
+ "minorGridlines",
5076
+ "title",
5077
+ "numFmt",
5078
+ "majorTickMark",
5079
+ "minorTickMark",
5080
+ "tickLblPos",
5081
+ "spPr",
5082
+ "txPr",
5083
+ "crossAx",
5084
+ "crosses",
5085
+ "crossesAt",
5086
+ "crossBetween",
5087
+ "majorUnit",
5088
+ "minorUnit",
5089
+ "auto",
5090
+ "lblAlgn",
5091
+ "lblOffset",
5092
+ "tickLblSkip",
5093
+ "tickMarkSkip",
5094
+ "noMultiLvlLbl",
5095
+ "baseTimeUnit",
5096
+ "dispUnits",
5097
+ "extLst"
5098
+ ]);
5099
+ function parseAxis(context, element, kind) {
5100
+ reportUnmodelled(context, element, AXIS);
5101
+ const number = (local) => cNumber(context, element, local);
5102
+ const scalingElement = cChild(element, "scaling");
5103
+ if (scalingElement) reportUnmodelled(context, scalingElement, SCALING);
5104
+ const scaling = assignDefined(
5105
+ {},
5106
+ {
5107
+ orientation: cVal(scalingElement, "orientation"),
5108
+ min: cNumber(context, scalingElement, "min"),
5109
+ max: cNumber(context, scalingElement, "max"),
5110
+ logBase: cNumber(context, scalingElement, "logBase")
5111
+ }
5112
+ );
5113
+ const title = cChild(element, "title");
5114
+ return assignDefined(
5115
+ {
5116
+ kind,
5117
+ scaling,
5118
+ majorGridlines: cChild(element, "majorGridlines") !== void 0,
5119
+ minorGridlines: cChild(element, "minorGridlines") !== void 0
5120
+ },
5121
+ {
5122
+ majorGridlinesSpPr: chartLines(element, "majorGridlines")?.spPr,
5123
+ minorGridlinesSpPr: chartLines(element, "minorGridlines")?.spPr,
5124
+ id: number("axId"),
5125
+ crossAxisId: number("crossAx"),
5126
+ position: cVal(element, "axPos"),
5127
+ deleted: cBool(context, element, "delete"),
5128
+ title: title ? parseTitle(context, title) : void 0,
5129
+ numberFormat: numberFormat(element),
5130
+ majorTickMark: cVal(element, "majorTickMark"),
5131
+ minorTickMark: cVal(element, "minorTickMark"),
5132
+ tickLabelPosition: cVal(element, "tickLblPos"),
5133
+ crosses: cVal(element, "crosses"),
5134
+ crossesAt: number("crossesAt"),
5135
+ crossBetween: cVal(element, "crossBetween"),
5136
+ majorUnit: number("majorUnit"),
5137
+ minorUnit: number("minorUnit"),
5138
+ auto: cBool(context, element, "auto"),
5139
+ labelAlign: cVal(element, "lblAlgn"),
5140
+ labelOffset: number("lblOffset"),
5141
+ tickLabelSkip: number("tickLblSkip"),
5142
+ tickMarkSkip: number("tickMarkSkip"),
5143
+ noMultiLevelLabels: cBool(context, element, "noMultiLvlLbl"),
5144
+ baseTimeUnit: cVal(element, "baseTimeUnit"),
5145
+ displayUnits: parseDisplayUnits(context, cChild(element, "dispUnits")),
5146
+ spPr: shapeProperties(element),
5147
+ txPr: textProperties(element),
5148
+ extLst: extensionList(element)
5149
+ }
5150
+ );
5151
+ }
5152
+ var PLOT_AREA = /* @__PURE__ */ new Set(["layout", "dTable", "spPr", "extLst"]);
5153
+ function parsePlotArea(context, element) {
5154
+ const plotArea = { groups: [], axes: [] };
5155
+ if (!element) {
5156
+ context.issues.push({
5157
+ code: "CHART_PLOT_AREA_MISSING",
5158
+ message: "The chart has no c:plotArea."
5159
+ });
5160
+ return plotArea;
5161
+ }
5162
+ const handled = new Set(PLOT_AREA);
5163
+ for (const child3 of elements(element)) {
5164
+ if (CHART_GROUP_ELEMENTS[child3.localName]) {
5165
+ plotArea.groups.push(parseGroup(context, child3));
5166
+ handled.add(child3.localName);
5167
+ }
5168
+ const axis = AXIS_ELEMENTS[child3.localName];
5169
+ if (axis) {
5170
+ plotArea.axes.push(parseAxis(context, child3, axis));
5171
+ handled.add(child3.localName);
5172
+ }
5173
+ }
5174
+ reportUnmodelled(context, element, handled);
5175
+ return assignDefined(plotArea, {
5176
+ layout: manualLayout(element),
5177
+ dataTable: parseDataTable(context, cChild(element, "dTable")),
5178
+ spPr: shapeProperties(element),
5179
+ extLst: extensionList(element)
5180
+ });
5181
+ }
5182
+
5183
+ // chart/parse-space.ts
5184
+ var LEGEND = /* @__PURE__ */ new Set(["legendPos", "legendEntry", "layout", "overlay", "spPr", "txPr", "extLst"]);
5185
+ function parseLegend(context, element) {
5186
+ reportUnmodelled(context, element, LEGEND);
5187
+ const entries = children(element, "legendEntry", NS.c).map(
5188
+ (entry2) => assignDefined(
5189
+ {},
5190
+ {
5191
+ index: cNumber(context, entry2, "idx"),
5192
+ deleted: cBool(context, entry2, "delete"),
5193
+ txPr: textProperties(entry2)
5194
+ }
5195
+ )
5196
+ );
5197
+ return assignDefined(
5198
+ { entries },
5199
+ {
5200
+ position: cVal(element, "legendPos"),
5201
+ overlay: cBool(context, element, "overlay"),
5202
+ layout: manualLayout(element),
5203
+ spPr: shapeProperties(element),
5204
+ txPr: textProperties(element),
5205
+ extLst: extensionList(element)
5206
+ }
5207
+ );
5208
+ }
5209
+ var VIEW_3D = /* @__PURE__ */ new Set(["rotX", "rotY", "depthPercent", "hPercent", "rAngAx", "perspective"]);
5210
+ function parseView3D(context, element) {
5211
+ reportUnmodelled(context, element, VIEW_3D);
5212
+ return assignDefined(
5213
+ {},
5214
+ {
5215
+ rotX: cNumber(context, element, "rotX"),
5216
+ rotY: cNumber(context, element, "rotY"),
5217
+ depthPercent: cNumber(context, element, "depthPercent"),
5218
+ heightPercent: cNumber(context, element, "hPercent"),
5219
+ rightAngleAxes: cBool(context, element, "rAngAx"),
5220
+ perspective: cNumber(context, element, "perspective")
5221
+ }
5222
+ );
5223
+ }
5224
+ function chartStyle(context, space) {
5225
+ const direct = cNumber(context, space, "style");
5226
+ if (direct !== void 0) return direct;
5227
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
5228
+ const style = cNumber(context, first(alternate, "Fallback", NS.mc), "style");
5229
+ if (style !== void 0) return style;
5230
+ }
5231
+ return void 0;
5232
+ }
5233
+ function c14Style(space) {
5234
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
5235
+ const raw = attribute(first(first(alternate, "Choice", NS.mc), "style", NS.c14, false), "val");
5236
+ const value = raw?.trim() ? Number(raw) : Number.NaN;
5237
+ if (Number.isFinite(value)) return value;
5238
+ }
5239
+ return void 0;
5240
+ }
5241
+ function namespaceDeclarations(root) {
5242
+ const out = [];
5243
+ for (const item of Array.from(root.attributes)) {
5244
+ if (item.prefix !== "xmlns" || CHART_ROOT_BINDINGS.get(item.localName) === item.value) continue;
5245
+ out.push({ prefix: item.localName, uri: item.value });
5246
+ }
5247
+ return out.length ? out : void 0;
5248
+ }
5249
+ var CHART = /* @__PURE__ */ new Set([
5250
+ "title",
5251
+ "autoTitleDeleted",
5252
+ "view3D",
5253
+ "floor",
5254
+ "sideWall",
5255
+ "backWall",
5256
+ "plotArea",
5257
+ "legend",
5258
+ "plotVisOnly",
5259
+ "dispBlanksAs",
5260
+ "showDLblsOverMax",
5261
+ "extLst"
5262
+ ]);
5263
+ var SPACE = /* @__PURE__ */ new Set([
5264
+ "date1904",
5265
+ "lang",
5266
+ "roundedCorners",
5267
+ "AlternateContent",
5268
+ "style",
5269
+ "chart",
5270
+ "spPr",
5271
+ "txPr",
5272
+ "externalData",
5273
+ "printSettings",
5274
+ "userShapes",
5275
+ "extLst"
5276
+ ]);
5277
+ function parseChartSpace(source) {
5278
+ const context = { issues: [] };
5279
+ const root = typeof source === "string" ? parseXml(source, { label: "Chart part" }).documentElement : source;
5280
+ if (root.localName !== "chartSpace" || root.namespaceURI && root.namespaceURI !== NS.c) {
5281
+ context.issues.push({
5282
+ code: "CHART_ROOT_UNEXPECTED",
5283
+ message: `The part root is {${root.namespaceURI ?? ""}}${root.localName}, not c:chartSpace (chartex parts are not modelled).`
5284
+ });
5285
+ return { chartSpace: { plotArea: { groups: [], axes: [] } }, issues: context.issues };
5286
+ }
5287
+ reportUnmodelled(context, root, SPACE);
5288
+ const chart = cChild(root, "chart");
5289
+ if (!chart)
5290
+ context.issues.push({ code: "CHART_CHART_MISSING", message: "The part has no c:chart." });
5291
+ else reportUnmodelled(context, chart, CHART);
5292
+ const title = cChild(chart, "title");
5293
+ const legend = cChild(chart, "legend");
5294
+ const view3D = cChild(chart, "view3D");
5295
+ const printSettings = cChild(root, "printSettings");
5296
+ const chartSpace = assignDefined(
5297
+ { plotArea: parsePlotArea(context, cChild(chart, "plotArea")) },
5298
+ {
5299
+ date1904: cBool(context, root, "date1904"),
5300
+ language: cVal(root, "lang"),
5301
+ roundedCorners: cBool(context, root, "roundedCorners"),
5302
+ style: chartStyle(context, root),
5303
+ c14Style: c14Style(root),
5304
+ title: title ? parseTitle(context, title) : void 0,
5305
+ autoTitleDeleted: cBool(context, chart, "autoTitleDeleted"),
5306
+ view3D: view3D ? parseView3D(context, view3D) : void 0,
5307
+ floor: parseSurface(context, cChild(chart, "floor")),
5308
+ sideWall: parseSurface(context, cChild(chart, "sideWall")),
5309
+ backWall: parseSurface(context, cChild(chart, "backWall")),
5310
+ legend: legend ? parseLegend(context, legend) : void 0,
5311
+ plotVisibleOnly: cBool(context, chart, "plotVisOnly"),
5312
+ displayBlanksAs: cVal(chart, "dispBlanksAs"),
5313
+ showDataLabelsOverMax: cBool(context, chart, "showDLblsOverMax"),
5314
+ spPr: shapeProperties(root),
5315
+ txPr: textProperties(root),
5316
+ externalDataRelId: relAttr(cChild(root, "externalData"), "id") || void 0,
5317
+ externalDataAutoUpdate: cBool(context, cChild(root, "externalData"), "autoUpdate"),
5318
+ printSettings: printSettings ? buildXml(printSettings) : void 0,
5319
+ userShapesRelId: relAttr(cChild(root, "userShapes"), "id") || void 0,
5320
+ chartExtLst: extensionList(chart),
5321
+ extLst: extensionList(root),
5322
+ namespaceDeclarations: namespaceDeclarations(root)
5323
+ }
5324
+ );
5325
+ return { chartSpace, issues: context.issues };
5326
+ }
5327
+
5328
+ // docx/breaks.ts
5329
+ function isCachedPageBreak(element) {
5330
+ return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
5331
+ (attribute2) => attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/"
5332
+ );
5333
+ }
5334
+ function hasSpecialBreak(element) {
5335
+ for (const attribute2 of Array.from(element.attributes)) {
5336
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5337
+ if (attribute2.namespaceURI !== WORD_NS) return true;
5338
+ if (attribute2.localName === "type") {
5339
+ if (attribute2.value !== "textWrapping") return true;
5340
+ } else if (attribute2.localName === "clear") {
5341
+ if (attribute2.value !== "none") return true;
5342
+ } else return true;
5343
+ }
5344
+ return false;
5345
+ }
5346
+ function classifyBreak(element) {
5347
+ const type = getW(element, "type");
5348
+ return type === "page" || type === "column" ? type : "textWrapping";
5349
+ }
5350
+ function isModeledBreak(element) {
5351
+ const kind = classifyBreak(element);
5352
+ if (kind === "textWrapping") return false;
5353
+ for (const attribute2 of Array.from(element.attributes)) {
5354
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5355
+ if (attribute2.namespaceURI !== WORD_NS || attribute2.localName !== "type") return false;
5356
+ }
5357
+ return true;
5358
+ }
5359
+
5360
+ // docx/parse-warnings.ts
5361
+ function hasAny(document, names) {
5362
+ return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
5363
+ }
5364
+ function warningsFor(document) {
5365
+ const warnings = [];
5366
+ const features = [
5367
+ [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
5368
+ [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
5369
+ [
5370
+ ["fldSimple", "instrText", "fldChar"],
5371
+ "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."
5372
+ ],
5373
+ [
5374
+ ["moveFrom", "moveTo"],
5375
+ "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
5376
+ ],
5377
+ [
5378
+ ["rPrChange"],
5379
+ "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."
5380
+ ],
5381
+ [
5382
+ ["pPrChange"],
5383
+ "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."
5384
+ ],
5385
+ [
5386
+ ["tblPrChange", "trPrChange", "tcPrChange"],
5387
+ "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
5388
+ ]
5389
+ ];
5390
+ for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
5391
+ if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
5392
+ (el3) => /HYPERLINK/i.test(textContent(el3))
5393
+ ))
5394
+ warnings.push(
5395
+ "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
5396
+ );
5397
+ const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
5398
+ (br) => hasSpecialBreak(br) && !isModeledBreak(br)
5399
+ ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
5400
+ (cr) => cr.attributes.length > 0
5401
+ );
5402
+ if (specialBreak)
5403
+ warnings.push(
5404
+ "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."
5405
+ );
5406
+ return warnings;
5407
+ }
5408
+ function forEachParagraph2(blocks, visit) {
5409
+ for (const block of blocks) {
5410
+ if (block.type === "paragraph") visit(block);
5411
+ else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
5412
+ }
5413
+ }
5414
+ function imageAndBookmarkWarnings(blocks) {
5415
+ const warnings = [];
5416
+ let hasPicture = false;
5417
+ let hasAnchored = false;
5418
+ const unsupportedKinds = /* @__PURE__ */ new Set();
5419
+ let hasBookmarks = false;
5420
+ forEachParagraph2(blocks, (paragraph) => {
5421
+ if (paragraph.bookmarks?.length) hasBookmarks = true;
5422
+ for (const run of paragraph.runs) {
5423
+ if (!run.image) continue;
5424
+ if (run.image.unsupported) {
5425
+ if (run.image.diagram?.rendering !== "cached-drawing")
5426
+ unsupportedKinds.add(run.image.unsupported);
5427
+ } else hasPicture = true;
5428
+ if (run.image.anchored) hasAnchored = true;
5429
+ }
5430
+ });
5431
+ if (hasPicture)
5432
+ warnings.push(
5433
+ "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."
5434
+ );
5435
+ if (hasAnchored)
5436
+ warnings.push(
5437
+ "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."
5438
+ );
5439
+ if (unsupportedKinds.size)
5440
+ warnings.push(
5441
+ `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
5442
+ );
5443
+ if (hasBookmarks)
5444
+ warnings.push(
5445
+ "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
5446
+ );
5447
+ return warnings;
5448
+ }
5449
+
5450
+ // docx/chart.ts
5451
+ var CHART_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
5452
+ var CHART_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart";
5453
+ var PACKAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
5454
+ 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.";
5455
+ function parseChartGraphic(graphicData, docPr, rels, isAnchor) {
5456
+ const element = Array.from(graphicData.childNodes).find(
5457
+ (node) => isElement(node) && node.localName === "chart"
5458
+ );
5459
+ const relId = getR(element, "id") || void 0;
5460
+ const issues = [];
5461
+ let partName;
5462
+ const rel = relId ? rels.get(relId) : void 0;
5463
+ if (!relId)
5464
+ issues.push({
5465
+ code: "CHART_RELATIONSHIP_MISSING",
5466
+ message: "The graphic has no c:chart/@r:id."
5467
+ });
5468
+ else if (!rel || rel.mode === "External")
5469
+ issues.push({
5470
+ code: "CHART_RELATIONSHIP_UNRESOLVED",
5471
+ message: `Chart relationship ${relId} does not point at a part in this package.`
5472
+ });
5473
+ else {
5474
+ if (rel.type !== CHART_RELATIONSHIP_TYPE)
5475
+ issues.push({
5476
+ code: "CHART_RELATIONSHIP_TYPE",
5477
+ message: `Chart relationship ${relId} has type ${rel.type}, expected ${CHART_RELATIONSHIP_TYPE}.`
5478
+ });
5479
+ partName = resolvePartPath("word/document.xml", rel.target);
5480
+ }
5481
+ const name = docPr?.getAttribute("name") || void 0;
5482
+ const id = docPr?.getAttribute("id") || void 0;
5483
+ return {
5484
+ placement: isAnchor ? "anchor" : "inline",
5485
+ ...name ? { name } : {},
5486
+ ...id ? { id } : {},
5487
+ ...relId ? { relId } : {},
5488
+ ...partName ? { partName } : {},
5489
+ notice: CHART_NOTICE,
5490
+ issues
5491
+ };
5492
+ }
5493
+ async function resolveChartPart(chart, readText) {
5494
+ if (!chart.partName) return;
5495
+ try {
5496
+ const xml = await readText(chart.partName);
5497
+ if (xml === void 0) {
5498
+ chart.issues.push({
5499
+ code: "CHART_PART_MISSING",
5500
+ message: `The chart part ${chart.partName} is not in the package.`
5501
+ });
5502
+ return;
5503
+ }
5504
+ const root = parseXml(xml, { label: "Chart part" }).documentElement;
5505
+ const { chartSpace, issues } = parseChartSpace(root);
5506
+ chart.chartSpace = chartSpace;
5507
+ chart.issues.push(...issues);
5508
+ const title = chartSpace.autoTitleDeleted ? void 0 : chartSpace.title?.text;
5509
+ if (title) chart.title = title;
5510
+ if (chartSpace.plotArea.groups.length) {
5511
+ const formatting = readChartFormatting(root);
5512
+ if (formatting) chart.formatting = formatting;
5513
+ }
5514
+ const rels = parseRelationships(await readText(relationshipsPartFor(chart.partName)));
5515
+ const dataRelId = chartSpace.externalDataRelId;
5516
+ const dataRel = dataRelId ? rels.get(dataRelId) : void 0;
5517
+ if (dataRel && dataRel.mode !== "External" && dataRel.type === PACKAGE_RELATIONSHIP_TYPE)
5518
+ chart.workbookPartName = resolvePartPath(chart.partName, dataRel.target);
5519
+ const colorsRel = [...rels.values()].find(
5520
+ (rel) => rel.mode !== "External" && rel.type.endsWith("/chartColorStyle")
5521
+ );
5522
+ const colorsXml = colorsRel && await readText(resolvePartPath(chart.partName, colorsRel.target));
5523
+ const palette = colorsXml ? chartColorStyleId(colorsXml) : void 0;
5524
+ if (palette !== void 0) chart.colorPalette = palette;
5525
+ } catch (error) {
5526
+ chart.issues.push({
5527
+ code: "CHART_PART_UNREADABLE",
5528
+ message: `The chart part ${chart.partName} could not be read: ${error instanceof Error ? error.message : String(error)}`
5529
+ });
5530
+ }
5531
+ }
5532
+ function chartsIn(blocks) {
5533
+ const charts = [];
5534
+ forEachParagraph2(blocks, (paragraph) => {
5535
+ for (const run of paragraph.runs) if (run.image?.chart) charts.push(run.image.chart);
5536
+ });
5537
+ return charts;
5538
+ }
5539
+ async function resolveDocumentCharts(blocks, readText) {
5540
+ for (const chart of chartsIn(blocks)) await resolveChartPart(chart, readText);
5541
+ }
5542
+
5543
+ // docx/drawing.ts
5544
+ var WP_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
5545
+ var A_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/main";
5546
+ var VML_NS2 = "urn:schemas-microsoft-com:vml";
5547
+ var WPS_NS2 = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape";
5548
+ var W_NS2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
5549
+ var PICTURE_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/picture";
5550
+ function firstNS(parent, ns, local) {
5551
+ if (!parent) return void 0;
5552
+ for (const child3 of Array.from(parent.childNodes))
5553
+ if (isElement(child3) && child3.namespaceURI === ns && child3.localName === local) return child3;
5554
+ return void 0;
5555
+ }
5556
+ function descendantNS(parent, ns, local) {
5557
+ if (!parent) return void 0;
5558
+ const stack = [parent];
5559
+ while (stack.length) {
5560
+ const node = stack.shift();
5561
+ for (const child3 of Array.from(node.childNodes)) {
5562
+ if (!isElement(child3)) continue;
5563
+ if (child3.namespaceURI === ns && child3.localName === local) return child3;
5564
+ stack.push(child3);
5565
+ }
5566
+ }
5567
+ return void 0;
5568
+ }
5569
+ function emuToPx(value) {
5570
+ const n = value ? Number(value) : NaN;
5571
+ return Number.isFinite(n) ? Math.round(n / EMU_PER_PIXEL) : 0;
5572
+ }
5573
+ function guessContentType(partName) {
5574
+ const extension = partName.split(".").pop()?.toLowerCase();
5575
+ const known = {
5576
+ png: "image/png",
5577
+ jpg: "image/jpeg",
5578
+ jpeg: "image/jpeg",
5579
+ gif: "image/gif",
5580
+ bmp: "image/bmp",
5581
+ svg: "image/svg+xml",
5582
+ tif: "image/tiff",
5583
+ tiff: "image/tiff",
5584
+ emf: "image/x-emf",
5585
+ wmf: "image/x-wmf"
5586
+ };
5587
+ return extension && known[extension] || "application/octet-stream";
5588
+ }
5589
+ function resolvePicture(relId, context) {
5590
+ const rel = context.rels.get(relId);
5591
+ if (!rel || rel.mode === "External") return void 0;
5592
+ const partName = resolveInternalTarget(rel.target);
5593
+ if (!context.mediaParts.has(partName)) return void 0;
5594
+ return {
5595
+ relId,
5596
+ partName,
4370
5597
  contentType: contentTypeForPart(context.contentTypes, partName) ?? guessContentType(partName)
4371
5598
  };
4372
5599
  }
@@ -4428,6 +5655,7 @@ function parseModernDrawing(node, context) {
4428
5655
  ...svg ? { svgPartName: svg.partName } : {}
4429
5656
  };
4430
5657
  const diagram = uri === DIAGRAM_GRAPHIC_URI && graphicData ? parseDiagramGraphic(graphicData, extent, docPr, context.rels, Boolean(anchored)) : void 0;
5658
+ const chart = uri === CHART_GRAPHIC_URI && graphicData ? parseChartGraphic(graphicData, docPr, context.rels, Boolean(anchored)) : void 0;
4431
5659
  const textBox = uri.includes("wordprocessingShape") ? textBoxParagraphs(graphicData) : void 0;
4432
5660
  return {
4433
5661
  relId: relId ?? "",
@@ -4438,6 +5666,7 @@ function parseModernDrawing(node, context) {
4438
5666
  ...definedProps({ altText, title, anchored }),
4439
5667
  unsupported: textBox ? "Text box" : unsupportedKindLabel(uri),
4440
5668
  ...diagram ? { diagram } : {},
5669
+ ...chart ? { chart } : {},
4441
5670
  ...diagram && placement ? { placement } : {},
4442
5671
  ...textBox ? { textBoxText: textBox } : {},
4443
5672
  ...textBox && isSimpleTextBox(graphicData, Boolean(anchored)) ? { textBoxEditable: true, textBoxBorder: textBoxHasBorder(graphicData) } : {}
@@ -4517,8 +5746,8 @@ function findDrawingChild(run) {
4517
5746
  if (isElement(child3) && (named2(child3, "drawing") || named2(child3, "pict"))) return child3;
4518
5747
  return void 0;
4519
5748
  }
4520
- function sameUnderlyingImage(a, b) {
4521
- return Boolean(a.partName) && a.relId === b.relId && a.partName === b.partName;
5749
+ function sameUnderlyingImage(a2, b) {
5750
+ return Boolean(a2.partName) && a2.relId === b.relId && a2.partName === b.partName;
4522
5751
  }
4523
5752
  function walk(root, visit) {
4524
5753
  const stack = [root];
@@ -4685,6 +5914,23 @@ function parseRunPropertiesSnapshot(xml) {
4685
5914
  return parsePropertiesSnapshot(xml, "rPr");
4686
5915
  }
4687
5916
 
5917
+ // docx/field-flags.ts
5918
+ function parseFieldFlags(element) {
5919
+ const locked = onOffAttribute(element, "fldLock");
5920
+ const dirty = onOffAttribute(element, "dirty");
5921
+ if (locked === void 0 && dirty === void 0) return void 0;
5922
+ return { ...locked !== void 0 && { locked }, ...dirty !== void 0 && { dirty } };
5923
+ }
5924
+ function writeFieldFlags(element, flags) {
5925
+ for (const [name, value] of [
5926
+ ["fldLock", flags?.locked],
5927
+ ["dirty", flags?.dirty]
5928
+ ]) {
5929
+ if (value === void 0) element.removeAttributeNS(WORD_NS, name);
5930
+ else element.setAttributeNS(WORD_NS, `w:${name}`, value ? "true" : "false");
5931
+ }
5932
+ }
5933
+
4688
5934
  // docx/write-run.ts
4689
5935
  function setAttribute6(element, local, value) {
4690
5936
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
@@ -4711,17 +5957,17 @@ function setBooleanAttribute(doc, props, local, value) {
4711
5957
  }
4712
5958
  setAttribute6(element, "val", value ? "1" : "0");
4713
5959
  }
4714
- function setLanguageAttribute(doc, props, attribute, value) {
5960
+ function setLanguageAttribute(doc, props, attribute2, value) {
4715
5961
  let language = first2(props, "lang");
4716
5962
  if (value === void 0 || value === "") {
4717
5963
  if (!language) return;
4718
- language.removeAttributeNS(WORD_NS, attribute);
5964
+ language.removeAttributeNS(WORD_NS, attribute2);
4719
5965
  } else {
4720
5966
  if (!language) {
4721
5967
  language = makeW(doc, "lang");
4722
5968
  props.appendChild(language);
4723
5969
  }
4724
- setAttribute6(language, attribute, value);
5970
+ setAttribute6(language, attribute2, value);
4725
5971
  }
4726
5972
  if (language && !language.attributes.length && !language.childNodes.length)
4727
5973
  props.removeChild(language);
@@ -4821,8 +6067,8 @@ function setRunProperties(doc, runNode, run, base) {
4821
6067
  };
4822
6068
  for (const script of ["ascii", "hAnsi", "eastAsia", "cs"]) {
4823
6069
  const role = run.fontTheme?.[script];
4824
- const [attribute, suffix] = themeAttribute[script];
4825
- if (role) setAttribute6(fonts, attribute, `${role}${suffix}`);
6070
+ const [attribute2, suffix] = themeAttribute[script];
6071
+ if (role) setAttribute6(fonts, attribute2, `${role}${suffix}`);
4826
6072
  }
4827
6073
  props.appendChild(fonts);
4828
6074
  }
@@ -4870,6 +6116,7 @@ function createRun(doc, run, base, old, allocator) {
4870
6116
  if (run.fieldChar) {
4871
6117
  const marker = makeW(doc, "fldChar");
4872
6118
  setAttribute6(marker, "fldCharType", run.fieldChar);
6119
+ writeFieldFlags(marker, run.fieldFlags);
4873
6120
  node.appendChild(marker);
4874
6121
  return node;
4875
6122
  }
@@ -4909,8 +6156,8 @@ function createRun(doc, run, base, old, allocator) {
4909
6156
  }
4910
6157
 
4911
6158
  // docx/inline-source.ts
4912
- function samePictureSource(a, b) {
4913
- return !!a?.partName && a.partName === b?.partName && a.relId === b?.relId;
6159
+ function samePictureSource(a2, b) {
6160
+ return !!a2?.partName && a2.partName === b?.partName && a2.relId === b?.relId;
4914
6161
  }
4915
6162
  function inlineSourceLookup(runs, base) {
4916
6163
  const usedPictures = /* @__PURE__ */ new Set();
@@ -4950,6 +6197,11 @@ function takeSimpleFieldCommentEdges(doc, runs, start, end, opens, closes) {
4950
6197
  after: take(closes, end - 1).reverse().flatMap((edge) => rangeEndNodes(doc, edge))
4951
6198
  };
4952
6199
  }
6200
+
6201
+ // docx/field-lock.ts
6202
+ function sameFieldFlags(a2, b) {
6203
+ return a2?.locked === b?.locked && a2?.dirty === b?.dirty;
6204
+ }
4953
6205
  var MATH_NAMESPACES = /* @__PURE__ */ new Set([
4954
6206
  "http://schemas.openxmlformats.org/officeDocument/2006/math",
4955
6207
  "http://purl.oclc.org/ooxml/officeDocument/math"
@@ -4975,38 +6227,6 @@ function preserveEquation(run, base, old) {
4975
6227
  return old.cloneNode(true);
4976
6228
  }
4977
6229
 
4978
- // docx/breaks.ts
4979
- function isCachedPageBreak(element) {
4980
- return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
4981
- (attribute) => attribute.namespaceURI === "http://www.w3.org/2000/xmlns/"
4982
- );
4983
- }
4984
- function hasSpecialBreak(element) {
4985
- for (const attribute of Array.from(element.attributes)) {
4986
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
4987
- if (attribute.namespaceURI !== WORD_NS) return true;
4988
- if (attribute.localName === "type") {
4989
- if (attribute.value !== "textWrapping") return true;
4990
- } else if (attribute.localName === "clear") {
4991
- if (attribute.value !== "none") return true;
4992
- } else return true;
4993
- }
4994
- return false;
4995
- }
4996
- function classifyBreak(element) {
4997
- const type = getW(element, "type");
4998
- return type === "page" || type === "column" ? type : "textWrapping";
4999
- }
5000
- function isModeledBreak(element) {
5001
- const kind = classifyBreak(element);
5002
- if (kind === "textWrapping") return false;
5003
- for (const attribute of Array.from(element.attributes)) {
5004
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5005
- if (attribute.namespaceURI !== WORD_NS || attribute.localName !== "type") return false;
5006
- }
5007
- return true;
5008
- }
5009
-
5010
6230
  // docx/parse-revisions.ts
5011
6231
  var REVISION_WRAPPERS = {
5012
6232
  ins: "insert",
@@ -5028,7 +6248,7 @@ function trackMoveRange(item, moves) {
5028
6248
  const open = moves[range.kind];
5029
6249
  if (range.start) open.push({ name: getW(item, "name") ?? id, id });
5030
6250
  else {
5031
- const index = open.findIndex((entry) => entry.id === id);
6251
+ const index = open.findIndex((entry2) => entry2.id === id);
5032
6252
  if (index >= 0) open.splice(index, 1);
5033
6253
  }
5034
6254
  return true;
@@ -5201,10 +6421,10 @@ function replaceableInlineChildren(paragraph) {
5201
6421
  (child3) => isElement(child3) && (isEquationElement(child3) || named2(child3, "r") || named2(child3, "hyperlink") || named2(child3, "fldSimple") || isRevisionWrapperElement(child3) || isCommentAnchorElement(child3))
5202
6422
  );
5203
6423
  }
5204
- function sameLink(a, b) {
5205
- if (!a && !b) return true;
5206
- if (!a || !b) return false;
5207
- return a.href === b.href && a.anchor === b.anchor && a.tooltip === b.tooltip;
6424
+ function sameLink(a2, b) {
6425
+ if (!a2 && !b) return true;
6426
+ if (!a2 || !b) return false;
6427
+ return a2.href === b.href && a2.anchor === b.anchor && a2.tooltip === b.tooltip;
5208
6428
  }
5209
6429
  function setW6(element, local, value) {
5210
6430
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
@@ -5274,6 +6494,7 @@ function buildInlineContent(doc, runs, base, slots, allocator, ranges) {
5274
6494
  container = makeW(doc, "fldSimple");
5275
6495
  setW6(container, "instr", ` ${group.instr} `);
5276
6496
  }
6497
+ if (group.kind === "simpleField") writeFieldFlags(container, runAt(start).fieldFlags);
5277
6498
  const edges = group.kind === "simpleField" ? takeSimpleFieldCommentEdges(doc, runs, start, index, opens, closes) : { before: [], after: [] };
5278
6499
  for (let item = start; item < index; item++)
5279
6500
  for (const node of nodesFor(item)) container.appendChild(node);
@@ -5284,13 +6505,18 @@ function buildInlineContent(doc, runs, base, slots, allocator, ranges) {
5284
6505
  function containerGroup(run) {
5285
6506
  if (run.link) return { kind: "link", link: run.link };
5286
6507
  if (run.field?.simple)
5287
- return { kind: "simpleField", instr: run.field.instr, instanceId: run.fieldInstanceId };
6508
+ return {
6509
+ kind: "simpleField",
6510
+ instr: run.field.instr,
6511
+ instanceId: run.fieldInstanceId,
6512
+ fieldFlags: run.fieldFlags
6513
+ };
5288
6514
  return void 0;
5289
6515
  }
5290
- function sameGroup(a, b) {
5291
- if (!a || !b) return a === b;
5292
- if (a.kind === "link" && b.kind === "link") return sameLink(a.link, b.link);
5293
- return a.kind === "simpleField" && b.kind === "simpleField" && a.instr === b.instr && a.instanceId === b.instanceId;
6516
+ function sameGroup(a2, b) {
6517
+ if (!a2 || !b) return a2 === b;
6518
+ if (a2.kind === "link" && b.kind === "link") return sameLink(a2.link, b.link);
6519
+ return a2.kind === "simpleField" && b.kind === "simpleField" && a2.instr === b.instr && a2.instanceId === b.instanceId && sameFieldFlags(a2.fieldFlags, b.fieldFlags);
5294
6520
  }
5295
6521
 
5296
6522
  // docx/paragraph-properties.ts
@@ -5522,8 +6748,8 @@ var IMAGE_RELATIONSHIP_TYPE = RELATIONSHIP_TYPES.image;
5522
6748
  function scanUsedRelationshipIds(doc) {
5523
6749
  const used = /* @__PURE__ */ new Set();
5524
6750
  const visit = (node) => {
5525
- for (const attribute of Array.from(node.attributes))
5526
- if (attribute.namespaceURI === REL_NS) used.add(attribute.value);
6751
+ for (const attribute2 of Array.from(node.attributes))
6752
+ if (attribute2.namespaceURI === REL_NS) used.add(attribute2.value);
5527
6753
  for (const child3 of Array.from(node.childNodes)) if (isElement(child3)) visit(child3);
5528
6754
  };
5529
6755
  if (doc.documentElement) visit(doc.documentElement);
@@ -5761,9 +6987,9 @@ function isXsdDateTime(value) {
5761
6987
  return !zone || Number(zone[1]) <= 14 && Number(zone[2]) <= 59;
5762
6988
  }
5763
6989
  var Checker = class _Checker {
5764
- constructor(issues, path) {
6990
+ constructor(issues, path2) {
5765
6991
  this.issues = issues;
5766
- this.path = path;
6992
+ this.path = path2;
5767
6993
  }
5768
6994
  issues;
5769
6995
  path;
@@ -5809,78 +7035,78 @@ var Checker = class _Checker {
5809
7035
 
5810
7036
  // docx/validate-paragraph.ts
5811
7037
  var isFraction = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
5812
- function validateThemeReference(c, field, value) {
7038
+ function validateThemeReference(c2, field, value) {
5813
7039
  if (value === void 0) return;
5814
- const at = c.at(`.${field}`);
7040
+ const at = c2.at(`.${field}`);
5815
7041
  at.theme("token", value.token);
5816
7042
  at.check("tint", value.tint, isFraction, "must be a fraction between 0 and 1");
5817
7043
  at.check("shade", value.shade, isFraction, "must be a fraction between 0 and 1");
5818
7044
  }
5819
- function validateRevision(c, field, revision) {
7045
+ function validateRevision(c2, field, revision) {
5820
7046
  if (revision === void 0) return;
5821
- c.at(`.${field}`).dateTime("date", revision.date);
7047
+ c2.at(`.${field}`).dateTime("date", revision.date);
5822
7048
  }
5823
- function validateFontSize(c, value) {
5824
- c.check(
7049
+ function validateFontSize(c2, value) {
7050
+ c2.check(
5825
7051
  "fontSize",
5826
7052
  value,
5827
7053
  (v) => typeof v === "number" && Number.isFinite(v) && Math.round(v * 2) >= 0,
5828
7054
  "must be a finite, non-negative point size that converts to whole half-points (ST_HpsMeasure)"
5829
7055
  );
5830
7056
  }
5831
- function validateRun(c, run) {
5832
- c.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
5833
- validateFontSize(c, run.fontSize);
5834
- c.check(
7057
+ function validateRun(c2, run) {
7058
+ c2.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
7059
+ validateFontSize(c2, run.fontSize);
7060
+ c2.check(
5835
7061
  "textScalePercent",
5836
7062
  run.textScalePercent,
5837
7063
  (v) => Number.isSafeInteger(v) && v >= 0 && v <= 600,
5838
7064
  "must be a whole percentage from 0 through 600 (ST_TextScale)"
5839
7065
  );
5840
- c.check(
7066
+ c2.check(
5841
7067
  "kerningHalfPoints",
5842
7068
  run.kerningHalfPoints,
5843
7069
  (v) => Number.isSafeInteger(v) && v >= 0,
5844
7070
  "must be a nonnegative whole number of half-points (ST_HpsMeasure)"
5845
7071
  );
5846
- c.check(
7072
+ c2.check(
5847
7073
  "positionHalfPoints",
5848
7074
  run.positionHalfPoints,
5849
7075
  Number.isSafeInteger,
5850
7076
  "must be a signed whole number of half-points (ST_SignedHpsMeasure)"
5851
7077
  );
5852
- c.hex("color", run.color);
5853
- c.hex("shadingFill", run.shadingFill);
5854
- c.hex("underlineColor", run.underlineColor);
5855
- validateThemeReference(c, "colorTheme", run.colorTheme);
5856
- validateThemeReference(c, "shadingThemeFill", run.shadingThemeFill);
5857
- c.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
7078
+ c2.hex("color", run.color);
7079
+ c2.hex("shadingFill", run.shadingFill);
7080
+ c2.hex("underlineColor", run.underlineColor);
7081
+ validateThemeReference(c2, "colorTheme", run.colorTheme);
7082
+ validateThemeReference(c2, "shadingThemeFill", run.shadingThemeFill);
7083
+ c2.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
5858
7084
  if (run.highlight !== void 0 && !isStHighlightColor(run.highlight))
5859
- c.fail(
7085
+ c2.fail(
5860
7086
  "highlight",
5861
7087
  run.highlight,
5862
7088
  `Unsupported Word highlight token: ${String(run.highlight)}`
5863
7089
  );
5864
- c.enum("break", run.break, isStBrType, "ST_BrType");
5865
- c.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
5866
- c.check(
7090
+ c2.enum("break", run.break, isStBrType, "ST_BrType");
7091
+ c2.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
7092
+ c2.check(
5867
7093
  "characterSpacingTwips",
5868
7094
  run.characterSpacingTwips,
5869
7095
  (v) => typeof v === "number" && Number.isFinite(v),
5870
7096
  "must be a finite number of twips (ST_SignedTwipsMeasure)"
5871
7097
  );
5872
- c.language("language", run.language);
5873
- c.language("eastAsiaLanguage", run.eastAsiaLanguage);
5874
- c.language("bidiLanguage", run.bidiLanguage);
5875
- c.check(
7098
+ c2.language("language", run.language);
7099
+ c2.language("eastAsiaLanguage", run.eastAsiaLanguage);
7100
+ c2.language("bidiLanguage", run.bidiLanguage);
7101
+ c2.check(
5876
7102
  "verticalAlign",
5877
7103
  run.verticalAlign,
5878
7104
  isStVerticalAlignRun,
5879
7105
  'must be "baseline", "superscript" or "subscript"'
5880
7106
  );
5881
- validateRevision(c, "revision", run.revision);
7107
+ validateRevision(c2, "revision", run.revision);
5882
7108
  if (run.image) {
5883
- const image = c.at(".image");
7109
+ const image = c2.at(".image");
5884
7110
  for (const key of ["widthPx", "heightPx"])
5885
7111
  image.check(
5886
7112
  key,
@@ -5890,14 +7116,14 @@ function validateRun(c, run) {
5890
7116
  );
5891
7117
  }
5892
7118
  }
5893
- function validateTabStop(c, stop) {
5894
- c.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
5895
- c.enum("align", stop.align, isStTabJc, "ST_TabJc");
5896
- c.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
7119
+ function validateTabStop(c2, stop) {
7120
+ c2.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
7121
+ c2.enum("align", stop.align, isStTabJc, "ST_TabJc");
7122
+ c2.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
5897
7123
  }
5898
- function validateParagraph(c, paragraph) {
7124
+ function validateParagraph(c2, paragraph) {
5899
7125
  if (paragraph.dropCap) {
5900
- const at = c.at(".dropCap");
7126
+ const at = c2.at(".dropCap");
5901
7127
  at.check(
5902
7128
  "style",
5903
7129
  paragraph.dropCap.style,
@@ -5917,14 +7143,14 @@ function validateParagraph(c, paragraph) {
5917
7143
  "must be a nonnegative whole number of twips"
5918
7144
  );
5919
7145
  }
5920
- c.check(
7146
+ c2.check(
5921
7147
  "align",
5922
7148
  paragraph.align,
5923
7149
  (v) => v === "left" || v === "center" || v === "right" || v === "justify",
5924
7150
  'must be "left", "center", "right" or "justify"'
5925
7151
  );
5926
- c.enum("justification", paragraph.justification, isStJc, "ST_Jc");
5927
- c.check(
7152
+ c2.enum("justification", paragraph.justification, isStJc, "ST_Jc");
7153
+ c2.check(
5928
7154
  "direction",
5929
7155
  paragraph.direction,
5930
7156
  (v) => v === "ltr" || v === "rtl",
@@ -5936,7 +7162,7 @@ function validateParagraph(c, paragraph) {
5936
7162
  "firstLineTwips",
5937
7163
  "hangingTwips"
5938
7164
  ])
5939
- c.unsigned(key, paragraph[key], "ST_TwipsMeasure");
7165
+ c2.unsigned(key, paragraph[key], "ST_TwipsMeasure");
5940
7166
  for (const key of [
5941
7167
  "lineSpacingTwips",
5942
7168
  "indentLeftTwips",
@@ -5944,87 +7170,87 @@ function validateParagraph(c, paragraph) {
5944
7170
  "indentStartTwips",
5945
7171
  "indentEndTwips"
5946
7172
  ])
5947
- c.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
5948
- c.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
7173
+ c2.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
7174
+ c2.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
5949
7175
  if (paragraph.numbering) {
5950
- const numbering = c.at(".numbering");
7176
+ const numbering = c2.at(".numbering");
5951
7177
  numbering.unsigned("numId", paragraph.numbering.numId, "ST_DecimalNumber");
5952
7178
  numbering.unsigned("level", paragraph.numbering.level, "ST_DecimalNumber");
5953
7179
  }
5954
- paragraph.tabStops?.forEach((stop, index) => validateTabStop(c.at(`.tabStops[${index}]`), stop));
5955
- validateRevision(c, "markRevision", paragraph.markRevision);
5956
- paragraph.runs.forEach((run, index) => validateRun(c.at(`.runs[${index}]`), run));
7180
+ paragraph.tabStops?.forEach((stop, index) => validateTabStop(c2.at(`.tabStops[${index}]`), stop));
7181
+ validateRevision(c2, "markRevision", paragraph.markRevision);
7182
+ paragraph.runs.forEach((run, index) => validateRun(c2.at(`.runs[${index}]`), run));
5957
7183
  }
5958
7184
 
5959
7185
  // docx/validate-structure.ts
5960
- function validateBorderSide(c, side) {
7186
+ function validateBorderSide(c2, side) {
5961
7187
  if (!side) return;
5962
- c.enum("style", side.style, isStBorder, "ST_Border");
5963
- c.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
5964
- c.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
5965
- c.hex("color", side.color);
5966
- c.theme("themeColor", side.themeColor);
7188
+ c2.enum("style", side.style, isStBorder, "ST_Border");
7189
+ c2.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
7190
+ c2.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
7191
+ c2.hex("color", side.color);
7192
+ c2.theme("themeColor", side.themeColor);
5967
7193
  }
5968
- function validateBorders(c, borders) {
7194
+ function validateBorders(c2, borders) {
5969
7195
  if (!borders) return;
5970
7196
  for (const side of ["top", "left", "bottom", "right", "insideH", "insideV"])
5971
- validateBorderSide(c.at(`.${side}`), borders[side]);
7197
+ validateBorderSide(c2.at(`.${side}`), borders[side]);
5972
7198
  }
5973
- function validateCell(c, cell) {
5974
- c.check(
7199
+ function validateCell(c2, cell) {
7200
+ c2.check(
5975
7201
  "gridSpan",
5976
7202
  cell.gridSpan,
5977
7203
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v >= 1,
5978
7204
  "must be a positive integer (CT_DecimalNumber)"
5979
7205
  );
5980
- c.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
5981
- c.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
5982
- c.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
5983
- c.hex("shadingFill", cell.shadingFill);
5984
- validateThemeReference(c, "shadingThemeFill", cell.shadingThemeFill);
5985
- validateBorders(c.at(".borders"), cell.borders);
7206
+ c2.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
7207
+ c2.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
7208
+ c2.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
7209
+ c2.hex("shadingFill", cell.shadingFill);
7210
+ validateThemeReference(c2, "shadingThemeFill", cell.shadingThemeFill);
7211
+ validateBorders(c2.at(".borders"), cell.borders);
5986
7212
  if (cell.margins)
5987
7213
  for (const side of ["top", "bottom", "left", "right"])
5988
- c.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
7214
+ c2.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
5989
7215
  }
5990
- function validateTable(c, table) {
5991
- c.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
5992
- c.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
5993
- c.check(
7216
+ function validateTable(c2, table) {
7217
+ c2.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
7218
+ c2.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
7219
+ c2.check(
5994
7220
  "alignment",
5995
7221
  table.alignment,
5996
7222
  (v) => v === "left" || v === "center" || v === "right",
5997
7223
  'must be "left", "center" or "right"'
5998
7224
  );
5999
- c.enum("justification", table.justification, isStJcTable, "ST_JcTable");
7225
+ c2.enum("justification", table.justification, isStJcTable, "ST_JcTable");
6000
7226
  table.grid?.forEach(
6001
- (width, index) => c.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
7227
+ (width, index) => c2.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
6002
7228
  );
6003
- validateBorders(c.at(".borders"), table.borders);
7229
+ validateBorders(c2.at(".borders"), table.borders);
6004
7230
  if (table.cellMargins)
6005
7231
  for (const side of ["top", "bottom", "left", "right"])
6006
- c.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
7232
+ c2.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
6007
7233
  table.rowProperties?.forEach((row, index) => {
6008
7234
  if (row)
6009
- c.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
7235
+ c2.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
6010
7236
  });
6011
7237
  table.rows.forEach(
6012
- (row, r) => row.forEach((cell, k) => validateCell(c.at(`.rows[${r}][${k}]`), cell))
7238
+ (row, r) => row.forEach((cell, k) => validateCell(c2.at(`.rows[${r}][${k}]`), cell))
6013
7239
  );
6014
7240
  }
6015
- function validateSection(c, section) {
6016
- c.enum("type", section.type, isStSectionMark, "ST_SectionMark");
6017
- c.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
6018
- c.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
7241
+ function validateSection(c2, section) {
7242
+ c2.enum("type", section.type, isStSectionMark, "ST_SectionMark");
7243
+ c2.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
7244
+ c2.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
6019
7245
  for (const key of ["pageWidthTwips", "pageHeightTwips"])
6020
- c.check(
7246
+ c2.check(
6021
7247
  key,
6022
7248
  section[key],
6023
7249
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v > 0,
6024
7250
  "must be a positive integer number of twips (CT_PageSz)"
6025
7251
  );
6026
7252
  for (const key of ["marginTopTwips", "marginBottomTwips"])
6027
- c.signed(key, section[key], "ST_SignedTwipsMeasure");
7253
+ c2.signed(key, section[key], "ST_SignedTwipsMeasure");
6028
7254
  for (const key of [
6029
7255
  "marginLeftTwips",
6030
7256
  "marginRightTwips",
@@ -6032,8 +7258,8 @@ function validateSection(c, section) {
6032
7258
  "footerDistanceTwips",
6033
7259
  "gutterTwips"
6034
7260
  ])
6035
- c.unsigned(key, section[key], "ST_TwipsMeasure");
6036
- const columns = c.at(".columns");
7261
+ c2.unsigned(key, section[key], "ST_TwipsMeasure");
7262
+ const columns = c2.at(".columns");
6037
7263
  columns.check(
6038
7264
  "count",
6039
7265
  section.columns?.count,
@@ -6047,7 +7273,7 @@ function validateSection(c, section) {
6047
7273
  at.unsigned("spacingTwips", column.spacingTwips, "ST_TwipsMeasure");
6048
7274
  });
6049
7275
  if (section.lineNumberSettings) {
6050
- const line = c.at(".lineNumberSettings");
7276
+ const line = c2.at(".lineNumberSettings");
6051
7277
  const settings = section.lineNumberSettings;
6052
7278
  line.check(
6053
7279
  "countBy",
@@ -6070,12 +7296,12 @@ function validateSection(c, section) {
6070
7296
  line.unsigned("distanceTwips", settings.distanceTwips, "ST_TwipsMeasure");
6071
7297
  }
6072
7298
  if (section.pageNumbering) {
6073
- const numbering = c.at(".pageNumbering");
7299
+ const numbering = c2.at(".pageNumbering");
6074
7300
  numbering.enum("format", section.pageNumbering.format, isStNumberFormat, "ST_NumberFormat");
6075
7301
  numbering.signed("start", section.pageNumbering.start, "ST_DecimalNumber");
6076
7302
  }
6077
7303
  }
6078
- function validateNumberingCatalog(c, catalog) {
7304
+ function validateNumberingCatalog(c2, catalog) {
6079
7305
  const levelOf = (at, level) => {
6080
7306
  at.enum("numFmt", level.numFmt, isStNumberFormat, "ST_NumberFormat");
6081
7307
  at.signed("start", level.start, "ST_DecimalNumber");
@@ -6106,19 +7332,19 @@ function validateNumberingCatalog(c, catalog) {
6106
7332
  };
6107
7333
  for (const [id, abstract] of Object.entries(catalog.abstractNums))
6108
7334
  for (const [key, level] of Object.entries(abstract.levels))
6109
- levelOf(new Checker(c.issues, `${c.path}.abstractNums[${id}].levels[${key}]`), level);
7335
+ levelOf(new Checker(c2.issues, `${c2.path}.abstractNums[${id}].levels[${key}]`), level);
6110
7336
  for (const [id, num] of Object.entries(catalog.nums))
6111
7337
  for (const [key, override] of Object.entries(num.levelOverrides ?? {})) {
6112
- const at = new Checker(c.issues, `${c.path}.nums[${id}].levelOverrides[${key}]`);
7338
+ const at = new Checker(c2.issues, `${c2.path}.nums[${id}].levelOverrides[${key}]`);
6113
7339
  at.signed("startOverride", override.startOverride, "ST_DecimalNumber");
6114
7340
  if (override.lvl) levelOf(at.at(".lvl"), override.lvl);
6115
7341
  }
6116
7342
  }
6117
7343
 
6118
7344
  // docx/validate-model.ts
6119
- function validateBlocks(c, blocks) {
7345
+ function validateBlocks(c2, blocks) {
6120
7346
  blocks?.forEach((block, index) => {
6121
- const at = c.at(`[${index}]`);
7347
+ const at = c2.at(`[${index}]`);
6122
7348
  if (block.type === "paragraph") return validateParagraph(at, block);
6123
7349
  validateTable(at, block);
6124
7350
  block.rows.forEach(
@@ -6132,8 +7358,8 @@ function validateBlocks(c, blocks) {
6132
7358
  }
6133
7359
  function validateDocumentModel(model) {
6134
7360
  const issues = [];
6135
- const path = (suffix) => new Checker(issues, suffix);
6136
- const page = path("page");
7361
+ const path2 = (suffix) => new Checker(issues, suffix);
7362
+ const page = path2("page");
6137
7363
  for (const key of ["width", "height"])
6138
7364
  page.check(
6139
7365
  key,
@@ -6148,9 +7374,9 @@ function validateDocumentModel(model) {
6148
7374
  (v) => typeof v === "number" && Number.isFinite(v) && (key === "marginTop" || key === "marginBottom" || v >= 0),
6149
7375
  "must be a finite pixel size (converted to integer twips; left/right non-negative)"
6150
7376
  );
6151
- validateBlocks(path("blocks"), model.blocks);
7377
+ validateBlocks(path2("blocks"), model.blocks);
6152
7378
  model.sections?.forEach((section, index) => {
6153
- const at = path(`sections[${index}]`);
7379
+ const at = path2(`sections[${index}]`);
6154
7380
  validateSection(at, section);
6155
7381
  for (const kind of ["headers", "footers"])
6156
7382
  for (const [slot2, content] of Object.entries(section[kind] ?? {}))
@@ -6158,60 +7384,271 @@ function validateDocumentModel(model) {
6158
7384
  });
6159
7385
  for (const kind of ["footnotes", "endnotes"])
6160
7386
  model[kind]?.forEach(
6161
- (note, index) => validateBlocks(path(`${kind}[${index}].blocks`), note.blocks)
7387
+ (note, index) => validateBlocks(path2(`${kind}[${index}].blocks`), note.blocks)
6162
7388
  );
6163
7389
  model.comments?.forEach(
6164
- (comment, index) => path(`comments[${index}]`).dateTime("date", comment.date)
7390
+ (comment, index) => path2(`comments[${index}]`).dateTime("date", comment.date)
6165
7391
  );
6166
- path("model").hex("pageColor", model.pageColor);
6167
- path("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
6168
- path("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
7392
+ path2("model").hex("pageColor", model.pageColor);
7393
+ path2("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
7394
+ path2("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
6169
7395
  if (model.numberingCatalog)
6170
- validateNumberingCatalog(path("numberingCatalog"), model.numberingCatalog);
7396
+ validateNumberingCatalog(path2("numberingCatalog"), model.numberingCatalog);
6171
7397
  return issues;
6172
7398
  }
6173
- function assertValidDocumentModel(model) {
6174
- const issues = validateDocumentModel(model);
6175
- if (issues.length) throw new DocxModelValidationError(issues);
7399
+ function assertValidDocumentModel(model) {
7400
+ const issues = validateDocumentModel(model);
7401
+ if (issues.length) throw new DocxModelValidationError(issues);
7402
+ }
7403
+
7404
+ // docx/numbering-parts.ts
7405
+ var CT_NS = "http://schemas.openxmlformats.org/package/2006/content-types";
7406
+ var REL_NS2 = "http://schemas.openxmlformats.org/package/2006/relationships";
7407
+ var NUMBERING_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
7408
+ var NUMBERING_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
7409
+ async function registerNumberingPart(zip) {
7410
+ const contentTypesPath = "[Content_Types].xml";
7411
+ const contentTypesFile = zip.file(contentTypesPath);
7412
+ const contentTypesXml = contentTypesFile ? await contentTypesFile.async("string") : `<?xml version="1.0"?><Types xmlns="${CT_NS}"/>`;
7413
+ const contentTypesDoc = parseXml2(contentTypesXml);
7414
+ const hasOverride = Array.from(contentTypesDoc.getElementsByTagNameNS(CT_NS, "Override")).some(
7415
+ (element) => element.getAttribute("PartName") === "/word/numbering.xml"
7416
+ );
7417
+ if (!hasOverride) {
7418
+ const override = contentTypesDoc.createElementNS(CT_NS, "Override");
7419
+ override.setAttribute("PartName", "/word/numbering.xml");
7420
+ override.setAttribute("ContentType", NUMBERING_CONTENT_TYPE);
7421
+ contentTypesDoc.documentElement.appendChild(override);
7422
+ zip.file(contentTypesPath, buildXml(contentTypesDoc));
7423
+ }
7424
+ const relsPath = "word/_rels/document.xml.rels";
7425
+ const relsFile = zip.file(relsPath);
7426
+ const relsXml = relsFile ? await relsFile.async("string") : `<?xml version="1.0"?><Relationships xmlns="${REL_NS2}"/>`;
7427
+ const relsDoc = parseXml2(relsXml);
7428
+ const existingIds = new Set(
7429
+ Array.from(relsDoc.getElementsByTagNameNS(REL_NS2, "Relationship")).map(
7430
+ (element) => element.getAttribute("Id") ?? ""
7431
+ )
7432
+ );
7433
+ let serial = 1;
7434
+ while (existingIds.has(`rId${serial}`)) serial++;
7435
+ const relationship = relsDoc.createElementNS(REL_NS2, "Relationship");
7436
+ relationship.setAttribute("Id", `rId${serial}`);
7437
+ relationship.setAttribute("Type", NUMBERING_RELATIONSHIP_TYPE);
7438
+ relationship.setAttribute("Target", "numbering.xml");
7439
+ relsDoc.documentElement.appendChild(relationship);
7440
+ zip.file(relsPath, buildXml(relsDoc));
7441
+ }
7442
+
7443
+ // docx/numbering-parse.ts
7444
+ var integer2 = (value, fallback) => parseInteger(value) ?? fallback;
7445
+ var flag = (element) => onOffElement(element) === true;
7446
+ function byName(root, local) {
7447
+ return Array.from(root.getElementsByTagName("*")).filter(
7448
+ (node) => node.nodeType === 1 && named2(node, local)
7449
+ );
7450
+ }
7451
+ function parseMarkerFormat(rPr) {
7452
+ if (!rPr) return void 0;
7453
+ const format = {};
7454
+ const family = getW(first2(rPr, "rFonts"), "ascii");
7455
+ if (family) format.fontFamily = family;
7456
+ const size = parseInteger(getW(first2(rPr, "sz"), "val"));
7457
+ if (size !== void 0 && size > 0) format.fontSizeHalfPoints = size;
7458
+ if (onOffElement(first2(rPr, "b")) === true) format.bold = true;
7459
+ if (onOffElement(first2(rPr, "i")) === true) format.italic = true;
7460
+ const color = getW(first2(rPr, "color"), "val");
7461
+ if (color && /^[0-9a-f]{6}$/i.test(color)) format.color = `#${color.toLowerCase()}`;
7462
+ return Object.keys(format).length ? format : void 0;
7463
+ }
7464
+ function parseNumberingLevel(lvl) {
7465
+ const level = integer2(getW(lvl, "ilvl"), 0);
7466
+ const start = integer2(getW(first2(lvl, "start"), "val"), 1);
7467
+ const numFmt = enumValue(isStNumberFormat, getW(first2(lvl, "numFmt"), "val"), "w:numFmt") ?? "decimal";
7468
+ const lvlText = getW(first2(lvl, "lvlText"), "val") ?? "";
7469
+ const jc = getW(first2(lvl, "lvlJc"), "val");
7470
+ const ind = first2(first2(lvl, "pPr"), "ind");
7471
+ const suffRaw = getW(first2(lvl, "suff"), "val");
7472
+ const result = { level, start, numFmt, lvlText };
7473
+ if (!first2(lvl, "start")) result.startWasOmitted = true;
7474
+ const paragraphStyleId = getW(first2(lvl, "pStyle"), "val");
7475
+ if (paragraphStyleId) result.paragraphStyleId = paragraphStyleId;
7476
+ if (jc === "left" || jc === "center" || jc === "right") result.lvlJc = jc;
7477
+ const left = getW(ind, "left") ?? getW(ind, "start");
7478
+ if (left !== void 0) result.indentLeftTwips = parseSignedTwips(left) ?? signedTwips(0);
7479
+ const hanging = getW(ind, "hanging");
7480
+ if (hanging !== void 0) result.hangingTwips = parseTwips(hanging) ?? twips(0);
7481
+ const firstLine = getW(ind, "firstLine");
7482
+ if (firstLine !== void 0) result.firstLineTwips = parseTwips(firstLine) ?? twips(0);
7483
+ const tabs = first2(first2(lvl, "pPr"), "tabs");
7484
+ const tab = tabs ? children2(tabs, "tab").find((stop) => getW(stop, "val") !== "clear") : void 0;
7485
+ const tabPos = tab ? parseTwips(getW(tab, "pos")) : void 0;
7486
+ if (tabPos !== void 0) result.tabStopTwips = tabPos;
7487
+ if (flag(first2(lvl, "isLgl"))) result.isLgl = true;
7488
+ const restart = getW(first2(lvl, "lvlRestart"), "val");
7489
+ if (restart !== void 0) result.lvlRestart = integer2(restart, 0);
7490
+ const marker = parseMarkerFormat(first2(lvl, "rPr"));
7491
+ if (marker) result.markerFormat = marker;
7492
+ result.suffix = suffRaw === "space" ? "space" : suffRaw === "nothing" ? "none" : "tab";
7493
+ return result;
7494
+ }
7495
+ function parseAbstractNum(element) {
7496
+ const id = getW(element, "abstractNumId");
7497
+ if (!id) return void 0;
7498
+ const levels = {};
7499
+ for (const lvl of children2(element, "lvl")) {
7500
+ const parsed = parseNumberingLevel(lvl);
7501
+ levels[parsed.level] = parsed;
7502
+ }
7503
+ return { id, levels };
7504
+ }
7505
+ function parseNum(element) {
7506
+ const id = getW(element, "numId");
7507
+ if (!id) return void 0;
7508
+ const abstractNumId = getW(first2(element, "abstractNumId"), "val") ?? "";
7509
+ const levelOverrides = {};
7510
+ for (const override of children2(element, "lvlOverride")) {
7511
+ const level = integer2(getW(override, "ilvl"), 0);
7512
+ const entry2 = {};
7513
+ const startOverride = getW(first2(override, "startOverride"), "val");
7514
+ if (startOverride !== void 0) entry2.startOverride = integer2(startOverride, 1);
7515
+ const lvl = first2(override, "lvl");
7516
+ if (lvl) entry2.lvl = parseNumberingLevel(lvl);
7517
+ if (Object.keys(entry2).length) levelOverrides[level] = entry2;
7518
+ }
7519
+ return {
7520
+ id,
7521
+ abstractNumId,
7522
+ ...Object.keys(levelOverrides).length ? { levelOverrides } : {}
7523
+ };
7524
+ }
7525
+ function parseNumberingCatalog(xml) {
7526
+ const document = parseXml2(xml);
7527
+ const root = document.documentElement;
7528
+ const abstractNums = {};
7529
+ const warnings = [];
7530
+ for (const element of byName(root, "abstractNum")) {
7531
+ const parsed = parseAbstractNum(element);
7532
+ if (!parsed) continue;
7533
+ abstractNums[parsed.id] = parsed;
7534
+ const link = getW(first2(element, "numStyleLink"), "val");
7535
+ if (link)
7536
+ warnings.push(
7537
+ `Numbering definition abstractNum ${parsed.id} links to style "${link}"; style-linked numbering levels are not resolved.`
7538
+ );
7539
+ if (byName(element, "lvlPicBulletId").length)
7540
+ warnings.push(
7541
+ `Numbering definition abstractNum ${parsed.id} uses a picture bullet; picture bullets are not rendered.`
7542
+ );
7543
+ }
7544
+ const nums = {};
7545
+ for (const element of byName(root, "num")) {
7546
+ const parsed = parseNum(element);
7547
+ if (parsed) nums[parsed.id] = parsed;
7548
+ }
7549
+ return { abstractNums, nums, warnings: [...new Set(warnings)] };
7550
+ }
7551
+ function resolveNumberingLevel(catalog, numId, level) {
7552
+ const num = catalog.nums[numId];
7553
+ if (!num) return void 0;
7554
+ const override = num.levelOverrides?.[level];
7555
+ const sourceAbstract = catalog.abstractNums[num.abstractNumId]?.levels[level];
7556
+ const abstract = sourceAbstract?.startWasOmitted && sourceAbstract.start === 1 ? { ...sourceAbstract, start: 0 } : sourceAbstract;
7557
+ let base = override?.lvl ?? abstract;
7558
+ if (!base) return void 0;
7559
+ if (override?.lvl) {
7560
+ const { lvlRestart: _ignored, ...properties } = base;
7561
+ base = {
7562
+ ...properties,
7563
+ ...abstract?.lvlRestart !== void 0 ? { lvlRestart: abstract.lvlRestart } : {}
7564
+ };
7565
+ }
7566
+ let start = override?.startOverride ?? base.start;
7567
+ if (override?.lvl) {
7568
+ if (abstract?.lvlRestart === 0 && override.startOverride === void 0) start = abstract.start;
7569
+ else if (!override.lvl.startWasOmitted || override.lvl.start !== 1) start = override.lvl.start;
7570
+ else start = override.startOverride ?? 0;
7571
+ }
7572
+ return start !== base.start ? { ...base, start } : base;
7573
+ }
7574
+
7575
+ // docx/numbering-start-edit.ts
7576
+ function assertListStartValue(level, start) {
7577
+ if (!Number.isInteger(level) || level < 0 || level > 8)
7578
+ throw new Error("List level must be an integer from 0 through 8.");
7579
+ if (!Number.isInteger(start) || start < 0 || start > 2147483647)
7580
+ throw new Error("List start must be an integer from 0 through 2147483647.");
6176
7581
  }
6177
7582
 
6178
- // docx/numbering-parts.ts
6179
- var CT_NS = "http://schemas.openxmlformats.org/package/2006/content-types";
6180
- var REL_NS2 = "http://schemas.openxmlformats.org/package/2006/relationships";
6181
- var NUMBERING_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
6182
- var NUMBERING_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
6183
- async function registerNumberingPart(zip) {
6184
- const contentTypesPath = "[Content_Types].xml";
6185
- const contentTypesFile = zip.file(contentTypesPath);
6186
- const contentTypesXml = contentTypesFile ? await contentTypesFile.async("string") : `<?xml version="1.0"?><Types xmlns="${CT_NS}"/>`;
6187
- const contentTypesDoc = parseXml2(contentTypesXml);
6188
- const hasOverride = Array.from(contentTypesDoc.getElementsByTagNameNS(CT_NS, "Override")).some(
6189
- (element) => element.getAttribute("PartName") === "/word/numbering.xml"
6190
- );
6191
- if (!hasOverride) {
6192
- const override = contentTypesDoc.createElementNS(CT_NS, "Override");
6193
- override.setAttribute("PartName", "/word/numbering.xml");
6194
- override.setAttribute("ContentType", NUMBERING_CONTENT_TYPE);
6195
- contentTypesDoc.documentElement.appendChild(override);
6196
- zip.file(contentTypesPath, buildXml(contentTypesDoc));
7583
+ // docx/numbering-start-patch.ts
7584
+ function withoutStarts(num) {
7585
+ const { levelOverrides, ...properties } = num;
7586
+ const kept = {};
7587
+ for (const [level, override] of Object.entries(levelOverrides ?? {})) {
7588
+ const { startOverride: _start, ...rest } = override;
7589
+ if (Object.keys(rest).length) kept[level] = rest;
7590
+ }
7591
+ return { ...properties, ...Object.keys(kept).length ? { levelOverrides: kept } : {} };
7592
+ }
7593
+ function numberingStartChanges(prior, next) {
7594
+ const changes = [];
7595
+ for (const [id, previous] of Object.entries(prior?.nums ?? {})) {
7596
+ const current = next.nums[id];
7597
+ if (!current || JSON.stringify(withoutStarts(current)) !== JSON.stringify(withoutStarts(previous)))
7598
+ throw new Error(
7599
+ `Cannot edit numbering definition num "${id}" except its supported start overrides.`
7600
+ );
7601
+ for (const key of /* @__PURE__ */ new Set([
7602
+ ...Object.keys(previous.levelOverrides ?? {}),
7603
+ ...Object.keys(current.levelOverrides ?? {})
7604
+ ])) {
7605
+ const level = Number(key);
7606
+ const old = previous.levelOverrides?.[level];
7607
+ const value = current.levelOverrides?.[level];
7608
+ if (old?.startOverride === value?.startOverride) continue;
7609
+ if (value?.startOverride === void 0)
7610
+ throw new Error("Removing a list start override is unsupported.");
7611
+ assertListStartValue(level, value.startOverride);
7612
+ if (String(level) !== key || !prior || !resolveNumberingLevel(prior, id, level))
7613
+ throw new Error("List instance or level does not exist.");
7614
+ if (old?.lvl || value.lvl)
7615
+ throw new Error("Changing starts with a full level override is unsupported.");
7616
+ changes.push({ numId: id, level, start: value.startOverride });
7617
+ }
7618
+ }
7619
+ return changes;
7620
+ }
7621
+ function patchNumberingStarts(doc, changes) {
7622
+ const sameNumber = (source, expected) => source !== void 0 && /^[+-]?\d+$/.test(source) && Number(source) === Number(expected);
7623
+ const prepared = changes.map((change) => {
7624
+ const nums = children2(doc.documentElement, "num").filter(
7625
+ (num2) => sameNumber(getW(num2, "numId"), change.numId)
7626
+ );
7627
+ if (nums.length !== 1 || getW(nums[0], "numId") !== change.numId)
7628
+ throw new Error("Cannot patch an ambiguous or missing source list instance.");
7629
+ const num = nums[0];
7630
+ const overrides = children2(num, "lvlOverride").filter(
7631
+ (node) => sameNumber(getW(node, "ilvl"), String(change.level))
7632
+ );
7633
+ if (overrides.length > 1) throw new Error("Cannot patch duplicate source level overrides.");
7634
+ const override = overrides[0];
7635
+ if (override && getW(override, "ilvl") !== String(change.level))
7636
+ throw new Error("Cannot patch a noncanonical source level override.");
7637
+ if (override && (children2(override, "lvl").length || children2(override, "startOverride").length > 1))
7638
+ throw new Error("Cannot patch a full or ambiguous source level override.");
7639
+ return { change, num, override };
7640
+ });
7641
+ for (const { change, num, override: existing } of prepared) {
7642
+ const override = existing ?? makeW(doc, "lvlOverride");
7643
+ if (!existing) {
7644
+ override.setAttributeNS(WORD_NS, "w:ilvl", String(change.level));
7645
+ const after = children2(num, "lvlOverride").at(-1) ?? children2(num, "abstractNumId")[0];
7646
+ num.insertBefore(override, after?.nextSibling ?? null);
7647
+ }
7648
+ const start = children2(override, "startOverride")[0] ?? makeW(doc, "startOverride");
7649
+ start.setAttributeNS(WORD_NS, "w:val", String(change.start));
7650
+ if (!start.parentNode) override.insertBefore(start, override.firstChild);
6197
7651
  }
6198
- const relsPath = "word/_rels/document.xml.rels";
6199
- const relsFile = zip.file(relsPath);
6200
- const relsXml = relsFile ? await relsFile.async("string") : `<?xml version="1.0"?><Relationships xmlns="${REL_NS2}"/>`;
6201
- const relsDoc = parseXml2(relsXml);
6202
- const existingIds = new Set(
6203
- Array.from(relsDoc.getElementsByTagNameNS(REL_NS2, "Relationship")).map(
6204
- (element) => element.getAttribute("Id") ?? ""
6205
- )
6206
- );
6207
- let serial = 1;
6208
- while (existingIds.has(`rId${serial}`)) serial++;
6209
- const relationship = relsDoc.createElementNS(REL_NS2, "Relationship");
6210
- relationship.setAttribute("Id", `rId${serial}`);
6211
- relationship.setAttribute("Type", NUMBERING_RELATIONSHIP_TYPE);
6212
- relationship.setAttribute("Target", "numbering.xml");
6213
- relsDoc.documentElement.appendChild(relationship);
6214
- zip.file(relsPath, buildXml(relsDoc));
6215
7652
  }
6216
7653
 
6217
7654
  // docx/numbering-package.ts
@@ -6283,7 +7720,7 @@ function buildAbstractNumElement(doc, def) {
6283
7720
  const element = makeW(doc, "abstractNum");
6284
7721
  setAttribute8(element, "abstractNumId", def.id);
6285
7722
  element.appendChild(valueElement(doc, "multiLevelType", "hybridMultilevel"));
6286
- for (const level of Object.values(def.levels).sort((a, b) => a.level - b.level))
7723
+ for (const level of Object.values(def.levels).sort((a2, b) => a2.level - b.level))
6287
7724
  element.appendChild(buildLevelElement(doc, level));
6288
7725
  return element;
6289
7726
  }
@@ -6318,17 +7755,14 @@ async function applyNumberingCatalog(zip, model, binding) {
6318
7755
  throw new Error(
6319
7756
  `Cannot edit numbering definition abstractNum "${id}"; the original numbering.xml is preserved unchanged.`
6320
7757
  );
6321
- for (const id of Object.keys(prior?.nums ?? {}))
6322
- if (JSON.stringify(next.nums[id]) !== JSON.stringify(prior?.nums[id]))
6323
- throw new Error(
6324
- `Cannot edit numbering definition num "${id}"; the original numbering.xml is preserved unchanged.`
6325
- );
7758
+ const startChanges = numberingStartChanges(prior, next);
6326
7759
  const newAbstractIds = Object.keys(next.abstractNums).filter((id) => !prior?.abstractNums[id]);
6327
7760
  const newNumIds = Object.keys(next.nums).filter((id) => !prior?.nums[id]);
6328
- if (!newAbstractIds.length && !newNumIds.length) return;
7761
+ if (!newAbstractIds.length && !newNumIds.length && !startChanges.length) return;
6329
7762
  const existingFile = zip.file("word/numbering.xml");
6330
7763
  const doc = existingFile ? parseXml2(await existingFile.async("string")) : parseXml2(`<w:numbering xmlns:w="${WORD_NS}"/>`);
6331
7764
  const root = doc.documentElement;
7765
+ patchNumberingStarts(doc, startChanges);
6332
7766
  const cleanup = children2(root, "numIdMacAtCleanup")[0] ?? null;
6333
7767
  const firstNum = children2(root, "num")[0] ?? cleanup;
6334
7768
  for (const id of newAbstractIds) {
@@ -6405,13 +7839,13 @@ async function applyStyleNumbering(zip, model, base) {
6405
7839
  // docx/part-relationships.ts
6406
7840
  var CONTENT_TYPES_PART = "[Content_Types].xml";
6407
7841
  var extensionOf = (partName) => partName.split(".").pop()?.toLowerCase() ?? "";
6408
- function relationshipsPartFor(partName) {
7842
+ function relationshipsPartFor2(partName) {
6409
7843
  const slash = partName.lastIndexOf("/");
6410
7844
  return `${partName.slice(0, slash)}/_rels/${partName.slice(slash + 1)}.rels`;
6411
7845
  }
6412
7846
  async function allocatorForPart(zip, partName, doc, docPrIds) {
6413
7847
  const declared = parseRelationships(
6414
- await zip.file(relationshipsPartFor(partName))?.async("string")
7848
+ await zip.file(relationshipsPartFor2(partName))?.async("string")
6415
7849
  );
6416
7850
  const allocator = new RelationshipAllocator(
6417
7851
  [...scanUsedRelationshipIds(doc), ...declared.keys()],
@@ -6422,7 +7856,7 @@ async function allocatorForPart(zip, partName, doc, docPrIds) {
6422
7856
  }
6423
7857
  async function writeNewRelationships(zip, partName, created, pendingMedia) {
6424
7858
  if (!created.length) return;
6425
- const relsPath = relationshipsPartFor(partName);
7859
+ const relsPath = relationshipsPartFor2(partName);
6426
7860
  const relationships = parseRelationships(await zip.file(relsPath)?.async("string"));
6427
7861
  let contentTypesXml = await zip.file(CONTENT_TYPES_PART)?.async("string");
6428
7862
  for (const relationship of created) {
@@ -6506,8 +7940,8 @@ async function createHeaderFooterParts(zip, model, base, docPrIds) {
6506
7940
  (_match, start, end) => `${start}${docPrIds.next()}${end}`
6507
7941
  ) : xml
6508
7942
  );
6509
- const rels = zip.file(relationshipsPartFor(content.sourcePartName));
6510
- if (rels) zip.file(relationshipsPartFor(partName), await rels.async("uint8array"));
7943
+ const rels = zip.file(relationshipsPartFor2(content.sourcePartName));
7944
+ if (rels) zip.file(relationshipsPartFor2(partName), await rels.async("uint8array"));
6511
7945
  }
6512
7946
  await ensureContentTypeOverride(
6513
7947
  zip,
@@ -7194,23 +8628,31 @@ function createFieldTracker() {
7194
8628
  const stack = [];
7195
8629
  return (element, run) => {
7196
8630
  let resultInstr;
8631
+ let resultLocked;
7197
8632
  for (const child3 of Array.from(element.childNodes)) {
7198
8633
  if (!isElement(child3)) continue;
7199
8634
  if (named2(child3, "fldChar")) {
7200
8635
  const type = getW(child3, "fldCharType");
7201
- if (type === "begin") stack.push({ instr: "", inResult: false });
7202
- else if (type === "separate") {
8636
+ if (type === "begin") {
8637
+ const locked = parseFieldFlags(child3)?.locked;
8638
+ stack.push({ instr: "", inResult: false, ...locked !== void 0 && { locked } });
8639
+ } else if (type === "separate") {
7203
8640
  const top = stack.at(-1);
7204
8641
  if (top) top.inResult = true;
7205
8642
  } else if (type === "end") stack.pop();
7206
8643
  } else {
7207
8644
  const top = stack.at(-1);
7208
8645
  if (named2(child3, "instrText") && top && !top.inResult) top.instr += textContent(child3);
7209
- else if ((named2(child3, "t") || named2(child3, "delText")) && top?.inResult)
8646
+ else if ((named2(child3, "t") || named2(child3, "delText")) && top?.inResult) {
7210
8647
  resultInstr = top.instr.trim();
8648
+ resultLocked = top.locked;
8649
+ }
7211
8650
  }
7212
8651
  }
7213
- if (resultInstr) run.field = { instr: resultInstr };
8652
+ if (resultInstr) {
8653
+ run.field = { instr: resultInstr };
8654
+ if (resultLocked !== void 0) run.fieldFlags = { locked: resultLocked };
8655
+ }
7214
8656
  return run;
7215
8657
  };
7216
8658
  }
@@ -7221,7 +8663,11 @@ function storyFieldResults(container) {
7221
8663
  if (named2(element, "fldSimple") || named2(element, "txbxContent")) return;
7222
8664
  if (named2(element, "r")) {
7223
8665
  const run = trackField(element, { text: "" });
7224
- if (run.field) metadata.set(element, run.field);
8666
+ if (run.field)
8667
+ metadata.set(element, {
8668
+ field: run.field,
8669
+ ...run.fieldFlags && { fieldFlags: run.fieldFlags }
8670
+ });
7225
8671
  return;
7226
8672
  }
7227
8673
  for (const child3 of Array.from(element.childNodes)) if (isElement(child3)) visit(child3);
@@ -7313,7 +8759,11 @@ function parseRun2(node, revision) {
7313
8759
  if (breakKind) run.break = breakKind;
7314
8760
  if (noteReference) run.noteReference = noteReference;
7315
8761
  if (noteMark) run.noteMark = noteMark;
7316
- if (fieldChar) run.fieldChar = fieldChar;
8762
+ if (fieldChar) {
8763
+ run.fieldChar = fieldChar;
8764
+ const flags = parseFieldFlags(only);
8765
+ if (flags) run.fieldFlags = flags;
8766
+ }
7317
8767
  if (fieldCode !== void 0) run.fieldCode = fieldCode;
7318
8768
  const runRevision = revision ?? runFormatRevision(props);
7319
8769
  if (runRevision) run.revision = runRevision;
@@ -7332,8 +8782,11 @@ function parseParagraph2(node, id, fields) {
7332
8782
  (element, revision) => {
7333
8783
  const run = parseRun2(element, revision);
7334
8784
  if (!fields) return trackField(element, run);
7335
- const field = fields.get(element);
7336
- if (field) run.field = { ...field };
8785
+ const metadata = fields.get(element);
8786
+ if (metadata) {
8787
+ run.field = { ...metadata.field };
8788
+ if (metadata.fieldFlags) run.fieldFlags = { ...metadata.fieldFlags };
8789
+ }
7337
8790
  return run;
7338
8791
  },
7339
8792
  (item) => {
@@ -7355,20 +8808,23 @@ function parseParagraph2(node, id, fields) {
7355
8808
  );
7356
8809
  if (link) return results.map((run) => ({ ...run, link }));
7357
8810
  const field = { instr: instr.trim(), simple: true };
8811
+ const flags = parseFieldFlags(item);
8812
+ const fieldState = flags ? { fieldFlags: flags } : {};
7358
8813
  const fieldInstanceId = `${id}:simple-field-${simpleFieldIndex++}`;
7359
- if (!results.length) return [{ text: fieldPlaceholderText(instr), field, fieldInstanceId }];
8814
+ if (!results.length)
8815
+ return [{ text: fieldPlaceholderText(instr), field, fieldInstanceId, ...fieldState }];
7360
8816
  if (results.every(
7361
8817
  (run) => !run.text && !run.equation && !run.image && !run.break && !run.noteReference && !run.noteMark && !run.fieldChar && run.fieldCode === void 0
7362
8818
  )) {
7363
8819
  return [
7364
- { text: "", fieldChar: "begin" },
8820
+ { text: "", fieldChar: "begin", ...fieldState },
7365
8821
  { text: "", fieldCode: instr },
7366
8822
  { text: "", fieldChar: "separate" },
7367
8823
  ...results,
7368
8824
  { text: "", fieldChar: "end" }
7369
8825
  ];
7370
8826
  }
7371
- return results.map((run) => ({ ...run, field, fieldInstanceId }));
8827
+ return results.map((run) => ({ ...run, field, fieldInstanceId, ...fieldState }));
7372
8828
  },
7373
8829
  (hyperlink) => {
7374
8830
  if (!activeContext) return void 0;
@@ -7558,15 +9014,15 @@ function parseNotesPart(xml, kind, parseBlocks) {
7558
9014
  }
7559
9015
 
7560
9016
  // docx/document-parts.ts
7561
- async function partContext(zip, path, base) {
9017
+ async function partContext(zip, path2, base) {
7562
9018
  if (!base) return void 0;
7563
- const slash = path.lastIndexOf("/");
7564
- const relsPath = `${path.slice(0, slash)}/_rels/${path.slice(slash + 1)}.rels`;
9019
+ const slash = path2.lastIndexOf("/");
9020
+ const relsPath = `${path2.slice(0, slash)}/_rels/${path2.slice(slash + 1)}.rels`;
7565
9021
  return { ...base, rels: parseRelationships(await readPart(zip, relsPath)) };
7566
9022
  }
7567
9023
  var FIELD_MARKUP = /<w:(?:fldSimple|instrText|fldChar)\b/;
7568
- async function readPart(zip, path) {
7569
- return zip.file(path)?.async("string");
9024
+ async function readPart(zip, path2) {
9025
+ return zip.file(path2)?.async("string");
7570
9026
  }
7571
9027
  function parseSettings(xml) {
7572
9028
  if (!xml) return { evenAndOddHeaders: false, autoHyphenation: false };
@@ -7594,21 +9050,21 @@ async function resolveSlots(zip, relationships, refs, cache, fieldMarkup, drawin
7594
9050
  for (const ref of refs) {
7595
9051
  const relationship = relationships.get(ref.rId);
7596
9052
  if (!relationship) continue;
7597
- const path = resolvePartPath("word/document.xml", relationship.target);
7598
- let blocks = cache.get(path);
9053
+ const path2 = resolvePartPath("word/document.xml", relationship.target);
9054
+ let blocks = cache.get(path2);
7599
9055
  if (!blocks) {
7600
- const xml = await readPart(zip, path);
9056
+ const xml = await readPart(zip, path2);
7601
9057
  if (xml === void 0) continue;
7602
9058
  if (FIELD_MARKUP.test(xml)) fieldMarkup.seen = true;
7603
- const context = await partContext(zip, path, drawings);
9059
+ const context = await partContext(zip, path2, drawings);
7604
9060
  const root = parseXml2(xml).documentElement;
7605
9061
  blocks = withParseWarnings(
7606
9062
  sink2,
7607
- () => parseBlocksFromContainer(root, `${path.replace(/[^a-z0-9]+/gi, "")}-`, context)
9063
+ () => parseBlocksFromContainer(root, `${path2.replace(/[^a-z0-9]+/gi, "")}-`, context)
7608
9064
  );
7609
- cache.set(path, blocks);
9065
+ cache.set(path2, blocks);
7610
9066
  }
7611
- slots[ref.slot] = { blocks, partName: path };
9067
+ slots[ref.slot] = { blocks, partName: path2 };
7612
9068
  }
7613
9069
  return Object.keys(slots).length ? slots : void 0;
7614
9070
  }
@@ -7644,8 +9100,8 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
7644
9100
  }
7645
9101
  const footnotesXml = await readPart(zip, "word/footnotes.xml");
7646
9102
  const endnotesXml = await readPart(zip, "word/endnotes.xml");
7647
- const notesParser = async (path) => {
7648
- const context = await partContext(zip, path, drawings);
9103
+ const notesParser = async (path2) => {
9104
+ const context = await partContext(zip, path2, drawings);
7649
9105
  return (container, prefix) => withParseWarnings(warnings, () => parseBlocksFromContainer(container, prefix, context));
7650
9106
  };
7651
9107
  const footnotes = footnotesXml ? parseNotesPart(footnotesXml, "footnote", await notesParser("word/footnotes.xml")) : void 0;
@@ -7670,115 +9126,6 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
7670
9126
  };
7671
9127
  }
7672
9128
 
7673
- // docx/numbering-parse.ts
7674
- var integer2 = (value, fallback) => parseInteger(value) ?? fallback;
7675
- var flag = (element) => onOffElement(element) === true;
7676
- function byName(root, local) {
7677
- return Array.from(root.getElementsByTagName("*")).filter(
7678
- (node) => node.nodeType === 1 && named2(node, local)
7679
- );
7680
- }
7681
- function parseMarkerFormat(rPr) {
7682
- if (!rPr) return void 0;
7683
- const format = {};
7684
- const family = getW(first2(rPr, "rFonts"), "ascii");
7685
- if (family) format.fontFamily = family;
7686
- const size = parseInteger(getW(first2(rPr, "sz"), "val"));
7687
- if (size !== void 0 && size > 0) format.fontSizeHalfPoints = size;
7688
- if (onOffElement(first2(rPr, "b")) === true) format.bold = true;
7689
- if (onOffElement(first2(rPr, "i")) === true) format.italic = true;
7690
- const color = getW(first2(rPr, "color"), "val");
7691
- if (color && /^[0-9a-f]{6}$/i.test(color)) format.color = `#${color.toLowerCase()}`;
7692
- return Object.keys(format).length ? format : void 0;
7693
- }
7694
- function parseNumberingLevel(lvl) {
7695
- const level = integer2(getW(lvl, "ilvl"), 0);
7696
- const start = integer2(getW(first2(lvl, "start"), "val"), 1);
7697
- const numFmt = enumValue(isStNumberFormat, getW(first2(lvl, "numFmt"), "val"), "w:numFmt") ?? "decimal";
7698
- const lvlText = getW(first2(lvl, "lvlText"), "val") ?? "";
7699
- const jc = getW(first2(lvl, "lvlJc"), "val");
7700
- const ind = first2(first2(lvl, "pPr"), "ind");
7701
- const suffRaw = getW(first2(lvl, "suff"), "val");
7702
- const result = { level, start, numFmt, lvlText };
7703
- if (!first2(lvl, "start")) result.startWasOmitted = true;
7704
- const paragraphStyleId = getW(first2(lvl, "pStyle"), "val");
7705
- if (paragraphStyleId) result.paragraphStyleId = paragraphStyleId;
7706
- if (jc === "left" || jc === "center" || jc === "right") result.lvlJc = jc;
7707
- const left = getW(ind, "left") ?? getW(ind, "start");
7708
- if (left !== void 0) result.indentLeftTwips = parseSignedTwips(left) ?? signedTwips(0);
7709
- const hanging = getW(ind, "hanging");
7710
- if (hanging !== void 0) result.hangingTwips = parseTwips(hanging) ?? twips(0);
7711
- const firstLine = getW(ind, "firstLine");
7712
- if (firstLine !== void 0) result.firstLineTwips = parseTwips(firstLine) ?? twips(0);
7713
- const tabs = first2(first2(lvl, "pPr"), "tabs");
7714
- const tab = tabs ? children2(tabs, "tab").find((stop) => getW(stop, "val") !== "clear") : void 0;
7715
- const tabPos = tab ? parseTwips(getW(tab, "pos")) : void 0;
7716
- if (tabPos !== void 0) result.tabStopTwips = tabPos;
7717
- if (flag(first2(lvl, "isLgl"))) result.isLgl = true;
7718
- const restart = getW(first2(lvl, "lvlRestart"), "val");
7719
- if (restart !== void 0) result.lvlRestart = integer2(restart, 0);
7720
- const marker = parseMarkerFormat(first2(lvl, "rPr"));
7721
- if (marker) result.markerFormat = marker;
7722
- result.suffix = suffRaw === "space" ? "space" : suffRaw === "nothing" ? "none" : "tab";
7723
- return result;
7724
- }
7725
- function parseAbstractNum(element) {
7726
- const id = getW(element, "abstractNumId");
7727
- if (!id) return void 0;
7728
- const levels = {};
7729
- for (const lvl of children2(element, "lvl")) {
7730
- const parsed = parseNumberingLevel(lvl);
7731
- levels[parsed.level] = parsed;
7732
- }
7733
- return { id, levels };
7734
- }
7735
- function parseNum(element) {
7736
- const id = getW(element, "numId");
7737
- if (!id) return void 0;
7738
- const abstractNumId = getW(first2(element, "abstractNumId"), "val") ?? "";
7739
- const levelOverrides = {};
7740
- for (const override of children2(element, "lvlOverride")) {
7741
- const level = integer2(getW(override, "ilvl"), 0);
7742
- const entry = {};
7743
- const startOverride = getW(first2(override, "startOverride"), "val");
7744
- if (startOverride !== void 0) entry.startOverride = integer2(startOverride, 1);
7745
- const lvl = first2(override, "lvl");
7746
- if (lvl) entry.lvl = parseNumberingLevel(lvl);
7747
- if (Object.keys(entry).length) levelOverrides[level] = entry;
7748
- }
7749
- return {
7750
- id,
7751
- abstractNumId,
7752
- ...Object.keys(levelOverrides).length ? { levelOverrides } : {}
7753
- };
7754
- }
7755
- function parseNumberingCatalog(xml) {
7756
- const document = parseXml2(xml);
7757
- const root = document.documentElement;
7758
- const abstractNums = {};
7759
- const warnings = [];
7760
- for (const element of byName(root, "abstractNum")) {
7761
- const parsed = parseAbstractNum(element);
7762
- if (!parsed) continue;
7763
- abstractNums[parsed.id] = parsed;
7764
- const link = getW(first2(element, "numStyleLink"), "val");
7765
- if (link)
7766
- warnings.push(
7767
- `Numbering definition abstractNum ${parsed.id} links to style "${link}"; style-linked numbering levels are not resolved.`
7768
- );
7769
- if (byName(element, "lvlPicBulletId").length)
7770
- warnings.push(
7771
- `Numbering definition abstractNum ${parsed.id} uses a picture bullet; picture bullets are not rendered.`
7772
- );
7773
- }
7774
- const nums = {};
7775
- for (const element of byName(root, "num")) {
7776
- const parsed = parseNum(element);
7777
- if (parsed) nums[parsed.id] = parsed;
7778
- }
7779
- return { abstractNums, nums, warnings: [...new Set(warnings)] };
7780
- }
7781
-
7782
9129
  // docx/comments.ts
7783
9130
  var W14_NS2 = "http://schemas.microsoft.com/office/word/2010/wordml";
7784
9131
  var W15_NS2 = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -7806,15 +9153,15 @@ function parseComments(commentsXml, extendedXml) {
7806
9153
  });
7807
9154
  if (extendedXml) {
7808
9155
  const extended = parseXml2(extendedXml);
7809
- for (const entry of Array.from(
9156
+ for (const entry2 of Array.from(
7810
9157
  extended.getElementsByTagNameNS(W15_NS2, "commentEx")
7811
9158
  )) {
7812
- const paraId = entry.getAttributeNS(W15_NS2, "paraId");
7813
- const comment = paraId && comments.find((c) => c.id === paraIdToCommentId.get(paraId));
9159
+ const paraId = entry2.getAttributeNS(W15_NS2, "paraId");
9160
+ const comment = paraId && comments.find((c2) => c2.id === paraIdToCommentId.get(paraId));
7814
9161
  if (!comment) continue;
7815
- const done = entry.getAttributeNS(W15_NS2, "done");
9162
+ const done = entry2.getAttributeNS(W15_NS2, "done");
7816
9163
  comment.resolved = done === "1" || done === "true";
7817
- const parentParaId = entry.getAttributeNS(W15_NS2, "paraIdParent");
9164
+ const parentParaId = entry2.getAttributeNS(W15_NS2, "paraIdParent");
7818
9165
  const parentId = parentParaId && paraIdToCommentId.get(parentParaId);
7819
9166
  if (parentId) comment.parentId = parentId;
7820
9167
  }
@@ -7822,96 +9169,6 @@ function parseComments(commentsXml, extendedXml) {
7822
9169
  return comments;
7823
9170
  }
7824
9171
 
7825
- // docx/parse-warnings.ts
7826
- function hasAny(document, names) {
7827
- return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
7828
- }
7829
- function warningsFor(document) {
7830
- const warnings = [];
7831
- const features = [
7832
- [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
7833
- [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
7834
- [
7835
- ["fldSimple", "instrText", "fldChar"],
7836
- "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."
7837
- ],
7838
- [
7839
- ["moveFrom", "moveTo"],
7840
- "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
7841
- ],
7842
- [
7843
- ["rPrChange"],
7844
- "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."
7845
- ],
7846
- [
7847
- ["pPrChange"],
7848
- "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."
7849
- ],
7850
- [
7851
- ["tblPrChange", "trPrChange", "tcPrChange"],
7852
- "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
7853
- ]
7854
- ];
7855
- for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
7856
- if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
7857
- (el3) => /HYPERLINK/i.test(textContent(el3))
7858
- ))
7859
- warnings.push(
7860
- "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
7861
- );
7862
- const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
7863
- (br) => hasSpecialBreak(br) && !isModeledBreak(br)
7864
- ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
7865
- (cr) => cr.attributes.length > 0
7866
- );
7867
- if (specialBreak)
7868
- warnings.push(
7869
- "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."
7870
- );
7871
- return warnings;
7872
- }
7873
- function forEachParagraph2(blocks, visit) {
7874
- for (const block of blocks) {
7875
- if (block.type === "paragraph") visit(block);
7876
- else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
7877
- }
7878
- }
7879
- function imageAndBookmarkWarnings(blocks) {
7880
- const warnings = [];
7881
- let hasPicture = false;
7882
- let hasAnchored = false;
7883
- const unsupportedKinds = /* @__PURE__ */ new Set();
7884
- let hasBookmarks = false;
7885
- forEachParagraph2(blocks, (paragraph) => {
7886
- if (paragraph.bookmarks?.length) hasBookmarks = true;
7887
- for (const run of paragraph.runs) {
7888
- if (!run.image) continue;
7889
- if (run.image.unsupported) {
7890
- if (run.image.diagram?.rendering !== "cached-drawing")
7891
- unsupportedKinds.add(run.image.unsupported);
7892
- } else hasPicture = true;
7893
- if (run.image.anchored) hasAnchored = true;
7894
- }
7895
- });
7896
- if (hasPicture)
7897
- warnings.push(
7898
- "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."
7899
- );
7900
- if (hasAnchored)
7901
- warnings.push(
7902
- "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."
7903
- );
7904
- if (unsupportedKinds.size)
7905
- warnings.push(
7906
- `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
7907
- );
7908
- if (hasBookmarks)
7909
- warnings.push(
7910
- "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
7911
- );
7912
- return warnings;
7913
- }
7914
-
7915
9172
  // docx/diagram-document.ts
7916
9173
  function diagramsIn(blocks) {
7917
9174
  const diagrams = [];
@@ -7949,7 +9206,7 @@ async function readPackage(input) {
7949
9206
  const entries = Object.values(zip.files);
7950
9207
  if (entries.length > 5e3) throw new Error("DOCX package exceeds the 5,000 part limit");
7951
9208
  const totalSize = entries.reduce(
7952
- (sum, entry) => sum + Number(entry._data?.uncompressedSize ?? 0),
9209
+ (sum, entry2) => sum + Number(entry2._data?.uncompressedSize ?? 0),
7953
9210
  0
7954
9211
  );
7955
9212
  if (totalSize > 200 * 1024 * 1024)
@@ -8013,7 +9270,7 @@ async function readPackage(input) {
8013
9270
  const themeFile = zip.file("word/theme/theme1.xml");
8014
9271
  const settingsFile = zip.file("word/settings.xml");
8015
9272
  if (themeFile) {
8016
- model.theme = parseTheme(await themeFile.async("string"));
9273
+ model.theme = parseTheme2(await themeFile.async("string"));
8017
9274
  if (settingsFile) {
8018
9275
  const settingsXml = await settingsFile.async("string");
8019
9276
  model.theme.colorMapping = withParseWarnings(
@@ -8100,6 +9357,10 @@ async function readPackage(input) {
8100
9357
  pictureBlocks,
8101
9358
  async (partName) => zip.file(partName)?.async("string")
8102
9359
  );
9360
+ await resolveDocumentCharts(
9361
+ pictureBlocks,
9362
+ async (partName) => zip.file(partName)?.async("string")
9363
+ );
8103
9364
  model.warnings.push(...imageAndBookmarkWarnings(blocks), ...diagramWarnings(pictureBlocks));
8104
9365
  for (const warning of schemaWarnings)
8105
9366
  if (!model.warnings.includes(warning)) model.warnings.push(warning);