ooxml-core 1.8.4 → 1.9.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 (306) hide show
  1. package/dist/PptxHandler-AT7FVG5Q.mjs +2 -0
  2. package/dist/{PptxHandler-BL4B7CZO.mjs → PptxHandler-EX4WBIQQ.mjs} +2 -2
  3. package/dist/PptxHandler-VFSCECPL.cjs +11 -0
  4. package/dist/automation/index.cjs +6652 -4002
  5. package/dist/automation/index.mjs +6652 -4002
  6. package/dist/chunk-AT66SA5M.cjs +44423 -0
  7. package/dist/{chunk-TTPZITQN.mjs → chunk-FIELY5PI.mjs} +1 -1
  8. package/dist/{chunk-ZAP5WLEN.mjs → chunk-IGOA57LE.mjs} +1 -1
  9. package/dist/chunk-LCS3J3QI.mjs +87604 -0
  10. package/dist/{chunk-NIHPA63A.mjs → chunk-M76PHYRR.mjs} +54 -37
  11. package/dist/chunk-OB277ZGE.mjs +44107 -0
  12. package/dist/{chunk-GAGSCAR3.mjs → chunk-OXHMZS7B.mjs} +552 -178
  13. package/dist/chunk-SWF7KVL5.cjs +87610 -0
  14. package/dist/{chunk-Z7IQR4S4.mjs → chunk-WSO4T2LJ.mjs} +246 -21
  15. package/dist/docx/block-parser.d.ts.map +1 -1
  16. package/dist/docx/cell-blocks.d.ts +4 -0
  17. package/dist/docx/cell-blocks.d.ts.map +1 -0
  18. package/dist/docx/document-paragraphs.d.ts.map +1 -1
  19. package/dist/docx/document-parts.d.ts +2 -0
  20. package/dist/docx/document-parts.d.ts.map +1 -1
  21. package/dist/docx/embedded.cjs +189 -20
  22. package/dist/docx/embedded.mjs +189 -20
  23. package/dist/docx/index.cjs +219 -24
  24. package/dist/docx/index.mjs +219 -24
  25. package/dist/docx/layout/adapt-table.d.ts.map +1 -1
  26. package/dist/docx/layout/adapter.d.ts.map +1 -1
  27. package/dist/docx/layout/flow-paragraph.d.ts +5 -0
  28. package/dist/docx/layout/flow-paragraph.d.ts.map +1 -1
  29. package/dist/docx/layout/flow-table.d.ts +2 -1
  30. package/dist/docx/layout/flow-table.d.ts.map +1 -1
  31. package/dist/docx/layout/footnote-columns.d.ts +22 -0
  32. package/dist/docx/layout/footnote-columns.d.ts.map +1 -0
  33. package/dist/docx/layout/footnote-flow.d.ts +27 -0
  34. package/dist/docx/layout/footnote-flow.d.ts.map +1 -0
  35. package/dist/docx/layout/footnote-split.d.ts +7 -0
  36. package/dist/docx/layout/footnote-split.d.ts.map +1 -0
  37. package/dist/docx/layout/index.cjs +1099 -92
  38. package/dist/docx/layout/index.mjs +1099 -92
  39. package/dist/docx/layout/input.d.ts +17 -1
  40. package/dist/docx/layout/input.d.ts.map +1 -1
  41. package/dist/docx/layout/legacy-footnote-flow.d.ts +18 -0
  42. package/dist/docx/layout/legacy-footnote-flow.d.ts.map +1 -0
  43. package/dist/docx/layout/line-metrics.d.ts.map +1 -1
  44. package/dist/docx/layout/page-cursor.d.ts +13 -8
  45. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  46. package/dist/docx/layout/page-flow.d.ts.map +1 -1
  47. package/dist/docx/layout/paragraph-layout.d.ts.map +1 -1
  48. package/dist/docx/layout/paragraph-tokens.d.ts +2 -0
  49. package/dist/docx/layout/paragraph-tokens.d.ts.map +1 -1
  50. package/dist/docx/layout/reference-footnotes.d.ts +7 -0
  51. package/dist/docx/layout/reference-footnotes.d.ts.map +1 -0
  52. package/dist/docx/layout/result.d.ts +31 -0
  53. package/dist/docx/layout/result.d.ts.map +1 -1
  54. package/dist/docx/layout/section-flow.d.ts +2 -0
  55. package/dist/docx/layout/section-flow.d.ts.map +1 -1
  56. package/dist/docx/layout/table-cell-layout.d.ts +11 -0
  57. package/dist/docx/layout/table-cell-layout.d.ts.map +1 -0
  58. package/dist/docx/layout/table-footnotes.d.ts +27 -0
  59. package/dist/docx/layout/table-footnotes.d.ts.map +1 -0
  60. package/dist/docx/layout/table-layout.d.ts +10 -4
  61. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  62. package/dist/docx/load/index.cjs +194 -25
  63. package/dist/docx/load/index.mjs +194 -25
  64. package/dist/docx/model-run.d.ts +2 -0
  65. package/dist/docx/model-run.d.ts.map +1 -1
  66. package/dist/docx/model.d.ts +7 -0
  67. package/dist/docx/model.d.ts.map +1 -1
  68. package/dist/docx/notes.d.ts +5 -0
  69. package/dist/docx/notes.d.ts.map +1 -1
  70. package/dist/docx/parse-table.d.ts.map +1 -1
  71. package/dist/docx/parse.d.ts.map +1 -1
  72. package/dist/docx/save.d.ts.map +1 -1
  73. package/dist/docx/section-model.d.ts +2 -0
  74. package/dist/docx/section-model.d.ts.map +1 -1
  75. package/dist/docx/sections.d.ts.map +1 -1
  76. package/dist/docx/settings.d.ts +2 -0
  77. package/dist/docx/settings.d.ts.map +1 -1
  78. package/dist/docx/table-model.d.ts +3 -1
  79. package/dist/docx/table-model.d.ts.map +1 -1
  80. package/dist/docx/ui/index.cjs +55 -0
  81. package/dist/docx/ui/index.d.ts +1 -0
  82. package/dist/docx/ui/index.d.ts.map +1 -1
  83. package/dist/docx/ui/index.mjs +55 -1
  84. package/dist/docx/ui/table-structure-guard.d.ts +4 -0
  85. package/dist/docx/ui/table-structure-guard.d.ts.map +1 -0
  86. package/dist/docx/write-footnote-columns.d.ts +3 -0
  87. package/dist/docx/write-footnote-columns.d.ts.map +1 -0
  88. package/dist/docx/write-notes.d.ts.map +1 -1
  89. package/dist/docx/write-run.d.ts.map +1 -1
  90. package/dist/docx/write-sections.d.ts.map +1 -1
  91. package/dist/index.cjs +8 -5
  92. package/dist/index.mjs +8 -5
  93. package/dist/opc/clone-part-graph.d.ts +4 -0
  94. package/dist/opc/clone-part-graph.d.ts.map +1 -1
  95. package/dist/opc/index.cjs +8 -5
  96. package/dist/opc/index.mjs +8 -5
  97. package/dist/pptx/automation/index.cjs +621 -207
  98. package/dist/pptx/automation/index.d.ts +3 -3
  99. package/dist/pptx/automation/index.mjs +5 -5
  100. package/dist/pptx/chunks/{index-Cn-GzYGp.d.ts → index-B4cnSPNz.d.ts} +33 -4
  101. package/dist/pptx/chunks/index-B4cnSPNz.d.ts.map +1 -0
  102. package/dist/pptx/chunks/{index-CKIUurnd.d.ts → index-BZh-IMkN.d.ts} +14 -9
  103. package/dist/pptx/chunks/{index-CKIUurnd.d.ts.map → index-BZh-IMkN.d.ts.map} +1 -1
  104. package/dist/pptx/chunks/{text-operations-BHfAm5K9.d.ts → text-operations-BLodkuXE.d.ts} +29 -12
  105. package/dist/pptx/chunks/text-operations-BLodkuXE.d.ts.map +1 -0
  106. package/dist/pptx/cli/index.cjs +622 -213
  107. package/dist/pptx/cli/index.d.ts +1 -1
  108. package/dist/pptx/cli/index.mjs +4 -4
  109. package/dist/pptx/converter/index.cjs +53 -36
  110. package/dist/pptx/converter/index.d.ts +1 -1
  111. package/dist/pptx/converter/index.mjs +2 -2
  112. package/dist/pptx/editor/render/find-replace.cjs +416 -45
  113. package/dist/pptx/editor/render/find-replace.d.ts +35 -4
  114. package/dist/pptx/editor/render/find-replace.d.ts.map +1 -1
  115. package/dist/pptx/editor/render/find-replace.mjs +416 -46
  116. package/dist/pptx/editor/render/slide-operations.cjs +87 -0
  117. package/dist/pptx/editor/render/slide-operations.d.ts +17 -1
  118. package/dist/pptx/editor/render/slide-operations.d.ts.map +1 -1
  119. package/dist/pptx/editor/render/slide-operations.mjs +83 -1
  120. package/dist/pptx/editor/render/slide-search.cjs +6 -10
  121. package/dist/pptx/editor/render/slide-search.d.ts +1 -1
  122. package/dist/pptx/editor/render/slide-search.mjs +6 -10
  123. package/dist/pptx/editor/render/template-editing.d.ts +1 -1
  124. package/dist/pptx/editor/render/template-editing.d.ts.map +1 -1
  125. package/dist/pptx/index.cjs +889 -237
  126. package/dist/pptx/index.d.ts +4 -4
  127. package/dist/pptx/index.mjs +5 -5
  128. package/dist/teams/index.cjs +593 -34
  129. package/dist/teams/index.mjs +593 -34
  130. package/dist/visio/accessibility.d.ts +10 -0
  131. package/dist/visio/accessibility.d.ts.map +1 -0
  132. package/dist/visio/cell-formula.d.ts +2 -0
  133. package/dist/visio/cell-formula.d.ts.map +1 -1
  134. package/dist/visio/connector-curve-aligned.d.ts +5 -0
  135. package/dist/visio/connector-curve-aligned.d.ts.map +1 -0
  136. package/dist/visio/connector-curve-spans.d.ts +14 -0
  137. package/dist/visio/connector-curve-spans.d.ts.map +1 -0
  138. package/dist/visio/connector-jumps.d.ts +5 -0
  139. package/dist/visio/connector-jumps.d.ts.map +1 -0
  140. package/dist/visio/connector-route-walk.d.ts +2 -1
  141. package/dist/visio/connector-route-walk.d.ts.map +1 -1
  142. package/dist/visio/edit-alt-text-scope.d.ts +5 -0
  143. package/dist/visio/edit-alt-text-scope.d.ts.map +1 -0
  144. package/dist/visio/edit-alt-text.d.ts +3 -0
  145. package/dist/visio/edit-alt-text.d.ts.map +1 -0
  146. package/dist/visio/edit-commands.d.ts +7 -2
  147. package/dist/visio/edit-commands.d.ts.map +1 -1
  148. package/dist/visio/edit-formatting-commands.d.ts +5 -0
  149. package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
  150. package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
  151. package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
  152. package/dist/visio/edit-line-jump-cache.d.ts +4 -0
  153. package/dist/visio/edit-line-jump-cache.d.ts.map +1 -0
  154. package/dist/visio/edit-master-index.d.ts.map +1 -1
  155. package/dist/visio/edit-metadata-commands.d.ts +10 -2
  156. package/dist/visio/edit-metadata-commands.d.ts.map +1 -1
  157. package/dist/visio/edit-metadata.d.ts +3 -1
  158. package/dist/visio/edit-metadata.d.ts.map +1 -1
  159. package/dist/visio/edit-page-alt-text.d.ts +4 -0
  160. package/dist/visio/edit-page-alt-text.d.ts.map +1 -0
  161. package/dist/visio/edit-page-layout.d.ts.map +1 -1
  162. package/dist/visio/edit-page-rename.d.ts.map +1 -1
  163. package/dist/visio/edit-page-setup-commands.d.ts +7 -1
  164. package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
  165. package/dist/visio/edit-page-size.d.ts.map +1 -1
  166. package/dist/visio/edit-pages.d.ts.map +1 -1
  167. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  168. package/dist/visio/edit-scope.d.ts.map +1 -1
  169. package/dist/visio/edit-shape-create.d.ts.map +1 -1
  170. package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -1
  171. package/dist/visio/edit-style-admission.d.ts.map +1 -1
  172. package/dist/visio/edit-text.d.ts.map +1 -1
  173. package/dist/visio/edit.d.ts +1 -1
  174. package/dist/visio/edit.d.ts.map +1 -1
  175. package/dist/visio/index.cjs +1091 -233
  176. package/dist/visio/index.d.ts +2 -1
  177. package/dist/visio/index.d.ts.map +1 -1
  178. package/dist/visio/index.mjs +1091 -234
  179. package/dist/visio/line-jumps.d.ts +1 -5
  180. package/dist/visio/line-jumps.d.ts.map +1 -1
  181. package/dist/visio/model.d.ts +13 -0
  182. package/dist/visio/model.d.ts.map +1 -1
  183. package/dist/visio/page-layout.d.ts +11 -2
  184. package/dist/visio/page-layout.d.ts.map +1 -1
  185. package/dist/visio/parser.d.ts.map +1 -1
  186. package/dist/visio/shape-metadata.d.ts +6 -0
  187. package/dist/visio/shape-metadata.d.ts.map +1 -1
  188. package/dist/visio/shapes.d.ts.map +1 -1
  189. package/dist/visio/text-field-case.d.ts +2 -0
  190. package/dist/visio/text-field-case.d.ts.map +1 -0
  191. package/dist/visio/text-field-display.d.ts.map +1 -1
  192. package/dist/visio/text-field-numeric.d.ts +4 -0
  193. package/dist/visio/text-field-numeric.d.ts.map +1 -0
  194. package/dist/visio/ui/connector-preview.d.ts +1 -1
  195. package/dist/visio/ui/connector-preview.d.ts.map +1 -1
  196. package/dist/visio/ui/data-graphic-rules.d.ts +2 -0
  197. package/dist/visio/ui/data-graphic-rules.d.ts.map +1 -1
  198. package/dist/visio/ui/data-graphics.d.ts +3 -2
  199. package/dist/visio/ui/data-graphics.d.ts.map +1 -1
  200. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  201. package/dist/visio/ui/index.cjs +16898 -15855
  202. package/dist/visio/ui/index.mjs +16898 -15856
  203. package/dist/visio/ui/scene-details.d.ts.map +1 -1
  204. package/dist/visio/ui/scene-validation.d.ts.map +1 -1
  205. package/dist/visio/ui/snapshot-scene.d.ts +2 -1
  206. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  207. package/dist/visio/xml-attribute-whitespace.d.ts +5 -0
  208. package/dist/visio/xml-attribute-whitespace.d.ts.map +1 -0
  209. package/dist/xlsx/edit/index.d.ts +1 -0
  210. package/dist/xlsx/edit/index.d.ts.map +1 -1
  211. package/dist/xlsx/edit/insert-guard.d.ts.map +1 -1
  212. package/dist/xlsx/edit/merge.d.ts.map +1 -1
  213. package/dist/xlsx/edit/page-breaks.d.ts +5 -0
  214. package/dist/xlsx/edit/page-breaks.d.ts.map +1 -0
  215. package/dist/xlsx/edit/pivots.d.ts +8 -0
  216. package/dist/xlsx/edit/pivots.d.ts.map +1 -0
  217. package/dist/xlsx/edit/print-titles.d.ts +7 -0
  218. package/dist/xlsx/edit/print-titles.d.ts.map +1 -0
  219. package/dist/xlsx/edit/session.d.ts.map +1 -1
  220. package/dist/xlsx/edit/sheets.d.ts.map +1 -1
  221. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
  222. package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
  223. package/dist/xlsx/edit/sparkline-ranges.d.ts +11 -0
  224. package/dist/xlsx/edit/sparkline-ranges.d.ts.map +1 -0
  225. package/dist/xlsx/edit/sparkline-xml.d.ts +13 -0
  226. package/dist/xlsx/edit/sparkline-xml.d.ts.map +1 -0
  227. package/dist/xlsx/edit/sparklines.d.ts +16 -0
  228. package/dist/xlsx/edit/sparklines.d.ts.map +1 -0
  229. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  230. package/dist/xlsx/edit/tables.d.ts.map +1 -1
  231. package/dist/xlsx/edit/types.d.ts +22 -1
  232. package/dist/xlsx/edit/types.d.ts.map +1 -1
  233. package/dist/xlsx/formula/functions/text-regex.d.ts.map +1 -1
  234. package/dist/xlsx/index.cjs +3159 -1164
  235. package/dist/xlsx/index.d.ts +1 -0
  236. package/dist/xlsx/index.d.ts.map +1 -1
  237. package/dist/xlsx/index.mjs +3140 -1165
  238. package/dist/xlsx/layout/cell-view.d.ts +2 -0
  239. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  240. package/dist/xlsx/layout/header-footer.d.ts +58 -0
  241. package/dist/xlsx/layout/header-footer.d.ts.map +1 -0
  242. package/dist/xlsx/layout/index.d.ts +5 -0
  243. package/dist/xlsx/layout/index.d.ts.map +1 -1
  244. package/dist/xlsx/layout/print-breaks.d.ts +11 -0
  245. package/dist/xlsx/layout/print-breaks.d.ts.map +1 -0
  246. package/dist/xlsx/layout/print-layout.d.ts +34 -0
  247. package/dist/xlsx/layout/print-layout.d.ts.map +1 -0
  248. package/dist/xlsx/layout/print-merges.d.ts +18 -0
  249. package/dist/xlsx/layout/print-merges.d.ts.map +1 -0
  250. package/dist/xlsx/layout/print-repeat.d.ts +12 -0
  251. package/dist/xlsx/layout/print-repeat.d.ts.map +1 -0
  252. package/dist/xlsx/layout/print-titles.d.ts +20 -0
  253. package/dist/xlsx/layout/print-titles.d.ts.map +1 -0
  254. package/dist/xlsx/layout/sparkline-data.d.ts.map +1 -1
  255. package/dist/xlsx/layout/sparkline-view.d.ts.map +1 -1
  256. package/dist/xlsx/load/index.cjs +7784 -6976
  257. package/dist/xlsx/load/index.mjs +7784 -6976
  258. package/dist/xlsx/model-pivots.d.ts +46 -0
  259. package/dist/xlsx/model-pivots.d.ts.map +1 -0
  260. package/dist/xlsx/model.d.ts +5 -0
  261. package/dist/xlsx/model.d.ts.map +1 -1
  262. package/dist/xlsx/pivot/admission.d.ts +5 -0
  263. package/dist/xlsx/pivot/admission.d.ts.map +1 -0
  264. package/dist/xlsx/pivot/aggregate.d.ts +19 -0
  265. package/dist/xlsx/pivot/aggregate.d.ts.map +1 -0
  266. package/dist/xlsx/pivot/cache-xml.d.ts +9 -0
  267. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -0
  268. package/dist/xlsx/pivot/data.d.ts +12 -0
  269. package/dist/xlsx/pivot/data.d.ts.map +1 -0
  270. package/dist/xlsx/pivot/hierarchy.d.ts +7 -0
  271. package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -0
  272. package/dist/xlsx/pivot/index.d.ts +3 -0
  273. package/dist/xlsx/pivot/index.d.ts.map +1 -0
  274. package/dist/xlsx/pivot/read.d.ts +5 -0
  275. package/dist/xlsx/pivot/read.d.ts.map +1 -0
  276. package/dist/xlsx/pivot/table-xml.d.ts +5 -0
  277. package/dist/xlsx/pivot/table-xml.d.ts.map +1 -0
  278. package/dist/xlsx/pivot/write.d.ts +11 -0
  279. package/dist/xlsx/pivot/write.d.ts.map +1 -0
  280. package/dist/xlsx/read/load.d.ts.map +1 -1
  281. package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
  282. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
  283. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
  284. package/dist/xlsx/ui/commands/i18n/pivots.d.ts +3 -0
  285. package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -0
  286. package/dist/xlsx/ui/commands/i18n/print-layout.d.ts +3 -0
  287. package/dist/xlsx/ui/commands/i18n/print-layout.d.ts.map +1 -0
  288. package/dist/xlsx/ui/commands/i18n/sparklines.d.ts +3 -0
  289. package/dist/xlsx/ui/commands/i18n/sparklines.d.ts.map +1 -0
  290. package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -1
  291. package/dist/xlsx/ui/commands/page-breaks.d.ts +3 -0
  292. package/dist/xlsx/ui/commands/page-breaks.d.ts.map +1 -0
  293. package/dist/xlsx/ui/index.cjs +2001 -288
  294. package/dist/xlsx/ui/index.d.ts +1 -0
  295. package/dist/xlsx/ui/index.d.ts.map +1 -1
  296. package/dist/xlsx/ui/index.mjs +2001 -289
  297. package/dist/xlsx/write/page-setup.d.ts.map +1 -1
  298. package/dist/xlsx/write/save.d.ts.map +1 -1
  299. package/dist/xlsx/write/sheet-parts.d.ts +1 -0
  300. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
  301. package/dist/xlsx/write/workbook-part.d.ts +1 -1
  302. package/dist/xlsx/write/workbook-part.d.ts.map +1 -1
  303. package/dist/xlsx/write/worksheet.d.ts.map +1 -1
  304. package/package.json +1 -1
  305. package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +0 -1
  306. package/dist/pptx/chunks/text-operations-BHfAm5K9.d.ts.map +0 -1
