@web-ppt/edit-core 0.5.0-beta.2 → 0.5.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 (337) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/README.md +164 -21
  3. package/dist/alt-text.d.ts +5 -0
  4. package/dist/appearance/index.d.ts +12 -0
  5. package/dist/appearance/materialize.d.ts +4 -0
  6. package/dist/appearance/types.d.ts +26 -0
  7. package/dist/appearance/values.d.ts +9 -0
  8. package/dist/appearance.js +301 -0
  9. package/dist/cfb/index.d.ts +5 -0
  10. package/dist/cfb/read.d.ts +16 -0
  11. package/dist/cfb/write.d.ts +3 -0
  12. package/dist/cfb.js +208 -0
  13. package/dist/change-classification.d.ts +3 -3
  14. package/dist/chart/category-binding.d.ts +4 -0
  15. package/dist/chart/category-commands.d.ts +23 -0
  16. package/dist/chart/category-levels.d.ts +14 -0
  17. package/dist/chart/category-matrix.d.ts +2 -0
  18. package/dist/chart/category-value.d.ts +2 -0
  19. package/dist/chart/category-workbook.d.ts +13 -0
  20. package/dist/chart/commands.d.ts +28 -0
  21. package/dist/chart/context.d.ts +12 -0
  22. package/dist/chart/dataset-merge.d.ts +5 -0
  23. package/dist/chart/formula.d.ts +13 -0
  24. package/dist/chart/identity-frames.d.ts +4 -0
  25. package/dist/chart/identity-scopes.d.ts +6 -0
  26. package/dist/chart/identity.d.ts +24 -0
  27. package/dist/chart/index.d.ts +8 -0
  28. package/dist/chart/limits.d.ts +6 -0
  29. package/dist/chart/locator.d.ts +4 -0
  30. package/dist/chart/materialize.d.ts +7 -0
  31. package/dist/chart/ordering.d.ts +9 -0
  32. package/dist/chart/part-graph.d.ts +5 -0
  33. package/dist/chart/patch-validation.d.ts +3 -0
  34. package/dist/chart/plot-kinds.d.ts +2 -0
  35. package/dist/chart/projection.d.ts +8 -0
  36. package/dist/chart/save.d.ts +4 -0
  37. package/dist/chart/shared-added-plan.d.ts +19 -0
  38. package/dist/chart/shared-added-records.d.ts +8 -0
  39. package/dist/chart/shared-address.d.ts +5 -0
  40. package/dist/chart/shared-allocate.d.ts +7 -0
  41. package/dist/chart/shared-cache-codec.d.ts +5 -0
  42. package/dist/chart/shared-cache-identities.d.ts +3 -0
  43. package/dist/chart/shared-cache-migration.d.ts +7 -0
  44. package/dist/chart/shared-cache-save.d.ts +3 -0
  45. package/dist/chart/shared-cache-scopes.d.ts +13 -0
  46. package/dist/chart/shared-cache.d.ts +11 -0
  47. package/dist/chart/shared-category.d.ts +4 -0
  48. package/dist/chart/shared-cell.d.ts +9 -0
  49. package/dist/chart/shared-family.d.ts +26 -0
  50. package/dist/chart/shared-fields.d.ts +18 -0
  51. package/dist/chart/shared-graph.d.ts +19 -0
  52. package/dist/chart/shared-growth-space.d.ts +5 -0
  53. package/dist/chart/shared-inserted-cells.d.ts +14 -0
  54. package/dist/chart/shared-inserted-command.d.ts +7 -0
  55. package/dist/chart/shared-inserted-layout.d.ts +16 -0
  56. package/dist/chart/shared-inserted-project.d.ts +14 -0
  57. package/dist/chart/shared-inserted-records.d.ts +16 -0
  58. package/dist/chart/shared-inserted-save.d.ts +6 -0
  59. package/dist/chart/shared-joint-command.d.ts +9 -0
  60. package/dist/chart/shared-joint-records.d.ts +9 -0
  61. package/dist/chart/shared-record-axis.d.ts +25 -0
  62. package/dist/chart/shared-record-remove.d.ts +13 -0
  63. package/dist/chart/shared-record-stage.d.ts +2 -0
  64. package/dist/chart/shared-records.d.ts +2 -0
  65. package/dist/chart/shared-rows.d.ts +17 -0
  66. package/dist/chart/shared-runtime.d.ts +19 -0
  67. package/dist/chart/shared-save-plan.d.ts +4 -0
  68. package/dist/chart/shared-save.d.ts +3 -0
  69. package/dist/chart/shared-series.d.ts +6 -0
  70. package/dist/chart/shared-source-cache.d.ts +4 -0
  71. package/dist/chart/shared-topology.d.ts +9 -0
  72. package/dist/chart/shared-unresolved.d.ts +3 -0
  73. package/dist/chart/shared-validation.d.ts +6 -0
  74. package/dist/chart/shared-workbook-source.d.ts +6 -0
  75. package/dist/chart/shared-xy-command.d.ts +7 -0
  76. package/dist/chart/shared-xy-family.d.ts +16 -0
  77. package/dist/chart/shared-xy-project.d.ts +6 -0
  78. package/dist/chart/shared-xy-records.d.ts +23 -0
  79. package/dist/chart/shared-xy-save.d.ts +5 -0
  80. package/dist/chart/shared-xy-source.d.ts +39 -0
  81. package/dist/chart/shared.d.ts +13 -0
  82. package/dist/chart/source.d.ts +11 -0
  83. package/dist/chart/types.d.ts +86 -0
  84. package/dist/chart/validation.d.ts +24 -0
  85. package/dist/chart/workbook-range.d.ts +16 -0
  86. package/dist/chart/workbook-read.d.ts +7 -0
  87. package/dist/chart/workbook-write.d.ts +9 -0
  88. package/dist/chart/workbook.d.ts +25 -0
  89. package/dist/chart/xml-data.d.ts +14 -0
  90. package/dist/chart/xml-namespaces.d.ts +16 -0
  91. package/dist/chart-design/index.d.ts +10 -0
  92. package/dist/chart-design/types.d.ts +11 -0
  93. package/dist/chart-design/xml.d.ts +2 -0
  94. package/dist/chart-design.js +361 -0
  95. package/dist/chart-ex/index.d.ts +15 -0
  96. package/dist/chart-ex/workbook.d.ts +6 -0
  97. package/dist/chart-ex/xml.d.ts +14 -0
  98. package/dist/chart-ex.js +457 -0
  99. package/dist/chart-shared/index.d.ts +12 -0
  100. package/dist/chart-shared.js +1 -0
  101. package/dist/chart.js +1 -0
  102. package/dist/clipboard-links-GuPtqr1z.js +778 -0
  103. package/dist/clipboard-package.d.ts +4 -0
  104. package/dist/clipboard-source.d.ts +6 -2
  105. package/dist/clipboard-trees.d.ts +9 -0
  106. package/dist/commands/add-slide-identity.d.ts +2 -0
  107. package/dist/commands/bullet-image-resource.d.ts +11 -0
  108. package/dist/commands/clear-format.d.ts +4 -0
  109. package/dist/commands/common-object-slide-patch.d.ts +4 -0
  110. package/dist/commands/common-object-slide-types.d.ts +68 -0
  111. package/dist/commands/direct-format-patches.d.ts +11 -5
  112. package/dist/commands/distribute-elements.d.ts +4 -0
  113. package/dist/commands/edit-table-grid.d.ts +10 -0
  114. package/dist/commands/element-alt-text.d.ts +8 -0
  115. package/dist/commands/element-arrangement.d.ts +17 -0
  116. package/dist/commands/element-effects.d.ts +1 -1
  117. package/dist/commands/element-fill.d.ts +1 -1
  118. package/dist/commands/element-geometry.d.ts +5 -2
  119. package/dist/commands/element-image-content.d.ts +2 -2
  120. package/dist/commands/element-link.d.ts +1 -1
  121. package/dist/commands/element-name.d.ts +1 -1
  122. package/dist/commands/element-stroke.d.ts +1 -1
  123. package/dist/commands/element-text.d.ts +1 -1
  124. package/dist/commands/element-transform.d.ts +2 -2
  125. package/dist/commands/geometry-types.d.ts +23 -1
  126. package/dist/commands/hierarchy-record.d.ts +5 -0
  127. package/dist/commands/image-resource.d.ts +8 -1
  128. package/dist/commands/insertion-host.d.ts +14 -1
  129. package/dist/commands/layout-property.d.ts +7 -0
  130. package/dist/commands/master-property.d.ts +5 -0
  131. package/dist/commands/master-text-style-types.d.ts +27 -0
  132. package/dist/commands/master-text-style.d.ts +7 -0
  133. package/dist/commands/paste-resources.d.ts +9 -5
  134. package/dist/commands/patch-apply.d.ts +3 -0
  135. package/dist/commands/patch-count.d.ts +1 -0
  136. package/dist/commands/patch-invalidation.d.ts +1 -1
  137. package/dist/commands/patch-stage.d.ts +4 -0
  138. package/dist/commands/record-override.d.ts +5 -0
  139. package/dist/commands/replace-image.d.ts +6 -1
  140. package/dist/commands/sections.d.ts +10 -0
  141. package/dist/commands/set-preset.d.ts +5 -0
  142. package/dist/commands/slide-property-types.d.ts +55 -5
  143. package/dist/commands/slide-size.d.ts +7 -0
  144. package/dist/commands/spid.d.ts +1 -1
  145. package/dist/commands/table-grid-patch.d.ts +12 -0
  146. package/dist/commands/text-target.d.ts +2 -2
  147. package/dist/commands/theme-types.d.ts +47 -0
  148. package/dist/commands/theme.d.ts +9 -0
  149. package/dist/commands/types.d.ts +194 -17
  150. package/dist/commands/ungroup-source.d.ts +3 -0
  151. package/dist/comments/index.d.ts +35 -0
  152. package/dist/comments/save.d.ts +3 -0
  153. package/dist/comments/state.d.ts +10 -0
  154. package/dist/comments/xml.d.ts +12 -0
  155. package/dist/comments.js +782 -0
  156. package/dist/common-object-slide-types.d.ts +34 -0
  157. package/dist/data-validation.d.ts +1 -1
  158. package/dist/describe/budget.d.ts +3 -0
  159. package/dist/describe/index.d.ts +5 -0
  160. package/dist/describe/read.d.ts +4 -0
  161. package/dist/describe/types.d.ts +103 -0
  162. package/dist/describe.js +192 -0
  163. package/dist/design-dependencies.d.ts +8 -0
  164. package/dist/design-projection-package.d.ts +10 -0
  165. package/dist/design-target.d.ts +10 -0
  166. package/dist/design.d.ts +3 -0
  167. package/dist/document-extensions.d.ts +9 -0
  168. package/dist/document.d.ts +1 -1
  169. package/dist/dynamic-projection.d.ts +6 -0
  170. package/dist/edit-core.js +5420 -4111
  171. package/dist/editor.d.ts +15 -3
  172. package/dist/element-source.d.ts +11 -0
  173. package/dist/element-spids.d.ts +4 -0
  174. package/dist/extension-address-journal.d.ts +9 -0
  175. package/dist/extension-address-remap.d.ts +14 -0
  176. package/dist/extension-addresses.d.ts +20 -0
  177. package/dist/extension-copy-history.d.ts +7 -0
  178. package/dist/extension-copy.d.ts +16 -0
  179. package/dist/extension-migration-receipt.d.ts +34 -0
  180. package/dist/extension-recovery-context.d.ts +5 -0
  181. package/dist/extension-runtime.d.ts +64 -0
  182. package/dist/generate/comments.d.ts +3 -0
  183. package/dist/generate/compatibility-parts.d.ts +14 -0
  184. package/dist/generate/compatibility-references.d.ts +3 -0
  185. package/dist/generate/compatibility.d.ts +4 -0
  186. package/dist/generate/index.d.ts +1 -0
  187. package/dist/generate/master-defaults.d.ts +4 -0
  188. package/dist/generate/materialize.d.ts +2 -2
  189. package/dist/generate/math.d.ts +3 -0
  190. package/dist/generate/portable-clipboard.d.ts +4 -0
  191. package/dist/generate/projection-tree.d.ts +8 -0
  192. package/dist/generate/template.d.ts +68 -1
  193. package/dist/generate/text-body.d.ts +2 -0
  194. package/dist/generate/text-effects.d.ts +5 -0
  195. package/dist/generate/text-override.d.ts +8 -0
  196. package/dist/generate/validation.d.ts +3 -0
  197. package/dist/generate/warp.d.ts +2 -0
  198. package/dist/generate.js +1232 -512
  199. package/dist/history.d.ts +11 -1
  200. package/dist/identities.d.ts +4 -0
  201. package/dist/image-content.d.ts +5 -2
  202. package/dist/image-resource-history.d.ts +2 -0
  203. package/dist/index-C2r7c6G6.js +714 -0
  204. package/dist/index-CYDvbiwF.js +1 -0
  205. package/dist/index.d.ts +35 -7
  206. package/dist/ink/index.d.ts +27 -0
  207. package/dist/ink/model.d.ts +4 -0
  208. package/dist/ink/save.d.ts +3 -0
  209. package/dist/ink/source.d.ts +7 -0
  210. package/dist/ink.js +324 -0
  211. package/dist/layout-assets.d.ts +3 -1
  212. package/dist/layout-projection.d.ts +17 -5
  213. package/dist/layout-state.d.ts +2 -0
  214. package/dist/layout-types.d.ts +42 -0
  215. package/dist/layout.d.ts +5 -0
  216. package/dist/lint/color.d.ts +5 -0
  217. package/dist/lint/index.d.ts +7 -0
  218. package/dist/lint/prompts.d.ts +3 -0
  219. package/dist/lint/report.d.ts +21 -0
  220. package/dist/lint/sampler-batch.d.ts +4 -0
  221. package/dist/lint/sampler-images.d.ts +2 -0
  222. package/dist/lint/sampler.d.ts +9 -0
  223. package/dist/lint/snapshot.d.ts +34 -0
  224. package/dist/lint/types.d.ts +67 -0
  225. package/dist/lint-sampler.js +187 -0
  226. package/dist/lint.js +659 -0
  227. package/dist/master-state.d.ts +3 -0
  228. package/dist/master-text-style-state.d.ts +3 -0
  229. package/dist/master-types.d.ts +55 -0
  230. package/dist/master.d.ts +5 -0
  231. package/dist/media/audio-icon.d.ts +2 -0
  232. package/dist/media/commands.d.ts +3 -0
  233. package/dist/media/index.d.ts +10 -0
  234. package/dist/media/markup.d.ts +10 -0
  235. package/dist/media/mp4-boxes.d.ts +12 -0
  236. package/dist/media/mp4-fragments.d.ts +8 -0
  237. package/dist/media/mp4-samples.d.ts +4 -0
  238. package/dist/media/mp4.d.ts +2 -0
  239. package/dist/media/poster.d.ts +2 -0
  240. package/dist/media/replace-poster.d.ts +3 -0
  241. package/dist/media/resource.d.ts +4 -0
  242. package/dist/media/source.d.ts +14 -0
  243. package/dist/media/types.d.ts +33 -0
  244. package/dist/media-properties.d.ts +4 -0
  245. package/dist/media.js +1630 -0
  246. package/dist/model-invariants-BM19JVxy.js +8980 -0
  247. package/dist/object-source.d.ts +11 -0
  248. package/dist/ole/container.d.ts +14 -0
  249. package/dist/ole/content.d.ts +94 -0
  250. package/dist/ole/index.d.ts +20 -0
  251. package/dist/ole/preview.d.ts +3 -0
  252. package/dist/ole/save.d.ts +2 -0
  253. package/dist/ole/state.d.ts +16 -0
  254. package/dist/ole.js +870 -0
  255. package/dist/opc.js +1 -1
  256. package/dist/paragraph-level.d.ts +2 -2
  257. package/dist/paragraph-property-schema.d.ts +4 -1
  258. package/dist/{patch-D7lZelRa.js → patch-BwhfBbYE.js} +10 -10
  259. package/dist/patch-events.d.ts +5 -1
  260. package/dist/ppt/appearance.d.ts +11 -0
  261. package/dist/ppt/binary.d.ts +20 -0
  262. package/dist/ppt/drawing.d.ts +18 -0
  263. package/dist/ppt/geometry.d.ts +4 -0
  264. package/dist/ppt/index.d.ts +12 -0
  265. package/dist/ppt/pictures.d.ts +11 -0
  266. package/dist/ppt/text.d.ts +9 -0
  267. package/dist/ppt.js +774 -0
  268. package/dist/preset-geometry.d.ts +6 -0
  269. package/dist/projection.d.ts +2 -0
  270. package/dist/query-BHLjWjnu.js +903 -0
  271. package/dist/recovery-identity.d.ts +1 -0
  272. package/dist/recovery-migrations.d.ts +3 -0
  273. package/dist/recovery.d.ts +3 -0
  274. package/dist/resize/index.d.ts +6 -0
  275. package/dist/resize/text.d.ts +4 -0
  276. package/dist/resize.js +5090 -0
  277. package/dist/retained-element-origins.d.ts +6 -0
  278. package/dist/run-property-fields.d.ts +12 -0
  279. package/dist/run-property-schema.d.ts +3 -1
  280. package/dist/run-style.d.ts +15 -0
  281. package/dist/save/alt-text.d.ts +4 -0
  282. package/dist/save/comments.d.ts +3 -0
  283. package/dist/save/effects.d.ts +2 -1
  284. package/dist/save/extension-availability.d.ts +3 -0
  285. package/dist/save/extension-elements.d.ts +26 -0
  286. package/dist/save/index.d.ts +6 -1
  287. package/dist/save/insertion.d.ts +6 -5
  288. package/dist/save/layout-properties.d.ts +4 -0
  289. package/dist/save/master-properties.d.ts +5 -0
  290. package/dist/save/paragraph-overrides.d.ts +3 -0
  291. package/dist/save/slide-parts.d.ts +1 -0
  292. package/dist/save/table.d.ts +2 -0
  293. package/dist/save/xfrm.d.ts +8 -2
  294. package/dist/save.js +493 -498
  295. package/dist/sections.d.ts +8 -0
  296. package/dist/session-assets.d.ts +4 -0
  297. package/dist/slide-parts-D0o_DDhi.js +1331 -0
  298. package/dist/slide-size.d.ts +6 -0
  299. package/dist/smartart/drawing.d.ts +3 -0
  300. package/dist/smartart/index.d.ts +16 -0
  301. package/dist/smartart/model.d.ts +18 -0
  302. package/dist/smartart/save.d.ts +3 -0
  303. package/dist/smartart.js +604 -0
  304. package/dist/source-retention.d.ts +7 -0
  305. package/dist/space.d.ts +37 -0
  306. package/dist/table-cell.d.ts +7 -1
  307. package/dist/table-grid-projection.d.ts +6 -0
  308. package/dist/table-grid.d.ts +45 -0
  309. package/dist/table-invariants.d.ts +4 -0
  310. package/dist/table-rows.d.ts +2 -1
  311. package/dist/table-scale.d.ts +4 -0
  312. package/dist/table-style.d.ts +5 -4
  313. package/dist/templates/index.d.ts +4 -0
  314. package/dist/templates/recipes.d.ts +5 -0
  315. package/dist/templates/types.d.ts +17 -0
  316. package/dist/templates.js +543 -0
  317. package/dist/text-flatten.d.ts +6 -0
  318. package/dist/text-fragment.d.ts +5 -0
  319. package/dist/text-model.d.ts +8 -8
  320. package/dist/text-override-validation.d.ts +6 -2
  321. package/dist/text-selection.d.ts +4 -0
  322. package/dist/theme-projection.d.ts +8 -0
  323. package/dist/theme-xml.d.ts +3 -0
  324. package/dist/theme.d.ts +14 -0
  325. package/dist/types.d.ts +174 -8
  326. package/dist/xml/index.d.ts +1 -1
  327. package/dist/xml/nodes.d.ts +2 -2
  328. package/dist/xml/shape-ids.d.ts +3 -0
  329. package/dist/xml.js +19 -16
  330. package/package.json +79 -5
  331. package/schemas/describe.schema.json +479 -0
  332. package/schemas/lint.schema.json +145 -0
  333. package/dist/document-B1jjN-QB.js +0 -274
  334. package/dist/image-resource-DbgJS9n-.js +0 -24
  335. package/dist/index-D2JizcOQ.js +0 -706
  336. package/dist/insertion-CGpb504L.js +0 -6152
  337. package/dist/table-style-part-DBtpxmuo.js +0 -1042
