ooxml-core 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/PptxHandler-5UURGJEV.mjs +2 -0
  2. package/dist/{PptxHandler-EX4WBIQQ.mjs → PptxHandler-ADEFY476.mjs} +2 -2
  3. package/dist/PptxHandler-U5XB2HUE.cjs +11 -0
  4. package/dist/automation/index.cjs +744 -192
  5. package/dist/automation/index.mjs +744 -192
  6. package/dist/{chunk-SWF7KVL5.cjs → chunk-3N6XMMTT.cjs} +1365 -1062
  7. package/dist/{chunk-FIELY5PI.mjs → chunk-5NVJN4E6.mjs} +30 -2
  8. package/dist/{chunk-IGOA57LE.mjs → chunk-A6P7G3UK.mjs} +1 -1
  9. package/dist/{chunk-CPKNMQLX.cjs → chunk-AWIDASUW.cjs} +25 -2
  10. package/dist/{chunk-SVQZXP3F.mjs → chunk-CBNKBVX5.mjs} +25 -2
  11. package/dist/{chunk-OXHMZS7B.mjs → chunk-CCHYFCPD.mjs} +649 -172
  12. package/dist/{chunk-OB277ZGE.mjs → chunk-R6KSBNKX.mjs} +27 -1
  13. package/dist/{chunk-AT66SA5M.cjs → chunk-S6DOCMQC.cjs} +28 -0
  14. package/dist/{chunk-WSO4T2LJ.mjs → chunk-WUE5ZHU3.mjs} +26 -3
  15. package/dist/{chunk-LCS3J3QI.mjs → chunk-ZE53K7DH.mjs} +474 -171
  16. package/dist/{chunk-M76PHYRR.mjs → chunk-ZOUGMAZG.mjs} +1 -1
  17. package/dist/docx/layout/adapt-table.d.ts +2 -2
  18. package/dist/docx/layout/adapt-table.d.ts.map +1 -1
  19. package/dist/docx/layout/flow-table.d.ts.map +1 -1
  20. package/dist/docx/layout/index.cjs +477 -75
  21. package/dist/docx/layout/index.mjs +477 -76
  22. package/dist/docx/layout/nested-frame-profile.d.ts +9 -0
  23. package/dist/docx/layout/nested-frame-profile.d.ts.map +1 -0
  24. package/dist/docx/layout/page-cursor.d.ts +2 -0
  25. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  26. package/dist/docx/layout/result.d.ts +13 -0
  27. package/dist/docx/layout/result.d.ts.map +1 -1
  28. package/dist/docx/layout/table-border-layout.d.ts +16 -0
  29. package/dist/docx/layout/table-border-layout.d.ts.map +1 -0
  30. package/dist/docx/layout/table-cell-layout.d.ts +2 -1
  31. package/dist/docx/layout/table-cell-layout.d.ts.map +1 -1
  32. package/dist/docx/layout/table-content.d.ts +4 -0
  33. package/dist/docx/layout/table-content.d.ts.map +1 -0
  34. package/dist/docx/layout/table-footnotes.d.ts +5 -0
  35. package/dist/docx/layout/table-footnotes.d.ts.map +1 -1
  36. package/dist/docx/layout/table-frames.d.ts +4 -0
  37. package/dist/docx/layout/table-frames.d.ts.map +1 -0
  38. package/dist/docx/layout/table-layout.d.ts +8 -3
  39. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  40. package/dist/docx/layout/table-note-completion.d.ts +5 -0
  41. package/dist/docx/layout/table-note-completion.d.ts.map +1 -0
  42. package/dist/docx/layout/table-note-stories.d.ts +6 -0
  43. package/dist/docx/layout/table-note-stories.d.ts.map +1 -0
  44. package/dist/pptx/automation/index.cjs +535 -182
  45. package/dist/pptx/automation/index.d.ts +4 -4
  46. package/dist/pptx/automation/index.mjs +5 -5
  47. package/dist/pptx/chunks/{index-BZh-IMkN.d.ts → index-Cuxtr76Y.d.ts} +17 -3
  48. package/dist/pptx/chunks/index-Cuxtr76Y.d.ts.map +1 -0
  49. package/dist/pptx/chunks/{index-B4cnSPNz.d.ts → index-DUCGeZh7.d.ts} +65 -5
  50. package/dist/pptx/chunks/index-DUCGeZh7.d.ts.map +1 -0
  51. package/dist/pptx/chunks/{smart-art-Q2kZQtHh.d.ts → smart-art-D-sXa_Nb.d.ts} +11 -1
  52. package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts.map +1 -0
  53. package/dist/pptx/chunks/{text-operations-BLodkuXE.d.ts → text-operations-BqHmLaLA.d.ts} +26 -2
  54. package/dist/pptx/chunks/text-operations-BqHmLaLA.d.ts.map +1 -0
  55. package/dist/pptx/cli/index.cjs +535 -182
  56. package/dist/pptx/cli/index.d.ts +1 -1
  57. package/dist/pptx/cli/index.mjs +4 -4
  58. package/dist/pptx/converter/index.cjs +1 -0
  59. package/dist/pptx/converter/index.d.ts +1 -1
  60. package/dist/pptx/converter/index.mjs +2 -2
  61. package/dist/pptx/editor/render/collaboration-live-patch-target.cjs +2 -2
  62. package/dist/pptx/editor/render/collaboration-live-patch-target.mjs +1 -1
  63. package/dist/pptx/editor/render/find-replace.cjs +18 -18
  64. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  65. package/dist/pptx/editor/render/find-replace.mjs +2 -2
  66. package/dist/pptx/editor/render/remap-text.cjs +2 -2
  67. package/dist/pptx/editor/render/remap-text.d.ts.map +1 -1
  68. package/dist/pptx/editor/render/remap-text.mjs +1 -1
  69. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  70. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  71. package/dist/pptx/index.cjs +762 -182
  72. package/dist/pptx/index.d.ts +5 -5
  73. package/dist/pptx/index.mjs +5 -5
  74. package/dist/pptx/smartart-layouts/index.d.ts +1 -1
  75. package/dist/teams/index.cjs +486 -114
  76. package/dist/teams/index.mjs +486 -114
  77. package/dist/visio/date-cache.d.ts +3 -0
  78. package/dist/visio/date-cache.d.ts.map +1 -0
  79. package/dist/visio/edit-text-field.d.ts.map +1 -1
  80. package/dist/visio/index.cjs +131 -22
  81. package/dist/visio/index.mjs +131 -22
  82. package/dist/visio/shape-metadata.d.ts.map +1 -1
  83. package/dist/visio/text-field-display.d.ts.map +1 -1
  84. package/dist/visio/text-field-fraction.d.ts +3 -0
  85. package/dist/visio/text-field-fraction.d.ts.map +1 -0
  86. package/dist/visio/text-field-numeric.d.ts +1 -1
  87. package/dist/visio/text-field-numeric.d.ts.map +1 -1
  88. package/dist/visio/text-field-system-date.d.ts +4 -0
  89. package/dist/visio/text-field-system-date.d.ts.map +1 -0
  90. package/dist/visio/text-fields.d.ts +1 -0
  91. package/dist/visio/text-fields.d.ts.map +1 -1
  92. package/dist/visio/ui/index.cjs +132 -22
  93. package/dist/visio/ui/index.mjs +132 -22
  94. package/dist/visio/ui/text-field-catalog.d.ts.map +1 -1
  95. package/dist/xlsx/edit/pivots.d.ts.map +1 -1
  96. package/dist/xlsx/index.cjs +614 -170
  97. package/dist/xlsx/index.mjs +614 -170
  98. package/dist/xlsx/load/index.cjs +575 -163
  99. package/dist/xlsx/load/index.mjs +575 -163
  100. package/dist/xlsx/model-pivots.d.ts +23 -2
  101. package/dist/xlsx/model-pivots.d.ts.map +1 -1
  102. package/dist/xlsx/pivot/admission.d.ts.map +1 -1
  103. package/dist/xlsx/pivot/aggregate.d.ts +3 -1
  104. package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
  105. package/dist/xlsx/pivot/data.d.ts +1 -1
  106. package/dist/xlsx/pivot/data.d.ts.map +1 -1
  107. package/dist/xlsx/pivot/hierarchy-first.d.ts +21 -0
  108. package/dist/xlsx/pivot/hierarchy-first.d.ts.map +1 -0
  109. package/dist/xlsx/pivot/hierarchy.d.ts +2 -4
  110. package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -1
  111. package/dist/xlsx/pivot/measures.d.ts +13 -0
  112. package/dist/xlsx/pivot/measures.d.ts.map +1 -0
  113. package/dist/xlsx/pivot/read.d.ts.map +1 -1
  114. package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
  115. package/dist/xlsx/pivot/values-axis.d.ts +9 -0
  116. package/dist/xlsx/pivot/values-axis.d.ts.map +1 -0
  117. package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
  118. package/dist/xlsx/ui/index.cjs +547 -127
  119. package/dist/xlsx/ui/index.mjs +547 -127
  120. package/package.json +1 -1
  121. package/dist/PptxHandler-AT7FVG5Q.mjs +0 -2
  122. package/dist/PptxHandler-VFSCECPL.cjs +0 -11
  123. package/dist/pptx/chunks/index-B4cnSPNz.d.ts.map +0 -1
  124. package/dist/pptx/chunks/index-BZh-IMkN.d.ts.map +0 -1
  125. package/dist/pptx/chunks/smart-art-Q2kZQtHh.d.ts.map +0 -1
  126. package/dist/pptx/chunks/text-operations-BLodkuXE.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { SMART_ART_DEFINITION_PARTS, VML_SHAPE_TAGS, isAlternateContentChoiceXmlSupported, parseVmlElement, unwrapAlternateContent, xmlChild, xmlAttr, parseDrawingMediaReference, cropShapeForPresetGeometry, isHeaderFooterPlaceholder, xmlPath, inheritedPlaceholderFieldType, parseParagraphLevel, xmlHasChild, parseParagraphExtraAttributes, parseParagraphMargins, parseAlignmentAttr, parseParagraphRtl, parseTabStops, resolveParagraphAlignment, xmlText, parseBodyPrBooleanAttrs, selectAlternateContentBranch, parseBulletSizePercent, extractColorChoiceXml, formatAutoNumberMarker, parseParagraphSpacingPx, createBuiltinVariables, resolveCoordinate, parseStructuredCustomGeometry, parseAdjustmentValues, parseGuideDefinitions, evaluateGuides, evaluateGeometryPaths, inheritCustomGeometryCommandOrder, parseInkMlContent, parseModel3DScene, remapElementShapeIds, parseShapeId, isTemplateElementId, remapShapeIdReferences, reapplyAlternateContentToTree, buildOle2, SHAPE_TREE_ELEMENT_TAGS, MAX_SHAPE_ID, orderedXmlKey, safeResolveZipPath, parseDataUrlToBytes, base64Decode, EMU_PER_PX, reorderObjectKeys, encodeCompressedPng, zlibStore, hash, concatArrays, encodePasswordUtf16LE, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, uint32LE, pptxActionToElementAction, buildClrMapOverrideXml, applyActiveXControlsToSlide, BLIP_FILL_ORDER, SP_PR_ORDER, hasShapeProperties, ensureXmlChild, hasTextProperties, inkElementToStrokes, buildInkMlContent, ensureXmlChildOrCreate, isXmlNode, applyChartLayouts, stripXmlOrderSuffix, serializeTabStop, colorsEqual, generateFontGuid, applyBubbleChartOptions, applyChartUpDownBars, applyDataLabelsRangeToDLbls, applyChartAxisScaling, applyChartAxisLabelFormatting, upsertChartAxisChild, applyChartDateAxisUnits, applyChartAxisDisplayUnitsToXml, writeChartShapeProps, resolveTxPrDefRPr, buildDefRPrTextProperties, buildChartGradFillXml, applySeriesMarkerToXml, applySeriesDataPointsToXml, chartColorHex, applyChartManualLayout, buildTrendlineLabel, serializeColorChoice, replaceOleEmbedding, findKey, collectAllText, buildNodeGuidMap, buildPresentationGuidMap, regenerateSmartArtDrawingShapes, buildFabricatedDrawingXml, buildFabricatedDiagramDataXml, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, applyDiagramRelationshipIds, buildSaveTimeCustomGeometryXml, applyCustomGeometryGuideOverrides, avLstForPreset, filterValidShapeAdjustmentEntries, applyDrawingMediaReference, XML_PROLOG, DGM_XMLNS, xmlEscape, writeBodyPrBooleanAttrs, applyTextBodySp3d, writeShapeEffects, SHAPE_STYLE_ORDER, roundCoordinate, scaleVectorToIntegers, EMU_PER_PIXEL, P14_GUIDE_URI, P15_GUIDE_URI, buildGuideListExtension, resetSpPrFormattingForStyleMatrix, fillIsPurelyStyleMatrix, serializeColorChoiceWithRef, createLineStyleGate, applyDrawingLineDash, getSignaturePathsToStrip, mergeSmartArtPointXml, mergeSmartArtConnectionXml, obfuscateFont, containsConvertibleStrictNamespaceAttribute, convertXmlToStrict, applySeriesPictureOptionsToXml, findChartExtByUri, findChildByLocalName, regenerateClonedUniqueId, buildChartUniqueIdExtLst, createOfficeGuid, isContentPoint, newSmartArtGuid, parseChartUserShapesDrawing, xmlChildren, applyChartGradientToSpPr, setAutoTitleDeleted, insertAt, replaceFirstText, shouldRebuildFromParagraphs, buildPointFromParagraphs, shouldRebuildFromRuns, buildPointFromRuns, buildPointText, ensureXmlChildren, TC_PR_BORDERS_ORDER, writeChartColorChoice, parseChartFormulaRange, expandRangeAddresses, applyCellWritesToWorksheet, stripParentDirSegments, parseChartUniqueId, buildChartMarkerXml, chartGradientsEqual, chartColorChoiceValue, preservesSpreadsheetXmlWhitespace, buildEffectDagTreeFromXml, syncPictureShapeTypeWithCropShape, buildSrgbColorChoice, fetchUrlToBytes, parseChartWideTextStyle, parseDefRPrTextStyle, parseChartDataLabelOptions, shadowOffsetToDistanceAndDirection, positiveFixedAngleAttribute, xmlAttrNumber, parseCustomShows, parseShapeProps, parseActiveXControlsFromSlide, convertMetafileToDataUrl, blobUrlToDataUrl, ooxmlGradientAngleToCssDegrees, isAlternateContentChoiceSupported, SvgExporter, detectStrictConformance, normalizeStrictXml, DEFAULT_CHART_GRADIENT_ANGLE, supportsChartGradientFill, svgToCustomGeometryPaths, normalizeStShapeType, applyCustomShows, applySections, reorderObjectKeysByLocalName, PRESENTATION_CHILD_ORDER, applyKinsokuToXml, normalizeNamespaceUri, captureStyleBaseline, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, STYLE_MATRIX_EFFECT_KEYS, detectOleObjectType, inferOleExtensionFromTarget, deriveSlideTitles, parseSlideDrawingGuides, parseP14DirectChild, parseP14FromExtLst, P14_TRANSITION_TYPES, decodeXmlEntities, preservesXmlWhitespace, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, encodeXmlAttributeValue, encodeXmlTextValue, stripXmlOrderMarkers, MIN_ELEMENT_SIZE, createDrawingObjectId, DEFAULT_TEXT_FONT_SIZE, EncryptedFileError, decodePptxJsonText, deserializePptxFromJson, applyImportedPptxData, MIN_TABLE_DIMENSION, MAX_TABLE_DIMENSION, escAttr, escText, SYSTEM_COLOR_MAP, PRESET_COLOR_MAP, effectChild, mergeEffectNode, mergeAttributeEffectNode, estimateMediaDurationMs, parseVmlElements, prismFamilyFlags, prismFamilyTypeOfNode, prismFamilyTypeForFlags, P14_DIR_IS_ORIENTATION_TYPE, IncorrectPasswordError, applyThemeToData, detectFileFormat, parseOle2, decryptPptx, encryptPptx, OOXML_PERCENT_UNITS, parseDrawingLineDash, parseLineSpacingMultiplier, parseLineSpacingExactPt, parseEncryptionInfo, RC4_ALG_ID, isOle2CompoundFile, ENTRY_TYPE_ROOT, PML_XMLNS, solidFill, esc, parsePresentationDrawingGuides, parsePresentationSmartTags, resolveLayoutDisplayName, detectDigitalSignatures, unwrapOleEmbedding, mimeTypeForOleFile, oleBytesToDataUrl, emu, extractGuidFromPartName, deobfuscateFont, detectFontFormat, gradFill, parseKinsoku, parseLineStyle, parseChartUpDownBars, parseDataTable, parseChart3DSurfaces, parseChartAxes, parseBubbleChartOptions, parseChartLayouts, parseCxChartSeries, parseChartDataPointPictureBlipRel, parseSeriesTrendlines, parseSeriesErrBars, parseSeriesDataPoints, parseMarker, parseSeriesDataLabels, parseChartDataPointPicture, parseImplicitBlipPictureFill, parseEmbeddedXlsx, EMU_PER_POINT, parseDiagramRelationshipIds, parseSmartArtTextParagraphs, firstParagraphRuns, smartArtParagraphsText, parseSmartArtPresLayoutVars, readChartManualLayoutValues, parseSmartArtConnection, projectSmartArtNodeText, resolveSmartArtNodeStyleRoles, resolveSmartArtNodeCoherent3DOff, parseSmartArtDefinitionMetadata, parseSmartArtColorStyleLabels, buildSmartArtColorLists, buildSmartArtColorRoleMap, parseSmartArtQuickStyleLabels, resolveSmartArtEffectIntensity, parseSmartArtStyleLabelRefs, extractStyleReferenceColorXml, withThemePlaceholderColor, getElementOrientationMatrix, isTextOrientationMatrix, TEXT_ORIENTATION_IDENTITY, multiplyTextOrientationMatrices } from './chunk-FIELY5PI.mjs';
