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.
- package/dist/PptxHandler-5UURGJEV.mjs +2 -0
- package/dist/{PptxHandler-EX4WBIQQ.mjs → PptxHandler-ADEFY476.mjs} +2 -2
- package/dist/PptxHandler-U5XB2HUE.cjs +11 -0
- package/dist/automation/index.cjs +744 -192
- package/dist/automation/index.mjs +744 -192
- package/dist/{chunk-SWF7KVL5.cjs → chunk-3N6XMMTT.cjs} +1365 -1062
- package/dist/{chunk-FIELY5PI.mjs → chunk-5NVJN4E6.mjs} +30 -2
- package/dist/{chunk-IGOA57LE.mjs → chunk-A6P7G3UK.mjs} +1 -1
- package/dist/{chunk-CPKNMQLX.cjs → chunk-AWIDASUW.cjs} +25 -2
- package/dist/{chunk-SVQZXP3F.mjs → chunk-CBNKBVX5.mjs} +25 -2
- package/dist/{chunk-OXHMZS7B.mjs → chunk-CCHYFCPD.mjs} +649 -172
- package/dist/{chunk-OB277ZGE.mjs → chunk-R6KSBNKX.mjs} +27 -1
- package/dist/{chunk-AT66SA5M.cjs → chunk-S6DOCMQC.cjs} +28 -0
- package/dist/{chunk-WSO4T2LJ.mjs → chunk-WUE5ZHU3.mjs} +26 -3
- package/dist/{chunk-LCS3J3QI.mjs → chunk-ZE53K7DH.mjs} +474 -171
- package/dist/{chunk-M76PHYRR.mjs → chunk-ZOUGMAZG.mjs} +1 -1
- package/dist/docx/layout/adapt-table.d.ts +2 -2
- package/dist/docx/layout/adapt-table.d.ts.map +1 -1
- package/dist/docx/layout/flow-table.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +477 -75
- package/dist/docx/layout/index.mjs +477 -76
- package/dist/docx/layout/nested-frame-profile.d.ts +9 -0
- package/dist/docx/layout/nested-frame-profile.d.ts.map +1 -0
- package/dist/docx/layout/page-cursor.d.ts +2 -0
- package/dist/docx/layout/page-cursor.d.ts.map +1 -1
- package/dist/docx/layout/result.d.ts +13 -0
- package/dist/docx/layout/result.d.ts.map +1 -1
- package/dist/docx/layout/table-border-layout.d.ts +16 -0
- package/dist/docx/layout/table-border-layout.d.ts.map +1 -0
- package/dist/docx/layout/table-cell-layout.d.ts +2 -1
- package/dist/docx/layout/table-cell-layout.d.ts.map +1 -1
- package/dist/docx/layout/table-content.d.ts +4 -0
- package/dist/docx/layout/table-content.d.ts.map +1 -0
- package/dist/docx/layout/table-footnotes.d.ts +5 -0
- package/dist/docx/layout/table-footnotes.d.ts.map +1 -1
- package/dist/docx/layout/table-frames.d.ts +4 -0
- package/dist/docx/layout/table-frames.d.ts.map +1 -0
- package/dist/docx/layout/table-layout.d.ts +8 -3
- package/dist/docx/layout/table-layout.d.ts.map +1 -1
- package/dist/docx/layout/table-note-completion.d.ts +5 -0
- package/dist/docx/layout/table-note-completion.d.ts.map +1 -0
- package/dist/docx/layout/table-note-stories.d.ts +6 -0
- package/dist/docx/layout/table-note-stories.d.ts.map +1 -0
- package/dist/pptx/automation/index.cjs +535 -182
- package/dist/pptx/automation/index.d.ts +4 -4
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/chunks/{index-BZh-IMkN.d.ts → index-Cuxtr76Y.d.ts} +17 -3
- package/dist/pptx/chunks/index-Cuxtr76Y.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-B4cnSPNz.d.ts → index-DUCGeZh7.d.ts} +65 -5
- package/dist/pptx/chunks/index-DUCGeZh7.d.ts.map +1 -0
- package/dist/pptx/chunks/{smart-art-Q2kZQtHh.d.ts → smart-art-D-sXa_Nb.d.ts} +11 -1
- package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts.map +1 -0
- package/dist/pptx/chunks/{text-operations-BLodkuXE.d.ts → text-operations-BqHmLaLA.d.ts} +26 -2
- package/dist/pptx/chunks/text-operations-BqHmLaLA.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +535 -182
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.cjs +1 -0
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/editor/render/collaboration-live-patch-target.cjs +2 -2
- package/dist/pptx/editor/render/collaboration-live-patch-target.mjs +1 -1
- package/dist/pptx/editor/render/find-replace.cjs +18 -18
- package/dist/pptx/editor/render/find-replace.d.ts +2 -2
- package/dist/pptx/editor/render/find-replace.mjs +2 -2
- package/dist/pptx/editor/render/remap-text.cjs +2 -2
- package/dist/pptx/editor/render/remap-text.d.ts.map +1 -1
- package/dist/pptx/editor/render/remap-text.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 +762 -182
- package/dist/pptx/index.d.ts +5 -5
- package/dist/pptx/index.mjs +5 -5
- package/dist/pptx/smartart-layouts/index.d.ts +1 -1
- package/dist/teams/index.cjs +486 -114
- package/dist/teams/index.mjs +486 -114
- package/dist/visio/date-cache.d.ts +3 -0
- package/dist/visio/date-cache.d.ts.map +1 -0
- package/dist/visio/edit-text-field.d.ts.map +1 -1
- package/dist/visio/index.cjs +131 -22
- package/dist/visio/index.mjs +131 -22
- package/dist/visio/shape-metadata.d.ts.map +1 -1
- package/dist/visio/text-field-display.d.ts.map +1 -1
- package/dist/visio/text-field-fraction.d.ts +3 -0
- package/dist/visio/text-field-fraction.d.ts.map +1 -0
- package/dist/visio/text-field-numeric.d.ts +1 -1
- package/dist/visio/text-field-numeric.d.ts.map +1 -1
- package/dist/visio/text-field-system-date.d.ts +4 -0
- package/dist/visio/text-field-system-date.d.ts.map +1 -0
- package/dist/visio/text-fields.d.ts +1 -0
- package/dist/visio/text-fields.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +132 -22
- package/dist/visio/ui/index.mjs +132 -22
- package/dist/visio/ui/text-field-catalog.d.ts.map +1 -1
- package/dist/xlsx/edit/pivots.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +614 -170
- package/dist/xlsx/index.mjs +614 -170
- package/dist/xlsx/load/index.cjs +575 -163
- package/dist/xlsx/load/index.mjs +575 -163
- package/dist/xlsx/model-pivots.d.ts +23 -2
- package/dist/xlsx/model-pivots.d.ts.map +1 -1
- package/dist/xlsx/pivot/admission.d.ts.map +1 -1
- package/dist/xlsx/pivot/aggregate.d.ts +3 -1
- package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
- package/dist/xlsx/pivot/data.d.ts +1 -1
- package/dist/xlsx/pivot/data.d.ts.map +1 -1
- package/dist/xlsx/pivot/hierarchy-first.d.ts +21 -0
- package/dist/xlsx/pivot/hierarchy-first.d.ts.map +1 -0
- package/dist/xlsx/pivot/hierarchy.d.ts +2 -4
- package/dist/xlsx/pivot/hierarchy.d.ts.map +1 -1
- package/dist/xlsx/pivot/measures.d.ts +13 -0
- package/dist/xlsx/pivot/measures.d.ts.map +1 -0
- package/dist/xlsx/pivot/read.d.ts.map +1 -1
- package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
- package/dist/xlsx/pivot/values-axis.d.ts +9 -0
- package/dist/xlsx/pivot/values-axis.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +547 -127
- package/dist/xlsx/ui/index.mjs +547 -127
- package/package.json +1 -1
- package/dist/PptxHandler-AT7FVG5Q.mjs +0 -2
- package/dist/PptxHandler-VFSCECPL.cjs +0 -11
- package/dist/pptx/chunks/index-B4cnSPNz.d.ts.map +0 -1
- package/dist/pptx/chunks/index-BZh-IMkN.d.ts.map +0 -1
- package/dist/pptx/chunks/smart-art-Q2kZQtHh.d.ts.map +0 -1
- 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-
|
|
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(
|
|
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
|
|
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
|
-
|
|
10072
|
+
hasAny2 = true;
|
|
10069
10073
|
}
|
|
10070
|
-
return
|
|
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 =
|
|
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,
|
|
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
|
|
50469
|
-
if (!
|
|
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
|
|
52189
|
-
if (!xfrmKey && !
|
|
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
|
|
52595
|
+
let hasAny2 = false;
|
|
52227
52596
|
if (para.fontSize !== void 0) {
|
|
52228
52597
|
rPr["@_sz"] = String(Math.round(para.fontSize * 100));
|
|
52229
|
-
|
|
52598
|
+
hasAny2 = true;
|
|
52230
52599
|
}
|
|
52231
52600
|
if (para.bold) {
|
|
52232
52601
|
rPr["@_b"] = "1";
|
|
52233
|
-
|
|
52602
|
+
hasAny2 = true;
|
|
52234
52603
|
}
|
|
52235
52604
|
if (para.italic) {
|
|
52236
52605
|
rPr["@_i"] = "1";
|
|
52237
|
-
|
|
52606
|
+
hasAny2 = true;
|
|
52238
52607
|
}
|
|
52239
52608
|
if (para.color) {
|
|
52240
52609
|
rPr["a:solidFill"] = { "a:srgbClr": { "@_val": hexVal(para.color) } };
|
|
52241
|
-
|
|
52610
|
+
hasAny2 = true;
|
|
52242
52611
|
}
|
|
52243
|
-
return
|
|
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
|
|
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
|
-
|
|
54516
|
+
hasAny2 = true;
|
|
54148
54517
|
}
|
|
54149
54518
|
if (a14.backgroundRemoval) {
|
|
54150
54519
|
effects.backgroundRemoval = a14.backgroundRemoval;
|
|
54151
|
-
|
|
54520
|
+
hasAny2 = true;
|
|
54152
54521
|
}
|
|
54153
54522
|
if (a14.originalImageRelId !== void 0) {
|
|
54154
54523
|
effects.originalImageRelId = a14.originalImageRelId;
|
|
54155
|
-
|
|
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
|
-
|
|
54547
|
+
hasAny2 = true;
|
|
54179
54548
|
}
|
|
54180
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55980
|
+
hasAny2 = true;
|
|
55612
55981
|
}
|
|
55613
55982
|
}
|
|
55614
|
-
return
|
|
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
|
|
57193
|
-
if (!
|
|
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
|
|
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
|
-
|
|
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
|
|
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 };
|