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
@@ -13,12 +13,18 @@ var NS = {
13
13
  w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
14
14
  /** DrawingML main. */
15
15
  a: "http://schemas.openxmlformats.org/drawingml/2006/main",
16
+ /** DrawingML chart. */
17
+ c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
18
+ /** Office 2010 chart extensions, including built-in modern chart styles. */
19
+ c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
16
20
  /** DrawingML diagram (SmartArt) main. */
17
21
  dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
18
22
  /** Office 2007+ diagram drawing (`dsp`). */
19
23
  dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
20
24
  /** Relationships (`r:id`, `r:embed`). */
21
25
  r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
26
+ /** Markup compatibility (`mc:AlternateContent`). */
27
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
22
28
  /** OPC relationships part. */
23
29
  rels: "http://schemas.openxmlformats.org/package/2006/relationships",
24
30
  /** OPC content types part. */
@@ -366,12 +372,12 @@ function runPropertyChanged(run, base, key) {
366
372
  function parseDirectRunProperties(props) {
367
373
  const result = parseRunProperties(props);
368
374
  const language = first2(props, "lang");
369
- for (const [attribute, key] of [
375
+ for (const [attribute2, key] of [
370
376
  ["val", "language"],
371
377
  ["eastAsia", "eastAsiaLanguage"],
372
378
  ["bidi", "bidiLanguage"]
373
379
  ]) {
374
- const value = getW(language, attribute);
380
+ const value = getW(language, attribute2);
375
381
  if (value !== void 0) result[key] = value;
376
382
  }
377
383
  const rtl = onOffElement(first2(props, "rtl"));
@@ -873,9 +879,101 @@ function isValidLanguageTag(value) {
873
879
  return /^(?:[A-Za-z]{2,8})(?:-[A-Za-z0-9]{1,8})*$/.test(value);
874
880
  }
875
881
 
876
- // docx/theme.ts
877
- var DRAWING_NS = "http://schemas.openxmlformats.org/drawingml/2006/main";
878
- var SCHEME_ORDER = [
882
+ // color/color-primitives.ts
883
+ function toHex(value) {
884
+ return Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
885
+ }
886
+
887
+ // drawingml/dom.ts
888
+ function attributeReader(element) {
889
+ return (name) => {
890
+ if (!element) return void 0;
891
+ const direct = element.getAttribute(name);
892
+ if (direct !== null) return direct;
893
+ const attributes = element.attributes;
894
+ for (let index = 0; index < attributes.length; index++) {
895
+ const candidate = attributes.item(index);
896
+ if (candidate && candidate.localName === name) return candidate.value;
897
+ }
898
+ return void 0;
899
+ };
900
+ }
901
+ function stringAttribute(element, name) {
902
+ const value = attributeReader(element)(name)?.trim();
903
+ return value ? value : void 0;
904
+ }
905
+ function integerAttribute(element, name) {
906
+ const parsed = Number.parseInt(attributeReader(element)(name) ?? "", 10);
907
+ return Number.isFinite(parsed) ? parsed : void 0;
908
+ }
909
+ function booleanAttribute(element, name) {
910
+ const value = attributeReader(element)(name)?.trim().toLowerCase();
911
+ if (value === "1" || value === "true") return true;
912
+ if (value === "0" || value === "false") return false;
913
+ return void 0;
914
+ }
915
+ function descendants(root, local) {
916
+ const result = [];
917
+ const visit = (node) => {
918
+ for (const child3 of Array.from(node.childNodes)) {
919
+ if (!isElement(child3)) continue;
920
+ if (child3.localName === local) result.push(child3);
921
+ visit(child3);
922
+ }
923
+ };
924
+ visit(root);
925
+ return result;
926
+ }
927
+
928
+ // drawingml/drawing-color.ts
929
+ var COLOR_ELEMENTS = {
930
+ srgbClr: "srgb",
931
+ schemeClr: "scheme",
932
+ sysClr: "system",
933
+ prstClr: "preset",
934
+ scrgbClr: "scrgb",
935
+ hslClr: "hsl"
936
+ };
937
+ function colorValue(kind, element) {
938
+ const attribute2 = (name) => element.getAttribute(name) ?? "";
939
+ if (kind === "scrgb") return `${attribute2("r")},${attribute2("g")},${attribute2("b")}`;
940
+ if (kind === "hsl") return `${attribute2("hue")},${attribute2("sat")},${attribute2("lum")}`;
941
+ return attribute2("val");
942
+ }
943
+ function parseDrawingColorIn(container) {
944
+ if (!container) return void 0;
945
+ for (const element of elements(container)) {
946
+ const kind = COLOR_ELEMENTS[element.localName];
947
+ if (!kind || element.namespaceURI && element.namespaceURI !== NS.a) continue;
948
+ return parseDrawingColor(element);
949
+ }
950
+ return void 0;
951
+ }
952
+ function parseDrawingColor(element) {
953
+ const kind = COLOR_ELEMENTS[element.localName];
954
+ if (!kind) return void 0;
955
+ const color = {
956
+ kind,
957
+ value: colorValue(kind, element),
958
+ transforms: elements(element).map((child3) => ({
959
+ name: child3.localName,
960
+ value: child3.getAttribute("val") ?? ""
961
+ }))
962
+ };
963
+ const fallback = kind === "system" ? element.getAttribute("lastClr") : null;
964
+ if (fallback) color.fallback = fallback;
965
+ return color;
966
+ }
967
+ function parseDrawingColorList(container) {
968
+ if (!container) return [];
969
+ return elements(container).flatMap((element) => {
970
+ const color = parseDrawingColor(element);
971
+ return color ? [color] : [];
972
+ });
973
+ }
974
+
975
+ // drawingml/theme-model.ts
976
+ var THEME_COLOR_SLOTS = [
879
977
  "dk1",
880
978
  "lt1",
881
979
  "dk2",
@@ -889,46 +987,89 @@ var SCHEME_ORDER = [
889
987
  "hlink",
890
988
  "folHlink"
891
989
  ];
892
- function drawingChild(parent, local) {
893
- if (!parent) return void 0;
894
- for (const node of Array.from(parent.childNodes)) {
895
- const element = node;
896
- if (element.nodeType === 1 && element.localName === local && element.namespaceURI === DRAWING_NS)
897
- return element;
990
+
991
+ // drawingml/theme.ts
992
+ new Set(THEME_COLOR_SLOTS);
993
+ function nonEmpty(value) {
994
+ return value ? value : void 0;
995
+ }
996
+ function parseThemeColorScheme(scheme) {
997
+ const result = { colors: {} };
998
+ if (!scheme) return result;
999
+ const name = nonEmpty(scheme.getAttribute("name"));
1000
+ if (name) result.name = name;
1001
+ for (const slot2 of THEME_COLOR_SLOTS) {
1002
+ const color = parseDrawingColorIn(first(scheme, slot2, NS.a));
1003
+ if (color) result.colors[slot2] = color;
898
1004
  }
899
- return void 0;
1005
+ return result;
900
1006
  }
901
- function colorOf(slot2) {
902
- const srgb = drawingChild(slot2, "srgbClr");
903
- if (srgb) return srgb.getAttribute("val")?.toUpperCase() || void 0;
904
- const sys = drawingChild(slot2, "sysClr");
905
- if (sys) return sys.getAttribute("lastClr")?.toUpperCase() || void 0;
906
- return void 0;
1007
+ function parseFontCollection(collection) {
1008
+ const result = { scripts: {} };
1009
+ if (!collection) return result;
1010
+ const typeface = (local) => nonEmpty(first(collection, local, NS.a)?.getAttribute("typeface"));
1011
+ const latin = typeface("latin");
1012
+ const eastAsia = typeface("ea");
1013
+ const complexScript = typeface("cs");
1014
+ if (latin) result.latin = latin;
1015
+ if (eastAsia) result.eastAsia = eastAsia;
1016
+ if (complexScript) result.complexScript = complexScript;
1017
+ for (const font of elements(collection)) {
1018
+ if (font.localName !== "font") continue;
1019
+ const script = nonEmpty(font.getAttribute("script"));
1020
+ const face = nonEmpty(font.getAttribute("typeface"));
1021
+ if (script && face && !Object.hasOwn(result.scripts, script)) result.scripts[script] = face;
1022
+ }
1023
+ return result;
907
1024
  }
908
- function fontSetOf(element) {
909
- if (!element) return {};
910
- const latin = drawingChild(element, "latin")?.getAttribute("typeface") || void 0;
911
- const ea = drawingChild(element, "ea")?.getAttribute("typeface") || void 0;
912
- const cs = drawingChild(element, "cs")?.getAttribute("typeface") || void 0;
1025
+ function parseThemeFontScheme(scheme) {
1026
+ const result = {
1027
+ major: parseFontCollection(first(scheme, "majorFont", NS.a)),
1028
+ minor: parseFontCollection(first(scheme, "minorFont", NS.a))
1029
+ };
1030
+ const name = nonEmpty(scheme?.getAttribute("name"));
1031
+ if (name) result.name = name;
1032
+ return result;
1033
+ }
1034
+ function rootOf(source) {
1035
+ return "documentElement" in source ? source.documentElement : source;
1036
+ }
1037
+ function parseTheme(source) {
1038
+ const root = rootOf(source);
1039
+ const holder = first(root, "themeElements", NS.a) ?? root;
1040
+ const theme = {
1041
+ colorScheme: parseThemeColorScheme(first(holder, "clrScheme", NS.a)),
1042
+ fontScheme: parseThemeFontScheme(first(holder, "fontScheme", NS.a))
1043
+ };
1044
+ const name = nonEmpty(root.getAttribute("name"));
1045
+ if (name) theme.name = name;
1046
+ return theme;
1047
+ }
1048
+
1049
+ // drawingml/theme-color.ts
1050
+ function themeSlotHex(color) {
1051
+ if (!color) return void 0;
1052
+ const value = color.kind === "srgb" ? color.value : color.kind === "system" ? color.fallback : void 0;
1053
+ return value ? value.toUpperCase() : void 0;
1054
+ }
1055
+
1056
+ // docx/theme.ts
1057
+ function fontSetOf(collection) {
1058
+ const { latin, eastAsia, complexScript } = collection;
913
1059
  return {
914
1060
  ...latin ? { latin } : {},
915
- ...ea ? { eastAsia: ea } : {},
916
- ...cs ? { complexScript: cs } : {}
1061
+ ...eastAsia ? { eastAsia } : {},
1062
+ ...complexScript ? { complexScript } : {}
917
1063
  };
918
1064
  }
919
- function parseTheme(xml) {
920
- const document = parseXml2(xml);
921
- const root = document.documentElement;
922
- const clrScheme = Array.from(root.getElementsByTagNameNS(DRAWING_NS, "clrScheme"))[0];
1065
+ function parseTheme2(xml) {
1066
+ const theme = parseTheme(parseXml2(xml));
923
1067
  const colors = {};
924
- for (const slotName of SCHEME_ORDER) {
925
- const slot2 = drawingChild(clrScheme, slotName);
926
- const value = colorOf(slot2);
927
- if (value) colors[slotName] = value;
928
- }
929
- const fontScheme = Array.from(root.getElementsByTagNameNS(DRAWING_NS, "fontScheme"))[0];
930
- const major = drawingChild(fontScheme, "majorFont");
931
- const minor = drawingChild(fontScheme, "minorFont");
1068
+ for (const slot2 of THEME_COLOR_SLOTS) {
1069
+ const value = themeSlotHex(theme.colorScheme.colors[slot2]);
1070
+ if (value) colors[slot2] = value;
1071
+ }
1072
+ const { major, minor } = theme.fontScheme;
932
1073
  return { colors, colorMapping: {}, fonts: { major: fontSetOf(major), minor: fontSetOf(minor) } };
933
1074
  }
934
1075
  var MAPPING_KEYS = ["bg1", "tx1", "bg2", "tx2"];
@@ -966,9 +1107,6 @@ function parseColorSchemeMapping(xml) {
966
1107
  function isThemeColorToken(value) {
967
1108
  return isStThemeColor(value);
968
1109
  }
969
- function toHex(value) {
970
- return Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
971
- }
972
1110
  function fractionToThemeByte(fraction) {
973
1111
  return toHex(Math.round(Math.min(1, Math.max(0, fraction)) * 255));
974
1112
  }
@@ -1022,6 +1160,10 @@ function resolvePartPath(basePart, target) {
1022
1160
  }
1023
1161
  return resolved.join("/");
1024
1162
  }
1163
+ function relationshipsPartFor(partName) {
1164
+ const slash = partName.lastIndexOf("/");
1165
+ return `${partName.slice(0, slash + 1)}_rels/${partName.slice(slash + 1)}.rels`;
1166
+ }
1025
1167
  function nextRelationshipId(used) {
1026
1168
  let index = 1;
1027
1169
  while (used.has(`rId${index}`)) index++;
@@ -1152,7 +1294,7 @@ function parseCoreProperties(xml) {
1152
1294
  }
1153
1295
  return Object.keys(result).length ? result : void 0;
1154
1296
  }
1155
- var same = (a, b) => PROPERTY_FIELDS.every((field) => (a?.[field] ?? "") === (b?.[field] ?? ""));
1297
+ var same = (a2, b) => PROPERTY_FIELDS.every((field) => (a2?.[field] ?? "") === (b?.[field] ?? ""));
1156
1298
  async function applyCoreProperties(zip, next, prior) {
1157
1299
  if (same(next, prior)) return;
1158
1300
  const existing = zip.file(CORE_PATH);
@@ -1311,13 +1453,13 @@ function buildCommentsExtendedDocument(comments) {
1311
1453
  );
1312
1454
  const root = doc.documentElement;
1313
1455
  comments.forEach((comment, index) => {
1314
- const entry = doc.createElementNS(W15_NS, "w15:commentEx");
1315
- entry.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
1316
- if (comment.resolved) entry.setAttributeNS(W15_NS, "w15:done", "1");
1317
- const parentIndex = comments.findIndex((c) => c.id === comment.parentId);
1456
+ const entry2 = doc.createElementNS(W15_NS, "w15:commentEx");
1457
+ entry2.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
1458
+ if (comment.resolved) entry2.setAttributeNS(W15_NS, "w15:done", "1");
1459
+ const parentIndex = comments.findIndex((c2) => c2.id === comment.parentId);
1318
1460
  if (parentIndex >= 0)
1319
- entry.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
1320
- root.appendChild(entry);
1461
+ entry2.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
1462
+ root.appendChild(entry2);
1321
1463
  });
1322
1464
  return doc;
1323
1465
  }
@@ -1447,7 +1589,7 @@ function rangeEdges(runs, ranges) {
1447
1589
  const opens = /* @__PURE__ */ new Map();
1448
1590
  const closes = /* @__PURE__ */ new Map();
1449
1591
  const order = (key) => key.startsWith("comment:") ? 0 : 1;
1450
- for (const key of [...first3.keys()].sort((a, b) => order(a) - order(b))) {
1592
+ for (const key of [...first3.keys()].sort((a2, b) => order(a2) - order(b))) {
1451
1593
  if (!ranges?.before.has(key)) {
1452
1594
  const index = first3.get(key);
1453
1595
  (opens.get(index) ?? opens.set(index, []).get(index)).push(edgeFor(key, index));
@@ -1670,8 +1812,8 @@ function orderChildren(parent, order) {
1670
1812
  if (rank >= 0) previousRank = rank;
1671
1813
  return { element, index, rank: rank >= 0 ? rank : previousRank + 0.5 };
1672
1814
  });
1673
- const sorted = [...ranked].sort((a, b) => a.rank - b.rank || a.index - b.index);
1674
- if (sorted.every((entry, index) => entry.element === elements2[index])) return;
1815
+ const sorted = [...ranked].sort((a2, b) => a2.rank - b.rank || a2.index - b.index);
1816
+ if (sorted.every((entry2, index) => entry2.element === elements2[index])) return;
1675
1817
  for (const { element } of sorted) parent.appendChild(element);
1676
1818
  }
1677
1819
  var SECTPR_ORDER = [
@@ -2458,7 +2600,7 @@ function borderElement(doc, name, side) {
2458
2600
  }
2459
2601
  return element;
2460
2602
  }
2461
- var sameJson = (a, b) => JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
2603
+ var sameJson = (a2, b) => JSON.stringify(a2 ?? null) === JSON.stringify(b ?? null);
2462
2604
  function updateShading(doc, props, paragraph, base) {
2463
2605
  if (base && paragraph.shadingFill === base.shadingFill) return;
2464
2606
  for (const element of children2(props, "shd")) props.removeChild(element);
@@ -2650,8 +2792,8 @@ function reconcileBookmarks(doc, starts, ends, names, baseNames, nextId) {
2650
2792
  function setAttribute3(element, local, value) {
2651
2793
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
2652
2794
  }
2653
- function sameNumbering(a, b) {
2654
- return a?.numId === b?.numId && a?.level === b?.level;
2795
+ function sameNumbering(a2, b) {
2796
+ return a2?.numId === b?.numId && a2?.level === b?.level;
2655
2797
  }
2656
2798
  function writeNumberingProperties(doc, props, paragraph, base) {
2657
2799
  if (base && sameNumbering(paragraph.numbering, base.numbering)) return;
@@ -2834,11 +2976,11 @@ var allowedRunPropertyAttributes = {
2834
2976
  shd: ["val", "fill", "color", "themeFill", "themeFillTint", "themeFillShade"]
2835
2977
  };
2836
2978
  function hasUnexpectedAttributes(element, allowed, allowDateUtc = false) {
2837
- for (const attribute of Array.from(element.attributes)) {
2838
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
2839
- if (allowDateUtc && attribute.namespaceURI === WORD_DATE_UTC_NS && attribute.localName === "dateUtc")
2979
+ for (const attribute2 of Array.from(element.attributes)) {
2980
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
2981
+ if (allowDateUtc && attribute2.namespaceURI === WORD_DATE_UTC_NS && attribute2.localName === "dateUtc")
2840
2982
  continue;
2841
- if (attribute.namespaceURI !== WORD_NS || !allowed.includes(attribute.localName)) return true;
2983
+ if (attribute2.namespaceURI !== WORD_NS || !allowed.includes(attribute2.localName)) return true;
2842
2984
  }
2843
2985
  return false;
2844
2986
  }
@@ -2865,7 +3007,7 @@ function runPropertiesHaveUnknownContent(properties) {
2865
3007
  if (!isLigatures(property.getAttributeNS(WORD_2010_NS, "val")) || elements(property).length)
2866
3008
  return true;
2867
3009
  if (Array.from(property.attributes).some(
2868
- (attribute) => attribute.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute.namespaceURI !== WORD_2010_NS || attribute.localName !== "val")
3010
+ (attribute2) => attribute2.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute2.namespaceURI !== WORD_2010_NS || attribute2.localName !== "val")
2869
3011
  ))
2870
3012
  return true;
2871
3013
  continue;
@@ -3004,7 +3146,7 @@ var NAMED = {
3004
3146
  var POINT_TO_PX = 96 / 72;
3005
3147
  var WATERMARK_PREFIX = "PowerPlusWaterMarkObject";
3006
3148
  var DEFAULT_WATERMARK_COLOR = "#c0c0c0";
3007
- function colorOf2(value) {
3149
+ function colorOf(value) {
3008
3150
  const text = (value ?? "").trim().toLowerCase().split(/\s/)[0] ?? "";
3009
3151
  if (NAMED[text]) return NAMED[text];
3010
3152
  const hex = /^#?([0-9a-f]{6})$/.exec(text);
@@ -3012,20 +3154,20 @@ function colorOf2(value) {
3012
3154
  }
3013
3155
  function parseWatermarkShape(shape) {
3014
3156
  if (!shape || !(shape.getAttribute("id") ?? "").startsWith(WATERMARK_PREFIX)) return void 0;
3015
- const path = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
3016
- if (!path) return void 0;
3157
+ const path2 = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
3158
+ if (!path2) return void 0;
3017
3159
  const style = shape.getAttribute("style") ?? "";
3018
3160
  const fill = Array.from(shape.getElementsByTagNameNS(VML_NS, "fill"))[0];
3019
3161
  const opacity = fill?.getAttribute("opacity");
3020
3162
  const family = /font-family:\s*(?:&quot;|"|')?([^;"'&]+)/i.exec(
3021
- path.getAttribute("style") ?? ""
3163
+ path2.getAttribute("style") ?? ""
3022
3164
  )?.[1];
3023
3165
  const width = /width:\s*([\d.]+)pt/i.exec(style);
3024
3166
  const height = /height:\s*([\d.]+)pt/i.exec(style);
3025
3167
  const rotation = /rotation:\s*(-?[\d.]+)/i.exec(style);
3026
3168
  const spec = {
3027
- text: path.getAttribute("string") ?? "",
3028
- color: colorOf2(shape.getAttribute("fillcolor")),
3169
+ text: path2.getAttribute("string") ?? "",
3170
+ color: colorOf(shape.getAttribute("fillcolor")),
3029
3171
  semitransparent: opacity !== null && opacity !== "" && opacity !== "1",
3030
3172
  layout: rotation && Math.abs(Number(rotation[1]) % 360) > 1 ? "diagonal" : "horizontal",
3031
3173
  ...family ? { fontFamily: family.trim() } : {}
@@ -3080,11 +3222,11 @@ function buildWatermarkRun(doc, spec, uniqueId) {
3080
3222
  f.setAttribute("eqn", eqn);
3081
3223
  formulas.appendChild(f);
3082
3224
  }
3083
- const path = v("path");
3084
- path.setAttribute("textpathok", "t");
3085
- path.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
3086
- path.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
3087
- path.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
3225
+ const path2 = v("path");
3226
+ path2.setAttribute("textpathok", "t");
3227
+ path2.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
3228
+ path2.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
3229
+ path2.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
3088
3230
  const typePath = v("textpath");
3089
3231
  typePath.setAttribute("on", "t");
3090
3232
  typePath.setAttribute("fitshape", "t");
@@ -3097,7 +3239,7 @@ function buildWatermarkRun(doc, spec, uniqueId) {
3097
3239
  lock.setAttributeNS(VML_NS, "v:ext", "edit");
3098
3240
  lock.setAttribute("text", "t");
3099
3241
  lock.setAttribute("shapetype", "t");
3100
- for (const child3 of [formulas, path, typePath, handles, lock]) type.appendChild(child3);
3242
+ for (const child3 of [formulas, path2, typePath, handles, lock]) type.appendChild(child3);
3101
3243
  const size = watermarkSizePt(spec);
3102
3244
  const shape = v("shape");
3103
3245
  shape.setAttribute("id", `${WATERMARK_PREFIX}${uniqueId}`);
@@ -3137,7 +3279,7 @@ var add = (parent, ...items) => {
3137
3279
  return parent;
3138
3280
  };
3139
3281
  var emu = (px2) => String(Math.max(1, Math.round(px2 * EMU_PER_PIXEL)));
3140
- var descendants = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
3282
+ var descendants2 = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
3141
3283
  function paragraphsFor(doc, lines) {
3142
3284
  return (lines.length ? lines : [""]).map((line) => {
3143
3285
  const paragraph = makeW(doc, "p");
@@ -3229,23 +3371,23 @@ function buildTextBoxDrawing(doc, image, docPrId) {
3229
3371
  }
3230
3372
  function isSimpleTextBox(graphicData, anchored) {
3231
3373
  if (!graphicData || anchored) return false;
3232
- const content = descendants(graphicData, W_NS, "txbxContent")[0];
3374
+ const content = descendants2(graphicData, W_NS, "txbxContent")[0];
3233
3375
  if (!content) return false;
3234
3376
  const plain = (node, allowed) => Array.from(node.childNodes).filter(isElement).every((child3) => child3.namespaceURI === W_NS && allowed.includes(child3.localName));
3235
- return plain(content, ["p"]) && descendants(content, W_NS, "p").every(
3236
- (paragraph) => plain(paragraph, ["r"]) && descendants(paragraph, W_NS, "r").every((run) => plain(run, ["t"]))
3377
+ return plain(content, ["p"]) && descendants2(content, W_NS, "p").every(
3378
+ (paragraph) => plain(paragraph, ["r"]) && descendants2(paragraph, W_NS, "r").every((run) => plain(run, ["t"]))
3237
3379
  );
3238
3380
  }
3239
3381
  function textBoxHasBorder(graphicData) {
3240
- const spPr = graphicData && descendants(graphicData, WPS_NS, "spPr")[0];
3382
+ const spPr = graphicData && descendants2(graphicData, WPS_NS, "spPr")[0];
3241
3383
  const ln = spPr && Array.from(spPr.getElementsByTagNameNS(A_NS, "ln"))[0];
3242
3384
  return Boolean(ln && !ln.getElementsByTagNameNS(A_NS, "noFill").length);
3243
3385
  }
3244
3386
  function patchTextBox(doc, drawing, image, base) {
3245
3387
  if (image.widthPx !== base.widthPx || image.heightPx !== base.heightPx)
3246
3388
  for (const node of [
3247
- ...descendants(drawing, WP_NS, "extent"),
3248
- ...descendants(drawing, A_NS, "ext").filter(
3389
+ ...descendants2(drawing, WP_NS, "extent"),
3390
+ ...descendants2(drawing, A_NS, "ext").filter(
3249
3391
  (ext) => ext.parentNode?.localName === "xfrm"
3250
3392
  )
3251
3393
  ]) {
@@ -3253,14 +3395,14 @@ function patchTextBox(doc, drawing, image, base) {
3253
3395
  node.setAttribute("cy", emu(image.heightPx));
3254
3396
  }
3255
3397
  if (JSON.stringify(image.textBoxText) !== JSON.stringify(base.textBoxText)) {
3256
- const content = descendants(drawing, W_NS, "txbxContent")[0];
3398
+ const content = descendants2(drawing, W_NS, "txbxContent")[0];
3257
3399
  if (content) {
3258
3400
  for (const child3 of Array.from(content.childNodes)) content.removeChild(child3);
3259
3401
  add(content, ...paragraphsFor(doc, image.textBoxText ?? []));
3260
3402
  }
3261
3403
  }
3262
3404
  if (image.textBoxBorder !== false !== (base.textBoxBorder !== false)) {
3263
- const spPr = descendants(drawing, WPS_NS, "spPr")[0];
3405
+ const spPr = descendants2(drawing, WPS_NS, "spPr")[0];
3264
3406
  if (spPr) {
3265
3407
  for (const old of Array.from(spPr.childNodes).filter(
3266
3408
  (node) => isElement(node) && node.localName === "ln"
@@ -3330,8 +3472,8 @@ var CUSTOM_LAYOUT_ATTRIBUTES = [
3330
3472
  ];
3331
3473
  function parseCustomLayoutAttributes(get) {
3332
3474
  const custom = {};
3333
- for (const [key, attribute, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
3334
- const raw = get(attribute);
3475
+ for (const [key, attribute2, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
3476
+ const raw = get(attribute2);
3335
3477
  const value = kind === "flag" ? optionalBoolean(raw) : optionalScaled(raw, kind === "angle" ? 6e4 : 1e5);
3336
3478
  if (value !== void 0) custom[key] = value;
3337
3479
  }
@@ -3345,8 +3487,8 @@ var RELATIONSHIP_ATTRIBUTES = [
3345
3487
  ];
3346
3488
  function parseRelationshipIdAttributes(get) {
3347
3489
  const result = {};
3348
- for (const [property, attribute] of RELATIONSHIP_ATTRIBUTES) {
3349
- const value = optionalString(get(attribute));
3490
+ for (const [property, attribute2] of RELATIONSHIP_ATTRIBUTES) {
3491
+ const value = optionalString(get(attribute2));
3350
3492
  if (value) result[property] = value;
3351
3493
  }
3352
3494
  return result;
@@ -3408,7 +3550,7 @@ async function resolveDiagramDrawingPart(hostPart, dataRelId, drawingExtensionRe
3408
3550
  const entries = await host.readRelationshipEntries(diagramRelationshipsPart(dataPath));
3409
3551
  if (!entries) return void 0;
3410
3552
  const drawing = entries.find(
3411
- (entry) => (!drawingExtensionRelId || entry.id.trim() === drawingExtensionRelId) && entry.type.endsWith("/diagramDrawing")
3553
+ (entry2) => (!drawingExtensionRelId || entry2.id.trim() === drawingExtensionRelId) && entry2.type.endsWith("/diagramDrawing")
3412
3554
  );
3413
3555
  const id = drawing?.id.trim() ?? "";
3414
3556
  const target = drawing?.target.trim() ?? "";
@@ -3423,47 +3565,6 @@ var DIAGRAM_RELATIONSHIP_TYPES = {
3423
3565
  drawing: RELATIONSHIP_TYPES.diagramDrawing
3424
3566
  };
3425
3567
 
3426
- // diagram/dom.ts
3427
- function attributeReader(element) {
3428
- return (name) => {
3429
- if (!element) return void 0;
3430
- const direct = element.getAttribute(name);
3431
- if (direct !== null) return direct;
3432
- const attributes = element.attributes;
3433
- for (let index = 0; index < attributes.length; index++) {
3434
- const candidate = attributes.item(index);
3435
- if (candidate && candidate.localName === name) return candidate.value;
3436
- }
3437
- return void 0;
3438
- };
3439
- }
3440
- function stringAttribute(element, name) {
3441
- const value = attributeReader(element)(name)?.trim();
3442
- return value ? value : void 0;
3443
- }
3444
- function integerAttribute(element, name) {
3445
- const parsed = Number.parseInt(attributeReader(element)(name) ?? "", 10);
3446
- return Number.isFinite(parsed) ? parsed : void 0;
3447
- }
3448
- function booleanAttribute(element, name) {
3449
- const value = attributeReader(element)(name)?.trim().toLowerCase();
3450
- if (value === "1" || value === "true") return true;
3451
- if (value === "0" || value === "false") return false;
3452
- return void 0;
3453
- }
3454
- function descendants2(root, local) {
3455
- const result = [];
3456
- const visit = (node) => {
3457
- for (const child3 of Array.from(node.childNodes)) {
3458
- if (!isElement(child3)) continue;
3459
- if (child3.localName === local) result.push(child3);
3460
- visit(child3);
3461
- }
3462
- };
3463
- visit(root);
3464
- return result;
3465
- }
3466
-
3467
3568
  // diagram/data-model.ts
3468
3569
  var TRANSITION_TYPES = /* @__PURE__ */ new Set(["parTrans", "sibTrans"]);
3469
3570
  var STRUCTURAL_TYPES = /* @__PURE__ */ new Set(["doc", "pres", "parTrans", "sibTrans"]);
@@ -3487,7 +3588,7 @@ function connectionLabel(connection, transitionText) {
3487
3588
  function textBodyParagraphs(body) {
3488
3589
  if (!body) return [];
3489
3590
  return children(body, "p", NS.a).map(
3490
- (paragraph) => descendants2(paragraph, "t").map((run) => run.textContent ?? "").join("")
3591
+ (paragraph) => descendants(paragraph, "t").map((run) => run.textContent ?? "").join("")
3491
3592
  );
3492
3593
  }
3493
3594
  function parsePoint(element) {
@@ -3553,21 +3654,21 @@ function parseDiagramDataModel(source, part) {
3553
3654
  if (connection.modelId && connectionIds.has(connection.modelId))
3554
3655
  report("CONNECTION_ID_DUPLICATE", `Duplicate dgm:cxn modelId: ${connection.modelId}.`);
3555
3656
  if (connection.modelId) connectionIds.add(connection.modelId);
3556
- for (const [attribute, id] of [
3657
+ for (const [attribute2, id] of [
3557
3658
  ["srcId", connection.sourceId],
3558
3659
  ["destId", connection.destId]
3559
3660
  ])
3560
3661
  if (!ids.has(id))
3561
3662
  report(
3562
3663
  "CONNECTION_ENDPOINT_MISSING",
3563
- `dgm:cxn ${attribute} references missing point: ${id}.`
3664
+ `dgm:cxn ${attribute2} references missing point: ${id}.`
3564
3665
  );
3565
3666
  const label = connectionLabel(connection, transitionText);
3566
3667
  connections.push(label ? { ...connection, label } : connection);
3567
3668
  if ((!connection.type || connection.type === "parOf") && !parentById.has(connection.destId))
3568
3669
  parentById.set(connection.destId, connection.sourceId);
3569
3670
  }
3570
- const ext = descendants2(root, "dataModelExt")[0];
3671
+ const ext = descendants(root, "dataModelExt")[0];
3571
3672
  const drawingRelId = stringAttribute(ext, "relId");
3572
3673
  return {
3573
3674
  points,
@@ -3579,55 +3680,8 @@ function parseDiagramDataModel(source, part) {
3579
3680
  };
3580
3681
  }
3581
3682
 
3582
- // diagram/drawing-color.ts
3583
- var COLOR_ELEMENTS = {
3584
- srgbClr: "srgb",
3585
- schemeClr: "scheme",
3586
- sysClr: "system",
3587
- prstClr: "preset",
3588
- scrgbClr: "scrgb",
3589
- hslClr: "hsl"
3590
- };
3591
- function colorValue(kind, element) {
3592
- const attribute = (name) => element.getAttribute(name) ?? "";
3593
- if (kind === "scrgb") return `${attribute("r")},${attribute("g")},${attribute("b")}`;
3594
- if (kind === "hsl") return `${attribute("hue")},${attribute("sat")},${attribute("lum")}`;
3595
- return attribute("val");
3596
- }
3597
- function parseDrawingColorIn(container) {
3598
- if (!container) return void 0;
3599
- for (const element of elements(container)) {
3600
- const kind = COLOR_ELEMENTS[element.localName];
3601
- if (!kind || element.namespaceURI && element.namespaceURI !== NS.a) continue;
3602
- return parseDrawingColor(element);
3603
- }
3604
- return void 0;
3605
- }
3606
- function parseDrawingColor(element) {
3607
- const kind = COLOR_ELEMENTS[element.localName];
3608
- if (!kind) return void 0;
3609
- const color = {
3610
- kind,
3611
- value: colorValue(kind, element),
3612
- transforms: elements(element).map((child3) => ({
3613
- name: child3.localName,
3614
- value: child3.getAttribute("val") ?? ""
3615
- }))
3616
- };
3617
- const fallback = kind === "system" ? element.getAttribute("lastClr") : null;
3618
- if (fallback) color.fallback = fallback;
3619
- return color;
3620
- }
3621
- function parseDrawingColorList(container) {
3622
- if (!container) return [];
3623
- return elements(container).flatMap((element) => {
3624
- const color = parseDrawingColor(element);
3625
- return color ? [color] : [];
3626
- });
3627
- }
3628
-
3629
3683
  // diagram/definitions.ts
3630
- var rootOf = (source) => (typeof source === "string" ? parseXml(source, { label: "DiagramML" }) : source).documentElement;
3684
+ var rootOf2 = (source) => (typeof source === "string" ? parseXml(source, { label: "DiagramML" }) : source).documentElement;
3631
3685
  function parseDefinitionHeader(root) {
3632
3686
  const header = {
3633
3687
  uniqueId: stringAttribute(root, "uniqueId") ?? "",
@@ -3648,7 +3702,7 @@ function colorList(container) {
3648
3702
  return { ...method ? { method } : {}, colors: parseDrawingColorList(container) };
3649
3703
  }
3650
3704
  function parseDiagramColors(source) {
3651
- const root = rootOf(source);
3705
+ const root = rootOf2(source);
3652
3706
  const labels = children(root, "styleLbl", NS.dgm).map((label) => ({
3653
3707
  name: stringAttribute(label, "name") ?? "",
3654
3708
  fill: colorList(first(label, "fillClrLst", NS.dgm)),
@@ -3688,7 +3742,7 @@ function parseStyleReferences(style) {
3688
3742
  }
3689
3743
  var hasContent = (element) => Boolean(element && (element.attributes.length > 0 || elements(element).length > 0));
3690
3744
  function parseDiagramQuickStyle(source) {
3691
- const root = rootOf(source);
3745
+ const root = rootOf2(source);
3692
3746
  const labels = children(root, "styleLbl", NS.dgm).map((label) => ({
3693
3747
  name: stringAttribute(label, "name") ?? "",
3694
3748
  ...parseStyleReferences(first(label, "style", NS.dgm)),
@@ -3702,7 +3756,7 @@ function parseDiagramQuickStyle(source) {
3702
3756
  };
3703
3757
  }
3704
3758
  function parseDiagramLayoutSummary(source) {
3705
- const root = rootOf(source);
3759
+ const root = rootOf2(source);
3706
3760
  const header = parseDefinitionHeader(root);
3707
3761
  const family = resolveDiagramLayoutCategory(
3708
3762
  header.uniqueId,
@@ -3714,11 +3768,11 @@ function parseDiagramLayoutSummary(source) {
3714
3768
  ...header,
3715
3769
  ...family ? { family } : {},
3716
3770
  ...rootAlgorithm ? { rootAlgorithm } : {},
3717
- layoutNodeCount: descendants2(root, "layoutNode").length
3771
+ layoutNodeCount: descendants(root, "layoutNode").length
3718
3772
  };
3719
3773
  }
3720
3774
 
3721
- // diagram/drawing-fill.ts
3775
+ // drawingml/drawing-fill.ts
3722
3776
  var FILL_ELEMENTS = /* @__PURE__ */ new Set([
3723
3777
  "noFill",
3724
3778
  "solidFill",
@@ -3750,7 +3804,7 @@ function parseDrawingFill(properties) {
3750
3804
  });
3751
3805
  const angle = Number.parseInt(first(fill, "lin", NS.a)?.getAttribute("ang") ?? "", 10);
3752
3806
  const scaled = first(fill, "lin", NS.a)?.getAttribute("scaled");
3753
- const path = first(fill, "path", NS.a)?.getAttribute("path");
3807
+ const path2 = first(fill, "path", NS.a)?.getAttribute("path");
3754
3808
  const focus = first(first(fill, "path", NS.a), "fillToRect", NS.a);
3755
3809
  const tile = first(fill, "tileRect", NS.a);
3756
3810
  const tileRect = tile ? {
@@ -3772,7 +3826,7 @@ function parseDrawingFill(properties) {
3772
3826
  ...Number.isFinite(angle) ? { angle: angle / 6e4 } : {},
3773
3827
  ...scaled === "1" || scaled === "true" ? { scaled: true } : {},
3774
3828
  ...scaled === "0" || scaled === "false" ? { scaled: false } : {},
3775
- ...path ? { path } : {},
3829
+ ...path2 ? { path: path2 } : {},
3776
3830
  ...fillToRect && Object.values(fillToRect).every(Number.isFinite) ? { fillToRect } : {},
3777
3831
  ...tileRect && Object.values(tileRect).every(Number.isFinite) ? { tileRect } : {}
3778
3832
  };
@@ -3810,7 +3864,7 @@ function parseDrawingLine(ln) {
3810
3864
  return line;
3811
3865
  }
3812
3866
 
3813
- // diagram/drawing-text.ts
3867
+ // drawingml/drawing-text.ts
3814
3868
  function parseSpacing(parent) {
3815
3869
  for (const [name, unit, divisor] of [
3816
3870
  ["spcPts", "points", 100],
@@ -3876,20 +3930,20 @@ function parseDrawingTextBody(body) {
3876
3930
  const anchor = properties?.getAttribute("anchor");
3877
3931
  if (anchor) result.anchor = anchor;
3878
3932
  const insets = {};
3879
- for (const [key, attribute] of [
3933
+ for (const [key, attribute2] of [
3880
3934
  ["left", "lIns"],
3881
3935
  ["top", "tIns"],
3882
3936
  ["right", "rIns"],
3883
3937
  ["bottom", "bIns"]
3884
3938
  ]) {
3885
- const value = Number.parseInt(properties?.getAttribute(attribute) ?? "", 10);
3939
+ const value = Number.parseInt(properties?.getAttribute(attribute2) ?? "", 10);
3886
3940
  if (Number.isFinite(value)) insets[key] = value;
3887
3941
  }
3888
3942
  if (Object.keys(insets).length > 0) result.insetsEmu = insets;
3889
3943
  return result;
3890
3944
  }
3891
3945
 
3892
- // diagram/drawing-geometry.ts
3946
+ // drawingml/drawing-geometry.ts
3893
3947
  var int = (element, name) => Number.parseInt(element?.getAttribute(name) ?? "", 10);
3894
3948
  function parseFrame(container) {
3895
3949
  const off = first(container, "off", NS.a);
@@ -3913,18 +3967,18 @@ function parseTransform(xfrm) {
3913
3967
  ...booleanAttribute(xfrm, "flipV") ? { flipVertical: true } : {}
3914
3968
  };
3915
3969
  }
3916
- function parsePathCommands(path) {
3970
+ function parsePathCommands(path2) {
3917
3971
  const commands = [];
3918
3972
  const point = (element) => {
3919
3973
  const x = int(element, "x");
3920
3974
  const y = int(element, "y");
3921
3975
  return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : void 0;
3922
3976
  };
3923
- for (const element of Array.from(path.childNodes)) {
3977
+ for (const element of Array.from(path2.childNodes)) {
3924
3978
  if (element.nodeType !== 1) continue;
3925
3979
  const node = element;
3926
3980
  const points = children(node, "pt", NS.a).map(point);
3927
- if (points.some((entry) => entry === void 0)) return void 0;
3981
+ if (points.some((entry2) => entry2 === void 0)) return void 0;
3928
3982
  const [p0, p1, p2] = points;
3929
3983
  switch (node.localName) {
3930
3984
  case "moveTo":
@@ -3967,17 +4021,17 @@ function parseDrawingGeometry(spPr) {
3967
4021
  const custom = first(spPr, "custGeom", NS.a);
3968
4022
  if (custom) {
3969
4023
  const paths = [];
3970
- for (const path of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
3971
- const commands = parsePathCommands(path);
4024
+ for (const path2 of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
4025
+ const commands = parsePathCommands(path2);
3972
4026
  if (!commands) return { geometry: "custom", issue: "CUSTOM_GEOMETRY_GUIDES_UNSUPPORTED" };
3973
- const width = int(path, "w");
3974
- const height = int(path, "h");
4027
+ const width = int(path2, "w");
4028
+ const height = int(path2, "h");
3975
4029
  paths.push({
3976
4030
  commands,
3977
4031
  ...Number.isFinite(width) ? { width } : {},
3978
4032
  ...Number.isFinite(height) ? { height } : {},
3979
- ...path.getAttribute("fill") ? { fill: path.getAttribute("fill") } : {},
3980
- ...path.getAttribute("stroke") === "0" || path.getAttribute("stroke") === "false" ? { stroke: false } : {}
4033
+ ...path2.getAttribute("fill") ? { fill: path2.getAttribute("fill") } : {},
4034
+ ...path2.getAttribute("stroke") === "0" || path2.getAttribute("stroke") === "false" ? { stroke: false } : {}
3981
4035
  });
3982
4036
  }
3983
4037
  return { geometry: "custom", paths };
@@ -4319,60 +4373,1233 @@ async function resolveDiagramParts(diagram, readText) {
4319
4373
  diagram.notice = diagramNotice(diagram.rendering);
4320
4374
  }
4321
4375
 
4322
- // docx/drawing.ts
4323
- var WP_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
4324
- var A_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/main";
4325
- var VML_NS2 = "urn:schemas-microsoft-com:vml";
4326
- var WPS_NS2 = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape";
4327
- var W_NS2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
4328
- var PICTURE_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/picture";
4329
- function firstNS(parent, ns, local) {
4330
- if (!parent) return void 0;
4331
- for (const child3 of Array.from(parent.childNodes))
4332
- if (isElement(child3) && child3.namespaceURI === ns && child3.localName === local) return child3;
4333
- return void 0;
4376
+ // chart/color-style.ts
4377
+ var CHART_COLOR_STYLE_NS = "http://schemas.microsoft.com/office/drawing/2012/chartStyle";
4378
+ function chartColorStyleId(xml) {
4379
+ const root = parseXml(xml).documentElement;
4380
+ if (root.localName !== "colorStyle" || root.namespaceURI !== CHART_COLOR_STYLE_NS)
4381
+ return void 0;
4382
+ const value = root.getAttribute("id");
4383
+ if (!value || !/^\d+$/.test(value)) return void 0;
4384
+ const id = Number(value);
4385
+ return Number.isInteger(id) && id >= 0 ? id : void 0;
4334
4386
  }
4335
- function descendantNS(parent, ns, local) {
4336
- if (!parent) return void 0;
4337
- const stack = [parent];
4338
- while (stack.length) {
4339
- const node = stack.shift();
4340
- for (const child3 of Array.from(node.childNodes)) {
4341
- if (!isElement(child3)) continue;
4342
- if (child3.namespaceURI === ns && child3.localName === local) return child3;
4343
- stack.push(child3);
4387
+
4388
+ // chart/built-in-text-style.ts
4389
+ var C14 = NS.c14;
4390
+ function readBuiltInChartStyle(root) {
4391
+ for (const content of children(root, "AlternateContent", NS.mc)) {
4392
+ for (const choice of children(content, "Choice", NS.mc)) {
4393
+ const requires = choice.getAttribute("Requires")?.trim().split(/\s+/);
4394
+ if (!requires?.length || !requires.every((prefix) => choice.lookupNamespaceURI(prefix) === C14))
4395
+ continue;
4396
+ const modern = first(choice, "style", C14)?.getAttribute("val");
4397
+ if (modern && /^\d+$/.test(modern) && Number(modern) >= 101 && Number(modern) <= 148)
4398
+ return Number(modern);
4344
4399
  }
4345
4400
  }
4346
- return void 0;
4401
+ const legacy = first(root, "style", NS.c) ?? first(first(first(root, "AlternateContent", NS.mc), "Fallback", NS.mc), "style", NS.c);
4402
+ const value = legacy?.getAttribute("val");
4403
+ if (!legacy) return 2;
4404
+ return value && /^\d+$/.test(value) && Number.isSafeInteger(Number(value)) ? Number(value) : void 0;
4347
4405
  }
4348
- function emuToPx(value) {
4349
- const n = value ? Number(value) : NaN;
4350
- return Number.isFinite(n) ? Math.round(n / EMU_PER_PIXEL) : 0;
4406
+
4407
+ // chart/read-appearance.ts
4408
+ function readChartAppearance(text, properties) {
4409
+ const out = {};
4410
+ const size = Number(text?.getAttribute("sz") ?? NaN);
4411
+ if (Number.isFinite(size) && size > 0) out.fontSize = size / 100;
4412
+ for (const [attribute2, key] of [
4413
+ ["b", "bold"],
4414
+ ["i", "italic"]
4415
+ ]) {
4416
+ const value = text?.getAttribute(attribute2);
4417
+ if (value !== null && value !== void 0) out[key] = value === "1" || value === "true";
4418
+ }
4419
+ const typeface = first(text, "latin", NS.a)?.getAttribute("typeface");
4420
+ const underline = text?.getAttribute("u");
4421
+ if (underline) out.underline = underline !== "none";
4422
+ if (typeface) out.typeface = typeface;
4423
+ const color = parseDrawingColorIn(first(text, "solidFill", NS.a));
4424
+ if (color) out.textColor = color;
4425
+ const fill = parseDrawingFill(properties);
4426
+ const line = parseDrawingLine(first(properties, "ln", NS.a));
4427
+ if (fill) out.fill = fill;
4428
+ if (line) out.line = line;
4429
+ const effects = first(text, "effectLst", NS.a);
4430
+ if (effects) out.textEffectsXml = buildXml(effects);
4431
+ return out;
4351
4432
  }
4352
- function guessContentType(partName) {
4353
- const extension = partName.split(".").pop()?.toLowerCase();
4354
- const known = {
4355
- png: "image/png",
4356
- jpg: "image/jpeg",
4357
- jpeg: "image/jpeg",
4358
- gif: "image/gif",
4359
- bmp: "image/bmp",
4360
- svg: "image/svg+xml",
4361
- tif: "image/tiff",
4362
- tiff: "image/tiff",
4363
- emf: "image/x-emf",
4364
- wmf: "image/x-wmf"
4433
+
4434
+ // chart/formatting-nodes.ts
4435
+ function chartFormattingNodes(root) {
4436
+ const chart = first(root, "chart", NS.c);
4437
+ const plot = first(chart, "plotArea", NS.c);
4438
+ const category = first(plot, "catAx", NS.c) ?? first(plot, "dateAx", NS.c);
4439
+ const values = plot ? children(plot, "valAx", NS.c) : [];
4440
+ return {
4441
+ chartArea: root,
4442
+ plotArea: plot,
4443
+ title: first(chart, "title", NS.c),
4444
+ legend: first(chart, "legend", NS.c),
4445
+ categoryAxis: category ?? values[0],
4446
+ valueAxis: category ? values[0] : values[1],
4447
+ gridlineMajor: first(values[0], "majorGridlines", NS.c),
4448
+ gridlineMinor: first(values[0], "minorGridlines", NS.c)
4365
4449
  };
4366
- return extension && known[extension] || "application/octet-stream";
4367
4450
  }
4368
- function resolvePicture(relId, context) {
4369
- const rel = context.rels.get(relId);
4370
- if (!rel || rel.mode === "External") return void 0;
4371
- const partName = resolveInternalTarget(rel.target);
4372
- if (!context.mediaParts.has(partName)) return void 0;
4373
- return {
4374
- relId,
4375
- partName,
4451
+
4452
+ // chart/manual-layout.ts
4453
+ function readChartManualLayoutValues(value) {
4454
+ const result = {};
4455
+ const enumeration = (name, values) => {
4456
+ const raw = value(name);
4457
+ return values.includes(raw) ? raw : void 0;
4458
+ };
4459
+ const target = enumeration("layoutTarget", ["inner", "outer"]);
4460
+ if (target) result.layoutTarget = target;
4461
+ for (const [xml, key] of [
4462
+ ["xMode", "xMode"],
4463
+ ["yMode", "yMode"],
4464
+ ["wMode", "widthMode"],
4465
+ ["hMode", "heightMode"]
4466
+ ]) {
4467
+ const mode = enumeration(xml, ["edge", "factor"]);
4468
+ if (mode) result[key] = mode;
4469
+ }
4470
+ for (const [xml, key] of [
4471
+ ["x", "x"],
4472
+ ["y", "y"],
4473
+ ["w", "width"],
4474
+ ["h", "height"]
4475
+ ]) {
4476
+ const raw = value(xml);
4477
+ if (typeof raw !== "string" && typeof raw !== "number" || typeof raw === "string" && !raw.trim())
4478
+ continue;
4479
+ const number = Number(raw);
4480
+ if (Number.isFinite(number)) result[key] = number;
4481
+ }
4482
+ return Object.keys(result).length ? result : void 0;
4483
+ }
4484
+
4485
+ // chart/read-formatting.ts
4486
+ var c = (parent, name) => first(parent, name, NS.c);
4487
+ var a = (parent, name) => first(parent, name, NS.a);
4488
+ function entry(node) {
4489
+ const body = c(node, "txPr");
4490
+ const paragraph = a(body, "p");
4491
+ const defaults = a(a(paragraph, "pPr"), "defRPr");
4492
+ const rich = c(c(node, "tx"), "rich");
4493
+ const richParagraph = a(rich, "p");
4494
+ const textBody = parseDrawingTextBody(rich);
4495
+ const manual = c(c(node, "layout"), "manualLayout");
4496
+ const layout2 = manual ? readChartManualLayoutValues((name) => c(manual, name)?.getAttribute("val")) : void 0;
4497
+ const overlay = c(node, "overlay")?.getAttribute("val");
4498
+ const out = {
4499
+ sourceXml: buildXml(node),
4500
+ ...layout2 ? { layout: layout2 } : {},
4501
+ ...overlay === "0" || overlay === "false" ? { overlay: false } : overlay === "1" || overlay === "true" ? { overlay: true } : {},
4502
+ ...readChartAppearance(defaults, c(node, "spPr")),
4503
+ ...readChartAppearance(a(a(richParagraph, "pPr"), "defRPr"), void 0),
4504
+ ...readChartAppearance(a(a(richParagraph, "r"), "rPr"), void 0),
4505
+ ...textBody ? { textBody, textBodyStyle: readChartAppearance(defaults, void 0) } : {}
4506
+ };
4507
+ if (["catAx", "dateAx", "valAx"].includes(node.localName)) {
4508
+ const deleted = c(node, "delete")?.getAttribute("val");
4509
+ if (deleted !== void 0) out.axisVisible = deleted !== "1" && deleted !== "true";
4510
+ out.labelsVisible = out.axisVisible !== false && c(node, "tickLblPos")?.getAttribute("val") !== "none";
4511
+ }
4512
+ return out;
4513
+ }
4514
+ function readChartFormatting(root) {
4515
+ const nodes = chartFormattingNodes(root);
4516
+ const entries = Object.fromEntries(
4517
+ Object.entries(nodes).flatMap(([name, node]) => node ? [[name, entry(node)]] : [])
4518
+ );
4519
+ const builtInStyle = readBuiltInChartStyle(root);
4520
+ const textBody = c(root, "txPr");
4521
+ const textDefaults = textBody ? {
4522
+ sourceXml: buildXml(textBody),
4523
+ ...readChartAppearance(a(a(a(textBody, "p"), "pPr"), "defRPr"), void 0)
4524
+ } : void 0;
4525
+ return Object.keys(entries).length ? {
4526
+ entries,
4527
+ sourceXml: buildXml(root),
4528
+ ...builtInStyle === void 0 ? {} : { builtInStyle },
4529
+ ...textDefaults ? { textDefaults } : {}
4530
+ } : void 0;
4531
+ }
4532
+
4533
+ // chart/data-cache.ts
4534
+ function chartCacheValues(cache) {
4535
+ if (!cache) return [];
4536
+ const numeric = cache.type === "number";
4537
+ const out = [];
4538
+ for (const point of cache.points) {
4539
+ const text = point.value;
4540
+ out[point.index ?? out.length] = numeric && text.trim() !== "" && Number.isFinite(Number(text)) ? Number(text) : text;
4541
+ }
4542
+ const size = Math.max(cache.pointCount ?? 0, out.length);
4543
+ for (let index = 0; index < size; index++) if (out[index] === void 0) out[index] = "";
4544
+ return out;
4545
+ }
4546
+
4547
+ // chart/xml-fragment.ts
4548
+ var CHART_ROOT_BINDINGS = /* @__PURE__ */ new Map([
4549
+ ["c", NS.c],
4550
+ ["a", NS.a],
4551
+ ["r", NS.r]
4552
+ ]);
4553
+ var DECLARATION = / xmlns:([A-Za-z_][\w.-]*)="([^"]*)"/g;
4554
+ function stripDeclarations(xml, bindings) {
4555
+ const conflicting = /* @__PURE__ */ new Set();
4556
+ for (const [, prefix, uri] of xml.matchAll(DECLARATION))
4557
+ if (prefix !== void 0 && bindings.has(prefix) && bindings.get(prefix) !== uri)
4558
+ conflicting.add(prefix);
4559
+ return xml.replace(
4560
+ DECLARATION,
4561
+ (match, prefix, uri) => bindings.get(prefix) === uri && !conflicting.has(prefix) ? "" : match
4562
+ );
4563
+ }
4564
+ var innerXml = (element) => stripDeclarations(elements(element).map(buildXml).join(""), CHART_ROOT_BINDINGS);
4565
+
4566
+ // chart/parse-util.ts
4567
+ var cChild = (parent, local) => first(parent, local, NS.c);
4568
+ var attribute = (element, name) => element?.hasAttribute(name) ? element.getAttribute(name) ?? void 0 : void 0;
4569
+ var cVal = (parent, local) => attribute(cChild(parent, local), "val");
4570
+ var path = (element) => `c:${element.parentNode?.localName ?? ""}/c:${element.localName}`;
4571
+ function malformed(context, element, value) {
4572
+ context.issues.push({
4573
+ code: "CHART_VALUE_INVALID",
4574
+ message: `${path(element)} has an unreadable value "${value}".`
4575
+ });
4576
+ }
4577
+ function cBool(context, parent, local) {
4578
+ const element = cChild(parent, local);
4579
+ if (!element) return void 0;
4580
+ const raw = attribute(element, "val");
4581
+ if (raw === void 0) return true;
4582
+ const value = raw.trim().toLowerCase();
4583
+ if (value === "1" || value === "true") return true;
4584
+ if (value === "0" || value === "false") return false;
4585
+ malformed(context, element, raw);
4586
+ return void 0;
4587
+ }
4588
+ function cNumber(context, parent, local) {
4589
+ const element = cChild(parent, local);
4590
+ const raw = attribute(element, "val");
4591
+ if (!element || raw === void 0) return void 0;
4592
+ const value = raw.trim() ? Number(raw) : Number.NaN;
4593
+ if (Number.isFinite(value)) return value;
4594
+ malformed(context, element, raw);
4595
+ return void 0;
4596
+ }
4597
+ function reportUnmodelled(context, element, handled) {
4598
+ for (const child3 of elements(element)) {
4599
+ if (handled.has(child3.localName)) continue;
4600
+ context.issues.push({
4601
+ code: "CHART_ELEMENT_NOT_MODELLED",
4602
+ message: `${path(child3)} is not modelled; it is kept only in the source part.`
4603
+ });
4604
+ }
4605
+ }
4606
+ function extensionList(parent) {
4607
+ const extLst = cChild(parent, "extLst");
4608
+ return extLst ? buildXml(extLst) : void 0;
4609
+ }
4610
+ function readShapeFields(spPr) {
4611
+ const out = {};
4612
+ const fill = parseDrawingFill(spPr);
4613
+ if (fill) out.fill = fill;
4614
+ const line = parseDrawingLine(first(spPr, "ln", NS.a));
4615
+ if (line) out.line = line;
4616
+ const effects = first(spPr, "effectLst", NS.a);
4617
+ if (effects) out.effectsXml = buildXml(effects);
4618
+ return out;
4619
+ }
4620
+ function shapeProperties(parent) {
4621
+ const spPr = cChild(parent, "spPr");
4622
+ if (!spPr) return void 0;
4623
+ const out = readShapeFields(spPr);
4624
+ const source = innerXml(spPr);
4625
+ if (source) out.sourceXml = source;
4626
+ return out;
4627
+ }
4628
+ function chartTextBody(element) {
4629
+ const body = parseDrawingTextBody(element);
4630
+ if (!body || !element) return body;
4631
+ const source = innerXml(element);
4632
+ if (source) body.sourceXml = source;
4633
+ return body;
4634
+ }
4635
+ var textProperties = (parent) => chartTextBody(cChild(parent, "txPr"));
4636
+ function chartLines(parent, local) {
4637
+ const element = cChild(parent, local);
4638
+ if (!element) return void 0;
4639
+ const spPr = shapeProperties(element);
4640
+ return spPr ? { spPr } : {};
4641
+ }
4642
+ function numberFormat(parent) {
4643
+ const element = cChild(parent, "numFmt");
4644
+ const formatCode = attribute(element, "formatCode");
4645
+ if (formatCode === void 0) return void 0;
4646
+ const linked = attribute(element, "sourceLinked");
4647
+ return {
4648
+ formatCode,
4649
+ ...linked === "1" || linked === "true" ? { sourceLinked: true } : {},
4650
+ ...linked === "0" || linked === "false" ? { sourceLinked: false } : {}
4651
+ };
4652
+ }
4653
+ function readLayoutFields(layout2) {
4654
+ const manual = cChild(layout2, "manualLayout");
4655
+ return (manual && readChartManualLayoutValues((name) => cVal(manual, name))) ?? {};
4656
+ }
4657
+ function manualLayout(parent) {
4658
+ const layout2 = cChild(parent, "layout");
4659
+ if (!layout2) return void 0;
4660
+ const out = readLayoutFields(layout2);
4661
+ const source = innerXml(layout2);
4662
+ if (source) out.sourceXml = source;
4663
+ return out;
4664
+ }
4665
+ function assignDefined(target, values) {
4666
+ for (const [key, value] of Object.entries(values))
4667
+ if (value !== void 0) target[key] = value;
4668
+ return target;
4669
+ }
4670
+
4671
+ // chart/parse-text.ts
4672
+ function parseCache(node) {
4673
+ const cache = {
4674
+ type: node.localName === "numCache" || node.localName === "numLit" ? "number" : "string",
4675
+ points: children(node, "pt", NS.c).map((pt) => {
4676
+ const point = { value: cChild(pt, "v")?.textContent ?? "" };
4677
+ const index = Number(attribute(pt, "idx") ?? Number.NaN);
4678
+ if (Number.isInteger(index) && index >= 0) point.index = index;
4679
+ const formatCode2 = attribute(pt, "formatCode");
4680
+ if (formatCode2 !== void 0) point.formatCode = formatCode2;
4681
+ return point;
4682
+ })
4683
+ };
4684
+ const count = Number(cVal(node, "ptCount") ?? Number.NaN);
4685
+ if (Number.isInteger(count) && count >= 0) cache.pointCount = count;
4686
+ const formatCode = cChild(node, "formatCode")?.textContent;
4687
+ if (formatCode) cache.formatCode = formatCode;
4688
+ return cache;
4689
+ }
4690
+ function parseDataSource(element) {
4691
+ if (!element) return void 0;
4692
+ const source = {};
4693
+ const ref = cChild(element, "numRef") ?? cChild(element, "strRef") ?? cChild(element, "multiLvlStrRef");
4694
+ if (ref) {
4695
+ source.kind = ref.localName;
4696
+ const formula = cChild(ref, "f")?.textContent;
4697
+ if (formula) source.formula = formula;
4698
+ const cache = cChild(ref, "numCache") ?? cChild(ref, "strCache");
4699
+ if (cache) source.cache = parseCache(cache);
4700
+ const levels = cChild(ref, "multiLvlStrCache");
4701
+ if (levels) {
4702
+ source.levels = children(levels, "lvl", NS.c).map(parseCache);
4703
+ const count = Number(cVal(levels, "ptCount") ?? Number.NaN);
4704
+ if (Number.isInteger(count) && count >= 0) source.levelPointCount = count;
4705
+ }
4706
+ return source;
4707
+ }
4708
+ const literal = cChild(element, "numLit") ?? cChild(element, "strLit");
4709
+ if (literal) {
4710
+ source.kind = literal.localName;
4711
+ source.cache = parseCache(literal);
4712
+ }
4713
+ return source;
4714
+ }
4715
+ function parseChartText(context, tx, allowValue) {
4716
+ if (!tx) return void 0;
4717
+ const text = {};
4718
+ const rich = chartTextBody(cChild(tx, "rich"));
4719
+ if (rich) text.rich = rich;
4720
+ if (cChild(tx, "strRef")) {
4721
+ const reference = parseDataSource(tx);
4722
+ if (reference) text.reference = reference;
4723
+ }
4724
+ const value = allowValue ? cChild(tx, "v")?.textContent : void 0;
4725
+ if (value !== void 0 && value !== null) text.value = value;
4726
+ const cached2 = chartCacheValues(text.reference?.cache)[0];
4727
+ const flat = text.value ?? (rich ? rich.text : cached2 === void 0 ? void 0 : String(cached2));
4728
+ if (flat !== void 0) text.text = flat;
4729
+ reportUnmodelled(context, tx, new Set(allowValue ? ["strRef", "v"] : ["rich", "strRef"]));
4730
+ return text;
4731
+ }
4732
+ var TITLE = /* @__PURE__ */ new Set(["tx", "layout", "overlay", "spPr", "txPr", "extLst"]);
4733
+ function parseTitle(context, element) {
4734
+ const tx = parseChartText(context, cChild(element, "tx"), false);
4735
+ reportUnmodelled(context, element, TITLE);
4736
+ return assignDefined(
4737
+ {},
4738
+ {
4739
+ tx,
4740
+ text: tx?.text,
4741
+ overlay: cBool(context, element, "overlay"),
4742
+ layout: manualLayout(element),
4743
+ spPr: shapeProperties(element),
4744
+ txPr: textProperties(element),
4745
+ extLst: extensionList(element)
4746
+ }
4747
+ );
4748
+ }
4749
+ var LABEL_OPTIONS = [
4750
+ "delete",
4751
+ "showLegendKey",
4752
+ "showVal",
4753
+ "showCatName",
4754
+ "showSerName",
4755
+ "showPercent",
4756
+ "showBubbleSize",
4757
+ "separator",
4758
+ "dLblPos",
4759
+ "numFmt",
4760
+ "spPr",
4761
+ "txPr",
4762
+ "extLst"
4763
+ ];
4764
+ function labelOptions(context, element) {
4765
+ const flag2 = (local) => cBool(context, element, local);
4766
+ return assignDefined(
4767
+ {},
4768
+ {
4769
+ deleted: flag2("delete"),
4770
+ showLegendKey: flag2("showLegendKey"),
4771
+ showValue: flag2("showVal"),
4772
+ showCategoryName: flag2("showCatName"),
4773
+ showSeriesName: flag2("showSerName"),
4774
+ showPercent: flag2("showPercent"),
4775
+ showBubbleSize: flag2("showBubbleSize"),
4776
+ separator: cChild(element, "separator")?.textContent ?? void 0,
4777
+ position: cVal(element, "dLblPos"),
4778
+ numberFormat: numberFormat(element),
4779
+ spPr: shapeProperties(element),
4780
+ txPr: textProperties(element),
4781
+ extLst: extensionList(element)
4782
+ }
4783
+ );
4784
+ }
4785
+ var LABEL = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "idx", "layout", "tx"]);
4786
+ var LABELS = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "dLbl", "showLeaderLines", "leaderLines"]);
4787
+ function parseDataLabels(context, element) {
4788
+ if (!element) return void 0;
4789
+ const labels = children(element, "dLbl", NS.c).map((node) => {
4790
+ reportUnmodelled(context, node, LABEL);
4791
+ return assignDefined(labelOptions(context, node), {
4792
+ index: cNumber(context, node, "idx"),
4793
+ tx: parseChartText(context, cChild(node, "tx"), false),
4794
+ layout: manualLayout(node)
4795
+ });
4796
+ });
4797
+ reportUnmodelled(context, element, LABELS);
4798
+ return assignDefined(
4799
+ { ...labelOptions(context, element), labels },
4800
+ {
4801
+ showLeaderLines: cBool(context, element, "showLeaderLines"),
4802
+ leaderLines: chartLines(element, "leaderLines")
4803
+ }
4804
+ );
4805
+ }
4806
+
4807
+ // chart/parse-chrome.ts
4808
+ var SURFACE = /* @__PURE__ */ new Set(["thickness", "spPr", "pictureOptions", "extLst"]);
4809
+ function parseSurface(context, element) {
4810
+ if (!element) return void 0;
4811
+ reportUnmodelled(context, element, SURFACE);
4812
+ const pictureOptions = cChild(element, "pictureOptions");
4813
+ return assignDefined(
4814
+ {},
4815
+ {
4816
+ thickness: cNumber(context, element, "thickness"),
4817
+ spPr: shapeProperties(element),
4818
+ pictureOptionsXml: pictureOptions ? buildXml(pictureOptions) : void 0,
4819
+ extLst: extensionList(element)
4820
+ }
4821
+ );
4822
+ }
4823
+ var DATA_TABLE = /* @__PURE__ */ new Set([
4824
+ "showHorzBorder",
4825
+ "showVertBorder",
4826
+ "showOutline",
4827
+ "showKeys",
4828
+ "spPr",
4829
+ "txPr",
4830
+ "extLst"
4831
+ ]);
4832
+ function parseDataTable(context, element) {
4833
+ if (!element) return void 0;
4834
+ reportUnmodelled(context, element, DATA_TABLE);
4835
+ return assignDefined(
4836
+ {},
4837
+ {
4838
+ showHorizontalBorder: cBool(context, element, "showHorzBorder"),
4839
+ showVerticalBorder: cBool(context, element, "showVertBorder"),
4840
+ showOutline: cBool(context, element, "showOutline"),
4841
+ showKeys: cBool(context, element, "showKeys"),
4842
+ spPr: shapeProperties(element),
4843
+ txPr: textProperties(element),
4844
+ extLst: extensionList(element)
4845
+ }
4846
+ );
4847
+ }
4848
+ var DISPLAY_UNITS = /* @__PURE__ */ new Set(["custUnit", "builtInUnit", "dispUnitsLbl", "extLst"]);
4849
+ var DISPLAY_UNITS_LABEL = /* @__PURE__ */ new Set(["layout", "tx", "spPr", "txPr"]);
4850
+ function parseDisplayUnits(context, element) {
4851
+ if (!element) return void 0;
4852
+ reportUnmodelled(context, element, DISPLAY_UNITS);
4853
+ const labelElement = cChild(element, "dispUnitsLbl");
4854
+ let label;
4855
+ if (labelElement) {
4856
+ reportUnmodelled(context, labelElement, DISPLAY_UNITS_LABEL);
4857
+ label = assignDefined(
4858
+ {},
4859
+ {
4860
+ layout: manualLayout(labelElement),
4861
+ tx: parseChartText(context, cChild(labelElement, "tx"), false),
4862
+ spPr: shapeProperties(labelElement),
4863
+ txPr: textProperties(labelElement)
4864
+ }
4865
+ );
4866
+ }
4867
+ return assignDefined(
4868
+ {},
4869
+ {
4870
+ builtInUnit: cVal(element, "builtInUnit"),
4871
+ customUnit: cNumber(context, element, "custUnit"),
4872
+ label,
4873
+ extLst: extensionList(element)
4874
+ }
4875
+ );
4876
+ }
4877
+
4878
+ // chart/parse-series.ts
4879
+ var MARKER = /* @__PURE__ */ new Set(["symbol", "size", "spPr", "extLst"]);
4880
+ function parseMarker(context, element) {
4881
+ if (!element) return void 0;
4882
+ reportUnmodelled(context, element, MARKER);
4883
+ return assignDefined(
4884
+ {},
4885
+ {
4886
+ symbol: cVal(element, "symbol"),
4887
+ size: cNumber(context, element, "size"),
4888
+ spPr: shapeProperties(element),
4889
+ extLst: extensionList(element)
4890
+ }
4891
+ );
4892
+ }
4893
+ var POINT = /* @__PURE__ */ new Set([
4894
+ "idx",
4895
+ "invertIfNegative",
4896
+ "marker",
4897
+ "bubble3D",
4898
+ "explosion",
4899
+ "spPr",
4900
+ "extLst"
4901
+ ]);
4902
+ function parseDataPoint(context, element) {
4903
+ reportUnmodelled(context, element, POINT);
4904
+ const index = cNumber(context, element, "idx");
4905
+ return assignDefined(
4906
+ {},
4907
+ {
4908
+ index: index !== void 0 && Number.isInteger(index) && index >= 0 ? index : void 0,
4909
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
4910
+ bubble3D: cBool(context, element, "bubble3D"),
4911
+ explosion: cNumber(context, element, "explosion"),
4912
+ marker: parseMarker(context, cChild(element, "marker")),
4913
+ spPr: shapeProperties(element),
4914
+ extLst: extensionList(element)
4915
+ }
4916
+ );
4917
+ }
4918
+ var SERIES = /* @__PURE__ */ new Set([
4919
+ "idx",
4920
+ "order",
4921
+ "tx",
4922
+ "spPr",
4923
+ "invertIfNegative",
4924
+ "dPt",
4925
+ "dLbls",
4926
+ "cat",
4927
+ "val",
4928
+ "xVal",
4929
+ "yVal",
4930
+ "smooth",
4931
+ "marker",
4932
+ "explosion",
4933
+ "bubbleSize",
4934
+ "bubble3D",
4935
+ "shape",
4936
+ "extLst"
4937
+ ]);
4938
+ function parseSeries(context, element) {
4939
+ reportUnmodelled(context, element, SERIES);
4940
+ return assignDefined(
4941
+ { dataPoints: children(element, "dPt", NS.c).map((point) => parseDataPoint(context, point)) },
4942
+ {
4943
+ index: cNumber(context, element, "idx"),
4944
+ order: cNumber(context, element, "order"),
4945
+ tx: parseChartText(context, cChild(element, "tx"), true),
4946
+ spPr: shapeProperties(element),
4947
+ marker: parseMarker(context, cChild(element, "marker")),
4948
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
4949
+ categories: parseDataSource(cChild(element, "cat")),
4950
+ values: parseDataSource(cChild(element, "val")),
4951
+ xValues: parseDataSource(cChild(element, "xVal")),
4952
+ yValues: parseDataSource(cChild(element, "yVal")),
4953
+ bubbleSizes: parseDataSource(cChild(element, "bubbleSize")),
4954
+ smooth: cBool(context, element, "smooth"),
4955
+ invertIfNegative: cBool(context, element, "invertIfNegative"),
4956
+ explosion: cNumber(context, element, "explosion"),
4957
+ bubble3D: cBool(context, element, "bubble3D"),
4958
+ shape: cVal(element, "shape"),
4959
+ extLst: extensionList(element)
4960
+ }
4961
+ );
4962
+ }
4963
+
4964
+ // chart/parse-plot.ts
4965
+ var CHART_GROUP_ELEMENTS = {
4966
+ barChart: { kind: "bar", is3D: false },
4967
+ bar3DChart: { kind: "bar", is3D: true },
4968
+ lineChart: { kind: "line", is3D: false },
4969
+ line3DChart: { kind: "line", is3D: true },
4970
+ areaChart: { kind: "area", is3D: false },
4971
+ area3DChart: { kind: "area", is3D: true },
4972
+ pieChart: { kind: "pie", is3D: false },
4973
+ pie3DChart: { kind: "pie", is3D: true },
4974
+ ofPieChart: { kind: "ofPie", is3D: false },
4975
+ doughnutChart: { kind: "doughnut", is3D: false },
4976
+ scatterChart: { kind: "scatter", is3D: false },
4977
+ radarChart: { kind: "radar", is3D: false },
4978
+ bubbleChart: { kind: "bubble", is3D: false },
4979
+ stockChart: { kind: "stock", is3D: false },
4980
+ surfaceChart: { kind: "surface", is3D: false },
4981
+ surface3DChart: { kind: "surface", is3D: true }
4982
+ };
4983
+ var AXIS_ELEMENTS = {
4984
+ catAx: "cat",
4985
+ valAx: "val",
4986
+ dateAx: "date",
4987
+ serAx: "ser"
4988
+ };
4989
+ var GROUP = /* @__PURE__ */ new Set([
4990
+ "ser",
4991
+ "axId",
4992
+ "varyColors",
4993
+ "dLbls",
4994
+ "barDir",
4995
+ "grouping",
4996
+ "gapWidth",
4997
+ "overlap",
4998
+ "gapDepth",
4999
+ "shape",
5000
+ "marker",
5001
+ "smooth",
5002
+ "dropLines",
5003
+ "hiLowLines",
5004
+ "upDownBars",
5005
+ "serLines",
5006
+ "firstSliceAng",
5007
+ "holeSize",
5008
+ "ofPieType",
5009
+ "scatterStyle",
5010
+ "radarStyle",
5011
+ "bubble3D",
5012
+ "bubbleScale",
5013
+ "showNegBubbles",
5014
+ "sizeRepresents",
5015
+ "wireframe",
5016
+ "extLst"
5017
+ ]);
5018
+ function parseGroup(context, element) {
5019
+ const { kind, is3D } = CHART_GROUP_ELEMENTS[element.localName] ?? { kind: "bar", is3D: false };
5020
+ reportUnmodelled(context, element, GROUP);
5021
+ const number = (local) => cNumber(context, element, local);
5022
+ const flag2 = (local) => cBool(context, element, local);
5023
+ const barDir = cVal(element, "barDir");
5024
+ const present = (local) => cChild(element, local) ? true : void 0;
5025
+ const linesShape = (local) => chartLines(element, local)?.spPr;
5026
+ const bars = cChild(element, "upDownBars");
5027
+ return assignDefined(
5028
+ {
5029
+ kind,
5030
+ element: element.localName,
5031
+ is3D,
5032
+ series: children(element, "ser", NS.c).map((ser) => parseSeries(context, ser)),
5033
+ axisIds: children(element, "axId", NS.c).flatMap((axis) => {
5034
+ const raw = attribute(axis, "val")?.trim();
5035
+ const id = raw ? Number(raw) : Number.NaN;
5036
+ return Number.isFinite(id) ? [id] : [];
5037
+ })
5038
+ },
5039
+ {
5040
+ varyColors: flag2("varyColors"),
5041
+ dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
5042
+ barDirection: barDir === "bar" || barDir === "col" ? barDir : void 0,
5043
+ grouping: cVal(element, "grouping"),
5044
+ gapWidth: number("gapWidth"),
5045
+ overlap: number("overlap"),
5046
+ gapDepth: number("gapDepth"),
5047
+ shape: cVal(element, "shape"),
5048
+ marker: flag2("marker"),
5049
+ smooth: flag2("smooth"),
5050
+ dropLines: present("dropLines"),
5051
+ hiLowLines: present("hiLowLines"),
5052
+ upDownBars: present("upDownBars"),
5053
+ seriesLines: present("serLines"),
5054
+ dropLinesSpPr: linesShape("dropLines"),
5055
+ hiLowLinesSpPr: linesShape("hiLowLines"),
5056
+ seriesLinesSpPr: linesShape("serLines"),
5057
+ upDownBarsGapWidth: cNumber(context, bars, "gapWidth"),
5058
+ upBars: chartLines(bars, "upBars"),
5059
+ downBars: chartLines(bars, "downBars"),
5060
+ firstSliceAngle: number("firstSliceAng"),
5061
+ holeSize: number("holeSize"),
5062
+ ofPieType: cVal(element, "ofPieType"),
5063
+ scatterStyle: cVal(element, "scatterStyle"),
5064
+ radarStyle: cVal(element, "radarStyle"),
5065
+ bubble3D: flag2("bubble3D"),
5066
+ bubbleScale: number("bubbleScale"),
5067
+ showNegativeBubbles: flag2("showNegBubbles"),
5068
+ sizeRepresents: cVal(element, "sizeRepresents"),
5069
+ wireframe: flag2("wireframe"),
5070
+ extLst: extensionList(element)
5071
+ }
5072
+ );
5073
+ }
5074
+ var SCALING = /* @__PURE__ */ new Set(["orientation", "logBase", "min", "max", "extLst"]);
5075
+ var AXIS = /* @__PURE__ */ new Set([
5076
+ "axId",
5077
+ "scaling",
5078
+ "delete",
5079
+ "axPos",
5080
+ "majorGridlines",
5081
+ "minorGridlines",
5082
+ "title",
5083
+ "numFmt",
5084
+ "majorTickMark",
5085
+ "minorTickMark",
5086
+ "tickLblPos",
5087
+ "spPr",
5088
+ "txPr",
5089
+ "crossAx",
5090
+ "crosses",
5091
+ "crossesAt",
5092
+ "crossBetween",
5093
+ "majorUnit",
5094
+ "minorUnit",
5095
+ "auto",
5096
+ "lblAlgn",
5097
+ "lblOffset",
5098
+ "tickLblSkip",
5099
+ "tickMarkSkip",
5100
+ "noMultiLvlLbl",
5101
+ "baseTimeUnit",
5102
+ "dispUnits",
5103
+ "extLst"
5104
+ ]);
5105
+ function parseAxis(context, element, kind) {
5106
+ reportUnmodelled(context, element, AXIS);
5107
+ const number = (local) => cNumber(context, element, local);
5108
+ const scalingElement = cChild(element, "scaling");
5109
+ if (scalingElement) reportUnmodelled(context, scalingElement, SCALING);
5110
+ const scaling = assignDefined(
5111
+ {},
5112
+ {
5113
+ orientation: cVal(scalingElement, "orientation"),
5114
+ min: cNumber(context, scalingElement, "min"),
5115
+ max: cNumber(context, scalingElement, "max"),
5116
+ logBase: cNumber(context, scalingElement, "logBase")
5117
+ }
5118
+ );
5119
+ const title = cChild(element, "title");
5120
+ return assignDefined(
5121
+ {
5122
+ kind,
5123
+ scaling,
5124
+ majorGridlines: cChild(element, "majorGridlines") !== void 0,
5125
+ minorGridlines: cChild(element, "minorGridlines") !== void 0
5126
+ },
5127
+ {
5128
+ majorGridlinesSpPr: chartLines(element, "majorGridlines")?.spPr,
5129
+ minorGridlinesSpPr: chartLines(element, "minorGridlines")?.spPr,
5130
+ id: number("axId"),
5131
+ crossAxisId: number("crossAx"),
5132
+ position: cVal(element, "axPos"),
5133
+ deleted: cBool(context, element, "delete"),
5134
+ title: title ? parseTitle(context, title) : void 0,
5135
+ numberFormat: numberFormat(element),
5136
+ majorTickMark: cVal(element, "majorTickMark"),
5137
+ minorTickMark: cVal(element, "minorTickMark"),
5138
+ tickLabelPosition: cVal(element, "tickLblPos"),
5139
+ crosses: cVal(element, "crosses"),
5140
+ crossesAt: number("crossesAt"),
5141
+ crossBetween: cVal(element, "crossBetween"),
5142
+ majorUnit: number("majorUnit"),
5143
+ minorUnit: number("minorUnit"),
5144
+ auto: cBool(context, element, "auto"),
5145
+ labelAlign: cVal(element, "lblAlgn"),
5146
+ labelOffset: number("lblOffset"),
5147
+ tickLabelSkip: number("tickLblSkip"),
5148
+ tickMarkSkip: number("tickMarkSkip"),
5149
+ noMultiLevelLabels: cBool(context, element, "noMultiLvlLbl"),
5150
+ baseTimeUnit: cVal(element, "baseTimeUnit"),
5151
+ displayUnits: parseDisplayUnits(context, cChild(element, "dispUnits")),
5152
+ spPr: shapeProperties(element),
5153
+ txPr: textProperties(element),
5154
+ extLst: extensionList(element)
5155
+ }
5156
+ );
5157
+ }
5158
+ var PLOT_AREA = /* @__PURE__ */ new Set(["layout", "dTable", "spPr", "extLst"]);
5159
+ function parsePlotArea(context, element) {
5160
+ const plotArea = { groups: [], axes: [] };
5161
+ if (!element) {
5162
+ context.issues.push({
5163
+ code: "CHART_PLOT_AREA_MISSING",
5164
+ message: "The chart has no c:plotArea."
5165
+ });
5166
+ return plotArea;
5167
+ }
5168
+ const handled = new Set(PLOT_AREA);
5169
+ for (const child3 of elements(element)) {
5170
+ if (CHART_GROUP_ELEMENTS[child3.localName]) {
5171
+ plotArea.groups.push(parseGroup(context, child3));
5172
+ handled.add(child3.localName);
5173
+ }
5174
+ const axis = AXIS_ELEMENTS[child3.localName];
5175
+ if (axis) {
5176
+ plotArea.axes.push(parseAxis(context, child3, axis));
5177
+ handled.add(child3.localName);
5178
+ }
5179
+ }
5180
+ reportUnmodelled(context, element, handled);
5181
+ return assignDefined(plotArea, {
5182
+ layout: manualLayout(element),
5183
+ dataTable: parseDataTable(context, cChild(element, "dTable")),
5184
+ spPr: shapeProperties(element),
5185
+ extLst: extensionList(element)
5186
+ });
5187
+ }
5188
+
5189
+ // chart/parse-space.ts
5190
+ var LEGEND = /* @__PURE__ */ new Set(["legendPos", "legendEntry", "layout", "overlay", "spPr", "txPr", "extLst"]);
5191
+ function parseLegend(context, element) {
5192
+ reportUnmodelled(context, element, LEGEND);
5193
+ const entries = children(element, "legendEntry", NS.c).map(
5194
+ (entry2) => assignDefined(
5195
+ {},
5196
+ {
5197
+ index: cNumber(context, entry2, "idx"),
5198
+ deleted: cBool(context, entry2, "delete"),
5199
+ txPr: textProperties(entry2)
5200
+ }
5201
+ )
5202
+ );
5203
+ return assignDefined(
5204
+ { entries },
5205
+ {
5206
+ position: cVal(element, "legendPos"),
5207
+ overlay: cBool(context, element, "overlay"),
5208
+ layout: manualLayout(element),
5209
+ spPr: shapeProperties(element),
5210
+ txPr: textProperties(element),
5211
+ extLst: extensionList(element)
5212
+ }
5213
+ );
5214
+ }
5215
+ var VIEW_3D = /* @__PURE__ */ new Set(["rotX", "rotY", "depthPercent", "hPercent", "rAngAx", "perspective"]);
5216
+ function parseView3D(context, element) {
5217
+ reportUnmodelled(context, element, VIEW_3D);
5218
+ return assignDefined(
5219
+ {},
5220
+ {
5221
+ rotX: cNumber(context, element, "rotX"),
5222
+ rotY: cNumber(context, element, "rotY"),
5223
+ depthPercent: cNumber(context, element, "depthPercent"),
5224
+ heightPercent: cNumber(context, element, "hPercent"),
5225
+ rightAngleAxes: cBool(context, element, "rAngAx"),
5226
+ perspective: cNumber(context, element, "perspective")
5227
+ }
5228
+ );
5229
+ }
5230
+ function chartStyle(context, space) {
5231
+ const direct = cNumber(context, space, "style");
5232
+ if (direct !== void 0) return direct;
5233
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
5234
+ const style = cNumber(context, first(alternate, "Fallback", NS.mc), "style");
5235
+ if (style !== void 0) return style;
5236
+ }
5237
+ return void 0;
5238
+ }
5239
+ function c14Style(space) {
5240
+ for (const alternate of children(space, "AlternateContent", NS.mc)) {
5241
+ const raw = attribute(first(first(alternate, "Choice", NS.mc), "style", NS.c14, false), "val");
5242
+ const value = raw?.trim() ? Number(raw) : Number.NaN;
5243
+ if (Number.isFinite(value)) return value;
5244
+ }
5245
+ return void 0;
5246
+ }
5247
+ function namespaceDeclarations(root) {
5248
+ const out = [];
5249
+ for (const item of Array.from(root.attributes)) {
5250
+ if (item.prefix !== "xmlns" || CHART_ROOT_BINDINGS.get(item.localName) === item.value) continue;
5251
+ out.push({ prefix: item.localName, uri: item.value });
5252
+ }
5253
+ return out.length ? out : void 0;
5254
+ }
5255
+ var CHART = /* @__PURE__ */ new Set([
5256
+ "title",
5257
+ "autoTitleDeleted",
5258
+ "view3D",
5259
+ "floor",
5260
+ "sideWall",
5261
+ "backWall",
5262
+ "plotArea",
5263
+ "legend",
5264
+ "plotVisOnly",
5265
+ "dispBlanksAs",
5266
+ "showDLblsOverMax",
5267
+ "extLst"
5268
+ ]);
5269
+ var SPACE = /* @__PURE__ */ new Set([
5270
+ "date1904",
5271
+ "lang",
5272
+ "roundedCorners",
5273
+ "AlternateContent",
5274
+ "style",
5275
+ "chart",
5276
+ "spPr",
5277
+ "txPr",
5278
+ "externalData",
5279
+ "printSettings",
5280
+ "userShapes",
5281
+ "extLst"
5282
+ ]);
5283
+ function parseChartSpace(source) {
5284
+ const context = { issues: [] };
5285
+ const root = typeof source === "string" ? parseXml(source, { label: "Chart part" }).documentElement : source;
5286
+ if (root.localName !== "chartSpace" || root.namespaceURI && root.namespaceURI !== NS.c) {
5287
+ context.issues.push({
5288
+ code: "CHART_ROOT_UNEXPECTED",
5289
+ message: `The part root is {${root.namespaceURI ?? ""}}${root.localName}, not c:chartSpace (chartex parts are not modelled).`
5290
+ });
5291
+ return { chartSpace: { plotArea: { groups: [], axes: [] } }, issues: context.issues };
5292
+ }
5293
+ reportUnmodelled(context, root, SPACE);
5294
+ const chart = cChild(root, "chart");
5295
+ if (!chart)
5296
+ context.issues.push({ code: "CHART_CHART_MISSING", message: "The part has no c:chart." });
5297
+ else reportUnmodelled(context, chart, CHART);
5298
+ const title = cChild(chart, "title");
5299
+ const legend = cChild(chart, "legend");
5300
+ const view3D = cChild(chart, "view3D");
5301
+ const printSettings = cChild(root, "printSettings");
5302
+ const chartSpace = assignDefined(
5303
+ { plotArea: parsePlotArea(context, cChild(chart, "plotArea")) },
5304
+ {
5305
+ date1904: cBool(context, root, "date1904"),
5306
+ language: cVal(root, "lang"),
5307
+ roundedCorners: cBool(context, root, "roundedCorners"),
5308
+ style: chartStyle(context, root),
5309
+ c14Style: c14Style(root),
5310
+ title: title ? parseTitle(context, title) : void 0,
5311
+ autoTitleDeleted: cBool(context, chart, "autoTitleDeleted"),
5312
+ view3D: view3D ? parseView3D(context, view3D) : void 0,
5313
+ floor: parseSurface(context, cChild(chart, "floor")),
5314
+ sideWall: parseSurface(context, cChild(chart, "sideWall")),
5315
+ backWall: parseSurface(context, cChild(chart, "backWall")),
5316
+ legend: legend ? parseLegend(context, legend) : void 0,
5317
+ plotVisibleOnly: cBool(context, chart, "plotVisOnly"),
5318
+ displayBlanksAs: cVal(chart, "dispBlanksAs"),
5319
+ showDataLabelsOverMax: cBool(context, chart, "showDLblsOverMax"),
5320
+ spPr: shapeProperties(root),
5321
+ txPr: textProperties(root),
5322
+ externalDataRelId: relAttr(cChild(root, "externalData"), "id") || void 0,
5323
+ externalDataAutoUpdate: cBool(context, cChild(root, "externalData"), "autoUpdate"),
5324
+ printSettings: printSettings ? buildXml(printSettings) : void 0,
5325
+ userShapesRelId: relAttr(cChild(root, "userShapes"), "id") || void 0,
5326
+ chartExtLst: extensionList(chart),
5327
+ extLst: extensionList(root),
5328
+ namespaceDeclarations: namespaceDeclarations(root)
5329
+ }
5330
+ );
5331
+ return { chartSpace, issues: context.issues };
5332
+ }
5333
+
5334
+ // docx/breaks.ts
5335
+ function isCachedPageBreak(element) {
5336
+ return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
5337
+ (attribute2) => attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/"
5338
+ );
5339
+ }
5340
+ function hasSpecialBreak(element) {
5341
+ for (const attribute2 of Array.from(element.attributes)) {
5342
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5343
+ if (attribute2.namespaceURI !== WORD_NS) return true;
5344
+ if (attribute2.localName === "type") {
5345
+ if (attribute2.value !== "textWrapping") return true;
5346
+ } else if (attribute2.localName === "clear") {
5347
+ if (attribute2.value !== "none") return true;
5348
+ } else return true;
5349
+ }
5350
+ return false;
5351
+ }
5352
+ function classifyBreak(element) {
5353
+ const type = getW(element, "type");
5354
+ return type === "page" || type === "column" ? type : "textWrapping";
5355
+ }
5356
+ function isModeledBreak(element) {
5357
+ const kind = classifyBreak(element);
5358
+ if (kind === "textWrapping") return false;
5359
+ for (const attribute2 of Array.from(element.attributes)) {
5360
+ if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5361
+ if (attribute2.namespaceURI !== WORD_NS || attribute2.localName !== "type") return false;
5362
+ }
5363
+ return true;
5364
+ }
5365
+
5366
+ // docx/parse-warnings.ts
5367
+ function hasAny(document, names) {
5368
+ return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
5369
+ }
5370
+ function warningsFor(document) {
5371
+ const warnings = [];
5372
+ const features = [
5373
+ [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
5374
+ [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
5375
+ [
5376
+ ["fldSimple", "instrText", "fldChar"],
5377
+ "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."
5378
+ ],
5379
+ [
5380
+ ["moveFrom", "moveTo"],
5381
+ "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
5382
+ ],
5383
+ [
5384
+ ["rPrChange"],
5385
+ "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."
5386
+ ],
5387
+ [
5388
+ ["pPrChange"],
5389
+ "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."
5390
+ ],
5391
+ [
5392
+ ["tblPrChange", "trPrChange", "tcPrChange"],
5393
+ "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
5394
+ ]
5395
+ ];
5396
+ for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
5397
+ if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
5398
+ (el3) => /HYPERLINK/i.test(textContent(el3))
5399
+ ))
5400
+ warnings.push(
5401
+ "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
5402
+ );
5403
+ const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
5404
+ (br) => hasSpecialBreak(br) && !isModeledBreak(br)
5405
+ ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
5406
+ (cr) => cr.attributes.length > 0
5407
+ );
5408
+ if (specialBreak)
5409
+ warnings.push(
5410
+ "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."
5411
+ );
5412
+ return warnings;
5413
+ }
5414
+ function forEachParagraph2(blocks, visit) {
5415
+ for (const block of blocks) {
5416
+ if (block.type === "paragraph") visit(block);
5417
+ else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
5418
+ }
5419
+ }
5420
+ function imageAndBookmarkWarnings(blocks) {
5421
+ const warnings = [];
5422
+ let hasPicture = false;
5423
+ let hasAnchored = false;
5424
+ const unsupportedKinds = /* @__PURE__ */ new Set();
5425
+ let hasBookmarks = false;
5426
+ forEachParagraph2(blocks, (paragraph) => {
5427
+ if (paragraph.bookmarks?.length) hasBookmarks = true;
5428
+ for (const run of paragraph.runs) {
5429
+ if (!run.image) continue;
5430
+ if (run.image.unsupported) {
5431
+ if (run.image.diagram?.rendering !== "cached-drawing")
5432
+ unsupportedKinds.add(run.image.unsupported);
5433
+ } else hasPicture = true;
5434
+ if (run.image.anchored) hasAnchored = true;
5435
+ }
5436
+ });
5437
+ if (hasPicture)
5438
+ warnings.push(
5439
+ "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."
5440
+ );
5441
+ if (hasAnchored)
5442
+ warnings.push(
5443
+ "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."
5444
+ );
5445
+ if (unsupportedKinds.size)
5446
+ warnings.push(
5447
+ `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
5448
+ );
5449
+ if (hasBookmarks)
5450
+ warnings.push(
5451
+ "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
5452
+ );
5453
+ return warnings;
5454
+ }
5455
+
5456
+ // docx/chart.ts
5457
+ var CHART_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
5458
+ var CHART_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart";
5459
+ var PACKAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
5460
+ 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.";
5461
+ function parseChartGraphic(graphicData, docPr, rels, isAnchor) {
5462
+ const element = Array.from(graphicData.childNodes).find(
5463
+ (node) => isElement(node) && node.localName === "chart"
5464
+ );
5465
+ const relId = getR(element, "id") || void 0;
5466
+ const issues = [];
5467
+ let partName;
5468
+ const rel = relId ? rels.get(relId) : void 0;
5469
+ if (!relId)
5470
+ issues.push({
5471
+ code: "CHART_RELATIONSHIP_MISSING",
5472
+ message: "The graphic has no c:chart/@r:id."
5473
+ });
5474
+ else if (!rel || rel.mode === "External")
5475
+ issues.push({
5476
+ code: "CHART_RELATIONSHIP_UNRESOLVED",
5477
+ message: `Chart relationship ${relId} does not point at a part in this package.`
5478
+ });
5479
+ else {
5480
+ if (rel.type !== CHART_RELATIONSHIP_TYPE)
5481
+ issues.push({
5482
+ code: "CHART_RELATIONSHIP_TYPE",
5483
+ message: `Chart relationship ${relId} has type ${rel.type}, expected ${CHART_RELATIONSHIP_TYPE}.`
5484
+ });
5485
+ partName = resolvePartPath("word/document.xml", rel.target);
5486
+ }
5487
+ const name = docPr?.getAttribute("name") || void 0;
5488
+ const id = docPr?.getAttribute("id") || void 0;
5489
+ return {
5490
+ placement: isAnchor ? "anchor" : "inline",
5491
+ ...name ? { name } : {},
5492
+ ...id ? { id } : {},
5493
+ ...relId ? { relId } : {},
5494
+ ...partName ? { partName } : {},
5495
+ notice: CHART_NOTICE,
5496
+ issues
5497
+ };
5498
+ }
5499
+ async function resolveChartPart(chart, readText) {
5500
+ if (!chart.partName) return;
5501
+ try {
5502
+ const xml = await readText(chart.partName);
5503
+ if (xml === void 0) {
5504
+ chart.issues.push({
5505
+ code: "CHART_PART_MISSING",
5506
+ message: `The chart part ${chart.partName} is not in the package.`
5507
+ });
5508
+ return;
5509
+ }
5510
+ const root = parseXml(xml, { label: "Chart part" }).documentElement;
5511
+ const { chartSpace, issues } = parseChartSpace(root);
5512
+ chart.chartSpace = chartSpace;
5513
+ chart.issues.push(...issues);
5514
+ const title = chartSpace.autoTitleDeleted ? void 0 : chartSpace.title?.text;
5515
+ if (title) chart.title = title;
5516
+ if (chartSpace.plotArea.groups.length) {
5517
+ const formatting = readChartFormatting(root);
5518
+ if (formatting) chart.formatting = formatting;
5519
+ }
5520
+ const rels = parseRelationships(await readText(relationshipsPartFor(chart.partName)));
5521
+ const dataRelId = chartSpace.externalDataRelId;
5522
+ const dataRel = dataRelId ? rels.get(dataRelId) : void 0;
5523
+ if (dataRel && dataRel.mode !== "External" && dataRel.type === PACKAGE_RELATIONSHIP_TYPE)
5524
+ chart.workbookPartName = resolvePartPath(chart.partName, dataRel.target);
5525
+ const colorsRel = [...rels.values()].find(
5526
+ (rel) => rel.mode !== "External" && rel.type.endsWith("/chartColorStyle")
5527
+ );
5528
+ const colorsXml = colorsRel && await readText(resolvePartPath(chart.partName, colorsRel.target));
5529
+ const palette = colorsXml ? chartColorStyleId(colorsXml) : void 0;
5530
+ if (palette !== void 0) chart.colorPalette = palette;
5531
+ } catch (error) {
5532
+ chart.issues.push({
5533
+ code: "CHART_PART_UNREADABLE",
5534
+ message: `The chart part ${chart.partName} could not be read: ${error instanceof Error ? error.message : String(error)}`
5535
+ });
5536
+ }
5537
+ }
5538
+ function chartsIn(blocks) {
5539
+ const charts = [];
5540
+ forEachParagraph2(blocks, (paragraph) => {
5541
+ for (const run of paragraph.runs) if (run.image?.chart) charts.push(run.image.chart);
5542
+ });
5543
+ return charts;
5544
+ }
5545
+ async function resolveDocumentCharts(blocks, readText) {
5546
+ for (const chart of chartsIn(blocks)) await resolveChartPart(chart, readText);
5547
+ }
5548
+
5549
+ // docx/drawing.ts
5550
+ var WP_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
5551
+ var A_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/main";
5552
+ var VML_NS2 = "urn:schemas-microsoft-com:vml";
5553
+ var WPS_NS2 = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape";
5554
+ var W_NS2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
5555
+ var PICTURE_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/picture";
5556
+ function firstNS(parent, ns, local) {
5557
+ if (!parent) return void 0;
5558
+ for (const child3 of Array.from(parent.childNodes))
5559
+ if (isElement(child3) && child3.namespaceURI === ns && child3.localName === local) return child3;
5560
+ return void 0;
5561
+ }
5562
+ function descendantNS(parent, ns, local) {
5563
+ if (!parent) return void 0;
5564
+ const stack = [parent];
5565
+ while (stack.length) {
5566
+ const node = stack.shift();
5567
+ for (const child3 of Array.from(node.childNodes)) {
5568
+ if (!isElement(child3)) continue;
5569
+ if (child3.namespaceURI === ns && child3.localName === local) return child3;
5570
+ stack.push(child3);
5571
+ }
5572
+ }
5573
+ return void 0;
5574
+ }
5575
+ function emuToPx(value) {
5576
+ const n = value ? Number(value) : NaN;
5577
+ return Number.isFinite(n) ? Math.round(n / EMU_PER_PIXEL) : 0;
5578
+ }
5579
+ function guessContentType(partName) {
5580
+ const extension = partName.split(".").pop()?.toLowerCase();
5581
+ const known = {
5582
+ png: "image/png",
5583
+ jpg: "image/jpeg",
5584
+ jpeg: "image/jpeg",
5585
+ gif: "image/gif",
5586
+ bmp: "image/bmp",
5587
+ svg: "image/svg+xml",
5588
+ tif: "image/tiff",
5589
+ tiff: "image/tiff",
5590
+ emf: "image/x-emf",
5591
+ wmf: "image/x-wmf"
5592
+ };
5593
+ return extension && known[extension] || "application/octet-stream";
5594
+ }
5595
+ function resolvePicture(relId, context) {
5596
+ const rel = context.rels.get(relId);
5597
+ if (!rel || rel.mode === "External") return void 0;
5598
+ const partName = resolveInternalTarget(rel.target);
5599
+ if (!context.mediaParts.has(partName)) return void 0;
5600
+ return {
5601
+ relId,
5602
+ partName,
4376
5603
  contentType: contentTypeForPart(context.contentTypes, partName) ?? guessContentType(partName)
4377
5604
  };
4378
5605
  }
@@ -4434,6 +5661,7 @@ function parseModernDrawing(node, context) {
4434
5661
  ...svg ? { svgPartName: svg.partName } : {}
4435
5662
  };
4436
5663
  const diagram = uri === DIAGRAM_GRAPHIC_URI && graphicData ? parseDiagramGraphic(graphicData, extent, docPr, context.rels, Boolean(anchored)) : void 0;
5664
+ const chart = uri === CHART_GRAPHIC_URI && graphicData ? parseChartGraphic(graphicData, docPr, context.rels, Boolean(anchored)) : void 0;
4437
5665
  const textBox = uri.includes("wordprocessingShape") ? textBoxParagraphs(graphicData) : void 0;
4438
5666
  return {
4439
5667
  relId: relId ?? "",
@@ -4444,6 +5672,7 @@ function parseModernDrawing(node, context) {
4444
5672
  ...definedProps({ altText, title, anchored }),
4445
5673
  unsupported: textBox ? "Text box" : unsupportedKindLabel(uri),
4446
5674
  ...diagram ? { diagram } : {},
5675
+ ...chart ? { chart } : {},
4447
5676
  ...diagram && placement ? { placement } : {},
4448
5677
  ...textBox ? { textBoxText: textBox } : {},
4449
5678
  ...textBox && isSimpleTextBox(graphicData, Boolean(anchored)) ? { textBoxEditable: true, textBoxBorder: textBoxHasBorder(graphicData) } : {}
@@ -4523,8 +5752,8 @@ function findDrawingChild(run) {
4523
5752
  if (isElement(child3) && (named2(child3, "drawing") || named2(child3, "pict"))) return child3;
4524
5753
  return void 0;
4525
5754
  }
4526
- function sameUnderlyingImage(a, b) {
4527
- return Boolean(a.partName) && a.relId === b.relId && a.partName === b.partName;
5755
+ function sameUnderlyingImage(a2, b) {
5756
+ return Boolean(a2.partName) && a2.relId === b.relId && a2.partName === b.partName;
4528
5757
  }
4529
5758
  function walk(root, visit) {
4530
5759
  const stack = [root];
@@ -4691,6 +5920,23 @@ function parseRunPropertiesSnapshot(xml) {
4691
5920
  return parsePropertiesSnapshot(xml, "rPr");
4692
5921
  }
4693
5922
 
5923
+ // docx/field-flags.ts
5924
+ function parseFieldFlags(element) {
5925
+ const locked = onOffAttribute(element, "fldLock");
5926
+ const dirty = onOffAttribute(element, "dirty");
5927
+ if (locked === void 0 && dirty === void 0) return void 0;
5928
+ return { ...locked !== void 0 && { locked }, ...dirty !== void 0 && { dirty } };
5929
+ }
5930
+ function writeFieldFlags(element, flags) {
5931
+ for (const [name, value] of [
5932
+ ["fldLock", flags?.locked],
5933
+ ["dirty", flags?.dirty]
5934
+ ]) {
5935
+ if (value === void 0) element.removeAttributeNS(WORD_NS, name);
5936
+ else element.setAttributeNS(WORD_NS, `w:${name}`, value ? "true" : "false");
5937
+ }
5938
+ }
5939
+
4694
5940
  // docx/write-run.ts
4695
5941
  function setAttribute6(element, local, value) {
4696
5942
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
@@ -4717,17 +5963,17 @@ function setBooleanAttribute(doc, props, local, value) {
4717
5963
  }
4718
5964
  setAttribute6(element, "val", value ? "1" : "0");
4719
5965
  }
4720
- function setLanguageAttribute(doc, props, attribute, value) {
5966
+ function setLanguageAttribute(doc, props, attribute2, value) {
4721
5967
  let language = first2(props, "lang");
4722
5968
  if (value === void 0 || value === "") {
4723
5969
  if (!language) return;
4724
- language.removeAttributeNS(WORD_NS, attribute);
5970
+ language.removeAttributeNS(WORD_NS, attribute2);
4725
5971
  } else {
4726
5972
  if (!language) {
4727
5973
  language = makeW(doc, "lang");
4728
5974
  props.appendChild(language);
4729
5975
  }
4730
- setAttribute6(language, attribute, value);
5976
+ setAttribute6(language, attribute2, value);
4731
5977
  }
4732
5978
  if (language && !language.attributes.length && !language.childNodes.length)
4733
5979
  props.removeChild(language);
@@ -4827,8 +6073,8 @@ function setRunProperties(doc, runNode, run, base) {
4827
6073
  };
4828
6074
  for (const script of ["ascii", "hAnsi", "eastAsia", "cs"]) {
4829
6075
  const role = run.fontTheme?.[script];
4830
- const [attribute, suffix] = themeAttribute[script];
4831
- if (role) setAttribute6(fonts, attribute, `${role}${suffix}`);
6076
+ const [attribute2, suffix] = themeAttribute[script];
6077
+ if (role) setAttribute6(fonts, attribute2, `${role}${suffix}`);
4832
6078
  }
4833
6079
  props.appendChild(fonts);
4834
6080
  }
@@ -4876,6 +6122,7 @@ function createRun(doc, run, base, old, allocator) {
4876
6122
  if (run.fieldChar) {
4877
6123
  const marker = makeW(doc, "fldChar");
4878
6124
  setAttribute6(marker, "fldCharType", run.fieldChar);
6125
+ writeFieldFlags(marker, run.fieldFlags);
4879
6126
  node.appendChild(marker);
4880
6127
  return node;
4881
6128
  }
@@ -4915,8 +6162,8 @@ function createRun(doc, run, base, old, allocator) {
4915
6162
  }
4916
6163
 
4917
6164
  // docx/inline-source.ts
4918
- function samePictureSource(a, b) {
4919
- return !!a?.partName && a.partName === b?.partName && a.relId === b?.relId;
6165
+ function samePictureSource(a2, b) {
6166
+ return !!a2?.partName && a2.partName === b?.partName && a2.relId === b?.relId;
4920
6167
  }
4921
6168
  function inlineSourceLookup(runs, base) {
4922
6169
  const usedPictures = /* @__PURE__ */ new Set();
@@ -4956,6 +6203,11 @@ function takeSimpleFieldCommentEdges(doc, runs, start, end, opens, closes) {
4956
6203
  after: take(closes, end - 1).reverse().flatMap((edge) => rangeEndNodes(doc, edge))
4957
6204
  };
4958
6205
  }
6206
+
6207
+ // docx/field-lock.ts
6208
+ function sameFieldFlags(a2, b) {
6209
+ return a2?.locked === b?.locked && a2?.dirty === b?.dirty;
6210
+ }
4959
6211
  var MATH_NAMESPACES = /* @__PURE__ */ new Set([
4960
6212
  "http://schemas.openxmlformats.org/officeDocument/2006/math",
4961
6213
  "http://purl.oclc.org/ooxml/officeDocument/math"
@@ -4981,38 +6233,6 @@ function preserveEquation(run, base, old) {
4981
6233
  return old.cloneNode(true);
4982
6234
  }
4983
6235
 
4984
- // docx/breaks.ts
4985
- function isCachedPageBreak(element) {
4986
- return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
4987
- (attribute) => attribute.namespaceURI === "http://www.w3.org/2000/xmlns/"
4988
- );
4989
- }
4990
- function hasSpecialBreak(element) {
4991
- for (const attribute of Array.from(element.attributes)) {
4992
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
4993
- if (attribute.namespaceURI !== WORD_NS) return true;
4994
- if (attribute.localName === "type") {
4995
- if (attribute.value !== "textWrapping") return true;
4996
- } else if (attribute.localName === "clear") {
4997
- if (attribute.value !== "none") return true;
4998
- } else return true;
4999
- }
5000
- return false;
5001
- }
5002
- function classifyBreak(element) {
5003
- const type = getW(element, "type");
5004
- return type === "page" || type === "column" ? type : "textWrapping";
5005
- }
5006
- function isModeledBreak(element) {
5007
- const kind = classifyBreak(element);
5008
- if (kind === "textWrapping") return false;
5009
- for (const attribute of Array.from(element.attributes)) {
5010
- if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
5011
- if (attribute.namespaceURI !== WORD_NS || attribute.localName !== "type") return false;
5012
- }
5013
- return true;
5014
- }
5015
-
5016
6236
  // docx/parse-revisions.ts
5017
6237
  var REVISION_WRAPPERS = {
5018
6238
  ins: "insert",
@@ -5034,7 +6254,7 @@ function trackMoveRange(item, moves) {
5034
6254
  const open = moves[range.kind];
5035
6255
  if (range.start) open.push({ name: getW(item, "name") ?? id, id });
5036
6256
  else {
5037
- const index = open.findIndex((entry) => entry.id === id);
6257
+ const index = open.findIndex((entry2) => entry2.id === id);
5038
6258
  if (index >= 0) open.splice(index, 1);
5039
6259
  }
5040
6260
  return true;
@@ -5207,10 +6427,10 @@ function replaceableInlineChildren(paragraph) {
5207
6427
  (child3) => isElement(child3) && (isEquationElement(child3) || named2(child3, "r") || named2(child3, "hyperlink") || named2(child3, "fldSimple") || isRevisionWrapperElement(child3) || isCommentAnchorElement(child3))
5208
6428
  );
5209
6429
  }
5210
- function sameLink(a, b) {
5211
- if (!a && !b) return true;
5212
- if (!a || !b) return false;
5213
- return a.href === b.href && a.anchor === b.anchor && a.tooltip === b.tooltip;
6430
+ function sameLink(a2, b) {
6431
+ if (!a2 && !b) return true;
6432
+ if (!a2 || !b) return false;
6433
+ return a2.href === b.href && a2.anchor === b.anchor && a2.tooltip === b.tooltip;
5214
6434
  }
5215
6435
  function setW6(element, local, value) {
5216
6436
  element.setAttributeNS(WORD_NS, `w:${local}`, value);
@@ -5280,6 +6500,7 @@ function buildInlineContent(doc, runs, base, slots, allocator, ranges) {
5280
6500
  container = makeW(doc, "fldSimple");
5281
6501
  setW6(container, "instr", ` ${group.instr} `);
5282
6502
  }
6503
+ if (group.kind === "simpleField") writeFieldFlags(container, runAt(start).fieldFlags);
5283
6504
  const edges = group.kind === "simpleField" ? takeSimpleFieldCommentEdges(doc, runs, start, index, opens, closes) : { before: [], after: [] };
5284
6505
  for (let item = start; item < index; item++)
5285
6506
  for (const node of nodesFor(item)) container.appendChild(node);
@@ -5290,13 +6511,18 @@ function buildInlineContent(doc, runs, base, slots, allocator, ranges) {
5290
6511
  function containerGroup(run) {
5291
6512
  if (run.link) return { kind: "link", link: run.link };
5292
6513
  if (run.field?.simple)
5293
- return { kind: "simpleField", instr: run.field.instr, instanceId: run.fieldInstanceId };
6514
+ return {
6515
+ kind: "simpleField",
6516
+ instr: run.field.instr,
6517
+ instanceId: run.fieldInstanceId,
6518
+ fieldFlags: run.fieldFlags
6519
+ };
5294
6520
  return void 0;
5295
6521
  }
5296
- function sameGroup(a, b) {
5297
- if (!a || !b) return a === b;
5298
- if (a.kind === "link" && b.kind === "link") return sameLink(a.link, b.link);
5299
- return a.kind === "simpleField" && b.kind === "simpleField" && a.instr === b.instr && a.instanceId === b.instanceId;
6522
+ function sameGroup(a2, b) {
6523
+ if (!a2 || !b) return a2 === b;
6524
+ if (a2.kind === "link" && b.kind === "link") return sameLink(a2.link, b.link);
6525
+ return a2.kind === "simpleField" && b.kind === "simpleField" && a2.instr === b.instr && a2.instanceId === b.instanceId && sameFieldFlags(a2.fieldFlags, b.fieldFlags);
5300
6526
  }
5301
6527
 
5302
6528
  // docx/paragraph-properties.ts
@@ -5528,8 +6754,8 @@ var IMAGE_RELATIONSHIP_TYPE = RELATIONSHIP_TYPES.image;
5528
6754
  function scanUsedRelationshipIds(doc) {
5529
6755
  const used = /* @__PURE__ */ new Set();
5530
6756
  const visit = (node) => {
5531
- for (const attribute of Array.from(node.attributes))
5532
- if (attribute.namespaceURI === REL_NS) used.add(attribute.value);
6757
+ for (const attribute2 of Array.from(node.attributes))
6758
+ if (attribute2.namespaceURI === REL_NS) used.add(attribute2.value);
5533
6759
  for (const child3 of Array.from(node.childNodes)) if (isElement(child3)) visit(child3);
5534
6760
  };
5535
6761
  if (doc.documentElement) visit(doc.documentElement);
@@ -5767,9 +6993,9 @@ function isXsdDateTime(value) {
5767
6993
  return !zone || Number(zone[1]) <= 14 && Number(zone[2]) <= 59;
5768
6994
  }
5769
6995
  var Checker = class _Checker {
5770
- constructor(issues, path) {
6996
+ constructor(issues, path2) {
5771
6997
  this.issues = issues;
5772
- this.path = path;
6998
+ this.path = path2;
5773
6999
  }
5774
7000
  issues;
5775
7001
  path;
@@ -5815,78 +7041,78 @@ var Checker = class _Checker {
5815
7041
 
5816
7042
  // docx/validate-paragraph.ts
5817
7043
  var isFraction = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
5818
- function validateThemeReference(c, field, value) {
7044
+ function validateThemeReference(c2, field, value) {
5819
7045
  if (value === void 0) return;
5820
- const at = c.at(`.${field}`);
7046
+ const at = c2.at(`.${field}`);
5821
7047
  at.theme("token", value.token);
5822
7048
  at.check("tint", value.tint, isFraction, "must be a fraction between 0 and 1");
5823
7049
  at.check("shade", value.shade, isFraction, "must be a fraction between 0 and 1");
5824
7050
  }
5825
- function validateRevision(c, field, revision) {
7051
+ function validateRevision(c2, field, revision) {
5826
7052
  if (revision === void 0) return;
5827
- c.at(`.${field}`).dateTime("date", revision.date);
7053
+ c2.at(`.${field}`).dateTime("date", revision.date);
5828
7054
  }
5829
- function validateFontSize(c, value) {
5830
- c.check(
7055
+ function validateFontSize(c2, value) {
7056
+ c2.check(
5831
7057
  "fontSize",
5832
7058
  value,
5833
7059
  (v) => typeof v === "number" && Number.isFinite(v) && Math.round(v * 2) >= 0,
5834
7060
  "must be a finite, non-negative point size that converts to whole half-points (ST_HpsMeasure)"
5835
7061
  );
5836
7062
  }
5837
- function validateRun(c, run) {
5838
- c.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
5839
- validateFontSize(c, run.fontSize);
5840
- c.check(
7063
+ function validateRun(c2, run) {
7064
+ c2.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
7065
+ validateFontSize(c2, run.fontSize);
7066
+ c2.check(
5841
7067
  "textScalePercent",
5842
7068
  run.textScalePercent,
5843
7069
  (v) => Number.isSafeInteger(v) && v >= 0 && v <= 600,
5844
7070
  "must be a whole percentage from 0 through 600 (ST_TextScale)"
5845
7071
  );
5846
- c.check(
7072
+ c2.check(
5847
7073
  "kerningHalfPoints",
5848
7074
  run.kerningHalfPoints,
5849
7075
  (v) => Number.isSafeInteger(v) && v >= 0,
5850
7076
  "must be a nonnegative whole number of half-points (ST_HpsMeasure)"
5851
7077
  );
5852
- c.check(
7078
+ c2.check(
5853
7079
  "positionHalfPoints",
5854
7080
  run.positionHalfPoints,
5855
7081
  Number.isSafeInteger,
5856
7082
  "must be a signed whole number of half-points (ST_SignedHpsMeasure)"
5857
7083
  );
5858
- c.hex("color", run.color);
5859
- c.hex("shadingFill", run.shadingFill);
5860
- c.hex("underlineColor", run.underlineColor);
5861
- validateThemeReference(c, "colorTheme", run.colorTheme);
5862
- validateThemeReference(c, "shadingThemeFill", run.shadingThemeFill);
5863
- c.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
7084
+ c2.hex("color", run.color);
7085
+ c2.hex("shadingFill", run.shadingFill);
7086
+ c2.hex("underlineColor", run.underlineColor);
7087
+ validateThemeReference(c2, "colorTheme", run.colorTheme);
7088
+ validateThemeReference(c2, "shadingThemeFill", run.shadingThemeFill);
7089
+ c2.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
5864
7090
  if (run.highlight !== void 0 && !isStHighlightColor(run.highlight))
5865
- c.fail(
7091
+ c2.fail(
5866
7092
  "highlight",
5867
7093
  run.highlight,
5868
7094
  `Unsupported Word highlight token: ${String(run.highlight)}`
5869
7095
  );
5870
- c.enum("break", run.break, isStBrType, "ST_BrType");
5871
- c.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
5872
- c.check(
7096
+ c2.enum("break", run.break, isStBrType, "ST_BrType");
7097
+ c2.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
7098
+ c2.check(
5873
7099
  "characterSpacingTwips",
5874
7100
  run.characterSpacingTwips,
5875
7101
  (v) => typeof v === "number" && Number.isFinite(v),
5876
7102
  "must be a finite number of twips (ST_SignedTwipsMeasure)"
5877
7103
  );
5878
- c.language("language", run.language);
5879
- c.language("eastAsiaLanguage", run.eastAsiaLanguage);
5880
- c.language("bidiLanguage", run.bidiLanguage);
5881
- c.check(
7104
+ c2.language("language", run.language);
7105
+ c2.language("eastAsiaLanguage", run.eastAsiaLanguage);
7106
+ c2.language("bidiLanguage", run.bidiLanguage);
7107
+ c2.check(
5882
7108
  "verticalAlign",
5883
7109
  run.verticalAlign,
5884
7110
  isStVerticalAlignRun,
5885
7111
  'must be "baseline", "superscript" or "subscript"'
5886
7112
  );
5887
- validateRevision(c, "revision", run.revision);
7113
+ validateRevision(c2, "revision", run.revision);
5888
7114
  if (run.image) {
5889
- const image = c.at(".image");
7115
+ const image = c2.at(".image");
5890
7116
  for (const key of ["widthPx", "heightPx"])
5891
7117
  image.check(
5892
7118
  key,
@@ -5896,14 +7122,14 @@ function validateRun(c, run) {
5896
7122
  );
5897
7123
  }
5898
7124
  }
5899
- function validateTabStop(c, stop) {
5900
- c.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
5901
- c.enum("align", stop.align, isStTabJc, "ST_TabJc");
5902
- c.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
7125
+ function validateTabStop(c2, stop) {
7126
+ c2.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
7127
+ c2.enum("align", stop.align, isStTabJc, "ST_TabJc");
7128
+ c2.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
5903
7129
  }
5904
- function validateParagraph(c, paragraph) {
7130
+ function validateParagraph(c2, paragraph) {
5905
7131
  if (paragraph.dropCap) {
5906
- const at = c.at(".dropCap");
7132
+ const at = c2.at(".dropCap");
5907
7133
  at.check(
5908
7134
  "style",
5909
7135
  paragraph.dropCap.style,
@@ -5923,14 +7149,14 @@ function validateParagraph(c, paragraph) {
5923
7149
  "must be a nonnegative whole number of twips"
5924
7150
  );
5925
7151
  }
5926
- c.check(
7152
+ c2.check(
5927
7153
  "align",
5928
7154
  paragraph.align,
5929
7155
  (v) => v === "left" || v === "center" || v === "right" || v === "justify",
5930
7156
  'must be "left", "center", "right" or "justify"'
5931
7157
  );
5932
- c.enum("justification", paragraph.justification, isStJc, "ST_Jc");
5933
- c.check(
7158
+ c2.enum("justification", paragraph.justification, isStJc, "ST_Jc");
7159
+ c2.check(
5934
7160
  "direction",
5935
7161
  paragraph.direction,
5936
7162
  (v) => v === "ltr" || v === "rtl",
@@ -5942,7 +7168,7 @@ function validateParagraph(c, paragraph) {
5942
7168
  "firstLineTwips",
5943
7169
  "hangingTwips"
5944
7170
  ])
5945
- c.unsigned(key, paragraph[key], "ST_TwipsMeasure");
7171
+ c2.unsigned(key, paragraph[key], "ST_TwipsMeasure");
5946
7172
  for (const key of [
5947
7173
  "lineSpacingTwips",
5948
7174
  "indentLeftTwips",
@@ -5950,87 +7176,87 @@ function validateParagraph(c, paragraph) {
5950
7176
  "indentStartTwips",
5951
7177
  "indentEndTwips"
5952
7178
  ])
5953
- c.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
5954
- c.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
7179
+ c2.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
7180
+ c2.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
5955
7181
  if (paragraph.numbering) {
5956
- const numbering = c.at(".numbering");
7182
+ const numbering = c2.at(".numbering");
5957
7183
  numbering.unsigned("numId", paragraph.numbering.numId, "ST_DecimalNumber");
5958
7184
  numbering.unsigned("level", paragraph.numbering.level, "ST_DecimalNumber");
5959
7185
  }
5960
- paragraph.tabStops?.forEach((stop, index) => validateTabStop(c.at(`.tabStops[${index}]`), stop));
5961
- validateRevision(c, "markRevision", paragraph.markRevision);
5962
- paragraph.runs.forEach((run, index) => validateRun(c.at(`.runs[${index}]`), run));
7186
+ paragraph.tabStops?.forEach((stop, index) => validateTabStop(c2.at(`.tabStops[${index}]`), stop));
7187
+ validateRevision(c2, "markRevision", paragraph.markRevision);
7188
+ paragraph.runs.forEach((run, index) => validateRun(c2.at(`.runs[${index}]`), run));
5963
7189
  }
5964
7190
 
5965
7191
  // docx/validate-structure.ts
5966
- function validateBorderSide(c, side) {
7192
+ function validateBorderSide(c2, side) {
5967
7193
  if (!side) return;
5968
- c.enum("style", side.style, isStBorder, "ST_Border");
5969
- c.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
5970
- c.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
5971
- c.hex("color", side.color);
5972
- c.theme("themeColor", side.themeColor);
7194
+ c2.enum("style", side.style, isStBorder, "ST_Border");
7195
+ c2.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
7196
+ c2.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
7197
+ c2.hex("color", side.color);
7198
+ c2.theme("themeColor", side.themeColor);
5973
7199
  }
5974
- function validateBorders(c, borders) {
7200
+ function validateBorders(c2, borders) {
5975
7201
  if (!borders) return;
5976
7202
  for (const side of ["top", "left", "bottom", "right", "insideH", "insideV"])
5977
- validateBorderSide(c.at(`.${side}`), borders[side]);
7203
+ validateBorderSide(c2.at(`.${side}`), borders[side]);
5978
7204
  }
5979
- function validateCell(c, cell) {
5980
- c.check(
7205
+ function validateCell(c2, cell) {
7206
+ c2.check(
5981
7207
  "gridSpan",
5982
7208
  cell.gridSpan,
5983
7209
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v >= 1,
5984
7210
  "must be a positive integer (CT_DecimalNumber)"
5985
7211
  );
5986
- c.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
5987
- c.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
5988
- c.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
5989
- c.hex("shadingFill", cell.shadingFill);
5990
- validateThemeReference(c, "shadingThemeFill", cell.shadingThemeFill);
5991
- validateBorders(c.at(".borders"), cell.borders);
7212
+ c2.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
7213
+ c2.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
7214
+ c2.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
7215
+ c2.hex("shadingFill", cell.shadingFill);
7216
+ validateThemeReference(c2, "shadingThemeFill", cell.shadingThemeFill);
7217
+ validateBorders(c2.at(".borders"), cell.borders);
5992
7218
  if (cell.margins)
5993
7219
  for (const side of ["top", "bottom", "left", "right"])
5994
- c.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
7220
+ c2.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
5995
7221
  }
5996
- function validateTable(c, table) {
5997
- c.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
5998
- c.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
5999
- c.check(
7222
+ function validateTable(c2, table) {
7223
+ c2.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
7224
+ c2.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
7225
+ c2.check(
6000
7226
  "alignment",
6001
7227
  table.alignment,
6002
7228
  (v) => v === "left" || v === "center" || v === "right",
6003
7229
  'must be "left", "center" or "right"'
6004
7230
  );
6005
- c.enum("justification", table.justification, isStJcTable, "ST_JcTable");
7231
+ c2.enum("justification", table.justification, isStJcTable, "ST_JcTable");
6006
7232
  table.grid?.forEach(
6007
- (width, index) => c.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
7233
+ (width, index) => c2.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
6008
7234
  );
6009
- validateBorders(c.at(".borders"), table.borders);
7235
+ validateBorders(c2.at(".borders"), table.borders);
6010
7236
  if (table.cellMargins)
6011
7237
  for (const side of ["top", "bottom", "left", "right"])
6012
- c.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
7238
+ c2.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
6013
7239
  table.rowProperties?.forEach((row, index) => {
6014
7240
  if (row)
6015
- c.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
7241
+ c2.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
6016
7242
  });
6017
7243
  table.rows.forEach(
6018
- (row, r) => row.forEach((cell, k) => validateCell(c.at(`.rows[${r}][${k}]`), cell))
7244
+ (row, r) => row.forEach((cell, k) => validateCell(c2.at(`.rows[${r}][${k}]`), cell))
6019
7245
  );
6020
7246
  }
6021
- function validateSection(c, section) {
6022
- c.enum("type", section.type, isStSectionMark, "ST_SectionMark");
6023
- c.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
6024
- c.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
7247
+ function validateSection(c2, section) {
7248
+ c2.enum("type", section.type, isStSectionMark, "ST_SectionMark");
7249
+ c2.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
7250
+ c2.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
6025
7251
  for (const key of ["pageWidthTwips", "pageHeightTwips"])
6026
- c.check(
7252
+ c2.check(
6027
7253
  key,
6028
7254
  section[key],
6029
7255
  (v) => typeof v === "number" && Number.isSafeInteger(v) && v > 0,
6030
7256
  "must be a positive integer number of twips (CT_PageSz)"
6031
7257
  );
6032
7258
  for (const key of ["marginTopTwips", "marginBottomTwips"])
6033
- c.signed(key, section[key], "ST_SignedTwipsMeasure");
7259
+ c2.signed(key, section[key], "ST_SignedTwipsMeasure");
6034
7260
  for (const key of [
6035
7261
  "marginLeftTwips",
6036
7262
  "marginRightTwips",
@@ -6038,8 +7264,8 @@ function validateSection(c, section) {
6038
7264
  "footerDistanceTwips",
6039
7265
  "gutterTwips"
6040
7266
  ])
6041
- c.unsigned(key, section[key], "ST_TwipsMeasure");
6042
- const columns = c.at(".columns");
7267
+ c2.unsigned(key, section[key], "ST_TwipsMeasure");
7268
+ const columns = c2.at(".columns");
6043
7269
  columns.check(
6044
7270
  "count",
6045
7271
  section.columns?.count,
@@ -6053,7 +7279,7 @@ function validateSection(c, section) {
6053
7279
  at.unsigned("spacingTwips", column.spacingTwips, "ST_TwipsMeasure");
6054
7280
  });
6055
7281
  if (section.lineNumberSettings) {
6056
- const line = c.at(".lineNumberSettings");
7282
+ const line = c2.at(".lineNumberSettings");
6057
7283
  const settings = section.lineNumberSettings;
6058
7284
  line.check(
6059
7285
  "countBy",
@@ -6076,12 +7302,12 @@ function validateSection(c, section) {
6076
7302
  line.unsigned("distanceTwips", settings.distanceTwips, "ST_TwipsMeasure");
6077
7303
  }
6078
7304
  if (section.pageNumbering) {
6079
- const numbering = c.at(".pageNumbering");
7305
+ const numbering = c2.at(".pageNumbering");
6080
7306
  numbering.enum("format", section.pageNumbering.format, isStNumberFormat, "ST_NumberFormat");
6081
7307
  numbering.signed("start", section.pageNumbering.start, "ST_DecimalNumber");
6082
7308
  }
6083
7309
  }
6084
- function validateNumberingCatalog(c, catalog) {
7310
+ function validateNumberingCatalog(c2, catalog) {
6085
7311
  const levelOf = (at, level) => {
6086
7312
  at.enum("numFmt", level.numFmt, isStNumberFormat, "ST_NumberFormat");
6087
7313
  at.signed("start", level.start, "ST_DecimalNumber");
@@ -6112,19 +7338,19 @@ function validateNumberingCatalog(c, catalog) {
6112
7338
  };
6113
7339
  for (const [id, abstract] of Object.entries(catalog.abstractNums))
6114
7340
  for (const [key, level] of Object.entries(abstract.levels))
6115
- levelOf(new Checker(c.issues, `${c.path}.abstractNums[${id}].levels[${key}]`), level);
7341
+ levelOf(new Checker(c2.issues, `${c2.path}.abstractNums[${id}].levels[${key}]`), level);
6116
7342
  for (const [id, num] of Object.entries(catalog.nums))
6117
7343
  for (const [key, override] of Object.entries(num.levelOverrides ?? {})) {
6118
- const at = new Checker(c.issues, `${c.path}.nums[${id}].levelOverrides[${key}]`);
7344
+ const at = new Checker(c2.issues, `${c2.path}.nums[${id}].levelOverrides[${key}]`);
6119
7345
  at.signed("startOverride", override.startOverride, "ST_DecimalNumber");
6120
7346
  if (override.lvl) levelOf(at.at(".lvl"), override.lvl);
6121
7347
  }
6122
7348
  }
6123
7349
 
6124
7350
  // docx/validate-model.ts
6125
- function validateBlocks(c, blocks) {
7351
+ function validateBlocks(c2, blocks) {
6126
7352
  blocks?.forEach((block, index) => {
6127
- const at = c.at(`[${index}]`);
7353
+ const at = c2.at(`[${index}]`);
6128
7354
  if (block.type === "paragraph") return validateParagraph(at, block);
6129
7355
  validateTable(at, block);
6130
7356
  block.rows.forEach(
@@ -6138,8 +7364,8 @@ function validateBlocks(c, blocks) {
6138
7364
  }
6139
7365
  function validateDocumentModel(model) {
6140
7366
  const issues = [];
6141
- const path = (suffix) => new Checker(issues, suffix);
6142
- const page = path("page");
7367
+ const path2 = (suffix) => new Checker(issues, suffix);
7368
+ const page = path2("page");
6143
7369
  for (const key of ["width", "height"])
6144
7370
  page.check(
6145
7371
  key,
@@ -6154,9 +7380,9 @@ function validateDocumentModel(model) {
6154
7380
  (v) => typeof v === "number" && Number.isFinite(v) && (key === "marginTop" || key === "marginBottom" || v >= 0),
6155
7381
  "must be a finite pixel size (converted to integer twips; left/right non-negative)"
6156
7382
  );
6157
- validateBlocks(path("blocks"), model.blocks);
7383
+ validateBlocks(path2("blocks"), model.blocks);
6158
7384
  model.sections?.forEach((section, index) => {
6159
- const at = path(`sections[${index}]`);
7385
+ const at = path2(`sections[${index}]`);
6160
7386
  validateSection(at, section);
6161
7387
  for (const kind of ["headers", "footers"])
6162
7388
  for (const [slot2, content] of Object.entries(section[kind] ?? {}))
@@ -6164,60 +7390,271 @@ function validateDocumentModel(model) {
6164
7390
  });
6165
7391
  for (const kind of ["footnotes", "endnotes"])
6166
7392
  model[kind]?.forEach(
6167
- (note, index) => validateBlocks(path(`${kind}[${index}].blocks`), note.blocks)
7393
+ (note, index) => validateBlocks(path2(`${kind}[${index}].blocks`), note.blocks)
6168
7394
  );
6169
7395
  model.comments?.forEach(
6170
- (comment, index) => path(`comments[${index}]`).dateTime("date", comment.date)
7396
+ (comment, index) => path2(`comments[${index}]`).dateTime("date", comment.date)
6171
7397
  );
6172
- path("model").hex("pageColor", model.pageColor);
6173
- path("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
6174
- path("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
7398
+ path2("model").hex("pageColor", model.pageColor);
7399
+ path2("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
7400
+ path2("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
6175
7401
  if (model.numberingCatalog)
6176
- validateNumberingCatalog(path("numberingCatalog"), model.numberingCatalog);
7402
+ validateNumberingCatalog(path2("numberingCatalog"), model.numberingCatalog);
6177
7403
  return issues;
6178
7404
  }
6179
- function assertValidDocumentModel(model) {
6180
- const issues = validateDocumentModel(model);
6181
- if (issues.length) throw new DocxModelValidationError(issues);
7405
+ function assertValidDocumentModel(model) {
7406
+ const issues = validateDocumentModel(model);
7407
+ if (issues.length) throw new DocxModelValidationError(issues);
7408
+ }
7409
+
7410
+ // docx/numbering-parts.ts
7411
+ var CT_NS = "http://schemas.openxmlformats.org/package/2006/content-types";
7412
+ var REL_NS2 = "http://schemas.openxmlformats.org/package/2006/relationships";
7413
+ var NUMBERING_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
7414
+ var NUMBERING_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
7415
+ async function registerNumberingPart(zip) {
7416
+ const contentTypesPath = "[Content_Types].xml";
7417
+ const contentTypesFile = zip.file(contentTypesPath);
7418
+ const contentTypesXml = contentTypesFile ? await contentTypesFile.async("string") : `<?xml version="1.0"?><Types xmlns="${CT_NS}"/>`;
7419
+ const contentTypesDoc = parseXml2(contentTypesXml);
7420
+ const hasOverride = Array.from(contentTypesDoc.getElementsByTagNameNS(CT_NS, "Override")).some(
7421
+ (element) => element.getAttribute("PartName") === "/word/numbering.xml"
7422
+ );
7423
+ if (!hasOverride) {
7424
+ const override = contentTypesDoc.createElementNS(CT_NS, "Override");
7425
+ override.setAttribute("PartName", "/word/numbering.xml");
7426
+ override.setAttribute("ContentType", NUMBERING_CONTENT_TYPE);
7427
+ contentTypesDoc.documentElement.appendChild(override);
7428
+ zip.file(contentTypesPath, buildXml(contentTypesDoc));
7429
+ }
7430
+ const relsPath = "word/_rels/document.xml.rels";
7431
+ const relsFile = zip.file(relsPath);
7432
+ const relsXml = relsFile ? await relsFile.async("string") : `<?xml version="1.0"?><Relationships xmlns="${REL_NS2}"/>`;
7433
+ const relsDoc = parseXml2(relsXml);
7434
+ const existingIds = new Set(
7435
+ Array.from(relsDoc.getElementsByTagNameNS(REL_NS2, "Relationship")).map(
7436
+ (element) => element.getAttribute("Id") ?? ""
7437
+ )
7438
+ );
7439
+ let serial = 1;
7440
+ while (existingIds.has(`rId${serial}`)) serial++;
7441
+ const relationship = relsDoc.createElementNS(REL_NS2, "Relationship");
7442
+ relationship.setAttribute("Id", `rId${serial}`);
7443
+ relationship.setAttribute("Type", NUMBERING_RELATIONSHIP_TYPE);
7444
+ relationship.setAttribute("Target", "numbering.xml");
7445
+ relsDoc.documentElement.appendChild(relationship);
7446
+ zip.file(relsPath, buildXml(relsDoc));
7447
+ }
7448
+
7449
+ // docx/numbering-parse.ts
7450
+ var integer2 = (value, fallback) => parseInteger(value) ?? fallback;
7451
+ var flag = (element) => onOffElement(element) === true;
7452
+ function byName(root, local) {
7453
+ return Array.from(root.getElementsByTagName("*")).filter(
7454
+ (node) => node.nodeType === 1 && named2(node, local)
7455
+ );
7456
+ }
7457
+ function parseMarkerFormat(rPr) {
7458
+ if (!rPr) return void 0;
7459
+ const format = {};
7460
+ const family = getW(first2(rPr, "rFonts"), "ascii");
7461
+ if (family) format.fontFamily = family;
7462
+ const size = parseInteger(getW(first2(rPr, "sz"), "val"));
7463
+ if (size !== void 0 && size > 0) format.fontSizeHalfPoints = size;
7464
+ if (onOffElement(first2(rPr, "b")) === true) format.bold = true;
7465
+ if (onOffElement(first2(rPr, "i")) === true) format.italic = true;
7466
+ const color = getW(first2(rPr, "color"), "val");
7467
+ if (color && /^[0-9a-f]{6}$/i.test(color)) format.color = `#${color.toLowerCase()}`;
7468
+ return Object.keys(format).length ? format : void 0;
7469
+ }
7470
+ function parseNumberingLevel(lvl) {
7471
+ const level = integer2(getW(lvl, "ilvl"), 0);
7472
+ const start = integer2(getW(first2(lvl, "start"), "val"), 1);
7473
+ const numFmt = enumValue(isStNumberFormat, getW(first2(lvl, "numFmt"), "val"), "w:numFmt") ?? "decimal";
7474
+ const lvlText = getW(first2(lvl, "lvlText"), "val") ?? "";
7475
+ const jc = getW(first2(lvl, "lvlJc"), "val");
7476
+ const ind = first2(first2(lvl, "pPr"), "ind");
7477
+ const suffRaw = getW(first2(lvl, "suff"), "val");
7478
+ const result = { level, start, numFmt, lvlText };
7479
+ if (!first2(lvl, "start")) result.startWasOmitted = true;
7480
+ const paragraphStyleId = getW(first2(lvl, "pStyle"), "val");
7481
+ if (paragraphStyleId) result.paragraphStyleId = paragraphStyleId;
7482
+ if (jc === "left" || jc === "center" || jc === "right") result.lvlJc = jc;
7483
+ const left = getW(ind, "left") ?? getW(ind, "start");
7484
+ if (left !== void 0) result.indentLeftTwips = parseSignedTwips(left) ?? signedTwips(0);
7485
+ const hanging = getW(ind, "hanging");
7486
+ if (hanging !== void 0) result.hangingTwips = parseTwips(hanging) ?? twips(0);
7487
+ const firstLine = getW(ind, "firstLine");
7488
+ if (firstLine !== void 0) result.firstLineTwips = parseTwips(firstLine) ?? twips(0);
7489
+ const tabs = first2(first2(lvl, "pPr"), "tabs");
7490
+ const tab = tabs ? children2(tabs, "tab").find((stop) => getW(stop, "val") !== "clear") : void 0;
7491
+ const tabPos = tab ? parseTwips(getW(tab, "pos")) : void 0;
7492
+ if (tabPos !== void 0) result.tabStopTwips = tabPos;
7493
+ if (flag(first2(lvl, "isLgl"))) result.isLgl = true;
7494
+ const restart = getW(first2(lvl, "lvlRestart"), "val");
7495
+ if (restart !== void 0) result.lvlRestart = integer2(restart, 0);
7496
+ const marker = parseMarkerFormat(first2(lvl, "rPr"));
7497
+ if (marker) result.markerFormat = marker;
7498
+ result.suffix = suffRaw === "space" ? "space" : suffRaw === "nothing" ? "none" : "tab";
7499
+ return result;
7500
+ }
7501
+ function parseAbstractNum(element) {
7502
+ const id = getW(element, "abstractNumId");
7503
+ if (!id) return void 0;
7504
+ const levels = {};
7505
+ for (const lvl of children2(element, "lvl")) {
7506
+ const parsed = parseNumberingLevel(lvl);
7507
+ levels[parsed.level] = parsed;
7508
+ }
7509
+ return { id, levels };
7510
+ }
7511
+ function parseNum(element) {
7512
+ const id = getW(element, "numId");
7513
+ if (!id) return void 0;
7514
+ const abstractNumId = getW(first2(element, "abstractNumId"), "val") ?? "";
7515
+ const levelOverrides = {};
7516
+ for (const override of children2(element, "lvlOverride")) {
7517
+ const level = integer2(getW(override, "ilvl"), 0);
7518
+ const entry2 = {};
7519
+ const startOverride = getW(first2(override, "startOverride"), "val");
7520
+ if (startOverride !== void 0) entry2.startOverride = integer2(startOverride, 1);
7521
+ const lvl = first2(override, "lvl");
7522
+ if (lvl) entry2.lvl = parseNumberingLevel(lvl);
7523
+ if (Object.keys(entry2).length) levelOverrides[level] = entry2;
7524
+ }
7525
+ return {
7526
+ id,
7527
+ abstractNumId,
7528
+ ...Object.keys(levelOverrides).length ? { levelOverrides } : {}
7529
+ };
7530
+ }
7531
+ function parseNumberingCatalog(xml) {
7532
+ const document = parseXml2(xml);
7533
+ const root = document.documentElement;
7534
+ const abstractNums = {};
7535
+ const warnings = [];
7536
+ for (const element of byName(root, "abstractNum")) {
7537
+ const parsed = parseAbstractNum(element);
7538
+ if (!parsed) continue;
7539
+ abstractNums[parsed.id] = parsed;
7540
+ const link = getW(first2(element, "numStyleLink"), "val");
7541
+ if (link)
7542
+ warnings.push(
7543
+ `Numbering definition abstractNum ${parsed.id} links to style "${link}"; style-linked numbering levels are not resolved.`
7544
+ );
7545
+ if (byName(element, "lvlPicBulletId").length)
7546
+ warnings.push(
7547
+ `Numbering definition abstractNum ${parsed.id} uses a picture bullet; picture bullets are not rendered.`
7548
+ );
7549
+ }
7550
+ const nums = {};
7551
+ for (const element of byName(root, "num")) {
7552
+ const parsed = parseNum(element);
7553
+ if (parsed) nums[parsed.id] = parsed;
7554
+ }
7555
+ return { abstractNums, nums, warnings: [...new Set(warnings)] };
7556
+ }
7557
+ function resolveNumberingLevel(catalog, numId, level) {
7558
+ const num = catalog.nums[numId];
7559
+ if (!num) return void 0;
7560
+ const override = num.levelOverrides?.[level];
7561
+ const sourceAbstract = catalog.abstractNums[num.abstractNumId]?.levels[level];
7562
+ const abstract = sourceAbstract?.startWasOmitted && sourceAbstract.start === 1 ? { ...sourceAbstract, start: 0 } : sourceAbstract;
7563
+ let base = override?.lvl ?? abstract;
7564
+ if (!base) return void 0;
7565
+ if (override?.lvl) {
7566
+ const { lvlRestart: _ignored, ...properties } = base;
7567
+ base = {
7568
+ ...properties,
7569
+ ...abstract?.lvlRestart !== void 0 ? { lvlRestart: abstract.lvlRestart } : {}
7570
+ };
7571
+ }
7572
+ let start = override?.startOverride ?? base.start;
7573
+ if (override?.lvl) {
7574
+ if (abstract?.lvlRestart === 0 && override.startOverride === void 0) start = abstract.start;
7575
+ else if (!override.lvl.startWasOmitted || override.lvl.start !== 1) start = override.lvl.start;
7576
+ else start = override.startOverride ?? 0;
7577
+ }
7578
+ return start !== base.start ? { ...base, start } : base;
7579
+ }
7580
+
7581
+ // docx/numbering-start-edit.ts
7582
+ function assertListStartValue(level, start) {
7583
+ if (!Number.isInteger(level) || level < 0 || level > 8)
7584
+ throw new Error("List level must be an integer from 0 through 8.");
7585
+ if (!Number.isInteger(start) || start < 0 || start > 2147483647)
7586
+ throw new Error("List start must be an integer from 0 through 2147483647.");
6182
7587
  }
6183
7588
 
6184
- // docx/numbering-parts.ts
6185
- var CT_NS = "http://schemas.openxmlformats.org/package/2006/content-types";
6186
- var REL_NS2 = "http://schemas.openxmlformats.org/package/2006/relationships";
6187
- var NUMBERING_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
6188
- var NUMBERING_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
6189
- async function registerNumberingPart(zip) {
6190
- const contentTypesPath = "[Content_Types].xml";
6191
- const contentTypesFile = zip.file(contentTypesPath);
6192
- const contentTypesXml = contentTypesFile ? await contentTypesFile.async("string") : `<?xml version="1.0"?><Types xmlns="${CT_NS}"/>`;
6193
- const contentTypesDoc = parseXml2(contentTypesXml);
6194
- const hasOverride = Array.from(contentTypesDoc.getElementsByTagNameNS(CT_NS, "Override")).some(
6195
- (element) => element.getAttribute("PartName") === "/word/numbering.xml"
6196
- );
6197
- if (!hasOverride) {
6198
- const override = contentTypesDoc.createElementNS(CT_NS, "Override");
6199
- override.setAttribute("PartName", "/word/numbering.xml");
6200
- override.setAttribute("ContentType", NUMBERING_CONTENT_TYPE);
6201
- contentTypesDoc.documentElement.appendChild(override);
6202
- zip.file(contentTypesPath, buildXml(contentTypesDoc));
7589
+ // docx/numbering-start-patch.ts
7590
+ function withoutStarts(num) {
7591
+ const { levelOverrides, ...properties } = num;
7592
+ const kept = {};
7593
+ for (const [level, override] of Object.entries(levelOverrides ?? {})) {
7594
+ const { startOverride: _start, ...rest } = override;
7595
+ if (Object.keys(rest).length) kept[level] = rest;
7596
+ }
7597
+ return { ...properties, ...Object.keys(kept).length ? { levelOverrides: kept } : {} };
7598
+ }
7599
+ function numberingStartChanges(prior, next) {
7600
+ const changes = [];
7601
+ for (const [id, previous] of Object.entries(prior?.nums ?? {})) {
7602
+ const current = next.nums[id];
7603
+ if (!current || JSON.stringify(withoutStarts(current)) !== JSON.stringify(withoutStarts(previous)))
7604
+ throw new Error(
7605
+ `Cannot edit numbering definition num "${id}" except its supported start overrides.`
7606
+ );
7607
+ for (const key of /* @__PURE__ */ new Set([
7608
+ ...Object.keys(previous.levelOverrides ?? {}),
7609
+ ...Object.keys(current.levelOverrides ?? {})
7610
+ ])) {
7611
+ const level = Number(key);
7612
+ const old = previous.levelOverrides?.[level];
7613
+ const value = current.levelOverrides?.[level];
7614
+ if (old?.startOverride === value?.startOverride) continue;
7615
+ if (value?.startOverride === void 0)
7616
+ throw new Error("Removing a list start override is unsupported.");
7617
+ assertListStartValue(level, value.startOverride);
7618
+ if (String(level) !== key || !prior || !resolveNumberingLevel(prior, id, level))
7619
+ throw new Error("List instance or level does not exist.");
7620
+ if (old?.lvl || value.lvl)
7621
+ throw new Error("Changing starts with a full level override is unsupported.");
7622
+ changes.push({ numId: id, level, start: value.startOverride });
7623
+ }
7624
+ }
7625
+ return changes;
7626
+ }
7627
+ function patchNumberingStarts(doc, changes) {
7628
+ const sameNumber = (source, expected) => source !== void 0 && /^[+-]?\d+$/.test(source) && Number(source) === Number(expected);
7629
+ const prepared = changes.map((change) => {
7630
+ const nums = children2(doc.documentElement, "num").filter(
7631
+ (num2) => sameNumber(getW(num2, "numId"), change.numId)
7632
+ );
7633
+ if (nums.length !== 1 || getW(nums[0], "numId") !== change.numId)
7634
+ throw new Error("Cannot patch an ambiguous or missing source list instance.");
7635
+ const num = nums[0];
7636
+ const overrides = children2(num, "lvlOverride").filter(
7637
+ (node) => sameNumber(getW(node, "ilvl"), String(change.level))
7638
+ );
7639
+ if (overrides.length > 1) throw new Error("Cannot patch duplicate source level overrides.");
7640
+ const override = overrides[0];
7641
+ if (override && getW(override, "ilvl") !== String(change.level))
7642
+ throw new Error("Cannot patch a noncanonical source level override.");
7643
+ if (override && (children2(override, "lvl").length || children2(override, "startOverride").length > 1))
7644
+ throw new Error("Cannot patch a full or ambiguous source level override.");
7645
+ return { change, num, override };
7646
+ });
7647
+ for (const { change, num, override: existing } of prepared) {
7648
+ const override = existing ?? makeW(doc, "lvlOverride");
7649
+ if (!existing) {
7650
+ override.setAttributeNS(WORD_NS, "w:ilvl", String(change.level));
7651
+ const after = children2(num, "lvlOverride").at(-1) ?? children2(num, "abstractNumId")[0];
7652
+ num.insertBefore(override, after?.nextSibling ?? null);
7653
+ }
7654
+ const start = children2(override, "startOverride")[0] ?? makeW(doc, "startOverride");
7655
+ start.setAttributeNS(WORD_NS, "w:val", String(change.start));
7656
+ if (!start.parentNode) override.insertBefore(start, override.firstChild);
6203
7657
  }
6204
- const relsPath = "word/_rels/document.xml.rels";
6205
- const relsFile = zip.file(relsPath);
6206
- const relsXml = relsFile ? await relsFile.async("string") : `<?xml version="1.0"?><Relationships xmlns="${REL_NS2}"/>`;
6207
- const relsDoc = parseXml2(relsXml);
6208
- const existingIds = new Set(
6209
- Array.from(relsDoc.getElementsByTagNameNS(REL_NS2, "Relationship")).map(
6210
- (element) => element.getAttribute("Id") ?? ""
6211
- )
6212
- );
6213
- let serial = 1;
6214
- while (existingIds.has(`rId${serial}`)) serial++;
6215
- const relationship = relsDoc.createElementNS(REL_NS2, "Relationship");
6216
- relationship.setAttribute("Id", `rId${serial}`);
6217
- relationship.setAttribute("Type", NUMBERING_RELATIONSHIP_TYPE);
6218
- relationship.setAttribute("Target", "numbering.xml");
6219
- relsDoc.documentElement.appendChild(relationship);
6220
- zip.file(relsPath, buildXml(relsDoc));
6221
7658
  }
6222
7659
 
6223
7660
  // docx/numbering-package.ts
@@ -6289,7 +7726,7 @@ function buildAbstractNumElement(doc, def) {
6289
7726
  const element = makeW(doc, "abstractNum");
6290
7727
  setAttribute8(element, "abstractNumId", def.id);
6291
7728
  element.appendChild(valueElement(doc, "multiLevelType", "hybridMultilevel"));
6292
- for (const level of Object.values(def.levels).sort((a, b) => a.level - b.level))
7729
+ for (const level of Object.values(def.levels).sort((a2, b) => a2.level - b.level))
6293
7730
  element.appendChild(buildLevelElement(doc, level));
6294
7731
  return element;
6295
7732
  }
@@ -6324,17 +7761,14 @@ async function applyNumberingCatalog(zip, model, binding) {
6324
7761
  throw new Error(
6325
7762
  `Cannot edit numbering definition abstractNum "${id}"; the original numbering.xml is preserved unchanged.`
6326
7763
  );
6327
- for (const id of Object.keys(prior?.nums ?? {}))
6328
- if (JSON.stringify(next.nums[id]) !== JSON.stringify(prior?.nums[id]))
6329
- throw new Error(
6330
- `Cannot edit numbering definition num "${id}"; the original numbering.xml is preserved unchanged.`
6331
- );
7764
+ const startChanges = numberingStartChanges(prior, next);
6332
7765
  const newAbstractIds = Object.keys(next.abstractNums).filter((id) => !prior?.abstractNums[id]);
6333
7766
  const newNumIds = Object.keys(next.nums).filter((id) => !prior?.nums[id]);
6334
- if (!newAbstractIds.length && !newNumIds.length) return;
7767
+ if (!newAbstractIds.length && !newNumIds.length && !startChanges.length) return;
6335
7768
  const existingFile = zip.file("word/numbering.xml");
6336
7769
  const doc = existingFile ? parseXml2(await existingFile.async("string")) : parseXml2(`<w:numbering xmlns:w="${WORD_NS}"/>`);
6337
7770
  const root = doc.documentElement;
7771
+ patchNumberingStarts(doc, startChanges);
6338
7772
  const cleanup = children2(root, "numIdMacAtCleanup")[0] ?? null;
6339
7773
  const firstNum = children2(root, "num")[0] ?? cleanup;
6340
7774
  for (const id of newAbstractIds) {
@@ -6411,13 +7845,13 @@ async function applyStyleNumbering(zip, model, base) {
6411
7845
  // docx/part-relationships.ts
6412
7846
  var CONTENT_TYPES_PART = "[Content_Types].xml";
6413
7847
  var extensionOf = (partName) => partName.split(".").pop()?.toLowerCase() ?? "";
6414
- function relationshipsPartFor(partName) {
7848
+ function relationshipsPartFor2(partName) {
6415
7849
  const slash = partName.lastIndexOf("/");
6416
7850
  return `${partName.slice(0, slash)}/_rels/${partName.slice(slash + 1)}.rels`;
6417
7851
  }
6418
7852
  async function allocatorForPart(zip, partName, doc, docPrIds) {
6419
7853
  const declared = parseRelationships(
6420
- await zip.file(relationshipsPartFor(partName))?.async("string")
7854
+ await zip.file(relationshipsPartFor2(partName))?.async("string")
6421
7855
  );
6422
7856
  const allocator = new RelationshipAllocator(
6423
7857
  [...scanUsedRelationshipIds(doc), ...declared.keys()],
@@ -6428,7 +7862,7 @@ async function allocatorForPart(zip, partName, doc, docPrIds) {
6428
7862
  }
6429
7863
  async function writeNewRelationships(zip, partName, created, pendingMedia) {
6430
7864
  if (!created.length) return;
6431
- const relsPath = relationshipsPartFor(partName);
7865
+ const relsPath = relationshipsPartFor2(partName);
6432
7866
  const relationships = parseRelationships(await zip.file(relsPath)?.async("string"));
6433
7867
  let contentTypesXml = await zip.file(CONTENT_TYPES_PART)?.async("string");
6434
7868
  for (const relationship of created) {
@@ -6512,8 +7946,8 @@ async function createHeaderFooterParts(zip, model, base, docPrIds) {
6512
7946
  (_match, start, end) => `${start}${docPrIds.next()}${end}`
6513
7947
  ) : xml
6514
7948
  );
6515
- const rels = zip.file(relationshipsPartFor(content.sourcePartName));
6516
- if (rels) zip.file(relationshipsPartFor(partName), await rels.async("uint8array"));
7949
+ const rels = zip.file(relationshipsPartFor2(content.sourcePartName));
7950
+ if (rels) zip.file(relationshipsPartFor2(partName), await rels.async("uint8array"));
6517
7951
  }
6518
7952
  await ensureContentTypeOverride(
6519
7953
  zip,
@@ -7200,23 +8634,31 @@ function createFieldTracker() {
7200
8634
  const stack = [];
7201
8635
  return (element, run) => {
7202
8636
  let resultInstr;
8637
+ let resultLocked;
7203
8638
  for (const child3 of Array.from(element.childNodes)) {
7204
8639
  if (!isElement(child3)) continue;
7205
8640
  if (named2(child3, "fldChar")) {
7206
8641
  const type = getW(child3, "fldCharType");
7207
- if (type === "begin") stack.push({ instr: "", inResult: false });
7208
- else if (type === "separate") {
8642
+ if (type === "begin") {
8643
+ const locked = parseFieldFlags(child3)?.locked;
8644
+ stack.push({ instr: "", inResult: false, ...locked !== void 0 && { locked } });
8645
+ } else if (type === "separate") {
7209
8646
  const top = stack.at(-1);
7210
8647
  if (top) top.inResult = true;
7211
8648
  } else if (type === "end") stack.pop();
7212
8649
  } else {
7213
8650
  const top = stack.at(-1);
7214
8651
  if (named2(child3, "instrText") && top && !top.inResult) top.instr += textContent(child3);
7215
- else if ((named2(child3, "t") || named2(child3, "delText")) && top?.inResult)
8652
+ else if ((named2(child3, "t") || named2(child3, "delText")) && top?.inResult) {
7216
8653
  resultInstr = top.instr.trim();
8654
+ resultLocked = top.locked;
8655
+ }
7217
8656
  }
7218
8657
  }
7219
- if (resultInstr) run.field = { instr: resultInstr };
8658
+ if (resultInstr) {
8659
+ run.field = { instr: resultInstr };
8660
+ if (resultLocked !== void 0) run.fieldFlags = { locked: resultLocked };
8661
+ }
7220
8662
  return run;
7221
8663
  };
7222
8664
  }
@@ -7227,7 +8669,11 @@ function storyFieldResults(container) {
7227
8669
  if (named2(element, "fldSimple") || named2(element, "txbxContent")) return;
7228
8670
  if (named2(element, "r")) {
7229
8671
  const run = trackField(element, { text: "" });
7230
- if (run.field) metadata.set(element, run.field);
8672
+ if (run.field)
8673
+ metadata.set(element, {
8674
+ field: run.field,
8675
+ ...run.fieldFlags && { fieldFlags: run.fieldFlags }
8676
+ });
7231
8677
  return;
7232
8678
  }
7233
8679
  for (const child3 of Array.from(element.childNodes)) if (isElement(child3)) visit(child3);
@@ -7319,7 +8765,11 @@ function parseRun2(node, revision) {
7319
8765
  if (breakKind) run.break = breakKind;
7320
8766
  if (noteReference) run.noteReference = noteReference;
7321
8767
  if (noteMark) run.noteMark = noteMark;
7322
- if (fieldChar) run.fieldChar = fieldChar;
8768
+ if (fieldChar) {
8769
+ run.fieldChar = fieldChar;
8770
+ const flags = parseFieldFlags(only);
8771
+ if (flags) run.fieldFlags = flags;
8772
+ }
7323
8773
  if (fieldCode !== void 0) run.fieldCode = fieldCode;
7324
8774
  const runRevision = revision ?? runFormatRevision(props);
7325
8775
  if (runRevision) run.revision = runRevision;
@@ -7338,8 +8788,11 @@ function parseParagraph2(node, id, fields) {
7338
8788
  (element, revision) => {
7339
8789
  const run = parseRun2(element, revision);
7340
8790
  if (!fields) return trackField(element, run);
7341
- const field = fields.get(element);
7342
- if (field) run.field = { ...field };
8791
+ const metadata = fields.get(element);
8792
+ if (metadata) {
8793
+ run.field = { ...metadata.field };
8794
+ if (metadata.fieldFlags) run.fieldFlags = { ...metadata.fieldFlags };
8795
+ }
7343
8796
  return run;
7344
8797
  },
7345
8798
  (item) => {
@@ -7361,20 +8814,23 @@ function parseParagraph2(node, id, fields) {
7361
8814
  );
7362
8815
  if (link) return results.map((run) => ({ ...run, link }));
7363
8816
  const field = { instr: instr.trim(), simple: true };
8817
+ const flags = parseFieldFlags(item);
8818
+ const fieldState = flags ? { fieldFlags: flags } : {};
7364
8819
  const fieldInstanceId = `${id}:simple-field-${simpleFieldIndex++}`;
7365
- if (!results.length) return [{ text: fieldPlaceholderText(instr), field, fieldInstanceId }];
8820
+ if (!results.length)
8821
+ return [{ text: fieldPlaceholderText(instr), field, fieldInstanceId, ...fieldState }];
7366
8822
  if (results.every(
7367
8823
  (run) => !run.text && !run.equation && !run.image && !run.break && !run.noteReference && !run.noteMark && !run.fieldChar && run.fieldCode === void 0
7368
8824
  )) {
7369
8825
  return [
7370
- { text: "", fieldChar: "begin" },
8826
+ { text: "", fieldChar: "begin", ...fieldState },
7371
8827
  { text: "", fieldCode: instr },
7372
8828
  { text: "", fieldChar: "separate" },
7373
8829
  ...results,
7374
8830
  { text: "", fieldChar: "end" }
7375
8831
  ];
7376
8832
  }
7377
- return results.map((run) => ({ ...run, field, fieldInstanceId }));
8833
+ return results.map((run) => ({ ...run, field, fieldInstanceId, ...fieldState }));
7378
8834
  },
7379
8835
  (hyperlink) => {
7380
8836
  if (!activeContext) return void 0;
@@ -7564,15 +9020,15 @@ function parseNotesPart(xml, kind, parseBlocks) {
7564
9020
  }
7565
9021
 
7566
9022
  // docx/document-parts.ts
7567
- async function partContext(zip, path, base) {
9023
+ async function partContext(zip, path2, base) {
7568
9024
  if (!base) return void 0;
7569
- const slash = path.lastIndexOf("/");
7570
- const relsPath = `${path.slice(0, slash)}/_rels/${path.slice(slash + 1)}.rels`;
9025
+ const slash = path2.lastIndexOf("/");
9026
+ const relsPath = `${path2.slice(0, slash)}/_rels/${path2.slice(slash + 1)}.rels`;
7571
9027
  return { ...base, rels: parseRelationships(await readPart(zip, relsPath)) };
7572
9028
  }
7573
9029
  var FIELD_MARKUP = /<w:(?:fldSimple|instrText|fldChar)\b/;
7574
- async function readPart(zip, path) {
7575
- return zip.file(path)?.async("string");
9030
+ async function readPart(zip, path2) {
9031
+ return zip.file(path2)?.async("string");
7576
9032
  }
7577
9033
  function parseSettings(xml) {
7578
9034
  if (!xml) return { evenAndOddHeaders: false, autoHyphenation: false };
@@ -7600,21 +9056,21 @@ async function resolveSlots(zip, relationships, refs, cache, fieldMarkup, drawin
7600
9056
  for (const ref of refs) {
7601
9057
  const relationship = relationships.get(ref.rId);
7602
9058
  if (!relationship) continue;
7603
- const path = resolvePartPath("word/document.xml", relationship.target);
7604
- let blocks = cache.get(path);
9059
+ const path2 = resolvePartPath("word/document.xml", relationship.target);
9060
+ let blocks = cache.get(path2);
7605
9061
  if (!blocks) {
7606
- const xml = await readPart(zip, path);
9062
+ const xml = await readPart(zip, path2);
7607
9063
  if (xml === void 0) continue;
7608
9064
  if (FIELD_MARKUP.test(xml)) fieldMarkup.seen = true;
7609
- const context = await partContext(zip, path, drawings);
9065
+ const context = await partContext(zip, path2, drawings);
7610
9066
  const root = parseXml2(xml).documentElement;
7611
9067
  blocks = withParseWarnings(
7612
9068
  sink2,
7613
- () => parseBlocksFromContainer(root, `${path.replace(/[^a-z0-9]+/gi, "")}-`, context)
9069
+ () => parseBlocksFromContainer(root, `${path2.replace(/[^a-z0-9]+/gi, "")}-`, context)
7614
9070
  );
7615
- cache.set(path, blocks);
9071
+ cache.set(path2, blocks);
7616
9072
  }
7617
- slots[ref.slot] = { blocks, partName: path };
9073
+ slots[ref.slot] = { blocks, partName: path2 };
7618
9074
  }
7619
9075
  return Object.keys(slots).length ? slots : void 0;
7620
9076
  }
@@ -7650,8 +9106,8 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
7650
9106
  }
7651
9107
  const footnotesXml = await readPart(zip, "word/footnotes.xml");
7652
9108
  const endnotesXml = await readPart(zip, "word/endnotes.xml");
7653
- const notesParser = async (path) => {
7654
- const context = await partContext(zip, path, drawings);
9109
+ const notesParser = async (path2) => {
9110
+ const context = await partContext(zip, path2, drawings);
7655
9111
  return (container, prefix) => withParseWarnings(warnings, () => parseBlocksFromContainer(container, prefix, context));
7656
9112
  };
7657
9113
  const footnotes = footnotesXml ? parseNotesPart(footnotesXml, "footnote", await notesParser("word/footnotes.xml")) : void 0;
@@ -7676,115 +9132,6 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
7676
9132
  };
7677
9133
  }
7678
9134
 
7679
- // docx/numbering-parse.ts
7680
- var integer2 = (value, fallback) => parseInteger(value) ?? fallback;
7681
- var flag = (element) => onOffElement(element) === true;
7682
- function byName(root, local) {
7683
- return Array.from(root.getElementsByTagName("*")).filter(
7684
- (node) => node.nodeType === 1 && named2(node, local)
7685
- );
7686
- }
7687
- function parseMarkerFormat(rPr) {
7688
- if (!rPr) return void 0;
7689
- const format = {};
7690
- const family = getW(first2(rPr, "rFonts"), "ascii");
7691
- if (family) format.fontFamily = family;
7692
- const size = parseInteger(getW(first2(rPr, "sz"), "val"));
7693
- if (size !== void 0 && size > 0) format.fontSizeHalfPoints = size;
7694
- if (onOffElement(first2(rPr, "b")) === true) format.bold = true;
7695
- if (onOffElement(first2(rPr, "i")) === true) format.italic = true;
7696
- const color = getW(first2(rPr, "color"), "val");
7697
- if (color && /^[0-9a-f]{6}$/i.test(color)) format.color = `#${color.toLowerCase()}`;
7698
- return Object.keys(format).length ? format : void 0;
7699
- }
7700
- function parseNumberingLevel(lvl) {
7701
- const level = integer2(getW(lvl, "ilvl"), 0);
7702
- const start = integer2(getW(first2(lvl, "start"), "val"), 1);
7703
- const numFmt = enumValue(isStNumberFormat, getW(first2(lvl, "numFmt"), "val"), "w:numFmt") ?? "decimal";
7704
- const lvlText = getW(first2(lvl, "lvlText"), "val") ?? "";
7705
- const jc = getW(first2(lvl, "lvlJc"), "val");
7706
- const ind = first2(first2(lvl, "pPr"), "ind");
7707
- const suffRaw = getW(first2(lvl, "suff"), "val");
7708
- const result = { level, start, numFmt, lvlText };
7709
- if (!first2(lvl, "start")) result.startWasOmitted = true;
7710
- const paragraphStyleId = getW(first2(lvl, "pStyle"), "val");
7711
- if (paragraphStyleId) result.paragraphStyleId = paragraphStyleId;
7712
- if (jc === "left" || jc === "center" || jc === "right") result.lvlJc = jc;
7713
- const left = getW(ind, "left") ?? getW(ind, "start");
7714
- if (left !== void 0) result.indentLeftTwips = parseSignedTwips(left) ?? signedTwips(0);
7715
- const hanging = getW(ind, "hanging");
7716
- if (hanging !== void 0) result.hangingTwips = parseTwips(hanging) ?? twips(0);
7717
- const firstLine = getW(ind, "firstLine");
7718
- if (firstLine !== void 0) result.firstLineTwips = parseTwips(firstLine) ?? twips(0);
7719
- const tabs = first2(first2(lvl, "pPr"), "tabs");
7720
- const tab = tabs ? children2(tabs, "tab").find((stop) => getW(stop, "val") !== "clear") : void 0;
7721
- const tabPos = tab ? parseTwips(getW(tab, "pos")) : void 0;
7722
- if (tabPos !== void 0) result.tabStopTwips = tabPos;
7723
- if (flag(first2(lvl, "isLgl"))) result.isLgl = true;
7724
- const restart = getW(first2(lvl, "lvlRestart"), "val");
7725
- if (restart !== void 0) result.lvlRestart = integer2(restart, 0);
7726
- const marker = parseMarkerFormat(first2(lvl, "rPr"));
7727
- if (marker) result.markerFormat = marker;
7728
- result.suffix = suffRaw === "space" ? "space" : suffRaw === "nothing" ? "none" : "tab";
7729
- return result;
7730
- }
7731
- function parseAbstractNum(element) {
7732
- const id = getW(element, "abstractNumId");
7733
- if (!id) return void 0;
7734
- const levels = {};
7735
- for (const lvl of children2(element, "lvl")) {
7736
- const parsed = parseNumberingLevel(lvl);
7737
- levels[parsed.level] = parsed;
7738
- }
7739
- return { id, levels };
7740
- }
7741
- function parseNum(element) {
7742
- const id = getW(element, "numId");
7743
- if (!id) return void 0;
7744
- const abstractNumId = getW(first2(element, "abstractNumId"), "val") ?? "";
7745
- const levelOverrides = {};
7746
- for (const override of children2(element, "lvlOverride")) {
7747
- const level = integer2(getW(override, "ilvl"), 0);
7748
- const entry = {};
7749
- const startOverride = getW(first2(override, "startOverride"), "val");
7750
- if (startOverride !== void 0) entry.startOverride = integer2(startOverride, 1);
7751
- const lvl = first2(override, "lvl");
7752
- if (lvl) entry.lvl = parseNumberingLevel(lvl);
7753
- if (Object.keys(entry).length) levelOverrides[level] = entry;
7754
- }
7755
- return {
7756
- id,
7757
- abstractNumId,
7758
- ...Object.keys(levelOverrides).length ? { levelOverrides } : {}
7759
- };
7760
- }
7761
- function parseNumberingCatalog(xml) {
7762
- const document = parseXml2(xml);
7763
- const root = document.documentElement;
7764
- const abstractNums = {};
7765
- const warnings = [];
7766
- for (const element of byName(root, "abstractNum")) {
7767
- const parsed = parseAbstractNum(element);
7768
- if (!parsed) continue;
7769
- abstractNums[parsed.id] = parsed;
7770
- const link = getW(first2(element, "numStyleLink"), "val");
7771
- if (link)
7772
- warnings.push(
7773
- `Numbering definition abstractNum ${parsed.id} links to style "${link}"; style-linked numbering levels are not resolved.`
7774
- );
7775
- if (byName(element, "lvlPicBulletId").length)
7776
- warnings.push(
7777
- `Numbering definition abstractNum ${parsed.id} uses a picture bullet; picture bullets are not rendered.`
7778
- );
7779
- }
7780
- const nums = {};
7781
- for (const element of byName(root, "num")) {
7782
- const parsed = parseNum(element);
7783
- if (parsed) nums[parsed.id] = parsed;
7784
- }
7785
- return { abstractNums, nums, warnings: [...new Set(warnings)] };
7786
- }
7787
-
7788
9135
  // docx/comments.ts
7789
9136
  var W14_NS2 = "http://schemas.microsoft.com/office/word/2010/wordml";
7790
9137
  var W15_NS2 = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -7812,15 +9159,15 @@ function parseComments(commentsXml, extendedXml) {
7812
9159
  });
7813
9160
  if (extendedXml) {
7814
9161
  const extended = parseXml2(extendedXml);
7815
- for (const entry of Array.from(
9162
+ for (const entry2 of Array.from(
7816
9163
  extended.getElementsByTagNameNS(W15_NS2, "commentEx")
7817
9164
  )) {
7818
- const paraId = entry.getAttributeNS(W15_NS2, "paraId");
7819
- const comment = paraId && comments.find((c) => c.id === paraIdToCommentId.get(paraId));
9165
+ const paraId = entry2.getAttributeNS(W15_NS2, "paraId");
9166
+ const comment = paraId && comments.find((c2) => c2.id === paraIdToCommentId.get(paraId));
7820
9167
  if (!comment) continue;
7821
- const done = entry.getAttributeNS(W15_NS2, "done");
9168
+ const done = entry2.getAttributeNS(W15_NS2, "done");
7822
9169
  comment.resolved = done === "1" || done === "true";
7823
- const parentParaId = entry.getAttributeNS(W15_NS2, "paraIdParent");
9170
+ const parentParaId = entry2.getAttributeNS(W15_NS2, "paraIdParent");
7824
9171
  const parentId = parentParaId && paraIdToCommentId.get(parentParaId);
7825
9172
  if (parentId) comment.parentId = parentId;
7826
9173
  }
@@ -7828,96 +9175,6 @@ function parseComments(commentsXml, extendedXml) {
7828
9175
  return comments;
7829
9176
  }
7830
9177
 
7831
- // docx/parse-warnings.ts
7832
- function hasAny(document, names) {
7833
- return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
7834
- }
7835
- function warningsFor(document) {
7836
- const warnings = [];
7837
- const features = [
7838
- [["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
7839
- [["altChunk"], "Embedded alternate-format content is not represented in the document model."],
7840
- [
7841
- ["fldSimple", "instrText", "fldChar"],
7842
- "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."
7843
- ],
7844
- [
7845
- ["moveFrom", "moveTo"],
7846
- "Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
7847
- ],
7848
- [
7849
- ["rPrChange"],
7850
- "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."
7851
- ],
7852
- [
7853
- ["pPrChange"],
7854
- "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."
7855
- ],
7856
- [
7857
- ["tblPrChange", "trPrChange", "tcPrChange"],
7858
- "Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
7859
- ]
7860
- ];
7861
- for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
7862
- if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
7863
- (el3) => /HYPERLINK/i.test(textContent(el3))
7864
- ))
7865
- warnings.push(
7866
- "Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
7867
- );
7868
- const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
7869
- (br) => hasSpecialBreak(br) && !isModeledBreak(br)
7870
- ) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
7871
- (cr) => cr.attributes.length > 0
7872
- );
7873
- if (specialBreak)
7874
- warnings.push(
7875
- "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."
7876
- );
7877
- return warnings;
7878
- }
7879
- function forEachParagraph2(blocks, visit) {
7880
- for (const block of blocks) {
7881
- if (block.type === "paragraph") visit(block);
7882
- else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
7883
- }
7884
- }
7885
- function imageAndBookmarkWarnings(blocks) {
7886
- const warnings = [];
7887
- let hasPicture = false;
7888
- let hasAnchored = false;
7889
- const unsupportedKinds = /* @__PURE__ */ new Set();
7890
- let hasBookmarks = false;
7891
- forEachParagraph2(blocks, (paragraph) => {
7892
- if (paragraph.bookmarks?.length) hasBookmarks = true;
7893
- for (const run of paragraph.runs) {
7894
- if (!run.image) continue;
7895
- if (run.image.unsupported) {
7896
- if (run.image.diagram?.rendering !== "cached-drawing")
7897
- unsupportedKinds.add(run.image.unsupported);
7898
- } else hasPicture = true;
7899
- if (run.image.anchored) hasAnchored = true;
7900
- }
7901
- });
7902
- if (hasPicture)
7903
- warnings.push(
7904
- "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."
7905
- );
7906
- if (hasAnchored)
7907
- warnings.push(
7908
- "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."
7909
- );
7910
- if (unsupportedKinds.size)
7911
- warnings.push(
7912
- `${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
7913
- );
7914
- if (hasBookmarks)
7915
- warnings.push(
7916
- "Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
7917
- );
7918
- return warnings;
7919
- }
7920
-
7921
9178
  // docx/diagram-document.ts
7922
9179
  function diagramsIn(blocks) {
7923
9180
  const diagrams = [];
@@ -7955,7 +9212,7 @@ async function readPackage(input) {
7955
9212
  const entries = Object.values(zip.files);
7956
9213
  if (entries.length > 5e3) throw new Error("DOCX package exceeds the 5,000 part limit");
7957
9214
  const totalSize = entries.reduce(
7958
- (sum, entry) => sum + Number(entry._data?.uncompressedSize ?? 0),
9215
+ (sum, entry2) => sum + Number(entry2._data?.uncompressedSize ?? 0),
7959
9216
  0
7960
9217
  );
7961
9218
  if (totalSize > 200 * 1024 * 1024)
@@ -8019,7 +9276,7 @@ async function readPackage(input) {
8019
9276
  const themeFile = zip.file("word/theme/theme1.xml");
8020
9277
  const settingsFile = zip.file("word/settings.xml");
8021
9278
  if (themeFile) {
8022
- model.theme = parseTheme(await themeFile.async("string"));
9279
+ model.theme = parseTheme2(await themeFile.async("string"));
8023
9280
  if (settingsFile) {
8024
9281
  const settingsXml = await settingsFile.async("string");
8025
9282
  model.theme.colorMapping = withParseWarnings(
@@ -8106,6 +9363,10 @@ async function readPackage(input) {
8106
9363
  pictureBlocks,
8107
9364
  async (partName) => zip.file(partName)?.async("string")
8108
9365
  );
9366
+ await resolveDocumentCharts(
9367
+ pictureBlocks,
9368
+ async (partName) => zip.file(partName)?.async("string")
9369
+ );
8109
9370
  model.warnings.push(...imageAndBookmarkWarnings(blocks), ...diagramWarnings(pictureBlocks));
8110
9371
  for (const warning of schemaWarnings)
8111
9372
  if (!model.warnings.includes(warning)) model.warnings.push(warning);