@@ -1,4 +1,86 @@
1
+ import '../../../chunk-LCS3J3QI.mjs';
2
+ import { cloneSlide, cloneElement } from '../../../chunk-OB277ZGE.mjs';
3
+
4
+ // pptx/core/builders/sdk/slide-operations.ts
5
+ var cloneIdCounter = 0;
6
+ function generateCloneId(prefix) {
7
+ cloneIdCounter += 1;
8
+ return `${prefix}_clone_${Date.now().toString(36)}_${cloneIdCounter}`;
9
+ }
10
+ function reassignElementId(element) {
11
+ const prefix = element.type === "text" ? "txt" : element.type === "shape" ? "shp" : element.type === "connector" ? "cxn" : element.type === "image" || element.type === "picture" ? "img" : element.type === "table" ? "tbl" : element.type === "chart" ? "cht" : element.type === "media" ? "med" : element.type === "group" ? "grp" : element.type;
12
+ const newElement = { ...element, id: generateCloneId(prefix) };
13
+ if (newElement.type === "group" && "children" in newElement) {
14
+ newElement.children = newElement.children.map((child) => reassignElementId(child));
15
+ }
16
+ return newElement;
17
+ }
18
+ function duplicateSlide(slide, newSlideNumber) {
19
+ const cloned = cloneSlide(slide);
20
+ cloned.sourceSlideId = slide.id.startsWith("ppt/slides/") ? slide.id : slide.sourceSlideId ?? slide.id;
21
+ cloned.id = `slide${newSlideNumber}`;
22
+ cloned.rId = `rId${newSlideNumber + 1}`;
23
+ cloned.slideNumber = newSlideNumber;
24
+ cloned.elements = cloned.elements.map(reassignElementId);
25
+ if (cloned.animations && cloned.animations.length > 0) {
26
+ const idMap = /* @__PURE__ */ new Map();
27
+ const mapElements = (originals, copies) => {
28
+ originals.forEach((original, index) => {
29
+ const copy = copies[index];
30
+ if (!copy) return;
31
+ idMap.set(original.id, copy.id);
32
+ if (original.type === "group" && copy.type === "group")
33
+ mapElements(original.children, copy.children);
34
+ });
35
+ };
36
+ mapElements(slide.elements, cloned.elements);
37
+ cloned.animations = cloned.animations.map((anim) => ({
38
+ ...anim,
39
+ elementId: idMap.get(anim.elementId) ?? anim.elementId
40
+ }));
41
+ }
42
+ return cloned;
43
+ }
44
+
1
45
  // pptx/editor/render/slide-operations.ts