1
+ import { SMART_ART_DEFINITION_PARTS, VML_SHAPE_TAGS, isAlternateContentChoiceXmlSupported, parseVmlElement, unwrapAlternateContent, xmlChild, xmlAttr, parseDrawingMediaReference, cropShapeForPresetGeometry, isHeaderFooterPlaceholder, xmlPath, inheritedPlaceholderFieldType, parseParagraphLevel, xmlHasChild, parseParagraphExtraAttributes, parseParagraphMargins, parseAlignmentAttr, parseParagraphRtl, parseTabStops, resolveParagraphAlignment, xmlText, parseBodyPrBooleanAttrs, selectAlternateContentBranch, parseBulletSizePercent, extractColorChoiceXml, formatAutoNumberMarker, parseParagraphSpacingPx, createBuiltinVariables, resolveCoordinate, readPathListCommandOrder, parseStructuredCustomGeometry, parseAdjustmentValues, parseGuideDefinitions, evaluateGuides, evaluateGeometryPaths, inheritCustomGeometryCommandOrder, parseInkMlContent, parseModel3DScene, remapElementShapeIds, parseShapeId, isTemplateElementId, remapShapeIdReferences, reapplyAlternateContentToTree, buildOle2, SHAPE_TREE_ELEMENT_TAGS, MAX_SHAPE_ID, orderedXmlKey, safeResolveZipPath, parseDataUrlToBytes, base64Decode, EMU_PER_PX, reorderObjectKeys, encodeCompressedPng, zlibStore, hash, concatArrays, encodePasswordUtf16LE, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, uint32LE, pptxActionToElementAction, buildClrMapOverrideXml, applyActiveXControlsToSlide, BLIP_FILL_ORDER, SP_PR_ORDER, hasShapeProperties, ensureXmlChild, hasTextProperties, inkElementToStrokes, buildInkMlContent, ensureXmlChildOrCreate, isXmlNode, applyChartLayouts, stripXmlOrderSuffix, serializeTabStop, colorsEqual, generateFontGuid, applyBubbleChartOptions, applyChartUpDownBars, applyDataLabelsRangeToDLbls, applyChartAxisScaling, applyChartAxisLabelFormatting, upsertChartAxisChild, applyChartDateAxisUnits, applyChartAxisDisplayUnitsToXml, writeChartShapeProps, resolveTxPrDefRPr, buildDefRPrTextProperties, buildChartGradFillXml, applySeriesMarkerToXml, applySeriesDataPointsToXml, chartColorHex, applyChartManualLayout, buildTrendlineLabel, serializeColorChoice, replaceOleEmbedding, findKey, collectAllText, buildNodeGuidMap, buildPresentationGuidMap, regenerateSmartArtDrawingShapes, buildFabricatedDrawingXml, buildFabricatedDiagramDataXml, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, applyDiagramRelationshipIds, buildSaveTimeCustomGeometryXml, applyCustomGeometryGuideOverrides, avLstForPreset, filterValidShapeAdjustmentEntries, applyDrawingMediaReference, XML_PROLOG, DGM_XMLNS, xmlEscape, writeBodyPrBooleanAttrs, applyTextBodySp3d, writeShapeEffects, SHAPE_STYLE_ORDER, roundCoordinate, scaleVectorToIntegers, EMU_PER_PIXEL, P14_GUIDE_URI, P15_GUIDE_URI, buildGuideListExtension, resetSpPrFormattingForStyleMatrix, fillIsPurelyStyleMatrix, serializeColorChoiceWithRef, createLineStyleGate, applyDrawingLineDash, getSignaturePathsToStrip, mergeSmartArtPointXml, mergeSmartArtConnectionXml, obfuscateFont, containsConvertibleStrictNamespaceAttribute, convertXmlToStrict, applySeriesPictureOptionsToXml, findChartExtByUri, findChildByLocalName, regenerateClonedUniqueId, buildChartUniqueIdExtLst, createOfficeGuid, isContentPoint, newSmartArtGuid, parseChartUserShapesDrawing, xmlChildren, applyChartGradientToSpPr, setAutoTitleDeleted, insertAt, replaceFirstText, shouldRebuildFromParagraphs, buildPointFromParagraphs, shouldRebuildFromRuns, buildPointFromRuns, buildPointText, ensureXmlChildren, TC_PR_BORDERS_ORDER, writeChartColorChoice, parseChartFormulaRange, expandRangeAddresses, applyCellWritesToWorksheet, stripParentDirSegments, parseChartUniqueId, buildChartMarkerXml, chartGradientsEqual, chartColorChoiceValue, preservesSpreadsheetXmlWhitespace, buildEffectDagTreeFromXml, syncPictureShapeTypeWithCropShape, buildSrgbColorChoice, fetchUrlToBytes, parseChartWideTextStyle, parseDefRPrTextStyle, parseChartDataLabelOptions, shadowOffsetToDistanceAndDirection, positiveFixedAngleAttribute, xmlAttrNumber, parseCustomShows, parseShapeProps, parseActiveXControlsFromSlide, convertMetafileToDataUrl, blobUrlToDataUrl, ooxmlGradientAngleToCssDegrees, isAlternateContentChoiceSupported, SvgExporter, detectStrictConformance, normalizeStrictXml, DEFAULT_CHART_GRADIENT_ANGLE, supportsChartGradientFill, svgToCustomGeometryPaths, normalizeStShapeType, applyCustomShows, applySections, reorderObjectKeysByLocalName, PRESENTATION_CHILD_ORDER, applyKinsokuToXml, normalizeNamespaceUri, captureStyleBaseline, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, STYLE_MATRIX_EFFECT_KEYS, detectOleObjectType, inferOleExtensionFromTarget, deriveSlideTitles, parseSlideDrawingGuides, parseP14DirectChild, parseP14FromExtLst, P14_TRANSITION_TYPES, decodeXmlEntities, preservesXmlWhitespace, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, encodeXmlAttributeValue, encodeXmlTextValue, stripXmlOrderMarkers, MIN_ELEMENT_SIZE, createDrawingObjectId, DEFAULT_TEXT_FONT_SIZE, EncryptedFileError, decodePptxJsonText, deserializePptxFromJson, applyImportedPptxData, MIN_TABLE_DIMENSION, MAX_TABLE_DIMENSION, escAttr, escText, SYSTEM_COLOR_MAP, PRESET_COLOR_MAP, effectChild, mergeEffectNode, mergeAttributeEffectNode, estimateMediaDurationMs, parseVmlElements, prismFamilyFlags, prismFamilyTypeOfNode, prismFamilyTypeForFlags, P14_DIR_IS_ORIENTATION_TYPE, IncorrectPasswordError, applyThemeToData, detectFileFormat, parseOle2, decryptPptx, encryptPptx, OOXML_PERCENT_UNITS, parseDrawingLineDash, parseLineSpacingMultiplier, parseLineSpacingExactPt, parseEncryptionInfo, RC4_ALG_ID, isOle2CompoundFile, ENTRY_TYPE_ROOT, PML_XMLNS, solidFill, esc, parsePresentationDrawingGuides, parsePresentationSmartTags, resolveLayoutDisplayName, detectDigitalSignatures, unwrapOleEmbedding, mimeTypeForOleFile, oleBytesToDataUrl, emu, extractGuidFromPartName, deobfuscateFont, detectFontFormat, gradFill, parseKinsoku, parseLineStyle, parseChartUpDownBars, parseDataTable, parseChart3DSurfaces, parseChartAxes, parseBubbleChartOptions, parseChartLayouts, parseCxChartSeries, parseChartDataPointPictureBlipRel, parseSeriesTrendlines, parseSeriesErrBars, parseSeriesDataPoints, parseMarker, parseSeriesDataLabels, parseChartDataPointPicture, parseImplicitBlipPictureFill, parseEmbeddedXlsx, EMU_PER_POINT, parseDiagramRelationshipIds, parseSmartArtTextParagraphs, firstParagraphRuns, smartArtParagraphsText, parseSmartArtPresLayoutVars, readChartManualLayoutValues, parseSmartArtConnection, projectSmartArtNodeText, resolveSmartArtNodeStyleRoles, resolveSmartArtNodeCoherent3DOff, parseSmartArtDefinitionMetadata, parseSmartArtColorStyleLabels, buildSmartArtColorLists, buildSmartArtColorRoleMap, parseSmartArtQuickStyleLabels, resolveSmartArtEffectIntensity, parseSmartArtStyleLabelRefs, extractStyleReferenceColorXml, withThemePlaceholderColor, getElementOrientationMatrix, isTextOrientationMatrix, TEXT_ORIENTATION_IDENTITY, multiplyTextOrientationMatrices } from './chunk-5NVJN4E6.mjs';
2
2
  import { DIGITAL_SIGNATURE_ORIGIN_REL_TYPE } from './chunk-KBIJI6P5.mjs';
