@web-ppt/edit-core 0.5.0-beta.1 → 0.5.0-beta.7

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 (367) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/README.md +165 -22
  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/collaboration-identity.d.ts +3 -0
  107. package/dist/commands/add-slide-identity.d.ts +4 -0
  108. package/dist/commands/bullet-image-resource.d.ts +11 -0
  109. package/dist/commands/clear-format.d.ts +4 -0
  110. package/dist/commands/common-object-slide-patch.d.ts +4 -0
  111. package/dist/commands/common-object-slide-types.d.ts +68 -0
  112. package/dist/commands/convert-to-custom-geometry.d.ts +4 -0
  113. package/dist/commands/direct-format-patches.d.ts +11 -5
  114. package/dist/commands/distribute-elements.d.ts +4 -0
  115. package/dist/commands/edit-table-grid.d.ts +10 -0
  116. package/dist/commands/element-alt-text.d.ts +8 -0
  117. package/dist/commands/element-arrangement.d.ts +17 -0
  118. package/dist/commands/element-effects.d.ts +1 -1
  119. package/dist/commands/element-fill.d.ts +1 -1
  120. package/dist/commands/element-geometry.d.ts +9 -0
  121. package/dist/commands/element-hierarchy.d.ts +6 -0
  122. package/dist/commands/element-image-content.d.ts +2 -2
  123. package/dist/commands/element-link.d.ts +1 -1
  124. package/dist/commands/element-name.d.ts +1 -1
  125. package/dist/commands/element-stroke.d.ts +1 -1
  126. package/dist/commands/element-table-style.d.ts +5 -0
  127. package/dist/commands/element-text.d.ts +1 -1
  128. package/dist/commands/element-transform.d.ts +2 -2
  129. package/dist/commands/frame-decomposition.d.ts +10 -0
  130. package/dist/commands/generated-creation-defaults.d.ts +4 -0
  131. package/dist/commands/geometry-types.d.ts +44 -0
  132. package/dist/commands/group-types.d.ts +24 -0
  133. package/dist/commands/group.d.ts +4 -0
  134. package/dist/commands/hierarchy-record.d.ts +5 -0
  135. package/dist/commands/image-resource.d.ts +8 -1
  136. package/dist/commands/insertion-host.d.ts +16 -0
  137. package/dist/commands/insertion-rect.d.ts +2 -0
  138. package/dist/commands/layout-property.d.ts +7 -0
  139. package/dist/commands/master-property.d.ts +5 -0
  140. package/dist/commands/master-text-style-types.d.ts +27 -0
  141. package/dist/commands/master-text-style.d.ts +7 -0
  142. package/dist/commands/paste-resources.d.ts +9 -5
  143. package/dist/commands/patch-apply.d.ts +3 -0
  144. package/dist/commands/patch-count.d.ts +1 -0
  145. package/dist/commands/patch-invalidation.d.ts +4 -0
  146. package/dist/commands/patch-stage.d.ts +4 -0
  147. package/dist/commands/patch.d.ts +4 -0
  148. package/dist/commands/record-clone.d.ts +3 -0
  149. package/dist/commands/record-override.d.ts +5 -0
  150. package/dist/commands/replace-image.d.ts +6 -1
  151. package/dist/commands/sections.d.ts +10 -0
  152. package/dist/commands/set-geometry.d.ts +4 -0
  153. package/dist/commands/set-preset.d.ts +5 -0
  154. package/dist/commands/set-table-style.d.ts +3 -0
  155. package/dist/commands/slide-property-types.d.ts +55 -5
  156. package/dist/commands/slide-size.d.ts +7 -0
  157. package/dist/commands/spid.d.ts +2 -1
  158. package/dist/commands/table-grid-patch.d.ts +12 -0
  159. package/dist/commands/table-style-types.d.ts +28 -0
  160. package/dist/commands/text-target.d.ts +3 -2
  161. package/dist/commands/theme-types.d.ts +47 -0
  162. package/dist/commands/theme.d.ts +9 -0
  163. package/dist/commands/types.d.ts +219 -17
  164. package/dist/commands/ungroup-source.d.ts +3 -0
  165. package/dist/commands/ungroup.d.ts +4 -0
  166. package/dist/comments/index.d.ts +35 -0
  167. package/dist/comments/save.d.ts +3 -0
  168. package/dist/comments/state.d.ts +10 -0
  169. package/dist/comments/xml.d.ts +12 -0
  170. package/dist/comments.js +782 -0
  171. package/dist/common-object-slide-types.d.ts +34 -0
  172. package/dist/custom-geometry-path.d.ts +3 -0
  173. package/dist/custom-geometry.d.ts +12 -0
  174. package/dist/data-validation.d.ts +1 -1
  175. package/dist/describe/budget.d.ts +3 -0
  176. package/dist/describe/index.d.ts +5 -0
  177. package/dist/describe/read.d.ts +4 -0
  178. package/dist/describe/types.d.ts +103 -0
  179. package/dist/describe.js +192 -0
  180. package/dist/design-dependencies.d.ts +8 -0
  181. package/dist/design-projection-package.d.ts +10 -0
  182. package/dist/design-target.d.ts +10 -0
  183. package/dist/design.d.ts +3 -0
  184. package/dist/document-extensions.d.ts +9 -0
  185. package/dist/document.d.ts +1 -1
  186. package/dist/dynamic-projection.d.ts +6 -0
  187. package/dist/edit-core.js +5680 -3413
  188. package/dist/editor.d.ts +19 -2
  189. package/dist/element-source.d.ts +11 -0
  190. package/dist/element-spids.d.ts +4 -0
  191. package/dist/extension-address-journal.d.ts +9 -0
  192. package/dist/extension-address-remap.d.ts +14 -0
  193. package/dist/extension-addresses.d.ts +20 -0
  194. package/dist/extension-copy-history.d.ts +7 -0
  195. package/dist/extension-copy.d.ts +16 -0
  196. package/dist/extension-migration-receipt.d.ts +34 -0
  197. package/dist/extension-recovery-context.d.ts +5 -0
  198. package/dist/extension-runtime.d.ts +64 -0
  199. package/dist/generate/comments.d.ts +3 -0
  200. package/dist/generate/compatibility-parts.d.ts +14 -0
  201. package/dist/generate/compatibility-references.d.ts +3 -0
  202. package/dist/generate/compatibility.d.ts +4 -0
  203. package/dist/generate/custom-geometry.d.ts +2 -0
  204. package/dist/generate/index.d.ts +13 -0
  205. package/dist/generate/links.d.ts +3 -0
  206. package/dist/generate/master-defaults.d.ts +4 -0
  207. package/dist/generate/materialize.d.ts +2 -0
  208. package/dist/generate/math.d.ts +3 -0
  209. package/dist/generate/media.d.ts +13 -0
  210. package/dist/generate/portable-clipboard.d.ts +4 -0
  211. package/dist/generate/projection-tree.d.ts +8 -0
  212. package/dist/generate/table.d.ts +4 -0
  213. package/dist/generate/template.d.ts +70 -0
  214. package/dist/generate/text-body.d.ts +2 -0
  215. package/dist/generate/text-effects.d.ts +5 -0
  216. package/dist/generate/text-override.d.ts +8 -0
  217. package/dist/generate/validation.d.ts +3 -0
  218. package/dist/generate/warp.d.ts +2 -0
  219. package/dist/generate.js +1464 -0
  220. package/dist/history.d.ts +11 -1
  221. package/dist/hyperlink.d.ts +2 -0
  222. package/dist/identities.d.ts +4 -0
  223. package/dist/identity-allocation.d.ts +12 -0
  224. package/dist/identity-watermark.d.ts +4 -0
  225. package/dist/image-content.d.ts +5 -2
  226. package/dist/image-resource-history.d.ts +2 -0
  227. package/dist/index-C2r7c6G6.js +714 -0
  228. package/dist/index-CYDvbiwF.js +1 -0
  229. package/dist/index.d.ts +43 -7
  230. package/dist/ink/index.d.ts +27 -0
  231. package/dist/ink/model.d.ts +4 -0
  232. package/dist/ink/save.d.ts +3 -0
  233. package/dist/ink/source.d.ts +7 -0
  234. package/dist/ink.js +324 -0
  235. package/dist/layout-assets.d.ts +3 -1
  236. package/dist/layout-projection.d.ts +19 -5
  237. package/dist/layout-state.d.ts +2 -0
  238. package/dist/layout-types.d.ts +42 -0
  239. package/dist/layout.d.ts +5 -0
  240. package/dist/lint/color.d.ts +5 -0
  241. package/dist/lint/index.d.ts +7 -0
  242. package/dist/lint/prompts.d.ts +3 -0
  243. package/dist/lint/report.d.ts +21 -0
  244. package/dist/lint/sampler-batch.d.ts +4 -0
  245. package/dist/lint/sampler-images.d.ts +2 -0
  246. package/dist/lint/sampler.d.ts +9 -0
  247. package/dist/lint/snapshot.d.ts +34 -0
  248. package/dist/lint/types.d.ts +67 -0
  249. package/dist/lint-sampler.js +187 -0
  250. package/dist/lint.js +659 -0
  251. package/dist/master-state.d.ts +3 -0
  252. package/dist/master-text-style-state.d.ts +3 -0
  253. package/dist/master-types.d.ts +55 -0
  254. package/dist/master.d.ts +5 -0
  255. package/dist/media/audio-icon.d.ts +2 -0
  256. package/dist/media/commands.d.ts +3 -0
  257. package/dist/media/index.d.ts +10 -0
  258. package/dist/media/markup.d.ts +10 -0
  259. package/dist/media/mp4-boxes.d.ts +12 -0
  260. package/dist/media/mp4-fragments.d.ts +8 -0
  261. package/dist/media/mp4-samples.d.ts +4 -0
  262. package/dist/media/mp4.d.ts +2 -0
  263. package/dist/media/poster.d.ts +2 -0
  264. package/dist/media/replace-poster.d.ts +3 -0
  265. package/dist/media/resource.d.ts +4 -0
  266. package/dist/media/source.d.ts +14 -0
  267. package/dist/media/types.d.ts +33 -0
  268. package/dist/media-properties.d.ts +4 -0
  269. package/dist/media.js +1630 -0
  270. package/dist/model-invariants-BM19JVxy.js +8980 -0
  271. package/dist/object-source.d.ts +11 -0
  272. package/dist/ole/container.d.ts +14 -0
  273. package/dist/ole/content.d.ts +94 -0
  274. package/dist/ole/index.d.ts +20 -0
  275. package/dist/ole/preview.d.ts +3 -0
  276. package/dist/ole/save.d.ts +2 -0
  277. package/dist/ole/state.d.ts +16 -0
  278. package/dist/ole.js +870 -0
  279. package/dist/opc/patch.d.ts +2 -0
  280. package/dist/opc.js +1 -1
  281. package/dist/paragraph-level.d.ts +11 -0
  282. package/dist/paragraph-property-schema.d.ts +5 -2
  283. package/dist/{patch-DO8497wO.js → patch-BwhfBbYE.js} +112 -95
  284. package/dist/patch-change.d.ts +4 -0
  285. package/dist/patch-events.d.ts +16 -0
  286. package/dist/ppt/appearance.d.ts +11 -0
  287. package/dist/ppt/binary.d.ts +20 -0
  288. package/dist/ppt/drawing.d.ts +18 -0
  289. package/dist/ppt/geometry.d.ts +4 -0
  290. package/dist/ppt/index.d.ts +12 -0
  291. package/dist/ppt/pictures.d.ts +11 -0
  292. package/dist/ppt/text.d.ts +9 -0
  293. package/dist/ppt.js +774 -0
  294. package/dist/preset-geometry.d.ts +6 -0
  295. package/dist/projection.d.ts +2 -0
  296. package/dist/query-BHLjWjnu.js +903 -0
  297. package/dist/recovery-identity.d.ts +3 -1
  298. package/dist/recovery-migrations.d.ts +3 -0
  299. package/dist/recovery.d.ts +3 -0
  300. package/dist/resize/index.d.ts +6 -0
  301. package/dist/resize/text.d.ts +4 -0
  302. package/dist/resize.js +5090 -0
  303. package/dist/retained-element-origins.d.ts +6 -0
  304. package/dist/run-property-fields.d.ts +12 -0
  305. package/dist/run-property-schema.d.ts +3 -1
  306. package/dist/run-style.d.ts +15 -0
  307. package/dist/save/alt-text.d.ts +4 -0
  308. package/dist/save/comments.d.ts +3 -0
  309. package/dist/save/effects.d.ts +2 -1
  310. package/dist/save/extension-availability.d.ts +3 -0
  311. package/dist/save/extension-elements.d.ts +26 -0
  312. package/dist/save/geometry.d.ts +5 -0
  313. package/dist/save/index.d.ts +6 -1
  314. package/dist/save/insertion.d.ts +7 -3
  315. package/dist/save/layout-properties.d.ts +4 -0
  316. package/dist/save/master-properties.d.ts +5 -0
  317. package/dist/save/notes.d.ts +2 -0
  318. package/dist/save/paragraph-overrides.d.ts +3 -0
  319. package/dist/save/run-overrides.d.ts +10 -0
  320. package/dist/save/shape-format.d.ts +3 -0
  321. package/dist/save/slide-parts.d.ts +1 -0
  322. package/dist/save/table-style-part.d.ts +11 -0
  323. package/dist/save/table.d.ts +5 -0
  324. package/dist/save/text-source-less.d.ts +6 -0
  325. package/dist/save/xfrm.d.ts +8 -2
  326. package/dist/save.js +502 -1480
  327. package/dist/sections.d.ts +8 -0
  328. package/dist/session-assets.d.ts +4 -0
  329. package/dist/slide-parts-D0o_DDhi.js +1331 -0
  330. package/dist/slide-size.d.ts +6 -0
  331. package/dist/smartart/drawing.d.ts +3 -0
  332. package/dist/smartart/index.d.ts +16 -0
  333. package/dist/smartart/model.d.ts +18 -0
  334. package/dist/smartart/save.d.ts +3 -0
  335. package/dist/smartart.js +604 -0
  336. package/dist/source-retention.d.ts +7 -0
  337. package/dist/space.d.ts +37 -0
  338. package/dist/table-cell.d.ts +7 -1
  339. package/dist/table-direct-markup.d.ts +7 -1
  340. package/dist/table-grid-projection.d.ts +6 -0
  341. package/dist/table-grid.d.ts +45 -0
  342. package/dist/table-invariants.d.ts +4 -0
  343. package/dist/table-rows.d.ts +2 -1
  344. package/dist/table-scale.d.ts +4 -0
  345. package/dist/table-style.d.ts +21 -0
  346. package/dist/templates/index.d.ts +4 -0
  347. package/dist/templates/recipes.d.ts +5 -0
  348. package/dist/templates/types.d.ts +17 -0
  349. package/dist/templates.js +543 -0
  350. package/dist/text-flatten.d.ts +6 -0
  351. package/dist/text-fragment.d.ts +5 -0
  352. package/dist/text-model.d.ts +8 -8
  353. package/dist/text-override-validation.d.ts +6 -2
  354. package/dist/text-selection.d.ts +4 -0
  355. package/dist/theme-projection.d.ts +8 -0
  356. package/dist/theme-xml.d.ts +3 -0
  357. package/dist/theme.d.ts +14 -0
  358. package/dist/types.d.ts +217 -8
  359. package/dist/xml/index.d.ts +1 -1
  360. package/dist/xml/nodes.d.ts +2 -2
  361. package/dist/xml/shape-ids.d.ts +3 -0
  362. package/dist/xml.js +19 -16
  363. package/package.json +77 -5
  364. package/schemas/describe.schema.json +479 -0
  365. package/schemas/lint.schema.json +145 -0
  366. package/dist/index-D4ZTaYOa.js +0 -706
  367. package/dist/insertion-DabLme_U.js +0 -5471
