ooxml-core 1.24.3 → 1.25.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 (439) hide show
  1. package/dist/PptxHandler-AN42B3JR.mjs +4 -0
  2. package/dist/{PptxHandler-2YPMMGOJ.cjs → PptxHandler-O25PF53M.cjs} +3 -3
  3. package/dist/{PptxHandler-WQPEYOSS.mjs → PptxHandler-UTNNU6PO.mjs} +3 -3
  4. package/dist/{PresentationBuilder-F5U4KEGH.cjs → PresentationBuilder-A4XU72IV.cjs} +5 -5
  5. package/dist/{PresentationBuilder-PS5S52M3.mjs → PresentationBuilder-GTXNYSRI.mjs} +2 -2
  6. package/dist/{PresentationBuilder-FGWHIJV7.mjs → PresentationBuilder-TNMO5MPC.mjs} +3 -3
  7. package/dist/automation/index.cjs +10181 -6066
  8. package/dist/automation/index.mjs +10181 -6066
  9. package/dist/chart/data-sheet.d.ts +86 -0
  10. package/dist/chart/data-sheet.d.ts.map +1 -0
  11. package/dist/chart/edit/axes.d.ts +49 -0
  12. package/dist/chart/edit/axes.d.ts.map +1 -0
  13. package/dist/chart/edit/chartex-data.d.ts +15 -0
  14. package/dist/chart/edit/chartex-data.d.ts.map +1 -0
  15. package/dist/chart/edit/chartex.d.ts +61 -0
  16. package/dist/chart/edit/chartex.d.ts.map +1 -0
  17. package/dist/chart/edit/data-sheet.d.ts +10 -0
  18. package/dist/chart/edit/data-sheet.d.ts.map +1 -0
  19. package/dist/chart/edit/draft.d.ts +27 -0
  20. package/dist/chart/edit/draft.d.ts.map +1 -0
  21. package/dist/chart/edit/fill.d.ts +47 -0
  22. package/dist/chart/edit/fill.d.ts.map +1 -0
  23. package/dist/chart/edit/gradient.d.ts +44 -0
  24. package/dist/chart/edit/gradient.d.ts.map +1 -0
  25. package/dist/chart/edit/group-options.d.ts +14 -0
  26. package/dist/chart/edit/group-options.d.ts.map +1 -0
  27. package/dist/chart/edit/index.d.ts +23 -0
  28. package/dist/chart/edit/index.d.ts.map +1 -0
  29. package/dist/chart/edit/intent.d.ts +72 -0
  30. package/dist/chart/edit/intent.d.ts.map +1 -0
  31. package/dist/chart/edit/legend-labels.d.ts +34 -0
  32. package/dist/chart/edit/legend-labels.d.ts.map +1 -0
  33. package/dist/chart/edit/new-chart.d.ts +14 -0
  34. package/dist/chart/edit/new-chart.d.ts.map +1 -0
  35. package/dist/chart/edit/paint.d.ts +20 -0
  36. package/dist/chart/edit/paint.d.ts.map +1 -0
  37. package/dist/chart/edit/quick-layout.d.ts +16 -0
  38. package/dist/chart/edit/quick-layout.d.ts.map +1 -0
  39. package/dist/chart/edit/series-data.d.ts +8 -0
  40. package/dist/chart/edit/series-data.d.ts.map +1 -0
  41. package/dist/chart/edit/series.d.ts +57 -0
  42. package/dist/chart/edit/series.d.ts.map +1 -0
  43. package/dist/chart/edit/style.d.ts +18 -0
  44. package/dist/chart/edit/style.d.ts.map +1 -0
  45. package/dist/chart/edit/target-paint.d.ts +19 -0
  46. package/dist/chart/edit/target-paint.d.ts.map +1 -0
  47. package/dist/chart/edit/target.d.ts +31 -0
  48. package/dist/chart/edit/target.d.ts.map +1 -0
  49. package/dist/chart/edit/title.d.ts +24 -0
  50. package/dist/chart/edit/title.d.ts.map +1 -0
  51. package/dist/chart/edit/type-axes.d.ts +14 -0
  52. package/dist/chart/edit/type-axes.d.ts.map +1 -0
  53. package/dist/chart/edit/type-schema.d.ts +15 -0
  54. package/dist/chart/edit/type-schema.d.ts.map +1 -0
  55. package/dist/chart/edit/type.d.ts +16 -0
  56. package/dist/chart/edit/type.d.ts.map +1 -0
  57. package/dist/chart/ex/index.d.ts +4 -0
  58. package/dist/chart/ex/index.d.ts.map +1 -0
  59. package/dist/chart/ex/model.d.ts +291 -0
  60. package/dist/chart/ex/model.d.ts.map +1 -0
  61. package/dist/chart/ex/parse-axis.d.ts +6 -0
  62. package/dist/chart/ex/parse-axis.d.ts.map +1 -0
  63. package/dist/chart/ex/parse-series.d.ts +6 -0
  64. package/dist/chart/ex/parse-series.d.ts.map +1 -0
  65. package/dist/chart/ex/parse-text.d.ts +14 -0
  66. package/dist/chart/ex/parse-text.d.ts.map +1 -0
  67. package/dist/chart/ex/parse-util.d.ts +36 -0
  68. package/dist/chart/ex/parse-util.d.ts.map +1 -0
  69. package/dist/chart/ex/parse.d.ts +10 -0
  70. package/dist/chart/ex/parse.d.ts.map +1 -0
  71. package/dist/chart/ex/write-series.d.ts +13 -0
  72. package/dist/chart/ex/write-series.d.ts.map +1 -0
  73. package/dist/chart/ex/write-util.d.ts +23 -0
  74. package/dist/chart/ex/write-util.d.ts.map +1 -0
  75. package/dist/chart/ex/write.d.ts +24 -0
  76. package/dist/chart/ex/write.d.ts.map +1 -0
  77. package/dist/chart/index.cjs +7258 -3107
  78. package/dist/chart/index.d.ts +8 -0
  79. package/dist/chart/index.d.ts.map +1 -1
  80. package/dist/chart/index.mjs +7117 -3110
  81. package/dist/chart/keep-source.d.ts +11 -0
  82. package/dist/chart/keep-source.d.ts.map +1 -0
  83. package/dist/chart/keep-unmodelled.d.ts +6 -0
  84. package/dist/chart/keep-unmodelled.d.ts.map +1 -0
  85. package/dist/chart/model-series.d.ts +6 -0
  86. package/dist/chart/model-series.d.ts.map +1 -1
  87. package/dist/chart/model.d.ts +14 -0
  88. package/dist/chart/model.d.ts.map +1 -1
  89. package/dist/chart/parse-plot.d.ts.map +1 -1
  90. package/dist/chart/parse-series.d.ts +1 -1
  91. package/dist/chart/parse-series.d.ts.map +1 -1
  92. package/dist/chart/parse-util.d.ts +2 -0
  93. package/dist/chart/parse-util.d.ts.map +1 -1
  94. package/dist/chart/quick-layouts.d.ts +41 -0
  95. package/dist/chart/quick-layouts.d.ts.map +1 -0
  96. package/dist/chart/render/summary-from-chartex.d.ts +3 -0
  97. package/dist/chart/render/summary-from-chartex.d.ts.map +1 -1
  98. package/dist/chart/style-presets.d.ts +20 -0
  99. package/dist/chart/style-presets.d.ts.map +1 -0
  100. package/dist/chart/workbook/cellref.d.ts +53 -0
  101. package/dist/chart/workbook/cellref.d.ts.map +1 -0
  102. package/dist/chart/workbook/create.d.ts +6 -0
  103. package/dist/chart/workbook/create.d.ts.map +1 -0
  104. package/dist/chart/workbook/index.d.ts +10 -0
  105. package/dist/chart/workbook/index.d.ts.map +1 -0
  106. package/dist/chart/workbook/layout.d.ts +35 -0
  107. package/dist/chart/workbook/layout.d.ts.map +1 -0
  108. package/dist/chart/workbook/package-save.d.ts +48 -0
  109. package/dist/chart/workbook/package-save.d.ts.map +1 -0
  110. package/dist/chart/workbook/sheet-cells.d.ts +31 -0
  111. package/dist/chart/workbook/sheet-cells.d.ts.map +1 -0
  112. package/dist/chart/workbook/space-writes.d.ts +5 -0
  113. package/dist/chart/workbook/space-writes.d.ts.map +1 -0
  114. package/dist/chart/workbook/tables.d.ts +20 -0
  115. package/dist/chart/workbook/tables.d.ts.map +1 -0
  116. package/dist/chart/workbook/validation.d.ts +12 -0
  117. package/dist/chart/workbook/validation.d.ts.map +1 -0
  118. package/dist/chart/workbook/writer.d.ts +55 -0
  119. package/dist/chart/workbook/writer.d.ts.map +1 -0
  120. package/dist/chart/write-axes.d.ts.map +1 -1
  121. package/dist/chart/write-plot.d.ts.map +1 -1
  122. package/dist/chart/write-series.d.ts.map +1 -1
  123. package/dist/chart/write-shape.d.ts +2 -0
  124. package/dist/chart/write-shape.d.ts.map +1 -1
  125. package/dist/{chunk-HKCSJAQD.mjs → chunk-4IYYW3CX.mjs} +5 -5
  126. package/dist/{chunk-O6ISWI34.mjs → chunk-6DHZZD5R.mjs} +1102 -1024
  127. package/dist/{chunk-GBKBR4CX.mjs → chunk-E2PYQQQV.mjs} +1 -1
  128. package/dist/{chunk-5SE4FGS4.cjs → chunk-JE3DVWAJ.cjs} +4989 -2863
  129. package/dist/{chunk-2AFO3HNI.mjs → chunk-NBSJDA3B.mjs} +2235 -2095
  130. package/dist/{chunk-K2XWOVLV.mjs → chunk-QXWRJDVE.mjs} +4075 -1949
  131. package/dist/{chunk-QCZX6K67.cjs → chunk-S5TGOEQX.cjs} +1107 -1028
  132. package/dist/{chunk-4IFENOU7.mjs → chunk-VHGMYNWM.mjs} +1 -1
  133. package/dist/{chunk-RF2YPEKI.mjs → chunk-X7IIABZ6.mjs} +3976 -1833
  134. package/dist/{chunk-OJWKGDJF.mjs → chunk-YWTKOZMT.mjs} +1 -1
  135. package/dist/diagram/approximate.d.ts +19 -0
  136. package/dist/diagram/approximate.d.ts.map +1 -0
  137. package/dist/diagram/builtin/catalog.d.ts +3 -0
  138. package/dist/diagram/builtin/catalog.d.ts.map +1 -0
  139. package/dist/diagram/builtin/data.d.ts +3 -0
  140. package/dist/diagram/builtin/data.d.ts.map +1 -0
  141. package/dist/diagram/builtin/definitions.d.ts +7 -0
  142. package/dist/diagram/builtin/definitions.d.ts.map +1 -0
  143. package/dist/diagram/builtin/index.cjs +1348 -0
  144. package/dist/diagram/builtin/index.d.ts +3 -0
  145. package/dist/diagram/builtin/index.d.ts.map +1 -0
  146. package/dist/diagram/builtin/index.mjs +1337 -0
  147. package/dist/diagram/builtin/layouts.d.ts +15 -0
  148. package/dist/diagram/builtin/layouts.d.ts.map +1 -0
  149. package/dist/diagram/builtin/types.d.ts +13 -0
  150. package/dist/diagram/builtin/types.d.ts.map +1 -0
  151. package/dist/diagram/catalogue.d.ts +51 -0
  152. package/dist/diagram/catalogue.d.ts.map +1 -0
  153. package/dist/diagram/data-model.d.ts.map +1 -1
  154. package/dist/diagram/drawing-from-views.d.ts +11 -0
  155. package/dist/diagram/drawing-from-views.d.ts.map +1 -0
  156. package/dist/diagram/drawing-resolve.d.ts +34 -0
  157. package/dist/diagram/drawing-resolve.d.ts.map +1 -0
  158. package/dist/diagram/drawing-view.d.ts +104 -0
  159. package/dist/diagram/drawing-view.d.ts.map +1 -0
  160. package/dist/diagram/drawing.d.ts.map +1 -1
  161. package/dist/diagram/edit/design-commands.d.ts +27 -0
  162. package/dist/diagram/edit/design-commands.d.ts.map +1 -0
  163. package/dist/diagram/edit/index.d.ts +15 -0
  164. package/dist/diagram/edit/index.d.ts.map +1 -0
  165. package/dist/diagram/edit/node-edit.d.ts +66 -0
  166. package/dist/diagram/edit/node-edit.d.ts.map +1 -0
  167. package/dist/diagram/edit/node-ops.d.ts +71 -0
  168. package/dist/diagram/edit/node-ops.d.ts.map +1 -0
  169. package/dist/diagram/edit/node-order.d.ts +28 -0
  170. package/dist/diagram/edit/node-order.d.ts.map +1 -0
  171. package/dist/diagram/edit/node-style.d.ts +42 -0
  172. package/dist/diagram/edit/node-style.d.ts.map +1 -0
  173. package/dist/diagram/edit/node-tree.d.ts +10 -0
  174. package/dist/diagram/edit/node-tree.d.ts.map +1 -0
  175. package/dist/diagram/edit/outline.d.ts +11 -0
  176. package/dist/diagram/edit/outline.d.ts.map +1 -0
  177. package/dist/diagram/edit/reflow-category.d.ts +18 -0
  178. package/dist/diagram/edit/reflow-category.d.ts.map +1 -0
  179. package/dist/diagram/edit/reflow-directional.d.ts +53 -0
  180. package/dist/diagram/edit/reflow-directional.d.ts.map +1 -0
  181. package/dist/diagram/edit/reflow-geometric.d.ts +59 -0
  182. package/dist/diagram/edit/reflow-geometric.d.ts.map +1 -0
  183. package/dist/diagram/edit/reflow-stacked.d.ts +32 -0
  184. package/dist/diagram/edit/reflow-stacked.d.ts.map +1 -0
  185. package/dist/diagram/edit/reflow.d.ts +48 -0
  186. package/dist/diagram/edit/reflow.d.ts.map +1 -0
  187. package/dist/diagram/edit/shape-match.d.ts +34 -0
  188. package/dist/diagram/edit/shape-match.d.ts.map +1 -0
  189. package/dist/diagram/edit/types.d.ts +31 -0
  190. package/dist/diagram/edit/types.d.ts.map +1 -0
  191. package/dist/diagram/index.cjs +3934 -910
  192. package/dist/diagram/index.d.ts +9 -0
  193. package/dist/diagram/index.d.ts.map +1 -1
  194. package/dist/diagram/index.mjs +3860 -912
  195. package/dist/diagram/model/node.d.ts +10 -0
  196. package/dist/diagram/model/node.d.ts.map +1 -1
  197. package/dist/diagram/relationships.d.ts +8 -0
  198. package/dist/diagram/relationships.d.ts.map +1 -1
  199. package/dist/diagram/strings/de.d.ts +3 -0
  200. package/dist/diagram/strings/de.d.ts.map +1 -0
  201. package/dist/diagram/strings/en.d.ts +74 -0
  202. package/dist/diagram/strings/en.d.ts.map +1 -0
  203. package/dist/diagram/strings/es.d.ts +3 -0
  204. package/dist/diagram/strings/es.d.ts.map +1 -0
  205. package/dist/diagram/strings/fr.d.ts +3 -0
  206. package/dist/diagram/strings/fr.d.ts.map +1 -0
  207. package/dist/diagram/strings/index.d.ts +11 -0
  208. package/dist/diagram/strings/index.d.ts.map +1 -0
  209. package/dist/diagram/strings/zh-CN.d.ts +3 -0
  210. package/dist/diagram/strings/zh-CN.d.ts.map +1 -0
  211. package/dist/diagram/text/index.d.ts +5 -0
  212. package/dist/diagram/text/index.d.ts.map +1 -0
  213. package/dist/diagram/text/node-text-neutral.d.ts +29 -0
  214. package/dist/diagram/text/node-text-neutral.d.ts.map +1 -0
  215. package/dist/diagram/text/node-text-paragraphs.d.ts +6 -0
  216. package/dist/diagram/text/node-text-paragraphs.d.ts.map +1 -0
  217. package/dist/diagram/text/node-text-projection.d.ts +48 -0
  218. package/dist/diagram/text/node-text-projection.d.ts.map +1 -0
  219. package/dist/diagram/text/node-text-reconciliation.d.ts +4 -0
  220. package/dist/diagram/text/node-text-reconciliation.d.ts.map +1 -0
  221. package/dist/diagram/types.d.ts +12 -0
  222. package/dist/diagram/types.d.ts.map +1 -1
  223. package/dist/diagram/write/data-edit.d.ts +30 -0
  224. package/dist/diagram/write/data-edit.d.ts.map +1 -0
  225. package/dist/diagram/write/data.d.ts +62 -0
  226. package/dist/diagram/write/data.d.ts.map +1 -0
  227. package/dist/diagram/write/index.d.ts +4 -0
  228. package/dist/diagram/write/index.d.ts.map +1 -0
  229. package/dist/diagram/write/inserted.d.ts +14 -0
  230. package/dist/diagram/write/inserted.d.ts.map +1 -0
  231. package/dist/docx/chart-edit.d.ts +33 -0
  232. package/dist/docx/chart-edit.d.ts.map +1 -0
  233. package/dist/docx/chart-save.d.ts +14 -0
  234. package/dist/docx/chart-save.d.ts.map +1 -0
  235. package/dist/docx/chart.d.ts +5 -3
  236. package/dist/docx/chart.d.ts.map +1 -1
  237. package/dist/docx/diagram-edit.d.ts +50 -0
  238. package/dist/docx/diagram-edit.d.ts.map +1 -0
  239. package/dist/docx/diagram-nodes.d.ts +2 -0
  240. package/dist/docx/diagram-nodes.d.ts.map +1 -0
  241. package/dist/docx/diagram-save.d.ts +12 -0
  242. package/dist/docx/diagram-save.d.ts.map +1 -0
  243. package/dist/docx/diagram.d.ts +17 -9
  244. package/dist/docx/diagram.d.ts.map +1 -1
  245. package/dist/docx/embedded.cjs +5191 -2423
  246. package/dist/docx/embedded.mjs +5191 -2423
  247. package/dist/docx/index.cjs +10063 -6083
  248. package/dist/docx/index.d.ts +4 -1
  249. package/dist/docx/index.d.ts.map +1 -1
  250. package/dist/docx/index.mjs +10049 -6084
  251. package/dist/docx/load/index.cjs +5840 -3072
  252. package/dist/docx/load/index.mjs +5840 -3072
  253. package/dist/docx/parse.d.ts.map +1 -1
  254. package/dist/docx/part-relationships.d.ts.map +1 -1
  255. package/dist/docx/relationship-allocator.d.ts +19 -0
  256. package/dist/docx/relationship-allocator.d.ts.map +1 -1
  257. package/dist/docx/save.d.ts.map +1 -1
  258. package/dist/docx/ui/chart-commands.d.ts +19 -0
  259. package/dist/docx/ui/chart-commands.d.ts.map +1 -0
  260. package/dist/docx/ui/index.cjs +1482 -655
  261. package/dist/docx/ui/index.d.ts +2 -0
  262. package/dist/docx/ui/index.d.ts.map +1 -1
  263. package/dist/docx/ui/index.mjs +1479 -656
  264. package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
  265. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
  266. package/dist/docx/ui/smartart-approximate.d.ts +5 -0
  267. package/dist/docx/ui/smartart-approximate.d.ts.map +1 -0
  268. package/dist/docx/write-chart-drawing.d.ts +12 -0
  269. package/dist/docx/write-chart-drawing.d.ts.map +1 -0
  270. package/dist/docx/write-diagram-drawing.d.ts +13 -0
  271. package/dist/docx/write-diagram-drawing.d.ts.map +1 -0
  272. package/dist/docx/write-drawing-patch.d.ts +8 -0
  273. package/dist/docx/write-drawing-patch.d.ts.map +1 -0
  274. package/dist/docx/write-drawing.d.ts.map +1 -1
  275. package/dist/drawingml/index.cjs +863 -0
  276. package/dist/drawingml/index.d.ts +7 -0
  277. package/dist/drawingml/index.d.ts.map +1 -1
  278. package/dist/drawingml/index.mjs +840 -1
  279. package/dist/drawingml/read-paragraph-properties.d.ts +8 -0
  280. package/dist/drawingml/read-paragraph-properties.d.ts.map +1 -0
  281. package/dist/drawingml/read-run-properties.d.ts +15 -0
  282. package/dist/drawingml/read-run-properties.d.ts.map +1 -0
  283. package/dist/drawingml/read-text-body.d.ts +13 -0
  284. package/dist/drawingml/read-text-body.d.ts.map +1 -0
  285. package/dist/drawingml/text-model.d.ts +210 -0
  286. package/dist/drawingml/text-model.d.ts.map +1 -0
  287. package/dist/drawingml/write-paragraph-properties.d.ts +12 -0
  288. package/dist/drawingml/write-paragraph-properties.d.ts.map +1 -0
  289. package/dist/drawingml/write-run-properties.d.ts +11 -0
  290. package/dist/drawingml/write-run-properties.d.ts.map +1 -0
  291. package/dist/drawingml/write-text-body.d.ts +18 -0
  292. package/dist/drawingml/write-text-body.d.ts.map +1 -0
  293. package/dist/drawingml/write-text-xml.d.ts +26 -0
  294. package/dist/drawingml/write-text-xml.d.ts.map +1 -0
  295. package/dist/index.cjs +10068 -2908
  296. package/dist/index.mjs +10068 -2908
  297. package/dist/pptx/automation/index.cjs +6845 -3885
  298. package/dist/pptx/automation/index.d.ts +5 -5
  299. package/dist/pptx/automation/index.mjs +6 -6
  300. package/dist/pptx/chunks/{elements-iUzpAeqR.d.ts → elements-DhW764aK.d.ts} +23 -14
  301. package/dist/pptx/chunks/elements-DhW764aK.d.ts.map +1 -0
  302. package/dist/pptx/chunks/{index-C3xhAMSa.d.ts → index-CX0RM1fF.d.ts} +4 -4
  303. package/dist/pptx/chunks/{index-C3xhAMSa.d.ts.map → index-CX0RM1fF.d.ts.map} +1 -1
  304. package/dist/pptx/chunks/{index-nKQ4s7FA.d.ts → index-CgjEEpfK.d.ts} +18 -9
  305. package/dist/pptx/chunks/index-CgjEEpfK.d.ts.map +1 -0
  306. package/dist/pptx/chunks/{index-4FmgJajb.d.ts → index-DCbp5fOs.d.ts} +100 -95
  307. package/dist/pptx/chunks/index-DCbp5fOs.d.ts.map +1 -0
  308. package/dist/pptx/chunks/{smart-art-ENMMEbmW.d.ts → smart-art-BEEl0l8X.d.ts} +514 -306
  309. package/dist/pptx/chunks/smart-art-BEEl0l8X.d.ts.map +1 -0
  310. package/dist/pptx/chunks/{text-operations-CfLVZ7DK.d.ts → text-operations-CjalmJIi.d.ts} +2 -2
  311. package/dist/pptx/chunks/{text-operations-CfLVZ7DK.d.ts.map → text-operations-CjalmJIi.d.ts.map} +1 -1
  312. package/dist/pptx/cli/index.cjs +6330 -3372
  313. package/dist/pptx/cli/index.d.ts +1 -1
  314. package/dist/pptx/cli/index.mjs +5 -5
  315. package/dist/pptx/converter/index.cjs +107 -75
  316. package/dist/pptx/converter/index.d.ts +1 -1
  317. package/dist/pptx/converter/index.mjs +3 -3
  318. package/dist/pptx/editor/render/editor-history.cjs +3 -1
  319. package/dist/pptx/editor/render/editor-history.d.ts +9 -1
  320. package/dist/pptx/editor/render/editor-history.d.ts.map +1 -1
  321. package/dist/pptx/editor/render/editor-history.mjs +3 -2
  322. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  323. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  324. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  325. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  326. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  327. package/dist/pptx/editor/render/text-runs-style-patch.d.ts +1 -1
  328. package/dist/pptx/editor/render/text-style-scope.d.ts +1 -1
  329. package/dist/pptx/index.cjs +7750 -4725
  330. package/dist/pptx/index.d.ts +7 -7
  331. package/dist/pptx/index.mjs +6 -6
  332. package/dist/pptx/node/index.d.ts +1 -1
  333. package/dist/pptx/signature-node/index.mjs +2 -2
  334. package/dist/pptx/smartart-layouts/index.cjs +26 -23
  335. package/dist/pptx/smartart-layouts/index.d.ts +7 -5
  336. package/dist/pptx/smartart-layouts/index.d.ts.map +1 -1
  337. package/dist/pptx/smartart-layouts/index.mjs +26 -23
  338. package/dist/teams/index.cjs +20165 -18388
  339. package/dist/teams/index.mjs +20165 -18388
  340. package/dist/text/index.cjs +106 -0
  341. package/dist/text/index.d.ts +2 -0
  342. package/dist/text/index.d.ts.map +1 -1
  343. package/dist/text/index.mjs +103 -1
  344. package/dist/text/locale-number.d.ts +15 -0
  345. package/dist/text/locale-number.d.ts.map +1 -0
  346. package/dist/text/tsv.d.ts +8 -0
  347. package/dist/text/tsv.d.ts.map +1 -0
  348. package/dist/visio/index.cjs +3574 -1953
  349. package/dist/visio/index.mjs +3574 -1953
  350. package/dist/visio/ui/index.cjs +3562 -1941
  351. package/dist/visio/ui/index.mjs +3562 -1941
  352. package/dist/xlsx/edit/chart-colors.d.ts +2 -2
  353. package/dist/xlsx/edit/chart-colors.d.ts.map +1 -1
  354. package/dist/xlsx/edit/chart-design.d.ts +11 -0
  355. package/dist/xlsx/edit/chart-design.d.ts.map +1 -0
  356. package/dist/xlsx/edit/chart-element-fill.d.ts.map +1 -1
  357. package/dist/xlsx/edit/chart-series-fill.d.ts.map +1 -1
  358. package/dist/xlsx/edit/chart-series-gradient.d.ts +6 -34
  359. package/dist/xlsx/edit/chart-series-gradient.d.ts.map +1 -1
  360. package/dist/xlsx/edit/chart-series-transparency.d.ts.map +1 -1
  361. package/dist/xlsx/edit/chart-space-patch.d.ts +13 -0
  362. package/dist/xlsx/edit/chart-space-patch.d.ts.map +1 -0
  363. package/dist/xlsx/edit/chart-space-series.d.ts +14 -0
  364. package/dist/xlsx/edit/chart-space-series.d.ts.map +1 -0
  365. package/dist/xlsx/edit/charts.d.ts +22 -6
  366. package/dist/xlsx/edit/charts.d.ts.map +1 -1
  367. package/dist/xlsx/edit/clipboard-text.d.ts +2 -7
  368. package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
  369. package/dist/xlsx/edit/index.d.ts +3 -1
  370. package/dist/xlsx/edit/index.d.ts.map +1 -1
  371. package/dist/xlsx/edit/session.d.ts.map +1 -1
  372. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
  373. package/dist/xlsx/edit/smart-art.d.ts +32 -0
  374. package/dist/xlsx/edit/smart-art.d.ts.map +1 -0
  375. package/dist/xlsx/edit/types.d.ts +12 -1
  376. package/dist/xlsx/edit/types.d.ts.map +1 -1
  377. package/dist/xlsx/embedded-chart-space.d.ts +19 -0
  378. package/dist/xlsx/embedded-chart-space.d.ts.map +1 -0
  379. package/dist/xlsx/index.cjs +6457 -3105
  380. package/dist/xlsx/index.d.ts +1 -0
  381. package/dist/xlsx/index.d.ts.map +1 -1
  382. package/dist/xlsx/index.mjs +6451 -3106
  383. package/dist/xlsx/load/index.cjs +5732 -3843
  384. package/dist/xlsx/load/index.mjs +5732 -3843
  385. package/dist/xlsx/model.d.ts +71 -15
  386. package/dist/xlsx/model.d.ts.map +1 -1
  387. package/dist/xlsx/read/chart.d.ts +10 -0
  388. package/dist/xlsx/read/chart.d.ts.map +1 -1
  389. package/dist/xlsx/read/drawing.d.ts.map +1 -1
  390. package/dist/xlsx/read/smart-art.d.ts.map +1 -1
  391. package/dist/xlsx/smart-art-notices.d.ts +6 -0
  392. package/dist/xlsx/smart-art-notices.d.ts.map +1 -0
  393. package/dist/xlsx/ui/commands/contextual.d.ts +6 -1
  394. package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -1
  395. package/dist/xlsx/ui/commands/i18n/chart-series.d.ts.map +1 -1
  396. package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -1
  397. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
  398. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -1
  399. package/dist/xlsx/ui/commands/i18n/smartart.d.ts +3 -0
  400. package/dist/xlsx/ui/commands/i18n/smartart.d.ts.map +1 -0
  401. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -1
  402. package/dist/xlsx/ui/index.cjs +6664 -2907
  403. package/dist/xlsx/ui/index.mjs +6663 -2907
  404. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
  405. package/dist/xlsx/ui/locales/de/smartart.d.ts +2 -0
  406. package/dist/xlsx/ui/locales/de/smartart.d.ts.map +1 -0
  407. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
  408. package/dist/xlsx/ui/locales/en/smartart.d.ts +2 -0
  409. package/dist/xlsx/ui/locales/en/smartart.d.ts.map +1 -0
  410. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
  411. package/dist/xlsx/ui/locales/es/smartart.d.ts +2 -0
  412. package/dist/xlsx/ui/locales/es/smartart.d.ts.map +1 -0
  413. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
  414. package/dist/xlsx/ui/locales/fr/smartart.d.ts +2 -0
  415. package/dist/xlsx/ui/locales/fr/smartart.d.ts.map +1 -0
  416. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
  417. package/dist/xlsx/ui/locales/zh-CN/smartart.d.ts +2 -0
  418. package/dist/xlsx/ui/locales/zh-CN/smartart.d.ts.map +1 -0
  419. package/dist/xlsx/write/chart-cache.d.ts.map +1 -1
  420. package/dist/xlsx/write/chart-colors.d.ts +1 -8
  421. package/dist/xlsx/write/chart-colors.d.ts.map +1 -1
  422. package/dist/xlsx/write/chart-space.d.ts +8 -0
  423. package/dist/xlsx/write/chart-space.d.ts.map +1 -1
  424. package/dist/xlsx/write/chart-title.d.ts +2 -2
  425. package/dist/xlsx/write/chart-title.d.ts.map +1 -1
  426. package/dist/xlsx/write/chart.d.ts +4 -3
  427. package/dist/xlsx/write/chart.d.ts.map +1 -1
  428. package/dist/xlsx/write/drawing.d.ts +10 -3
  429. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  430. package/dist/xlsx/write/smart-art.d.ts +17 -0
  431. package/dist/xlsx/write/smart-art.d.ts.map +1 -0
  432. package/package.json +6 -1
  433. package/dist/PptxHandler-VXK5EY7J.mjs +0 -4
  434. package/dist/pptx/chunks/elements-iUzpAeqR.d.ts.map +0 -1
  435. package/dist/pptx/chunks/index-4FmgJajb.d.ts.map +0 -1
  436. package/dist/pptx/chunks/index-nKQ4s7FA.d.ts.map +0 -1
  437. package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts.map +0 -1
  438. package/dist/xlsx/write/chart-patch.d.ts +0 -9
  439. package/dist/xlsx/write/chart-patch.d.ts.map +0 -1
