pptx-react-viewer 3.1.3 → 3.1.4
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/CHANGELOG.md +11 -0
- package/dist/{AiChatPanel-5JAQBLTU.mjs → AiChatPanel-ITCVRVKP.mjs} +3 -3
- package/dist/AiChatPanel-ITCVRVKP.mjs.br +0 -0
- package/dist/AiChatPanel-ITCVRVKP.mjs.gz +0 -0
- package/dist/{AiChatPanel-C3E7UV7T.js → AiChatPanel-TO5PHBGW.js} +23 -23
- package/dist/AiChatPanel-TO5PHBGW.js.br +0 -0
- package/dist/AiChatPanel-TO5PHBGW.js.gz +0 -0
- package/dist/{Area3DChartScene-XY2PKRMA.js → Area3DChartScene-2UNQ3J3V.js} +2 -2
- package/dist/Area3DChartScene-2UNQ3J3V.js.br +0 -0
- package/dist/Area3DChartScene-2UNQ3J3V.js.gz +0 -0
- package/dist/{Area3DChartScene-KE434ERF.mjs → Area3DChartScene-7PHPDOTG.mjs} +1 -1
- package/dist/Area3DChartScene-7PHPDOTG.mjs.br +0 -0
- package/dist/Area3DChartScene-7PHPDOTG.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-2KQABQZM.mjs → Bar3DChartScene-BLPUHYRZ.mjs} +1 -1
- package/dist/Bar3DChartScene-BLPUHYRZ.mjs.br +0 -0
- package/dist/Bar3DChartScene-BLPUHYRZ.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-YMADUUZN.js → Bar3DChartScene-MC5S3AGT.js} +2 -2
- package/dist/Bar3DChartScene-MC5S3AGT.js.br +0 -0
- package/dist/Bar3DChartScene-MC5S3AGT.js.gz +0 -0
- package/dist/{Line3DChartScene-AB7N6ORX.js → Line3DChartScene-JVVZRIDD.js} +2 -2
- package/dist/Line3DChartScene-JVVZRIDD.js.br +0 -0
- package/dist/Line3DChartScene-JVVZRIDD.js.gz +0 -0
- package/dist/{Line3DChartScene-K3BSK6BB.mjs → Line3DChartScene-L5B4YFG3.mjs} +1 -1
- package/dist/Line3DChartScene-L5B4YFG3.mjs.br +0 -0
- package/dist/Line3DChartScene-L5B4YFG3.mjs.gz +0 -0
- package/dist/{Model3DScene-NT5RRIB5.mjs → Model3DScene-6TNWS5LV.mjs} +1 -1
- package/dist/Model3DScene-6TNWS5LV.mjs.br +0 -0
- package/dist/Model3DScene-6TNWS5LV.mjs.gz +0 -0
- package/dist/{Model3DScene-VSLGUWC7.js → Model3DScene-LRDNQNKJ.js} +2 -2
- package/dist/Model3DScene-LRDNQNKJ.js.br +0 -0
- package/dist/Model3DScene-LRDNQNKJ.js.gz +0 -0
- package/dist/{PieChart3DScene-6MUFRFYJ.js → PieChart3DScene-PZWZCXHX.js} +2 -2
- package/dist/PieChart3DScene-PZWZCXHX.js.br +0 -0
- package/dist/PieChart3DScene-PZWZCXHX.js.gz +0 -0
- package/dist/{PieChart3DScene-NFRBKII7.mjs → PieChart3DScene-XXAIVP4I.mjs} +1 -1
- package/dist/PieChart3DScene-XXAIVP4I.mjs.br +0 -0
- package/dist/PieChart3DScene-XXAIVP4I.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-UKIOTKJC.mjs → SurfaceChart3DScene-CRUGJSCY.mjs} +1 -1
- package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.br +1 -0
- package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-2UQOKVFB.js → SurfaceChart3DScene-UBQV3ZN2.js} +2 -2
- package/dist/SurfaceChart3DScene-UBQV3ZN2.js.br +0 -0
- package/dist/SurfaceChart3DScene-UBQV3ZN2.js.gz +0 -0
- package/dist/UTIF-LAD5QYGQ.mjs +6400 -0
- package/dist/UTIF-LAD5QYGQ.mjs.br +0 -0
- package/dist/UTIF-LAD5QYGQ.mjs.gz +0 -0
- package/dist/UTIF-POYWAAGO.js +6402 -0
- package/dist/UTIF-POYWAAGO.js.br +0 -0
- package/dist/UTIF-POYWAAGO.js.gz +0 -0
- package/dist/{chunk-5WH6UVWC.mjs → chunk-57MGKBJ4.mjs} +253 -77
- package/dist/chunk-57MGKBJ4.mjs.br +0 -0
- package/dist/chunk-57MGKBJ4.mjs.gz +0 -0
- package/dist/{chunk-BZ6OM3H5.mjs → chunk-A2UAUSJM.mjs} +113 -6
- package/dist/chunk-A2UAUSJM.mjs.br +0 -0
- package/dist/chunk-A2UAUSJM.mjs.gz +0 -0
- package/dist/{chunk-ACVLIDUS.mjs → chunk-BPWSJLLG.mjs} +158 -29
- package/dist/chunk-BPWSJLLG.mjs.br +0 -0
- package/dist/chunk-BPWSJLLG.mjs.gz +0 -0
- package/dist/{chunk-K4DUVYZ7.js → chunk-LGVNUG3G.js} +3 -3
- package/dist/chunk-LGVNUG3G.js.br +0 -0
- package/dist/chunk-LGVNUG3G.js.gz +0 -0
- package/dist/{chunk-XBR7W47W.js → chunk-LXYDXLKZ.js} +510 -403
- package/dist/chunk-LXYDXLKZ.js.br +0 -0
- package/dist/chunk-LXYDXLKZ.js.gz +0 -0
- package/dist/{chunk-Z3DEULRJ.mjs → chunk-QOLYY7E3.mjs} +1 -1
- package/dist/chunk-QOLYY7E3.mjs.br +0 -0
- package/dist/chunk-QOLYY7E3.mjs.gz +0 -0
- package/dist/{chunk-OABOL32L.js → chunk-T2QG2HD5.js} +302 -171
- package/dist/chunk-T2QG2HD5.js.br +0 -0
- package/dist/chunk-T2QG2HD5.js.gz +0 -0
- package/dist/{chunk-GCOGKBK3.js → chunk-T44LBKF6.js} +1342 -1166
- package/dist/chunk-T44LBKF6.js.br +0 -0
- package/dist/chunk-T44LBKF6.js.gz +0 -0
- package/dist/{chunk-SRAXNEJX.mjs → chunk-XIHK52SB.mjs} +1525 -341
- package/dist/chunk-XIHK52SB.mjs.br +0 -0
- package/dist/chunk-XIHK52SB.mjs.gz +0 -0
- package/dist/{chunk-HMZA25W2.js → chunk-YDEEINER.js} +1528 -343
- package/dist/chunk-YDEEINER.js.br +0 -0
- package/dist/chunk-YDEEINER.js.gz +0 -0
- package/dist/index.d.ts +139 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -49
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +139 -3
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +139 -3
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-5JAQBLTU.mjs.br +0 -0
- package/dist/AiChatPanel-5JAQBLTU.mjs.gz +0 -0
- package/dist/AiChatPanel-C3E7UV7T.js.br +0 -0
- package/dist/AiChatPanel-C3E7UV7T.js.gz +0 -0
- package/dist/Area3DChartScene-KE434ERF.mjs.br +0 -0
- package/dist/Area3DChartScene-KE434ERF.mjs.gz +0 -0
- package/dist/Area3DChartScene-XY2PKRMA.js.br +0 -0
- package/dist/Area3DChartScene-XY2PKRMA.js.gz +0 -0
- package/dist/Bar3DChartScene-2KQABQZM.mjs.br +0 -0
- package/dist/Bar3DChartScene-2KQABQZM.mjs.gz +0 -0
- package/dist/Bar3DChartScene-YMADUUZN.js.br +0 -0
- package/dist/Bar3DChartScene-YMADUUZN.js.gz +0 -0
- package/dist/Line3DChartScene-AB7N6ORX.js.br +0 -0
- package/dist/Line3DChartScene-AB7N6ORX.js.gz +0 -0
- package/dist/Line3DChartScene-K3BSK6BB.mjs.br +0 -0
- package/dist/Line3DChartScene-K3BSK6BB.mjs.gz +0 -0
- package/dist/Model3DScene-NT5RRIB5.mjs.br +0 -0
- package/dist/Model3DScene-NT5RRIB5.mjs.gz +0 -0
- package/dist/Model3DScene-VSLGUWC7.js.br +0 -0
- package/dist/Model3DScene-VSLGUWC7.js.gz +0 -0
- package/dist/PieChart3DScene-6MUFRFYJ.js.br +0 -0
- package/dist/PieChart3DScene-6MUFRFYJ.js.gz +0 -0
- package/dist/PieChart3DScene-NFRBKII7.mjs.br +0 -0
- package/dist/PieChart3DScene-NFRBKII7.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-2UQOKVFB.js.br +0 -0
- package/dist/SurfaceChart3DScene-2UQOKVFB.js.gz +0 -0
- package/dist/SurfaceChart3DScene-UKIOTKJC.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-UKIOTKJC.mjs.gz +0 -0
- package/dist/chunk-5WH6UVWC.mjs.br +0 -0
- package/dist/chunk-5WH6UVWC.mjs.gz +0 -0
- package/dist/chunk-ACVLIDUS.mjs.br +0 -0
- package/dist/chunk-ACVLIDUS.mjs.gz +0 -0
- package/dist/chunk-BZ6OM3H5.mjs.br +0 -0
- package/dist/chunk-BZ6OM3H5.mjs.gz +0 -0
- package/dist/chunk-GCOGKBK3.js.br +0 -0
- package/dist/chunk-GCOGKBK3.js.gz +0 -0
- package/dist/chunk-HMZA25W2.js.br +0 -0
- package/dist/chunk-HMZA25W2.js.gz +0 -0
- package/dist/chunk-K4DUVYZ7.js.br +0 -0
- package/dist/chunk-K4DUVYZ7.js.gz +0 -0
- package/dist/chunk-OABOL32L.js.br +0 -0
- package/dist/chunk-OABOL32L.js.gz +0 -0
- package/dist/chunk-SRAXNEJX.mjs.br +0 -0
- package/dist/chunk-SRAXNEJX.mjs.gz +0 -0
- package/dist/chunk-XBR7W47W.js.br +0 -0
- package/dist/chunk-XBR7W47W.js.gz +0 -0
- package/dist/chunk-Z3DEULRJ.mjs.br +0 -0
- package/dist/chunk-Z3DEULRJ.mjs.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-
|
|
1
|
+
import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-BPWSJLLG.mjs';
|
|
2
|
+
import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, collectTableCellImagePaths, applyTableCellImagePatches, collectTableStyleImagePaths, applyTableStyleImagePatches, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, replyToCommentInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, safeOpenUrl, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-XIHK52SB.mjs';
|
|
2
3
|
import { translationsEn } from './chunk-ARJE3V6V.mjs';
|
|
3
|
-
import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, collectTableCellImagePaths, applyTableCellImagePatches, collectTableStyleImagePaths, applyTableStyleImagePatches, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, replyToCommentInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, safeOpenUrl, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-SRAXNEJX.mjs';
|
|
4
4
|
import { createContext, useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect, useContext, useImperativeHandle, useSyncExternalStore } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
|
|
@@ -1030,6 +1030,77 @@ function applyAnimationGroupSteps(group, onPlayActionSound, setPresentationEleme
|
|
|
1030
1030
|
presentationTimersRef.current.push(timer);
|
|
1031
1031
|
}
|
|
1032
1032
|
}
|
|
1033
|
+
function shouldSeekAnimationGroup(group, endAtMs, nowMs) {
|
|
1034
|
+
return group?.seqNextAction === "seek" && nowMs < endAtMs;
|
|
1035
|
+
}
|
|
1036
|
+
function finishDomAnimationsForGroup(group, root = document) {
|
|
1037
|
+
const targetIds = new Set(
|
|
1038
|
+
group.steps.filter((step) => !step.command).map((step) => step.elementId)
|
|
1039
|
+
);
|
|
1040
|
+
if (targetIds.size === 0) {
|
|
1041
|
+
return 0;
|
|
1042
|
+
}
|
|
1043
|
+
const activeAnimations = /* @__PURE__ */ new Set();
|
|
1044
|
+
const candidates = root.querySelectorAll(
|
|
1045
|
+
'[data-element-id], [data-anim-id], [data-pptx-animation-layer="background"]'
|
|
1046
|
+
);
|
|
1047
|
+
for (const element of candidates) {
|
|
1048
|
+
let animationElementId = element.dataset.animId ?? element.dataset.elementId;
|
|
1049
|
+
if (element.dataset.pptxAnimationLayer === "background") {
|
|
1050
|
+
const hostId = element.closest("[data-element-id]")?.dataset.elementId;
|
|
1051
|
+
animationElementId = hostId ? `${hostId}::pptx-bg` : void 0;
|
|
1052
|
+
}
|
|
1053
|
+
if (!animationElementId || !targetIds.has(animationElementId)) {
|
|
1054
|
+
continue;
|
|
1055
|
+
}
|
|
1056
|
+
if (typeof element.getAnimations !== "function") {
|
|
1057
|
+
continue;
|
|
1058
|
+
}
|
|
1059
|
+
for (const animation of element.getAnimations()) {
|
|
1060
|
+
activeAnimations.add(animation);
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
let finishedCount = 0;
|
|
1064
|
+
for (const animation of activeAnimations) {
|
|
1065
|
+
const iterations = animation.effect?.getTiming().iterations;
|
|
1066
|
+
if (animation.playState === "finished" || animation.playState === "idle") {
|
|
1067
|
+
continue;
|
|
1068
|
+
}
|
|
1069
|
+
if (iterations === Infinity) {
|
|
1070
|
+
continue;
|
|
1071
|
+
}
|
|
1072
|
+
try {
|
|
1073
|
+
animation.finish();
|
|
1074
|
+
finishedCount += 1;
|
|
1075
|
+
} catch {
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
return finishedCount;
|
|
1079
|
+
}
|
|
1080
|
+
function finishAnimationGroupSteps(group, setPresentationElementStates, completedStates) {
|
|
1081
|
+
setPresentationElementStates((previousStates) => {
|
|
1082
|
+
const nextStates = new Map(previousStates);
|
|
1083
|
+
for (const step of group.steps) {
|
|
1084
|
+
if (step.command) {
|
|
1085
|
+
continue;
|
|
1086
|
+
}
|
|
1087
|
+
const currentState = nextStates.get(step.elementId) ?? {
|
|
1088
|
+
visible: true,
|
|
1089
|
+
cssAnimation: void 0
|
|
1090
|
+
};
|
|
1091
|
+
const holdsAnimatedPaint = step.holdEndState && step.colorTargets !== void 0 && step.colorTargets.length > 0;
|
|
1092
|
+
nextStates.set(step.elementId, {
|
|
1093
|
+
...currentState,
|
|
1094
|
+
visible: step.presetClass !== "exit" && !step.hideAfterEffect,
|
|
1095
|
+
cssAnimation: step.holdEndState ? step.cssAnimation : void 0,
|
|
1096
|
+
build: completedStates?.get(step.elementId)?.build ?? currentState.build,
|
|
1097
|
+
animatesFill: holdsAnimatedPaint && step.colorTargets?.includes("fill") ? true : void 0,
|
|
1098
|
+
animatesStroke: holdsAnimatedPaint && step.colorTargets?.includes("stroke") ? true : void 0
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
return nextStates;
|
|
1102
|
+
});
|
|
1103
|
+
}
|
|
1033
1104
|
|
|
1034
1105
|
// src/viewer/hooks/presentation-mode/build-playback.ts
|
|
1035
1106
|
function cancelBuildReveal(handle) {
|
|
@@ -1092,6 +1163,7 @@ function scheduleOpeningAutoPlayGroup(controller, deps) {
|
|
|
1092
1163
|
deps.setPresentationElementStates,
|
|
1093
1164
|
deps.presentationTimersRef
|
|
1094
1165
|
);
|
|
1166
|
+
deps.markAnimationGroupActive(group);
|
|
1095
1167
|
deps.startBuildReveal(controller, group);
|
|
1096
1168
|
deps.scheduleAutoAdvanceChain(controller);
|
|
1097
1169
|
}, firstGroup.autoAdvanceDelayMs ?? 0);
|
|
@@ -1138,6 +1210,8 @@ function useAnimationPlayback(input) {
|
|
|
1138
1210
|
const presentationTimersRef = useRef([]);
|
|
1139
1211
|
const controllerRef = useRef(null);
|
|
1140
1212
|
const buildRafRef = useRef(null);
|
|
1213
|
+
const activeAnimationGroupRef = useRef(null);
|
|
1214
|
+
const activeAnimationEndAtRef = useRef(0);
|
|
1141
1215
|
const seededCompletedRef = useRef(false);
|
|
1142
1216
|
const lastSeedCompletedRef = useRef(false);
|
|
1143
1217
|
const startBuildReveal = useCallback(
|
|
@@ -1162,6 +1236,12 @@ function useAnimationPlayback(input) {
|
|
|
1162
1236
|
});
|
|
1163
1237
|
presentationTimersRef.current = [];
|
|
1164
1238
|
cancelBuildReveal(buildRafRef);
|
|
1239
|
+
activeAnimationGroupRef.current = null;
|
|
1240
|
+
activeAnimationEndAtRef.current = 0;
|
|
1241
|
+
}, []);
|
|
1242
|
+
const markAnimationGroupActive = useCallback((group) => {
|
|
1243
|
+
activeAnimationGroupRef.current = group;
|
|
1244
|
+
activeAnimationEndAtRef.current = performance.now() + Math.max(0, group.totalDurationMs);
|
|
1165
1245
|
}, []);
|
|
1166
1246
|
const scheduleAutoAdvanceChain = useCallback(
|
|
1167
1247
|
(controller) => {
|
|
@@ -1186,6 +1266,7 @@ function useAnimationPlayback(input) {
|
|
|
1186
1266
|
setPresentationElementStates,
|
|
1187
1267
|
presentationTimersRef
|
|
1188
1268
|
);
|
|
1269
|
+
markAnimationGroupActive(group);
|
|
1189
1270
|
startBuildReveal(controller, group);
|
|
1190
1271
|
scheduleAutoAdvanceChain(controller);
|
|
1191
1272
|
},
|
|
@@ -1199,7 +1280,7 @@ function useAnimationPlayback(input) {
|
|
|
1199
1280
|
// resolves correctly because the setTimeout callback only reads the binding
|
|
1200
1281
|
// once the outer const has been assigned.
|
|
1201
1282
|
// oxlint-disable-next-line react/memo-dependencies -- see comment above
|
|
1202
|
-
[onPlayActionSound, startBuildReveal]
|
|
1283
|
+
[markAnimationGroupActive, onPlayActionSound, startBuildReveal]
|
|
1203
1284
|
);
|
|
1204
1285
|
const resetSlideTimeline = useCallback(
|
|
1205
1286
|
(slideIndex) => {
|
|
@@ -1227,6 +1308,16 @@ function useAnimationPlayback(input) {
|
|
|
1227
1308
|
return false;
|
|
1228
1309
|
}
|
|
1229
1310
|
const controller = controllerRef.current;
|
|
1311
|
+
const activeGroup = activeAnimationGroupRef.current;
|
|
1312
|
+
if (controller && controller.hasMoreSteps() && shouldSeekAnimationGroup(activeGroup, activeAnimationEndAtRef.current, performance.now())) {
|
|
1313
|
+
finishDomAnimationsForGroup(activeGroup);
|
|
1314
|
+
const buildIds = PresentationAnimationController.collectBuildStepIds(activeGroup);
|
|
1315
|
+
const completedStates = controller.computeStatesFor(buildIds);
|
|
1316
|
+
clearPresentationTimers();
|
|
1317
|
+
finishAnimationGroupSteps(activeGroup, setPresentationElementStates, completedStates);
|
|
1318
|
+
scheduleAutoAdvanceChain(controller);
|
|
1319
|
+
return true;
|
|
1320
|
+
}
|
|
1230
1321
|
if (!controller || !controller.hasMoreSteps()) {
|
|
1231
1322
|
return false;
|
|
1232
1323
|
}
|
|
@@ -1240,10 +1331,18 @@ function useAnimationPlayback(input) {
|
|
|
1240
1331
|
setPresentationElementStates,
|
|
1241
1332
|
presentationTimersRef
|
|
1242
1333
|
);
|
|
1334
|
+
markAnimationGroupActive(group);
|
|
1243
1335
|
startBuildReveal(controller, group);
|
|
1244
1336
|
scheduleAutoAdvanceChain(controller);
|
|
1245
1337
|
return true;
|
|
1246
|
-
}, [
|
|
1338
|
+
}, [
|
|
1339
|
+
animationsEnabled,
|
|
1340
|
+
clearPresentationTimers,
|
|
1341
|
+
markAnimationGroupActive,
|
|
1342
|
+
onPlayActionSound,
|
|
1343
|
+
scheduleAutoAdvanceChain,
|
|
1344
|
+
startBuildReveal
|
|
1345
|
+
]);
|
|
1247
1346
|
const handleInteractiveShapeClick = useCallback(
|
|
1248
1347
|
(shapeId) => {
|
|
1249
1348
|
const controller = controllerRef.current;
|
|
@@ -1339,12 +1438,20 @@ function useAnimationPlayback(input) {
|
|
|
1339
1438
|
setPresentationElementStates,
|
|
1340
1439
|
presentationTimersRef,
|
|
1341
1440
|
startBuildReveal,
|
|
1342
|
-
scheduleAutoAdvanceChain
|
|
1441
|
+
scheduleAutoAdvanceChain,
|
|
1442
|
+
markAnimationGroupActive
|
|
1343
1443
|
});
|
|
1344
1444
|
}
|
|
1345
1445
|
scheduleEntranceAnimationTimers(slide, setPresentationAnimations, presentationTimersRef);
|
|
1346
1446
|
},
|
|
1347
|
-
[
|
|
1447
|
+
[
|
|
1448
|
+
animationsEnabled,
|
|
1449
|
+
slides,
|
|
1450
|
+
onPlayActionSound,
|
|
1451
|
+
markAnimationGroupActive,
|
|
1452
|
+
scheduleAutoAdvanceChain,
|
|
1453
|
+
startBuildReveal
|
|
1454
|
+
]
|
|
1348
1455
|
);
|
|
1349
1456
|
const runPresentationEntranceAnimations = useCallback(
|
|
1350
1457
|
(slideIndex, options) => {
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getComputedFillStyle, isImageLikeElement, getImageTilingStyle, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, registerPersistentAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitRunForMetrics, splitRunByScriptFont } from './chunk-XIHK52SB.mjs';
|
|
1
2
|
import { translationsEn } from './chunk-ARJE3V6V.mjs';
|
|
2
|
-
import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, isImageLikeElement, getImageTilingStyle, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getComputedFillStyle, getComputedEffectStyle, getComputedStrokeStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx2, getResolvedShapeClipPath, mediaFallbackVisual, registerPersistentAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitRunForMetrics, splitRunByScriptFont } from './chunk-SRAXNEJX.mjs';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import React6, { useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect } from 'react';
|
|
@@ -270,34 +270,40 @@ function getImageMaskStyle(element) {
|
|
|
270
270
|
if (!hasShapeProperties(element)) {
|
|
271
271
|
return void 0;
|
|
272
272
|
}
|
|
273
|
-
const
|
|
274
|
-
if (
|
|
275
|
-
return
|
|
276
|
-
}
|
|
277
|
-
const normalized = shapeType.toLowerCase();
|
|
278
|
-
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
279
|
-
const radiusPx = getRoundRectRadiusPx2(element);
|
|
280
|
-
if (radiusPx <= 0.01) {
|
|
281
|
-
return void 0;
|
|
282
|
-
}
|
|
283
|
-
return { borderRadius: radiusPx };
|
|
284
|
-
}
|
|
285
|
-
if (normalized === "ellipse" || normalized === "oval") {
|
|
286
|
-
return { borderRadius: "50%" };
|
|
287
|
-
}
|
|
288
|
-
if (normalized === "can" || normalized === "cylinder") {
|
|
289
|
-
return { borderRadius: "48% / 12%" };
|
|
290
|
-
}
|
|
291
|
-
const clipPath = getResolvedShapeClipPath(element);
|
|
292
|
-
if (!clipPath) {
|
|
293
|
-
return void 0;
|
|
273
|
+
const geometry = resolveShapeGeometry(element);
|
|
274
|
+
if (geometry.kind === "borderRadius") {
|
|
275
|
+
return { borderRadius: geometry.radius };
|
|
294
276
|
}
|
|
295
|
-
return { clipPath };
|
|
277
|
+
return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
|
|
296
278
|
}
|
|
297
279
|
function getImageRenderStyle(element) {
|
|
280
|
+
const fit = getImageFitStyle(element);
|
|
298
281
|
return {
|
|
299
|
-
|
|
300
|
-
|
|
282
|
+
// A translated/scaled crop must be masked by its stationary wrapper, not
|
|
283
|
+
// by the moving bitmap itself.
|
|
284
|
+
...fit.transform ? {} : getImageMaskStyle(element) || {},
|
|
285
|
+
...fit
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
function getImageSurfaceMaskStyle(element) {
|
|
289
|
+
const mask = getImageMaskStyle(element);
|
|
290
|
+
return {
|
|
291
|
+
overflow: "hidden",
|
|
292
|
+
borderRadius: mask?.borderRadius,
|
|
293
|
+
clipPath: mask?.clipPath ?? getCropShapeClipPath(element)
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
function getImageSurfaceStyle(element) {
|
|
297
|
+
const fill = hasShapeProperties(element) ? getComputedFillStyle(element) : void 0;
|
|
298
|
+
return {
|
|
299
|
+
position: "absolute",
|
|
300
|
+
inset: 0,
|
|
301
|
+
...getImageSurfaceMaskStyle(element),
|
|
302
|
+
backgroundColor: fill?.backgroundColor ?? "transparent",
|
|
303
|
+
backgroundImage: fill?.backgroundImage,
|
|
304
|
+
backgroundRepeat: fill?.backgroundRepeat,
|
|
305
|
+
backgroundSize: fill?.backgroundSize,
|
|
306
|
+
backgroundPosition: fill?.backgroundPosition
|
|
301
307
|
};
|
|
302
308
|
}
|
|
303
309
|
var CROP_SHAPE_CLIP_PATHS = {
|
|
@@ -461,7 +467,8 @@ function VideoWithMetadata({
|
|
|
461
467
|
"video",
|
|
462
468
|
{
|
|
463
469
|
ref: mediaRef,
|
|
464
|
-
className:
|
|
470
|
+
className: "w-full h-full pointer-events-auto",
|
|
471
|
+
style: isFullScreen ? { objectFit: "cover" } : getImageFitStyle(element),
|
|
465
472
|
controls: showTransport,
|
|
466
473
|
preload: "metadata",
|
|
467
474
|
playsInline: true,
|
|
@@ -858,7 +865,8 @@ function renderMediaFallback({
|
|
|
858
865
|
{
|
|
859
866
|
src: posterUrl,
|
|
860
867
|
alt: visual.dimPoster ? translationsEn["pptx.media.posterAlt"] : translationsEn["pptx.media.videoPosterAlt"],
|
|
861
|
-
className: `w-full h-full
|
|
868
|
+
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
869
|
+
style: getImageFitStyle(element)
|
|
862
870
|
}
|
|
863
871
|
),
|
|
864
872
|
/* @__PURE__ */ jsx(Badge, { visual, element })
|
|
@@ -971,6 +979,7 @@ function getTextLayoutStyle(element) {
|
|
|
971
979
|
const textOrientation = toCssTextOrientation(element.textStyle?.textDirection);
|
|
972
980
|
const verticalDirection = toCssVerticalDirection(element.textStyle?.textDirection);
|
|
973
981
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
982
|
+
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
974
983
|
const hasParagraphIndents = hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
975
984
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
976
985
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
@@ -990,6 +999,15 @@ function getTextLayoutStyle(element) {
|
|
|
990
999
|
direction: verticalDirection,
|
|
991
1000
|
marginLeft,
|
|
992
1001
|
textIndent,
|
|
1002
|
+
...shapeAutoFitTextBox ? {
|
|
1003
|
+
width: textWrapNone ? "max-content" : "100%",
|
|
1004
|
+
minWidth: "100%",
|
|
1005
|
+
height: "max-content",
|
|
1006
|
+
minHeight: "100%",
|
|
1007
|
+
whiteSpace: "pre-wrap",
|
|
1008
|
+
wordBreak: textWrapNone ? "normal" : "break-word",
|
|
1009
|
+
overflow: "visible"
|
|
1010
|
+
} : {},
|
|
993
1011
|
...textWrapNone ? {
|
|
994
1012
|
whiteSpace: "nowrap",
|
|
995
1013
|
overflow: "visible"
|
|
@@ -1805,6 +1823,9 @@ function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
|
1805
1823
|
function rendersCustomVectorPath(element) {
|
|
1806
1824
|
return (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
|
|
1807
1825
|
}
|
|
1826
|
+
function rendersWedgeCalloutVector(element) {
|
|
1827
|
+
return element.type === "shape" && isWedgeCalloutPresetShape(element.shapeType);
|
|
1828
|
+
}
|
|
1808
1829
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1809
1830
|
if (!hasShapeProperties(element)) {
|
|
1810
1831
|
return {};
|
|
@@ -1849,8 +1870,21 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1849
1870
|
strokeMiterlimit: stroke.strokeMiterlimit,
|
|
1850
1871
|
strokeLinecap: stroke.strokeLinecap
|
|
1851
1872
|
};
|
|
1873
|
+
Object.assign(
|
|
1874
|
+
base,
|
|
1875
|
+
getAnimationColorBaseStyle(element, {
|
|
1876
|
+
animatesFill,
|
|
1877
|
+
animatesStroke,
|
|
1878
|
+
parentGroupFill
|
|
1879
|
+
})
|
|
1880
|
+
);
|
|
1881
|
+
if (element.type === "image" || element.type === "picture") {
|
|
1882
|
+
base.borderWidth = 0;
|
|
1883
|
+
base.borderColor = void 0;
|
|
1884
|
+
base.borderStyle = void 0;
|
|
1885
|
+
}
|
|
1852
1886
|
apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
|
|
1853
|
-
if (rendersCustomVectorPath(element) || isStrokeOnlyPresetElement(element)) {
|
|
1887
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || isStrokeOnlyPresetElement(element)) {
|
|
1854
1888
|
base.backgroundColor = "transparent";
|
|
1855
1889
|
base.backgroundImage = void 0;
|
|
1856
1890
|
base.borderWidth = void 0;
|
|
@@ -1861,6 +1895,9 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1861
1895
|
base.backgroundColor = void 0;
|
|
1862
1896
|
base.backgroundImage = void 0;
|
|
1863
1897
|
}
|
|
1898
|
+
if (rendersWedgeCalloutVector(element)) {
|
|
1899
|
+
return base;
|
|
1900
|
+
}
|
|
1864
1901
|
const geometry = resolveShapeGeometry(element);
|
|
1865
1902
|
switch (geometry.kind) {
|
|
1866
1903
|
case "bare":
|
|
@@ -2141,6 +2178,23 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2141
2178
|
}
|
|
2142
2179
|
);
|
|
2143
2180
|
}
|
|
2181
|
+
function renderGradientDefs(gradient) {
|
|
2182
|
+
if (!gradient) {
|
|
2183
|
+
return null;
|
|
2184
|
+
}
|
|
2185
|
+
const stops = gradient.stops.map((stop, index) => /* @__PURE__ */ jsx("stop", { offset: stop.offset, stopColor: stop.color, stopOpacity: stop.opacity }, index));
|
|
2186
|
+
return /* @__PURE__ */ jsx("defs", { children: gradient.kind === "radial" ? /* @__PURE__ */ jsx("radialGradient", { id: gradient.id, cx: gradient.cx, cy: gradient.cy, r: gradient.r, children: stops }) : /* @__PURE__ */ jsx(
|
|
2187
|
+
"linearGradient",
|
|
2188
|
+
{
|
|
2189
|
+
id: gradient.id,
|
|
2190
|
+
x1: gradient.x1,
|
|
2191
|
+
y1: gradient.y1,
|
|
2192
|
+
x2: gradient.x2,
|
|
2193
|
+
y2: gradient.y2,
|
|
2194
|
+
children: stops
|
|
2195
|
+
}
|
|
2196
|
+
) });
|
|
2197
|
+
}
|
|
2144
2198
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2145
2199
|
if (!hasShapeProperties(element)) {
|
|
2146
2200
|
return null;
|
|
@@ -2233,6 +2287,81 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2233
2287
|
buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2234
2288
|
);
|
|
2235
2289
|
}
|
|
2290
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !buildStrokeOutline(element)) {
|
|
2291
|
+
const width = Math.max(element.width, 1);
|
|
2292
|
+
const height = Math.max(element.height, 1);
|
|
2293
|
+
const geometry = getPresetShapeVectorGeometry(
|
|
2294
|
+
element.shapeType || "rect",
|
|
2295
|
+
width,
|
|
2296
|
+
height,
|
|
2297
|
+
element.shapeAdjustments
|
|
2298
|
+
);
|
|
2299
|
+
if (geometry) {
|
|
2300
|
+
return /* @__PURE__ */ jsx(
|
|
2301
|
+
"svg",
|
|
2302
|
+
{
|
|
2303
|
+
viewBox: `${geometry.minX} ${geometry.minY} ${geometry.viewWidth} ${geometry.viewHeight}`,
|
|
2304
|
+
className: "w-full h-full pointer-events-none",
|
|
2305
|
+
preserveAspectRatio: "none",
|
|
2306
|
+
children: /* @__PURE__ */ jsx(
|
|
2307
|
+
"path",
|
|
2308
|
+
{
|
|
2309
|
+
d: geometry.d,
|
|
2310
|
+
fill: "none",
|
|
2311
|
+
stroke: strokePaint,
|
|
2312
|
+
strokeWidth: strokeWidth * 2,
|
|
2313
|
+
strokeDasharray: dashArray,
|
|
2314
|
+
vectorEffect: "non-scaling-stroke"
|
|
2315
|
+
}
|
|
2316
|
+
)
|
|
2317
|
+
}
|
|
2318
|
+
);
|
|
2319
|
+
}
|
|
2320
|
+
}
|
|
2321
|
+
if (element.type === "shape" && isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2322
|
+
const width = Math.max(element.width, 1);
|
|
2323
|
+
const height = Math.max(element.height, 1);
|
|
2324
|
+
const geometry = getPresetShapeVectorGeometry(
|
|
2325
|
+
element.shapeType,
|
|
2326
|
+
width,
|
|
2327
|
+
height,
|
|
2328
|
+
element.shapeAdjustments
|
|
2329
|
+
);
|
|
2330
|
+
if (geometry) {
|
|
2331
|
+
const gradient = buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2332
|
+
const gradientPaint = gradient ? svgGradientFillRef(gradient) : void 0;
|
|
2333
|
+
return /* @__PURE__ */ jsxs(
|
|
2334
|
+
"svg",
|
|
2335
|
+
{
|
|
2336
|
+
viewBox: `${geometry.minX} ${geometry.minY} ${geometry.viewWidth} ${geometry.viewHeight}`,
|
|
2337
|
+
className: "pointer-events-none",
|
|
2338
|
+
preserveAspectRatio: "none",
|
|
2339
|
+
style: {
|
|
2340
|
+
position: "absolute",
|
|
2341
|
+
left: geometry.minX,
|
|
2342
|
+
top: geometry.minY,
|
|
2343
|
+
width: geometry.viewWidth,
|
|
2344
|
+
height: geometry.viewHeight,
|
|
2345
|
+
overflow: "visible"
|
|
2346
|
+
},
|
|
2347
|
+
children: [
|
|
2348
|
+
animatesFill ? null : renderGradientDefs(gradient),
|
|
2349
|
+
/* @__PURE__ */ jsx(
|
|
2350
|
+
"path",
|
|
2351
|
+
{
|
|
2352
|
+
d: geometry.d,
|
|
2353
|
+
fill: hasFill ? animatesFill ? "inherit" : gradientPaint ?? fillPaint : "none",
|
|
2354
|
+
stroke: strokeWidth > 0 ? strokePaint : "none",
|
|
2355
|
+
strokeWidth,
|
|
2356
|
+
strokeDasharray: dashArray,
|
|
2357
|
+
vectorEffect: "non-scaling-stroke"
|
|
2358
|
+
}
|
|
2359
|
+
)
|
|
2360
|
+
]
|
|
2361
|
+
}
|
|
2362
|
+
);
|
|
2363
|
+
}
|
|
2364
|
+
}
|
|
2236
2365
|
if (isCalloutShape(normalizedType)) {
|
|
2237
2366
|
const width = Math.max(element.width, 1);
|
|
2238
2367
|
const height = Math.max(element.height, 1);
|
|
@@ -3835,4 +3964,4 @@ function stopPreviewAnimation() {
|
|
|
3835
3964
|
activePreview = null;
|
|
3836
3965
|
}
|
|
3837
3966
|
|
|
3838
|
-
export { ANIMATION_PRESET_OPTIONS, ARROW_SIZE_OPTIONS, CONNECTOR_ARROW_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_SECTION_GROUP_ID, DEFAULT_STROKE_COLOR, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, GRID_SIZE, HYPERLINK_COLOR, MIN_ELEMENT_SIZE, SHAPE_PRESETS, SHORTCUT_REFERENCE_ITEMS, SLIDE_NAV_THUMBNAIL_WIDTH, STROKE_DASH_OPTIONS, THEME_COLOR_SWATCHES, TOOLBAR_SECTIONS, UNGROUPED_SECTION_ID, ZOOM_TO_SELECTION_PADDING, build3DExtrusionData2 as build3DExtrusionData, buildLineGlowFilter, buildLineShadowCss, buildNotesPdf, buildPdfFromImageData, buildReactChartViewModel, buildTextBody3DSceneStyle2 as buildTextBody3DSceneStyle, cloneHistorySnapshot2 as cloneHistorySnapshot, cn, executeMediaCommand, getAnimationInitialStyle2 as getAnimationInitialStyle, getConnectorPathGeometry, getCropShapeClipPath, getDuotoneColors, getImageRenderStyle, getImageTilingStyle2 as getImageTilingStyle, getShapeVisualStyle, getTextLayoutStyle, getTextStyleForElement, getTextWarpStyle, hasDagDuotoneEffect, isConnectorOrLineElement, renderChartElement, renderConnectorMarker, renderDagDuotoneSvgFilter, renderMediaElement, renderTableElement, renderTextSegments, renderVectorShape, shouldRenderFallbackLabel, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation };
|
|
3967
|
+
export { ANIMATION_PRESET_OPTIONS, ARROW_SIZE_OPTIONS, CONNECTOR_ARROW_OPTIONS, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_SECTION_GROUP_ID, DEFAULT_STROKE_COLOR, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, GRID_SIZE, HYPERLINK_COLOR, MIN_ELEMENT_SIZE, SHAPE_PRESETS, SHORTCUT_REFERENCE_ITEMS, SLIDE_NAV_THUMBNAIL_WIDTH, STROKE_DASH_OPTIONS, THEME_COLOR_SWATCHES, TOOLBAR_SECTIONS, UNGROUPED_SECTION_ID, ZOOM_TO_SELECTION_PADDING, build3DExtrusionData2 as build3DExtrusionData, buildLineGlowFilter, buildLineShadowCss, buildNotesPdf, buildPdfFromImageData, buildReactChartViewModel, buildTextBody3DSceneStyle2 as buildTextBody3DSceneStyle, cloneHistorySnapshot2 as cloneHistorySnapshot, cn, executeMediaCommand, getAnimationInitialStyle2 as getAnimationInitialStyle, getConnectorPathGeometry, getCropShapeClipPath, getDuotoneColors, getImageRenderStyle, getImageSurfaceMaskStyle, getImageSurfaceStyle, getImageTilingStyle2 as getImageTilingStyle, getShapeVisualStyle, getTextLayoutStyle, getTextStyleForElement, getTextWarpStyle, hasDagDuotoneEffect, isConnectorOrLineElement, renderChartElement, renderConnectorMarker, renderDagDuotoneSvgFilter, renderMediaElement, renderTableElement, renderTextSegments, renderVectorShape, shouldRenderFallbackLabel, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation };
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYDEEINER_js = require('./chunk-YDEEINER.js');
|
|
4
4
|
var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var mcp = require('pptx-viewer-mcp');
|
|
6
6
|
var mcpSchemas = require('pptx-viewer-mcp/schemas');
|
|
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
|
|
|
14879
14879
|
};
|
|
14880
14880
|
let markdown;
|
|
14881
14881
|
try {
|
|
14882
|
-
const converter = new
|
|
14882
|
+
const converter = new chunkYDEEINER_js.PptxMarkdownConverter(
|
|
14883
14883
|
"",
|
|
14884
14884
|
{
|
|
14885
14885
|
sourceName: meta3.title ?? "deck.pptx",
|
|
@@ -15471,7 +15471,7 @@ var getTheme = (ctx) => {
|
|
|
15471
15471
|
name: theme?.name,
|
|
15472
15472
|
colorScheme: theme?.colorScheme,
|
|
15473
15473
|
fontScheme: theme?.fontScheme,
|
|
15474
|
-
availablePresets: Object.keys(
|
|
15474
|
+
availablePresets: Object.keys(chunkYDEEINER_js.ThemePresets)
|
|
15475
15475
|
};
|
|
15476
15476
|
};
|
|
15477
15477
|
var readExecutors = {
|
|
Binary file
|
|
Binary file
|