@deckflow/deckuse 1.2.1 → 1.3.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 (281) hide show
  1. package/README.es.md +342 -0
  2. package/README.fr.md +342 -0
  3. package/README.ja.md +342 -0
  4. package/README.ko.md +342 -0
  5. package/README.md +46 -8
  6. package/README.pt-BR.md +342 -0
  7. package/README.ru.md +342 -0
  8. package/README.zh-CN.md +367 -0
  9. package/assets/default.docx +0 -0
  10. package/assets/default.pptx +0 -0
  11. package/dist/bin.js +183 -19
  12. package/dist/bin.js.map +1 -1
  13. package/dist/core/adapter.d.ts +24 -0
  14. package/dist/core/adapter.d.ts.map +1 -0
  15. package/dist/core/adapter.js +20 -0
  16. package/dist/core/adapter.js.map +1 -0
  17. package/dist/core/executor.d.ts +24 -0
  18. package/dist/core/executor.d.ts.map +1 -0
  19. package/dist/core/executor.js +65 -0
  20. package/dist/core/executor.js.map +1 -0
  21. package/dist/core/index.d.ts +7 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/index.js +7 -0
  24. package/dist/core/index.js.map +1 -0
  25. package/dist/core/length.d.ts +27 -0
  26. package/dist/core/length.d.ts.map +1 -0
  27. package/dist/core/length.js +63 -0
  28. package/dist/core/length.js.map +1 -0
  29. package/dist/core/measure.d.ts +24 -0
  30. package/dist/core/measure.d.ts.map +1 -0
  31. package/dist/core/measure.js +79 -0
  32. package/dist/core/measure.js.map +1 -0
  33. package/dist/core/not-implemented.d.ts +3 -0
  34. package/dist/core/not-implemented.d.ts.map +1 -0
  35. package/dist/core/not-implemented.js +12 -0
  36. package/dist/core/not-implemented.js.map +1 -0
  37. package/dist/core/schema.d.ts +3035 -0
  38. package/dist/core/schema.d.ts.map +1 -0
  39. package/dist/core/schema.js +798 -0
  40. package/dist/core/schema.js.map +1 -0
  41. package/dist/default-template.d.ts +8 -0
  42. package/dist/default-template.d.ts.map +1 -0
  43. package/dist/default-template.js +29 -0
  44. package/dist/default-template.js.map +1 -0
  45. package/dist/docx/adapter.d.ts +29 -0
  46. package/dist/docx/adapter.d.ts.map +1 -0
  47. package/dist/docx/adapter.js +442 -0
  48. package/dist/docx/adapter.js.map +1 -0
  49. package/dist/docx/addressing.d.ts +18 -0
  50. package/dist/docx/addressing.d.ts.map +1 -0
  51. package/dist/docx/addressing.js +111 -0
  52. package/dist/docx/addressing.js.map +1 -0
  53. package/dist/docx/blank.d.ts +4 -0
  54. package/dist/docx/blank.d.ts.map +1 -0
  55. package/dist/docx/blank.js +75 -0
  56. package/dist/docx/blank.js.map +1 -0
  57. package/dist/docx/index-sync.d.ts +7 -0
  58. package/dist/docx/index-sync.d.ts.map +1 -0
  59. package/dist/docx/index-sync.js +24 -0
  60. package/dist/docx/index-sync.js.map +1 -0
  61. package/dist/docx/index.d.ts +5 -0
  62. package/dist/docx/index.d.ts.map +1 -0
  63. package/dist/docx/index.js +4 -0
  64. package/dist/docx/index.js.map +1 -0
  65. package/dist/docx/indexer.d.ts +41 -0
  66. package/dist/docx/indexer.d.ts.map +1 -0
  67. package/dist/docx/indexer.js +353 -0
  68. package/dist/docx/indexer.js.map +1 -0
  69. package/dist/docx/mutations.d.ts +5 -0
  70. package/dist/docx/mutations.d.ts.map +1 -0
  71. package/dist/docx/mutations.js +311 -0
  72. package/dist/docx/mutations.js.map +1 -0
  73. package/dist/docx/paragraphs.d.ts +26 -0
  74. package/dist/docx/paragraphs.d.ts.map +1 -0
  75. package/dist/docx/paragraphs.js +314 -0
  76. package/dist/docx/paragraphs.js.map +1 -0
  77. package/dist/docx/properties.d.ts +23 -0
  78. package/dist/docx/properties.d.ts.map +1 -0
  79. package/dist/docx/properties.js +414 -0
  80. package/dist/docx/properties.js.map +1 -0
  81. package/dist/docx/tables.d.ts +4 -0
  82. package/dist/docx/tables.d.ts.map +1 -0
  83. package/dist/docx/tables.js +64 -0
  84. package/dist/docx/tables.js.map +1 -0
  85. package/dist/docx/text-spans.d.ts +25 -0
  86. package/dist/docx/text-spans.d.ts.map +1 -0
  87. package/dist/docx/text-spans.js +142 -0
  88. package/dist/docx/text-spans.js.map +1 -0
  89. package/dist/docx/types.d.ts +27 -0
  90. package/dist/docx/types.d.ts.map +1 -0
  91. package/dist/docx/types.js +2 -0
  92. package/dist/docx/types.js.map +1 -0
  93. package/dist/docx/workspace.d.ts +20 -0
  94. package/dist/docx/workspace.d.ts.map +1 -0
  95. package/dist/docx/workspace.js +145 -0
  96. package/dist/docx/workspace.js.map +1 -0
  97. package/dist/docx/xml.d.ts +18 -0
  98. package/dist/docx/xml.d.ts.map +1 -0
  99. package/dist/docx/xml.js +87 -0
  100. package/dist/docx/xml.js.map +1 -0
  101. package/dist/edition-config/index.d.ts +25 -0
  102. package/dist/edition-config/index.d.ts.map +1 -0
  103. package/dist/edition-config/index.js +22 -0
  104. package/dist/edition-config/index.js.map +1 -0
  105. package/dist/edition.d.ts +2 -2
  106. package/dist/edition.d.ts.map +1 -1
  107. package/dist/edition.js +1 -1
  108. package/dist/edition.js.map +1 -1
  109. package/dist/help.d.ts.map +1 -1
  110. package/dist/help.js +124 -32
  111. package/dist/help.js.map +1 -1
  112. package/dist/index.d.ts +1 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +6 -6
  115. package/dist/index.js.map +1 -1
  116. package/dist/key/index.d.ts +2 -0
  117. package/dist/key/index.d.ts.map +1 -0
  118. package/dist/key/index.js +3 -0
  119. package/dist/key/index.js.map +1 -0
  120. package/dist/monitor-daemon.d.ts +21 -8
  121. package/dist/monitor-daemon.d.ts.map +1 -1
  122. package/dist/monitor-daemon.js +189 -51
  123. package/dist/monitor-daemon.js.map +1 -1
  124. package/dist/monitor-registry.d.ts +34 -0
  125. package/dist/monitor-registry.d.ts.map +1 -0
  126. package/dist/monitor-registry.js +191 -0
  127. package/dist/monitor-registry.js.map +1 -0
  128. package/dist/monitor.js +1 -1
  129. package/dist/monitor.js.map +1 -1
  130. package/dist/numbers/index.d.ts +2 -0
  131. package/dist/numbers/index.d.ts.map +1 -0
  132. package/dist/numbers/index.js +3 -0
  133. package/dist/numbers/index.js.map +1 -0
  134. package/dist/opc/index.d.ts +90 -0
  135. package/dist/opc/index.d.ts.map +1 -0
  136. package/dist/opc/index.js +569 -0
  137. package/dist/opc/index.js.map +1 -0
  138. package/dist/pptx/adapter.d.ts +167 -0
  139. package/dist/pptx/adapter.d.ts.map +1 -0
  140. package/dist/pptx/adapter.js +807 -0
  141. package/dist/pptx/adapter.js.map +1 -0
  142. package/dist/pptx/addressing.d.ts +45 -0
  143. package/dist/pptx/addressing.d.ts.map +1 -0
  144. package/dist/pptx/addressing.js +428 -0
  145. package/dist/pptx/addressing.js.map +1 -0
  146. package/dist/pptx/align.d.ts +24 -0
  147. package/dist/pptx/align.d.ts.map +1 -0
  148. package/dist/pptx/align.js +112 -0
  149. package/dist/pptx/align.js.map +1 -0
  150. package/dist/pptx/chart-classify.d.ts +10 -0
  151. package/dist/pptx/chart-classify.d.ts.map +1 -0
  152. package/dist/pptx/chart-classify.js +58 -0
  153. package/dist/pptx/chart-classify.js.map +1 -0
  154. package/dist/pptx/chart.d.ts +42 -0
  155. package/dist/pptx/chart.d.ts.map +1 -0
  156. package/dist/pptx/chart.js +614 -0
  157. package/dist/pptx/chart.js.map +1 -0
  158. package/dist/pptx/edition-extension.d.ts +25 -0
  159. package/dist/pptx/edition-extension.d.ts.map +1 -0
  160. package/dist/pptx/edition-extension.js +10 -0
  161. package/dist/pptx/edition-extension.js.map +1 -0
  162. package/dist/pptx/edition.d.ts +20 -0
  163. package/dist/pptx/edition.d.ts.map +1 -0
  164. package/dist/pptx/edition.js +69 -0
  165. package/dist/pptx/edition.js.map +1 -0
  166. package/dist/pptx/elements.d.ts +12 -0
  167. package/dist/pptx/elements.d.ts.map +1 -0
  168. package/dist/pptx/elements.js +224 -0
  169. package/dist/pptx/elements.js.map +1 -0
  170. package/dist/pptx/hyperlink.d.ts +7 -0
  171. package/dist/pptx/hyperlink.d.ts.map +1 -0
  172. package/dist/pptx/hyperlink.js +81 -0
  173. package/dist/pptx/hyperlink.js.map +1 -0
  174. package/dist/pptx/index-sync.d.ts +7 -0
  175. package/dist/pptx/index-sync.d.ts.map +1 -0
  176. package/dist/pptx/index-sync.js +24 -0
  177. package/dist/pptx/index-sync.js.map +1 -0
  178. package/dist/pptx/index.d.ts +10 -0
  179. package/dist/pptx/index.d.ts.map +1 -0
  180. package/dist/pptx/index.js +7 -0
  181. package/dist/pptx/index.js.map +1 -0
  182. package/dist/pptx/indexer.d.ts +19 -0
  183. package/dist/pptx/indexer.d.ts.map +1 -0
  184. package/dist/pptx/indexer.js +319 -0
  185. package/dist/pptx/indexer.js.map +1 -0
  186. package/dist/pptx/layout-ref.d.ts +41 -0
  187. package/dist/pptx/layout-ref.d.ts.map +1 -0
  188. package/dist/pptx/layout-ref.js +145 -0
  189. package/dist/pptx/layout-ref.js.map +1 -0
  190. package/dist/pptx/media.d.ts +15 -0
  191. package/dist/pptx/media.d.ts.map +1 -0
  192. package/dist/pptx/media.js +145 -0
  193. package/dist/pptx/media.js.map +1 -0
  194. package/dist/pptx/mutations.d.ts +11 -0
  195. package/dist/pptx/mutations.d.ts.map +1 -0
  196. package/dist/pptx/mutations.js +1111 -0
  197. package/dist/pptx/mutations.js.map +1 -0
  198. package/dist/pptx/picture.d.ts +25 -0
  199. package/dist/pptx/picture.d.ts.map +1 -0
  200. package/dist/pptx/picture.js +118 -0
  201. package/dist/pptx/picture.js.map +1 -0
  202. package/dist/pptx/placeholder-role.d.ts +19 -0
  203. package/dist/pptx/placeholder-role.d.ts.map +1 -0
  204. package/dist/pptx/placeholder-role.js +71 -0
  205. package/dist/pptx/placeholder-role.js.map +1 -0
  206. package/dist/pptx/properties.d.ts +13 -0
  207. package/dist/pptx/properties.d.ts.map +1 -0
  208. package/dist/pptx/properties.js +587 -0
  209. package/dist/pptx/properties.js.map +1 -0
  210. package/dist/pptx/resolve-properties.d.ts +17 -0
  211. package/dist/pptx/resolve-properties.d.ts.map +1 -0
  212. package/dist/pptx/resolve-properties.js +571 -0
  213. package/dist/pptx/resolve-properties.js.map +1 -0
  214. package/dist/pptx/slide-size.d.ts +9 -0
  215. package/dist/pptx/slide-size.d.ts.map +1 -0
  216. package/dist/pptx/slide-size.js +29 -0
  217. package/dist/pptx/slide-size.js.map +1 -0
  218. package/dist/pptx/slides.d.ts +15 -0
  219. package/dist/pptx/slides.d.ts.map +1 -0
  220. package/dist/pptx/slides.js +236 -0
  221. package/dist/pptx/slides.js.map +1 -0
  222. package/dist/pptx/table-measure.d.ts +43 -0
  223. package/dist/pptx/table-measure.d.ts.map +1 -0
  224. package/dist/pptx/table-measure.js +70 -0
  225. package/dist/pptx/table-measure.js.map +1 -0
  226. package/dist/pptx/table.d.ts +23 -0
  227. package/dist/pptx/table.d.ts.map +1 -0
  228. package/dist/pptx/table.js +529 -0
  229. package/dist/pptx/table.js.map +1 -0
  230. package/dist/pptx/types.d.ts +27 -0
  231. package/dist/pptx/types.d.ts.map +1 -0
  232. package/dist/pptx/types.js +2 -0
  233. package/dist/pptx/types.js.map +1 -0
  234. package/dist/pptx/workspace.d.ts +23 -0
  235. package/dist/pptx/workspace.d.ts.map +1 -0
  236. package/dist/pptx/workspace.js +148 -0
  237. package/dist/pptx/workspace.js.map +1 -0
  238. package/dist/pptx/xml.d.ts +67 -0
  239. package/dist/pptx/xml.d.ts.map +1 -0
  240. package/dist/pptx/xml.js +355 -0
  241. package/dist/pptx/xml.js.map +1 -0
  242. package/dist/render.d.ts.map +1 -1
  243. package/dist/render.js +14 -2
  244. package/dist/render.js.map +1 -1
  245. package/dist/version.d.ts +1 -1
  246. package/dist/version.js +1 -1
  247. package/dist/workspace/git.d.ts +7 -0
  248. package/dist/workspace/git.d.ts.map +1 -0
  249. package/dist/workspace/git.js +82 -0
  250. package/dist/workspace/git.js.map +1 -0
  251. package/dist/workspace/index.d.ts +7 -0
  252. package/dist/workspace/index.d.ts.map +1 -0
  253. package/dist/workspace/index.js +7 -0
  254. package/dist/workspace/index.js.map +1 -0
  255. package/dist/workspace/lock.d.ts +3 -0
  256. package/dist/workspace/lock.d.ts.map +1 -0
  257. package/dist/workspace/lock.js +35 -0
  258. package/dist/workspace/lock.js.map +1 -0
  259. package/dist/workspace/metadata.d.ts +4 -0
  260. package/dist/workspace/metadata.d.ts.map +1 -0
  261. package/dist/workspace/metadata.js +21 -0
  262. package/dist/workspace/metadata.js.map +1 -0
  263. package/dist/workspace/operations.d.ts +14 -0
  264. package/dist/workspace/operations.d.ts.map +1 -0
  265. package/dist/workspace/operations.js +35 -0
  266. package/dist/workspace/operations.js.map +1 -0
  267. package/dist/workspace/paths.d.ts +11 -0
  268. package/dist/workspace/paths.d.ts.map +1 -0
  269. package/dist/workspace/paths.js +12 -0
  270. package/dist/workspace/paths.js.map +1 -0
  271. package/dist/workspace/revision.d.ts +6 -0
  272. package/dist/workspace/revision.d.ts.map +1 -0
  273. package/dist/workspace/revision.js +15 -0
  274. package/dist/workspace/revision.js.map +1 -0
  275. package/dist/xlsx/index.d.ts +2 -0
  276. package/dist/xlsx/index.d.ts.map +1 -0
  277. package/dist/xlsx/index.js +3 -0
  278. package/dist/xlsx/index.js.map +1 -0
  279. package/package.json +48 -27
  280. package/schema/command.schema.json +2399 -0
  281. package/dist/.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.js","sourceRoot":"","sources":["../../src/pptx/chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Result } from '../core/index.js';
