ooxml-core 1.19.2 → 1.21.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/README.md +47 -1
- package/dist/{PptxHandler-6TNIQ7S5.cjs → PptxHandler-DNSXWTQV.cjs} +3 -3
- package/dist/{PptxHandler-2V4PQL6O.mjs → PptxHandler-FSKKPZZC.mjs} +3 -3
- package/dist/PptxHandler-H7MEWJJJ.mjs +4 -0
- package/dist/{PresentationBuilder-G7MPEGXJ.mjs → PresentationBuilder-7TSENZTX.mjs} +2 -2
- package/dist/{PresentationBuilder-RM52LCVN.cjs → PresentationBuilder-A5NI35VN.cjs} +5 -5
- package/dist/{PresentationBuilder-HQ6C7L4V.mjs → PresentationBuilder-RIJWQSEU.mjs} +3 -3
- package/dist/automation/docx-forms.d.ts +26 -0
- package/dist/automation/docx-forms.d.ts.map +1 -0
- package/dist/automation/index.cjs +6280 -2506
- package/dist/automation/index.d.ts +1 -0
- package/dist/automation/index.d.ts.map +1 -1
- package/dist/automation/index.mjs +6277 -2507
- package/dist/automation/xlsx-read.d.ts +56 -0
- package/dist/automation/xlsx-read.d.ts.map +1 -0
- package/dist/automation/xlsx.d.ts +105 -4
- package/dist/automation/xlsx.d.ts.map +1 -1
- package/dist/chart/axis-range.d.ts.map +1 -1
- package/dist/chart/bubble-radius.d.ts +0 -5
- package/dist/chart/bubble-radius.d.ts.map +1 -1
- package/dist/chart/extent.d.ts +9 -0
- package/dist/chart/extent.d.ts.map +1 -0
- package/dist/chart/histogram-binning.d.ts.map +1 -1
- package/dist/chart/index.cjs +56 -18
- package/dist/chart/index.mjs +56 -18
- package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
- package/dist/chart/render/chart-svg-legend.d.ts.map +1 -1
- package/dist/chart/render/chart-view-ex.d.ts.map +1 -1
- package/dist/chart/render/chart-view.d.ts.map +1 -1
- package/dist/chart/trendline-fit.d.ts.map +1 -1
- package/dist/{chunk-NYTR4UZ5.cjs → chunk-4LZIUJI3.cjs} +52 -12
- package/dist/{chunk-SLNQNVQM.mjs → chunk-4QPOJCJG.mjs} +45 -8
- package/dist/{chunk-XTSHZGSM.mjs → chunk-6IIMI5RS.mjs} +52 -12
- package/dist/{chunk-TJPUAUWL.mjs → chunk-BA7Z6ATM.mjs} +9 -195
- package/dist/{chunk-JUABSM7C.mjs → chunk-DLFMCZZT.mjs} +1 -1
- package/dist/{chunk-M4XLF4R7.mjs → chunk-GBKBR4CX.mjs} +20 -8
- package/dist/{chunk-R5FIHHGB.cjs → chunk-HL3FBJ6X.cjs} +1648 -1205
- package/dist/{chunk-ZJ2OKIJN.mjs → chunk-LF5E5ZOH.mjs} +642 -199
- package/dist/{chunk-4FTUAD2B.mjs → chunk-Q5PKBQXH.mjs} +766 -202
- package/dist/{chunk-M6GDBVQ7.mjs → chunk-VQF6HQEE.mjs} +1 -1
- package/dist/collab/embedding.d.ts +103 -0
- package/dist/collab/embedding.d.ts.map +1 -0
- package/dist/collab/index.cjs +450 -342
- package/dist/collab/index.d.ts +1 -0
- package/dist/collab/index.d.ts.map +1 -1
- package/dist/collab/index.mjs +443 -343
- package/dist/color/theme-palette.d.ts +5 -1
- package/dist/color/theme-palette.d.ts.map +1 -1
- package/dist/crypto/index.cjs +27 -2
- package/dist/crypto/index.mjs +27 -2
- package/dist/diagram/index.cjs +31 -3
- package/dist/diagram/index.mjs +31 -3
- package/dist/docx/block-parser.d.ts.map +1 -1
- package/dist/docx/cell-blocks.d.ts +7 -1
- package/dist/docx/cell-blocks.d.ts.map +1 -1
- package/dist/docx/content-control-edit.d.ts +14 -0
- package/dist/docx/content-control-edit.d.ts.map +1 -1
- package/dist/docx/content-control-model.d.ts +8 -0
- package/dist/docx/content-control-model.d.ts.map +1 -1
- package/dist/docx/content-control-values.d.ts +20 -0
- package/dist/docx/content-control-values.d.ts.map +1 -0
- package/dist/docx/content-control.d.ts +7 -1
- package/dist/docx/content-control.d.ts.map +1 -1
- package/dist/docx/element-order.d.ts +10 -5
- package/dist/docx/element-order.d.ts.map +1 -1
- package/dist/docx/embedded.cjs +3861 -1379
- package/dist/docx/embedded.mjs +3861 -1379
- package/dist/docx/field-instruction.d.ts +22 -0
- package/dist/docx/field-instruction.d.ts.map +1 -0
- package/dist/docx/form-field-model.d.ts +48 -0
- package/dist/docx/form-field-model.d.ts.map +1 -0
- package/dist/docx/form-fields.d.ts +31 -0
- package/dist/docx/form-fields.d.ts.map +1 -0
- package/dist/docx/form-fill-fields.d.ts +61 -0
- package/dist/docx/form-fill-fields.d.ts.map +1 -0
- package/dist/docx/form-fill-labels.d.ts +8 -0
- package/dist/docx/form-fill-labels.d.ts.map +1 -0
- package/dist/docx/form-fill-sites.d.ts +59 -0
- package/dist/docx/form-fill-sites.d.ts.map +1 -0
- package/dist/docx/form-fill-values.d.ts +28 -0
- package/dist/docx/form-fill-values.d.ts.map +1 -0
- package/dist/docx/form-fill-write.d.ts +26 -0
- package/dist/docx/form-fill-write.d.ts.map +1 -0
- package/dist/docx/glossary.d.ts +15 -0
- package/dist/docx/glossary.d.ts.map +1 -0
- package/dist/docx/index.cjs +5929 -3153
- package/dist/docx/index.d.ts +7 -0
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +5913 -3154
- package/dist/docx/inline-annotations.d.ts +21 -0
- package/dist/docx/inline-annotations.d.ts.map +1 -0
- package/dist/docx/inline-container-markers.d.ts +14 -0
- package/dist/docx/inline-container-markers.d.ts.map +1 -0
- package/dist/docx/inline-containers.d.ts +54 -0
- package/dist/docx/inline-containers.d.ts.map +1 -0
- package/dist/docx/inline-form-field-bookmarks.d.ts +15 -0
- package/dist/docx/inline-form-field-bookmarks.d.ts.map +1 -0
- package/dist/docx/inline-marker-positions.d.ts +15 -0
- package/dist/docx/inline-marker-positions.d.ts.map +1 -0
- package/dist/docx/inline-markers.d.ts +63 -0
- package/dist/docx/inline-markers.d.ts.map +1 -0
- package/dist/docx/inline-slots.d.ts +24 -0
- package/dist/docx/inline-slots.d.ts.map +1 -0
- package/dist/docx/layout/adapter.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +1176 -563
- package/dist/docx/layout/index.d.ts +2 -1
- package/dist/docx/layout/index.d.ts.map +1 -1
- package/dist/docx/layout/index.mjs +1175 -564
- package/dist/docx/layout/input.d.ts +5 -1
- package/dist/docx/layout/input.d.ts.map +1 -1
- package/dist/docx/layout/page-style-refs.d.ts +21 -0
- package/dist/docx/layout/page-style-refs.d.ts.map +1 -0
- package/dist/docx/layout/paragraph-fragments.d.ts.map +1 -1
- package/dist/docx/layout/result.d.ts +1 -0
- package/dist/docx/layout/result.d.ts.map +1 -1
- package/dist/docx/layout/tab-stops.d.ts +8 -1
- package/dist/docx/layout/tab-stops.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +3969 -1487
- package/dist/docx/load/index.mjs +3969 -1487
- package/dist/docx/model-run.d.ts +24 -2
- package/dist/docx/model-run.d.ts.map +1 -1
- package/dist/docx/model.d.ts +5 -0
- package/dist/docx/model.d.ts.map +1 -1
- package/dist/docx/numbering-format.d.ts.map +1 -1
- package/dist/docx/parse-warnings.d.ts.map +1 -1
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/run-segmentation.d.ts +11 -0
- package/dist/docx/run-segmentation.d.ts.map +1 -0
- package/dist/docx/save.d.ts.map +1 -1
- package/dist/docx/section-model.d.ts +5 -0
- package/dist/docx/section-model.d.ts.map +1 -1
- package/dist/docx/sections.d.ts +4 -2
- package/dist/docx/sections.d.ts.map +1 -1
- package/dist/docx/settings.d.ts +9 -0
- package/dist/docx/settings.d.ts.map +1 -1
- package/dist/docx/special-characters.d.ts +34 -0
- package/dist/docx/special-characters.d.ts.map +1 -0
- package/dist/docx/style-ref-fields.d.ts +40 -0
- package/dist/docx/style-ref-fields.d.ts.map +1 -0
- package/dist/docx/style-ref.d.ts +85 -0
- package/dist/docx/style-ref.d.ts.map +1 -0
- package/dist/docx/table-model.d.ts +2 -2
- package/dist/docx/table-model.d.ts.map +1 -1
- package/dist/docx/ui/break-note-schema.d.ts.map +1 -1
- package/dist/docx/ui/content-control-commands.d.ts +20 -8
- package/dist/docx/ui/content-control-commands.d.ts.map +1 -1
- package/dist/docx/ui/content-control-guard.d.ts +4 -1
- package/dist/docx/ui/content-control-guard.d.ts.map +1 -1
- package/dist/docx/ui/content-control-paste.d.ts +23 -0
- package/dist/docx/ui/content-control-paste.d.ts.map +1 -0
- package/dist/docx/ui/content-control-rows.d.ts +15 -0
- package/dist/docx/ui/content-control-rows.d.ts.map +1 -0
- package/dist/docx/ui/content-control-sources.d.ts +12 -0
- package/dist/docx/ui/content-control-sources.d.ts.map +1 -0
- package/dist/docx/ui/content-control-spans.d.ts +29 -6
- package/dist/docx/ui/content-control-spans.d.ts.map +1 -1
- package/dist/docx/ui/content-control-temporary.d.ts +10 -0
- package/dist/docx/ui/content-control-temporary.d.ts.map +1 -0
- package/dist/docx/ui/form-field-commands.d.ts +41 -0
- package/dist/docx/ui/form-field-commands.d.ts.map +1 -0
- package/dist/docx/ui/form-field-guard.d.ts +24 -0
- package/dist/docx/ui/form-field-guard.d.ts.map +1 -0
- package/dist/docx/ui/form-text-blank.d.ts +18 -0
- package/dist/docx/ui/form-text-blank.d.ts.map +1 -0
- package/dist/docx/ui/index.cjs +9276 -7132
- package/dist/docx/ui/index.d.ts +5 -0
- package/dist/docx/ui/index.d.ts.map +1 -1
- package/dist/docx/ui/index.mjs +9259 -7137
- package/dist/docx/ui/positional-tab-input.d.ts +7 -0
- package/dist/docx/ui/positional-tab-input.d.ts.map +1 -0
- package/dist/docx/ui/run-compare.d.ts.map +1 -1
- package/dist/docx/ui/run-extra-mark.d.ts +1 -1
- package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
- package/dist/docx/ui/schema-marks.d.ts +1 -1
- package/dist/docx/ui/schema-marks.d.ts.map +1 -1
- package/dist/docx/ui/symbol-font.d.ts +4 -0
- package/dist/docx/ui/symbol-font.d.ts.map +1 -0
- package/dist/docx/ui/yjs-collaboration.d.ts +12 -1
- package/dist/docx/ui/yjs-collaboration.d.ts.map +1 -1
- package/dist/docx/write-block-placement.d.ts +7 -0
- package/dist/docx/write-block-placement.d.ts.map +1 -1
- package/dist/docx/write-content-control.d.ts +6 -0
- package/dist/docx/write-content-control.d.ts.map +1 -1
- package/dist/docx/write-header-footer.d.ts +6 -2
- package/dist/docx/write-header-footer.d.ts.map +1 -1
- package/dist/docx/write-inline.d.ts +12 -16
- package/dist/docx/write-inline.d.ts.map +1 -1
- package/dist/docx/write-paragraph.d.ts.map +1 -1
- package/dist/docx/write-revisions.d.ts.map +1 -1
- package/dist/docx/write-run.d.ts.map +1 -1
- package/dist/docx/write-section-properties.d.ts +5 -0
- package/dist/docx/write-section-properties.d.ts.map +1 -0
- package/dist/docx/write-sections.d.ts.map +1 -1
- package/dist/docx/write-table-controls.d.ts +15 -0
- package/dist/docx/write-table-controls.d.ts.map +1 -0
- package/dist/docx/write-table-properties.d.ts.map +1 -1
- package/dist/docx/write-table.d.ts.map +1 -1
- package/dist/docx/write.d.ts.map +1 -1
- package/dist/docx/xml.d.ts +6 -0
- package/dist/docx/xml.d.ts.map +1 -1
- package/dist/drawingml/index.cjs +31 -3
- package/dist/drawingml/index.mjs +31 -3
- package/dist/index.cjs +102 -26
- package/dist/index.mjs +102 -26
- package/dist/math/index.cjs +27 -2
- package/dist/math/index.mjs +27 -2
- package/dist/opc/index.cjs +51 -11
- package/dist/opc/index.mjs +51 -11
- package/dist/opc/zip-folders.d.ts +11 -0
- package/dist/opc/zip-folders.d.ts.map +1 -0
- package/dist/opc/zip-limits.d.ts +9 -0
- package/dist/opc/zip-limits.d.ts.map +1 -1
- package/dist/pptx/automation/index.cjs +995 -462
- package/dist/pptx/automation/index.d.ts +2 -2
- package/dist/pptx/automation/index.mjs +6 -6
- package/dist/pptx/chunks/{index-Bqm-jFG-.d.ts → index-CPhsd7Df.d.ts} +7580 -7507
- package/dist/pptx/chunks/index-CPhsd7Df.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-B9x557hr.d.ts → index-Q5mM8kIR.d.ts} +2 -2
- package/dist/pptx/chunks/{index-B9x557hr.d.ts.map → index-Q5mM8kIR.d.ts.map} +1 -1
- package/dist/pptx/cli/index.cjs +770 -238
- package/dist/pptx/cli/index.mjs +5 -5
- package/dist/pptx/converter/index.cjs +12 -3
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +3 -3
- package/dist/pptx/editor/render/find-replace.cjs +14 -14
- package/dist/pptx/editor/render/find-replace.d.ts +1 -1
- 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/index.cjs +1099 -628
- package/dist/pptx/index.d.ts +3 -3
- package/dist/pptx/index.mjs +6 -6
- package/dist/pptx/signature-node/index.cjs +20 -8
- package/dist/pptx/signature-node/index.mjs +2 -2
- package/dist/teams/index.cjs +105 -70
- package/dist/teams/index.mjs +105 -70
- package/dist/text/text-diff.d.ts +15 -0
- package/dist/text/text-diff.d.ts.map +1 -0
- package/dist/visio/index.cjs +220 -46
- package/dist/visio/index.mjs +220 -46
- package/dist/visio/ui/contract.d.ts +8 -2
- package/dist/visio/ui/contract.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +227 -50
- package/dist/visio/ui/index.mjs +227 -50
- package/dist/xlsx/collab/index.cjs +8 -3
- package/dist/xlsx/collab/index.mjs +8 -3
- package/dist/xlsx/compare/cells.d.ts +22 -0
- package/dist/xlsx/compare/cells.d.ts.map +1 -0
- package/dist/xlsx/compare/compare.d.ts +12 -0
- package/dist/xlsx/compare/compare.d.ts.map +1 -0
- package/dist/xlsx/compare/conditional.d.ts +7 -0
- package/dist/xlsx/compare/conditional.d.ts.map +1 -0
- package/dist/xlsx/compare/format-key.d.ts +34 -0
- package/dist/xlsx/compare/format-key.d.ts.map +1 -0
- package/dist/xlsx/compare/group.d.ts +8 -0
- package/dist/xlsx/compare/group.d.ts.map +1 -0
- package/dist/xlsx/compare/index.d.ts +5 -0
- package/dist/xlsx/compare/index.d.ts.map +1 -0
- package/dist/xlsx/compare/rich-text.d.ts +7 -0
- package/dist/xlsx/compare/rich-text.d.ts.map +1 -0
- package/dist/xlsx/compare/sheets.d.ts +22 -0
- package/dist/xlsx/compare/sheets.d.ts.map +1 -0
- package/dist/xlsx/compare/structure.d.ts +11 -0
- package/dist/xlsx/compare/structure.d.ts.map +1 -0
- package/dist/xlsx/compare/text.d.ts +8 -0
- package/dist/xlsx/compare/text.d.ts.map +1 -0
- package/dist/xlsx/compare/types.d.ts +173 -0
- package/dist/xlsx/compare/types.d.ts.map +1 -0
- package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
- package/dist/xlsx/edit/clone-cell.d.ts +9 -0
- package/dist/xlsx/edit/clone-cell.d.ts.map +1 -0
- package/dist/xlsx/edit/dimensions.d.ts.map +1 -1
- package/dist/xlsx/edit/history-rows.d.ts +7 -0
- package/dist/xlsx/edit/history-rows.d.ts.map +1 -0
- package/dist/xlsx/edit/history.d.ts +19 -4
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/outline.d.ts.map +1 -1
- package/dist/xlsx/edit/row-autofit.d.ts.map +1 -1
- package/dist/xlsx/edit/timelines.d.ts.map +1 -1
- package/dist/xlsx/formula/change-areas.d.ts +9 -0
- package/dist/xlsx/formula/change-areas.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-prepare.d.ts +8 -0
- package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -1
- package/dist/xlsx/formula/engine.d.ts.map +1 -1
- package/dist/xlsx/formula/spill.d.ts +5 -1
- package/dist/xlsx/formula/spill.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +2551 -1208
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/index.d.ts.map +1 -1
- package/dist/xlsx/index.mjs +2544 -1209
- package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
- package/dist/xlsx/layout/navigate.d.ts.map +1 -1
- package/dist/xlsx/layout/style-view.d.ts +5 -0
- package/dist/xlsx/layout/style-view.d.ts.map +1 -1
- package/dist/xlsx/load/csv-dates.d.ts +22 -0
- package/dist/xlsx/load/csv-dates.d.ts.map +1 -0
- package/dist/xlsx/load/csv-import.d.ts +64 -0
- package/dist/xlsx/load/csv-import.d.ts.map +1 -0
- package/dist/xlsx/load/csv-separators.d.ts +13 -0
- package/dist/xlsx/load/csv-separators.d.ts.map +1 -0
- package/dist/xlsx/load/csv-traits.d.ts +20 -0
- package/dist/xlsx/load/csv-traits.d.ts.map +1 -0
- package/dist/xlsx/load/csv.d.ts +8 -4
- package/dist/xlsx/load/csv.d.ts.map +1 -1
- package/dist/xlsx/load/detect.d.ts +13 -0
- package/dist/xlsx/load/detect.d.ts.map +1 -1
- package/dist/xlsx/load/errors.d.ts +1 -0
- package/dist/xlsx/load/errors.d.ts.map +1 -1
- package/dist/xlsx/load/index.cjs +598 -98
- package/dist/xlsx/load/index.d.ts +3 -1
- package/dist/xlsx/load/index.d.ts.map +1 -1
- package/dist/xlsx/load/index.mjs +597 -99
- package/dist/xlsx/numfmt/format.d.ts +8 -0
- package/dist/xlsx/numfmt/format.d.ts.map +1 -1
- package/dist/xlsx/numfmt/input-date.d.ts +2 -0
- package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
- package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
- package/dist/xlsx/pivot/groups.d.ts.map +1 -1
- package/dist/xlsx/read/index.d.ts +2 -1
- package/dist/xlsx/read/index.d.ts.map +1 -1
- package/dist/xlsx/read/limits.d.ts +50 -0
- package/dist/xlsx/read/limits.d.ts.map +1 -0
- package/dist/xlsx/read/load.d.ts +11 -1
- package/dist/xlsx/read/load.d.ts.map +1 -1
- package/dist/xlsx/read/package.d.ts +5 -23
- package/dist/xlsx/read/package.d.ts.map +1 -1
- package/dist/xlsx/read/shared-strings.d.ts +2 -2
- package/dist/xlsx/read/shared-strings.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -1
- package/dist/xlsx/read/worksheet.d.ts +2 -0
- package/dist/xlsx/read/worksheet.d.ts.map +1 -1
- package/dist/xlsx/stable-key.d.ts +3 -0
- package/dist/xlsx/stable-key.d.ts.map +1 -0
- package/dist/xlsx/styles.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +795 -388
- package/dist/xlsx/ui/index.d.ts +1 -0
- package/dist/xlsx/ui/index.d.ts.map +1 -1
- package/dist/xlsx/ui/index.mjs +795 -389
- package/dist/xlsx/ui/selection-format.d.ts +13 -0
- package/dist/xlsx/ui/selection-format.d.ts.map +1 -0
- package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
- package/dist/xml/index.cjs +57 -3
- package/dist/xml/index.mjs +57 -4
- package/dist/xml/lite.d.ts.map +1 -1
- package/dist/xml/xml.d.ts +11 -1
- package/dist/xml/xml.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/PptxHandler-HSPKEP5E.mjs +0 -4
- package/dist/pptx/chunks/index-Bqm-jFG-.d.ts.map +0 -1
|
@@ -2848,10 +2848,13 @@ var DEFAULT_ZIP_LIMITS = {
|
|
|
2848
2848
|
var ZipLimitError = class extends Error {
|
|
2849
2849
|
code = "ZIP_BOMB";
|
|
2850
2850
|
limit;
|
|
2851
|
+
/** The check that failed (absent when the error was built without one). */
|
|
2852
|
+
kind;
|
|
2851
2853
|
constructor(message, details) {
|
|
2852
2854
|
super(message);
|
|
2853
2855
|
this.name = "ZipLimitError";
|
|
2854
2856
|
this.limit = details.limit;
|
|
2857
|
+
this.kind = details.kind;
|
|
2855
2858
|
}
|
|
2856
2859
|
};
|
|
2857
2860
|
var mib = (bytes) => Math.round(bytes / 1048576);
|
|
@@ -2874,7 +2877,7 @@ function resolveLimits(limits) {
|
|
|
2874
2877
|
maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
|
|
2875
2878
|
maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
|
|
2876
2879
|
label: limits.label ?? "ZIP",
|
|
2877
|
-
fail: (message, limit) => create ? create(message, { limit }) : new ZipLimitError(message, { limit })
|
|
2880
|
+
fail: (message, limit, kind) => create ? create(message, { limit, kind }) : new ZipLimitError(message, { limit, kind })
|
|
2878
2881
|
};
|
|
2879
2882
|
}
|
|
2880
2883
|
function inflateEntryGuarded(entry, alreadyRead, limits) {
|
|
@@ -2897,13 +2900,18 @@ function inflateEntryGuarded(entry, alreadyRead, limits) {
|
|
|
2897
2900
|
size += chunk2.byteLength;
|
|
2898
2901
|
if (size > declared || size > r.maxEntryBytes)
|
|
2899
2902
|
return abort(
|
|
2900
|
-
r.fail(
|
|
2903
|
+
r.fail(
|
|
2904
|
+
`${r.label} part ${entry.name} inflates past its declared size`,
|
|
2905
|
+
r.maxEntryBytes,
|
|
2906
|
+
size > declared ? "declaredSize" : "maxEntryBytes"
|
|
2907
|
+
)
|
|
2901
2908
|
);
|
|
2902
2909
|
if (alreadyRead + size > r.maxTotalBytes)
|
|
2903
2910
|
return abort(
|
|
2904
2911
|
r.fail(
|
|
2905
2912
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
2906
|
-
r.maxTotalBytes
|
|
2913
|
+
r.maxTotalBytes,
|
|
2914
|
+
"maxTotalBytes"
|
|
2907
2915
|
)
|
|
2908
2916
|
);
|
|
2909
2917
|
chunks.push(chunk2);
|
|
@@ -2936,26 +2944,29 @@ function guardZip(zip, limits = {}) {
|
|
|
2936
2944
|
if (entries.length > r.maxEntries)
|
|
2937
2945
|
throw r.fail(
|
|
2938
2946
|
`${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
|
|
2939
|
-
r.maxEntries
|
|
2947
|
+
r.maxEntries,
|
|
2948
|
+
"maxEntries"
|
|
2940
2949
|
);
|
|
2941
2950
|
let declared = 0;
|
|
2942
2951
|
for (const entry of entries) {
|
|
2943
2952
|
const original = entry.unsafeOriginalName;
|
|
2944
2953
|
if (!isSafePartName(entry.name) || original !== void 0 && !isSafePartName(original))
|
|
2945
|
-
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
|
|
2954
|
+
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
|
|
2946
2955
|
if (entry.dir) continue;
|
|
2947
2956
|
const size = declaredEntrySize(entry);
|
|
2948
2957
|
if (size > r.maxEntryBytes)
|
|
2949
2958
|
throw r.fail(
|
|
2950
2959
|
`${r.label} part ${entry.name} exceeds the uncompressed part size limit`,
|
|
2951
|
-
r.maxEntryBytes
|
|
2960
|
+
r.maxEntryBytes,
|
|
2961
|
+
"maxEntryBytes"
|
|
2952
2962
|
);
|
|
2953
2963
|
declared += size;
|
|
2954
2964
|
}
|
|
2955
2965
|
if (declared > r.maxTotalBytes)
|
|
2956
2966
|
throw r.fail(
|
|
2957
2967
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
2958
|
-
r.maxTotalBytes
|
|
2968
|
+
r.maxTotalBytes,
|
|
2969
|
+
"maxTotalBytes"
|
|
2959
2970
|
);
|
|
2960
2971
|
const produced = /* @__PURE__ */ new Map();
|
|
2961
2972
|
let total = 0;
|
|
@@ -2993,7 +3004,8 @@ async function openZip(input, limits = {}) {
|
|
|
2993
3004
|
if (bytes.byteLength > maxInput)
|
|
2994
3005
|
throw r.fail(
|
|
2995
3006
|
`${r.label} package exceeds the ${mib(maxInput)} MiB compressed input limit`,
|
|
2996
|
-
maxInput
|
|
3007
|
+
maxInput,
|
|
3008
|
+
"maxInputBytes"
|
|
2997
3009
|
);
|
|
2998
3010
|
return guardZip(await JSZip__default.default.loadAsync(bytes), limits);
|
|
2999
3011
|
}
|
|
@@ -29124,6 +29136,19 @@ var DEFAULT_XML_LIMITS = {
|
|
|
29124
29136
|
maxDepth: 512,
|
|
29125
29137
|
maxNodes: 5e6
|
|
29126
29138
|
};
|
|
29139
|
+
var XmlLimitError = class extends Error {
|
|
29140
|
+
code = "xml-limit";
|
|
29141
|
+
/** The limit that was exceeded. */
|
|
29142
|
+
limit;
|
|
29143
|
+
/** Its value: the largest depth or element count allowed. */
|
|
29144
|
+
maximum;
|
|
29145
|
+
constructor(message, limit, maximum) {
|
|
29146
|
+
super(message);
|
|
29147
|
+
this.name = "XmlLimitError";
|
|
29148
|
+
this.limit = limit;
|
|
29149
|
+
this.maximum = maximum;
|
|
29150
|
+
}
|
|
29151
|
+
};
|
|
29127
29152
|
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
29128
29153
|
var MARKUP_SKIPS = [
|
|
29129
29154
|
["<!--", "-->"],
|
|
@@ -29157,11 +29182,22 @@ function checkXmlLimits(xml, label, limits = {}) {
|
|
|
29157
29182
|
continue;
|
|
29158
29183
|
}
|
|
29159
29184
|
nodes++;
|
|
29160
|
-
if (nodes > maxNodes)
|
|
29185
|
+
if (nodes > maxNodes)
|
|
29186
|
+
throw new XmlLimitError(
|
|
29187
|
+
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
29188
|
+
"maxNodes",
|
|
29189
|
+
maxNodes
|
|
29190
|
+
);
|
|
29161
29191
|
if (!selfClosing && ++depth > maxDepth2)
|
|
29162
|
-
throw new
|
|
29192
|
+
throw new XmlLimitError(
|
|
29193
|
+
`${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
|
|
29194
|
+
"maxDepth",
|
|
29195
|
+
maxDepth2
|
|
29196
|
+
);
|
|
29163
29197
|
}
|
|
29164
29198
|
}
|
|
29199
|
+
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
29200
|
+
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
29165
29201
|
function parseXml(xml, options = {}) {
|
|
29166
29202
|
const label = options.label ?? "OOXML";
|
|
29167
29203
|
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
@@ -29183,9 +29219,13 @@ function parseXml(xml, options = {}) {
|
|
|
29183
29219
|
}
|
|
29184
29220
|
if (parseError || !parsed.documentElement)
|
|
29185
29221
|
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
29222
|
+
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
29186
29223
|
return parsed;
|
|
29187
29224
|
}
|
|
29188
|
-
var buildXml = (node) =>
|
|
29225
|
+
var buildXml = (node) => {
|
|
29226
|
+
const xml = new xmldom.XMLSerializer().serializeToString(node);
|
|
29227
|
+
return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
|
|
29228
|
+
};
|
|
29189
29229
|
var isElement = (node) => node.nodeType === 1;
|
|
29190
29230
|
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
29191
29231
|
function named(element, local, ns, lenient = true) {
|
|
@@ -44045,7 +44085,7 @@ function getShapeType(shapeType) {
|
|
|
44045
44085
|
if (normalized === "downarrow") {
|
|
44046
44086
|
return "downArrow";
|
|
44047
44087
|
}
|
|
44048
|
-
if (normalized.includes("connector")) {
|
|
44088
|
+
if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
|
|
44049
44089
|
return "connector";
|
|
44050
44090
|
}
|
|
44051
44091
|
if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { openNestedZip, openPptxZip } from './chunk-
|
|
1
|
+
import { openNestedZip, openPptxZip } from './chunk-GBKBR4CX.mjs';
|
|
2
2
|
import { cloneTextStyle, cloneElement, cloneXmlObject, parseOrderedWhen } from './chunk-54S5A5PZ.mjs';
|
|
3
3
|
import { themeColorRefToSolidFillWithOpacity, normalizeHexColor, parseDrawingFraction, toHex, scrgbLinearToSrgb8, applyDrawingColorTransforms, parseDrawingHueDegrees, parseDrawingPercent, hslToRgb, clampUnitInterval, parseOoxmlPercent, resolveThemeColorRef } from './chunk-KII4AAYH.mjs';
|
|
4
4
|
import { XMLBuilder, XMLParser } from 'fast-xml-parser';
|
|
@@ -12494,7 +12494,7 @@ function getShapeType(shapeType) {
|
|
|
12494
12494
|
if (normalized === "downarrow") {
|
|
12495
12495
|
return "downArrow";
|
|
12496
12496
|
}
|
|
12497
|
-
if (normalized.includes("connector")) {
|
|
12497
|
+
if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
|
|
12498
12498
|
return "connector";
|
|
12499
12499
|
}
|
|
12500
12500
|
if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
|
|
@@ -21818,7 +21818,7 @@ function findTextBearingElementById(elements3, elementId) {
|
|
|
21818
21818
|
}
|
|
21819
21819
|
async function loadNestedDeck(pptxBytes) {
|
|
21820
21820
|
try {
|
|
21821
|
-
const { PptxHandler } = await import('./PptxHandler-
|
|
21821
|
+
const { PptxHandler } = await import('./PptxHandler-FSKKPZZC.mjs');
|
|
21822
21822
|
const handler = new PptxHandler();
|
|
21823
21823
|
const data = await handler.load(pptxBytes.buffer.slice(0));
|
|
21824
21824
|
return { handler, slides: data.slides };
|
|
@@ -38777,6 +38777,19 @@ var DEFAULT_XML_LIMITS = {
|
|
|
38777
38777
|
maxDepth: 512,
|
|
38778
38778
|
maxNodes: 5e6
|
|
38779
38779
|
};
|
|
38780
|
+
var XmlLimitError = class extends Error {
|
|
38781
|
+
code = "xml-limit";
|
|
38782
|
+
/** The limit that was exceeded. */
|
|
38783
|
+
limit;
|
|
38784
|
+
/** Its value: the largest depth or element count allowed. */
|
|
38785
|
+
maximum;
|
|
38786
|
+
constructor(message, limit, maximum) {
|
|
38787
|
+
super(message);
|
|
38788
|
+
this.name = "XmlLimitError";
|
|
38789
|
+
this.limit = limit;
|
|
38790
|
+
this.maximum = maximum;
|
|
38791
|
+
}
|
|
38792
|
+
};
|
|
38780
38793
|
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
38781
38794
|
var MARKUP_SKIPS = [
|
|
38782
38795
|
["<!--", "-->"],
|
|
@@ -38810,11 +38823,22 @@ function checkXmlLimits(xml, label, limits = {}) {
|
|
|
38810
38823
|
continue;
|
|
38811
38824
|
}
|
|
38812
38825
|
nodes++;
|
|
38813
|
-
if (nodes > maxNodes)
|
|
38826
|
+
if (nodes > maxNodes)
|
|
38827
|
+
throw new XmlLimitError(
|
|
38828
|
+
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
38829
|
+
"maxNodes",
|
|
38830
|
+
maxNodes
|
|
38831
|
+
);
|
|
38814
38832
|
if (!selfClosing && ++depth > maxDepth2)
|
|
38815
|
-
throw new
|
|
38833
|
+
throw new XmlLimitError(
|
|
38834
|
+
`${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
|
|
38835
|
+
"maxDepth",
|
|
38836
|
+
maxDepth2
|
|
38837
|
+
);
|
|
38816
38838
|
}
|
|
38817
38839
|
}
|
|
38840
|
+
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
38841
|
+
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
38818
38842
|
function parseXml(xml, options = {}) {
|
|
38819
38843
|
const label = options.label ?? "OOXML";
|
|
38820
38844
|
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
@@ -38836,9 +38860,13 @@ function parseXml(xml, options = {}) {
|
|
|
38836
38860
|
}
|
|
38837
38861
|
if (parseError || !parsed.documentElement)
|
|
38838
38862
|
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
38863
|
+
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
38839
38864
|
return parsed;
|
|
38840
38865
|
}
|
|
38841
|
-
var buildXml = (node) =>
|
|
38866
|
+
var buildXml = (node) => {
|
|
38867
|
+
const xml = new XMLSerializer().serializeToString(node);
|
|
38868
|
+
return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
|
|
38869
|
+
};
|
|
38842
38870
|
var isElement = (node) => node.nodeType === 1;
|
|
38843
38871
|
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
38844
38872
|
function named(element, local, ns, lenient = true) {
|
|
@@ -50482,20 +50510,29 @@ var FONT_STYLE_SUFFIX_TOKENS = /* @__PURE__ */ new Set([
|
|
|
50482
50510
|
"italic",
|
|
50483
50511
|
"oblique"
|
|
50484
50512
|
]);
|
|
50513
|
+
var FONT_WEIGHT_PREFIX_TOKENS = /* @__PURE__ */ new Set(["semi", "demi", "extra", "ultra"]);
|
|
50514
|
+
var FONT_PREFIXED_WEIGHT_TOKENS = /* @__PURE__ */ new Set(["bold", "light", "black"]);
|
|
50485
50515
|
function stripFontStyleSuffix(fontName) {
|
|
50486
50516
|
let name = fontName.trim();
|
|
50487
50517
|
let stripped = false;
|
|
50488
|
-
|
|
50518
|
+
let previous = "";
|
|
50519
|
+
let tokens = 0;
|
|
50520
|
+
for (; ; ) {
|
|
50489
50521
|
const idx = name.lastIndexOf(" ");
|
|
50490
50522
|
if (idx <= 0) {
|
|
50491
50523
|
break;
|
|
50492
50524
|
}
|
|
50493
50525
|
const token = name.slice(idx + 1).toLowerCase().replace(/-/g, "");
|
|
50494
|
-
|
|
50526
|
+
const prefix = FONT_WEIGHT_PREFIX_TOKENS.has(token) && FONT_PREFIXED_WEIGHT_TOKENS.has(previous);
|
|
50527
|
+
if (!prefix && (tokens >= 2 || !FONT_STYLE_SUFFIX_TOKENS.has(token))) {
|
|
50495
50528
|
break;
|
|
50496
50529
|
}
|
|
50497
50530
|
name = name.slice(0, idx).trim();
|
|
50498
50531
|
stripped = true;
|
|
50532
|
+
previous = prefix ? "" : token;
|
|
50533
|
+
if (!prefix) {
|
|
50534
|
+
tokens++;
|
|
50535
|
+
}
|
|
50499
50536
|
}
|
|
50500
50537
|
return stripped && name.length > 0 ? name : void 0;
|
|
50501
50538
|
}
|
|
@@ -2842,10 +2842,13 @@ var DEFAULT_ZIP_LIMITS = {
|
|
|
2842
2842
|
var ZipLimitError = class extends Error {
|
|
2843
2843
|
code = "ZIP_BOMB";
|
|
2844
2844
|
limit;
|
|
2845
|
+
/** The check that failed (absent when the error was built without one). */
|
|
2846
|
+
kind;
|
|
2845
2847
|
constructor(message, details) {
|
|
2846
2848
|
super(message);
|
|
2847
2849
|
this.name = "ZipLimitError";
|
|
2848
2850
|
this.limit = details.limit;
|
|
2851
|
+
this.kind = details.kind;
|
|
2849
2852
|
}
|
|
2850
2853
|
};
|
|
2851
2854
|
var mib = (bytes) => Math.round(bytes / 1048576);
|
|
@@ -2868,7 +2871,7 @@ function resolveLimits(limits) {
|
|
|
2868
2871
|
maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
|
|
2869
2872
|
maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
|
|
2870
2873
|
label: limits.label ?? "ZIP",
|
|
2871
|
-
fail: (message, limit) => create ? create(message, { limit }) : new ZipLimitError(message, { limit })
|
|
2874
|
+
fail: (message, limit, kind) => create ? create(message, { limit, kind }) : new ZipLimitError(message, { limit, kind })
|
|
2872
2875
|
};
|
|
2873
2876
|
}
|
|
2874
2877
|
function inflateEntryGuarded(entry, alreadyRead, limits) {
|
|
@@ -2891,13 +2894,18 @@ function inflateEntryGuarded(entry, alreadyRead, limits) {
|
|
|
2891
2894
|
size += chunk2.byteLength;
|
|
2892
2895
|
if (size > declared || size > r.maxEntryBytes)
|
|
2893
2896
|
return abort(
|
|
2894
|
-
r.fail(
|
|
2897
|
+
r.fail(
|
|
2898
|
+
`${r.label} part ${entry.name} inflates past its declared size`,
|
|
2899
|
+
r.maxEntryBytes,
|
|
2900
|
+
size > declared ? "declaredSize" : "maxEntryBytes"
|
|
2901
|
+
)
|
|
2895
2902
|
);
|
|
2896
2903
|
if (alreadyRead + size > r.maxTotalBytes)
|
|
2897
2904
|
return abort(
|
|
2898
2905
|
r.fail(
|
|
2899
2906
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
2900
|
-
r.maxTotalBytes
|
|
2907
|
+
r.maxTotalBytes,
|
|
2908
|
+
"maxTotalBytes"
|
|
2901
2909
|
)
|
|
2902
2910
|
);
|
|
2903
2911
|
chunks.push(chunk2);
|
|
@@ -2930,26 +2938,29 @@ function guardZip(zip, limits = {}) {
|
|
|
2930
2938
|
if (entries.length > r.maxEntries)
|
|
2931
2939
|
throw r.fail(
|
|
2932
2940
|
`${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
|
|
2933
|
-
r.maxEntries
|
|
2941
|
+
r.maxEntries,
|
|
2942
|
+
"maxEntries"
|
|
2934
2943
|
);
|
|
2935
2944
|
let declared = 0;
|
|
2936
2945
|
for (const entry of entries) {
|
|
2937
2946
|
const original = entry.unsafeOriginalName;
|
|
2938
2947
|
if (!isSafePartName(entry.name) || original !== void 0 && !isSafePartName(original))
|
|
2939
|
-
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
|
|
2948
|
+
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
|
|
2940
2949
|
if (entry.dir) continue;
|
|
2941
2950
|
const size = declaredEntrySize(entry);
|
|
2942
2951
|
if (size > r.maxEntryBytes)
|
|
2943
2952
|
throw r.fail(
|
|
2944
2953
|
`${r.label} part ${entry.name} exceeds the uncompressed part size limit`,
|
|
2945
|
-
r.maxEntryBytes
|
|
2954
|
+
r.maxEntryBytes,
|
|
2955
|
+
"maxEntryBytes"
|
|
2946
2956
|
);
|
|
2947
2957
|
declared += size;
|
|
2948
2958
|
}
|
|
2949
2959
|
if (declared > r.maxTotalBytes)
|
|
2950
2960
|
throw r.fail(
|
|
2951
2961
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
2952
|
-
r.maxTotalBytes
|
|
2962
|
+
r.maxTotalBytes,
|
|
2963
|
+
"maxTotalBytes"
|
|
2953
2964
|
);
|
|
2954
2965
|
const produced = /* @__PURE__ */ new Map();
|
|
2955
2966
|
let total = 0;
|
|
@@ -2987,7 +2998,8 @@ async function openZip(input, limits = {}) {
|
|
|
2987
2998
|
if (bytes.byteLength > maxInput)
|
|
2988
2999
|
throw r.fail(
|
|
2989
3000
|
`${r.label} package exceeds the ${mib(maxInput)} MiB compressed input limit`,
|
|
2990
|
-
maxInput
|
|
3001
|
+
maxInput,
|
|
3002
|
+
"maxInputBytes"
|
|
2991
3003
|
);
|
|
2992
3004
|
return guardZip(await JSZip.loadAsync(bytes), limits);
|
|
2993
3005
|
}
|
|
@@ -29118,6 +29130,19 @@ var DEFAULT_XML_LIMITS = {
|
|
|
29118
29130
|
maxDepth: 512,
|
|
29119
29131
|
maxNodes: 5e6
|
|
29120
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
|
+
};
|
|
29121
29146
|
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
29122
29147
|
var MARKUP_SKIPS = [
|
|
29123
29148
|
["<!--", "-->"],
|
|
@@ -29151,11 +29176,22 @@ function checkXmlLimits(xml, label, limits = {}) {
|
|
|
29151
29176
|
continue;
|
|
29152
29177
|
}
|
|
29153
29178
|
nodes++;
|
|
29154
|
-
if (nodes > maxNodes)
|
|
29179
|
+
if (nodes > maxNodes)
|
|
29180
|
+
throw new XmlLimitError(
|
|
29181
|
+
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
29182
|
+
"maxNodes",
|
|
29183
|
+
maxNodes
|
|
29184
|
+
);
|
|
29155
29185
|
if (!selfClosing && ++depth > maxDepth2)
|
|
29156
|
-
throw new
|
|
29186
|
+
throw new XmlLimitError(
|
|
29187
|
+
`${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
|
|
29188
|
+
"maxDepth",
|
|
29189
|
+
maxDepth2
|
|
29190
|
+
);
|
|
29157
29191
|
}
|
|
29158
29192
|
}
|
|
29193
|
+
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
29194
|
+
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
29159
29195
|
function parseXml(xml, options = {}) {
|
|
29160
29196
|
const label = options.label ?? "OOXML";
|
|
29161
29197
|
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
@@ -29177,9 +29213,13 @@ function parseXml(xml, options = {}) {
|
|
|
29177
29213
|
}
|
|
29178
29214
|
if (parseError || !parsed.documentElement)
|
|
29179
29215
|
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
29216
|
+
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
29180
29217
|
return parsed;
|
|
29181
29218
|
}
|
|
29182
|
-
var buildXml = (node) =>
|
|
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
|
+
};
|
|
29183
29223
|
var isElement = (node) => node.nodeType === 1;
|
|
29184
29224
|
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
29185
29225
|
function named(element, local, ns, lenient = true) {
|
|
@@ -44039,7 +44079,7 @@ function getShapeType(shapeType) {
|
|
|
44039
44079
|
if (normalized === "downarrow") {
|
|
44040
44080
|
return "downArrow";
|
|
44041
44081
|
}
|
|
44042
|
-
if (normalized.includes("connector")) {
|
|
44082
|
+
if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
|
|
44043
44083
|
return "connector";
|
|
44044
44084
|
}
|
|
44045
44085
|
if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-
|
|
2
|
-
import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, isLineDrawnChartType, chartFormatTargetKey, applyChartGroupOptionsInput, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, relationshipsPartFor, parseRelationships, resolvePartPath, clonePartGraph, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import { openPptxZip } from './chunk-
|
|
1
|
+
import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-DLFMCZZT.mjs';
|
|
2
|
+
import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, isLineDrawnChartType, chartFormatTargetKey, applyChartGroupOptionsInput, countExistingLayouts, addLayoutToSlideMaster, addLayoutContentType, createLayout, STANDARD_LAYOUTS, generateLayoutXml, layoutRelsXml, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, relationshipsPartFor, parseRelationships, resolvePartPath, clonePartGraph, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-Q5PKBQXH.mjs';
|
|
3
|
+
import { EMU_PER_PIXEL, EMU_PER_INCH, parseXml, first, elements, buildXml, bytesToBase64, base64ToBytes, hasTextProperties, escAttr } from './chunk-4QPOJCJG.mjs';
|
|
4
|
+
import { openPptxZip } from './chunk-GBKBR4CX.mjs';
|
|
5
5
|
import { cloneSlide, cloneElement } from './chunk-54S5A5PZ.mjs';
|
|
6
6
|
|
|
7
7
|
// pptx/core/types/transition.ts
|
|
@@ -1293,7 +1293,9 @@ var Presentation = class _Presentation {
|
|
|
1293
1293
|
data,
|
|
1294
1294
|
createSlide: (layoutName) => {
|
|
1295
1295
|
const slideNum = data.slides.length + 1;
|
|
1296
|
-
|
|
1296
|
+
const layouts = handler.getLayoutOptions();
|
|
1297
|
+
const layout = layouts.find((item) => item.name === layoutName) ?? layouts.find((item) => item.name === "Blank") ?? layouts[0];
|
|
1298
|
+
return new SlideBuilder(slideNum, layout?.path, layout?.name ?? layoutName, handler);
|
|
1297
1299
|
}
|
|
1298
1300
|
});
|
|
1299
1301
|
}
|
|
@@ -2397,194 +2399,6 @@ function addChartUserShapeGroupChild(element, groupPath, child) {
|
|
|
2397
2399
|
});
|
|
2398
2400
|
}
|
|
2399
2401
|
|
|
2400
|
-
// pptx/core/builders/sdk/layout-operations.ts
|
|
2401
|
-
var EMU_PER_PIXEL2 = 9525;
|
|
2402
|
-
function pxToEmu(px) {
|
|
2403
|
-
return Math.round(px * EMU_PER_PIXEL2);
|
|
2404
|
-
}
|
|
2405
|
-
function placeholderSpXml(ph, shapeId) {
|
|
2406
|
-
const name = ph.name ?? `${ph.type.charAt(0).toUpperCase() + ph.type.slice(1)} Placeholder ${shapeId - 1}`;
|
|
2407
|
-
const x = pxToEmu(ph.x);
|
|
2408
|
-
const y = pxToEmu(ph.y);
|
|
2409
|
-
const cx = pxToEmu(ph.width);
|
|
2410
|
-
const cy = pxToEmu(ph.height);
|
|
2411
|
-
const idxAttr = ph.idx !== void 0 ? ` idx="${Math.max(0, Math.round(ph.idx))}"` : "";
|
|
2412
|
-
return ` <p:sp>
|
|
2413
|
-
<p:nvSpPr>
|
|
2414
|
-
<p:cNvPr id="${shapeId}" name="${escAttr(name)}"/>
|
|
2415
|
-
<p:cNvSpPr><a:spLocks noGrp="1"/></p:cNvSpPr>
|
|
2416
|
-
<p:nvPr><p:ph type="${escAttr(ph.type)}"${idxAttr}/></p:nvPr>
|
|
2417
|
-
</p:nvSpPr>
|
|
2418
|
-
<p:spPr>
|
|
2419
|
-
<a:xfrm><a:off x="${x}" y="${y}"/><a:ext cx="${cx}" cy="${cy}"/></a:xfrm>
|
|
2420
|
-
</p:spPr>
|
|
2421
|
-
<p:txBody>
|
|
2422
|
-
<a:bodyPr/>
|
|
2423
|
-
<a:lstStyle/>
|
|
2424
|
-
<a:p><a:endParaRPr lang="en-US"/></a:p>
|
|
2425
|
-
</p:txBody>
|
|
2426
|
-
</p:sp>`;
|
|
2427
|
-
}
|
|
2428
|
-
function normalizeSrgbHex(color) {
|
|
2429
|
-
if (!color) {
|
|
2430
|
-
return void 0;
|
|
2431
|
-
}
|
|
2432
|
-
const raw = color.trim().replace(/^#/, "").toUpperCase();
|
|
2433
|
-
if (/^[0-9A-F]{6}$/.test(raw)) {
|
|
2434
|
-
return raw;
|
|
2435
|
-
}
|
|
2436
|
-
if (/^[0-9A-F]{3}$/.test(raw)) {
|
|
2437
|
-
return raw.replace(/./g, (ch) => ch + ch);
|
|
2438
|
-
}
|
|
2439
|
-
return void 0;
|
|
2440
|
-
}
|
|
2441
|
-
function generateLayoutXml(definition) {
|
|
2442
|
-
const layoutType = definition.type ?? "obj";
|
|
2443
|
-
const placeholders = definition.placeholders ?? [];
|
|
2444
|
-
const phShapes = placeholders.map((ph, i) => placeholderSpXml(ph, i + 2)).join("\n");
|
|
2445
|
-
let bgXml = "";
|
|
2446
|
-
const hex = normalizeSrgbHex(definition.backgroundColor);
|
|
2447
|
-
if (hex) {
|
|
2448
|
-
bgXml = ` <p:bg><p:bgPr><a:solidFill><a:srgbClr val="${hex}"/></a:solidFill><a:effectLst/></p:bgPr></p:bg>
|
|
2449
|
-
`;
|
|
2450
|
-
}
|
|
2451
|
-
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2452
|
-
<p:sldLayout xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
|
|
2453
|
-
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
|
|
2454
|
-
xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"
|
|
2455
|
-
type="${escAttr(layoutType)}" preserve="1">
|
|
2456
|
-
<p:cSld name="${escAttr(definition.name)}">
|
|
2457
|
-
${bgXml} <p:spTree>
|
|
2458
|
-
<p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr>
|
|
2459
|
-
<p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr>
|
|
2460
|
-
${phShapes}
|
|
2461
|
-
</p:spTree>
|
|
2462
|
-
</p:cSld>
|
|
2463
|
-
<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>
|
|
2464
|
-
</p:sldLayout>`;
|
|
2465
|
-
}
|
|
2466
|
-
function layoutRelsXml(masterIndex = 1) {
|
|
2467
|
-
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2468
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
2469
|
-
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster${masterIndex}.xml"/>
|
|
2470
|
-
</Relationships>`;
|
|
2471
|
-
}
|
|
2472
|
-
function countExistingLayouts(zip) {
|
|
2473
|
-
let count = 0;
|
|
2474
|
-
zip.forEach((relativePath) => {
|
|
2475
|
-
if (/^ppt\/slideLayouts\/slideLayout\d+\.xml$/.test(relativePath)) {
|
|
2476
|
-
count++;
|
|
2477
|
-
}
|
|
2478
|
-
});
|
|
2479
|
-
return count;
|
|
2480
|
-
}
|
|
2481
|
-
async function addLayoutToSlideMaster(zip, layoutIndex, masterIndex = 1) {
|
|
2482
|
-
const masterRelsPath = `ppt/slideMasters/_rels/slideMaster${masterIndex}.xml.rels`;
|
|
2483
|
-
const masterRelsContent = await zip.file(masterRelsPath)?.async("string");
|
|
2484
|
-
if (!masterRelsContent) {
|
|
2485
|
-
throw new Error(`Slide master rels not found at ${masterRelsPath}`);
|
|
2486
|
-
}
|
|
2487
|
-
const rIdMatches = [...masterRelsContent.matchAll(/rId(\d+)/g)];
|
|
2488
|
-
const maxRId = rIdMatches.reduce((max, m) => Math.max(max, parseInt(m[1], 10)), 0);
|
|
2489
|
-
const newRId = `rId${maxRId + 1}`;
|
|
2490
|
-
const newRel = ` <Relationship Id="${newRId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout${layoutIndex}.xml"/>`;
|
|
2491
|
-
const updatedRels = masterRelsContent.replace("</Relationships>", `${newRel}
|
|
2492
|
-
</Relationships>`);
|
|
2493
|
-
zip.file(masterRelsPath, updatedRels);
|
|
2494
|
-
const masterPath = `ppt/slideMasters/slideMaster${masterIndex}.xml`;
|
|
2495
|
-
const masterContent = await zip.file(masterPath)?.async("string");
|
|
2496
|
-
if (!masterContent) {
|
|
2497
|
-
throw new Error(`Slide master not found at ${masterPath}`);
|
|
2498
|
-
}
|
|
2499
|
-
const idMatches = [...masterContent.matchAll(/sldLayoutId\s+id="(\d+)"/g)];
|
|
2500
|
-
const maxLayoutId = idMatches.reduce((max, m) => Math.max(max, parseInt(m[1], 10)), 2147483648);
|
|
2501
|
-
const newLayoutId = maxLayoutId + 1;
|
|
2502
|
-
const newLayoutIdEntry = ` <p:sldLayoutId id="${newLayoutId}" r:id="${newRId}"/>`;
|
|
2503
|
-
const updatedMaster = masterContent.replace(
|
|
2504
|
-
"</p:sldLayoutIdLst>",
|
|
2505
|
-
`${newLayoutIdEntry}
|
|
2506
|
-
</p:sldLayoutIdLst>`
|
|
2507
|
-
);
|
|
2508
|
-
zip.file(masterPath, updatedMaster);
|
|
2509
|
-
}
|
|
2510
|
-
async function addLayoutContentType(zip, layoutIndex) {
|
|
2511
|
-
const ctPath = "[Content_Types].xml";
|
|
2512
|
-
const ctContent = await zip.file(ctPath)?.async("string");
|
|
2513
|
-
if (!ctContent) {
|
|
2514
|
-
throw new Error("Content types file not found");
|
|
2515
|
-
}
|
|
2516
|
-
const override = ` <Override PartName="/ppt/slideLayouts/slideLayout${layoutIndex}.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/>`;
|
|
2517
|
-
const updatedCt = ctContent.replace("</Types>", `${override}
|
|
2518
|
-
</Types>`);
|
|
2519
|
-
zip.file(ctPath, updatedCt);
|
|
2520
|
-
}
|
|
2521
|
-
async function createLayout(handler, data, definition, masterIndex = 1) {
|
|
2522
|
-
const bytes = await handler.save(data.slides);
|
|
2523
|
-
const zip = await openPptxZip(bytes);
|
|
2524
|
-
const existingCount = countExistingLayouts(zip);
|
|
2525
|
-
const newIndex = existingCount + 1;
|
|
2526
|
-
const layoutPath = `ppt/slideLayouts/slideLayout${newIndex}.xml`;
|
|
2527
|
-
zip.file(layoutPath, generateLayoutXml(definition));
|
|
2528
|
-
zip.file(`ppt/slideLayouts/_rels/slideLayout${newIndex}.xml.rels`, layoutRelsXml(masterIndex));
|
|
2529
|
-
await addLayoutToSlideMaster(zip, newIndex, masterIndex);
|
|
2530
|
-
await addLayoutContentType(zip, newIndex);
|
|
2531
|
-
const updatedBuffer = await zip.generateAsync({ type: "arraybuffer" });
|
|
2532
|
-
const newHandler = new PptxHandler();
|
|
2533
|
-
const newData = await newHandler.load(updatedBuffer);
|
|
2534
|
-
return {
|
|
2535
|
-
layoutPath,
|
|
2536
|
-
layoutName: definition.name,
|
|
2537
|
-
handler: newHandler,
|
|
2538
|
-
data: newData
|
|
2539
|
-
};
|
|
2540
|
-
}
|
|
2541
|
-
async function createLayouts(handler, data, definitions, masterIndex = 1) {
|
|
2542
|
-
if (definitions.length === 0) {
|
|
2543
|
-
return { layoutPaths: [], handler, data };
|
|
2544
|
-
}
|
|
2545
|
-
const bytes = await handler.save(data.slides);
|
|
2546
|
-
const zip = await openPptxZip(bytes);
|
|
2547
|
-
const existingCount = countExistingLayouts(zip);
|
|
2548
|
-
const layoutPaths = [];
|
|
2549
|
-
for (let i = 0; i < definitions.length; i++) {
|
|
2550
|
-
const def = definitions[i];
|
|
2551
|
-
const newIndex = existingCount + i + 1;
|
|
2552
|
-
const layoutPath = `ppt/slideLayouts/slideLayout${newIndex}.xml`;
|
|
2553
|
-
zip.file(layoutPath, generateLayoutXml(def));
|
|
2554
|
-
zip.file(`ppt/slideLayouts/_rels/slideLayout${newIndex}.xml.rels`, layoutRelsXml(masterIndex));
|
|
2555
|
-
await addLayoutToSlideMaster(zip, newIndex, masterIndex);
|
|
2556
|
-
await addLayoutContentType(zip, newIndex);
|
|
2557
|
-
layoutPaths.push(layoutPath);
|
|
2558
|
-
}
|
|
2559
|
-
const updatedBuffer = await zip.generateAsync({ type: "arraybuffer" });
|
|
2560
|
-
const newHandler = new PptxHandler();
|
|
2561
|
-
const newData = await newHandler.load(updatedBuffer);
|
|
2562
|
-
return { layoutPaths, handler: newHandler, data: newData };
|
|
2563
|
-
}
|
|
2564
|
-
function findLayoutByName(data, name) {
|
|
2565
|
-
const lowerName = name.toLowerCase();
|
|
2566
|
-
const fromOptions = data.layoutOptions?.find((l) => l.name.toLowerCase() === lowerName);
|
|
2567
|
-
if (fromOptions) {
|
|
2568
|
-
return fromOptions;
|
|
2569
|
-
}
|
|
2570
|
-
if (data.slideMasters) {
|
|
2571
|
-
for (const master of data.slideMasters) {
|
|
2572
|
-
const layout = master.layouts?.find((l) => l.name?.toLowerCase() === lowerName);
|
|
2573
|
-
if (layout) {
|
|
2574
|
-
return { path: layout.path, name: layout.name ?? name };
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
}
|
|
2578
|
-
return void 0;
|
|
2579
|
-
}
|
|
2580
|
-
function findLayoutByType(data, type) {
|
|
2581
|
-
const fromOptions = data.layoutOptions?.find((l) => l.type === type);
|
|
2582
|
-
if (fromOptions) {
|
|
2583
|
-
return fromOptions;
|
|
2584
|
-
}
|
|
2585
|
-
return void 0;
|
|
2586
|
-
}
|
|
2587
|
-
|
|
2588
2402
|
// pptx/core/builders/sdk/master-layout-crud-lookup.ts
|
|
2589
2403
|
var NOT_FOUND = { ok: false, reason: "notFound" };
|
|
2590
2404
|
function findMaster(data, masterId) {
|
|
@@ -14957,7 +14771,7 @@ async function setPresentationRunText(bytes, slideIndex, elementId, runIndex, te
|
|
|
14957
14771
|
async function createPresentationFromOutline(slides, options = {}) {
|
|
14958
14772
|
if (!(slides instanceof Array) || !slides.length || slides.length > 200)
|
|
14959
14773
|
throw new Error("A presentation outline has 1 to 200 slides");
|
|
14960
|
-
const { PresentationBuilder: PresentationBuilder2 } = await import('./PresentationBuilder-
|
|
14774
|
+
const { PresentationBuilder: PresentationBuilder2 } = await import('./PresentationBuilder-RIJWQSEU.mjs');
|
|
14961
14775
|
const { handler, data, createSlide } = await PresentationBuilder2.create({
|
|
14962
14776
|
...options.title ? { title: options.title } : {}
|
|
14963
14777
|
});
|
|
@@ -14993,4 +14807,4 @@ async function createPresentationFromOutline(slides, options = {}) {
|
|
|
14993
14807
|
return handler.save(data.slides);
|
|
14994
14808
|
}
|
|
14995
14809
|
|
|
14996
|
-
export { ChartBuilder, ConnectorBuilder, GroupBuilder, ImageBuilder, MediaBuilder, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Presentation, SLIDE_PACKAGE_CLIPBOARD_MIME, ShapeBuilder, SlideSizes, THEME_PRESETS, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, ThemePresets, addChartUserShape, addChartUserShapeGroupChild, addSection, applyTemplate, chartFormatTargetSupports, chartSupportsSecondaryAxis, cm, cmToEmu, collectLayoutNames, collectMasterNames,
|
|
14810
|
+
export { ChartBuilder, ConnectorBuilder, GroupBuilder, ImageBuilder, MediaBuilder, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Presentation, SLIDE_PACKAGE_CLIPBOARD_MIME, ShapeBuilder, SlideSizes, THEME_PRESETS, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, ThemePresets, addChartUserShape, addChartUserShapeGroupChild, addSection, applyTemplate, chartFormatTargetSupports, chartSupportsSecondaryAxis, cm, cmToEmu, collectLayoutNames, collectMasterNames, createPresentationFromOutline, createSlideClipboardPackage, deleteLayout, deleteSlideMaster, deserializeSlidePackageClipboard, diffPresentations, diffSlides, duplicateElement, duplicateLayout, duplicateSlide, duplicateSlideMaster, emuToPixels, findOpenXmlCoverage, findPlaceholders, getChartUserShapeAtPath, getSectionForSlide, getThemePreset, importSlidePackage, inches, inchesToEmu, insertLayout, insertSlideMaster, inspectPresentationText, interpolateShapeGeometry, isChartSeriesOnSecondaryAxis, listChartUserShapes, listUnassessedOpenXmlCoverage, mailMerge, mm, moveSlidesToSection, parseSvgPath, pixelsToEmu, pt, readChartElementFormat, removeChartUserShape, removeChartUserShapeAtPath, removeSection, renameLayout, renameSlideMaster, reorderSections, replaceShapeGeometry, replaceWithCustomGeometry, resetChartElementFormat, resetCloneIdCounter, resetSectionIdCounter, serializeSlidePackageClipboard, serializeSvgPath, setChartColorMapOverride, setChartDataPointGradient, setChartDataPointStyle, setChartHelperLine, setChartSeriesGradient, setElementLocked, setPresentationRunText, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, uniqueDisplayName, uniquePrefixedName, updateChartUserShape, updateChartUserShapeAtPath, withChartAxisOptions, withChartDataLabelOptions, withChartElementFormat, withChartLegendOptions, withChartSeriesOnSecondaryAxis, withChartSeriesOptions };
|