ooxml-core 1.24.2 → 1.25.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-AN42B3JR.mjs +4 -0
- package/dist/{PptxHandler-KFEE7O7W.cjs → PptxHandler-O25PF53M.cjs} +3 -3
- package/dist/{PptxHandler-5TWAQWPK.mjs → PptxHandler-UTNNU6PO.mjs} +3 -3
- package/dist/{PresentationBuilder-SXLRXYDI.cjs → PresentationBuilder-A4XU72IV.cjs} +5 -5
- package/dist/{PresentationBuilder-SCT5AQBP.mjs → PresentationBuilder-GTXNYSRI.mjs} +2 -2
- package/dist/{PresentationBuilder-SVHIKT4C.mjs → PresentationBuilder-TNMO5MPC.mjs} +3 -3
- package/dist/automation/index.cjs +10181 -6066
- package/dist/automation/index.mjs +10181 -6066
- package/dist/chart/data-sheet.d.ts +86 -0
- package/dist/chart/data-sheet.d.ts.map +1 -0
- package/dist/chart/edit/axes.d.ts +49 -0
- package/dist/chart/edit/axes.d.ts.map +1 -0
- package/dist/chart/edit/chartex-data.d.ts +15 -0
- package/dist/chart/edit/chartex-data.d.ts.map +1 -0
- package/dist/chart/edit/chartex.d.ts +61 -0
- package/dist/chart/edit/chartex.d.ts.map +1 -0
- package/dist/chart/edit/data-sheet.d.ts +10 -0
- package/dist/chart/edit/data-sheet.d.ts.map +1 -0
- package/dist/chart/edit/draft.d.ts +27 -0
- package/dist/chart/edit/draft.d.ts.map +1 -0
- package/dist/chart/edit/fill.d.ts +47 -0
- package/dist/chart/edit/fill.d.ts.map +1 -0
- package/dist/chart/edit/gradient.d.ts +44 -0
- package/dist/chart/edit/gradient.d.ts.map +1 -0
- package/dist/chart/edit/group-options.d.ts +14 -0
- package/dist/chart/edit/group-options.d.ts.map +1 -0
- package/dist/chart/edit/index.d.ts +23 -0
- package/dist/chart/edit/index.d.ts.map +1 -0
- package/dist/chart/edit/intent.d.ts +72 -0
- package/dist/chart/edit/intent.d.ts.map +1 -0
- package/dist/chart/edit/legend-labels.d.ts +34 -0
- package/dist/chart/edit/legend-labels.d.ts.map +1 -0
- package/dist/chart/edit/new-chart.d.ts +14 -0
- package/dist/chart/edit/new-chart.d.ts.map +1 -0
- package/dist/chart/edit/paint.d.ts +20 -0
- package/dist/chart/edit/paint.d.ts.map +1 -0
- package/dist/chart/edit/quick-layout.d.ts +16 -0
- package/dist/chart/edit/quick-layout.d.ts.map +1 -0
- package/dist/chart/edit/series-data.d.ts +8 -0
- package/dist/chart/edit/series-data.d.ts.map +1 -0
- package/dist/chart/edit/series.d.ts +57 -0
- package/dist/chart/edit/series.d.ts.map +1 -0
- package/dist/chart/edit/style.d.ts +18 -0
- package/dist/chart/edit/style.d.ts.map +1 -0
- package/dist/chart/edit/target-paint.d.ts +19 -0
- package/dist/chart/edit/target-paint.d.ts.map +1 -0
- package/dist/chart/edit/target.d.ts +31 -0
- package/dist/chart/edit/target.d.ts.map +1 -0
- package/dist/chart/edit/title.d.ts +24 -0
- package/dist/chart/edit/title.d.ts.map +1 -0
- package/dist/chart/edit/type-axes.d.ts +14 -0
- package/dist/chart/edit/type-axes.d.ts.map +1 -0
- package/dist/chart/edit/type-schema.d.ts +15 -0
- package/dist/chart/edit/type-schema.d.ts.map +1 -0
- package/dist/chart/edit/type.d.ts +16 -0
- package/dist/chart/edit/type.d.ts.map +1 -0
- package/dist/chart/ex/index.d.ts +4 -0
- package/dist/chart/ex/index.d.ts.map +1 -0
- package/dist/chart/ex/model.d.ts +291 -0
- package/dist/chart/ex/model.d.ts.map +1 -0
- package/dist/chart/ex/parse-axis.d.ts +6 -0
- package/dist/chart/ex/parse-axis.d.ts.map +1 -0
- package/dist/chart/ex/parse-series.d.ts +6 -0
- package/dist/chart/ex/parse-series.d.ts.map +1 -0
- package/dist/chart/ex/parse-text.d.ts +14 -0
- package/dist/chart/ex/parse-text.d.ts.map +1 -0
- package/dist/chart/ex/parse-util.d.ts +36 -0
- package/dist/chart/ex/parse-util.d.ts.map +1 -0
- package/dist/chart/ex/parse.d.ts +10 -0
- package/dist/chart/ex/parse.d.ts.map +1 -0
- package/dist/chart/ex/write-series.d.ts +13 -0
- package/dist/chart/ex/write-series.d.ts.map +1 -0
- package/dist/chart/ex/write-util.d.ts +23 -0
- package/dist/chart/ex/write-util.d.ts.map +1 -0
- package/dist/chart/ex/write.d.ts +24 -0
- package/dist/chart/ex/write.d.ts.map +1 -0
- package/dist/chart/index.cjs +7258 -3107
- package/dist/chart/index.d.ts +8 -0
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.mjs +7117 -3110
- package/dist/chart/keep-source.d.ts +11 -0
- package/dist/chart/keep-source.d.ts.map +1 -0
- package/dist/chart/keep-unmodelled.d.ts +6 -0
- package/dist/chart/keep-unmodelled.d.ts.map +1 -0
- package/dist/chart/model-series.d.ts +6 -0
- package/dist/chart/model-series.d.ts.map +1 -1
- package/dist/chart/model.d.ts +14 -0
- package/dist/chart/model.d.ts.map +1 -1
- package/dist/chart/parse-plot.d.ts.map +1 -1
- package/dist/chart/parse-series.d.ts +1 -1
- package/dist/chart/parse-series.d.ts.map +1 -1
- package/dist/chart/parse-util.d.ts +2 -0
- package/dist/chart/parse-util.d.ts.map +1 -1
- package/dist/chart/quick-layouts.d.ts +41 -0
- package/dist/chart/quick-layouts.d.ts.map +1 -0
- package/dist/chart/render/summary-from-chartex.d.ts +3 -0
- package/dist/chart/render/summary-from-chartex.d.ts.map +1 -1
- package/dist/chart/style-presets.d.ts +20 -0
- package/dist/chart/style-presets.d.ts.map +1 -0
- package/dist/chart/workbook/cellref.d.ts +53 -0
- package/dist/chart/workbook/cellref.d.ts.map +1 -0
- package/dist/chart/workbook/create.d.ts +6 -0
- package/dist/chart/workbook/create.d.ts.map +1 -0
- package/dist/chart/workbook/index.d.ts +10 -0
- package/dist/chart/workbook/index.d.ts.map +1 -0
- package/dist/chart/workbook/layout.d.ts +35 -0
- package/dist/chart/workbook/layout.d.ts.map +1 -0
- package/dist/chart/workbook/package-save.d.ts +48 -0
- package/dist/chart/workbook/package-save.d.ts.map +1 -0
- package/dist/chart/workbook/sheet-cells.d.ts +31 -0
- package/dist/chart/workbook/sheet-cells.d.ts.map +1 -0
- package/dist/chart/workbook/space-writes.d.ts +5 -0
- package/dist/chart/workbook/space-writes.d.ts.map +1 -0
- package/dist/chart/workbook/tables.d.ts +20 -0
- package/dist/chart/workbook/tables.d.ts.map +1 -0
- package/dist/chart/workbook/validation.d.ts +12 -0
- package/dist/chart/workbook/validation.d.ts.map +1 -0
- package/dist/chart/workbook/writer.d.ts +55 -0
- package/dist/chart/workbook/writer.d.ts.map +1 -0
- package/dist/chart/write-axes.d.ts.map +1 -1
- package/dist/chart/write-plot.d.ts.map +1 -1
- package/dist/chart/write-series.d.ts.map +1 -1
- package/dist/chart/write-shape.d.ts +2 -0
- package/dist/chart/write-shape.d.ts.map +1 -1
- package/dist/{chunk-NE7626A4.mjs → chunk-4IYYW3CX.mjs} +5 -5
- package/dist/{chunk-6IIMI5RS.mjs → chunk-6DHZZD5R.mjs} +1103 -1025
- package/dist/{chunk-GBKBR4CX.mjs → chunk-E2PYQQQV.mjs} +1 -1
- package/dist/{chunk-XK55DEUD.cjs → chunk-JE3DVWAJ.cjs} +4991 -2865
- package/dist/{chunk-7N7C5BNM.mjs → chunk-NBSJDA3B.mjs} +2236 -2096
- package/dist/{chunk-GVP262WE.mjs → chunk-QXWRJDVE.mjs} +4077 -1951
- package/dist/{chunk-4LZIUJI3.cjs → chunk-S5TGOEQX.cjs} +1108 -1029
- package/dist/{chunk-CWCDFPKN.mjs → chunk-VHGMYNWM.mjs} +1 -1
- package/dist/{chunk-ON7XVRHQ.mjs → chunk-X7IIABZ6.mjs} +3978 -1835
- package/dist/{chunk-KVKTHGIY.mjs → chunk-YWTKOZMT.mjs} +1 -1
- package/dist/crypto/detect.d.ts +5 -1
- package/dist/crypto/detect.d.ts.map +1 -1
- package/dist/crypto/index.cjs +1 -1
- package/dist/crypto/index.mjs +1 -1
- package/dist/diagram/approximate.d.ts +19 -0
- package/dist/diagram/approximate.d.ts.map +1 -0
- package/dist/diagram/builtin/catalog.d.ts +3 -0
- package/dist/diagram/builtin/catalog.d.ts.map +1 -0
- package/dist/diagram/builtin/data.d.ts +3 -0
- package/dist/diagram/builtin/data.d.ts.map +1 -0
- package/dist/diagram/builtin/definitions.d.ts +7 -0
- package/dist/diagram/builtin/definitions.d.ts.map +1 -0
- package/dist/diagram/builtin/index.cjs +1348 -0
- package/dist/diagram/builtin/index.d.ts +3 -0
- package/dist/diagram/builtin/index.d.ts.map +1 -0
- package/dist/diagram/builtin/index.mjs +1337 -0
- package/dist/diagram/builtin/layouts.d.ts +15 -0
- package/dist/diagram/builtin/layouts.d.ts.map +1 -0
- package/dist/diagram/builtin/types.d.ts +13 -0
- package/dist/diagram/builtin/types.d.ts.map +1 -0
- package/dist/diagram/catalogue.d.ts +51 -0
- package/dist/diagram/catalogue.d.ts.map +1 -0
- package/dist/diagram/data-model.d.ts.map +1 -1
- package/dist/diagram/drawing-from-views.d.ts +11 -0
- package/dist/diagram/drawing-from-views.d.ts.map +1 -0
- package/dist/diagram/drawing-resolve.d.ts +34 -0
- package/dist/diagram/drawing-resolve.d.ts.map +1 -0
- package/dist/diagram/drawing-view.d.ts +104 -0
- package/dist/diagram/drawing-view.d.ts.map +1 -0
- package/dist/diagram/drawing.d.ts.map +1 -1
- package/dist/diagram/edit/design-commands.d.ts +27 -0
- package/dist/diagram/edit/design-commands.d.ts.map +1 -0
- package/dist/diagram/edit/index.d.ts +15 -0
- package/dist/diagram/edit/index.d.ts.map +1 -0
- package/dist/diagram/edit/node-edit.d.ts +66 -0
- package/dist/diagram/edit/node-edit.d.ts.map +1 -0
- package/dist/diagram/edit/node-ops.d.ts +71 -0
- package/dist/diagram/edit/node-ops.d.ts.map +1 -0
- package/dist/diagram/edit/node-order.d.ts +28 -0
- package/dist/diagram/edit/node-order.d.ts.map +1 -0
- package/dist/diagram/edit/node-style.d.ts +42 -0
- package/dist/diagram/edit/node-style.d.ts.map +1 -0
- package/dist/diagram/edit/node-tree.d.ts +10 -0
- package/dist/diagram/edit/node-tree.d.ts.map +1 -0
- package/dist/diagram/edit/outline.d.ts +11 -0
- package/dist/diagram/edit/outline.d.ts.map +1 -0
- package/dist/diagram/edit/reflow-category.d.ts +18 -0
- package/dist/diagram/edit/reflow-category.d.ts.map +1 -0
- package/dist/diagram/edit/reflow-directional.d.ts +53 -0
- package/dist/diagram/edit/reflow-directional.d.ts.map +1 -0
- package/dist/diagram/edit/reflow-geometric.d.ts +59 -0
- package/dist/diagram/edit/reflow-geometric.d.ts.map +1 -0
- package/dist/diagram/edit/reflow-stacked.d.ts +32 -0
- package/dist/diagram/edit/reflow-stacked.d.ts.map +1 -0
- package/dist/diagram/edit/reflow.d.ts +48 -0
- package/dist/diagram/edit/reflow.d.ts.map +1 -0
- package/dist/diagram/edit/shape-match.d.ts +34 -0
- package/dist/diagram/edit/shape-match.d.ts.map +1 -0
- package/dist/diagram/edit/types.d.ts +31 -0
- package/dist/diagram/edit/types.d.ts.map +1 -0
- package/dist/diagram/index.cjs +3934 -910
- package/dist/diagram/index.d.ts +9 -0
- package/dist/diagram/index.d.ts.map +1 -1
- package/dist/diagram/index.mjs +3860 -912
- package/dist/diagram/model/node.d.ts +10 -0
- package/dist/diagram/model/node.d.ts.map +1 -1
- package/dist/diagram/relationships.d.ts +8 -0
- package/dist/diagram/relationships.d.ts.map +1 -1
- package/dist/diagram/strings/de.d.ts +3 -0
- package/dist/diagram/strings/de.d.ts.map +1 -0
- package/dist/diagram/strings/en.d.ts +74 -0
- package/dist/diagram/strings/en.d.ts.map +1 -0
- package/dist/diagram/strings/es.d.ts +3 -0
- package/dist/diagram/strings/es.d.ts.map +1 -0
- package/dist/diagram/strings/fr.d.ts +3 -0
- package/dist/diagram/strings/fr.d.ts.map +1 -0
- package/dist/diagram/strings/index.d.ts +11 -0
- package/dist/diagram/strings/index.d.ts.map +1 -0
- package/dist/diagram/strings/zh-CN.d.ts +3 -0
- package/dist/diagram/strings/zh-CN.d.ts.map +1 -0
- package/dist/diagram/text/index.d.ts +5 -0
- package/dist/diagram/text/index.d.ts.map +1 -0
- package/dist/diagram/text/node-text-neutral.d.ts +29 -0
- package/dist/diagram/text/node-text-neutral.d.ts.map +1 -0
- package/dist/diagram/text/node-text-paragraphs.d.ts +6 -0
- package/dist/diagram/text/node-text-paragraphs.d.ts.map +1 -0
- package/dist/diagram/text/node-text-projection.d.ts +48 -0
- package/dist/diagram/text/node-text-projection.d.ts.map +1 -0
- package/dist/diagram/text/node-text-reconciliation.d.ts +4 -0
- package/dist/diagram/text/node-text-reconciliation.d.ts.map +1 -0
- package/dist/diagram/types.d.ts +12 -0
- package/dist/diagram/types.d.ts.map +1 -1
- package/dist/diagram/write/data-edit.d.ts +30 -0
- package/dist/diagram/write/data-edit.d.ts.map +1 -0
- package/dist/diagram/write/data.d.ts +62 -0
- package/dist/diagram/write/data.d.ts.map +1 -0
- package/dist/diagram/write/index.d.ts +4 -0
- package/dist/diagram/write/index.d.ts.map +1 -0
- package/dist/diagram/write/inserted.d.ts +14 -0
- package/dist/diagram/write/inserted.d.ts.map +1 -0
- package/dist/docx/chart-edit.d.ts +33 -0
- package/dist/docx/chart-edit.d.ts.map +1 -0
- package/dist/docx/chart-save.d.ts +14 -0
- package/dist/docx/chart-save.d.ts.map +1 -0
- package/dist/docx/chart.d.ts +5 -3
- package/dist/docx/chart.d.ts.map +1 -1
- package/dist/docx/diagram-edit.d.ts +50 -0
- package/dist/docx/diagram-edit.d.ts.map +1 -0
- package/dist/docx/diagram-nodes.d.ts +2 -0
- package/dist/docx/diagram-nodes.d.ts.map +1 -0
- package/dist/docx/diagram-save.d.ts +12 -0
- package/dist/docx/diagram-save.d.ts.map +1 -0
- package/dist/docx/diagram.d.ts +17 -9
- package/dist/docx/diagram.d.ts.map +1 -1
- package/dist/docx/embedded.cjs +5191 -2423
- package/dist/docx/embedded.mjs +5191 -2423
- package/dist/docx/index.cjs +10063 -6083
- package/dist/docx/index.d.ts +4 -1
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +10049 -6084
- package/dist/docx/load/index.cjs +5841 -3073
- package/dist/docx/load/index.mjs +5841 -3073
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/part-relationships.d.ts.map +1 -1
- package/dist/docx/relationship-allocator.d.ts +19 -0
- package/dist/docx/relationship-allocator.d.ts.map +1 -1
- package/dist/docx/save.d.ts.map +1 -1
- package/dist/docx/ui/chart-commands.d.ts +19 -0
- package/dist/docx/ui/chart-commands.d.ts.map +1 -0
- package/dist/docx/ui/index.cjs +1482 -655
- package/dist/docx/ui/index.d.ts +2 -0
- package/dist/docx/ui/index.d.ts.map +1 -1
- package/dist/docx/ui/index.mjs +1479 -656
- package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
- package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
- package/dist/docx/ui/smartart-approximate.d.ts +5 -0
- package/dist/docx/ui/smartart-approximate.d.ts.map +1 -0
- package/dist/docx/write-chart-drawing.d.ts +12 -0
- package/dist/docx/write-chart-drawing.d.ts.map +1 -0
- package/dist/docx/write-diagram-drawing.d.ts +13 -0
- package/dist/docx/write-diagram-drawing.d.ts.map +1 -0
- package/dist/docx/write-drawing-patch.d.ts +8 -0
- package/dist/docx/write-drawing-patch.d.ts.map +1 -0
- package/dist/docx/write-drawing.d.ts.map +1 -1
- package/dist/drawingml/index.cjs +863 -0
- package/dist/drawingml/index.d.ts +7 -0
- package/dist/drawingml/index.d.ts.map +1 -1
- package/dist/drawingml/index.mjs +840 -1
- package/dist/drawingml/read-paragraph-properties.d.ts +8 -0
- package/dist/drawingml/read-paragraph-properties.d.ts.map +1 -0
- package/dist/drawingml/read-run-properties.d.ts +15 -0
- package/dist/drawingml/read-run-properties.d.ts.map +1 -0
- package/dist/drawingml/read-text-body.d.ts +13 -0
- package/dist/drawingml/read-text-body.d.ts.map +1 -0
- package/dist/drawingml/text-model.d.ts +210 -0
- package/dist/drawingml/text-model.d.ts.map +1 -0
- package/dist/drawingml/write-paragraph-properties.d.ts +12 -0
- package/dist/drawingml/write-paragraph-properties.d.ts.map +1 -0
- package/dist/drawingml/write-run-properties.d.ts +11 -0
- package/dist/drawingml/write-run-properties.d.ts.map +1 -0
- package/dist/drawingml/write-text-body.d.ts +18 -0
- package/dist/drawingml/write-text-body.d.ts.map +1 -0
- package/dist/drawingml/write-text-xml.d.ts +26 -0
- package/dist/drawingml/write-text-xml.d.ts.map +1 -0
- package/dist/index.cjs +10068 -2908
- package/dist/index.mjs +10068 -2908
- package/dist/pptx/automation/index.cjs +6849 -3889
- package/dist/pptx/automation/index.d.ts +9 -6
- package/dist/pptx/automation/index.d.ts.map +1 -1
- package/dist/pptx/automation/index.mjs +7 -7
- package/dist/pptx/chunks/{elements-iUzpAeqR.d.ts → elements-DhW764aK.d.ts} +23 -14
- package/dist/pptx/chunks/elements-DhW764aK.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-C3xhAMSa.d.ts → index-CX0RM1fF.d.ts} +4 -4
- package/dist/pptx/chunks/{index-C3xhAMSa.d.ts.map → index-CX0RM1fF.d.ts.map} +1 -1
- package/dist/pptx/chunks/{index-nKQ4s7FA.d.ts → index-CgjEEpfK.d.ts} +18 -9
- package/dist/pptx/chunks/index-CgjEEpfK.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-4FmgJajb.d.ts → index-DCbp5fOs.d.ts} +100 -95
- package/dist/pptx/chunks/index-DCbp5fOs.d.ts.map +1 -0
- package/dist/pptx/chunks/{smart-art-ENMMEbmW.d.ts → smart-art-BEEl0l8X.d.ts} +514 -306
- package/dist/pptx/chunks/smart-art-BEEl0l8X.d.ts.map +1 -0
- package/dist/pptx/chunks/{text-operations-CfLVZ7DK.d.ts → text-operations-CjalmJIi.d.ts} +2 -2
- package/dist/pptx/chunks/{text-operations-CfLVZ7DK.d.ts.map → text-operations-CjalmJIi.d.ts.map} +1 -1
- package/dist/pptx/cli/index.cjs +6333 -3375
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +5 -5
- package/dist/pptx/converter/index.cjs +107 -75
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +3 -3
- package/dist/pptx/editor/render/editor-history.cjs +3 -1
- package/dist/pptx/editor/render/editor-history.d.ts +9 -1
- package/dist/pptx/editor/render/editor-history.d.ts.map +1 -1
- package/dist/pptx/editor/render/editor-history.mjs +3 -2
- package/dist/pptx/editor/render/find-replace.cjs +14 -14
- package/dist/pptx/editor/render/find-replace.d.ts +2 -2
- package/dist/pptx/editor/render/find-replace.mjs +1 -1
- package/dist/pptx/editor/render/slide-operations.cjs +8 -8
- package/dist/pptx/editor/render/slide-operations.mjs +2 -2
- package/dist/pptx/editor/render/text-runs-style-patch.d.ts +1 -1
- package/dist/pptx/editor/render/text-style-scope.d.ts +1 -1
- package/dist/pptx/index.cjs +7753 -4728
- package/dist/pptx/index.d.ts +7 -7
- package/dist/pptx/index.mjs +6 -6
- package/dist/pptx/node/index.d.ts +1 -1
- package/dist/pptx/signature-node/index.mjs +2 -2
- package/dist/pptx/smartart-layouts/index.cjs +26 -23
- package/dist/pptx/smartart-layouts/index.d.ts +7 -5
- package/dist/pptx/smartart-layouts/index.d.ts.map +1 -1
- package/dist/pptx/smartart-layouts/index.mjs +26 -23
- package/dist/teams/index.cjs +20165 -18388
- package/dist/teams/index.mjs +20165 -18388
- package/dist/text/index.cjs +106 -0
- package/dist/text/index.d.ts +2 -0
- package/dist/text/index.d.ts.map +1 -1
- package/dist/text/index.mjs +103 -1
- package/dist/text/locale-number.d.ts +15 -0
- package/dist/text/locale-number.d.ts.map +1 -0
- package/dist/text/tsv.d.ts +8 -0
- package/dist/text/tsv.d.ts.map +1 -0
- package/dist/visio/index.cjs +3574 -1953
- package/dist/visio/index.mjs +3574 -1953
- package/dist/visio/ui/index.cjs +3562 -1941
- package/dist/visio/ui/index.mjs +3562 -1941
- package/dist/xlsx/edit/chart-colors.d.ts +2 -2
- package/dist/xlsx/edit/chart-colors.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-design.d.ts +11 -0
- package/dist/xlsx/edit/chart-design.d.ts.map +1 -0
- package/dist/xlsx/edit/chart-element-fill.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-fill.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-gradient.d.ts +6 -34
- package/dist/xlsx/edit/chart-series-gradient.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-transparency.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-space-patch.d.ts +13 -0
- package/dist/xlsx/edit/chart-space-patch.d.ts.map +1 -0
- package/dist/xlsx/edit/chart-space-series.d.ts +14 -0
- package/dist/xlsx/edit/chart-space-series.d.ts.map +1 -0
- package/dist/xlsx/edit/charts.d.ts +22 -6
- package/dist/xlsx/edit/charts.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard-text.d.ts +2 -7
- package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
- package/dist/xlsx/edit/index.d.ts +3 -1
- package/dist/xlsx/edit/index.d.ts.map +1 -1
- package/dist/xlsx/edit/session.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
- package/dist/xlsx/edit/smart-art.d.ts +32 -0
- package/dist/xlsx/edit/smart-art.d.ts.map +1 -0
- package/dist/xlsx/edit/types.d.ts +12 -1
- package/dist/xlsx/edit/types.d.ts.map +1 -1
- package/dist/xlsx/embedded-chart-space.d.ts +19 -0
- package/dist/xlsx/embedded-chart-space.d.ts.map +1 -0
- package/dist/xlsx/index.cjs +6457 -3105
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/index.d.ts.map +1 -1
- package/dist/xlsx/index.mjs +6451 -3106
- package/dist/xlsx/load/index.cjs +5733 -3844
- package/dist/xlsx/load/index.mjs +5733 -3844
- package/dist/xlsx/model.d.ts +71 -15
- package/dist/xlsx/model.d.ts.map +1 -1
- package/dist/xlsx/read/chart.d.ts +10 -0
- package/dist/xlsx/read/chart.d.ts.map +1 -1
- package/dist/xlsx/read/drawing.d.ts.map +1 -1
- package/dist/xlsx/read/smart-art.d.ts.map +1 -1
- package/dist/xlsx/smart-art-notices.d.ts +6 -0
- package/dist/xlsx/smart-art-notices.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/contextual.d.ts +6 -1
- package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/chart-series.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/smartart.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/smartart.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/icons.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +6664 -2907
- package/dist/xlsx/ui/index.mjs +6663 -2907
- package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/de/smartart.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/smartart.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/en/smartart.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/smartart.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/es/smartart.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/smartart.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/fr/smartart.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/smartart.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/zh-CN/smartart.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/smartart.d.ts.map +1 -0
- package/dist/xlsx/write/chart-cache.d.ts.map +1 -1
- package/dist/xlsx/write/chart-colors.d.ts +1 -8
- package/dist/xlsx/write/chart-colors.d.ts.map +1 -1
- package/dist/xlsx/write/chart-space.d.ts +8 -0
- package/dist/xlsx/write/chart-space.d.ts.map +1 -1
- package/dist/xlsx/write/chart-title.d.ts +2 -2
- package/dist/xlsx/write/chart-title.d.ts.map +1 -1
- package/dist/xlsx/write/chart.d.ts +4 -3
- package/dist/xlsx/write/chart.d.ts.map +1 -1
- package/dist/xlsx/write/drawing.d.ts +10 -3
- package/dist/xlsx/write/drawing.d.ts.map +1 -1
- package/dist/xlsx/write/smart-art.d.ts +17 -0
- package/dist/xlsx/write/smart-art.d.ts.map +1 -0
- package/package.json +6 -1
- package/dist/PptxHandler-KBJ4TN3T.mjs +0 -4
- package/dist/pptx/chunks/elements-iUzpAeqR.d.ts.map +0 -1
- package/dist/pptx/chunks/index-4FmgJajb.d.ts.map +0 -1
- package/dist/pptx/chunks/index-nKQ4s7FA.d.ts.map +0 -1
- package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts.map +0 -1
- package/dist/xlsx/write/chart-patch.d.ts +0 -9
- package/dist/xlsx/write/chart-patch.d.ts.map +0 -1
|
@@ -3037,6 +3037,182 @@ function openNestedZip(bytes) {
|
|
|
3037
3037
|
return openZip(bytes, { label: "Embedded", createError });
|
|
3038
3038
|
}
|
|
3039
3039
|
|
|
3040
|
+
// xml/namespaces.ts
|
|
3041
|
+
var NS = {
|
|
3042
|
+
/** WordprocessingML main. */
|
|
3043
|
+
w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
|
|
3044
|
+
/** PresentationML main. */
|
|
3045
|
+
p: "http://schemas.openxmlformats.org/presentationml/2006/main",
|
|
3046
|
+
/** SpreadsheetML main. */
|
|
3047
|
+
x: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
3048
|
+
/** DrawingML main. */
|
|
3049
|
+
a: "http://schemas.openxmlformats.org/drawingml/2006/main",
|
|
3050
|
+
/** DrawingML chart. */
|
|
3051
|
+
c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
|
|
3052
|
+
/** Office 2016 extended charts (waterfall, histogram, funnel...; `cx:chartSpace`). */
|
|
3053
|
+
cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
|
|
3054
|
+
/** Office 2010 chart extensions, including built-in modern chart styles. */
|
|
3055
|
+
c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
|
|
3056
|
+
/** DrawingML diagram (SmartArt) main. */
|
|
3057
|
+
dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
|
|
3058
|
+
/** Office 2007+ diagram drawing (`dsp`). */
|
|
3059
|
+
dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
|
|
3060
|
+
/** DrawingML Word drawing (`wp:inline`, `wp:anchor`). */
|
|
3061
|
+
wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
|
|
3062
|
+
/** DrawingML picture. */
|
|
3063
|
+
pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
|
|
3064
|
+
/** Word 2010 shapes (`wps`). */
|
|
3065
|
+
wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
|
|
3066
|
+
/** Relationships (`r:id`, `r:embed`). */
|
|
3067
|
+
r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
3068
|
+
/** Markup compatibility (`mc:AlternateContent`). */
|
|
3069
|
+
mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
|
|
3070
|
+
/** OPC relationships part. */
|
|
3071
|
+
rels: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
3072
|
+
/** OPC content types part. */
|
|
3073
|
+
contentTypes: "http://schemas.openxmlformats.org/package/2006/content-types",
|
|
3074
|
+
/** Office Math. */
|
|
3075
|
+
m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
|
|
3076
|
+
/** Core properties. */
|
|
3077
|
+
cp: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
|
|
3078
|
+
/** Dublin Core elements. */
|
|
3079
|
+
dc: "http://purl.org/dc/elements/1.1/",
|
|
3080
|
+
/** Legacy VML. */
|
|
3081
|
+
v: "urn:schemas-microsoft-com:vml",
|
|
3082
|
+
/** Office VML extensions. */
|
|
3083
|
+
o: "urn:schemas-microsoft-com:office:office",
|
|
3084
|
+
/** Word VML extensions. */
|
|
3085
|
+
w10: "urn:schemas-microsoft-com:office:word",
|
|
3086
|
+
/** SpreadsheetML drawing (`xdr:wsDr`, cell anchors). */
|
|
3087
|
+
xdr: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
|
|
3088
|
+
/** SpreadsheetML 2009 extensions (`x14:conditionalFormatting`, `x14:dataBar`). */
|
|
3089
|
+
x14: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
|
|
3090
|
+
/** SpreadsheetML 2009 attribute extensions (`x14ac:dyDescent`). */
|
|
3091
|
+
x14ac: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac",
|
|
3092
|
+
/** SpreadsheetML revision ids (`xr:uid`). */
|
|
3093
|
+
xr: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
|
|
3094
|
+
/** Excel threaded comments and persons. */
|
|
3095
|
+
tc: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
|
|
3096
|
+
/** Legacy VML Excel client data (`x:ClientData`). */
|
|
3097
|
+
xv: "urn:schemas-microsoft-com:office:excel",
|
|
3098
|
+
/** Extended (app) properties. */
|
|
3099
|
+
extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
|
|
3100
|
+
/** Dublin Core terms (`dcterms:created`). */
|
|
3101
|
+
dcterms: "http://purl.org/dc/terms/",
|
|
3102
|
+
/** Custom document properties (`docProps/custom.xml`). */
|
|
3103
|
+
customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
|
|
3104
|
+
/** Document property variant types (`vt:lpwstr`, `vt:vector`). */
|
|
3105
|
+
vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
|
|
3106
|
+
/** XML itself (`xml:space`). */
|
|
3107
|
+
xml: "http://www.w3.org/XML/1998/namespace"
|
|
3108
|
+
};
|
|
3109
|
+
var DEFAULT_XML_LIMITS = {
|
|
3110
|
+
maxDepth: 512,
|
|
3111
|
+
maxNodes: 5e6
|
|
3112
|
+
};
|
|
3113
|
+
var XmlLimitError = class extends Error {
|
|
3114
|
+
code = "xml-limit";
|
|
3115
|
+
/** The limit that was exceeded. */
|
|
3116
|
+
limit;
|
|
3117
|
+
/** Its value: the largest depth or element count allowed. */
|
|
3118
|
+
maximum;
|
|
3119
|
+
constructor(message, limit, maximum) {
|
|
3120
|
+
super(message);
|
|
3121
|
+
this.name = "XmlLimitError";
|
|
3122
|
+
this.limit = limit;
|
|
3123
|
+
this.maximum = maximum;
|
|
3124
|
+
}
|
|
3125
|
+
};
|
|
3126
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
3127
|
+
var MARKUP_SKIPS = [
|
|
3128
|
+
["<!--", "-->"],
|
|
3129
|
+
["<![CDATA[", "]]>"],
|
|
3130
|
+
["<?", "?>"]
|
|
3131
|
+
];
|
|
3132
|
+
function checkXmlLimits(xml, label, limits = {}) {
|
|
3133
|
+
const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
3134
|
+
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
3135
|
+
let depth = 0;
|
|
3136
|
+
let nodes = 0;
|
|
3137
|
+
let at2 = xml.indexOf("<");
|
|
3138
|
+
while (at2 !== -1) {
|
|
3139
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
3140
|
+
if (skip) {
|
|
3141
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
3142
|
+
if (end === -1) return;
|
|
3143
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
3144
|
+
continue;
|
|
3145
|
+
}
|
|
3146
|
+
TAG_RE.lastIndex = at2;
|
|
3147
|
+
const match = TAG_RE.exec(xml);
|
|
3148
|
+
if (!match) {
|
|
3149
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
3150
|
+
continue;
|
|
3151
|
+
}
|
|
3152
|
+
const [, closing, , selfClosing] = match;
|
|
3153
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
3154
|
+
if (closing) {
|
|
3155
|
+
depth--;
|
|
3156
|
+
continue;
|
|
3157
|
+
}
|
|
3158
|
+
nodes++;
|
|
3159
|
+
if (nodes > maxNodes)
|
|
3160
|
+
throw new XmlLimitError(
|
|
3161
|
+
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
3162
|
+
"maxNodes",
|
|
3163
|
+
maxNodes
|
|
3164
|
+
);
|
|
3165
|
+
if (!selfClosing && ++depth > maxDepth2)
|
|
3166
|
+
throw new XmlLimitError(
|
|
3167
|
+
`${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
|
|
3168
|
+
"maxDepth",
|
|
3169
|
+
maxDepth2
|
|
3170
|
+
);
|
|
3171
|
+
}
|
|
3172
|
+
}
|
|
3173
|
+
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
3174
|
+
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
3175
|
+
function parseXml(xml, options = {}) {
|
|
3176
|
+
const label = options.label ?? "OOXML";
|
|
3177
|
+
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
3178
|
+
throw new Error(`${label} XML with DTD or entity declarations is not supported`);
|
|
3179
|
+
checkXmlLimits(xml, label, options.limits);
|
|
3180
|
+
let parseError = "";
|
|
3181
|
+
let parsed;
|
|
3182
|
+
try {
|
|
3183
|
+
parsed = new DOMParser({
|
|
3184
|
+
onError: (level2, message) => {
|
|
3185
|
+
if (level2 !== "warning") parseError = message;
|
|
3186
|
+
}
|
|
3187
|
+
}).parseFromString(xml, "application/xml");
|
|
3188
|
+
} catch (error) {
|
|
3189
|
+
throw new Error(
|
|
3190
|
+
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
3191
|
+
{ cause: error }
|
|
3192
|
+
);
|
|
3193
|
+
}
|
|
3194
|
+
if (parseError || !parsed.documentElement)
|
|
3195
|
+
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
3196
|
+
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
3197
|
+
return parsed;
|
|
3198
|
+
}
|
|
3199
|
+
var buildXml = (node) => {
|
|
3200
|
+
const xml = new XMLSerializer().serializeToString(node);
|
|
3201
|
+
return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
|
|
3202
|
+
};
|
|
3203
|
+
var isElement = (node) => node.nodeType === 1;
|
|
3204
|
+
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
3205
|
+
function named(element, local, ns, lenient = true) {
|
|
3206
|
+
if (!element || element.localName !== local) return false;
|
|
3207
|
+
return element.namespaceURI === ns || lenient && !element.namespaceURI;
|
|
3208
|
+
}
|
|
3209
|
+
var children2 = (parent, local, ns, lenient = true) => elements(parent).filter((element) => named(element, local, ns, lenient));
|
|
3210
|
+
var first = (parent, local, ns, lenient = true) => parent ? children2(parent, local, ns, lenient)[0] : void 0;
|
|
3211
|
+
function attr(element, local, ns, prefix) {
|
|
3212
|
+
return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
|
|
3213
|
+
}
|
|
3214
|
+
var relAttr = (element, local) => attr(element, local, NS.r, "r");
|
|
3215
|
+
|
|
3040
3216
|
// pptx/core/utils/xml-access.ts
|
|
3041
3217
|
var ATTR_PREFIX = "@_";
|
|
3042
3218
|
var TEXT_KEY = "#text";
|
|
@@ -18219,415 +18395,8 @@ function getContentNodes(nodes) {
|
|
|
18219
18395
|
return nodes.filter((n) => n.text.length > 0);
|
|
18220
18396
|
}
|
|
18221
18397
|
|
|
18222
|
-
//
|
|
18223
|
-
|
|
18224
|
-
var commandOrder = /* @__PURE__ */ new WeakMap();
|
|
18225
|
-
var PATH_COMMANDS = /* @__PURE__ */ new Set(["moveTo", "lnTo", "arcTo", "quadBezTo", "cubicBezTo", "close"]);
|
|
18226
|
-
function localName4(name) {
|
|
18227
|
-
const colon = name.indexOf(":");
|
|
18228
|
-
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
18229
|
-
}
|
|
18230
|
-
function childByLocalName(node, name) {
|
|
18231
|
-
if (!node) {
|
|
18232
|
-
return void 0;
|
|
18233
|
-
}
|
|
18234
|
-
const key = Object.keys(node).find((candidate) => localName4(candidate) === name);
|
|
18235
|
-
return key ? node[key] : void 0;
|
|
18236
|
-
}
|
|
18237
|
-
function collectParsedPaths(root) {
|
|
18238
|
-
const paths = [];
|
|
18239
|
-
const stack = [root];
|
|
18240
|
-
while (stack.length > 0) {
|
|
18241
|
-
const current = stack.pop();
|
|
18242
|
-
if (!current || typeof current !== "object") {
|
|
18243
|
-
continue;
|
|
18244
|
-
}
|
|
18245
|
-
if (Array.isArray(current)) {
|
|
18246
|
-
for (let index = current.length - 1; index >= 0; index--) {
|
|
18247
|
-
stack.push(current[index]);
|
|
18248
|
-
}
|
|
18249
|
-
continue;
|
|
18250
|
-
}
|
|
18251
|
-
const node = current;
|
|
18252
|
-
for (const [key, value] of Object.entries(node).reverse()) {
|
|
18253
|
-
if (localName4(key) === "custGeom") {
|
|
18254
|
-
const pathList = childByLocalName(value, "pathLst");
|
|
18255
|
-
const rawPaths = childByLocalName(pathList, "path");
|
|
18256
|
-
paths.push(
|
|
18257
|
-
...Array.isArray(rawPaths) ? rawPaths : rawPaths ? [rawPaths] : []
|
|
18258
|
-
);
|
|
18259
|
-
} else {
|
|
18260
|
-
stack.push(value);
|
|
18261
|
-
}
|
|
18262
|
-
}
|
|
18263
|
-
}
|
|
18264
|
-
return paths;
|
|
18265
|
-
}
|
|
18266
|
-
function extractSourceOrders(xml) {
|
|
18267
|
-
const orders = [];
|
|
18268
|
-
const custGeomPattern = /<([A-Za-z_][\w.-]*:)?custGeom\b[^>]*>([\s\S]*?)<\/\1custGeom\s*>/gu;
|
|
18269
|
-
for (const geometryMatch of xml.matchAll(custGeomPattern)) {
|
|
18270
|
-
const geometryXml = geometryMatch[2];
|
|
18271
|
-
const pathPattern = /<([A-Za-z_][\w.-]*:)?path\b[^>]*>([\s\S]*?)<\/\1path\s*>/gu;
|
|
18272
|
-
for (const pathMatch of geometryXml.matchAll(pathPattern)) {
|
|
18273
|
-
const order = [
|
|
18274
|
-
...pathMatch[2].matchAll(/<\/?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)
|
|
18275
|
-
].filter((match) => match[0][1] !== "/" && PATH_COMMANDS.has(match[2])).map((match) => match[2]);
|
|
18276
|
-
orders.push(order);
|
|
18277
|
-
}
|
|
18278
|
-
}
|
|
18279
|
-
return orders;
|
|
18280
|
-
}
|
|
18281
|
-
function ensureArrayLocal(value) {
|
|
18282
|
-
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
18283
|
-
}
|
|
18284
|
-
function countsSignature(counts) {
|
|
18285
|
-
return [...counts.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([name, count]) => `${name}:${count}`).join(",");
|
|
18286
|
-
}
|
|
18287
|
-
function pathSignature(path) {
|
|
18288
|
-
const counts = /* @__PURE__ */ new Map();
|
|
18289
|
-
for (const key of Object.keys(path)) {
|
|
18290
|
-
const name = localName4(key);
|
|
18291
|
-
if (!PATH_COMMANDS.has(name)) {
|
|
18292
|
-
continue;
|
|
18293
|
-
}
|
|
18294
|
-
counts.set(name, (counts.get(name) ?? 0) + ensureArrayLocal(path[key]).length);
|
|
18295
|
-
}
|
|
18296
|
-
return countsSignature(counts);
|
|
18297
|
-
}
|
|
18298
|
-
function orderSignature(order) {
|
|
18299
|
-
const counts = /* @__PURE__ */ new Map();
|
|
18300
|
-
for (const name of order) {
|
|
18301
|
-
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
18302
|
-
}
|
|
18303
|
-
return countsSignature(counts);
|
|
18304
|
-
}
|
|
18305
|
-
function annotateCustomGeometryCommandOrder(xml, parsed) {
|
|
18306
|
-
const orders = extractSourceOrders(xml);
|
|
18307
|
-
if (orders.length === 0) {
|
|
18308
|
-
return;
|
|
18309
|
-
}
|
|
18310
|
-
const paths = collectParsedPaths(parsed);
|
|
18311
|
-
const ordersBySignature = /* @__PURE__ */ new Map();
|
|
18312
|
-
for (const order of orders) {
|
|
18313
|
-
const signature = orderSignature(order);
|
|
18314
|
-
const bucket = ordersBySignature.get(signature);
|
|
18315
|
-
if (bucket) {
|
|
18316
|
-
bucket.push(order);
|
|
18317
|
-
} else {
|
|
18318
|
-
ordersBySignature.set(signature, [order]);
|
|
18319
|
-
}
|
|
18320
|
-
}
|
|
18321
|
-
for (const path of paths) {
|
|
18322
|
-
const bucket = ordersBySignature.get(pathSignature(path));
|
|
18323
|
-
const order = bucket?.shift();
|
|
18324
|
-
if (order) {
|
|
18325
|
-
commandOrder.set(path, order);
|
|
18326
|
-
}
|
|
18327
|
-
}
|
|
18328
|
-
}
|
|
18329
|
-
function orderedPathCommandEntries(path, ensureArray8) {
|
|
18330
|
-
const commandItems = (key) => {
|
|
18331
|
-
const value = path[key];
|
|
18332
|
-
const items = ensureArray8(value);
|
|
18333
|
-
return items.length === 0 && localName4(key) === "close" && value !== void 0 ? [value] : items;
|
|
18334
|
-
};
|
|
18335
|
-
const order = commandOrder.get(path);
|
|
18336
|
-
if (!order) {
|
|
18337
|
-
return Object.keys(path).flatMap(
|
|
18338
|
-
(key) => key.startsWith("@_") ? [] : commandItems(key).map((item) => [key, item])
|
|
18339
|
-
);
|
|
18340
|
-
}
|
|
18341
|
-
const consumed = /* @__PURE__ */ new Map();
|
|
18342
|
-
return order.flatMap((name) => {
|
|
18343
|
-
const key = Object.keys(path).find((candidate) => localName4(candidate) === name);
|
|
18344
|
-
if (!key) {
|
|
18345
|
-
return [];
|
|
18346
|
-
}
|
|
18347
|
-
const items = commandItems(key);
|
|
18348
|
-
const index = consumed.get(key) ?? 0;
|
|
18349
|
-
consumed.set(key, index + 1);
|
|
18350
|
-
return index < items.length ? [[key, items[index]]] : [];
|
|
18351
|
-
});
|
|
18352
|
-
}
|
|
18353
|
-
function inheritCustomGeometryCommandOrder(target, ...sources) {
|
|
18354
|
-
let targetSignature;
|
|
18355
|
-
for (const source of sources) {
|
|
18356
|
-
if (!source) {
|
|
18357
|
-
continue;
|
|
18358
|
-
}
|
|
18359
|
-
const order = commandOrder.get(source);
|
|
18360
|
-
if (!order) {
|
|
18361
|
-
continue;
|
|
18362
|
-
}
|
|
18363
|
-
targetSignature ??= pathSignature(target);
|
|
18364
|
-
if (orderSignature(order) === targetSignature) {
|
|
18365
|
-
commandOrder.set(target, [...order]);
|
|
18366
|
-
return;
|
|
18367
|
-
}
|
|
18368
|
-
}
|
|
18369
|
-
}
|
|
18370
|
-
function pathListPaths(pathLst) {
|
|
18371
|
-
if (!pathLst || typeof pathLst !== "object") {
|
|
18372
|
-
return [];
|
|
18373
|
-
}
|
|
18374
|
-
return ensureArrayLocal(childByLocalName(pathLst, "path")).filter(
|
|
18375
|
-
(path) => Boolean(path) && typeof path === "object"
|
|
18376
|
-
);
|
|
18377
|
-
}
|
|
18378
|
-
function readPathListCommandOrder(pathLst) {
|
|
18379
|
-
const orders = pathListPaths(pathLst).map((path) => [...commandOrder.get(path) ?? []]);
|
|
18380
|
-
return orders.some((order) => order.length > 0) ? orders : void 0;
|
|
18381
|
-
}
|
|
18382
|
-
function restorePathListCommandOrder(pathLst, orders) {
|
|
18383
|
-
if (!orders || orders.length === 0) {
|
|
18384
|
-
return;
|
|
18385
|
-
}
|
|
18386
|
-
pathListPaths(pathLst).forEach((path, index) => {
|
|
18387
|
-
const order = orders[index];
|
|
18388
|
-
if (!order || order.length === 0 || commandOrder.has(path)) {
|
|
18389
|
-
return;
|
|
18390
|
-
}
|
|
18391
|
-
if (orderSignature([...order]) === pathSignature(path)) {
|
|
18392
|
-
commandOrder.set(path, [...order]);
|
|
18393
|
-
}
|
|
18394
|
-
});
|
|
18395
|
-
}
|
|
18396
|
-
function orderedXmlKey(baseName, order) {
|
|
18397
|
-
return `${baseName}${ORDER_SUFFIX}${order}`;
|
|
18398
|
-
}
|
|
18399
|
-
function stripXmlOrderSuffix(tagName) {
|
|
18400
|
-
const index = tagName.indexOf(ORDER_SUFFIX);
|
|
18401
|
-
return index >= 0 ? tagName.slice(0, index) : tagName;
|
|
18402
|
-
}
|
|
18403
|
-
function stripXmlOrderMarkers(xml) {
|
|
18404
|
-
return xml.replace(/#pptx-order-\d+/gu, "");
|
|
18405
|
-
}
|
|
18406
|
-
|
|
18407
|
-
// pptx/core/core/runtime/smartart-text-order.ts
|
|
18408
|
-
var childOrder = /* @__PURE__ */ new WeakMap();
|
|
18409
|
-
function localName5(name) {
|
|
18410
|
-
const colon = name.indexOf(":");
|
|
18411
|
-
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
18412
|
-
}
|
|
18413
|
-
function isXmlObject2(value) {
|
|
18414
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
18415
|
-
}
|
|
18416
|
-
function collectParsedParagraphs(root) {
|
|
18417
|
-
const paragraphs = [];
|
|
18418
|
-
const stack = [root];
|
|
18419
|
-
while (stack.length > 0) {
|
|
18420
|
-
const current = stack.pop();
|
|
18421
|
-
if (!current || typeof current !== "object") {
|
|
18422
|
-
continue;
|
|
18423
|
-
}
|
|
18424
|
-
if (Array.isArray(current)) {
|
|
18425
|
-
for (let index = current.length - 1; index >= 0; index--) {
|
|
18426
|
-
stack.push(current[index]);
|
|
18427
|
-
}
|
|
18428
|
-
continue;
|
|
18429
|
-
}
|
|
18430
|
-
const node = current;
|
|
18431
|
-
for (const [key, value] of Object.entries(node).reverse()) {
|
|
18432
|
-
if ((localName5(key) === "t" || localName5(key) === "txBody") && value && typeof value === "object") {
|
|
18433
|
-
for (const [childKey2, childValue] of Object.entries(value)) {
|
|
18434
|
-
if (localName5(childKey2) !== "p") {
|
|
18435
|
-
continue;
|
|
18436
|
-
}
|
|
18437
|
-
paragraphs.push(
|
|
18438
|
-
...(Array.isArray(childValue) ? childValue : [childValue]).filter(isXmlObject2)
|
|
18439
|
-
);
|
|
18440
|
-
}
|
|
18441
|
-
} else {
|
|
18442
|
-
stack.push(value);
|
|
18443
|
-
}
|
|
18444
|
-
}
|
|
18445
|
-
}
|
|
18446
|
-
return paragraphs;
|
|
18447
|
-
}
|
|
18448
|
-
function directChildOrder(xml) {
|
|
18449
|
-
const order = [];
|
|
18450
|
-
let depth = 0;
|
|
18451
|
-
for (const match of xml.matchAll(/<(\/)?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)) {
|
|
18452
|
-
const closing = Boolean(match[1]);
|
|
18453
|
-
const selfClosing = /\/\s*>$/u.test(match[0]);
|
|
18454
|
-
if (closing) {
|
|
18455
|
-
depth = Math.max(0, depth - 1);
|
|
18456
|
-
continue;
|
|
18457
|
-
}
|
|
18458
|
-
if (depth === 0) {
|
|
18459
|
-
order.push(match[3]);
|
|
18460
|
-
}
|
|
18461
|
-
if (!selfClosing) {
|
|
18462
|
-
depth++;
|
|
18463
|
-
}
|
|
18464
|
-
}
|
|
18465
|
-
return order;
|
|
18466
|
-
}
|
|
18467
|
-
function extractElementOrders(xml, elementName) {
|
|
18468
|
-
const orders = [];
|
|
18469
|
-
const pattern = new RegExp(
|
|
18470
|
-
`<([A-Za-z_][\\w.-]*:)?${elementName}(?=[\\s/>])[^>]*>([\\s\\S]*?)<\\/\\1${elementName}\\s*>`,
|
|
18471
|
-
"gu"
|
|
18472
|
-
);
|
|
18473
|
-
for (const match of xml.matchAll(pattern)) {
|
|
18474
|
-
orders.push(directChildOrder(match[2]));
|
|
18475
|
-
}
|
|
18476
|
-
return orders;
|
|
18477
|
-
}
|
|
18478
|
-
function directChildrenByLocalName(paragraphs, name) {
|
|
18479
|
-
return paragraphs.flatMap(
|
|
18480
|
-
(paragraph) => Object.entries(paragraph).flatMap(([key, value]) => {
|
|
18481
|
-
if (localName5(key) !== name) {
|
|
18482
|
-
return [];
|
|
18483
|
-
}
|
|
18484
|
-
const values = Array.isArray(value) ? value : [value];
|
|
18485
|
-
return values.filter(isXmlObject2);
|
|
18486
|
-
})
|
|
18487
|
-
);
|
|
18488
|
-
}
|
|
18489
|
-
function annotateSmartArtTextOrder(xml, parsed) {
|
|
18490
|
-
const paragraphs = collectParsedParagraphs(parsed);
|
|
18491
|
-
const orders = extractElementOrders(xml, "p");
|
|
18492
|
-
for (let index = 0; index < Math.min(orders.length, paragraphs.length); index++) {
|
|
18493
|
-
childOrder.set(paragraphs[index], orders[index]);
|
|
18494
|
-
}
|
|
18495
|
-
for (const name of ["r", "fld", "br"]) {
|
|
18496
|
-
const nodes = directChildrenByLocalName(paragraphs, name);
|
|
18497
|
-
const nodeOrders = extractElementOrders(xml, name);
|
|
18498
|
-
for (let index = 0; index < Math.min(nodeOrders.length, nodes.length); index++) {
|
|
18499
|
-
childOrder.set(nodes[index], nodeOrders[index]);
|
|
18500
|
-
}
|
|
18501
|
-
}
|
|
18502
|
-
}
|
|
18503
|
-
function smartArtChildOrder(node) {
|
|
18504
|
-
return childOrder.get(node)?.slice();
|
|
18505
|
-
}
|
|
18506
|
-
function orderedSmartArtTextEntries(paragraph) {
|
|
18507
|
-
const keysByName = /* @__PURE__ */ new Map();
|
|
18508
|
-
for (const key of Object.keys(paragraph)) {
|
|
18509
|
-
if (!key.startsWith("@_")) {
|
|
18510
|
-
keysByName.set(localName5(key), key);
|
|
18511
|
-
}
|
|
18512
|
-
}
|
|
18513
|
-
const itemsFor = (key) => {
|
|
18514
|
-
const value = paragraph[key];
|
|
18515
|
-
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
18516
|
-
};
|
|
18517
|
-
const order = childOrder.get(paragraph);
|
|
18518
|
-
if (!order) {
|
|
18519
|
-
return [...keysByName.values()].flatMap(
|
|
18520
|
-
(key) => itemsFor(key).map((item) => [key, item])
|
|
18521
|
-
);
|
|
18522
|
-
}
|
|
18523
|
-
const consumed = /* @__PURE__ */ new Map();
|
|
18524
|
-
return order.flatMap((name) => {
|
|
18525
|
-
const key = keysByName.get(name);
|
|
18526
|
-
if (!key) {
|
|
18527
|
-
return [];
|
|
18528
|
-
}
|
|
18529
|
-
const index = consumed.get(key) ?? 0;
|
|
18530
|
-
consumed.set(key, index + 1);
|
|
18531
|
-
const item = itemsFor(key)[index];
|
|
18532
|
-
return item === void 0 ? [] : [[key, item]];
|
|
18533
|
-
});
|
|
18534
|
-
}
|
|
18535
|
-
|
|
18536
|
-
// pptx/core/core/runtime/smartart-text-paragraphs.ts
|
|
18537
|
-
function localName6(name) {
|
|
18538
|
-
const colon = name.indexOf(":");
|
|
18539
|
-
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
18540
|
-
}
|
|
18541
|
-
function keyFor(node, name) {
|
|
18542
|
-
return Object.keys(node).find((key) => localName6(key) === name);
|
|
18543
|
-
}
|
|
18544
|
-
function child3(node, name) {
|
|
18545
|
-
const key = keyFor(node, name);
|
|
18546
|
-
const value = key ? node[key] : void 0;
|
|
18547
|
-
if (key && (value === "" || value === void 0)) {
|
|
18548
|
-
return {};
|
|
18549
|
-
}
|
|
18550
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
18551
|
-
}
|
|
18552
|
-
function clone(value) {
|
|
18553
|
-
return JSON.parse(JSON.stringify(value));
|
|
18554
|
-
}
|
|
18555
|
-
function directText(node) {
|
|
18556
|
-
const key = keyFor(node, "t");
|
|
18557
|
-
const value = key ? node[key] : void 0;
|
|
18558
|
-
return value === void 0 || value === null ? "" : String(value);
|
|
18559
|
-
}
|
|
18560
|
-
function parseItem(key, rawValue) {
|
|
18561
|
-
const name = localName6(key);
|
|
18562
|
-
if (!["r", "br", "fld", "tab"].includes(name)) {
|
|
18563
|
-
return { kind: "raw", name: key, value: clone(rawValue) };
|
|
18564
|
-
}
|
|
18565
|
-
const raw = rawValue && typeof rawValue === "object" && !Array.isArray(rawValue) ? rawValue : {};
|
|
18566
|
-
if (name === "r") {
|
|
18567
|
-
const run = {
|
|
18568
|
-
text: directText(raw),
|
|
18569
|
-
rawXml: clone(raw),
|
|
18570
|
-
childOrder: smartArtChildOrder(raw)
|
|
18571
|
-
};
|
|
18572
|
-
const rPr = child3(raw, "rPr");
|
|
18573
|
-
if (rPr) {
|
|
18574
|
-
run.rPr = clone(rPr);
|
|
18575
|
-
}
|
|
18576
|
-
return { kind: "run", run };
|
|
18577
|
-
}
|
|
18578
|
-
if (name === "br") {
|
|
18579
|
-
const rPr = child3(raw, "rPr");
|
|
18580
|
-
return {
|
|
18581
|
-
kind: "break",
|
|
18582
|
-
...rPr ? { rPr: clone(rPr) } : {},
|
|
18583
|
-
rawXml: clone(raw),
|
|
18584
|
-
childOrder: smartArtChildOrder(raw)
|
|
18585
|
-
};
|
|
18586
|
-
}
|
|
18587
|
-
if (name === "fld") {
|
|
18588
|
-
const rPr = child3(raw, "rPr");
|
|
18589
|
-
const pPr = child3(raw, "pPr");
|
|
18590
|
-
return {
|
|
18591
|
-
kind: "field",
|
|
18592
|
-
...raw["@_id"] ? { id: String(raw["@_id"]) } : {},
|
|
18593
|
-
...raw["@_type"] ? { fieldType: String(raw["@_type"]) } : {},
|
|
18594
|
-
text: directText(raw),
|
|
18595
|
-
...rPr ? { rPr: clone(rPr) } : {},
|
|
18596
|
-
...pPr ? { pPr: clone(pPr) } : {},
|
|
18597
|
-
rawXml: clone(raw),
|
|
18598
|
-
childOrder: smartArtChildOrder(raw)
|
|
18599
|
-
};
|
|
18600
|
-
}
|
|
18601
|
-
if (name === "tab") {
|
|
18602
|
-
return { kind: "tab", rawXml: clone(raw), childOrder: smartArtChildOrder(raw) };
|
|
18603
|
-
}
|
|
18604
|
-
return { kind: "raw", name: key, value: clone(rawValue) };
|
|
18605
|
-
}
|
|
18606
|
-
function parseSmartArtTextParagraphs(point2) {
|
|
18607
|
-
const body = child3(point2, "t");
|
|
18608
|
-
if (!body) {
|
|
18609
|
-
return void 0;
|
|
18610
|
-
}
|
|
18611
|
-
const pKey = keyFor(body, "p");
|
|
18612
|
-
const raw = pKey ? body[pKey] : void 0;
|
|
18613
|
-
const paragraphNodes = Array.isArray(raw) ? raw : raw ? [raw] : [];
|
|
18614
|
-
if (paragraphNodes.length === 0) {
|
|
18615
|
-
return void 0;
|
|
18616
|
-
}
|
|
18617
|
-
return paragraphNodes.map((paragraph) => {
|
|
18618
|
-
const pPr = child3(paragraph, "pPr");
|
|
18619
|
-
const endParaRPr = child3(paragraph, "endParaRPr");
|
|
18620
|
-
return {
|
|
18621
|
-
...pPr ? { pPr: clone(pPr) } : {},
|
|
18622
|
-
items: orderedSmartArtTextEntries(paragraph).flatMap(
|
|
18623
|
-
([key, item]) => ["pPr", "endParaRPr"].includes(localName6(key)) ? [] : [parseItem(key, item)]
|
|
18624
|
-
),
|
|
18625
|
-
...endParaRPr ? { endParaRPr: clone(endParaRPr) } : {},
|
|
18626
|
-
rawXml: clone(paragraph)
|
|
18627
|
-
};
|
|
18628
|
-
});
|
|
18629
|
-
}
|
|
18630
|
-
function smartArtParagraphsText(paragraphs) {
|
|
18398
|
+
// diagram/text/node-text-paragraphs.ts
|
|
18399
|
+
function diagramParagraphsText(paragraphs) {
|
|
18631
18400
|
return paragraphs.map(
|
|
18632
18401
|
(paragraph) => paragraph.items.map((item) => {
|
|
18633
18402
|
if (item.kind === "run") {
|
|
@@ -18643,129 +18412,13 @@ function smartArtParagraphsText(paragraphs) {
|
|
|
18643
18412
|
}).join("")
|
|
18644
18413
|
).join("\n");
|
|
18645
18414
|
}
|
|
18646
|
-
function
|
|
18415
|
+
function firstDiagramParagraphRuns(paragraphs) {
|
|
18647
18416
|
const runs = paragraphs?.[0]?.items.flatMap((item) => item.kind === "run" ? [item.run] : []);
|
|
18648
18417
|
return runs && runs.length > 0 ? runs : void 0;
|
|
18649
18418
|
}
|
|
18650
|
-
function objectWithAttributes(raw) {
|
|
18651
|
-
return Object.fromEntries(
|
|
18652
|
-
Object.entries(raw ?? {}).filter(([key]) => key.startsWith("@_"))
|
|
18653
|
-
);
|
|
18654
|
-
}
|
|
18655
|
-
function appendChild(target, name, value, order) {
|
|
18656
|
-
const seen = Object.keys(target).some((key) => key === name || key.startsWith(`${name}#`));
|
|
18657
|
-
target[seen ? orderedXmlKey(name, order) : name] = value;
|
|
18658
|
-
}
|
|
18659
|
-
function buildOrderedContainer(raw, order, replacements) {
|
|
18660
|
-
const xml = objectWithAttributes(raw);
|
|
18661
|
-
const keys = /* @__PURE__ */ new Map();
|
|
18662
|
-
for (const key of Object.keys(raw ?? {})) {
|
|
18663
|
-
if (!key.startsWith("@_")) {
|
|
18664
|
-
keys.set(localName6(key), key);
|
|
18665
|
-
}
|
|
18666
|
-
}
|
|
18667
|
-
const values = (name) => {
|
|
18668
|
-
const key = keys.get(name);
|
|
18669
|
-
const value = key ? raw?.[key] : void 0;
|
|
18670
|
-
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
18671
|
-
};
|
|
18672
|
-
const derivedOrder = order ?? [...keys.keys()].flatMap((name) => values(name).map(() => name));
|
|
18673
|
-
const replacementMap = new Map(
|
|
18674
|
-
replacements.map(([name, value]) => [localName6(name), [name, value]])
|
|
18675
|
-
);
|
|
18676
|
-
const emittedReplacements = /* @__PURE__ */ new Set();
|
|
18677
|
-
const consumed = /* @__PURE__ */ new Map();
|
|
18678
|
-
let outputOrder = 0;
|
|
18679
|
-
for (const name of derivedOrder) {
|
|
18680
|
-
const replacement = replacementMap.get(name);
|
|
18681
|
-
if (replacement && !emittedReplacements.has(name)) {
|
|
18682
|
-
appendChild(xml, replacement[0], replacement[1], outputOrder++);
|
|
18683
|
-
emittedReplacements.add(name);
|
|
18684
|
-
continue;
|
|
18685
|
-
}
|
|
18686
|
-
const index = consumed.get(name) ?? 0;
|
|
18687
|
-
const value = values(name)[index];
|
|
18688
|
-
consumed.set(name, index + 1);
|
|
18689
|
-
const key = keys.get(name);
|
|
18690
|
-
if (key && value !== void 0) {
|
|
18691
|
-
appendChild(xml, key, clone(value), outputOrder++);
|
|
18692
|
-
}
|
|
18693
|
-
}
|
|
18694
|
-
for (const [name, value] of replacements) {
|
|
18695
|
-
if (!emittedReplacements.has(localName6(name))) {
|
|
18696
|
-
appendChild(xml, name, value, outputOrder++);
|
|
18697
|
-
}
|
|
18698
|
-
}
|
|
18699
|
-
return xml;
|
|
18700
|
-
}
|
|
18701
|
-
function buildItem(item) {
|
|
18702
|
-
if (item.kind === "run") {
|
|
18703
|
-
return [
|
|
18704
|
-
"a:r",
|
|
18705
|
-
buildOrderedContainer(item.run.rawXml, item.run.childOrder, [
|
|
18706
|
-
["a:rPr", item.run.rPr ?? { "@_lang": "en-US" }],
|
|
18707
|
-
["a:t", item.run.text]
|
|
18708
|
-
])
|
|
18709
|
-
];
|
|
18710
|
-
}
|
|
18711
|
-
if (item.kind === "break") {
|
|
18712
|
-
return [
|
|
18713
|
-
"a:br",
|
|
18714
|
-
buildOrderedContainer(
|
|
18715
|
-
item.rawXml,
|
|
18716
|
-
item.childOrder,
|
|
18717
|
-
item.rPr ? [["a:rPr", item.rPr]] : []
|
|
18718
|
-
)
|
|
18719
|
-
];
|
|
18720
|
-
}
|
|
18721
|
-
if (item.kind === "field") {
|
|
18722
|
-
const replacements = [];
|
|
18723
|
-
if (item.rPr) {
|
|
18724
|
-
replacements.push(["a:rPr", item.rPr]);
|
|
18725
|
-
}
|
|
18726
|
-
if (item.pPr) {
|
|
18727
|
-
replacements.push(["a:pPr", item.pPr]);
|
|
18728
|
-
}
|
|
18729
|
-
replacements.push(["a:t", item.text]);
|
|
18730
|
-
const xml = buildOrderedContainer(
|
|
18731
|
-
item.rawXml,
|
|
18732
|
-
item.childOrder,
|
|
18733
|
-
replacements
|
|
18734
|
-
);
|
|
18735
|
-
if (item.id) {
|
|
18736
|
-
xml["@_id"] = item.id;
|
|
18737
|
-
}
|
|
18738
|
-
if (item.fieldType) {
|
|
18739
|
-
xml["@_type"] = item.fieldType;
|
|
18740
|
-
}
|
|
18741
|
-
return ["a:fld", xml];
|
|
18742
|
-
}
|
|
18743
|
-
if (item.kind === "tab") {
|
|
18744
|
-
return [
|
|
18745
|
-
"a:tab",
|
|
18746
|
-
buildOrderedContainer(item.rawXml, item.childOrder, [])
|
|
18747
|
-
];
|
|
18748
|
-
}
|
|
18749
|
-
return [item.name, clone(item.value)];
|
|
18750
|
-
}
|
|
18751
|
-
function buildSmartArtTextParagraph(paragraph) {
|
|
18752
|
-
const xml = objectWithAttributes(paragraph.rawXml);
|
|
18753
|
-
if (paragraph.pPr) {
|
|
18754
|
-
xml["a:pPr"] = paragraph.pPr;
|
|
18755
|
-
}
|
|
18756
|
-
let order = 0;
|
|
18757
|
-
for (const item of paragraph.items) {
|
|
18758
|
-
const [name, value] = buildItem(item);
|
|
18759
|
-
appendChild(xml, name, value, order++);
|
|
18760
|
-
}
|
|
18761
|
-
if (paragraph.endParaRPr) {
|
|
18762
|
-
xml["a:endParaRPr"] = paragraph.endParaRPr;
|
|
18763
|
-
}
|
|
18764
|
-
return xml;
|
|
18765
|
-
}
|
|
18766
18419
|
|
|
18767
|
-
//
|
|
18768
|
-
function
|
|
18420
|
+
// diagram/text/node-text-reconciliation.ts
|
|
18421
|
+
function clone(value) {
|
|
18769
18422
|
return JSON.parse(JSON.stringify(value));
|
|
18770
18423
|
}
|
|
18771
18424
|
function itemText(item) {
|
|
@@ -18914,7 +18567,10 @@ function removeRange(paragraphs, start, end) {
|
|
|
18914
18567
|
const right = paragraphs[atom.paragraph + 1];
|
|
18915
18568
|
if (left && right) {
|
|
18916
18569
|
left.items.push(...right.items);
|
|
18917
|
-
|
|
18570
|
+
const end2 = right.endParaRPr ?? left.endParaRPr;
|
|
18571
|
+
if (end2) left.endParaRPr = end2;
|
|
18572
|
+
const endProperties = right.endProperties ?? left.endProperties;
|
|
18573
|
+
if (endProperties) left.endProperties = endProperties;
|
|
18918
18574
|
paragraphs.splice(atom.paragraph + 1, 1);
|
|
18919
18575
|
}
|
|
18920
18576
|
}
|
|
@@ -18922,7 +18578,7 @@ function removeRange(paragraphs, start, end) {
|
|
|
18922
18578
|
}
|
|
18923
18579
|
function textTemplate(paragraph) {
|
|
18924
18580
|
const existing = paragraph.items.find((item) => itemText(item) !== void 0);
|
|
18925
|
-
return existing ?
|
|
18581
|
+
return existing ? clone(existing) : { kind: "run", run: { text: "" } };
|
|
18926
18582
|
}
|
|
18927
18583
|
function insertAt(paragraphs, offset, value) {
|
|
18928
18584
|
const location = atoms(paragraphs)[offset - 1];
|
|
@@ -18936,7 +18592,7 @@ function insertAt(paragraphs, offset, value) {
|
|
|
18936
18592
|
const item = paragraph.items[itemIndex];
|
|
18937
18593
|
const text2 = item ? itemText(item) : void 0;
|
|
18938
18594
|
if (item && text2 !== void 0 && textOffset > 0 && textOffset < text2.length) {
|
|
18939
|
-
splitRight =
|
|
18595
|
+
splitRight = clone(item);
|
|
18940
18596
|
setItemText(item, text2.slice(0, textOffset));
|
|
18941
18597
|
setItemText(splitRight, text2.slice(textOffset));
|
|
18942
18598
|
paragraph.items.splice(itemIndex + 1, 0, splitRight);
|
|
@@ -18952,7 +18608,7 @@ function insertAt(paragraphs, offset, value) {
|
|
|
18952
18608
|
}
|
|
18953
18609
|
} else if (part === "\n") {
|
|
18954
18610
|
const rightItems = paragraph.items.splice(itemIndex + 1);
|
|
18955
|
-
const next =
|
|
18611
|
+
const next = clone(paragraph);
|
|
18956
18612
|
next.items = rightItems;
|
|
18957
18613
|
paragraphs.splice(paragraphIndex + 1, 0, next);
|
|
18958
18614
|
paragraphIndex++;
|
|
@@ -18972,9 +18628,12 @@ function insertAt(paragraphs, offset, value) {
|
|
|
18972
18628
|
}
|
|
18973
18629
|
}
|
|
18974
18630
|
}
|
|
18975
|
-
function
|
|
18976
|
-
|
|
18977
|
-
|
|
18631
|
+
function reconcileDiagramTextParagraphs(paragraphs, desired) {
|
|
18632
|
+
return reconcile(paragraphs, desired);
|
|
18633
|
+
}
|
|
18634
|
+
function reconcile(paragraphs, desired) {
|
|
18635
|
+
const result = clone(paragraphs);
|
|
18636
|
+
const before = diagramParagraphsText(result);
|
|
18978
18637
|
if (before === desired) {
|
|
18979
18638
|
return result;
|
|
18980
18639
|
}
|
|
@@ -18988,6 +18647,73 @@ function reconcileSmartArtTextParagraphs(paragraphs, desired) {
|
|
|
18988
18647
|
return result.length > 0 ? result : [{ items: [] }];
|
|
18989
18648
|
}
|
|
18990
18649
|
|
|
18650
|
+
// diagram/text/node-text-projection.ts
|
|
18651
|
+
function paragraphMetadata(styler, paragraph, paragraphIndex, bulletEnabled) {
|
|
18652
|
+
const level2 = styler.paragraphLevel(paragraph);
|
|
18653
|
+
const explicitBullet = styler.explicitBullet(paragraph, paragraphIndex);
|
|
18654
|
+
const bulletInfo = explicitBullet ?? (bulletEnabled && level2 >= 1 ? styler.autoBullet() : void 0);
|
|
18655
|
+
return {
|
|
18656
|
+
...bulletInfo ? { bulletInfo } : {},
|
|
18657
|
+
paragraphLevel: level2,
|
|
18658
|
+
...paragraph.endParaRPr ? { endParaRunProperties: paragraph.endParaRPr } : {}
|
|
18659
|
+
};
|
|
18660
|
+
}
|
|
18661
|
+
function projectDiagramNodeText(node, styler, fallbackStyle, options = {}) {
|
|
18662
|
+
if (!node.paragraphs?.length) {
|
|
18663
|
+
return [{ text: node.text, style: fallbackStyle }];
|
|
18664
|
+
}
|
|
18665
|
+
const paragraphs = reconcileDiagramTextParagraphs(node.paragraphs, node.text);
|
|
18666
|
+
const segments = [];
|
|
18667
|
+
for (let paragraphIndex = 0; paragraphIndex < paragraphs.length; paragraphIndex++) {
|
|
18668
|
+
const paragraph = paragraphs[paragraphIndex];
|
|
18669
|
+
const pStyle = styler.paragraphStyle(paragraph, fallbackStyle);
|
|
18670
|
+
const metadata = paragraphMetadata(
|
|
18671
|
+
styler,
|
|
18672
|
+
paragraph,
|
|
18673
|
+
paragraphIndex,
|
|
18674
|
+
options.bulletEnabled ?? false
|
|
18675
|
+
);
|
|
18676
|
+
let first2 = true;
|
|
18677
|
+
const push2 = (segment) => {
|
|
18678
|
+
segments.push(first2 ? { ...segment, ...metadata } : segment);
|
|
18679
|
+
first2 = false;
|
|
18680
|
+
};
|
|
18681
|
+
for (const item of paragraph.items) {
|
|
18682
|
+
if (item.kind === "run") {
|
|
18683
|
+
push2({ text: item.run.text, style: styler.runStyle(item.run, pStyle) });
|
|
18684
|
+
} else if (item.kind === "field") {
|
|
18685
|
+
push2({
|
|
18686
|
+
text: item.text,
|
|
18687
|
+
style: styler.runStyle(item, pStyle),
|
|
18688
|
+
fieldType: item.fieldType,
|
|
18689
|
+
fieldGuid: item.id,
|
|
18690
|
+
fieldParagraphPropertiesXml: item.pPr
|
|
18691
|
+
});
|
|
18692
|
+
} else if (item.kind === "break") {
|
|
18693
|
+
push2({
|
|
18694
|
+
text: "\n",
|
|
18695
|
+
style: styler.runStyle(item, pStyle),
|
|
18696
|
+
isLineBreak: true,
|
|
18697
|
+
breakRunProperties: item.rPr
|
|
18698
|
+
});
|
|
18699
|
+
} else if (item.kind === "tab") {
|
|
18700
|
+
push2({ text: " ", style: pStyle });
|
|
18701
|
+
}
|
|
18702
|
+
}
|
|
18703
|
+
if (first2) {
|
|
18704
|
+
push2({ text: "", style: styler.endParagraphStyle(paragraph, pStyle) });
|
|
18705
|
+
}
|
|
18706
|
+
if (paragraphIndex < paragraphs.length - 1) {
|
|
18707
|
+
segments.push({
|
|
18708
|
+
text: "",
|
|
18709
|
+
style: styler.endParagraphStyle(paragraph, pStyle),
|
|
18710
|
+
isParagraphBreak: true
|
|
18711
|
+
});
|
|
18712
|
+
}
|
|
18713
|
+
}
|
|
18714
|
+
return segments;
|
|
18715
|
+
}
|
|
18716
|
+
|
|
18991
18717
|
// pptx/core/utils/tab-stops.ts
|
|
18992
18718
|
var EMU_PER_PX2 = 9525;
|
|
18993
18719
|
function parseTabStops(pPr) {
|
|
@@ -19450,7 +19176,7 @@ function parseRunSolidFillColorXml(rPr) {
|
|
|
19450
19176
|
}
|
|
19451
19177
|
|
|
19452
19178
|
// pptx/core/utils/smartart-node-text-projection.ts
|
|
19453
|
-
function
|
|
19179
|
+
function child3(node, name) {
|
|
19454
19180
|
if (!node) {
|
|
19455
19181
|
return void 0;
|
|
19456
19182
|
}
|
|
@@ -19461,7 +19187,7 @@ function child4(node, name) {
|
|
|
19461
19187
|
function runStyle(rPr, fallback) {
|
|
19462
19188
|
const xml = rPr;
|
|
19463
19189
|
const color = parseRunSolidFillColor(xml);
|
|
19464
|
-
const extLst =
|
|
19190
|
+
const extLst = child3(rPr, "extLst");
|
|
19465
19191
|
return {
|
|
19466
19192
|
...fallback,
|
|
19467
19193
|
...parseRunPropertyAttributes(xml),
|
|
@@ -19484,7 +19210,7 @@ function paragraphStyle(paragraph, fallback) {
|
|
|
19484
19210
|
const align = parseAlignmentAttr(pPr?.["@_algn"]);
|
|
19485
19211
|
const rtl = parseParagraphRtl(pPr);
|
|
19486
19212
|
const tabStops = parseTabStops(pPr);
|
|
19487
|
-
const extLst =
|
|
19213
|
+
const extLst = child3(paragraph.pPr, "extLst");
|
|
19488
19214
|
return {
|
|
19489
19215
|
...fallback,
|
|
19490
19216
|
...align ? { align } : {},
|
|
@@ -19492,78 +19218,25 @@ function paragraphStyle(paragraph, fallback) {
|
|
|
19492
19218
|
...parseParagraphExtraAttributes(pPr),
|
|
19493
19219
|
...rtl !== void 0 ? { rtl } : {},
|
|
19494
19220
|
...tabStops ? { tabStops } : {},
|
|
19495
|
-
...parseParagraphSpacingPx(
|
|
19496
|
-
...parseParagraphSpacingPx(
|
|
19497
|
-
...parseLineSpacingMultiplier(
|
|
19498
|
-
...parseLineSpacingExactPt(
|
|
19221
|
+
...parseParagraphSpacingPx(child3(paragraph.pPr, "spcBef")) !== void 0 ? { paragraphSpacingBefore: parseParagraphSpacingPx(child3(paragraph.pPr, "spcBef")) } : {},
|
|
19222
|
+
...parseParagraphSpacingPx(child3(paragraph.pPr, "spcAft")) !== void 0 ? { paragraphSpacingAfter: parseParagraphSpacingPx(child3(paragraph.pPr, "spcAft")) } : {},
|
|
19223
|
+
...parseLineSpacingMultiplier(child3(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacing: parseLineSpacingMultiplier(child3(paragraph.pPr, "lnSpc")) } : {},
|
|
19224
|
+
...parseLineSpacingExactPt(child3(paragraph.pPr, "lnSpc")) !== void 0 ? { lineSpacingExactPt: parseLineSpacingExactPt(child3(paragraph.pPr, "lnSpc")) } : {},
|
|
19499
19225
|
...extLst ? { paragraphPropertiesExtLstXml: extLst } : {},
|
|
19500
|
-
...
|
|
19226
|
+
...child3(paragraph.pPr, "defRPr") ? { paragraphDefaultRunPropertiesXml: child3(paragraph.pPr, "defRPr") } : {}
|
|
19501
19227
|
};
|
|
19502
19228
|
}
|
|
19503
19229
|
var AUTO_BULLET_CHAR = "\u2022";
|
|
19504
|
-
|
|
19505
|
-
|
|
19506
|
-
|
|
19507
|
-
|
|
19508
|
-
|
|
19509
|
-
|
|
19510
|
-
|
|
19511
|
-
|
|
19512
|
-
...paragraph.endParaRPr ? { endParaRunProperties: paragraph.endParaRPr } : {}
|
|
19513
|
-
};
|
|
19514
|
-
}
|
|
19230
|
+
var PPTX_TEXT_STYLER = {
|
|
19231
|
+
paragraphStyle,
|
|
19232
|
+
runStyle: (item, pStyle) => resolvedRunStyle(item.rPr, item.style, pStyle),
|
|
19233
|
+
endParagraphStyle: (paragraph, pStyle) => ({ ...pStyle, ...paragraph.endParaStyle }),
|
|
19234
|
+
paragraphLevel: (paragraph) => parseParagraphLevel(paragraph.pPr),
|
|
19235
|
+
explicitBullet: (paragraph, index) => parseBulletInfo(paragraph.pPr, index) ?? void 0,
|
|
19236
|
+
autoBullet: () => ({ char: AUTO_BULLET_CHAR })
|
|
19237
|
+
};
|
|
19515
19238
|
function projectSmartArtNodeText(node, fallbackStyle = {}, options = {}) {
|
|
19516
|
-
|
|
19517
|
-
return [{ text: node.text, style: fallbackStyle }];
|
|
19518
|
-
}
|
|
19519
|
-
const paragraphs = reconcileSmartArtTextParagraphs(node.paragraphs, node.text);
|
|
19520
|
-
const segments = [];
|
|
19521
|
-
for (let paragraphIndex = 0; paragraphIndex < paragraphs.length; paragraphIndex++) {
|
|
19522
|
-
const paragraph = paragraphs[paragraphIndex];
|
|
19523
|
-
const pStyle = paragraphStyle(paragraph, fallbackStyle);
|
|
19524
|
-
const metadata = paragraphMetadata(paragraph, paragraphIndex, options.bulletEnabled ?? false);
|
|
19525
|
-
let first2 = true;
|
|
19526
|
-
const push2 = (segment) => {
|
|
19527
|
-
segments.push(first2 ? { ...segment, ...metadata } : segment);
|
|
19528
|
-
first2 = false;
|
|
19529
|
-
};
|
|
19530
|
-
for (const item of paragraph.items) {
|
|
19531
|
-
if (item.kind === "run") {
|
|
19532
|
-
push2({
|
|
19533
|
-
text: item.run.text,
|
|
19534
|
-
style: resolvedRunStyle(item.run.rPr, item.run.style, pStyle)
|
|
19535
|
-
});
|
|
19536
|
-
} else if (item.kind === "field") {
|
|
19537
|
-
push2({
|
|
19538
|
-
text: item.text,
|
|
19539
|
-
style: resolvedRunStyle(item.rPr, item.style, pStyle),
|
|
19540
|
-
fieldType: item.fieldType,
|
|
19541
|
-
fieldGuid: item.id,
|
|
19542
|
-
fieldParagraphPropertiesXml: item.pPr
|
|
19543
|
-
});
|
|
19544
|
-
} else if (item.kind === "break") {
|
|
19545
|
-
push2({
|
|
19546
|
-
text: "\n",
|
|
19547
|
-
style: resolvedRunStyle(item.rPr, item.style, pStyle),
|
|
19548
|
-
isLineBreak: true,
|
|
19549
|
-
breakRunProperties: item.rPr
|
|
19550
|
-
});
|
|
19551
|
-
} else if (item.kind === "tab") {
|
|
19552
|
-
push2({ text: " ", style: pStyle });
|
|
19553
|
-
}
|
|
19554
|
-
}
|
|
19555
|
-
if (first2) {
|
|
19556
|
-
push2({ text: "", style: { ...pStyle, ...paragraph.endParaStyle } });
|
|
19557
|
-
}
|
|
19558
|
-
if (paragraphIndex < paragraphs.length - 1) {
|
|
19559
|
-
segments.push({
|
|
19560
|
-
text: "",
|
|
19561
|
-
style: { ...pStyle, ...paragraph.endParaStyle },
|
|
19562
|
-
isParagraphBreak: true
|
|
19563
|
-
});
|
|
19564
|
-
}
|
|
19565
|
-
}
|
|
19566
|
-
return segments;
|
|
19239
|
+
return projectDiagramNodeText(node, PPTX_TEXT_STYLER, fallbackStyle, options);
|
|
19567
19240
|
}
|
|
19568
19241
|
|
|
19569
19242
|
// diagram/layout/smartart-interpreter-fold-text.ts
|
|
@@ -27471,7 +27144,7 @@ function interpretSmartArtLayout(view, input) {
|
|
|
27471
27144
|
|
|
27472
27145
|
// pptx/core/utils/smartart-ordered-xml-adapter.ts
|
|
27473
27146
|
var converted = /* @__PURE__ */ new WeakMap();
|
|
27474
|
-
var
|
|
27147
|
+
var localName4 = (key) => key.slice(key.indexOf(":") + 1);
|
|
27475
27148
|
function convert(value, name) {
|
|
27476
27149
|
let byName = converted.get(value);
|
|
27477
27150
|
const cached = byName?.get(name);
|
|
@@ -27483,14 +27156,14 @@ function convert(value, name) {
|
|
|
27483
27156
|
if (key.startsWith("@_")) {
|
|
27484
27157
|
const attribute3 = key.slice(2);
|
|
27485
27158
|
if (attribute3 !== "xmlns" && !attribute3.startsWith("xmlns:") && entry != null) {
|
|
27486
|
-
element.attrs[
|
|
27159
|
+
element.attrs[localName4(attribute3)] = String(entry);
|
|
27487
27160
|
}
|
|
27488
27161
|
continue;
|
|
27489
27162
|
}
|
|
27490
27163
|
if (key.startsWith("#") || key.startsWith("?")) {
|
|
27491
27164
|
continue;
|
|
27492
27165
|
}
|
|
27493
|
-
const childName =
|
|
27166
|
+
const childName = localName4(key);
|
|
27494
27167
|
for (const child16 of Array.isArray(entry) ? entry : [entry]) {
|
|
27495
27168
|
element.children.push(
|
|
27496
27169
|
child16 && typeof child16 === "object" ? convert(child16, childName) : { name: childName, attrs: {}, children: [] }
|
|
@@ -29012,6 +28685,176 @@ function ruleAttributes(value) {
|
|
|
29012
28685
|
return [...targetAttributes(value), ["max", text(value.max)]];
|
|
29013
28686
|
}
|
|
29014
28687
|
|
|
28688
|
+
// diagram/edit/shape-match.ts
|
|
28689
|
+
function findDiagramShapeIndex(shapes, nodes, nodeId) {
|
|
28690
|
+
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
28691
|
+
const id = shapes[i2].id;
|
|
28692
|
+
if (id.startsWith("reflow-") && id.endsWith(`-${nodeId}`)) {
|
|
28693
|
+
return i2;
|
|
28694
|
+
}
|
|
28695
|
+
}
|
|
28696
|
+
if (shapes.length === nodes.length) {
|
|
28697
|
+
const nodeIdx = nodes.findIndex((n) => n.id === nodeId);
|
|
28698
|
+
if (nodeIdx >= 0) {
|
|
28699
|
+
return nodeIdx;
|
|
28700
|
+
}
|
|
28701
|
+
}
|
|
28702
|
+
const node = nodes.find((n) => n.id === nodeId);
|
|
28703
|
+
if (node?.text) {
|
|
28704
|
+
const text2 = node.text.trim();
|
|
28705
|
+
const matches = [];
|
|
28706
|
+
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
28707
|
+
if (shapes[i2].text?.trim() === text2) {
|
|
28708
|
+
matches.push(i2);
|
|
28709
|
+
}
|
|
28710
|
+
}
|
|
28711
|
+
if (matches.length === 1) {
|
|
28712
|
+
return matches[0];
|
|
28713
|
+
}
|
|
28714
|
+
}
|
|
28715
|
+
return -1;
|
|
28716
|
+
}
|
|
28717
|
+
function patchDiagramShape(shapes, nodes, nodeId, patch) {
|
|
28718
|
+
if (!shapes || shapes.length === 0) {
|
|
28719
|
+
return shapes;
|
|
28720
|
+
}
|
|
28721
|
+
const idx = findDiagramShapeIndex(shapes, nodes, nodeId);
|
|
28722
|
+
if (idx < 0) {
|
|
28723
|
+
return [];
|
|
28724
|
+
}
|
|
28725
|
+
const updated = [...shapes];
|
|
28726
|
+
updated[idx] = patch(updated[idx]);
|
|
28727
|
+
return updated;
|
|
28728
|
+
}
|
|
28729
|
+
|
|
28730
|
+
// crypto/uuid.ts
|
|
28731
|
+
function randomBytes(length) {
|
|
28732
|
+
const cryptoObj = globalThis.crypto;
|
|
28733
|
+
if (cryptoObj?.getRandomValues) return cryptoObj.getRandomValues(new Uint8Array(length));
|
|
28734
|
+
const bytes = new Uint8Array(length);
|
|
28735
|
+
for (let i2 = 0; i2 < length; i2++) bytes[i2] = Math.floor(Math.random() * 256);
|
|
28736
|
+
return bytes;
|
|
28737
|
+
}
|
|
28738
|
+
function randomHex(length) {
|
|
28739
|
+
return Array.from(randomBytes(Math.ceil(length / 2)), (b) => b.toString(16).padStart(2, "0")).join("").slice(0, length);
|
|
28740
|
+
}
|
|
28741
|
+
function createOfficeGuid() {
|
|
28742
|
+
const variantNibble = (8 + (randomBytes(1)[0] ?? 0) % 4).toString(16);
|
|
28743
|
+
const uuid = globalThis.crypto?.randomUUID?.() ?? `${randomHex(8)}-${randomHex(4)}-4${randomHex(3)}-${variantNibble}${randomHex(3)}-${randomHex(12)}`;
|
|
28744
|
+
return `{${uuid.toUpperCase()}}`;
|
|
28745
|
+
}
|
|
28746
|
+
|
|
28747
|
+
// diagram/edit/node-ops.ts
|
|
28748
|
+
function setDiagramNodeText(data, nodeId, newText) {
|
|
28749
|
+
const nodes = data.nodes.map((n) => n.id === nodeId ? { ...n, text: newText } : n);
|
|
28750
|
+
return {
|
|
28751
|
+
...data,
|
|
28752
|
+
nodes,
|
|
28753
|
+
drawingDirty: true,
|
|
28754
|
+
drawingShapes: patchDiagramShape(data.drawingShapes, data.nodes, nodeId, (shape) => ({
|
|
28755
|
+
...shape,
|
|
28756
|
+
text: newText
|
|
28757
|
+
}))
|
|
28758
|
+
};
|
|
28759
|
+
}
|
|
28760
|
+
|
|
28761
|
+
// diagram/write/data.ts
|
|
28762
|
+
var DIAGRAM_XML_PROLOG = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
|
28763
|
+
var DIAGRAM_DATA_XMLNS = 'xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"';
|
|
28764
|
+
function escapeDiagramXml(value) {
|
|
28765
|
+
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
28766
|
+
}
|
|
28767
|
+
function diagramAvLstXml(adjustments) {
|
|
28768
|
+
const entries = Object.entries(adjustments ?? {}).filter(([, v]) => Number.isFinite(v));
|
|
28769
|
+
if (entries.length === 0) {
|
|
28770
|
+
return "<a:avLst/>";
|
|
28771
|
+
}
|
|
28772
|
+
const gds = entries.map(([name, v]) => `<a:gd name="${escapeDiagramXml(name)}" fmla="val ${Math.round(v)}"/>`).join("");
|
|
28773
|
+
return `<a:avLst>${gds}</a:avLst>`;
|
|
28774
|
+
}
|
|
28775
|
+
var GUID_MODEL_ID = /^\{[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}\}$/u;
|
|
28776
|
+
var EMPTY_TEXT_BODY = '<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:endParaRPr lang="en-US"/></a:p></dgm:t>';
|
|
28777
|
+
function contentTextBody(text2) {
|
|
28778
|
+
if (!text2) {
|
|
28779
|
+
return EMPTY_TEXT_BODY;
|
|
28780
|
+
}
|
|
28781
|
+
return `<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US"/><a:t>${escapeDiagramXml(text2)}</a:t></a:r></a:p></dgm:t>`;
|
|
28782
|
+
}
|
|
28783
|
+
function contentPointXml(guid, node) {
|
|
28784
|
+
const prSet = node.text ? "<dgm:prSet/>" : '<dgm:prSet phldrT="[Text]" phldr="1"/>';
|
|
28785
|
+
const typeAttr = node.nodeType === "asst" ? ' type="asst"' : "";
|
|
28786
|
+
return `<dgm:pt modelId="${guid}"${typeAttr}>${prSet}<dgm:spPr/>${contentTextBody(node.text ?? "")}</dgm:pt>`;
|
|
28787
|
+
}
|
|
28788
|
+
function transPointXml(guid, type, cxnGuid) {
|
|
28789
|
+
return `<dgm:pt modelId="${guid}" type="${type}" cxnId="${cxnGuid}"><dgm:prSet/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
|
|
28790
|
+
}
|
|
28791
|
+
function docPointXml(docGuid, ids) {
|
|
28792
|
+
return `<dgm:pt modelId="${docGuid}" type="doc"><dgm:prSet loTypeId="${escapeDiagramXml(ids.layoutUniqueId)}" loCatId="${escapeDiagramXml(ids.layoutCategory)}" qsTypeId="${escapeDiagramXml(ids.quickStyleUniqueId)}" qsCatId="simple" csTypeId="${escapeDiagramXml(ids.colorsUniqueId)}" csCatId="${escapeDiagramXml(ids.colorsCategory)}"/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
|
|
28793
|
+
}
|
|
28794
|
+
function buildDiagramNodeGuidMap(nodes, createModelId = createOfficeGuid) {
|
|
28795
|
+
const guidByNodeId = /* @__PURE__ */ new Map();
|
|
28796
|
+
for (const node of nodes) {
|
|
28797
|
+
if (node.id && !guidByNodeId.has(node.id)) {
|
|
28798
|
+
guidByNodeId.set(node.id, GUID_MODEL_ID.test(node.id) ? node.id : createModelId());
|
|
28799
|
+
}
|
|
28800
|
+
}
|
|
28801
|
+
return guidByNodeId;
|
|
28802
|
+
}
|
|
28803
|
+
function buildDiagramPresentationGuidMap(nodes, createModelId = createOfficeGuid) {
|
|
28804
|
+
const guidByNodeId = /* @__PURE__ */ new Map();
|
|
28805
|
+
for (const node of nodes) {
|
|
28806
|
+
if (node.id && !guidByNodeId.has(node.id)) {
|
|
28807
|
+
guidByNodeId.set(node.id, createModelId());
|
|
28808
|
+
}
|
|
28809
|
+
}
|
|
28810
|
+
return guidByNodeId;
|
|
28811
|
+
}
|
|
28812
|
+
var DSP_DATA_MODEL_EXT_URI = "http://schemas.microsoft.com/office/drawing/2008/diagram";
|
|
28813
|
+
function writeFabricatedDiagramData(data, ids, options = {}) {
|
|
28814
|
+
const createModelId = options.createModelId ?? createOfficeGuid;
|
|
28815
|
+
const docGuid = createModelId();
|
|
28816
|
+
const guidByNodeId = options.guidByNodeId ?? buildDiagramNodeGuidMap(data.nodes, createModelId);
|
|
28817
|
+
const presentationGuidByNodeId = options.presentationGuidByNodeId ?? buildDiagramPresentationGuidMap(data.nodes, createModelId);
|
|
28818
|
+
const points = [docPointXml(docGuid, ids)];
|
|
28819
|
+
const connections = [];
|
|
28820
|
+
const nextSrcOrd = /* @__PURE__ */ new Map();
|
|
28821
|
+
for (const node of data.nodes) {
|
|
28822
|
+
const guid = node.id ? guidByNodeId.get(node.id) : void 0;
|
|
28823
|
+
if (!guid) {
|
|
28824
|
+
continue;
|
|
28825
|
+
}
|
|
28826
|
+
const parentGuid = node.parentId && guidByNodeId.get(node.parentId) || docGuid;
|
|
28827
|
+
const srcOrd = nextSrcOrd.get(parentGuid) ?? 0;
|
|
28828
|
+
nextSrcOrd.set(parentGuid, srcOrd + 1);
|
|
28829
|
+
const cxnGuid = createModelId();
|
|
28830
|
+
const parTransGuid = createModelId();
|
|
28831
|
+
const sibTransGuid = createModelId();
|
|
28832
|
+
points.push(contentPointXml(guid, node));
|
|
28833
|
+
points.push(transPointXml(parTransGuid, "parTrans", cxnGuid));
|
|
28834
|
+
points.push(transPointXml(sibTransGuid, "sibTrans", cxnGuid));
|
|
28835
|
+
connections.push(
|
|
28836
|
+
`<dgm:cxn modelId="${cxnGuid}" srcId="${parentGuid}" destId="${guid}" srcOrd="${srcOrd}" destOrd="0" parTransId="${parTransGuid}" sibTransId="${sibTransGuid}"/>`
|
|
28837
|
+
);
|
|
28838
|
+
const presentationGuid = node.id ? presentationGuidByNodeId.get(node.id) : void 0;
|
|
28839
|
+
if (presentationGuid) {
|
|
28840
|
+
points.push(
|
|
28841
|
+
`<dgm:pt modelId="${presentationGuid}" type="pres"><dgm:prSet presAssocID="${guid}" presName="node" presStyleLbl="node1" presStyleIdx="${srcOrd}" presStyleCnt="${data.nodes.length}"/><dgm:spPr/></dgm:pt>`
|
|
28842
|
+
);
|
|
28843
|
+
connections.push(
|
|
28844
|
+
`<dgm:cxn modelId="${createModelId()}" type="presOf" srcId="${guid}" destId="${presentationGuid}" srcOrd="0" destOrd="0" presId="${escapeDiagramXml(ids.layoutUniqueId)}"/>`
|
|
28845
|
+
);
|
|
28846
|
+
}
|
|
28847
|
+
}
|
|
28848
|
+
return `${DIAGRAM_XML_PROLOG}\r
|
|
28849
|
+
<dgm:dataModel ${DIAGRAM_DATA_XMLNS}><dgm:ptLst>${points.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/>${dataModelExtXml(options.drawingRelId)}</dgm:dataModel>`;
|
|
28850
|
+
}
|
|
28851
|
+
function dataModelExtXml(drawingRelId) {
|
|
28852
|
+
if (!drawingRelId) {
|
|
28853
|
+
return "";
|
|
28854
|
+
}
|
|
28855
|
+
return `<dgm:extLst><a:ext uri="${DSP_DATA_MODEL_EXT_URI}"><dsp:dataModelExt xmlns:dsp="${DSP_DATA_MODEL_EXT_URI}" relId="${escapeDiagramXml(drawingRelId)}" minVer="http://schemas.openxmlformats.org/drawingml/2006/diagram"/></a:ext></dgm:extLst>`;
|
|
28856
|
+
}
|
|
28857
|
+
|
|
29015
28858
|
// diagram/attributes.ts
|
|
29016
28859
|
var optionalString2 = (value) => {
|
|
29017
28860
|
const text2 = (value ?? "").trim();
|
|
@@ -29057,182 +28900,6 @@ function parseRelationshipIdAttributes(get) {
|
|
|
29057
28900
|
return result;
|
|
29058
28901
|
}
|
|
29059
28902
|
|
|
29060
|
-
// xml/namespaces.ts
|
|
29061
|
-
var NS = {
|
|
29062
|
-
/** WordprocessingML main. */
|
|
29063
|
-
w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
|
|
29064
|
-
/** PresentationML main. */
|
|
29065
|
-
p: "http://schemas.openxmlformats.org/presentationml/2006/main",
|
|
29066
|
-
/** SpreadsheetML main. */
|
|
29067
|
-
x: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
29068
|
-
/** DrawingML main. */
|
|
29069
|
-
a: "http://schemas.openxmlformats.org/drawingml/2006/main",
|
|
29070
|
-
/** DrawingML chart. */
|
|
29071
|
-
c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
|
|
29072
|
-
/** Office 2016 extended charts (waterfall, histogram, funnel...; `cx:chartSpace`). */
|
|
29073
|
-
cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
|
|
29074
|
-
/** Office 2010 chart extensions, including built-in modern chart styles. */
|
|
29075
|
-
c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
|
|
29076
|
-
/** DrawingML diagram (SmartArt) main. */
|
|
29077
|
-
dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
|
|
29078
|
-
/** Office 2007+ diagram drawing (`dsp`). */
|
|
29079
|
-
dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
|
|
29080
|
-
/** DrawingML Word drawing (`wp:inline`, `wp:anchor`). */
|
|
29081
|
-
wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
|
|
29082
|
-
/** DrawingML picture. */
|
|
29083
|
-
pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
|
|
29084
|
-
/** Word 2010 shapes (`wps`). */
|
|
29085
|
-
wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
|
|
29086
|
-
/** Relationships (`r:id`, `r:embed`). */
|
|
29087
|
-
r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
29088
|
-
/** Markup compatibility (`mc:AlternateContent`). */
|
|
29089
|
-
mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
|
|
29090
|
-
/** OPC relationships part. */
|
|
29091
|
-
rels: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
29092
|
-
/** OPC content types part. */
|
|
29093
|
-
contentTypes: "http://schemas.openxmlformats.org/package/2006/content-types",
|
|
29094
|
-
/** Office Math. */
|
|
29095
|
-
m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
|
|
29096
|
-
/** Core properties. */
|
|
29097
|
-
cp: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
|
|
29098
|
-
/** Dublin Core elements. */
|
|
29099
|
-
dc: "http://purl.org/dc/elements/1.1/",
|
|
29100
|
-
/** Legacy VML. */
|
|
29101
|
-
v: "urn:schemas-microsoft-com:vml",
|
|
29102
|
-
/** Office VML extensions. */
|
|
29103
|
-
o: "urn:schemas-microsoft-com:office:office",
|
|
29104
|
-
/** Word VML extensions. */
|
|
29105
|
-
w10: "urn:schemas-microsoft-com:office:word",
|
|
29106
|
-
/** SpreadsheetML drawing (`xdr:wsDr`, cell anchors). */
|
|
29107
|
-
xdr: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
|
|
29108
|
-
/** SpreadsheetML 2009 extensions (`x14:conditionalFormatting`, `x14:dataBar`). */
|
|
29109
|
-
x14: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
|
|
29110
|
-
/** SpreadsheetML 2009 attribute extensions (`x14ac:dyDescent`). */
|
|
29111
|
-
x14ac: "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac",
|
|
29112
|
-
/** SpreadsheetML revision ids (`xr:uid`). */
|
|
29113
|
-
xr: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
|
|
29114
|
-
/** Excel threaded comments and persons. */
|
|
29115
|
-
tc: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
|
|
29116
|
-
/** Legacy VML Excel client data (`x:ClientData`). */
|
|
29117
|
-
xv: "urn:schemas-microsoft-com:office:excel",
|
|
29118
|
-
/** Extended (app) properties. */
|
|
29119
|
-
extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
|
|
29120
|
-
/** Dublin Core terms (`dcterms:created`). */
|
|
29121
|
-
dcterms: "http://purl.org/dc/terms/",
|
|
29122
|
-
/** Custom document properties (`docProps/custom.xml`). */
|
|
29123
|
-
customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
|
|
29124
|
-
/** Document property variant types (`vt:lpwstr`, `vt:vector`). */
|
|
29125
|
-
vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
|
|
29126
|
-
/** XML itself (`xml:space`). */
|
|
29127
|
-
xml: "http://www.w3.org/XML/1998/namespace"
|
|
29128
|
-
};
|
|
29129
|
-
var DEFAULT_XML_LIMITS = {
|
|
29130
|
-
maxDepth: 512,
|
|
29131
|
-
maxNodes: 5e6
|
|
29132
|
-
};
|
|
29133
|
-
var XmlLimitError = class extends Error {
|
|
29134
|
-
code = "xml-limit";
|
|
29135
|
-
/** The limit that was exceeded. */
|
|
29136
|
-
limit;
|
|
29137
|
-
/** Its value: the largest depth or element count allowed. */
|
|
29138
|
-
maximum;
|
|
29139
|
-
constructor(message, limit, maximum) {
|
|
29140
|
-
super(message);
|
|
29141
|
-
this.name = "XmlLimitError";
|
|
29142
|
-
this.limit = limit;
|
|
29143
|
-
this.maximum = maximum;
|
|
29144
|
-
}
|
|
29145
|
-
};
|
|
29146
|
-
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
29147
|
-
var MARKUP_SKIPS = [
|
|
29148
|
-
["<!--", "-->"],
|
|
29149
|
-
["<![CDATA[", "]]>"],
|
|
29150
|
-
["<?", "?>"]
|
|
29151
|
-
];
|
|
29152
|
-
function checkXmlLimits(xml, label, limits = {}) {
|
|
29153
|
-
const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
29154
|
-
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
29155
|
-
let depth = 0;
|
|
29156
|
-
let nodes = 0;
|
|
29157
|
-
let at2 = xml.indexOf("<");
|
|
29158
|
-
while (at2 !== -1) {
|
|
29159
|
-
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
29160
|
-
if (skip) {
|
|
29161
|
-
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
29162
|
-
if (end === -1) return;
|
|
29163
|
-
at2 = xml.indexOf("<", end + skip[1].length);
|
|
29164
|
-
continue;
|
|
29165
|
-
}
|
|
29166
|
-
TAG_RE.lastIndex = at2;
|
|
29167
|
-
const match = TAG_RE.exec(xml);
|
|
29168
|
-
if (!match) {
|
|
29169
|
-
at2 = xml.indexOf("<", at2 + 1);
|
|
29170
|
-
continue;
|
|
29171
|
-
}
|
|
29172
|
-
const [, closing, , selfClosing] = match;
|
|
29173
|
-
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
29174
|
-
if (closing) {
|
|
29175
|
-
depth--;
|
|
29176
|
-
continue;
|
|
29177
|
-
}
|
|
29178
|
-
nodes++;
|
|
29179
|
-
if (nodes > maxNodes)
|
|
29180
|
-
throw new XmlLimitError(
|
|
29181
|
-
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
29182
|
-
"maxNodes",
|
|
29183
|
-
maxNodes
|
|
29184
|
-
);
|
|
29185
|
-
if (!selfClosing && ++depth > maxDepth2)
|
|
29186
|
-
throw new XmlLimitError(
|
|
29187
|
-
`${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
|
|
29188
|
-
"maxDepth",
|
|
29189
|
-
maxDepth2
|
|
29190
|
-
);
|
|
29191
|
-
}
|
|
29192
|
-
}
|
|
29193
|
-
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
29194
|
-
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
29195
|
-
function parseXml(xml, options = {}) {
|
|
29196
|
-
const label = options.label ?? "OOXML";
|
|
29197
|
-
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
29198
|
-
throw new Error(`${label} XML with DTD or entity declarations is not supported`);
|
|
29199
|
-
checkXmlLimits(xml, label, options.limits);
|
|
29200
|
-
let parseError = "";
|
|
29201
|
-
let parsed;
|
|
29202
|
-
try {
|
|
29203
|
-
parsed = new DOMParser({
|
|
29204
|
-
onError: (level2, message) => {
|
|
29205
|
-
if (level2 !== "warning") parseError = message;
|
|
29206
|
-
}
|
|
29207
|
-
}).parseFromString(xml, "application/xml");
|
|
29208
|
-
} catch (error) {
|
|
29209
|
-
throw new Error(
|
|
29210
|
-
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
29211
|
-
{ cause: error }
|
|
29212
|
-
);
|
|
29213
|
-
}
|
|
29214
|
-
if (parseError || !parsed.documentElement)
|
|
29215
|
-
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
29216
|
-
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
29217
|
-
return parsed;
|
|
29218
|
-
}
|
|
29219
|
-
var buildXml = (node) => {
|
|
29220
|
-
const xml = new XMLSerializer().serializeToString(node);
|
|
29221
|
-
return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
|
|
29222
|
-
};
|
|
29223
|
-
var isElement = (node) => node.nodeType === 1;
|
|
29224
|
-
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
29225
|
-
function named(element, local, ns, lenient = true) {
|
|
29226
|
-
if (!element || element.localName !== local) return false;
|
|
29227
|
-
return element.namespaceURI === ns || lenient && !element.namespaceURI;
|
|
29228
|
-
}
|
|
29229
|
-
var children2 = (parent, local, ns, lenient = true) => elements(parent).filter((element) => named(element, local, ns, lenient));
|
|
29230
|
-
var first = (parent, local, ns, lenient = true) => parent ? children2(parent, local, ns, lenient)[0] : void 0;
|
|
29231
|
-
function attr(element, local, ns, prefix) {
|
|
29232
|
-
return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
|
|
29233
|
-
}
|
|
29234
|
-
var relAttr = (element, local) => attr(element, local, NS.r, "r");
|
|
29235
|
-
|
|
29236
28903
|
// opc/signature/detection.ts
|
|
29237
28904
|
var SIGNATURE_PART_PREFIX = "_xmlsignatures/";
|
|
29238
28905
|
var SIGNATURE_PREFIX = SIGNATURE_PART_PREFIX;
|
|
@@ -29340,7 +29007,7 @@ function applySmartArtConnectionAttributes(xml, connection, fallbackModelId) {
|
|
|
29340
29007
|
}
|
|
29341
29008
|
|
|
29342
29009
|
// pptx/core/utils/smartart-node-style-role.ts
|
|
29343
|
-
function
|
|
29010
|
+
function child4(node, name, localName14) {
|
|
29344
29011
|
if (!node) {
|
|
29345
29012
|
return void 0;
|
|
29346
29013
|
}
|
|
@@ -29349,7 +29016,7 @@ function child5(node, name, localName14) {
|
|
|
29349
29016
|
return Array.isArray(value) ? value[0] : value;
|
|
29350
29017
|
}
|
|
29351
29018
|
function presPointRole(pt, localName14) {
|
|
29352
|
-
const prSet =
|
|
29019
|
+
const prSet = child4(pt, "prSet", localName14);
|
|
29353
29020
|
const styleRole = String(prSet?.["@_presStyleLbl"] ?? "").trim();
|
|
29354
29021
|
if (!styleRole) {
|
|
29355
29022
|
return void 0;
|
|
@@ -29419,7 +29086,7 @@ function resolveSmartArtNodeCoherent3DOff(points, connections, localName14) {
|
|
|
29419
29086
|
if (!presPoint) {
|
|
29420
29087
|
continue;
|
|
29421
29088
|
}
|
|
29422
|
-
const prSet =
|
|
29089
|
+
const prSet = child4(presPoint, "prSet", localName14);
|
|
29423
29090
|
const raw = String(prSet?.["@_coherent3DOff"] ?? "").trim().toLowerCase();
|
|
29424
29091
|
if (raw === "1" || raw === "true") {
|
|
29425
29092
|
nodeIds.add(connection.sourceId);
|
|
@@ -29429,7 +29096,7 @@ function resolveSmartArtNodeCoherent3DOff(points, connections, localName14) {
|
|
|
29429
29096
|
}
|
|
29430
29097
|
|
|
29431
29098
|
// pptx/core/utils/smartart-effect-intensity.ts
|
|
29432
|
-
function
|
|
29099
|
+
function child5(node, name, localName14) {
|
|
29433
29100
|
if (!node) {
|
|
29434
29101
|
return void 0;
|
|
29435
29102
|
}
|
|
@@ -29438,13 +29105,13 @@ function child6(node, name, localName14) {
|
|
|
29438
29105
|
return Array.isArray(value) ? value[0] : value;
|
|
29439
29106
|
}
|
|
29440
29107
|
function refIndex(styleLbl, refName, localName14) {
|
|
29441
|
-
const style =
|
|
29442
|
-
const ref =
|
|
29108
|
+
const style = child5(styleLbl, "style", localName14);
|
|
29109
|
+
const ref = child5(style, refName, localName14);
|
|
29443
29110
|
const parsed = Number.parseInt(String(ref?.["@_idx"] ?? ""), 10);
|
|
29444
29111
|
return Number.isFinite(parsed) ? parsed : void 0;
|
|
29445
29112
|
}
|
|
29446
29113
|
function hasBevelGeometry(styleLbl, localName14) {
|
|
29447
|
-
const sp3d =
|
|
29114
|
+
const sp3d = child5(styleLbl, "sp3d", localName14);
|
|
29448
29115
|
if (!sp3d) {
|
|
29449
29116
|
return false;
|
|
29450
29117
|
}
|
|
@@ -29683,52 +29350,7 @@ function detectFontFormat(data) {
|
|
|
29683
29350
|
|
|
29684
29351
|
// pptx/core/utils/smartart-editing-node-ops.ts
|
|
29685
29352
|
function updateSmartArtNodeText(data, nodeId, newText) {
|
|
29686
|
-
|
|
29687
|
-
return {
|
|
29688
|
-
...data,
|
|
29689
|
-
nodes,
|
|
29690
|
-
drawingDirty: true,
|
|
29691
|
-
drawingShapes: patchDrawingShapeText(data.drawingShapes, data.nodes, nodeId, newText)
|
|
29692
|
-
};
|
|
29693
|
-
}
|
|
29694
|
-
function patchDrawingShapeText(shapes, nodes, nodeId, newText) {
|
|
29695
|
-
if (!shapes || shapes.length === 0) {
|
|
29696
|
-
return shapes;
|
|
29697
|
-
}
|
|
29698
|
-
const idx = findDrawingShapeIndex(shapes, nodes, nodeId);
|
|
29699
|
-
if (idx < 0) {
|
|
29700
|
-
return [];
|
|
29701
|
-
}
|
|
29702
|
-
const updated = [...shapes];
|
|
29703
|
-
updated[idx] = { ...updated[idx], text: newText };
|
|
29704
|
-
return updated;
|
|
29705
|
-
}
|
|
29706
|
-
function findDrawingShapeIndex(shapes, nodes, nodeId) {
|
|
29707
|
-
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
29708
|
-
if (shapes[i2].id.startsWith("reflow-") && shapes[i2].id.endsWith(`-${nodeId}`)) {
|
|
29709
|
-
return i2;
|
|
29710
|
-
}
|
|
29711
|
-
}
|
|
29712
|
-
if (shapes.length === nodes.length) {
|
|
29713
|
-
const nodeIdx = nodes.findIndex((n) => n.id === nodeId);
|
|
29714
|
-
if (nodeIdx >= 0) {
|
|
29715
|
-
return nodeIdx;
|
|
29716
|
-
}
|
|
29717
|
-
}
|
|
29718
|
-
const node = nodes.find((n) => n.id === nodeId);
|
|
29719
|
-
if (node?.text) {
|
|
29720
|
-
const text2 = node.text.trim();
|
|
29721
|
-
const matches = [];
|
|
29722
|
-
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
29723
|
-
if (shapes[i2].text?.trim() === text2) {
|
|
29724
|
-
matches.push(i2);
|
|
29725
|
-
}
|
|
29726
|
-
}
|
|
29727
|
-
if (matches.length === 1) {
|
|
29728
|
-
return matches[0];
|
|
29729
|
-
}
|
|
29730
|
-
}
|
|
29731
|
-
return -1;
|
|
29353
|
+
return setDiagramNodeText(data, nodeId, newText);
|
|
29732
29354
|
}
|
|
29733
29355
|
|
|
29734
29356
|
// pptx/core/utils/theme-override-utils.ts
|
|
@@ -29778,7 +29400,7 @@ function toArrayBuffer(bytes) {
|
|
|
29778
29400
|
if (bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength) {
|
|
29779
29401
|
return bytes.buffer;
|
|
29780
29402
|
}
|
|
29781
|
-
return bytes
|
|
29403
|
+
return new Uint8Array(bytes).buffer;
|
|
29782
29404
|
}
|
|
29783
29405
|
function isCompoundFile(input) {
|
|
29784
29406
|
const bytes = toBytes(input);
|
|
@@ -29812,23 +29434,6 @@ var EncryptedFileError = class extends Error {
|
|
|
29812
29434
|
}
|
|
29813
29435
|
};
|
|
29814
29436
|
|
|
29815
|
-
// crypto/uuid.ts
|
|
29816
|
-
function randomBytes(length) {
|
|
29817
|
-
const cryptoObj = globalThis.crypto;
|
|
29818
|
-
if (cryptoObj?.getRandomValues) return cryptoObj.getRandomValues(new Uint8Array(length));
|
|
29819
|
-
const bytes = new Uint8Array(length);
|
|
29820
|
-
for (let i2 = 0; i2 < length; i2++) bytes[i2] = Math.floor(Math.random() * 256);
|
|
29821
|
-
return bytes;
|
|
29822
|
-
}
|
|
29823
|
-
function randomHex(length) {
|
|
29824
|
-
return Array.from(randomBytes(Math.ceil(length / 2)), (b) => b.toString(16).padStart(2, "0")).join("").slice(0, length);
|
|
29825
|
-
}
|
|
29826
|
-
function createOfficeGuid() {
|
|
29827
|
-
const variantNibble = (8 + (randomBytes(1)[0] ?? 0) % 4).toString(16);
|
|
29828
|
-
const uuid = globalThis.crypto?.randomUUID?.() ?? `${randomHex(8)}-${randomHex(4)}-4${randomHex(3)}-${variantNibble}${randomHex(3)}-${randomHex(12)}`;
|
|
29829
|
-
return `{${uuid.toUpperCase()}}`;
|
|
29830
|
-
}
|
|
29831
|
-
|
|
29832
29437
|
// ../../node_modules/.bun/@christophervr+ole2@0.13.0/node_modules/@christophervr/ole2/dist/utils/ooxml-crypto-primitives.js
|
|
29833
29438
|
function getSubtle() {
|
|
29834
29439
|
if (typeof globalThis.crypto !== "undefined" && globalThis.crypto.subtle) {
|
|
@@ -32463,7 +32068,7 @@ function readChartManualLayoutValues(value) {
|
|
|
32463
32068
|
}
|
|
32464
32069
|
|
|
32465
32070
|
// pptx/core/utils/chart-layout.ts
|
|
32466
|
-
var
|
|
32071
|
+
var child6 = (node, name, localName14) => {
|
|
32467
32072
|
if (!node) {
|
|
32468
32073
|
return void 0;
|
|
32469
32074
|
}
|
|
@@ -32471,12 +32076,12 @@ var child7 = (node, name, localName14) => {
|
|
|
32471
32076
|
return key ? node[key] : void 0;
|
|
32472
32077
|
};
|
|
32473
32078
|
function parseChartManualLayout(parent, localName14) {
|
|
32474
|
-
const manual =
|
|
32079
|
+
const manual = child6(child6(parent, "layout", localName14), "manualLayout", localName14);
|
|
32475
32080
|
if (!manual) {
|
|
32476
32081
|
return void 0;
|
|
32477
32082
|
}
|
|
32478
|
-
const result = readChartManualLayoutValues((name) =>
|
|
32479
|
-
const ext =
|
|
32083
|
+
const result = readChartManualLayoutValues((name) => child6(manual, name, localName14)?.["@_val"]) ?? {};
|
|
32084
|
+
const ext = child6(manual, "extLst", localName14);
|
|
32480
32085
|
if (ext !== void 0) {
|
|
32481
32086
|
result.ext = ext;
|
|
32482
32087
|
}
|
|
@@ -32492,9 +32097,9 @@ function parseChartLayouts(chartRoot, localName14) {
|
|
|
32492
32097
|
return void 0;
|
|
32493
32098
|
}
|
|
32494
32099
|
const layouts = {
|
|
32495
|
-
title: parseChartManualLayout(
|
|
32496
|
-
plotArea: parseChartManualLayout(
|
|
32497
|
-
legend: parseChartManualLayout(
|
|
32100
|
+
title: parseChartManualLayout(child6(chartRoot, "title", localName14), localName14),
|
|
32101
|
+
plotArea: parseChartManualLayout(child6(chartRoot, "plotArea", localName14), localName14),
|
|
32102
|
+
legend: parseChartManualLayout(child6(chartRoot, "legend", localName14), localName14)
|
|
32498
32103
|
};
|
|
32499
32104
|
for (const key of Object.keys(layouts)) {
|
|
32500
32105
|
if (layouts[key] === void 0) {
|
|
@@ -32572,9 +32177,9 @@ function applyChartManualLayout(parent, layout, localName14) {
|
|
|
32572
32177
|
replaceKeyAt(parent, "c:layout", { "c:manualLayout": manual }, layoutIndex(parent, localName14));
|
|
32573
32178
|
}
|
|
32574
32179
|
function applyChartLayouts(chartRoot, layouts, localName14) {
|
|
32575
|
-
applyChartManualLayout(
|
|
32576
|
-
applyChartManualLayout(
|
|
32577
|
-
applyChartManualLayout(
|
|
32180
|
+
applyChartManualLayout(child6(chartRoot, "title", localName14), layouts.title, localName14);
|
|
32181
|
+
applyChartManualLayout(child6(chartRoot, "plotArea", localName14), layouts.plotArea, localName14);
|
|
32182
|
+
applyChartManualLayout(child6(chartRoot, "legend", localName14), layouts.legend, localName14);
|
|
32578
32183
|
}
|
|
32579
32184
|
|
|
32580
32185
|
// pptx/core/utils/chart-trendline-label.ts
|
|
@@ -34466,7 +34071,7 @@ var LABEL_OFFSET_RANGE = { name: "labelOffset", min: 0, max: 1e3 };
|
|
|
34466
34071
|
function findKey8(node, name, localName14) {
|
|
34467
34072
|
return Object.keys(node).find((key) => localName14(key) === name);
|
|
34468
34073
|
}
|
|
34469
|
-
function
|
|
34074
|
+
function child7(node, name, localName14) {
|
|
34470
34075
|
const key = findKey8(node, name, localName14);
|
|
34471
34076
|
const value = key ? node[key] : void 0;
|
|
34472
34077
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
@@ -34494,32 +34099,32 @@ function parseChartAxisLabelFormatting(node, axisType, localName14) {
|
|
|
34494
34099
|
["majorTickMark", "majorTickMark"],
|
|
34495
34100
|
["minorTickMark", "minorTickMark"]
|
|
34496
34101
|
]) {
|
|
34497
|
-
const value = String(
|
|
34102
|
+
const value = String(child7(node, name, localName14)?.["@_val"] ?? "");
|
|
34498
34103
|
if (TICK_MARKS.has(value)) {
|
|
34499
34104
|
result[property] = value;
|
|
34500
34105
|
}
|
|
34501
34106
|
}
|
|
34502
|
-
const tickLabelPosition = String(
|
|
34107
|
+
const tickLabelPosition = String(child7(node, "tickLblPos", localName14)?.["@_val"] ?? "");
|
|
34503
34108
|
if (TICK_LABEL_POSITIONS.has(tickLabelPosition)) {
|
|
34504
34109
|
result.tickLblPos = tickLabelPosition;
|
|
34505
34110
|
}
|
|
34506
|
-
const crosses = String(
|
|
34111
|
+
const crosses = String(child7(node, "crosses", localName14)?.["@_val"] ?? "");
|
|
34507
34112
|
if (CROSSING_MODES.has(crosses)) {
|
|
34508
34113
|
result.crosses = crosses;
|
|
34509
34114
|
}
|
|
34510
|
-
const crossesAt = Number.parseFloat(String(
|
|
34115
|
+
const crossesAt = Number.parseFloat(String(child7(node, "crossesAt", localName14)?.["@_val"] ?? ""));
|
|
34511
34116
|
if (Number.isFinite(crossesAt)) {
|
|
34512
34117
|
result.crossesAt = crossesAt;
|
|
34513
34118
|
}
|
|
34514
34119
|
if (axisType === "valAx") {
|
|
34515
|
-
const crossBetween = String(
|
|
34120
|
+
const crossBetween = String(child7(node, "crossBetween", localName14)?.["@_val"] ?? "");
|
|
34516
34121
|
if (CROSS_BETWEEN_MODES.has(crossBetween)) {
|
|
34517
34122
|
result.crossBetween = crossBetween;
|
|
34518
34123
|
}
|
|
34519
34124
|
}
|
|
34520
34125
|
if (axisType === "catAx" || axisType === "dateAx") {
|
|
34521
|
-
result.auto = parseBoolean(
|
|
34522
|
-
const rawOffset =
|
|
34126
|
+
result.auto = parseBoolean(child7(node, "auto", localName14));
|
|
34127
|
+
const rawOffset = child7(node, "lblOffset", localName14)?.["@_val"];
|
|
34523
34128
|
if (rawOffset !== void 0) {
|
|
34524
34129
|
const offset = Number.parseFloat(String(rawOffset).replace(/%$/u, ""));
|
|
34525
34130
|
if (Number.isFinite(offset) && offset >= 0 && offset <= 1e3) {
|
|
@@ -34528,15 +34133,15 @@ function parseChartAxisLabelFormatting(node, axisType, localName14) {
|
|
|
34528
34133
|
}
|
|
34529
34134
|
}
|
|
34530
34135
|
if (axisType === "catAx" || axisType === "serAx") {
|
|
34531
|
-
result.tickLabelSkip = parsePositiveInteger(
|
|
34532
|
-
result.tickMarkSkip = parsePositiveInteger(
|
|
34136
|
+
result.tickLabelSkip = parsePositiveInteger(child7(node, "tickLblSkip", localName14));
|
|
34137
|
+
result.tickMarkSkip = parsePositiveInteger(child7(node, "tickMarkSkip", localName14));
|
|
34533
34138
|
}
|
|
34534
34139
|
if (axisType === "catAx") {
|
|
34535
|
-
const alignment = String(
|
|
34140
|
+
const alignment = String(child7(node, "lblAlgn", localName14)?.["@_val"] ?? "");
|
|
34536
34141
|
if (LABEL_ALIGNMENTS.has(alignment)) {
|
|
34537
34142
|
result.labelAlignment = alignment;
|
|
34538
34143
|
}
|
|
34539
|
-
result.noMultiLevelLabels = parseBoolean(
|
|
34144
|
+
result.noMultiLevelLabels = parseBoolean(child7(node, "noMultiLvlLbl", localName14));
|
|
34540
34145
|
}
|
|
34541
34146
|
return Object.fromEntries(Object.entries(result).filter(([, value]) => value !== void 0));
|
|
34542
34147
|
}
|
|
@@ -35062,12 +34667,27 @@ function parseTxPrFont(txPrNode, xmlLookup, colorParser, target, resolveTypeface
|
|
|
35062
34667
|
target.fontColor = fontColor;
|
|
35063
34668
|
}
|
|
35064
34669
|
}
|
|
34670
|
+
var CX_AXIS_UNITS = {
|
|
34671
|
+
hundreds: 100,
|
|
34672
|
+
thousands: 1e3,
|
|
34673
|
+
tenThousands: 1e4,
|
|
34674
|
+
hundredThousands: 1e5,
|
|
34675
|
+
millions: 1e6,
|
|
34676
|
+
tenMillions: 1e7,
|
|
34677
|
+
hundredMillions: 1e8,
|
|
34678
|
+
billions: 1e9,
|
|
34679
|
+
trillions: 1e12
|
|
34680
|
+
};
|
|
34681
|
+
function cxUnitDivisor(raw) {
|
|
34682
|
+
const text2 = String(raw ?? "").trim();
|
|
34683
|
+
return CX_AXIS_UNITS[text2] ?? Number.parseFloat(text2);
|
|
34684
|
+
}
|
|
35065
34685
|
function parseCxUnits(axisNode, xmlLookup, colorParser, target, resolveTypeface) {
|
|
35066
34686
|
const unitsNode = xmlLookup.getChildByLocalName(axisNode, "units");
|
|
35067
34687
|
if (!unitsNode) {
|
|
35068
34688
|
return;
|
|
35069
34689
|
}
|
|
35070
|
-
const unit =
|
|
34690
|
+
const unit = cxUnitDivisor(unitsNode["@_unit"]);
|
|
35071
34691
|
if (!Number.isFinite(unit) || unit <= 0) {
|
|
35072
34692
|
return;
|
|
35073
34693
|
}
|
|
@@ -35094,7 +34714,7 @@ function parseCxUnits(axisNode, xmlLookup, colorParser, target, resolveTypeface)
|
|
|
35094
34714
|
}
|
|
35095
34715
|
}
|
|
35096
34716
|
function parseSingleCxAxis(axisNode, xmlLookup, colorParser, resolveTypeface) {
|
|
35097
|
-
const isCategory =
|
|
34717
|
+
const isCategory = hasLocalName(axisNode, "catScaling");
|
|
35098
34718
|
const axisType = isCategory ? "catAx" : "valAx";
|
|
35099
34719
|
const result = { axisType };
|
|
35100
34720
|
const id = safeInt4(axisNode["@_id"]);
|
|
@@ -35136,7 +34756,7 @@ function parseSingleCxAxis(axisNode, xmlLookup, colorParser, resolveTypeface) {
|
|
|
35136
34756
|
colorParser
|
|
35137
34757
|
);
|
|
35138
34758
|
}
|
|
35139
|
-
if (
|
|
34759
|
+
if (!hasLocalName(axisNode, "tickLabels")) {
|
|
35140
34760
|
result.tickLblPos = "none";
|
|
35141
34761
|
}
|
|
35142
34762
|
const spPr = parseShapeProps(
|
|
@@ -35215,18 +34835,23 @@ function cxNumberFormat(node, xmlLookup) {
|
|
|
35215
34835
|
const formatCode = String(numFmt?.["@_formatCode"] ?? "").trim();
|
|
35216
34836
|
return formatCode.length > 0 ? formatCode : void 0;
|
|
35217
34837
|
}
|
|
34838
|
+
var isTrue = (value) => value === "1" || value === "true";
|
|
34839
|
+
function readVisibility(node) {
|
|
34840
|
+
if (!node) {
|
|
34841
|
+
return void 0;
|
|
34842
|
+
}
|
|
34843
|
+
return {
|
|
34844
|
+
showVal: isTrue(node["@_value"]),
|
|
34845
|
+
showCatName: isTrue(node["@_categoryName"]),
|
|
34846
|
+
showSerName: isTrue(node["@_seriesName"])
|
|
34847
|
+
};
|
|
34848
|
+
}
|
|
35218
34849
|
function parseCxDataLabels(ser, xmlLookup, colorParser, resolveTypeface) {
|
|
35219
34850
|
const dlNode = xmlLookup.getChildByLocalName(ser, "dataLabels");
|
|
35220
34851
|
if (!dlNode) {
|
|
35221
34852
|
return void 0;
|
|
35222
34853
|
}
|
|
35223
|
-
const visibility = {};
|
|
35224
|
-
const visNode = xmlLookup.getChildByLocalName(dlNode, "visibility");
|
|
35225
|
-
if (visNode) {
|
|
35226
|
-
visibility.showVal = visNode["@_value"] === "1" || visNode["@_value"] === "true";
|
|
35227
|
-
visibility.showCatName = visNode["@_categoryName"] === "1" || visNode["@_categoryName"] === "true";
|
|
35228
|
-
visibility.showSerName = visNode["@_seriesName"] === "1" || visNode["@_seriesName"] === "true";
|
|
35229
|
-
}
|
|
34854
|
+
const visibility = readVisibility(xmlLookup.getChildByLocalName(dlNode, "visibility")) ?? {};
|
|
35230
34855
|
const options = {};
|
|
35231
34856
|
const groupPos = cxPosition(dlNode["@_pos"]);
|
|
35232
34857
|
if (groupPos) {
|
|
@@ -35251,11 +34876,13 @@ function parseCxDataLabels(ser, xmlLookup, colorParser, resolveTypeface) {
|
|
|
35251
34876
|
const dlItems = xmlLookup.getChildrenArrayByLocalName(dlNode, "dataLabel");
|
|
35252
34877
|
for (const dlItem of dlItems) {
|
|
35253
34878
|
const idx = Number.parseInt(String(dlItem["@_idx"] || "0"), 10);
|
|
34879
|
+
const own = readVisibility(xmlLookup.getChildByLocalName(dlItem, "visibility"));
|
|
34880
|
+
const shown = own ?? visibility;
|
|
35254
34881
|
const label = {
|
|
35255
34882
|
idx,
|
|
35256
|
-
showVal:
|
|
35257
|
-
showCatName:
|
|
35258
|
-
showSerName:
|
|
34883
|
+
showVal: shown.showVal,
|
|
34884
|
+
showCatName: shown.showCatName,
|
|
34885
|
+
showSerName: shown.showSerName
|
|
35259
34886
|
};
|
|
35260
34887
|
const itemPos = cxPosition(dlItem["@_pos"]);
|
|
35261
34888
|
if (itemPos) {
|
|
@@ -35308,7 +34935,7 @@ function parseCxHistogramOptions(series, xmlLookup) {
|
|
|
35308
34935
|
}
|
|
35309
34936
|
const layoutPr = xmlLookup.getChildByLocalName(series, "layoutPr");
|
|
35310
34937
|
const binning = xmlLookup.getChildByLocalName(layoutPr, "binning");
|
|
35311
|
-
const aggregation =
|
|
34938
|
+
const aggregation = layoutPr && hasLocalName(layoutPr, "aggregation") ? true : void 0;
|
|
35312
34939
|
const rawBinSize = binningValue(binning, "binSize", xmlLookup);
|
|
35313
34940
|
const rawBinCount = binningValue(binning, "binCount", xmlLookup);
|
|
35314
34941
|
const binSize = Number.parseFloat(String(rawBinSize ?? ""));
|
|
@@ -35321,7 +34948,7 @@ function parseCxHistogramOptions(series, xmlLookup) {
|
|
|
35321
34948
|
...intervalClosed === "l" || intervalClosed === "r" ? { intervalClosed } : {},
|
|
35322
34949
|
...binning?.["@_underflow"] !== void 0 ? { underflow: parseDoubleOrAutomatic(binning["@_underflow"]) } : {},
|
|
35323
34950
|
...binning?.["@_overflow"] !== void 0 ? { overflow: parseDoubleOrAutomatic(binning["@_overflow"]) } : {},
|
|
35324
|
-
...aggregation
|
|
34951
|
+
...aggregation ? { aggregateByCategory: true } : {}
|
|
35325
34952
|
};
|
|
35326
34953
|
}
|
|
35327
34954
|
|
|
@@ -37583,7 +37210,7 @@ function ensureArray3(val) {
|
|
|
37583
37210
|
|
|
37584
37211
|
// pptx/core/utils/model3d-scene-parser.ts
|
|
37585
37212
|
var ANGLE_UNIT = 6e4;
|
|
37586
|
-
function
|
|
37213
|
+
function child8(node, ...names) {
|
|
37587
37214
|
if (!node) {
|
|
37588
37215
|
return void 0;
|
|
37589
37216
|
}
|
|
@@ -37614,7 +37241,7 @@ function num2(node, attr3) {
|
|
|
37614
37241
|
return Number.isFinite(value) ? value : void 0;
|
|
37615
37242
|
}
|
|
37616
37243
|
function am(node, name) {
|
|
37617
|
-
return
|
|
37244
|
+
return child8(node, `am3d:${name}`, name);
|
|
37618
37245
|
}
|
|
37619
37246
|
function vec(node, keys) {
|
|
37620
37247
|
if (!node) {
|
|
@@ -37638,12 +37265,12 @@ function ratio(node) {
|
|
|
37638
37265
|
}
|
|
37639
37266
|
function colour2(node) {
|
|
37640
37267
|
const clr = am(node, "clr");
|
|
37641
|
-
const srgb =
|
|
37268
|
+
const srgb = child8(clr, "a:srgbClr");
|
|
37642
37269
|
const val = srgb?.["@_val"];
|
|
37643
37270
|
if (typeof val === "string" && /^[0-9a-f]{6}$/iu.test(val)) {
|
|
37644
37271
|
return `#${val.toLowerCase()}`;
|
|
37645
37272
|
}
|
|
37646
|
-
const scrgb =
|
|
37273
|
+
const scrgb = child8(clr, "a:scrgbClr");
|
|
37647
37274
|
if (scrgb) {
|
|
37648
37275
|
const chan = (a) => {
|
|
37649
37276
|
const pct = Math.min(1e5, Math.max(0, num2(scrgb, a) ?? 0)) / 1e5;
|
|
@@ -38488,8 +38115,8 @@ var BEFORE_KINSOKU = /* @__PURE__ */ new Set([
|
|
|
38488
38115
|
"photoAlbum",
|
|
38489
38116
|
"custDataLst"
|
|
38490
38117
|
]);
|
|
38491
|
-
var
|
|
38492
|
-
var findKey9 = (node, name) => Object.keys(node).find((key) =>
|
|
38118
|
+
var localName5 = (key) => key.replace(/^@_/u, "").replace(/^.*:/u, "");
|
|
38119
|
+
var findKey9 = (node, name) => Object.keys(node).find((key) => localName5(key) === name);
|
|
38493
38120
|
function parseKinsoku(presentationXml) {
|
|
38494
38121
|
if (!presentationXml) {
|
|
38495
38122
|
return void 0;
|
|
@@ -38528,7 +38155,7 @@ function insertKinsoku(root, key, value) {
|
|
|
38528
38155
|
const result = {};
|
|
38529
38156
|
let inserted = false;
|
|
38530
38157
|
for (const [childKey2, childValue] of Object.entries(root)) {
|
|
38531
|
-
const name =
|
|
38158
|
+
const name = localName5(childKey2);
|
|
38532
38159
|
if (name === "kinsoku") {
|
|
38533
38160
|
continue;
|
|
38534
38161
|
}
|
|
@@ -39512,7 +39139,7 @@ function wrapFormatSchemeXml(fmtSchemeXml) {
|
|
|
39512
39139
|
function keyOf2(node, name, localName14) {
|
|
39513
39140
|
return Object.keys(node).find((key) => localName14(key) === name);
|
|
39514
39141
|
}
|
|
39515
|
-
function
|
|
39142
|
+
function child9(node, name, localName14) {
|
|
39516
39143
|
const key = keyOf2(node, name, localName14);
|
|
39517
39144
|
const value = key ? node[key] : void 0;
|
|
39518
39145
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
@@ -39541,8 +39168,8 @@ function parseRule2(node, localName14) {
|
|
|
39541
39168
|
return parseRuleAttributes(reader(node, localName14), cloneXmlObject(node));
|
|
39542
39169
|
}
|
|
39543
39170
|
function parseSmartArtConstraintRules(node, localName14) {
|
|
39544
|
-
const constraintList =
|
|
39545
|
-
const ruleList =
|
|
39171
|
+
const constraintList = child9(node, "constrLst", localName14);
|
|
39172
|
+
const ruleList = child9(node, "ruleLst", localName14);
|
|
39546
39173
|
return {
|
|
39547
39174
|
constraints: constraintList ? children4(constraintList, "constr", localName14).map(
|
|
39548
39175
|
(item) => parseConstraint2(item, localName14)
|
|
@@ -39577,7 +39204,7 @@ function applySmartArtConstraintRules(node, value, localName14) {
|
|
|
39577
39204
|
continue;
|
|
39578
39205
|
}
|
|
39579
39206
|
const listKey = keyOf2(node, listName, localName14) ?? `dgm:${listName}`;
|
|
39580
|
-
const list2 =
|
|
39207
|
+
const list2 = child9(node, listName, localName14) ?? {};
|
|
39581
39208
|
const oldItems = children4(list2, itemName, localName14);
|
|
39582
39209
|
const itemKey = keyOf2(list2, itemName, localName14) ?? `${itemPrefix(listKey)}${itemName}`;
|
|
39583
39210
|
for (const key of Object.keys(list2)) {
|
|
@@ -39600,7 +39227,7 @@ function applySmartArtConstraintRules(node, value, localName14) {
|
|
|
39600
39227
|
}
|
|
39601
39228
|
|
|
39602
39229
|
// pptx/core/utils/smartart-layout-algorithm.ts
|
|
39603
|
-
function
|
|
39230
|
+
function child10(node, name, localName14) {
|
|
39604
39231
|
const key = Object.keys(node).find((candidate) => localName14(candidate) === name);
|
|
39605
39232
|
const value = key ? node[key] : void 0;
|
|
39606
39233
|
return Array.isArray(value) ? value[0] : value;
|
|
@@ -39618,7 +39245,7 @@ function optionalString3(value) {
|
|
|
39618
39245
|
return result.length > 0 ? result : void 0;
|
|
39619
39246
|
}
|
|
39620
39247
|
function parseSmartArtLayoutAlgorithm(node, localName14) {
|
|
39621
|
-
const algorithm =
|
|
39248
|
+
const algorithm = child10(node, "alg", localName14);
|
|
39622
39249
|
const type = algorithm ? optionalString3(algorithm["@_type"]) : void 0;
|
|
39623
39250
|
if (!algorithm || !type) {
|
|
39624
39251
|
return void 0;
|
|
@@ -40162,7 +39789,7 @@ function nestedLayoutNodes(node, localName14) {
|
|
|
40162
39789
|
}
|
|
40163
39790
|
|
|
40164
39791
|
// pptx/core/utils/smartart-layout-node-shape.ts
|
|
40165
|
-
function
|
|
39792
|
+
function child11(node, name, localName14) {
|
|
40166
39793
|
if (!node) {
|
|
40167
39794
|
return void 0;
|
|
40168
39795
|
}
|
|
@@ -40193,7 +39820,7 @@ function parseSmartArtLkTxEntry(shapeEl) {
|
|
|
40193
39820
|
return raw === "1" || raw === "true";
|
|
40194
39821
|
}
|
|
40195
39822
|
function parseAdjustments(shapeEl, localName14) {
|
|
40196
|
-
const adjLst =
|
|
39823
|
+
const adjLst = child11(shapeEl, "adjLst", localName14);
|
|
40197
39824
|
const adjustments = children9(adjLst, "adj", localName14).map((adj) => {
|
|
40198
39825
|
const index = Number.parseInt(String(adj["@_idx"] ?? ""), 10);
|
|
40199
39826
|
const value = Number.parseFloat(String(adj["@_val"] ?? ""));
|
|
@@ -40236,7 +39863,7 @@ function nestedShapes(node, localName14) {
|
|
|
40236
39863
|
return found;
|
|
40237
39864
|
}
|
|
40238
39865
|
function parseSmartArtLayoutNodeShape(node, localName14) {
|
|
40239
|
-
const shapeEl =
|
|
39866
|
+
const shapeEl = child11(node, "shape", localName14) ?? nestedShapes(node, localName14)[0];
|
|
40240
39867
|
if (!shapeEl) {
|
|
40241
39868
|
return void 0;
|
|
40242
39869
|
}
|
|
@@ -40290,7 +39917,7 @@ function applySmartArtLayoutNodeShape(target, value, localName14) {
|
|
|
40290
39917
|
}
|
|
40291
39918
|
|
|
40292
39919
|
// pptx/core/utils/smartart-layout-definition.ts
|
|
40293
|
-
function
|
|
39920
|
+
function child12(node, name, localName14) {
|
|
40294
39921
|
if (!node) {
|
|
40295
39922
|
return void 0;
|
|
40296
39923
|
}
|
|
@@ -40361,11 +39988,11 @@ function parseNode(node, localName14) {
|
|
|
40361
39988
|
};
|
|
40362
39989
|
}
|
|
40363
39990
|
function parseSmartArtLayoutDefinition(layoutDef, localName14) {
|
|
40364
|
-
const root =
|
|
39991
|
+
const root = child12(layoutDef, "layoutNode", localName14);
|
|
40365
39992
|
if (!layoutDef || !root) {
|
|
40366
39993
|
return void 0;
|
|
40367
39994
|
}
|
|
40368
|
-
const catList =
|
|
39995
|
+
const catList = child12(layoutDef, "catLst", localName14);
|
|
40369
39996
|
const categories = children10(catList, "cat", localName14).map((entry) => {
|
|
40370
39997
|
const type = optionalString5(entry["@_type"]);
|
|
40371
39998
|
const priority = Number(entry["@_pri"]);
|
|
@@ -40454,7 +40081,7 @@ function applySmartArtLayoutDefinition(target, value, localName14) {
|
|
|
40454
40081
|
if (validateSmartArtLayoutDefinition(value).length > 0) {
|
|
40455
40082
|
return false;
|
|
40456
40083
|
}
|
|
40457
|
-
const root =
|
|
40084
|
+
const root = child12(target, "layoutNode", localName14);
|
|
40458
40085
|
if (!root) {
|
|
40459
40086
|
return false;
|
|
40460
40087
|
}
|
|
@@ -40464,7 +40091,7 @@ function applySmartArtLayoutDefinition(target, value, localName14) {
|
|
|
40464
40091
|
applyLocalized(target, "title", value.titles, localName14);
|
|
40465
40092
|
applyLocalized(target, "desc", value.descriptions, localName14);
|
|
40466
40093
|
if (value.categories !== void 0) {
|
|
40467
|
-
const list2 =
|
|
40094
|
+
const list2 = child12(target, "catLst", localName14);
|
|
40468
40095
|
if (list2) {
|
|
40469
40096
|
const key = Object.keys(list2).find((candidate) => localName14(candidate) === "cat") ?? "dgm:cat";
|
|
40470
40097
|
const existing = children10(list2, "cat", localName14);
|
|
@@ -40494,7 +40121,7 @@ function children11(node, name, localName14) {
|
|
|
40494
40121
|
}
|
|
40495
40122
|
return value && typeof value === "object" ? [value] : [];
|
|
40496
40123
|
}
|
|
40497
|
-
function
|
|
40124
|
+
function child13(node, name, localName14) {
|
|
40498
40125
|
return children11(node, name, localName14)[0];
|
|
40499
40126
|
}
|
|
40500
40127
|
function parseText(node, name, localName14) {
|
|
@@ -40505,7 +40132,7 @@ function parseText(node, name, localName14) {
|
|
|
40505
40132
|
return values.length > 0 ? values : void 0;
|
|
40506
40133
|
}
|
|
40507
40134
|
function parseSmartArtDefinitionMetadata(node, localName14) {
|
|
40508
|
-
const categoryList =
|
|
40135
|
+
const categoryList = child13(node, "catLst", localName14);
|
|
40509
40136
|
const categories = children11(categoryList, "cat", localName14).map((item) => ({
|
|
40510
40137
|
type: String(item["@_type"] ?? ""),
|
|
40511
40138
|
priority: Number(item["@_pri"] ?? 0)
|
|
@@ -40525,14 +40152,14 @@ function parseSmartArtQuickStyleLabels(node, localName14) {
|
|
|
40525
40152
|
return labels.length > 0 ? labels : void 0;
|
|
40526
40153
|
}
|
|
40527
40154
|
function parseSmartArtStyleLabelRefs(styleLbl, localName14) {
|
|
40528
|
-
const style =
|
|
40155
|
+
const style = child13(styleLbl, "style", localName14);
|
|
40529
40156
|
if (!style) {
|
|
40530
40157
|
return void 0;
|
|
40531
40158
|
}
|
|
40532
|
-
const lnRef =
|
|
40533
|
-
const fillRef =
|
|
40534
|
-
const effectRef =
|
|
40535
|
-
const fontRef =
|
|
40159
|
+
const lnRef = child13(style, "lnRef", localName14);
|
|
40160
|
+
const fillRef = child13(style, "fillRef", localName14);
|
|
40161
|
+
const effectRef = child13(style, "effectRef", localName14);
|
|
40162
|
+
const fontRef = child13(style, "fontRef", localName14);
|
|
40536
40163
|
if (!lnRef && !fillRef && !effectRef && !fontRef) {
|
|
40537
40164
|
return void 0;
|
|
40538
40165
|
}
|
|
@@ -40544,7 +40171,7 @@ function parseSmartArtStyleLabelRefs(styleLbl, localName14) {
|
|
|
40544
40171
|
};
|
|
40545
40172
|
}
|
|
40546
40173
|
function parseColorList(node, name, localName14) {
|
|
40547
|
-
const list2 =
|
|
40174
|
+
const list2 = child13(node, name, localName14);
|
|
40548
40175
|
if (!list2) {
|
|
40549
40176
|
return void 0;
|
|
40550
40177
|
}
|
|
@@ -40570,6 +40197,191 @@ function parseSmartArtColorStyleLabels(node, localName14) {
|
|
|
40570
40197
|
var COLOR_METHODS2 = /* @__PURE__ */ new Set(["span", "cycle", "repeat"]);
|
|
40571
40198
|
var HUE_DIRECTIONS2 = /* @__PURE__ */ new Set(["cw", "ccw"]);
|
|
40572
40199
|
|
|
40200
|
+
// pptx/core/geometry/custom-geometry-command-order.ts
|
|
40201
|
+
var ORDER_SUFFIX = "#pptx-order-";
|
|
40202
|
+
var commandOrder = /* @__PURE__ */ new WeakMap();
|
|
40203
|
+
var PATH_COMMANDS = /* @__PURE__ */ new Set(["moveTo", "lnTo", "arcTo", "quadBezTo", "cubicBezTo", "close"]);
|
|
40204
|
+
function localName6(name) {
|
|
40205
|
+
const colon = name.indexOf(":");
|
|
40206
|
+
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
40207
|
+
}
|
|
40208
|
+
function childByLocalName(node, name) {
|
|
40209
|
+
if (!node) {
|
|
40210
|
+
return void 0;
|
|
40211
|
+
}
|
|
40212
|
+
const key = Object.keys(node).find((candidate) => localName6(candidate) === name);
|
|
40213
|
+
return key ? node[key] : void 0;
|
|
40214
|
+
}
|
|
40215
|
+
function collectParsedPaths(root) {
|
|
40216
|
+
const paths = [];
|
|
40217
|
+
const stack = [root];
|
|
40218
|
+
while (stack.length > 0) {
|
|
40219
|
+
const current = stack.pop();
|
|
40220
|
+
if (!current || typeof current !== "object") {
|
|
40221
|
+
continue;
|
|
40222
|
+
}
|
|
40223
|
+
if (Array.isArray(current)) {
|
|
40224
|
+
for (let index = current.length - 1; index >= 0; index--) {
|
|
40225
|
+
stack.push(current[index]);
|
|
40226
|
+
}
|
|
40227
|
+
continue;
|
|
40228
|
+
}
|
|
40229
|
+
const node = current;
|
|
40230
|
+
for (const [key, value] of Object.entries(node).reverse()) {
|
|
40231
|
+
if (localName6(key) === "custGeom") {
|
|
40232
|
+
const pathList = childByLocalName(value, "pathLst");
|
|
40233
|
+
const rawPaths = childByLocalName(pathList, "path");
|
|
40234
|
+
paths.push(
|
|
40235
|
+
...Array.isArray(rawPaths) ? rawPaths : rawPaths ? [rawPaths] : []
|
|
40236
|
+
);
|
|
40237
|
+
} else {
|
|
40238
|
+
stack.push(value);
|
|
40239
|
+
}
|
|
40240
|
+
}
|
|
40241
|
+
}
|
|
40242
|
+
return paths;
|
|
40243
|
+
}
|
|
40244
|
+
function extractSourceOrders(xml) {
|
|
40245
|
+
const orders = [];
|
|
40246
|
+
const custGeomPattern = /<([A-Za-z_][\w.-]*:)?custGeom\b[^>]*>([\s\S]*?)<\/\1custGeom\s*>/gu;
|
|
40247
|
+
for (const geometryMatch of xml.matchAll(custGeomPattern)) {
|
|
40248
|
+
const geometryXml = geometryMatch[2];
|
|
40249
|
+
const pathPattern = /<([A-Za-z_][\w.-]*:)?path\b[^>]*>([\s\S]*?)<\/\1path\s*>/gu;
|
|
40250
|
+
for (const pathMatch of geometryXml.matchAll(pathPattern)) {
|
|
40251
|
+
const order = [
|
|
40252
|
+
...pathMatch[2].matchAll(/<\/?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)
|
|
40253
|
+
].filter((match) => match[0][1] !== "/" && PATH_COMMANDS.has(match[2])).map((match) => match[2]);
|
|
40254
|
+
orders.push(order);
|
|
40255
|
+
}
|
|
40256
|
+
}
|
|
40257
|
+
return orders;
|
|
40258
|
+
}
|
|
40259
|
+
function ensureArrayLocal(value) {
|
|
40260
|
+
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
40261
|
+
}
|
|
40262
|
+
function countsSignature(counts) {
|
|
40263
|
+
return [...counts.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([name, count]) => `${name}:${count}`).join(",");
|
|
40264
|
+
}
|
|
40265
|
+
function pathSignature(path) {
|
|
40266
|
+
const counts = /* @__PURE__ */ new Map();
|
|
40267
|
+
for (const key of Object.keys(path)) {
|
|
40268
|
+
const name = localName6(key);
|
|
40269
|
+
if (!PATH_COMMANDS.has(name)) {
|
|
40270
|
+
continue;
|
|
40271
|
+
}
|
|
40272
|
+
counts.set(name, (counts.get(name) ?? 0) + ensureArrayLocal(path[key]).length);
|
|
40273
|
+
}
|
|
40274
|
+
return countsSignature(counts);
|
|
40275
|
+
}
|
|
40276
|
+
function orderSignature(order) {
|
|
40277
|
+
const counts = /* @__PURE__ */ new Map();
|
|
40278
|
+
for (const name of order) {
|
|
40279
|
+
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
40280
|
+
}
|
|
40281
|
+
return countsSignature(counts);
|
|
40282
|
+
}
|
|
40283
|
+
function annotateCustomGeometryCommandOrder(xml, parsed) {
|
|
40284
|
+
const orders = extractSourceOrders(xml);
|
|
40285
|
+
if (orders.length === 0) {
|
|
40286
|
+
return;
|
|
40287
|
+
}
|
|
40288
|
+
const paths = collectParsedPaths(parsed);
|
|
40289
|
+
const ordersBySignature = /* @__PURE__ */ new Map();
|
|
40290
|
+
for (const order of orders) {
|
|
40291
|
+
const signature = orderSignature(order);
|
|
40292
|
+
const bucket = ordersBySignature.get(signature);
|
|
40293
|
+
if (bucket) {
|
|
40294
|
+
bucket.push(order);
|
|
40295
|
+
} else {
|
|
40296
|
+
ordersBySignature.set(signature, [order]);
|
|
40297
|
+
}
|
|
40298
|
+
}
|
|
40299
|
+
for (const path of paths) {
|
|
40300
|
+
const bucket = ordersBySignature.get(pathSignature(path));
|
|
40301
|
+
const order = bucket?.shift();
|
|
40302
|
+
if (order) {
|
|
40303
|
+
commandOrder.set(path, order);
|
|
40304
|
+
}
|
|
40305
|
+
}
|
|
40306
|
+
}
|
|
40307
|
+
function orderedPathCommandEntries(path, ensureArray8) {
|
|
40308
|
+
const commandItems = (key) => {
|
|
40309
|
+
const value = path[key];
|
|
40310
|
+
const items = ensureArray8(value);
|
|
40311
|
+
return items.length === 0 && localName6(key) === "close" && value !== void 0 ? [value] : items;
|
|
40312
|
+
};
|
|
40313
|
+
const order = commandOrder.get(path);
|
|
40314
|
+
if (!order) {
|
|
40315
|
+
return Object.keys(path).flatMap(
|
|
40316
|
+
(key) => key.startsWith("@_") ? [] : commandItems(key).map((item) => [key, item])
|
|
40317
|
+
);
|
|
40318
|
+
}
|
|
40319
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
40320
|
+
return order.flatMap((name) => {
|
|
40321
|
+
const key = Object.keys(path).find((candidate) => localName6(candidate) === name);
|
|
40322
|
+
if (!key) {
|
|
40323
|
+
return [];
|
|
40324
|
+
}
|
|
40325
|
+
const items = commandItems(key);
|
|
40326
|
+
const index = consumed.get(key) ?? 0;
|
|
40327
|
+
consumed.set(key, index + 1);
|
|
40328
|
+
return index < items.length ? [[key, items[index]]] : [];
|
|
40329
|
+
});
|
|
40330
|
+
}
|
|
40331
|
+
function inheritCustomGeometryCommandOrder(target, ...sources) {
|
|
40332
|
+
let targetSignature;
|
|
40333
|
+
for (const source of sources) {
|
|
40334
|
+
if (!source) {
|
|
40335
|
+
continue;
|
|
40336
|
+
}
|
|
40337
|
+
const order = commandOrder.get(source);
|
|
40338
|
+
if (!order) {
|
|
40339
|
+
continue;
|
|
40340
|
+
}
|
|
40341
|
+
targetSignature ??= pathSignature(target);
|
|
40342
|
+
if (orderSignature(order) === targetSignature) {
|
|
40343
|
+
commandOrder.set(target, [...order]);
|
|
40344
|
+
return;
|
|
40345
|
+
}
|
|
40346
|
+
}
|
|
40347
|
+
}
|
|
40348
|
+
function pathListPaths(pathLst) {
|
|
40349
|
+
if (!pathLst || typeof pathLst !== "object") {
|
|
40350
|
+
return [];
|
|
40351
|
+
}
|
|
40352
|
+
return ensureArrayLocal(childByLocalName(pathLst, "path")).filter(
|
|
40353
|
+
(path) => Boolean(path) && typeof path === "object"
|
|
40354
|
+
);
|
|
40355
|
+
}
|
|
40356
|
+
function readPathListCommandOrder(pathLst) {
|
|
40357
|
+
const orders = pathListPaths(pathLst).map((path) => [...commandOrder.get(path) ?? []]);
|
|
40358
|
+
return orders.some((order) => order.length > 0) ? orders : void 0;
|
|
40359
|
+
}
|
|
40360
|
+
function restorePathListCommandOrder(pathLst, orders) {
|
|
40361
|
+
if (!orders || orders.length === 0) {
|
|
40362
|
+
return;
|
|
40363
|
+
}
|
|
40364
|
+
pathListPaths(pathLst).forEach((path, index) => {
|
|
40365
|
+
const order = orders[index];
|
|
40366
|
+
if (!order || order.length === 0 || commandOrder.has(path)) {
|
|
40367
|
+
return;
|
|
40368
|
+
}
|
|
40369
|
+
if (orderSignature([...order]) === pathSignature(path)) {
|
|
40370
|
+
commandOrder.set(path, [...order]);
|
|
40371
|
+
}
|
|
40372
|
+
});
|
|
40373
|
+
}
|
|
40374
|
+
function orderedXmlKey(baseName, order) {
|
|
40375
|
+
return `${baseName}${ORDER_SUFFIX}${order}`;
|
|
40376
|
+
}
|
|
40377
|
+
function stripXmlOrderSuffix(tagName) {
|
|
40378
|
+
const index = tagName.indexOf(ORDER_SUFFIX);
|
|
40379
|
+
return index >= 0 ? tagName.slice(0, index) : tagName;
|
|
40380
|
+
}
|
|
40381
|
+
function stripXmlOrderMarkers(xml) {
|
|
40382
|
+
return xml.replace(/#pptx-order-\d+/gu, "");
|
|
40383
|
+
}
|
|
40384
|
+
|
|
40573
40385
|
// pptx/core/geometry/custom-geometry.ts
|
|
40574
40386
|
function svgToCustomGeometryPaths(pathData, width, height) {
|
|
40575
40387
|
const segments = [];
|
|
@@ -40975,11 +40787,11 @@ function serializeEffectDagContainerNode(container2) {
|
|
|
40975
40787
|
xml["@_name"] = container2.name;
|
|
40976
40788
|
}
|
|
40977
40789
|
for (const child16 of container2.children) {
|
|
40978
|
-
|
|
40790
|
+
appendChild(xml, child16);
|
|
40979
40791
|
}
|
|
40980
40792
|
return xml;
|
|
40981
40793
|
}
|
|
40982
|
-
function
|
|
40794
|
+
function appendChild(parent, child16) {
|
|
40983
40795
|
if (child16.kind === "cont") {
|
|
40984
40796
|
push(parent, "a:cont", serializeEffectDagContainerNode(child16));
|
|
40985
40797
|
} else if (child16.kind === "blend") {
|
|
@@ -40998,7 +40810,7 @@ function appendChild2(parent, child16) {
|
|
|
40998
40810
|
} else if (child16.kind === "prstShdw") {
|
|
40999
40811
|
push(parent, "a:prstShdw", serializeEffectDagPresetShadow(child16));
|
|
41000
40812
|
} else {
|
|
41001
|
-
push(parent, `a:${
|
|
40813
|
+
push(parent, `a:${localName7(child16.tag)}`, child16.xml);
|
|
41002
40814
|
}
|
|
41003
40815
|
}
|
|
41004
40816
|
function numericAttributes(source, names) {
|
|
@@ -41021,7 +40833,7 @@ function push(parent, key, value) {
|
|
|
41021
40833
|
parent[key] = [previous, value];
|
|
41022
40834
|
}
|
|
41023
40835
|
}
|
|
41024
|
-
function
|
|
40836
|
+
function localName7(name) {
|
|
41025
40837
|
return name.includes(":") ? name.slice(name.indexOf(":") + 1) : name;
|
|
41026
40838
|
}
|
|
41027
40839
|
|
|
@@ -41086,7 +40898,7 @@ function parseChild(tag, value) {
|
|
|
41086
40898
|
if (value === null || value === void 0) {
|
|
41087
40899
|
return void 0;
|
|
41088
40900
|
}
|
|
41089
|
-
const localTag =
|
|
40901
|
+
const localTag = localName8(tag);
|
|
41090
40902
|
if (localTag === "cont") {
|
|
41091
40903
|
return parseEffectDagContainer(value);
|
|
41092
40904
|
}
|
|
@@ -41199,26 +41011,26 @@ function ensureArray6(value) {
|
|
|
41199
41011
|
}
|
|
41200
41012
|
return Array.isArray(value) ? value : [value];
|
|
41201
41013
|
}
|
|
41202
|
-
function
|
|
41014
|
+
function localName8(name) {
|
|
41203
41015
|
return name.includes(":") ? name.slice(name.indexOf(":") + 1) : name;
|
|
41204
41016
|
}
|
|
41205
41017
|
function childByLocalName2(xml, name) {
|
|
41206
41018
|
const match = Object.entries(xml).find(
|
|
41207
|
-
([key]) => !key.startsWith("@_") &&
|
|
41019
|
+
([key]) => !key.startsWith("@_") && localName8(key) === name
|
|
41208
41020
|
);
|
|
41209
41021
|
return match?.[1];
|
|
41210
41022
|
}
|
|
41211
41023
|
|
|
41212
41024
|
// pptx/core/core/builders/effect-list-roundtrip.ts
|
|
41213
41025
|
var COLOR_NAMES = /* @__PURE__ */ new Set(["srgbClr", "schemeClr", "sysClr", "prstClr", "scrgbClr", "hslClr"]);
|
|
41214
|
-
function
|
|
41026
|
+
function localName9(key) {
|
|
41215
41027
|
return key.split(":").at(-1) ?? key;
|
|
41216
41028
|
}
|
|
41217
41029
|
function effectChild(parent, name) {
|
|
41218
41030
|
if (!parent) {
|
|
41219
41031
|
return void 0;
|
|
41220
41032
|
}
|
|
41221
|
-
const key = Object.keys(parent).find((candidate) =>
|
|
41033
|
+
const key = Object.keys(parent).find((candidate) => localName9(candidate) === name);
|
|
41222
41034
|
const value = key ? parent[key] : void 0;
|
|
41223
41035
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
41224
41036
|
}
|
|
@@ -41230,7 +41042,7 @@ function mergeEffectNode(original, generated, originalResolvedColor, currentColo
|
|
|
41230
41042
|
}
|
|
41231
41043
|
}
|
|
41232
41044
|
for (const key of Object.keys(merged)) {
|
|
41233
|
-
if (COLOR_NAMES.has(
|
|
41045
|
+
if (COLOR_NAMES.has(localName9(key))) {
|
|
41234
41046
|
delete merged[key];
|
|
41235
41047
|
}
|
|
41236
41048
|
}
|
|
@@ -41253,7 +41065,7 @@ function createEffectList(style, spPr) {
|
|
|
41253
41065
|
return { ...style.effectListXml ?? effectChild(spPr, "effectLst") ?? {} };
|
|
41254
41066
|
}
|
|
41255
41067
|
function setEffectChild(list2, name, value) {
|
|
41256
|
-
const existing = Object.keys(list2).find((key) =>
|
|
41068
|
+
const existing = Object.keys(list2).find((key) => localName9(key) === name);
|
|
41257
41069
|
if (existing) {
|
|
41258
41070
|
delete list2[existing];
|
|
41259
41071
|
}
|
|
@@ -41769,12 +41581,12 @@ function drawingShape3dXml(shape) {
|
|
|
41769
41581
|
}
|
|
41770
41582
|
|
|
41771
41583
|
// pptx/core/core/runtime/smartart-style-xml.ts
|
|
41772
|
-
function
|
|
41584
|
+
function localName10(key) {
|
|
41773
41585
|
const idx = key.indexOf(":");
|
|
41774
41586
|
return idx >= 0 ? key.slice(idx + 1) : key;
|
|
41775
41587
|
}
|
|
41776
41588
|
function findKey10(obj, local) {
|
|
41777
|
-
return Object.keys(obj).find((k) =>
|
|
41589
|
+
return Object.keys(obj).find((k) => localName10(k) === local);
|
|
41778
41590
|
}
|
|
41779
41591
|
function ensureChild(obj, local, prefixedFallback) {
|
|
41780
41592
|
const key = findKey10(obj, local) ?? prefixedFallback;
|
|
@@ -41864,6 +41676,357 @@ function applySmartArtNodeStyleToPoint(pt, style) {
|
|
|
41864
41676
|
applyRunStyle(pt, style);
|
|
41865
41677
|
}
|
|
41866
41678
|
|
|
41679
|
+
// pptx/core/core/runtime/smartart-text-order.ts
|
|
41680
|
+
var childOrder = /* @__PURE__ */ new WeakMap();
|
|
41681
|
+
function localName11(name) {
|
|
41682
|
+
const colon = name.indexOf(":");
|
|
41683
|
+
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
41684
|
+
}
|
|
41685
|
+
function isXmlObject2(value) {
|
|
41686
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
41687
|
+
}
|
|
41688
|
+
function collectParsedParagraphs(root) {
|
|
41689
|
+
const paragraphs = [];
|
|
41690
|
+
const stack = [root];
|
|
41691
|
+
while (stack.length > 0) {
|
|
41692
|
+
const current = stack.pop();
|
|
41693
|
+
if (!current || typeof current !== "object") {
|
|
41694
|
+
continue;
|
|
41695
|
+
}
|
|
41696
|
+
if (Array.isArray(current)) {
|
|
41697
|
+
for (let index = current.length - 1; index >= 0; index--) {
|
|
41698
|
+
stack.push(current[index]);
|
|
41699
|
+
}
|
|
41700
|
+
continue;
|
|
41701
|
+
}
|
|
41702
|
+
const node = current;
|
|
41703
|
+
for (const [key, value] of Object.entries(node).reverse()) {
|
|
41704
|
+
if ((localName11(key) === "t" || localName11(key) === "txBody") && value && typeof value === "object") {
|
|
41705
|
+
for (const [childKey2, childValue] of Object.entries(value)) {
|
|
41706
|
+
if (localName11(childKey2) !== "p") {
|
|
41707
|
+
continue;
|
|
41708
|
+
}
|
|
41709
|
+
paragraphs.push(
|
|
41710
|
+
...(Array.isArray(childValue) ? childValue : [childValue]).filter(isXmlObject2)
|
|
41711
|
+
);
|
|
41712
|
+
}
|
|
41713
|
+
} else {
|
|
41714
|
+
stack.push(value);
|
|
41715
|
+
}
|
|
41716
|
+
}
|
|
41717
|
+
}
|
|
41718
|
+
return paragraphs;
|
|
41719
|
+
}
|
|
41720
|
+
function directChildOrder(xml) {
|
|
41721
|
+
const order = [];
|
|
41722
|
+
let depth = 0;
|
|
41723
|
+
for (const match of xml.matchAll(/<(\/)?([A-Za-z_][\w.-]*:)?([A-Za-z][\w.-]*)\b[^>]*>/gu)) {
|
|
41724
|
+
const closing = Boolean(match[1]);
|
|
41725
|
+
const selfClosing = /\/\s*>$/u.test(match[0]);
|
|
41726
|
+
if (closing) {
|
|
41727
|
+
depth = Math.max(0, depth - 1);
|
|
41728
|
+
continue;
|
|
41729
|
+
}
|
|
41730
|
+
if (depth === 0) {
|
|
41731
|
+
order.push(match[3]);
|
|
41732
|
+
}
|
|
41733
|
+
if (!selfClosing) {
|
|
41734
|
+
depth++;
|
|
41735
|
+
}
|
|
41736
|
+
}
|
|
41737
|
+
return order;
|
|
41738
|
+
}
|
|
41739
|
+
function extractElementOrders(xml, elementName) {
|
|
41740
|
+
const orders = [];
|
|
41741
|
+
const pattern = new RegExp(
|
|
41742
|
+
`<([A-Za-z_][\\w.-]*:)?${elementName}(?=[\\s/>])[^>]*>([\\s\\S]*?)<\\/\\1${elementName}\\s*>`,
|
|
41743
|
+
"gu"
|
|
41744
|
+
);
|
|
41745
|
+
for (const match of xml.matchAll(pattern)) {
|
|
41746
|
+
orders.push(directChildOrder(match[2]));
|
|
41747
|
+
}
|
|
41748
|
+
return orders;
|
|
41749
|
+
}
|
|
41750
|
+
function directChildrenByLocalName(paragraphs, name) {
|
|
41751
|
+
return paragraphs.flatMap(
|
|
41752
|
+
(paragraph) => Object.entries(paragraph).flatMap(([key, value]) => {
|
|
41753
|
+
if (localName11(key) !== name) {
|
|
41754
|
+
return [];
|
|
41755
|
+
}
|
|
41756
|
+
const values = Array.isArray(value) ? value : [value];
|
|
41757
|
+
return values.filter(isXmlObject2);
|
|
41758
|
+
})
|
|
41759
|
+
);
|
|
41760
|
+
}
|
|
41761
|
+
function annotateSmartArtTextOrder(xml, parsed) {
|
|
41762
|
+
const paragraphs = collectParsedParagraphs(parsed);
|
|
41763
|
+
const orders = extractElementOrders(xml, "p");
|
|
41764
|
+
for (let index = 0; index < Math.min(orders.length, paragraphs.length); index++) {
|
|
41765
|
+
childOrder.set(paragraphs[index], orders[index]);
|
|
41766
|
+
}
|
|
41767
|
+
for (const name of ["r", "fld", "br"]) {
|
|
41768
|
+
const nodes = directChildrenByLocalName(paragraphs, name);
|
|
41769
|
+
const nodeOrders = extractElementOrders(xml, name);
|
|
41770
|
+
for (let index = 0; index < Math.min(nodeOrders.length, nodes.length); index++) {
|
|
41771
|
+
childOrder.set(nodes[index], nodeOrders[index]);
|
|
41772
|
+
}
|
|
41773
|
+
}
|
|
41774
|
+
}
|
|
41775
|
+
function smartArtChildOrder(node) {
|
|
41776
|
+
return childOrder.get(node)?.slice();
|
|
41777
|
+
}
|
|
41778
|
+
function orderedSmartArtTextEntries(paragraph) {
|
|
41779
|
+
const keysByName = /* @__PURE__ */ new Map();
|
|
41780
|
+
for (const key of Object.keys(paragraph)) {
|
|
41781
|
+
if (!key.startsWith("@_")) {
|
|
41782
|
+
keysByName.set(localName11(key), key);
|
|
41783
|
+
}
|
|
41784
|
+
}
|
|
41785
|
+
const itemsFor = (key) => {
|
|
41786
|
+
const value = paragraph[key];
|
|
41787
|
+
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
41788
|
+
};
|
|
41789
|
+
const order = childOrder.get(paragraph);
|
|
41790
|
+
if (!order) {
|
|
41791
|
+
return [...keysByName.values()].flatMap(
|
|
41792
|
+
(key) => itemsFor(key).map((item) => [key, item])
|
|
41793
|
+
);
|
|
41794
|
+
}
|
|
41795
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
41796
|
+
return order.flatMap((name) => {
|
|
41797
|
+
const key = keysByName.get(name);
|
|
41798
|
+
if (!key) {
|
|
41799
|
+
return [];
|
|
41800
|
+
}
|
|
41801
|
+
const index = consumed.get(key) ?? 0;
|
|
41802
|
+
consumed.set(key, index + 1);
|
|
41803
|
+
const item = itemsFor(key)[index];
|
|
41804
|
+
return item === void 0 ? [] : [[key, item]];
|
|
41805
|
+
});
|
|
41806
|
+
}
|
|
41807
|
+
|
|
41808
|
+
// pptx/core/core/runtime/smartart-text-paragraphs.ts
|
|
41809
|
+
function localName12(name) {
|
|
41810
|
+
const colon = name.indexOf(":");
|
|
41811
|
+
return colon >= 0 ? name.slice(colon + 1) : name;
|
|
41812
|
+
}
|
|
41813
|
+
function keyFor(node, name) {
|
|
41814
|
+
return Object.keys(node).find((key) => localName12(key) === name);
|
|
41815
|
+
}
|
|
41816
|
+
function child14(node, name) {
|
|
41817
|
+
const key = keyFor(node, name);
|
|
41818
|
+
const value = key ? node[key] : void 0;
|
|
41819
|
+
if (key && (value === "" || value === void 0)) {
|
|
41820
|
+
return {};
|
|
41821
|
+
}
|
|
41822
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
41823
|
+
}
|
|
41824
|
+
function clone2(value) {
|
|
41825
|
+
return JSON.parse(JSON.stringify(value));
|
|
41826
|
+
}
|
|
41827
|
+
function directText(node) {
|
|
41828
|
+
const key = keyFor(node, "t");
|
|
41829
|
+
const value = key ? node[key] : void 0;
|
|
41830
|
+
return value === void 0 || value === null ? "" : String(value);
|
|
41831
|
+
}
|
|
41832
|
+
function parseItem(key, rawValue) {
|
|
41833
|
+
const name = localName12(key);
|
|
41834
|
+
if (!["r", "br", "fld", "tab"].includes(name)) {
|
|
41835
|
+
return { kind: "raw", name: key, value: clone2(rawValue) };
|
|
41836
|
+
}
|
|
41837
|
+
const raw = rawValue && typeof rawValue === "object" && !Array.isArray(rawValue) ? rawValue : {};
|
|
41838
|
+
if (name === "r") {
|
|
41839
|
+
const run = {
|
|
41840
|
+
text: directText(raw),
|
|
41841
|
+
rawXml: clone2(raw),
|
|
41842
|
+
childOrder: smartArtChildOrder(raw)
|
|
41843
|
+
};
|
|
41844
|
+
const rPr = child14(raw, "rPr");
|
|
41845
|
+
if (rPr) {
|
|
41846
|
+
run.rPr = clone2(rPr);
|
|
41847
|
+
}
|
|
41848
|
+
return { kind: "run", run };
|
|
41849
|
+
}
|
|
41850
|
+
if (name === "br") {
|
|
41851
|
+
const rPr = child14(raw, "rPr");
|
|
41852
|
+
return {
|
|
41853
|
+
kind: "break",
|
|
41854
|
+
...rPr ? { rPr: clone2(rPr) } : {},
|
|
41855
|
+
rawXml: clone2(raw),
|
|
41856
|
+
childOrder: smartArtChildOrder(raw)
|
|
41857
|
+
};
|
|
41858
|
+
}
|
|
41859
|
+
if (name === "fld") {
|
|
41860
|
+
const rPr = child14(raw, "rPr");
|
|
41861
|
+
const pPr = child14(raw, "pPr");
|
|
41862
|
+
return {
|
|
41863
|
+
kind: "field",
|
|
41864
|
+
...raw["@_id"] ? { id: String(raw["@_id"]) } : {},
|
|
41865
|
+
...raw["@_type"] ? { fieldType: String(raw["@_type"]) } : {},
|
|
41866
|
+
text: directText(raw),
|
|
41867
|
+
...rPr ? { rPr: clone2(rPr) } : {},
|
|
41868
|
+
...pPr ? { pPr: clone2(pPr) } : {},
|
|
41869
|
+
rawXml: clone2(raw),
|
|
41870
|
+
childOrder: smartArtChildOrder(raw)
|
|
41871
|
+
};
|
|
41872
|
+
}
|
|
41873
|
+
if (name === "tab") {
|
|
41874
|
+
return { kind: "tab", rawXml: clone2(raw), childOrder: smartArtChildOrder(raw) };
|
|
41875
|
+
}
|
|
41876
|
+
return { kind: "raw", name: key, value: clone2(rawValue) };
|
|
41877
|
+
}
|
|
41878
|
+
function parseSmartArtTextParagraphs(point2) {
|
|
41879
|
+
const body = child14(point2, "t");
|
|
41880
|
+
if (!body) {
|
|
41881
|
+
return void 0;
|
|
41882
|
+
}
|
|
41883
|
+
const pKey = keyFor(body, "p");
|
|
41884
|
+
const raw = pKey ? body[pKey] : void 0;
|
|
41885
|
+
const paragraphNodes = Array.isArray(raw) ? raw : raw ? [raw] : [];
|
|
41886
|
+
if (paragraphNodes.length === 0) {
|
|
41887
|
+
return void 0;
|
|
41888
|
+
}
|
|
41889
|
+
return paragraphNodes.map((paragraph) => {
|
|
41890
|
+
const pPr = child14(paragraph, "pPr");
|
|
41891
|
+
const endParaRPr = child14(paragraph, "endParaRPr");
|
|
41892
|
+
return {
|
|
41893
|
+
...pPr ? { pPr: clone2(pPr) } : {},
|
|
41894
|
+
items: orderedSmartArtTextEntries(paragraph).flatMap(
|
|
41895
|
+
([key, item]) => ["pPr", "endParaRPr"].includes(localName12(key)) ? [] : [parseItem(key, item)]
|
|
41896
|
+
),
|
|
41897
|
+
...endParaRPr ? { endParaRPr: clone2(endParaRPr) } : {},
|
|
41898
|
+
rawXml: clone2(paragraph)
|
|
41899
|
+
};
|
|
41900
|
+
});
|
|
41901
|
+
}
|
|
41902
|
+
function smartArtParagraphsText(paragraphs) {
|
|
41903
|
+
return diagramParagraphsText(paragraphs);
|
|
41904
|
+
}
|
|
41905
|
+
function firstParagraphRuns(paragraphs) {
|
|
41906
|
+
return firstDiagramParagraphRuns(paragraphs);
|
|
41907
|
+
}
|
|
41908
|
+
function objectWithAttributes(raw) {
|
|
41909
|
+
return Object.fromEntries(
|
|
41910
|
+
Object.entries(raw ?? {}).filter(([key]) => key.startsWith("@_"))
|
|
41911
|
+
);
|
|
41912
|
+
}
|
|
41913
|
+
function appendChild2(target, name, value, order) {
|
|
41914
|
+
const seen = Object.keys(target).some((key) => key === name || key.startsWith(`${name}#`));
|
|
41915
|
+
target[seen ? orderedXmlKey(name, order) : name] = value;
|
|
41916
|
+
}
|
|
41917
|
+
function buildOrderedContainer(raw, order, replacements) {
|
|
41918
|
+
const xml = objectWithAttributes(raw);
|
|
41919
|
+
const keys = /* @__PURE__ */ new Map();
|
|
41920
|
+
for (const key of Object.keys(raw ?? {})) {
|
|
41921
|
+
if (!key.startsWith("@_")) {
|
|
41922
|
+
keys.set(localName12(key), key);
|
|
41923
|
+
}
|
|
41924
|
+
}
|
|
41925
|
+
const values = (name) => {
|
|
41926
|
+
const key = keys.get(name);
|
|
41927
|
+
const value = key ? raw?.[key] : void 0;
|
|
41928
|
+
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
41929
|
+
};
|
|
41930
|
+
const derivedOrder = order ?? [...keys.keys()].flatMap((name) => values(name).map(() => name));
|
|
41931
|
+
const replacementMap = new Map(
|
|
41932
|
+
replacements.map(([name, value]) => [localName12(name), [name, value]])
|
|
41933
|
+
);
|
|
41934
|
+
const emittedReplacements = /* @__PURE__ */ new Set();
|
|
41935
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
41936
|
+
let outputOrder = 0;
|
|
41937
|
+
for (const name of derivedOrder) {
|
|
41938
|
+
const replacement = replacementMap.get(name);
|
|
41939
|
+
if (replacement && !emittedReplacements.has(name)) {
|
|
41940
|
+
appendChild2(xml, replacement[0], replacement[1], outputOrder++);
|
|
41941
|
+
emittedReplacements.add(name);
|
|
41942
|
+
continue;
|
|
41943
|
+
}
|
|
41944
|
+
const index = consumed.get(name) ?? 0;
|
|
41945
|
+
const value = values(name)[index];
|
|
41946
|
+
consumed.set(name, index + 1);
|
|
41947
|
+
const key = keys.get(name);
|
|
41948
|
+
if (key && value !== void 0) {
|
|
41949
|
+
appendChild2(xml, key, clone2(value), outputOrder++);
|
|
41950
|
+
}
|
|
41951
|
+
}
|
|
41952
|
+
for (const [name, value] of replacements) {
|
|
41953
|
+
if (!emittedReplacements.has(localName12(name))) {
|
|
41954
|
+
appendChild2(xml, name, value, outputOrder++);
|
|
41955
|
+
}
|
|
41956
|
+
}
|
|
41957
|
+
return xml;
|
|
41958
|
+
}
|
|
41959
|
+
function buildItem(item) {
|
|
41960
|
+
if (item.kind === "run") {
|
|
41961
|
+
return [
|
|
41962
|
+
"a:r",
|
|
41963
|
+
buildOrderedContainer(item.run.rawXml, item.run.childOrder, [
|
|
41964
|
+
["a:rPr", item.run.rPr ?? { "@_lang": "en-US" }],
|
|
41965
|
+
["a:t", item.run.text]
|
|
41966
|
+
])
|
|
41967
|
+
];
|
|
41968
|
+
}
|
|
41969
|
+
if (item.kind === "break") {
|
|
41970
|
+
return [
|
|
41971
|
+
"a:br",
|
|
41972
|
+
buildOrderedContainer(
|
|
41973
|
+
item.rawXml,
|
|
41974
|
+
item.childOrder,
|
|
41975
|
+
item.rPr ? [["a:rPr", item.rPr]] : []
|
|
41976
|
+
)
|
|
41977
|
+
];
|
|
41978
|
+
}
|
|
41979
|
+
if (item.kind === "field") {
|
|
41980
|
+
const replacements = [];
|
|
41981
|
+
if (item.rPr) {
|
|
41982
|
+
replacements.push(["a:rPr", item.rPr]);
|
|
41983
|
+
}
|
|
41984
|
+
if (item.pPr) {
|
|
41985
|
+
replacements.push(["a:pPr", item.pPr]);
|
|
41986
|
+
}
|
|
41987
|
+
replacements.push(["a:t", item.text]);
|
|
41988
|
+
const xml = buildOrderedContainer(
|
|
41989
|
+
item.rawXml,
|
|
41990
|
+
item.childOrder,
|
|
41991
|
+
replacements
|
|
41992
|
+
);
|
|
41993
|
+
if (item.id) {
|
|
41994
|
+
xml["@_id"] = item.id;
|
|
41995
|
+
}
|
|
41996
|
+
if (item.fieldType) {
|
|
41997
|
+
xml["@_type"] = item.fieldType;
|
|
41998
|
+
}
|
|
41999
|
+
return ["a:fld", xml];
|
|
42000
|
+
}
|
|
42001
|
+
if (item.kind === "tab") {
|
|
42002
|
+
return [
|
|
42003
|
+
"a:tab",
|
|
42004
|
+
buildOrderedContainer(item.rawXml, item.childOrder, [])
|
|
42005
|
+
];
|
|
42006
|
+
}
|
|
42007
|
+
return [item.name, clone2(item.value)];
|
|
42008
|
+
}
|
|
42009
|
+
function buildSmartArtTextParagraph(paragraph) {
|
|
42010
|
+
const xml = objectWithAttributes(paragraph.rawXml);
|
|
42011
|
+
if (paragraph.pPr) {
|
|
42012
|
+
xml["a:pPr"] = paragraph.pPr;
|
|
42013
|
+
}
|
|
42014
|
+
let order = 0;
|
|
42015
|
+
for (const item of paragraph.items) {
|
|
42016
|
+
const [name, value] = buildItem(item);
|
|
42017
|
+
appendChild2(xml, name, value, order++);
|
|
42018
|
+
}
|
|
42019
|
+
if (paragraph.endParaRPr) {
|
|
42020
|
+
xml["a:endParaRPr"] = paragraph.endParaRPr;
|
|
42021
|
+
}
|
|
42022
|
+
return xml;
|
|
42023
|
+
}
|
|
42024
|
+
|
|
42025
|
+
// pptx/core/core/runtime/smartart-text-reconciliation.ts
|
|
42026
|
+
function reconcileSmartArtTextParagraphs(paragraphs, desired) {
|
|
42027
|
+
return reconcileDiagramTextParagraphs(paragraphs, desired);
|
|
42028
|
+
}
|
|
42029
|
+
|
|
41867
42030
|
// pptx/core/core/runtime/smartart-xml-builders.ts
|
|
41868
42031
|
var NON_CONTENT_POINT_TYPES = /* @__PURE__ */ new Set([
|
|
41869
42032
|
"doc",
|
|
@@ -42134,99 +42297,14 @@ function mergeSmartArtConnectionXml(existingCxns, connections) {
|
|
|
42134
42297
|
}
|
|
42135
42298
|
|
|
42136
42299
|
// pptx/core/core/runtime/smartart-fabrication-data.ts
|
|
42137
|
-
var XML_PROLOG = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
|
42138
|
-
var DGM_XMLNS = 'xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"';
|
|
42139
|
-
function xmlEscape(value) {
|
|
42140
|
-
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
42141
|
-
}
|
|
42142
|
-
function avLstXml(adjustments) {
|
|
42143
|
-
const entries = Object.entries(adjustments ?? {}).filter(([, v]) => Number.isFinite(v));
|
|
42144
|
-
if (entries.length === 0) {
|
|
42145
|
-
return "<a:avLst/>";
|
|
42146
|
-
}
|
|
42147
|
-
const gds = entries.map(([name, v]) => `<a:gd name="${xmlEscape(name)}" fmla="val ${Math.round(v)}"/>`).join("");
|
|
42148
|
-
return `<a:avLst>${gds}</a:avLst>`;
|
|
42149
|
-
}
|
|
42150
|
-
var GUID_MODEL_ID = /^\{[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}\}$/u;
|
|
42151
|
-
var EMPTY_TEXT_BODY = '<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:endParaRPr lang="en-US"/></a:p></dgm:t>';
|
|
42152
|
-
function contentTextBody(text2) {
|
|
42153
|
-
if (!text2) {
|
|
42154
|
-
return EMPTY_TEXT_BODY;
|
|
42155
|
-
}
|
|
42156
|
-
return `<dgm:t><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US"/><a:t>${xmlEscape(text2)}</a:t></a:r></a:p></dgm:t>`;
|
|
42157
|
-
}
|
|
42158
|
-
function contentPointXml(guid, node) {
|
|
42159
|
-
const prSet = node.text ? "<dgm:prSet/>" : '<dgm:prSet phldrT="[Text]" phldr="1"/>';
|
|
42160
|
-
const typeAttr = node.nodeType === "asst" ? ' type="asst"' : "";
|
|
42161
|
-
return `<dgm:pt modelId="${guid}"${typeAttr}>${prSet}<dgm:spPr/>${contentTextBody(node.text ?? "")}</dgm:pt>`;
|
|
42162
|
-
}
|
|
42163
|
-
function transPointXml(guid, type, cxnGuid) {
|
|
42164
|
-
return `<dgm:pt modelId="${guid}" type="${type}" cxnId="${cxnGuid}"><dgm:prSet/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
|
|
42165
|
-
}
|
|
42166
|
-
function docPointXml(docGuid, ids) {
|
|
42167
|
-
return `<dgm:pt modelId="${docGuid}" type="doc"><dgm:prSet loTypeId="${xmlEscape(ids.layoutUniqueId)}" loCatId="${xmlEscape(ids.layoutCategory)}" qsTypeId="${xmlEscape(ids.quickStyleUniqueId)}" qsCatId="simple" csTypeId="${xmlEscape(ids.colorsUniqueId)}" csCatId="${xmlEscape(ids.colorsCategory)}"/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
|
|
42168
|
-
}
|
|
42169
42300
|
function buildNodeGuidMap(nodes) {
|
|
42170
|
-
|
|
42171
|
-
for (const node of nodes) {
|
|
42172
|
-
if (node.id && !guidByNodeId.has(node.id)) {
|
|
42173
|
-
guidByNodeId.set(node.id, GUID_MODEL_ID.test(node.id) ? node.id : newSmartArtGuid());
|
|
42174
|
-
}
|
|
42175
|
-
}
|
|
42176
|
-
return guidByNodeId;
|
|
42301
|
+
return buildDiagramNodeGuidMap(nodes, newSmartArtGuid);
|
|
42177
42302
|
}
|
|
42178
42303
|
function buildPresentationGuidMap(nodes) {
|
|
42179
|
-
|
|
42180
|
-
for (const node of nodes) {
|
|
42181
|
-
if (node.id && !guidByNodeId.has(node.id)) {
|
|
42182
|
-
guidByNodeId.set(node.id, newSmartArtGuid());
|
|
42183
|
-
}
|
|
42184
|
-
}
|
|
42185
|
-
return guidByNodeId;
|
|
42304
|
+
return buildDiagramPresentationGuidMap(nodes, newSmartArtGuid);
|
|
42186
42305
|
}
|
|
42187
|
-
var DSP_DATA_MODEL_EXT_URI = "http://schemas.microsoft.com/office/drawing/2008/diagram";
|
|
42188
42306
|
function buildFabricatedDiagramDataXml(data, ids, options = {}) {
|
|
42189
|
-
|
|
42190
|
-
const guidByNodeId = options.guidByNodeId ?? buildNodeGuidMap(data.nodes);
|
|
42191
|
-
const presentationGuidByNodeId = options.presentationGuidByNodeId ?? buildPresentationGuidMap(data.nodes);
|
|
42192
|
-
const points = [docPointXml(docGuid, ids)];
|
|
42193
|
-
const connections = [];
|
|
42194
|
-
const nextSrcOrd = /* @__PURE__ */ new Map();
|
|
42195
|
-
for (const node of data.nodes) {
|
|
42196
|
-
const guid = node.id ? guidByNodeId.get(node.id) : void 0;
|
|
42197
|
-
if (!guid) {
|
|
42198
|
-
continue;
|
|
42199
|
-
}
|
|
42200
|
-
const parentGuid = node.parentId && guidByNodeId.get(node.parentId) || docGuid;
|
|
42201
|
-
const srcOrd = nextSrcOrd.get(parentGuid) ?? 0;
|
|
42202
|
-
nextSrcOrd.set(parentGuid, srcOrd + 1);
|
|
42203
|
-
const cxnGuid = newSmartArtGuid();
|
|
42204
|
-
const parTransGuid = newSmartArtGuid();
|
|
42205
|
-
const sibTransGuid = newSmartArtGuid();
|
|
42206
|
-
points.push(contentPointXml(guid, node));
|
|
42207
|
-
points.push(transPointXml(parTransGuid, "parTrans", cxnGuid));
|
|
42208
|
-
points.push(transPointXml(sibTransGuid, "sibTrans", cxnGuid));
|
|
42209
|
-
connections.push(
|
|
42210
|
-
`<dgm:cxn modelId="${cxnGuid}" srcId="${parentGuid}" destId="${guid}" srcOrd="${srcOrd}" destOrd="0" parTransId="${parTransGuid}" sibTransId="${sibTransGuid}"/>`
|
|
42211
|
-
);
|
|
42212
|
-
const presentationGuid = node.id ? presentationGuidByNodeId.get(node.id) : void 0;
|
|
42213
|
-
if (presentationGuid) {
|
|
42214
|
-
points.push(
|
|
42215
|
-
`<dgm:pt modelId="${presentationGuid}" type="pres"><dgm:prSet presAssocID="${guid}" presName="node" presStyleLbl="node1" presStyleIdx="${srcOrd}" presStyleCnt="${data.nodes.length}"/><dgm:spPr/></dgm:pt>`
|
|
42216
|
-
);
|
|
42217
|
-
connections.push(
|
|
42218
|
-
`<dgm:cxn modelId="${newSmartArtGuid()}" type="presOf" srcId="${guid}" destId="${presentationGuid}" srcOrd="0" destOrd="0" presId="${xmlEscape(ids.layoutUniqueId)}"/>`
|
|
42219
|
-
);
|
|
42220
|
-
}
|
|
42221
|
-
}
|
|
42222
|
-
return `${XML_PROLOG}\r
|
|
42223
|
-
<dgm:dataModel ${DGM_XMLNS}><dgm:ptLst>${points.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/>${dataModelExtXml(options.drawingRelId)}</dgm:dataModel>`;
|
|
42224
|
-
}
|
|
42225
|
-
function dataModelExtXml(drawingRelId) {
|
|
42226
|
-
if (!drawingRelId) {
|
|
42227
|
-
return "";
|
|
42228
|
-
}
|
|
42229
|
-
return `<dgm:extLst><a:ext uri="${DSP_DATA_MODEL_EXT_URI}"><dsp:dataModelExt xmlns:dsp="${DSP_DATA_MODEL_EXT_URI}" relId="${xmlEscape(drawingRelId)}" minVer="http://schemas.openxmlformats.org/drawingml/2006/diagram"/></a:ext></dgm:extLst>`;
|
|
42307
|
+
return writeFabricatedDiagramData(data, ids, { createModelId: newSmartArtGuid, ...options });
|
|
42230
42308
|
}
|
|
42231
42309
|
|
|
42232
42310
|
// pptx/core/utils/text-body-sp3d-writer.ts
|
|
@@ -42576,7 +42654,7 @@ function shapePropsXml(shape) {
|
|
|
42576
42654
|
}
|
|
42577
42655
|
)
|
|
42578
42656
|
})
|
|
42579
|
-
) : `<a:prstGeom prst="${
|
|
42657
|
+
) : `<a:prstGeom prst="${escapeDiagramXml(prst)}">${diagramAvLstXml(shape.shapeAdjustments)}</a:prstGeom>`;
|
|
42580
42658
|
const fillHex = normalizeHex4(shape.fillColor);
|
|
42581
42659
|
const fillAlpha = shape.fillOpacity !== void 0 && shape.fillOpacity < 1 ? `<a:alpha val="${Math.round(Math.max(0, shape.fillOpacity) * 1e5)}"/>` : "";
|
|
42582
42660
|
const fill = fillHex ? fillAlpha ? `<a:solidFill><a:srgbClr val="${fillHex}">${fillAlpha}</a:srgbClr></a:solidFill>` : `<a:solidFill><a:srgbClr val="${fillHex}"/></a:solidFill>` : "";
|
|
@@ -42600,7 +42678,7 @@ function buildFabricatedDrawingXml(shapes, nodes, presentationGuidByNodeId) {
|
|
|
42600
42678
|
if (!body) {
|
|
42601
42679
|
return void 0;
|
|
42602
42680
|
}
|
|
42603
|
-
return `${
|
|
42681
|
+
return `${DIAGRAM_XML_PROLOG}\r
|
|
42604
42682
|
<dsp:drawing ${DSP_XMLNS}><dsp:spTree><dsp:nvGrpSpPr><dsp:cNvPr id="0" name=""/><dsp:cNvGrpSpPr/></dsp:nvGrpSpPr><dsp:grpSpPr/>${body}</dsp:spTree></dsp:drawing>`;
|
|
42605
42683
|
}
|
|
42606
42684
|
function withStyleLabel(element) {
|
|
@@ -44627,4 +44705,4 @@ function updateCellTextInRawXml(element, rowIndex, colIndex, text2) {
|
|
|
44627
44705
|
return newRawXml;
|
|
44628
44706
|
}
|
|
44629
44707
|
|
|
44630
|
-
export { BLIP_FILL_ORDER, CHART_ERROR_BAR_DIRECTIONS, CHART_ERROR_BAR_TYPES, CHART_ERROR_VALUE_TYPES, COLOR_MAP_ALIAS_KEYS, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FONT_ADVANCE_TABLE, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_ROW_HEIGHT_EMU,
|
|
44708
|
+
export { BLIP_FILL_ORDER, CHART_ERROR_BAR_DIRECTIONS, CHART_ERROR_BAR_TYPES, CHART_ERROR_VALUE_TYPES, COLOR_MAP_ALIAS_KEYS, DEFAULT_CHART_GRADIENT_ANGLE, DEFAULT_COLOR_MAP, DEFAULT_FONT_ADVANCE_TABLE, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_ROW_HEIGHT_EMU, DIAGRAM_DATA_XMLNS, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, DIAGRAM_XML_PROLOG, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, ENTRY_TYPE_ROOT, EncryptedFileError, FONT_ADVANCE_TABLES, IncorrectPasswordError, MAX_SHAPE_ID, MAX_ZIP_ENTRY_COUNT, NS, P14_DIR_IS_ORIENTATION_TYPE, P14_GUIDE_URI, P14_TRANSITION_TYPES, P15_GUIDE_URI, PRESENTATION_CHILD_ORDER, RC4_ALG_ID, SHAPE_STYLE_ORDER, SHAPE_TREE_ELEMENT_TAGS, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER2 as SP_PR_ORDER, STYLE_MATRIX_EFFECT_KEYS, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, TC_PR_BORDERS_ORDER, VML_SHAPE_TAGS, ZipBombError, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, applyActiveXControlsToSlide, applyBubbleChartOptions, applyChartAxisDisplayUnitsToXml, applyChartAxisLabelFormatting, applyChartAxisScaling, applyChartDateAxisUnits, applyChartGradientToSpPr, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDataLabelsRangeToDLbls, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySeriesDataPointsToXml, applySeriesMarkerToXml, applySeriesPictureOptionsToXml, applySmartArtLayoutDefinition, applyTextBodySp3d, applyThemeToData, attr, backgroundRefNode, backgroundStyleColorMap, backgroundStylePreset, backgroundStyleRefIsCurrent, base64Decode, blendColorOntoWhite, buildChartGradFillXml, buildChartMarkerXml, buildChartUniqueIdExtLst, buildClrMapOverrideXml, buildDefRPrTextProperties, buildEffectDagTreeFromXml, buildFabricatedDiagramDataXml, buildFabricatedDrawingXml, buildGuideListExtension, buildInkMlContent, buildNodeGuidMap, buildOle2, buildPointFromParagraphs, buildPointFromRuns, buildPointText, buildPresentationGuidMap, buildSmartArtColorLists, buildSmartArtColorRoleMap, buildSrgbColorChoice, buildTrendlineLabel, buildXml, captureStyleBaseline, chartColorChoiceValue, chartColorHex, chartGradientsEqual, chartTrendlineKind, chartTrendlineType, children2 as children, cloneElement, cloneSlide, cloneXmlObject, collectAllText, colorsEqual, concatArrays, containsConvertibleStrictNamespaceAttribute, convertMetafileToDataUrl, convertXmlToStrict, createBuiltinVariables, createDefaultXmlCell, createLineStyleGate, createOfficeGuid, cropShapeForPresetGeometry, customGeometryPathsToXml, decodeXmlEntities, decryptPptx, deobfuscateFont, deriveSlideTitles, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, effectChild, effectIsPurelyStyleMatrix, elements, encodeCompressedPng, encodePasswordUtf16LE, encodeXmlAttributeValue, encodeXmlTextValue, encryptPptx, ensureArray7 as ensureArray, ensureArrayValue, ensureXmlChild, ensureXmlChildOrCreate, ensureXmlChildren, escapeDiagramXml, estimateMediaDurationMs, evaluateGuides, extractColorChoiceXml, extractGuidFromPartName, extractStyleReferenceColorXml, fetchUrlToBytes, fillIsPurelyStyleMatrix, findChartExtByUri, findChildByLocalName, findKey6 as findKey, findThemeEffectScheme, first, firstParagraphRuns, flattenCellTxBodyText, formatAutoNumberMarker, generateFontGuid, getSignaturePathsToStrip, getTblFromRawXml, guardZip, hasLocalName, hash, hslToRgb, inferOleExtensionFromTarget, inheritCustomGeometryCommandOrder, inheritedPlaceholderFieldType, inkElementToStrokes, insertAt2 as insertAt, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isContentPoint, isDarkColorMap, isHeaderFooterPlaceholder, isOle2CompoundFile, isTemplateElementId, isXmlNode, loadThemeVariants, lookupPresetShape, measureTextWidth, mergeAttributeEffectNode, mergeEffectNode, mergeSmartArtConnectionXml, mergeSmartArtPointXml, mimeTypeForOleFile, newSmartArtGuid, normalizeNamespaceUri, normalizeStShapeType, normalizeStrictXml, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlGradientAngleToCssDegrees, openPptxZip, openZip, orderedPathCommandEntries, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseAlignmentAttr, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseBulletSizePercent, parseChart3DSurfaces, parseChartAxes, parseChartDataLabelOptions, parseChartDataPointPicture, parseChartDataPointPictureBlipRel, parseChartLayouts, parseChartManualLayout, parseChartUniqueId, parseChartUpDownBars, parseChartUserShapesDrawing, parseChartWideTextStyle, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDefRPrTextStyle, parseDiagramRelationshipIds, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseEmbeddedXlsx, parseEncryptionInfo, parseGuideDefinitions, parseImplicitBlipPictureFill, parseInkMlContent, parseKinsoku, parseLineSpacingExactPt, parseLineSpacingMultiplier, parseLineStyle, parseMarker, parseModel3DScene, parseOle2, parseOoxmlPercent, parseP14DirectChild, parseP14FromExtLst, parseParagraphExtraAttributes, parseParagraphLevel, parseParagraphMargins, parseParagraphRtl, parseParagraphSpacingPx, parsePresentationDrawingGuides, parsePresentationSmartTags, parseSeriesDataLabels, parseSeriesDataPoints, parseShapeId, parseShapeProps, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConnection, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtPresLayoutVars, parseSmartArtQuickStyleLabels, parseSmartArtStyleLabelRefs, parseSmartArtTextParagraphs, parseTabStops, parseVmlElement, parseVmlElements, parseXml, positiveFixedAngleAttribute, pptxActionToElementAction, preservesXmlWhitespace, prismFamilyFlags, prismFamilyTypeForFlags, prismFamilyTypeOfNode, projectSmartArtNodeText, reResolveElementsForColorMapChange, readChartManualLayoutValues, readPathListCommandOrder, reapplyAlternateContentToTree, reconcileSmartArtTextParagraphs, regenerateClonedUniqueId, regenerateSmartArtDrawingShapes, relAttr, relayoutSmartArt, remapElementShapeIds, remapShapeIdReferences, reorderObjectKeys, reorderObjectKeysByLocalName, replaceFirstText, replaceOleEmbedding, resetSpPrFormattingForStyleMatrix, resolveCoordinate, resolveLayoutDisplayName, resolveParagraphAlignment, resolveSmartArtEffectIntensity, resolveSmartArtNodeCoherent3DOff, resolveSmartArtNodeStyleRoles, resolveTxPrDefRPr, restorePathListCommandOrder, roundCoordinate, safeResolveZipPath, scaleVectorToIntegers, scrgbLinearToSrgb8, selectAlternateContentBranch, serializeColorChoice, serializeColorChoiceWithRef, serializeTabStop, setAutoTitleDeleted, shadowOffsetToDistanceAndDirection, shouldRebuildFromParagraphs, shouldRebuildFromRuns, slideBackgroundStyleRefFromNode, smartArtParagraphsText, stripParentDirSegments, stripXmlOrderMarkers, stripXmlOrderSuffix, supportsChartGradientFill, svgToCustomGeometryPaths, syncPictureShapeTypeWithCropShape, tableCellTextBodyMatches, themeColorRefFromColorChoice, themeColorRefFromSchemeClr, themeColorRefToSolidFillWithOpacity, themeColorRefToXml, uint32LE, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateSmartArtNodeText, upsertChartAxisChild, withThemePlaceholderColor, wrapFormatSchemeXml, writeBodyPrBooleanAttrs, writeChartColorChoice, writeChartShapeProps, writeShapeEffects, xmlAttr, xmlAttrNumber, xmlChild, xmlChildren, xmlHasChild, xmlPath, xmlText, zlibStore };
|