@@ -3037,6 +3037,182 @@ function openNestedZip(bytes) {
3037
3037
  return openZip(bytes, { label: "Embedded", createError });
3038
3038
  }
3039
3039
 
3040
+ // xml/namespaces.ts
3041
+ var NS = {
3042
+ /** WordprocessingML main. */
3043
+ w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
3044
+ /** PresentationML main. */
3045
+ p: "http://schemas.openxmlformats.org/presentationml/2006/main",
3046
+ /** SpreadsheetML main. */
3047
+ x: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
3048
+ /** DrawingML main. */
3049
+ a: "http://schemas.openxmlformats.org/drawingml/2006/main",
3050
+ /** DrawingML chart. */
3051
+ c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
3052
+ /** Office 2016 extended charts (waterfall, histogram, funnel...; `cx:chartSpace`). */
3053
+ cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
3054
+ /** Office 2010 chart extensions, including built-in modern chart styles. */
3055
+ c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
3056
+ /** DrawingML diagram (SmartArt) main. */
3057
+ dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
3058
+ /** Office 2007+ diagram drawing (`dsp`). */
3059
+ dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
3060
+ /** DrawingML Word drawing (`wp:inline`, `wp:anchor`). */
3061
+ wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
3062
+ /** DrawingML picture. */
3063
+ pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
3064
+ /** Word 2010 shapes (`wps`). */
3065
+ wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
3066
+ /** Relationships (`r:id`, `r:embed`). */
3067
+ r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
3068
+ /** Markup compatibility (`mc:AlternateContent`). */
3069
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
3070
+ /** OPC relationships part. */
3071
+ rels: "http://schemas.openxmlformats.org/package/2006/relationships",
3072
+ /** OPC content types part. */
3073
+ contentTypes: "http://schemas.openxmlformats.org/package/2006/content-types",
3074
+ /** Office Math. */
3075
+ m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
3076
+ /** Core properties. */
3077
+ cp: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
3078
+ /** Dublin Core elements. */
3079
+ dc: "http://purl.org/dc/elements/1.1/",
3080
+ /** Legacy VML. */
3081
+ v: "urn:schemas-microsoft-com:vml",
3082
+ /** Office VML extensions. */
3083
+ o: "urn:schemas-microsoft-com:office:office",
3084
+ /** Word VML extensions. */
3085
+ w10: "urn:schemas-microsoft-com:office:word",
3086
+ /** SpreadsheetML drawing (`xdr:wsDr`, cell anchors). */
3087
+ xdr: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
3088
+ /** SpreadsheetML 2009 extensions (`x14:conditionalFormatting`, `x14:dataBar`). */
3089
+ x14: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
3090
+ /** SpreadsheetML 2009 attribute extensions (`x14ac:dyDescent`). */
3091
+ x14ac: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac",
3092
+ /** SpreadsheetML revision ids (`xr:uid`). */
3093
+ xr: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
3094
+ /** Excel threaded comments and persons. */
3095
+ tc: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
3096
+ /** Legacy VML Excel client data (`x:ClientData`). */
3097
+ xv: "urn:schemas-microsoft-com:office:excel",
3098
+ /** Extended (app) properties. */
3099
+ extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
3100
+ /** Dublin Core terms (`dcterms:created`). */
3101
+ dcterms: "http://purl.org/dc/terms/",
3102
+ /** Custom document properties (`docProps/custom.xml`). */
3103
+ customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
3104
+ /** Document property variant types (`vt:lpwstr`, `vt:vector`). */
3105
+ vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
3106
+ /** XML itself (`xml:space`). */
3107
+ xml: "http://www.w3.org/XML/1998/namespace"
3108
+ };
3109
+ var DEFAULT_XML_LIMITS = {
3110
+ maxDepth: 512,
3111
+ maxNodes: 5e6
3112
+ };
3113
+ var XmlLimitError = class extends Error {
3114
+ code = "xml-limit";
3115
+ /** The limit that was exceeded. */
3116
+ limit;
3117
+ /** Its value: the largest depth or element count allowed. */
3118
+ maximum;
3119
+ constructor(message, limit, maximum) {
3120
+ super(message);
3121
+ this.name = "XmlLimitError";
3122
+ this.limit = limit;
3123
+ this.maximum = maximum;
3124
+ }
3125
+ };
3126
+ var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
3127
+ var MARKUP_SKIPS = [
3128
+ ["<!--", "-->"],
3129
+ ["<![CDATA[", "]]>"],
3130
+ ["<?", "?>"]
3131
+ ];
3132
+ function checkXmlLimits(xml, label, limits = {}) {
3133
+ const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
3134
+ const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
3135
+ let depth = 0;
3136
+ let nodes = 0;
3137
+ let at2 = xml.indexOf("<");
3138
+ while (at2 !== -1) {
3139
+ const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
3140
+ if (skip) {
3141
+ const end = xml.indexOf(skip[1], at2 + skip[0].length);
3142
+ if (end === -1) return;
3143
+ at2 = xml.indexOf("<", end + skip[1].length);
3144
+ continue;
3145
+ }
3146
+ TAG_RE.lastIndex = at2;
3147
+ const match = TAG_RE.exec(xml);
3148
+ if (!match) {
3149
+ at2 = xml.indexOf("<", at2 + 1);
3150
+ continue;
3151
+ }
3152
+ const [, closing, , selfClosing] = match;
3153
+ at2 = xml.indexOf("<", at2 + match[0].length);
3154
+ if (closing) {
3155
+ depth--;
3156
+ continue;
3157
+ }
3158
+ nodes++;
3159
+ if (nodes > maxNodes)
3160
+ throw new XmlLimitError(
3161
+ `${label} XML exceeds the limit of ${maxNodes} elements`,
3162
+ "maxNodes",
3163
+ maxNodes
3164
+ );
3165
+ if (!selfClosing && ++depth > maxDepth2)
3166
+ throw new XmlLimitError(
3167
+ `${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
3168
+ "maxDepth",
3169
+ maxDepth2
3170
+ );
3171
+ }
3172
+ }
3173
+ var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
3174
+ var crlfDeclarations = /* @__PURE__ */ new WeakSet();
3175
+ function parseXml(xml, options = {}) {
3176
+ const label = options.label ?? "OOXML";
3177
+ if (/<!DOCTYPE|<!ENTITY/i.test(xml))
3178
+ throw new Error(`${label} XML with DTD or entity declarations is not supported`);
3179
+ checkXmlLimits(xml, label, options.limits);
3180
+ let parseError = "";
3181
+ let parsed;
3182
+ try {
3183
+ parsed = new DOMParser({
3184
+ onError: (level2, message) => {
3185
+ if (level2 !== "warning") parseError = message;
3186
+ }
3187
+ }).parseFromString(xml, "application/xml");
3188
+ } catch (error) {
3189
+ throw new Error(
3190
+ `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
3191
+ { cause: error }
3192
+ );
3193
+ }
3194
+ if (parseError || !parsed.documentElement)
3195
+ throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
3196
+ if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
3197
+ return parsed;
3198
+ }
3199
+ var buildXml = (node) => {
3200
+ const xml = new XMLSerializer().serializeToString(node);
3201
+ return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
3202
+ };
3203
+ var isElement = (node) => node.nodeType === 1;
3204
+ var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
3205
+ function named(element, local, ns, lenient = true) {
3206
+ if (!element || element.localName !== local) return false;
3207
+ return element.namespaceURI === ns || lenient && !element.namespaceURI;
3208
+ }
3209
+ var children2 = (parent, local, ns, lenient = true) => elements(parent).filter((element) => named(element, local, ns, lenient));
3210
+ var first = (parent, local, ns, lenient = true) => parent ? children2(parent, local, ns, lenient)[0] : void 0;
3211
+ function attr(element, local, ns, prefix) {
3212
+ return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
3213
+ }
3214
+ var relAttr = (element, local) => attr(element, local, NS.r, "r");
3215
+
3040
3216
  // pptx/core/utils/xml-access.ts
3041
3217
  var ATTR_PREFIX = "@_";
3042
3218
  var TEXT_KEY = "#text";
@@ -18219,415 +18395,8 @@ function getContentNodes(nodes) {
18219
18395
  return nodes.filter((n) => n.text.length > 0);
18220
18396
  }
18221
18397
 