2
+ import type { OpcArchive } from '../opc/index.js';
3
+ import type { IndexedElement } from './types.js';
4
+ /**
5
+ * Optional edition extension registered by proprietary overlays.
6
+ * Community builds leave this unset; gated writes (master/layout/theme/advanced chart)
7
+ * are hard-denied regardless of `editionCapabilities`.
8
+ *
9
+ * Extension authors may call exported pptx primitives (`setNodeText`, `applyChartProperties`,
10
+ * `classifyChartPart`, …). This surface is for edition hooks — not a stable CLI contract.
11
+ */
12
+ export interface PptxEditionExtension {
13
+ /**
14
+ * Decide writability for edition-gated targets only.
15
+ * - `ok` — allow the shared mutation pipeline to proceed
16
+ * - `err` — deny with the given error
17
+ * - `undefined` — fall through to the community hard-deny message
18
+ */
19
+ assertWritable?(item: IndexedElement, archive: OpcArchive): Result<void> | undefined;
20
+ }
21
+ export declare const registerPptxEditionExtension: (extension: PptxEditionExtension) => void;
22
+ export declare const getPptxEditionExtension: () => PptxEditionExtension | undefined;
23
+ /** Test / teardown helper — clears any registered extension. */
24
+ export declare const clearPptxEditionExtension: () => void;
25
+ //# sourceMappingURL=edition-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edition-extension.d.ts","sourceRoot":"","sources":["../../src/pptx/edition-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;CACtF;AAID,eAAO,MAAM,4BAA4B,GAAI,WAAW,oBAAoB,KAAG,IAE9E,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAO,oBAAoB,GAAG,SAAuB,CAAC;AAE1F,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,QAAO,IAE5C,CAAC"}
@@ -0,0 +1,10 @@
1
+ let registered;
2
+ export const registerPptxEditionExtension = (extension) => {
3
+ registered = extension;
4
+ };
5
+ export const getPptxEditionExtension = () => registered;
6
+ /** Test / teardown helper — clears any registered extension. */
7
+ export const clearPptxEditionExtension = () => {
8
+ registered = undefined;
9
+ };
10
+ //# sourceMappingURL=edition-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edition-extension.js","sourceRoot":"","sources":["../../src/pptx/edition-extension.ts"],"names":[],"mappings":"AAsBA,IAAI,UAA4C,CAAC;AAEjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAA+B,EAAQ,EAAE;IACpF,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAqC,EAAE,CAAC,UAAU,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAS,EAAE;IAClD,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type Result } from '../core/index.js';
2
+ import { EDITION, EDITION_VARIANT, DISTRIBUTION_CHANNEL, editionCapabilities, editionMetadata } from '../edition-config/index.js';
3
+ import type { OpcArchive } from '../opc/index.js';
4
+ import type { IndexedElement } from './types.js';
5
+ export type { Edition } from '../edition-config/index.js';
6
+ export { EDITION, EDITION_VARIANT, DISTRIBUTION_CHANNEL, editionCapabilities, editionMetadata };
7
+ export { clearPptxEditionExtension, getPptxEditionExtension, registerPptxEditionExtension, type PptxEditionExtension, } from './edition-extension.js';
8
+ /** Targets whose writes are never opened by `editionCapabilities` alone. */
9
+ export type EditionGatedWriteKind = 'theme' | 'master' | 'layout' | 'advanced-chart';
10
+ export declare const editionGatedWriteKind: (item: IndexedElement, archive: OpcArchive) => EditionGatedWriteKind | undefined;
11
+ /**
12
+ * Returns a denial message when writing `item` is forbidden.
13
+ *
14
+ * Master / layout / theme / advanced-chart writes are hard-denied in shared code.
15
+ * Only a registered `PptxEditionExtension.assertWritable` can allow them —
16
+ * flipping `editionCapabilities` alone never opens these paths.
17
+ */
18
+ export declare const writeDenialReason: (item: IndexedElement, archive: OpcArchive) => string | undefined;
19
+ export declare const assertWritable: (item: IndexedElement, archive: OpcArchive) => Result<void>;
20
+ //# sourceMappingURL=edition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edition.d.ts","sourceRoot":"","sources":["../../src/pptx/edition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,YAAY,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAChG,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAmBhC,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAErF,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,EACpB,SAAS,UAAU,KAClB,qBAAqB,GAAG,SAM1B,CAAC;AAeF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,cAAc,EACpB,SAAS,UAAU,KAClB,MAAM,GAAG,SAcX,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,cAAc,EAAE,SAAS,UAAU,KAAG,MAAM,CAAC,IAAI,CAIrF,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { err, ok } from '../core/index.js';
2
+ import { EDITION, EDITION_VARIANT, DISTRIBUTION_CHANNEL, editionCapabilities, editionMetadata, } from '../edition-config/index.js';
3
+ import { classifyChartPart } from './chart-classify.js';
4
+ import { getPptxEditionExtension } from './edition-extension.js';
5
+ export { EDITION, EDITION_VARIANT, DISTRIBUTION_CHANNEL, editionCapabilities, editionMetadata };
6
+ export { clearPptxEditionExtension, getPptxEditionExtension, registerPptxEditionExtension, } from './edition-extension.js';
7
+ const isThemePart = (item) => item.kind === 'theme' || item.partUri.startsWith('/ppt/theme/');
8
+ const isMasterPart = (item) => item.kind === 'master' || item.partUri.startsWith('/ppt/slideMasters/');
9
+ const isLayoutPart = (item) => item.kind === 'layout' || item.partUri.startsWith('/ppt/slideLayouts/');
10
+ const chartVariantOf = (item, archive) => {
11
+ if (item.kind !== 'chart')
12
+ return undefined;
13
+ const chartPart = typeof item.payload?.['chartPart'] === 'string' ? item.payload['chartPart'] : undefined;
14
+ if (!chartPart || !archive.getPart(chartPart))
15
+ return 'advanced';
16
+ return classifyChartPart(archive, chartPart);
17
+ };
18
+ export const editionGatedWriteKind = (item, archive) => {
19
+ if (isThemePart(item))
20
+ return 'theme';
21
+ if (isMasterPart(item))
22
+ return 'master';
23
+ if (isLayoutPart(item))
24
+ return 'layout';
25
+ if (chartVariantOf(item, archive) === 'advanced')
26
+ return 'advanced-chart';
27
+ return undefined;
28
+ };
29
+ const hardDenyMessage = (kind) => {
30
+ switch (kind) {
31
+ case 'theme':
32
+ return `Theme editing is not available (edition=${EDITION}); theme parts are preserve-only`;
33
+ case 'master':
34
+ return `Master slide editing requires the commercial edition (edition=${EDITION})`;
35
+ case 'layout':
36
+ return `Layout slide editing requires the commercial edition (edition=${EDITION})`;
37
+ case 'advanced-chart':
38
+ return `Advanced chart editing requires the commercial edition (edition=${EDITION})`;
39
+ }
40
+ };
41
+ /**
42
+ * Returns a denial message when writing `item` is forbidden.
43
+ *
44
+ * Master / layout / theme / advanced-chart writes are hard-denied in shared code.
45
+ * Only a registered `PptxEditionExtension.assertWritable` can allow them —
46
+ * flipping `editionCapabilities` alone never opens these paths.
47
+ */
48
+ export const writeDenialReason = (item, archive) => {
49
+ const kind = editionGatedWriteKind(item, archive);
50
+ if (!kind)
51
+ return undefined;
52
+ const ext = getPptxEditionExtension();
53
+ if (ext?.assertWritable) {
54
+ const verdict = ext.assertWritable(item, archive);
55
+ if (verdict !== undefined) {
56
+ if (verdict.ok)
57
+ return undefined;
58
+ return verdict.error.message;
59
+ }
60
+ }
61
+ return hardDenyMessage(kind);
62
+ };
63
+ export const assertWritable = (item, archive) => {
64
+ const reason = writeDenialReason(item, archive);
65
+ if (reason)
66
+ return err('UNSUPPORTED_CAPABILITY', reason);
67
+ return ok(undefined);
68
+ };
69
+ //# sourceMappingURL=edition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edition.js","sourceRoot":"","sources":["../../src/pptx/edition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { OpcArchive } from '../opc/index.js';
2
+ import type { Document, Element } from '@xmldom/xmldom';
3
+ export { estimateTableHeightEmu, estimateTableRowHeightEmu, measureTableLayout, } from './table-measure.js';
4
+ /** Normalize addShape rows to string[][]. */
5
+ export declare const normalizeTableRows: (raw: unknown) => string[][];
6
+ export declare function addElement(archive: OpcArchive, slidePart: string, doc: Document, parent: Element, e: Record<string, unknown>): Promise<Element>;
7
+ export declare const duplicateElement: (doc: Document, node: Element) => Element;
8
+ export declare function updateChart(archive: OpcArchive, part: string, properties: Record<string, unknown>): {
9
+ workbook: boolean;
10
+ };
11
+ export declare function setColor(node: Element, from: string, to: string): number;
12
+ //# sourceMappingURL=elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/pptx/elements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAexD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAqF5B,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,GAAI,KAAK,OAAO,KAAG,MAAM,EAAE,EAKzD,CAAC;AA6HF,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,OAAO,EACf,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AACD,eAAO,MAAM,gBAAgB,GAAI,KAAK,QAAQ,EAAE,MAAM,OAAO,KAAG,OAK/D,CAAC;AACF,wBAAgB,WAAW,CACzB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAKvB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAQxE"}
@@ -0,0 +1,224 @@
1
+ import { OpcArchive, parseXml } from '../opc/index.js';
2
+ import { parseLength } from '../core/index.js';
3
+ import { applyChartProperties, chartGraphicFrameXml, createChartPart, } from './chart.js';
4
+ import { addMediaPart, mediaPicXml } from './media.js';
5
+ import { addPicturePart } from './picture.js';
6
+ import { normalizePlaceholderRole } from './placeholder-role.js';
7
+ import { lengthContextFor } from './slide-size.js';
8
+ import { estimateTableRowHeightEmu, measureTableLayout } from './table-measure.js';
9
+ import { NS, REL, allocateShapeIds, attr, descendants, nextShapeId } from './xml.js';
10
+ export { estimateTableHeightEmu, estimateTableRowHeightEmu, measureTableLayout, } from './table-measure.js';
11
+ const esc = (value) => value.replaceAll('&', '&amp;').replaceAll('"', '&quot;').replaceAll('<', '&lt;');
12
+ const value = (obj, key, fallback) => typeof obj[key] === 'string' ? obj[key] : fallback;
13
+ const num = (obj, key, fallback) => typeof obj[key] === 'number' ? obj[key] : fallback;
14
+ const resolveEmu = (raw, fallback, axis, archive) => {
15
+ if (raw === undefined || raw === null)
16
+ return fallback;
17
+ if (typeof raw === 'number' || typeof raw === 'string') {
18
+ try {
19
+ return parseLength(raw, {
20
+ ...(archive ? lengthContextFor(archive, axis) : {}),
21
+ axis,
22
+ });
23
+ }
24
+ catch {
25
+ return fallback;
26
+ }
27
+ }
28
+ return fallback;
29
+ };
30
+ const xfrm = (e, archive) => `<a:xfrm><a:off x="${String(resolveEmu(e['x'], 0, 'x', archive))}" y="${String(resolveEmu(e['y'], 0, 'y', archive))}"/><a:ext cx="${String(resolveEmu(e['width'], 914400, 'x', archive))}" cy="${String(resolveEmu(e['height'], 914400, 'y', archive))}"/></a:xfrm>`;
31
+ /** graphicFrame uses PresentationML p:xfrm (not DrawingML a:xfrm). */
32
+ const graphicFrameXfrm = (e, archive) => `<p:xfrm><a:off x="${String(resolveEmu(e['x'], 0, 'x', archive))}" y="${String(resolveEmu(e['y'], 0, 'y', archive))}"/><a:ext cx="${String(resolveEmu(e['width'], 914400, 'x', archive))}" cy="${String(resolveEmu(e['height'], 914400, 'y', archive))}"/></p:xfrm>`;
33
+ const textBody = (text) => {
34
+ const lines = text.split('\n');
35
+ return `<p:txBody><a:bodyPr/><a:lstStyle/>${lines
36
+ .map((line) => `<a:p><a:r><a:t>${esc(line)}</a:t></a:r></a:p>`)
37
+ .join('')}</p:txBody>`;
38
+ };
39
+ const nvPrXml = (e) => {
40
+ const role = typeof e['role'] === 'string' ? e['role'] : undefined;
41
+ if (!role)
42
+ return '<p:nvPr/>';
43
+ const normalized = normalizePlaceholderRole(role);
44
+ if (!normalized.ok)
45
+ throw new Error(normalized.message);
46
+ const idx = typeof e['placeholderIdx'] === 'string' ? e['placeholderIdx'] : undefined;
47
+ const idxAttr = idx !== undefined ? ` idx="${esc(idx)}"` : '';
48
+ return `<p:nvPr><p:ph type="${esc(normalized.type)}"${idxAttr}/></p:nvPr>`;
49
+ };
50
+ const avLstXml = (e) => {
51
+ const preset = value(e, 'preset', 'rect');
52
+ if (preset === 'roundRect' && typeof e['cornerRadius'] === 'number') {
53
+ const adj = Math.round(Math.min(1, Math.max(0, e['cornerRadius'])) * 50_000);
54
+ return `<a:avLst><a:gd name="adj" fmla="val ${String(adj)}"/></a:avLst>`;
55
+ }
56
+ return '<a:avLst/>';
57
+ };
58
+ const shapeXml = (id, e, archive) => {
59
+ const preset = value(e, 'preset', 'rect');
60
+ const txBox = e['txBox'] === false ? '' : ' txBox="1"';
61
+ return `<p:sp xmlns:p="${NS.p}" xmlns:a="${NS.a}"><p:nvSpPr><p:cNvPr id="${String(id)}" name="${esc(value(e, 'name', `Shape ${String(id)}`))}"/><p:cNvSpPr${txBox}/>${nvPrXml(e)}</p:nvSpPr><p:spPr>${xfrm(e, archive)}<a:prstGeom prst="${esc(preset)}">${avLstXml(e)}</a:prstGeom></p:spPr>${textBody(value(e, 'text', ''))}</p:sp>`;
62
+ };
63
+ const connectorXml = (id, e, archive) => {
64
+ const preset = value(e, 'preset', 'line');
65
+ return `<p:cxnSp xmlns:p="${NS.p}" xmlns:a="${NS.a}"><p:nvCxnSpPr><p:cNvPr id="${String(id)}" name="${esc(value(e, 'name', `Connector ${String(id)}`))}"/><p:cNvCxnSpPr/><p:nvPr/></p:nvCxnSpPr><p:spPr>${xfrm(e, archive)}<a:prstGeom prst="${esc(preset)}"><a:avLst/></a:prstGeom></p:spPr></p:cxnSp>`;
66
+ };
67
+ const groupXml = (id, e, archive) => {
68
+ const w = resolveEmu(e['width'], 914400, 'x', archive);
69
+ const h = resolveEmu(e['height'], 914400, 'y', archive);
70
+ return `<p:grpSp xmlns:p="${NS.p}" xmlns:a="${NS.a}"><p:nvGrpSpPr><p:cNvPr id="${String(id)}" name="${esc(value(e, 'name', `Group ${String(id)}`))}"/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="${String(resolveEmu(e['x'], 0, 'x', archive))}" y="${String(resolveEmu(e['y'], 0, 'y', archive))}"/><a:ext cx="${String(w)}" cy="${String(h)}"/><a:chOff x="0" y="0"/><a:chExt cx="${String(w)}" cy="${String(h)}"/></a:xfrm></p:grpSpPr></p:grpSp>`;
71
+ };
72
+ const normalizeColAlign = (align) => {
73
+ if (!align)
74
+ return 'ctr';
75
+ const map = {
76
+ left: 'l',
77
+ l: 'l',
78
+ center: 'ctr',
79
+ ctr: 'ctr',
80
+ right: 'r',
81
+ r: 'r',
82
+ };
83
+ return map[align] ?? 'ctr';
84
+ };
85
+ /** Normalize addShape rows to string[][]. */
86
+ export const normalizeTableRows = (raw) => {
87
+ if (!Array.isArray(raw) || raw.length === 0)
88
+ return [['']];
89
+ return raw.map((row) => Array.isArray(row) ? row.map((cell) => (typeof cell === 'string' ? cell : '')) : ['']);
90
+ };
91
+ const tableXml = (id, e, archive) => {
92
+ const rows = normalizeTableRows(e['rows']);
93
+ const cols = Math.max(1, ...rows.map((r) => r.length));
94
+ const width = resolveEmu(e['width'], 914400 * cols, 'x', archive);
95
+ const layout = measureTableLayout({ rows, widthEmu: width, fontPt: 11 });
96
+ const colW = String(layout.colWidthEmu);
97
+ const heightRaw = e['height'];
98
+ const height = heightRaw === 'auto' || heightRaw === undefined
99
+ ? layout.totalHeightEmu
100
+ : resolveEmu(heightRaw, layout.totalHeightEmu, 'y', archive);
101
+ const theme = typeof e['theme'] === 'string' ? e['theme'] : 'minimal';
102
+ const alignColumns = Array.isArray(e['alignColumns']) ? e['alignColumns'] : [];
103
+ const sized = { ...e, width, height };
104
+ const cellXml = (text, header, colIndex, rowIndex) => {
105
+ let fill = 'FFFFFF';
106
+ let color = '1A1A1A';
107
+ let bold = '';
108
+ if (theme === 'zebra') {
109
+ if (header) {
110
+ fill = '1B4F72';
111
+ color = 'FFFFFF';
112
+ bold = ' b="1"';
113
+ }
114
+ else {
115
+ fill = rowIndex % 2 === 1 ? 'F2F4F7' : 'FFFFFF';
116
+ }
117
+ }
118
+ else {
119
+ // minimal
120
+ if (header) {
121
+ fill = 'F7F7F7';
122
+ color = '1A1A1A';
123
+ bold = ' b="1"';
124
+ }
125
+ }
126
+ const algn = normalizeColAlign(alignColumns[colIndex]);
127
+ const border = (side) => `<a:${side} w="6350"><a:solidFill><a:srgbClr val="D0D0D0"/></a:solidFill></a:${side}>`;
128
+ return `<a:tc><a:txBody><a:bodyPr/><a:lstStyle/><a:p><a:pPr algn="${algn}"/><a:r><a:rPr lang="zh-CN" sz="1100"${bold}><a:solidFill><a:srgbClr val="${color}"/></a:solidFill></a:rPr><a:t>${esc(text)}</a:t></a:r></a:p></a:txBody><a:tcPr>${border('lnL')}${border('lnR')}${border('lnT')}${border('lnB')}<a:solidFill><a:srgbClr val="${fill}"/></a:solidFill></a:tcPr></a:tc>`;
129
+ };
130
+ const body = rows
131
+ .map((row, rowIndex) => {
132
+ const rowH = layout.rowHeightsEmu[rowIndex] ?? estimateTableRowHeightEmu(11);
133
+ return `<a:tr h="${String(rowH)}">${Array.from({ length: layout.cols }, (_, i) => cellXml(typeof row[i] === 'string' ? row[i] : '', rowIndex === 0, i, rowIndex)).join('')}</a:tr>`;
134
+ })
135
+ .join('');
136
+ return `<p:graphicFrame xmlns:p="${NS.p}" xmlns:a="${NS.a}"><p:nvGraphicFramePr><p:cNvPr id="${String(id)}" name="${esc(value(e, 'name', `Table ${String(id)}`))}"/><p:cNvGraphicFramePr/><p:nvPr/></p:nvGraphicFramePr>${graphicFrameXfrm(sized, archive)}<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table"><a:tbl><a:tblPr firstRow="1"/><a:tblGrid>${Array.from({ length: layout.cols }, () => `<a:gridCol w="${colW}"/>`).join('')}</a:tblGrid>${body}</a:tbl></a:graphicData></a:graphic></p:graphicFrame>`;
137
+ };
138
+ async function pictureXml(archive, slidePart, id, e) {
139
+ const added = await addPicturePart(archive, slidePart, {
140
+ ...(typeof e['path'] === 'string' ? { path: e['path'] } : {}),
141
+ ...(typeof e['base64'] === 'string' ? { base64: e['base64'] } : {}),
142
+ });
143
+ if (!added.ok)
144
+ throw new Error(added.error.message);
145
+ const rid = added.value.rid;
146
+ return `<p:pic xmlns:p="${NS.p}" xmlns:a="${NS.a}" xmlns:r="${NS.r}"><p:nvPicPr><p:cNvPr id="${String(id)}" name="${esc(value(e, 'name', `Picture ${String(id)}`))}"/><p:cNvPicPr><a:picLocks noChangeAspect="1"/></p:cNvPicPr><p:nvPr/></p:nvPicPr><p:blipFill><a:blip r:embed="${rid}"/><a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr>${xfrm(e, archive)}<a:prstGeom prst="rect"><a:avLst/></a:prstGeom></p:spPr></p:pic>`;
147
+ }
148
+ function chartXml(archive, slidePart, id, e) {
149
+ const chartType = value(e, 'chartType', 'column');
150
+ const data = (e['data'] ?? {});
151
+ const series = Array.isArray(data.series) ? data.series : [];
152
+ if (series.length === 0)
153
+ throw new Error('Chart requires data.series with at least one series');
154
+ const created = createChartPart(archive, slidePart, {
155
+ chartType,
156
+ ...(typeof data.title === 'string' ? { title: data.title } : {}),
157
+ categories: Array.isArray(data.categories) ? data.categories : [],
158
+ series,
159
+ ...(typeof e['showDataLabels'] === 'boolean' ? { showDataLabels: e['showDataLabels'] } : {}),
160
+ });
161
+ const width = resolveEmu(e['width'], 914400 * 4, 'x', archive);
162
+ const height = resolveEmu(e['height'], 914400 * 3, 'y', archive);
163
+ return chartGraphicFrameXml(id, created.rid, { ...e, width, height });
164
+ }
165
+ async function avMediaXml(archive, slidePart, id, e, kind) {
166
+ const path = typeof e['path'] === 'string' ? e['path'] : undefined;
167
+ if (!path)
168
+ throw new Error(`${kind} requires path`);
169
+ const added = await addMediaPart(archive, slidePart, { path, kind });
170
+ if (!added.ok)
171
+ throw new Error(added.error.message);
172
+ return mediaPicXml(id, {
173
+ ...e,
174
+ x: resolveEmu(e['x'], 0, 'x', archive),
175
+ y: resolveEmu(e['y'], 0, 'y', archive),
176
+ width: resolveEmu(e['width'], 914400, 'x', archive),
177
+ height: resolveEmu(e['height'], 914400, 'y', archive),
178
+ }, kind, added.value.fileRid, added.value.mediaRid, added.value.posterRid);
179
+ }
180
+ export async function addElement(archive, slidePart, doc, parent, e) {
181
+ const kind = value(e, 'kind', value(e, 'type', 'textbox')), id = nextShapeId(doc);
182
+ let xml;
183
+ if (kind === 'connector')
184
+ xml = connectorXml(id, e, archive);
185
+ else if (kind === 'group')
186
+ xml = groupXml(id, e, archive);
187
+ else if (kind === 'table')
188
+ xml = tableXml(id, e, archive);
189
+ else if (kind === 'picture')
190
+ xml = await pictureXml(archive, slidePart, id, e);
191
+ else if (kind === 'chart')
192
+ xml = chartXml(archive, slidePart, id, e);
193
+ else if (kind === 'video')
194
+ xml = await avMediaXml(archive, slidePart, id, e, 'video');
195
+ else if (kind === 'audio')
196
+ xml = await avMediaXml(archive, slidePart, id, e, 'audio');
197
+ else
198
+ xml = shapeXml(id, e, archive);
199
+ const node = parseXml(xml).documentElement, imported = doc.importNode(node, true);
200
+ parent.appendChild(imported);
201
+ return imported;
202
+ }
203
+ export const duplicateElement = (doc, node) => {
204
+ const clone = node.cloneNode(true);
205
+ allocateShapeIds(doc, clone);
206
+ node.parentNode?.appendChild(clone);
207
+ return clone;
208
+ };
209
+ export function updateChart(archive, part, properties) {
210
+ const chart = archive.readXml(part);
211
+ applyChartProperties(chart, properties);
212
+ archive.writeXml(part, chart);
213
+ return { workbook: archive.getRelationships(part).some((r) => r.type === REL.package) };
214
+ }
215
+ export function setColor(node, from, to) {
216
+ let changed = 0;
217
+ for (const color of descendants(node, 'srgbClr'))
218
+ if (!from || attr(color, 'val')?.toLowerCase() === from.toLowerCase()) {
219
+ color.setAttribute('val', to.replace(/^#/, '').toUpperCase());
220
+ changed++;
221
+ }
222
+ return changed;
223
+ }
224
+ //# sourceMappingURL=elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/pptx/elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OpcArchive } from '../opc/index.js';
2
+ import type { Element } from '@xmldom/xmldom';
3
+ /** Read the external hyperlink URL on a shape/picture `cNvPr`, if any. */
4
+ export declare const readHyperlink: (archive: OpcArchive, slidePart: string, node: Element) => string | null;
5
+ /** Set or clear an external click hyperlink on a shape/picture. Pass null/empty to clear. */
6
+ export declare function setHyperlink(archive: OpcArchive, slidePart: string, node: Element, url: string | null): void;
7
+ //# sourceMappingURL=hyperlink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../src/pptx/hyperlink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAa9C,0EAA0E;AAC1E,eAAO,MAAM,aAAa,GACxB,SAAS,UAAU,EACnB,WAAW,MAAM,EACjB,MAAM,OAAO,KACZ,MAAM,GAAG,IASX,CAAC;AAyBF,6FAA6F;AAC7F,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,IAAI,CA+BN"}
@@ -0,0 +1,81 @@
1
+ import { NS, REL, attr, children, cNvPr, first } from './xml.js';
2
+ const nextRelId = (rels) => {
3
+ const used = new Set(rels.map((r) => r.id));
4
+ let n = 1;
5
+ while (used.has(`rId${String(n)}`))
6
+ n++;
7
+ return `rId${String(n)}`;
8
+ };
9
+ const hlinkRidOf = (hlink) => hlink.getAttributeNS(NS.r, 'id') ?? attr(hlink, 'r:id');
10
+ /** Read the external hyperlink URL on a shape/picture `cNvPr`, if any. */
11
+ export const readHyperlink = (archive, slidePart, node) => {
12
+ const pr = cNvPr(node);
13
+ if (!pr)
14
+ return null;
15
+ const hlink = children(pr).find((c) => c.localName === 'hlinkClick') ?? first(pr, 'hlinkClick');
16
+ if (!hlink)
17
+ return null;
18
+ const rid = hlinkRidOf(hlink);
19
+ if (!rid)
20
+ return null;
21
+ const rel = archive.getRelationships(slidePart).find((r) => r.id === rid);
22
+ return rel?.target ?? null;
23
+ };
24
+ const removeHlinkClicks = (pr) => {
25
+ const removed = [];
26
+ for (const child of [...children(pr)]) {
27
+ if (child.localName !== 'hlinkClick')
28
+ continue;
29
+ const rid = hlinkRidOf(child);
30
+ if (rid)
31
+ removed.push(rid);
32
+ pr.removeChild(child);
33
+ }
34
+ return removed;
35
+ };
36
+ const ridStillUsedInDoc = (root, rid, except) => {
37
+ const walk = (node) => {
38
+ if (node !== except) {
39
+ const embed = node.getAttributeNS(NS.r, 'id') ?? attr(node, 'r:id');
40
+ if (embed === rid)
41
+ return true;
42
+ }
43
+ for (const child of children(node))
44
+ if (walk(child))
45
+ return true;
46
+ return false;
47
+ };
48
+ return walk(root);
49
+ };
50
+ /** Set or clear an external click hyperlink on a shape/picture. Pass null/empty to clear. */
51
+ export function setHyperlink(archive, slidePart, node, url) {
52
+ const pr = cNvPr(node);
53
+ if (!pr)
54
+ throw new Error('Element has no cNvPr for hyperlink');
55
+ const doc = node.ownerDocument;
56
+ if (!doc?.documentElement)
57
+ throw new Error('Element has no document');
58
+ const removedRids = removeHlinkClicks(pr);
59
+ let rels = [...archive.getRelationships(slidePart)];
60
+ for (const rid of removedRids) {
61
+ const rel = rels.find((r) => r.id === rid);
62
+ if (rel?.type === REL.hyperlink && rel.external && !ridStillUsedInDoc(doc.documentElement, rid))
63
+ rels = rels.filter((r) => r.id !== rid);
64
+ }
65
+ if (url === null || url === '') {
66
+ archive.setRelationships(slidePart, rels);
67
+ return;
68
+ }
69
+ const rid = nextRelId(rels);
70
+ rels.push({
71
+ id: rid,
72
+ type: REL.hyperlink,
73
+ target: url,
74
+ external: true,
75
+ });
76
+ archive.setRelationships(slidePart, rels);
77
+ const hlink = doc.createElementNS(NS.a, 'a:hlinkClick');
78
+ hlink.setAttributeNS(NS.r, 'r:id', rid);
79
+ pr.appendChild(hlink);
80
+ }
81
+ //# sourceMappingURL=hyperlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperlink.js","sourceRoot":"","sources":["../../src/pptx/hyperlink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { WorkspaceManifest } from '../core/index.js';
2
+ import type { OpcArchive } from '../opc/index.js';
3
+ import type { IndexFile } from './types.js';
4
+ export declare function loadIndex(workspace: string, archive: OpcArchive, manifest: WorkspaceManifest, options?: {
5
+ persist?: boolean;
6
+ }): Promise<IndexFile>;
7
+ //# sourceMappingURL=index-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-sync.d.ts","sourceRoot":"","sources":["../../src/pptx/index-sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CAepB"}