46
+ function captureSlideClipboard(slides, ids) {
47
+ return ids.flatMap((id) => {
48
+ const slide = slides.find((candidate) => candidate.id === id);
49
+ return slide ? [cloneSlide(slide)] : [];
50
+ });
51
+ }
52
+ function createSlidePaste(clipboard, insertAt, templates = {}) {
53
+ return {
54
+ copies: clipboard.map((slide, index) => ({
55
+ ...duplicateSlide(slide, insertAt + index + 1),
56
+ id: makeSlideId()
57
+ })),
58
+ sourceIds: clipboard.map((slide) => slide.id),
59
+ insertAt,
60
+ templateElements: clipboard.map((slide) => (templates[slide.id] ?? []).map(cloneElement))
61
+ };
62
+ }
63
+ function insertSlidePaste(slides, request) {
64
+ const index = Math.max(0, Math.min(slides.length, request.insertAt));
65
+ const next = [
66
+ ...slides.slice(0, index),
67
+ ...request.copies.map(cloneSlide),
68
+ ...slides.slice(index)
69
+ ];
70
+ return next.map(
71
+ (slide, position) => slide.slideNumber === position + 1 ? slide : { ...slide, slideNumber: position + 1 }
72
+ );
73
+ }
74
+ function applySlidePasteTemplates(mapping, request) {
75
+ const next = { ...mapping };
76
+ request.copies.forEach((copy, index) => {
77
+ next[copy.id] = (request.templateElements[index] ?? []).map(cloneElement);
78
+ });
79
+ return next;
80
+ }
81
+ function captureSlideClipboardTemplates(mapping, ids) {
82
+ return Object.fromEntries(ids.map((id) => [id, (mapping[id] ?? []).map(cloneElement)]));
83
+ }
2
84
  function makeSlideId(idGenerator) {
3
85
  if (idGenerator) {
4
86
  return idGenerator();
@@ -14,4 +96,4 @@ function createBlankSlide(slideNumber, idGenerator) {
14
96
  };
15
97
  }
16
98
 
17
- export { createBlankSlide, makeSlideId };
99
+ export { applySlidePasteTemplates, captureSlideClipboard, captureSlideClipboardTemplates, createBlankSlide, createSlidePaste, insertSlidePaste, makeSlideId };
@@ -14,16 +14,8 @@ function collectSmartArtNodeText(node) {
14
14
  function collectElementText(element) {
15
15
  const parts = [];
16
16
  if (element.type === "text" || element.type === "shape" || element.type === "connector") {
17
- if (element.text) {
18
- parts.push(element.text);
19
- }
20
- if (element.textSegments) {
21
- for (const seg of element.textSegments) {
22
- if (seg.text) {
23
- parts.push(seg.text);
24
- }
25
- }
26
- }
17
+ const text = element.textSegments?.length ? element.textSegments.map((segment) => segment.text).join("") : element.text;
18
+ if (text) parts.push(text);
27
19
  } else if (element.type === "table") {
28
20
  const tableData = element.tableData;
29
21
  if (tableData) {
@@ -42,6 +34,10 @@ function collectElementText(element) {
42
34
  parts.push(collectSmartArtNodeText(node));
43
35
  }
44
36
  }
37
+ } else if (element.type === "chart" && element.chartData?.style?.hasTitle !== false) {
38
+ const data = element.chartData;
39
+ const title = data?.titleRuns?.length ? data.titleRuns.map((run) => run.text).join("") : data?.title;
40
+ if (title) parts.push(title);
45
41
  } else if (element.type === "group") {
46
42
  for (const child of element.children) {
47
43
  parts.push(collectElementText(child));
@@ -17,7 +17,7 @@ export interface SlideSearchMatch {
17
17
  /**
18
18
  * Collect all visible text from a single {@link PptxElement}.
19
19
  *
20
- * - `text` / `shape` / `connector`: flat `text` field + `textSegments[].text`.
20
+ * - `text` / `shape` / `connector`: rich `textSegments[].text`, with a plain `text` fallback.
21
21
  * - `table`: iterates `tableData.rows[].cells[].text`.
22
22
  * - `smartArt`: recursively collects `smartArtData.nodes[].text`.
23
23
  * - `group`: recurses into `children`.
@@ -12,16 +12,8 @@ function collectSmartArtNodeText(node) {
12
12
  function collectElementText(element) {
13
13
  const parts = [];
14
14
  if (element.type === "text" || element.type === "shape" || element.type === "connector") {
15
- if (element.text) {
16
- parts.push(element.text);
17
- }
18
- if (element.textSegments) {
19
- for (const seg of element.textSegments) {
20
- if (seg.text) {
21
- parts.push(seg.text);
22
- }
23
- }
24
- }
15
+ const text = element.textSegments?.length ? element.textSegments.map((segment) => segment.text).join("") : element.text;
16
+ if (text) parts.push(text);
25
17
  } else if (element.type === "table") {
26
18
  const tableData = element.tableData;
27
19
  if (tableData) {
@@ -40,6 +32,10 @@ function collectElementText(element) {
40
32
  parts.push(collectSmartArtNodeText(node));
41
33
  }
42
34
  }
35
+ } else if (element.type === "chart" && element.chartData?.style?.hasTitle !== false) {
36
+ const data = element.chartData;
37
+ const title = data?.titleRuns?.length ? data.titleRuns.map((run) => run.text).join("") : data?.title;
38
+ if (title) parts.push(title);
43
39
  } else if (element.type === "group") {
44
40
  for (const child of element.children) {
45
41
  parts.push(collectElementText(child));
@@ -27,6 +27,6 @@ export declare function visibleTemplateElements(slide: Pick<PptxSlide, 'showMast
27
27
  /** Split layout/master elements out of each loaded slide while preserving order. */
28
28
  export declare function partitionTemplateElements(slides: PptxSlide[]): TemplateElementPartition;
29
29
  /** Merge editable layout/master elements behind slide-owned elements for save/export. */
30
- export declare function buildSaveSlides(slides: PptxSlide[], templateElementsBySlideId: Readonly<Record<string, PptxElement[]>>): PptxSlide[];
30
+ export declare function buildSaveSlides(slides: readonly PptxSlide[], templateElementsBySlideId: Readonly<Record<string, readonly PptxElement[]>>): PptxSlide[];
31
31
  //#endregion
32
32
  //# sourceMappingURL=template-editing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-editing.d.ts","names":[],"sources":["../../../../pptx/editor/render/template-editing.ts"],"mappings":";;YAIY,qBAAqB,eAAe;;iBAG/B;EAChB,QAAQ;EACR,2BAA2B;;;wBAIZ,oBACf,KAAK,oBACL,iBACA,UAAU,gBACR;;wBAKa,oBACf,KAAK,SAAS,qBACd,6BACA,oBACE;;wBAKa,uBAAuB,mBAAmB;;;;;;;;;;;;wBAe1C,wBACf,OAAO,KAAK,4CACZ,2BAA2B,yBAChB;;wBAKI,0BAA0B,QAAQ,cAAc;;wBAchD,gBACf,QAAQ,aACR,2BAA2B,SAAS,eAAe,kBACjD"}
1
+ {"version":3,"file":"template-editing.d.ts","names":[],"sources":["../../../../pptx/editor/render/template-editing.ts"],"mappings":";;YAIY,qBAAqB,eAAe;;iBAG/B;EAChB,QAAQ;EACR,2BAA2B;;;wBAIZ,oBACf,KAAK,oBACL,iBACA,UAAU,gBACR;;wBAKa,oBACf,KAAK,SAAS,qBACd,6BACA,oBACE;;wBAKa,uBAAuB,mBAAmB;;;;;;;;;;;;wBAe1C,wBACf,OAAO,KAAK,4CACZ,2BAA2B,yBAChB;;wBAKI,0BAA0B,QAAQ,cAAc;;wBAchD,gBACf,iBAAiB,aACjB,2BAA2B,SAAS,wBAAwB,kBAC1D"}