18222
- // pptx/core/geometry/custom-geometry-command-order.ts
18223
- var ORDER_SUFFIX = "#pptx-order-";
18224
- var commandOrder = /* @__PURE__ */ new WeakMap();
18225
- var PATH_COMMANDS = /* @__PURE__ */ new Set(["moveTo", "lnTo", "arcTo", "quadBezTo", "cubicBezTo", "close"]);
18226
- function localName4(name) {
18227
- const colon = name.indexOf(":");
18228
- return colon >= 0 ? name.slice(colon + 1) : name;
18229
- }
18230
- function childByLocalName(node, name) {
18231
- if (!node) {
18232
- return void 0;
18233
- }
18234
- const key = Object.keys(node).find((candidate) => localName4(candidate) === name);
18235
- return key ? node[key] : void 0;
18236
- }
18237
- function collectParsedPaths(root) {
18238
- const paths = [];
18239
- const stack = [root];
18240
- while (stack.length > 0) {
18241
- const current = stack.pop();
18242
- if (!current || typeof current !== "object") {
18243
- continue;
18244
- }
18245
- if (Array.isArray(current)) {
18246
- for (let index = current.length - 1; index >= 0; index--) {
18247
- stack.push(current[index]);
18248
- }
18249
- continue;
18250
- }
18251
- const node = current;
18252
- for (const [key, value] of Object.entries(node).reverse()) {
18253
- if (localName4(key) === "custGeom") {
18254
- const pathList = childByLocalName(value, "pathLst");
18255
- const rawPaths = childByLocalName(pathList, "path");
18256
- paths.push(
18257
- ...Array.isArray(rawPaths) ? rawPaths : rawPaths ? [rawPaths] : []
18258
- );
18259
- } else {
18260
- stack.push(value);
18261
- }
18262
- }
18263
- }
18264
- return paths;
18265
- }
18266
- function extractSourceOrders(xml) {
18267
- const orders = [];
18268
- const custGeomPattern = /<([A-Za-z_][\w.-]*:)?custGeom\b[^>]*>([\s\S]*?)<\/\1custGeom\s*>/gu;
18269
- for (const geometryMatch of xml.matchAll(custGeomPattern)) {
18270
- const geometryXml = geometryMatch[2];
18271
- const pathPattern = /<([A-Za-z_][\w.-]*:)?path\b[^>]*>([\s\S]*?)<\/\1path\s*>/gu;
18272
- for (const pathMatch of geometryXml.matchAll(pathPattern)) {
18273
- const order = [
18274
- ...pathMatch[2].matchAll(/<\/?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)
18275
- ].filter((match) => match[0][1] !== "/" && PATH_COMMANDS.has(match[2])).map((match) => match[2]);
18276
- orders.push(order);
18277
- }
18278
- }
18279
- return orders;
18280
- }
18281
- function ensureArrayLocal(value) {
18282
- return Array.isArray(value) ? value : value === void 0 ? [] : [value];
18283
- }
18284
- function countsSignature(counts) {
18285
- return [...counts.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([name, count]) => `${name}:${count}`).join(",");
18286
- }
18287
- function pathSignature(path) {
18288
- const counts = /* @__PURE__ */ new Map();
18289
- for (const key of Object.keys(path)) {
18290
- const name = localName4(key);
18291
- if (!PATH_COMMANDS.has(name)) {
18292
- continue;
18293
- }
18294
- counts.set(name, (counts.get(name) ?? 0) + ensureArrayLocal(path[key]).length);
18295
- }
18296
- return countsSignature(counts);
18297
- }
18298
- function orderSignature(order) {
18299
- const counts = /* @__PURE__ */ new Map();
18300
- for (const name of order) {
18301
- counts.set(name, (counts.get(name) ?? 0) + 1);
18302
- }
18303
- return countsSignature(counts);
18304
- }
18305
- function annotateCustomGeometryCommandOrder(xml, parsed) {
18306
- const orders = extractSourceOrders(xml);
18307
- if (orders.length === 0) {
18308
- return;
18309
- }
18310
- const paths = collectParsedPaths(parsed);
18311
- const ordersBySignature = /* @__PURE__ */ new Map();
18312
- for (const order of orders) {
18313
- const signature = orderSignature(order);
18314
- const bucket = ordersBySignature.get(signature);
18315
- if (bucket) {
18316
- bucket.push(order);
18317
- } else {
18318
- ordersBySignature.set(signature, [order]);
18319
- }
18320
- }
18321
- for (const path of paths) {
18322
- const bucket = ordersBySignature.get(pathSignature(path));
18323
- const order = bucket?.shift();
18324
- if (order) {
18325
- commandOrder.set(path, order);
18326
- }
18327
- }
18328
- }
18329
- function orderedPathCommandEntries(path, ensureArray8) {
18330
- const commandItems = (key) => {
18331
- const value = path[key];
18332
- const items = ensureArray8(value);
18333
- return items.length === 0 && localName4(key) === "close" && value !== void 0 ? [value] : items;
18334
- };
18335
- const order = commandOrder.get(path);
18336
- if (!order) {
18337
- return Object.keys(path).flatMap(
18338
- (key) => key.startsWith("@_") ? [] : commandItems(key).map((item) => [key, item])
18339
- );
18340
- }
18341
- const consumed = /* @__PURE__ */ new Map();
18342
- return order.flatMap((name) => {
18343
- const key = Object.keys(path).find((candidate) => localName4(candidate) === name);
18344
- if (!key) {
18345
- return [];
18346
- }
18347
- const items = commandItems(key);
18348
- const index = consumed.get(key) ?? 0;
18349
- consumed.set(key, index + 1);
18350
- return index < items.length ? [[key, items[index]]] : [];
18351
- });
18352
- }
18353
- function inheritCustomGeometryCommandOrder(target, ...sources) {
18354
- let targetSignature;
18355
- for (const source of sources) {
18356
- if (!source) {
18357
- continue;
18358
- }
18359
- const order = commandOrder.get(source);
18360
- if (!order) {
18361
- continue;
18362
- }
18363
- targetSignature ??= pathSignature(target);
18364
- if (orderSignature(order) === targetSignature) {
18365
- commandOrder.set(target, [...order]);
18366
- return;
18367
- }
18368
- }
18369
- }
18370
- function pathListPaths(pathLst) {
18371
- if (!pathLst || typeof pathLst !== "object") {
18372
- return [];
18373
- }
18374
- return ensureArrayLocal(childByLocalName(pathLst, "path")).filter(
18375
- (path) => Boolean(path) && typeof path === "object"
18376
- );
18377
- }
18378
- function readPathListCommandOrder(pathLst) {
18379
- const orders = pathListPaths(pathLst).map((path) => [...commandOrder.get(path) ?? []]);
18380
- return orders.some((order) => order.length > 0) ? orders : void 0;
18381
- }
18382
- function restorePathListCommandOrder(pathLst, orders) {
18383
- if (!orders || orders.length === 0) {
18384
- return;
18385
- }
18386
- pathListPaths(pathLst).forEach((path, index) => {
18387
- const order = orders[index];
18388
- if (!order || order.length === 0 || commandOrder.has(path)) {
18389
- return;
18390
- }
18391
- if (orderSignature([...order]) === pathSignature(path)) {
18392
- commandOrder.set(path, [...order]);
18393
- }
18394
- });
18395
- }
18396
- function orderedXmlKey(baseName, order) {
18397
- return `${baseName}${ORDER_SUFFIX}${order}`;
18398
- }
18399
- function stripXmlOrderSuffix(tagName) {
18400
- const index = tagName.indexOf(ORDER_SUFFIX);
18401
- return index >= 0 ? tagName.slice(0, index) : tagName;
18402
- }
18403
- function stripXmlOrderMarkers(xml) {
18404
- return xml.replace(/#pptx-order-\d+/gu, "");
18405
- }
18406
-
18407
- // pptx/core/core/runtime/smartart-text-order.ts
18408
- var childOrder = /* @__PURE__ */ new WeakMap();
18409
- function localName5(name) {
18410
- const colon = name.indexOf(":");
18411
- return colon >= 0 ? name.slice(colon + 1) : name;
18412
- }
18413
- function isXmlObject2(value) {
18414
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
18415
- }
18416
- function collectParsedParagraphs(root) {
18417
- const paragraphs = [];
18418
- const stack = [root];
18419
- while (stack.length > 0) {
18420
- const current = stack.pop();
18421
- if (!current || typeof current !== "object") {
18422
- continue;
18423
- }
18424
- if (Array.isArray(current)) {
18425
- for (let index = current.length - 1; index >= 0; index--) {
18426
- stack.push(current[index]);
18427
- }
18428
- continue;
18429
- }
18430
- const node = current;
18431
- for (const [key, value] of Object.entries(node).reverse()) {
18432
- if ((localName5(key) === "t" || localName5(key) === "txBody") && value && typeof value === "object") {
18433
- for (const [childKey2, childValue] of Object.entries(value)) {
18434
- if (localName5(childKey2) !== "p") {
18435
- continue;
18436
- }
18437
- paragraphs.push(
18438
- ...(Array.isArray(childValue) ? childValue : [childValue]).filter(isXmlObject2)
18439
- );
18440
- }
18441
- } else {
18442
- stack.push(value);
18443
- }
18444
- }
18445
- }
18446
- return paragraphs;
18447
- }
18448
- function directChildOrder(xml) {
18449
- const order = [];
18450
- let depth = 0;
18451
- for (const match of xml.matchAll(/<(\/)?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)) {
18452
- const closing = Boolean(match[1]);
18453
- const selfClosing = /\/\s*>$/u.test(match[0]);
18454
- if (closing) {
18455
- depth = Math.max(0, depth - 1);
18456
- continue;
18457
- }
18458
- if (depth === 0) {
18459
- order.push(match[3]);
18460
- }
18461
- if (!selfClosing) {
18462
- depth++;
18463
- }
18464
- }
18465
- return order;
18466
- }
18467
- function extractElementOrders(xml, elementName) {
18468
- const orders = [];
18469
- const pattern = new RegExp(
18470
- `<([A-Za-z_][\\w.-]*:)?${elementName}(?=[\\s/>])[^>]*>([\\s\\S]*?)<\\/\\1${elementName}\\s*>`,
18471
- "gu"
18472
- );
18473
- for (const match of xml.matchAll(pattern)) {
18474
- orders.push(directChildOrder(match[2]));
18475
- }
18476
- return orders;
18477
- }
18478
- function directChildrenByLocalName(paragraphs, name) {
18479
- return paragraphs.flatMap(
18480
- (paragraph) => Object.entries(paragraph).flatMap(([key, value]) => {
18481
- if (localName5(key) !== name) {
18482
- return [];
18483
- }
18484
- const values = Array.isArray(value) ? value : [value];
18485
- return values.filter(isXmlObject2);
18486
- })
18487
- );
18488
- }
18489
- function annotateSmartArtTextOrder(xml, parsed) {
18490
- const paragraphs = collectParsedParagraphs(parsed);
18491
- const orders = extractElementOrders(xml, "p");
18492
- for (let index = 0; index < Math.min(orders.length, paragraphs.length); index++) {
18493
- childOrder.set(paragraphs[index], orders[index]);
18494
- }
18495
- for (const name of ["r", "fld", "br"]) {
18496
- const nodes = directChildrenByLocalName(paragraphs, name);
18497
- const nodeOrders = extractElementOrders(xml, name);
18498
- for (let index = 0; index < Math.min(nodeOrders.length, nodes.length); index++) {
18499
- childOrder.set(nodes[index], nodeOrders[index]);
18500
- }
18501
- }
18502
- }
18503
- function smartArtChildOrder(node) {
18504
- return childOrder.get(node)?.slice();
18505
- }
18506
- function orderedSmartArtTextEntries(paragraph) {
18507
- const keysByName = /* @__PURE__ */ new Map();
18508
- for (const key of Object.keys(paragraph)) {
18509
- if (!key.startsWith("@_")) {
18510
- keysByName.set(localName5(key), key);
18511
- }
18512
- }
18513
- const itemsFor = (key) => {
18514
- const value = paragraph[key];
18515
- return Array.isArray(value) ? value : value === void 0 ? [] : [value];
18516
- };
18517
- const order = childOrder.get(paragraph);
18518
- if (!order) {
18519
- return [...keysByName.values()].flatMap(
18520
- (key) => itemsFor(key).map((item) => [key, item])
18521
- );
18522
- }
18523
- const consumed = /* @__PURE__ */ new Map();
18524
- return order.flatMap((name) => {
18525
- const key = keysByName.get(name);
18526
- if (!key) {
18527
- return [];
18528
- }
18529
- const index = consumed.get(key) ?? 0;
18530
- consumed.set(key, index + 1);
18531
- const item = itemsFor(key)[index];
18532
- return item === void 0 ? [] : [[key, item]];
18533
- });
18534
- }
18535
-
18536
- // pptx/core/core/runtime/smartart-text-paragraphs.ts
18537
- function localName6(name) {
18538
- const colon = name.indexOf(":");
18539
- return colon >= 0 ? name.slice(colon + 1) : name;
18540
- }
18541
- function keyFor(node, name) {
18542
- return Object.keys(node).find((key) => localName6(key) === name);
18543
- }
18544
- function child3(node, name) {
18545
- const key = keyFor(node, name);
18546
- const value = key ? node[key] : void 0;
18547
- if (key && (value === "" || value === void 0)) {
18548
- return {};
18549
- }
18550
- return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
18551
- }
18552
- function clone(value) {
18553
- return JSON.parse(JSON.stringify(value));
18554
- }
18555
- function directText(node) {
18556
- const key = keyFor(node, "t");
18557
- const value = key ? node[key] : void 0;
18558
- return value === void 0 || value === null ? "" : String(value);
18559
- }
18560
- function parseItem(key, rawValue) {
18561
- const name = localName6(key);
18562
- if (!["r", "br", "fld", "tab"].includes(name)) {
18563
- return { kind: "raw", name: key, value: clone(rawValue) };
18564
- }
18565
- const raw = rawValue && typeof rawValue === "object" && !Array.isArray(rawValue) ? rawValue : {};
18566
- if (name === "r") {
18567
- const run = {
18568
- text: directText(raw),
18569
- rawXml: clone(raw),
18570
- childOrder: smartArtChildOrder(raw)
18571
- };
18572
- const rPr = child3(raw, "rPr");
18573
- if (rPr) {
18574
- run.rPr = clone(rPr);
18575
- }
18576
- return { kind: "run", run };
18577
- }
18578
- if (name === "br") {
18579
- const rPr = child3(raw, "rPr");
18580
- return {
18581
- kind: "break",
18582
- ...rPr ? { rPr: clone(rPr) } : {},
18583
- rawXml: clone(raw),
18584
- childOrder: smartArtChildOrder(raw)
18585
- };
18586
- }
18587
- if (name === "fld") {
18588
- const rPr = child3(raw, "rPr");
18589
- const pPr = child3(raw, "pPr");
18590
- return {
18591
- kind: "field",
18592
- ...raw["@_id"] ? { id: String(raw["@_id"]) } : {},
18593
- ...raw["@_type"] ? { fieldType: String(raw["@_type"]) } : {},
18594
- text: directText(raw),
18595
- ...rPr ? { rPr: clone(rPr) } : {},
18596
- ...pPr ? { pPr: clone(pPr) } : {},
18597
- rawXml: clone(raw),
18598
- childOrder: smartArtChildOrder(raw)
18599
- };
18600
- }
18601
- if (name === "tab") {
18602
- return { kind: "tab", rawXml: clone(raw), childOrder: smartArtChildOrder(raw) };
18603
- }
18604
- return { kind: "raw", name: key, value: clone(rawValue) };
18605
- }
18606
- function parseSmartArtTextParagraphs(point2) {
18607
- const body = child3(point2, "t");
18608
- if (!body) {
18609
- return void 0;
18610
- }
18611
- const pKey = keyFor(body, "p");
18612
- const raw = pKey ? body[pKey] : void 0;
18613
- const paragraphNodes = Array.isArray(raw) ? raw : raw ? [raw] : [];
18614
- if (paragraphNodes.length === 0) {
18615
- return void 0;
18616
- }
18617
- return paragraphNodes.map((paragraph) => {
18618
- const pPr = child3(paragraph, "pPr");
18619
- const endParaRPr = child3(paragraph, "endParaRPr");
18620
- return {
18621
- ...pPr ? { pPr: clone(pPr) } : {},
18622
- items: orderedSmartArtTextEntries(paragraph).flatMap(
18623
- ([key, item]) => ["pPr", "endParaRPr"].includes(localName6(key)) ? [] : [parseItem(key, item)]
18624
- ),
18625
- ...endParaRPr ? { endParaRPr: clone(endParaRPr) } : {},
18626
- rawXml: clone(paragraph)
18627
- };
18628
- });
18629
- }
18630
- function smartArtParagraphsText(paragraphs) {
18398
+ // diagram/text/node-text-paragraphs.ts
18399
+ function diagramParagraphsText(paragraphs) {
18631
18400
  return paragraphs.map(
18632
18401
  (paragraph) => paragraph.items.map((item) => {
18633
18402
  if (item.kind === "run") {
@@ -18643,129 +18412,13 @@ function smartArtParagraphsText(paragraphs) {
18643
18412
  }).join("")
18644
18413
  ).join("\n");
18645
18414
  }
18646
- function firstParagraphRuns(paragraphs) {
18415
+ function firstDiagramParagraphRuns(paragraphs) {
18647
18416
  const runs = paragraphs?.[0]?.items.flatMap((item) => item.kind === "run" ? [item.run] : []);
18648
18417
  return runs && runs.length > 0 ? runs : void 0;
18649
18418
  }
18650
- function objectWithAttributes(raw) {
18651
- return Object.fromEntries(
18652
- Object.entries(raw ?? {}).filter(([key]) => key.startsWith("@_"))
18653
- );
18654
- }
18655
- function appendChild(target, name, value, order) {
18656
- const seen = Object.keys(target).some((key) => key === name || key.startsWith(`${name}#`));
18657
- target[seen ? orderedXmlKey(name, order) : name] = value;
18658
- }
18659
- function buildOrderedContainer(raw, order, replacements) {
18660
- const xml = objectWithAttributes(raw);
18661
- const keys = /* @__PURE__ */ new Map();
18662
- for (const key of Object.keys(raw ?? {})) {
18663
- if (!key.startsWith("@_")) {
18664
- keys.set(localName6(key), key);
18665
- }
18666
- }
18667
- const values = (name) => {
18668
- const key = keys.get(name);
18669
- const value = key ? raw?.[key] : void 0;
18670
- return Array.isArray(value) ? value : value === void 0 ? [] : [value];
18671
- };
18672
- const derivedOrder = order ?? [...keys.keys()].flatMap((name) => values(name).map(() => name));
18673
- const replacementMap = new Map(
18674
- replacements.map(([name, value]) => [localName6(name), [name, value]])
18675
- );
18676
- const emittedReplacements = /* @__PURE__ */ new Set();
18677
- const consumed = /* @__PURE__ */ new Map();
18678
- let outputOrder = 0;
18679
- for (const name of derivedOrder) {
18680
- const replacement = replacementMap.get(name);
18681
- if (replacement && !emittedReplacements.has(name)) {
18682
- appendChild(xml, replacement[0], replacement[1], outputOrder++);
18683
- emittedReplacements.add(name);
18684
- continue;
18685
- }
18686
- const index = consumed.get(name) ?? 0;
18687
- const value = values(name)[index];
18688
- consumed.set(name, index + 1);
18689
- const key = keys.get(name);
18690
- if (key && value !== void 0) {
18691
- appendChild(xml, key, clone(value), outputOrder++);
18692
- }
18693
- }
18694
- for (const [name, value] of replacements) {
18695
- if (!emittedReplacements.has(localName6(name))) {
18696
- appendChild(xml, name, value, outputOrder++);
18697
- }
18698
- }
18699
- return xml;
18700
- }
18701
- function buildItem(item) {
18702
- if (item.kind === "run") {
18703
- return [
18704
- "a:r",
18705
- buildOrderedContainer(item.run.rawXml, item.run.childOrder, [
18706
- ["a:rPr", item.run.rPr ?? { "@_lang": "en-US" }],
18707
- ["a:t", item.run.text]
18708
- ])
18709
- ];
18710
- }
18711
- if (item.kind === "break") {
18712
- return [
18713
- "a:br",
18714
- buildOrderedContainer(
18715
- item.rawXml,
18716
- item.childOrder,
18717
- item.rPr ? [["a:rPr", item.rPr]] : []
18718
- )
18719
- ];
18720
- }
18721
- if (item.kind === "field") {
18722
- const replacements = [];
18723
- if (item.rPr) {
18724
- replacements.push(["a:rPr", item.rPr]);
18725
- }
18726
- if (item.pPr) {
18727
- replacements.push(["a:pPr", item.pPr]);
18728
- }
18729
- replacements.push(["a:t", item.text]);
18730
- const xml = buildOrderedContainer(
18731
- item.rawXml,
18732
- item.childOrder,
18733
- replacements
18734
- );
18735
- if (item.id) {
18736
- xml["@_id"] = item.id;
18737
- }
18738
- if (item.fieldType) {
18739
- xml["@_type"] = item.fieldType;
18740
- }
18741
- return ["a:fld", xml];
18742
- }
18743
- if (item.kind === "tab") {
18744
- return [
18745
- "a:tab",
18746
- buildOrderedContainer(item.rawXml, item.childOrder, [])
18747
- ];
18748
- }
18749
- return [item.name, clone(item.value)];
18750
- }
18751
- function buildSmartArtTextParagraph(paragraph) {
18752
- const xml = objectWithAttributes(paragraph.rawXml);
18753
- if (paragraph.pPr) {
18754
- xml["a:pPr"] = paragraph.pPr;
18755
- }
18756
- let order = 0;
18757
- for (const item of paragraph.items) {
18758
- const [name, value] = buildItem(item);
18759
- appendChild(xml, name, value, order++);
18760
- }
18761
- if (paragraph.endParaRPr) {
18762
- xml["a:endParaRPr"] = paragraph.endParaRPr;
18763
- }
18764
- return xml;
18765
- }
18766
18419
 
18767
- // pptx/core/core/runtime/smartart-text-reconciliation.ts
18768
- function clone2(value) {
18420
+ // diagram/text/node-text-reconciliation.ts
18421
+ function clone(value) {
18769
18422
  return JSON.parse(JSON.stringify(value));
18770
18423
  }
18771
18424
  function itemText(item) {
@@ -18914,7 +18567,10 @@ function removeRange(paragraphs, start, end) {
18914
18567
  const right = paragraphs[atom.paragraph + 1];
18915
18568
  if (left && right) {
18916
18569
  left.items.push(...right.items);
18917
- left.endParaRPr = right.endParaRPr ?? left.endParaRPr;
18570
+ const end2 = right.endParaRPr ?? left.endParaRPr;
18571
+ if (end2) left.endParaRPr = end2;
18572
+ const endProperties = right.endProperties ?? left.endProperties;
18573
+ if (endProperties) left.endProperties = endProperties;
18918
18574
  paragraphs.splice(atom.paragraph + 1, 1);
18919
18575
  }
18920
18576
  }
@@ -18922,7 +18578,7 @@ function removeRange(paragraphs, start, end) {
18922
18578
  }
18923
18579
  function textTemplate(paragraph) {
18924
18580
  const existing = paragraph.items.find((item) => itemText(item) !== void 0);
18925
- return existing ? clone2(existing) : { kind: "run", run: { text: "" } };
18581
+ return existing ? clone(existing) : { kind: "run", run: { text: "" } };
18926
18582
  }
18927
18583
  function insertAt(paragraphs, offset, value) {
18928
18584
  const location = atoms(paragraphs)[offset - 1];
@@ -18936,7 +18592,7 @@ function insertAt(paragraphs, offset, value) {
18936
18592
  const item = paragraph.items[itemIndex];
18937
18593
  const text2 = item ? itemText(item) : void 0;
18938
18594
  if (item && text2 !== void 0 && textOffset > 0 && textOffset < text2.length) {
18939
- splitRight = clone2(item);
18595
+ splitRight = clone(item);
18940
18596
  setItemText(item, text2.slice(0, textOffset));
18941
18597
  setItemText(splitRight, text2.slice(textOffset));
18942
18598
  paragraph.items.splice(itemIndex + 1, 0, splitRight);
@@ -18952,7 +18608,7 @@ function insertAt(paragraphs, offset, value) {
18952
18608
  }
18953
18609
  } else if (part === "\n") {
18954
18610
  const rightItems = paragraph.items.splice(itemIndex + 1);
18955
- const next = clone2(paragraph);
18611
+ const next = clone(paragraph);
18956
18612
  next.items = rightItems;
18957
18613
  paragraphs.splice(paragraphIndex + 1, 0, next);
18958
18614
  paragraphIndex++;
@@ -18972,9 +18628,12 @@ function insertAt(paragraphs, offset, value) {
18972
18628
  }
18973
18629
  }
18974
18630
  }
18975
- function reconcileSmartArtTextParagraphs(paragraphs, desired) {
18976
- const result = clone2(paragraphs);
18977
- const before = smartArtParagraphsText(result);
18631
+ function reconcileDiagramTextParagraphs(paragraphs, desired) {
18632
+ return reconcile(paragraphs, desired);
18633
+ }
18634
+ function reconcile(paragraphs, desired) {
18635
+ const result = clone(paragraphs);
18636
+ const before = diagramParagraphsText(result);
18978
18637
  if (before === desired) {
18979
18638
  return result;
18980
18639
  }
@@ -18988,6 +18647,73 @@ function reconcileSmartArtTextParagraphs(paragraphs, desired) {
18988
18647
  return result.length > 0 ? result : [{ items: [] }];
18989
18648
  }
18990
18649
 
18650
+ // diagram/text/node-text-projection.ts
18651
+ function paragraphMetadata(styler, paragraph, paragraphIndex, bulletEnabled) {
18652
+ const level2 = styler.paragraphLevel(paragraph);
18653
+ const explicitBullet = styler.explicitBullet(paragraph, paragraphIndex);
18654
+ const bulletInfo = explicitBullet ?? (bulletEnabled && level2 >= 1 ? styler.autoBullet() : void 0);
18655
+ return {
18656
+ ...bulletInfo ? { bulletInfo } : {},
18657
+ paragraphLevel: level2,
18658
+ ...paragraph.endParaRPr ? { endParaRunProperties: paragraph.endParaRPr } : {}
18659
+ };
18660
+ }
18661
+ function projectDiagramNodeText(node, styler, fallbackStyle, options = {}) {
18662
+ if (!node.paragraphs?.length) {
18663
+ return [{ text: node.text, style: fallbackStyle }];
18664
+ }
18665
+ const paragraphs = reconcileDiagramTextParagraphs(node.paragraphs, node.text);
18666
+ const segments = [];
18667
+ for (let paragraphIndex = 0; paragraphIndex < paragraphs.length; paragraphIndex++) {
18668
+ const paragraph = paragraphs[paragraphIndex];
18669
+ const pStyle = styler.paragraphStyle(paragraph, fallbackStyle);
18670
+ const metadata = paragraphMetadata(
18671
+ styler,
18672
+ paragraph,
18673
+ paragraphIndex,
18674
+ options.bulletEnabled ?? false
18675
+ );
18676
+ let first2 = true;
18677
+ const push2 = (segment) => {
18678
+ segments.push(first2 ? { ...segment, ...metadata } : segment);
18679
+ first2 = false;
18680
+ };
18681
+ for (const item of paragraph.items) {
18682
+ if (item.kind === "run") {
18683
+ push2({ text: item.run.text, style: styler.runStyle(item.run, pStyle) });
18684
+ } else if (item.kind === "field") {
18685
+ push2({
18686
+ text: item.text,
18687
+ style: styler.runStyle(item, pStyle),
18688
+ fieldType: item.fieldType,
18689
+ fieldGuid: item.id,
18690
+ fieldParagraphPropertiesXml: item.pPr
18691
+ });
18692
+ } else if (item.kind === "break") {
18693
+ push2({
18694
+ text: "\n",
18695
+ style: styler.runStyle(item, pStyle),
18696
+ isLineBreak: true,
18697
+ breakRunProperties: item.rPr
18698
+ });
18699
+ } else if (item.kind === "tab") {
18700
+ push2({ text: " ", style: pStyle });
18701
+ }
18702
+ }
18703
+ if (first2) {
18704
+ push2({ text: "", style: styler.endParagraphStyle(paragraph, pStyle) });
18705
+ }
18706
+ if (paragraphIndex < paragraphs.length - 1) {
18707
+ segments.push({
18708
+ text: "",
18709
+ style: styler.endParagraphStyle(paragraph, pStyle),
18710
+ isParagraphBreak: true
18711
+ });
18712
+ }
18713
+ }
18714
+ return segments;
18715
+ }
18716
+
18991
18717
  // pptx/core/utils/tab-stops.ts
18992
18718
  var EMU_PER_PX2 = 9525;
18993
18719
  function parseTabStops(pPr) {
@@ -19450,7 +19176,7 @@ function parseRunSolidFillColorXml(rPr) {
19450
19176
  }
19451
19177
 
19452
19178
  // pptx/core/utils/smartart-node-text-projection.ts
19453
- function child4(node, name) {
19179
+ function child3(node, name) {
19454
19180
  if (!node) {
19455
19181
  return void 0;
19456
19182
  }
@@ -19461,7 +19187,7 @@ function child4(node, name) {
19461
19187
  function runStyle(rPr, fallback) {
19462
19188
  const xml = rPr;
19463
19189
  const color = parseRunSolidFillColor(xml);
19464
- const extLst = child4(rPr, "extLst");
19190
+ const extLst = child3(rPr, "extLst");
19465
19191
  return {
19466
19192
  ...fallback,
19467
19193
  ...parseRunPropertyAttributes(xml),
@@ -19484,7 +19210,7 @@ function paragraphStyle(paragraph, fallback) {
19484
19210
  const align = parseAlignmentAttr(pPr?.["@_algn"]);
19485
19211
  const rtl = parseParagraphRtl(pPr);
19486
19212
  const tabStops = parseTabStops(pPr);
19487
- const extLst = child4(paragraph.pPr, "extLst");
19213
+ const extLst = child3(paragraph.pPr, "extLst");
19488
19214
  return {
19489
19215
  ...fallback,
19490
19216
  ...align ? { align } : {},
@@ -19492,78 +19218,25 @@ function paragraphStyle(paragraph, fallback) {
19492
19218
  ...parseParagraphExtraAttributes(pPr),
19493
19219
  ...rtl !== void 0 ? { rtl } : {},
19494
19220
  ...tabStops ? { tabStops } : {},
19495
- ...parseParagraphSpacingPx(child4(paragraph.pPr, "spcBef")) !== void 0 ? { paragraphSpacingBefore: parseParagraphSpacingPx(child4(paragraph.pPr, "spcBef")) } : {},
19496
- ...parseParagraphSpacingPx(child4(paragraph.pPr, "spcAft")) !== void 0 ? { paragraphSpacingAfter: parseParagraphSpacingPx(child4(paragraph.pPr, "spcAft")) } : {},
19497
- ...parseLineSpacingMultiplier(child4(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacing: parseLineSpacingMultiplier(child4(paragraph.pPr, "lnSpc")) } : {},
19498
- ...parseLineSpacingExactPt(child4(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacingExactPt: parseLineSpacingExactPt(child4(paragraph.pPr, "lnSpc")) } : {},
19221
+ ...parseParagraphSpacingPx(child3(paragraph.pPr, "spcBef")) !== void 0 ? { paragraphSpacingBefore: parseParagraphSpacingPx(child3(paragraph.pPr, "spcBef")) } : {},
19222
+ ...parseParagraphSpacingPx(child3(paragraph.pPr, "spcAft")) !== void 0 ? { paragraphSpacingAfter: parseParagraphSpacingPx(child3(paragraph.pPr, "spcAft")) } : {},
19223
+ ...parseLineSpacingMultiplier(child3(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacing: parseLineSpacingMultiplier(child3(paragraph.pPr, "lnSpc")) } : {},
19224
+ ...parseLineSpacingExactPt(child3(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacingExactPt: parseLineSpacingExactPt(child3(paragraph.pPr, "lnSpc")) } : {},
19499
19225
  ...extLst ? { paragraphPropertiesExtLstXml: extLst } : {},
19500
- ...child4(paragraph.pPr, "defRPr") ? { paragraphDefaultRunPropertiesXml: child4(paragraph.pPr, "defRPr") } : {}
19226
+ ...child3(paragraph.pPr, "defRPr") ? { paragraphDefaultRunPropertiesXml: child3(paragraph.pPr, "defRPr") } : {}
19501
19227
  };
19502
19228
  }
19503
19229
  var AUTO_BULLET_CHAR = "\u2022";
19504
- function paragraphMetadata(paragraph, paragraphIndex, bulletEnabled) {
19505
- const pPr = paragraph.pPr;
19506
- const level2 = parseParagraphLevel(pPr);
19507
- const explicitBullet = parseBulletInfo(pPr, paragraphIndex) ?? void 0;
19508
- const bulletInfo = explicitBullet ?? (bulletEnabled && (level2 ?? 0) >= 1 ? { char: AUTO_BULLET_CHAR } : void 0);
19509
- return {
19510
- ...bulletInfo ? { bulletInfo } : {},
19511
- paragraphLevel: level2,
19512
- ...paragraph.endParaRPr ? { endParaRunProperties: paragraph.endParaRPr } : {}
19513
- };
19514
- }
19230
+ var PPTX_TEXT_STYLER = {
19231
+ paragraphStyle,
19232
+ runStyle: (item, pStyle) => resolvedRunStyle(item.rPr, item.style, pStyle),
19233
+ endParagraphStyle: (paragraph, pStyle) => ({ ...pStyle, ...paragraph.endParaStyle }),
19234
+ paragraphLevel: (paragraph) => parseParagraphLevel(paragraph.pPr),
19235
+ explicitBullet: (paragraph, index) => parseBulletInfo(paragraph.pPr, index) ?? void 0,
19236
+ autoBullet: () => ({ char: AUTO_BULLET_CHAR })
19237
+ };
19515
19238
  function projectSmartArtNodeText(node, fallbackStyle = {}, options = {}) {
19516
- if (!node.paragraphs?.length) {
19517
- return [{ text: node.text, style: fallbackStyle }];
19518
- }
19519
- const paragraphs = reconcileSmartArtTextParagraphs(node.paragraphs, node.text);
19520
- const segments = [];
19521
- for (let paragraphIndex = 0; paragraphIndex < paragraphs.length; paragraphIndex++) {
19522
- const paragraph = paragraphs[paragraphIndex];
19523
- const pStyle = paragraphStyle(paragraph, fallbackStyle);
19524
- const metadata = paragraphMetadata(paragraph, paragraphIndex, options.bulletEnabled ?? false);
19525
- let first2 = true;
19526
- const push2 = (segment) => {
19527
- segments.push(first2 ? { ...segment, ...metadata } : segment);
19528
- first2 = false;
19529
- };
19530
- for (const item of paragraph.items) {
19531
- if (item.kind === "run") {
19532
- push2({
19533
- text: item.run.text,
19534
- style: resolvedRunStyle(item.run.rPr, item.run.style, pStyle)
19535
- });
19536
- } else if (item.kind === "field") {
19537
- push2({
19538
- text: item.text,
19539
- style: resolvedRunStyle(item.rPr, item.style, pStyle),
19540
- fieldType: item.fieldType,
19541
- fieldGuid: item.id,
19542
- fieldParagraphPropertiesXml: item.pPr
19543
- });
19544
- } else if (item.kind === "break") {
19545
- push2({
19546
- text: "\n",
19547
- style: resolvedRunStyle(item.rPr, item.style, pStyle),
19548
- isLineBreak: true,
19549
- breakRunProperties: item.rPr
19550
- });
19551
- } else if (item.kind === "tab") {
19552
- push2({ text: " ", style: pStyle });
19553
- }
19554
- }
19555
- if (first2) {
19556
- push2({ text: "", style: { ...pStyle, ...paragraph.endParaStyle } });
19557
- }
19558
- if (paragraphIndex < paragraphs.length - 1) {
19559
- segments.push({
19560
- text: "",
19561
- style: { ...pStyle, ...paragraph.endParaStyle },
19562
- isParagraphBreak: true
19563
- });
19564
- }
19565
- }
19566
- return segments;
19239
+ return projectDiagramNodeText(node, PPTX_TEXT_STYLER, fallbackStyle, options);
19567
19240
  }
19568
19241
 
19569
19242
  // diagram/layout/smartart-interpreter-fold-text.ts
@@ -27471,7 +27144,7 @@ function interpretSmartArtLayout(view, input) {
27471
27144
 
27472
27145
  // pptx/core/utils/smartart-ordered-xml-adapter.ts
27473
27146
  var converted = /* @__PURE__ */ new WeakMap();
27474
- var localName7 = (key) => key.slice(key.indexOf(":") + 1);
27147
+ var localName4 = (key) => key.slice(key.indexOf(":") + 1);
27475
27148
  function convert(value, name) {
27476
27149
  let byName = converted.get(value);
27477
27150
  const cached = byName?.get(name);
@@ -27483,14 +27156,14 @@ function convert(value, name) {
27483
27156
  if (key.startsWith("@_")) {
27484
27157
  const attribute3 = key.slice(2);
27485
27158
  if (attribute3 !== "xmlns" && !attribute3.startsWith("xmlns:") && entry != null) {
27486
- element.attrs[localName7(attribute3)] = String(entry);
27159
+ element.attrs[localName4(attribute3)] = String(entry);
27487
27160
  }
27488
27161
  continue;
27489
27162
  }
27490
27163
  if (key.startsWith("#") || key.startsWith("?")) {
27491
27164
  continue;
27492
27165
  }
27493
- const childName = localName7(key);
27166
+ const childName = localName4(key);
27494
27167
  for (const child16 of Array.isArray(entry) ? entry : [entry]) {
27495
27168
  element.children.push(
27496
27169
  child16 && typeof child16 === "object" ? convert(child16, childName) : { name: childName, attrs: {}, children: [] }
@@ -29012,6 +28685,176 @@ function ruleAttributes(value) {
29012
28685
  return [...targetAttributes(value), ["max", text(value.max)]];
29013
28686
  }
29014
28687
 
28688
+ // diagram/edit/shape-match.ts
28689
+ function findDiagramShapeIndex(shapes, nodes, nodeId) {
28690
+ for (let i2 = 0; i2 < shapes.length; i2++) {
28691
+ const id = shapes[i2].id;
28692
+ if (id.startsWith("reflow-") && id.endsWith(`-${nodeId}`)) {
28693
+ return i2;
28694
+ }
28695
+ }
28696
+ if (shapes.length === nodes.length) {
28697
+ const nodeIdx = nodes.findIndex((n) => n.id === nodeId);
28698
+ if (nodeIdx >= 0) {
28699
+ return nodeIdx;
28700
+ }
28701
+ }
28702
+ const node = nodes.find((n) => n.id === nodeId);
28703
+ if (node?.text) {
28704
+ const text2 = node.text.trim();
28705
+ const matches = [];
28706
+ for (let i2 = 0; i2 < shapes.length; i2++) {
28707
+ if (shapes[i2].text?.trim() === text2) {
28708
+ matches.push(i2);
28709
+ }
28710
+ }
28711
+ if (matches.length === 1) {
28712
+ return matches[0];
28713
+ }
28714
+ }
28715
+ return -1;
28716
+ }
28717
+ function patchDiagramShape(shapes, nodes, nodeId, patch) {
28718
+ if (!shapes || shapes.length === 0) {
28719
+ return shapes;
28720
+ }
28721
+ const idx = findDiagramShapeIndex(shapes, nodes, nodeId);
28722
+ if (idx < 0) {
28723
+ return [];
28724
+ }
28725
+ const updated = [...shapes];
28726
+ updated[idx] = patch(updated[idx]);
28727
+ return updated;
28728
+ }
28729
+
28730
+ // crypto/uuid.ts
28731
+ function randomBytes(length) {
28732
+ const cryptoObj = globalThis.crypto;
28733
+ if (cryptoObj?.getRandomValues) return cryptoObj.getRandomValues(new Uint8Array(length));
28734
+ const bytes = new Uint8Array(length);
28735
+ for (let i2 = 0; i2 < length; i2++) bytes[i2] = Math.floor(Math.random() * 256);
28736
+ return bytes;
28737
+ }
28738
+ function randomHex(length) {
28739
+ return Array.from(randomBytes(Math.ceil(length / 2)), (b) => b.toString(16).padStart(2, "0")).join("").slice(0, length);
28740
+ }
28741
+ function createOfficeGuid() {
28742
+ const variantNibble = (8 + (randomBytes(1)[0] ?? 0) % 4).toString(16);
28743
+ const uuid = globalThis.crypto?.randomUUID?.() ?? `${randomHex(8)}-${randomHex(4)}-4${randomHex(3)}-${variantNibble}${randomHex(3)}-${randomHex(12)}`;
28744
+ return `{${uuid.toUpperCase()}}`;
28745
+ }
28746
+
28747
+ // diagram/edit/node-ops.ts
28748
+ function setDiagramNodeText(data, nodeId, newText) {
28749
+ const nodes = data.nodes.map((n) => n.id === nodeId ? { ...n, text: newText } : n);
28750
+ return {
28751
+ ...data,
28752
+ nodes,
28753
+ drawingDirty: true,
28754
+ drawingShapes: patchDiagramShape(data.drawingShapes, data.nodes, nodeId, (shape) => ({
28755
+ ...shape,
28756
+ text: newText
28757
+ }))
28758
+ };
28759
+ }
28760
+
28761
+ // diagram/write/data.ts
28762
+ var DIAGRAM_XML_PROLOG = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
28763
+ var DIAGRAM_DATA_XMLNS = 'xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"';
28764
+ function escapeDiagramXml(value) {
28765
+ return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&apos;");
28766
+ }
28767
+ function diagramAvLstXml(adjustments) {
28768
+ const entries = Object.entries(adjustments ?? {}).filter(([, v]) => Number.isFinite(v));
28769
+ if (entries.length === 0) {
28770
+ return "<a:avLst/>";
28771
+ }
28772
+ const gds = entries.map(([name, v]) => `<a:gd name="${escapeDiagramXml(name)}" fmla="val ${Math.round(v)}"/>`).join("");
28773
+ return `<a:avLst>${gds}</a:avLst>`;
28774
+ }
28775
+ var GUID_MODEL_ID = /^\{[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}\}$/u;
28776
+ var EMPTY_TEXT_BODY = '<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:endParaRPr lang="en-US"/></a:p></dgm:t>';
28777
+ function contentTextBody(text2) {
28778
+ if (!text2) {
28779
+ return EMPTY_TEXT_BODY;
28780
+ }
28781
+ return `<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US"/><a:t>${escapeDiagramXml(text2)}</a:t></a:r></a:p></dgm:t>`;
28782
+ }
28783
+ function contentPointXml(guid, node) {
28784
+ const prSet = node.text ? "<dgm:prSet/>" : '<dgm:prSet phldrT="[Text]" phldr="1"/>';
28785
+ const typeAttr = node.nodeType === "asst" ? ' type="asst"' : "";
28786
+ return `<dgm:pt modelId="${guid}"${typeAttr}>${prSet}<dgm:spPr/>${contentTextBody(node.text ?? "")}</dgm:pt>`;
28787
+ }
28788
+ function transPointXml(guid, type, cxnGuid) {
28789
+ return `<dgm:pt modelId="${guid}" type="${type}" cxnId="${cxnGuid}"><dgm:prSet/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
28790
+ }
28791
+ function docPointXml(docGuid, ids) {
28792
+ return `<dgm:pt modelId="${docGuid}" type="doc"><dgm:prSet loTypeId="${escapeDiagramXml(ids.layoutUniqueId)}" loCatId="${escapeDiagramXml(ids.layoutCategory)}" qsTypeId="${escapeDiagramXml(ids.quickStyleUniqueId)}" qsCatId="simple" csTypeId="${escapeDiagramXml(ids.colorsUniqueId)}" csCatId="${escapeDiagramXml(ids.colorsCategory)}"/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
28793
+ }
28794
+ function buildDiagramNodeGuidMap(nodes, createModelId = createOfficeGuid) {
28795
+ const guidByNodeId = /* @__PURE__ */ new Map();
28796
+ for (const node of nodes) {
28797
+ if (node.id && !guidByNodeId.has(node.id)) {
28798
+ guidByNodeId.set(node.id, GUID_MODEL_ID.test(node.id) ? node.id : createModelId());
28799
+ }
28800
+ }
28801
+ return guidByNodeId;
28802
+ }
28803
+ function buildDiagramPresentationGuidMap(nodes, createModelId = createOfficeGuid) {
28804
+ const guidByNodeId = /* @__PURE__ */ new Map();
28805
+ for (const node of nodes) {
28806
+ if (node.id && !guidByNodeId.has(node.id)) {
28807
+ guidByNodeId.set(node.id, createModelId());
28808
+ }
28809
+ }
28810
+ return guidByNodeId;
28811
+ }
28812
+ var DSP_DATA_MODEL_EXT_URI = "http://schemas.microsoft.com/office/drawing/2008/diagram";
28813
+ function writeFabricatedDiagramData(data, ids, options = {}) {
28814
+ const createModelId = options.createModelId ?? createOfficeGuid;
28815
+ const docGuid = createModelId();
28816
+ const guidByNodeId = options.guidByNodeId ?? buildDiagramNodeGuidMap(data.nodes, createModelId);
28817
+ const presentationGuidByNodeId = options.presentationGuidByNodeId ?? buildDiagramPresentationGuidMap(data.nodes, createModelId);
28818
+ const points = [docPointXml(docGuid, ids)];
28819
+ const connections = [];
28820
+ const nextSrcOrd = /* @__PURE__ */ new Map();
28821
+ for (const node of data.nodes) {
28822
+ const guid = node.id ? guidByNodeId.get(node.id) : void 0;
28823
+ if (!guid) {
28824
+ continue;
28825
+ }
28826
+ const parentGuid = node.parentId && guidByNodeId.get(node.parentId) || docGuid;
28827
+ const srcOrd = nextSrcOrd.get(parentGuid) ?? 0;
28828
+ nextSrcOrd.set(parentGuid, srcOrd + 1);
28829
+ const cxnGuid = createModelId();
28830
+ const parTransGuid = createModelId();
28831
+ const sibTransGuid = createModelId();
28832
+ points.push(contentPointXml(guid, node));
28833
+ points.push(transPointXml(parTransGuid, "parTrans", cxnGuid));
28834
+ points.push(transPointXml(sibTransGuid, "sibTrans", cxnGuid));
28835
+ connections.push(
28836
+ `<dgm:cxn modelId="${cxnGuid}" srcId="${parentGuid}" destId="${guid}" srcOrd="${srcOrd}" destOrd="0" parTransId="${parTransGuid}" sibTransId="${sibTransGuid}"/>`
28837
+ );
28838
+ const presentationGuid = node.id ? presentationGuidByNodeId.get(node.id) : void 0;
28839
+ if (presentationGuid) {
28840
+ points.push(
28841
+ `<dgm:pt modelId="${presentationGuid}" type="pres"><dgm:prSet presAssocID="${guid}" presName="node" presStyleLbl="node1" presStyleIdx="${srcOrd}" presStyleCnt="${data.nodes.length}"/><dgm:spPr/></dgm:pt>`
28842
+ );
28843
+ connections.push(
28844
+ `<dgm:cxn modelId="${createModelId()}" type="presOf" srcId="${guid}" destId="${presentationGuid}" srcOrd="0" destOrd="0" presId="${escapeDiagramXml(ids.layoutUniqueId)}"/>`
28845
+ );
28846
+ }
28847
+ }
28848
+ return `${DIAGRAM_XML_PROLOG}\r
28849
+ <dgm:dataModel ${DIAGRAM_DATA_XMLNS}><dgm:ptLst>${points.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/>${dataModelExtXml(options.drawingRelId)}</dgm:dataModel>`;
28850
+ }
28851
+ function dataModelExtXml(drawingRelId) {
28852
+ if (!drawingRelId) {
28853
+ return "";
28854
+ }
28855
+ return `<dgm:extLst><a:ext uri="${DSP_DATA_MODEL_EXT_URI}"><dsp:dataModelExt xmlns:dsp="${DSP_DATA_MODEL_EXT_URI}" relId="${escapeDiagramXml(drawingRelId)}" minVer="http://schemas.openxmlformats.org/drawingml/2006/diagram"/></a:ext></dgm:extLst>`;
28856
+ }
28857
+
29015
28858
  // diagram/attributes.ts
29016
28859
  var optionalString2 = (value) => {
29017
28860
  const text2 = (value ?? "").trim();
@@ -29057,182 +28900,6 @@ function parseRelationshipIdAttributes(get) {
29057
28900
  return result;
29058
28901
  }
29059
28902
 
29060
- // xml/namespaces.ts
29061
- var NS = {
29062
- /** WordprocessingML main. */
29063
- w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
29064
- /** PresentationML main. */
29065
- p: "http://schemas.openxmlformats.org/presentationml/2006/main",
29066
- /** SpreadsheetML main. */
29067
- x: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
29068
- /** DrawingML main. */
29069
- a: "http://schemas.openxmlformats.org/drawingml/2006/main",
29070
- /** DrawingML chart. */
29071
- c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
29072
- /** Office 2016 extended charts (waterfall, histogram, funnel...; `cx:chartSpace`). */
29073
- cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
29074
- /** Office 2010 chart extensions, including built-in modern chart styles. */
29075
- c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
29076
- /** DrawingML diagram (SmartArt) main. */
29077
- dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
29078
- /** Office 2007+ diagram drawing (`dsp`). */
29079
- dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
29080
- /** DrawingML Word drawing (`wp:inline`, `wp:anchor`). */
29081
- wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
29082
- /** DrawingML picture. */
29083
- pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
29084
- /** Word 2010 shapes (`wps`). */
29085
- wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
29086
- /** Relationships (`r:id`, `r:embed`). */
29087
- r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
29088
- /** Markup compatibility (`mc:AlternateContent`). */
29089
- mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
29090
- /** OPC relationships part. */
29091
- rels: "http://schemas.openxmlformats.org/package/2006/relationships",
29092
- /** OPC content types part. */
29093
- contentTypes: "http://schemas.openxmlformats.org/package/2006/content-types",
29094
- /** Office Math. */
29095
- m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
29096
- /** Core properties. */
29097
- cp: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
29098
- /** Dublin Core elements. */
29099
- dc: "http://purl.org/dc/elements/1.1/",
29100
- /** Legacy VML. */
29101
- v: "urn:schemas-microsoft-com:vml",
29102
- /** Office VML extensions. */
29103
- o: "urn:schemas-microsoft-com:office:office",
29104
- /** Word VML extensions. */
29105
- w10: "urn:schemas-microsoft-com:office:word",
29106
- /** SpreadsheetML drawing (`xdr:wsDr`, cell anchors). */
29107
- xdr: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
29108
- /** SpreadsheetML 2009 extensions (`x14:conditionalFormatting`, `x14:dataBar`). */
29109
- x14: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
29110
- /** SpreadsheetML 2009 attribute extensions (`x14ac:dyDescent`). */
29111
- x14ac: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac",
29112
- /** SpreadsheetML revision ids (`xr:uid`). */
29113
- xr: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
29114
- /** Excel threaded comments and persons. */
29115
- tc: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
29116
- /** Legacy VML Excel client data (`x:ClientData`). */
29117
- xv: "urn:schemas-microsoft-com:office:excel",
29118
- /** Extended (app) properties. */
29119
- extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
29120
- /** Dublin Core terms (`dcterms:created`). */
29121
- dcterms: "http://purl.org/dc/terms/",
29122
- /** Custom document properties (`docProps/custom.xml`). */
29123
- customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
29124
- /** Document property variant types (`vt:lpwstr`, `vt:vector`). */
29125
- vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
29126
- /** XML itself (`xml:space`). */
29127
- xml: "http://www.w3.org/XML/1998/namespace"
29128
- };
29129
- var DEFAULT_XML_LIMITS = {
29130
- maxDepth: 512,
29131
- maxNodes: 5e6
29132
- };
29133
- var XmlLimitError = class extends Error {
29134
- code = "xml-limit";
29135
- /** The limit that was exceeded. */
29136
- limit;
29137
- /** Its value: the largest depth or element count allowed. */
29138
- maximum;
29139
- constructor(message, limit, maximum) {
29140
- super(message);
29141
- this.name = "XmlLimitError";
29142
- this.limit = limit;
29143
- this.maximum = maximum;
29144
- }
29145
- };
29146
- var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
29147
- var MARKUP_SKIPS = [
29148
- ["<!--", "-->"],
29149
- ["<![CDATA[", "]]>"],
29150
- ["<?", "?>"]
29151
- ];
29152
- function checkXmlLimits(xml, label, limits = {}) {
29153
- const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
29154
- const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
29155
- let depth = 0;
29156
- let nodes = 0;
29157
- let at2 = xml.indexOf("<");
29158
- while (at2 !== -1) {
29159
- const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
29160
- if (skip) {
29161
- const end = xml.indexOf(skip[1], at2 + skip[0].length);
29162
- if (end === -1) return;
29163
- at2 = xml.indexOf("<", end + skip[1].length);
29164
- continue;
29165
- }
29166
- TAG_RE.lastIndex = at2;
29167
- const match = TAG_RE.exec(xml);
29168
- if (!match) {
29169
- at2 = xml.indexOf("<", at2 + 1);
29170
- continue;
29171
- }
29172
- const [, closing, , selfClosing] = match;
29173
- at2 = xml.indexOf("<", at2 + match[0].length);
29174
- if (closing) {
29175
- depth--;
29176
- continue;
29177
- }
29178
- nodes++;
29179
- if (nodes > maxNodes)
29180
- throw new XmlLimitError(
29181
- `${label} XML exceeds the limit of ${maxNodes} elements`,
29182
- "maxNodes",
29183
- maxNodes
29184
- );
29185
- if (!selfClosing && ++depth > maxDepth2)
29186
- throw new XmlLimitError(
29187
- `${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
29188
- "maxDepth",
29189
- maxDepth2
29190
- );
29191
- }
29192
- }
29193
- var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
29194
- var crlfDeclarations = /* @__PURE__ */ new WeakSet();
29195
- function parseXml(xml, options = {}) {
29196
- const label = options.label ?? "OOXML";
29197
- if (/<!DOCTYPE|<!ENTITY/i.test(xml))
29198
- throw new Error(`${label} XML with DTD or entity declarations is not supported`);
29199
- checkXmlLimits(xml, label, options.limits);
29200
- let parseError = "";
29201
- let parsed;
29202
- try {
29203
- parsed = new DOMParser({
29204
- onError: (level2, message) => {
29205
- if (level2 !== "warning") parseError = message;
29206
- }
29207
- }).parseFromString(xml, "application/xml");
29208
- } catch (error) {
29209
- throw new Error(
29210
- `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
29211
- { cause: error }
29212
- );
29213
- }
29214
- if (parseError || !parsed.documentElement)
29215
- throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
29216
- if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
29217
- return parsed;
29218
- }
29219
- var buildXml = (node) => {
29220
- const xml = new XMLSerializer().serializeToString(node);
29221
- return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
29222
- };
29223
- var isElement = (node) => node.nodeType === 1;
29224
- var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
29225
- function named(element, local, ns, lenient = true) {
29226
- if (!element || element.localName !== local) return false;
29227
- return element.namespaceURI === ns || lenient && !element.namespaceURI;
29228
- }
29229
- var children2 = (parent, local, ns, lenient = true) => elements(parent).filter((element) => named(element, local, ns, lenient));
29230
- var first = (parent, local, ns, lenient = true) => parent ? children2(parent, local, ns, lenient)[0] : void 0;
29231
- function attr(element, local, ns, prefix) {
29232
- return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
29233
- }
29234
- var relAttr = (element, local) => attr(element, local, NS.r, "r");
29235
-
29236
28903
  // opc/signature/detection.ts
29237
28904
  var SIGNATURE_PART_PREFIX = "_xmlsignatures/";
29238
28905
  var SIGNATURE_PREFIX = SIGNATURE_PART_PREFIX;
@@ -29340,7 +29007,7 @@ function applySmartArtConnectionAttributes(xml, connection, fallbackModelId) {
29340
29007
  }
29341
29008
 
29342
29009
  // pptx/core/utils/smartart-node-style-role.ts
29343
- function child5(node, name, localName14) {
29010
+ function child4(node, name, localName14) {
29344
29011
  if (!node) {
29345
29012
  return void 0;
29346
29013
  }
@@ -29349,7 +29016,7 @@ function child5(node, name, localName14) {
29349
29016
  return Array.isArray(value) ? value[0] : value;
29350
29017
  }
29351
29018
  function presPointRole(pt, localName14) {
29352
- const prSet = child5(pt, "prSet", localName14);
29019
+ const prSet = child4(pt, "prSet", localName14);
29353
29020
  const styleRole = String(prSet?.["@_presStyleLbl"] ?? "").trim();
29354
29021
  if (!styleRole) {
29355
29022
  return void 0;
@@ -29419,7 +29086,7 @@ function resolveSmartArtNodeCoherent3DOff(points, connections, localName14) {
29419
29086
  if (!presPoint) {
29420
29087
  continue;
29421
29088
  }
29422
- const prSet = child5(presPoint, "prSet", localName14);
29089
+ const prSet = child4(presPoint, "prSet", localName14);
29423
29090
  const raw = String(prSet?.["@_coherent3DOff"] ?? "").trim().toLowerCase();
29424
29091
  if (raw === "1" || raw === "true") {
29425
29092
  nodeIds.add(connection.sourceId);
@@ -29429,7 +29096,7 @@ function resolveSmartArtNodeCoherent3DOff(points, connections, localName14) {
29429
29096
  }
29430
29097
 
29431
29098
  // pptx/core/utils/smartart-effect-intensity.ts
29432
- function child6(node, name, localName14) {
29099
+ function child5(node, name, localName14) {
29433
29100
  if (!node) {
29434
29101
  return void 0;
29435
29102
  }
@@ -29438,13 +29105,13 @@ function child6(node, name, localName14) {
29438
29105
  return Array.isArray(value) ? value[0] : value;
29439
29106
  }
29440
29107
  function refIndex(styleLbl, refName, localName14) {
29441
- const style = child6(styleLbl, "style", localName14);
29442
- const ref = child6(style, refName, localName14);
29108
+ const style = child5(styleLbl, "style", localName14);
29109
+ const ref = child5(style, refName, localName14);
29443
29110
  const parsed = Number.parseInt(String(ref?.["@_idx"] ?? ""), 10);
29444
29111
  return Number.isFinite(parsed) ? parsed : void 0;
29445
29112
  }
29446
29113
  function hasBevelGeometry(styleLbl, localName14) {
29447
- const sp3d = child6(styleLbl, "sp3d", localName14);
29114
+ const sp3d = child5(styleLbl, "sp3d", localName14);
29448
29115
  if (!sp3d) {
29449
29116
  return false;
29450
29117
  }
@@ -29683,52 +29350,7 @@ function detectFontFormat(data) {
29683
29350
 
29684
29351
  // pptx/core/utils/smartart-editing-node-ops.ts
29685
29352
  function updateSmartArtNodeText(data, nodeId, newText) {
29686
- const nodes = data.nodes.map((n) => n.id === nodeId ? { ...n, text: newText } : n);
29687
- return {
29688
- ...data,
29689
- nodes,
29690
- drawingDirty: true,
29691
- drawingShapes: patchDrawingShapeText(data.drawingShapes, data.nodes, nodeId, newText)
29692
- };
29693
- }
29694
- function patchDrawingShapeText(shapes, nodes, nodeId, newText) {
29695
- if (!shapes || shapes.length === 0) {
29696
- return shapes;
29697
- }
29698
- const idx = findDrawingShapeIndex(shapes, nodes, nodeId);
29699
- if (idx < 0) {
29700
- return [];
29701
- }
29702
- const updated = [...shapes];
29703
- updated[idx] = { ...updated[idx], text: newText };
29704
- return updated;
29705
- }
29706
- function findDrawingShapeIndex(shapes, nodes, nodeId) {
29707
- for (let i2 = 0; i2 < shapes.length; i2++) {
29708
- if (shapes[i2].id.startsWith("reflow-") && shapes[i2].id.endsWith(`-${nodeId}`)) {
29709
- return i2;
29710
- }
29711
- }
29712
- if (shapes.length === nodes.length) {
29713
- const nodeIdx = nodes.findIndex((n) => n.id === nodeId);
29714
- if (nodeIdx >= 0) {
29715
- return nodeIdx;
29716
- }
29717
- }
29718
- const node = nodes.find((n) => n.id === nodeId);
29719
- if (node?.text) {
29720
- const text2 = node.text.trim();
29721
- const matches = [];
29722
- for (let i2 = 0; i2 < shapes.length; i2++) {
29723
- if (shapes[i2].text?.trim() === text2) {
29724
- matches.push(i2);
29725
- }
29726
- }
29727
- if (matches.length === 1) {
29728
- return matches[0];
29729
- }
29730
- }
29731
- return -1;
29353
+ return setDiagramNodeText(data, nodeId, newText);
29732
29354
  }
29733
29355
 
29734
29356
  // pptx/core/utils/theme-override-utils.ts
@@ -29812,23 +29434,6 @@ var EncryptedFileError = class extends Error {
29812
29434
  }
29813
29435
  };
29814
29436
 
29815
- // crypto/uuid.ts
29816
- function randomBytes(length) {
29817
- const cryptoObj = globalThis.crypto;
29818
- if (cryptoObj?.getRandomValues) return cryptoObj.getRandomValues(new Uint8Array(length));
29819
- const bytes = new Uint8Array(length);
29820
- for (let i2 = 0; i2 < length; i2++) bytes[i2] = Math.floor(Math.random() * 256);
29821
- return bytes;
29822
- }
29823
- function randomHex(length) {
29824
- return Array.from(randomBytes(Math.ceil(length / 2)), (b) => b.toString(16).padStart(2, "0")).join("").slice(0, length);
29825
- }
29826
- function createOfficeGuid() {
29827
- const variantNibble = (8 + (randomBytes(1)[0] ?? 0) % 4).toString(16);
29828
- const uuid = globalThis.crypto?.randomUUID?.() ?? `${randomHex(8)}-${randomHex(4)}-4${randomHex(3)}-${variantNibble}${randomHex(3)}-${randomHex(12)}`;
29829
- return `{${uuid.toUpperCase()}}`;
29830
- }
29831
-
29832
29437
  // ../../node_modules/.bun/@christophervr+ole2@0.13.0/node_modules/@christophervr/ole2/dist/utils/ooxml-crypto-primitives.js
29833
29438
  function getSubtle() {
29834
29439
  if (typeof globalThis.crypto !== "undefined" && globalThis.crypto.subtle) {
@@ -32463,7 +32068,7 @@ function readChartManualLayoutValues(value) {
32463
32068
  }
32464
32069
 
32465
32070
  // pptx/core/utils/chart-layout.ts
32466
- var child7 = (node, name, localName14) => {
32071
+ var child6 = (node, name, localName14) => {
32467
32072
  if (!node) {
32468
32073
  return void 0;
32469
32074
  }
@@ -32471,12 +32076,12 @@ var child7 = (node, name, localName14) => {
32471
32076
  return key ? node[key] : void 0;
32472
32077
  };
32473
32078
  function parseChartManualLayout(parent, localName14) {
32474
- const manual = child7(child7(parent, "layout", localName14), "manualLayout", localName14);
32079
+ const manual = child6(child6(parent, "layout", localName14), "manualLayout", localName14);
32475
32080
  if (!manual) {
32476
32081
  return void 0;
32477
32082
  }
32478
- const result = readChartManualLayoutValues((name) => child7(manual, name, localName14)?.["@_val"]) ?? {};
32479
- const ext = child7(manual, "extLst", localName14);
32083
+ const result = readChartManualLayoutValues((name) => child6(manual, name, localName14)?.["@_val"]) ?? {};
32084
+ const ext = child6(manual, "extLst", localName14);
32480
32085
  if (ext !== void 0) {
32481
32086
  result.ext = ext;
32482
32087
  }
@@ -32492,9 +32097,9 @@ function parseChartLayouts(chartRoot, localName14) {
32492
32097
  return void 0;
32493
32098
  }
32494
32099
  const layouts = {
32495
- title: parseChartManualLayout(child7(chartRoot, "title", localName14), localName14),
32496
- plotArea: parseChartManualLayout(child7(chartRoot, "plotArea", localName14), localName14),
32497
- legend: parseChartManualLayout(child7(chartRoot, "legend", localName14), localName14)
32100
+ title: parseChartManualLayout(child6(chartRoot, "title", localName14), localName14),
32101
+ plotArea: parseChartManualLayout(child6(chartRoot, "plotArea", localName14), localName14),
32102
+ legend: parseChartManualLayout(child6(chartRoot, "legend", localName14), localName14)
32498
32103
  };
32499
32104
  for (const key of Object.keys(layouts)) {
32500
32105
  if (layouts[key] === void 0) {
@@ -32572,9 +32177,9 @@ function applyChartManualLayout(parent, layout, localName14) {
32572
32177
  replaceKeyAt(parent, "c:layout", { "c:manualLayout": manual }, layoutIndex(parent, localName14));
32573
32178
  }
32574
32179
  function applyChartLayouts(chartRoot, layouts, localName14) {
32575
- applyChartManualLayout(child7(chartRoot, "title", localName14), layouts.title, localName14);
32576
- applyChartManualLayout(child7(chartRoot, "plotArea", localName14), layouts.plotArea, localName14);
32577
- applyChartManualLayout(child7(chartRoot, "legend", localName14), layouts.legend, localName14);
32180
+ applyChartManualLayout(child6(chartRoot, "title", localName14), layouts.title, localName14);
32181
+ applyChartManualLayout(child6(chartRoot, "plotArea", localName14), layouts.plotArea, localName14);
32182
+ applyChartManualLayout(child6(chartRoot, "legend", localName14), layouts.legend, localName14);
32578
32183
  }
32579
32184
 
32580
32185
  // pptx/core/utils/chart-trendline-label.ts
@@ -34466,7 +34071,7 @@ var LABEL_OFFSET_RANGE = { name: "labelOffset", min: 0, max: 1e3 };
34466
34071
  function findKey8(node, name, localName14) {
34467
34072
  return Object.keys(node).find((key) => localName14(key) === name);
34468
34073
  }
34469
- function child8(node, name, localName14) {
34074
+ function child7(node, name, localName14) {
34470
34075
  const key = findKey8(node, name, localName14);
34471
34076
  const value = key ? node[key] : void 0;
34472
34077
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
@@ -34494,32 +34099,32 @@ function parseChartAxisLabelFormatting(node, axisType, localName14) {
34494
34099
  ["majorTickMark", "majorTickMark"],
34495
34100
  ["minorTickMark", "minorTickMark"]
34496
34101
  ]) {
34497
- const value = String(child8(node, name, localName14)?.["@_val"] ?? "");
34102
+ const value = String(child7(node, name, localName14)?.["@_val"] ?? "");
34498
34103
  if (TICK_MARKS.has(value)) {
34499
34104
  result[property] = value;
34500
34105
  }
34501
34106
  }
34502
- const tickLabelPosition = String(child8(node, "tickLblPos", localName14)?.["@_val"] ?? "");
34107
+ const tickLabelPosition = String(child7(node, "tickLblPos", localName14)?.["@_val"] ?? "");
34503
34108
  if (TICK_LABEL_POSITIONS.has(tickLabelPosition)) {
34504
34109
  result.tickLblPos = tickLabelPosition;
34505
34110
  }
34506
- const crosses = String(child8(node, "crosses", localName14)?.["@_val"] ?? "");
34111
+ const crosses = String(child7(node, "crosses", localName14)?.["@_val"] ?? "");
34507
34112
  if (CROSSING_MODES.has(crosses)) {
34508
34113
  result.crosses = crosses;
34509
34114
  }
34510
- const crossesAt = Number.parseFloat(String(child8(node, "crossesAt", localName14)?.["@_val"] ?? ""));
34115
+ const crossesAt = Number.parseFloat(String(child7(node, "crossesAt", localName14)?.["@_val"] ?? ""));
34511
34116
  if (Number.isFinite(crossesAt)) {
34512
34117
  result.crossesAt = crossesAt;
34513
34118
  }
34514
34119
  if (axisType === "valAx") {
34515
- const crossBetween = String(child8(node, "crossBetween", localName14)?.["@_val"] ?? "");
34120
+ const crossBetween = String(child7(node, "crossBetween", localName14)?.["@_val"] ?? "");
34516
34121
  if (CROSS_BETWEEN_MODES.has(crossBetween)) {
34517
34122
  result.crossBetween = crossBetween;
34518
34123
  }
34519
34124
  }
34520
34125
  if (axisType === "catAx" || axisType === "dateAx") {
34521
- result.auto = parseBoolean(child8(node, "auto", localName14));
34522
- const rawOffset = child8(node, "lblOffset", localName14)?.["@_val"];
34126
+ result.auto = parseBoolean(child7(node, "auto", localName14));
34127
+ const rawOffset = child7(node, "lblOffset", localName14)?.["@_val"];
34523
34128
  if (rawOffset !== void 0) {
34524
34129
  const offset = Number.parseFloat(String(rawOffset).replace(/%$/u, ""));
34525
34130
  if (Number.isFinite(offset) && offset >= 0 && offset <= 1e3) {
@@ -34528,15 +34133,15 @@ function parseChartAxisLabelFormatting(node, axisType, localName14) {
34528
34133
  }
34529
34134
  }
34530
34135
  if (axisType === "catAx" || axisType === "serAx") {
34531
- result.tickLabelSkip = parsePositiveInteger(child8(node, "tickLblSkip", localName14));
34532
- result.tickMarkSkip = parsePositiveInteger(child8(node, "tickMarkSkip", localName14));
34136
+ result.tickLabelSkip = parsePositiveInteger(child7(node, "tickLblSkip", localName14));
34137
+ result.tickMarkSkip = parsePositiveInteger(child7(node, "tickMarkSkip", localName14));
34533
34138
  }
34534
34139
  if (axisType === "catAx") {
34535
- const alignment = String(child8(node, "lblAlgn", localName14)?.["@_val"] ?? "");
34140
+ const alignment = String(child7(node, "lblAlgn", localName14)?.["@_val"] ?? "");
34536
34141
  if (LABEL_ALIGNMENTS.has(alignment)) {
34537
34142
  result.labelAlignment = alignment;
34538
34143
  }
34539
- result.noMultiLevelLabels = parseBoolean(child8(node, "noMultiLvlLbl", localName14));
34144
+ result.noMultiLevelLabels = parseBoolean(child7(node, "noMultiLvlLbl", localName14));
34540
34145
  }
34541
34146
  return Object.fromEntries(Object.entries(result).filter(([, value]) => value !== void 0));
34542
34147
  }
@@ -35062,12 +34667,27 @@ function parseTxPrFont(txPrNode, xmlLookup, colorParser, target, resolveTypeface
35062
34667
  target.fontColor = fontColor;
35063
34668
  }
35064
34669
  }
34670
+ var CX_AXIS_UNITS = {
34671
+ hundreds: 100,
34672
+ thousands: 1e3,
34673
+ tenThousands: 1e4,
34674
+ hundredThousands: 1e5,
34675
+ millions: 1e6,
34676
+ tenMillions: 1e7,
34677
+ hundredMillions: 1e8,
34678
+ billions: 1e9,
34679
+ trillions: 1e12
34680
+ };
34681
+ function cxUnitDivisor(raw) {
34682
+ const text2 = String(raw ?? "").trim();
34683
+ return CX_AXIS_UNITS[text2] ?? Number.parseFloat(text2);
34684
+ }
35065
34685
  function parseCxUnits(axisNode, xmlLookup, colorParser, target, resolveTypeface) {
35066
34686
  const unitsNode = xmlLookup.getChildByLocalName(axisNode, "units");
35067
34687
  if (!unitsNode) {
35068
34688
  return;
35069
34689
  }
35070
- const unit = Number.parseFloat(String(unitsNode["@_unit"] ?? ""));
34690
+ const unit = cxUnitDivisor(unitsNode["@_unit"]);
35071
34691
  if (!Number.isFinite(unit) || unit <= 0) {
35072
34692
  return;
35073
34693
  }
@@ -35094,7 +34714,7 @@ function parseCxUnits(axisNode, xmlLookup, colorParser, target, resolveTypeface)
35094
34714
  }
35095
34715
  }
35096
34716
  function parseSingleCxAxis(axisNode, xmlLookup, colorParser, resolveTypeface) {
35097
- const isCategory = xmlLookup.getChildByLocalName(axisNode, "catScaling") !== void 0;
34717
+ const isCategory = hasLocalName(axisNode, "catScaling");
35098
34718
  const axisType = isCategory ? "catAx" : "valAx";
35099
34719
  const result = { axisType };
35100
34720
  const id = safeInt4(axisNode["@_id"]);
@@ -35136,7 +34756,7 @@ function parseSingleCxAxis(axisNode, xmlLookup, colorParser, resolveTypeface) {
35136
34756
  colorParser
35137
34757
  );
35138
34758
  }
35139
- if (xmlLookup.getChildByLocalName(axisNode, "tickLabels") === void 0) {
34759
+ if (!hasLocalName(axisNode, "tickLabels")) {
35140
34760
  result.tickLblPos = "none";
35141
34761
  }
35142
34762
  const spPr = parseShapeProps(
@@ -35215,18 +34835,23 @@ function cxNumberFormat(node, xmlLookup) {
35215
34835
  const formatCode = String(numFmt?.["@_formatCode"] ?? "").trim();
35216
34836
  return formatCode.length > 0 ? formatCode : void 0;
35217
34837
  }
34838
+ var isTrue = (value) => value === "1" || value === "true";
34839
+ function readVisibility(node) {
34840
+ if (!node) {
34841
+ return void 0;
34842
+ }
34843
+ return {
34844
+ showVal: isTrue(node["@_value"]),
34845
+ showCatName: isTrue(node["@_categoryName"]),
34846
+ showSerName: isTrue(node["@_seriesName"])
34847
+ };
34848
+ }
35218
34849
  function parseCxDataLabels(ser, xmlLookup, colorParser, resolveTypeface) {
35219
34850
  const dlNode = xmlLookup.getChildByLocalName(ser, "dataLabels");
35220
34851
  if (!dlNode) {
35221
34852
  return void 0;
35222
34853
  }
35223
- const visibility = {};
35224
- const visNode = xmlLookup.getChildByLocalName(dlNode, "visibility");
35225
- if (visNode) {
35226
- visibility.showVal = visNode["@_value"] === "1" || visNode["@_value"] === "true";
35227
- visibility.showCatName = visNode["@_categoryName"] === "1" || visNode["@_categoryName"] === "true";
35228
- visibility.showSerName = visNode["@_seriesName"] === "1" || visNode["@_seriesName"] === "true";
35229
- }
34854
+ const visibility = readVisibility(xmlLookup.getChildByLocalName(dlNode, "visibility")) ?? {};
35230
34855
  const options = {};
35231
34856
  const groupPos = cxPosition(dlNode["@_pos"]);
35232
34857
  if (groupPos) {
@@ -35251,11 +34876,13 @@ function parseCxDataLabels(ser, xmlLookup, colorParser, resolveTypeface) {
35251
34876
  const dlItems = xmlLookup.getChildrenArrayByLocalName(dlNode, "dataLabel");
35252
34877
  for (const dlItem of dlItems) {
35253
34878
  const idx = Number.parseInt(String(dlItem["@_idx"] || "0"), 10);
34879
+ const own = readVisibility(xmlLookup.getChildByLocalName(dlItem, "visibility"));
34880
+ const shown = own ?? visibility;
35254
34881
  const label = {
35255
34882
  idx,
35256
- showVal: visibility.showVal,
35257
- showCatName: visibility.showCatName,
35258
- showSerName: visibility.showSerName
34883
+ showVal: shown.showVal,
34884
+ showCatName: shown.showCatName,
34885
+ showSerName: shown.showSerName
35259
34886
  };
35260
34887
  const itemPos = cxPosition(dlItem["@_pos"]);
35261
34888
  if (itemPos) {
@@ -35308,7 +34935,7 @@ function parseCxHistogramOptions(series, xmlLookup) {
35308
34935
  }
35309
34936
  const layoutPr = xmlLookup.getChildByLocalName(series, "layoutPr");
35310
34937
  const binning = xmlLookup.getChildByLocalName(layoutPr, "binning");
35311
- const aggregation = xmlLookup.getChildByLocalName(layoutPr, "aggregation");
34938
+ const aggregation = layoutPr && hasLocalName(layoutPr, "aggregation") ? true : void 0;
35312
34939
  const rawBinSize = binningValue(binning, "binSize", xmlLookup);
35313
34940
  const rawBinCount = binningValue(binning, "binCount", xmlLookup);
35314
34941
  const binSize = Number.parseFloat(String(rawBinSize ?? ""));
@@ -35321,7 +34948,7 @@ function parseCxHistogramOptions(series, xmlLookup) {
35321
34948
  ...intervalClosed === "l" || intervalClosed === "r" ? { intervalClosed } : {},
35322
34949
  ...binning?.["@_underflow"] !== void 0 ? { underflow: parseDoubleOrAutomatic(binning["@_underflow"]) } : {},
35323
34950
  ...binning?.["@_overflow"] !== void 0 ? { overflow: parseDoubleOrAutomatic(binning["@_overflow"]) } : {},
35324
- ...aggregation !== void 0 ? { aggregateByCategory: true } : {}
34951
+ ...aggregation ? { aggregateByCategory: true } : {}
35325
34952
  };
35326
34953
  }
35327
34954
 
@@ -37583,7 +37210,7 @@ function ensureArray3(val) {
37583
37210
 
37584
37211
  // pptx/core/utils/model3d-scene-parser.ts
37585
37212
  var ANGLE_UNIT = 6e4;
37586
- function child9(node, ...names) {
37213
+ function child8(node, ...names) {
37587
37214
  if (!node) {
37588
37215
  return void 0;
37589
37216
  }
@@ -37614,7 +37241,7 @@ function num2(node, attr3) {
37614
37241
  return Number.isFinite(value) ? value : void 0;
37615
37242
  }
37616
37243
  function am(node, name) {
37617
- return child9(node, `am3d:${name}`, name);
37244
+ return child8(node, `am3d:${name}`, name);
37618
37245
  }
37619
37246
  function vec(node, keys) {
37620
37247
  if (!node) {
@@ -37638,12 +37265,12 @@ function ratio(node) {
37638
37265
  }
37639
37266
  function colour2(node) {
37640
37267
  const clr = am(node, "clr");
37641
- const srgb = child9(clr, "a:srgbClr");
37268
+ const srgb = child8(clr, "a:srgbClr");
37642
37269
  const val = srgb?.["@_val"];
37643
37270
  if (typeof val === "string" && /^[0-9a-f]{6}$/iu.test(val)) {
37644
37271
  return `#${val.toLowerCase()}`;
37645
37272
  }
37646
- const scrgb = child9(clr, "a:scrgbClr");
37273
+ const scrgb = child8(clr, "a:scrgbClr");
37647
37274
  if (scrgb) {
37648
37275
  const chan = (a) => {
37649
37276
  const pct = Math.min(1e5, Math.max(0, num2(scrgb, a) ?? 0)) / 1e5;
@@ -38488,8 +38115,8 @@ var BEFORE_KINSOKU = /* @__PURE__ */ new Set([
38488
38115
  "photoAlbum",
38489
38116
  "custDataLst"
38490
38117
  ]);
38491
- var localName8 = (key) => key.replace(/^@_/u, "").replace(/^.*:/u, "");
38492
- var findKey9 = (node, name) => Object.keys(node).find((key) => localName8(key) === name);
38118
+ var localName5 = (key) => key.replace(/^@_/u, "").replace(/^.*:/u, "");
38119
+ var findKey9 = (node, name) => Object.keys(node).find((key) => localName5(key) === name);
38493
38120
  function parseKinsoku(presentationXml) {
38494
38121
  if (!presentationXml) {
38495
38122
  return void 0;
@@ -38528,7 +38155,7 @@ function insertKinsoku(root, key, value) {
38528
38155
  const result = {};
38529
38156
  let inserted = false;
38530
38157
  for (const [childKey2, childValue] of Object.entries(root)) {
38531
- const name = localName8(childKey2);
38158
+ const name = localName5(childKey2);
38532
38159
  if (name === "kinsoku") {
38533
38160
  continue;
38534
38161
  }
@@ -39512,7 +39139,7 @@ function wrapFormatSchemeXml(fmtSchemeXml) {
39512
39139
  function keyOf2(node, name, localName14) {
39513
39140
  return Object.keys(node).find((key) => localName14(key) === name);
39514
39141
  }
39515
- function child10(node, name, localName14) {
39142
+ function child9(node, name, localName14) {
39516
39143
  const key = keyOf2(node, name, localName14);
39517
39144
  const value = key ? node[key] : void 0;
39518
39145
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
@@ -39541,8 +39168,8 @@ function parseRule2(node, localName14) {
39541
39168
  return parseRuleAttributes(reader(node, localName14), cloneXmlObject(node));
39542
39169
  }
39543
39170
  function parseSmartArtConstraintRules(node, localName14) {
39544
- const constraintList = child10(node, "constrLst", localName14);
39545
- const ruleList = child10(node, "ruleLst", localName14);
39171
+ const constraintList = child9(node, "constrLst", localName14);
39172
+ const ruleList = child9(node, "ruleLst", localName14);
39546
39173
  return {
39547
39174
  constraints: constraintList ? children4(constraintList, "constr", localName14).map(
39548
39175
  (item) => parseConstraint2(item, localName14)
@@ -39577,7 +39204,7 @@ function applySmartArtConstraintRules(node, value, localName14) {
39577
39204
  continue;
39578
39205
  }
39579
39206
  const listKey = keyOf2(node, listName, localName14) ?? `dgm:${listName}`;
39580
- const list2 = child10(node, listName, localName14) ?? {};
39207
+ const list2 = child9(node, listName, localName14) ?? {};
39581
39208
  const oldItems = children4(list2, itemName, localName14);
39582
39209
  const itemKey = keyOf2(list2, itemName, localName14) ?? `${itemPrefix(listKey)}${itemName}`;
39583
39210
  for (const key of Object.keys(list2)) {
@@ -39600,7 +39227,7 @@ function applySmartArtConstraintRules(node, value, localName14) {
39600
39227
  }
39601
39228
 
39602
39229
  // pptx/core/utils/smartart-layout-algorithm.ts
39603
- function child11(node, name, localName14) {
39230
+ function child10(node, name, localName14) {
39604
39231
  const key = Object.keys(node).find((candidate) => localName14(candidate) === name);
39605
39232
  const value = key ? node[key] : void 0;
39606
39233
  return Array.isArray(value) ? value[0] : value;
@@ -39618,7 +39245,7 @@ function optionalString3(value) {
39618
39245
  return result.length > 0 ? result : void 0;
39619
39246
  }
39620
39247
  function parseSmartArtLayoutAlgorithm(node, localName14) {
39621
- const algorithm = child11(node, "alg", localName14);
39248
+ const algorithm = child10(node, "alg", localName14);
39622
39249
  const type = algorithm ? optionalString3(algorithm["@_type"]) : void 0;
39623
39250
  if (!algorithm || !type) {
39624
39251
  return void 0;
@@ -40162,7 +39789,7 @@ function nestedLayoutNodes(node, localName14) {
40162
39789
  }
40163
39790
 
40164
39791
  // pptx/core/utils/smartart-layout-node-shape.ts
40165
- function child12(node, name, localName14) {
39792
+ function child11(node, name, localName14) {
40166
39793
  if (!node) {
40167
39794
  return void 0;
40168
39795
  }
@@ -40193,7 +39820,7 @@ function parseSmartArtLkTxEntry(shapeEl) {
40193
39820
  return raw === "1" || raw === "true";
40194
39821
  }
40195
39822
  function parseAdjustments(shapeEl, localName14) {
40196
- const adjLst = child12(shapeEl, "adjLst", localName14);
39823
+ const adjLst = child11(shapeEl, "adjLst", localName14);
40197
39824
  const adjustments = children9(adjLst, "adj", localName14).map((adj) => {
40198
39825
  const index = Number.parseInt(String(adj["@_idx"] ?? ""), 10);
40199
39826
  const value = Number.parseFloat(String(adj["@_val"] ?? ""));
@@ -40236,7 +39863,7 @@ function nestedShapes(node, localName14) {
40236
39863
  return found;
40237
39864
  }
40238
39865
  function parseSmartArtLayoutNodeShape(node, localName14) {
40239
- const shapeEl = child12(node, "shape", localName14) ?? nestedShapes(node, localName14)[0];
39866
+ const shapeEl = child11(node, "shape", localName14) ?? nestedShapes(node, localName14)[0];
40240
39867
  if (!shapeEl) {
40241
39868
  return void 0;
40242
39869
  }
@@ -40290,7 +39917,7 @@ function applySmartArtLayoutNodeShape(target, value, localName14) {
40290
39917
  }
40291
39918
 
40292
39919
  // pptx/core/utils/smartart-layout-definition.ts
40293
- function child13(node, name, localName14) {
39920
+ function child12(node, name, localName14) {
40294
39921
  if (!node) {
40295
39922
  return void 0;
40296
39923
  }
@@ -40361,11 +39988,11 @@ function parseNode(node, localName14) {
40361
39988
  };
40362
39989
  }
40363
39990
  function parseSmartArtLayoutDefinition(layoutDef, localName14) {
40364
- const root = child13(layoutDef, "layoutNode", localName14);
39991
+ const root = child12(layoutDef, "layoutNode", localName14);
40365
39992
  if (!layoutDef || !root) {
40366
39993
  return void 0;
40367
39994
  }
40368
- const catList = child13(layoutDef, "catLst", localName14);
39995
+ const catList = child12(layoutDef, "catLst", localName14);
40369
39996
  const categories = children10(catList, "cat", localName14).map((entry) => {
40370
39997
  const type = optionalString5(entry["@_type"]);
40371
39998
  const priority = Number(entry["@_pri"]);
@@ -40454,7 +40081,7 @@ function applySmartArtLayoutDefinition(target, value, localName14) {
40454
40081
  if (validateSmartArtLayoutDefinition(value).length > 0) {
40455
40082
  return false;
40456
40083
  }
40457
- const root = child13(target, "layoutNode", localName14);
40084
+ const root = child12(target, "layoutNode", localName14);
40458
40085
  if (!root) {
40459
40086
  return false;
40460
40087
  }
@@ -40464,7 +40091,7 @@ function applySmartArtLayoutDefinition(target, value, localName14) {
40464
40091
  applyLocalized(target, "title", value.titles, localName14);
40465
40092
  applyLocalized(target, "desc", value.descriptions, localName14);
40466
40093
  if (value.categories !== void 0) {
40467
- const list2 = child13(target, "catLst", localName14);
40094
+ const list2 = child12(target, "catLst", localName14);
40468
40095
  if (list2) {
40469
40096
  const key = Object.keys(list2).find((candidate) => localName14(candidate) === "cat") ?? "dgm:cat";
40470
40097
  const existing = children10(list2, "cat", localName14);
@@ -40494,7 +40121,7 @@ function children11(node, name, localName14) {
40494
40121
  }
40495
40122
  return value && typeof value === "object" ? [value] : [];
40496
40123
  }
40497
- function child14(node, name, localName14) {
40124
+ function child13(node, name, localName14) {
40498
40125
  return children11(node, name, localName14)[0];
40499
40126
  }
40500
40127
  function parseText(node, name, localName14) {
@@ -40505,7 +40132,7 @@ function parseText(node, name, localName14) {
40505
40132
  return values.length > 0 ? values : void 0;
40506
40133
  }
40507
40134
  function parseSmartArtDefinitionMetadata(node, localName14) {
40508
- const categoryList = child14(node, "catLst", localName14);
40135
+ const categoryList = child13(node, "catLst", localName14);
40509
40136
  const categories = children11(categoryList, "cat", localName14).map((item) => ({
40510
40137
  type: String(item["@_type"] ?? ""),
40511
40138
  priority: Number(item["@_pri"] ?? 0)
@@ -40525,14 +40152,14 @@ function parseSmartArtQuickStyleLabels(node, localName14) {
40525
40152
  return labels.length > 0 ? labels : void 0;
40526
40153
  }
40527
40154
  function parseSmartArtStyleLabelRefs(styleLbl, localName14) {
40528
- const style = child14(styleLbl, "style", localName14);
40155
+ const style = child13(styleLbl, "style", localName14);
40529
40156
  if (!style) {
40530
40157
  return void 0;
40531
40158
  }
40532
- const lnRef = child14(style, "lnRef", localName14);
40533
- const fillRef = child14(style, "fillRef", localName14);
40534
- const effectRef = child14(style, "effectRef", localName14);
40535
- const fontRef = child14(style, "fontRef", localName14);
40159
+ const lnRef = child13(style, "lnRef", localName14);
40160
+ const fillRef = child13(style, "fillRef", localName14);
40161
+ const effectRef = child13(style, "effectRef", localName14);
40162
+ const fontRef = child13(style, "fontRef", localName14);
40536
40163
  if (!lnRef && !fillRef && !effectRef && !fontRef) {
40537
40164
  return void 0;
40538
40165
  }
@@ -40544,7 +40171,7 @@ function parseSmartArtStyleLabelRefs(styleLbl, localName14) {
40544
40171
  };
40545
40172
  }
40546
40173
  function parseColorList(node, name, localName14) {
40547
- const list2 = child14(node, name, localName14);
40174
+ const list2 = child13(node, name, localName14);
40548
40175
  if (!list2) {
40549
40176
  return void 0;
40550
40177
  }
@@ -40570,6 +40197,191 @@ function parseSmartArtColorStyleLabels(node, localName14) {
40570
40197
  var COLOR_METHODS2 = /* @__PURE__ */ new Set(["span", "cycle", "repeat"]);
40571
40198
  var HUE_DIRECTIONS2 = /* @__PURE__ */ new Set(["cw", "ccw"]);
40572
40199
 
40200
+ // pptx/core/geometry/custom-geometry-command-order.ts
40201
+ var ORDER_SUFFIX = "#pptx-order-";
40202
+ var commandOrder = /* @__PURE__ */ new WeakMap();
40203
+ var PATH_COMMANDS = /* @__PURE__ */ new Set(["moveTo", "lnTo", "arcTo", "quadBezTo", "cubicBezTo", "close"]);
40204
+ function localName6(name) {
40205
+ const colon = name.indexOf(":");
40206
+ return colon >= 0 ? name.slice(colon + 1) : name;
40207
+ }
40208
+ function childByLocalName(node, name) {
40209
+ if (!node) {
40210
+ return void 0;
40211
+ }
40212
+ const key = Object.keys(node).find((candidate) => localName6(candidate) === name);
40213
+ return key ? node[key] : void 0;
40214
+ }
40215
+ function collectParsedPaths(root) {
40216
+ const paths = [];
40217
+ const stack = [root];
40218
+ while (stack.length > 0) {
40219
+ const current = stack.pop();
40220
+ if (!current || typeof current !== "object") {
40221
+ continue;
40222
+ }
40223
+ if (Array.isArray(current)) {
40224
+ for (let index = current.length - 1; index >= 0; index--) {
40225
+ stack.push(current[index]);
40226
+ }
40227
+ continue;
40228
+ }
40229
+ const node = current;
40230
+ for (const [key, value] of Object.entries(node).reverse()) {
40231
+ if (localName6(key) === "custGeom") {
40232
+ const pathList = childByLocalName(value, "pathLst");
40233
+ const rawPaths = childByLocalName(pathList, "path");
40234
+ paths.push(
40235
+ ...Array.isArray(rawPaths) ? rawPaths : rawPaths ? [rawPaths] : []
40236
+ );
40237
+ } else {
40238
+ stack.push(value);
40239
+ }
40240
+ }
40241
+ }
40242
+ return paths;
40243
+ }
40244
+ function extractSourceOrders(xml) {
40245
+ const orders = [];
40246
+ const custGeomPattern = /<([A-Za-z_][\w.-]*:)?custGeom\b[^>]*>([\s\S]*?)<\/\1custGeom\s*>/gu;
40247
+ for (const geometryMatch of xml.matchAll(custGeomPattern)) {
40248
+ const geometryXml = geometryMatch[2];
40249
+ const pathPattern = /<([A-Za-z_][\w.-]*:)?path\b[^>]*>([\s\S]*?)<\/\1path\s*>/gu;
40250
+ for (const pathMatch of geometryXml.matchAll(pathPattern)) {
40251
+ const order = [
40252
+ ...pathMatch[2].matchAll(/<\/?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)
40253
+ ].filter((match) => match[0][1] !== "/" && PATH_COMMANDS.has(match[2])).map((match) => match[2]);
40254
+ orders.push(order);
40255
+ }
40256
+ }
40257
+ return orders;
40258
+ }
40259
+ function ensureArrayLocal(value) {
40260
+ return Array.isArray(value) ? value : value === void 0 ? [] : [value];
40261
+ }
40262
+ function countsSignature(counts) {
40263
+ return [...counts.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([name, count]) => `${name}:${count}`).join(",");
40264
+ }
40265
+ function pathSignature(path) {
40266
+ const counts = /* @__PURE__ */ new Map();
40267
+ for (const key of Object.keys(path)) {
40268
+ const name = localName6(key);
40269
+ if (!PATH_COMMANDS.has(name)) {
40270
+ continue;
40271
+ }
40272
+ counts.set(name, (counts.get(name) ?? 0) + ensureArrayLocal(path[key]).length);
40273
+ }
40274
+ return countsSignature(counts);
40275
+ }
40276
+ function orderSignature(order) {
40277
+ const counts = /* @__PURE__ */ new Map();
40278
+ for (const name of order) {
40279
+ counts.set(name, (counts.get(name) ?? 0) + 1);
40280
+ }
40281
+ return countsSignature(counts);
40282
+ }
40283
+ function annotateCustomGeometryCommandOrder(xml, parsed) {
40284
+ const orders = extractSourceOrders(xml);
40285
+ if (orders.length === 0) {
40286
+ return;
40287
+ }
40288
+ const paths = collectParsedPaths(parsed);
40289
+ const ordersBySignature = /* @__PURE__ */ new Map();
40290
+ for (const order of orders) {
40291
+ const signature = orderSignature(order);
40292
+ const bucket = ordersBySignature.get(signature);
40293
+ if (bucket) {
40294
+ bucket.push(order);
40295
+ } else {
40296
+ ordersBySignature.set(signature, [order]);
40297
+ }
40298
+ }
40299
+ for (const path of paths) {
40300
+ const bucket = ordersBySignature.get(pathSignature(path));
40301
+ const order = bucket?.shift();
40302
+ if (order) {
40303
+ commandOrder.set(path, order);
40304
+ }
40305
+ }
40306
+ }
40307
+ function orderedPathCommandEntries(path, ensureArray8) {
40308
+ const commandItems = (key) => {
40309
+ const value = path[key];
40310
+ const items = ensureArray8(value);
40311
+ return items.length === 0 && localName6(key) === "close" && value !== void 0 ? [value] : items;
40312
+ };
40313
+ const order = commandOrder.get(path);
40314
+ if (!order) {
40315
+ return Object.keys(path).flatMap(
40316
+ (key) => key.startsWith("@_") ? [] : commandItems(key).map((item) => [key, item])
40317
+ );
40318
+ }
40319
+ const consumed = /* @__PURE__ */ new Map();
40320
+ return order.flatMap((name) => {
40321
+ const key = Object.keys(path).find((candidate) => localName6(candidate) === name);
40322
+ if (!key) {
40323
+ return [];
40324
+ }
40325
+ const items = commandItems(key);
40326
+ const index = consumed.get(key) ?? 0;
40327
+ consumed.set(key, index + 1);
40328
+ return index < items.length ? [[key, items[index]]] : [];
40329
+ });
40330
+ }
40331
+ function inheritCustomGeometryCommandOrder(target, ...sources) {
40332
+ let targetSignature;
40333
+ for (const source of sources) {
40334
+ if (!source) {
40335
+ continue;
40336
+ }
40337
+ const order = commandOrder.get(source);
40338
+ if (!order) {
40339
+ continue;
40340
+ }
40341
+ targetSignature ??= pathSignature(target);
40342
+ if (orderSignature(order) === targetSignature) {
40343
+ commandOrder.set(target, [...order]);
40344
+ return;
40345
+ }
40346
+ }
40347
+ }
40348
+ function pathListPaths(pathLst) {
40349
+ if (!pathLst || typeof pathLst !== "object") {
40350
+ return [];
40351
+ }
40352
+ return ensureArrayLocal(childByLocalName(pathLst, "path")).filter(
40353
+ (path) => Boolean(path) && typeof path === "object"
40354
+ );
40355
+ }
40356
+ function readPathListCommandOrder(pathLst) {
40357
+ const orders = pathListPaths(pathLst).map((path) => [...commandOrder.get(path) ?? []]);
40358
+ return orders.some((order) => order.length > 0) ? orders : void 0;
40359
+ }
40360
+ function restorePathListCommandOrder(pathLst, orders) {
40361
+ if (!orders || orders.length === 0) {
40362
+ return;
40363
+ }
40364
+ pathListPaths(pathLst).forEach((path, index) => {
40365
+ const order = orders[index];
40366
+ if (!order || order.length === 0 || commandOrder.has(path)) {
40367
+ return;
40368
+ }
40369
+ if (orderSignature([...order]) === pathSignature(path)) {
40370
+ commandOrder.set(path, [...order]);
40371
+ }
40372
+ });
40373
+ }
40374
+ function orderedXmlKey(baseName, order) {
40375
+ return `${baseName}${ORDER_SUFFIX}${order}`;
40376
+ }
40377
+ function stripXmlOrderSuffix(tagName) {
40378
+ const index = tagName.indexOf(ORDER_SUFFIX);
40379
+ return index >= 0 ? tagName.slice(0, index) : tagName;
40380
+ }
40381
+ function stripXmlOrderMarkers(xml) {
40382
+ return xml.replace(/#pptx-order-\d+/gu, "");
40383
+ }
40384
+
40573
40385
  // pptx/core/geometry/custom-geometry.ts
40574
40386
  function svgToCustomGeometryPaths(pathData, width, height) {
40575
40387
  const segments = [];
@@ -40975,11 +40787,11 @@ function serializeEffectDagContainerNode(container2) {
40975
40787
  xml["@_name"] = container2.name;
40976
40788
  }
40977
40789
  for (const child16 of container2.children) {
40978
- appendChild2(xml, child16);
40790
+ appendChild(xml, child16);
40979
40791
  }
40980
40792
  return xml;
40981
40793
  }
40982
- function appendChild2(parent, child16) {
40794
+ function appendChild(parent, child16) {
40983
40795
  if (child16.kind === "cont") {
40984
40796
  push(parent, "a:cont", serializeEffectDagContainerNode(child16));
40985
40797
  } else if (child16.kind === "blend") {
@@ -40998,7 +40810,7 @@ function appendChild2(parent, child16) {
40998
40810
  } else if (child16.kind === "prstShdw") {
40999
40811
  push(parent, "a:prstShdw", serializeEffectDagPresetShadow(child16));
41000
40812
  } else {
41001
- push(parent, `a:${localName9(child16.tag)}`, child16.xml);
40813
+ push(parent, `a:${localName7(child16.tag)}`, child16.xml);
41002
40814
  }
41003
40815
  }
41004
40816
  function numericAttributes(source, names) {
@@ -41021,7 +40833,7 @@ function push(parent, key, value) {
41021
40833
  parent[key] = [previous, value];
41022
40834
  }
41023
40835
  }
41024
- function localName9(name) {
40836
+ function localName7(name) {
41025
40837
  return name.includes(":") ? name.slice(name.indexOf(":") + 1) : name;
41026
40838
  }
41027
40839
 
@@ -41086,7 +40898,7 @@ function parseChild(tag, value) {
41086
40898
  if (value === null || value === void 0) {
41087
40899
  return void 0;
41088
40900
  }
41089
- const localTag = localName10(tag);
40901
+ const localTag = localName8(tag);
41090
40902
  if (localTag === "cont") {
41091
40903
  return parseEffectDagContainer(value);
41092
40904
  }
@@ -41199,26 +41011,26 @@ function ensureArray6(value) {
41199
41011
  }
41200
41012
  return Array.isArray(value) ? value : [value];
41201
41013
  }
41202
- function localName10(name) {
41014
+ function localName8(name) {
41203
41015
  return name.includes(":") ? name.slice(name.indexOf(":") + 1) : name;
41204
41016
  }
41205
41017
  function childByLocalName2(xml, name) {
41206
41018
  const match = Object.entries(xml).find(
41207
- ([key]) => !key.startsWith("@_") && localName10(key) === name
41019
+ ([key]) => !key.startsWith("@_") && localName8(key) === name
41208
41020
  );
41209
41021
  return match?.[1];
41210
41022
  }
41211
41023
 
41212
41024
  // pptx/core/core/builders/effect-list-roundtrip.ts
41213
41025
  var COLOR_NAMES = /* @__PURE__ */ new Set(["srgbClr", "schemeClr", "sysClr", "prstClr", "scrgbClr", "hslClr"]);
41214
- function localName11(key) {
41026
+ function localName9(key) {
41215
41027
  return key.split(":").at(-1) ?? key;
41216
41028
  }
41217
41029
  function effectChild(parent, name) {
41218
41030
  if (!parent) {
41219
41031
  return void 0;
41220
41032
  }
41221
- const key = Object.keys(parent).find((candidate) => localName11(candidate) === name);
41033
+ const key = Object.keys(parent).find((candidate) => localName9(candidate) === name);
41222
41034
  const value = key ? parent[key] : void 0;
41223
41035
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
41224
41036
  }
@@ -41230,7 +41042,7 @@ function mergeEffectNode(original, generated, originalResolvedColor, currentColo
41230
41042
  }
41231
41043
  }
41232
41044
  for (const key of Object.keys(merged)) {
41233
- if (COLOR_NAMES.has(localName11(key))) {
41045
+ if (COLOR_NAMES.has(localName9(key))) {
41234
41046
  delete merged[key];
41235
41047
  }
41236
41048
  }
@@ -41253,7 +41065,7 @@ function createEffectList(style, spPr) {
41253
41065
  return { ...style.effectListXml ?? effectChild(spPr, "effectLst") ?? {} };
41254
41066
  }
41255
41067
  function setEffectChild(list2, name, value) {
41256
- const existing = Object.keys(list2).find((key) => localName11(key) === name);
41068
+ const existing = Object.keys(list2).find((key) => localName9(key) === name);
41257
41069
  if (existing) {
41258
41070
  delete list2[existing];
41259
41071
  }
@@ -41769,12 +41581,12 @@ function drawingShape3dXml(shape) {
41769
41581
  }
41770
41582
 
41771
41583
  // pptx/core/core/runtime/smartart-style-xml.ts
41772
- function localName12(key) {
41584
+ function localName10(key) {
41773
41585
  const idx = key.indexOf(":");
41774
41586
  return idx >= 0 ? key.slice(idx + 1) : key;
41775
41587
  }
41776
41588
  function findKey10(obj, local) {
41777
- return Object.keys(obj).find((k) => localName12(k) === local);
41589
+ return Object.keys(obj).find((k) => localName10(k) === local);
41778
41590
  }
41779
41591
  function ensureChild(obj, local, prefixedFallback) {
41780
41592
  const key = findKey10(obj, local) ?? prefixedFallback;
@@ -41864,6 +41676,357 @@ function applySmartArtNodeStyleToPoint(pt, style) {
41864
41676
  applyRunStyle(pt, style);
41865
41677
  }
41866
41678
 
41679
+ // pptx/core/core/runtime/smartart-text-order.ts
41680
+ var childOrder = /* @__PURE__ */ new WeakMap();
41681
+ function localName11(name) {
41682
+ const colon = name.indexOf(":");
41683
+ return colon >= 0 ? name.slice(colon + 1) : name;
41684
+ }
41685
+ function isXmlObject2(value) {
41686
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
41687
+ }
41688
+ function collectParsedParagraphs(root) {
41689
+ const paragraphs = [];
41690
+ const stack = [root];
41691
+ while (stack.length > 0) {
41692
+ const current = stack.pop();
41693
+ if (!current || typeof current !== "object") {
41694
+ continue;
41695
+ }
41696
+ if (Array.isArray(current)) {
41697
+ for (let index = current.length - 1; index >= 0; index--) {
41698
+ stack.push(current[index]);
41699
+ }
41700
+ continue;
41701
+ }
41702
+ const node = current;
41703
+ for (const [key, value] of Object.entries(node).reverse()) {
41704
+ if ((localName11(key) === "t" || localName11(key) === "txBody") && value && typeof value === "object") {
41705
+ for (const [childKey2, childValue] of Object.entries(value)) {
41706
+ if (localName11(childKey2) !== "p") {
41707
+ continue;
41708
+ }
41709
+ paragraphs.push(
41710
+ ...(Array.isArray(childValue) ? childValue : [childValue]).filter(isXmlObject2)
41711
+ );
41712
+ }
41713
+ } else {
41714
+ stack.push(value);
41715
+ }
41716
+ }
41717
+ }
41718
+ return paragraphs;
41719
+ }
41720
+ function directChildOrder(xml) {
41721
+ const order = [];
41722
+ let depth = 0;
41723
+ for (const match of xml.matchAll(/<(\/)?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)) {
41724
+ const closing = Boolean(match[1]);
41725
+ const selfClosing = /\/\s*>$/u.test(match[0]);
41726
+ if (closing) {
41727
+ depth = Math.max(0, depth - 1);
41728
+ continue;
41729
+ }
41730
+ if (depth === 0) {
41731
+ order.push(match[3]);
41732
+ }
41733
+ if (!selfClosing) {
41734
+ depth++;
41735
+ }
41736
+ }
41737
+ return order;
41738
+ }
41739
+ function extractElementOrders(xml, elementName) {
41740
+ const orders = [];
41741
+ const pattern = new RegExp(
41742
+ `<([A-Za-z_][\\w.-]*:)?${elementName}(?=[\\s/>])[^>]*>([\\s\\S]*?)<\\/\\1${elementName}\\s*>`,
41743
+ "gu"
41744
+ );
41745
+ for (const match of xml.matchAll(pattern)) {
41746
+ orders.push(directChildOrder(match[2]));
41747
+ }
41748
+ return orders;
41749
+ }
41750
+ function directChildrenByLocalName(paragraphs, name) {
41751
+ return paragraphs.flatMap(
41752
+ (paragraph) => Object.entries(paragraph).flatMap(([key, value]) => {
41753
+ if (localName11(key) !== name) {
41754
+ return [];
41755
+ }
41756
+ const values = Array.isArray(value) ? value : [value];
41757
+ return values.filter(isXmlObject2);
41758
+ })
41759
+ );
41760
+ }
41761
+ function annotateSmartArtTextOrder(xml, parsed) {
41762
+ const paragraphs = collectParsedParagraphs(parsed);
41763
+ const orders = extractElementOrders(xml, "p");
41764
+ for (let index = 0; index < Math.min(orders.length, paragraphs.length); index++) {
41765
+ childOrder.set(paragraphs[index], orders[index]);
41766
+ }
41767
+ for (const name of ["r", "fld", "br"]) {
41768
+ const nodes = directChildrenByLocalName(paragraphs, name);
41769
+ const nodeOrders = extractElementOrders(xml, name);
41770
+ for (let index = 0; index < Math.min(nodeOrders.length, nodes.length); index++) {
41771
+ childOrder.set(nodes[index], nodeOrders[index]);
41772
+ }
41773
+ }
41774
+ }
41775
+ function smartArtChildOrder(node) {
41776
+ return childOrder.get(node)?.slice();
41777
+ }
41778
+ function orderedSmartArtTextEntries(paragraph) {
41779
+ const keysByName = /* @__PURE__ */ new Map();
41780
+ for (const key of Object.keys(paragraph)) {
41781
+ if (!key.startsWith("@_")) {
41782
+ keysByName.set(localName11(key), key);
41783
+ }
41784
+ }
41785
+ const itemsFor = (key) => {
41786
+ const value = paragraph[key];
41787
+ return Array.isArray(value) ? value : value === void 0 ? [] : [value];
41788
+ };
41789
+ const order = childOrder.get(paragraph);
41790
+ if (!order) {
41791
+ return [...keysByName.values()].flatMap(
41792
+ (key) => itemsFor(key).map((item) => [key, item])
41793
+ );
41794
+ }
41795
+ const consumed = /* @__PURE__ */ new Map();
41796
+ return order.flatMap((name) => {
41797
+ const key = keysByName.get(name);
41798
+ if (!key) {
41799
+ return [];
41800
+ }
41801
+ const index = consumed.get(key) ?? 0;
41802
+ consumed.set(key, index + 1);
41803
+ const item = itemsFor(key)[index];
41804
+ return item === void 0 ? [] : [[key, item]];
41805
+ });
41806
+ }
41807
+
41808
+ // pptx/core/core/runtime/smartart-text-paragraphs.ts
41809
+ function localName12(name) {
41810
+ const colon = name.indexOf(":");
41811
+ return colon >= 0 ? name.slice(colon + 1) : name;
41812
+ }
41813
+ function keyFor(node, name) {
41814
+ return Object.keys(node).find((key) => localName12(key) === name);
41815
+ }
41816
+ function child14(node, name) {
41817
+ const key = keyFor(node, name);
41818
+ const value = key ? node[key] : void 0;
41819
+ if (key && (value === "" || value === void 0)) {
41820
+ return {};
41821
+ }
41822
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
41823
+ }
41824
+ function clone2(value) {
41825
+ return JSON.parse(JSON.stringify(value));
41826
+ }
41827
+ function directText(node) {
41828
+ const key = keyFor(node, "t");
41829
+ const value = key ? node[key] : void 0;
41830
+ return value === void 0 || value === null ? "" : String(value);
41831
+ }
41832
+ function parseItem(key, rawValue) {
41833
+ const name = localName12(key);
41834
+ if (!["r", "br", "fld", "tab"].includes(name)) {
41835
+ return { kind: "raw", name: key, value: clone2(rawValue) };
41836
+ }
41837
+ const raw = rawValue && typeof rawValue === "object" && !Array.isArray(rawValue) ? rawValue : {};
41838
+ if (name === "r") {
41839
+ const run = {
41840
+ text: directText(raw),
41841
+ rawXml: clone2(raw),
41842
+ childOrder: smartArtChildOrder(raw)
41843
+ };
41844
+ const rPr = child14(raw, "rPr");
41845
+ if (rPr) {
41846
+ run.rPr = clone2(rPr);
41847
+ }
41848
+ return { kind: "run", run };
41849
+ }
41850
+ if (name === "br") {
41851
+ const rPr = child14(raw, "rPr");
41852
+ return {
41853
+ kind: "break",
41854
+ ...rPr ? { rPr: clone2(rPr) } : {},
41855
+ rawXml: clone2(raw),
41856
+ childOrder: smartArtChildOrder(raw)
41857
+ };
41858
+ }
41859
+ if (name === "fld") {
41860
+ const rPr = child14(raw, "rPr");
41861
+ const pPr = child14(raw, "pPr");
41862
+ return {
41863
+ kind: "field",
41864
+ ...raw["@_id"] ? { id: String(raw["@_id"]) } : {},
41865
+ ...raw["@_type"] ? { fieldType: String(raw["@_type"]) } : {},
41866
+ text: directText(raw),
41867
+ ...rPr ? { rPr: clone2(rPr) } : {},
41868
+ ...pPr ? { pPr: clone2(pPr) } : {},
41869
+ rawXml: clone2(raw),
41870
+ childOrder: smartArtChildOrder(raw)
41871
+ };
41872
+ }
41873
+ if (name === "tab") {
41874
+ return { kind: "tab", rawXml: clone2(raw), childOrder: smartArtChildOrder(raw) };
41875
+ }
41876
+ return { kind: "raw", name: key, value: clone2(rawValue) };
41877
+ }
41878
+ function parseSmartArtTextParagraphs(point2) {
41879
+ const body = child14(point2, "t");
41880
+ if (!body) {
41881
+ return void 0;
41882
+ }
41883
+ const pKey = keyFor(body, "p");
41884
+ const raw = pKey ? body[pKey] : void 0;
41885
+ const paragraphNodes = Array.isArray(raw) ? raw : raw ? [raw] : [];
41886
+ if (paragraphNodes.length === 0) {
41887
+ return void 0;
41888
+ }
41889
+ return paragraphNodes.map((paragraph) => {
41890
+ const pPr = child14(paragraph, "pPr");
41891
+ const endParaRPr = child14(paragraph, "endParaRPr");
41892
+ return {
41893
+ ...pPr ? { pPr: clone2(pPr) } : {},
41894
+ items: orderedSmartArtTextEntries(paragraph).flatMap(
41895
+ ([key, item]) => ["pPr", "endParaRPr"].includes(localName12(key)) ? [] : [parseItem(key, item)]
41896
+ ),
41897
+ ...endParaRPr ? { endParaRPr: clone2(endParaRPr) } : {},
41898
+ rawXml: clone2(paragraph)
41899
+ };
41900
+ });
41901
+ }
41902
+ function smartArtParagraphsText(paragraphs) {
41903
+ return diagramParagraphsText(paragraphs);
41904
+ }
41905
+ function firstParagraphRuns(paragraphs) {
41906
+ return firstDiagramParagraphRuns(paragraphs);
41907
+ }
41908
+ function objectWithAttributes(raw) {
41909
+ return Object.fromEntries(
41910
+ Object.entries(raw ?? {}).filter(([key]) => key.startsWith("@_"))
41911
+ );
41912
+ }
41913
+ function appendChild2(target, name, value, order) {
41914
+ const seen = Object.keys(target).some((key) => key === name || key.startsWith(`${name}#`));
41915
+ target[seen ? orderedXmlKey(name, order) : name] = value;
41916
+ }
41917
+ function buildOrderedContainer(raw, order, replacements) {
41918
+ const xml = objectWithAttributes(raw);
41919
+ const keys = /* @__PURE__ */ new Map();
41920
+ for (const key of Object.keys(raw ?? {})) {
41921
+ if (!key.startsWith("@_")) {
41922
+ keys.set(localName12(key), key);
41923
+ }
41924
+ }
41925
+ const values = (name) => {
41926
+ const key = keys.get(name);
41927
+ const value = key ? raw?.[key] : void 0;
41928
+ return Array.isArray(value) ? value : value === void 0 ? [] : [value];
41929
+ };
41930
+ const derivedOrder = order ?? [...keys.keys()].flatMap((name) => values(name).map(() => name));
41931
+ const replacementMap = new Map(
41932
+ replacements.map(([name, value]) => [localName12(name), [name, value]])
41933
+ );
41934
+ const emittedReplacements = /* @__PURE__ */ new Set();
41935
+ const consumed = /* @__PURE__ */ new Map();
41936
+ let outputOrder = 0;
41937
+ for (const name of derivedOrder) {
41938
+ const replacement = replacementMap.get(name);
41939
+ if (replacement && !emittedReplacements.has(name)) {
41940
+ appendChild2(xml, replacement[0], replacement[1], outputOrder++);
41941
+ emittedReplacements.add(name);
41942
+ continue;
41943
+ }
41944
+ const index = consumed.get(name) ?? 0;
41945
+ const value = values(name)[index];
41946
+ consumed.set(name, index + 1);
41947
+ const key = keys.get(name);
41948
+ if (key && value !== void 0) {
41949
+ appendChild2(xml, key, clone2(value), outputOrder++);
41950
+ }
41951
+ }
41952
+ for (const [name, value] of replacements) {
41953
+ if (!emittedReplacements.has(localName12(name))) {
41954
+ appendChild2(xml, name, value, outputOrder++);
41955
+ }
41956
+ }
41957
+ return xml;
41958
+ }
41959
+ function buildItem(item) {
41960
+ if (item.kind === "run") {
41961
+ return [
41962
+ "a:r",
41963
+ buildOrderedContainer(item.run.rawXml, item.run.childOrder, [
41964
+ ["a:rPr", item.run.rPr ?? { "@_lang": "en-US" }],
41965
+ ["a:t", item.run.text]
41966
+ ])
41967
+ ];
41968
+ }
41969
+ if (item.kind === "break") {
41970
+ return [
41971
+ "a:br",
41972
+ buildOrderedContainer(
41973
+ item.rawXml,
41974
+ item.childOrder,
41975
+ item.rPr ? [["a:rPr", item.rPr]] : []
41976
+ )
41977
+ ];
41978
+ }
41979
+ if (item.kind === "field") {
41980
+ const replacements = [];
41981
+ if (item.rPr) {
41982
+ replacements.push(["a:rPr", item.rPr]);
41983
+ }
41984
+ if (item.pPr) {
41985
+ replacements.push(["a:pPr", item.pPr]);
41986
+ }
41987
+ replacements.push(["a:t", item.text]);
41988
+ const xml = buildOrderedContainer(
41989
+ item.rawXml,
41990
+ item.childOrder,
41991
+ replacements
41992
+ );
41993
+ if (item.id) {
41994
+ xml["@_id"] = item.id;
41995
+ }
41996
+ if (item.fieldType) {
41997
+ xml["@_type"] = item.fieldType;
41998
+ }
41999
+ return ["a:fld", xml];
42000
+ }
42001
+ if (item.kind === "tab") {
42002
+ return [
42003
+ "a:tab",
42004
+ buildOrderedContainer(item.rawXml, item.childOrder, [])
42005
+ ];
42006
+ }
42007
+ return [item.name, clone2(item.value)];
42008
+ }
42009
+ function buildSmartArtTextParagraph(paragraph) {
42010
+ const xml = objectWithAttributes(paragraph.rawXml);
42011
+ if (paragraph.pPr) {
42012
+ xml["a:pPr"] = paragraph.pPr;
42013
+ }
42014
+ let order = 0;
42015
+ for (const item of paragraph.items) {
42016
+ const [name, value] = buildItem(item);
42017
+ appendChild2(xml, name, value, order++);
42018
+ }
42019
+ if (paragraph.endParaRPr) {
42020
+ xml["a:endParaRPr"] = paragraph.endParaRPr;
42021
+ }
42022
+ return xml;
42023
+ }
42024
+
42025
+ // pptx/core/core/runtime/smartart-text-reconciliation.ts
42026
+ function reconcileSmartArtTextParagraphs(paragraphs, desired) {
42027
+ return reconcileDiagramTextParagraphs(paragraphs, desired);
42028
+ }
42029
+
41867
42030
  // pptx/core/core/runtime/smartart-xml-builders.ts
41868
42031
  var NON_CONTENT_POINT_TYPES = /* @__PURE__ */ new Set([
41869
42032
  "doc",
@@ -42134,99 +42297,14 @@ function mergeSmartArtConnectionXml(existingCxns, connections) {
42134
42297
  }
42135
42298
 
42136
42299
  // pptx/core/core/runtime/smartart-fabrication-data.ts
42137
- var XML_PROLOG = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
42138
- var DGM_XMLNS = 'xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"';
42139
- function xmlEscape(value) {
42140
- return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&apos;");
42141
- }
42142
- function avLstXml(adjustments) {
42143
- const entries = Object.entries(adjustments ?? {}).filter(([, v]) => Number.isFinite(v));
42144
- if (entries.length === 0) {
42145
- return "<a:avLst/>";
42146
- }
42147
- const gds = entries.map(([name, v]) => `<a:gd name="${xmlEscape(name)}" fmla="val ${Math.round(v)}"/>`).join("");
42148
- return `<a:avLst>${gds}</a:avLst>`;
42149
- }
42150
- var GUID_MODEL_ID = /^\{[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}\}$/u;
42151
- var EMPTY_TEXT_BODY = '<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:endParaRPr lang="en-US"/></a:p></dgm:t>';
42152
- function contentTextBody(text2) {
42153
- if (!text2) {
42154
- return EMPTY_TEXT_BODY;
42155
- }
42156
- return `<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US"/><a:t>${xmlEscape(text2)}</a:t></a:r></a:p></dgm:t>`;
42157
- }
42158
- function contentPointXml(guid, node) {
42159
- const prSet = node.text ? "<dgm:prSet/>" : '<dgm:prSet phldrT="[Text]" phldr="1"/>';
42160
- const typeAttr = node.nodeType === "asst" ? ' type="asst"' : "";
42161
- return `<dgm:pt modelId="${guid}"${typeAttr}>${prSet}<dgm:spPr/>${contentTextBody(node.text ?? "")}</dgm:pt>`;
42162
- }
42163
- function transPointXml(guid, type, cxnGuid) {
42164
- return `<dgm:pt modelId="${guid}" type="${type}" cxnId="${cxnGuid}"><dgm:prSet/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
42165
- }
42166
- function docPointXml(docGuid, ids) {
42167
- return `<dgm:pt modelId="${docGuid}" type="doc"><dgm:prSet loTypeId="${xmlEscape(ids.layoutUniqueId)}" loCatId="${xmlEscape(ids.layoutCategory)}" qsTypeId="${xmlEscape(ids.quickStyleUniqueId)}" qsCatId="simple" csTypeId="${xmlEscape(ids.colorsUniqueId)}" csCatId="${xmlEscape(ids.colorsCategory)}"/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
42168
- }
42169
42300
  function buildNodeGuidMap(nodes) {
42170
- const guidByNodeId = /* @__PURE__ */ new Map();
42171
- for (const node of nodes) {
42172
- if (node.id && !guidByNodeId.has(node.id)) {
42173
- guidByNodeId.set(node.id, GUID_MODEL_ID.test(node.id) ? node.id : newSmartArtGuid());
42174
- }
42175
- }
42176
- return guidByNodeId;
42301
+ return buildDiagramNodeGuidMap(nodes, newSmartArtGuid);
42177
42302
  }
42178
42303
  function buildPresentationGuidMap(nodes) {
42179
- const guidByNodeId = /* @__PURE__ */ new Map();
42180
- for (const node of nodes) {
42181
- if (node.id && !guidByNodeId.has(node.id)) {
42182
- guidByNodeId.set(node.id, newSmartArtGuid());
42183
- }
42184
- }
42185
- return guidByNodeId;
42304
+ return buildDiagramPresentationGuidMap(nodes, newSmartArtGuid);
42186
42305
  }
42187
- var DSP_DATA_MODEL_EXT_URI = "http://schemas.microsoft.com/office/drawing/2008/diagram";
42188
42306
  function buildFabricatedDiagramDataXml(data, ids, options = {}) {
42189
- const docGuid = newSmartArtGuid();
42190
- const guidByNodeId = options.guidByNodeId ?? buildNodeGuidMap(data.nodes);
42191
- const presentationGuidByNodeId = options.presentationGuidByNodeId ?? buildPresentationGuidMap(data.nodes);
42192
- const points = [docPointXml(docGuid, ids)];
42193
- const connections = [];
42194
- const nextSrcOrd = /* @__PURE__ */ new Map();
42195
- for (const node of data.nodes) {
42196
- const guid = node.id ? guidByNodeId.get(node.id) : void 0;
42197
- if (!guid) {
42198
- continue;
42199
- }
42200
- const parentGuid = node.parentId && guidByNodeId.get(node.parentId) || docGuid;
42201
- const srcOrd = nextSrcOrd.get(parentGuid) ?? 0;
42202
- nextSrcOrd.set(parentGuid, srcOrd + 1);
42203
- const cxnGuid = newSmartArtGuid();
42204
- const parTransGuid = newSmartArtGuid();
42205
- const sibTransGuid = newSmartArtGuid();
42206
- points.push(contentPointXml(guid, node));
42207
- points.push(transPointXml(parTransGuid, "parTrans", cxnGuid));
42208
- points.push(transPointXml(sibTransGuid, "sibTrans", cxnGuid));
42209
- connections.push(
42210
- `<dgm:cxn modelId="${cxnGuid}" srcId="${parentGuid}" destId="${guid}" srcOrd="${srcOrd}" destOrd="0" parTransId="${parTransGuid}" sibTransId="${sibTransGuid}"/>`
42211
- );
42212
- const presentationGuid = node.id ? presentationGuidByNodeId.get(node.id) : void 0;
42213
- if (presentationGuid) {
42214
- points.push(
42215
- `<dgm:pt modelId="${presentationGuid}" type="pres"><dgm:prSet presAssocID="${guid}" presName="node" presStyleLbl="node1" presStyleIdx="${srcOrd}" presStyleCnt="${data.nodes.length}"/><dgm:spPr/></dgm:pt>`
42216
- );
42217
- connections.push(
42218
- `<dgm:cxn modelId="${newSmartArtGuid()}" type="presOf" srcId="${guid}" destId="${presentationGuid}" srcOrd="0" destOrd="0" presId="${xmlEscape(ids.layoutUniqueId)}"/>`
42219
- );
42220
- }
42221
- }
42222
- return `${XML_PROLOG}\r
42223
- <dgm:dataModel ${DGM_XMLNS}><dgm:ptLst>${points.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/>${dataModelExtXml(options.drawingRelId)}</dgm:dataModel>`;
42224
- }
42225
- function dataModelExtXml(drawingRelId) {
42226
- if (!drawingRelId) {
42227
- return "";
42228
- }
42229
- return `<dgm:extLst><a:ext uri="${DSP_DATA_MODEL_EXT_URI}"><dsp:dataModelExt xmlns:dsp="${DSP_DATA_MODEL_EXT_URI}" relId="${xmlEscape(drawingRelId)}" minVer="http://schemas.openxmlformats.org/drawingml/2006/diagram"/></a:ext></dgm:extLst>`;
42307
+ return writeFabricatedDiagramData(data, ids, { createModelId: newSmartArtGuid, ...options });
42230
42308
  }
42231
42309
 
42232
42310
  // pptx/core/utils/text-body-sp3d-writer.ts
@@ -42576,7 +42654,7 @@ function shapePropsXml(shape) {
42576
42654
  }
42577
42655
  )
42578
42656
  })
42579
- ) : `<a:prstGeom prst="${xmlEscape(prst)}">${avLstXml(shape.shapeAdjustments)}</a:prstGeom>`;
42657
+ ) : `<a:prstGeom prst="${escapeDiagramXml(prst)}">${diagramAvLstXml(shape.shapeAdjustments)}</a:prstGeom>`;
42580
42658
  const fillHex = normalizeHex4(shape.fillColor);
42581
42659
  const fillAlpha = shape.fillOpacity !== void 0 && shape.fillOpacity < 1 ? `<a:alpha val="${Math.round(Math.max(0, shape.fillOpacity) * 1e5)}"/>` : "";
42582
42660
  const fill = fillHex ? fillAlpha ? `<a:solidFill><a:srgbClr val="${fillHex}">${fillAlpha}</a:srgbClr></a:solidFill>` : `<a:solidFill><a:srgbClr val="${fillHex}"/></a:solidFill>` : "";
@@ -42600,7 +42678,7 @@ function buildFabricatedDrawingXml(shapes, nodes, presentationGuidByNodeId) {
42600
42678
  if (!body) {
42601
42679
  return void 0;
42602
42680
  }
42603
- return `${XML_PROLOG}\r
42681
+ return `${DIAGRAM_XML_PROLOG}\r
42604
42682
  <dsp:drawing ${DSP_XMLNS}><dsp:spTree><dsp:nvGrpSpPr><dsp:cNvPr id="0" name=""/><dsp:cNvGrpSpPr/></dsp:nvGrpSpPr><dsp:grpSpPr/>${body}</dsp:spTree></dsp:drawing>`;
42605
42683
  }
42606
42684
  function withStyleLabel(element) {
@@ -44627,4 +44705,4 @@ function updateCellTextInRawXml(element, rowIndex, colIndex, text2) {
44627
44705
  return newRawXml;
44628
44706
  }
44629
44707
 
44630
- export { BLIP_FILL_ORDER, CHART_ERROR_BAR_DIRECTIONS, CHART_ERROR_BAR_TYPES, CHART_ERROR_VALUE_TYPES, COLOR_MAP_ALIAS_KEYS, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FONT_ADVANCE_TABLE, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_ROW_HEIGHT_EMU, DGM_XMLNS, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, ENTRY_TYPE_ROOT, EncryptedFileError, FONT_ADVANCE_TABLES, IncorrectPasswordError, MAX_SHAPE_ID, MAX_ZIP_ENTRY_COUNT, NS, P14_DIR_IS_ORIENTATION_TYPE, P14_GUIDE_URI, P14_TRANSITION_TYPES, P15_GUIDE_URI, PRESENTATION_CHILD_ORDER, RC4_ALG_ID, SHAPE_STYLE_ORDER, SHAPE_TREE_ELEMENT_TAGS, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER2 as SP_PR_ORDER, STYLE_MATRIX_EFFECT_KEYS, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, TC_PR_BORDERS_ORDER, VML_SHAPE_TAGS, XML_PROLOG, ZipBombError, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, applyActiveXControlsToSlide, applyBubbleChartOptions, applyChartAxisDisplayUnitsToXml, applyChartAxisLabelFormatting, applyChartAxisScaling, applyChartDateAxisUnits, applyChartGradientToSpPr, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDataLabelsRangeToDLbls, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySeriesDataPointsToXml, applySeriesMarkerToXml, applySeriesPictureOptionsToXml, applySmartArtLayoutDefinition, applyTextBodySp3d, applyThemeToData, backgroundRefNode, backgroundStyleColorMap, backgroundStylePreset, backgroundStyleRefIsCurrent, base64Decode, blendColorOntoWhite, buildChartGradFillXml, buildChartMarkerXml, buildChartUniqueIdExtLst, buildClrMapOverrideXml, buildDefRPrTextProperties, buildEffectDagTreeFromXml, buildFabricatedDiagramDataXml, buildFabricatedDrawingXml, buildGuideListExtension, buildInkMlContent, buildNodeGuidMap, buildOle2, buildPointFromParagraphs, buildPointFromRuns, buildPointText, buildPresentationGuidMap, buildSmartArtColorLists, buildSmartArtColorRoleMap, buildSrgbColorChoice, buildTrendlineLabel, buildXml, captureStyleBaseline, chartColorChoiceValue, chartColorHex, chartGradientsEqual, chartTrendlineKind, chartTrendlineType, children2 as children, cloneElement, cloneSlide, cloneXmlObject, collectAllText, colorsEqual, concatArrays, containsConvertibleStrictNamespaceAttribute, convertMetafileToDataUrl, convertXmlToStrict, createBuiltinVariables, createDefaultXmlCell, createLineStyleGate, createOfficeGuid, cropShapeForPresetGeometry, customGeometryPathsToXml, decodeXmlEntities, decryptPptx, deobfuscateFont, deriveSlideTitles, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, effectChild, effectIsPurelyStyleMatrix, elements, encodeCompressedPng, encodePasswordUtf16LE, encodeXmlAttributeValue, encodeXmlTextValue, encryptPptx, ensureArray7 as ensureArray, ensureArrayValue, ensureXmlChild, ensureXmlChildOrCreate, ensureXmlChildren, estimateMediaDurationMs, evaluateGuides, extractColorChoiceXml, extractGuidFromPartName, extractStyleReferenceColorXml, fetchUrlToBytes, fillIsPurelyStyleMatrix, findChartExtByUri, findChildByLocalName, findKey6 as findKey, findThemeEffectScheme, first, firstParagraphRuns, flattenCellTxBodyText, formatAutoNumberMarker, generateFontGuid, getSignaturePathsToStrip, getTblFromRawXml, guardZip, hash, hslToRgb, inferOleExtensionFromTarget, inheritCustomGeometryCommandOrder, inheritedPlaceholderFieldType, inkElementToStrokes, insertAt2 as insertAt, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isContentPoint, isDarkColorMap, isHeaderFooterPlaceholder, isOle2CompoundFile, isTemplateElementId, isXmlNode, loadThemeVariants, lookupPresetShape, measureTextWidth, mergeAttributeEffectNode, mergeEffectNode, mergeSmartArtConnectionXml, mergeSmartArtPointXml, mimeTypeForOleFile, newSmartArtGuid, normalizeNamespaceUri, normalizeStShapeType, normalizeStrictXml, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlGradientAngleToCssDegrees, openNestedZip, openPptxZip, orderedPathCommandEntries, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseAlignmentAttr, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseBulletSizePercent, parseChart3DSurfaces, parseChartAxes, parseChartDataLabelOptions, parseChartDataPointPicture, parseChartDataPointPictureBlipRel, parseChartLayouts, parseChartManualLayout, parseChartUniqueId, parseChartUpDownBars, parseChartUserShapesDrawing, parseChartWideTextStyle, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDefRPrTextStyle, parseDiagramRelationshipIds, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseEmbeddedXlsx, parseEncryptionInfo, parseGuideDefinitions, parseImplicitBlipPictureFill, parseInkMlContent, parseKinsoku, parseLineSpacingExactPt, parseLineSpacingMultiplier, parseLineStyle, parseMarker, parseModel3DScene, parseOle2, parseOoxmlPercent, parseP14DirectChild, parseP14FromExtLst, parseParagraphExtraAttributes, parseParagraphLevel, parseParagraphMargins, parseParagraphRtl, parseParagraphSpacingPx, parsePresentationDrawingGuides, parsePresentationSmartTags, parseSeriesDataLabels, parseSeriesDataPoints, parseShapeId, parseShapeProps, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConnection, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtPresLayoutVars, parseSmartArtQuickStyleLabels, parseSmartArtStyleLabelRefs, parseSmartArtTextParagraphs, parseTabStops, parseVmlElement, parseVmlElements, parseXml, positiveFixedAngleAttribute, pptxActionToElementAction, preservesSpreadsheetXmlWhitespace, preservesXmlWhitespace, prismFamilyFlags, prismFamilyTypeForFlags, prismFamilyTypeOfNode, projectSmartArtNodeText, reResolveElementsForColorMapChange, readChartManualLayoutValues, readPathListCommandOrder, reapplyAlternateContentToTree, reconcileSmartArtTextParagraphs, regenerateClonedUniqueId, regenerateSmartArtDrawingShapes, relAttr, relayoutSmartArt, remapElementShapeIds, remapShapeIdReferences, reorderObjectKeys, reorderObjectKeysByLocalName, replaceFirstText, replaceOleEmbedding, resetSpPrFormattingForStyleMatrix, resolveCoordinate, resolveLayoutDisplayName, resolveParagraphAlignment, resolveSmartArtEffectIntensity, resolveSmartArtNodeCoherent3DOff, resolveSmartArtNodeStyleRoles, resolveTxPrDefRPr, restorePathListCommandOrder, roundCoordinate, safeResolveZipPath, scaleVectorToIntegers, scrgbLinearToSrgb8, selectAlternateContentBranch, serializeColorChoice, serializeColorChoiceWithRef, serializeTabStop, setAutoTitleDeleted, shadowOffsetToDistanceAndDirection, shouldRebuildFromParagraphs, shouldRebuildFromRuns, slideBackgroundStyleRefFromNode, smartArtParagraphsText, stripParentDirSegments, stripXmlOrderMarkers, stripXmlOrderSuffix, supportsChartGradientFill, svgToCustomGeometryPaths, syncPictureShapeTypeWithCropShape, tableCellTextBodyMatches, themeColorRefFromColorChoice, themeColorRefFromSchemeClr, themeColorRefToSolidFillWithOpacity, themeColorRefToXml, uint32LE, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateSmartArtNodeText, upsertChartAxisChild, withThemePlaceholderColor, wrapFormatSchemeXml, writeBodyPrBooleanAttrs, writeChartColorChoice, writeChartShapeProps, writeShapeEffects, xmlAttr, xmlAttrNumber, xmlChild, xmlChildren, xmlEscape, xmlHasChild, xmlPath, xmlText, zlibStore };
44708
+ export { BLIP_FILL_ORDER, CHART_ERROR_BAR_DIRECTIONS, CHART_ERROR_BAR_TYPES, CHART_ERROR_VALUE_TYPES, COLOR_MAP_ALIAS_KEYS, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FONT_ADVANCE_TABLE, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_ROW_HEIGHT_EMU, DIAGRAM_DATA_XMLNS, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, DIAGRAM_XML_PROLOG, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, ENTRY_TYPE_ROOT, EncryptedFileError, FONT_ADVANCE_TABLES, IncorrectPasswordError, MAX_SHAPE_ID, MAX_ZIP_ENTRY_COUNT, NS, P14_DIR_IS_ORIENTATION_TYPE, P14_GUIDE_URI, P14_TRANSITION_TYPES, P15_GUIDE_URI, PRESENTATION_CHILD_ORDER, RC4_ALG_ID, SHAPE_STYLE_ORDER, SHAPE_TREE_ELEMENT_TAGS, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER2 as SP_PR_ORDER, STYLE_MATRIX_EFFECT_KEYS, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, TC_PR_BORDERS_ORDER, VML_SHAPE_TAGS, ZipBombError, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, applyActiveXControlsToSlide, applyBubbleChartOptions, applyChartAxisDisplayUnitsToXml, applyChartAxisLabelFormatting, applyChartAxisScaling, applyChartDateAxisUnits, applyChartGradientToSpPr, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDataLabelsRangeToDLbls, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySeriesDataPointsToXml, applySeriesMarkerToXml, applySeriesPictureOptionsToXml, applySmartArtLayoutDefinition, applyTextBodySp3d, applyThemeToData, attr, backgroundRefNode, backgroundStyleColorMap, backgroundStylePreset, backgroundStyleRefIsCurrent, base64Decode, blendColorOntoWhite, buildChartGradFillXml, buildChartMarkerXml, buildChartUniqueIdExtLst, buildClrMapOverrideXml, buildDefRPrTextProperties, buildEffectDagTreeFromXml, buildFabricatedDiagramDataXml, buildFabricatedDrawingXml, buildGuideListExtension, buildInkMlContent, buildNodeGuidMap, buildOle2, buildPointFromParagraphs, buildPointFromRuns, buildPointText, buildPresentationGuidMap, buildSmartArtColorLists, buildSmartArtColorRoleMap, buildSrgbColorChoice, buildTrendlineLabel, buildXml, captureStyleBaseline, chartColorChoiceValue, chartColorHex, chartGradientsEqual, chartTrendlineKind, chartTrendlineType, children2 as children, cloneElement, cloneSlide, cloneXmlObject, collectAllText, colorsEqual, concatArrays, containsConvertibleStrictNamespaceAttribute, convertMetafileToDataUrl, convertXmlToStrict, createBuiltinVariables, createDefaultXmlCell, createLineStyleGate, createOfficeGuid, cropShapeForPresetGeometry, customGeometryPathsToXml, decodeXmlEntities, decryptPptx, deobfuscateFont, deriveSlideTitles, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, effectChild, effectIsPurelyStyleMatrix, elements, encodeCompressedPng, encodePasswordUtf16LE, encodeXmlAttributeValue, encodeXmlTextValue, encryptPptx, ensureArray7 as ensureArray, ensureArrayValue, ensureXmlChild, ensureXmlChildOrCreate, ensureXmlChildren, escapeDiagramXml, estimateMediaDurationMs, evaluateGuides, extractColorChoiceXml, extractGuidFromPartName, extractStyleReferenceColorXml, fetchUrlToBytes, fillIsPurelyStyleMatrix, findChartExtByUri, findChildByLocalName, findKey6 as findKey, findThemeEffectScheme, first, firstParagraphRuns, flattenCellTxBodyText, formatAutoNumberMarker, generateFontGuid, getSignaturePathsToStrip, getTblFromRawXml, guardZip, hasLocalName, hash, hslToRgb, inferOleExtensionFromTarget, inheritCustomGeometryCommandOrder, inheritedPlaceholderFieldType, inkElementToStrokes, insertAt2 as insertAt, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isContentPoint, isDarkColorMap, isHeaderFooterPlaceholder, isOle2CompoundFile, isTemplateElementId, isXmlNode, loadThemeVariants, lookupPresetShape, measureTextWidth, mergeAttributeEffectNode, mergeEffectNode, mergeSmartArtConnectionXml, mergeSmartArtPointXml, mimeTypeForOleFile, newSmartArtGuid, normalizeNamespaceUri, normalizeStShapeType, normalizeStrictXml, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlGradientAngleToCssDegrees, openPptxZip, openZip, orderedPathCommandEntries, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseAlignmentAttr, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseBulletSizePercent, parseChart3DSurfaces, parseChartAxes, parseChartDataLabelOptions, parseChartDataPointPicture, parseChartDataPointPictureBlipRel, parseChartLayouts, parseChartManualLayout, parseChartUniqueId, parseChartUpDownBars, parseChartUserShapesDrawing, parseChartWideTextStyle, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDefRPrTextStyle, parseDiagramRelationshipIds, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseEmbeddedXlsx, parseEncryptionInfo, parseGuideDefinitions, parseImplicitBlipPictureFill, parseInkMlContent, parseKinsoku, parseLineSpacingExactPt, parseLineSpacingMultiplier, parseLineStyle, parseMarker, parseModel3DScene, parseOle2, parseOoxmlPercent, parseP14DirectChild, parseP14FromExtLst, parseParagraphExtraAttributes, parseParagraphLevel, parseParagraphMargins, parseParagraphRtl, parseParagraphSpacingPx, parsePresentationDrawingGuides, parsePresentationSmartTags, parseSeriesDataLabels, parseSeriesDataPoints, parseShapeId, parseShapeProps, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConnection, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtPresLayoutVars, parseSmartArtQuickStyleLabels, parseSmartArtStyleLabelRefs, parseSmartArtTextParagraphs, parseTabStops, parseVmlElement, parseVmlElements, parseXml, positiveFixedAngleAttribute, pptxActionToElementAction, preservesXmlWhitespace, prismFamilyFlags, prismFamilyTypeForFlags, prismFamilyTypeOfNode, projectSmartArtNodeText, reResolveElementsForColorMapChange, readChartManualLayoutValues, readPathListCommandOrder, reapplyAlternateContentToTree, reconcileSmartArtTextParagraphs, regenerateClonedUniqueId, regenerateSmartArtDrawingShapes, relAttr, relayoutSmartArt, remapElementShapeIds, remapShapeIdReferences, reorderObjectKeys, reorderObjectKeysByLocalName, replaceFirstText, replaceOleEmbedding, resetSpPrFormattingForStyleMatrix, resolveCoordinate, resolveLayoutDisplayName, resolveParagraphAlignment, resolveSmartArtEffectIntensity, resolveSmartArtNodeCoherent3DOff, resolveSmartArtNodeStyleRoles, resolveTxPrDefRPr, restorePathListCommandOrder, roundCoordinate, safeResolveZipPath, scaleVectorToIntegers, scrgbLinearToSrgb8, selectAlternateContentBranch, serializeColorChoice, serializeColorChoiceWithRef, serializeTabStop, setAutoTitleDeleted, shadowOffsetToDistanceAndDirection, shouldRebuildFromParagraphs, shouldRebuildFromRuns, slideBackgroundStyleRefFromNode, smartArtParagraphsText, stripParentDirSegments, stripXmlOrderMarkers, stripXmlOrderSuffix, supportsChartGradientFill, svgToCustomGeometryPaths, syncPictureShapeTypeWithCropShape, tableCellTextBodyMatches, themeColorRefFromColorChoice, themeColorRefFromSchemeClr, themeColorRefToSolidFillWithOpacity, themeColorRefToXml, uint32LE, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateSmartArtNodeText, upsertChartAxisChild, withThemePlaceholderColor, wrapFormatSchemeXml, writeBodyPrBooleanAttrs, writeChartColorChoice, writeChartShapeProps, writeShapeEffects, xmlAttr, xmlAttrNumber, xmlChild, xmlChildren, xmlHasChild, xmlPath, xmlText, zlibStore };