@@ -0,0 +1,187 @@
1
+ import { renderSlideToSvg as le } from "@web-ppt/core";
2
+ import { h as ae, s as ne, n as Z, i as _, j as ee, k as F, m as ie, r as oe, p as ce, b as fe, l as ge, x as ue, L as y, c as V, w as G, d as z, g as D, o as pe } from "./query-BHLjWjnu.js";
3
+ function L(s, n = {}) {
4
+ if ("namespaceUri" in n)
5
+ throw new Error("namespaceUri 由 QName 与 xmlns 声明决定,不能脱离序列化文本覆盖");
6
+ ae(s, "元素");
7
+ const o = ne(s), l = n.selfClosing !== !1, c = [], u = [], t = {
8
+ type: "element",
9
+ name: s,
10
+ prefix: o.prefix,
11
+ localName: o.localName,
12
+ namespaceUri: null,
13
+ attributes: c,
14
+ children: u,
15
+ selfClosing: l
16
+ }, f = {
17
+ raw: l ? `<${s}/>` : `<${s}></${s}>`,
18
+ parent: null,
19
+ dirty: !0,
20
+ openRaw: l ? `<${s}/>` : `<${s}>`,
21
+ closeRaw: l ? "" : `</${s}>`,
22
+ sourceSelfClosing: l,
23
+ sourceAttributes: [],
24
+ namespaces: /* @__PURE__ */ new Map()
25
+ };
26
+ Z.set(t, f), _.set(t, f);
27
+ for (const [w, h, b] of n.attributes ?? [])
28
+ ee(t, w, h, b);
29
+ return t;
30
+ }
31
+ function de(s, n) {
32
+ if (F(n).parent) throw new Error("XML 节点已经属于另一棵树;请先显式移除");
33
+ let l = s;
34
+ for (; l; ) {
35
+ if (l === n) throw new Error("不能把 XML 节点插入自身后代");
36
+ l = F(l).parent;
37
+ }
38
+ }
39
+ function me(s, n) {
40
+ n.type === "element" && oe(n, _.get(s).namespaces);
41
+ }
42
+ function O(s, n, o = null) {
43
+ de(s, n);
44
+ const l = s.children;
45
+ let c = o === null ? l.length : l.indexOf(o);
46
+ if (c < 0) throw new Error("before 不是该父元素的子节点");
47
+ let u = o !== null && c > 0 ? l[c - 1] : null, t = (u == null ? void 0 : u.type) === "text" && !u.value.trim() ? J(u.value) : null;
48
+ if (o === null && c > 0) {
49
+ const f = l[c - 1];
50
+ if (f.type === "text" && !f.value.trim()) {
51
+ u = [...l.slice(0, -1)].reverse().find((h) => h.type === "text" && !h.value.trim()) ?? null;
52
+ const w = (u == null ? void 0 : u.type) === "text" ? u.value : f.value.replace(/([^\r\n])?$/, " $&");
53
+ t = J(w), c--, l.splice(c, 0, t, n), c++;
54
+ } else
55
+ l.splice(c, 0, n);
56
+ } else
57
+ l.splice(c, 0, n, ...t ? [t] : []);
58
+ return me(s, n), F(n).parent = s, t && (F(t).parent = s), s.selfClosing = !1, ie(s), c;
59
+ }
60
+ function J(s) {
61
+ const n = { type: "text", value: s }, o = s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
62
+ return Z.set(n, { raw: o, parent: null, dirty: !0 }), n;
63
+ }
64
+ function he(s) {
65
+ const n = ce(s), o = n.root;
66
+ let l = fe(o, { localName: "defs" });
67
+ l || (l = L("defs"), O(o, l, o.children[0] ?? null));
68
+ const c = "lint-mask-image-black", u = L("filter", { attributes: [["id", c], ["color-interpolation-filters", "sRGB"]] });
69
+ O(u, L("feColorMatrix", { attributes: [["type", "matrix"], ["values", "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"]] })), O(l, u);
70
+ const t = (f) => {
71
+ f.localName === "image" && ee(f, "filter", `url(#${c})`);
72
+ for (const w of ue(f)) t(w);
73
+ };
74
+ return t(o), ge(n);
75
+ }
76
+ const j = "rgba(0,0,0,0)", H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";
77
+ function we(s, n) {
78
+ const o = [];
79
+ for (let l = 0; l < s.length; l += 32768) o.push(String.fromCharCode(...s.subarray(l, l + 32768)));
80
+ return `data:${n};base64,${btoa(o.join(""))}`;
81
+ }
82
+ function Ae(s) {
83
+ const n = s.scale ?? 3, o = s.maxPixels ?? 64 * 1024 * 1024;
84
+ if (typeof s.rasterize != "function" || !Number.isFinite(n) || n < 1 || !Number.isSafeInteger(o) || o < 1) throw new y("invalid-options", "SVG 采样必须提供 rasterize、正比例和正像素上限");
85
+ const l = /* @__PURE__ */ new WeakMap(), c = [], u = async (t) => {
86
+ var W;
87
+ V(t.signal);
88
+ const f = Math.ceil(t.canvas.width * n), w = Math.ceil(t.canvas.height * n);
89
+ if (f * w > o) throw new y("resource-limit", "SVG 采样超过 maxPixels", t.slideNumber, t.elementId);
90
+ const h = new Map(t.bindings.map((e) => [e.element, e.elementId])), b = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map();
91
+ let S = 0;
92
+ const te = (e, r, g) => {
93
+ let i = v.get(e);
94
+ i || v.set(e, i = /* @__PURE__ */ new Map());
95
+ let a = i.get(r);
96
+ a || i.set(r, a = /* @__PURE__ */ new Map());
97
+ let p = a.get(g);
98
+ if (p === void 0) {
99
+ if (++S >= 16777215) throw new y("resource-limit", "页面文本标记超过 24 位范围");
100
+ p = S * 10368889 & 16777215, a.set(g, p), b.set(p, { owner: e, paragraph: r, runIndex: g, pair: null, ratio: 22 });
101
+ }
102
+ return "#" + p.toString(16).padStart(6, "0");
103
+ }, U = (e) => {
104
+ if (!e || e.startsWith("data:")) return e;
105
+ const r = t.resource(e);
106
+ if (!r) throw new y("image-resource-unavailable", "SVG 采样缺少自包含资源", t.slideNumber, t.elementId);
107
+ return we(r.bytes, r.mime);
108
+ }, M = (e) => (e == null ? void 0 : e.type) === "image" ? { ...e, src: U(e.src) } : e ?? null, I = (e) => `rgba(0,0,0,${z(e)[3]})`, B = (e) => !e || e.type === "none" ? e ?? null : e.type === "solid" ? { ...e, color: I(e.color) } : e.type === "gradient" ? { ...e, stops: e.stops.map((r) => ({ ...r, color: I(r.color) })) } : e.type === "pattern" ? { ...e, fg: I(e.fg), bg: I(e.bg) } : M(e), P = (e) => e && { ...e, color: I(e.color) };
109
+ let A;
110
+ const Q = (e, r, g) => e && {
111
+ ...e,
112
+ paragraphs: e.paragraphs.map((i) => ({
113
+ ...i,
114
+ ...r !== "full" ? { bulletColor: j, bulletImage: i.bulletImage ? H : i.bulletImage } : {},
115
+ runs: i.runs.map((a, p) => {
116
+ const k = { ...a, ...s.fontFamily ? { fonts: [s.fontFamily] } : {} };
117
+ if (r === "full") return k;
118
+ const m = z(a.color)[3] === 0 && !a.outline && !a.gradient && !a.gradientFill && !a.shadow && !a.shadowEffect;
119
+ return {
120
+ ...k,
121
+ color: !m && r === "mask" ? te(g, i, p) : (r === "single" || r === "coverage") && g === (A == null ? void 0 : A.owner) && i === A.paragraph && p === A.runIndex ? "#ffffff" : j,
122
+ gradient: null,
123
+ gradientFill: null,
124
+ outline: null,
125
+ shadow: null,
126
+ shadowEffect: null,
127
+ ...r === "mask" || r === "single" || r === "coverage" ? { highlight: null } : {}
128
+ };
129
+ })
130
+ }))
131
+ }, T = (e, r, g) => {
132
+ const i = h.get(e) ?? g, a = r === "mask" || r === "single" || r === "coverage", p = { ...e, ...a ? { effects: void 0 } : {} };
133
+ return e.kind === "shape" ? { ...p, kind: "shape", path: e.path, fill: r === "coverage" ? null : a ? B(e.fill) : M(e.fill), stroke: r === "coverage" ? null : a ? P(e.stroke) ?? null : e.stroke, text: Q(e.text, r, i) } : e.kind === "group" ? { ...e, effects: a ? void 0 : e.effects, children: e.children.map((k) => T(k, r, i)) } : e.kind === "image" ? { ...e, effects: a ? void 0 : e.effects, src: r === "coverage" ? H : U(e.src), filter: a ? `${e.filter ?? ""} brightness(0)` : e.filter, media: void 0 } : e.kind === "table" ? { ...e, effects: a ? void 0 : e.effects, rows: e.rows.map((k) => ({ ...k, cells: k.cells.map((m) => ({ ...m, fill: r === "coverage" ? null : a ? B(m.fill) : M(m.fill), borders: r === "coverage" ? {} : a ? Object.fromEntries(Object.entries(m.borders ?? {}).map(([d, X]) => [d, P(X)])) : m.borders, text: Q(m.text, r, i) })) })) } : a ? { ...p, kind: "shape", path: null, fill: null, stroke: null, text: null } : e;
134
+ }, re = (W = s.embeddedFonts) == null ? void 0 : W.map((e) => ({ ...e, src: U(e.src) })), N = async (e) => {
135
+ const r = { ...t.slide, background: e === "mask" || e === "single" || e === "coverage" ? { type: "solid", color: j } : M(t.slide.background), elements: t.slide.elements.map((a) => T(a, e, "")) };
136
+ let g = le({ width: t.canvas.width, height: t.canvas.height, source: "pptx", slides: [], embeddedFonts: re }, r, { textMode: "svg", idPrefix: "lint-sample" });
137
+ (e === "mask" || e === "single") && (g = he(g));
138
+ const i = await G(s.rasterize(g, f, w, t.signal), t.signal);
139
+ if (i.length !== f * w * 4) throw new y("invalid-raster", "rasterize 必须返回指定尺寸的 RGBA8", t.slideNumber, t.elementId);
140
+ return i;
141
+ }, x = await N("full"), K = await N("background"), C = await N("mask"), se = z(t.canvas.color), $ = (e, r) => pe([e[r] / 255, e[r + 1] / 255, e[r + 2] / 255, e[r + 3] / 255], se), E = (e) => `rgb(${e[0] * 255},${e[1] * 255},${e[2] * 255})`;
142
+ for (let e = 0; e < C.length; e += 4) {
143
+ if (C[e + 3] !== 255) continue;
144
+ const r = b.get(C[e] << 16 | C[e + 1] << 8 | C[e + 2]);
145
+ if (!r) continue;
146
+ const g = $(x, e), i = $(K, e), a = D(g, i);
147
+ a < r.ratio && (r.ratio = a, r.pair = { foreground: E(g), background: E(i) });
148
+ }
149
+ V(t.signal);
150
+ const R = /* @__PURE__ */ new Map();
151
+ for (const e of b.values()) {
152
+ let r = R.get(e.owner);
153
+ r || R.set(e.owner, r = /* @__PURE__ */ new Map());
154
+ let g = r.get(e.paragraph);
155
+ g || r.set(e.paragraph, g = /* @__PURE__ */ new Map()), g.set(e.runIndex, e.pair ? [e.pair] : async () => {
156
+ A = e;
157
+ const i = await N("single");
158
+ A = e;
159
+ const a = await N("coverage");
160
+ let p = !1, k = 22, m = null;
161
+ for (let d = 0; d < i.length; d += 4) {
162
+ if (p || (p = i[d] > 0 || i[d + 1] > 0 || i[d + 2] > 0), a[d + 3] !== 255 || i[d] === 0 && i[d + 1] === 0 && i[d + 2] === 0) continue;
163
+ const X = $(x, d), Y = $(K, d), q = D(X, Y);
164
+ q < k && (k = q, m = { foreground: E(X), background: E(Y) });
165
+ }
166
+ if (m) return [m];
167
+ if (!p) return { visible: !1 };
168
+ throw new y("contrast-resolution-insufficient", "采样像素不足,请提高 scale", t.slideNumber, t.elementId);
169
+ });
170
+ }
171
+ return R;
172
+ };
173
+ return async (t) => {
174
+ var S;
175
+ V(t.signal);
176
+ let f = l.get(t.slide);
177
+ f || (f = u(t), l.set(t.slide, f), c.push(t.slide), c.length > 2 && l.delete(c.shift()));
178
+ const h = (S = (await G(f, t.signal)).get(t.elementId)) == null ? void 0 : S.get(t.paragraph), b = h == null ? void 0 : h.get(t.runIndex);
179
+ if (b === void 0) throw new y("contrast-context-unavailable", "采样段落不属于调用时投影", t.slideNumber, t.elementId);
180
+ if (typeof b != "function") return b;
181
+ const v = await G(b(), t.signal);
182
+ return h.set(t.runIndex, v), v;
183
+ };
184
+ }
185
+ export {
186
+ Ae as createSvgContrastSampler
187
+ };