ooxml-core 1.8.3 → 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.
- package/dist/PptxHandler-AT7FVG5Q.mjs +2 -0
- package/dist/{PptxHandler-BL4B7CZO.mjs → PptxHandler-EX4WBIQQ.mjs} +2 -2
- package/dist/PptxHandler-VFSCECPL.cjs +11 -0
- package/dist/automation/index.cjs +7380 -4682
- package/dist/automation/index.mjs +7380 -4682
- package/dist/chunk-AT66SA5M.cjs +44423 -0
- package/dist/{chunk-TTPZITQN.mjs → chunk-FIELY5PI.mjs} +1 -1
- package/dist/{chunk-ZAP5WLEN.mjs → chunk-IGOA57LE.mjs} +1 -1
- package/dist/chunk-LCS3J3QI.mjs +87604 -0
- package/dist/{chunk-NIHPA63A.mjs → chunk-M76PHYRR.mjs} +54 -37
- package/dist/chunk-OB277ZGE.mjs +44107 -0
- package/dist/{chunk-GAGSCAR3.mjs → chunk-OXHMZS7B.mjs} +552 -178
- package/dist/chunk-SWF7KVL5.cjs +87610 -0
- package/dist/{chunk-Z7IQR4S4.mjs → chunk-WSO4T2LJ.mjs} +246 -21
- package/dist/docx/block-parser.d.ts.map +1 -1
- package/dist/docx/cell-blocks.d.ts +4 -0
- package/dist/docx/cell-blocks.d.ts.map +1 -0
- package/dist/docx/document-paragraphs.d.ts.map +1 -1
- package/dist/docx/document-parts.d.ts +2 -0
- package/dist/docx/document-parts.d.ts.map +1 -1
- package/dist/docx/embedded.cjs +189 -20
- package/dist/docx/embedded.mjs +189 -20
- package/dist/docx/index.cjs +219 -24
- package/dist/docx/index.mjs +219 -24
- package/dist/docx/layout/adapt-table.d.ts.map +1 -1
- package/dist/docx/layout/adapter.d.ts.map +1 -1
- package/dist/docx/layout/flow-paragraph.d.ts +5 -0
- package/dist/docx/layout/flow-paragraph.d.ts.map +1 -1
- package/dist/docx/layout/flow-table.d.ts +2 -1
- package/dist/docx/layout/flow-table.d.ts.map +1 -1
- package/dist/docx/layout/footnote-columns.d.ts +22 -0
- package/dist/docx/layout/footnote-columns.d.ts.map +1 -0
- package/dist/docx/layout/footnote-flow.d.ts +27 -0
- package/dist/docx/layout/footnote-flow.d.ts.map +1 -0
- package/dist/docx/layout/footnote-split.d.ts +7 -0
- package/dist/docx/layout/footnote-split.d.ts.map +1 -0
- package/dist/docx/layout/index.cjs +1099 -92
- package/dist/docx/layout/index.mjs +1099 -92
- package/dist/docx/layout/input.d.ts +17 -1
- package/dist/docx/layout/input.d.ts.map +1 -1
- package/dist/docx/layout/legacy-footnote-flow.d.ts +18 -0
- package/dist/docx/layout/legacy-footnote-flow.d.ts.map +1 -0
- package/dist/docx/layout/line-metrics.d.ts.map +1 -1
- package/dist/docx/layout/page-cursor.d.ts +13 -8
- package/dist/docx/layout/page-cursor.d.ts.map +1 -1
- package/dist/docx/layout/page-flow.d.ts.map +1 -1
- package/dist/docx/layout/paragraph-layout.d.ts.map +1 -1
- package/dist/docx/layout/paragraph-tokens.d.ts +2 -0
- package/dist/docx/layout/paragraph-tokens.d.ts.map +1 -1
- package/dist/docx/layout/reference-footnotes.d.ts +7 -0
- package/dist/docx/layout/reference-footnotes.d.ts.map +1 -0
- package/dist/docx/layout/result.d.ts +31 -0
- package/dist/docx/layout/result.d.ts.map +1 -1
- package/dist/docx/layout/section-flow.d.ts +2 -0
- package/dist/docx/layout/section-flow.d.ts.map +1 -1
- package/dist/docx/layout/table-cell-layout.d.ts +11 -0
- package/dist/docx/layout/table-cell-layout.d.ts.map +1 -0
- package/dist/docx/layout/table-footnotes.d.ts +27 -0
- package/dist/docx/layout/table-footnotes.d.ts.map +1 -0
- package/dist/docx/layout/table-layout.d.ts +10 -4
- package/dist/docx/layout/table-layout.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +194 -25
- package/dist/docx/load/index.mjs +194 -25
- package/dist/docx/model-run.d.ts +2 -0
- package/dist/docx/model-run.d.ts.map +1 -1
- package/dist/docx/model.d.ts +7 -0
- package/dist/docx/model.d.ts.map +1 -1
- package/dist/docx/notes.d.ts +5 -0
- package/dist/docx/notes.d.ts.map +1 -1
- package/dist/docx/parse-table.d.ts.map +1 -1
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/save.d.ts.map +1 -1
- package/dist/docx/section-model.d.ts +2 -0
- package/dist/docx/section-model.d.ts.map +1 -1
- package/dist/docx/sections.d.ts.map +1 -1
- package/dist/docx/settings.d.ts +2 -0
- package/dist/docx/settings.d.ts.map +1 -1
- package/dist/docx/table-model.d.ts +3 -1
- package/dist/docx/table-model.d.ts.map +1 -1
- package/dist/docx/ui/index.cjs +55 -0
- package/dist/docx/ui/index.d.ts +1 -0
- package/dist/docx/ui/index.d.ts.map +1 -1
- package/dist/docx/ui/index.mjs +55 -1
- package/dist/docx/ui/table-structure-guard.d.ts +4 -0
- package/dist/docx/ui/table-structure-guard.d.ts.map +1 -0
- package/dist/docx/write-footnote-columns.d.ts +3 -0
- package/dist/docx/write-footnote-columns.d.ts.map +1 -0
- package/dist/docx/write-notes.d.ts.map +1 -1
- package/dist/docx/write-run.d.ts.map +1 -1
- package/dist/docx/write-sections.d.ts.map +1 -1
- package/dist/index.cjs +8 -5
- package/dist/index.mjs +8 -5
- package/dist/opc/clone-part-graph.d.ts +4 -0
- package/dist/opc/clone-part-graph.d.ts.map +1 -1
- package/dist/opc/index.cjs +8 -5
- package/dist/opc/index.mjs +8 -5
- package/dist/pptx/automation/index.cjs +621 -207
- package/dist/pptx/automation/index.d.ts +3 -3
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/chunks/{index-Cn-GzYGp.d.ts → index-B4cnSPNz.d.ts} +33 -4
- package/dist/pptx/chunks/index-B4cnSPNz.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-CKIUurnd.d.ts → index-BZh-IMkN.d.ts} +14 -9
- package/dist/pptx/chunks/{index-CKIUurnd.d.ts.map → index-BZh-IMkN.d.ts.map} +1 -1
- package/dist/pptx/chunks/{text-operations-BHfAm5K9.d.ts → text-operations-BLodkuXE.d.ts} +29 -12
- package/dist/pptx/chunks/text-operations-BLodkuXE.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +622 -213
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.cjs +53 -36
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/editor/render/find-replace.cjs +416 -45
- package/dist/pptx/editor/render/find-replace.d.ts +35 -4
- package/dist/pptx/editor/render/find-replace.d.ts.map +1 -1
- package/dist/pptx/editor/render/find-replace.mjs +416 -46
- package/dist/pptx/editor/render/slide-operations.cjs +87 -0
- package/dist/pptx/editor/render/slide-operations.d.ts +17 -1
- package/dist/pptx/editor/render/slide-operations.d.ts.map +1 -1
- package/dist/pptx/editor/render/slide-operations.mjs +83 -1
- package/dist/pptx/editor/render/slide-search.cjs +6 -10
- package/dist/pptx/editor/render/slide-search.d.ts +1 -1
- package/dist/pptx/editor/render/slide-search.mjs +6 -10
- package/dist/pptx/editor/render/template-editing.d.ts +1 -1
- package/dist/pptx/editor/render/template-editing.d.ts.map +1 -1
- package/dist/pptx/index.cjs +889 -237
- package/dist/pptx/index.d.ts +4 -4
- package/dist/pptx/index.mjs +5 -5
- package/dist/teams/index.cjs +672 -37
- package/dist/teams/index.mjs +672 -37
- package/dist/visio/accessibility.d.ts +10 -0
- package/dist/visio/accessibility.d.ts.map +1 -0
- package/dist/visio/cell-formula.d.ts +2 -0
- package/dist/visio/cell-formula.d.ts.map +1 -1
- package/dist/visio/connector-curve-aligned.d.ts +5 -0
- package/dist/visio/connector-curve-aligned.d.ts.map +1 -0
- package/dist/visio/connector-curve-spans.d.ts +14 -0
- package/dist/visio/connector-curve-spans.d.ts.map +1 -0
- package/dist/visio/connector-jumps.d.ts +5 -0
- package/dist/visio/connector-jumps.d.ts.map +1 -0
- package/dist/visio/connector-route-walk.d.ts +2 -1
- package/dist/visio/connector-route-walk.d.ts.map +1 -1
- package/dist/visio/edit-alt-text-scope.d.ts +5 -0
- package/dist/visio/edit-alt-text-scope.d.ts.map +1 -0
- package/dist/visio/edit-alt-text.d.ts +3 -0
- package/dist/visio/edit-alt-text.d.ts.map +1 -0
- package/dist/visio/edit-commands.d.ts +7 -2
- package/dist/visio/edit-commands.d.ts.map +1 -1
- package/dist/visio/edit-formatting-commands.d.ts +5 -0
- package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
- package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
- package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
- package/dist/visio/edit-line-jump-cache.d.ts +4 -0
- package/dist/visio/edit-line-jump-cache.d.ts.map +1 -0
- package/dist/visio/edit-master-index.d.ts.map +1 -1
- package/dist/visio/edit-metadata-commands.d.ts +10 -2
- package/dist/visio/edit-metadata-commands.d.ts.map +1 -1
- package/dist/visio/edit-metadata.d.ts +3 -1
- package/dist/visio/edit-metadata.d.ts.map +1 -1
- package/dist/visio/edit-page-alt-text.d.ts +4 -0
- package/dist/visio/edit-page-alt-text.d.ts.map +1 -0
- package/dist/visio/edit-page-layout.d.ts.map +1 -1
- package/dist/visio/edit-page-rename.d.ts.map +1 -1
- package/dist/visio/edit-page-setup-commands.d.ts +7 -1
- package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
- package/dist/visio/edit-page-size.d.ts.map +1 -1
- package/dist/visio/edit-pages.d.ts.map +1 -1
- package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
- package/dist/visio/edit-scope.d.ts.map +1 -1
- package/dist/visio/edit-shape-create.d.ts.map +1 -1
- package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -1
- package/dist/visio/edit-style-admission.d.ts.map +1 -1
- package/dist/visio/edit-text.d.ts.map +1 -1
- package/dist/visio/edit.d.ts +1 -1
- package/dist/visio/edit.d.ts.map +1 -1
- package/dist/visio/index.cjs +1091 -233
- package/dist/visio/index.d.ts +2 -1
- package/dist/visio/index.d.ts.map +1 -1
- package/dist/visio/index.mjs +1091 -234
- package/dist/visio/line-jumps.d.ts +1 -5
- package/dist/visio/line-jumps.d.ts.map +1 -1
- package/dist/visio/model.d.ts +13 -0
- package/dist/visio/model.d.ts.map +1 -1
- package/dist/visio/page-layout.d.ts +11 -2
- package/dist/visio/page-layout.d.ts.map +1 -1
- package/dist/visio/parser.d.ts.map +1 -1
- package/dist/visio/shape-metadata.d.ts +6 -0
- package/dist/visio/shape-metadata.d.ts.map +1 -1
- package/dist/visio/shapes.d.ts.map +1 -1
- package/dist/visio/text-field-case.d.ts +2 -0
- package/dist/visio/text-field-case.d.ts.map +1 -0
- package/dist/visio/text-field-display.d.ts.map +1 -1
- package/dist/visio/text-field-numeric.d.ts +4 -0
- package/dist/visio/text-field-numeric.d.ts.map +1 -0
- package/dist/visio/ui/connector-preview.d.ts +1 -1
- package/dist/visio/ui/connector-preview.d.ts.map +1 -1
- package/dist/visio/ui/data-graphic-rules.d.ts +2 -0
- package/dist/visio/ui/data-graphic-rules.d.ts.map +1 -1
- package/dist/visio/ui/data-graphics.d.ts +3 -2
- package/dist/visio/ui/data-graphics.d.ts.map +1 -1
- package/dist/visio/ui/edit-commands.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +16898 -15855
- package/dist/visio/ui/index.mjs +16898 -15856
- package/dist/visio/ui/scene-details.d.ts.map +1 -1
- package/dist/visio/ui/scene-validation.d.ts.map +1 -1
- package/dist/visio/ui/snapshot-scene.d.ts +2 -1
- package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
- package/dist/visio/xml-attribute-whitespace.d.ts +5 -0
- package/dist/visio/xml-attribute-whitespace.d.ts.map +1 -0
- package/dist/xlsx/edit/index.d.ts +1 -0
- package/dist/xlsx/edit/index.d.ts.map +1 -1
- package/dist/xlsx/edit/insert-guard.d.ts.map +1 -1
- package/dist/xlsx/edit/merge.d.ts.map +1 -1
- package/dist/xlsx/edit/page-breaks.d.ts +5 -0
- package/dist/xlsx/edit/page-breaks.d.ts.map +1 -0
- package/dist/xlsx/edit/pivots.d.ts +8 -0
- package/dist/xlsx/edit/pivots.d.ts.map +1 -0
- package/dist/xlsx/edit/print-titles.d.ts +7 -0
- package/dist/xlsx/edit/print-titles.d.ts.map +1 -0
- package/dist/xlsx/edit/session.d.ts.map +1 -1
- package/dist/xlsx/edit/sheets.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
- package/dist/xlsx/edit/sparkline-ranges.d.ts +11 -0
- package/dist/xlsx/edit/sparkline-ranges.d.ts.map +1 -0
- package/dist/xlsx/edit/sparkline-xml.d.ts +13 -0
- package/dist/xlsx/edit/sparkline-xml.d.ts.map +1 -0
- package/dist/xlsx/edit/sparklines.d.ts +16 -0
- package/dist/xlsx/edit/sparklines.d.ts.map +1 -0
- package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
- package/dist/xlsx/edit/tables.d.ts.map +1 -1
- package/dist/xlsx/edit/types.d.ts +22 -1
- package/dist/xlsx/edit/types.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/text-regex.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +3415 -1374
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/index.d.ts.map +1 -1
- package/dist/xlsx/index.mjs +3396 -1375
- package/dist/xlsx/layout/cell-view.d.ts +2 -0
- package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
- package/dist/xlsx/layout/header-footer.d.ts +58 -0
- package/dist/xlsx/layout/header-footer.d.ts.map +1 -0
- package/dist/xlsx/layout/index.d.ts +5 -0
- package/dist/xlsx/layout/index.d.ts.map +1 -1
- package/dist/xlsx/layout/print-breaks.d.ts +11 -0
- package/dist/xlsx/layout/print-breaks.d.ts.map +1 -0
- package/dist/xlsx/layout/print-layout.d.ts +34 -0
- package/dist/xlsx/layout/print-layout.d.ts.map +1 -0
- package/dist/xlsx/layout/print-merges.d.ts +18 -0
- package/dist/xlsx/layout/print-merges.d.ts.map +1 -0
- package/dist/xlsx/layout/print-repeat.d.ts +12 -0
- package/dist/xlsx/layout/print-repeat.d.ts.map +1 -0
- package/dist/xlsx/layout/print-titles.d.ts +20 -0
- package/dist/xlsx/layout/print-titles.d.ts.map +1 -0
- package/dist/xlsx/layout/sparkline-data.d.ts.map +1 -1
- package/dist/xlsx/layout/sparkline-view.d.ts.map +1 -1
- package/dist/xlsx/load/index.cjs +7831 -6961
- package/dist/xlsx/load/index.mjs +7831 -6961
- package/dist/xlsx/model-pivots.d.ts +46 -0
- package/dist/xlsx/model-pivots.d.ts.map +1 -0
- package/dist/xlsx/model.d.ts +5 -0
- package/dist/xlsx/model.d.ts.map +1 -1
- package/dist/xlsx/pivot/admission.d.ts +5 -0
- package/dist/xlsx/pivot/admission.d.ts.map +1 -0
- package/dist/xlsx/pivot/aggregate.d.ts +19 -0
- package/dist/xlsx/pivot/aggregate.d.ts.map +1 -0
- package/dist/xlsx/pivot/cache-xml.d.ts +9 -0
- package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -0
- package/dist/xlsx/pivot/data.d.ts +12 -0
- package/dist/xlsx/pivot/data.d.ts.map +1 -0
- package/dist/xlsx/pivot/hierarchy.d.ts +7 -0
- package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -0
- package/dist/xlsx/pivot/index.d.ts +3 -0
- package/dist/xlsx/pivot/index.d.ts.map +1 -0
- package/dist/xlsx/pivot/read.d.ts +5 -0
- package/dist/xlsx/pivot/read.d.ts.map +1 -0
- package/dist/xlsx/pivot/table-xml.d.ts +5 -0
- package/dist/xlsx/pivot/table-xml.d.ts.map +1 -0
- package/dist/xlsx/pivot/write.d.ts +11 -0
- package/dist/xlsx/pivot/write.d.ts.map +1 -0
- package/dist/xlsx/read/load.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/pivots.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/print-layout.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/print-layout.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/sparklines.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/sparklines.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/page-breaks.d.ts +3 -0
- package/dist/xlsx/ui/commands/page-breaks.d.ts.map +1 -0
- package/dist/xlsx/ui/index.cjs +2451 -737
- package/dist/xlsx/ui/index.d.ts +1 -0
- package/dist/xlsx/ui/index.d.ts.map +1 -1
- package/dist/xlsx/ui/index.mjs +2451 -738
- package/dist/xlsx/write/chart-cache.d.ts +8 -0
- package/dist/xlsx/write/chart-cache.d.ts.map +1 -0
- package/dist/xlsx/write/page-setup.d.ts.map +1 -1
- package/dist/xlsx/write/save.d.ts.map +1 -1
- package/dist/xlsx/write/sheet-parts.d.ts +1 -0
- package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
- package/dist/xlsx/write/workbook-part.d.ts +1 -1
- package/dist/xlsx/write/workbook-part.d.ts.map +1 -1
- package/dist/xlsx/write/worksheet.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +0 -1
- 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
|
-
|
|
18
|
-
|
|
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`:
|
|
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
|
-
|
|
16
|
-
|
|
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,
|
|
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"}
|