pptx-react-viewer 3.11.0 → 3.13.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 +40 -0
- package/dist/{AiChatPanel-A3ZMMVUA.js → AiChatPanel-E53JJRZX.js} +25 -25
- package/dist/AiChatPanel-E53JJRZX.js.br +0 -0
- package/dist/AiChatPanel-E53JJRZX.js.gz +0 -0
- package/dist/{AiChatPanel-L5H455NZ.mjs → AiChatPanel-JTXC5WWH.mjs} +4 -4
- package/dist/AiChatPanel-JTXC5WWH.mjs.br +0 -0
- package/dist/AiChatPanel-JTXC5WWH.mjs.gz +0 -0
- package/dist/{Area3DChartScene-R2CKCYCB.js → Area3DChartScene-J7G54OH4.js} +2 -2
- package/dist/Area3DChartScene-J7G54OH4.js.br +0 -0
- package/dist/Area3DChartScene-J7G54OH4.js.gz +0 -0
- package/dist/{Area3DChartScene-OAD36KIX.mjs → Area3DChartScene-JQ2VU73H.mjs} +1 -1
- package/dist/Area3DChartScene-JQ2VU73H.mjs.br +0 -0
- package/dist/Area3DChartScene-JQ2VU73H.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-XNNXF26T.mjs → Bar3DChartScene-5HC7LYBH.mjs} +1 -1
- package/dist/Bar3DChartScene-5HC7LYBH.mjs.br +0 -0
- package/dist/Bar3DChartScene-5HC7LYBH.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-CRRPMXGQ.js → Bar3DChartScene-JV3A2P6O.js} +2 -2
- package/dist/Bar3DChartScene-JV3A2P6O.js.br +0 -0
- package/dist/Bar3DChartScene-JV3A2P6O.js.gz +0 -0
- package/dist/{Line3DChartScene-MNNPB3LZ.mjs → Line3DChartScene-4ZAOOU7U.mjs} +1 -1
- package/dist/Line3DChartScene-4ZAOOU7U.mjs.br +0 -0
- package/dist/Line3DChartScene-4ZAOOU7U.mjs.gz +0 -0
- package/dist/{Line3DChartScene-44PLZML2.js → Line3DChartScene-7SN7TVKQ.js} +2 -2
- package/dist/Line3DChartScene-7SN7TVKQ.js.br +0 -0
- package/dist/Line3DChartScene-7SN7TVKQ.js.gz +0 -0
- package/dist/{Model3DScene-RYPYQPJH.js → Model3DScene-GQANXXQD.js} +2 -2
- package/dist/Model3DScene-GQANXXQD.js.br +0 -0
- package/dist/Model3DScene-GQANXXQD.js.gz +0 -0
- package/dist/{Model3DScene-5MUREFLY.mjs → Model3DScene-GWIBUQ2U.mjs} +1 -1
- package/dist/Model3DScene-GWIBUQ2U.mjs.br +0 -0
- package/dist/Model3DScene-GWIBUQ2U.mjs.gz +0 -0
- package/dist/{PieChart3DScene-GACYCSSQ.js → PieChart3DScene-QPFDRMEA.js} +2 -2
- package/dist/PieChart3DScene-QPFDRMEA.js.br +0 -0
- package/dist/PieChart3DScene-QPFDRMEA.js.gz +0 -0
- package/dist/{PieChart3DScene-KYZSSG5X.mjs → PieChart3DScene-RDTOLFTD.mjs} +1 -1
- package/dist/PieChart3DScene-RDTOLFTD.mjs.br +0 -0
- package/dist/PieChart3DScene-RDTOLFTD.mjs.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-ZUP4PRUZ.mjs → SurfaceChart3DScene-5JQCRWA5.mjs} +1 -1
- package/dist/SurfaceChart3DScene-5JQCRWA5.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-5JQCRWA5.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-RI5G4BHS.js → SurfaceChart3DScene-JLYGC7QU.js} +2 -2
- package/dist/SurfaceChart3DScene-JLYGC7QU.js.br +0 -0
- package/dist/SurfaceChart3DScene-JLYGC7QU.js.gz +0 -0
- package/dist/{chunk-Y6GG2OOW.js → chunk-3AJ54EAB.js} +5 -0
- package/dist/chunk-3AJ54EAB.js.br +0 -0
- package/dist/chunk-3AJ54EAB.js.gz +0 -0
- package/dist/{chunk-BX4XVY5X.js → chunk-G2Z7QULX.js} +5 -5
- package/dist/chunk-G2Z7QULX.js.br +0 -0
- package/dist/chunk-G2Z7QULX.js.gz +0 -0
- package/dist/{chunk-MRBHJ26I.js → chunk-H3GHGSGW.js} +586 -503
- package/dist/chunk-H3GHGSGW.js.br +0 -0
- package/dist/chunk-H3GHGSGW.js.gz +0 -0
- package/dist/{chunk-SUEZMQRT.mjs → chunk-HB7DJENT.mjs} +1 -1
- package/dist/chunk-HB7DJENT.mjs.br +0 -0
- package/dist/chunk-HB7DJENT.mjs.gz +0 -0
- package/dist/{chunk-TAGG5YNA.mjs → chunk-HMX3MQR7.mjs} +5 -0
- package/dist/chunk-HMX3MQR7.mjs.br +0 -0
- package/dist/chunk-HMX3MQR7.mjs.gz +0 -0
- package/dist/{chunk-IK25LY4C.js → chunk-IVCYND7A.js} +197 -183
- package/dist/chunk-IVCYND7A.js.br +0 -0
- package/dist/chunk-IVCYND7A.js.gz +0 -0
- package/dist/{chunk-VHFPZBUW.mjs → chunk-M7SNS3DQ.mjs} +154 -71
- package/dist/chunk-M7SNS3DQ.mjs.br +0 -0
- package/dist/chunk-M7SNS3DQ.mjs.gz +0 -0
- package/dist/{chunk-N75WRHON.mjs → chunk-PKHTTHA2.mjs} +361 -142
- package/dist/chunk-PKHTTHA2.mjs.br +0 -0
- package/dist/chunk-PKHTTHA2.mjs.gz +0 -0
- package/dist/{chunk-6BNPHEEX.mjs → chunk-TS2DHMBS.mjs} +8671 -1786
- package/dist/chunk-TS2DHMBS.mjs.br +0 -0
- package/dist/chunk-TS2DHMBS.mjs.gz +0 -0
- package/dist/{chunk-LY5535CF.js → chunk-TWUAZRCG.js} +8684 -1786
- package/dist/chunk-TWUAZRCG.js.br +0 -0
- package/dist/chunk-TWUAZRCG.js.gz +0 -0
- package/dist/{chunk-4PL3GBSD.js → chunk-UGVPKJSU.js} +1607 -1388
- package/dist/chunk-UGVPKJSU.js.br +0 -0
- package/dist/chunk-UGVPKJSU.js.gz +0 -0
- package/dist/{chunk-5T4Y4QPV.mjs → chunk-Y3SA5H5H.mjs} +25 -11
- package/dist/chunk-Y3SA5H5H.mjs.br +0 -0
- package/dist/chunk-Y3SA5H5H.mjs.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 +92 -0
- 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 +157 -0
- 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/viewer/index.d.ts +81 -0
- 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-A3ZMMVUA.js.br +0 -0
- package/dist/AiChatPanel-A3ZMMVUA.js.gz +0 -0
- package/dist/AiChatPanel-L5H455NZ.mjs.br +0 -0
- package/dist/AiChatPanel-L5H455NZ.mjs.gz +0 -0
- package/dist/Area3DChartScene-OAD36KIX.mjs.br +0 -0
- package/dist/Area3DChartScene-OAD36KIX.mjs.gz +0 -0
- package/dist/Area3DChartScene-R2CKCYCB.js.br +0 -0
- package/dist/Area3DChartScene-R2CKCYCB.js.gz +0 -0
- package/dist/Bar3DChartScene-CRRPMXGQ.js.br +0 -0
- package/dist/Bar3DChartScene-CRRPMXGQ.js.gz +0 -0
- package/dist/Bar3DChartScene-XNNXF26T.mjs.br +0 -0
- package/dist/Bar3DChartScene-XNNXF26T.mjs.gz +0 -0
- package/dist/Line3DChartScene-44PLZML2.js.br +0 -0
- package/dist/Line3DChartScene-44PLZML2.js.gz +0 -0
- package/dist/Line3DChartScene-MNNPB3LZ.mjs.br +0 -0
- package/dist/Line3DChartScene-MNNPB3LZ.mjs.gz +0 -0
- package/dist/Model3DScene-5MUREFLY.mjs.br +0 -0
- package/dist/Model3DScene-5MUREFLY.mjs.gz +0 -0
- package/dist/Model3DScene-RYPYQPJH.js.br +0 -0
- package/dist/Model3DScene-RYPYQPJH.js.gz +0 -0
- package/dist/PieChart3DScene-GACYCSSQ.js.br +0 -0
- package/dist/PieChart3DScene-GACYCSSQ.js.gz +0 -0
- package/dist/PieChart3DScene-KYZSSG5X.mjs.br +0 -0
- package/dist/PieChart3DScene-KYZSSG5X.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-RI5G4BHS.js.br +0 -0
- package/dist/SurfaceChart3DScene-RI5G4BHS.js.gz +0 -0
- package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.gz +0 -0
- package/dist/chunk-4PL3GBSD.js.br +0 -0
- package/dist/chunk-4PL3GBSD.js.gz +0 -0
- package/dist/chunk-5T4Y4QPV.mjs.br +0 -0
- package/dist/chunk-5T4Y4QPV.mjs.gz +0 -0
- package/dist/chunk-6BNPHEEX.mjs.br +0 -0
- package/dist/chunk-6BNPHEEX.mjs.gz +0 -0
- package/dist/chunk-BX4XVY5X.js.br +0 -0
- package/dist/chunk-BX4XVY5X.js.gz +0 -0
- package/dist/chunk-IK25LY4C.js.br +0 -0
- package/dist/chunk-IK25LY4C.js.gz +0 -0
- package/dist/chunk-LY5535CF.js.br +0 -0
- package/dist/chunk-LY5535CF.js.gz +0 -0
- package/dist/chunk-MRBHJ26I.js.br +0 -0
- package/dist/chunk-MRBHJ26I.js.gz +0 -0
- package/dist/chunk-N75WRHON.mjs.br +0 -0
- package/dist/chunk-N75WRHON.mjs.gz +0 -0
- package/dist/chunk-SUEZMQRT.mjs.br +0 -0
- package/dist/chunk-SUEZMQRT.mjs.gz +0 -0
- package/dist/chunk-TAGG5YNA.mjs.br +0 -0
- package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
- package/dist/chunk-VHFPZBUW.mjs.br +0 -0
- package/dist/chunk-VHFPZBUW.mjs.gz +0 -0
- package/dist/chunk-Y6GG2OOW.js.br +0 -0
- package/dist/chunk-Y6GG2OOW.js.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,
|
|
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, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, advanceMainSequence, 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, buildDeckSaveOptions, 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, checkModifyPassword, 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, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList,
|
|
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, buildPdfFromTiledImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-Y3SA5H5H.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, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, advanceMainSequence, 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, buildDeckSaveOptions, 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, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, buildInlineTextCommitPatch, 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, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, 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, rasterResultToPngBlob, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, rasterizeElementClampedToCanvas, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElement, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-TS2DHMBS.mjs';
|
|
3
|
+
import { translationsEn } from './chunk-HMX3MQR7.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
|
|
|
@@ -1016,7 +1016,14 @@ function scheduleEntranceAnimationTimers(slide, setPresentationAnimations, prese
|
|
|
1016
1016
|
|
|
1017
1017
|
// src/viewer/hooks/presentation-mode/useAnimationPlayback.ts
|
|
1018
1018
|
function useAnimationPlayback(input) {
|
|
1019
|
-
const {
|
|
1019
|
+
const {
|
|
1020
|
+
slides,
|
|
1021
|
+
onPlayActionSound,
|
|
1022
|
+
showWithAnimation,
|
|
1023
|
+
canvasSize,
|
|
1024
|
+
themeColorMap,
|
|
1025
|
+
pixelateMosaicAnimation
|
|
1026
|
+
} = input;
|
|
1020
1027
|
const animationsEnabled = showWithAnimation !== false;
|
|
1021
1028
|
const [presentationAnimations, setPresentationAnimations] = useState([]);
|
|
1022
1029
|
const [presentationElementStates, setPresentationElementStates] = useState(/* @__PURE__ */ new Map());
|
|
@@ -1067,7 +1074,8 @@ function useAnimationPlayback(input) {
|
|
|
1067
1074
|
const controller = PresentationAnimationController.fromSlide(slide, {
|
|
1068
1075
|
slideHeightPx: canvasSize?.height,
|
|
1069
1076
|
slideWidthPx: canvasSize?.width,
|
|
1070
|
-
themeColorMap
|
|
1077
|
+
themeColorMap,
|
|
1078
|
+
pixelateMosaic: pixelateMosaicAnimation
|
|
1071
1079
|
});
|
|
1072
1080
|
controllerRef.current = controller;
|
|
1073
1081
|
mediaTimeNodeElementIdsRef.current = resolveMediaTimeNodeElementIds(
|
|
@@ -1078,7 +1086,7 @@ function useAnimationPlayback(input) {
|
|
|
1078
1086
|
setHoverTriggerShapeIds(controller.hoverTriggerShapeIds);
|
|
1079
1087
|
setPresentationElementStates(controller.computeStates());
|
|
1080
1088
|
},
|
|
1081
|
-
[slides, canvasSize, themeColorMap]
|
|
1089
|
+
[slides, canvasSize, themeColorMap, pixelateMosaicAnimation]
|
|
1082
1090
|
);
|
|
1083
1091
|
const playNextAnimationGroup = useCallback(() => {
|
|
1084
1092
|
if (!animationsEnabled) {
|
|
@@ -1758,7 +1766,8 @@ function handlePresentationActionImpl(action, deps) {
|
|
|
1758
1766
|
openFile: deps.onOpenFile,
|
|
1759
1767
|
openPresentation: deps.onOpenPresentation,
|
|
1760
1768
|
playMedia: deps.onPlayMedia,
|
|
1761
|
-
oleVerb: deps.onOleVerb
|
|
1769
|
+
oleVerb: deps.onOleVerb,
|
|
1770
|
+
runProgram: deps.onRunProgram
|
|
1762
1771
|
}
|
|
1763
1772
|
);
|
|
1764
1773
|
}
|
|
@@ -1830,7 +1839,8 @@ function useSlideNavigation(input) {
|
|
|
1830
1839
|
onOpenFile,
|
|
1831
1840
|
onOpenPresentation,
|
|
1832
1841
|
onPlayMedia,
|
|
1833
|
-
onOleVerb
|
|
1842
|
+
onOleVerb,
|
|
1843
|
+
onRunProgram
|
|
1834
1844
|
} = input;
|
|
1835
1845
|
const movePresentationSlideRef = useRef(() => {
|
|
1836
1846
|
});
|
|
@@ -1996,7 +2006,8 @@ function useSlideNavigation(input) {
|
|
|
1996
2006
|
onOpenFile,
|
|
1997
2007
|
onOpenPresentation,
|
|
1998
2008
|
onPlayMedia,
|
|
1999
|
-
onOleVerb
|
|
2009
|
+
onOleVerb,
|
|
2010
|
+
onRunProgram
|
|
2000
2011
|
});
|
|
2001
2012
|
},
|
|
2002
2013
|
[
|
|
@@ -2010,7 +2021,8 @@ function useSlideNavigation(input) {
|
|
|
2010
2021
|
onOpenFile,
|
|
2011
2022
|
onOpenPresentation,
|
|
2012
2023
|
onPlayMedia,
|
|
2013
|
-
onOleVerb
|
|
2024
|
+
onOleVerb,
|
|
2025
|
+
onRunProgram
|
|
2014
2026
|
]
|
|
2015
2027
|
);
|
|
2016
2028
|
return {
|
|
@@ -2102,7 +2114,8 @@ function usePresentationActionExtensions(input) {
|
|
|
2102
2114
|
containerRef,
|
|
2103
2115
|
endWithBlackSlide,
|
|
2104
2116
|
onSetMode,
|
|
2105
|
-
setEndOfShowVisible
|
|
2117
|
+
setEndOfShowVisible,
|
|
2118
|
+
onAddRunProgramNotice
|
|
2106
2119
|
} = input;
|
|
2107
2120
|
const navigateToSlideRef = useRef(null);
|
|
2108
2121
|
const navigateToSlideViaRef = useCallback((index) => {
|
|
@@ -2140,6 +2153,12 @@ function usePresentationActionExtensions(input) {
|
|
|
2140
2153
|
const onOpenPresentation = useCallback((target) => {
|
|
2141
2154
|
safeOpenUrl(target);
|
|
2142
2155
|
}, []);
|
|
2156
|
+
const onRunProgram = useCallback(
|
|
2157
|
+
(target) => {
|
|
2158
|
+
onAddRunProgramNotice?.(buildRunProgramNotice(target));
|
|
2159
|
+
},
|
|
2160
|
+
[onAddRunProgramNotice]
|
|
2161
|
+
);
|
|
2143
2162
|
const onPlayMedia = useCallback(
|
|
2144
2163
|
(elementId) => {
|
|
2145
2164
|
toggleStageElementMedia(containerRef.current, elementId);
|
|
@@ -2180,6 +2199,7 @@ function usePresentationActionExtensions(input) {
|
|
|
2180
2199
|
onOpenPresentation,
|
|
2181
2200
|
onPlayMedia,
|
|
2182
2201
|
onOleVerb,
|
|
2202
|
+
onRunProgram,
|
|
2183
2203
|
handleAdvancePastLastSlide,
|
|
2184
2204
|
bindNavigateToSlide
|
|
2185
2205
|
};
|
|
@@ -2244,6 +2264,7 @@ function usePresentationMode(input) {
|
|
|
2244
2264
|
visibleSlideIndexes,
|
|
2245
2265
|
canvasSize,
|
|
2246
2266
|
themeColorMap,
|
|
2267
|
+
pixelateMosaicAnimation,
|
|
2247
2268
|
activeSlideIndex,
|
|
2248
2269
|
containerRef,
|
|
2249
2270
|
content,
|
|
@@ -2263,7 +2284,8 @@ function usePresentationMode(input) {
|
|
|
2263
2284
|
endWithBlackSlide = true,
|
|
2264
2285
|
customShows = [],
|
|
2265
2286
|
activeCustomShowId = null,
|
|
2266
|
-
onSetActiveCustomShowId
|
|
2287
|
+
onSetActiveCustomShowId,
|
|
2288
|
+
onAddRunProgramNotice
|
|
2267
2289
|
} = input;
|
|
2268
2290
|
const [presentationSlideIndex, setPresentationSlideIndex] = useState(0);
|
|
2269
2291
|
const [presentationSlideVisible, setPresentationSlideVisible] = useState(true);
|
|
@@ -2297,7 +2319,8 @@ function usePresentationMode(input) {
|
|
|
2297
2319
|
onPlayActionSound,
|
|
2298
2320
|
showWithAnimation,
|
|
2299
2321
|
canvasSize,
|
|
2300
|
-
themeColorMap
|
|
2322
|
+
themeColorMap,
|
|
2323
|
+
pixelateMosaicAnimation
|
|
2301
2324
|
});
|
|
2302
2325
|
const {
|
|
2303
2326
|
rehearsing,
|
|
@@ -2333,7 +2356,8 @@ function usePresentationMode(input) {
|
|
|
2333
2356
|
containerRef,
|
|
2334
2357
|
endWithBlackSlide,
|
|
2335
2358
|
onSetMode,
|
|
2336
|
-
setEndOfShowVisible
|
|
2359
|
+
setEndOfShowVisible,
|
|
2360
|
+
onAddRunProgramNotice
|
|
2337
2361
|
});
|
|
2338
2362
|
const {
|
|
2339
2363
|
movePresentationSlide: moveNavigationSlide,
|
|
@@ -2367,7 +2391,8 @@ function usePresentationMode(input) {
|
|
|
2367
2391
|
onOpenFile: actionExtensions.onOpenFile,
|
|
2368
2392
|
onOpenPresentation: actionExtensions.onOpenPresentation,
|
|
2369
2393
|
onPlayMedia: actionExtensions.onPlayMedia,
|
|
2370
|
-
onOleVerb: actionExtensions.onOleVerb
|
|
2394
|
+
onOleVerb: actionExtensions.onOleVerb,
|
|
2395
|
+
onRunProgram: actionExtensions.onRunProgram
|
|
2371
2396
|
});
|
|
2372
2397
|
actionExtensions.bindNavigateToSlide(navigateToSlide);
|
|
2373
2398
|
const movePresentationSlide = useCallback(
|
|
@@ -5119,13 +5144,17 @@ function useCanvasInteractions(input) {
|
|
|
5119
5144
|
const el = elementLookup.get(editId);
|
|
5120
5145
|
if (el && hasTextProperties(el)) {
|
|
5121
5146
|
const committedText = transformCommittedText ? transformCommittedText(inlineEditingText) : inlineEditingText;
|
|
5122
|
-
const
|
|
5147
|
+
const textPatch = buildInlineTextCommitPatch(el, committedText);
|
|
5148
|
+
if (!textPatch) {
|
|
5149
|
+
setInlineEditingElementId(null);
|
|
5150
|
+
setInlineEditingText("");
|
|
5151
|
+
return;
|
|
5152
|
+
}
|
|
5123
5153
|
const editorEl = document.querySelector("[data-inline-editor]");
|
|
5124
5154
|
const newHeight = resolveInlineEditAutoFitHeight(el.textStyle, el.height, editorEl);
|
|
5125
5155
|
const shrink = resolveInlineEditNormAutofitShrink(el.textStyle, el.height, editorEl);
|
|
5126
5156
|
ops.updateElementById(editId, {
|
|
5127
|
-
|
|
5128
|
-
textSegments: newSegments,
|
|
5157
|
+
...textPatch,
|
|
5129
5158
|
...newHeight !== void 0 ? { height: newHeight } : {},
|
|
5130
5159
|
...shrink !== "unchanged" ? {
|
|
5131
5160
|
textStyle: {
|
|
@@ -7031,26 +7060,70 @@ function safeConfirm(message) {
|
|
|
7031
7060
|
}
|
|
7032
7061
|
|
|
7033
7062
|
// src/viewer/utils/export-helpers.ts
|
|
7034
|
-
|
|
7035
|
-
const
|
|
7063
|
+
function ignoreExportOverlayElements(el) {
|
|
7064
|
+
const htmlEl = el;
|
|
7065
|
+
if (htmlEl.dataset?.exportIgnore === "true") {
|
|
7066
|
+
return true;
|
|
7067
|
+
}
|
|
7068
|
+
return Boolean(
|
|
7069
|
+
htmlEl.classList?.contains("pointer-events-none") && (htmlEl.classList.contains("z-50") || htmlEl.classList.contains("z-[60]"))
|
|
7070
|
+
);
|
|
7071
|
+
}
|
|
7072
|
+
function measureNaturalSize(element) {
|
|
7073
|
+
const rect = element.getBoundingClientRect();
|
|
7074
|
+
return {
|
|
7075
|
+
width: rect.width || element.offsetWidth,
|
|
7076
|
+
height: rect.height || element.offsetHeight
|
|
7077
|
+
};
|
|
7078
|
+
}
|
|
7079
|
+
function buildRasterOptions(element, scale, backgroundColor, mode) {
|
|
7080
|
+
return {
|
|
7036
7081
|
scale,
|
|
7037
|
-
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7082
|
+
backgroundColor,
|
|
7083
|
+
mode,
|
|
7084
|
+
html2canvasFallback: (sourceRect, outputSize) => renderToCanvas(element, {
|
|
7085
|
+
scale: outputSize.width / (sourceRect.width || 1),
|
|
7086
|
+
x: sourceRect.x,
|
|
7087
|
+
y: sourceRect.y,
|
|
7088
|
+
width: sourceRect.width,
|
|
7089
|
+
height: sourceRect.height,
|
|
7090
|
+
useCORS: true,
|
|
7091
|
+
allowTaint: true,
|
|
7092
|
+
backgroundColor: backgroundColor ?? null,
|
|
7093
|
+
logging: false,
|
|
7094
|
+
ignoreElements: ignoreExportOverlayElements
|
|
7095
|
+
})
|
|
7096
|
+
};
|
|
7097
|
+
}
|
|
7098
|
+
async function renderElementToRaster(element, scale = 2, backgroundColor, mode = "auto") {
|
|
7099
|
+
const { width, height } = measureNaturalSize(element);
|
|
7100
|
+
return rasterizeElement(
|
|
7101
|
+
element,
|
|
7102
|
+
width,
|
|
7103
|
+
height,
|
|
7104
|
+
element.ownerDocument,
|
|
7105
|
+
buildRasterOptions(element, scale, backgroundColor, mode)
|
|
7106
|
+
);
|
|
7107
|
+
}
|
|
7108
|
+
async function renderElementToTiles(element, scale = 2, backgroundColor, mode = "auto") {
|
|
7109
|
+
const { width, height } = measureNaturalSize(element);
|
|
7110
|
+
return rasterizeElementTiles(
|
|
7111
|
+
element,
|
|
7112
|
+
width,
|
|
7113
|
+
height,
|
|
7114
|
+
element.ownerDocument,
|
|
7115
|
+
buildRasterOptions(element, scale, backgroundColor, mode)
|
|
7116
|
+
);
|
|
7117
|
+
}
|
|
7118
|
+
async function renderElementToClampedCanvas(element, scale = 2, backgroundColor, mode = "auto") {
|
|
7119
|
+
const { width, height } = measureNaturalSize(element);
|
|
7120
|
+
return rasterizeElementClampedToCanvas(
|
|
7121
|
+
element,
|
|
7122
|
+
width,
|
|
7123
|
+
height,
|
|
7124
|
+
element.ownerDocument,
|
|
7125
|
+
buildRasterOptions(element, scale, backgroundColor, mode)
|
|
7126
|
+
);
|
|
7054
7127
|
}
|
|
7055
7128
|
function waitForRender(ms = 100) {
|
|
7056
7129
|
return new Promise((resolve) => {
|
|
@@ -7065,16 +7138,8 @@ function waitForRender(ms = 100) {
|
|
|
7065
7138
|
// src/viewer/utils/export-slides.ts
|
|
7066
7139
|
async function exportSlideToPngBlob(slideElement, options = {}) {
|
|
7067
7140
|
const { scale = 2, backgroundColor } = options;
|
|
7068
|
-
const
|
|
7069
|
-
return
|
|
7070
|
-
canvas.toBlob((blob) => {
|
|
7071
|
-
if (blob) {
|
|
7072
|
-
resolve(blob);
|
|
7073
|
-
} else {
|
|
7074
|
-
reject(new Error("Canvas toBlob returned null"));
|
|
7075
|
-
}
|
|
7076
|
-
}, "image/png");
|
|
7077
|
-
});
|
|
7141
|
+
const result = await renderElementToRaster(slideElement, scale, backgroundColor);
|
|
7142
|
+
return rasterResultToPngBlob(result);
|
|
7078
7143
|
}
|
|
7079
7144
|
async function exportSlideAsPng(slideElement, slideIndex, options = {}) {
|
|
7080
7145
|
const blob = await exportSlideToPngBlob(slideElement, options);
|
|
@@ -7084,13 +7149,10 @@ async function copySlideToClipboard(slideElement, options = {}) {
|
|
|
7084
7149
|
const blob = await exportSlideToPngBlob(slideElement, options);
|
|
7085
7150
|
await navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]);
|
|
7086
7151
|
}
|
|
7087
|
-
async function
|
|
7088
|
-
const { scale = 2, onProgress
|
|
7089
|
-
const
|
|
7152
|
+
async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
|
|
7153
|
+
const { scale = 2, onProgress } = options;
|
|
7154
|
+
const dataUrls = [];
|
|
7090
7155
|
for (let i = 0; i < totalSlides; i++) {
|
|
7091
|
-
if (signal?.aborted) {
|
|
7092
|
-
throw new DOMException("Export cancelled", "AbortError");
|
|
7093
|
-
}
|
|
7094
7156
|
onProgress?.(i, totalSlides);
|
|
7095
7157
|
setActiveSlide(i);
|
|
7096
7158
|
await waitForRender(150);
|
|
@@ -7099,21 +7161,34 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7099
7161
|
console.warn(`[export] Could not find slide stage element for slide ${i}`);
|
|
7100
7162
|
continue;
|
|
7101
7163
|
}
|
|
7102
|
-
const canvas = await
|
|
7103
|
-
|
|
7164
|
+
const { canvas } = await renderElementToClampedCanvas(stageEl, scale);
|
|
7165
|
+
dataUrls.push(canvas.toDataURL("image/png"));
|
|
7104
7166
|
}
|
|
7105
7167
|
onProgress?.(totalSlides, totalSlides);
|
|
7106
7168
|
setActiveSlide(currentSlideIndex);
|
|
7107
|
-
|
|
7108
|
-
throw new Error(translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7109
|
-
}
|
|
7110
|
-
const pdfBlobUrl = buildPdfFromImageData(images);
|
|
7111
|
-
downloadDataUrl(pdfBlobUrl, filename);
|
|
7169
|
+
return dataUrls;
|
|
7112
7170
|
}
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7171
|
+
|
|
7172
|
+
// src/viewer/utils/export-pdf.ts
|
|
7173
|
+
function tilesToPdfPage(tilesResult) {
|
|
7174
|
+
return tilesResult.tiles.map((tile) => ({
|
|
7175
|
+
image: canvasToJpegData(tile.canvas),
|
|
7176
|
+
placement: placeTileOnPage(
|
|
7177
|
+
tile,
|
|
7178
|
+
tilesResult.fullWidth,
|
|
7179
|
+
tilesResult.fullHeight,
|
|
7180
|
+
PDF_SLIDES_PAGE_WIDTH_PT,
|
|
7181
|
+
PDF_SLIDES_PAGE_HEIGHT_PT
|
|
7182
|
+
)
|
|
7183
|
+
}));
|
|
7184
|
+
}
|
|
7185
|
+
async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, filename = "presentation.pdf", options = {}) {
|
|
7186
|
+
const { scale = 2, onProgress, signal } = options;
|
|
7187
|
+
const pages = [];
|
|
7116
7188
|
for (let i = 0; i < totalSlides; i++) {
|
|
7189
|
+
if (signal?.aborted) {
|
|
7190
|
+
throw new DOMException("Export cancelled", "AbortError");
|
|
7191
|
+
}
|
|
7117
7192
|
onProgress?.(i, totalSlides);
|
|
7118
7193
|
setActiveSlide(i);
|
|
7119
7194
|
await waitForRender(150);
|
|
@@ -7122,12 +7197,16 @@ async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActi
|
|
|
7122
7197
|
console.warn(`[export] Could not find slide stage element for slide ${i}`);
|
|
7123
7198
|
continue;
|
|
7124
7199
|
}
|
|
7125
|
-
const
|
|
7126
|
-
|
|
7200
|
+
const tilesResult = await renderElementToTiles(stageEl, scale);
|
|
7201
|
+
pages.push(tilesToPdfPage(tilesResult));
|
|
7127
7202
|
}
|
|
7128
7203
|
onProgress?.(totalSlides, totalSlides);
|
|
7129
7204
|
setActiveSlide(currentSlideIndex);
|
|
7130
|
-
|
|
7205
|
+
if (pages.length === 0) {
|
|
7206
|
+
throw new Error(translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7207
|
+
}
|
|
7208
|
+
const pdfBlobUrl = buildPdfFromTiledImageData(pages);
|
|
7209
|
+
downloadDataUrl(pdfBlobUrl, filename);
|
|
7131
7210
|
}
|
|
7132
7211
|
async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
|
|
7133
7212
|
const { scale = 2, onProgress, signal } = options;
|
|
@@ -7144,7 +7223,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
|
|
|
7144
7223
|
console.warn(`[export] Could not find slide stage element for slide ${i}`);
|
|
7145
7224
|
continue;
|
|
7146
7225
|
}
|
|
7147
|
-
const canvas = await
|
|
7226
|
+
const { canvas } = await renderElementToClampedCanvas(stageEl, scale);
|
|
7148
7227
|
pages.push({
|
|
7149
7228
|
canvas,
|
|
7150
7229
|
notes: slideNotes[i],
|
|
@@ -7183,7 +7262,7 @@ async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide
|
|
|
7183
7262
|
console.warn(`[export] Could not find slide stage element for slide ${i}`);
|
|
7184
7263
|
continue;
|
|
7185
7264
|
}
|
|
7186
|
-
const canvas = await
|
|
7265
|
+
const { canvas } = await renderElementToClampedCanvas(stageEl, scale);
|
|
7187
7266
|
slideCanvases.push(canvas);
|
|
7188
7267
|
}
|
|
7189
7268
|
setActiveSlide(currentSlideIndex);
|
|
@@ -7258,7 +7337,7 @@ async function exportAllSlidesAsGif(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7258
7337
|
if (!stageEl) {
|
|
7259
7338
|
continue;
|
|
7260
7339
|
}
|
|
7261
|
-
const canvas = await
|
|
7340
|
+
const { canvas } = await renderElementToClampedCanvas(stageEl, scale);
|
|
7262
7341
|
const ctx = canvas.getContext("2d");
|
|
7263
7342
|
if (!ctx) {
|
|
7264
7343
|
continue;
|
|
@@ -8813,12 +8892,14 @@ function usePresentationSetup(input) {
|
|
|
8813
8892
|
setSlides,
|
|
8814
8893
|
history,
|
|
8815
8894
|
endWithBlackSlide = true,
|
|
8895
|
+
pixelateMosaicAnimation = false,
|
|
8816
8896
|
promptKeepInkAnnotations = true,
|
|
8817
8897
|
popupToolbarEnabled = true,
|
|
8818
8898
|
onToggleSubtitles,
|
|
8819
8899
|
customShows = [],
|
|
8820
8900
|
activeCustomShowId = null,
|
|
8821
|
-
onSetActiveCustomShowId
|
|
8901
|
+
onSetActiveCustomShowId,
|
|
8902
|
+
onAddRunProgramNotice
|
|
8822
8903
|
} = input;
|
|
8823
8904
|
const actionSoundHandlerRef = useRef(null);
|
|
8824
8905
|
const exitModeHandlerRef = useRef(null);
|
|
@@ -8834,6 +8915,7 @@ function usePresentationSetup(input) {
|
|
|
8834
8915
|
visibleSlideIndexes,
|
|
8835
8916
|
canvasSize,
|
|
8836
8917
|
themeColorMap,
|
|
8918
|
+
pixelateMosaicAnimation,
|
|
8837
8919
|
activeSlideIndex,
|
|
8838
8920
|
containerRef,
|
|
8839
8921
|
content,
|
|
@@ -8919,7 +9001,8 @@ function usePresentationSetup(input) {
|
|
|
8919
9001
|
endWithBlackSlide,
|
|
8920
9002
|
customShows,
|
|
8921
9003
|
activeCustomShowId,
|
|
8922
|
-
onSetActiveCustomShowId
|
|
9004
|
+
onSetActiveCustomShowId,
|
|
9005
|
+
onAddRunProgramNotice
|
|
8923
9006
|
});
|
|
8924
9007
|
return {
|
|
8925
9008
|
presentation,
|
|
Binary file
|
|
Binary file
|