ooxml-core 1.12.2 → 1.14.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 (682) hide show
  1. package/dist/PptxHandler-5YP75BPO.cjs +12 -0
  2. package/dist/PptxHandler-GT5Q66TG.mjs +3 -0
  3. package/dist/{PptxHandler-FIN6XDTI.mjs → PptxHandler-KNBFECUE.mjs} +3 -3
  4. package/dist/PresentationBuilder-5DCCFHWJ.mjs +7 -0
  5. package/dist/PresentationBuilder-CVM6LJ7L.mjs +3 -0
  6. package/dist/PresentationBuilder-II7C4A3R.cjs +20 -0
  7. package/dist/automation/docx.d.ts +18 -0
  8. package/dist/automation/docx.d.ts.map +1 -1
  9. package/dist/automation/index.cjs +22549 -8585
  10. package/dist/automation/index.d.ts +1 -0
  11. package/dist/automation/index.d.ts.map +1 -1
  12. package/dist/automation/index.mjs +22546 -8586
  13. package/dist/automation/node.cjs +66 -6
  14. package/dist/automation/node.d.ts +10 -0
  15. package/dist/automation/node.d.ts.map +1 -1
  16. package/dist/automation/node.mjs +67 -7
  17. package/dist/automation/outline.d.ts +29 -0
  18. package/dist/automation/outline.d.ts.map +1 -0
  19. package/dist/automation/xlsx.d.ts +21 -0
  20. package/dist/automation/xlsx.d.ts.map +1 -1
  21. package/dist/chart/auto-title.d.ts +31 -0
  22. package/dist/chart/auto-title.d.ts.map +1 -0
  23. package/dist/chart/axis-format.d.ts +13 -0
  24. package/dist/chart/axis-format.d.ts.map +1 -0
  25. package/dist/chart/bubble-radius.d.ts +30 -0
  26. package/dist/chart/bubble-radius.d.ts.map +1 -0
  27. package/dist/chart/error-bar-amount.d.ts +22 -0
  28. package/dist/chart/error-bar-amount.d.ts.map +1 -0
  29. package/dist/chart/hierarchy.d.ts +69 -0
  30. package/dist/chart/hierarchy.d.ts.map +1 -0
  31. package/dist/chart/index.cjs +2377 -527
  32. package/dist/chart/index.d.ts +12 -0
  33. package/dist/chart/index.d.ts.map +1 -1
  34. package/dist/chart/index.mjs +2338 -528
  35. package/dist/chart/model-analysis.d.ts +66 -0
  36. package/dist/chart/model-analysis.d.ts.map +1 -0
  37. package/dist/chart/model-series.d.ts +5 -0
  38. package/dist/chart/model-series.d.ts.map +1 -1
  39. package/dist/chart/number-format-pattern.d.ts +35 -0
  40. package/dist/chart/number-format-pattern.d.ts.map +1 -0
  41. package/dist/chart/number-format.d.ts +21 -0
  42. package/dist/chart/number-format.d.ts.map +1 -0
  43. package/dist/chart/parse-analysis.d.ts +13 -0
  44. package/dist/chart/parse-analysis.d.ts.map +1 -0
  45. package/dist/chart/parse-series.d.ts +1 -1
  46. package/dist/chart/parse-series.d.ts.map +1 -1
  47. package/dist/chart/parse-util.d.ts +2 -0
  48. package/dist/chart/parse-util.d.ts.map +1 -1
  49. package/dist/chart/render/chart-svg-analysis.d.ts +7 -0
  50. package/dist/chart/render/chart-svg-analysis.d.ts.map +1 -0
  51. package/dist/chart/render/chart-svg-bars.d.ts +5 -0
  52. package/dist/chart/render/chart-svg-bars.d.ts.map +1 -1
  53. package/dist/chart/render/chart-svg-cartesian.d.ts +7 -2
  54. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
  55. package/dist/chart/render/chart-svg-hierarchy.d.ts +5 -0
  56. package/dist/chart/render/chart-svg-hierarchy.d.ts.map +1 -0
  57. package/dist/chart/render/chart-svg-plots.d.ts +5 -0
  58. package/dist/chart/render/chart-svg-plots.d.ts.map +1 -0
  59. package/dist/chart/render/chart-svg-stock.d.ts +4 -0
  60. package/dist/chart/render/chart-svg-stock.d.ts.map +1 -0
  61. package/dist/chart/render/chart-svg-waterfall.d.ts +4 -0
  62. package/dist/chart/render/chart-svg-waterfall.d.ts.map +1 -0
  63. package/dist/chart/render/chart-svg-xy.d.ts +4 -0
  64. package/dist/chart/render/chart-svg-xy.d.ts.map +1 -0
  65. package/dist/chart/render/chart-svg.d.ts +1 -1
  66. package/dist/chart/render/chart-svg.d.ts.map +1 -1
  67. package/dist/chart/render/chart-value-axis.d.ts +6 -1
  68. package/dist/chart/render/chart-value-axis.d.ts.map +1 -1
  69. package/dist/chart/render/chart-view-analysis.d.ts +30 -0
  70. package/dist/chart/render/chart-view-analysis.d.ts.map +1 -0
  71. package/dist/chart/render/chart-view-ex.d.ts +24 -0
  72. package/dist/chart/render/chart-view-ex.d.ts.map +1 -0
  73. package/dist/chart/render/chart-view-families.d.ts +10 -0
  74. package/dist/chart/render/chart-view-families.d.ts.map +1 -0
  75. package/dist/chart/render/chart-view-series.d.ts +36 -0
  76. package/dist/chart/render/chart-view-series.d.ts.map +1 -0
  77. package/dist/chart/render/chart-view-stock.d.ts +23 -0
  78. package/dist/chart/render/chart-view-stock.d.ts.map +1 -0
  79. package/dist/chart/render/chart-view.d.ts +49 -18
  80. package/dist/chart/render/chart-view.d.ts.map +1 -1
  81. package/dist/chart/render/index.d.ts +2 -0
  82. package/dist/chart/render/index.d.ts.map +1 -1
  83. package/dist/chart/render/render-space.d.ts +6 -1
  84. package/dist/chart/render/render-space.d.ts.map +1 -1
  85. package/dist/chart/render/summary-analysis.d.ts +11 -0
  86. package/dist/chart/render/summary-analysis.d.ts.map +1 -0
  87. package/dist/chart/render/summary-from-chartex.d.ts +11 -0
  88. package/dist/chart/render/summary-from-chartex.d.ts.map +1 -0
  89. package/dist/chart/render/summary-from-space.d.ts.map +1 -1
  90. package/dist/chart/render/summary.d.ts +86 -3
  91. package/dist/chart/render/summary.d.ts.map +1 -1
  92. package/dist/chart/stock-candles.d.ts +72 -0
  93. package/dist/chart/stock-candles.d.ts.map +1 -0
  94. package/dist/chart/style-palette.d.ts +29 -0
  95. package/dist/chart/style-palette.d.ts.map +1 -0
  96. package/dist/chart/sunburst-arcs.d.ts +41 -0
  97. package/dist/chart/sunburst-arcs.d.ts.map +1 -0
  98. package/dist/chart/trendline-fit.d.ts +39 -0
  99. package/dist/chart/trendline-fit.d.ts.map +1 -0
  100. package/dist/chart/waterfall.d.ts +31 -0
  101. package/dist/chart/waterfall.d.ts.map +1 -0
  102. package/dist/chart/write-analysis.d.ts +12 -0
  103. package/dist/chart/write-analysis.d.ts.map +1 -0
  104. package/dist/chart/write-series.d.ts.map +1 -1
  105. package/dist/{chunk-G5PQKHCG.mjs → chunk-2D4IFQ5M.mjs} +1 -1
  106. package/dist/{chunk-UAY26XOI.mjs → chunk-2EBMHIGJ.mjs} +1303 -994
  107. package/dist/{chunk-TVE6UIJF.mjs → chunk-4WZLFUUA.mjs} +54 -13
  108. package/dist/{chunk-H2FRDUNV.mjs → chunk-54ASP65T.mjs} +868 -585
  109. package/dist/chunk-M4XLF4R7.mjs +387 -0
  110. package/dist/{chunk-O6NIA4NG.mjs → chunk-ORH32TO3.mjs} +5798 -5742
  111. package/dist/{chunk-B2JBBAEQ.mjs → chunk-TNNXOW2O.mjs} +1 -1
  112. package/dist/{chunk-IT3U6QD6.cjs → chunk-TQE7FFNT.cjs} +6754 -6695
  113. package/dist/{chunk-7QZGRB3T.cjs → chunk-X7MGZQ6C.cjs} +1321 -995
  114. package/dist/{chunk-6DELVMYB.mjs → chunk-XGXIS4PN.mjs} +12316 -12260
  115. package/dist/crypto/decrypt.d.ts +17 -3
  116. package/dist/crypto/decrypt.d.ts.map +1 -1
  117. package/dist/crypto/encryption-info.d.ts.map +1 -1
  118. package/dist/crypto/index.cjs +252 -78
  119. package/dist/crypto/index.d.ts +19 -4
  120. package/dist/crypto/index.d.ts.map +1 -1
  121. package/dist/crypto/index.mjs +252 -79
  122. package/dist/crypto/key-derivation.d.ts +2 -3
  123. package/dist/crypto/key-derivation.d.ts.map +1 -1
  124. package/dist/crypto/validate.d.ts +22 -0
  125. package/dist/crypto/validate.d.ts.map +1 -0
  126. package/dist/diagram/engine/layout-def-parse.d.ts.map +1 -1
  127. package/dist/diagram/engine/pres-tree.d.ts.map +1 -1
  128. package/dist/diagram/index.cjs +102 -52
  129. package/dist/diagram/index.mjs +102 -52
  130. package/dist/digest/index.cjs +23 -11
  131. package/dist/digest/index.d.ts +2 -1
  132. package/dist/digest/index.d.ts.map +1 -1
  133. package/dist/digest/index.mjs +21 -12
  134. package/dist/digest/password-hash.d.ts +19 -5
  135. package/dist/digest/password-hash.d.ts.map +1 -1
  136. package/dist/digest/timing-safe.d.ts +7 -0
  137. package/dist/digest/timing-safe.d.ts.map +1 -0
  138. package/dist/docx/block-parser.d.ts.map +1 -1
  139. package/dist/docx/chart-paint.d.ts.map +1 -1
  140. package/dist/docx/chart.d.ts +10 -2
  141. package/dist/docx/chart.d.ts.map +1 -1
  142. package/dist/docx/content-control-edit.d.ts +26 -0
  143. package/dist/docx/content-control-edit.d.ts.map +1 -0
  144. package/dist/docx/content-control-model.d.ts +51 -0
  145. package/dist/docx/content-control-model.d.ts.map +1 -0
  146. package/dist/docx/content-control.d.ts +9 -0
  147. package/dist/docx/content-control.d.ts.map +1 -0
  148. package/dist/docx/default-styles.d.ts.map +1 -1
  149. package/dist/docx/drawing.d.ts.map +1 -1
  150. package/dist/docx/embedded.cjs +9932 -935
  151. package/dist/docx/embedded.mjs +9932 -935
  152. package/dist/docx/equation.d.ts +7 -3
  153. package/dist/docx/equation.d.ts.map +1 -1
  154. package/dist/docx/index.cjs +14117 -1513
  155. package/dist/docx/index.d.ts +6 -0
  156. package/dist/docx/index.d.ts.map +1 -1
  157. package/dist/docx/index.mjs +14093 -1514
  158. package/dist/docx/inline-model.d.ts +3 -0
  159. package/dist/docx/inline-model.d.ts.map +1 -1
  160. package/dist/docx/layout/adapt-floats.d.ts +3 -3
  161. package/dist/docx/layout/adapt-floats.d.ts.map +1 -1
  162. package/dist/docx/layout/adapter.d.ts.map +1 -1
  163. package/dist/docx/layout/equation-object.d.ts +7 -0
  164. package/dist/docx/layout/equation-object.d.ts.map +1 -0
  165. package/dist/docx/layout/floats.d.ts +8 -0
  166. package/dist/docx/layout/floats.d.ts.map +1 -1
  167. package/dist/docx/layout/incremental-layout.d.ts +39 -0
  168. package/dist/docx/layout/incremental-layout.d.ts.map +1 -0
  169. package/dist/docx/layout/index.cjs +14177 -1707
  170. package/dist/docx/layout/index.d.ts +2 -2
  171. package/dist/docx/layout/index.d.ts.map +1 -1
  172. package/dist/docx/layout/index.mjs +14176 -1708
  173. package/dist/docx/layout/input.d.ts +4 -0
  174. package/dist/docx/layout/input.d.ts.map +1 -1
  175. package/dist/docx/layout/layout-session.d.ts +13 -2
  176. package/dist/docx/layout/layout-session.d.ts.map +1 -1
  177. package/dist/docx/layout/layout.d.ts +1 -1
  178. package/dist/docx/layout/layout.d.ts.map +1 -1
  179. package/dist/docx/layout/line-metrics.d.ts.map +1 -1
  180. package/dist/docx/layout/page-cursor.d.ts +1 -1
  181. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  182. package/dist/docx/layout/page-fields.d.ts +3 -1
  183. package/dist/docx/layout/page-fields.d.ts.map +1 -1
  184. package/dist/docx/layout/result.d.ts +14 -1
  185. package/dist/docx/layout/result.d.ts.map +1 -1
  186. package/dist/docx/layout/section-flow.d.ts +11 -1
  187. package/dist/docx/layout/section-flow.d.ts.map +1 -1
  188. package/dist/docx/ligatures.d.ts +2 -0
  189. package/dist/docx/ligatures.d.ts.map +1 -1
  190. package/dist/docx/load/index.cjs +12709 -3590
  191. package/dist/docx/load/index.mjs +12709 -3590
  192. package/dist/docx/model-paragraph.d.ts +3 -0
  193. package/dist/docx/model-paragraph.d.ts.map +1 -1
  194. package/dist/docx/model-run.d.ts +3 -0
  195. package/dist/docx/model-run.d.ts.map +1 -1
  196. package/dist/docx/model.d.ts +3 -0
  197. package/dist/docx/model.d.ts.map +1 -1
  198. package/dist/docx/numbering-parse.d.ts.map +1 -1
  199. package/dist/docx/numbering-text.d.ts.map +1 -1
  200. package/dist/docx/package-limits.d.ts +6 -0
  201. package/dist/docx/package-limits.d.ts.map +1 -0
  202. package/dist/docx/parse-content-control.d.ts +28 -0
  203. package/dist/docx/parse-content-control.d.ts.map +1 -0
  204. package/dist/docx/parse-table.d.ts.map +1 -1
  205. package/dist/docx/parse.d.ts.map +1 -1
  206. package/dist/docx/save.d.ts.map +1 -1
  207. package/dist/docx/shape-model.d.ts +31 -0
  208. package/dist/docx/shape-model.d.ts.map +1 -0
  209. package/dist/docx/shape-palette.d.ts +19 -0
  210. package/dist/docx/shape-palette.d.ts.map +1 -0
  211. package/dist/docx/shape-parse.d.ts +16 -0
  212. package/dist/docx/shape-parse.d.ts.map +1 -0
  213. package/dist/docx/shape-svg.d.ts +20 -0
  214. package/dist/docx/shape-svg.d.ts.map +1 -0
  215. package/dist/docx/table-model.d.ts +4 -0
  216. package/dist/docx/table-model.d.ts.map +1 -1
  217. package/dist/docx/ui/content-control-commands.d.ts +37 -0
  218. package/dist/docx/ui/content-control-commands.d.ts.map +1 -0
  219. package/dist/docx/ui/content-control-guard.d.ts +8 -0
  220. package/dist/docx/ui/content-control-guard.d.ts.map +1 -0
  221. package/dist/docx/ui/content-control-spans.d.ts +19 -0
  222. package/dist/docx/ui/content-control-spans.d.ts.map +1 -0
  223. package/dist/docx/ui/index.cjs +3132 -506
  224. package/dist/docx/ui/index.d.ts +3 -0
  225. package/dist/docx/ui/index.d.ts.map +1 -1
  226. package/dist/docx/ui/index.mjs +3117 -507
  227. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -1
  228. package/dist/docx/ui/paragraph-attributes.d.ts.map +1 -1
  229. package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
  230. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
  231. package/dist/docx/ui/run-adapter.d.ts.map +1 -1
  232. package/dist/docx/ui/run-compare.d.ts.map +1 -1
  233. package/dist/docx/ui/run-mark-properties.d.ts.map +1 -1
  234. package/dist/docx/ui/run-marks.d.ts.map +1 -1
  235. package/dist/docx/ui/schema-marks.d.ts +16 -1
  236. package/dist/docx/ui/schema-marks.d.ts.map +1 -1
  237. package/dist/docx/ui/table-structure-guard.d.ts.map +1 -1
  238. package/dist/docx/write-block-placement.d.ts +9 -0
  239. package/dist/docx/write-block-placement.d.ts.map +1 -0
  240. package/dist/docx/write-content-control.d.ts +12 -0
  241. package/dist/docx/write-content-control.d.ts.map +1 -0
  242. package/dist/docx/write-drawing.d.ts +2 -0
  243. package/dist/docx/write-drawing.d.ts.map +1 -1
  244. package/dist/docx/write-inline.d.ts.map +1 -1
  245. package/dist/docx/write-paragraph.d.ts.map +1 -1
  246. package/dist/docx/write-shape.d.ts +16 -0
  247. package/dist/docx/write-shape.d.ts.map +1 -0
  248. package/dist/docx/write-table.d.ts.map +1 -1
  249. package/dist/docx/write.d.ts.map +1 -1
  250. package/dist/drawingml/index.cjs +24 -0
  251. package/dist/drawingml/index.mjs +24 -0
  252. package/dist/geometry/index.cjs +63 -48
  253. package/dist/geometry/index.mjs +63 -48
  254. package/dist/geometry/preset-shape-definitions-table.d.ts.map +1 -1
  255. package/dist/i18n/index.cjs +266 -0
  256. package/dist/i18n/index.d.ts +1 -0
  257. package/dist/i18n/index.d.ts.map +1 -1
  258. package/dist/i18n/index.mjs +265 -1
  259. package/dist/i18n/option-strings.d.ts +17 -0
  260. package/dist/i18n/option-strings.d.ts.map +1 -0
  261. package/dist/index.cjs +4558 -1579
  262. package/dist/index.mjs +4558 -1579
  263. package/dist/math/equation-gallery.d.ts +10 -0
  264. package/dist/math/equation-gallery.d.ts.map +1 -0
  265. package/dist/math/index.cjs +777 -139
  266. package/dist/math/index.d.ts +3 -0
  267. package/dist/math/index.d.ts.map +1 -1
  268. package/dist/math/index.mjs +772 -140
  269. package/dist/math/latex-omml-siblings.d.ts.map +1 -1
  270. package/dist/math/latex-to-omml.d.ts.map +1 -1
  271. package/dist/math/omml-box-grouped.d.ts +9 -0
  272. package/dist/math/omml-box-grouped.d.ts.map +1 -0
  273. package/dist/math/omml-box-layout.d.ts +15 -0
  274. package/dist/math/omml-box-layout.d.ts.map +1 -0
  275. package/dist/math/omml-box-structures.d.ts +7 -0
  276. package/dist/math/omml-box-structures.d.ts.map +1 -0
  277. package/dist/math/omml-box.d.ts +85 -0
  278. package/dist/math/omml-box.d.ts.map +1 -0
  279. package/dist/math/omml-dom.d.ts.map +1 -1
  280. package/dist/math/omml-mathml-converters.d.ts.map +1 -1
  281. package/dist/math/omml-svg.d.ts +14 -0
  282. package/dist/math/omml-svg.d.ts.map +1 -0
  283. package/dist/math/omml-to-xml.d.ts +10 -0
  284. package/dist/math/omml-to-xml.d.ts.map +1 -0
  285. package/dist/opc/embedded-packages.d.ts.map +1 -1
  286. package/dist/opc/index.cjs +257 -22
  287. package/dist/opc/index.d.ts +1 -0
  288. package/dist/opc/index.d.ts.map +1 -1
  289. package/dist/opc/index.mjs +251 -23
  290. package/dist/opc/package.d.ts.map +1 -1
  291. package/dist/opc/signature/detection.d.ts +22 -6
  292. package/dist/opc/signature/detection.d.ts.map +1 -1
  293. package/dist/opc/signature/index.d.ts +1 -1
  294. package/dist/opc/signature/index.d.ts.map +1 -1
  295. package/dist/opc/signature/xml-utils.d.ts.map +1 -1
  296. package/dist/opc/zip-limits.d.ts +52 -0
  297. package/dist/opc/zip-limits.d.ts.map +1 -0
  298. package/dist/pptx/automation/index.cjs +1848 -1320
  299. package/dist/pptx/automation/index.d.ts +4 -4
  300. package/dist/pptx/automation/index.mjs +6 -6
  301. package/dist/pptx/chunks/{elements-DmbzOhFu.d.ts → elements-tK7xnWeS.d.ts} +20 -9
  302. package/dist/pptx/chunks/elements-tK7xnWeS.d.ts.map +1 -0
  303. package/dist/pptx/chunks/{index-Cija6Dih.d.ts → index-BSpNQuvz.d.ts} +30 -5
  304. package/dist/pptx/chunks/{index-Cija6Dih.d.ts.map → index-BSpNQuvz.d.ts.map} +1 -1
  305. package/dist/pptx/chunks/{index-BmvOxbsh.d.ts → index-DS9Y4Ne3.d.ts} +25 -9
  306. package/dist/pptx/chunks/index-DS9Y4Ne3.d.ts.map +1 -0
  307. package/dist/pptx/chunks/inspection-status-DjiWd_Aa.d.ts.map +1 -1
  308. package/dist/pptx/chunks/{text-operations-sXxhsKDd.d.ts → text-operations-BdD_UQ11.d.ts} +2 -2
  309. package/dist/pptx/chunks/{text-operations-sXxhsKDd.d.ts.map → text-operations-BdD_UQ11.d.ts.map} +1 -1
  310. package/dist/pptx/cli/index.cjs +1795 -1275
  311. package/dist/pptx/cli/index.d.ts +1 -1
  312. package/dist/pptx/cli/index.mjs +5 -5
  313. package/dist/pptx/converter/index.cjs +80 -54
  314. package/dist/pptx/converter/index.d.ts +1 -1
  315. package/dist/pptx/converter/index.mjs +3 -3
  316. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  317. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  318. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  319. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  320. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  321. package/dist/pptx/editor/render/text-runs-style-patch.d.ts +1 -1
  322. package/dist/pptx/editor/render/text-style-scope.d.ts +1 -1
  323. package/dist/pptx/index.cjs +1117 -351
  324. package/dist/pptx/index.d.ts +5 -5
  325. package/dist/pptx/index.mjs +6 -6
  326. package/dist/pptx/signature-node/index.cjs +342 -65
  327. package/dist/pptx/signature-node/index.d.ts +12 -1
  328. package/dist/pptx/signature-node/index.d.ts.map +1 -1
  329. package/dist/pptx/signature-node/index.mjs +112 -52
  330. package/dist/teams/activity-feed.d.ts +19 -0
  331. package/dist/teams/activity-feed.d.ts.map +1 -0
  332. package/dist/teams/activity-state.d.ts +12 -0
  333. package/dist/teams/activity-state.d.ts.map +1 -0
  334. package/dist/teams/activity.d.ts +52 -0
  335. package/dist/teams/activity.d.ts.map +1 -0
  336. package/dist/teams/calendar.d.ts +57 -0
  337. package/dist/teams/calendar.d.ts.map +1 -0
  338. package/dist/teams/chat-actions.d.ts +20 -0
  339. package/dist/teams/chat-actions.d.ts.map +1 -0
  340. package/dist/teams/chat-rooms.d.ts +42 -0
  341. package/dist/teams/chat-rooms.d.ts.map +1 -0
  342. package/dist/teams/chat-view.d.ts +56 -0
  343. package/dist/teams/chat-view.d.ts.map +1 -0
  344. package/dist/teams/chat.d.ts +25 -3
  345. package/dist/teams/chat.d.ts.map +1 -1
  346. package/dist/teams/chats.d.ts +52 -0
  347. package/dist/teams/chats.d.ts.map +1 -0
  348. package/dist/teams/ics-timezone.d.ts +17 -0
  349. package/dist/teams/ics-timezone.d.ts.map +1 -0
  350. package/dist/teams/ics.d.ts +20 -0
  351. package/dist/teams/ics.d.ts.map +1 -0
  352. package/dist/teams/index.cjs +12462 -7011
  353. package/dist/teams/index.d.ts +25 -0
  354. package/dist/teams/index.d.ts.map +1 -1
  355. package/dist/teams/index.mjs +12349 -7012
  356. package/dist/teams/meeting-actions.d.ts +31 -0
  357. package/dist/teams/meeting-actions.d.ts.map +1 -0
  358. package/dist/teams/meeting-exceptions.d.ts +28 -0
  359. package/dist/teams/meeting-exceptions.d.ts.map +1 -0
  360. package/dist/teams/meeting-reminders.d.ts +13 -0
  361. package/dist/teams/meeting-reminders.d.ts.map +1 -0
  362. package/dist/teams/meetings.d.ts +71 -0
  363. package/dist/teams/meetings.d.ts.map +1 -0
  364. package/dist/teams/mention-text.d.ts +11 -0
  365. package/dist/teams/mention-text.d.ts.map +1 -0
  366. package/dist/teams/mentions.d.ts +68 -0
  367. package/dist/teams/mentions.d.ts.map +1 -0
  368. package/dist/teams/model.d.ts +7 -0
  369. package/dist/teams/model.d.ts.map +1 -1
  370. package/dist/teams/notifications.d.ts +21 -0
  371. package/dist/teams/notifications.d.ts.map +1 -0
  372. package/dist/teams/pins.d.ts +22 -0
  373. package/dist/teams/pins.d.ts.map +1 -0
  374. package/dist/teams/presence-controller.d.ts +39 -0
  375. package/dist/teams/presence-controller.d.ts.map +1 -0
  376. package/dist/teams/presence.d.ts +55 -0
  377. package/dist/teams/presence.d.ts.map +1 -0
  378. package/dist/teams/recurrence.d.ts +18 -0
  379. package/dist/teams/recurrence.d.ts.map +1 -0
  380. package/dist/teams/roster.d.ts +12 -0
  381. package/dist/teams/roster.d.ts.map +1 -0
  382. package/dist/teams/server-config.d.ts +23 -2
  383. package/dist/teams/server-config.d.ts.map +1 -1
  384. package/dist/teams/server-session.d.ts +19 -0
  385. package/dist/teams/server-session.d.ts.map +1 -0
  386. package/dist/teams/shared-chat.d.ts +83 -0
  387. package/dist/teams/shared-chat.d.ts.map +1 -0
  388. package/dist/teams/store.d.ts +79 -5
  389. package/dist/teams/store.d.ts.map +1 -1
  390. package/dist/teams/sync-transport.d.ts +12 -0
  391. package/dist/teams/sync-transport.d.ts.map +1 -0
  392. package/dist/teams/time-zone.d.ts +32 -0
  393. package/dist/teams/time-zone.d.ts.map +1 -0
  394. package/dist/teams/view.d.ts +8 -0
  395. package/dist/teams/view.d.ts.map +1 -1
  396. package/dist/teams/workspace.d.ts +23 -4
  397. package/dist/teams/workspace.d.ts.map +1 -1
  398. package/dist/visio/edit-connector-follow.d.ts +15 -0
  399. package/dist/visio/edit-connector-follow.d.ts.map +1 -0
  400. package/dist/visio/edit-connector-obstacles.d.ts +9 -3
  401. package/dist/visio/edit-connector-obstacles.d.ts.map +1 -1
  402. package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
  403. package/dist/visio/edit-connector.d.ts.map +1 -1
  404. package/dist/visio/edit-master-add.d.ts +37 -0
  405. package/dist/visio/edit-master-add.d.ts.map +1 -0
  406. package/dist/visio/edit-master-drop.d.ts +6 -0
  407. package/dist/visio/edit-master-drop.d.ts.map +1 -1
  408. package/dist/visio/edit-recalculate-index.d.ts +5 -0
  409. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  410. package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
  411. package/dist/visio/edit-stencil-connector-layout.d.ts +2 -0
  412. package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -1
  413. package/dist/visio/edit-stencil-connector.d.ts +1 -0
  414. package/dist/visio/edit-stencil-connector.d.ts.map +1 -1
  415. package/dist/visio/edit-stencil-import.d.ts +10 -0
  416. package/dist/visio/edit-stencil-import.d.ts.map +1 -0
  417. package/dist/visio/edit-stencil-line.d.ts +29 -0
  418. package/dist/visio/edit-stencil-line.d.ts.map +1 -0
  419. package/dist/visio/edit-stencil-master.d.ts +3 -8
  420. package/dist/visio/edit-stencil-master.d.ts.map +1 -1
  421. package/dist/visio/edit.d.ts.map +1 -1
  422. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  423. package/dist/visio/formula-math-functions.d.ts +11 -0
  424. package/dist/visio/formula-math-functions.d.ts.map +1 -0
  425. package/dist/visio/formula-text-functions.d.ts +23 -0
  426. package/dist/visio/formula-text-functions.d.ts.map +1 -0
  427. package/dist/visio/formula.d.ts.map +1 -1
  428. package/dist/visio/index.cjs +2552 -1833
  429. package/dist/visio/index.d.ts +1 -0
  430. package/dist/visio/index.d.ts.map +1 -1
  431. package/dist/visio/index.mjs +2552 -1834
  432. package/dist/visio/parser.d.ts +6 -0
  433. package/dist/visio/parser.d.ts.map +1 -1
  434. package/dist/visio/stencil-file.d.ts +14 -0
  435. package/dist/visio/stencil-file.d.ts.map +1 -0
  436. package/dist/visio/ui/index.cjs +2398 -1679
  437. package/dist/visio/ui/index.mjs +2398 -1680
  438. package/dist/visio/ui/master-drop.d.ts +10 -0
  439. package/dist/visio/ui/master-drop.d.ts.map +1 -1
  440. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  441. package/dist/xlsx/edit/clipboard-html-parse.d.ts +4 -0
  442. package/dist/xlsx/edit/clipboard-html-parse.d.ts.map +1 -1
  443. package/dist/xlsx/edit/data-table.d.ts +38 -0
  444. package/dist/xlsx/edit/data-table.d.ts.map +1 -0
  445. package/dist/xlsx/edit/drawings.d.ts.map +1 -1
  446. package/dist/xlsx/edit/goal-seek.d.ts +30 -0
  447. package/dist/xlsx/edit/goal-seek.d.ts.map +1 -0
  448. package/dist/xlsx/edit/goal-solver.d.ts +20 -0
  449. package/dist/xlsx/edit/goal-solver.d.ts.map +1 -0
  450. package/dist/xlsx/edit/history.d.ts +1 -1
  451. package/dist/xlsx/edit/history.d.ts.map +1 -1
  452. package/dist/xlsx/edit/index.d.ts +5 -0
  453. package/dist/xlsx/edit/index.d.ts.map +1 -1
  454. package/dist/xlsx/edit/input-text.d.ts.map +1 -1
  455. package/dist/xlsx/edit/pivots.d.ts +2 -1
  456. package/dist/xlsx/edit/pivots.d.ts.map +1 -1
  457. package/dist/xlsx/edit/scenarios.d.ts +41 -0
  458. package/dist/xlsx/edit/scenarios.d.ts.map +1 -0
  459. package/dist/xlsx/edit/session.d.ts.map +1 -1
  460. package/dist/xlsx/edit/slicers.d.ts +34 -0
  461. package/dist/xlsx/edit/slicers.d.ts.map +1 -0
  462. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  463. package/dist/xlsx/edit/timelines.d.ts +26 -0
  464. package/dist/xlsx/edit/timelines.d.ts.map +1 -0
  465. package/dist/xlsx/edit/types.d.ts +39 -0
  466. package/dist/xlsx/edit/types.d.ts.map +1 -1
  467. package/dist/xlsx/formula/context.d.ts +13 -0
  468. package/dist/xlsx/formula/context.d.ts.map +1 -1
  469. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  470. package/dist/xlsx/formula/evaluator.d.ts.map +1 -1
  471. package/dist/xlsx/formula/functions/amordegrc.d.ts +6 -0
  472. package/dist/xlsx/formula/functions/amordegrc.d.ts.map +1 -0
  473. package/dist/xlsx/formula/functions/bahttext.d.ts +4 -0
  474. package/dist/xlsx/formula/functions/bahttext.d.ts.map +1 -0
  475. package/dist/xlsx/formula/functions/bessel.d.ts +7 -0
  476. package/dist/xlsx/formula/functions/bessel.d.ts.map +1 -0
  477. package/dist/xlsx/formula/functions/bonds.d.ts +3 -0
  478. package/dist/xlsx/formula/functions/bonds.d.ts.map +1 -1
  479. package/dist/xlsx/formula/functions/engineering.d.ts.map +1 -1
  480. package/dist/xlsx/formula/functions/financial.d.ts.map +1 -1
  481. package/dist/xlsx/formula/functions/getpivotdata.d.ts +2 -0
  482. package/dist/xlsx/formula/functions/getpivotdata.d.ts.map +1 -0
  483. package/dist/xlsx/formula/functions/groupby.d.ts +3 -0
  484. package/dist/xlsx/formula/functions/groupby.d.ts.map +1 -0
  485. package/dist/xlsx/formula/functions/helpers.d.ts +3 -2
  486. package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -1
  487. package/dist/xlsx/formula/functions/logical.d.ts.map +1 -1
  488. package/dist/xlsx/formula/functions/modern.d.ts +3 -0
  489. package/dist/xlsx/formula/functions/modern.d.ts.map +1 -0
  490. package/dist/xlsx/formula/functions/odd-securities.d.ts +3 -0
  491. package/dist/xlsx/formula/functions/odd-securities.d.ts.map +1 -0
  492. package/dist/xlsx/formula/functions/registry.d.ts.map +1 -1
  493. package/dist/xlsx/formula/functions/text-regex.d.ts +8 -0
  494. package/dist/xlsx/formula/functions/text-regex.d.ts.map +1 -1
  495. package/dist/xlsx/formula/functions/text.d.ts.map +1 -1
  496. package/dist/xlsx/formula/functions/wildcard.d.ts +8 -0
  497. package/dist/xlsx/formula/functions/wildcard.d.ts.map +1 -0
  498. package/dist/xlsx/formula/values.d.ts +11 -0
  499. package/dist/xlsx/formula/values.d.ts.map +1 -1
  500. package/dist/xlsx/index.cjs +11696 -4994
  501. package/dist/xlsx/index.d.ts +1 -0
  502. package/dist/xlsx/index.d.ts.map +1 -1
  503. package/dist/xlsx/index.mjs +11612 -4994
  504. package/dist/xlsx/layout/chart-view.d.ts.map +1 -1
  505. package/dist/xlsx/layout/header-footer-edit.d.ts +16 -0
  506. package/dist/xlsx/layout/header-footer-edit.d.ts.map +1 -0
  507. package/dist/xlsx/layout/index.d.ts +3 -0
  508. package/dist/xlsx/layout/index.d.ts.map +1 -1
  509. package/dist/xlsx/layout/page-break-view.d.ts +39 -0
  510. package/dist/xlsx/layout/page-break-view.d.ts.map +1 -0
  511. package/dist/xlsx/layout/page-view.d.ts +69 -0
  512. package/dist/xlsx/layout/page-view.d.ts.map +1 -0
  513. package/dist/xlsx/layout/ref-evaluator.d.ts.map +1 -1
  514. package/dist/xlsx/load/index.cjs +5718 -2191
  515. package/dist/xlsx/load/index.mjs +5717 -2190
  516. package/dist/xlsx/model-pivots.d.ts +88 -2
  517. package/dist/xlsx/model-pivots.d.ts.map +1 -1
  518. package/dist/xlsx/model-slicers.d.ts +146 -0
  519. package/dist/xlsx/model-slicers.d.ts.map +1 -0
  520. package/dist/xlsx/model-whatif.d.ts +51 -0
  521. package/dist/xlsx/model-whatif.d.ts.map +1 -0
  522. package/dist/xlsx/model.d.ts +26 -1
  523. package/dist/xlsx/model.d.ts.map +1 -1
  524. package/dist/xlsx/pivot/admission.d.ts.map +1 -1
  525. package/dist/xlsx/pivot/aggregate.d.ts +15 -6
  526. package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
  527. package/dist/xlsx/pivot/axes.d.ts +6 -0
  528. package/dist/xlsx/pivot/axes.d.ts.map +1 -0
  529. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
  530. package/dist/xlsx/pivot/columns.d.ts +48 -0
  531. package/dist/xlsx/pivot/columns.d.ts.map +1 -0
  532. package/dist/xlsx/pivot/data.d.ts +9 -3
  533. package/dist/xlsx/pivot/data.d.ts.map +1 -1
  534. package/dist/xlsx/pivot/date-axes.d.ts +12 -0
  535. package/dist/xlsx/pivot/date-axes.d.ts.map +1 -0
  536. package/dist/xlsx/pivot/date-group-read.d.ts +11 -0
  537. package/dist/xlsx/pivot/date-group-read.d.ts.map +1 -0
  538. package/dist/xlsx/pivot/date-groups.d.ts +60 -0
  539. package/dist/xlsx/pivot/date-groups.d.ts.map +1 -0
  540. package/dist/xlsx/pivot/date-read.d.ts +10 -0
  541. package/dist/xlsx/pivot/date-read.d.ts.map +1 -0
  542. package/dist/xlsx/pivot/dates.d.ts +17 -0
  543. package/dist/xlsx/pivot/dates.d.ts.map +1 -0
  544. package/dist/xlsx/pivot/group-read.d.ts +9 -0
  545. package/dist/xlsx/pivot/group-read.d.ts.map +1 -0
  546. package/dist/xlsx/pivot/groups.d.ts +31 -0
  547. package/dist/xlsx/pivot/groups.d.ts.map +1 -0
  548. package/dist/xlsx/pivot/hierarchy.d.ts +4 -1
  549. package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -1
  550. package/dist/xlsx/pivot/index.d.ts +7 -0
  551. package/dist/xlsx/pivot/index.d.ts.map +1 -1
  552. package/dist/xlsx/pivot/item-filters-read.d.ts +7 -0
  553. package/dist/xlsx/pivot/item-filters-read.d.ts.map +1 -0
  554. package/dist/xlsx/pivot/item-filters.d.ts +23 -0
  555. package/dist/xlsx/pivot/item-filters.d.ts.map +1 -0
  556. package/dist/xlsx/pivot/measures.d.ts +6 -4
  557. package/dist/xlsx/pivot/measures.d.ts.map +1 -1
  558. package/dist/xlsx/pivot/nested.d.ts +8 -0
  559. package/dist/xlsx/pivot/nested.d.ts.map +1 -0
  560. package/dist/xlsx/pivot/page-filter-admission.d.ts.map +1 -1
  561. package/dist/xlsx/pivot/page-filter.d.ts.map +1 -1
  562. package/dist/xlsx/pivot/read.d.ts +2 -1
  563. package/dist/xlsx/pivot/read.d.ts.map +1 -1
  564. package/dist/xlsx/pivot/subtotal-read.d.ts +9 -0
  565. package/dist/xlsx/pivot/subtotal-read.d.ts.map +1 -0
  566. package/dist/xlsx/pivot/subtotals.d.ts +23 -0
  567. package/dist/xlsx/pivot/subtotals.d.ts.map +1 -0
  568. package/dist/xlsx/pivot/table-xml.d.ts +1 -1
  569. package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
  570. package/dist/xlsx/pivot/values-axis.d.ts +2 -2
  571. package/dist/xlsx/pivot/values-axis.d.ts.map +1 -1
  572. package/dist/xlsx/read/chart-ex.d.ts +9 -0
  573. package/dist/xlsx/read/chart-ex.d.ts.map +1 -0
  574. package/dist/xlsx/read/chart.d.ts.map +1 -1
  575. package/dist/xlsx/read/drawing.d.ts.map +1 -1
  576. package/dist/xlsx/read/load.d.ts.map +1 -1
  577. package/dist/xlsx/read/package.d.ts +2 -1
  578. package/dist/xlsx/read/package.d.ts.map +1 -1
  579. package/dist/xlsx/read/scenarios.d.ts +4 -0
  580. package/dist/xlsx/read/scenarios.d.ts.map +1 -0
  581. package/dist/xlsx/read/sheet-data.d.ts.map +1 -1
  582. package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
  583. package/dist/xlsx/read/tables.d.ts +3 -0
  584. package/dist/xlsx/read/tables.d.ts.map +1 -1
  585. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  586. package/dist/xlsx/slicer/book.d.ts +16 -0
  587. package/dist/xlsx/slicer/book.d.ts.map +1 -0
  588. package/dist/xlsx/slicer/frame.d.ts +14 -0
  589. package/dist/xlsx/slicer/frame.d.ts.map +1 -0
  590. package/dist/xlsx/slicer/index.d.ts +10 -0
  591. package/dist/xlsx/slicer/index.d.ts.map +1 -0
  592. package/dist/xlsx/slicer/items.d.ts +30 -0
  593. package/dist/xlsx/slicer/items.d.ts.map +1 -0
  594. package/dist/xlsx/slicer/layout.d.ts +67 -0
  595. package/dist/xlsx/slicer/layout.d.ts.map +1 -0
  596. package/dist/xlsx/slicer/read-slicers.d.ts +11 -0
  597. package/dist/xlsx/slicer/read-slicers.d.ts.map +1 -0
  598. package/dist/xlsx/slicer/read-timelines.d.ts +5 -0
  599. package/dist/xlsx/slicer/read-timelines.d.ts.map +1 -0
  600. package/dist/xlsx/slicer/read.d.ts +26 -0
  601. package/dist/xlsx/slicer/read.d.ts.map +1 -0
  602. package/dist/xlsx/slicer/select.d.ts +10 -0
  603. package/dist/xlsx/slicer/select.d.ts.map +1 -0
  604. package/dist/xlsx/slicer/styles.d.ts +36 -0
  605. package/dist/xlsx/slicer/styles.d.ts.map +1 -0
  606. package/dist/xlsx/slicer/table-filter.d.ts +28 -0
  607. package/dist/xlsx/slicer/table-filter.d.ts.map +1 -0
  608. package/dist/xlsx/slicer/timeline-periods.d.ts +35 -0
  609. package/dist/xlsx/slicer/timeline-periods.d.ts.map +1 -0
  610. package/dist/xlsx/slicer/timeline-view.d.ts +60 -0
  611. package/dist/xlsx/slicer/timeline-view.d.ts.map +1 -0
  612. package/dist/xlsx/slicer/write-plan.d.ts +31 -0
  613. package/dist/xlsx/slicer/write-plan.d.ts.map +1 -0
  614. package/dist/xlsx/slicer/write-timeline.d.ts +7 -0
  615. package/dist/xlsx/slicer/write-timeline.d.ts.map +1 -0
  616. package/dist/xlsx/slicer/write-xml.d.ts +17 -0
  617. package/dist/xlsx/slicer/write-xml.d.ts.map +1 -0
  618. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
  619. package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
  620. package/dist/xlsx/ui/commands/i18n/print-layout.d.ts.map +1 -1
  621. package/dist/xlsx/ui/commands/i18n/slicers.d.ts +3 -0
  622. package/dist/xlsx/ui/commands/i18n/slicers.d.ts.map +1 -0
  623. package/dist/xlsx/ui/commands/i18n/what-if.d.ts +3 -0
  624. package/dist/xlsx/ui/commands/i18n/what-if.d.ts.map +1 -0
  625. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -1
  626. package/dist/xlsx/ui/commands/slicers.d.ts +37 -0
  627. package/dist/xlsx/ui/commands/slicers.d.ts.map +1 -0
  628. package/dist/xlsx/ui/commands/what-if.d.ts +4 -0
  629. package/dist/xlsx/ui/commands/what-if.d.ts.map +1 -0
  630. package/dist/xlsx/ui/commands.d.ts +2 -0
  631. package/dist/xlsx/ui/commands.d.ts.map +1 -1
  632. package/dist/xlsx/ui/index.cjs +6999 -3052
  633. package/dist/xlsx/ui/index.d.ts +2 -0
  634. package/dist/xlsx/ui/index.d.ts.map +1 -1
  635. package/dist/xlsx/ui/index.mjs +6994 -3053
  636. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
  637. package/dist/xlsx/ui/locales/de/options.d.ts +2 -0
  638. package/dist/xlsx/ui/locales/de/options.d.ts.map +1 -0
  639. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
  640. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
  641. package/dist/xlsx/ui/locales/en/options.d.ts +2 -0
  642. package/dist/xlsx/ui/locales/en/options.d.ts.map +1 -0
  643. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
  644. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
  645. package/dist/xlsx/ui/locales/es/options.d.ts +2 -0
  646. package/dist/xlsx/ui/locales/es/options.d.ts.map +1 -0
  647. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
  648. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
  649. package/dist/xlsx/ui/locales/fr/options.d.ts +2 -0
  650. package/dist/xlsx/ui/locales/fr/options.d.ts.map +1 -0
  651. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
  652. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
  653. package/dist/xlsx/ui/locales/zh-CN/options.d.ts +2 -0
  654. package/dist/xlsx/ui/locales/zh-CN/options.d.ts.map +1 -0
  655. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
  656. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -1
  657. package/dist/xlsx/write/carried-refs.d.ts.map +1 -1
  658. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  659. package/dist/xlsx/write/package-writer.d.ts +2 -0
  660. package/dist/xlsx/write/package-writer.d.ts.map +1 -1
  661. package/dist/xlsx/write/save.d.ts.map +1 -1
  662. package/dist/xlsx/write/scenarios.d.ts +4 -0
  663. package/dist/xlsx/write/scenarios.d.ts.map +1 -0
  664. package/dist/xlsx/write/sheet-data.d.ts.map +1 -1
  665. package/dist/xlsx/write/sheet-parts.d.ts +1 -0
  666. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
  667. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  668. package/dist/xlsx/write/table-patch.d.ts.map +1 -1
  669. package/dist/xlsx/write/tables.d.ts.map +1 -1
  670. package/dist/xlsx/write/worksheet.d.ts.map +1 -1
  671. package/dist/xml/index.cjs +28 -0
  672. package/dist/xml/index.mjs +27 -1
  673. package/dist/xml/namespaces.d.ts +2 -0
  674. package/dist/xml/namespaces.d.ts.map +1 -1
  675. package/dist/xml/xml.d.ts +15 -0
  676. package/dist/xml/xml.d.ts.map +1 -1
  677. package/package.json +1 -1
  678. package/dist/PptxHandler-RWTOUCLC.mjs +0 -3
  679. package/dist/PptxHandler-UU4ZCT6H.cjs +0 -12
  680. package/dist/chunk-KBIJI6P5.mjs +0 -166
  681. package/dist/pptx/chunks/elements-DmbzOhFu.d.ts.map +0 -1
  682. package/dist/pptx/chunks/index-BmvOxbsh.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
