pptx-react-viewer 3.5.3 → 3.6.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/CHANGELOG.md +12 -0
- package/dist/{AiChatPanel-ZEM3ZVA6.js → AiChatPanel-LEOEDIW2.js} +25 -25
- package/dist/AiChatPanel-LEOEDIW2.js.br +0 -0
- package/dist/AiChatPanel-LEOEDIW2.js.gz +0 -0
- package/dist/{AiChatPanel-L2HGGEND.mjs → AiChatPanel-WRQGJJVD.mjs} +4 -4
- package/dist/AiChatPanel-WRQGJJVD.mjs.br +0 -0
- package/dist/AiChatPanel-WRQGJJVD.mjs.gz +0 -0
- package/dist/{Area3DChartScene-I7LMTNK5.js → Area3DChartScene-3TJ2GTGI.js} +2 -2
- package/dist/Area3DChartScene-3TJ2GTGI.js.br +0 -0
- package/dist/Area3DChartScene-3TJ2GTGI.js.gz +0 -0
- package/dist/{Area3DChartScene-EYNCHRB3.mjs → Area3DChartScene-SJC2ZB6R.mjs} +1 -1
- package/dist/{Line3DChartScene-QYBKXNOD.mjs.br → Area3DChartScene-SJC2ZB6R.mjs.br} +1 -1
- package/dist/Area3DChartScene-SJC2ZB6R.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-VPKQDPIO.js → Bar3DChartScene-2ZGOMOZO.js} +2 -2
- package/dist/Bar3DChartScene-2ZGOMOZO.js.br +0 -0
- package/dist/Bar3DChartScene-2ZGOMOZO.js.gz +0 -0
- package/dist/{Bar3DChartScene-6HQ6QWNB.mjs → Bar3DChartScene-SPER4LQA.mjs} +1 -1
- package/dist/{Bar3DChartScene-6HQ6QWNB.mjs.br → Bar3DChartScene-SPER4LQA.mjs.br} +0 -0
- package/dist/Bar3DChartScene-SPER4LQA.mjs.gz +0 -0
- package/dist/{Line3DChartScene-VV362RMX.js → Line3DChartScene-42FYFGLU.js} +2 -2
- package/dist/Line3DChartScene-42FYFGLU.js.br +0 -0
- package/dist/Line3DChartScene-42FYFGLU.js.gz +0 -0
- package/dist/{Line3DChartScene-QYBKXNOD.mjs → Line3DChartScene-FH3YHPXE.mjs} +1 -1
- package/dist/{Area3DChartScene-EYNCHRB3.mjs.br → Line3DChartScene-FH3YHPXE.mjs.br} +1 -1
- package/dist/Line3DChartScene-FH3YHPXE.mjs.gz +0 -0
- package/dist/{Model3DScene-YTLWTG52.mjs → Model3DScene-2BCR2YYD.mjs} +1 -1
- package/dist/{Model3DScene-YTLWTG52.mjs.br → Model3DScene-2BCR2YYD.mjs.br} +0 -0
- package/dist/Model3DScene-2BCR2YYD.mjs.gz +0 -0
- package/dist/{Model3DScene-XA57KXA5.js → Model3DScene-EIU2GVUZ.js} +2 -2
- package/dist/Model3DScene-EIU2GVUZ.js.br +0 -0
- package/dist/Model3DScene-EIU2GVUZ.js.gz +0 -0
- package/dist/{PieChart3DScene-INBL4F5Z.mjs → PieChart3DScene-QFQUJFDP.mjs} +1 -1
- package/dist/{PieChart3DScene-INBL4F5Z.mjs.br → PieChart3DScene-QFQUJFDP.mjs.br} +0 -0
- package/dist/PieChart3DScene-QFQUJFDP.mjs.gz +0 -0
- package/dist/{PieChart3DScene-IFZMTN5H.js → PieChart3DScene-VQOHZPHI.js} +2 -2
- package/dist/PieChart3DScene-VQOHZPHI.js.br +0 -0
- package/dist/PieChart3DScene-VQOHZPHI.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-EV6DBPJS.mjs → SurfaceChart3DScene-CGXMRBCL.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-EV6DBPJS.mjs.br → SurfaceChart3DScene-CGXMRBCL.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-FRSZVIVB.js → SurfaceChart3DScene-FTVXZN6O.js} +2 -2
- package/dist/SurfaceChart3DScene-FTVXZN6O.js.br +0 -0
- package/dist/SurfaceChart3DScene-FTVXZN6O.js.gz +0 -0
- package/dist/{chunk-QA573RUB.js → chunk-7VPDHSWF.js} +330 -349
- package/dist/chunk-7VPDHSWF.js.br +0 -0
- package/dist/chunk-7VPDHSWF.js.gz +0 -0
- package/dist/{chunk-HHDPQJF3.js → chunk-AL2KLPOJ.js} +32437 -22179
- package/dist/chunk-AL2KLPOJ.js.br +0 -0
- package/dist/chunk-AL2KLPOJ.js.gz +0 -0
- package/dist/{chunk-7AL6KAFX.mjs → chunk-FG5VQFWP.mjs} +193 -71
- package/dist/chunk-FG5VQFWP.mjs.br +0 -0
- package/dist/chunk-FG5VQFWP.mjs.gz +0 -0
- package/dist/{chunk-UTIMT5CZ.js → chunk-MZI4DG3S.js} +12 -0
- package/dist/chunk-MZI4DG3S.js.br +0 -0
- package/dist/{chunk-UTIMT5CZ.js.gz → chunk-MZI4DG3S.js.gz} +0 -0
- package/dist/{chunk-PPL3WBC7.js → chunk-NFOOONND.js} +1359 -1237
- package/dist/chunk-NFOOONND.js.br +0 -0
- package/dist/chunk-NFOOONND.js.gz +0 -0
- package/dist/{chunk-MSRRBA7G.mjs → chunk-T3V5FBXJ.mjs} +29 -1
- package/dist/chunk-T3V5FBXJ.mjs.br +0 -0
- package/dist/chunk-T3V5FBXJ.mjs.gz +0 -0
- package/dist/{chunk-JCJ3EPG6.mjs → chunk-TGCSZXOG.mjs} +12 -0
- package/dist/chunk-TGCSZXOG.mjs.br +0 -0
- package/dist/{chunk-JCJ3EPG6.mjs.gz → chunk-TGCSZXOG.mjs.gz} +0 -0
- package/dist/{chunk-3WM5TUY7.mjs → chunk-VYNICQ4O.mjs} +58 -37
- package/dist/chunk-VYNICQ4O.mjs.br +0 -0
- package/dist/chunk-VYNICQ4O.mjs.gz +0 -0
- package/dist/{chunk-KOLCCOTS.mjs → chunk-WX7AFFBZ.mjs} +142 -161
- package/dist/chunk-WX7AFFBZ.mjs.br +0 -0
- package/dist/chunk-WX7AFFBZ.mjs.gz +0 -0
- package/dist/{chunk-SIM2LXO2.js → chunk-ZHSBMG37.js} +490 -469
- package/dist/chunk-ZHSBMG37.js.br +0 -0
- package/dist/chunk-ZHSBMG37.js.gz +0 -0
- package/dist/{chunk-QPHGHUUJ.mjs → chunk-ZUSYUWOV.mjs} +32414 -22179
- package/dist/chunk-ZUSYUWOV.mjs.br +0 -0
- package/dist/chunk-ZUSYUWOV.mjs.gz +0 -0
- package/dist/{chunk-BBSFZLYI.js → chunk-ZWPHUPL4.js} +33 -5
- package/dist/chunk-ZWPHUPL4.js.br +0 -0
- package/dist/chunk-ZWPHUPL4.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +599 -33
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +610 -33
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/{useViewerBuildingBlocks-f6oNGKMX.d.ts → useViewerBuildingBlocks-C8F_4Pzb.d.ts} +3 -1
- package/dist/useViewerBuildingBlocks-C8F_4Pzb.d.ts.map +1 -0
- package/dist/viewer/index.d.ts +552 -33
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-L2HGGEND.mjs.br +0 -0
- package/dist/AiChatPanel-L2HGGEND.mjs.gz +0 -0
- package/dist/AiChatPanel-ZEM3ZVA6.js.br +0 -0
- package/dist/AiChatPanel-ZEM3ZVA6.js.gz +0 -0
- package/dist/Area3DChartScene-EYNCHRB3.mjs.gz +0 -0
- package/dist/Area3DChartScene-I7LMTNK5.js.br +0 -0
- package/dist/Area3DChartScene-I7LMTNK5.js.gz +0 -0
- package/dist/Bar3DChartScene-6HQ6QWNB.mjs.gz +0 -0
- package/dist/Bar3DChartScene-VPKQDPIO.js.br +0 -0
- package/dist/Bar3DChartScene-VPKQDPIO.js.gz +0 -0
- package/dist/Line3DChartScene-QYBKXNOD.mjs.gz +0 -0
- package/dist/Line3DChartScene-VV362RMX.js.br +0 -0
- package/dist/Line3DChartScene-VV362RMX.js.gz +0 -0
- package/dist/Model3DScene-XA57KXA5.js.br +0 -0
- package/dist/Model3DScene-XA57KXA5.js.gz +0 -0
- package/dist/Model3DScene-YTLWTG52.mjs.gz +0 -0
- package/dist/PieChart3DScene-IFZMTN5H.js.br +0 -0
- package/dist/PieChart3DScene-IFZMTN5H.js.gz +0 -0
- package/dist/PieChart3DScene-INBL4F5Z.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-EV6DBPJS.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-FRSZVIVB.js.br +0 -0
- package/dist/SurfaceChart3DScene-FRSZVIVB.js.gz +0 -0
- package/dist/chunk-3WM5TUY7.mjs.br +0 -0
- package/dist/chunk-3WM5TUY7.mjs.gz +0 -0
- package/dist/chunk-7AL6KAFX.mjs.br +0 -0
- package/dist/chunk-7AL6KAFX.mjs.gz +0 -0
- package/dist/chunk-BBSFZLYI.js.br +0 -0
- package/dist/chunk-BBSFZLYI.js.gz +0 -0
- package/dist/chunk-HHDPQJF3.js.br +0 -0
- package/dist/chunk-HHDPQJF3.js.gz +0 -0
- package/dist/chunk-JCJ3EPG6.mjs.br +0 -0
- package/dist/chunk-KOLCCOTS.mjs.br +0 -0
- package/dist/chunk-KOLCCOTS.mjs.gz +0 -0
- package/dist/chunk-MSRRBA7G.mjs.br +0 -0
- package/dist/chunk-MSRRBA7G.mjs.gz +0 -0
- package/dist/chunk-PPL3WBC7.js.br +0 -0
- package/dist/chunk-PPL3WBC7.js.gz +0 -0
- package/dist/chunk-QA573RUB.js.br +0 -0
- package/dist/chunk-QA573RUB.js.gz +0 -0
- package/dist/chunk-QPHGHUUJ.mjs.br +0 -0
- package/dist/chunk-QPHGHUUJ.mjs.gz +0 -0
- package/dist/chunk-SIM2LXO2.js.br +0 -0
- package/dist/chunk-SIM2LXO2.js.gz +0 -0
- package/dist/chunk-UTIMT5CZ.js.br +0 -0
- package/dist/useViewerBuildingBlocks-f6oNGKMX.d.ts.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ThemePresets, PptxMarkdownConverter, hasTextProperties, hasShapeProperties } from './chunk-
|
|
1
|
+
import { ThemePresets, PptxMarkdownConverter, hasTextProperties, hasShapeProperties } from './chunk-ZUSYUWOV.mjs';
|
|
2
2
|
import { __export } from './chunk-XGB3TDIC.mjs';
|
|
3
3
|
import * as mcp from 'pptx-viewer-mcp';
|
|
4
4
|
import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
|
|
@@ -15790,6 +15790,34 @@ var MCP_TOOL_ENTRIES = {
|
|
|
15790
15790
|
"slides",
|
|
15791
15791
|
"Update chart data"
|
|
15792
15792
|
),
|
|
15793
|
+
chart_user_shape_list: entry(
|
|
15794
|
+
"List a chart's drawing-overlay shapes (c:userShapes).",
|
|
15795
|
+
mcpSchemas.ListChartUserShapesSchema,
|
|
15796
|
+
mcp.listChartUserShapesT,
|
|
15797
|
+
"read",
|
|
15798
|
+
"List chart overlay shapes"
|
|
15799
|
+
),
|
|
15800
|
+
chart_user_shape_add: entry(
|
|
15801
|
+
"Add a drawing-overlay shape (text box or connector) to a chart's c:userShapes.",
|
|
15802
|
+
mcpSchemas.AddChartUserShapeSchema,
|
|
15803
|
+
mcp.addChartUserShapeT,
|
|
15804
|
+
"slides",
|
|
15805
|
+
"Add chart overlay shape"
|
|
15806
|
+
),
|
|
15807
|
+
chart_user_shape_update: entry(
|
|
15808
|
+
"Move, resize, or restyle one of a chart's drawing-overlay shapes by index.",
|
|
15809
|
+
mcpSchemas.UpdateChartUserShapeSchema,
|
|
15810
|
+
mcp.updateChartUserShapeT,
|
|
15811
|
+
"slides",
|
|
15812
|
+
"Update chart overlay shape"
|
|
15813
|
+
),
|
|
15814
|
+
chart_user_shape_remove: entry(
|
|
15815
|
+
"Remove one of a chart's drawing-overlay shapes by index.",
|
|
15816
|
+
mcpSchemas.RemoveChartUserShapeSchema,
|
|
15817
|
+
mcp.removeChartUserShapeT,
|
|
15818
|
+
"slides",
|
|
15819
|
+
"Remove chart overlay shape"
|
|
15820
|
+
),
|
|
15793
15821
|
manage_smart_art: entry(
|
|
15794
15822
|
"Manage SmartArt: get, add, remove, reorder, promote/demote nodes, or decompose to shapes.",
|
|
15795
15823
|
mcpSchemas.ManageSmartArtSchema,
|
|
Binary file
|
|
Binary file
|
|
@@ -3690,6 +3690,18 @@ var translationsEn = {
|
|
|
3690
3690
|
"pptx.chart.bar3DShapeLabel": "Column shape",
|
|
3691
3691
|
"pptx.chart.radarStyleLabel": "Radar style",
|
|
3692
3692
|
"pptx.chart.surfaceWireframeLabel": "Surface",
|
|
3693
|
+
"pptx.chart.userShapes": "Overlay shapes",
|
|
3694
|
+
"pptx.chart.userShapesEmpty": "No overlay shapes on this chart.",
|
|
3695
|
+
"pptx.chart.userShapeAddTextBox": "Add text box",
|
|
3696
|
+
"pptx.chart.userShapeDelete": "Delete overlay shape",
|
|
3697
|
+
"pptx.chart.userShapeFrom": "From",
|
|
3698
|
+
"pptx.chart.userShapeTo": "To",
|
|
3699
|
+
"pptx.chart.userShapeNotEditable": "This overlay shape type can be viewed but not edited here.",
|
|
3700
|
+
"pptx.chart.userShapeKindSp": "Shape",
|
|
3701
|
+
"pptx.chart.userShapeKindCxnSp": "Connector",
|
|
3702
|
+
"pptx.chart.userShapeKindPic": "Picture",
|
|
3703
|
+
"pptx.chart.userShapeKindGrpSp": "Group",
|
|
3704
|
+
"pptx.chart.userShapeKindGraphicFrame": "Embedded object",
|
|
3693
3705
|
"pptx.masterView.addLayout": "Insert Layout",
|
|
3694
3706
|
"pptx.masterView.duplicateLayout": "Duplicate Layout",
|
|
3695
3707
|
"pptx.masterView.deleteLayout": "Delete Layout",
|
|
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, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-
|
|
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, cancelBuildReveal, PresentationAnimationController, scheduleAutoAdvanceChain, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, 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, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight,
|
|
3
|
-
import { translationsEn } 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, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-WX7AFFBZ.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, cancelBuildReveal, PresentationAnimationController, resolveMediaTimeNodeElementIds, scheduleAutoAdvanceChain, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canInteractWithElement, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, toggleStageElementMedia, resolveOleVerbTarget, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, 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, replyToCommentInList, 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, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-ZUSYUWOV.mjs';
|
|
3
|
+
import { translationsEn } from './chunk-TGCSZXOG.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
|
|
|
@@ -1104,6 +1104,7 @@ function useAnimationPlayback(input) {
|
|
|
1104
1104
|
const activeAnimationGroupRef = useRef(null);
|
|
1105
1105
|
const activeAnimationEndAtRef = useRef(0);
|
|
1106
1106
|
const seededCompletedRef = useRef(false);
|
|
1107
|
+
const mediaTimeNodeElementIdsRef = useRef(/* @__PURE__ */ new Map());
|
|
1107
1108
|
const lastSeedCompletedRef = useRef(false);
|
|
1108
1109
|
const buildPlaybackContext = useCallback(() => {
|
|
1109
1110
|
return {
|
|
@@ -1112,7 +1113,8 @@ function useAnimationPlayback(input) {
|
|
|
1112
1113
|
buildHandle: buildRafRef,
|
|
1113
1114
|
onPlayActionSound,
|
|
1114
1115
|
playSound: playAnimationSound,
|
|
1115
|
-
stopSound: stopAnimationSound
|
|
1116
|
+
stopSound: stopAnimationSound,
|
|
1117
|
+
mediaTimeNodeElementIds: mediaTimeNodeElementIdsRef.current
|
|
1116
1118
|
};
|
|
1117
1119
|
}, [onPlayActionSound]);
|
|
1118
1120
|
useEffect(() => {
|
|
@@ -1139,6 +1141,7 @@ function useAnimationPlayback(input) {
|
|
|
1139
1141
|
const slide = slides[slideIndex];
|
|
1140
1142
|
if (!slide) {
|
|
1141
1143
|
controllerRef.current = null;
|
|
1144
|
+
mediaTimeNodeElementIdsRef.current = /* @__PURE__ */ new Map();
|
|
1142
1145
|
setPresentationElementStates(/* @__PURE__ */ new Map());
|
|
1143
1146
|
setPresentationKeyframesCss("");
|
|
1144
1147
|
setInteractiveTriggerShapeIds(/* @__PURE__ */ new Set());
|
|
@@ -1147,6 +1150,9 @@ function useAnimationPlayback(input) {
|
|
|
1147
1150
|
}
|
|
1148
1151
|
const controller = PresentationAnimationController.fromSlide(slide);
|
|
1149
1152
|
controllerRef.current = controller;
|
|
1153
|
+
mediaTimeNodeElementIdsRef.current = resolveMediaTimeNodeElementIds(
|
|
1154
|
+
slide.nativeAnimations ?? []
|
|
1155
|
+
);
|
|
1150
1156
|
setPresentationKeyframesCss(controller.keyframesCss);
|
|
1151
1157
|
setInteractiveTriggerShapeIds(controller.interactiveTriggerShapeIds);
|
|
1152
1158
|
setHoverTriggerShapeIds(controller.hoverTriggerShapeIds);
|
|
@@ -1865,10 +1871,13 @@ function executeSlideTransition(nextSlideIndex, deps) {
|
|
|
1865
1871
|
deps.onSetActiveSlideIndex(nextSlideIndex);
|
|
1866
1872
|
deps.setPresentationSlideVisible(true);
|
|
1867
1873
|
deps.seedSlideAnimations(nextSlideIndex, { completed: deps.seedCompleted });
|
|
1874
|
+
const soundAction = resolveTransitionSoundAction(transition);
|
|
1875
|
+
if (soundAction.kind === "play" && deps.onPlayActionSound) {
|
|
1876
|
+
deps.onPlayActionSound(soundAction.soundPath, { loop: soundAction.loop });
|
|
1877
|
+
} else if (soundAction.kind === "stop" && deps.onStopActionSound) {
|
|
1878
|
+
deps.onStopActionSound();
|
|
1879
|
+
}
|
|
1868
1880
|
if (durationMs > 0 && transition) {
|
|
1869
|
-
if (transition.soundPath && deps.onPlayActionSound) {
|
|
1870
|
-
deps.onPlayActionSound(transition.soundPath, { loop: transition.soundLoop === true });
|
|
1871
|
-
}
|
|
1872
1881
|
deps.setTransitionOverlay({
|
|
1873
1882
|
outgoingSlideIndex: deps.currentSlideIndex,
|
|
1874
1883
|
incomingSlideIndex: nextSlideIndex,
|
|
@@ -1902,6 +1911,7 @@ function useSlideNavigation(input) {
|
|
|
1902
1911
|
onSetMode,
|
|
1903
1912
|
onSetActiveSlideIndex,
|
|
1904
1913
|
onPlayActionSound,
|
|
1914
|
+
onStopActionSound,
|
|
1905
1915
|
loopContinuously,
|
|
1906
1916
|
useTimings,
|
|
1907
1917
|
onAdvancePastLastSlide,
|
|
@@ -1978,6 +1988,7 @@ function useSlideNavigation(input) {
|
|
|
1978
1988
|
slides,
|
|
1979
1989
|
currentSlideIndex: presentationSlideIndex,
|
|
1980
1990
|
onPlayActionSound,
|
|
1991
|
+
onStopActionSound,
|
|
1981
1992
|
setPresentationSlideVisible,
|
|
1982
1993
|
clearPresentationTimers,
|
|
1983
1994
|
setPresentationSlideIndex,
|
|
@@ -2001,6 +2012,7 @@ function useSlideNavigation(input) {
|
|
|
2001
2012
|
loopContinuously,
|
|
2002
2013
|
onAdvancePastLastSlide,
|
|
2003
2014
|
onPlayActionSound,
|
|
2015
|
+
onStopActionSound,
|
|
2004
2016
|
onSetActiveSlideIndex,
|
|
2005
2017
|
onSetMode,
|
|
2006
2018
|
playNextAnimationGroup,
|
|
@@ -2032,6 +2044,7 @@ function useSlideNavigation(input) {
|
|
|
2032
2044
|
slides,
|
|
2033
2045
|
currentSlideIndex: presentationSlideIndex,
|
|
2034
2046
|
onPlayActionSound,
|
|
2047
|
+
onStopActionSound,
|
|
2035
2048
|
setPresentationSlideVisible,
|
|
2036
2049
|
clearPresentationTimers,
|
|
2037
2050
|
setPresentationSlideIndex,
|
|
@@ -2054,6 +2067,7 @@ function useSlideNavigation(input) {
|
|
|
2054
2067
|
[
|
|
2055
2068
|
clearPresentationTimers,
|
|
2056
2069
|
onPlayActionSound,
|
|
2070
|
+
onStopActionSound,
|
|
2057
2071
|
onSetActiveSlideIndex,
|
|
2058
2072
|
presentationSlideIndex,
|
|
2059
2073
|
presentationTimersRef,
|
|
@@ -2327,6 +2341,7 @@ function usePresentationMode(input) {
|
|
|
2327
2341
|
onSetMode,
|
|
2328
2342
|
onSetActiveSlideIndex,
|
|
2329
2343
|
onPlayActionSound,
|
|
2344
|
+
onStopActionSound,
|
|
2330
2345
|
onSetPointerTool,
|
|
2331
2346
|
onEraseAnnotations,
|
|
2332
2347
|
onToggleInkMarkup,
|
|
@@ -2420,6 +2435,7 @@ function usePresentationMode(input) {
|
|
|
2420
2435
|
onSetMode,
|
|
2421
2436
|
onSetActiveSlideIndex,
|
|
2422
2437
|
onPlayActionSound,
|
|
2438
|
+
onStopActionSound,
|
|
2423
2439
|
loopContinuously,
|
|
2424
2440
|
useTimings,
|
|
2425
2441
|
onAdvancePastLastSlide: actionExtensions.handleAdvancePastLastSlide,
|
|
@@ -4087,34 +4103,14 @@ function useLoadContent({
|
|
|
4087
4103
|
mediaDataUrls.clear();
|
|
4088
4104
|
await Promise.all(
|
|
4089
4105
|
mediaElements.map(async (mediaElement) => {
|
|
4090
|
-
const
|
|
4091
|
-
if (!mediaPath) {
|
|
4106
|
+
const resolved = await resolveMediaElementSource(mediaElement, handler);
|
|
4107
|
+
if (resolved.missing || !resolved.mediaPath || !resolved.url) {
|
|
4092
4108
|
mediaElement.mediaMissing = true;
|
|
4093
4109
|
return;
|
|
4094
4110
|
}
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
const arrayBuffer = await handler.getMediaArrayBuffer(mediaPath);
|
|
4099
|
-
if (arrayBuffer) {
|
|
4100
|
-
const mimeType = mediaElement.mediaMimeType || "application/octet-stream";
|
|
4101
|
-
const blob = new Blob([arrayBuffer], { type: mimeType });
|
|
4102
|
-
const blobUrl = URL.createObjectURL(blob);
|
|
4103
|
-
loadBlobUrls.push(blobUrl);
|
|
4104
|
-
mediaDataUrls.set(mediaPath, blobUrl);
|
|
4105
|
-
} else {
|
|
4106
|
-
mediaElement.mediaMissing = true;
|
|
4107
|
-
}
|
|
4108
|
-
} else {
|
|
4109
|
-
const dataUrl = await handler.getImageData(mediaPath);
|
|
4110
|
-
if (dataUrl) {
|
|
4111
|
-
mediaDataUrls.set(mediaPath, dataUrl);
|
|
4112
|
-
} else {
|
|
4113
|
-
mediaElement.mediaMissing = true;
|
|
4114
|
-
}
|
|
4115
|
-
}
|
|
4116
|
-
} catch {
|
|
4117
|
-
mediaElement.mediaMissing = true;
|
|
4111
|
+
mediaDataUrls.set(resolved.mediaPath, resolved.url);
|
|
4112
|
+
if (resolved.isBlobUrl) {
|
|
4113
|
+
loadBlobUrls.push(resolved.url);
|
|
4118
4114
|
}
|
|
4119
4115
|
})
|
|
4120
4116
|
);
|
|
@@ -5199,10 +5195,18 @@ function useCanvasInteractions(input) {
|
|
|
5199
5195
|
const newSegments = remapTextToSegments(committedText, el.textSegments, el.textStyle);
|
|
5200
5196
|
const editorEl = document.querySelector("[data-inline-editor]");
|
|
5201
5197
|
const newHeight = resolveInlineEditAutoFitHeight(el.textStyle, el.height, editorEl);
|
|
5198
|
+
const shrink = resolveInlineEditNormAutofitShrink(el.textStyle, el.height, editorEl);
|
|
5202
5199
|
ops.updateElementById(editId, {
|
|
5203
5200
|
text: committedText,
|
|
5204
5201
|
textSegments: newSegments,
|
|
5205
|
-
...newHeight !== void 0 ? { height: newHeight } : {}
|
|
5202
|
+
...newHeight !== void 0 ? { height: newHeight } : {},
|
|
5203
|
+
...shrink !== "unchanged" ? {
|
|
5204
|
+
textStyle: {
|
|
5205
|
+
...el.textStyle,
|
|
5206
|
+
autoFitFontScale: shrink.fontScale,
|
|
5207
|
+
autoFitLineSpacingReduction: shrink.lnSpcReduction
|
|
5208
|
+
}
|
|
5209
|
+
} : {}
|
|
5206
5210
|
});
|
|
5207
5211
|
history.markDirty();
|
|
5208
5212
|
}
|
|
@@ -6299,6 +6303,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6299
6303
|
if (ids.length < 2 || !activeSlide) {
|
|
6300
6304
|
return;
|
|
6301
6305
|
}
|
|
6306
|
+
if (!selectedElements.every((el) => canInteractWithElement(el, "group"))) {
|
|
6307
|
+
return;
|
|
6308
|
+
}
|
|
6302
6309
|
const { elements, groupId } = groupElements(ops.activeElements, ids, generateElementId());
|
|
6303
6310
|
if (groupId === null) {
|
|
6304
6311
|
return;
|
|
@@ -6311,6 +6318,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6311
6318
|
if (!selectedElement || selectedElement.type !== "group" || !activeSlide) {
|
|
6312
6319
|
return;
|
|
6313
6320
|
}
|
|
6321
|
+
if (!canInteractWithElement(selectedElement, "group")) {
|
|
6322
|
+
return;
|
|
6323
|
+
}
|
|
6314
6324
|
const group = selectedElement;
|
|
6315
6325
|
const intoTemplate = isTemplateElementId(group.id);
|
|
6316
6326
|
const childIds = group.children.map(
|
|
@@ -6374,6 +6384,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6374
6384
|
history.markDirty();
|
|
6375
6385
|
};
|
|
6376
6386
|
const canDistribute = selectedElements.length >= 3;
|
|
6387
|
+
const selectionGroupable = selectedElements.every((el) => canInteractWithElement(el, "group"));
|
|
6377
6388
|
const handleMoveLayer = (direction) => {
|
|
6378
6389
|
if (!selectedElement || !activeSlide) {
|
|
6379
6390
|
return;
|
|
@@ -6410,6 +6421,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6410
6421
|
handleAlignElements,
|
|
6411
6422
|
handleDistributeElements,
|
|
6412
6423
|
canDistribute,
|
|
6424
|
+
selectionGroupable,
|
|
6413
6425
|
handleMoveLayer,
|
|
6414
6426
|
handleMoveLayerToEdge,
|
|
6415
6427
|
handleMergeShapes,
|
|
@@ -6428,6 +6440,7 @@ function useElementManipulation(input) {
|
|
|
6428
6440
|
handleAlignElements,
|
|
6429
6441
|
handleDistributeElements,
|
|
6430
6442
|
canDistribute,
|
|
6443
|
+
selectionGroupable,
|
|
6431
6444
|
handleMoveLayer,
|
|
6432
6445
|
handleMoveLayerToEdge,
|
|
6433
6446
|
handleMergeShapes,
|
|
@@ -6494,6 +6507,7 @@ function useElementManipulation(input) {
|
|
|
6494
6507
|
handleAlignElements,
|
|
6495
6508
|
handleDistributeElements,
|
|
6496
6509
|
canDistribute,
|
|
6510
|
+
selectionGroupable,
|
|
6497
6511
|
handleMoveLayer,
|
|
6498
6512
|
handleMoveLayerToEdge,
|
|
6499
6513
|
handleMergeShapes,
|
|
@@ -8941,6 +8955,12 @@ function usePresentationSetup(input) {
|
|
|
8941
8955
|
setMode(nextMode);
|
|
8942
8956
|
},
|
|
8943
8957
|
onSetActiveSlideIndex: setActiveSlideIndex,
|
|
8958
|
+
// `p:sndAc/p:endSnd` ("Stop Previous Sound"): silences whatever transition
|
|
8959
|
+
// sound is currently looping. A non-looping transition sound plays through
|
|
8960
|
+
// its own ad hoc `Audio` below rather than this singleton (it finishes on
|
|
8961
|
+
// its own in a few seconds either way), so only the loop case is stoppable
|
|
8962
|
+
// here - matching the common "Loop Until Next Sound... then Stop" pairing.
|
|
8963
|
+
onStopActionSound: () => stopAnimationSound(),
|
|
8944
8964
|
onPlayActionSound: (soundPath, options) => {
|
|
8945
8965
|
void (async () => {
|
|
8946
8966
|
if (!soundPath) {
|
|
@@ -10779,11 +10799,11 @@ function buildCanvasProps(input) {
|
|
|
10779
10799
|
slide: activeSlide
|
|
10780
10800
|
});
|
|
10781
10801
|
const tableStyleContext = s.theme || s.tableStyleMap ? { theme: s.theme, tableStyleMap: s.tableStyleMap } : void 0;
|
|
10782
|
-
const openExternalUrl = (url) => {
|
|
10802
|
+
const openExternalUrl = (url, target) => {
|
|
10783
10803
|
if (shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
|
|
10784
10804
|
return;
|
|
10785
10805
|
}
|
|
10786
|
-
safeOpenUrl(url);
|
|
10806
|
+
safeOpenUrl(url, target);
|
|
10787
10807
|
};
|
|
10788
10808
|
const handleActionClick = (elementId, action) => {
|
|
10789
10809
|
if (mode === "present") {
|
|
@@ -10797,7 +10817,7 @@ function buildCanvasProps(input) {
|
|
|
10797
10817
|
openExternalUrl(action.url);
|
|
10798
10818
|
}
|
|
10799
10819
|
};
|
|
10800
|
-
const handleHyperlinkClick = (url) => {
|
|
10820
|
+
const handleHyperlinkClick = (url, target) => {
|
|
10801
10821
|
if (isPpactionUrl(url)) {
|
|
10802
10822
|
if (mode === "present") {
|
|
10803
10823
|
const parsed = parsePpactionUrl(url);
|
|
@@ -10810,7 +10830,7 @@ function buildCanvasProps(input) {
|
|
|
10810
10830
|
}
|
|
10811
10831
|
return;
|
|
10812
10832
|
}
|
|
10813
|
-
openExternalUrl(url);
|
|
10833
|
+
openExternalUrl(url, target);
|
|
10814
10834
|
};
|
|
10815
10835
|
return {
|
|
10816
10836
|
activeSlide: effectiveSlide,
|
|
@@ -11103,6 +11123,7 @@ function buildToolbarProps(input) {
|
|
|
11103
11123
|
onUngroupElement: manipulation.handleUngroupElement,
|
|
11104
11124
|
onUpdateElementStyle: ops.updateSelectedShapeStyle,
|
|
11105
11125
|
selectedCount: s.selectedElementIds.length > 0 ? s.selectedElementIds.length : selectionSize,
|
|
11126
|
+
selectionGroupable: manipulation.selectionGroupable,
|
|
11106
11127
|
onOpenHyperlinkDialog: () => dialogs.setIsHyperlinkDialogOpen(true),
|
|
11107
11128
|
onDuplicate: manipulation.handleDuplicate,
|
|
11108
11129
|
onDelete: manipulation.handleDelete,
|
|
Binary file
|
|
Binary file
|