package/dist/save.js CHANGED
@@ -1,586 +1,581 @@
1
- import { c as Xe } from "./document-B1jjN-QB.js";
2
- import { g as Z, j as Oe, n as G, k as oe, l as x, m as $e, o as je, p as ye, q as Ae, t as De, u as Be, w as Ee, x as _e, y as ze, z as Ge, A as Fe, B as He, C as We, D as Ie, E as Ye, F as qe, G as Je, H as Ke, I as Ve, J as Qe, K as Ze, L as et, M as tt, N as rt, O as st, h as nt } from "./insertion-CGpb504L.js";
3
- import { p as at } from "./patch-D7lZelRa.js";
4
- import { p as E, x as k, s as X, r as ot, a as D, f as C, b as B, i as A, c as Se, d as H, e as be, D as R, g as it, P as O, h as lt, j, k as ve, l as ct } from "./index-D2JizcOQ.js";
5
- import { p as F, m as pt, t as ft, a as dt, r as ut, b as mt, c as ke, d as ht, e as gt, f as Pt, g as yt, h as St, i as vt, j as kt } from "./table-style-part-DBtpxmuo.js";
6
- import { PLACEHOLDER_DIRECT_BITS as L, findPlaceholderByIdentity as wt } from "@web-ppt/core";
7
- const Nt = "application/vnd.openxmlformats-officedocument.presentationml.slide+xml", Tt = "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml", we = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide", Ne = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout";
8
- function te(e) {
9
- return e.slideOrder.map((s) => e.slides[s]).filter((s) => !!s.creation);
10
- }
11
- function xt() {
12
- return new TextEncoder().encode(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
13
- <p:sld 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">
14
- <p:cSld><p:spTree>
15
- <p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr>
16
- <p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr>
17
- </p:spTree></p:cSld><p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>
18
- </p:sld>`);
19
- }
20
- function Ot(e, s) {
21
- if (!e.creation || !e.origin) throw new Error(`页面 ${e.id} 不是可物化的新页`);
22
- return Me(e, s);
23
- }
24
- function Te(e) {
25
- const s = new Set(e ? k(E(e).root, { localName: "Relationship" }).flatMap((r) => w(r, "Id") ?? []) : []);
26
- for (let r = 1; ; r++) if (!s.has(`rId${r}`)) return `rId${r}`;
27
- }
28
- function Me(e, s) {
29
- var c, p;
30
- if (!e.origin || !e.layoutId) throw new Error(`页面 ${e.id} 缺少版式写回身份`);
31
- if (!s) {
32
- const f = ((c = e.creation) == null ? void 0 : c.layoutRelationshipId) ?? Te();
33
- return F(void 0, [{
34
- sourceId: f,
35
- targetId: f,
36
- type: Ne,
37
- target: Z(e.origin.part, e.layoutId)
38
- }]);
39
- }
40
- const r = E(s), n = k(r.root, { localName: "Relationship" }).find((f) => {
41
- var m;
42
- return ((m = w(f, "Type")) == null ? void 0 : m.endsWith("/slideLayout")) && w(f, "TargetMode") !== "External" && (e.creation === void 0 || w(f, "Id") === e.creation.layoutRelationshipId);
43
- });
44
- if (!n) {
45
- const f = ((p = e.creation) == null ? void 0 : p.layoutRelationshipId) ?? Te(s);
46
- return F(s, [{
47
- sourceId: f,
48
- targetId: f,
49
- type: Ne,
50
- target: Z(e.origin.part, e.layoutId)
51
- }]);
52
- }
53
- const i = Z(e.origin.part, e.layoutId);
54
- return w(n, "Target") === i && w(n, "TargetMode") === void 0 ? s : (X(n, "Target", i), ot(n, "TargetMode"), D(r));
55
- }
56
- function Et(e, s) {
57
- const r = E(e), o = String(s);
58
- let n = !1;
59
- const i = (c) => {
60
- var p, f;
61
- for (const m of k(c)) {
62
- if (m.namespaceUri === R && m.localName === "fld" && ((p = w(m, "type")) == null ? void 0 : p.toLowerCase()) === "slidenum") {
63
- const N = H(m, { localName: "t", namespaceUri: R });
64
- if (N && !(N.children.length === 1 && ((f = N.children[0]) == null ? void 0 : f.type) === "text" && N.children[0].value === o)) {
65
- for (const l of [...N.children]) B(N, l);
66
- A(N, it(o)), n = !0;
67
- }
68
- }
69
- i(m);
1
+ import { r as E, a as fe, b as Me, m as He, c as Le, d as Ne, e as Be, n as ae, l as Fe, o as ue, f as Ue, g as Ge, h as _e, v as We, i as Xe, j as qe, t as Ve, k as Je, p as Ke, q as ge, s as Pe, u as Qe, w as Ie, x as Ye, y as Ze, z as et, A as ze, B as tt, C as st, D as rt, E as at, F as nt, G as ot, H as it, I as ct, J as lt, K as pt, L as ft, M as ut, N as mt, O as dt, P as ht, Q as gt, R as Pt } from "./model-invariants-BM19JVxy.js";
2
+ import { p as D, r as ve, s as _, f as yt, a as W, i as ye, c as vt, b as Ae, x as ee, D as Z, d as me, e as wt, g as ne, P as A } from "./index-C2r7c6G6.js";
3
+ import { p as St } from "./patch-BwhfBbYE.js";
4
+ import { p as kt, m as Ot, c as bt, t as Et, a as xt, e as Tt, r as Mt, b as Nt, d as Ct, f as Ce, g as Rt, h as Re, i as $t, j as jt, k as Xt, l as It, n as zt, o as At, q as Dt, s as Ht, u as Lt, v as Bt, w as Ft } from "./slide-parts-D0o_DDhi.js";
5
+ import { PLACEHOLDER_DIRECT_BITS as K, findPlaceholderByIdentity as Ut } from "@web-ppt/core";
6
+ const v = (t, a) => {
7
+ var s;
8
+ return (s = Ae(t, { localName: a, namespaceUri: null })) == null ? void 0 : s.value;
9
+ }, L = (t, a) => ee(t, { localName: a, namespaceUri: t.namespaceUri }), $e = (t) => L(D(t).root, "Relationship");
10
+ function Gt(t, a, s, i, n) {
11
+ var R, w, te;
12
+ const c = (p) => {
13
+ var k;
14
+ return s[p] ?? ((k = t.package) == null ? void 0 : k.parts[p]);
15
+ }, u = a.flatMap((p) => {
16
+ var T, C;
17
+ const k = (T = p.creation) == null ? void 0 : T.duplicateSourcePart, X = (C = p.origin) == null ? void 0 : C.part, N = k && c(E(k));
18
+ return !N || !X ? [] : $e(N).filter((S) => {
19
+ var q;
20
+ return ((q = v(S, "Type")) == null ? void 0 : q.endsWith("/comments")) && v(S, "TargetMode") !== "External";
21
+ }).map((S) => ({ slide: X, id: v(S, "Id"), source: fe(k, v(S, "Target")) }));
22
+ }), f = [...i].filter((p) => /^ppt\/comments\/(?:_rels\/)?web-ppt-(?!edit-)/.test(p));
23
+ if (!u.length && !f.length) return;
24
+ const d = "ppt/presentation.xml", g = $e(c(E(d))).find((p) => {
25
+ var k;
26
+ return (k = v(p, "Type")) == null ? void 0 : k.endsWith("/commentAuthors");
27
+ }), M = g && fe(d, v(g, "Target")), B = M && c(M);
28
+ M && B && (s[M] ?? (s[M] = B.slice()));
29
+ const U = B ? D(B) : void 0, F = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
30
+ for (const p of U ? L(U.root, "cmAuthor") : [])
31
+ F.set(v(p, "id"), Number(v(p, "lastIdx")) || 0), o.set(v(p, "id"), /* @__PURE__ */ new Set());
32
+ const P = "[Content_Types].xml", x = D(n[P] ?? c(P));
33
+ for (const p of L(x.root, "Override")) {
34
+ const k = (R = v(p, "PartName")) == null ? void 0 : R.slice(1);
35
+ if (!k || i.has(k) || !((w = v(p, "ContentType")) != null && w.endsWith(".comments+xml"))) continue;
36
+ const X = c(k);
37
+ if (!X) throw new Error(`批注来源部件缺失:${k}`);
38
+ for (const N of L(D(X).root, "cm")) {
39
+ const T = v(N, "authorId"), C = Number(v(N, "idx"));
40
+ if (o.has(T) || o.set(T, /* @__PURE__ */ new Set()), !Number.isInteger(C) || C < 0 || C > 4294967295) throw new Error("批注作者或索引无效");
41
+ o.get(T).add(C), F.set(T, Math.max(F.get(T) ?? 0, C));
70
42
  }
71
- };
72
- return i(r.root), n ? D(r) : e;
73
- }
74
- function It(e) {
75
- var r, o, n;
76
- const s = /* @__PURE__ */ new Map();
77
- for (const i of k(E(e).root, { localName: "Relationship" })) {
78
- const c = (r = C(i, { localName: "Id", namespaceUri: null })) == null ? void 0 : r.value, p = (o = C(i, { localName: "Target", namespaceUri: null })) == null ? void 0 : o.value, f = (n = C(i, { localName: "TargetMode", namespaceUri: null })) == null ? void 0 : n.value;
79
- c && p && f !== "External" && s.set(c, oe("ppt/presentation.xml", p));
80
43
  }
81
- return s;
82
- }
83
- function w(e, s) {
84
- var r;
85
- return (r = C(e, { localName: s, namespaceUri: null })) == null ? void 0 : r.value;
86
- }
87
- function Re(e, s, r, o) {
88
- const n = k(e).find((i) => i.localName !== r || i.namespaceUri !== o) ?? null;
89
- A(e, s, n);
90
- }
91
- function bt(e, s, r, o) {
92
- const n = lt(e, {
93
- localName: "sectionLst",
94
- namespaceUri: j
95
- });
96
- if (n)
97
- for (const i of k(n, {
98
- localName: "section",
99
- namespaceUri: j
100
- })) {
101
- const c = H(i, {
102
- localName: "sldIdLst",
103
- namespaceUri: j
104
- });
105
- if (!c) continue;
106
- const p = k(c, {
107
- localName: "sldId",
108
- namespaceUri: j
109
- }), f = new Set(p.flatMap((d) => {
110
- const h = w(d, "id");
111
- return h ? [Number(h)] : [];
112
- }));
113
- for (const d of p) {
114
- const h = Number(w(d, "id"));
115
- o.has(h) && B(c, d);
116
- }
117
- const m = p.filter((d) => !o.has(Number(w(d, "id"))));
118
- let N = !0;
119
- for (; N; ) {
120
- N = !1;
121
- for (const d of s) {
122
- const h = d.creation;
123
- !h || f.has(h.presentationSlideId) || h.sectionAfterSlideId === void 0 || !f.has(h.sectionAfterSlideId) || (f.add(h.presentationSlideId), N = !0);
124
- }
44
+ for (const p of [...L(x.root, "Override")])
45
+ f.includes(((te = v(p, "PartName")) == null ? void 0 : te.slice(1)) ?? "") && ve(x.root, p);
46
+ const j = /* @__PURE__ */ new Set();
47
+ for (const p of u) {
48
+ const k = c(p.source);
49
+ if (!k) throw new Error(`复制批注缺少来源部件:${p.source}`);
50
+ const X = D(k);
51
+ let N = 0;
52
+ const T = /* @__PURE__ */ new Map();
53
+ for (const $ of L(X.root, "cm").sort((y, O) => Number(v(y, "idx")) - Number(v(O, "idx")))) {
54
+ const y = v($, "authorId");
55
+ if (!F.has(y)) throw new Error(`复制批注缺少作者:${y}`);
56
+ let O = N + 1;
57
+ for (; o.get(y).has(O); ) O++;
58
+ if (O > 4294967295) throw new Error("批注索引超出 OOXML 可表示范围");
59
+ o.get(y).add(O), F.set(y, Math.max(F.get(y), O)), N = O, T.set(`${y}:${v($, "idx")}`, O), _($, "idx", String(O));
60
+ }
61
+ for (const $ of L(X.root, "cm")) {
62
+ const y = yt($, { localName: "parentCm", namespaceUri: "http://schemas.microsoft.com/office/powerpoint/2012/main" }), O = y && T.get(`${v(y, "authorId")}:${v(y, "idx")}`);
63
+ y && O !== void 0 && _(y, "idx", String(O));
64
+ }
65
+ const C = `ppt/comments/web-ppt-${p.slide.slice(p.slide.lastIndexOf("/") + 1).replace(/\.xml$/, "")}`;
66
+ let S = `${C}.xml`, q = 1;
67
+ for (; c(S) && !i.has(S); ) S = `${C}-${q++}.xml`;
68
+ n[S] = W(X), j.add(S), i.add(S);
69
+ const se = E(p.slide), oe = D(n[se]), V = L(oe.root, "Relationship").find(($) => v($, "Id") === p.id);
70
+ if (!V) throw new Error("复制批注目标关系缺失");
71
+ _(V, "Target", Me(p.slide, S)), n[se] = W(oe);
72
+ const m = c(E(p.source));
73
+ if (m) {
74
+ const $ = E(S), y = D(m);
75
+ for (const O of L(y.root, "Relationship")) {
76
+ const J = v(O, "Target");
77
+ if (!J || v(O, "TargetMode") === "External") continue;
78
+ const ie = J.includes("#") ? J.slice(J.indexOf("#")) : "";
79
+ _(O, "Target", Me(S, fe(p.source, J)) + ie);
125
80
  }
126
- const l = new Map(m.map((d) => [Number(w(d, "id")), d])), P = r.flatMap((d) => {
127
- if (!f.has(d)) return [];
128
- const h = l.get(d);
129
- if (h) return [h];
130
- const S = G(c, j, "sldId");
131
- return X(S, "id", String(d)), l.set(d, S), [S];
132
- });
133
- for (const d of P)
134
- k(c).includes(d) || Re(c, d, "sldId", j);
135
- be(c, P);
81
+ n[$] = W(y), j.add($), i.add($);
136
82
  }
137
- }
138
- function Mt(e, s, r) {
139
- var P;
140
- const o = E(e), n = H(o.root, { localName: "sldIdLst", namespaceUri: O });
141
- if (!n) throw new Error("presentation.xml 缺少 p:sldIdLst");
142
- const i = It(s), c = /* @__PURE__ */ new Map(), p = Oe(r), f = /* @__PURE__ */ new Set();
143
- for (const d of k(n, { localName: "sldId", namespaceUri: O })) {
144
- const h = (P = C(d, {
145
- localName: "id",
146
- namespaceUri: "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
147
- })) == null ? void 0 : P.value, S = h ? i.get(h) : void 0;
148
- if (S && p.has(S)) {
149
- const g = Number(w(d, "id"));
150
- Number.isFinite(g) && f.add(g), B(n, d);
151
- } else S && c.set(S, d);
152
- }
153
- const m = te(r), N = new Map(m.map((d) => [d.id, d])), l = r.slideOrder.map((d) => {
154
- const h = r.slides[d], S = h.origin ? c.get(h.origin.part) : void 0;
155
- if (S) return S;
156
- const g = N.get(d);
157
- if (!(g != null && g.creation)) throw new Error(`页面 ${d} 无法映射到 presentation.xml`);
158
- const I = G(n, O, "sldId");
159
- return X(I, "id", String(g.creation.presentationSlideId)), X(I, "r:id", g.creation.presentationRelationshipId), I;
160
- });
161
- for (const d of l)
162
- k(n).includes(d) || Re(n, d, "sldId", O);
163
- return be(n, l), bt(
164
- o.root,
165
- m,
166
- l.map((d) => Number(w(d, "id"))),
167
- f
168
- ), D(o);
169
- }
170
- function Rt(e, s) {
171
- const r = E(e), o = Oe(s);
172
- for (const n of k(r.root, { localName: "Relationship" })) {
173
- const i = w(n, "Type"), c = w(n, "Target"), p = w(n, "TargetMode");
174
- i !== we || !c || p === "External" || o.has(oe("ppt/presentation.xml", c)) && B(r.root, n);
175
- }
176
- return F(D(r), te(s).map((n) => ({
177
- sourceId: n.creation.presentationRelationshipId,
178
- targetId: n.creation.presentationRelationshipId,
179
- type: we,
180
- target: Z("ppt/presentation.xml", n.origin.part)
181
- })));
182
- }
183
- function Ct(e, s, r = /* @__PURE__ */ new Set()) {
184
- var i, c;
185
- const o = E(e);
186
- for (const p of k(o.root, { localName: "Override" })) {
187
- const f = (i = C(p, { localName: "PartName", namespaceUri: null })) == null ? void 0 : i.value;
188
- f && r.has(f.replace(/^\//, "")) && B(o.root, p);
83
+ ye(x.root, vt("Override", { attributes: [
84
+ ["PartName", `/${S}`],
85
+ ["ContentType", "application/vnd.openxmlformats-officedocument.presentationml.comments+xml"]
86
+ ] }));
189
87
  }
190
- const n = new Set(k(o.root, { localName: "Override" }).flatMap((p) => {
191
- var m;
192
- const f = (m = C(p, { localName: "PartName", namespaceUri: null })) == null ? void 0 : m.value;
193
- return f ? [f] : [];
194
- }));
195
- for (const p of te(s)) {
196
- const f = `/${p.origin.part}`;
197
- n.has(f) || (A(o.root, Se("Override", {
198
- attributes: [["PartName", f], ["ContentType", Nt]]
199
- })), n.add(f));
200
- }
201
- for (const p of Object.values(s.slides)) {
202
- const f = (c = p.notes) == null ? void 0 : c.targetPart;
203
- !f || n.has(`/${f}`) || (A(o.root, Se("Override", {
204
- attributes: [["PartName", `/${f}`], ["ContentType", Tt]]
205
- })), n.add(`/${f}`));
206
- }
207
- return D(o);
88
+ for (const p of f) j.has(p) || (n[p] = null);
89
+ for (const p of U ? L(U.root, "cmAuthor") : []) _(p, "lastIdx", String(F.get(v(p, "id")) ?? 0));
90
+ U && M && (n[M] = W(U)), n[P] = W(x);
208
91
  }
209
- function Ce(e, s, r) {
92
+ function De(t, a, s) {
210
93
  var n;
211
- const o = s[r] ?? ((n = e.package) == null ? void 0 : n.parts[r]);
212
- if (!o) throw new Error(`页面副本缺少来源 OPC part:${r}`);
213
- return o;
94
+ const i = a[s] ?? ((n = t.package) == null ? void 0 : n.parts[s]);
95
+ if (!i) throw new Error(`页面副本缺少来源 OPC part:${s}`);
96
+ return i;
214
97
  }
215
- function Lt(e, s, r) {
98
+ function _t(t, a, s) {
216
99
  var n;
217
- const o = (n = s.creation) == null ? void 0 : n.duplicateSourcePart;
218
- return o ? Ce(e, r, o) : void 0;
100
+ const i = (n = a.creation) == null ? void 0 : n.duplicateSourcePart;
101
+ return i ? De(t, s, i) : void 0;
219
102
  }
220
- function Q(e, s, r) {
103
+ function pe(t, a, s) {
221
104
  var n;
222
- const o = (n = s.creation) == null ? void 0 : n.duplicateSourcePart;
223
- return o ? Ce(e, r, x(o)) : void 0;
105
+ const i = (n = a.creation) == null ? void 0 : n.duplicateSourcePart;
106
+ return i ? De(t, s, E(i)) : void 0;
224
107
  }
225
- function Ut(e) {
226
- var r, o;
227
- const s = (r = e.origin) == null ? void 0 : r.part;
228
- return s ? (((o = e.creation) == null ? void 0 : o.duplicateRemovedSpids) ?? []).map((n) => ({
229
- id: `${e.id}-baseline-${n}`,
230
- parent: e.id,
231
- meta: { editable: "full", origin: { part: s, spid: n } }
108
+ function Wt(t) {
109
+ var s, i;
110
+ const a = (s = t.origin) == null ? void 0 : s.part;
111
+ return a ? (((i = t.creation) == null ? void 0 : i.duplicateRemovedSpids) ?? []).map((n) => ({
112
+ id: `${t.id}-baseline-${n}`,
113
+ parent: t.id,
114
+ meta: { editable: "full", origin: { part: a, spid: n } }
232
115
  })) : [];
233
116
  }
234
- function Xt(e, s) {
235
- const { host: r } = De(e, s), o = H(r, { localName: "spPr", namespaceUri: O });
236
- if (!o) throw new Error(`元素 ${s.id} 缺少 p:spPr`);
237
- return o;
117
+ function qt(t, a) {
118
+ const { host: s } = Fe(t, a), i = ne(s, { localName: "spPr", namespaceUri: A });
119
+ if (!i) throw new Error(`元素 ${a.id} 缺少 p:spPr`);
120
+ return i;
238
121
  }
239
- function $t(e, s, r, o) {
240
- if (!r && !o) return;
241
- const n = Xt(e, s);
242
- for (const p of [...k(n)])
243
- p.namespaceUri === R && ["prstGeom", "custGeom"].includes(p.localName) && B(n, p);
244
- if (o) {
245
- ve(n, ct(o));
122
+ function Vt(t, a, s, i) {
123
+ if (!s && !i) return;
124
+ const n = qt(t, a);
125
+ for (const f of [...ee(n)])
126
+ f.namespaceUri === Z && ["prstGeom", "custGeom"].includes(f.localName) && ve(n, f);
127
+ if (i) {
128
+ me(n, wt(i));
246
129
  return;
247
130
  }
248
- if (!r) return;
249
- const i = G(n, R, "prstGeom");
250
- X(i, "prst", r.preset), ve(n, i);
251
- const c = G(i, R, "avLst");
252
- A(i, c);
253
- for (const p of Object.keys(r.adj)) {
254
- const f = r.adj[p], m = G(c, R, "gd");
255
- X(m, "name", p), X(m, "fmla", `val ${Math.round(f)}`), A(c, m);
131
+ if (!s) return;
132
+ const c = ae(n, Z, "prstGeom");
133
+ _(c, "prst", s.preset), me(n, c);
134
+ const u = ae(c, Z, "avLst");
135
+ ye(c, u);
136
+ for (const f of Object.keys(s.adj)) {
137
+ const d = s.adj[f], g = ae(u, Z, "gd");
138
+ _(g, "name", f), _(g, "fmla", `val ${Math.round(d)}`), ye(u, g);
256
139
  }
257
140
  }
258
- function jt(e, s, r, o, n) {
259
- var p;
260
- const i = s.meta.placeholderDirect ?? 0, c = !!(i & L.style);
261
- i & L.transform || $e(e, s, r), (s.src.kind === "shape" || s.src.kind === "image") && !(i & L.geometry) && $t(e, s, o, n), s.src.kind === "shape" && r.kind === "shape" ? (!c && !(i & L.fill) && je(
262
- e,
263
- s,
264
- ((p = r.fill) == null ? void 0 : p.type) === "image" ? { type: "none" } : r.fill
265
- ), !c && !(i & L.stroke) && r.stroke && ye(e, s, r.stroke)) : s.src.kind === "image" && r.kind === "image" && !c && !(i & L.stroke) && r.stroke && ye(e, s, r.stroke), (s.src.kind === "shape" || s.src.kind === "image" || s.src.kind === "group") && !c && !(i & L.effects) && r.effects && Ae(e, s, r.effects);
141
+ function Jt(t, a, s, i, n) {
142
+ var f;
143
+ const c = a.meta.placeholderDirect ?? 0, u = !!(c & K.style);
144
+ c & K.transform || He(t, a, s), (a.src.kind === "shape" || a.src.kind === "image") && !(c & K.geometry) && Vt(t, a, i, n), a.src.kind === "shape" && s.kind === "shape" ? (!u && !(c & K.fill) && Le(
145
+ t,
146
+ a,
147
+ ((f = s.fill) == null ? void 0 : f.type) === "image" ? { type: "none" } : s.fill
148
+ ), !u && !(c & K.stroke) && s.stroke && Ne(t, a, s.stroke)) : a.src.kind === "image" && s.kind === "image" && !u && !(c & K.stroke) && s.stroke && Ne(t, a, s.stroke), (a.src.kind === "shape" || a.src.kind === "image" || a.src.kind === "group") && !u && !(c & K.effects) && s.effects && Be(t, a, s.effects);
266
149
  }
267
- function U(e, s, r) {
268
- return e && H(e, {
269
- localName: s,
270
- ...r ? { namespaceUri: r } : {}
150
+ function Q(t, a, s) {
151
+ return t && ne(t, {
152
+ localName: a,
153
+ ...s ? { namespaceUri: s } : {}
271
154
  });
272
155
  }
273
- function ee(e, s) {
274
- var r;
275
- return e ? ((r = C(e, { localName: s })) == null ? void 0 : r.value) ?? null : null;
156
+ function de(t, a) {
157
+ var s;
158
+ return t ? ((s = Ae(t, { localName: a })) == null ? void 0 : s.value) ?? null : null;
276
159
  }
277
- function At(e) {
278
- const s = k(e).find((n) => [
160
+ function Kt(t) {
161
+ const a = ee(t).find((n) => [
279
162
  "nvSpPr",
280
163
  "nvPicPr",
281
164
  "nvCxnSpPr",
282
165
  "nvGraphicFramePr"
283
- ].includes(n.localName)) ?? null, r = U(U(s, "nvPr", O), "ph", O);
284
- if (!r) return null;
285
- const o = ee(r, "idx");
286
- return { type: ee(r, "type") ?? "obj", ...o === null ? {} : { idx: o } };
166
+ ].includes(n.localName)) ?? null, s = Q(Q(a, "nvPr", A), "ph", A);
167
+ if (!s) return null;
168
+ const i = de(s, "idx");
169
+ return { type: de(s, "type") ?? "obj", ...i === null ? {} : { idx: i } };
287
170
  }
288
- function xe(e, s) {
289
- if (!e) return;
290
- const r = U(
291
- U(e.root, "cSld", O),
171
+ function je(t, a) {
172
+ if (!t) return;
173
+ const s = Q(
174
+ Q(t.root, "cSld", A),
292
175
  "spTree",
293
- O
176
+ A
294
177
  );
295
- if (!r) return;
296
- const o = wt(
297
- k(r).filter((i) => [
178
+ if (!s) return;
179
+ const i = Ut(
180
+ ee(s).filter((c) => [
298
181
  "sp",
299
182
  "pic",
300
183
  "cxnSp",
301
184
  "graphicFrame"
302
- ].includes(i.localName)),
303
- At,
304
- s
305
- ), n = o ? U(o, "spPr", O) : null;
306
- return U(n, "custGeom", R) ?? U(n, "prstGeom", R) ?? void 0;
185
+ ].includes(c.localName)),
186
+ Kt,
187
+ a
188
+ ), n = i ? Q(i, "spPr", A) : null;
189
+ return Q(n, "custGeom", Z) ?? Q(n, "prstGeom", Z) ?? void 0;
307
190
  }
308
- function Dt(e) {
309
- const s = /* @__PURE__ */ new Map(), r = (n) => {
310
- var i;
311
- if (!s.has(n)) {
312
- const c = (i = e.package) == null ? void 0 : i.parts[n];
313
- s.set(n, c ? E(c) : null);
191
+ function Qt(t) {
192
+ const a = /* @__PURE__ */ new Map(), s = (n) => {
193
+ var c;
194
+ if (!a.has(n)) {
195
+ const u = (c = t.package) == null ? void 0 : c.parts[n];
196
+ a.set(n, u ? D(u) : null);
314
197
  }
315
- return s.get(n) ?? null;
316
- }, o = (n) => {
317
- const i = r(x(n)), c = i && k(i.root).find((f) => {
318
- var m;
319
- return f.localName === "Relationship" && ((m = ee(f, "Type")) == null ? void 0 : m.endsWith("/slideMaster"));
320
- }), p = c ? ee(c, "Target") : null;
321
- return p ? oe(n, p) : null;
198
+ return a.get(n) ?? null;
199
+ }, i = (n) => {
200
+ const c = s(E(n)), u = c && ee(c.root).find((d) => {
201
+ var g;
202
+ return d.localName === "Relationship" && ((g = de(d, "Type")) == null ? void 0 : g.endsWith("/slideMaster"));
203
+ }), f = u ? de(u, "Target") : null;
204
+ return f ? fe(n, f) : null;
322
205
  };
323
- return (n, i) => {
324
- const c = n.sourceLayoutId, p = i.meta.ph;
325
- if (!(!c || !p))
326
- return xe(r(c), p) ?? (o(c) ? xe(r(o(c)), p) : void 0);
206
+ return (n, c) => {
207
+ const u = n.sourceLayoutId, f = c.meta.ph;
208
+ if (!(!u || !f))
209
+ return je(s(u), f) ?? (i(u) ? je(s(i(u)), f) : void 0);
327
210
  };
328
211
  }
329
- function Bt(e) {
330
- const s = /* @__PURE__ */ new Map();
331
- return e.slideOrder.forEach((r, o) => {
332
- var c;
333
- const n = e.slides[r], i = (c = n.origin) == null ? void 0 : c.part;
334
- i && n.dynamicSlideNumbers.some((p) => {
335
- var m;
336
- const f = e.elements[p];
337
- return ((m = f == null ? void 0 : f.meta.origin) == null ? void 0 : m.part) === i && nt(Ie(e, p));
338
- }) && s.set(i, o + 1);
339
- }), s;
212
+ function Yt(t) {
213
+ return ue(t.ovr, "background") || ue(t.ovr, "transition");
340
214
  }
341
- function _t(e) {
342
- const s = /* @__PURE__ */ new Map();
343
- for (const r of Object.values(e.elements)) {
344
- if (!qe(r) && !Je(r) && !Ke(r) && !Ve(r) && !Qe(r) && !Ze(r) && !et(r) && !tt(r) && !rt(r) && !st(r) && !Ee(r) && r.meta.sourceParent === void 0 && !r.meta.insertion) continue;
345
- const o = r.meta.origin;
346
- if (!o) throw new Error(`元素 ${r.id} 缺少 OOXML 回写锚点`);
347
- const n = s.get(o.part) ?? [];
348
- n.push(r), s.set(o.part, n);
215
+ function Zt(t, a) {
216
+ if (ue(a.ovr, "transition") && kt(t, a.ovr.transition, !0), !ue(a.ovr, "background")) return;
217
+ const s = a.ovr.background;
218
+ Ue(s, `版式 ${a.id} 的背景覆盖`);
219
+ const i = ne(t.root, {
220
+ localName: "cSld",
221
+ namespaceUri: A
222
+ });
223
+ if (!i) throw new Error(`版式 ${a.id} 缺少 p:cSld`);
224
+ let n = ne(i, {
225
+ localName: "bg",
226
+ namespaceUri: A
227
+ });
228
+ n || (n = ae(i, A, "bg"), me(i, n));
229
+ for (const u of [...ee(n)])
230
+ u.namespaceUri === A && u.localName === "bgRef" && ve(n, u);
231
+ let c = ne(n, {
232
+ localName: "bgPr",
233
+ namespaceUri: A
234
+ });
235
+ c || (c = ae(n, A, "bgPr"), me(n, c)), Ge(c), _e(c, s);
236
+ }
237
+ function es(t) {
238
+ const a = /* @__PURE__ */ new Map();
239
+ return t.slideOrder.forEach((s, i) => {
240
+ var u;
241
+ const n = t.slides[s], c = (u = n.origin) == null ? void 0 : u.part;
242
+ c && n.dynamicSlideNumbers.some((f) => {
243
+ var g;
244
+ const d = t.elements[f];
245
+ return ((g = d == null ? void 0 : d.meta.origin) == null ? void 0 : g.part) === c && gt(Ie(t, f));
246
+ }) && a.set(c, i + 1);
247
+ }), a;
248
+ }
249
+ function ts(t) {
250
+ const a = /* @__PURE__ */ new Map();
251
+ for (const s of Object.values(t.elements)) {
252
+ if (!st(s) && !rt(s) && !at(s) && !nt(s) && !ot(s) && !it(s) && !ct(s) && !lt(s) && !pt(s) && !ft(s) && !ut(s) && !mt(s) && !Xe(s) && !dt(s) && s.meta.sourceParent === void 0 && !s.meta.insertion) continue;
253
+ const i = s.meta.origin;
254
+ if (!i) throw new Error(`元素 ${s.id} 缺少 OOXML 回写锚点`);
255
+ const n = a.get(i.part) ?? [];
256
+ n.push(s), a.set(i.part, n);
257
+ }
258
+ return a;
259
+ }
260
+ function ss(t) {
261
+ const a = /* @__PURE__ */ new Map();
262
+ for (const s of Object.values(t.removedElements)) {
263
+ const i = s.meta.origin;
264
+ if (!i) continue;
265
+ const n = a.get(i.part) ?? [];
266
+ n.push(s), a.set(i.part, n);
349
267
  }
350
- return s;
268
+ return a;
351
269
  }
352
- function zt(e) {
353
- const s = /* @__PURE__ */ new Map();
354
- for (const r of Object.values(e.removedElements)) {
355
- const o = r.meta.origin;
356
- if (!o) continue;
357
- const n = s.get(o.part) ?? [];
358
- n.push(r), s.set(o.part, n);
270
+ function rs(t) {
271
+ var s;
272
+ const a = /* @__PURE__ */ new Map();
273
+ for (const i of Object.values(t.slides)) {
274
+ if (!Ft(i)) continue;
275
+ const n = (s = i.origin) == null ? void 0 : s.part;
276
+ if (!n) throw new Error(`幻灯片 ${i.id} 缺少 OOXML 回写锚点`);
277
+ a.set(n, i);
359
278
  }
360
- return s;
279
+ return a;
280
+ }
281
+ function as(t) {
282
+ return new Map(t.layoutOrder.flatMap((a) => {
283
+ const s = t.layouts[a];
284
+ return Yt(s) ? [[s.origin.part, s]] : [];
285
+ }));
286
+ }
287
+ function ns(t) {
288
+ return new Map(t.masterOrder.flatMap((a) => {
289
+ const s = t.masters[a];
290
+ return ht(s) ? [[s.id, s]] : [];
291
+ }));
361
292
  }
362
- function Gt(e) {
363
- var r;
364
- const s = /* @__PURE__ */ new Map();
365
- for (const o of Object.values(e.slides)) {
366
- if (!kt(o)) continue;
367
- const n = (r = o.origin) == null ? void 0 : r.part;
368
- if (!n) throw new Error(`幻灯片 ${o.id} 缺少 OOXML 回写锚点`);
369
- s.set(n, o);
293
+ async function os(t) {
294
+ var n;
295
+ const a = ze();
296
+ Pt(t);
297
+ const s = /* @__PURE__ */ Object.create(null), i = /* @__PURE__ */ Object.create(null);
298
+ for (const c of a.values()) {
299
+ const u = await ((n = c.beforeSave) == null ? void 0 : n.call(c, t));
300
+ if (u) {
301
+ for (const [f, d] of Object.entries(u.changes)) {
302
+ if (Object.prototype.hasOwnProperty.call(s, f))
303
+ throw new Error(`多个编辑扩展同时修改 OPC part:${f}`);
304
+ s[f] = d;
305
+ }
306
+ for (const [f, d] of Object.entries(u.baselines)) {
307
+ const g = i[f];
308
+ if (g && (g.length !== d.length || !g.every((M, B) => M === d[B])))
309
+ throw new Error(`多个编辑扩展的保存基线冲突:${f}`);
310
+ i[f] = d;
311
+ }
312
+ }
370
313
  }
371
- return s;
314
+ return { changes: s, baselines: i };
372
315
  }
373
- function Kt(e) {
374
- var de, ue, me, he;
375
- if (Be(e), e.meta.readonly) throw new Error("只读编辑文档不能保存");
376
- if (e.meta.source !== "pptx" || !e.package)
316
+ async function is(t) {
317
+ return cs(t, await os(t));
318
+ }
319
+ async function ds(t) {
320
+ return t.meta.source === "pptx" && t.package && !t.package.disposed ? is(t) : (await import("./generate.js")).generateEditDoc(t);
321
+ }
322
+ function cs(t, a = { changes: {}, baselines: {} }) {
323
+ var Se, ke, Oe, be, Ee;
324
+ if (We(t), t.meta.readonly) throw new Error("只读编辑文档不能保存");
325
+ if (t.meta.source !== "pptx" || !t.package)
377
326
  throw new Error("当前版本尚未实现生成式 PPTX 保存");
378
- const s = _t(e), r = Gt(e), o = new Set([...s].flatMap(([t, a]) => a.some(Ee) ? [t] : [])), n = zt(e), i = pt(e), c = te(e), p = new Map(Object.values(e.slides).flatMap((t) => t.layoutId !== t.sourceLayoutId && t.origin ? [[t.origin.part, t]] : [])), f = new Map(Object.values(e.slides).flatMap((t) => {
379
- const a = _e(e, t.id);
380
- return t.origin && a.length ? [[t.origin.part, a]] : [];
381
- })), m = new Map(Object.values(e.slides).flatMap((t) => t.origin ? [[t.origin.part, t]] : [])), N = Dt(e), l = Object.assign(
327
+ const s = ts(t), i = rs(t), n = as(t), c = ns(t), u = new Set([...s].flatMap(([e, r]) => r.some(Xe) ? [e] : [])), f = ss(t), d = Ot(t), g = bt(t), M = new Map(Object.values(t.slides).flatMap((e) => e.layoutId !== e.sourceLayoutId && e.origin ? [[e.origin.part, e]] : [])), B = new Map(Object.values(t.slides).flatMap((e) => {
328
+ const r = qe(t, e.id);
329
+ return e.origin && r.length ? [[e.origin.part, r]] : [];
330
+ })), U = new Map(Object.values(t.slides).flatMap((e) => e.origin ? [[e.origin.part, e]] : [])), F = Qt(t), o = Object.assign(
382
331
  /* @__PURE__ */ Object.create(null),
383
- e.saveState.baselines
384
- ), P = new Set(e.saveState.createdParts), d = "[Content_Types].xml", h = "ppt/presentation.xml", S = "ppt/_rels/presentation.xml.rels", g = ft(e);
385
- if (g != null && g.definitions.length && !l[g.part]) {
386
- const t = e.package.parts[g.part];
387
- if (t) l[g.part] = t.slice();
332
+ t.saveState.baselines,
333
+ a.baselines
334
+ ), P = new Set(t.saveState.createdParts), x = "[Content_Types].xml", j = "ppt/presentation.xml", R = "ppt/_rels/presentation.xml.rels", w = Et(t), te = t.themeOrder.filter((e) => Ve(t.themes[e]) || !!o[e]);
335
+ for (const e of te) {
336
+ if (o[e]) continue;
337
+ const r = t.package.parts[e];
338
+ if (!r) throw new Error(`找不到主题 OPC part:${e}`);
339
+ o[e] = r.slice();
340
+ }
341
+ if (w != null && w.definitions.length && !o[w.part]) {
342
+ const e = t.package.parts[w.part];
343
+ if (e) o[w.part] = e.slice();
388
344
  else {
389
- P.add(g.part);
390
- for (const a of [d, S]) {
391
- if (l[a]) continue;
392
- const u = e.package.parts[a];
393
- if (!u) throw new Error(`PPTX 缺少 ${a}`);
394
- l[a] = u.slice();
345
+ P.add(w.part);
346
+ for (const r of [x, R]) {
347
+ if (o[r]) continue;
348
+ const l = t.package.parts[r];
349
+ if (!l) throw new Error(`PPTX 缺少 ${r}`);
350
+ o[r] = l.slice();
395
351
  }
396
352
  }
397
353
  }
398
- const I = dt(e, l, P), re = c.length > 0 || [...P].some((t) => /^ppt\/slides\/slide\d+\.xml$/.test(t)), ie = e.slideOrder.flatMap((t) => {
399
- var a;
400
- return ((a = e.slides[t].origin) == null ? void 0 : a.part) ?? [];
401
- }), _ = ze(e, P), W = _.slideParts.size > 0, le = /* @__PURE__ */ new Set();
402
- if (W)
403
- for (const t of e.slideOrder) {
404
- const a = e.slides[t], u = (de = a.origin) == null ? void 0 : de.part;
405
- if (!u) continue;
406
- const y = x(u), b = l[y] ?? (a.creation ? Q(e, a, l) : void 0) ?? e.package.parts[y];
407
- Ge(e, u, b) && le.add(u);
354
+ const p = xt(t, o, P), k = g.length > 0 || [...P].some((e) => /^ppt\/slides\/slide\d+\.xml$/.test(e)), X = t.slideOrder.flatMap((e) => {
355
+ var r;
356
+ return ((r = t.slides[e].origin) == null ? void 0 : r.part) ?? [];
357
+ }), N = Je(t, P), T = N.slideParts.size > 0, C = /* @__PURE__ */ new Set();
358
+ if (T)
359
+ for (const e of t.slideOrder) {
360
+ const r = t.slides[e], l = (Se = r.origin) == null ? void 0 : Se.part;
361
+ if (!l) continue;
362
+ const h = E(l), I = o[h] ?? (r.creation ? pe(t, r, o) : void 0) ?? t.package.parts[h];
363
+ Ke(t, l, I) && C.add(l);
408
364
  }
409
- const se = /* @__PURE__ */ new Set([...o, ...le]), ce = ie.length !== e.saveState.sourceSlideParts.length || ie.some((t, a) => t !== e.saveState.sourceSlideParts[a]), Le = re || W || ce || !!l[h];
410
- if (ce && !l[h]) {
411
- const t = e.package.parts[h];
412
- if (!t) throw new Error("PPTX 缺少 ppt/presentation.xml");
413
- l[h] = t.slice();
365
+ const S = /* @__PURE__ */ new Set([...u, ...C]), q = X.length !== t.saveState.sourceSlideParts.length || X.some((e, r) => e !== t.saveState.sourceSlideParts[r]), se = t.meta.width !== t.meta.sourceWidth || t.meta.height !== t.meta.sourceHeight || t.sections.edited, oe = k || T || q || se || !!o[j];
366
+ if ((q || se) && !o[j]) {
367
+ const e = t.package.parts[j];
368
+ if (!e) throw new Error("PPTX 缺少 ppt/presentation.xml");
369
+ o[j] = e.slice();
414
370
  }
415
- const Y = Le ? Bt(e) : /* @__PURE__ */ new Map();
416
- for (const t of /* @__PURE__ */ new Set([
371
+ const V = oe ? es(t) : /* @__PURE__ */ new Map();
372
+ for (const e of /* @__PURE__ */ new Set([
417
373
  ...s.keys(),
418
- ...r.keys(),
374
+ ...i.keys(),
419
375
  ...n.keys(),
420
- ...Y.keys(),
421
- ...se,
422
- ...f.keys()
376
+ ...c.keys(),
377
+ ...f.keys(),
378
+ ...V.keys(),
379
+ ...S,
380
+ ...B.keys()
423
381
  ])) {
424
- if (l[t] || c.some((u) => {
425
- var y;
426
- return ((y = u.origin) == null ? void 0 : y.part) === t;
382
+ if (o[e] || g.some((l) => {
383
+ var h;
384
+ return ((h = l.origin) == null ? void 0 : h.part) === e;
427
385
  })) continue;
428
- const a = e.package.parts[t];
429
- if (!a) throw new Error(`找不到待写回的 OPC part:${t}`);
430
- l[t] = a.slice();
386
+ const r = t.package.parts[e];
387
+ if (!r) throw new Error(`找不到待写回的 OPC part:${e}`);
388
+ o[e] = r.slice();
431
389
  }
432
- for (const t of i.relationships.keys()) {
433
- const a = x(t);
434
- if (l[a] || P.has(a)) continue;
435
- const u = e.package.parts[a];
436
- u ? l[a] = u.slice() : P.add(a);
390
+ for (const e of d.relationships.keys()) {
391
+ const r = E(e);
392
+ if (o[r] || P.has(r)) continue;
393
+ const l = t.package.parts[r];
394
+ l ? o[r] = l.slice() : P.add(r);
437
395
  }
438
- for (const t of se) {
439
- const a = x(t);
440
- if (l[a] || P.has(a)) continue;
441
- const u = e.package.parts[a];
442
- u ? l[a] = u.slice() : P.add(a);
396
+ for (const e of S) {
397
+ const r = E(e);
398
+ if (o[r] || P.has(r)) continue;
399
+ const l = t.package.parts[r];
400
+ l ? o[r] = l.slice() : P.add(r);
443
401
  }
444
- for (const [t, a] of p) {
445
- if (a.creation) continue;
446
- const u = x(t);
447
- if (l[u] || P.has(u)) continue;
448
- const y = e.package.parts[u];
449
- y ? l[u] = y.slice() : P.add(u);
402
+ for (const [e, r] of M) {
403
+ if (r.creation) continue;
404
+ const l = E(e);
405
+ if (o[l] || P.has(l)) continue;
406
+ const h = t.package.parts[l];
407
+ h ? o[l] = h.slice() : P.add(l);
450
408
  }
451
- for (const t of _.packageParts) {
452
- if (P.has(t) || l[t]) continue;
453
- const a = e.package.parts[t];
454
- a && (l[t] = a.slice());
409
+ for (const e of N.packageParts) {
410
+ if (P.has(e) || o[e]) continue;
411
+ const r = t.package.parts[e];
412
+ r && (o[e] = r.slice());
455
413
  }
456
- if ((i.resources.size || re || W || I.trackedParts.size) && !l[d]) {
457
- const t = e.package.parts[d];
458
- if (!t) throw new Error("PPTX 缺少 [Content_Types].xml");
459
- l[d] = t.slice();
414
+ if ((d.resources.size || k || T || p.trackedParts.size) && !o[x]) {
415
+ const e = t.package.parts[x];
416
+ if (!e) throw new Error("PPTX 缺少 [Content_Types].xml");
417
+ o[x] = e.slice();
460
418
  }
461
- if (re || W)
462
- for (const t of [h, S]) {
463
- if (l[t]) continue;
464
- const a = e.package.parts[t];
465
- if (!a) throw new Error(`PPTX 缺少 ${t}`);
466
- l[t] = a.slice();
419
+ if (k || T)
420
+ for (const e of [j, R]) {
421
+ if (o[e]) continue;
422
+ const r = t.package.parts[e];
423
+ if (!r) throw new Error(`PPTX 缺少 ${e}`);
424
+ o[e] = r.slice();
467
425
  }
468
- for (const t of c) {
469
- const a = t.origin.part;
470
- P.add(a), P.add(x(a));
426
+ for (const e of g) {
427
+ const r = e.origin.part;
428
+ P.add(r), P.add(E(r));
471
429
  }
472
- for (const t of i.resources.values())
473
- t.created && P.add(t.targetPart);
474
- const v = /* @__PURE__ */ Object.create(null);
475
- for (const t of P) v[t] = null;
476
- for (const [t, a] of Object.entries(l))
477
- !e.package.parts[t] && !_.packageParts.has(t) && !P.has(t) && (v[t] = a);
478
- const Ue = new Set(e.slideOrder.flatMap((t) => {
479
- var y;
480
- const a = e.slides[t], u = (y = a.origin) == null ? void 0 : y.part;
481
- return u && (l[u] || a.creation || Y.has(u)) ? [u] : [];
482
- })), ne = /* @__PURE__ */ new Map();
483
- for (const t of Ue) {
484
- const a = c.find((M) => {
485
- var $;
486
- return (($ = M.origin) == null ? void 0 : $.part) === t;
487
- }), u = l[t] ?? (a ? Lt(e, a, l) ?? xt() : void 0);
488
- if (!u) throw new Error(`找不到页面保存基线:${t}`);
489
- const y = E(u), b = s.get(t) ?? [], q = x(t), J = l[q] ?? (a ? Q(e, a, l) : void 0), T = se.has(t) ? Fe(
490
- e,
430
+ for (const e of d.resources.values())
431
+ e.created && P.add(e.targetPart);
432
+ const m = Object.assign(
433
+ /* @__PURE__ */ Object.create(null),
434
+ a.changes
435
+ );
436
+ for (const e of P) m[e] = null;
437
+ for (const [e, r] of Object.entries(o))
438
+ !t.package.parts[e] && !N.packageParts.has(e) && !P.has(e) && (m[e] = r);
439
+ const $ = new Set(t.slideOrder.flatMap((e) => {
440
+ var h;
441
+ const r = t.slides[e], l = (h = r.origin) == null ? void 0 : h.part;
442
+ return l && (o[l] || r.creation || V.has(l)) ? [l] : [];
443
+ })), y = /* @__PURE__ */ new Map();
444
+ for (const e of $) {
445
+ const r = g.find((G) => {
446
+ var Y;
447
+ return ((Y = G.origin) == null ? void 0 : Y.part) === e;
448
+ }), l = o[e] ?? (r ? _t(t, r, o) ?? Tt() : void 0);
449
+ if (!l) throw new Error(`找不到页面保存基线:${e}`);
450
+ const h = D(l), I = s.get(e) ?? [], b = E(e), H = o[b] ?? (r ? pe(t, r, o) : void 0), z = S.has(e) ? ge(
491
451
  t,
492
- J,
493
- i.relationships.get(t) ?? []
452
+ e,
453
+ H,
454
+ d.relationships.get(e) ?? []
494
455
  ) : void 0;
495
- T && ne.set(t, T), T == null || T.removeDanglingHyperlinks(y);
496
- const K = [
497
- ...a ? Ut(a) : [],
498
- ...n.get(t) ?? []
456
+ z && y.set(e, z), z == null || z.removeDanglingHyperlinks(h);
457
+ const ce = [
458
+ ...r ? Wt(r) : [],
459
+ ...f.get(e) ?? []
499
460
  ];
500
- He(y, e, t, b, K, { links: T });
501
- const V = ((ue = a == null ? void 0 : a.creation) == null ? void 0 : ue.duplicateRemovedAnimationSpids) ?? ((me = a == null ? void 0 : a.creation) == null ? void 0 : me.duplicateRemovedSpids) ?? [], ae = (n.get(t) ?? []).flatMap((M) => M.sourceSpids ?? (M.meta.origin ? [M.meta.origin.spid] : []));
502
- ut(y, [...V, ...ae]);
503
- for (const M of f.get(t) ?? []) {
504
- const $ = e.elements[M], Pe = m.get(t);
505
- jt(
506
- y,
507
- $,
508
- Ie(e, M),
509
- We($),
510
- Pe ? N(Pe, $) : void 0
461
+ Pe(h, t, e, I, ce, { links: z });
462
+ const le = ((ke = r == null ? void 0 : r.creation) == null ? void 0 : ke.duplicateRemovedAnimationSpids) ?? ((Oe = r == null ? void 0 : r.creation) == null ? void 0 : Oe.duplicateRemovedSpids) ?? [], he = (f.get(e) ?? []).flatMap((G) => G.sourceSpids ?? (G.meta.origin ? [G.meta.origin.spid] : []));
463
+ Mt(h, [...le, ...he]);
464
+ for (const G of B.get(e) ?? []) {
465
+ const Y = t.elements[G], Te = U.get(e);
466
+ Jt(
467
+ h,
468
+ Y,
469
+ Ie(t, G),
470
+ Qe(Y),
471
+ Te ? F(Te, Y) : void 0
511
472
  );
512
473
  }
513
- const z = r.get(t);
514
- z && mt(y, e, z);
515
- const ge = D(y);
516
- v[t] = Y.has(t) ? Et(ge, Y.get(t)) : ge;
474
+ const re = i.get(e);
475
+ re && Nt(h, t, re);
476
+ const xe = W(h);
477
+ m[e] = V.has(e) ? Ct(xe, V.get(e)) : xe;
478
+ }
479
+ const O = new Set(t.layoutOrder.filter((e) => o[e] || s.has(e) || f.has(e) || n.has(e)));
480
+ for (const e of O) {
481
+ const r = o[e];
482
+ if (!r) throw new Error(`找不到版式保存基线:${e}`);
483
+ const l = D(r), h = s.get(e) ?? [], I = o[E(e)], b = S.has(e) ? ge(
484
+ t,
485
+ e,
486
+ I,
487
+ d.relationships.get(e) ?? []
488
+ ) : void 0;
489
+ b && y.set(e, b), b == null || b.removeDanglingHyperlinks(l), Pe(l, t, e, h, f.get(e) ?? [], { links: b });
490
+ const H = n.get(e);
491
+ H && Zt(l, H), m[e] = W(l);
517
492
  }
518
- const pe = /* @__PURE__ */ new Set();
519
- for (const t of /* @__PURE__ */ new Set([
520
- ...i.relationships.keys(),
521
- ...ne.keys(),
522
- ...p.keys(),
523
- ...I.relationshipSlides.keys()
493
+ const J = new Set(t.masterOrder.filter((e) => o[e] || s.has(e) || f.has(e) || c.has(e)));
494
+ for (const e of J) {
495
+ const r = o[e];
496
+ if (!r) throw new Error(`找不到母版保存基线:${e}`);
497
+ const l = D(r), h = s.get(e) ?? [], I = o[E(e)], b = S.has(e) ? ge(
498
+ t,
499
+ e,
500
+ I,
501
+ d.relationships.get(e) ?? []
502
+ ) : void 0;
503
+ b && y.set(e, b), b == null || b.removeDanglingHyperlinks(l), Pe(l, t, e, h, f.get(e) ?? [], { links: b });
504
+ const H = c.get(e);
505
+ H && Ye(l, H), m[e] = W(l);
506
+ }
507
+ const ie = /* @__PURE__ */ new Set();
508
+ for (const e of /* @__PURE__ */ new Set([
509
+ ...d.relationships.keys(),
510
+ ...y.keys(),
511
+ ...M.keys(),
512
+ ...p.relationshipSlides.keys()
524
513
  ])) {
525
- const a = i.relationships.get(t) ?? [], u = x(t);
526
- pe.add(u);
527
- const y = c.find((ae) => {
528
- var z;
529
- return ((z = ae.origin) == null ? void 0 : z.part) === t;
530
- }), b = l[u] ?? (y ? Q(e, y, l) : void 0), q = ne.get(t), J = v[t];
531
- let T = q && J instanceof Uint8Array ? Ye(b, a, q, J) : F(b, a);
532
- const K = p.get(t);
533
- K && (T = Me(K, T));
534
- const V = I.relationshipSlides.get(t);
535
- V && (T = ke(V, T)), v[u] = T;
514
+ const r = d.relationships.get(e) ?? [], l = E(e);
515
+ ie.add(l);
516
+ const h = g.find((he) => {
517
+ var re;
518
+ return ((re = he.origin) == null ? void 0 : re.part) === e;
519
+ }), I = o[l] ?? (h ? pe(t, h, o) : void 0), b = y.get(e), H = m[e];
520
+ let z = b && H instanceof Uint8Array ? Ze(I, r, b, H) : Ce(I, r);
521
+ const ce = M.get(e);
522
+ ce && (z = Rt(ce, z));
523
+ const le = p.relationshipSlides.get(e);
524
+ le && (z = Re(le, z)), m[l] = z;
536
525
  }
537
- for (const [t, a] of Object.entries(l))
538
- t.endsWith(".rels") && !pe.has(t) && (v[t] = F(a, []));
539
- for (const [t, a] of i.resources) v[t] = ht(a);
540
- if (gt(e, l, I, v), l[d]) {
541
- const t = Pt(
542
- l[d],
543
- [...i.resources.values()]
526
+ for (const [e, r] of Object.entries(o))
527
+ e.endsWith(".rels") && !ie.has(e) && (m[e] = Ce(r, []));
528
+ for (const [e, r] of d.resources) m[e] = $t(r);
529
+ if (jt(t, o, p, m), o[x]) {
530
+ const e = Xt(
531
+ o[x],
532
+ [...d.resources.values()]
544
533
  );
545
- v[d] = Ct(
546
- t,
534
+ m[x] = It(
547
535
  e,
548
- _.contentTypeParts
536
+ t,
537
+ N.contentTypeParts
549
538
  );
550
539
  }
551
- for (const t of c) {
552
- const a = x(t.origin.part), u = v[a], y = u instanceof Uint8Array ? u : Q(e, t, l), b = (he = t.creation) != null && he.duplicateSourcePart ? y : Ot(t, y);
553
- v[a] = ke(t, b);
540
+ for (const e of g) {
541
+ const r = E(e.origin.part), l = m[r], h = l instanceof Uint8Array ? l : pe(t, e, o), I = (be = e.creation) != null && be.duplicateSourcePart ? h : zt(e, h);
542
+ m[r] = Re(e, I);
554
543
  }
555
- if (l[h]) {
556
- const t = l[S] ?? e.package.parts[S];
557
- if (!t) throw new Error("PPTX 缺少 ppt/_rels/presentation.xml.rels");
558
- v[h] = Mt(
559
- l[h],
560
- t,
561
- e
544
+ if (o[j]) {
545
+ const e = o[R] ?? t.package.parts[R];
546
+ if (!e) throw new Error("PPTX 缺少 ppt/_rels/presentation.xml.rels");
547
+ m[j] = At(
548
+ o[j],
549
+ e,
550
+ t
562
551
  );
563
552
  }
564
- if (l[S] && (v[S] = Rt(
565
- l[S],
566
- e
567
- )), g != null && g.definitions.length && P.has(g.part)) {
568
- const t = v[d] ?? l[d], a = v[S] ?? l[S];
569
- if (!(t instanceof Uint8Array) || !(a instanceof Uint8Array))
553
+ if (o[R] && (m[R] = Dt(
554
+ o[R],
555
+ t
556
+ )), w != null && w.definitions.length && P.has(w.part)) {
557
+ const e = m[x] ?? o[x], r = m[R] ?? o[R];
558
+ if (!(e instanceof Uint8Array) || !(r instanceof Uint8Array))
570
559
  throw new Error("创建 tableStyles.xml 缺少 OPC 闭包基线");
571
- v[d] = yt(t, g.part), v[S] = St(
572
- a,
573
- g.part
560
+ m[x] = Ht(e, w.part), m[R] = Lt(
561
+ r,
562
+ w.part
574
563
  );
575
564
  }
576
- for (const t of _.packageParts) v[t] = null;
577
- if (g) {
578
- const t = l[g.part];
579
- g.definitions.length ? v[g.part] = vt(t, g.definitions) : t && (v[g.part] = t);
565
+ for (const e of N.packageParts) m[e] = null;
566
+ if (w) {
567
+ const e = o[w.part];
568
+ w.definitions.length ? m[w.part] = Bt(e, w.definitions) : e && (m[w.part] = e);
580
569
  }
581
- const fe = at(e.package, v);
582
- return Xe(e, fe.package, l, [...P].sort()), fe;
570
+ for (const e of te)
571
+ m[e] = et(o[e], t.themes[e]);
572
+ Gt(t, g, o, P, m);
573
+ for (const e of ze().values()) (Ee = e.materializePackage) == null || Ee.call(e, t, o, P, m);
574
+ const we = St(t.package, m);
575
+ return tt(t, we.package, o, [...P].sort()), we;
583
576
  }
584
577
  export {
585
- Kt as saveEditDoc
578
+ cs as saveEditDoc,
579
+ is as saveEditDocWithExtensions,
580
+ ds as serializeEditDoc
586
581
  };