3
3
  import { resolveSmartArtLayoutCategory } from './chunk-3GXV5MPC.mjs';
4
4
  import { cloneXmlObject, applySmartArtLayoutDefinition, cloneSlide, parseSmartArtLayoutDefinition } from './chunk-54S5A5PZ.mjs';
@@ -1761,7 +1761,7 @@ function rootRelsXml() {
1761
1761
  <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
1762
1762
  </Relationships>`;
1763
1763
  }
1764
- function presentationXml(width, height, slideCount) {
1764
+ function presentationXml(width, height, slideCount, firstSlideNumber) {
1765
1765
  const slideIdBase = 256;
1766
1766
  const slideRIdBase = 6;
1767
1767
  const sldIdLst = slideCount > 0 ? ` <p:sldIdLst>
@@ -1770,6 +1770,7 @@ ${Array.from(
1770
1770
  (_, i) => ` <p:sldId id="${slideIdBase + i}" r:id="rId${slideRIdBase + i}"/>`
1771
1771
  ).join("\n")}
1772
1772
  </p:sldIdLst>` : "";
1773
+ const firstSlideNum = firstSlideNumber === void 0 ? "" : ` firstSlideNum="${Math.trunc(firstSlideNumber)}"`;
1773
1774
  return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1774
1775
  <p:presentation xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
1775
1776
  xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
@@ -1777,7 +1778,7 @@ ${Array.from(
1777
1778
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
1778
1779
  xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main"
1779
1780
  xmlns:p15="http://schemas.microsoft.com/office/powerpoint/2012/main"
1780
- saveSubsetFonts="1">
1781
+ saveSubsetFonts="1"${firstSlideNum}>
1781
1782
  <p:sldMasterIdLst>
1782
1783
  <p:sldMasterId id="2147483648" r:id="rId1"/>
1783
1784
  </p:sldMasterIdLst>
@@ -2014,7 +2015,10 @@ async function buildBlankPresentationArchive(options) {
2014
2015
  const zip = new JSZip5();
2015
2016
  zip.file("[Content_Types].xml", contentTypesXml(layoutCount, initialSlideCount));
2016
2017
  zip.file("_rels/.rels", rootRelsXml());
2017
- zip.file("ppt/presentation.xml", presentationXml(width, height, initialSlideCount));
2018
+ zip.file(
2019
+ "ppt/presentation.xml",
2020
+ presentationXml(width, height, initialSlideCount, options?.firstSlideNumber)
2021
+ );
2018
2022
  zip.file("ppt/_rels/presentation.xml.rels", presentationRelsXml(layoutCount, initialSlideCount));
2019
2023
  zip.file("ppt/slideMasters/slideMaster1.xml", slideMasterXml(layoutCount));
2020
2024
  zip.file("ppt/slideMasters/_rels/slideMaster1.xml.rels", slideMasterRelsXml(layoutCount));
@@ -10057,7 +10061,7 @@ function parseShapeLockNode(node, spec) {
10057
10061
  return void 0;
10058
10062
  }
10059
10063
  const locks = {};
10060
- let hasAny = false;
10064
+ let hasAny2 = false;
10061
10065
  for (const prop of spec.permitted) {
10062
10066
  const raw = node[LOCK_ATTRIBUTE[prop]];
10063
10067
  if (raw === void 0) {
@@ -10065,9 +10069,9 @@ function parseShapeLockNode(node, spec) {
10065
10069
  }
10066
10070
  const value = String(raw).trim().toLowerCase();
10067
10071
  locks[prop] = value === "1" || value === "true";
10068
- hasAny = true;
10072
+ hasAny2 = true;
10069
10073
  }
10070
- return hasAny ? locks : void 0;
10074
+ return hasAny2 ? locks : void 0;
10071
10075
  }
10072
10076
 
10073
10077
  // pptx/core/core/runtime/shape-lock-containers.ts
@@ -10871,6 +10875,7 @@ var PptxLoadDataBuilder = class {
10871
10875
  modernCommentAuthors;
10872
10876
  conformance;
10873
10877
  embedTrueTypeFonts;
10878
+ firstSlideNumber;
10874
10879
  defaultTextStyle;
10875
10880
  withDimensions(width, height, widthEmu, heightEmu) {
10876
10881
  this.width = width;
@@ -11040,6 +11045,10 @@ var PptxLoadDataBuilder = class {
11040
11045
  this.embedTrueTypeFonts = embedTrueTypeFonts;
11041
11046
  return this;
11042
11047
  }
11048
+ withFirstSlideNumber(firstSlideNumber) {
11049
+ this.firstSlideNumber = firstSlideNumber;
11050
+ return this;
11051
+ }
11043
11052
  withDefaultTextStyle(defaultTextStyle) {
11044
11053
  this.defaultTextStyle = defaultTextStyle;
11045
11054
  return this;
@@ -11091,6 +11100,7 @@ var PptxLoadDataBuilder = class {
11091
11100
  modernCommentAuthors: this.modernCommentAuthors,
11092
11101
  conformance: this.conformance,
11093
11102
  embedTrueTypeFonts: this.embedTrueTypeFonts,
11103
+ firstSlideNumber: this.firstSlideNumber,
11094
11104
  defaultTextStyle: this.defaultTextStyle
11095
11105
  };
11096
11106
  }
@@ -14889,6 +14899,345 @@ async function attachRealMediaDurations(elements2, nativeAnimations, readBytes)
14889
14899
  applyPlainDelayRemap(nativeAnimations, plainDelayRemap);
14890
14900
  }
14891
14901
 
14902
+ // pptx/core/services/editor-animation-entry.ts
14903
+ var DEFAULT_ANIMATION_DURATION_MS = 500;
14904
+ var DEFAULT_ANIMATION_TRIGGER = "onClick";
14905
+ function hasAuthoredAnimationEffect(entry2) {
14906
+ return Boolean(
14907
+ [entry2.entrance, entry2.exit, entry2.emphasis].some((preset) => preset && preset !== "none") || entry2.motionPath
14908
+ );
14909
+ }
14910
+ function hasAnimation(animations, elementId) {
14911
+ const entry2 = animationFor(animations, elementId);
14912
+ return Boolean(entry2 && (entry2.entrance || entry2.exit || entry2.emphasis || entry2.motionPath));
14913
+ }
14914
+ function animationFor(slideAnimations, elementId) {
14915
+ return slideAnimations.find((a) => a.elementId === elementId);
14916
+ }
14917
+ function upsert(anims, elementId, updater) {
14918
+ const idx = anims.findIndex((a) => a.elementId === elementId);
14919
+ if (idx >= 0) {
14920
+ const updated2 = updater({ ...anims[idx] });
14921
+ if (updated2 === null) {
14922
+ return anims.filter((a) => a.elementId !== elementId);
14923
+ }
14924
+ return anims.map((a, i) => i === idx ? updated2 : a);
14925
+ }
14926
+ const created = {
14927
+ elementId,
14928
+ durationMs: DEFAULT_ANIMATION_DURATION_MS,
14929
+ order: anims.length,
14930
+ trigger: DEFAULT_ANIMATION_TRIGGER
14931
+ };
14932
+ const updated = updater(created);
14933
+ if (updated === null) {
14934
+ return [...anims];
14935
+ }
14936
+ return [...anims, updated];
14937
+ }
14938
+
14939
+ // pptx/core/services/native-animation-after-effect.ts
14940
+ function hasAfterEffectFlag(cTn) {
14941
+ const raw = cTn?.["@_afterEffect"];
14942
+ return raw === "1" || raw === "true";
14943
+ }
14944
+ function extractSrgbHex(colorContainer) {
14945
+ const srgb = colorContainer?.["a:srgbClr"];
14946
+ const val = srgb?.["@_val"];
14947
+ return val !== void 0 ? `#${String(val).toUpperCase()}` : void 0;
14948
+ }
14949
+ function findDimBehaviour(subTnLst) {
14950
+ for (const node of ensureArray3(subTnLst["p:animClr"])) {
14951
+ const cBhvr = node["p:cBhvr"];
14952
+ if (extractAttrNameFromCBhvr(cBhvr) !== "ppt_c") {
14953
+ continue;
14954
+ }
14955
+ if (!hasAfterEffectFlag(cBhvr?.["p:cTn"])) {
14956
+ continue;
14957
+ }
14958
+ const toNode = node["p:to"];
14959
+ const color = extractSrgbHex(toNode);
14960
+ if (color) {
14961
+ return { action: "dimToColor", color };
14962
+ }
14963
+ const colorRef = themeColorRefFromSchemeClr(toNode?.["a:schemeClr"]);
14964
+ return colorRef ? { action: "dimToColor", colorRef } : { action: "dimToColor" };
14965
+ }
14966
+ return void 0;
14967
+ }
14968
+ function findHideBehaviour(subTnLst) {
14969
+ for (const node of ensureArray3(subTnLst["p:set"])) {
14970
+ const cBhvr = node["p:cBhvr"];
14971
+ if (extractAttrNameFromCBhvr(cBhvr) !== "style.visibility") {
14972
+ continue;
14973
+ }
14974
+ const innerCTn = cBhvr?.["p:cTn"];
14975
+ if (!hasAfterEffectFlag(innerCTn)) {
14976
+ continue;
14977
+ }
14978
+ const toNode = node["p:to"];
14979
+ const strVal = toNode?.["p:strVal"]?.["@_val"];
14980
+ if (String(strVal ?? "").toLowerCase() !== "hidden") {
14981
+ continue;
14982
+ }
14983
+ const action = innerCTn?.["@_masterRel"] === "sameClick" ? "hideAfterAnimation" : "hideOnNextClick";
14984
+ return { action };
14985
+ }
14986
+ return void 0;
14987
+ }
14988
+ function extractAfterAnimationFromSubTnLst(cTn) {
14989
+ const subTnLst = cTn["p:subTnLst"];
14990
+ if (!subTnLst) {
14991
+ return void 0;
14992
+ }
14993
+ return findDimBehaviour(subTnLst) ?? findHideBehaviour(subTnLst);
14994
+ }
14995
+
14996
+ // pptx/core/services/animation-after-effect-write.ts
14997
+ function assertAfterAnimationClearSupported(effectCTn) {
14998
+ const shapeIds = /* @__PURE__ */ new Set();
14999
+ const checkTarget = (value) => {
15000
+ if (Array.isArray(value)) {
15001
+ value.forEach(checkTarget);
15002
+ return;
15003
+ }
15004
+ if (!isXmlObject3(value)) return;
15005
+ const shapeTarget = value["p:spTgt"];
15006
+ if (isXmlObject3(shapeTarget) && shapeTarget["@_spid"] !== void 0)
15007
+ shapeIds.add(String(shapeTarget["@_spid"]));
15008
+ if ([
15009
+ "p:bg",
15010
+ "p:txEl",
15011
+ "p:subSp",
15012
+ "p:graphicEl",
15013
+ "p:oleChartEl",
15014
+ "p:sndTgt",
15015
+ "p:inkTgt",
15016
+ "p:sldTgt"
15017
+ ].some((key2) => value[key2] !== void 0))
15018
+ throw new Error("Clearing after-animation supports whole-shape targets only");
15019
+ Object.values(value).forEach(checkTarget);
15020
+ };
15021
+ checkTarget(effectCTn["p:childTnLst"]);
15022
+ if (shapeIds.size > 1)
15023
+ throw new Error("Editing after-animation supports a single whole-shape target only");
15024
+ const sub = effectCTn["p:subTnLst"];
15025
+ if (!isXmlObject3(sub)) return;
15026
+ const countAfterFlags = (value) => {
15027
+ if (Array.isArray(value))
15028
+ return value.reduce((count, child14) => count + countAfterFlags(child14), 0);
15029
+ if (!isXmlObject3(value)) return 0;
15030
+ return Object.entries(value).reduce(
15031
+ (count, [key2, child14]) => count + (key2 === "@_afterEffect" && ["1", "true"].includes(String(child14)) ? 1 : countAfterFlags(child14)),
15032
+ 0
15033
+ );
15034
+ };
15035
+ for (const [key2, value] of Object.entries(sub)) {
15036
+ for (const node of ensureArray3(value)) {
15037
+ const flags = countAfterFlags(node);
15038
+ if (!flags) continue;
15039
+ if (flags !== 1 || !extractAfterAnimationFromSubTnLst({ "p:subTnLst": { [key2]: node } }))
15040
+ throw new Error("Cannot clear an unsupported native after-animation behavior");
15041
+ checkTarget(node);
15042
+ }
15043
+ }
15044
+ if (shapeIds.size > 1)
15045
+ throw new Error("Editing after-animation supports a single whole-shape target only");
15046
+ }
15047
+ function clearAfterAnimationBehavior(effectCTn) {
15048
+ const sub = effectCTn["p:subTnLst"];
15049
+ if (!isXmlObject3(sub)) return;
15050
+ for (const key2 of Object.keys(sub)) {
15051
+ const nodes = ensureArray3(sub[key2]);
15052
+ const remaining = nodes.filter(
15053
+ (node) => !extractAfterAnimationFromSubTnLst({ "p:subTnLst": { [key2]: node } })
15054
+ );
15055
+ if (remaining.length === nodes.length) continue;
15056
+ if (remaining.length === 0) delete sub[key2];
15057
+ else sub[key2] = remaining.length === 1 ? remaining[0] : remaining;
15058
+ }
15059
+ if (Object.keys(sub).length === 0) delete effectCTn["p:subTnLst"];
15060
+ }
15061
+ function applyAfterAnimationBehavior(effectCTn, anim, shapeId) {
15062
+ if (anim.afterAnimation === void 0) return;
15063
+ if (anim.afterAnimation === "none") {
15064
+ assertAfterAnimationClearSupported(effectCTn);
15065
+ clearAfterAnimationBehavior(effectCTn);
15066
+ return;
15067
+ }
15068
+ assertAfterAnimationClearSupported(effectCTn);
15069
+ clearAfterAnimationBehavior(effectCTn);
15070
+ delete effectCTn["@_afterEffect"];
15071
+ if (anim.afterAnimation === "dimToColor" && anim.afterAnimationColor) {
15072
+ appendAfterAnimationBehavior(effectCTn, buildDimSubTnLst(shapeId, anim.afterAnimationColor));
15073
+ return;
15074
+ }
15075
+ if (anim.afterAnimation === "hideAfterAnimation") {
15076
+ const entranceId = effectCTn["@_id"] !== void 0 ? String(effectCTn["@_id"]) : "0";
15077
+ appendAfterAnimationBehavior(effectCTn, buildHideSubTnLst(shapeId, "sameClick", entranceId));
15078
+ return;
15079
+ }
15080
+ if (anim.afterAnimation === "hideOnNextClick") {
15081
+ appendAfterAnimationBehavior(effectCTn, buildHideSubTnLst(shapeId, "nextClick"));
15082
+ }
15083
+ }
15084
+ function appendAfterAnimationBehavior(effect, addition) {
15085
+ const sub = isXmlObject3(effect["p:subTnLst"]) ? effect["p:subTnLst"] : {};
15086
+ for (const [key2, value] of Object.entries(addition)) {
15087
+ const nodes = [...ensureArray3(sub[key2]), ...ensureArray3(value)];
15088
+ sub[key2] = nodes.length === 1 ? nodes[0] : nodes;
15089
+ }
15090
+ effect["p:subTnLst"] = sub;
15091
+ }
15092
+ function buildDimSubTnLst(shapeId, colorHex) {
15093
+ const hex3 = colorHex.replace(/^#/u, "").toUpperCase();
15094
+ return {
15095
+ "p:animClr": {
15096
+ "@_clrSpc": "rgb",
15097
+ "@_dir": "cw",
15098
+ "p:cBhvr": {
15099
+ "@_override": "childStyle",
15100
+ "p:cTn": {
15101
+ "@_dur": "1",
15102
+ "@_fill": "hold",
15103
+ "@_display": "0",
15104
+ "@_masterRel": "nextClick",
15105
+ "@_afterEffect": "1"
15106
+ },
15107
+ "p:tgtEl": { "p:spTgt": { "@_spid": shapeId } },
15108
+ "p:attrNameLst": { "p:attrName": "ppt_c" }
15109
+ },
15110
+ "p:to": { "a:srgbClr": { "@_val": hex3 } }
15111
+ }
15112
+ };
15113
+ }
15114
+ function buildHideSubTnLst(shapeId, masterRel, entranceId) {
15115
+ const cTn = {
15116
+ "@_dur": "1",
15117
+ "@_fill": "hold",
15118
+ "@_display": "0",
15119
+ "@_masterRel": masterRel,
15120
+ "@_afterEffect": "1"
15121
+ };
15122
+ if (masterRel === "sameClick") {
15123
+ cTn["p:stCondLst"] = {
15124
+ "p:cond": {
15125
+ "@_evt": "end",
15126
+ "@_delay": "0",
15127
+ "p:tn": { "@_val": entranceId ?? "0" }
15128
+ }
15129
+ };
15130
+ }
15131
+ return {
15132
+ "p:set": {
15133
+ "p:cBhvr": {
15134
+ "@_override": "childStyle",
15135
+ "p:cTn": cTn,
15136
+ "p:tgtEl": { "p:spTgt": { "@_spid": shapeId } },
15137
+ "p:attrNameLst": { "p:attrName": "style.visibility" }
15138
+ },
15139
+ "p:to": { "p:strVal": { "@_val": "hidden" } }
15140
+ }
15141
+ };
15142
+ }
15143
+
15144
+ // pptx/core/services/editor-animation-after-effect.ts
15145
+ var AFTER_ANIMATION_VALUES = [
15146
+ "none",
15147
+ "dimToColor",
15148
+ "hideAfterAnimation",
15149
+ "hideOnNextClick"
15150
+ ];
15151
+ var DEFAULT_AFTER_ANIMATION_DIM_COLOR = "#808080";
15152
+ function setAfterAnimation(anims, elementId, action) {
15153
+ return upsert(anims, elementId, (cur) => {
15154
+ const value = action;
15155
+ return {
15156
+ ...cur,
15157
+ afterAnimation: value,
15158
+ afterAnimationColor: value === "dimToColor" ? cur.afterAnimationColor ?? DEFAULT_AFTER_ANIMATION_DIM_COLOR : void 0
15159
+ };
15160
+ });
15161
+ }
15162
+ function setAfterAnimationColor(anims, elementId, color) {
15163
+ const entry2 = animationFor(anims, elementId);
15164
+ if (!entry2 || (entry2.afterAnimation ?? entry2.nativeAfterAnimation) !== "dimToColor") {
15165
+ return [...anims];
15166
+ }
15167
+ return upsert(anims, elementId, (cur) => ({
15168
+ ...cur,
15169
+ afterAnimation: "dimToColor",
15170
+ afterAnimationColor: color
15171
+ }));
15172
+ }
15173
+ function getAfterAnimation(slideAnimations, elementId) {
15174
+ const entry2 = animationFor(slideAnimations, elementId);
15175
+ return entry2?.afterAnimation ?? entry2?.nativeAfterAnimation ?? "none";
15176
+ }
15177
+ function getAfterAnimationState(entry2) {
15178
+ const action = entry2?.afterAnimation ?? entry2?.nativeAfterAnimation ?? "none";
15179
+ return {
15180
+ action,
15181
+ color: action === "dimToColor" ? entry2?.afterAnimationColor ?? entry2?.nativeAfterAnimationColor : void 0,
15182
+ showColor: entry2?.afterAnimation !== void 0 || /^#[0-9a-f]{6}$/iu.test(entry2?.nativeAfterAnimationColor ?? "")
15183
+ };
15184
+ }
15185
+ function isNativeAfterAnimationOnly(entry2) {
15186
+ return Boolean(
15187
+ entry2?.nativeAfterAnimation && !entry2.entrance && !entry2.exit && !entry2.emphasis && !entry2.motionPath
15188
+ );
15189
+ }
15190
+ function mergeNativeAfterAnimationIntoEditorAnimations(nativeAnimations, animations, rawTiming) {
15191
+ for (const native of nativeAnimations ?? []) {
15192
+ const existing = native.targetId ? animationFor(animations, native.targetId) : void 0;
15193
+ const action = native.afterAnimationAction ?? (existing?.afterAnimation !== void 0 ? "none" : void 0);
15194
+ if ((nativeAnimations ?? []).filter(
15195
+ (other) => other.targetId === native.targetId && ["entr", "emph"].includes(other.presetClass ?? "")
15196
+ ).length !== 1)
15197
+ continue;
15198
+ if (!native.targetId || !action || !["entr", "emph"].includes(native.presetClass ?? "") || native.textTarget)
15199
+ continue;
15200
+ if (native.target && (native.target.type !== "shape" || native.target.backgroundOnly || native.target.subShapeId || native.target.graphicElement || native.target.oleChartElement))
15201
+ continue;
15202
+ try {
15203
+ if (rawTiming && native.target?.type === "shape" && indexEffectNodes(rawTiming).filter(
15204
+ (ref) => ref.spid === (native.target?.type === "shape" ? native.target.shapeId : void 0) && ["entr", "emph"].includes(ref.presetClass)
15205
+ ).length !== 1)
15206
+ continue;
15207
+ const effect = rawTiming ? indexEffectNodes(rawTiming).find(
15208
+ (ref) => String(ref.cTn["@_id"]) === String(native.nodeId) && native.target?.type === "shape" && ref.spid === native.target.shapeId
15209
+ ) : void 0;
15210
+ if (rawTiming && !effect) continue;
15211
+ assertAfterAnimationClearSupported(
15212
+ effect?.cTn ?? { "p:subTnLst": native.cTnAttributes?.["p:subTnLst"] }
15213
+ );
15214
+ } catch {
15215
+ continue;
15216
+ }
15217
+ let entry2 = animationFor(animations, native.targetId);
15218
+ if (!entry2) {
15219
+ entry2 = { elementId: native.targetId };
15220
+ animations.push(entry2);
15221
+ }
15222
+ if (entry2.nativeAfterAnimation !== void 0) continue;
15223
+ entry2.nativeAfterAnimation = action;
15224
+ entry2.nativeAfterAnimationColor = native.afterAnimationColor;
15225
+ }
15226
+ }
15227
+ function isNativeAfterAnimationFallback(entry2) {
15228
+ return entry2.nativeAfterAnimation !== void 0 && Object.entries(entry2).every(
15229
+ ([key2, value]) => value === void 0 || [
15230
+ "elementId",
15231
+ "nativeAfterAnimation",
15232
+ "nativeAfterAnimationColor",
15233
+ "soundRId",
15234
+ "soundPath",
15235
+ "soundName",
15236
+ "stopSound"
15237
+ ].includes(key2)
15238
+ );
15239
+ }
15240
+
14892
15241
  // pptx/core/services/slide-name.ts
14893
15242
  function asNode3(value) {
14894
15243
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
@@ -15390,6 +15739,8 @@ var PptxSlideLoaderService = class {
15390
15739
  }
15391
15740
  });
