@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
@@ -0,0 +1,714 @@
1
+ const g = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap();
2
+ function m(t) {
3
+ const e = g.get(t);
4
+ if (!e) throw new Error("XML 节点不属于保留型 XML 树");
5
+ return e;
6
+ }
7
+ function N(t) {
8
+ const e = b.get(t);
9
+ if (!e) throw new Error("XML 元素不属于保留型 XML 树");
10
+ return e;
11
+ }
12
+ function E(t) {
13
+ let e = t;
14
+ for (; e; ) {
15
+ const s = m(e);
16
+ if (s.dirty) break;
17
+ s.dirty = !0, e = s.parent;
18
+ }
19
+ }
20
+ const et = "http://www.w3.org/XML/1998/namespace", pt = "http://www.w3.org/2000/xmlns/", x = "http://schemas.openxmlformats.org/drawingml/2006/main", d = "http://schemas.openxmlformats.org/presentationml/2006/main", B = "http://schemas.microsoft.com/office/powerpoint/2010/main", I = "http://schemas.openxmlformats.org/markup-compatibility/2006", mt = "http://schemas.openxmlformats.org/officeDocument/2006/math", Ut = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", dt = /^[A-Za-z_][A-Za-z0-9_.-]*$/, gt = /^[\p{L}\p{Nl}_][\p{L}\p{Nl}\p{N}\p{M}\p{Pc}_.\-\u00B7\u203F-\u2040]*$/u, _ = (t) => dt.test(t) || gt.test(t);
21
+ function z(t) {
22
+ const e = t.indexOf(":");
23
+ return e < 0 ? _(t) : e === t.lastIndexOf(":") && _(t.slice(0, e)) && _(t.slice(e + 1));
24
+ }
25
+ function st(t, e) {
26
+ if (!z(t)) throw new Error(`非法 XML ${e}名:${t}`);
27
+ }
28
+ const P = (t) => {
29
+ const e = t.indexOf(":");
30
+ return e < 0 ? { prefix: null, localName: t } : { prefix: t.slice(0, e), localName: t.slice(e + 1) };
31
+ };
32
+ function L(t, e, s) {
33
+ const n = P(t);
34
+ return s && (t === "xmlns" || n.prefix === "xmlns") ? pt : n.prefix === "xml" ? et : n.prefix ? e.get(n.prefix) || null : s ? null : e.get("") || null;
35
+ }
36
+ function nt(t, e) {
37
+ const s = new Map(t);
38
+ for (const n of e.attributes)
39
+ n.name === "xmlns" ? s.set("", n.value) : n.name.startsWith("xmlns:") && s.set(n.name.slice(6), n.value);
40
+ return s;
41
+ }
42
+ function xt(t) {
43
+ const e = N(t).parent;
44
+ return (e == null ? void 0 : e.type) === "element" ? N(e).namespaces : /* @__PURE__ */ new Map();
45
+ }
46
+ function wt(t, e) {
47
+ return L(e.name, nt(N(t).namespaces, e), !1);
48
+ }
49
+ function M(t, e = xt(t)) {
50
+ const s = N(t), n = nt(e, t);
51
+ s.namespaces = n, t.namespaceUri = L(t.name, n, !1);
52
+ for (const i of t.attributes)
53
+ i.namespaceUri = L(i.name, n, !0);
54
+ for (const i of t.children)
55
+ i.type === "element" && M(i, n);
56
+ }
57
+ const v = (t) => t.attributes, bt = (t, e) => {
58
+ t.value = e;
59
+ };
60
+ function yt(t, e) {
61
+ return L(e, N(t).namespaces, !0);
62
+ }
63
+ function Nt(t, e) {
64
+ const s = N(t), n = s.sourceAttributes.indexOf(e);
65
+ if (n < 0) return v(t).length;
66
+ const i = v(t);
67
+ for (let r = 0; r < i.length; r++) {
68
+ const o = s.sourceAttributes.indexOf(i[r]);
69
+ if (o >= 0 && o > n) return r;
70
+ }
71
+ return i.findIndex((r) => {
72
+ var o;
73
+ return !((o = y.get(r)) != null && o.source);
74
+ }) >= 0 ? i.findIndex((r) => {
75
+ var o;
76
+ return !((o = y.get(r)) != null && o.source);
77
+ }) : i.length;
78
+ }
79
+ function rt(t, e, s, n = '"') {
80
+ st(e, "属性");
81
+ let r = N(t).sourceAttributes.find((f) => f.name === e) ?? v(t).find((f) => f.name === e);
82
+ if (r) {
83
+ const f = y.get(r);
84
+ let h = !1;
85
+ return f.present || (f.present = !0, v(t).splice(Nt(t, r), 0, r), h = !0), r.value !== s && (bt(r, s), f.changed = !0, h = !0), h && ((e === "xmlns" || e.startsWith("xmlns:")) && M(t), E(t)), r;
86
+ }
87
+ const o = P(e);
88
+ r = {
89
+ name: e,
90
+ prefix: o.prefix,
91
+ localName: o.localName,
92
+ namespaceUri: yt(t, e),
93
+ value: s,
94
+ quote: n
95
+ };
96
+ const c = {
97
+ source: !1,
98
+ present: !0,
99
+ changed: !0,
100
+ start: -1,
101
+ nameStart: -1,
102
+ valueStart: -1,
103
+ valueEnd: -1,
104
+ end: -1
105
+ };
106
+ return y.set(r, c), v(t).push(r), (e === "xmlns" || e.startsWith("xmlns:")) && M(t), E(t), r;
107
+ }
108
+ function Wt(t, e) {
109
+ const s = v(t), n = s.findIndex((r) => r.name === e);
110
+ if (n < 0) return !1;
111
+ const [i] = s.splice(n, 1);
112
+ return y.get(i).present = !1, (e === "xmlns" || e.startsWith("xmlns:")) && M(t), E(t), !0;
113
+ }
114
+ function K(t, e) {
115
+ let s = t.replace(/&/g, "&amp;").replace(/</g, "&lt;");
116
+ return s = e === '"' ? s.replace(/"/g, "&quot;") : s.replace(/'/g, "&apos;"), s;
117
+ }
118
+ function St(t) {
119
+ let e = t.length - 1;
120
+ for (; e > 0 && /\s/.test(t[e - 1]); ) e--;
121
+ if (t[e - 1] === "/")
122
+ for (e--; e > 0 && /\s/.test(t[e - 1]); ) e--;
123
+ return e;
124
+ }
125
+ function Et(t) {
126
+ const e = N(t), s = [];
127
+ for (const r of e.sourceAttributes) {
128
+ const o = y.get(r);
129
+ o.present ? o.changed && s.push({
130
+ start: o.valueStart,
131
+ end: o.valueEnd,
132
+ value: K(r.value, r.quote)
133
+ }) : s.push({ start: o.start, end: o.end, value: "" });
134
+ }
135
+ s.sort((r, o) => o.start - r.start);
136
+ let n = e.openRaw;
137
+ for (const r of s) n = n.slice(0, r.start) + r.value + n.slice(r.end);
138
+ const i = t.attributes.filter((r) => !y.get(r).source);
139
+ if (i.length) {
140
+ const r = St(n), o = i.map((c) => ` ${c.name}=${c.quote}${K(c.value, c.quote)}${c.quote}`).join("");
141
+ n = n.slice(0, r) + o + n.slice(r);
142
+ }
143
+ return e.sourceSelfClosing && t.children.length && (n = n.replace(/\s*\/\s*>$/, ">")), n;
144
+ }
145
+ const it = /* @__PURE__ */ new WeakMap(), Ct = {
146
+ amp: "&",
147
+ lt: "<",
148
+ gt: ">",
149
+ quot: '"',
150
+ apos: "'"
151
+ }, O = (t) => t === " " || t === " " || t === "\r" || t === `
152
+ `, V = (t) => O(t) || t === "=" || t === "/" || t === ">";
153
+ function vt(t) {
154
+ let e = t.length - 2;
155
+ for (; O(t[e]); ) e--;
156
+ return t[e] === "/";
157
+ }
158
+ function F(t) {
159
+ return t.includes("&") ? t.replace(/&(#x[0-9a-f]+|#[0-9]+|[A-Za-z][\w.-]*);/gi, (e, s) => {
160
+ if (s[0] !== "#") return Ct[s] ?? e;
161
+ const n = s[1].toLowerCase() === "x", i = Number.parseInt(s.slice(n ? 2 : 1), n ? 16 : 10);
162
+ return Number.isFinite(i) && i >= 0 && i <= 1114111 ? String.fromCodePoint(i) : e;
163
+ }) : t;
164
+ }
165
+ function Lt(t) {
166
+ let e = "utf-8", s = !1, n = 0;
167
+ return t[0] === 239 && t[1] === 187 && t[2] === 191 ? (s = !0, n = 3) : t[0] === 255 && t[1] === 254 ? (e = "utf-16le", s = !0, n = 2) : t[0] === 254 && t[1] === 255 ? (e = "utf-16be", s = !0, n = 2) : t[0] === 60 && t[1] === 0 ? e = "utf-16le" : t[0] === 0 && t[1] === 60 && (e = "utf-16be"), { text: new TextDecoder(e, { fatal: !0 }).decode(t.subarray(n)), encoding: e, bom: s };
168
+ }
169
+ function Mt(t, e, s) {
170
+ if (e === "utf-8") {
171
+ const r = new TextEncoder().encode(t);
172
+ if (!s) return r;
173
+ const o = new Uint8Array(r.length + 3);
174
+ return o.set([239, 187, 191]), o.set(r, 3), o;
175
+ }
176
+ const n = new Uint8Array(t.length * 2 + (s ? 2 : 0));
177
+ let i = 0;
178
+ s && (n.set(e === "utf-16le" ? [255, 254] : [254, 255]), i = 2);
179
+ for (let r = 0; r < t.length; r++) {
180
+ const o = t.charCodeAt(r);
181
+ e === "utf-16le" ? (n[i++] = o & 255, n[i++] = o >>> 8) : (n[i++] = o >>> 8, n[i++] = o & 255);
182
+ }
183
+ return n;
184
+ }
185
+ function Xt(t) {
186
+ const e = t.children.find((r) => r.type === "processing-instruction" && r.target.toLowerCase() === "xml"), s = e == null ? void 0 : e.value.match(/\bencoding\s*=\s*(['"])([^'"]+)\1/i), n = (s == null ? void 0 : s[2].toLowerCase()) ?? "utf-8", i = m(t).raw.startsWith("\uFEFF");
187
+ if (n === "utf-8" || n === "utf8") return { encoding: "utf-8", bom: i };
188
+ if (n === "utf-16") return { encoding: "utf-16le", bom: !0 };
189
+ if (n === "utf-16le") return { encoding: "utf-16le", bom: i };
190
+ if (n === "utf-16be") return { encoding: "utf-16be", bom: i };
191
+ throw new Error(`无法按 XML 声明输出 ${s == null ? void 0 : s[2]} 字节;仅支持 UTF-8 与 UTF-16`);
192
+ }
193
+ class Y {
194
+ constructor(e) {
195
+ this.source = e, this.offset = 0;
196
+ }
197
+ parse() {
198
+ const e = [], s = { type: "document", children: e, root: null };
199
+ let n = null;
200
+ for (; this.offset < this.source.length; ) {
201
+ const i = this.source[this.offset] === "<" ? this.parseMarkup(s, /* @__PURE__ */ new Map()) : this.parseText(s);
202
+ e.push(i), i.type === "element" ? (n && this.fail("XML 只能有一个根元素"), n = i) : i.type === "text" && i.value.replace(/^\uFEFF/, "").trim() && this.fail("根元素外不能出现文本");
203
+ }
204
+ return n || this.fail("未找到根元素"), Object.defineProperty(s, "root", { value: n, enumerable: !0 }), g.set(s, { raw: this.source, parent: null, dirty: !1 }), s;
205
+ }
206
+ parseText(e) {
207
+ const s = this.offset, n = this.source.indexOf("<", s);
208
+ this.offset = n < 0 ? this.source.length : n;
209
+ const i = this.source.slice(s, this.offset), r = { type: "text", value: F(i) };
210
+ return g.set(r, { raw: i, parent: e, dirty: !1 }), r;
211
+ }
212
+ parseMarkup(e, s) {
213
+ const n = this.offset;
214
+ if (this.source.startsWith("<!--", n)) {
215
+ const i = this.source.indexOf("-->", n + 4);
216
+ i < 0 && this.fail("注释未闭合"), this.offset = i + 3;
217
+ const r = this.source.slice(n, this.offset), o = { type: "comment", value: r.slice(4, -3) };
218
+ return g.set(o, { raw: r, parent: e, dirty: !1 }), o;
219
+ }
220
+ if (this.source.startsWith("<![CDATA[", n)) {
221
+ const i = this.source.indexOf("]]>", n + 9);
222
+ i < 0 && this.fail("CDATA 未闭合"), this.offset = i + 3;
223
+ const r = this.source.slice(n, this.offset), o = { type: "cdata", value: r.slice(9, -3) };
224
+ return g.set(o, { raw: r, parent: e, dirty: !1 }), o;
225
+ }
226
+ return this.source.startsWith("<?", n) ? this.parseInstruction(e) : this.source.startsWith("<!", n) ? this.parseDeclaration(e) : (this.source.startsWith("</", n) && this.fail("遇到意外的闭合标签"), this.parseElement(e, s));
227
+ }
228
+ parseInstruction(e) {
229
+ const s = this.offset, n = this.source.indexOf("?>", s + 2);
230
+ n < 0 && this.fail("处理指令未闭合"), this.offset = n + 2;
231
+ const i = this.source.slice(s, this.offset), r = i.slice(2, -2), o = r.search(/\s/), c = {
232
+ type: "processing-instruction",
233
+ target: o < 0 ? r : r.slice(0, o),
234
+ value: o < 0 ? "" : r.slice(o).trimStart()
235
+ };
236
+ return g.set(c, { raw: i, parent: e, dirty: !1 }), c;
237
+ }
238
+ parseDeclaration(e) {
239
+ const s = this.offset;
240
+ let n = "", i = 0;
241
+ for (this.offset += 2; this.offset < this.source.length; ) {
242
+ const c = this.source[this.offset++];
243
+ if (n)
244
+ c === n && (n = "");
245
+ else if (c === '"' || c === "'") n = c;
246
+ else if (c === "[") i++;
247
+ else if (c === "]") i = Math.max(0, i - 1);
248
+ else if (c === ">" && i === 0) break;
249
+ }
250
+ this.source[this.offset - 1] !== ">" && this.fail("声明未闭合");
251
+ const r = this.source.slice(s, this.offset), o = { type: "declaration", value: r.slice(2, -1) };
252
+ return g.set(o, { raw: r, parent: e, dirty: !1 }), o;
253
+ }
254
+ parseElement(e, s) {
255
+ const n = this.offset, i = this.scanOpenEnd(n), r = this.source.slice(n, i + 1), o = this.scanNameEnd(n + 1, i), c = this.source.slice(n + 1, o);
256
+ z(c) || this.fail(`非法元素名 ${c || "(空)"}`);
257
+ const f = this.parseAttributes(r, c.length + 1), h = new Map(s);
258
+ h.set("xml", et);
259
+ for (const p of f)
260
+ p.name === "xmlns" ? h.set("", F(p.value)) : p.name.startsWith("xmlns:") && h.set(p.name.slice(6), F(p.value));
261
+ const w = f.map((p) => {
262
+ const C = P(p.name), A = {
263
+ name: p.name,
264
+ prefix: C.prefix,
265
+ localName: C.localName,
266
+ namespaceUri: L(p.name, h, !0),
267
+ value: F(p.value),
268
+ quote: p.quote
269
+ };
270
+ return y.set(A, p.state), A;
271
+ }), S = P(c), D = vt(r), R = [], X = {
272
+ type: "element",
273
+ name: c,
274
+ prefix: S.prefix,
275
+ localName: S.localName,
276
+ namespaceUri: L(c, h, !1),
277
+ attributes: w,
278
+ children: R,
279
+ selfClosing: D
280
+ };
281
+ this.offset = i + 1;
282
+ let H = "";
283
+ if (!D) {
284
+ for (; this.offset < this.source.length && !this.source.startsWith("</", this.offset); ) {
285
+ const ht = this.source[this.offset] === "<" ? this.parseMarkup(X, h) : this.parseText(X);
286
+ R.push(ht);
287
+ }
288
+ this.source.startsWith("</", this.offset) || this.fail(`元素 <${c}> 未闭合`);
289
+ const p = this.offset, C = this.source.indexOf(">", p + 2);
290
+ C < 0 && this.fail(`元素 <${c}> 未闭合`);
291
+ const A = this.source.slice(p + 2, C).trim();
292
+ A !== c && this.fail(`闭合标签 </${A}> 与 <${c}> 不匹配`), this.offset = C + 1, H = this.source.slice(p, this.offset);
293
+ }
294
+ const Z = {
295
+ raw: this.source.slice(n, this.offset),
296
+ parent: e,
297
+ dirty: !1,
298
+ openRaw: r,
299
+ closeRaw: H,
300
+ sourceSelfClosing: D,
301
+ // 源属性表必须与公开的当前属性表分离;删除/新增只改当前表,序列化仍靠源表定位原始字节。
302
+ sourceAttributes: [...w],
303
+ namespaces: h
304
+ };
305
+ return g.set(X, Z), b.set(X, Z), X;
306
+ }
307
+ scanOpenEnd(e) {
308
+ let s = "";
309
+ for (let n = e + 1; n < this.source.length; n++) {
310
+ const i = this.source[n];
311
+ if (s)
312
+ i === s && (s = "");
313
+ else if (i === '"' || i === "'") s = i;
314
+ else if (i === ">") return n;
315
+ }
316
+ this.fail("开始标签未闭合");
317
+ }
318
+ scanNameEnd(e, s) {
319
+ let n = e;
320
+ for (; n < s && !V(this.source[n]); ) n++;
321
+ return n;
322
+ }
323
+ parseAttributes(e, s) {
324
+ const n = [], i = /* @__PURE__ */ new Set();
325
+ let r = s;
326
+ for (; r < e.length - 1; ) {
327
+ const o = r;
328
+ for (; O(e[r]); ) r++;
329
+ if (e[r] === "/" || e[r] === ">" || r >= e.length - 1) break;
330
+ r === o && this.fail("属性前缺少空白");
331
+ const c = r;
332
+ for (; r < e.length && !V(e[r]); ) r++;
333
+ const f = e.slice(c, r);
334
+ for (z(f) || this.fail(`非法属性名 ${f || "(空)"}`), i.has(f) && this.fail(`属性 ${f} 重复`), i.add(f); O(e[r]); ) r++;
335
+ for (e[r++] !== "=" && this.fail(`属性 ${f} 缺少等号`); O(e[r]); ) r++;
336
+ const h = e[r++];
337
+ h !== '"' && h !== "'" && this.fail(`属性 ${f} 必须使用引号`);
338
+ const w = r, S = e.indexOf(h, w);
339
+ S < 0 && this.fail(`属性 ${f} 未闭合`), r = S + 1, n.push({
340
+ name: f,
341
+ value: e.slice(w, S),
342
+ quote: h,
343
+ state: {
344
+ source: !0,
345
+ present: !0,
346
+ changed: !1,
347
+ start: o,
348
+ nameStart: c,
349
+ valueStart: w,
350
+ valueEnd: S,
351
+ end: r
352
+ }
353
+ });
354
+ }
355
+ return n;
356
+ }
357
+ fail(e) {
358
+ throw new Error(`XML 解析失败(偏移 ${this.offset}):${e}`);
359
+ }
360
+ }
361
+ function ot(t) {
362
+ const e = m(t);
363
+ if (!e.dirty || t.type !== "element") return e.raw;
364
+ const s = b.get(t), n = s.sourceSelfClosing && t.children.length ? `</${t.name}>` : s.closeRaw;
365
+ return Et(t) + t.children.map(ot).join("") + n;
366
+ }
367
+ function Dt(t) {
368
+ if (typeof t == "string") return new Y(t).parse();
369
+ const e = Lt(t), s = new Y(e.text).parse();
370
+ return it.set(s, { encoding: e.encoding, bom: e.bom, source: t }), s;
371
+ }
372
+ function At(t) {
373
+ const e = m(t);
374
+ return e.dirty ? t.children.map(ot).join("") : e.raw;
375
+ }
376
+ function _t(t) {
377
+ const e = it.get(t);
378
+ if (e && !m(t).dirty) return e.source.slice();
379
+ const s = e ?? Xt(t), n = At(t).replace(/^\uFEFF/, "");
380
+ return Mt(n, s.encoding, s.bom);
381
+ }
382
+ function Ot(t, e = {}) {
383
+ if ("namespaceUri" in e)
384
+ throw new Error("namespaceUri 由 QName 与 xmlns 声明决定,不能脱离序列化文本覆盖");
385
+ st(t, "元素");
386
+ const s = P(t), n = e.selfClosing !== !1, i = [], r = [], o = {
387
+ type: "element",
388
+ name: t,
389
+ prefix: s.prefix,
390
+ localName: s.localName,
391
+ namespaceUri: null,
392
+ attributes: i,
393
+ children: r,
394
+ selfClosing: n
395
+ }, c = {
396
+ raw: n ? `<${t}/>` : `<${t}></${t}>`,
397
+ parent: null,
398
+ dirty: !0,
399
+ openRaw: n ? `<${t}/>` : `<${t}>`,
400
+ closeRaw: n ? "" : `</${t}>`,
401
+ sourceSelfClosing: n,
402
+ sourceAttributes: [],
403
+ namespaces: /* @__PURE__ */ new Map()
404
+ };
405
+ g.set(o, c), b.set(o, c);
406
+ for (const [f, h, w] of e.attributes ?? [])
407
+ rt(o, f, h, w);
408
+ return o;
409
+ }
410
+ function lt(t) {
411
+ if (t.type !== "element") {
412
+ const s = { ...t };
413
+ return g.set(s, { raw: m(t).raw, parent: null, dirty: !1 }), s;
414
+ }
415
+ const e = Ot(t.name, {
416
+ selfClosing: t.selfClosing,
417
+ attributes: t.attributes.map((s) => [s.name, s.value, s.quote])
418
+ });
419
+ for (const s of t.children) T(e, lt(s));
420
+ return e;
421
+ }
422
+ function qt(t, e) {
423
+ const s = lt(t), n = e ? b.get(e).namespaces : void 0, i = new Set(s.attributes.filter((r) => r.name === "xmlns" || r.name.startsWith("xmlns:")).map((r) => r.name === "xmlns" ? "" : r.name.slice(6)));
424
+ for (const [r, o] of b.get(t).namespaces)
425
+ r === "xml" || i.has(r) || (n == null ? void 0 : n.get(r)) === o || rt(s, r ? `xmlns:${r}` : "xmlns", o);
426
+ return n && M(s, n), s;
427
+ }
428
+ function ct(t, e) {
429
+ if (m(e).parent) throw new Error("XML 节点已经属于另一棵树;请先显式移除");
430
+ let n = t;
431
+ for (; n; ) {
432
+ if (n === e) throw new Error("不能把 XML 节点插入自身后代");
433
+ n = m(n).parent;
434
+ }
435
+ }
436
+ function at(t, e) {
437
+ e.type === "element" && M(e, b.get(t).namespaces);
438
+ }
439
+ function T(t, e, s = null) {
440
+ ct(t, e);
441
+ const n = t.children;
442
+ let i = s === null ? n.length : n.indexOf(s);
443
+ if (i < 0) throw new Error("before 不是该父元素的子节点");
444
+ let r = s !== null && i > 0 ? n[i - 1] : null, o = (r == null ? void 0 : r.type) === "text" && !r.value.trim() ? J(r.value) : null;
445
+ if (s === null && i > 0) {
446
+ const c = n[i - 1];
447
+ if (c.type === "text" && !c.value.trim()) {
448
+ r = [...n.slice(0, -1)].reverse().find((h) => h.type === "text" && !h.value.trim()) ?? null;
449
+ const f = (r == null ? void 0 : r.type) === "text" ? r.value : c.value.replace(/([^\r\n])?$/, " $&");
450
+ o = J(f), i--, n.splice(i, 0, o, e), i++;
451
+ } else
452
+ n.splice(i, 0, e);
453
+ } else
454
+ n.splice(i, 0, e, ...o ? [o] : []);
455
+ return at(t, e), m(e).parent = t, o && (m(o).parent = t), t.selfClosing = !1, E(t), i;
456
+ }
457
+ function Bt(t, e) {
458
+ const s = t.children, n = s.indexOf(e);
459
+ if (n < 0) return !1;
460
+ const i = s[n - 1], r = s[n + 1];
461
+ return e.type === "element" && (i == null ? void 0 : i.type) === "text" && !i.value.trim() && /[\r\n]/.test(i.value) && (r == null ? void 0 : r.type) === "text" && !r.value.trim() ? (s.splice(n - 1, 2), m(i).parent = null) : s.splice(n, 1), m(e).parent = null, t.selfClosing = b.get(t).sourceSelfClosing && s.length === 0, E(t), !0;
462
+ }
463
+ function zt(t, e, s) {
464
+ if (new Set(s).size !== s.length) throw new Error("XML 替换不能包含重复节点");
465
+ const n = t.children, i = n.indexOf(e);
466
+ if (i < 0 || m(e).parent !== t) throw new Error("XML 替换目标不是父元素的直属子节点");
467
+ for (const r of s) ct(t, r);
468
+ n.splice(i, 1, ...s), m(e).parent = null;
469
+ for (const r of s)
470
+ at(t, r), m(r).parent = t;
471
+ E(t);
472
+ }
473
+ function jt(t, e) {
474
+ if (new Set(e).size !== e.length) throw new Error("XML 重排不能包含重复节点");
475
+ const s = t.children, n = new Set(e);
476
+ for (const o of e)
477
+ if (m(o).parent !== t) throw new Error("XML 重排节点不是目标父元素的直属子节点");
478
+ const i = [], r = [];
479
+ if (s.forEach((o, c) => {
480
+ n.has(o) && (i.push(c), r.push(o));
481
+ }), r.length !== e.length) throw new Error("XML 重排节点集合与父元素不一致");
482
+ return r.every((o, c) => o === e[c]) ? !1 : (i.forEach((o, c) => {
483
+ s[o] = e[c];
484
+ }), E(t), !0);
485
+ }
486
+ function J(t) {
487
+ const e = { type: "text", value: t }, s = t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
488
+ return g.set(e, { raw: s, parent: null, dirty: !0 }), e;
489
+ }
490
+ const a = (t, e) => `{${t}}${e}`, U = (t, ...e) => e.map((s) => a(t, s)), l = (...t) => U(x, ...t), u = (...t) => U(d, ...t), $ = (...t) => U(B, ...t), Pt = (...t) => U(mt, ...t), k = l("noFill", "solidFill", "gradFill", "blipFill", "pattFill", "grpFill"), j = l("effectLst", "effectDag"), q = [
491
+ l("xfrm"),
492
+ l("custGeom", "prstGeom"),
493
+ k,
494
+ l("ln"),
495
+ j,
496
+ l("scene3d"),
497
+ l("sp3d"),
498
+ l("extLst")
499
+ ], tt = [l("bodyPr"), l("lstStyle"), l("p")], Ft = [
500
+ l("prstTxWarp"),
501
+ l("noAutofit", "normAutofit", "spAutoFit"),
502
+ l("scene3d"),
503
+ l("sp3d"),
504
+ l("flatTx"),
505
+ l("extLst")
506
+ ], $t = {
507
+ [a(x, "spPr")]: { groups: q },
508
+ [a(d, "spPr")]: { groups: q },
509
+ [a(d, "grpSpPr")]: { groups: q },
510
+ [a(x, "xfrm")]: { groups: [l("off"), l("ext"), l("chOff"), l("chExt")] },
511
+ [a(d, "xfrm")]: { groups: [l("off"), l("ext")] },
512
+ [a(B, "xfrm")]: { groups: [l("off"), l("ext")] },
513
+ [a(x, "ln")]: {
514
+ groups: [
515
+ k,
516
+ l("prstDash", "custDash"),
517
+ l("round", "bevel", "miter"),
518
+ l("headEnd"),
519
+ l("tailEnd"),
520
+ l("extLst")
521
+ ]
522
+ },
523
+ [a(x, "effectLst")]: {
524
+ groups: [
525
+ l("blur"),
526
+ l("fillOverlay"),
527
+ l("glow"),
528
+ l("innerShdw"),
529
+ l("outerShdw"),
530
+ l("prstShdw"),
531
+ l("reflection"),
532
+ l("softEdge")
533
+ ]
534
+ },
535
+ [a(x, "rPr")]: {
536
+ groups: [
537
+ l("ln"),
538
+ k,
539
+ j,
540
+ l("highlight"),
541
+ l("uLnTx", "uLn"),
542
+ l("uFillTx", "uFill"),
543
+ l("latin"),
544
+ l("ea"),
545
+ l("cs"),
546
+ l("sym"),
547
+ l("hlinkClick"),
548
+ l("hlinkMouseOver"),
549
+ l("rtl"),
550
+ l("extLst")
551
+ ]
552
+ },
553
+ [a(d, "cNvPr")]: {
554
+ groups: [l("hlinkClick"), l("hlinkMouseOver"), l("extLst")]
555
+ },
556
+ [a(x, "pPr")]: {
557
+ groups: [
558
+ l("lnSpc"),
559
+ l("spcBef"),
560
+ l("spcAft"),
561
+ l("buClrTx", "buClr"),
562
+ l("buSzTx", "buSzPct", "buSzPts"),
563
+ l("buFontTx", "buFont"),
564
+ l("buNone", "buAutoNum", "buChar", "buBlip"),
565
+ l("tabLst"),
566
+ l("defRPr"),
567
+ l("extLst")
568
+ ]
569
+ },
570
+ [a(x, "p")]: {
571
+ groups: [l("pPr"), [...l("r", "br", "fld"), ...Pt("oMath", "oMathPara")], l("endParaRPr")]
572
+ },
573
+ [a(x, "bodyPr")]: { groups: Ft },
574
+ [a(x, "txBody")]: { groups: tt },
575
+ [a(d, "txBody")]: { groups: tt },
576
+ [a(d, "sp")]: {
577
+ groups: [u("nvSpPr"), u("spPr"), u("style"), u("txBody")]
578
+ },
579
+ [a(d, "spTree")]: {
580
+ groups: [
581
+ u("nvGrpSpPr"),
582
+ u("grpSpPr"),
583
+ [...u("sp", "grpSp", "graphicFrame", "cxnSp", "pic"), ...$("contentPart")],
584
+ u("extLst")
585
+ ]
586
+ },
587
+ [a(d, "graphicFrame")]: {
588
+ groups: [u("nvGraphicFramePr"), u("xfrm"), l("graphic"), u("extLst")]
589
+ },
590
+ [a(B, "contentPart")]: {
591
+ groups: [$("nvContentPartPr"), $("xfrm"), $("extLst")]
592
+ },
593
+ [a(d, "cSld")]: {
594
+ groups: [u("bg"), u("spTree"), u("custDataLst"), u("controls"), u("extLst")]
595
+ },
596
+ [a(d, "bg")]: {
597
+ groups: [u("bgPr", "bgRef")]
598
+ },
599
+ [a(d, "bgPr")]: {
600
+ groups: [k, j, l("extLst")]
601
+ },
602
+ [a(d, "sld")]: {
603
+ groups: [u("cSld"), u("clrMapOvr"), u("transition"), u("timing"), u("extLst")]
604
+ }
605
+ };
606
+ function G(t, e, s) {
607
+ return e === null ? -1 : t.findIndex((n) => n.includes(a(e, s)));
608
+ }
609
+ function ft(t) {
610
+ return t.namespaceUri ? $t[a(t.namespaceUri, t.localName)] : void 0;
611
+ }
612
+ function Q(t, e) {
613
+ const s = t.children.filter((i) => i.type === "element" && i.namespaceUri === I && (i.localName === "Choice" || i.localName === "Fallback"));
614
+ if (!s.length) throw new Error("mc:AlternateContent 没有可判断序位的 Choice/Fallback");
615
+ const n = [];
616
+ for (const i of s) {
617
+ const r = i.children.filter((o) => o.type === "element");
618
+ if (!r.length) throw new Error(`mc:${i.localName} 没有可判断序位的元素`);
619
+ for (const o of r) {
620
+ if (o.namespaceUri === I && o.localName === "AlternateContent") {
621
+ n.push(...Q(o, e));
622
+ continue;
623
+ }
624
+ const c = G(e.groups, o.namespaceUri, o.localName);
625
+ if (c < 0)
626
+ throw new Error(`无法判断 mc:${i.localName}/${o.name} 的 OOXML 序位`);
627
+ n.push(c);
628
+ }
629
+ }
630
+ return n;
631
+ }
632
+ function kt(t, e, s) {
633
+ if (t.namespaceUri === I && t.localName === "AlternateContent") {
634
+ const i = Q(t, e);
635
+ if (i.every((r) => r > s)) return "after";
636
+ if (i.every((r) => r <= s)) return "before";
637
+ throw new Error("mc:AlternateContent 各分支横跨插入位置,拒绝猜测");
638
+ }
639
+ const n = G(e.groups, t.namespaceUri, t.localName);
640
+ return n < 0 ? "ignore" : n > s ? "after" : "before";
641
+ }
642
+ function It(t, e) {
643
+ const s = ft(t);
644
+ if (!s) return T(t, e);
645
+ const n = wt(t, e), i = n === I && e.localName === "AlternateContent" ? Q(e, s) : [G(s.groups, n, e.localName)], r = i[0];
646
+ if (i.some((c) => c !== r))
647
+ throw new Error("待插入 mc:AlternateContent 各分支不在同一序位");
648
+ if (r < 0)
649
+ throw new Error(`OOXML 顺序表缺少 ${t.name}/${e.name},拒绝无依据追加`);
650
+ let o = null;
651
+ for (const c of t.children)
652
+ if (c.type === "element" && kt(c, s, r) === "after") {
653
+ o = c;
654
+ break;
655
+ }
656
+ return T(t, e, o);
657
+ }
658
+ function Gt(t, e, s = null) {
659
+ if (e.type !== "element" || !ft(t))
660
+ return T(t, e, s);
661
+ if (s !== null) throw new Error("已知 OOXML 容器不接受手工 before;请使用 schema 有序插入");
662
+ return It(t, e);
663
+ }
664
+ const W = (t, e) => t.localName === e.localName && (!Object.prototype.hasOwnProperty.call(e, "namespaceUri") || t.namespaceUri === e.namespaceUri);
665
+ function ut(t, e) {
666
+ const s = t.children.filter((n) => n.type === "element");
667
+ return e ? s.filter((n) => W(n, e)) : s;
668
+ }
669
+ function Qt(t, e) {
670
+ return ut(t).find((s) => W(s, e)) ?? null;
671
+ }
672
+ function Tt(t, e) {
673
+ for (const s of ut(t)) {
674
+ if (W(s, e)) return s;
675
+ const n = Tt(s, e);
676
+ if (n) return n;
677
+ }
678
+ return null;
679
+ }
680
+ function Rt(t, e) {
681
+ return t.attributes.find((s) => W(s, e)) ?? null;
682
+ }
683
+ export {
684
+ x as D,
685
+ I as M,
686
+ Ut as O,
687
+ d as P,
688
+ pt as X,
689
+ _t as a,
690
+ Rt as b,
691
+ Ot as c,
692
+ It as d,
693
+ qt as e,
694
+ Tt as f,
695
+ Qt as g,
696
+ Wt as h,
697
+ T as i,
698
+ lt as j,
699
+ J as k,
700
+ zt as l,
701
+ B as m,
702
+ jt as n,
703
+ N as o,
704
+ Dt as p,
705
+ m as q,
706
+ Bt as r,
707
+ rt as s,
708
+ ot as t,
709
+ mt as u,
710
+ Gt as v,
711
+ $t as w,
712
+ ut as x,
713
+ At as y
714
+ };