+ import { openNestedZip, openPptxZip } from './chunk-M4XLF4R7.mjs';
1
2
  import { cloneTextStyle, cloneElement, cloneXmlObject, parseOrderedWhen } from './chunk-54S5A5PZ.mjs';
2
3
  import { themeColorRefToSolidFillWithOpacity, normalizeHexColor, parseDrawingFraction, toHex, scrgbLinearToSrgb8, applyDrawingColorTransforms, parseDrawingHueDegrees, parseDrawingPercent, hslToRgb, clampUnitInterval, parseOoxmlPercent, resolveThemeColorRef } from './chunk-KII4AAYH.mjs';
3
- import JSZip2 from 'jszip';
4
4
  import { XMLBuilder, XMLParser } from 'fast-xml-parser';
5
+ import { DOMParser, XMLSerializer } from '@xmldom/xmldom';
5
6
 
6
7
  // pptx/core/types/type-guards.ts
7
8
  function isTextElement(element) {
@@ -561,11 +562,11 @@ function parsePptxJsonDocument(value) {
561
562
  if (!isRecord(slide)) {
562
563
  fail(`Invalid pptx-viewer-json document: slide ${index} is not an object.`);
563
564
  }
564
- const elements2 = slide.elements;
565
- if (elements2 !== void 0 && !Array.isArray(elements2)) {
565
+ const elements3 = slide.elements;
566
+ if (elements3 !== void 0 && !Array.isArray(elements3)) {
566
567
  fail(`Invalid pptx-viewer-json document: slide ${index} "elements" must be an array.`);
567
568
  }
568
- for (const [elementIndex, element] of (elements2 ?? []).entries()) {
569
+ for (const [elementIndex, element] of (elements3 ?? []).entries()) {
569
570
  if (!isRecord(element) || typeof element.type !== "string" || element.type.length === 0) {
570
571
  fail(
571
572
  `Invalid pptx-viewer-json document: slide ${index} element ${elementIndex} must be an object with a string "type" discriminant.`
@@ -632,8 +633,8 @@ function deserializeSlide(encoded) {
632
633
  slide[key] = decodeJsonValue(value);
633
634
  }
634
635
  }
635
- const elements2 = Array.isArray(encoded.elements) ? encoded.elements : [];
636
- slide.elements = elements2.map(
636
+ const elements3 = Array.isArray(encoded.elements) ? encoded.elements : [];
637
+ slide.elements = elements3.map(
637
638
  (element) => deserializeElement(element)
638
639
  );
639
640
  return slide;
@@ -740,6 +741,48 @@ function codePointToString(codePoint) {
740
741
  }
741
742
  }
742
743
 
744
+ // pptx/core/ppt/pptx/xml-utils.ts
745
+ function isInvalidXmlChar(code) {
746
+ return code >= 0 && code <= 8 || code === 11 || code === 12 || code >= 14 && code <= 31;
747
+ }
748
+ function stripInvalidXmlChars(value) {
749
+ let cleaned = "";
750
+ for (const ch of value) {
751
+ if (!isInvalidXmlChar(ch.charCodeAt(0))) {
752
+ cleaned += ch;
753
+ }
754
+ }
755
+ return cleaned;
756
+ }
757
+ function esc(value) {
758
+ return stripInvalidXmlChars(value).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
759
+ }
760
+ function escAttr(value) {
761
+ return encodeXmlAttributeValue(stripInvalidXmlChars(value)).replace(/"/g, "&quot;").replace(/'/g, "&apos;");
762
+ }
763
+ function escText(value) {
764
+ return encodeXmlTextValue(stripInvalidXmlChars(value));
765
+ }
766
+ function hexColor(rgb2) {
767
+ return rgb2.replace(/^#/, "").toUpperCase();
768
+ }
769
+ function solidFill(rgb2) {
770
+ return `<a:solidFill><a:srgbClr val="${hexColor(rgb2)}"/></a:solidFill>`;
771
+ }
772
+ function gradFill(stops, angleDeg) {
773
+ const gsLst = stops.map(
774
+ (s) => `<a:gs pos="${Math.round(s.position * 1e5)}"><a:srgbClr val="${hexColor(
775
+ s.rgb
776
+ )}"/></a:gs>`
777
+ ).join("");
778
+ const angle = Math.round((angleDeg % 360 + 360) % 360 * 6e4);
779
+ return `<a:gradFill><a:gsLst>${gsLst}</a:gsLst><a:lin ang="${angle}" scaled="1"/></a:gradFill>`;
780
+ }
781
+ function emu(value) {
782
+ return Math.round(value);
783
+ }
784
+ var PML_XMLNS = 'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"';
785
+
743
786
  // pptx/core/geometry/custom-geometry-command-order.ts
744
787
  var ORDER_SUFFIX = "#pptx-order-";
745
788
  var commandOrder = /* @__PURE__ */ new WeakMap();
@@ -7337,15 +7380,15 @@ var heart = {
7337
7380
  };
7338
7381
  function buildIrregularSeal(name, points) {
7339
7382
  const commands = [];
7340
- const first = points[0];
7341
- if (!first) {
7383
+ const first2 = points[0];
7384
+ if (!first2) {
7342
7385
  return {
7343
7386
  name,
7344
7387
  rect: FULL_RECT7,
7345
7388
  pathLst: [{ commands: [{ kind: "close" }] }]
7346
7389
  };
7347
7390
  }
7348
- commands.push({ kind: "moveTo", x: String(first[0]), y: String(first[1]) });
7391
+ commands.push({ kind: "moveTo", x: String(first2[0]), y: String(first2[1]) });
7349
7392
  for (let i2 = 1; i2 < points.length; i2++) {
7350
7393
  const p = points[i2];
7351
7394
  commands.push({ kind: "lnTo", x: String(p[0]), y: String(p[1]) });
@@ -9700,55 +9743,65 @@ var downArrow = {
9700
9743
  }
9701
9744
  ]
9702
9745
  };
9746
+ var wedgePointerGuides = [
9747
+ gd16("dxPos", "*/ w adj1 100000"),
9748
+ gd16("dyPos", "*/ h adj2 100000"),
9749
+ gd16("xPos", "+- hc dxPos 0"),
9750
+ gd16("yPos", "+- vc dyPos 0"),
9751
+ gd16("dx", "+- xPos 0 hc"),
9752
+ gd16("dy", "+- yPos 0 vc"),
9753
+ gd16("dq", "*/ dxPos h w"),
9754
+ gd16("ady", "abs dy"),
9755
+ gd16("adq", "abs dq"),
9756
+ gd16("dz", "+- ady 0 adq"),
9757
+ gd16("xg1", "?: dxPos 7 2"),
9758
+ gd16("xg2", "?: dxPos 10 5"),
9759
+ gd16("x1", "*/ w xg1 12"),
9760
+ gd16("x2", "*/ w xg2 12"),
9761
+ gd16("yg1", "?: dyPos 7 2"),
9762
+ gd16("yg2", "?: dyPos 10 5"),
9763
+ gd16("y1", "*/ h yg1 12"),
9764
+ gd16("y2", "*/ h yg2 12"),
9765
+ gd16("t1", "?: dxPos l xPos"),
9766
+ gd16("xl", "?: dz l t1"),
9767
+ gd16("t2", "?: dyPos x1 xPos"),
9768
+ gd16("xt", "?: dz t2 x1"),
9769
+ gd16("t3", "?: dxPos xPos r"),
9770
+ gd16("xr", "?: dz r t3"),
9771
+ gd16("t4", "?: dyPos xPos x1"),
9772
+ gd16("xb", "?: dz t4 x1"),
9773
+ gd16("t5", "?: dxPos y1 yPos"),
9774
+ gd16("yl", "?: dz y1 t5"),
9775
+ gd16("t6", "?: dyPos t yPos"),
9776
+ gd16("yt", "?: dz t6 t"),
9777
+ gd16("t7", "?: dxPos yPos y1"),
9778
+ gd16("yr", "?: dz y1 t7"),
9779
+ gd16("t8", "?: dyPos yPos b"),
9780
+ gd16("yb", "?: dz t8 b")
9781
+ ];
9703
9782
  var wedgeRectCallout = {
9704
9783
  name: "wedgeRectCallout",
9705
9784
  avLst: { adj1: -20833, adj2: 62500 },
9706
- gdLst: [
9707
- gd16("dxPos", "*/ w adj1 100000"),
9708
- gd16("dyPos", "*/ h adj2 100000"),
9709
- gd16("xPos", "+- hc dxPos 0"),
9710
- gd16("yPos", "+- vc dyPos 0"),
9711
- gd16("dx", "+- xPos 0 hc"),
9712
- gd16("dy", "+- yPos 0 vc"),
9713
- gd16("dq", "*/ dxPos h w"),
9714
- gd16("ady", "abs dy"),
9715
- gd16("adq", "abs dq"),
9716
- gd16("xg1", "?: dxPos 7 2"),
9717
- gd16("xg2", "?: dxPos 10 5"),
9718
- gd16("x1", "*/ w xg1 12"),
9719
- gd16("x2", "*/ w xg2 12"),
9720
- gd16("yg1", "?: dyPos 7 2"),
9721
- gd16("yg2", "?: dyPos 10 5"),
9722
- gd16("y1", "*/ h yg1 12"),
9723
- gd16("y2", "*/ h yg2 12"),
9724
- gd16("t1", "?: dxPos l xPos"),
9725
- gd16("xl", "?: ady adq t1 l"),
9726
- gd16("t2", "?: dyPos yPos t"),
9727
- gd16("yt", "?: ady adq t t2"),
9728
- gd16("t3", "?: dxPos xPos r"),
9729
- gd16("xr", "?: ady adq t3 r"),
9730
- gd16("t4", "?: dyPos b yPos"),
9731
- gd16("yb", "?: ady adq b t4")
9732
- ],
9785
+ gdLst: wedgePointerGuides,
9733
9786
  rect: FULL_RECT11,
9734
9787
  pathLst: [
9735
9788
  {
9736
9789
  commands: [
9737
9790
  { kind: "moveTo", x: "l", y: "t" },
9738
9791
  { kind: "lnTo", x: "x1", y: "t" },
9739
- { kind: "lnTo", x: "xl", y: "yt" },
9792
+ { kind: "lnTo", x: "xt", y: "yt" },
9740
9793
  { kind: "lnTo", x: "x2", y: "t" },
9741
9794
  { kind: "lnTo", x: "r", y: "t" },
9742
9795
  { kind: "lnTo", x: "r", y: "y1" },
9743
- { kind: "lnTo", x: "xr", y: "yt" },
9796
+ { kind: "lnTo", x: "xr", y: "yr" },
9744
9797
  { kind: "lnTo", x: "r", y: "y2" },
9745
9798
  { kind: "lnTo", x: "r", y: "b" },
9746
9799
  { kind: "lnTo", x: "x2", y: "b" },
9747
- { kind: "lnTo", x: "xl", y: "yb" },
9800
+ { kind: "lnTo", x: "xb", y: "yb" },
9748
9801
  { kind: "lnTo", x: "x1", y: "b" },
9749
9802
  { kind: "lnTo", x: "l", y: "b" },
9750
9803
  { kind: "lnTo", x: "l", y: "y2" },
9751
- { kind: "lnTo", x: "xr", y: "yb" },
9804
+ { kind: "lnTo", x: "xl", y: "yl" },
9752
9805
  { kind: "lnTo", x: "l", y: "y1" },
9753
9806
  { kind: "close" }
9754
9807
  ]
@@ -9759,31 +9812,38 @@ var wedgeRoundRectCallout = {
9759
9812
  name: "wedgeRoundRectCallout",
9760
9813
  avLst: { adj1: -20833, adj2: 62500, adj3: 16667 },
9761
9814
  gdLst: [
9762
- gd16("dxPos", "*/ w adj1 100000"),
9763
- gd16("dyPos", "*/ h adj2 100000"),
9764
- gd16("xPos", "+- hc dxPos 0"),
9765
- gd16("yPos", "+- vc dyPos 0"),
9815
+ ...wedgePointerGuides,
9766
9816
  gd16("a3", "pin 0 adj3 50000"),
9767
9817
  gd16("rad", "*/ ss a3 100000"),
9768
- gd16("x1", "+- l rad 0"),
9769
- gd16("x2", "+- r 0 rad"),
9770
- gd16("y1", "+- t rad 0"),
9771
- gd16("y2", "+- b 0 rad")
9818
+ gd16("xc1", "+- l rad 0"),
9819
+ gd16("xc2", "+- r 0 rad"),
9820
+ gd16("yc1", "+- t rad 0"),
9821
+ gd16("yc2", "+- b 0 rad")
9772
9822
  ],
9773
9823
  rect: FULL_RECT11,
9774
9824
  pathLst: [
9775
9825
  {
9776
9826
  commands: [
9777
- { kind: "moveTo", x: "l", y: "y1" },
9827
+ { kind: "moveTo", x: "l", y: "yc1" },
9778
9828
  { kind: "arcTo", wR: "rad", hR: "rad", stAng: "cd2", swAng: "cd4" },
9829
+ { kind: "lnTo", x: "x1", y: "t" },
9830
+ { kind: "lnTo", x: "xt", y: "yt" },
9779
9831
  { kind: "lnTo", x: "x2", y: "t" },
9832
+ { kind: "lnTo", x: "xc2", y: "t" },
9780
9833
  { kind: "arcTo", wR: "rad", hR: "rad", stAng: "3cd4", swAng: "cd4" },
9834
+ { kind: "lnTo", x: "r", y: "y1" },
9835
+ { kind: "lnTo", x: "xr", y: "yr" },
9781
9836
  { kind: "lnTo", x: "r", y: "y2" },
9837
+ { kind: "lnTo", x: "r", y: "yc2" },
9782
9838
  { kind: "arcTo", wR: "rad", hR: "rad", stAng: "0", swAng: "cd4" },
9783
- { kind: "lnTo", x: "xPos", y: "b" },
9784
- { kind: "lnTo", x: "xPos", y: "yPos" },
9839
+ { kind: "lnTo", x: "x2", y: "b" },
9840
+ { kind: "lnTo", x: "xb", y: "yb" },
9785
9841
  { kind: "lnTo", x: "x1", y: "b" },
9842
+ { kind: "lnTo", x: "xc1", y: "b" },
9786
9843
  { kind: "arcTo", wR: "rad", hR: "rad", stAng: "cd4", swAng: "cd4" },
9844
+ { kind: "lnTo", x: "l", y: "y2" },
9845
+ { kind: "lnTo", x: "xl", y: "yl" },
9846
+ { kind: "lnTo", x: "l", y: "y1" },
9787
9847
  { kind: "close" }
9788
9848
  ]
9789
9849
  }
@@ -9798,7 +9858,7 @@ var wedgeEllipseCallout = {
9798
9858
  gd16("xPos", "+- hc dxPos 0"),
9799
9859
  gd16("yPos", "+- vc dyPos 0"),
9800
9860
  gd16("sdx", "*/ dxPos hd2 wd2"),
9801
- gd16("sdy", "val dyPos"),
9861
+ gd16("sdy", "*/ dyPos wd2 hd2"),
9802
9862
  gd16("pang", "at2 sdx sdy"),
9803
9863
  gd16("stAng", "+- pang 660000 0"),
9804
9864
  gd16("enAng", "+- pang 0 660000"),
@@ -9810,17 +9870,15 @@ var wedgeEllipseCallout = {
9810
9870
  gd16("dy2", "sin hd2 enAng"),
9811
9871
  gd16("x2", "+- hc dx2 0"),
9812
9872
  gd16("y2", "+- vc dy2 0"),
9813
- gd16("stAng1", "at2 dx1 dy1"),
9814
- gd16("enAngFinal", "at2 dx2 dy2"),
9815
- gd16("swAng1", "+- enAngFinal 0 stAng1"),
9816
- gd16("swAng", "?: swAng1 swAng1 +- swAng1 21600000 0")
9873
+ // The arc runs the long way round, from the first pointer edge to the second.
9874
+ gd16("swAng", "+- 21600000 0 1320000")
9817
9875
  ],
9818
9876
  rect: FULL_RECT11,
9819
9877
  pathLst: [
9820
9878
  {
9821
9879
  commands: [
9822
9880
  { kind: "moveTo", x: "x1", y: "y1" },
9823
- { kind: "arcTo", wR: "wd2", hR: "hd2", stAng: "stAng1", swAng: "swAng" },
9881
+ { kind: "arcTo", wR: "wd2", hR: "hd2", stAng: "stAng", swAng: "swAng" },
9824
9882
  { kind: "lnTo", x: "xPos", y: "yPos" },
9825
9883
  { kind: "close" }
9826
9884
  ]
@@ -16020,12 +16078,12 @@ function reassignDescendantIds(element, mintId) {
16020
16078
  reassignDescendantIds(child13, mintId);
16021
16079
  }
16022
16080
  }
16023
- function groupElements(elements2, ids, groupId) {
16081
+ function groupElements(elements3, ids, groupId) {
16024
16082
  const idSet = new Set(ids);
16025
16083
  const gathered = [];
16026
16084
  let insertionIndex = -1;
16027
- for (let i2 = 0; i2 < elements2.length; i2++) {
16028
- const el = elements2[i2];
16085
+ for (let i2 = 0; i2 < elements3.length; i2++) {
16086
+ const el = elements3[i2];
16029
16087
  if (idSet.has(el.id)) {
16030
16088
  gathered.push(el);
16031
16089
  if (insertionIndex === -1) {
@@ -16034,7 +16092,7 @@ function groupElements(elements2, ids, groupId) {
16034
16092
  }
16035
16093
  }
16036
16094
  if (gathered.length < 2) {
16037
- return { elements: [...elements2], groupId: null };
16095
+ return { elements: [...elements3], groupId: null };
16038
16096
  }
16039
16097
  let minX = gathered[0].x;
16040
16098
  let minY = gathered[0].y;
@@ -16057,7 +16115,7 @@ function groupElements(elements2, ids, groupId) {
16057
16115
  maxY = ry;
16058
16116
  }
16059
16117
  }
16060
- const children5 = gathered.map((el) => {
16118
+ const children6 = gathered.map((el) => {
16061
16119
  const child13 = cloneElement(el);
16062
16120
  child13.x = el.x - minX;
16063
16121
  child13.y = el.y - minY;
@@ -16071,12 +16129,12 @@ function groupElements(elements2, ids, groupId) {
16071
16129
  y: minY,
16072
16130
  width: maxX - minX,
16073
16131
  height: maxY - minY,
16074
- children: children5
16132
+ children: children6
16075
16133
  };
16076
- const remaining = elements2.filter((el) => !idSet.has(el.id));
16134
+ const remaining = elements3.filter((el) => !idSet.has(el.id));
16077
16135
  let adjustedIndex = 0;
16078
16136
  for (let i2 = 0; i2 < insertionIndex; i2++) {
16079
- if (!idSet.has(elements2[i2].id)) {
16137
+ if (!idSet.has(elements3[i2].id)) {
16080
16138
  adjustedIndex++;
16081
16139
  }
16082
16140
  }
@@ -16085,14 +16143,14 @@ function groupElements(elements2, ids, groupId) {
16085
16143
  groupId
16086
16144
  };
16087
16145
  }
16088
- function ungroupElements(elements2, groupId, childIds, options = {}) {
16089
- const groupIndex = elements2.findIndex((el) => el.id === groupId);
16146
+ function ungroupElements(elements3, groupId, childIds, options = {}) {
16147
+ const groupIndex = elements3.findIndex((el) => el.id === groupId);
16090
16148
  if (groupIndex === -1) {
16091
- return { elements: [...elements2], childIds: [] };
16149
+ return { elements: [...elements3], childIds: [] };
16092
16150
  }
16093
- const group = elements2[groupIndex];
16151
+ const group = elements3[groupIndex];
16094
16152
  if (group.type !== "group") {
16095
- return { elements: [...elements2], childIds: [] };
16153
+ return { elements: [...elements3], childIds: [] };
16096
16154
  }
16097
16155
  const intoTemplate = options.intoTemplate ?? isTemplateElementId(group.id);
16098
16156
  const usedChildIds = [];
@@ -16110,7 +16168,7 @@ function ungroupElements(elements2, groupId, childIds, options = {}) {
16110
16168
  return promoted;
16111
16169
  });
16112
16170
  return {
16113
- elements: [...elements2.slice(0, groupIndex), ...expanded, ...elements2.slice(groupIndex + 1)],
16171
+ elements: [...elements3.slice(0, groupIndex), ...expanded, ...elements3.slice(groupIndex + 1)],
16114
16172
  childIds: usedChildIds
16115
16173
  };
16116
16174
  }
@@ -17777,15 +17835,15 @@ function normalizePath(path, rootName) {
17777
17835
  return parts;
17778
17836
  }
17779
17837
  function child2(entries, parentId, name) {
17780
- const children5 = entries.filter((entry) => entry.parentId === parentId && entry.path !== void 0);
17838
+ const children6 = entries.filter((entry) => entry.parentId === parentId && entry.path !== void 0);
17781
17839
  const pick = (matches) => matches.length === 1 ? matches[0] : void 0;
17782
- const exact = children5.filter((entry) => entry.name === name);
17840
+ const exact = children6.filter((entry) => entry.name === name);
17783
17841
  if (exact.length)
17784
17842
  return pick(exact);
17785
- const folded = children5.filter((entry) => sameName(entry.name, name));
17843
+ const folded = children6.filter((entry) => sameName(entry.name, name));
17786
17844
  if (folded.length)
17787
17845
  return pick(folded);
17788
- return pick(children5.filter((entry) => sameName(bareName(entry.name), bareName(name))));
17846
+ return pick(children6.filter((entry) => sameName(bareName(entry.name), bareName(name))));
17789
17847
  }
17790
17848
  function findDirectoryEntry(entries, path) {
17791
17849
  const root = entries.find((entry) => entry.type === ENTRY_TYPE_ROOT);
@@ -18587,6 +18645,8 @@ function replaceOleEmbedding(originalBytes, newPayloadBytes, options = {}) {
18587
18645
  return newPayloadBytes;
18588
18646
  }
18589
18647
  }
18648
+
18649
+ // pptx/core/utils/ole-payload-kind.ts
18590
18650
  var ZIP_MAGIC = [80, 75, 3, 4];
18591
18651
  function isZipMagic(bytes) {
18592
18652
  if (bytes.length < 4) {
@@ -18600,7 +18660,7 @@ async function detectOlePayloadEditorKind(bytes) {
18600
18660
  }
18601
18661
  if (isZipMagic(bytes)) {
18602
18662
  try {
18603
- const zip = await JSZip2.loadAsync(bytes);
18663
+ const zip = await openNestedZip(bytes);
18604
18664
  if (zip.file("xl/workbook.xml")) {
18605
18665
  return "sheet-xlsx";
18606
18666
  }
@@ -18655,8 +18715,8 @@ function xmlChild(node, key) {
18655
18715
  }
18656
18716
  const value = node[key];
18657
18717
  if (Array.isArray(value)) {
18658
- const first = value[0];
18659
- return isXmlObject(first) ? first : void 0;
18718
+ const first2 = value[0];
18719
+ return isXmlObject(first2) ? first2 : void 0;
18660
18720
  }
18661
18721
  return isXmlObject(value) ? value : void 0;
18662
18722
  }
@@ -18685,8 +18745,8 @@ function ensureXmlChild(parent, key) {
18685
18745
  return existing;
18686
18746
  }
18687
18747
  if (Array.isArray(existing)) {
18688
- const first = existing[0];
18689
- return isXmlObject(first) ? first : void 0;
18748
+ const first2 = existing[0];
18749
+ return isXmlObject(first2) ? first2 : void 0;
18690
18750
  }
18691
18751
  if (existing === "" || existing === void 0 || existing === null) {
18692
18752
  const created = {};
@@ -19067,7 +19127,7 @@ function cellDisplayValue(cell, sharedStrings) {
19067
19127
  }
19068
19128
  async function readOleSheetGrid(xlsxBytes, maxRows = DEFAULT_MAX_ROWS, maxCols = DEFAULT_MAX_COLS) {
19069
19129
  try {
19070
- const zip = await JSZip2.loadAsync(xlsxBytes);
19130
+ const zip = await openNestedZip(xlsxBytes);
19071
19131
  const sheetFile = zip.file(FIRST_SHEET_PATH);
19072
19132
  if (!sheetFile) {
19073
19133
  return void 0;
@@ -19126,7 +19186,7 @@ function markFullCalcOnLoad(workbookXml, parser, builder3) {
19126
19186
  }
19127
19187
  async function writeOleSheetCellEdit(xlsxBytes, edit) {
19128
19188
  try {
19129
- const zip = await JSZip2.loadAsync(xlsxBytes);
19189
+ const zip = await openNestedZip(xlsxBytes);
19130
19190
  const sheetFile = zip.file(FIRST_SHEET_PATH);
19131
19191
  if (!sheetFile) {
19132
19192
  return xlsxBytes;
@@ -19667,14 +19727,14 @@ function editXlsNumericCell(input, edit) {
19667
19727
  if (record.opcode === 189) {
19668
19728
  if (record.length < 12 || (record.length - 6) % 6 !== 0)
19669
19729
  return unchanged("malformed-records");
19670
- const first = view.getUint16(p + 2, true);
19730
+ const first2 = view.getUint16(p + 2, true);
19671
19731
  const lastCol = view.getUint16(p + record.length - 2, true);
19672
- if (lastCol > 255 || lastCol < first || lastCol - first + 1 !== (record.length - 6) / 6)
19732
+ if (lastCol > 255 || lastCol < first2 || lastCol - first2 + 1 !== (record.length - 6) / 6)
19673
19733
  return unchanged("malformed-records");
19674
- if (view.getUint16(p, true) === edit.row && edit.col >= first && edit.col <= lastCol) {
19734
+ if (view.getUint16(p, true) === edit.row && edit.col >= first2 && edit.col <= lastCol) {
19675
19735
  if (++matches > 1)
19676
19736
  return unchanged("ambiguous-cell");
19677
- payload = p + 6 + (edit.col - first) * 6;
19737
+ payload = p + 6 + (edit.col - first2) * 6;
19678
19738
  packed = true;
19679
19739
  }
19680
19740
  } else if (record.opcode === 515 || record.opcode === 638) {
@@ -19694,11 +19754,11 @@ function editXlsNumericCell(input, edit) {
19694
19754
  } else if (record.opcode === 190) {
19695
19755
  if (record.length < 8 || (record.length - 6) % 2 !== 0)
19696
19756
  return unchanged("malformed-records");
19697
- const first = view.getUint16(p + 2, true);
19757
+ const first2 = view.getUint16(p + 2, true);
19698
19758
  const lastCol = view.getUint16(p + record.length - 2, true);
19699
- if (lastCol > 255 || lastCol < first || lastCol - first + 1 !== (record.length - 6) / 2)
19759
+ if (lastCol > 255 || lastCol < first2 || lastCol - first2 + 1 !== (record.length - 6) / 2)
19700
19760
  return unchanged("malformed-records");
19701
- if (view.getUint16(p, true) === edit.row && edit.col >= first && edit.col <= lastCol && ++matches > 1)
19761
+ if (view.getUint16(p, true) === edit.row && edit.col >= first2 && edit.col <= lastCol && ++matches > 1)
19702
19762
  return unchanged("ambiguous-cell");
19703
19763
  }
19704
19764
  }
@@ -20087,8 +20147,8 @@ function isCellOpcode(opcode) {
20087
20147
  function findRowCellRegion(bytes, range) {
20088
20148
  const records = readRecords(bytes, range.start, range.end);
20089
20149
  const dimensions = records.find((r) => r.opcode === OPCODE_DIMENSIONS);
20090
- const first = records.find((r) => r.opcode === OPCODE_ROW || isCellOpcode(r.opcode));
20091
- const start = first?.headerOffset ?? (dimensions ? dimensions.dataOffset + dimensions.length : range.start + 4);
20150
+ const first2 = records.find((r) => r.opcode === OPCODE_ROW || isCellOpcode(r.opcode));
20151
+ const start = first2?.headerOffset ?? (dimensions ? dimensions.dataOffset + dimensions.length : range.start + 4);
20092
20152
  const lastDbcell = [...records].reverse().find((r) => r.opcode === OPCODE_DBCELL);
20093
20153
  const lastCellOrRow = [...records].reverse().find((r) => r.opcode === OPCODE_ROW || isCellOpcode(r.opcode));
20094
20154
  const end = lastDbcell ? lastDbcell.dataOffset + lastDbcell.length : (lastCellOrRow?.dataOffset ?? start) + (lastCellOrRow?.length ?? 0);
@@ -20220,7 +20280,7 @@ function paragraphText(paragraph) {
20220
20280
  }
20221
20281
  async function readOleDocumentParagraphs(docxBytes) {
20222
20282
  try {
20223
- const zip = await JSZip2.loadAsync(docxBytes);
20283
+ const zip = await openNestedZip(docxBytes);
20224
20284
  const documentFile = zip.file(DOCUMENT_PART_PATH);
20225
20285
  if (!documentFile) {
20226
20286
  return void 0;
@@ -20238,7 +20298,7 @@ async function readOleDocumentParagraphs(docxBytes) {
20238
20298
  }
20239
20299
  async function writeOleDocumentParagraphEdit(docxBytes, paragraphIndex, text) {
20240
20300
  try {
20241
- const zip = await JSZip2.loadAsync(docxBytes);
20301
+ const zip = await openNestedZip(docxBytes);
20242
20302
  const documentFile = zip.file(DOCUMENT_PART_PATH);
20243
20303
  if (!documentFile) {
20244
20304
  return docxBytes;
@@ -21686,9 +21746,9 @@ function tryWriteOleDocParagraphEdit(docBytes, paragraphIndex, text, limits) {
21686
21746
  function isTextBearingElement(el) {
21687
21747
  return el.type === "text" || el.type === "shape";
21688
21748
  }
21689
- function collectTextBearingElements(elements2) {
21749
+ function collectTextBearingElements(elements3) {
21690
21750
  const result = [];
21691
- for (const el of elements2) {
21751
+ for (const el of elements3) {
21692
21752
  if (isTextBearingElement(el)) {
21693
21753
  result.push(el);
21694
21754
  }
@@ -21698,8 +21758,8 @@ function collectTextBearingElements(elements2) {
21698
21758
  }
21699
21759
  return result;
21700
21760
  }
21701
- function findTextBearingElementById(elements2, elementId) {
21702
- for (const el of elements2) {
21761
+ function findTextBearingElementById(elements3, elementId) {
21762
+ for (const el of elements3) {
21703
21763
  if (isTextBearingElement(el) && el.id === elementId) {
21704
21764
  return el;
21705
21765
  }
@@ -21714,7 +21774,7 @@ function findTextBearingElementById(elements2, elementId) {
21714
21774
  }
21715
21775
  async function loadNestedDeck(pptxBytes) {
21716
21776
  try {
21717
- const { PptxHandler } = await import('./PptxHandler-FIN6XDTI.mjs');
21777
+ const { PptxHandler } = await import('./PptxHandler-KNBFECUE.mjs');
21718
21778
  const handler = new PptxHandler();
21719
21779
  const data = await handler.load(pptxBytes.buffer.slice(0));
21720
21780
  return { handler, slides: data.slides };
@@ -24224,10 +24284,10 @@ function projectSmartArtNodeText(node, fallbackStyle = {}, options = {}) {
24224
24284
  const paragraph = paragraphs[paragraphIndex];
24225
24285
  const pStyle = paragraphStyle(paragraph, fallbackStyle);
24226
24286
  const metadata = paragraphMetadata(paragraph, paragraphIndex, options.bulletEnabled ?? false);
24227
- let first = true;
24287
+ let first2 = true;
24228
24288
  const push2 = (segment) => {
24229
- segments.push(first ? { ...segment, ...metadata } : segment);
24230
- first = false;
24289
+ segments.push(first2 ? { ...segment, ...metadata } : segment);
24290
+ first2 = false;
24231
24291
  };
24232
24292
  for (const item of paragraph.items) {
24233
24293
  if (item.kind === "run") {
@@ -24254,7 +24314,7 @@ function projectSmartArtNodeText(node, fallbackStyle = {}, options = {}) {
24254
24314
  push2({ text: " ", style: pStyle });
24255
24315
  }
24256
24316
  }
24257
- if (first) {
24317
+ if (first2) {
24258
24318
  push2({ text: "", style: { ...pStyle, ...paragraph.endParaStyle } });
24259
24319
  }
24260
24320
  if (paragraphIndex < paragraphs.length - 1) {
@@ -24417,7 +24477,7 @@ function interpretedLayoutToElements(result, nodes, containerBounds, bulletEnabl
24417
24477
  const renderedIds = new Set(
24418
24478
  result.nodes.flatMap((r) => [r.nodeId, ...r.foldedNodeIds ?? []]).filter((id) => Boolean(id))
24419
24479
  );
24420
- const elements2 = [];
24480
+ const elements3 = [];
24421
24481
  for (const rendered of result.nodes) {
24422
24482
  const node = rendered.nodeId ? nodeById.get(rendered.nodeId) : void 0;
24423
24483
  const fontSize = rendered.fontSize;
@@ -24437,7 +24497,7 @@ function interpretedLayoutToElements(result, nodes, containerBounds, bulletEnabl
24437
24497
  rotation: rendered.rotation,
24438
24498
  ...rendered.shapeAdjustments ? { shapeAdjustments: rendered.shapeAdjustments } : {}
24439
24499
  };
24440
- const push2 = (element) => elements2.push(tagSmartArtElementStyleLabel(element, rendered.styleLabel));
24500
+ const push2 = (element) => elements3.push(tagSmartArtElementStyleLabel(element, rendered.styleLabel));
24441
24501
  if (rendered.kind === "rect") {
24442
24502
  push2(
24443
24503
  makeShapeElement(
@@ -24495,7 +24555,7 @@ function interpretedLayoutToElements(result, nodes, containerBounds, bulletEnabl
24495
24555
  );
24496
24556
  }
24497
24557
  }
24498
- return elements2;
24558
+ return elements3;
24499
24559
  }
24500
24560
 
24501
24561
  // diagram/layout/smartart-layout-interpreter-axis-hop.ts
@@ -25743,21 +25803,21 @@ function resolveNonHierarchyChoose(view, node, resolvedAlg, nodeCount, whenConte
25743
25803
  // diagram/layout/smartart-layout-interpreter-tree-location.ts
25744
25804
  function walkWithTreeLocation(node, visit, location = { position: 1, total: 1, depth: 0 }) {
25745
25805
  visit(node, location);
25746
- const children5 = node.children ?? [];
25747
- children5.forEach((child13, i2) => {
25806
+ const children6 = node.children ?? [];
25807
+ children6.forEach((child13, i2) => {
25748
25808
  walkWithTreeLocation(child13, visit, {
25749
25809
  position: i2 + 1,
25750
- total: children5.length,
25810
+ total: children6.length,
25751
25811
  depth: location.depth + 1
25752
25812
  });
25753
25813
  });
25754
25814
  }
25755
25815
  function treeMaxDepth(node, depth = 0) {
25756
- const children5 = node.children ?? [];
25757
- if (children5.length === 0) {
25816
+ const children6 = node.children ?? [];
25817
+ if (children6.length === 0) {
25758
25818
  return depth;
25759
25819
  }
25760
- return Math.max(...children5.map((child13) => treeMaxDepth(child13, depth + 1)));
25820
+ return Math.max(...children6.map((child13) => treeMaxDepth(child13, depth + 1)));
25761
25821
  }
25762
25822
 
25763
25823
  // diagram/layout/smartart-layout-interpreter-model.ts
@@ -26296,13 +26356,13 @@ function resolveRingItemNode(constraintNode, arrangerConstraints) {
26296
26356
  const sibSpName = (arrangerConstraints ?? []).find(
26297
26357
  (c) => c.type === "sibSp" && typeof c.referenceForName === "string"
26298
26358
  )?.referenceForName;
26299
- const named = sibSpName ? (constraintNode.children ?? []).find((child13) => child13.name === sibSpName) : void 0;
26300
- if (named?.forEachOrigin) {
26301
- return named;
26359
+ const named2 = sibSpName ? (constraintNode.children ?? []).find((child13) => child13.name === sibSpName) : void 0;
26360
+ if (named2?.forEachOrigin) {
26361
+ return named2;
26302
26362
  }
26303
- const children5 = constraintNode.children ?? [];
26304
- const repeating = children5.find((child13) => child13.forEachOrigin && child13.algorithm?.type !== "conn") ?? children5.find((child13) => child13.forEachOrigin);
26305
- return repeating ?? named ?? itemNode(constraintNode);
26363
+ const children6 = constraintNode.children ?? [];
26364
+ const repeating = children6.find((child13) => child13.forEachOrigin && child13.algorithm?.type !== "conn") ?? children6.find((child13) => child13.forEachOrigin);
26365
+ return repeating ?? named2 ?? itemNode(constraintNode);
26306
26366
  }
26307
26367
 
26308
26368
  // diagram/layout/smartart-layout-interpreter-cycle-sibtrans.ts
@@ -26415,8 +26475,8 @@ function hasMaxDepthGuard(node) {
26415
26475
  return node.chooseGuard?.some((guard) => guard.function === "maxDepth") ?? false;
26416
26476
  }
26417
26477
  function buildCycleRingExtensions(parentCentre, parentNode, context, path) {
26418
- const children5 = context.childrenOf.get(parentNode.id) ?? [];
26419
- if (children5.length === 0) {
26478
+ const children6 = context.childrenOf.get(parentNode.id) ?? [];
26479
+ if (children6.length === 0) {
26420
26480
  return { nodes: [], connectors: [] };
26421
26481
  }
26422
26482
  const dx = parentCentre.x - context.ringCentre.x;
@@ -26425,11 +26485,11 @@ function buildCycleRingExtensions(parentCentre, parentNode, context, path) {
26425
26485
  const baseAngleRad = dist > 1e-6 ? Math.atan2(dy, dx) : 0;
26426
26486
  const halfExtent = Math.max(context.itemWidth, context.itemHeight) / 2;
26427
26487
  const radius = context.itemWidth / 2 + Math.max(0, context.gapPx) + halfExtent;
26428
- const count = children5.length;
26488
+ const count = children6.length;
26429
26489
  const spanRad = context.fanSpanDeg * DEG_TO_RAD;
26430
26490
  const nodes = [];
26431
26491
  const connectors2 = [];
26432
- children5.forEach((child13, i2) => {
26492
+ children6.forEach((child13, i2) => {
26433
26493
  const angle = count === 1 ? baseAngleRad : baseAngleRad - spanRad / 2 + spanRad * i2 / (count - 1);
26434
26494
  const cx = parentCentre.x + Math.cos(angle) * radius;
26435
26495
  const cy = parentCentre.y + Math.sin(angle) * radius;
@@ -28521,13 +28581,13 @@ function compoundChildIds(role, node, childrenOf) {
28521
28581
  if (chIndex < 0) {
28522
28582
  return [];
28523
28583
  }
28524
- const children5 = childrenOf.get(node.id) ?? [];
28584
+ const children6 = childrenOf.get(node.id) ?? [];
28525
28585
  const start = role.presentationOf?.start?.[chIndex] ?? 1;
28526
28586
  const count = role.presentationOf?.count?.[chIndex];
28527
- const positions = positionRange(start, count, 1, children5.length);
28587
+ const positions = positionRange(start, count, 1, children6.length);
28528
28588
  const ids = [];
28529
28589
  for (const position2 of positions) {
28530
- const child13 = children5[position2 - 1];
28590
+ const child13 = children6[position2 - 1];
28531
28591
  if (!child13 || child13.text.trim().length === 0) {
28532
28592
  continue;
28533
28593
  }
@@ -29519,12 +29579,12 @@ function winningOrdinalFor(guardsByOrdinal, nodeCount, flat) {
29519
29579
  }
29520
29580
  return void 0;
29521
29581
  }
29522
- function selectFirstMatchChildren(children5, flat) {
29523
- if (children5.every((child13) => (child13.chooseGroups?.length ?? 0) === 0)) {
29524
- return children5;
29582
+ function selectFirstMatchChildren(children6, flat) {
29583
+ if (children6.every((child13) => (child13.chooseGroups?.length ?? 0) === 0)) {
29584
+ return children6;
29525
29585
  }
29526
29586
  const guardsByGroup = /* @__PURE__ */ new Map();
29527
- for (const child13 of children5) {
29587
+ for (const child13 of children6) {
29528
29588
  for (const entry of child13.chooseGroups ?? []) {
29529
29589
  let byOrdinal = guardsByGroup.get(entry.id);
29530
29590
  if (!byOrdinal) {
@@ -29541,7 +29601,7 @@ function selectFirstMatchChildren(children5, flat) {
29541
29601
  for (const [groupId, guardsByOrdinal] of guardsByGroup) {
29542
29602
  winningOrdinal.set(groupId, winningOrdinalFor(guardsByOrdinal, nodeCount, flat));
29543
29603
  }
29544
- return children5.filter(
29604
+ return children6.filter(
29545
29605
  (child13) => (child13.chooseGroups ?? []).every((entry) => {
29546
29606
  const winner = winningOrdinal.get(entry.id);
29547
29607
  return winner === void 0 || winner === entry.ordinal;
@@ -29749,9 +29809,9 @@ function dimOf(constraints, type, box, index, role, declaringRole) {
29749
29809
  function isPositioned(dims) {
29750
29810
  return dims.l !== void 0 || dims.t !== void 0 || dims.w !== void 0 || dims.h !== void 0 || dims.ctrX !== void 0 || dims.ctrY !== void 0;
29751
29811
  }
29752
- function readSlots(children5, box, index, declaringRole, sizeBox = box) {
29812
+ function readSlots(children6, box, index, declaringRole, sizeBox = box) {
29753
29813
  const slots = [];
29754
- for (const child13 of children5) {
29814
+ for (const child13 of children6) {
29755
29815
  const c = child13.constraints;
29756
29816
  const role = roleOf(child13);
29757
29817
  const hubSizeBox = isUserSizeHubRole(role, index) ? sizeBox : box;
@@ -29914,16 +29974,16 @@ function arrangeByChooseAwareSlots(root, flat, box, index, ctx, fontCtx) {
29914
29974
  }
29915
29975
  const fitByRole = fontCtx ? resolveFitByDeclaringRole(fontCtx, slots) : /* @__PURE__ */ new Map();
29916
29976
  return slots.map(({ rect: rect2, content, node: layoutNode, declaringRole }, i2) => {
29917
- const first = content[0];
29977
+ const first2 = content[0];
29918
29978
  const fit = fitByRole.get(declaringRole);
29919
29979
  const rendered = {
29920
29980
  ...presetBoxNode({
29921
- key: `${ctx.elementId}-comp-choose-${first.id}-${i2}`,
29981
+ key: `${ctx.elementId}-comp-choose-${first2.id}-${i2}`,
29922
29982
  x: rect2.x,
29923
29983
  y: rect2.y,
29924
29984
  width: rect2.width,
29925
29985
  height: rect2.height,
29926
- node: first,
29986
+ node: first2,
29927
29987
  index: i2,
29928
29988
  total: slots.length,
29929
29989
  palette: ctx.palette,
@@ -29978,16 +30038,16 @@ function renderForEachBoundSlots(slots, flat, box, absX, absY, childrenOf, ctx,
29978
30038
  return;
29979
30039
  }
29980
30040
  const rect2 = resolveSlot(slot.dims, box, absX, absY);
29981
- const first = content[0];
30041
+ const first2 = content[0];
29982
30042
  const index = startIndex + offset;
29983
30043
  const entry = {
29984
30044
  ...rectNode({
29985
- key: `${ctx.elementId}-comp-feach-${first.id}-${index}`,
30045
+ key: `${ctx.elementId}-comp-feach-${first2.id}-${index}`,
29986
30046
  x: rect2.x,
29987
30047
  y: rect2.y,
29988
30048
  width: rect2.width,
29989
30049
  height: rect2.height,
29990
- node: first,
30050
+ node: first2,
29991
30051
  index,
29992
30052
  total: startIndex + slots.length,
29993
30053
  palette: ctx.palette,
@@ -30397,15 +30457,15 @@ function renderAnchoredPair(node, index, total, selfSlot, selfLayoutNode, desSlo
30397
30457
  })
30398
30458
  ];
30399
30459
  if (desSlot && desSlot.content.length > 0) {
30400
- const first = desSlot.content[0];
30460
+ const first2 = desSlot.content[0];
30401
30461
  const rendered = {
30402
30462
  ...presetBoxNode({
30403
- key: `${ctx.elementId}-comp-des-${first.id}-${index}`,
30463
+ key: `${ctx.elementId}-comp-des-${first2.id}-${index}`,
30404
30464
  x: desSlot.rect.x,
30405
30465
  y: desSlot.rect.y,
30406
30466
  width: desSlot.rect.width,
30407
30467
  height: desSlot.rect.height,
30408
- node: first,
30468
+ node: first2,
30409
30469
  index,
30410
30470
  total,
30411
30471
  palette: ctx.palette,
@@ -30490,13 +30550,13 @@ function arrangeByPresentationOf(view, slotted, allChildren, nodes, flat, box, a
30490
30550
  return rendered;
30491
30551
  }
30492
30552
  function arrangeComposite(view, plan, nodes, box, palette, style, elementId, index = EMPTY_CONSTRAINT_INDEX, childrenOf = /* @__PURE__ */ new Map(), flat = nodes, fontName, presLayoutVars) {
30493
- const children5 = plan.node.children;
30494
- if (!children5 || children5.length === 0 || nodes.length === 0) {
30553
+ const children6 = plan.node.children;
30554
+ if (!children6 || children6.length === 0 || nodes.length === 0) {
30495
30555
  return void 0;
30496
30556
  }
30497
30557
  const declaringRole = roleOf(plan.node);
30498
30558
  const sizeBox = fitAspectRatioBox(box, readAlgorithmAspectRatio(plan.node));
30499
- const slotted = readSlots(children5, box, index, declaringRole, sizeBox);
30559
+ const slotted = readSlots(children6, box, index, declaringRole, sizeBox);
30500
30560
  if (slotted.length === 0) {
30501
30561
  return void 0;
30502
30562
  }
@@ -30509,7 +30569,7 @@ function arrangeComposite(view, plan, nodes, box, palette, style, elementId, ind
30509
30569
  const renderedNodes = arrangeByPresentationOf(
30510
30570
  view,
30511
30571
  slotted,
30512
- children5,
30572
+ children6,
30513
30573
  nodes,
30514
30574
  flat,
30515
30575
  box,
@@ -30660,9 +30720,9 @@ function resolveHierarchyItemNode(algorithmNode) {
30660
30720
  if (candidates.length === 0) {
30661
30721
  return void 0;
30662
30722
  }
30663
- const first = candidates[0];
30664
- if (candidates.length < 2 || !first) {
30665
- return first;
30723
+ const first2 = candidates[0];
30724
+ if (candidates.length < 2 || !first2) {
30725
+ return first2;
30666
30726
  }
30667
30727
  const allNames = new Set(
30668
30728
  candidates.map((c) => c.name).filter((n) => n !== void 0)
@@ -30677,7 +30737,7 @@ function resolveHierarchyItemNode(algorithmNode) {
30677
30737
  return candidate;
30678
30738
  }
30679
30739
  }
30680
- return first;
30740
+ return first2;
30681
30741
  }
30682
30742
 
30683
30743
  // diagram/hierarchy/smartart-hierarchy-shared.ts
@@ -31646,9 +31706,9 @@ function findByReference(constraints, type, referenceType, preferredName) {
31646
31706
  const list2 = constraints ?? [];
31647
31707
  const matches = (c) => c.type === type && c.referenceType === referenceType && typeof c.factor === "number";
31648
31708
  if (preferredName !== void 0) {
31649
- const named = list2.find((c) => matches(c) && c.forName === preferredName);
31650
- if (named) {
31651
- return named.factor;
31709
+ const named2 = list2.find((c) => matches(c) && c.forName === preferredName);
31710
+ if (named2) {
31711
+ return named2.factor;
31652
31712
  }
31653
31713
  }
31654
31714
  return list2.find(matches)?.factor;
@@ -32115,10 +32175,10 @@ function placeFlatChildren(hc, parentId, normal, cx, cy, xOffset, level2, cellW,
32115
32175
  }
32116
32176
 
32117
32177
  // diagram/hierarchy/smartart-hierarchy-wrapped-groups.ts
32118
- function planWrappedGroups(children5, perColumn, orgChart) {
32178
+ function planWrappedGroups(children6, perColumn, orgChart) {
32119
32179
  const groups = [];
32120
- for (let i2 = 0; i2 < children5.length; i2 += perColumn) {
32121
- const members = children5.slice(i2, i2 + perColumn);
32180
+ for (let i2 = 0; i2 < children6.length; i2 += perColumn) {
32181
+ const members = children6.slice(i2, i2 + perColumn);
32122
32182
  const fansAsRow = members.some((m) => partitionChildren(m, orgChart).normal.length > 0);
32123
32183
  groups.push({ members, fansAsRow });
32124
32184
  }
@@ -35180,12 +35240,12 @@ function parseOrderedXml(xml) {
35180
35240
  break;
35181
35241
  }
35182
35242
  const next = xml.indexOf("<", end + 1);
35183
- const first = xml[i2 + 1];
35184
- if (first === "?" || first === "!") {
35243
+ const first2 = xml[i2 + 1];
35244
+ if (first2 === "?" || first2 === "!") {
35185
35245
  i2 = next;
35186
35246
  continue;
35187
35247
  }
35188
- const closing = first === "/";
35248
+ const closing = first2 === "/";
35189
35249
  let cursor = closing ? i2 + 2 : i2 + 1;
35190
35250
  const nameStart = cursor;
35191
35251
  while (cursor < end && isNameChar(xml[cursor])) {
@@ -35406,7 +35466,7 @@ function parseStatement(element, state) {
35406
35466
  rules: element.children.filter((c) => c.name === "rule").map((c) => parseRule(c.attrs))
35407
35467
  };
35408
35468
  case "varLst": {
35409
- const vars = {};
35469
+ const vars = /* @__PURE__ */ Object.create(null);
35410
35470
  for (const entry of element.children) {
35411
35471
  vars[entry.name] = entry.attrs.val ?? "";
35412
35472
  }
@@ -35569,6 +35629,7 @@ function evaluateCondition(condition, point2, lookup) {
35569
35629
 
35570
35630
  // diagram/engine/pres-tree.ts
35571
35631
  var MAX_DEPTH = 96;
35632
+ var MAX_NODES = 1e5;
35572
35633
  function lookupVariable(node, name, options) {
35573
35634
  if (name === "dir" && options.direction) {
35574
35635
  return options.direction;
@@ -35606,6 +35667,9 @@ function walk2(statements, point2, node, state) {
35606
35667
  }
35607
35668
  state.depth++;
35608
35669
  for (const next of iteratePoints(point2, forEach.iterator)) {
35670
+ if (state.counter >= MAX_NODES) {
35671
+ break;
35672
+ }
35609
35673
  walk2(forEach.body, next, node, state);
35610
35674
  }
35611
35675
  state.depth--;
@@ -35648,10 +35712,17 @@ function walk2(statements, point2, node, state) {
35648
35712
  }
35649
35713
  }
35650
35714
  function recordedVars(point2, name) {
35651
- return point2.source?.presLayoutVarsByName?.[name] ?? {};
35715
+ const byName = point2.source?.presLayoutVarsByName;
35716
+ if (!byName || !Object.prototype.hasOwnProperty.call(byName, name)) {
35717
+ return {};
35718
+ }
35719
+ return byName[name] ?? {};
35720
+ }
35721
+ function variableMap(...sources) {
35722
+ return Object.assign(/* @__PURE__ */ Object.create(null), ...sources);
35652
35723
  }
35653
35724
  function buildNode(def, point2, parent, state) {
35654
- if (state.depth > MAX_DEPTH) {
35725
+ if (state.depth > MAX_DEPTH || state.counter >= MAX_NODES) {
35655
35726
  return void 0;
35656
35727
  }
35657
35728
  const node = {
@@ -35665,7 +35736,7 @@ function buildNode(def, point2, parent, state) {
35665
35736
  presOfAnchored: false,
35666
35737
  constraints: [],
35667
35738
  rules: [],
35668
- vars: { ...recordedVars(point2, def.name) },
35739
+ vars: variableMap(recordedVars(point2, def.name)),
35669
35740
  children: [],
35670
35741
  parent,
35671
35742
  order: state.counter++
@@ -35762,14 +35833,14 @@ function findShape(scope, point2, name, skip) {
35762
35833
  return void 0;
35763
35834
  }
35764
35835
  let fallback;
35765
- let named;
35836
+ let named2;
35766
35837
  const visit = (node) => {
35767
- if (named) {
35838
+ if (named2) {
35768
35839
  return;
35769
35840
  }
35770
35841
  if (node !== skip && node.point === point2 && node.box && node.alg.type !== "conn") {
35771
35842
  if (name && node.name === name) {
35772
- named = node;
35843
+ named2 = node;
35773
35844
  return;
35774
35845
  }
35775
35846
  if (!fallback && node.shape?.type && !node.shape.hideGeom) {
@@ -35779,7 +35850,7 @@ function findShape(scope, point2, name, skip) {
35779
35850
  node.children.forEach(visit);
35780
35851
  };
35781
35852
  visit(scope);
35782
- return named ?? fallback;
35853
+ return named2 ?? fallback;
35783
35854
  }
35784
35855
  function arrangeConnector(node) {
35785
35856
  const box = node.box;
@@ -36188,13 +36259,13 @@ function sanitizeLvlNode(lvlNode) {
36188
36259
  }
36189
36260
  function arrangePyra(node) {
36190
36261
  const box = node.box;
36191
- const children5 = contentChildren(node);
36192
- const n = children5.length;
36262
+ const children6 = contentChildren(node);
36263
+ const n = children6.length;
36193
36264
  if (!box || n === 0) {
36194
36265
  return;
36195
36266
  }
36196
36267
  const lvlNodeName = node.alg.params.pyraLvlNode ?? "level";
36197
- for (const item of children5) {
36268
+ for (const item of children6) {
36198
36269
  const lvlNode = findNamedDescendant(item, lvlNodeName);
36199
36270
  if (lvlNode) {
36200
36271
  sanitizeLvlNode(lvlNode);
@@ -36204,7 +36275,7 @@ function arrangePyra(node) {
36204
36275
  const gap = Math.max(0, node.values.get("sibSp") ?? node.values.get("sp") ?? 0);
36205
36276
  const bandH = Math.max(0, (box.h - gap * (n - 1)) / n);
36206
36277
  const bandCx = box.x + box.w / 2;
36207
- children5.forEach((child13, i2) => {
36278
+ children6.forEach((child13, i2) => {
36208
36279
  const top = box.y + i2 * (bandH + gap);
36209
36280
  const effectiveI = inverted ? n - 1 - i2 : i2;
36210
36281
  const halfWide = box.w * (effectiveI + 1) / n / 2;
@@ -36594,9 +36665,9 @@ function buildLinks(entries) {
36594
36665
  }
36595
36666
  const firstByName = /* @__PURE__ */ new Map();
36596
36667
  for (const { node } of entries) {
36597
- const first = firstByName.get(node.name);
36598
- if (first) {
36599
- groups.union(first, node);
36668
+ const first2 = firstByName.get(node.name);
36669
+ if (first2) {
36670
+ groups.union(first2, node);
36600
36671
  } else {
36601
36672
  firstByName.set(node.name, node);
36602
36673
  }
@@ -36779,16 +36850,16 @@ function applyEngineFonts(collected, nodeById, fontName) {
36779
36850
  }
36780
36851
  const fitNode = entry.textNode ?? entry.node;
36781
36852
  texts.set(fitNode, text);
36782
- const first = sourceIdsOf(fitNode)[0];
36783
- if (first && fitNode.alg.type === "tx" && !txBySource.has(first)) {
36784
- txBySource.set(first, fitNode);
36853
+ const first2 = sourceIdsOf(fitNode)[0];
36854
+ if (first2 && fitNode.alg.type === "tx" && !txBySource.has(first2)) {
36855
+ txBySource.set(first2, fitNode);
36785
36856
  }
36786
36857
  }
36787
36858
  const twinOf = /* @__PURE__ */ new Map();
36788
36859
  const entries = [];
36789
36860
  for (const [node, text] of texts) {
36790
- const first = sourceIdsOf(node)[0];
36791
- const twin = first && node.alg.type !== "tx" ? txBySource.get(first) : void 0;
36861
+ const first2 = sourceIdsOf(node)[0];
36862
+ const twin = first2 && node.alg.type !== "tx" ? txBySource.get(first2) : void 0;
36792
36863
  if (twin && texts.has(twin)) {
36793
36864
  twinOf.set(node, twin);
36794
36865
  } else {
@@ -36810,8 +36881,8 @@ function applyEngineFonts(collected, nodeById, fontName) {
36810
36881
  const node = textNode ?? renderedNode;
36811
36882
  const pt = sizes.get(node) ?? 18;
36812
36883
  const text = texts.get(node);
36813
- const { first, secondary } = text ? paragraphSizesPt(text, pt) : { first: pt, secondary: Math.round(pt * DESCENDANT_FONT_SCALE) };
36814
- rendered.fontSize = first * PX_PER_PT5;
36884
+ const { first: first2, secondary } = text ? paragraphSizesPt(text, pt) : { first: pt, secondary: Math.round(pt * DESCENDANT_FONT_SCALE) };
36885
+ rendered.fontSize = first2 * PX_PER_PT5;
36815
36886
  rendered.descendantFontSize = hasDescendants(node) ? secondary * PX_PER_PT5 : void 0;
36816
36887
  }
36817
36888
  }
@@ -37021,9 +37092,9 @@ function computeDiagramMlElements(smartArtData, nodes, containerBounds, palette)
37021
37092
  }
37022
37093
  const withDef = smartArtData;
37023
37094
  const engineFirst = layoutDefinition.uniqueId !== void 0 && ENGINE_FIRST_LAYOUT_IDS.has(layoutDefinition.uniqueId);
37024
- const first = engineFirst ? tryEngine(smartArtData, nodes, containerBounds, palette) : tryLegacy(withDef, nodes, containerBounds, palette);
37095
+ const first2 = engineFirst ? tryEngine(smartArtData, nodes, containerBounds, palette) : tryLegacy(withDef, nodes, containerBounds, palette);
37025
37096
  const second = () => engineFirst ? tryLegacy(withDef, nodes, containerBounds, palette) : tryEngine(smartArtData, nodes, containerBounds, palette);
37026
- const interpreted = first ?? second();
37097
+ const interpreted = first2 ?? second();
37027
37098
  if (!interpreted) {
37028
37099
  return void 0;
37029
37100
  }
@@ -37067,7 +37138,7 @@ function layoutProcess(nodes, bounds, themeColorMap) {
37067
37138
  if (items.length === 0) {
37068
37139
  return [];
37069
37140
  }
37070
- const elements2 = [];
37141
+ const elements3 = [];
37071
37142
  const arrowGap = 16;
37072
37143
  const padding = 8;
37073
37144
  const usableW = bounds.width - padding * 2;
@@ -37078,7 +37149,7 @@ function layoutProcess(nodes, bounds, themeColorMap) {
37078
37149
  items.forEach((node, i2) => {
37079
37150
  const fill = accentColor(i2, themeColorMap);
37080
37151
  const x = bounds.x + padding + i2 * (nodeW + arrowGap);
37081
- elements2.push(
37152
+ elements3.push(
37082
37153
  makeShapeElement(nextId("sa-proc"), x, yOffset, nodeW, nodeH, "roundRect", fill, node.text, {
37083
37154
  cornerRadius: 16667,
37084
37155
  fontSize: Math.max(8, Math.min(11, nodeW * 0.12))
@@ -37088,7 +37159,7 @@ function layoutProcess(nodes, bounds, themeColorMap) {
37088
37159
  const arrowX1 = x + nodeW;
37089
37160
  const arrowX2 = x + nodeW + arrowGap;
37090
37161
  const arrowY = yOffset + nodeH / 2;
37091
- elements2.push(
37162
+ elements3.push(
37092
37163
  makeConnectorElement(
37093
37164
  nextId("sa-proc-arrow"),
37094
37165
  arrowX1,
@@ -37100,14 +37171,14 @@ function layoutProcess(nodes, bounds, themeColorMap) {
37100
37171
  );
37101
37172
  }
37102
37173
  });
37103
- return elements2;
37174
+ return elements3;
37104
37175
  }
37105
37176
  function layoutCycle(nodes, bounds, themeColorMap) {
37106
37177
  const items = getContentNodes(nodes);
37107
37178
  if (items.length === 0) {
37108
37179
  return [];
37109
37180
  }
37110
- const elements2 = [];
37181
+ const elements3 = [];
37111
37182
  const size = Math.min(bounds.width, bounds.height);
37112
37183
  const cx = bounds.x + bounds.width / 2;
37113
37184
  const cy = bounds.y + bounds.height / 2;
@@ -37119,7 +37190,7 @@ function layoutCycle(nodes, bounds, themeColorMap) {
37119
37190
  const nx = cx + radius * Math.cos(angle) - nodeW / 2;
37120
37191
  const ny = cy + radius * Math.sin(angle) - nodeH / 2;
37121
37192
  const fill = accentColor(i2, themeColorMap);
37122
- elements2.push(
37193
+ elements3.push(
37123
37194
  makeShapeElement(nextId("sa-cycle"), nx, ny, nodeW, nodeH, "ellipse", fill, node.text, {
37124
37195
  fontSize: Math.max(7, Math.min(10, nodeW * 0.1))
37125
37196
  })
@@ -37131,12 +37202,12 @@ function layoutCycle(nodes, bounds, themeColorMap) {
37131
37202
  const ny2 = cy + radius * Math.sin(nextAngle);
37132
37203
  const nx1 = cx + radius * Math.cos(angle);
37133
37204
  const ny1 = cy + radius * Math.sin(angle);
37134
- elements2.push(
37205
+ elements3.push(
37135
37206
  makeConnectorElement(nextId("sa-cycle-conn"), nx1, ny1, nx2, ny2, lighten(fill, 0.5))
37136
37207
  );
37137
37208
  }
37138
37209
  });
37139
- return elements2;
37210
+ return elements3;
37140
37211
  }
37141
37212
  function layoutMatrix(nodes, bounds, themeColorMap) {
37142
37213
  const items = getContentNodes(nodes);
@@ -37199,7 +37270,7 @@ function layoutStepDownProcess(nodes, bounds, themeColorMap) {
37199
37270
  if (items.length === 0) {
37200
37271
  return [];
37201
37272
  }
37202
- const elements2 = [];
37273
+ const elements3 = [];
37203
37274
  const padding = 8;
37204
37275
  const usableW = bounds.width - padding * 2;
37205
37276
  const usableH = bounds.height - padding * 2;
@@ -37211,14 +37282,14 @@ function layoutStepDownProcess(nodes, bounds, themeColorMap) {
37211
37282
  const fill = accentColor(i2, themeColorMap);
37212
37283
  const x = bounds.x + padding + i2 * stepW;
37213
37284
  const y = bounds.y + padding + i2 * stepH;
37214
- elements2.push(
37285
+ elements3.push(
37215
37286
  makeShapeElement(nextId("sa-stepdown"), x, y, boxW, boxH, "roundRect", fill, node.text, {
37216
37287
  cornerRadius: 16667,
37217
37288
  fontSize: Math.max(7, Math.min(10, boxW * 0.1))
37218
37289
  })
37219
37290
  );
37220
37291
  if (i2 < items.length - 1) {
37221
- elements2.push(
37292
+ elements3.push(
37222
37293
  makeConnectorElement(
37223
37294
  nextId("sa-stepdown-conn"),
37224
37295
  x + boxW,
@@ -37230,14 +37301,14 @@ function layoutStepDownProcess(nodes, bounds, themeColorMap) {
37230
37301
  );
37231
37302
  }
37232
37303
  });
37233
- return elements2;
37304
+ return elements3;
37234
37305
  }
37235
37306
  function layoutAlternatingFlow(nodes, bounds, themeColorMap) {
37236
37307
  const items = getContentNodes(nodes);
37237
37308
  if (items.length === 0) {
37238
37309
  return [];
37239
37310
  }
37240
- const elements2 = [];
37311
+ const elements3 = [];
37241
37312
  const padding = 8;
37242
37313
  const usableH = bounds.height - padding * 2;
37243
37314
  const rowH = usableH / items.length;
@@ -37250,7 +37321,7 @@ function layoutAlternatingFlow(nodes, bounds, themeColorMap) {
37250
37321
  const y = bounds.y + padding + i2 * rowH + (rowH - boxH) / 2;
37251
37322
  const isLeft = i2 % 2 === 0;
37252
37323
  const x = isLeft ? centerX - boxW - 8 : centerX + 8;
37253
- elements2.push(
37324
+ elements3.push(
37254
37325
  makeShapeElement(nextId("sa-altflow"), x, y, boxW, boxH, "roundRect", fill, node.text, {
37255
37326
  cornerRadius: 16667,
37256
37327
  fontSize: Math.max(7, Math.min(10, boxW * 0.1))
@@ -37259,7 +37330,7 @@ function layoutAlternatingFlow(nodes, bounds, themeColorMap) {
37259
37330
  const connX1 = isLeft ? x + boxW : x;
37260
37331
  const connX2 = centerX;
37261
37332
  const connY = y + boxH / 2;
37262
- elements2.push(
37333
+ elements3.push(
37263
37334
  makeConnectorElement(
37264
37335
  nextId("sa-altflow-conn"),
37265
37336
  connX1,
@@ -37270,14 +37341,14 @@ function layoutAlternatingFlow(nodes, bounds, themeColorMap) {
37270
37341
  )
37271
37342
  );
37272
37343
  });
37273
- return elements2;
37344
+ return elements3;
37274
37345
  }
37275
37346
  function layoutDescendingProcess(nodes, bounds, themeColorMap) {
37276
37347
  const items = getContentNodes(nodes);
37277
37348
  if (items.length === 0) {
37278
37349
  return [];
37279
37350
  }
37280
- const elements2 = [];
37351
+ const elements3 = [];
37281
37352
  const padding = 8;
37282
37353
  const gap = 4;
37283
37354
  const usableH = bounds.height - padding * 2;
@@ -37289,14 +37360,14 @@ function layoutDescendingProcess(nodes, bounds, themeColorMap) {
37289
37360
  const w = maxW * widthFraction;
37290
37361
  const x = bounds.x + (bounds.width - w) / 2;
37291
37362
  const y = bounds.y + padding + i2 * (itemH + gap);
37292
- elements2.push(
37363
+ elements3.push(
37293
37364
  makeShapeElement(nextId("sa-descproc"), x, y, w, itemH, "roundRect", fill, node.text, {
37294
37365
  cornerRadius: 16667,
37295
37366
  fontSize: Math.max(7, Math.min(11, itemH * 0.4))
37296
37367
  })
37297
37368
  );
37298
37369
  if (i2 < items.length - 1) {
37299
- elements2.push(
37370
+ elements3.push(
37300
37371
  makeConnectorElement(
37301
37372
  nextId("sa-descproc-conn"),
37302
37373
  bounds.x + bounds.width / 2,
@@ -37308,14 +37379,14 @@ function layoutDescendingProcess(nodes, bounds, themeColorMap) {
37308
37379
  );
37309
37380
  }
37310
37381
  });
37311
- return elements2;
37382
+ return elements3;
37312
37383
  }
37313
37384
  function layoutPictureAccentList(nodes, bounds, themeColorMap) {
37314
37385
  const items = getContentNodes(nodes);
37315
37386
  if (items.length === 0) {
37316
37387
  return [];
37317
37388
  }
37318
- const elements2 = [];
37389
+ const elements3 = [];
37319
37390
  const padding = 8;
37320
37391
  const gap = 6;
37321
37392
  const usableH = bounds.height - padding * 2;
@@ -37326,7 +37397,7 @@ function layoutPictureAccentList(nodes, bounds, themeColorMap) {
37326
37397
  items.forEach((node, i2) => {
37327
37398
  const fill = accentColor(i2, themeColorMap);
37328
37399
  const y = bounds.y + padding + i2 * (itemH + gap);
37329
- elements2.push(
37400
+ elements3.push(
37330
37401
  makeShapeElement(
37331
37402
  nextId("sa-picaccent-circle"),
37332
37403
  bounds.x + padding,
@@ -37339,7 +37410,7 @@ function layoutPictureAccentList(nodes, bounds, themeColorMap) {
37339
37410
  { fontSize: Math.max(7, circleR * 0.7), fontColor: "#FFFFFF" }
37340
37411
  )
37341
37412
  );
37342
- elements2.push(
37413
+ elements3.push(
37343
37414
  makeShapeElement(
37344
37415
  nextId("sa-picaccent-text"),
37345
37416
  bounds.x + padding + circleR * 2 + 8,
@@ -37358,14 +37429,14 @@ function layoutPictureAccentList(nodes, bounds, themeColorMap) {
37358
37429
  )
37359
37430
  );
37360
37431
  });
37361
- return elements2;
37432
+ return elements3;
37362
37433
  }
37363
37434
  function layoutVerticalBlockList(nodes, bounds, themeColorMap) {
37364
37435
  const items = getContentNodes(nodes);
37365
37436
  if (items.length === 0) {
37366
37437
  return [];
37367
37438
  }
37368
- const elements2 = [];
37439
+ const elements3 = [];
37369
37440
  const padding = 8;
37370
37441
  const gap = 4;
37371
37442
  const usableH = bounds.height - padding * 2;
@@ -37376,7 +37447,7 @@ function layoutVerticalBlockList(nodes, bounds, themeColorMap) {
37376
37447
  items.forEach((node, i2) => {
37377
37448
  const fill = accentColor(i2, themeColorMap);
37378
37449
  const y = bounds.y + padding + i2 * (itemH + gap);
37379
- elements2.push(
37450
+ elements3.push(
37380
37451
  makeShapeElement(
37381
37452
  nextId("sa-vblk-header"),
37382
37453
  bounds.x + padding,
@@ -37389,7 +37460,7 @@ function layoutVerticalBlockList(nodes, bounds, themeColorMap) {
37389
37460
  { fontSize: Math.max(8, itemH * 0.4), fontColor: "#FFFFFF" }
37390
37461
  )
37391
37462
  );
37392
- elements2.push(
37463
+ elements3.push(
37393
37464
  makeShapeElement(
37394
37465
  nextId("sa-vblk-body"),
37395
37466
  bounds.x + padding + headerW + 4,
@@ -37408,14 +37479,14 @@ function layoutVerticalBlockList(nodes, bounds, themeColorMap) {
37408
37479
  )
37409
37480
  );
37410
37481
  });
37411
- return elements2;
37482
+ return elements3;
37412
37483
  }
37413
37484
  function layoutGroupedList(nodes, bounds, themeColorMap) {
37414
37485
  const items = getContentNodes(nodes);
37415
37486
  if (items.length === 0) {
37416
37487
  return [];
37417
37488
  }
37418
- const elements2 = [];
37489
+ const elements3 = [];
37419
37490
  const padding = 8;
37420
37491
  const gap = 8;
37421
37492
  const groupSize = items.length <= 4 ? 2 : 3;
@@ -37432,7 +37503,7 @@ function layoutGroupedList(nodes, bounds, themeColorMap) {
37432
37503
  const headerH = usableH * 0.2;
37433
37504
  const subItemGap = 3;
37434
37505
  const subItemH = (usableH - headerH - 4 - subItemGap * (group.length - 1)) / group.length;
37435
- elements2.push(
37506
+ elements3.push(
37436
37507
  makeShapeElement(
37437
37508
  nextId("sa-grp-header"),
37438
37509
  gx,
@@ -37451,7 +37522,7 @@ function layoutGroupedList(nodes, bounds, themeColorMap) {
37451
37522
  );
37452
37523
  group.forEach((node, si) => {
37453
37524
  const sy = bounds.y + padding + headerH + 4 + si * (subItemH + subItemGap);
37454
- elements2.push(
37525
+ elements3.push(
37455
37526
  makeShapeElement(
37456
37527
  nextId("sa-grp-item"),
37457
37528
  gx + 4,
@@ -37470,14 +37541,14 @@ function layoutGroupedList(nodes, bounds, themeColorMap) {
37470
37541
  );
37471
37542
  });
37472
37543
  });
37473
- return elements2;
37544
+ return elements3;
37474
37545
  }
37475
37546
  function layoutPyramidList(nodes, bounds, themeColorMap) {
37476
37547
  const items = getContentNodes(nodes);
37477
37548
  if (items.length === 0) {
37478
37549
  return [];
37479
37550
  }
37480
- const elements2 = [];
37551
+ const elements3 = [];
37481
37552
  const padding = 8;
37482
37553
  const gap = 4;
37483
37554
  const usableH = bounds.height - padding * 2;
@@ -37490,10 +37561,10 @@ function layoutPyramidList(nodes, bounds, themeColorMap) {
37490
37561
  const topFrac = 0.3 + i2 / Math.max(items.length - 1, 1) * 0.7;
37491
37562
  const w = pyramidW * topFrac;
37492
37563
  const segX = bounds.x + padding + (pyramidW - w) / 2;
37493
- elements2.push(
37564
+ elements3.push(
37494
37565
  makeShapeElement(nextId("sa-pyrlist-seg"), segX, y, w, bandH, "rect", fill, "", {})
37495
37566
  );
37496
- elements2.push(
37567
+ elements3.push(
37497
37568
  makeConnectorElement(
37498
37569
  nextId("sa-pyrlist-conn"),
37499
37570
  segX + w,
@@ -37503,7 +37574,7 @@ function layoutPyramidList(nodes, bounds, themeColorMap) {
37503
37574
  lighten(fill, 0.3)
37504
37575
  )
37505
37576
  );
37506
- elements2.push(
37577
+ elements3.push(
37507
37578
  makeShapeElement(
37508
37579
  nextId("sa-pyrlist-label"),
37509
37580
  bounds.x + padding + pyramidW + 12,
@@ -37522,14 +37593,14 @@ function layoutPyramidList(nodes, bounds, themeColorMap) {
37522
37593
  )
37523
37594
  );
37524
37595
  });
37525
- return elements2;
37596
+ return elements3;
37526
37597
  }
37527
37598
  function layoutHorizontalPictureList(nodes, bounds, themeColorMap) {
37528
37599
  const items = getContentNodes(nodes);
37529
37600
  if (items.length === 0) {
37530
37601
  return [];
37531
37602
  }
37532
- const elements2 = [];
37603
+ const elements3 = [];
37533
37604
  const padding = 8;
37534
37605
  const gap = 8;
37535
37606
  const usableW = bounds.width - padding * 2;
@@ -37541,7 +37612,7 @@ function layoutHorizontalPictureList(nodes, bounds, themeColorMap) {
37541
37612
  const fill = accentColor(i2, themeColorMap);
37542
37613
  const cx = bounds.x + padding + i2 * (colW + gap) + colW / 2;
37543
37614
  const cy = bounds.y + padding + circleR;
37544
- elements2.push(
37615
+ elements3.push(
37545
37616
  makeShapeElement(
37546
37617
  nextId("sa-hpic-circle"),
37547
37618
  cx - circleR,
@@ -37554,7 +37625,7 @@ function layoutHorizontalPictureList(nodes, bounds, themeColorMap) {
37554
37625
  { fontSize: Math.max(8, circleR * 0.5) }
37555
37626
  )
37556
37627
  );
37557
- elements2.push(
37628
+ elements3.push(
37558
37629
  makeShapeElement(
37559
37630
  nextId("sa-hpic-label"),
37560
37631
  bounds.x + padding + i2 * (colW + gap),
@@ -37572,14 +37643,14 @@ function layoutHorizontalPictureList(nodes, bounds, themeColorMap) {
37572
37643
  )
37573
37644
  );
37574
37645
  });
37575
- return elements2;
37646
+ return elements3;
37576
37647
  }
37577
37648
  function layoutAccentProcess(nodes, bounds, themeColorMap) {
37578
37649
  const items = getContentNodes(nodes);
37579
37650
  if (items.length === 0) {
37580
37651
  return [];
37581
37652
  }
37582
- const elements2 = [];
37653
+ const elements3 = [];
37583
37654
  const padding = 8;
37584
37655
  const arrowGap = 16;
37585
37656
  const usableW = bounds.width - padding * 2;
@@ -37593,7 +37664,7 @@ function layoutAccentProcess(nodes, bounds, themeColorMap) {
37593
37664
  const x = bounds.x + padding + i2 * (nodeW + arrowGap);
37594
37665
  const cx = x + nodeW / 2;
37595
37666
  const cy = yOffset + nodeH / 2;
37596
- elements2.push(
37667
+ elements3.push(
37597
37668
  makeShapeElement(
37598
37669
  nextId("sa-accproc-circle"),
37599
37670
  cx - circleR,
@@ -37606,7 +37677,7 @@ function layoutAccentProcess(nodes, bounds, themeColorMap) {
37606
37677
  {}
37607
37678
  )
37608
37679
  );
37609
- elements2.push(
37680
+ elements3.push(
37610
37681
  makeShapeElement(
37611
37682
  nextId("sa-accproc-box"),
37612
37683
  x,
@@ -37626,7 +37697,7 @@ function layoutAccentProcess(nodes, bounds, themeColorMap) {
37626
37697
  const arrowX1 = x + nodeW;
37627
37698
  const arrowX2 = x + nodeW + arrowGap;
37628
37699
  const arrowY = yOffset + nodeH / 2;
37629
- elements2.push(
37700
+ elements3.push(
37630
37701
  makeConnectorElement(
37631
37702
  nextId("sa-accproc-arrow"),
37632
37703
  arrowX1,
@@ -37638,14 +37709,14 @@ function layoutAccentProcess(nodes, bounds, themeColorMap) {
37638
37709
  );
37639
37710
  }
37640
37711
  });
37641
- return elements2;
37712
+ return elements3;
37642
37713
  }
37643
37714
  function layoutVerticalChevronList(nodes, bounds, themeColorMap) {
37644
37715
  const items = getContentNodes(nodes);
37645
37716
  if (items.length === 0) {
37646
37717
  return [];
37647
37718
  }
37648
- const elements2 = [];
37719
+ const elements3 = [];
37649
37720
  const padding = 8;
37650
37721
  const usableW = bounds.width - padding * 2;
37651
37722
  const usableH = bounds.height - padding * 2;
@@ -37655,14 +37726,14 @@ function layoutVerticalChevronList(nodes, bounds, themeColorMap) {
37655
37726
  const fill = accentColor(i2, themeColorMap);
37656
37727
  const x = bounds.x + padding;
37657
37728
  const y = bounds.y + padding + i2 * (itemH + gap);
37658
- elements2.push(
37729
+ elements3.push(
37659
37730
  makeShapeElement(nextId("sa-vchev"), x, y, usableW, itemH, "roundRect", fill, node.text, {
37660
37731
  cornerRadius: 8e3,
37661
37732
  fontSize: Math.max(7, Math.min(11, itemH * 0.4))
37662
37733
  })
37663
37734
  );
37664
37735
  if (i2 < items.length - 1) {
37665
- elements2.push(
37736
+ elements3.push(
37666
37737
  makeConnectorElement(
37667
37738
  nextId("sa-vchev-conn"),
37668
37739
  x + usableW / 2,
@@ -37674,7 +37745,7 @@ function layoutVerticalChevronList(nodes, bounds, themeColorMap) {
37674
37745
  );
37675
37746
  }
37676
37747
  });
37677
- return elements2;
37748
+ return elements3;
37678
37749
  }
37679
37750
 
37680
37751
  // pptx/core/utils/smartart-layouts-tree.ts
@@ -37692,7 +37763,7 @@ function layoutHierarchy(nodes, bounds, themeColorMap) {
37692
37763
  const cellH = usableH / Math.max(depth, 1);
37693
37764
  const boxW = Math.min(cellW * 0.8, 140);
37694
37765
  const boxH = Math.min(cellH * 0.35, 28);
37695
- const elements2 = [];
37766
+ const elements3 = [];
37696
37767
  let colourIdx = 0;
37697
37768
  function walk3(t, xOffset, level2) {
37698
37769
  const w = treeWidth(t);
@@ -37700,7 +37771,7 @@ function layoutHierarchy(nodes, bounds, themeColorMap) {
37700
37771
  const cy = bounds.y + padding + level2 * cellH + cellH / 2;
37701
37772
  const ci = colourIdx++;
37702
37773
  const fill = accentColor(ci, themeColorMap);
37703
- elements2.push(
37774
+ elements3.push(
37704
37775
  makeShapeElement(
37705
37776
  nextId("sa-hier"),
37706
37777
  cx - boxW / 2,
@@ -37721,7 +37792,7 @@ function layoutHierarchy(nodes, bounds, themeColorMap) {
37721
37792
  const childW = treeWidth(child13);
37722
37793
  const childCx = bounds.x + padding + (childOffset + childW / 2) * cellW;
37723
37794
  const childCy = bounds.y + padding + (level2 + 1) * cellH + cellH / 2;
37724
- elements2.push(
37795
+ elements3.push(
37725
37796
  makeConnectorElement(
37726
37797
  nextId("sa-hier-conn"),
37727
37798
  cx,
@@ -37740,14 +37811,14 @@ function layoutHierarchy(nodes, bounds, themeColorMap) {
37740
37811
  for (const root of roots) {
37741
37812
  offset += walk3(root, offset, 0);
37742
37813
  }
37743
- return elements2;
37814
+ return elements3;
37744
37815
  }
37745
37816
  function layoutRelationship(nodes, bounds, themeColorMap) {
37746
37817
  const items = getContentNodes(nodes);
37747
37818
  if (items.length === 0) {
37748
37819
  return [];
37749
37820
  }
37750
- const elements2 = [];
37821
+ const elements3 = [];
37751
37822
  const cx = bounds.x + bounds.width / 2;
37752
37823
  const cy = bounds.y + bounds.height / 2;
37753
37824
  const size = Math.min(bounds.width, bounds.height);
@@ -37759,7 +37830,7 @@ function layoutRelationship(nodes, bounds, themeColorMap) {
37759
37830
  const nx = cx + spread * Math.cos(angle) - r;
37760
37831
  const ny = cy + spread * Math.sin(angle) - r;
37761
37832
  const fill = accentColor(i2, themeColorMap);
37762
- elements2.push(
37833
+ elements3.push(
37763
37834
  makeShapeElement(nextId("sa-venn"), nx, ny, r * 2, r * 2, "ellipse", fill, node.text, {
37764
37835
  fontSize: Math.max(7, Math.min(10, r / 5))
37765
37836
  })
@@ -37771,7 +37842,7 @@ function layoutRelationship(nodes, bounds, themeColorMap) {
37771
37842
  const startX = cx - totalW / 2 + r;
37772
37843
  items.forEach((node, i2) => {
37773
37844
  const fill = accentColor(i2, themeColorMap);
37774
- elements2.push(
37845
+ elements3.push(
37775
37846
  makeShapeElement(
37776
37847
  nextId("sa-venn"),
37777
37848
  startX + i2 * r * 2 - r,
@@ -37786,7 +37857,7 @@ function layoutRelationship(nodes, bounds, themeColorMap) {
37786
37857
  );
37787
37858
  });
37788
37859
  }
37789
- return elements2;
37860
+ return elements3;
37790
37861
  }
37791
37862
 
37792
37863
  // pptx/core/utils/smartart-decompose-dispatch.ts
@@ -37950,13 +38021,13 @@ function dispatchLayoutByType(layoutType, nodes, containerBounds, effectiveTheme
37950
38021
  function styledContentNodes(nodes) {
37951
38022
  return getContentNodes(nodes);
37952
38023
  }
37953
- function applyNodeStylesToElements(elements2, nodes, bulletEnabled = false) {
38024
+ function applyNodeStylesToElements(elements3, nodes, bulletEnabled = false) {
37954
38025
  const contentNodes = styledContentNodes(nodes);
37955
38026
  if (contentNodes.length === 0) {
37956
- return elements2;
38027
+ return elements3;
37957
38028
  }
37958
38029
  let shapeIndex = 0;
37959
- return elements2.map((element) => {
38030
+ return elements3.map((element) => {
37960
38031
  if (element.type !== "shape") {
37961
38032
  return element;
37962
38033
  }
@@ -38464,8 +38535,11 @@ async function verifySignatureDigests(signature, getPartContent) {
38464
38535
  if (typeof globalThis.crypto?.subtle === "undefined") {
38465
38536
  return "unverified";
38466
38537
  }
38538
+ let checked = 0;
38539
+ let skipped = false;
38467
38540
  for (const ref of signature.references) {
38468
38541
  if (!ref.digestValue || !ref.uri) {
38542
+ skipped = true;
38469
38543
  continue;
38470
38544
  }
38471
38545
  const algo = ref.digestMethod?.toLowerCase() || "";
@@ -38477,23 +38551,24 @@ async function verifySignatureDigests(signature, getPartContent) {
38477
38551
  } else if (algo.includes("sha1") || algo.includes("sha-1")) {
38478
38552
  hashAlgo = "SHA-1";
38479
38553
  } else {
38554
+ skipped = true;
38480
38555
  continue;
38481
38556
  }
38482
38557
  const content = await getPartContent(ref.uri);
38483
38558
  if (!content) {
38484
- continue;
38559
+ return "invalid";
38485
38560
  }
38486
38561
  try {
38487
38562
  const digest = await crypto.subtle.digest(hashAlgo, content);
38488
- const digestBase64 = arrayBufferToBase64(digest);
38489
- if (digestBase64 !== ref.digestValue) {
38563
+ if (arrayBufferToBase64(digest) !== ref.digestValue) {
38490
38564
  return "invalid";
38491
38565
  }
38566
+ checked++;
38492
38567
  } catch {
38493
38568
  return "unverified";
38494
38569
  }
38495
38570
  }
38496
- return signature.certificate ? "valid" : "unknownCA";
38571
+ return checked > 0 && !skipped ? "digestsMatch" : "unverified";
38497
38572
  }
38498
38573
  function arrayBufferToBase64(buffer) {
38499
38574
  const bytes = new Uint8Array(buffer);
@@ -38585,6 +38660,135 @@ function parseRelationshipIdAttributes(get) {
38585
38660
  return result;
38586
38661
  }
38587
38662
 
38663
+ // xml/namespaces.ts
38664
+ var NS = {
38665
+ /** WordprocessingML main. */
38666
+ w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
38667
+ /** PresentationML main. */
38668
+ p: "http://schemas.openxmlformats.org/presentationml/2006/main",
38669
+ /** SpreadsheetML main. */
38670
+ x: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
38671
+ /** DrawingML main. */
38672
+ a: "http://schemas.openxmlformats.org/drawingml/2006/main",
38673
+ /** DrawingML chart. */
38674
+ c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
38675
+ /** Office 2016 extended charts (waterfall, histogram, funnel...; `cx:chartSpace`). */
38676
+ cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
38677
+ /** Office 2010 chart extensions, including built-in modern chart styles. */
38678
+ c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
38679
+ /** DrawingML diagram (SmartArt) main. */
38680
+ dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
38681
+ /** Office 2007+ diagram drawing (`dsp`). */
38682
+ dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
38683
+ /** DrawingML Word drawing (`wp:inline`, `wp:anchor`). */
38684
+ wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
38685
+ /** DrawingML picture. */
38686
+ pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
38687
+ /** Word 2010 shapes (`wps`). */
38688
+ wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
38689
+ /** Relationships (`r:id`, `r:embed`). */
38690
+ r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
38691
+ /** Markup compatibility (`mc:AlternateContent`). */
38692
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
38693
+ /** OPC relationships part. */
38694
+ rels: "http://schemas.openxmlformats.org/package/2006/relationships",
38695
+ /** OPC content types part. */
38696
+ contentTypes: "http://schemas.openxmlformats.org/package/2006/content-types",
38697
+ /** Office Math. */
38698
+ m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
38699
+ /** Core properties. */
38700
+ cp: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
38701
+ /** Dublin Core elements. */
38702
+ dc: "http://purl.org/dc/elements/1.1/",
38703
+ /** Legacy VML. */
38704
+ v: "urn:schemas-microsoft-com:vml",
38705
+ /** Office VML extensions. */
38706
+ o: "urn:schemas-microsoft-com:office:office",
38707
+ /** Word VML extensions. */
38708
+ w10: "urn:schemas-microsoft-com:office:word",
38709
+ /** SpreadsheetML drawing (`xdr:wsDr`, cell anchors). */
38710
+ xdr: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
38711
+ /** SpreadsheetML 2009 extensions (`x14:conditionalFormatting`, `x14:dataBar`). */
38712
+ x14: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
38713
+ /** SpreadsheetML 2009 attribute extensions (`x14ac:dyDescent`). */
38714
+ x14ac: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac",
38715
+ /** SpreadsheetML revision ids (`xr:uid`). */
38716
+ xr: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
38717
+ /** Excel threaded comments and persons. */
38718
+ tc: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
38719
+ /** Legacy VML Excel client data (`x:ClientData`). */
38720
+ xv: "urn:schemas-microsoft-com:office:excel",
38721
+ /** Extended (app) properties. */
38722
+ extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
38723
+ /** Dublin Core terms (`dcterms:created`). */
38724
+ dcterms: "http://purl.org/dc/terms/",
38725
+ /** Custom document properties (`docProps/custom.xml`). */
38726
+ customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
38727
+ /** Document property variant types (`vt:lpwstr`, `vt:vector`). */
38728
+ vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
38729
+ /** XML itself (`xml:space`). */
38730
+ xml: "http://www.w3.org/XML/1998/namespace"
38731
+ };
38732
+ var DEFAULT_XML_LIMITS = {
38733
+ maxDepth: 512,
38734
+ maxNodes: 5e6
38735
+ };
38736
+ var MARKUP_RE = /<!--[\s\S]*?-->|<!\[CDATA\[[\s\S]*?\]\]>|<\?[\s\S]*?\?>|<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/g;
38737
+ function checkXmlLimits(xml, label, limits = {}) {
38738
+ const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
38739
+ const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
38740
+ let depth = 0;
38741
+ let nodes = 0;
38742
+ for (const match of xml.matchAll(MARKUP_RE)) {
38743
+ const [, closing, name, selfClosing] = match;
38744
+ if (name === void 0) continue;
38745
+ if (closing) {
38746
+ depth--;
38747
+ continue;
38748
+ }
38749
+ nodes++;
38750
+ if (nodes > maxNodes) throw new Error(`${label} XML exceeds the limit of ${maxNodes} elements`);
38751
+ if (!selfClosing && ++depth > maxDepth2)
38752
+ throw new Error(`${label} XML exceeds the nesting depth limit of ${maxDepth2}`);
38753
+ }
38754
+ }
38755
+ function parseXml(xml, options = {}) {
38756
+ const label = options.label ?? "OOXML";
38757
+ if (/<!DOCTYPE|<!ENTITY/i.test(xml))
38758
+ throw new Error(`${label} XML with DTD or entity declarations is not supported`);
38759
+ checkXmlLimits(xml, label, options.limits);
38760
+ let parseError = "";
38761
+ let parsed;
38762
+ try {
38763
+ parsed = new DOMParser({
38764
+ onError: (level2, message) => {
38765
+ if (level2 !== "warning") parseError = message;
38766
+ }
38767
+ }).parseFromString(xml, "application/xml");
38768
+ } catch (error) {
38769
+ throw new Error(
38770
+ `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
38771
+ { cause: error }
38772
+ );
38773
+ }
38774
+ if (parseError || !parsed.documentElement)
38775
+ throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
38776
+ return parsed;
38777
+ }
38778
+ var buildXml = (node) => new XMLSerializer().serializeToString(node);
38779
+ var isElement = (node) => node.nodeType === 1;
38780
+ var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
38781
+ function named(element, local, ns, lenient = true) {
38782
+ if (!element || element.localName !== local) return false;
38783
+ return element.namespaceURI === ns || lenient && !element.namespaceURI;
38784
+ }
38785
+ var children2 = (parent, local, ns, lenient = true) => elements(parent).filter((element) => named(element, local, ns, lenient));
38786
+ var first = (parent, local, ns, lenient = true) => parent ? children2(parent, local, ns, lenient)[0] : void 0;
38787
+ function attr(element, local, ns, prefix) {
38788
+ return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
38789
+ }
38790
+ var relAttr = (element, local) => attr(element, local, NS.r, "r");
38791
+
38588
38792
  // pptx/core/utils/diagram-relationship-ids.ts
38589
38793
  var RELATIONSHIP_ATTRIBUTES2 = [
38590
38794
  ["dataRelId", "dm"],
@@ -38861,8 +39065,8 @@ function hasBevelGeometry(styleLbl, localName15) {
38861
39065
  return Object.keys(sp3d).some((key) => !key.startsWith("@_"));
38862
39066
  }
38863
39067
  function primaryNodeStyleLbl(styleLbls) {
38864
- const named = (name) => styleLbls.find((lbl) => String(lbl["@_name"] ?? "") === name);
38865
- return named("node1") ?? styleLbls.find((lbl) => /^node\d+$/u.test(String(lbl["@_name"] ?? "")));
39068
+ const named2 = (name) => styleLbls.find((lbl) => String(lbl["@_name"] ?? "") === name);
39069
+ return named2("node1") ?? styleLbls.find((lbl) => /^node\d+$/u.test(String(lbl["@_name"] ?? "")));
38866
39070
  }
38867
39071
  function resolveSmartArtEffectIntensity(styleLbls, localName15) {
38868
39072
  const primary = primaryNodeStyleLbl(styleLbls);
@@ -40333,6 +40537,14 @@ async function hmac(algorithm, key, data) {
40333
40537
  return new Uint8Array(result);
40334
40538
  }
40335
40539
 
40540
+ // digest/timing-safe.ts
40541
+ function timingSafeEqual(a, b) {
40542
+ if (a.length !== b.length) return false;
40543
+ let difference = 0;
40544
+ for (let i2 = 0; i2 < a.length; i2++) difference |= a[i2] ^ b[i2];
40545
+ return difference === 0;
40546
+ }
40547
+
40336
40548
  // crypto/aes-ecb.ts
40337
40549
  var BLOCK = 16;
40338
40550
  var BATCH = 4096;
@@ -42088,6 +42300,32 @@ function digestFunction(name) {
42088
42300
  return canonical && DIGESTS[canonical];
42089
42301
  }
42090
42302
 
42303
+ // digest/password-hash.ts
42304
+ var MAX_SPIN_COUNT = 1e7;
42305
+ var DEFAULT_MAX_SPIN_COUNT = 1e6;
42306
+ function isValidSpinCount(spinCount, maxSpinCount = DEFAULT_MAX_SPIN_COUNT) {
42307
+ const limit = Math.min(maxSpinCount, MAX_SPIN_COUNT);
42308
+ return spinCount === void 0 || Number.isInteger(spinCount) && spinCount >= 0 && spinCount <= limit;
42309
+ }
42310
+ function spinPasswordHash(password, salt, spinCount, digest) {
42311
+ const input = new Uint8Array(salt.length + password.length * 2);
42312
+ input.set(salt);
42313
+ for (let i2 = 0; i2 < password.length; i2++) {
42314
+ const code = password.charCodeAt(i2);
42315
+ input[salt.length + i2 * 2] = code & 255;
42316
+ input[salt.length + i2 * 2 + 1] = code >> 8;
42317
+ }
42318
+ let value = digest(input);
42319
+ const buffer = new Uint8Array(value.length + 4);
42320
+ const view = new DataView(buffer.buffer);
42321
+ for (let i2 = 0; i2 < spinCount; i2++) {
42322
+ buffer.set(value);
42323
+ view.setUint32(value.length, i2, true);
42324
+ value = digest(buffer);
42325
+ }
42326
+ return value;
42327
+ }
42328
+
42091
42329
  // crypto/key-derivation.ts
42092
42330
  var BLOCK_KEYS = {
42093
42331
  verifierHashInput: new Uint8Array([254, 167, 210, 118, 59, 75, 158, 121]),
@@ -42096,9 +42334,9 @@ var BLOCK_KEYS = {
42096
42334
  dataIntegrityHmacKey: new Uint8Array([95, 178, 173, 1, 12, 185, 225, 246]),
42097
42335
  dataIntegrityHmacValue: new Uint8Array([160, 103, 127, 2, 178, 44, 132, 51])
42098
42336
  };
42099
- var MAX_SPIN_COUNT = 1e7;
42100
- async function spinPassword(password, salt, spinCount, hashAlgorithm) {
42101
- if (!Number.isInteger(spinCount) || spinCount < 0 || spinCount > MAX_SPIN_COUNT) {
42337
+ var SPIN_CHUNK = 1e5;
42338
+ async function spinPassword(password, salt, spinCount, hashAlgorithm, limits = {}) {
42339
+ if (!isValidSpinCount(spinCount, limits.maxSpinCount)) {
42102
42340
  throw new Error(`Unsupported encryption spin count: ${spinCount}.`);
42103
42341
  }
42104
42342
  const passwordBytes = encodePasswordUtf16LE(password);
@@ -42111,6 +42349,9 @@ async function spinPassword(password, salt, spinCount, hashAlgorithm) {
42111
42349
  view.setUint32(0, i2, true);
42112
42350
  buffer.set(h3, 4);
42113
42351
  h3 = digest(buffer);
42352
+ if (i2 % SPIN_CHUNK === SPIN_CHUNK - 1 && i2 + 1 < spinCount) {
42353
+ await new Promise((resolve) => setTimeout(resolve, 0));
42354
+ }
42114
42355
  }
42115
42356
  return h3;
42116
42357
  }
@@ -42129,8 +42370,8 @@ async function extendKey(h2, hashAlgorithm, keyLength) {
42129
42370
  const x3 = concatArrays(await pad2(54), await pad2(92));
42130
42371
  return x3.subarray(0, keyLength);
42131
42372
  }
42132
- function computeAgileKeyBase(password, salt, spinCount, hashAlgorithm) {
42133
- return spinPassword(password, salt, spinCount, hashAlgorithm);
42373
+ function computeAgileKeyBase(password, salt, spinCount, hashAlgorithm, limits = {}) {
42374
+ return spinPassword(password, salt, spinCount, hashAlgorithm, limits);
42134
42375
  }
42135
42376
  async function deriveAgileKeyFromBase(base, hashAlgorithm, blockKey, keyBits, hashSize) {
42136
42377
  const h2 = await hash(hashAlgorithm, concatArrays(base, blockKey));
@@ -42157,10 +42398,82 @@ async function generateIV(hashAlgorithm, salt, blockKey, blockSize) {
42157
42398
  return padded;
42158
42399
  }
42159
42400
 
42401
+ // crypto/validate.ts
42402
+ var AGILE_DIGEST_LENGTH = {
42403
+ "SHA-1": 20,
42404
+ "SHA-256": 32,
42405
+ "SHA-384": 48,
42406
+ "SHA-512": 64
42407
+ };
42408
+ function agileDigestLength(hashAlgorithm) {
42409
+ const name = normalizeDigestAlgorithmName(hashAlgorithm);
42410
+ return name === void 0 ? void 0 : AGILE_DIGEST_LENGTH[name];
42411
+ }
42412
+ var KEY_BITS = /* @__PURE__ */ new Set([128, 192, 256]);
42413
+ function assertBlock(block, what) {
42414
+ if (block.cipherAlgorithm !== "AES") {
42415
+ throw new Error(`Unsupported ${what} cipherAlgorithm: ${block.cipherAlgorithm}.`);
42416
+ }
42417
+ if (block.cipherChaining !== "ChainingModeCBC") {
42418
+ throw new Error(`Unsupported ${what} cipherChaining: ${block.cipherChaining}.`);
42419
+ }
42420
+ const digestLength = agileDigestLength(block.hashAlgorithm);
42421
+ if (digestLength === void 0) {
42422
+ throw new Error(`Unsupported ${what} hashAlgorithm: ${block.hashAlgorithm}.`);
42423
+ }
42424
+ if (block.hashSize !== digestLength) {
42425
+ throw new Error(
42426
+ `Invalid ${what} hashSize ${block.hashSize}: ${block.hashAlgorithm} produces ${digestLength} bytes.`
42427
+ );
42428
+ }
42429
+ if (!KEY_BITS.has(block.keyBits)) throw new Error(`Invalid ${what} keyBits: ${block.keyBits}.`);
42430
+ if (block.blockSize !== 16) throw new Error(`Invalid ${what} blockSize: ${block.blockSize}.`);
42431
+ if (!Number.isInteger(block.saltSize) || block.saltSize <= 0 || block.saltSize > 64) {
42432
+ throw new Error(`Invalid ${what} saltSize: ${block.saltSize}.`);
42433
+ }
42434
+ if (block.saltValue.length !== block.saltSize) {
42435
+ throw new Error(`The ${what} saltValue does not match its saltSize.`);
42436
+ }
42437
+ }
42438
+ function assertValidAgileEncryptionInfo(info) {
42439
+ assertBlock(info.keyData, "keyData");
42440
+ const pke = info.passwordKeyEncryptor;
42441
+ assertBlock(pke, "password key encryptor");
42442
+ if (!Number.isInteger(pke.spinCount) || pke.spinCount < 0) {
42443
+ throw new Error(`Invalid spinCount: ${pke.spinCount}.`);
42444
+ }
42445
+ if (pke.saltSize > pke.hashSize) {
42446
+ throw new Error(`Invalid password key encryptor saltSize: ${pke.saltSize}.`);
42447
+ }
42448
+ }
42449
+ function assertValidStandardEncryptionInfo(info) {
42450
+ if (!KEY_BITS.has(info.header.keySize)) {
42451
+ throw new Error(`Invalid Standard encryption keySize: ${info.header.keySize}.`);
42452
+ }
42453
+ if (info.verifier.salt.length !== 16 || info.verifier.saltSize !== 16) {
42454
+ throw new Error(`Invalid Standard encryption saltSize: ${info.verifier.saltSize}.`);
42455
+ }
42456
+ if (info.verifier.verifierHashSize !== 20) {
42457
+ throw new Error(
42458
+ `Invalid Standard encryption verifierHashSize: ${info.verifier.verifierHashSize}.`
42459
+ );
42460
+ }
42461
+ if (info.verifier.encryptedVerifier.length !== 16 || info.verifier.encryptedVerifierHash.length < 20) {
42462
+ throw new Error("The Standard encryption verifier is truncated.");
42463
+ }
42464
+ }
42465
+
42160
42466
  // crypto/decrypt.ts
42161
- async function verifyAgilePassword(info, password) {
42467
+ async function verifyAgilePassword(info, password, limits = {}) {
42468
+ assertValidAgileEncryptionInfo(info);
42162
42469
  const pke = info.passwordKeyEncryptor;
42163
- const base = await computeAgileKeyBase(password, pke.saltValue, pke.spinCount, pke.hashAlgorithm);
42470
+ const base = await computeAgileKeyBase(
42471
+ password,
42472
+ pke.saltValue,
42473
+ pke.spinCount,
42474
+ pke.hashAlgorithm,
42475
+ limits
42476
+ );
42164
42477
  const blockKey = (block) => deriveAgileKeyFromBase(base, pke.hashAlgorithm, block, pke.keyBits, pke.hashSize);
42165
42478
  const verifierHashInput = await aesCbcDecryptRaw(
42166
42479
  await blockKey(BLOCK_KEYS.verifierHashInput),
@@ -42173,10 +42486,8 @@ async function verifyAgilePassword(info, password) {
42173
42486
  pke.encryptedVerifierHashValue
42174
42487
  );
42175
42488
  const computedHash = await hash(pke.hashAlgorithm, verifierHashInput.subarray(0, pke.saltSize));
42176
- if (computedHash.length < pke.hashSize || verifierHashValue.length < pke.hashSize) return null;
42177
- let difference = 0;
42178
- for (let i2 = 0; i2 < pke.hashSize; i2++) difference |= verifierHashValue[i2] ^ computedHash[i2];
42179
- if (difference !== 0) return null;
42489
+ if (computedHash.length !== pke.hashSize || verifierHashValue.length < pke.hashSize) return null;
42490
+ if (!timingSafeEqual(verifierHashValue.subarray(0, pke.hashSize), computedHash)) return null;
42180
42491
  const decryptedKey = await aesCbcDecryptRaw(
42181
42492
  await blockKey(BLOCK_KEYS.encryptedKeyValue),
42182
42493
  pke.saltValue,
@@ -42185,6 +42496,7 @@ async function verifyAgilePassword(info, password) {
42185
42496
  return decryptedKey.subarray(0, info.keyData.keyBits / 8);
42186
42497
  }
42187
42498
  async function verifyStandardPassword(info, password) {
42499
+ assertValidStandardEncryptionInfo(info);
42188
42500
  const key = await deriveStandardKey(
42189
42501
  password,
42190
42502
  info.verifier.salt,
@@ -42194,20 +42506,16 @@ async function verifyStandardPassword(info, password) {
42194
42506
  const decryptedVerifier = await aesEcbDecrypt(key, info.verifier.encryptedVerifier);
42195
42507
  const decryptedHash = await aesEcbDecrypt(key, info.verifier.encryptedVerifierHash);
42196
42508
  const computedHash = await hash("SHA-1", decryptedVerifier);
42197
- const hashSize = info.verifier.verifierHashSize;
42198
- let match = true;
42199
- for (let i2 = 0; i2 < Math.min(hashSize, 20); i2++) {
42200
- if (computedHash[i2] !== decryptedHash[i2]) {
42201
- match = false;
42202
- break;
42203
- }
42204
- }
42509
+ const match = timingSafeEqual(decryptedHash.subarray(0, 20), computedHash);
42205
42510
  return match ? key : null;
42206
42511
  }
42207
- async function verifyAgileDataIntegrity(info, key, encryptedPackage) {
42512
+ async function verifyAgileDataIntegrity(info, key, encryptedPackage, options = {}) {
42208
42513
  const keyData = info.keyData;
42209
42514
  if (!info.dataIntegrity) {
42210
- return;
42515
+ if (options.allowMissingIntegrity) return;
42516
+ throw new DataIntegrityError(
42517
+ "The encrypted package has no data integrity record, so it cannot be checked for tampering."
42518
+ );
42211
42519
  }
42212
42520
  const hmacKeyIV = await generateIV(
42213
42521
  keyData.hashAlgorithm,
@@ -42234,28 +42542,26 @@ async function verifyAgileDataIntegrity(info, key, encryptedPackage) {
42234
42542
  );
42235
42543
  const expectedHmac = decryptedHmacValue.subarray(0, keyData.hashSize);
42236
42544
  const computedHmac = await hmac(keyData.hashAlgorithm, hmacKey, encryptedPackage);
42237
- let match = true;
42238
- if (computedHmac.length < keyData.hashSize) {
42239
- match = false;
42240
- } else {
42241
- for (let i2 = 0; i2 < keyData.hashSize; i2++) {
42242
- if (computedHmac[i2] !== expectedHmac[i2]) {
42243
- match = false;
42244
- break;
42245
- }
42246
- }
42247
- }
42545
+ const match = timingSafeEqual(computedHmac, expectedHmac);
42248
42546
  if (!match) {
42249
42547
  throw new DataIntegrityError(
42250
42548
  "Data integrity check failed. The encrypted file may be corrupted or tampered with."
42251
42549
  );
42252
42550
  }
42253
42551
  }
42552
+ function readOriginalSize(encryptedPackage, wide) {
42553
+ if (encryptedPackage.length < 8) throw new Error("The EncryptedPackage stream is truncated.");
42554
+ const view = new DataView(encryptedPackage.buffer, encryptedPackage.byteOffset, 8);
42555
+ const high = view.getUint32(4, true);
42556
+ return view.getUint32(0, true) + (wide ? high * 4294967296 : 0);
42557
+ }
42254
42558
  async function decryptAgilePackage(encryptedPackage, key, info) {
42255
42559
  const keyData = info.keyData;
42256
- const sizeView = new DataView(encryptedPackage.buffer, encryptedPackage.byteOffset, 8);
42257
- const originalSize = sizeView.getUint32(0, true) + sizeView.getUint32(4, true) * 4294967296;
42560
+ const originalSize = readOriginalSize(encryptedPackage, true);
42258
42561
  const encryptedData = encryptedPackage.subarray(8);
42562
+ if (originalSize > encryptedData.length) {
42563
+ throw new Error("The declared package size exceeds the encrypted data.");
42564
+ }
42259
42565
  const segmentSize = 4096;
42260
42566
  const result = new Uint8Array(originalSize);
42261
42567
  let resultOffset = 0;
@@ -42279,9 +42585,11 @@ async function decryptAgilePackage(encryptedPackage, key, info) {
42279
42585
  return result.buffer;
42280
42586
  }
42281
42587
  async function decryptStandardPackage(encryptedPackage, key) {
42282
- const sizeView = new DataView(encryptedPackage.buffer, encryptedPackage.byteOffset, 8);
42283
- const originalSize = sizeView.getUint32(0, true);
42588
+ const originalSize = readOriginalSize(encryptedPackage, false);
42284
42589
  const encryptedData = encryptedPackage.subarray(8);
42590
+ if (originalSize > encryptedData.length) {
42591
+ throw new Error("The declared package size exceeds the encrypted data.");
42592
+ }
42285
42593
  const decrypted = await aesEcbDecrypt(key, encryptedData);
42286
42594
  return decrypted.slice(0, originalSize).buffer;
42287
42595
  }
@@ -42536,53 +42844,87 @@ function parseStandardEncryptionInfo(data) {
42536
42844
  }
42537
42845
  };
42538
42846
  }
42539
- function tagAttribute(xml, tag, attr) {
42540
- const tagMatch = xml.match(new RegExp(`<[^>]*${tag}[^>]*>`, "i"));
42541
- if (!tagMatch) return "";
42542
- const attrMatch = tagMatch[0].match(new RegExp(`\\b${attr}="([^"]*)"`, "i"));
42543
- return attrMatch?.[1] ?? "";
42847
+ var PASSWORD_KEY_ENCRYPTOR_URI = "http://schemas.microsoft.com/office/2006/keyEncryptor/password";
42848
+ function childrenNamed2(parent, localName15) {
42849
+ const found = [];
42850
+ for (let node = parent.firstChild; node; node = node.nextSibling) {
42851
+ if (node.nodeType === 1 && node.localName === localName15) {
42852
+ found.push(node);
42853
+ }
42854
+ }
42855
+ return found;
42544
42856
  }
42545
- function parseAgileEncryptionInfo(data) {
42546
- const xml = new TextDecoder("utf-8").decode(data.subarray(8));
42547
- const keyData = (attr) => tagAttribute(xml, "keyData", attr);
42548
- const integrity = (attr) => tagAttribute(xml, "dataIntegrity", attr);
42549
- const pke = (attr) => tagAttribute(xml, "encryptedKey", attr);
42550
- const int = (value) => parseInt(value, 10);
42551
- const encryptedHmacKey = integrity("encryptedHmacKey");
42857
+ function singleChild(parent, localName15, mustExist) {
42858
+ const matches = childrenNamed2(parent, localName15);
42859
+ if (matches.length > 1) throw new Error(`The EncryptionInfo has several ${localName15} elements.`);
42860
+ if (matches.length === 0 && mustExist) {
42861
+ throw new Error(`The EncryptionInfo has no ${localName15} element.`);
42862
+ }
42863
+ return matches[0];
42864
+ }
42865
+ function required(element, attr2) {
42866
+ const value = element.getAttribute(attr2);
42867
+ if (!value) throw new Error(`The EncryptionInfo ${element.localName} has no ${attr2}.`);
42868
+ return value;
42869
+ }
42870
+ function requiredInt(element, attr2) {
42871
+ const value = required(element, attr2);
42872
+ if (!/^\d{1,10}$/.test(value)) {
42873
+ throw new Error(`The EncryptionInfo ${element.localName} ${attr2} is not a number: ${value}.`);
42874
+ }
42875
+ return Number(value);
42876
+ }
42877
+ function parseKeyBlock(element) {
42552
42878
  return {
42879
+ saltSize: requiredInt(element, "saltSize"),
42880
+ blockSize: requiredInt(element, "blockSize"),
42881
+ keyBits: requiredInt(element, "keyBits"),
42882
+ hashSize: requiredInt(element, "hashSize"),
42883
+ cipherAlgorithm: required(element, "cipherAlgorithm"),
42884
+ cipherChaining: required(element, "cipherChaining"),
42885
+ hashAlgorithm: required(element, "hashAlgorithm"),
42886
+ saltValue: base64Decode(required(element, "saltValue"))
42887
+ };
42888
+ }
42889
+ function parseAgileEncryptionInfo(data) {
42890
+ const root = parseXml(new TextDecoder("utf-8").decode(data.subarray(8)), {
42891
+ label: "EncryptionInfo"
42892
+ }).documentElement;
42893
+ if (root.localName !== "encryption") {
42894
+ throw new Error("The EncryptionInfo root element is not <encryption>.");
42895
+ }
42896
+ const keyData = parseKeyBlock(singleChild(root, "keyData", true));
42897
+ const integrity = singleChild(root, "dataIntegrity", false);
42898
+ const encryptors = childrenNamed2(singleChild(root, "keyEncryptors", true), "keyEncryptor");
42899
+ const passwordEncryptors = encryptors.filter(
42900
+ (encryptor) => encryptor.getAttribute("uri") === PASSWORD_KEY_ENCRYPTOR_URI
42901
+ );
42902
+ if (passwordEncryptors.length !== 1) {
42903
+ throw new Error(
42904
+ passwordEncryptors.length === 0 ? "The EncryptionInfo has no password key encryptor." : "The EncryptionInfo has several password key encryptors."
42905
+ );
42906
+ }
42907
+ const pke = singleChild(passwordEncryptors[0], "encryptedKey", true);
42908
+ const info = {
42553
42909
  version: { major: 4, minor: 4 },
42554
42910
  isAgile: true,
42555
- keyData: {
42556
- saltSize: int(keyData("saltSize")),
42557
- blockSize: int(keyData("blockSize")),
42558
- keyBits: int(keyData("keyBits")),
42559
- hashSize: int(keyData("hashSize")),
42560
- cipherAlgorithm: keyData("cipherAlgorithm"),
42561
- cipherChaining: keyData("cipherChaining"),
42562
- hashAlgorithm: keyData("hashAlgorithm"),
42563
- saltValue: base64Decode(keyData("saltValue"))
42564
- },
42565
- ...encryptedHmacKey ? {
42911
+ keyData,
42912
+ ...integrity ? {
42566
42913
  dataIntegrity: {
42567
- encryptedHmacKey: base64Decode(encryptedHmacKey),
42568
- encryptedHmacValue: base64Decode(integrity("encryptedHmacValue"))
42914
+ encryptedHmacKey: base64Decode(required(integrity, "encryptedHmacKey")),
42915
+ encryptedHmacValue: base64Decode(required(integrity, "encryptedHmacValue"))
42569
42916
  }
42570
42917
  } : {},
42571
42918
  passwordKeyEncryptor: {
42572
- saltSize: int(pke("saltSize")),
42573
- blockSize: int(pke("blockSize")),
42574
- keyBits: int(pke("keyBits")),
42575
- hashSize: int(pke("hashSize")),
42576
- cipherAlgorithm: pke("cipherAlgorithm"),
42577
- cipherChaining: pke("cipherChaining"),
42578
- hashAlgorithm: pke("hashAlgorithm"),
42579
- saltValue: base64Decode(pke("saltValue")),
42580
- spinCount: int(pke("spinCount")),
42581
- encryptedVerifierHashInput: base64Decode(pke("encryptedVerifierHashInput")),
42582
- encryptedVerifierHashValue: base64Decode(pke("encryptedVerifierHashValue")),
42583
- encryptedKeyValue: base64Decode(pke("encryptedKeyValue"))
42919
+ ...parseKeyBlock(pke),
42920
+ spinCount: requiredInt(pke, "spinCount"),
42921
+ encryptedVerifierHashInput: base64Decode(required(pke, "encryptedVerifierHashInput")),
42922
+ encryptedVerifierHashValue: base64Decode(required(pke, "encryptedVerifierHashValue")),
42923
+ encryptedKeyValue: base64Decode(required(pke, "encryptedKeyValue"))
42584
42924
  }
42585
42925
  };
42926
+ assertValidAgileEncryptionInfo(info);
42927
+ return info;
42586
42928
  }
42587
42929
 
42588
42930
  // crypto/index.ts
@@ -42598,7 +42940,7 @@ function streams(bytes) {
42598
42940
  }
42599
42941
  throw new Error("EncryptedPackage stream not found. The file may be corrupted.");
42600
42942
  }
42601
- async function decryptOoxmlPackage(input, password) {
42943
+ async function decryptOoxmlPackage(input, password, options = {}) {
42602
42944
  const { info: infoStream, data } = streams(toBytes(input));
42603
42945
  const info = parseEncryptionInfo(infoStream);
42604
42946
  if (isStandard(info)) {
@@ -42606,21 +42948,21 @@ async function decryptOoxmlPackage(input, password) {
42606
42948
  if (!key2) throw new IncorrectPasswordError();
42607
42949
  return new Uint8Array(await decryptStandardPackage(data, key2));
42608
42950
  }
42609
- const key = await verifyAgilePassword(info, password);
42951
+ const key = await verifyAgilePassword(info, password, options);
42610
42952
  if (!key) throw new IncorrectPasswordError();
42611
- await verifyAgileDataIntegrity(info, key, data);
42953
+ await verifyAgileDataIntegrity(info, key, data, options);
42612
42954
  return new Uint8Array(await decryptAgilePackage(data, key, info));
42613
42955
  }
42614
42956
  function encryptOoxmlPackage(input, password, options = {}) {
42615
42957
  const bytes = toBytes(input);
42616
42958
  return options.encryptionScheme === "standard" ? encryptStandard(bytes, password, options) : encryptAgile(bytes, password, options);
42617
42959
  }
42618
- async function verifyOoxmlPackagePassword(input, password) {
42960
+ async function verifyOoxmlPackagePassword(input, password, options = {}) {
42619
42961
  try {
42620
42962
  const opened = openEncryptedPackage(input);
42621
42963
  if (!opened) return false;
42622
42964
  const info = parseEncryptionInfo(opened.encryptionInfo);
42623
- const key = isStandard(info) ? await verifyStandardPassword(info, password) : await verifyAgilePassword(info, password);
42965
+ const key = isStandard(info) ? await verifyStandardPassword(info, password) : await verifyAgilePassword(info, password, options);
42624
42966
  return key !== null;
42625
42967
  } catch {
42626
42968
  return false;
@@ -42638,26 +42980,6 @@ function verifyPassword(encryptedBuffer, password) {
42638
42980
  return verifyOoxmlPackagePassword(encryptedBuffer, password);
42639
42981
  }
42640
42982
 
42641
- // digest/password-hash.ts
42642
- function spinPasswordHash(password, salt, spinCount, digest) {
42643
- const input = new Uint8Array(salt.length + password.length * 2);
42644
- input.set(salt);
42645
- for (let i2 = 0; i2 < password.length; i2++) {
42646
- const code = password.charCodeAt(i2);
42647
- input[salt.length + i2 * 2] = code & 255;
42648
- input[salt.length + i2 * 2 + 1] = code >> 8;
42649
- }
42650
- let value = digest(input);
42651
- const buffer = new Uint8Array(value.length + 4);
42652
- const view = new DataView(buffer.buffer);
42653
- for (let i2 = 0; i2 < spinCount; i2++) {
42654
- buffer.set(value);
42655
- view.setUint32(value.length, i2, true);
42656
- value = digest(buffer);
42657
- }
42658
- return value;
42659
- }
42660
-
42661
42983
  // pptx/core/utils/modify-verifier-codec.ts
42662
42984
  function base64Decode2(str) {
42663
42985
  const normalized = str.replace(/\s+/g, "");
@@ -42684,33 +43006,24 @@ function base64Encode2(bytes) {
42684
43006
  }
42685
43007
  function randomSalt() {
42686
43008
  const salt = new Uint8Array(16);
42687
- if (typeof globalThis.crypto !== "undefined") {
42688
- globalThis.crypto.getRandomValues(salt);
42689
- } else {
42690
- for (let i2 = 0; i2 < salt.length; i2++) {
42691
- salt[i2] = Math.floor(Math.random() * 256);
42692
- }
43009
+ if (typeof globalThis.crypto?.getRandomValues !== "function") {
43010
+ throw new Error(
43011
+ "A secure random source (crypto.getRandomValues) is required to create a salt."
43012
+ );
42693
43013
  }
43014
+ globalThis.crypto.getRandomValues(salt);
42694
43015
  return salt;
42695
43016
  }
42696
43017
  async function iteratedHash(algorithm, salt, password, spinCount) {
43018
+ if (!isValidSpinCount(spinCount)) {
43019
+ throw new Error(`Unsupported verifier spin count: ${spinCount}.`);
43020
+ }
42697
43021
  const digest = digestFunction(algorithm);
42698
43022
  if (!digest) {
42699
43023
  throw new Error(`Unsupported digest algorithm: ${algorithm}`);
42700
43024
  }
42701
43025
  return spinPasswordHash(password, salt, spinCount, digest);
42702
43026
  }
42703
- function bytesEqual2(a, b) {
42704
- if (a.length !== b.length) {
42705
- return false;
42706
- }
42707
- for (let i2 = 0; i2 < a.length; i2++) {
42708
- if (a[i2] !== b[i2]) {
42709
- return false;
42710
- }
42711
- }
42712
- return true;
42713
- }
42714
43027
 
42715
43028
  // pptx/core/utils/modify-verifier.ts
42716
43029
  var CRYPT_ALGORITHM_SID_NAMES = {
@@ -42742,8 +43055,9 @@ async function verifyModifyPassword(verifier, password) {
42742
43055
  const salt = verifier.saltData ? base64Decode2(verifier.saltData) : new Uint8Array(0);
42743
43056
  const expectedHash = base64Decode2(verifier.hashData);
42744
43057
  const spinCount = verifier.spinValue ?? 1e5;
43058
+ if (!isValidSpinCount(spinCount)) return false;
42745
43059
  const h2 = await iteratedHash(algorithm, salt, password, spinCount);
42746
- return bytesEqual2(h2, expectedHash);
43060
+ return timingSafeEqual(h2, expectedHash);
42747
43061
  }
42748
43062
  async function createModifyVerifier(password, options) {
42749
43063
  const requestedAlgorithm = options?.algorithmName ?? "SHA-512";
@@ -42928,6 +43242,35 @@ function applyChartLayouts(chartRoot, layouts, localName15) {
42928
43242
  applyChartManualLayout(child7(chartRoot, "legend", localName15), layouts.legend, localName15);
42929
43243
  }
42930
43244
 
43245
+ // chart/model-analysis.ts
43246
+ var KIND_OF_TYPE = {
43247
+ linear: "linear",
43248
+ exp: "exponential",
43249
+ log: "logarithmic",
43250
+ poly: "polynomial",
43251
+ power: "power",
43252
+ movingAvg: "movingAvg"
43253
+ };
43254
+ var TYPE_OF_KIND = {
43255
+ linear: "linear",
43256
+ exponential: "exp",
43257
+ logarithmic: "log",
43258
+ polynomial: "poly",
43259
+ power: "power",
43260
+ movingAvg: "movingAvg"
43261
+ };
43262
+ var chartTrendlineKind = (type) => type !== void 0 && Object.hasOwn(KIND_OF_TYPE, type) ? KIND_OF_TYPE[type] : void 0;
43263
+ var chartTrendlineType = (kind) => TYPE_OF_KIND[kind];
43264
+ var CHART_ERROR_BAR_DIRECTIONS = ["x", "y"];
43265
+ var CHART_ERROR_BAR_TYPES = ["both", "minus", "plus"];
43266
+ var CHART_ERROR_VALUE_TYPES = [
43267
+ "cust",
43268
+ "fixedVal",
43269
+ "percentage",
43270
+ "stdDev",
43271
+ "stdErr"
43272
+ ];
43273
+
42931
43274
  // pptx/core/utils/chart-trendline-label.ts
42932
43275
  function keyOf(node, name, localName15) {
42933
43276
  return node ? Object.keys(node).find((key) => localName15(key) === name) : void 0;
@@ -42998,26 +43341,8 @@ function reorderLabel(node, localName15) {
42998
43341
  }
42999
43342
 
43000
43343
  // pptx/core/utils/chart-advanced-parser.ts
43001
- var TRENDLINE_TYPE_MAP = {
43002
- linear: "linear",
43003
- exp: "exponential",
43004
- log: "logarithmic",
43005
- poly: "polynomial",
43006
- power: "power",
43007
- movingAvg: "movingAvg"
43008
- };
43009
- var ERR_BAR_TYPE_MAP = {
43010
- both: "both",
43011
- minus: "minus",
43012
- plus: "plus"
43013
- };
43014
- var ERR_VAL_TYPE_MAP = {
43015
- cust: "cust",
43016
- fixedVal: "fixedVal",
43017
- percentage: "percentage",
43018
- stdDev: "stdDev",
43019
- stdErr: "stdErr"
43020
- };
43344
+ var isErrBarType = (value) => CHART_ERROR_BAR_TYPES.includes(value);
43345
+ var isErrValType = (value) => CHART_ERROR_VALUE_TYPES.includes(value);
43021
43346
  function safeInt(val) {
43022
43347
  const n = parseInt(String(val), 10);
43023
43348
  return Number.isFinite(n) ? n : void 0;
@@ -43041,7 +43366,7 @@ function parseSeriesTrendlines(seriesNode, xmlLookup, colorParser) {
43041
43366
  return trendlineNodes.map((node) => {
43042
43367
  const typeNode = xmlLookup.getChildByLocalName(node, "trendlineType");
43043
43368
  const rawType = String(typeNode?.["@_val"] || "").trim();
43044
- const trendlineType = TRENDLINE_TYPE_MAP[rawType];
43369
+ const trendlineType = chartTrendlineKind(rawType);
43045
43370
  if (!trendlineType) {
43046
43371
  return void 0;
43047
43372
  }
@@ -43111,13 +43436,13 @@ function parseSeriesErrBars(seriesNode, xmlLookup, extractPointValues, colorPars
43111
43436
  const direction = rawDir === "x" ? "x" : "y";
43112
43437
  const errBarTypeNode = xmlLookup.getChildByLocalName(node, "errBarType");
43113
43438
  const rawBarType = String(errBarTypeNode?.["@_val"] || "both").trim();
43114
- const barType = ERR_BAR_TYPE_MAP[rawBarType] ?? "both";
43439
+ const barType = isErrBarType(rawBarType) ? rawBarType : "both";
43115
43440
  const errValTypeNode = xmlLookup.getChildByLocalName(node, "errValType");
43116
43441
  const rawValType = String(errValTypeNode?.["@_val"] || "").trim();
43117
- const valType = ERR_VAL_TYPE_MAP[rawValType];
43118
- if (!valType) {
43442
+ if (!isErrValType(rawValType)) {
43119
43443
  return void 0;
43120
43444
  }
43445
+ const valType = rawValType;
43121
43446
  const result = { direction, barType, valType };
43122
43447
  const noEndCap = booleanValue2(xmlLookup.getChildByLocalName(node, "noEndCap"));
43123
43448
  if (noEndCap !== void 0) {
@@ -44512,9 +44837,9 @@ function collectAllText(node, getLocalName, out) {
44512
44837
  continue;
44513
44838
  }
44514
44839
  const value = node[key];
44515
- const children5 = Array.isArray(value) ? value : [value];
44840
+ const children6 = Array.isArray(value) ? value : [value];
44516
44841
  if (getLocalName(key) === "t") {
44517
- for (const child13 of children5) {
44842
+ for (const child13 of children6) {
44518
44843
  if (child13 === void 0 || child13 === null) {
44519
44844
  continue;
44520
44845
  }
@@ -44524,7 +44849,7 @@ function collectAllText(node, getLocalName, out) {
44524
44849
  }
44525
44850
  continue;
44526
44851
  }
44527
- for (const child13 of children5) {
44852
+ for (const child13 of children6) {
44528
44853
  if (child13 && typeof child13 === "object") {
44529
44854
  collectAllText(child13, getLocalName, out);
44530
44855
  }
@@ -44542,8 +44867,8 @@ function replaceFirstText(node, text, getLocalName) {
44542
44867
  return true;
44543
44868
  }
44544
44869
  const value = node[key];
44545
- const children5 = Array.isArray(value) ? value : [value];
44546
- for (const child13 of children5) {
44870
+ const children6 = Array.isArray(value) ? value : [value];
44871
+ for (const child13 of children6) {
44547
44872
  if (child13 && typeof child13 === "object" && replaceFirstText(child13, text, getLocalName)) {
44548
44873
  return true;
44549
44874
  }
@@ -46340,8 +46665,8 @@ function buildUserShape(shape, kind, base, xml, colors) {
46340
46665
  };
46341
46666
  }
46342
46667
  function parseOffExt(offNode, extNode) {
46343
- const num3 = (node, attr) => {
46344
- const raw = Number.parseFloat(String(node?.[attr] ?? ""));
46668
+ const num3 = (node, attr2) => {
46669
+ const raw = Number.parseFloat(String(node?.[attr2] ?? ""));
46345
46670
  return Number.isFinite(raw) ? raw : 0;
46346
46671
  };
46347
46672
  return {
@@ -46400,18 +46725,18 @@ function buildNestedGroupChild(group, xml, colors) {
46400
46725
  };
46401
46726
  }
46402
46727
  function parseGroupChildren(group, xml, colors) {
46403
- const children5 = [];
46728
+ const children6 = [];
46404
46729
  for (const kind of DIRECT_KINDS) {
46405
46730
  for (const child13 of xml.getChildrenArrayByLocalName(group, kind)) {
46406
- children5.push(buildGroupChild(child13, kind, xml, colors));
46731
+ children6.push(buildGroupChild(child13, kind, xml, colors));
46407
46732
  }
46408
46733
  }
46409
46734
  for (const nested of xml.getChildrenArrayByLocalName(group, "grpSp")) {
46410
- children5.push(buildNestedGroupChild(nested, xml, colors));
46735
+ children6.push(buildNestedGroupChild(nested, xml, colors));
46411
46736
  }
46412
46737
  for (const graphicFrame of xml.getChildrenArrayByLocalName(group, "graphicFrame")) {
46413
46738
  const { off, ext, rotation, flipH, flipV } = parseChildOffExt(graphicFrame, xml);
46414
- children5.push({
46739
+ children6.push({
46415
46740
  kind: "graphicFrame",
46416
46741
  off,
46417
46742
  ext,
@@ -46421,7 +46746,7 @@ function parseGroupChildren(group, xml, colors) {
46421
46746
  rawXml: cloneXmlObject(graphicFrame)
46422
46747
  });
46423
46748
  }
46424
- return children5;
46749
+ return children6;
46425
46750
  }
46426
46751
  function parseAnchorShape(anchor, base, xml, colors) {
46427
46752
  for (const kind of DIRECT_KINDS) {
@@ -46538,8 +46863,8 @@ function flattenChartUserShapes(shapes, chartBox) {
46538
46863
  if (!shapes) {
46539
46864
  return [];
46540
46865
  }
46541
- function resolveGroupLeaves(children5, chOff, chExt) {
46542
- return children5.flatMap((child13) => {
46866
+ function resolveGroupLeaves(children6, chOff, chExt) {
46867
+ return children6.flatMap((child13) => {
46543
46868
  const frac = childFraction(child13.off, child13.ext, chOff, chExt);
46544
46869
  if (child13.kind === "grpSp") {
46545
46870
  const childTransform = child13.transform;
@@ -46821,7 +47146,7 @@ function resolveCellValue(cell, sharedStrings) {
46821
47146
  }
46822
47147
  async function parseEmbeddedXlsx(xlsxData) {
46823
47148
  try {
46824
- const xlsxZip = await JSZip2.loadAsync(xlsxData);
47149
+ const xlsxZip = await openNestedZip(xlsxData);
46825
47150
  const xmlParser = new XMLParser({
46826
47151
  ignoreAttributes: false,
46827
47152
  attributeNamePrefix: "@_",
@@ -47487,34 +47812,34 @@ function isAlternateContentChoiceXmlSupported(requires, branchXml) {
47487
47812
  if (!areNamespacesSupported(requires)) {
47488
47813
  return false;
47489
47814
  }
47490
- const required = new Set(requires.trim().split(/\s+/).filter(Boolean));
47815
+ const required2 = new Set(requires.trim().split(/\s+/).filter(Boolean));
47491
47816
  const tagPattern = /<(?!\/|\?|!)([A-Za-z_][\w.-]*):([A-Za-z_][\w.-]*)\b/g;
47492
47817
  let match;
47493
47818
  while ((match = tagPattern.exec(branchXml)) !== null) {
47494
- if (required.has(match[1]) && !isExtensionElementSupported(match[1], match[2])) {
47819
+ if (required2.has(match[1]) && !isExtensionElementSupported(match[1], match[2])) {
47495
47820
  return false;
47496
47821
  }
47497
47822
  }
47498
47823
  return true;
47499
47824
  }
47500
- function hasOnlySupportedExtensionElements(node, required) {
47825
+ function hasOnlySupportedExtensionElements(node, required2) {
47501
47826
  if (!node || typeof node !== "object") {
47502
47827
  return true;
47503
47828
  }
47504
47829
  if (Array.isArray(node)) {
47505
- return node.every((item) => hasOnlySupportedExtensionElements(item, required));
47830
+ return node.every((item) => hasOnlySupportedExtensionElements(item, required2));
47506
47831
  }
47507
47832
  for (const [key, value] of Object.entries(node)) {
47508
47833
  if (!key.startsWith("@_")) {
47509
47834
  const separator = key.indexOf(":");
47510
47835
  if (separator > 0) {
47511
47836
  const prefix = key.slice(0, separator);
47512
- if (required.has(prefix) && !isExtensionElementSupported(prefix, key.slice(separator + 1))) {
47837
+ if (required2.has(prefix) && !isExtensionElementSupported(prefix, key.slice(separator + 1))) {
47513
47838
  return false;
47514
47839
  }
47515
47840
  }
47516
47841
  }
47517
- if (!hasOnlySupportedExtensionElements(value, required)) {
47842
+ if (!hasOnlySupportedExtensionElements(value, required2)) {
47518
47843
  return false;
47519
47844
  }
47520
47845
  }
@@ -48021,9 +48346,9 @@ function extractTextFromXmlNode(node) {
48021
48346
  }
48022
48347
  const containerTags = ["div", "p", "span", "b", "i", "u", "font", "body", "html"];
48023
48348
  for (const tag of containerTags) {
48024
- const children5 = node[tag];
48025
- if (children5) {
48026
- const arr = Array.isArray(children5) ? children5 : [children5];
48349
+ const children6 = node[tag];
48350
+ if (children6) {
48351
+ const arr = Array.isArray(children6) ? children6 : [children6];
48027
48352
  for (const child13 of arr) {
48028
48353
  const childText = extractTextFromXmlNode(child13);
48029
48354
  if (childText.length > 0) {
@@ -48202,7 +48527,7 @@ function parseVmlGroup(node, idPrefix, index) {
48202
48527
  childScaleY = bounds.height / csH;
48203
48528
  }
48204
48529
  }
48205
- const children5 = [];
48530
+ const children6 = [];
48206
48531
  for (const childTag of VML_SHAPE_TAGS) {
48207
48532
  const childNodes = node[childTag];
48208
48533
  if (!childNodes) {
@@ -48216,11 +48541,11 @@ function parseVmlGroup(node, idPrefix, index) {
48216
48541
  child13.y = (child13.y - originY) * childScaleY;
48217
48542
  child13.width *= childScaleX;
48218
48543
  child13.height *= childScaleY;
48219
- children5.push(child13);
48544
+ children6.push(child13);
48220
48545
  }
48221
48546
  }
48222
48547
  }
48223
- if (children5.length === 0) {
48548
+ if (children6.length === 0) {
48224
48549
  return null;
48225
48550
  }
48226
48551
  const rotation = extractVmlRotation(styleMap);
@@ -48229,9 +48554,9 @@ function parseVmlGroup(node, idPrefix, index) {
48229
48554
  id,
48230
48555
  x: bounds.x,
48231
48556
  y: bounds.y,
48232
- width: bounds.width || Math.max(...children5.map((c) => c.x + c.width)),
48233
- height: bounds.height || Math.max(...children5.map((c) => c.y + c.height)),
48234
- children: children5,
48557
+ width: bounds.width || Math.max(...children6.map((c) => c.x + c.width)),
48558
+ height: bounds.height || Math.max(...children6.map((c) => c.y + c.height)),
48559
+ children: children6,
48235
48560
  rotation,
48236
48561
  rawXml: node
48237
48562
  };
@@ -48241,7 +48566,7 @@ function parseVmlGroup(node, idPrefix, index) {
48241
48566
  }
48242
48567
  }
48243
48568
  function parseVmlElements(container2, idPrefix = "") {
48244
- const elements2 = [];
48569
+ const elements3 = [];
48245
48570
  for (const tag of VML_SHAPE_TAGS) {
48246
48571
  const nodes = container2[tag];
48247
48572
  if (!nodes) {
@@ -48251,11 +48576,11 @@ function parseVmlElements(container2, idPrefix = "") {
48251
48576
  for (let i2 = 0; i2 < arr.length; i2++) {
48252
48577
  const element = parseVmlElement(tag, arr[i2], idPrefix, i2);
48253
48578
  if (element) {
48254
- elements2.push(element);
48579
+ elements3.push(element);
48255
48580
  }
48256
48581
  }
48257
48582
  }
48258
- return elements2;
48583
+ return elements3;
48259
48584
  }
48260
48585
 
48261
48586
  // pptx/core/utils/alternate-content.ts
@@ -48354,10 +48679,10 @@ function unwrapAlternateContent(container2) {
48354
48679
  };
48355
48680
  const branch = diagnosis.resolved;
48356
48681
  for (const tag of SHAPE_TREE_ELEMENT_TAGS) {
48357
- const children5 = ensureArray3(branch[tag]);
48358
- if (children5.length > 0) {
48359
- container2[tag] = [...ensureArray3(container2[tag]), ...children5];
48360
- for (const child13 of children5) {
48682
+ const children6 = ensureArray3(branch[tag]);
48683
+ if (children6.length > 0) {
48684
+ container2[tag] = [...ensureArray3(container2[tag]), ...children6];
48685
+ for (const child13 of children6) {
48361
48686
  block.childRefs.push({ tag, node: child13 });
48362
48687
  }
48363
48688
  }
@@ -48496,7 +48821,7 @@ function child10(node, ...names) {
48496
48821
  }
48497
48822
  return void 0;
48498
48823
  }
48499
- function children2(node, name) {
48824
+ function children3(node, name) {
48500
48825
  const raw = node?.[name];
48501
48826
  if (raw === void 0 || raw === null) {
48502
48827
  return [];
@@ -48505,8 +48830,8 @@ function children2(node, name) {
48505
48830
  (v) => typeof v === "object" && v !== null ? v : {}
48506
48831
  );
48507
48832
  }
48508
- function num2(node, attr) {
48509
- const raw = node?.[`@_${attr}`];
48833
+ function num2(node, attr2) {
48834
+ const raw = node?.[`@_${attr2}`];
48510
48835
  if (raw === void 0 || raw === "") {
48511
48836
  return void 0;
48512
48837
  }
@@ -48596,7 +48921,7 @@ var LIGHT_TAGS = [
48596
48921
  function parseLights(model3d) {
48597
48922
  const lights = [];
48598
48923
  for (const [tag, kind] of LIGHT_TAGS) {
48599
- for (const node of [...children2(model3d, `am3d:${tag}`), ...children2(model3d, tag)]) {
48924
+ for (const node of [...children3(model3d, `am3d:${tag}`), ...children3(model3d, tag)]) {
48600
48925
  const spot = num2(am(node, "spotAngle"), "angle") ?? num2(node, "angle") ?? num2(node, "spotAngle");
48601
48926
  lights.push({
48602
48927
  kind,
@@ -49322,20 +49647,20 @@ function findCnvPrNode(rawXml) {
49322
49647
  }
49323
49648
  return void 0;
49324
49649
  }
49325
- function flattenElements(elements2, out) {
49326
- for (const element of elements2) {
49650
+ function flattenElements(elements3, out) {
49651
+ for (const element of elements3) {
49327
49652
  out.push(element);
49328
49653
  if (element.type === "group" && Array.isArray(element.children)) {
49329
49654
  flattenElements(element.children, out);
49330
49655
  }
49331
49656
  }
49332
49657
  }
49333
- function remapElementShapeIds(elements2, ids) {
49658
+ function remapElementShapeIds(elements3, ids) {
49334
49659
  if (ids.size === 0) {
49335
49660
  return 0;
49336
49661
  }
49337
49662
  const flat = [];
49338
- flattenElements(elements2, flat);
49663
+ flattenElements(elements3, flat);
49339
49664
  const declaredId = (element) => {
49340
49665
  const cNvPr = findCnvPrNode(element.rawXml);
49341
49666
  if (cNvPr?.["@_id"] !== void 0) {
@@ -49557,7 +49882,7 @@ function ensureArray5(val) {
49557
49882
  }
49558
49883
  return Array.isArray(val) ? val : [val];
49559
49884
  }
49560
- async function parsePresentationSmartTags(zip, parseXml, presentationData) {
49885
+ async function parsePresentationSmartTags(zip, parseXml2, presentationData) {
49561
49886
  try {
49562
49887
  const presentation = presentationData?.["p:presentation"];
49563
49888
  const smartTagsNode = presentation?.["p:smartTags"];
@@ -49574,7 +49899,7 @@ async function parsePresentationSmartTags(zip, parseXml, presentationData) {
49574
49899
  return result;
49575
49900
  }
49576
49901
  const relsXml = await relsFile.async("string");
49577
- const relsData = parseXml(relsXml);
49902
+ const relsData = parseXml2(relsXml);
49578
49903
  const relRoot = relsData["Relationships"] || {};
49579
49904
  const relationships = ensureArray5(relRoot["Relationship"]);
49580
49905
  for (const rel of relationships) {
@@ -49620,8 +49945,8 @@ function inheritedPlaceholderFieldType(type) {
49620
49945
 
49621
49946
  // pptx/core/utils/body-properties-parser.ts
49622
49947
  function parseBodyPrBooleanAttrs(bodyPr, textStyle) {
49623
- const parseBoolAttr3 = (attr) => {
49624
- const raw = bodyPr[attr];
49948
+ const parseBoolAttr3 = (attr2) => {
49949
+ const raw = bodyPr[attr2];
49625
49950
  if (raw === void 0) {
49626
49951
  return void 0;
49627
49952
  }
@@ -49699,9 +50024,9 @@ var DEFAULT_FONT_SIZE_PT = 12;
49699
50024
  var DEFAULT_LINE_HEIGHT_MULTIPLIER = 1.3;
49700
50025
  var AVG_CHAR_WIDTH_RATIO = 0.6;
49701
50026
  var DEFAULT_BODY_INSET_PX = 7;
49702
- function buildLinkedTextBoxChains(elements2) {
50027
+ function buildLinkedTextBoxChains(elements3) {
49703
50028
  const chains = /* @__PURE__ */ new Map();
49704
- for (const el of elements2) {
50029
+ for (const el of elements3) {
49705
50030
  if (!hasTextProperties(el)) {
49706
50031
  continue;
49707
50032
  }
@@ -50308,7 +50633,7 @@ function allNamespaceDeclarations(xml) {
50308
50633
  return result;
50309
50634
  }
50310
50635
  function directChildren(xml) {
50311
- const children5 = [];
50636
+ const children6 = [];
50312
50637
  const tags = [...xml.matchAll(/<\/?([\w.-]+:[\w.-]+|[\w.-]+)\b[^>]*>/g)];
50313
50638
  let depth = 0;
50314
50639
  for (const match of tags) {
@@ -50317,14 +50642,14 @@ function directChildren(xml) {
50317
50642
  depth--;
50318
50643
  } else {
50319
50644
  if (depth === 1) {
50320
- children5.push(match[1].split(":").pop());
50645
+ children6.push(match[1].split(":").pop());
50321
50646
  }
50322
50647
  if (!/\/\s*>$/.test(token)) {
50323
50648
  depth++;
50324
50649
  }
50325
50650
  }
50326
50651
  }
50327
- return children5;
50652
+ return children6;
50328
50653
  }
50329
50654
  function elementXml(xml, localName15) {
50330
50655
  return xml.match(new RegExp(`<([\\w.-]+:)?${localName15}\\b[\\s\\S]*?</\\1?${localName15}>`))?.[0];
@@ -50525,7 +50850,7 @@ var BLACK_WHITE = [
50525
50850
  ];
50526
50851
 
50527
50852
  // pptx/core/utils/pptx-validator-facets.ts
50528
- function elements(xml) {
50853
+ function elements2(xml) {
50529
50854
  return [...xml.matchAll(/<(?!\/|\?|!)(?:([\w.-]+):)?([\w.-]+)\b([^>]*)>/g)].map((match) => ({
50530
50855
  prefix: match[1] ?? "",
50531
50856
  local: match[2],
@@ -50676,7 +51001,7 @@ function validateRelationshipIds(xml, ns, path, issues) {
50676
51001
  if (relPrefixes.length === 0) {
50677
51002
  return;
50678
51003
  }
50679
- for (const element of elements(xml)) {
51004
+ for (const element of elements2(xml)) {
50680
51005
  for (const prefix of relPrefixes) {
50681
51006
  const value = attribute2(element.attributes, `${prefix}:id`);
50682
51007
  if (value === void 0 || /^[A-Za-z_][\w.-]*$/.test(value)) {
@@ -50704,7 +51029,7 @@ function validateSimpleTypeFacets(xml, path, issues) {
50704
51029
  ECMA_NAMESPACES.strictP,
50705
51030
  ECMA_NAMESPACES.transitionalP
50706
51031
  ]);
50707
- for (const element of elements(xml)) {
51032
+ for (const element of elements2(xml)) {
50708
51033
  if (!drawingOrPresentation.has(ns.get(element.prefix) ?? "")) {
50709
51034
  continue;
50710
51035
  }
@@ -50742,7 +51067,7 @@ function normalisePath(p) {
50742
51067
  }
50743
51068
  async function tryOpenZip(buffer) {
50744
51069
  try {
50745
- const zip = await JSZip2.loadAsync(buffer);
51070
+ const zip = await openPptxZip(buffer);
50746
51071
  return { zip };
50747
51072
  } catch {
50748
51073
  return { error: "Buffer is not a valid ZIP file" };
@@ -50855,9 +51180,9 @@ function checkAlternate(xml, qualifier, ns, path, issues) {
50855
51180
  "g"
50856
51181
  );
50857
51182
  for (const match of xml.matchAll(pattern)) {
50858
- const children5 = directChildren(`<root>${match[1]}</root>`);
50859
- const fallback = children5.indexOf("Fallback");
50860
- if (!children5.includes("Choice")) {
51183
+ const children6 = directChildren(`<root>${match[1]}</root>`);
51184
+ const fallback = children6.indexOf("Fallback");
51185
+ if (!children6.includes("Choice")) {
50861
51186
  add2(
50862
51187
  issues,
50863
51188
  path,
@@ -50865,7 +51190,7 @@ function checkAlternate(xml, qualifier, ns, path, issues) {
50865
51190
  "MCE AlternateContent must contain at least one Choice"
50866
51191
  );
50867
51192
  }
50868
- if (children5.some((name) => name !== "Choice" && name !== "Fallback") || children5.filter((name) => name === "Fallback").length > 1 || fallback >= 0 && fallback !== children5.length - 1) {
51193
+ if (children6.some((name) => name !== "Choice" && name !== "Fallback") || children6.filter((name) => name === "Fallback").length > 1 || fallback >= 0 && fallback !== children6.length - 1) {
50869
51194
  add2(
50870
51195
  issues,
50871
51196
  path,
@@ -50921,9 +51246,9 @@ function validateShapeTree(xml, path, issues) {
50921
51246
  issue(issues, path, "MISSING_REQUIRED_ELEMENT", "<p:cSld> must contain <p:spTree>");
50922
51247
  return;
50923
51248
  }
50924
- const children5 = directChildren(tree);
51249
+ const children6 = directChildren(tree);
50925
51250
  for (let i2 = 0; i2 < SHAPE_TREE_START.length; i2++) {
50926
- if (children5[i2] !== SHAPE_TREE_START[i2]) {
51251
+ if (children6[i2] !== SHAPE_TREE_START[i2]) {
50927
51252
  issue(
50928
51253
  issues,
50929
51254
  path,
@@ -51016,8 +51341,8 @@ function validateSlideTransitions(xml, path, issues) {
51016
51341
  continue;
51017
51342
  }
51018
51343
  validateAttributes(transition.attributes, path, issues);
51019
- const children5 = directChildren(`<root>${transition.body}</root>`);
51020
- const effects = children5.filter((child13) => EFFECTS.has(child13));
51344
+ const children6 = directChildren(`<root>${transition.body}</root>`);
51345
+ const effects = children6.filter((child13) => EFFECTS.has(child13));
51021
51346
  if (effects.length > 1) {
51022
51347
  add3(issues, path, "TRANSITION_INVALID_CHOICE", "A slide transition may contain one effect");
51023
51348
  }
@@ -51210,14 +51535,14 @@ function validateDrawingDatatypes(xml, path, issues) {
51210
51535
  }
51211
51536
  }
51212
51537
  for (const match of xml.matchAll(/<a:ext\b([^>]*)>/g)) {
51213
- for (const attr of ["cx", "cy"]) {
51214
- const value = match[1].match(new RegExp(`\\b${attr}\\s*=\\s*["']([^"']+)["']`))?.[1];
51538
+ for (const attr2 of ["cx", "cy"]) {
51539
+ const value = match[1].match(new RegExp(`\\b${attr2}\\s*=\\s*["']([^"']+)["']`))?.[1];
51215
51540
  if (value !== void 0 && (!/^\d+$/.test(value) || Number(value) > 27273042329600)) {
51216
51541
  issue(
51217
51542
  issues,
51218
51543
  path,
51219
51544
  "INVALID_DATATYPE",
51220
- `DrawingML extent ${attr}="${value}" must be a non-negative coordinate`
51545
+ `DrawingML extent ${attr2}="${value}" must be a non-negative coordinate`
51221
51546
  );
51222
51547
  }
51223
51548
  }
@@ -51729,31 +52054,31 @@ function add6(issues, path, code, message) {
51729
52054
  issues.push({ severity: "error", code, message, path });
51730
52055
  }
51731
52056
  function validateRequiredChildren(xml, contract, path, issues) {
51732
- const children5 = directChildren(xml);
51733
- for (const required of contract.required ?? []) {
51734
- if (!children5.includes(required)) {
52057
+ const children6 = directChildren(xml);
52058
+ for (const required2 of contract.required ?? []) {
52059
+ if (!children6.includes(required2)) {
51735
52060
  add6(
51736
52061
  issues,
51737
52062
  path,
51738
52063
  "MISSING_REQUIRED_PART_ELEMENT",
51739
- `<${contract.root}> must contain <${required}> as a direct child`
52064
+ `<${contract.root}> must contain <${required2}> as a direct child`
51740
52065
  );
51741
52066
  }
51742
52067
  }
51743
52068
  }
51744
52069
  function validateThemeElements(xml, path, issues) {
51745
- const elements2 = elementXml(xml, "themeElements");
51746
- if (!elements2) {
52070
+ const elements3 = elementXml(xml, "themeElements");
52071
+ if (!elements3) {
51747
52072
  return;
51748
52073
  }
51749
- const children5 = directChildren(elements2);
51750
- for (const required of ["clrScheme", "fontScheme", "fmtScheme"]) {
51751
- if (!children5.includes(required)) {
52074
+ const children6 = directChildren(elements3);
52075
+ for (const required2 of ["clrScheme", "fontScheme", "fmtScheme"]) {
52076
+ if (!children6.includes(required2)) {
51752
52077
  add6(
51753
52078
  issues,
51754
52079
  path,
51755
52080
  "MISSING_REQUIRED_PART_ELEMENT",
51756
- `<themeElements> must contain <${required}>`
52081
+ `<themeElements> must contain <${required2}>`
51757
52082
  );
51758
52083
  }
51759
52084
  }
@@ -51766,8 +52091,8 @@ function elementStartAttributes(xml, localName15) {
51766
52091
  (match) => match[1]
51767
52092
  );
51768
52093
  }
51769
- function validateRequiredAttributes(attributes, required, element, path, issues) {
51770
- for (const name of required) {
52094
+ function validateRequiredAttributes(attributes, required2, element, path, issues) {
52095
+ for (const name of required2) {
51771
52096
  if (attributeValue(attributes, name) === void 0) {
51772
52097
  add6(
51773
52098
  issues,
@@ -51798,8 +52123,8 @@ function validateComments(xml, path, issues) {
51798
52123
  }
51799
52124
  }
51800
52125
  for (const comment of xml.matchAll(/<(?:[\w.-]+:)?cm\b[^>]*>([\s\S]*?)<\/(?:[\w.-]+:)?cm>/g)) {
51801
- const children5 = directChildren(`<cm>${comment[1]}</cm>`);
51802
- if (!children5.includes("pos") || !children5.includes("text")) {
52126
+ const children6 = directChildren(`<cm>${comment[1]}</cm>`);
52127
+ if (!children6.includes("pos") || !children6.includes("text")) {
51803
52128
  add6(issues, path, "MISSING_REQUIRED_PART_ELEMENT", "<cm> must contain <pos> and <text>");
51804
52129
  }
51805
52130
  }
@@ -51914,13 +52239,13 @@ var THEME_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.theme+xm
51914
52239
 
51915
52240
  // pptx/core/utils/pptx-validator-checks.ts
51916
52241
  async function validateZipStructure(zip, issues) {
51917
- for (const required of REQUIRED_PATHS) {
51918
- if (!zip.file(required)) {
52242
+ for (const required2 of REQUIRED_PATHS) {
52243
+ if (!zip.file(required2)) {
51919
52244
  issues.push({
51920
52245
  severity: "error",
51921
52246
  code: "MISSING_REQUIRED_FILE",
51922
- message: `Required file "${required}" is missing from the package`,
51923
- path: required
52247
+ message: `Required file "${required2}" is missing from the package`,
52248
+ path: required2
51924
52249
  });
51925
52250
  }
51926
52251
  }
@@ -52033,48 +52358,6 @@ async function validatePptx(buffer) {
52033
52358
  return { valid: !issues.some((issue2) => issue2.severity === "error"), issues, conformance };
52034
52359
  }
52035
52360
 
52036
- // pptx/core/ppt/pptx/xml-utils.ts
52037
- function isInvalidXmlChar(code) {
52038
- return code >= 0 && code <= 8 || code === 11 || code === 12 || code >= 14 && code <= 31;
52039
- }
52040
- function stripInvalidXmlChars(value) {
52041
- let cleaned = "";
52042
- for (const ch of value) {
52043
- if (!isInvalidXmlChar(ch.charCodeAt(0))) {
52044
- cleaned += ch;
52045
- }
52046
- }
52047
- return cleaned;
52048
- }
52049
- function esc(value) {
52050
- return stripInvalidXmlChars(value).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
52051
- }
52052
- function escAttr(value) {
52053
- return encodeXmlAttributeValue(stripInvalidXmlChars(value)).replace(/"/g, "&quot;").replace(/'/g, "&apos;");
52054
- }
52055
- function escText(value) {
52056
- return encodeXmlTextValue(stripInvalidXmlChars(value));
52057
- }
52058
- function hexColor(rgb2) {
52059
- return rgb2.replace(/^#/, "").toUpperCase();
52060
- }
52061
- function solidFill(rgb2) {
52062
- return `<a:solidFill><a:srgbClr val="${hexColor(rgb2)}"/></a:solidFill>`;
52063
- }
52064
- function gradFill(stops, angleDeg) {
52065
- const gsLst = stops.map(
52066
- (s) => `<a:gs pos="${Math.round(s.position * 1e5)}"><a:srgbClr val="${hexColor(
52067
- s.rgb
52068
- )}"/></a:gs>`
52069
- ).join("");
52070
- const angle = Math.round((angleDeg % 360 + 360) % 360 * 6e4);
52071
- return `<a:gradFill><a:gsLst>${gsLst}</a:gsLst><a:lin ang="${angle}" scaled="1"/></a:gradFill>`;
52072
- }
52073
- function emu(value) {
52074
- return Math.round(value);
52075
- }
52076
- var PML_XMLNS = 'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"';
52077
-
52078
52361
  // pptx/core/utils/pptx-validator-repair.ts
52079
52362
  function rebuildContentTypes(zip) {
52080
52363
  const defaults = /* @__PURE__ */ new Map();
@@ -52429,9 +52712,9 @@ function remapElementFonts(element, oldScheme, newScheme) {
52429
52712
  }
52430
52713
  }
52431
52714
  if (element.type === "group" && element.children) {
52432
- const children5 = reResolveElementFonts(element.children, oldScheme, newScheme);
52433
- if (children5 !== element.children) {
52434
- patched.children = children5;
52715
+ const children6 = reResolveElementFonts(element.children, oldScheme, newScheme);
52716
+ if (children6 !== element.children) {
52717
+ patched.children = children6;
52435
52718
  changed = true;
52436
52719
  }
52437
52720
  }
@@ -52444,28 +52727,28 @@ function remapElementFonts(element, oldScheme, newScheme) {
52444
52727
  }
52445
52728
  return changed ? patched : element;
52446
52729
  }
52447
- function reResolveElementFonts(elements2, oldFontScheme, newFontScheme) {
52730
+ function reResolveElementFonts(elements3, oldFontScheme, newFontScheme) {
52448
52731
  let changed = false;
52449
- const next = elements2.map((element) => {
52732
+ const next = elements3.map((element) => {
52450
52733
  const remapped = remapElementFonts(element, oldFontScheme, newFontScheme);
52451
52734
  if (remapped !== element) {
52452
52735
  changed = true;
52453
52736
  }
52454
52737
  return remapped;
52455
52738
  });
52456
- return changed ? next : elements2;
52739
+ return changed ? next : elements3;
52457
52740
  }
52458
52741
  function reResolveSlideFonts(slides, oldFontScheme, newFontScheme) {
52459
52742
  let changed = false;
52460
52743
  const next = slides.map((slide) => {
52461
- const elements2 = reResolveElementFonts(slide.elements, oldFontScheme, newFontScheme);
52744
+ const elements3 = reResolveElementFonts(slide.elements, oldFontScheme, newFontScheme);
52462
52745
  const notesSegments = slide.notesSegments ? remapSegmentFonts(slide.notesSegments, oldFontScheme, newFontScheme, "minor") : slide.notesSegments;
52463
52746
  const notesShapes = slide.notesShapes ? reResolveElementFonts(slide.notesShapes, oldFontScheme, newFontScheme) : slide.notesShapes;
52464
- if (elements2 === slide.elements && notesSegments === slide.notesSegments && notesShapes === slide.notesShapes) {
52747
+ if (elements3 === slide.elements && notesSegments === slide.notesSegments && notesShapes === slide.notesShapes) {
52465
52748
  return slide;
52466
52749
  }
52467
52750
  changed = true;
52468
- return { ...slide, elements: elements2, notesSegments, notesShapes };
52751
+ return { ...slide, elements: elements3, notesSegments, notesShapes };
52469
52752
  });
52470
52753
  return changed ? next : slides;
52471
52754
  }
@@ -52690,13 +52973,13 @@ function reResolveSlideColors(slides, oldColorMap, newColorScheme) {
52690
52973
  }
52691
52974
  return slides.map((slide) => remapSlideColors(slide, remap, newMap));
52692
52975
  }
52693
- function reResolveElementColors(elements2, oldColorMap, newColorScheme) {
52976
+ function reResolveElementColors(elements3, oldColorMap, newColorScheme) {
52694
52977
  const newMap = buildThemeColorMap(newColorScheme);
52695
52978
  const remap = buildColorRemapTable(oldColorMap, newMap);
52696
52979
  if (remap.size === 0) {
52697
- return elements2;
52980
+ return elements3;
52698
52981
  }
52699
- return elements2.map((el) => remapElementColors(el, remap, newMap));
52982
+ return elements3.map((el) => remapElementColors(el, remap, newMap));
52700
52983
  }
52701
52984
  function applyThemeToData(data, newColorScheme, newFontScheme, themeName) {
52702
52985
  const oldColorMap = data.themeColorMap ?? {};
@@ -52733,7 +53016,7 @@ function applyThemeOverrideToSlide(slide, baseColorScheme, nextOverride) {
52733
53016
  }
52734
53017
 
52735
53018
  // pptx/core/utils/smartart-definition-metadata.ts
52736
- function children3(node, name, localName15) {
53019
+ function children4(node, name, localName15) {
52737
53020
  if (!node) {
52738
53021
  return [];
52739
53022
  }
@@ -52748,10 +53031,10 @@ function children3(node, name, localName15) {
52748
53031
  return value && typeof value === "object" ? [value] : [];
52749
53032
  }
52750
53033
  function child11(node, name, localName15) {
52751
- return children3(node, name, localName15)[0];
53034
+ return children4(node, name, localName15)[0];
52752
53035
  }
52753
53036
  function parseText(node, name, localName15) {
52754
- const values = children3(node, name, localName15).map((item) => ({
53037
+ const values = children4(node, name, localName15).map((item) => ({
52755
53038
  value: String(item["@_val"] ?? ""),
52756
53039
  language: String(item["@_lang"] ?? "") || void 0
52757
53040
  }));
@@ -52759,7 +53042,7 @@ function parseText(node, name, localName15) {
52759
53042
  }
52760
53043
  function parseSmartArtDefinitionMetadata(node, localName15) {
52761
53044
  const categoryList = child11(node, "catLst", localName15);
52762
- const categories = children3(categoryList, "cat", localName15).map((item) => ({
53045
+ const categories = children4(categoryList, "cat", localName15).map((item) => ({
52763
53046
  type: String(item["@_type"] ?? ""),
52764
53047
  priority: Number(item["@_pri"] ?? 0)
52765
53048
  }));
@@ -52772,7 +53055,7 @@ function parseSmartArtDefinitionMetadata(node, localName15) {
52772
53055
  };
52773
53056
  }
52774
53057
  function parseSmartArtQuickStyleLabels(node, localName15) {
52775
- const labels = children3(node, "styleLbl", localName15).map((item) => ({
53058
+ const labels = children4(node, "styleLbl", localName15).map((item) => ({
52776
53059
  name: String(item["@_name"] ?? "")
52777
53060
  }));
52778
53061
  return labels.length > 0 ? labels : void 0;
@@ -52809,7 +53092,7 @@ function parseColorList(node, name, localName15) {
52809
53092
  };
52810
53093
  }
52811
53094
  function parseSmartArtColorStyleLabels(node, localName15) {
52812
- const labels = children3(node, "styleLbl", localName15).map((item) => ({
53095
+ const labels = children4(node, "styleLbl", localName15).map((item) => ({
52813
53096
  name: String(item["@_name"] ?? ""),
52814
53097
  fill: parseColorList(item, "fillClrLst", localName15),
52815
53098
  line: parseColorList(item, "linClrLst", localName15),
@@ -54795,11 +55078,11 @@ function parseEffectDagContainer(node) {
54795
55078
  const typeAttr = String(xml["@_type"] ?? "").trim();
54796
55079
  const type = VALID_CONTAINER_TYPES.has(typeAttr) ? typeAttr : "sib";
54797
55080
  const nameAttr = String(xml["@_name"] ?? "").trim();
54798
- const children5 = parseChildren(xml);
55081
+ const children6 = parseChildren(xml);
54799
55082
  const container2 = {
54800
55083
  kind: "cont",
54801
55084
  type,
54802
- children: children5
55085
+ children: children6
54803
55086
  };
54804
55087
  if (nameAttr) {
54805
55088
  container2.name = nameAttr;
@@ -54816,7 +55099,7 @@ function serializeEffectDagContainer(container2) {
54816
55099
  return serializeEffectDagContainerNode(container2);
54817
55100
  }
54818
55101
  function parseChildren(xml) {
54819
- const children5 = [];
55102
+ const children6 = [];
54820
55103
  for (const [key, rawValue] of Object.entries(xml)) {
54821
55104
  if (key.startsWith("@_")) {
54822
55105
  continue;
@@ -54828,11 +55111,11 @@ function parseChildren(xml) {
54828
55111
  for (const value of values) {
54829
55112
  const child13 = parseChild(key, value);
54830
55113
  if (child13) {
54831
- children5.push(child13);
55114
+ children6.push(child13);
54832
55115
  }
54833
55116
  }
54834
55117
  }
54835
- return children5;
55118
+ return children6;
54836
55119
  }
54837
55120
  function parseChild(tag, value) {
54838
55121
  if (value === null || value === void 0) {
@@ -56230,12 +56513,12 @@ function withStyleLabel(element) {
56230
56513
  const styleLabel = smartArtElementStyleLabel(element);
56231
56514
  return styleLabel ? { styleLabel } : {};
56232
56515
  }
56233
- function smartArtElementsToDrawingShapes(elements2) {
56234
- if (!elements2 || elements2.length === 0) {
56516
+ function smartArtElementsToDrawingShapes(elements3) {
56517
+ if (!elements3 || elements3.length === 0) {
56235
56518
  return [];
56236
56519
  }
56237
56520
  const shapes = [];
56238
- for (const el of elements2) {
56521
+ for (const el of elements3) {
56239
56522
  if (el.type !== "shape") {
56240
56523
  continue;
56241
56524
  }
@@ -56284,25 +56567,25 @@ function relayoutSmartArt(smartArtData, containerWidth, containerHeight) {
56284
56567
  if (!smartArtData.nodes || smartArtData.nodes.length === 0) {
56285
56568
  return [];
56286
56569
  }
56287
- const elements2 = computeSmartArtElementsWithoutCache(smartArtData, {
56570
+ const elements3 = computeSmartArtElementsWithoutCache(smartArtData, {
56288
56571
  x: 0,
56289
56572
  y: 0,
56290
56573
  width: containerWidth,
56291
56574
  height: containerHeight
56292
56575
  });
56293
- if (!elements2 || elements2.length === 0) {
56576
+ if (!elements3 || elements3.length === 0) {
56294
56577
  return smartArtData.drawingShapes ?? [];
56295
56578
  }
56296
- return applySmartArtQuickStyle3d(smartArtElementsToDrawingShapes(elements2), smartArtData);
56579
+ return applySmartArtQuickStyle3d(smartArtElementsToDrawingShapes(elements3), smartArtData);
56297
56580
  }
56298
56581
  function regenerateSmartArtDrawingShapes(smartArtData, containerWidth, containerHeight) {
56299
- const elements2 = decomposeSmartArt(smartArtData, {
56582
+ const elements3 = decomposeSmartArt(smartArtData, {
56300
56583
  x: 0,
56301
56584
  y: 0,
56302
56585
  width: Math.max(containerWidth, 1),
56303
56586
  height: Math.max(containerHeight, 1)
56304
56587
  });
56305
- return applySmartArtQuickStyle3d(smartArtElementsToDrawingShapes(elements2), smartArtData);
56588
+ return applySmartArtQuickStyle3d(smartArtElementsToDrawingShapes(elements3), smartArtData);
56306
56589
  }
56307
56590
 
56308
56591
  // pptx/core/utils/layout-display-name.ts
@@ -56503,7 +56786,7 @@ var ROOTS = {
56503
56786
  var localName13 = (key) => key.slice(key.indexOf(":") + 1);
56504
56787
  var keyFor2 = (node, name) => Object.keys(node).find((key) => !key.startsWith("@_") && localName13(key) === name);
56505
56788
  var objects = (value) => Array.isArray(value) ? value.filter((item) => Boolean(item) && typeof item === "object") : value && typeof value === "object" ? [value] : [];
56506
- var children4 = (node, name) => objects(node[keyFor2(node, name) ?? ""]);
56789
+ var children5 = (node, name) => objects(node[keyFor2(node, name) ?? ""]);
56507
56790
  var copy = (value) => structuredClone(value);
56508
56791
  function detectRoot(xml) {
56509
56792
  for (const kind of Object.keys(ROOTS)) {
@@ -56518,15 +56801,15 @@ function detectRoot(xml) {
56518
56801
  throw new Error("Expected a DiagramML definition header list root");
56519
56802
  }
56520
56803
  function parseText2(node, name) {
56521
- return children4(node, name).map((item) => ({
56804
+ return children5(node, name).map((item) => ({
56522
56805
  value: String(item["@_val"] ?? ""),
56523
56806
  language: String(item["@_lang"] ?? "") || void 0,
56524
56807
  rawXml: copy(item)
56525
56808
  }));
56526
56809
  }
56527
56810
  function parseHeader(node) {
56528
- const catList = children4(node, "catLst")[0];
56529
- const categories = catList ? children4(catList, "cat").map((item) => ({
56811
+ const catList = children5(node, "catLst")[0];
56812
+ const categories = catList ? children5(catList, "cat").map((item) => ({
56530
56813
  type: String(item["@_type"] ?? ""),
56531
56814
  priority: Number(item["@_pri"] ?? Number.NaN),
56532
56815
  rawXml: copy(item)
@@ -56547,7 +56830,7 @@ function parseSmartArtDefinitionHeaderList(xml) {
56547
56830
  const headerName = ROOTS[detected.kind][1];
56548
56831
  return {
56549
56832
  kind: detected.kind,
56550
- headers: children4(detected.root, headerName).map(parseHeader),
56833
+ headers: children5(detected.root, headerName).map(parseHeader),
56551
56834
  rawXml: copy(detected.root)
56552
56835
  };
56553
56836
  }
@@ -56603,7 +56886,7 @@ function applyHeader(header) {
56603
56886
  replaceChildren2(node, "desc", textXml(header.descriptions));
56604
56887
  if (header.categories !== void 0) {
56605
56888
  const listKey = keyFor2(node, "catLst") ?? `${prefixFor(node)}catLst`;
56606
- const list2 = children4(node, "catLst")[0] ?? {};
56889
+ const list2 = children5(node, "catLst")[0] ?? {};
56607
56890
  const categories = header.categories.map((category) => ({
56608
56891
  ...category.rawXml ? copy(category.rawXml) : {},
56609
56892
  "@_type": category.type,
@@ -57006,8 +57289,8 @@ function getElementPlainText(element) {
57006
57289
  return "";
57007
57290
  }
57008
57291
  function deriveSlideTitle(slide) {
57009
- const elements2 = slide.elements ?? [];
57010
- for (const element of elements2) {
57292
+ const elements3 = slide.elements ?? [];
57293
+ for (const element of elements3) {
57011
57294
  const phType = getElementPlaceholderType(element);
57012
57295
  if (phType && TITLE_PLACEHOLDER_TYPES.has(phType)) {
57013
57296
  const text = getElementPlainText(element);
@@ -57315,17 +57598,17 @@ function buildJpegHuffmanTable(bits, huffval) {
57315
57598
  }
57316
57599
  function decodeJpegHuffmanSymbol(reader, table) {
57317
57600
  let code = 0;
57318
- let first = 0;
57601
+ let first2 = 0;
57319
57602
  let index = 0;
57320
57603
  for (let len = 1; len <= 16; len++) {
57321
57604
  code = code << 1 | reader.bits(1);
57322
57605
  const count = table.counts[len];
57323
- if (count > 0 && code - first < count) {
57324
- return table.symbols[index + (code - first)];
57606
+ if (count > 0 && code - first2 < count) {
57607
+ return table.symbols[index + (code - first2)];
57325
57608
  }
57326
57609
  index += count;
57327
- first += count;
57328
- first <<= 1;
57610
+ first2 += count;
57611
+ first2 <<= 1;
57329
57612
  }
57330
57613
  throw new Error("jpeg: invalid Huffman code");
57331
57614
  }
@@ -57549,14 +57832,14 @@ function decodeJpegFirstPixel(bytes) {
57549
57832
  return void 0;
57550
57833
  }
57551
57834
  const blockCount = sc.comp.hSampling * sc.comp.vSampling;
57552
- let first;
57835
+ let first2;
57553
57836
  for (let b = 0; b < blockCount; b++) {
57554
57837
  const sample = decodeBlockCornerSample(reader, dcTable, acTable, quantTable);
57555
57838
  if (b === 0) {
57556
- first = sample;
57839
+ first2 = sample;
57557
57840
  }
57558
57841
  }
57559
- cornerSamples.push(clamp8(first + 128));
57842
+ cornerSamples.push(clamp8(first2 + 128));
57560
57843
  }
57561
57844
  return combineComponentsToRgb(cornerSamples);
57562
57845
  }
@@ -57767,17 +58050,17 @@ function buildHuffmanTable(lengths) {
57767
58050
  }
57768
58051
  function decodeSymbol(reader, table) {
57769
58052
  let code = 0;
57770
- let first = 0;
58053
+ let first2 = 0;
57771
58054
  let index = 0;
57772
58055
  for (let len = 1; len < table.counts.length; len++) {
57773
58056
  code |= reader.bits(1);
57774
58057
  const count = table.counts[len];
57775
- if (code - first < count) {
57776
- return table.symbols[index + (code - first)];
58058
+ if (code - first2 < count) {
58059
+ return table.symbols[index + (code - first2)];
57777
58060
  }
57778
58061
  index += count;
57779
- first += count;
57780
- first <<= 1;
58062
+ first2 += count;
58063
+ first2 <<= 1;
57781
58064
  code <<= 1;
57782
58065
  }
57783
58066
  throw new Error("inflate: invalid Huffman code");
@@ -58182,8 +58465,8 @@ function readFrameAt(bytes, offset) {
58182
58465
  return { length, sampleRate };
58183
58466
  }
58184
58467
  function estimateAdtsDurationMs(bytes) {
58185
- const first = readFrameAt(bytes, 0);
58186
- if (!first) {
58468
+ const first2 = readFrameAt(bytes, 0);
58469
+ if (!first2) {
58187
58470
  return void 0;
58188
58471
  }
58189
58472
  let offset = 0;
@@ -58199,7 +58482,7 @@ function estimateAdtsDurationMs(bytes) {
58199
58482
  if (frameCount === 0) {
58200
58483
  return void 0;
58201
58484
  }
58202
- return frameCount * 1024 / first.sampleRate * 1e3;
58485
+ return frameCount * 1024 / first2.sampleRate * 1e3;
58203
58486
  }
58204
58487
 
58205
58488
  // pptx/core/utils/media-duration-ebml.ts
@@ -58212,20 +58495,20 @@ function readVInt(bytes, offset, keepMarker) {
58212
58495
  if (offset >= bytes.length) {
58213
58496
  return void 0;
58214
58497
  }
58215
- const first = bytes[offset];
58216
- if (first === 0) {
58498
+ const first2 = bytes[offset];
58499
+ if (first2 === 0) {
58217
58500
  return void 0;
58218
58501
  }
58219
58502
  let length = 1;
58220
58503
  let mask = 128;
58221
- while (length <= 8 && (first & mask) === 0) {
58504
+ while (length <= 8 && (first2 & mask) === 0) {
58222
58505
  mask >>= 1;
58223
58506
  length++;
58224
58507
  }
58225
58508
  if (length > 8 || offset + length > bytes.length) {
58226
58509
  return void 0;
58227
58510
  }
58228
- let value = keepMarker ? first : first & mask - 1;
58511
+ let value = keepMarker ? first2 : first2 & mask - 1;
58229
58512
  for (let i2 = 1; i2 < length; i2++) {
58230
58513
  value = value * 256 + bytes[offset + i2];
58231
58514
  }
@@ -60435,12 +60718,12 @@ function douglasPeucker(points, tolerance) {
60435
60718
  if (hi - lo < 2) {
60436
60719
  continue;
60437
60720
  }
60438
- const first = points[lo];
60721
+ const first2 = points[lo];
60439
60722
  const last = points[hi];
60440
60723
  let maxDist = 0;
60441
60724
  let maxIdx = -1;
60442
60725
  for (let i2 = lo + 1; i2 < hi; i2++) {
60443
- const dist = perpendicularDistance(points[i2], first, last);
60726
+ const dist = perpendicularDistance(points[i2], first2, last);
60444
60727
  if (dist > maxDist) {
60445
60728
  maxDist = dist;
60446
60729
  maxIdx = i2;
@@ -60579,8 +60862,8 @@ var FreeformPathBuilder = class {
60579
60862
  return "";
60580
60863
  }
60581
60864
  const parts = [];
60582
- const first = this.points[0];
60583
- parts.push(`M ${first.x} ${first.y}`);
60865
+ const first2 = this.points[0];
60866
+ parts.push(`M ${first2.x} ${first2.y}`);
60584
60867
  if (this.smoothed && this.bezierCurves.length > 0) {
60585
60868
  for (const [cp1, cp2, end] of this.bezierCurves) {
60586
60869
  parts.push(`C ${cp1.x} ${cp1.y} ${cp2.x} ${cp2.y} ${end.x} ${end.y}`);
@@ -60632,8 +60915,8 @@ var FreeformPathBuilder = class {
60632
60915
  const width = Math.max(maxX, 1);
60633
60916
  const height = Math.max(maxY, 1);
60634
60917
  const segments = [];
60635
- const first = this.points[0];
60636
- segments.push({ type: "moveTo", pt: { x: first.x, y: first.y } });
60918
+ const first2 = this.points[0];
60919
+ segments.push({ type: "moveTo", pt: { x: first2.x, y: first2.y } });
60637
60920
  if (this.smoothed && this.bezierCurves.length > 0) {
60638
60921
  for (const [cp1, cp2, end] of this.bezierCurves) {
60639
60922
  segments.push({
@@ -60773,9 +61056,9 @@ function buildCalloutLeaderLineSvgPath(geometry) {
60773
61056
  if (geometry.points.length < 2) {
60774
61057
  return "";
60775
61058
  }
60776
- const first = at(geometry.points, 0);
61059
+ const first2 = at(geometry.points, 0);
60777
61060
  const rest = geometry.points.slice(1);
60778
- const parts = [`M ${first.x} ${first.y}`];
61061
+ const parts = [`M ${first2.x} ${first2.y}`];
60779
61062
  for (const pt of rest) {
60780
61063
  parts.push(`L ${pt.x} ${pt.y}`);
60781
61064
  }
@@ -61778,4 +62061,4 @@ async function blobUrlToDataUrl(blobUrl, fallbackMimeType) {
61778
62061
  }
61779
62062
  }
61780
62063
 
61781
- export { ALL_ANIMATION_PRESETS, ARABIC_ABJADI_LETTERS, ARABIC_HIJAI_LETTERS, BLIP_FILL_ORDER, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DGM_XMLNS, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, DataIntegrityError, EFFECT_LST_ORDER, ELEMENT_FIELD_KIND, EMPHASIS_PRESETS, EMPTY_CONSTRAINT_INDEX, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, EMU_PER_PX, ENTRANCE_PRESETS, ENTRY_TYPE_ROOT, EXIT_PRESETS, EncryptedFileError, FONT_SUBSTITUTION_MAP, FreeformPathBuilder, HEBREW_LETTERS, HINDI_CONSONANTS, HINDI_VOWELS, IncorrectPasswordError, MAX_SHAPE_ID, MAX_TABLE_DIMENSION, MIN_ELEMENT_SIZE, MIN_TABLE_DIMENSION, MOTION_PATH_PRESETS, OOXML_ANGLE_UNITS_PER_DEGREE, OOXML_PERCENT_UNITS, Ole2ParseError, P14_DIR_IS_ORIENTATION_TYPE, P14_GUIDE_URI, P14_TRANSITION_TYPES, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, PML_XMLNS, POWERPOINT_PRESENCE_KEY, PPTX_JSON_FILE_EXTENSION, PPTX_JSON_FORMAT, PPTX_JSON_MIME_TYPE, PPTX_JSON_VERSION, PRESENTATION_CHILD_ORDER, PRESENTATION_FIELD_KEYS, PRESENTATION_FIELD_NAMES, PRESET_COLOR_MAP, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PptxJsonConverter, PptxJsonFormatError, RC4_ALG_ID, RasterCanvas, SHAPE_STYLE_ORDER, SHAPE_TREE_ELEMENT_TAGS, SLIDE_FIELD_KIND, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER2 as SP_PR_ORDER, STROKE_DASH_OPTIONS, STYLE_MATRIX_EFFECT_KEYS, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, ST_SHAPE_TYPE_VALUES, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, SvgExporter, TC_PR_BORDERS_ORDER, TEXT_AUTONUMBER_SCHEMES, TEXT_ORIENTATION_IDENTITY, THAI_CONSONANTS, THEME_COLOR_SCHEME_KEYS, VML_SHAPE_TAGS, WHITESPACE_PRESERVING_TAGS, XML_PROLOG, addSmartArtNode, addSmartArtNodeAsChild, algorithmParam, alphaLabel, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, applyActiveXControlsToSlide, applyBubbleChartOptions, applyCellWritesToWorksheet, applyChartAxisDisplayUnitsToXml, applyChartAxisLabelFormatting, applyChartAxisScaling, applyChartDateAxisUnits, applyChartGradientToSpPr, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomGeometryGuideOverrides, applyCustomLayoutOverrides, applyCustomShows, applyDataLabelsRangeToDLbls, applyDiagramRelationshipIds, applyDrawingLineDash, applyDrawingMediaReference, applyImportedPptxData, applyKinsokuToXml, applyOleDocumentParagraphEdit, applyOleNestedDeckBytes, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applySections, applySeriesDataPointsToXml, applySeriesMarkerToXml, applySeriesPictureOptionsToXml, applySmartArtQuickStyle3d, applySmartArtRoleColors, applyTextBodySp3d, applyThemeOverrideToSlide, applyThemeToData, areNamespacesSupported, arrangeComposite3 as arrangeComposite, arrangeConn2 as arrangeConn, arrangeCycle, arrangeHierarchy2 as arrangeHierarchy, arrangeLinear3 as arrangeLinear, arrangePyramid, arrangeSnake, arrangeSpacer, arrangeText, avLstForPreset, base64Decode, base64ToBytes, bijectiveLabel, blobUrlToDataUrl, buildActiveXControlNode, buildCalloutLeaderLineSvgPath, buildChartGradFillXml, buildChartMarkerXml, buildChartUniqueIdExtLst, buildClrMapOverrideXml, buildConstraintIndex, buildCustomGeometryPathsFromNodes, buildDefRPrTextProperties, buildEffectDagTreeFromXml, buildFabricatedDiagramDataXml, buildFabricatedDrawingXml, buildFontFamilyString, buildForest, buildGuideListExtension, buildInkMlContent, buildLinkedTextBoxChains, buildNodeGuidMap, buildOle2, buildPointFromParagraphs, buildPointFromRuns, buildPointText, buildPptxJsonDocument, buildPresentationGuidMap, buildSaveTimeCustomGeometryXml, buildSmartArtColorLists, buildSmartArtColorRoleMap, buildSrgbColorChoice, buildThemeColorMap, buildTree, buildTrendlineLabel, bytesToBase64, captureStyleBaseline, catmullRomToBezier, chartColorChoiceValue, chartColorHex, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, chartGradientsEqual, chartGridAddCategory, chartGridAddSeries, chartGridRemoveCategory, chartGridRemoveSeries, chartGridSetCategoryLabel, chartGridSetCellValue, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, chevronPoints, chooseAlgType2 as chooseAlgType, circleNode, clampByRules, classifyPanose, collectAllText, colorsEqual, colour, combineShapes, computeContrastRatio, computeSmartArtElementsWithoutCache, concatArrays, containsConvertibleStrictNamespaceAttribute, convertMetafileToDataUrl, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createDrawingObjectId, createEditorId, createLineStyleGate, createModifyVerifier, createOfficeGuid, createSaltlessModifyVerifierForTesting, createTemplateConnectorRawXml, createTemplateShapeRawXml, createUniformTextSegments, cropShapeForPresetGeometry, cssDegreesToOoxmlGradientAngle, customGeometryPathsToSvgSubpaths, decodeJsonValue, decodeOle10Native, decodePngDimensions, decodePptxJsonText, decodeXmlEntities, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, deriveSlideTitle, deriveSlideTitles, deserializePptxFromJson, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectOlePayloadEditorKind, detectStrictConformance, discoverArrangement2 as discoverArrangement, distributeSegmentsAcrossChain, douglasPeucker, effectChild, elementActionToPptxAction, elementHasAction, emu, encodeCompressedPng, encodeJsonValue, encodeOle10Native, encodePasswordUtf16LE, encodePng, encodeXmlAttributeValue, encodeXmlTextValue, encryptPptx, ensureArrayValue, ensureXmlChild, ensureXmlChildOrCreate, ensureXmlChildren, esc, escAttr, escText, estimateMediaDurationMs, estimateTextBoxCapacity, evaluateCustomGeometryPathData, evaluateCustomGeometryPaths, evaluateGeometryPaths, evaluateGuides, evaluatePresetShape, expandRangeAddresses, extractColorChoiceXml, extractGuidFromPartName, extractModel3DTransform, extractStyleReferenceColorXml, fetchUrlToBytes, fillIsPurelyStyleMatrix, filterValidShapeAdjustmentEntries, findChartExtByUri, findChildByLocalName, findCnvPrNode, findConstraint, findCustomShow, findKey6 as findKey, firstParagraphRuns, fitFontSize, flattenChartUserShapes, flattenNodes, formatAutoNumberMarker, formatCommentTimestamp, formatScriptAutoNumber, fragmentShapes, gearPoints, generateFontGuid, getAdjustmentAwareClipPath, getAdjustmentAwareShapeClipPath, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getCloudPathForRendering, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getElementLabel, getElementOrientationMatrix, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getNativeAnimationPresetMetadata, getOleDocumentParagraphs, getOleNestedDeckBytes, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getPanoseWeight, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, getPresetsByCategory, getRoundRectRadiusPx, getSectionSlideRange, getShapeClipPath, getShapeClipPathFromPreset, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getZoomElements, getZoomTargetSlideIndexes, gradFill, groupElements, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasReference, hasShapeProperties, hasTextProperties, hash, hebrewAlphaLabel, inferOleExtensionFromTarget, inheritCustomGeometryCommandOrder, inheritedPlaceholderFieldType, inkBounds, inkElementToStrokes, inkLengthToPx, inkPointMapper, insertAt2 as insertAt, interpretSmartArtLayout2 as interpretSmartArtLayout, interpretedLayoutToElements, intersectPolygons, intersectShapes, intersectSvgPaths, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isCalloutShape, isConnectorElement, isContentPoint, isDefaultSmartArtLabelScene, isEditableTextElement, isHeaderFooterPlaceholder, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isParetoChartData, isPptxJsonText, isShapeElement, isStShapeType, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTemplateElementId, isTextElement, isTextOrientationMatrix, isTransitionalNamespaceUri, isXmlNode, isZoomElement, isZoomElement2, itemNode, lookupPresetConnectionSites, lookupPresetShape, lookupPresetTextRectOverride, makeStoreAwareId, mergeAttributeEffectNode, mergeEffectNode, mergeShapes, mergeSmartArtConnectionXml, mergeSmartArtPointXml, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, multiplyTextOrientationMatrices, navigateCustomShow, newSmartArtGuid, nodeFill, nodeOpacity, nodeStroke, nodeTextStyle, normalizeNamespaceUri, normalizePositiveFixedAngleDegrees, normalizeStShapeType, normalizeStrictXml, normalizeStrokeDashType, numericParam, obfuscateFont, oleBytesToDataUrl, oleObjectTypeToGlyph, ooxmlArcToSvg, ooxmlGradientAngleToCssDegrees, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseAlignmentAttr, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseBulletSizePercent, parseChart3DSurfaces, parseChartAxes, parseChartDataLabelOptions, parseChartDataPointPicture, parseChartDataPointPictureBlipRel, parseChartFormulaRange, parseChartLayouts, parseChartManualLayout, parseChartUniqueId, parseChartUpDownBars, parseChartUserShapesDrawing, parseChartWideTextStyle, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDefRPrTextStyle, parseDiagramRelationshipIds, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingLineDash, parseDrawingMediaReference, parseEmbeddedXlsx, parseEncryptionInfo, parseGuideDefinitions, parseHexColor, parseImplicitBlipPictureFill, parseInkMlContent, parseKinsoku, parseLineSpacingExactPt, parseLineSpacingMultiplier, parseLineStyle, parseMarker, parseModel3DScene, parseOle2, parseP14DirectChild, parseP14FromExtLst, parsePanoseBytes, parsePanoseString, parseParagraphExtraAttributes, parseParagraphLevel, parseParagraphMargins, parseParagraphRtl, parseParagraphSpacingPx, parsePptxJson, parsePptxJsonDocument, parsePresentationDrawingGuides, parsePresentationSmartTags, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeId, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSmartArtColorListHexes, parseSmartArtColorStyleLabels, parseSmartArtConnection, parseSmartArtDefinitionHeaderList, parseSmartArtDefinitionMetadata, parseSmartArtPointCustomLayout, parseSmartArtPresLayoutVars, parseSmartArtQuickStyleLabels, parseSmartArtStyleLabelRefs, parseSmartArtTextParagraphs, parseStructuredCustomGeometry, parseTabStops, parseVmlElement, parseVmlElements, polygonNode, polygonsToSvgPath, positiveFixedAngleAttribute, pptxActionToElementAction, pptxDataFromJsonDocument, preservesSpreadsheetXmlWhitespace, preservesXmlWhitespace, presetGeometryForCropShape, prismFamilyFlags, prismFamilyTypeForFlags, prismFamilyTypeOfNode, projectSmartArtNodeText, promoteSmartArtNode, ratioConstraint, reResolveElementColors, reResolveElementFonts, reResolveSlideColors, reResolveSlideFonts, readChartManualLayoutValues, readFileAsDataUrl, readOleDocParagraphs, readOleDocumentParagraphs, readOleNestedDeckDetail, readOleNestedDeckFirstSlideTextLines, readOleSheetGrid, readOleXlsGrid, readPathListCommandOrder, reapplyAlternateContentToTree, reassignDescendantIds, rectNode, reflowSmartArtLayout, regenerateClonedUniqueId, regenerateSmartArtDrawingShapes, relativeLuminance, relayoutSmartArt, remapElementShapeIds, remapShapeIdReferences, removeSmartArtNode, renderOleDeckPreviewPng, renderOleDocumentPreviewPng, renderOleIconPng, renderOleSheetPreviewPng, reorderObjectKeys, reorderObjectKeysByLocalName, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, repeatedLabel, replaceFirstText, replaceOleEmbedding, replaceOleFile, resetDecomposeCounter, resetSmartArtEditCounter, resetSpPrFormattingForStyleMatrix, resolveConstraint, resolveConstraintDeclaredBy, resolveCoordinate, resolveCustomGeometryGuideContext, resolveCustomGeometryToken, resolveCustomShowSlideIndices, resolveDisplayedChartTypeName, resolveFlowDirection, resolveLayoutDisplayName, resolveModel3DMimeType, resolveModifyVerifierAlgorithmName, resolveOleEditorKindFromPayload, resolveParagraphAlignment, resolveRatioConstraint, resolveSmartArtEffectIntensity, resolveSmartArtNodeCoherent3DOff, resolveSmartArtNodeStyleRoles, resolveTableCellStyle, resolveTxPrDefRPr, rgb, roleOf, romanNumeral, roundCoordinate, safeResolveZipPath, sampleFirstPixelColorFromBytes, scaleVectorToIntegers, selectAlternateContentBranch, selectArrangedNodes, serializeColorChoice, serializeColorChoiceWithRef, serializePptxToJson, serializeSmartArtDefinitionHeaderList, serializeTabStop, setAutoTitleDeleted, setOleObjectName, setSmartArtNodeStyle, shadowOffsetToDistanceAndDirection, shouldRebuildFromParagraphs, shouldRebuildFromRuns, shouldRenderFallbackLabel, shouldReturnToZoomSlide, smartArtParagraphsText, smartArtQuickStyleHas3d, solidFill, stripParentDirSegments, stripXmlOrderMarkers, stripXmlOrderSuffix, strokeFor, styleContext, styleShadow, styleStroke, subtractPolygons, subtractShapes, subtractSvgPaths, supportsChartGradientFill, svgPathToPolygons, svgToCustomGeometryPaths, switchSmartArtLayout, syncPictureShapeTypeWithCropShape, themeColorSchemesEqual, toArabicAbjadNumeral, toChineseNumeral, toCjkDigitString, toDevanagariDigits, toEa1ChsNumeral, toEa1ChtNumeral, toFullWidthDigits, toHebrewNumeral, toStrictNamespaceUri, toThaiDigits, treeDepth, treeWidth, truncate, uint32LE, ungroupElements, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateSmartArtNodeText, upsertChartAxisChild, validatePptx, validateSmartArtColorStyleLabels, validateSmartArtDefinitionHeaderList, validateSmartArtDefinitionMetadata, verifyModifyPassword, verifyPassword, verifySignatureDigests, visitXmlObjects, withThemePlaceholderColor, writeBodyPrBooleanAttrs, writeChartColorChoice, writeChartShapeProps, writeOleDocParagraphEdit, writeOleDocumentParagraphEdit, writeOleNestedDeckElementText, writeOleSheetCellEdit, writeOleXlsNumericCellEdit, writeOleXlsStringCellEdit, writeShapeEffects, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlEscape, xmlHasChild, xmlPath, xmlText, zlibDeflate, zlibStore };
62064
+ export { ALL_ANIMATION_PRESETS, ARABIC_ABJADI_LETTERS, ARABIC_HIJAI_LETTERS, BLIP_FILL_ORDER, CHART_ERROR_BAR_DIRECTIONS, CHART_ERROR_BAR_TYPES, CHART_ERROR_VALUE_TYPES, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DGM_XMLNS, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, DataIntegrityError, EFFECT_LST_ORDER, ELEMENT_FIELD_KIND, EMPHASIS_PRESETS, EMPTY_CONSTRAINT_INDEX, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, EMU_PER_PX, ENTRANCE_PRESETS, ENTRY_TYPE_ROOT, EXIT_PRESETS, EncryptedFileError, FONT_SUBSTITUTION_MAP, FreeformPathBuilder, HEBREW_LETTERS, HINDI_CONSONANTS, HINDI_VOWELS, IncorrectPasswordError, MAX_SHAPE_ID, MAX_TABLE_DIMENSION, MIN_ELEMENT_SIZE, MIN_TABLE_DIMENSION, MOTION_PATH_PRESETS, NS, OOXML_ANGLE_UNITS_PER_DEGREE, OOXML_PERCENT_UNITS, Ole2ParseError, P14_DIR_IS_ORIENTATION_TYPE, P14_GUIDE_URI, P14_TRANSITION_TYPES, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, PML_XMLNS, POWERPOINT_PRESENCE_KEY, PPTX_JSON_FILE_EXTENSION, PPTX_JSON_FORMAT, PPTX_JSON_MIME_TYPE, PPTX_JSON_VERSION, PRESENTATION_CHILD_ORDER, PRESENTATION_FIELD_KEYS, PRESENTATION_FIELD_NAMES, PRESET_COLOR_MAP, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PptxJsonConverter, PptxJsonFormatError, RC4_ALG_ID, RasterCanvas, SHAPE_STYLE_ORDER, SHAPE_TREE_ELEMENT_TAGS, SLIDE_FIELD_KIND, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER2 as SP_PR_ORDER, STROKE_DASH_OPTIONS, STYLE_MATRIX_EFFECT_KEYS, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, ST_SHAPE_TYPE_VALUES, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, SvgExporter, TC_PR_BORDERS_ORDER, TEXT_AUTONUMBER_SCHEMES, TEXT_ORIENTATION_IDENTITY, THAI_CONSONANTS, THEME_COLOR_SCHEME_KEYS, VML_SHAPE_TAGS, WHITESPACE_PRESERVING_TAGS, XML_PROLOG, addSmartArtNode, addSmartArtNodeAsChild, algorithmParam, alphaLabel, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, applyActiveXControlsToSlide, applyBubbleChartOptions, applyCellWritesToWorksheet, applyChartAxisDisplayUnitsToXml, applyChartAxisLabelFormatting, applyChartAxisScaling, applyChartDateAxisUnits, applyChartGradientToSpPr, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomGeometryGuideOverrides, applyCustomLayoutOverrides, applyCustomShows, applyDataLabelsRangeToDLbls, applyDiagramRelationshipIds, applyDrawingLineDash, applyDrawingMediaReference, applyImportedPptxData, applyKinsokuToXml, applyOleDocumentParagraphEdit, applyOleNestedDeckBytes, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applySections, applySeriesDataPointsToXml, applySeriesMarkerToXml, applySeriesPictureOptionsToXml, applySmartArtQuickStyle3d, applySmartArtRoleColors, applyTextBodySp3d, applyThemeOverrideToSlide, applyThemeToData, areNamespacesSupported, arrangeComposite3 as arrangeComposite, arrangeConn2 as arrangeConn, arrangeCycle, arrangeHierarchy2 as arrangeHierarchy, arrangeLinear3 as arrangeLinear, arrangePyramid, arrangeSnake, arrangeSpacer, arrangeText, avLstForPreset, base64Decode, base64ToBytes, bijectiveLabel, blobUrlToDataUrl, buildActiveXControlNode, buildCalloutLeaderLineSvgPath, buildChartGradFillXml, buildChartMarkerXml, buildChartUniqueIdExtLst, buildClrMapOverrideXml, buildConstraintIndex, buildCustomGeometryPathsFromNodes, buildDefRPrTextProperties, buildEffectDagTreeFromXml, buildFabricatedDiagramDataXml, buildFabricatedDrawingXml, buildFontFamilyString, buildForest, buildGuideListExtension, buildInkMlContent, buildLinkedTextBoxChains, buildNodeGuidMap, buildOle2, buildPointFromParagraphs, buildPointFromRuns, buildPointText, buildPptxJsonDocument, buildPresentationGuidMap, buildSaveTimeCustomGeometryXml, buildSmartArtColorLists, buildSmartArtColorRoleMap, buildSrgbColorChoice, buildThemeColorMap, buildTree, buildTrendlineLabel, buildXml, bytesToBase64, captureStyleBaseline, catmullRomToBezier, chartColorChoiceValue, chartColorHex, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, chartGradientsEqual, chartGridAddCategory, chartGridAddSeries, chartGridRemoveCategory, chartGridRemoveSeries, chartGridSetCategoryLabel, chartGridSetCellValue, chartTrendlineKind, chartTrendlineType, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, chevronPoints, children2 as children, chooseAlgType2 as chooseAlgType, circleNode, clampByRules, classifyPanose, collectAllText, colorsEqual, colour, combineShapes, computeContrastRatio, computeSmartArtElementsWithoutCache, concatArrays, containsConvertibleStrictNamespaceAttribute, convertMetafileToDataUrl, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createDrawingObjectId, createEditorId, createLineStyleGate, createModifyVerifier, createOfficeGuid, createSaltlessModifyVerifierForTesting, createTemplateConnectorRawXml, createTemplateShapeRawXml, createUniformTextSegments, cropShapeForPresetGeometry, cssDegreesToOoxmlGradientAngle, customGeometryPathsToSvgSubpaths, decodeJsonValue, decodeOle10Native, decodePngDimensions, decodePptxJsonText, decodeXmlEntities, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, deriveSlideTitle, deriveSlideTitles, deserializePptxFromJson, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectOlePayloadEditorKind, detectStrictConformance, discoverArrangement2 as discoverArrangement, distributeSegmentsAcrossChain, douglasPeucker, effectChild, elementActionToPptxAction, elementHasAction, elements, emu, encodeCompressedPng, encodeJsonValue, encodeOle10Native, encodePasswordUtf16LE, encodePng, encodeXmlAttributeValue, encodeXmlTextValue, encryptPptx, ensureArrayValue, ensureXmlChild, ensureXmlChildOrCreate, ensureXmlChildren, esc, escAttr, escText, estimateMediaDurationMs, estimateTextBoxCapacity, evaluateCustomGeometryPathData, evaluateCustomGeometryPaths, evaluateGeometryPaths, evaluateGuides, evaluatePresetShape, expandRangeAddresses, extractColorChoiceXml, extractGuidFromPartName, extractModel3DTransform, extractStyleReferenceColorXml, fetchUrlToBytes, fillIsPurelyStyleMatrix, filterValidShapeAdjustmentEntries, findChartExtByUri, findChildByLocalName, findCnvPrNode, findConstraint, findCustomShow, findKey6 as findKey, first, firstParagraphRuns, fitFontSize, flattenChartUserShapes, flattenNodes, formatAutoNumberMarker, formatCommentTimestamp, formatScriptAutoNumber, fragmentShapes, gearPoints, generateFontGuid, getAdjustmentAwareClipPath, getAdjustmentAwareShapeClipPath, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getCloudPathForRendering, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getElementLabel, getElementOrientationMatrix, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getNativeAnimationPresetMetadata, getOleDocumentParagraphs, getOleNestedDeckBytes, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getPanoseWeight, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, getPresetsByCategory, getRoundRectRadiusPx, getSectionSlideRange, getShapeClipPath, getShapeClipPathFromPreset, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getZoomElements, getZoomTargetSlideIndexes, gradFill, groupElements, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasReference, hasShapeProperties, hasTextProperties, hash, hebrewAlphaLabel, inferOleExtensionFromTarget, inheritCustomGeometryCommandOrder, inheritedPlaceholderFieldType, inkBounds, inkElementToStrokes, inkLengthToPx, inkPointMapper, insertAt2 as insertAt, interpretSmartArtLayout2 as interpretSmartArtLayout, interpretedLayoutToElements, intersectPolygons, intersectShapes, intersectSvgPaths, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isCalloutShape, isConnectorElement, isContentPoint, isDefaultSmartArtLabelScene, isEditableTextElement, isHeaderFooterPlaceholder, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isParetoChartData, isPptxJsonText, isShapeElement, isStShapeType, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTemplateElementId, isTextElement, isTextOrientationMatrix, isTransitionalNamespaceUri, isXmlNode, isZoomElement, isZoomElement2, itemNode, lookupPresetConnectionSites, lookupPresetShape, lookupPresetTextRectOverride, makeStoreAwareId, mergeAttributeEffectNode, mergeEffectNode, mergeShapes, mergeSmartArtConnectionXml, mergeSmartArtPointXml, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, multiplyTextOrientationMatrices, navigateCustomShow, newSmartArtGuid, nodeFill, nodeOpacity, nodeStroke, nodeTextStyle, normalizeNamespaceUri, normalizePositiveFixedAngleDegrees, normalizeStShapeType, normalizeStrictXml, normalizeStrokeDashType, numericParam, obfuscateFont, oleBytesToDataUrl, oleObjectTypeToGlyph, ooxmlArcToSvg, ooxmlGradientAngleToCssDegrees, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseAlignmentAttr, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseBulletSizePercent, parseChart3DSurfaces, parseChartAxes, parseChartDataLabelOptions, parseChartDataPointPicture, parseChartDataPointPictureBlipRel, parseChartFormulaRange, parseChartLayouts, parseChartManualLayout, parseChartUniqueId, parseChartUpDownBars, parseChartUserShapesDrawing, parseChartWideTextStyle, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDefRPrTextStyle, parseDiagramRelationshipIds, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingLineDash, parseDrawingMediaReference, parseEmbeddedXlsx, parseEncryptionInfo, parseGuideDefinitions, parseHexColor, parseImplicitBlipPictureFill, parseInkMlContent, parseKinsoku, parseLineSpacingExactPt, parseLineSpacingMultiplier, parseLineStyle, parseMarker, parseModel3DScene, parseOle2, parseP14DirectChild, parseP14FromExtLst, parsePanoseBytes, parsePanoseString, parseParagraphExtraAttributes, parseParagraphLevel, parseParagraphMargins, parseParagraphRtl, parseParagraphSpacingPx, parsePptxJson, parsePptxJsonDocument, parsePresentationDrawingGuides, parsePresentationSmartTags, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeId, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSmartArtColorListHexes, parseSmartArtColorStyleLabels, parseSmartArtConnection, parseSmartArtDefinitionHeaderList, parseSmartArtDefinitionMetadata, parseSmartArtPointCustomLayout, parseSmartArtPresLayoutVars, parseSmartArtQuickStyleLabels, parseSmartArtStyleLabelRefs, parseSmartArtTextParagraphs, parseStructuredCustomGeometry, parseTabStops, parseVmlElement, parseVmlElements, parseXml, polygonNode, polygonsToSvgPath, positiveFixedAngleAttribute, pptxActionToElementAction, pptxDataFromJsonDocument, preservesSpreadsheetXmlWhitespace, preservesXmlWhitespace, presetGeometryForCropShape, prismFamilyFlags, prismFamilyTypeForFlags, prismFamilyTypeOfNode, projectSmartArtNodeText, promoteSmartArtNode, ratioConstraint, reResolveElementColors, reResolveElementFonts, reResolveSlideColors, reResolveSlideFonts, readChartManualLayoutValues, readFileAsDataUrl, readOleDocParagraphs, readOleDocumentParagraphs, readOleNestedDeckDetail, readOleNestedDeckFirstSlideTextLines, readOleSheetGrid, readOleXlsGrid, readPathListCommandOrder, reapplyAlternateContentToTree, reassignDescendantIds, rectNode, reflowSmartArtLayout, regenerateClonedUniqueId, regenerateSmartArtDrawingShapes, relAttr, relativeLuminance, relayoutSmartArt, remapElementShapeIds, remapShapeIdReferences, removeSmartArtNode, renderOleDeckPreviewPng, renderOleDocumentPreviewPng, renderOleIconPng, renderOleSheetPreviewPng, reorderObjectKeys, reorderObjectKeysByLocalName, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, repeatedLabel, replaceFirstText, replaceOleEmbedding, replaceOleFile, resetDecomposeCounter, resetSmartArtEditCounter, resetSpPrFormattingForStyleMatrix, resolveConstraint, resolveConstraintDeclaredBy, resolveCoordinate, resolveCustomGeometryGuideContext, resolveCustomGeometryToken, resolveCustomShowSlideIndices, resolveDisplayedChartTypeName, resolveFlowDirection, resolveLayoutDisplayName, resolveModel3DMimeType, resolveModifyVerifierAlgorithmName, resolveOleEditorKindFromPayload, resolveParagraphAlignment, resolveRatioConstraint, resolveSmartArtEffectIntensity, resolveSmartArtNodeCoherent3DOff, resolveSmartArtNodeStyleRoles, resolveTableCellStyle, resolveTxPrDefRPr, rgb, roleOf, romanNumeral, roundCoordinate, safeResolveZipPath, sampleFirstPixelColorFromBytes, scaleVectorToIntegers, selectAlternateContentBranch, selectArrangedNodes, serializeColorChoice, serializeColorChoiceWithRef, serializePptxToJson, serializeSmartArtDefinitionHeaderList, serializeTabStop, setAutoTitleDeleted, setOleObjectName, setSmartArtNodeStyle, shadowOffsetToDistanceAndDirection, shouldRebuildFromParagraphs, shouldRebuildFromRuns, shouldRenderFallbackLabel, shouldReturnToZoomSlide, smartArtParagraphsText, smartArtQuickStyleHas3d, solidFill, stripParentDirSegments, stripXmlOrderMarkers, stripXmlOrderSuffix, strokeFor, styleContext, styleShadow, styleStroke, subtractPolygons, subtractShapes, subtractSvgPaths, supportsChartGradientFill, svgPathToPolygons, svgToCustomGeometryPaths, switchSmartArtLayout, syncPictureShapeTypeWithCropShape, themeColorSchemesEqual, toArabicAbjadNumeral, toChineseNumeral, toCjkDigitString, toDevanagariDigits, toEa1ChsNumeral, toEa1ChtNumeral, toFullWidthDigits, toHebrewNumeral, toStrictNamespaceUri, toThaiDigits, treeDepth, treeWidth, truncate, uint32LE, ungroupElements, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateSmartArtNodeText, upsertChartAxisChild, validatePptx, validateSmartArtColorStyleLabels, validateSmartArtDefinitionHeaderList, validateSmartArtDefinitionMetadata, verifyModifyPassword, verifyPassword, verifySignatureDigests, visitXmlObjects, withThemePlaceholderColor, writeBodyPrBooleanAttrs, writeChartColorChoice, writeChartShapeProps, writeOleDocParagraphEdit, writeOleDocumentParagraphEdit, writeOleNestedDeckElementText, writeOleSheetCellEdit, writeOleXlsNumericCellEdit, writeOleXlsStringCellEdit, writeShapeEffects, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlEscape, xmlHasChild, xmlPath, xmlText, zlibDeflate, zlibStore };