15392
15741
  reconcileAnimationTargets(elements2, nativeAnimations, animations, animationTimelineAnchors);
15742
+ animations ??= [];
15743
+ mergeNativeAfterAnimationIntoEditorAnimations(nativeAnimations, animations, rawTiming);
15393
15744
  mergeNativeSoundIntoEditorAnimations(nativeAnimations, animations);
15394
15745
  mergeNativeBuildTemplatesIntoEditorAnimations(nativeAnimations, animations);
15395
15746
  applyHiddenFlagFromRawXml(elements2);
@@ -15815,7 +16166,7 @@ var PptxEditorAnimationService = class {
15815
16166
  * @param animations - Editor animations to serialize.
15816
16167
  */
15817
16168
  applyEditorAnimations(slideNode, animations) {
15818
- const sequenced = [...animations].sort((left, right) => sortOrder(left) - sortOrder(right));
16169
+ const sequenced = animations.filter((entry2) => !isNativeAfterAnimationFallback(entry2)).sort((left, right) => sortOrder(left) - sortOrder(right));
15819
16170
  const sanitizedAnimations = sequenced.map((animation) => {
15820
16171
  const elementId = String(animation.elementId || "").trim();
15821
16172
  if (elementId.length === 0) {
@@ -15829,7 +16180,7 @@ var PptxEditorAnimationService = class {
15829
16180
  const orderIsTreeDerived = animation.orderFromTimeline !== void 0 && animation.order === animation.orderFromTimeline;
15830
16181
  const order = typeof animation.order === "number" && Number.isFinite(animation.order) && !orderIsTreeDerived ? Math.round(animation.order) : void 0;
15831
16182
  const repeatCount = typeof animation.repeatCount === "number" && Number.isFinite(animation.repeatCount) && animation.repeatCount > 0 ? animation.repeatCount : void 0;
15832
- if (!entrance && !exit2 && !emphasis && !animation.motionPath) {
16183
+ if (!entrance && !exit2 && !emphasis && !animation.motionPath && animation.afterAnimation === void 0) {
15833
16184
  return null;
15834
16185
  }
15835
16186
  return {
@@ -16266,63 +16617,6 @@ function parseAnimEffectFilter(childTnList) {
16266
16617
  };
16267
16618
  }
16268
16619
 
16269
- // pptx/core/services/native-animation-after-effect.ts
16270
- function hasAfterEffectFlag(cTn) {
16271
- const raw = cTn?.["@_afterEffect"];
16272
- return raw === "1" || raw === "true";
16273
- }
16274
- function extractSrgbHex(colorContainer) {
16275
- const srgb = colorContainer?.["a:srgbClr"];
16276
- const val = srgb?.["@_val"];
16277
- return val !== void 0 ? `#${String(val).toUpperCase()}` : void 0;
16278
- }
16279
- function findDimBehaviour(subTnLst) {
16280
- for (const node of ensureArray3(subTnLst["p:animClr"])) {
16281
- const cBhvr = node["p:cBhvr"];
16282
- if (extractAttrNameFromCBhvr(cBhvr) !== "ppt_c") {
16283
- continue;
16284
- }
16285
- if (!hasAfterEffectFlag(cBhvr?.["p:cTn"])) {
16286
- continue;
16287
- }
16288
- const toNode = node["p:to"];
16289
- const color = extractSrgbHex(toNode);
16290
- if (color) {
16291
- return { action: "dimToColor", color };
16292
- }
16293
- const colorRef = themeColorRefFromSchemeClr(toNode?.["a:schemeClr"]);
16294
- return colorRef ? { action: "dimToColor", colorRef } : { action: "dimToColor" };
16295
- }
16296
- return void 0;
16297
- }
16298
- function findHideBehaviour(subTnLst) {
16299
- for (const node of ensureArray3(subTnLst["p:set"])) {
16300
- const cBhvr = node["p:cBhvr"];
16301
- if (extractAttrNameFromCBhvr(cBhvr) !== "style.visibility") {
16302
- continue;
16303
- }
16304
- const innerCTn = cBhvr?.["p:cTn"];
16305
- if (!hasAfterEffectFlag(innerCTn)) {
16306
- continue;
16307
- }
16308
- const toNode = node["p:to"];
16309
- const strVal = toNode?.["p:strVal"]?.["@_val"];
16310
- if (String(strVal ?? "").toLowerCase() !== "hidden") {
16311
- continue;
16312
- }
16313
- const action = innerCTn?.["@_masterRel"] === "sameClick" ? "hideAfterAnimation" : "hideOnNextClick";
16314
- return { action };
16315
- }
16316
- return void 0;
16317
- }
16318
- function extractAfterAnimationFromSubTnLst(cTn) {
16319
- const subTnLst = cTn["p:subTnLst"];
16320
- if (!subTnLst) {
16321
- return void 0;
16322
- }
16323
- return findDimBehaviour(subTnLst) ?? findHideBehaviour(subTnLst);
16324
- }
16325
-
16326
16620
  // pptx/core/services/native-animation-cbhvr-attrs.ts
16327
16621
  var ADDITIVE_VALUES = /* @__PURE__ */ new Set(["base", "sum", "repl", "mult", "none"]);
16328
16622
  var ACCUMULATE_VALUES = /* @__PURE__ */ new Set(["none", "always"]);
@@ -16465,6 +16759,16 @@ function readTiming(cTn) {
16465
16759
  return {};
16466
16760
  }
16467
16761
  const timing = {};
16762
+ const starts = ensureArray3(cTn["p:stCondLst"]?.["p:cond"]);
16763
+ if (starts.length > 1 || cTn["@_dur"] === "indefinite" || cTn["@_repeatCount"] === "indefinite" || cTn["@_repeatDur"] !== void 0 || cTn["p:endCondLst"] !== void 0 || cTn["p:endSync"] !== void 0 || starts.some(
16764
+ (condition) => condition === null || typeof condition !== "object" || condition["@_evt"] !== void 0 || condition["@_tn"] !== void 0 || condition["@_rtn"] !== void 0 || condition["p:tn"] !== void 0 || condition["p:rtn"] !== void 0 || condition["p:tgtEl"] !== void 0 || condition["@_delay"] !== void 0 && !/^\d+$/u.test(String(condition["@_delay"])) || condition["@_delay"] === "indefinite"
16765
+ )) {
16766
+ timing.unsupportedSetTiming = true;
16767
+ }
16768
+ const fill = cTn["@_fill"];
16769
+ if (fill === "remove" || fill === "freeze" || fill === "hold" || fill === "transition") {
16770
+ timing.fill = fill;
16771
+ }
16468
16772
  const durationMs = readTimingAttr(cTn["@_dur"]);
16469
16773
  if (durationMs !== void 0) {
16470
16774
  timing.durationMs = durationMs;
@@ -16841,6 +17145,7 @@ function buildTimingNodeAnimation(cTn, trigger, group) {
16841
17145
  commandString: cmdInfo.commandString,
16842
17146
  textTarget: textTarget ?? void 0,
16843
17147
  cTnAttributes: roundTripAttrs,
17148
+ unsupportedOpacitySetTiming: cTn["@_dur"] === "indefinite" || cTn["p:endSync"] !== void 0 || void 0,
16844
17149
  afterEffect: afterEffectFlag,
16845
17150
  afterAnimationAction: parsedAfterAnimation?.action,
16846
17151
  afterAnimationColor: parsedAfterAnimation?.color,
@@ -17578,75 +17883,6 @@ function isTransitionElementName(localName15) {
17578
17883
  return P14_TRANSITION_TYPES.has(localName15) || localName15 === "prstTrans" || localName15 === "morph";
17579
17884
  }
17580
17885
 
17581
- // pptx/core/services/animation-after-effect-write.ts
17582
- function applyAfterAnimationBehavior(effectCTn, anim, shapeId) {
17583
- delete effectCTn["p:subTnLst"];
17584
- delete effectCTn["@_afterEffect"];
17585
- if (anim.afterAnimation === "dimToColor" && anim.afterAnimationColor) {
17586
- effectCTn["p:subTnLst"] = buildDimSubTnLst(shapeId, anim.afterAnimationColor);
17587
- return;
17588
- }
17589
- if (anim.afterAnimation === "hideAfterAnimation") {
17590
- const entranceId = effectCTn["@_id"] !== void 0 ? String(effectCTn["@_id"]) : "0";
17591
- effectCTn["p:subTnLst"] = buildHideSubTnLst(shapeId, "sameClick", entranceId);
17592
- return;
17593
- }
17594
- if (anim.afterAnimation === "hideOnNextClick") {
17595
- effectCTn["p:subTnLst"] = buildHideSubTnLst(shapeId, "nextClick");
17596
- }
17597
- }
17598
- function buildDimSubTnLst(shapeId, colorHex) {
17599
- const hex3 = colorHex.replace(/^#/u, "").toUpperCase();
17600
- return {
17601
- "p:animClr": {
17602
- "@_clrSpc": "rgb",
17603
- "@_dir": "cw",
17604
- "p:cBhvr": {
17605
- "@_override": "childStyle",
17606
- "p:cTn": {
17607
- "@_dur": "1",
17608
- "@_fill": "hold",
17609
- "@_display": "0",
17610
- "@_masterRel": "nextClick",
17611
- "@_afterEffect": "1"
17612
- },
17613
- "p:tgtEl": { "p:spTgt": { "@_spid": shapeId } },
17614
- "p:attrNameLst": { "p:attrName": "ppt_c" }
17615
- },
17616
- "p:to": { "a:srgbClr": { "@_val": hex3 } }
17617
- }
17618
- };
17619
- }
17620
- function buildHideSubTnLst(shapeId, masterRel, entranceId) {
17621
- const cTn = {
17622
- "@_dur": "1",
17623
- "@_fill": "hold",
17624
- "@_display": "0",
17625
- "@_masterRel": masterRel,
17626
- "@_afterEffect": "1"
17627
- };
17628
- if (masterRel === "sameClick") {
17629
- cTn["p:stCondLst"] = {
17630
- "p:cond": {
17631
- "@_evt": "end",
17632
- "@_delay": "0",
17633
- "p:tn": { "@_val": entranceId ?? "0" }
17634
- }
17635
- };
17636
- }
17637
- return {
17638
- "p:set": {
17639
- "p:cBhvr": {
17640
- "@_override": "childStyle",
17641
- "p:cTn": cTn,
17642
- "p:tgtEl": { "p:spTgt": { "@_spid": shapeId } },
17643
- "p:attrNameLst": { "p:attrName": "style.visibility" }
17644
- },
17645
- "p:to": { "p:strVal": { "@_val": "hidden" } }
17646
- }
17647
- };
17648
- }
17649
-
17650
17886
  // pptx/core/services/animation-behavior-captures.json
17651
17887
  var animation_behavior_captures_default = {
17652
17888
  entr: {
@@ -35706,6 +35942,33 @@ function updateEffectNodeAttributes(cTn, anim, presetClass, shapeId, allocateId)
35706
35942
  applySoundToEffectCTn(cTn, anim);
35707
35943
  }
35708
35944
  function surgicallyUpdateTimingTree(rawTiming, animations) {
35945
+ const sourceRefs = indexEffectNodes(rawTiming);
35946
+ for (const entry2 of animations.filter((animation) => animation.afterAnimation !== void 0)) {
35947
+ if (sourceRefs.filter(
35948
+ (ref) => ref.spid === entry2.elementId && ["entr", "emph"].includes(ref.presetClass)
35949
+ ).length > 1)
35950
+ throw new Error(
35951
+ "Cannot edit an ambiguous native after-animation target with multiple effects"
35952
+ );
35953
+ }
35954
+ const explicitClears = new Map(
35955
+ animations.filter((a) => a.afterAnimation !== void 0 && !hasAuthoredAnimationEffect(a)).map((a) => [a.elementId, a])
35956
+ );
35957
+ const clearRefs = sourceRefs.filter(
35958
+ (ref) => ref.spid && explicitClears.has(ref.spid) && (ref.presetClass === "entr" || ref.presetClass === "emph")
35959
+ );
35960
+ for (const target of explicitClears.keys()) {
35961
+ if (!clearRefs.some((ref) => ref.spid === target))
35962
+ throw new Error("Cannot edit after-animation without a supported native effect");
35963
+ if (clearRefs.filter((ref) => ref.spid === target).length > 1)
35964
+ throw new Error(
35965
+ "Cannot clear an ambiguous native after-animation target with multiple effects"
35966
+ );
35967
+ }
35968
+ clearRefs.forEach((ref) => assertAfterAnimationClearSupported(ref.cTn));
35969
+ clearRefs.forEach(
35970
+ (ref) => applyAfterAnimationBehavior(ref.cTn, explicitClears.get(ref.spid), ref.spid)
35971
+ );
35709
35972
  const desired = collectDesiredEffects(animations);
35710
35973
  const previouslyOwned = readOwnedEffectKeys(rawTiming);
35711
35974
  if (desired.length === 0 && previouslyOwned.size === 0) {
@@ -35800,9 +36063,11 @@ var PptxAnimationWriteService = class {
35800
36063
  const validAnimations = animations.filter((a) => a.entrance || a.exit || a.emphasis || a.motionPath).sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
35801
36064
  if (existingRawTiming) {
35802
36065
  const cloned = typeof structuredClone === "function" ? structuredClone(existingRawTiming) : JSON.parse(JSON.stringify(existingRawTiming));
35803
- return surgicallyUpdateTimingTree(cloned, validAnimations);
36066
+ return surgicallyUpdateTimingTree(cloned, animations);
35804
36067
  }
35805
36068
  if (validAnimations.length === 0) {
36069
+ if (animations.some((entry2) => entry2.afterAnimation !== void 0))
36070
+ throw new Error("Cannot edit after-animation without a supported native effect");
35806
36071
  return void 0;
35807
36072
  }
35808
36073
  this.nextId = 1;
@@ -35977,6 +36242,110 @@ function capturedPresetNativeAnimation(presetClass, presetId, presetSubtype, dur
35977
36242
  return parsed ? { ...parsed } : void 0;
35978
36243
  }
35979
36244
 
36245
+ // pptx/core/services/editor-animation-after-effect-precedence.ts
36246
+ function applyAfterAnimationFromEditorList(nativeAnimations, editorAnimations) {
36247
+ if (!editorAnimations || editorAnimations.length === 0) {
36248
+ return [...nativeAnimations];
36249
+ }
36250
+ const byElement = /* @__PURE__ */ new Map();
36251
+ for (const ea of editorAnimations) {
36252
+ if (ea.afterAnimation !== void 0) {
36253
+ byElement.set(ea.elementId, ea);
36254
+ }
36255
+ }
36256
+ if (byElement.size === 0) {
36257
+ return [...nativeAnimations];
36258
+ }
36259
+ for (const [id, editor] of byElement) {
36260
+ const matches = nativeAnimations.filter(
36261
+ (native) => native.targetId === id && ["entr", "emph"].includes(native.presetClass ?? "")
36262
+ );
36263
+ if (matches.length > 1)
36264
+ throw new Error(
36265
+ "Cannot edit an ambiguous native after-animation target with multiple effects"
36266
+ );
36267
+ if (matches.length === 0 && !hasAuthoredAnimationEffect(editor))
36268
+ throw new Error("Cannot edit after-animation without a supported native effect");
36269
+ for (const native of matches) {
36270
+ if (native.textTarget || native.target && (native.target.type !== "shape" || native.target.backgroundOnly || native.target.subShapeId || native.target.graphicElement || native.target.oleChartElement))
36271
+ throw new Error("Editing after-animation supports whole-shape targets only");
36272
+ assertAfterAnimationClearSupported({
36273
+ "p:subTnLst": native.cTnAttributes?.["p:subTnLst"]
36274
+ });
36275
+ }
36276
+ }
36277
+ return nativeAnimations.map((anim) => {
36278
+ if (!anim.targetId || !["entr", "emph"].includes(anim.presetClass ?? "")) {
36279
+ return anim;
36280
+ }
36281
+ const ea = byElement.get(anim.targetId);
36282
+ if (!ea) {
36283
+ return anim;
36284
+ }
36285
+ return {
36286
+ ...anim,
36287
+ afterAnimationAction: ea.afterAnimation === "none" ? void 0 : ea.afterAnimation,
36288
+ afterAnimationColor: ea.afterAnimationColor,
36289
+ // The editor's own model has no theme-colour-ref concept (it always
36290
+ // writes a concrete hex); clear a native scheme ref so a stale one
36291
+ // never survives an edit that overrides the colour.
36292
+ afterAnimationColorRef: void 0
36293
+ };
36294
+ });
36295
+ }
36296
+
36297
+ // pptx/core/services/animation-opacity-set.ts
36298
+ var holds = (fill) => fill === "hold" || fill === "freeze";
36299
+ function resolveOpacitySet(anim) {
36300
+ if (anim.unsupportedOpacitySetTiming || anim.endConditions?.length || anim.rawEndCondLst !== void 0 || anim.cTnAttributes?.["@_tmFilter"] !== void 0 || anim.cTnAttributes?.["@_endSync"] !== void 0)
36301
+ return void 0;
36302
+ if (anim.afterAnimationAction !== void 0) return void 0;
36303
+ if (anim.target?.type === "shape" && (anim.target.backgroundOnly || anim.target.subShapeId || anim.target.graphicElement || anim.target.oleChartElement))
36304
+ return void 0;
36305
+ if (anim.textTarget || anim.target && anim.target.type !== "shape" || anim.trigger === "onHover")
36306
+ return void 0;
36307
+ if (anim.presetClass !== "emph" || anim.autoReverse || (anim.repeatCount ?? 1) !== 1 || anim.repeatDurMs !== void 0)
36308
+ return void 0;
36309
+ const behaviors = anim.behaviors;
36310
+ if (!behaviors?.length || behaviors.some(
36311
+ (b) => b.kind !== "set" && !(b.kind === "animEffect" && b.filter === "image" && (b.transition === void 0 || b.transition === "none"))
36312
+ ))
36313
+ return void 0;
36314
+ const sets = behaviors.filter((b) => b.kind === "set");
36315
+ if (sets.length !== 1) return void 0;
36316
+ const hints = behaviors.filter((b) => b.kind === "animEffect");
36317
+ if (hints.length > 1) return void 0;
36318
+ const hint = hints[0];
36319
+ if (hint && (hint.timing.unsupportedSetTiming || hint.timing.autoReverse || (hint.timing.repeatCount ?? 1) !== 1 || hint.timing.tmFilter !== void 0))
36320
+ return void 0;
36321
+ const set = sets[0];
36322
+ if (set.attrNames.length !== 1 || set.attrNames[0] !== "style.opacity" || set.additive !== void 0 && !["base", "repl", "none"].includes(set.additive))
36323
+ return void 0;
36324
+ const raw = set.value;
36325
+ if (typeof raw !== "number" && (typeof raw !== "string" || !/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/u.test(raw.trim())))
36326
+ return void 0;
36327
+ const value = Number(raw);
36328
+ const { timing } = set;
36329
+ if (timing.unsupportedSetTiming) return void 0;
36330
+ if (anim.fill === "transition" || timing.fill === "transition") return void 0;
36331
+ if (!Number.isFinite(value) || value < 0 || value > 1 || timing.autoReverse || (timing.repeatCount ?? 1) !== 1 || timing.tmFilter !== void 0)
36332
+ return void 0;
36333
+ const delayMs = timing.delayMs ?? 0;
36334
+ const durationMs = timing.durationMs;
36335
+ if (!Number.isFinite(delayMs) || delayMs < 0 || durationMs === void 0 || !Number.isFinite(durationMs) || durationMs < 0)
36336
+ return void 0;
36337
+ const effectDuration = anim.durationMs ?? delayMs + durationMs;
36338
+ if (!Number.isFinite(effectDuration) || effectDuration < delayMs || (anim.speedPct ?? 100) !== 100)
36339
+ return void 0;
36340
+ const holdEndState = holds(anim.fill) && holds(timing.fill);
36341
+ return {
36342
+ value,
36343
+ delayMs,
36344
+ durationMs: holds(timing.fill) ? effectDuration - delayMs : Math.min(durationMs, effectDuration - delayMs),
36345
+ holdEndState
36346
+ };
36347
+ }
36348
+
35980
36349
  // pptx/core/utils/xml-namespace-declarations.ts
35981
36350
  var WELL_KNOWN_NAMESPACES = {
35982
36351
  a: "http://schemas.openxmlformats.org/drawingml/2006/main",
@@ -50465,8 +50834,8 @@ function buildDefRPr(style, existing, resolveColor2) {
50465
50834
  return rPr;
50466
50835
  }
50467
50836
  function applyChartAxisTitleStyleToXml(axisNode, style, getLocalName2, resolveColor2) {
50468
- const hasAny = style.fontFamily !== void 0 || style.fontSize !== void 0 || style.fontBold !== void 0 || style.fontColor !== void 0;
50469
- if (!hasAny) {
50837
+ const hasAny2 = style.fontFamily !== void 0 || style.fontSize !== void 0 || style.fontBold !== void 0 || style.fontColor !== void 0;
50838
+ if (!hasAny2) {
50470
50839
  return;
50471
50840
  }
50472
50841
  const titleKey = findKey(axisNode, "title", getLocalName2);
@@ -52185,8 +52554,8 @@ function applyRotationFlipToRawNode(node, rotation, flipH, flipV) {
52185
52554
  const spPrKey = findChildKey(node, "spPr");
52186
52555
  const container = spPrKey ? node[spPrKey] ?? node : node;
52187
52556
  const xfrmKey = findChildKey(container, "xfrm");
52188
- const hasAny = Boolean(rotation) || Boolean(flipH) || Boolean(flipV);
52189
- if (!xfrmKey && !hasAny) {
52557
+ const hasAny2 = Boolean(rotation) || Boolean(flipH) || Boolean(flipV);
52558
+ if (!xfrmKey && !hasAny2) {
52190
52559
  return;
52191
52560
  }
52192
52561
  const xfrm = xfrmKey ? container[xfrmKey] : {};
@@ -52223,24 +52592,24 @@ function hexVal(hex3) {
52223
52592
  }
52224
52593
  function buildRunProps(para) {
52225
52594
  const rPr = {};
52226
- let hasAny = false;
52595
+ let hasAny2 = false;
52227
52596
  if (para.fontSize !== void 0) {
52228
52597
  rPr["@_sz"] = String(Math.round(para.fontSize * 100));
52229
- hasAny = true;
52598
+ hasAny2 = true;
52230
52599
  }
52231
52600
  if (para.bold) {
52232
52601
  rPr["@_b"] = "1";
52233
- hasAny = true;
52602
+ hasAny2 = true;
52234
52603
  }
52235
52604
  if (para.italic) {
52236
52605
  rPr["@_i"] = "1";
52237
- hasAny = true;
52606
+ hasAny2 = true;
52238
52607
  }
52239
52608
  if (para.color) {
52240
52609
  rPr["a:solidFill"] = { "a:srgbClr": { "@_val": hexVal(para.color) } };
52241
- hasAny = true;
52610
+ hasAny2 = true;
52242
52611
  }
52243
- return hasAny ? rPr : void 0;
52612
+ return hasAny2 ? rPr : void 0;
52244
52613
  }
52245
52614
  function buildParagraphNode(para) {
52246
52615
  const node = {};
@@ -54132,7 +54501,7 @@ function forceSvgStretchFill(svgText) {
54132
54501
 
54133
54502
  // pptx/core/core/runtime/image-a14-effects-model.ts
54134
54503
  function applyA14ExtensionToEffects(effects, a14) {
54135
- let hasAny = false;
54504
+ let hasAny2 = false;
54136
54505
  if (a14.artisticEffect !== void 0) {
54137
54506
  effects.artisticEffect = a14.artisticEffect;
54138
54507
  if (a14.originalImageRelId !== void 0) {
@@ -54144,15 +54513,15 @@ function applyA14ExtensionToEffects(effects, a14) {
54144
54513
  if (a14.artisticParams) {
54145
54514
  effects.artisticParams = a14.artisticParams;
54146
54515
  }
54147
- hasAny = true;
54516
+ hasAny2 = true;
54148
54517
  }
54149
54518
  if (a14.backgroundRemoval) {
54150
54519
  effects.backgroundRemoval = a14.backgroundRemoval;
54151
- hasAny = true;
54520
+ hasAny2 = true;
54152
54521
  }
54153
54522
  if (a14.originalImageRelId !== void 0) {
54154
54523
  effects.originalImageRelId = a14.originalImageRelId;
54155
- hasAny = true;
54524
+ hasAny2 = true;
54156
54525
  }
54157
54526
  const corrections = {};
54158
54527
  if (a14.sharpenSoften) {
@@ -54175,9 +54544,9 @@ function applyA14ExtensionToEffects(effects, a14) {
54175
54544
  if (a14.originalImageRelId !== void 0) {
54176
54545
  effects.prerenderedCorrections = corrections;
54177
54546
  }
54178
- hasAny = true;
54547
+ hasAny2 = true;
54179
54548
  }
54180
- return hasAny;
54549
+ return hasAny2;
54181
54550
  }
54182
54551
 
54183
54552
  // pptx/core/core/runtime/template-element-baselines.ts
@@ -55461,13 +55830,13 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55461
55830
  return null;
55462
55831
  }
55463
55832
  const effects = {};
55464
- let hasAny = false;
55833
+ let hasAny2 = false;
55465
55834
  const brightRaw = blip["@_bright"] ?? blip["@_brt"];
55466
55835
  if (brightRaw !== null) {
55467
55836
  const val = parseInt(String(brightRaw));
55468
55837
  if (Number.isFinite(val)) {
55469
55838
  effects.brightness = val / 1e3;
55470
- hasAny = true;
55839
+ hasAny2 = true;
55471
55840
  }
55472
55841
  }
55473
55842
  const contrastRaw = blip["@_contrast"] ?? blip["@_cont"];
@@ -55475,7 +55844,7 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55475
55844
  const val = parseInt(String(contrastRaw));
55476
55845
  if (Number.isFinite(val)) {
55477
55846
  effects.contrast = val / 1e3;
55478
- hasAny = true;
55847
+ hasAny2 = true;
55479
55848
  }
55480
55849
  }
55481
55850
  const colorEffects = parseImageColorEffects(
@@ -55485,12 +55854,12 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55485
55854
  );
55486
55855
  Object.assign(effects, colorEffects);
55487
55856
  if (Object.keys(colorEffects).length > 0) {
55488
- hasAny = true;
55857
+ hasAny2 = true;
55489
55858
  }
55490
55859
  const alphaEffects = parseImageAlphaEffects(blip, (node) => this.parseColor(node));
55491
55860
  Object.assign(effects, alphaEffects);
55492
55861
  if (Object.keys(alphaEffects).length > 0) {
55493
- hasAny = true;
55862
+ hasAny2 = true;
55494
55863
  }
55495
55864
  const lumNode = blip["a:lum"];
55496
55865
  if (lumNode) {
@@ -55510,7 +55879,7 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55510
55879
  }
55511
55880
  }
55512
55881
  effects.lum = lumEffect;
55513
- hasAny = true;
55882
+ hasAny2 = true;
55514
55883
  }
55515
55884
  const hslNode = blip["a:hsl"];
55516
55885
  if (hslNode) {
@@ -55537,7 +55906,7 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55537
55906
  }
55538
55907
  }
55539
55908
  effects.hsl = hslEffect;
55540
- hasAny = true;
55909
+ hasAny2 = true;
55541
55910
  }
55542
55911
  const tintNode = blip["a:tint"];
55543
55912
  if (tintNode) {
@@ -55557,7 +55926,7 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55557
55926
  }
55558
55927
  }
55559
55928
  effects.tint = tintEffect;
55560
- hasAny = true;
55929
+ hasAny2 = true;
55561
55930
  }
55562
55931
  const fillOverlay = blip["a:fillOverlay"];
55563
55932
  if (fillOverlay) {
@@ -55584,7 +55953,7 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55584
55953
  ...resolvedGradient ? { resolvedGradient } : {},
55585
55954
  ...resolvedPattern ? { resolvedPattern } : {}
55586
55955
  };
55587
- hasAny = true;
55956
+ hasAny2 = true;
55588
55957
  }
55589
55958
  const blurNode = blip["a:blur"];
55590
55959
  if (blurNode) {
@@ -55602,16 +55971,16 @@ var PptxHandlerRuntime5 = class extends PptxHandlerRuntime4 {
55602
55971
  blurEffect.grow = s === "1" || s === "true";
55603
55972
  }
55604
55973
  effects.blur = blurEffect;
55605
- hasAny = true;
55974
+ hasAny2 = true;
55606
55975
  }
55607
55976
  const extLst = xmlChild(blip, "a:extLst");
55608
55977
  if (extLst) {
55609
55978
  const a14 = parseA14ImageExtension(this.ensureArray(extLst["a:ext"]));
55610
55979
  if (a14 && applyA14ExtensionToEffects(effects, a14)) {
55611
- hasAny = true;
55980
+ hasAny2 = true;
55612
55981
  }
55613
55982
  }
55614
- return hasAny ? effects : null;
55983
+ return hasAny2 ? effects : null;
55615
55984
  }
55616
55985
  /**
55617
55986
  * Resolve a blip `a:fillOverlay/a:gradFill` to the structured gradient a
@@ -57189,8 +57558,8 @@ function buildTextRunEffectListXml(style, parseColor) {
57189
57558
  const hasTextHsl = typeof style.textHslHue === "number" || typeof style.textHslSaturation === "number" || typeof style.textHslLuminance === "number";
57190
57559
  const hasTextClrChange = Boolean(style.textClrChangeFrom) && Boolean(style.textClrChangeTo);
57191
57560
  const hasTextDuotone = Boolean(style.textDuotone);
57192
- const hasAny = hasTextShadow || hasTextInnerShadow || hasTextPresetShadow || hasTextGlow || hasTextReflection || hasTextBlur || hasTextSoftEdge || hasTextAlphaModFix || hasTextAlphaMod || hasTextHsl || hasTextClrChange || hasTextDuotone;
57193
- if (!hasAny) {
57561
+ const hasAny2 = hasTextShadow || hasTextInnerShadow || hasTextPresetShadow || hasTextGlow || hasTextReflection || hasTextBlur || hasTextSoftEdge || hasTextAlphaModFix || hasTextAlphaMod || hasTextHsl || hasTextClrChange || hasTextDuotone;
57562
+ if (!hasAny2) {
57194
57563
  return void 0;
57195
57564
  }
57196
57565
  const effectLst = {};
@@ -61335,6 +61704,82 @@ function writeTableColumnWidths(tbl, columnWidths) {
61335
61704
  }
61336
61705
  }
61337
61706
 
61707
+ // pptx/core/core/runtime/table-style-change-cell-clear.ts
61708
+ var FILL_KEYS = [
61709
+ "a:noFill",
61710
+ "a:solidFill",
61711
+ "a:gradFill",
61712
+ "a:blipFill",
61713
+ "a:pattFill",
61714
+ "a:grpFill"
61715
+ ];
61716
+ var LINE_KEYS = [
61717
+ ["a:lnL", ["borderLeftWidth", "borderLeftColor", "borderLeftDash"]],
61718
+ ["a:lnR", ["borderRightWidth", "borderRightColor", "borderRightDash"]],
61719
+ ["a:lnT", ["borderTopWidth", "borderTopColor", "borderTopDash"]],
61720
+ ["a:lnB", ["borderBottomWidth", "borderBottomColor", "borderBottomDash"]],
61721
+ ["a:lnTlToBr", ["borderDiagDownWidth", "borderDiagDownColor"]],
61722
+ ["a:lnBlToTr", ["borderDiagUpWidth", "borderDiagUpColor"]]
61723
+ ];
61724
+ var FILL_FIELDS = [
61725
+ "fillMode",
61726
+ "backgroundColor",
61727
+ "gradientFillStops",
61728
+ "patternFillPreset",
61729
+ "backgroundImageFillPath",
61730
+ "backgroundImageFillData"
61731
+ ];
61732
+ function normaliseStyleId(id) {
61733
+ const text = typeof id === "string" || typeof id === "number" ? String(id) : "";
61734
+ const trimmed2 = text.trim().toUpperCase();
61735
+ if (!trimmed2) {
61736
+ return "";
61737
+ }
61738
+ return trimmed2.startsWith("{") ? trimmed2 : `{${trimmed2}}`;
61739
+ }
61740
+ function xmlTableStyleId(tblPr) {
61741
+ if (!tblPr || typeof tblPr !== "object") {
61742
+ return "";
61743
+ }
61744
+ const props = tblPr;
61745
+ const node = props["a:tableStyleId"];
61746
+ const spec = normaliseStyleId(
61747
+ node && typeof node === "object" ? node["#text"] : node
61748
+ );
61749
+ if (spec) {
61750
+ return spec;
61751
+ }
61752
+ const legacy = props["a:tblStyle"];
61753
+ return normaliseStyleId(legacy?.["@_val"] || props["@_tblStyle"]);
61754
+ }
61755
+ function tableStyleIdChanged(tblPr, nextStyleId) {
61756
+ if (nextStyleId === void 0) {
61757
+ return false;
61758
+ }
61759
+ return normaliseStyleId(nextStyleId) !== xmlTableStyleId(tblPr);
61760
+ }
61761
+ var hasAny = (style, keys) => keys.some((key2) => style?.[key2] !== void 0);
61762
+ function clearCellFormattingForStyleChange(xmlCell, style) {
61763
+ const tcPr = xmlCell["a:tcPr"];
61764
+ if (!tcPr || typeof tcPr !== "object") {
61765
+ return;
61766
+ }
61767
+ const props = tcPr;
61768
+ if (!hasAny(style, FILL_FIELDS)) {
61769
+ for (const key2 of FILL_KEYS) {
61770
+ delete props[key2];
61771
+ }
61772
+ }
61773
+ for (const [key2, fields] of LINE_KEYS) {
61774
+ if (!hasAny(style, fields)) {
61775
+ delete props[key2];
61776
+ }
61777
+ }
61778
+ if (!style?.cell3D) {
61779
+ delete props["a:cell3D"];
61780
+ }
61781
+ }
61782
+
61338
61783
  // pptx/core/core/runtime/table-paragraph-save-order.ts
61339
61784
  var CONTENT_TAGS = /* @__PURE__ */ new Set(["a:r", "a:br", "a:fld"]);
61340
61785
  var paragraphOrders = /* @__PURE__ */ new WeakMap();
@@ -62267,6 +62712,7 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
62267
62712
  if (!tbl) {
62268
62713
  return;
62269
62714
  }
62715
+ const styleChanged = tableData.clearDirectCellFormatting === true || tableStyleIdChanged(tbl["a:tblPr"], tableData.tableStyleId);
62270
62716
  serializeTablePropertyFlags(tbl, tableData);
62271
62717
  writeTablePropertiesOwnFillAndEffects(tbl["a:tblPr"], tableData);
62272
62718
  const xmlRows = this.ensureArray(tbl["a:tr"]);
@@ -62298,6 +62744,9 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
62298
62744
  if (cell.text !== void 0) {
62299
62745
  this.writeTableCellText(xmlCell, cell.text);
62300
62746
  }
62747
+ if (styleChanged) {
62748
+ clearCellFormattingForStyleChange(xmlCell, cell.style);
62749
+ }
62301
62750
  if (cell.style) {
62302
62751
  this.writeTableCellStyle(xmlCell, cell.style, cell.paragraphs);
62303
62752
  }
@@ -62321,6 +62770,9 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
62321
62770
  if (cell.text !== void 0) {
62322
62771
  this.writeTableCellText(xmlCell, cell.text);
62323
62772
  }
62773
+ if (styleChanged) {
62774
+ clearCellFormattingForStyleChange(xmlCell, cell.style);
62775
+ }
62324
62776
  if (cell.style) {
62325
62777
  this.writeTableCellStyle(xmlCell, cell.style, cell.paragraphs);
62326
62778
  }
@@ -72618,6 +73070,10 @@ var PptxHandlerRuntime60 = class _PptxHandlerRuntime extends PptxHandlerRuntime5
72618
73070
  const pathLst = custGeom["a:pathLst"];
72619
73071
  if (isNonEmpty(pathLst)) {
72620
73072
  result.pathLstXml = pathLst;
73073
+ const pathCommandOrder = readPathListCommandOrder(pathLst);
73074
+ if (pathCommandOrder) {
73075
+ result.pathCommandOrder = pathCommandOrder;
73076
+ }
72621
73077
  }
72622
73078
  return Object.keys(result).length > 0 ? result : void 0;
72623
73079
  }
@@ -73491,7 +73947,7 @@ var PptxHandlerRuntime64 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
73491
73947
  return void 0;
73492
73948
  }
73493
73949
  const locks = {};
73494
- let hasAny = false;
73950
+ let hasAny2 = false;
73495
73951
  const boolAttr2 = (attr5) => {
73496
73952
  const raw = spLocks[attr5];
73497
73953
  if (raw === void 0) {
@@ -73504,7 +73960,7 @@ var PptxHandlerRuntime64 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
73504
73960
  const val = boolAttr2(attr5);
73505
73961
  if (val !== void 0) {
73506
73962
  fn(val);
73507
- hasAny = true;
73963
+ hasAny2 = true;
73508
73964
  }
73509
73965
  };
73510
73966
  set("@_noGrp", (v) => {
@@ -73543,7 +73999,7 @@ var PptxHandlerRuntime64 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
73543
73999
  set("@_noCrop", (v) => {
73544
74000
  locks.noCrop = v;
73545
74001
  });
73546
- return hasAny ? locks : void 0;
74002
+ return hasAny2 ? locks : void 0;
73547
74003
  }
73548
74004
  /**
73549
74005
  * Parse the `@txBox` attribute from a `p:cNvSpPr` node. Returns `true` /
@@ -81809,6 +82265,8 @@ var PptxHandlerRuntime95 = class extends PptxHandlerRuntime94 {
81809
82265
  };
81810
82266
 
81811
82267
  // pptx/core/core/runtime/PptxHandlerRuntimePresentationStructure.ts
82268
+ var XSD_INT_MIN = -2147483648;
82269
+ var XSD_INT_MAX = 2147483647;
81812
82270
  var PptxHandlerRuntime96 = class extends PptxHandlerRuntime95 {
81813
82271
  parseEditorAnimations(slideXml3) {
81814
82272
  return this.editorAnimationService.parseEditorAnimations(slideXml3);
@@ -81991,6 +82449,22 @@ var PptxHandlerRuntime96 = class extends PptxHandlerRuntime95 {
81991
82449
  const lexical = String(raw).trim().toLowerCase();
81992
82450
  return lexical !== "0" && lexical !== "false";
81993
82451
  }
82452
+ /**
82453
+ * Extract `p:presentation/@firstSlideNum` (ECMA-376 §19.2.1.26, an
82454
+ * `xsd:int`). `undefined` when absent, not an integer, or outside the
82455
+ * `xsd:int` range (-2147483648 to 2147483647, which also rejects digit
82456
+ * strings too long to parse), so the spec default (`1`) is never forced
82457
+ * onto the typed model.
82458
+ */
82459
+ extractFirstSlideNumber() {
82460
+ const pres = this.presentationData?.["p:presentation"];
82461
+ const lexical = String(pres?.["@_firstSlideNum"] ?? "").trim();
82462
+ if (!/^[+-]?\d+$/.test(lexical)) {
82463
+ return void 0;
82464
+ }
82465
+ const value = Number(lexical);
82466
+ return value >= XSD_INT_MIN && value <= XSD_INT_MAX ? value : void 0;
82467
+ }
81994
82468
  };
81995
82469
 
81996
82470
  // pptx/core/core/runtime/PptxHandlerRuntimeEmbeddedFonts.ts
@@ -82623,7 +83097,7 @@ var PptxHandlerRuntime99 = class extends PptxHandlerRuntime98 {
82623
83097
  this.commentAuthorDetails.size > 0 ? Array.from(this.commentAuthorDetails.values()) : void 0
82624
83098
  ).withModernCommentAuthors(
82625
83099
  this.modernCommentAuthors.size > 0 ? Array.from(this.modernCommentAuthors.values()) : void 0
82626
- ).withConformance(this.isStrictOoxml ? "strict" : "transitional").withEmbedTrueTypeFonts(embedTrueTypeFonts).withDefaultTextStyle(defaultTextStyle).build();
83100
+ ).withConformance(this.isStrictOoxml ? "strict" : "transitional").withEmbedTrueTypeFonts(embedTrueTypeFonts).withFirstSlideNumber(this.extractFirstSlideNumber()).withDefaultTextStyle(defaultTextStyle).build();
82627
83101
  }
82628
83102
  /**
82629
83103
  * Walk the raw XML of every slide to find the highest numeric `@_id`
@@ -86679,7 +87153,10 @@ var PptxHandler = class extends PptxHandlerCore {
86679
87153
  const imported = deserializePptxFromJson(text);
86680
87154
  const blankBytes = await buildBlankPresentationArchive({
86681
87155
  width: imported.widthEmu,
86682
- height: imported.heightEmu
87156
+ height: imported.heightEmu,
87157
+ // Saving writes presentation.xml from the loaded archive, not from
87158
+ // the overlaid model, so the archive must carry the value itself.
87159
+ firstSlideNumber: imported.firstSlideNumber
86683
87160
  });
86684
87161
  const base = await super.load(blankBytes, options);
86685
87162
  return applyImportedPptxData(base, imported);
@@ -86737,4 +87214,4 @@ var PptxHandler = class extends PptxHandlerCore {
86737
87214
  * `<p:extLst>` (optional)
86738
87215
  */
86739
87216
 
86740
- export { ConnectorXmlFactory, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_POWERPOINT_TABLE_STYLE_ID, ELEMENT_PARAGRAPH_GEOMETRY_KEYS, EncryptedPptError, MAX_ZIP_ENTRY_COUNT, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime102 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, PresentationBuilder, STANDARD_LAYOUTS, SlideBuilder, TABLE_STYLE_PART_SEQUENCE, TextShapeXmlFactory, ZipBombError, addChartCategory, addChartSeries, addTableStyleToMap, applyAfterAnimationBehavior, applyConnectorShapeIds, applySoundToEffectCTn, applyTableCellTextAndStyle, assertChartGradientSupported, breakAutoNumberRun, buildBlankPresentationArchive, buildRelationshipsXml, buildSingleEffectNode, buildSlideReferenceRemap, buildXml, capturedPresetIds, capturedPresetNativeAnimation, capturedSubtypes, clonePartGraph, convertPptToPptx, createAutoNumberSequence, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createFreeformElement, createGroupElement, createImageElement, createMediaElement, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTableStyleEntry, createTextElement, deleteTableStyleFromMap, elements, ensureChartData, ensureDataPoint, extractAfterAnimationFromSubTnLst, extractGraphicBuilds, extractTableCellTextRuns, first, generateTableStyleGuid, getCapturedPreset, getCapturedTree, isEncryptedLegacyPpt, isLegacyPpt, mergeNativeSoundIntoEditorAnimations, nextAutoNumber, nextRelationshipId, normalizeTableStyleGuid, ooxmlToPresetName, parseAnimEffectFilter, parseCondition, parseConditionList, parseFilterToken, parseRelationships, parseTimeTargetElement, parseXml, rebuildTableStructureInRawXml, reconcileAnimationTargets, relationshipsPartFor, relativePartTarget, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeEmptyDataPoint, resetIdCounter, resolveConnectorShapeIds, resolveDirectionSubtype, resolveOoxmlPresetMapping, resolvePartPath, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeTimeTargetElement, setChartAreaFormat, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGroupOptions, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, timingCurveToAccelDecel, toChartGradientFill, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, validateSeriesIndex };
87217
+ export { AFTER_ANIMATION_VALUES, ConnectorXmlFactory, DEFAULT_AFTER_ANIMATION_DIM_COLOR, DEFAULT_ANIMATION_DURATION_MS, DEFAULT_ANIMATION_TRIGGER, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_POWERPOINT_TABLE_STYLE_ID, ELEMENT_PARAGRAPH_GEOMETRY_KEYS, EncryptedPptError, MAX_ZIP_ENTRY_COUNT, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime102 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, PresentationBuilder, STANDARD_LAYOUTS, SlideBuilder, TABLE_STYLE_PART_SEQUENCE, TextShapeXmlFactory, ZipBombError, addChartCategory, addChartSeries, addTableStyleToMap, animationFor, applyAfterAnimationBehavior, applyAfterAnimationFromEditorList, applyConnectorShapeIds, applySoundToEffectCTn, applyTableCellTextAndStyle, assertChartGradientSupported, breakAutoNumberRun, buildBlankPresentationArchive, buildRelationshipsXml, buildSingleEffectNode, buildSlideReferenceRemap, buildXml, capturedPresetIds, capturedPresetNativeAnimation, capturedSubtypes, clonePartGraph, convertPptToPptx, createAutoNumberSequence, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createFreeformElement, createGroupElement, createImageElement, createMediaElement, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTableStyleEntry, createTextElement, deleteTableStyleFromMap, elements, ensureChartData, ensureDataPoint, extractAfterAnimationFromSubTnLst, extractGraphicBuilds, extractTableCellTextRuns, first, generateTableStyleGuid, getAfterAnimation, getAfterAnimationState, getCapturedPreset, getCapturedTree, hasAnimation, isEncryptedLegacyPpt, isLegacyPpt, isNativeAfterAnimationOnly, mergeNativeAfterAnimationIntoEditorAnimations, mergeNativeSoundIntoEditorAnimations, nextAutoNumber, nextRelationshipId, normalizeTableStyleGuid, ooxmlToPresetName, parseAnimEffectFilter, parseCondition, parseConditionList, parseFilterToken, parseRelationships, parseTimeTargetElement, parseXml, rebuildTableStructureInRawXml, reconcileAnimationTargets, relationshipsPartFor, relativePartTarget, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeEmptyDataPoint, resetIdCounter, resolveConnectorShapeIds, resolveDirectionSubtype, resolveOoxmlPresetMapping, resolveOpacitySet, resolvePartPath, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeTimeTargetElement, setAfterAnimation, setAfterAnimationColor, setChartAreaFormat, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGroupOptions, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, timingCurveToAccelDecel, toChartGradientFill, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, upsert, validateSeriesIndex };