pptx-react-viewer 4.63.1 → 4.64.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 +44 -0
- package/dist/{AiChatPanel-7DESUEAZ.js → AiChatPanel-DRY6JUQE.js} +19 -19
- package/dist/AiChatPanel-DRY6JUQE.js.br +0 -0
- package/dist/AiChatPanel-DRY6JUQE.js.gz +0 -0
- package/dist/{AiChatPanel-GQ64SIYP.mjs → AiChatPanel-KBSDSD5Y.mjs} +1 -1
- package/dist/AiChatPanel-KBSDSD5Y.mjs.br +0 -0
- package/dist/AiChatPanel-KBSDSD5Y.mjs.gz +0 -0
- package/dist/ai.js +2 -2
- package/dist/ai.js.br +0 -0
- package/dist/ai.js.gz +0 -0
- package/dist/ai.mjs +1 -1
- package/dist/ai.mjs.br +0 -0
- package/dist/ai.mjs.gz +0 -0
- package/dist/{chunk-MR3ZSEHS.mjs → chunk-46VMP4EH.mjs} +2 -1
- package/dist/chunk-46VMP4EH.mjs.br +0 -0
- package/dist/chunk-46VMP4EH.mjs.gz +0 -0
- package/dist/{chunk-TXVGYIO6.js → chunk-73SDWM6K.js} +440 -425
- package/dist/chunk-73SDWM6K.js.br +0 -0
- package/dist/chunk-73SDWM6K.js.gz +0 -0
- package/dist/{chunk-F6WCYCHV.js → chunk-7UFO4OZQ.js} +1 -1
- package/dist/chunk-7UFO4OZQ.js.br +0 -0
- package/dist/chunk-7UFO4OZQ.js.gz +0 -0
- package/dist/{chunk-FYQVCABH.mjs → chunk-FYYQ4OGF.mjs} +243 -227
- package/dist/chunk-FYYQ4OGF.mjs.br +0 -0
- package/dist/chunk-FYYQ4OGF.mjs.gz +0 -0
- package/dist/{chunk-5KFSMXI4.js → chunk-JKSUB7DR.js} +5 -0
- package/dist/chunk-JKSUB7DR.js.br +0 -0
- package/dist/{chunk-5KFSMXI4.js.gz → chunk-JKSUB7DR.js.gz} +0 -0
- package/dist/{chunk-MWFBZ5SJ.js → chunk-PX46BOMQ.js} +832 -651
- package/dist/chunk-PX46BOMQ.js.br +0 -0
- package/dist/chunk-PX46BOMQ.js.gz +0 -0
- package/dist/{chunk-NE5JQMED.mjs → chunk-SGWF6GUX.mjs} +1 -1
- package/dist/chunk-SGWF6GUX.mjs.br +0 -0
- package/dist/chunk-SGWF6GUX.mjs.gz +0 -0
- package/dist/{chunk-H6KYXOKK.mjs → chunk-SHI3PQ5F.mjs} +281 -100
- package/dist/chunk-SHI3PQ5F.mjs.br +0 -0
- package/dist/chunk-SHI3PQ5F.mjs.gz +0 -0
- package/dist/i18n/de.cjs +89 -43
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +89 -43
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +89 -43
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +89 -43
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +89 -43
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +89 -43
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +95 -49
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +95 -49
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.gz +0 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.js +27 -27
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +10 -0
- package/dist/internals.js +81 -81
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +2 -2
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer-canvas.css +1 -1
- package/dist/pptx-viewer-canvas.css.br +0 -0
- package/dist/pptx-viewer-canvas.css.gz +0 -0
- package/dist/viewer/index.d.ts +10 -1
- package/dist/viewer/index.js +21 -21
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +4 -4
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -3
- package/dist/AiChatPanel-7DESUEAZ.js.br +0 -0
- package/dist/AiChatPanel-7DESUEAZ.js.gz +0 -0
- package/dist/AiChatPanel-GQ64SIYP.mjs.br +0 -0
- package/dist/AiChatPanel-GQ64SIYP.mjs.gz +0 -0
- package/dist/chunk-5KFSMXI4.js.br +0 -0
- package/dist/chunk-F6WCYCHV.js.br +0 -0
- package/dist/chunk-F6WCYCHV.js.gz +0 -0
- package/dist/chunk-FYQVCABH.mjs.br +0 -0
- package/dist/chunk-FYQVCABH.mjs.gz +0 -0
- package/dist/chunk-H6KYXOKK.mjs.br +0 -0
- package/dist/chunk-H6KYXOKK.mjs.gz +0 -0
- package/dist/chunk-MR3ZSEHS.mjs.br +0 -0
- package/dist/chunk-MR3ZSEHS.mjs.gz +0 -0
- package/dist/chunk-MWFBZ5SJ.js.br +0 -0
- package/dist/chunk-MWFBZ5SJ.js.gz +0 -0
- package/dist/chunk-NE5JQMED.mjs.br +0 -0
- package/dist/chunk-NE5JQMED.mjs.gz +0 -0
- package/dist/chunk-TXVGYIO6.js.br +0 -0
- package/dist/chunk-TXVGYIO6.js.gz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, useTranslation, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, normalizeHexColor, makeCloneId, DEFAULT_TEXT_FONT_SIZE, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, isImageTiled, getDuotoneColors, DEFAULT_STROKE_COLOR, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, buildTextBody3DSceneStyle, rerouteConnectorsForMovedElements, applyReroutedConnectors, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, getAriaRole, DEFAULT_FONT_FAMILY, ACTION_BUTTON_PRESETS, isUrlSafe,
|
|
2
|
-
import { defineThreeViewElement, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createCollaborationSessionController, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createEditorHistoryController, historyTheme, crossedHistoryTheme, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveShowBackward, resolveShowForward, beginZoomExcursion, buildZoomTransitionOverride, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, INITIAL_FIND_REPLACE_SESSION, findReplaceSessionActions, visibleTemplateElements, createCollaborationLivePatcher, reportInlineTextDraft, initialInspectorOpen, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, GlyphOutlineFontCache, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, pptxLoadErrorMessage, resolveAutosaveIntervalMs, createAutosaveController, saveAutosaveSnapshot, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, html2canvasCaptureScope, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, DEFAULT_VIEWER_OPTIONS, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, createAutosaveRecoveryController, discardAutosaveRecovery, probeAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, resolveGoogleFontsCss2Base, selectTrustedEmbeddedFonts, resolveFontWeight, resolveFontItalic, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, dispatchEditorKey, isFeatureEnabled, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, autosaveStatusKind, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, collaborationHistoryReady, bindCollaborationHistory, INITIAL_READ_ONLY_SESSION, readOnlySessionActions, applyReadOnlySessionEvent, readOnlyBannerVisible, readOnlyLocked, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, resolveCollaborationConfig, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, getResizeHandleHitAreaStyle, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, resolvePalette as resolvePalette$1, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, deviceStrokeStageStyle, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, resolveGroupDoubleClickTarget, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, generateCustomShowId, contextMenuInspectorAnchor, savedPresentationFileName, deliverSavedPresentation, exportDeckJson, mapCustomizedEditorKey, isEditorTextInputTarget, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, insertedLayoutCompletion, buildSlideTemplateSlide, templateSchemeFromTheme, queueThemeWrite, needsOwnedSession, openOwnedCollaboration, resolveViewportFitOptions, editorViewportFitFor, calculateViewportFit, observeViewportClientSize, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, getInlineEditorSelectionResult, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, createGestureController, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, writeBackReport, createSyncGate, observeExternalCollaborationReadiness, resolveHistoryDepth, lockExternalContentSetting, resolveAllowExternalContent, createBackstagePresentation, buildFieldSubstitutionContext, buildSlidesPaneFieldContext, buildSlidesPaneTableStyleContext, slidesPaneRehearsalTimings, openSlidesPaneLayoutGallery, getImageColorWashStyle, attachRotateHandlePlacement, getSelectionControlArtworkStyle, getSelectionOutlineColor, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, buildSummaryZoomView, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, mapInlineEditorChord, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, chartFormatTargetFromEvent, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, getAriaRoleDescription, getAriaLabel, elementIdSelector, TOOLBAR_TABS, resolveGroupPressTarget, scrollInspectorSectionIntoView, computeScrollDelta, buildOutlinePrintJobDocument, printJobRasterFallback, applyThemeByPath, withHistoryTheme, withHistoryMasterThemes, writeThemeParts, loadedThemeName, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, getCellText, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, svgLineCap, screenStrokeWidth, connectorWrapperTransform, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, modelDataToBlobUrl, resolveZoomNavigationTarget, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, canDrillDown, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, measureSvgViewportRect, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, buildSmartArtPresetData, classifyMediaType, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, planPrintJob, openPrintWindow, buildVectorPrintJobDocument, openPendingPrintWindow, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, publishLiveGeometry, rasterizeElementTiledToCanvas, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, findSmartArtNodeText, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, createGlyphOutlineLookup, finishPrintWindow, buildRasterPrintJobDocument, applyMotionPathPreset, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, computeInlineEditorRect, smartArtNodeAtPoint, SMARTART_DEFAULT_PALETTE, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, refreshSmartArtPictureImage, centeredSvgTextLines, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
|
|
1
|
+
import { cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, useTranslation, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, normalizeHexColor, makeCloneId, DEFAULT_TEXT_FONT_SIZE, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, isImageTiled, getDuotoneColors, DEFAULT_STROKE_COLOR, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getTextWarpStyle, getTextCompensationTransform, getTextCompensationOrigin, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, buildTextBody3DSceneStyle, rerouteConnectorsForMovedElements, applyReroutedConnectors, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, getAriaRole, DEFAULT_FONT_FAMILY, ACTION_BUTTON_PRESETS, isUrlSafe, substituteFieldText, HYPERLINK_COLOR } from './chunk-46VMP4EH.mjs';
|
|
2
|
+
import { defineThreeViewElement, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createCollaborationSessionController, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createEditorHistoryController, historyTheme, crossedHistoryTheme, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveShowBackward, resolveShowForward, beginZoomExcursion, buildZoomTransitionOverride, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, INITIAL_FIND_REPLACE_SESSION, findReplaceSessionActions, visibleTemplateElements, createCollaborationLivePatcher, reportInlineTextDraft, initialInspectorOpen, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, GlyphOutlineFontCache, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, pptxLoadErrorMessage, resolveAutosaveIntervalMs, createAutosaveController, saveAutosaveSnapshot, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, html2canvasCaptureScope, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, DEFAULT_VIEWER_OPTIONS, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, createAutosaveRecoveryController, discardAutosaveRecovery, probeAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, resolveGoogleFontsCss2Base, selectTrustedEmbeddedFonts, resolveFontWeight, resolveFontItalic, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, dispatchEditorKey, isFeatureEnabled, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, gateViewerEdits, prepareElementForInsertion, slideSpaceElement, resolveReportedViewerMode, autosaveStatusKind, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, collaborationHistoryReady, bindCollaborationHistory, INITIAL_READ_ONLY_SESSION, readOnlySessionActions, applyReadOnlySessionEvent, readOnlyBannerVisible, readOnlyLocked, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, resolveCollaborationConfig, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, getResizeHandleHitAreaStyle, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, resolvePalette as resolvePalette$1, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, deviceStrokeStageStyle, morphOverlayElementSlots, buildMorphOutlineRules, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, resolveGroupDoubleClickTarget, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, promptNameDialog, generateCustomShowId, confirmDeleteDialog, contextMenuInspectorAnchor, savedPresentationFileName, deliverSavedPresentation, exportDeckJson, mapCustomizedEditorKey, isEditorTextInputTarget, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, insertedLayoutCompletion, buildSlideTemplateSlide, templateSchemeFromTheme, queueThemeWrite, needsOwnedSession, openOwnedCollaboration, resolveViewportFitOptions, editorViewportFitFor, calculateViewportFit, observeViewportClientSize, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, getInlineEditorSelectionResult, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, createGestureController, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, writeBackReport, createSyncGate, observeExternalCollaborationReadiness, resolveHistoryDepth, lockExternalContentSetting, resolveAllowExternalContent, createBackstagePresentation, buildFieldSubstitutionContext, buildSlidesPaneFieldContext, buildSlidesPaneTableStyleContext, slidesPaneRehearsalTimings, openSlidesPaneLayoutGallery, getImageColorWashStyle, attachRotateHandlePlacement, getSelectionControlArtworkStyle, getSelectionOutlineColor, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, abuttingEdgeBleedStyle, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, buildSummaryZoomView, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, mapInlineEditorChord, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, chartFormatTargetFromEvent, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, getTextCompensationStyle, placeholderPromptDescriptor, getAriaRoleDescription, getAriaLabel, elementIdSelector, TOOLBAR_TABS, resolveGroupPressTarget, scrollInspectorSectionIntoView, computeScrollDelta, buildOutlinePrintJobDocument, printJobRasterFallback, applyThemeByPath, withHistoryTheme, withHistoryMasterThemes, writeThemeParts, loadedThemeName, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, getCellText, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, svgLineCap, screenStrokeWidth, connectorWrapperTransform, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, modelDataToBlobUrl, resolveZoomNavigationTarget, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, canDrillDown, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, measureSvgViewportRect, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, buildSmartArtPresetData, classifyMediaType, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, planPrintJob, openPrintWindow, buildVectorPrintJobDocument, openPendingPrintWindow, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, publishLiveGeometry, rasterizeElementTiledToCanvas, clampGifDimensions, rasterResultToPngDataUrl, openExternalHyperlinkConfirmed, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, findSmartArtNodeText, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, createGlyphOutlineLookup, finishPrintWindow, buildRasterPrintJobDocument, applyMotionPathPreset, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, computeInlineEditorRect, smartArtNodeAtPoint, SMARTART_DEFAULT_PALETTE, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, refreshSmartArtPictureImage, centeredSvgTextLines, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
|
|
3
3
|
export { DUOTONE_PRESETS, MOBILE_BREAKPOINT, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, clearAudienceContent, computeVirtualRange, downloadBlob, getSlideTransitionAnimations, loadAudienceContent, storeAudienceContent } from 'ooxml-ui/pptx';
|
|
4
4
|
import React17, { useRef, useState, useCallback, useEffect, useSyncExternalStore, useMemo, useContext, useLayoutEffect, createContext, useImperativeHandle, Suspense } from 'react';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -902,6 +902,11 @@ function useEditorHistory(input) {
|
|
|
902
902
|
const holdTracking = useCallback((held) => {
|
|
903
903
|
trackingHeldRef.current = held;
|
|
904
904
|
}, []);
|
|
905
|
+
const markSaved = useCallback(() => {
|
|
906
|
+
const snapshot = buildHistorySnapshot();
|
|
907
|
+
lastHistorySnapshotRef.current = snapshot;
|
|
908
|
+
lastHistorySerializedRef.current = serializeHistoryDocument(snapshot);
|
|
909
|
+
}, [buildHistorySnapshot]);
|
|
905
910
|
return {
|
|
906
911
|
commitSlides,
|
|
907
912
|
holdTracking,
|
|
@@ -915,6 +920,7 @@ function useEditorHistory(input) {
|
|
|
915
920
|
forgetHistory: history.forget,
|
|
916
921
|
attachCollaboration: history.attachCollaboration,
|
|
917
922
|
markDirty,
|
|
923
|
+
markSaved,
|
|
918
924
|
withoutUndoStep,
|
|
919
925
|
buildHistorySnapshot
|
|
920
926
|
};
|
|
@@ -2910,9 +2916,13 @@ function usePresentationMode(input) {
|
|
|
2910
2916
|
// `PresentationStage` stacks the incoming slide's elements above its
|
|
2911
2917
|
// template shapes (`zIndex = templateElements.length + index`), so a
|
|
2912
2918
|
// z-index journey has to start counting where the stage does.
|
|
2913
|
-
|
|
2919
|
+
// A turning flip is seen from the slide's centre (shared `morph-flip-turn`).
|
|
2920
|
+
{
|
|
2921
|
+
zIndexBase: incoming ? templateElementsBySlideId?.[incoming.id]?.length ?? 0 : 0,
|
|
2922
|
+
...canvasSize ? { slideSize: canvasSize } : {}
|
|
2923
|
+
}
|
|
2914
2924
|
);
|
|
2915
|
-
}, [transitionOverlay, slides, templateElementsBySlideId]);
|
|
2925
|
+
}, [transitionOverlay, slides, templateElementsBySlideId, canvasSize]);
|
|
2916
2926
|
const morphedElementStates = useMemo(() => {
|
|
2917
2927
|
if (!morphPlan || morphPlan.incomingAnimations.size === 0) {
|
|
2918
2928
|
return presentationElementStates;
|
|
@@ -7740,20 +7750,6 @@ function exportSlideToSvg(slide, width, height, options = {}) {
|
|
|
7740
7750
|
}
|
|
7741
7751
|
return svg;
|
|
7742
7752
|
}
|
|
7743
|
-
function safePrompt(message, defaultValue) {
|
|
7744
|
-
try {
|
|
7745
|
-
return window.prompt(message, defaultValue);
|
|
7746
|
-
} catch {
|
|
7747
|
-
return null;
|
|
7748
|
-
}
|
|
7749
|
-
}
|
|
7750
|
-
function safeConfirm(message) {
|
|
7751
|
-
try {
|
|
7752
|
-
return window.confirm(message);
|
|
7753
|
-
} catch {
|
|
7754
|
-
return false;
|
|
7755
|
-
}
|
|
7756
|
-
}
|
|
7757
7753
|
|
|
7758
7754
|
// src/viewer/hooks/useExportMediaHandlers.ts
|
|
7759
7755
|
function useExportMediaHandlers(input) {
|
|
@@ -8626,6 +8622,7 @@ function usePropertyHandlers(input) {
|
|
|
8626
8622
|
};
|
|
8627
8623
|
}
|
|
8628
8624
|
function useDialogCustomShows(input) {
|
|
8625
|
+
const { t } = useTranslation();
|
|
8629
8626
|
const {
|
|
8630
8627
|
activeSlide,
|
|
8631
8628
|
customShows,
|
|
@@ -8645,16 +8642,20 @@ function useDialogCustomShows(input) {
|
|
|
8645
8642
|
);
|
|
8646
8643
|
history.markDirty();
|
|
8647
8644
|
};
|
|
8648
|
-
const handleCreateCustomShow = () => {
|
|
8649
|
-
const name =
|
|
8650
|
-
|
|
8645
|
+
const handleCreateCustomShow = async () => {
|
|
8646
|
+
const name = await promptNameDialog(
|
|
8647
|
+
t("pptx.customShows.newNameLabel"),
|
|
8648
|
+
t("pptx.customShows.newDefaultName"),
|
|
8649
|
+
{ t }
|
|
8650
|
+
);
|
|
8651
|
+
const safeName = name?.trim() || `${t("pptx.customShows.newDefaultName")} ${customShows.length + 1}`;
|
|
8651
8652
|
const id = generateCustomShowId(customShows);
|
|
8652
8653
|
const initialSlideRIds = activeSlide?.rId && activeSlide.rId.length > 0 ? [activeSlide.rId] : [];
|
|
8653
8654
|
setCustomShows((prev) => [...prev, { id, name: safeName, slideRIds: initialSlideRIds }]);
|
|
8654
8655
|
setActiveCustomShowId(id);
|
|
8655
8656
|
history.markDirty();
|
|
8656
8657
|
};
|
|
8657
|
-
const handleRenameActiveCustomShow = () => {
|
|
8658
|
+
const handleRenameActiveCustomShow = async () => {
|
|
8658
8659
|
if (!activeCustomShowId) {
|
|
8659
8660
|
return;
|
|
8660
8661
|
}
|
|
@@ -8662,14 +8663,14 @@ function useDialogCustomShows(input) {
|
|
|
8662
8663
|
if (!show) {
|
|
8663
8664
|
return;
|
|
8664
8665
|
}
|
|
8665
|
-
const nextName =
|
|
8666
|
+
const nextName = (await promptNameDialog(t("pptx.customShows.renamePrompt"), show.name, { t }))?.trim();
|
|
8666
8667
|
if (!nextName) {
|
|
8667
8668
|
return;
|
|
8668
8669
|
}
|
|
8669
8670
|
setCustomShows((prev) => prev.map((s) => s.id === show.id ? { ...s, name: nextName } : s));
|
|
8670
8671
|
history.markDirty();
|
|
8671
8672
|
};
|
|
8672
|
-
const handleDeleteActiveCustomShow = () => {
|
|
8673
|
+
const handleDeleteActiveCustomShow = async () => {
|
|
8673
8674
|
const showId = activeCustomShowId;
|
|
8674
8675
|
if (!showId) {
|
|
8675
8676
|
return;
|
|
@@ -8678,7 +8679,7 @@ function useDialogCustomShows(input) {
|
|
|
8678
8679
|
if (!show) {
|
|
8679
8680
|
return;
|
|
8680
8681
|
}
|
|
8681
|
-
if (!
|
|
8682
|
+
if (!await confirmDeleteDialog(t("pptx.customShows.deleteConfirm", { name: show.name }), { t })) {
|
|
8682
8683
|
return;
|
|
8683
8684
|
}
|
|
8684
8685
|
setCustomShows((prev) => prev.filter((s) => s.id !== showId));
|
|
@@ -10389,6 +10390,27 @@ function useContentLifecycle(input) {
|
|
|
10389
10390
|
};
|
|
10390
10391
|
const serializeSlides = useSerialize(serializeInput);
|
|
10391
10392
|
const serializeForRecovery = useSerialize({ ...serializeInput, purpose: "recovery-snapshot" });
|
|
10393
|
+
const getChangeSources = () => [
|
|
10394
|
+
slides,
|
|
10395
|
+
state.templateElementsBySlideId,
|
|
10396
|
+
state.guides,
|
|
10397
|
+
state.headerFooter,
|
|
10398
|
+
state.presentationProperties,
|
|
10399
|
+
state.customShows,
|
|
10400
|
+
state.sections,
|
|
10401
|
+
state.coreProperties,
|
|
10402
|
+
state.appProperties,
|
|
10403
|
+
state.customProperties,
|
|
10404
|
+
state.tagCollections,
|
|
10405
|
+
state.notesMaster,
|
|
10406
|
+
state.handoutMaster,
|
|
10407
|
+
state.embeddedFonts,
|
|
10408
|
+
embedFonts,
|
|
10409
|
+
password,
|
|
10410
|
+
state.inlineEditingElementIdRef.current,
|
|
10411
|
+
state.inlineEditingTextRef.current,
|
|
10412
|
+
state.inlineEditingSnapshotRef.current
|
|
10413
|
+
];
|
|
10392
10414
|
const { autosaveStatus } = useAutosave({
|
|
10393
10415
|
isDirty: state.isDirty,
|
|
10394
10416
|
filePath,
|
|
@@ -10396,36 +10418,12 @@ function useContentLifecycle(input) {
|
|
|
10396
10418
|
serializeSlides: serializeForRecovery,
|
|
10397
10419
|
enabled: autosaveEnabled,
|
|
10398
10420
|
...autosaveIntervalMs === void 0 ? {} : { intervalMs: autosaveIntervalMs },
|
|
10399
|
-
// Everything `serializeForRecovery` reads that changes by REASSIGNMENT,
|
|
10400
|
-
// so a poll that finds all of them unchanged can skip re-serializing a
|
|
10401
|
-
// deck it has already snapshotted. The two refs are read by `.current`
|
|
10402
|
-
// because an inline edit in progress lives there and nowhere else yet.
|
|
10403
10421
|
onSaved: input.onAutosave,
|
|
10404
10422
|
inlineDraftSinkRef: state.autosaveDraftSinkRef,
|
|
10405
10423
|
getInlineEditingId: () => state.inlineEditingElementIdRef.current,
|
|
10406
|
-
getChangeSources
|
|
10407
|
-
slides,
|
|
10408
|
-
state.templateElementsBySlideId,
|
|
10409
|
-
state.guides,
|
|
10410
|
-
state.headerFooter,
|
|
10411
|
-
state.presentationProperties,
|
|
10412
|
-
state.customShows,
|
|
10413
|
-
state.sections,
|
|
10414
|
-
state.coreProperties,
|
|
10415
|
-
state.appProperties,
|
|
10416
|
-
state.customProperties,
|
|
10417
|
-
state.tagCollections,
|
|
10418
|
-
state.notesMaster,
|
|
10419
|
-
state.handoutMaster,
|
|
10420
|
-
state.embeddedFonts,
|
|
10421
|
-
embedFonts,
|
|
10422
|
-
password,
|
|
10423
|
-
state.inlineEditingElementIdRef.current,
|
|
10424
|
-
state.inlineEditingTextRef.current,
|
|
10425
|
-
state.inlineEditingSnapshotRef.current
|
|
10426
|
-
]
|
|
10424
|
+
getChangeSources
|
|
10427
10425
|
});
|
|
10428
|
-
return { handlerRef, serializeSlides, serializeForRecovery, autosaveStatus };
|
|
10426
|
+
return { handlerRef, serializeSlides, serializeForRecovery, autosaveStatus, getChangeSources };
|
|
10429
10427
|
}
|
|
10430
10428
|
function useKeyboardShortcuts(input) {
|
|
10431
10429
|
const inputRef = useRef(input);
|
|
@@ -10770,7 +10768,7 @@ function useViewerIntegration(input) {
|
|
|
10770
10768
|
});
|
|
10771
10769
|
const [isEncryptedDialogOpen, setIsEncryptedDialogOpen] = useState(false);
|
|
10772
10770
|
const [loadVersion, setLoadVersion] = useState(0);
|
|
10773
|
-
const { handlerRef, serializeSlides, autosaveStatus } = useContentLifecycle({
|
|
10771
|
+
const { handlerRef, serializeSlides, autosaveStatus, getChangeSources } = useContentLifecycle({
|
|
10774
10772
|
content,
|
|
10775
10773
|
filePath,
|
|
10776
10774
|
storage,
|
|
@@ -10853,164 +10851,167 @@ function useViewerIntegration(input) {
|
|
|
10853
10851
|
});
|
|
10854
10852
|
useImperativeHandle(
|
|
10855
10853
|
ref,
|
|
10856
|
-
() => latestHandleRef.current =
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
|
|
10867
|
-
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
10875
|
-
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
10885
|
-
|
|
10886
|
-
|
|
10887
|
-
|
|
10888
|
-
|
|
10889
|
-
|
|
10890
|
-
|
|
10891
|
-
|
|
10892
|
-
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
|
|
10907
|
-
|
|
10908
|
-
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
-
|
|
10918
|
-
|
|
10919
|
-
|
|
10920
|
-
|
|
10921
|
-
|
|
10922
|
-
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
10926
|
-
|
|
10927
|
-
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
|
|
10951
|
-
|
|
10952
|
-
|
|
10953
|
-
|
|
10954
|
-
|
|
10955
|
-
|
|
10956
|
-
|
|
10957
|
-
|
|
10958
|
-
|
|
10959
|
-
|
|
10960
|
-
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
|
|
10964
|
-
|
|
10965
|
-
|
|
10966
|
-
|
|
10967
|
-
|
|
10968
|
-
|
|
10969
|
-
|
|
10970
|
-
|
|
10971
|
-
|
|
10972
|
-
|
|
10973
|
-
|
|
10974
|
-
|
|
10975
|
-
|
|
10976
|
-
|
|
10977
|
-
|
|
10978
|
-
|
|
10979
|
-
|
|
10980
|
-
|
|
10981
|
-
|
|
10982
|
-
|
|
10983
|
-
|
|
10984
|
-
|
|
10985
|
-
|
|
10986
|
-
|
|
10987
|
-
|
|
10988
|
-
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
10854
|
+
() => latestHandleRef.current = gateViewerEdits(
|
|
10855
|
+
{
|
|
10856
|
+
...customizationApi,
|
|
10857
|
+
async getContent() {
|
|
10858
|
+
const data = await serializeSlides();
|
|
10859
|
+
if (data && onContentChange) {
|
|
10860
|
+
onContentChange(data);
|
|
10861
|
+
}
|
|
10862
|
+
return data ?? new Uint8Array(0);
|
|
10863
|
+
},
|
|
10864
|
+
goTo(index) {
|
|
10865
|
+
if (index >= 0 && index < slides.length) {
|
|
10866
|
+
state.setActiveSlideIndex(index);
|
|
10867
|
+
}
|
|
10868
|
+
},
|
|
10869
|
+
goPrev() {
|
|
10870
|
+
const next = activeSlideIndex - 1;
|
|
10871
|
+
if (next >= 0) {
|
|
10872
|
+
state.setActiveSlideIndex(next);
|
|
10873
|
+
}
|
|
10874
|
+
},
|
|
10875
|
+
goNext() {
|
|
10876
|
+
const next = activeSlideIndex + 1;
|
|
10877
|
+
if (next < slides.length) {
|
|
10878
|
+
state.setActiveSlideIndex(next);
|
|
10879
|
+
}
|
|
10880
|
+
},
|
|
10881
|
+
undo() {
|
|
10882
|
+
history.handleUndo();
|
|
10883
|
+
},
|
|
10884
|
+
redo() {
|
|
10885
|
+
history.handleRedo();
|
|
10886
|
+
},
|
|
10887
|
+
canUndo() {
|
|
10888
|
+
return history.canUndo;
|
|
10889
|
+
},
|
|
10890
|
+
canRedo() {
|
|
10891
|
+
return history.canRedo;
|
|
10892
|
+
},
|
|
10893
|
+
getZoom() {
|
|
10894
|
+
return zoom.scale;
|
|
10895
|
+
},
|
|
10896
|
+
setZoom(level) {
|
|
10897
|
+
zoom.setScale(clampZoomScale(level));
|
|
10898
|
+
},
|
|
10899
|
+
zoomIn() {
|
|
10900
|
+
zoom.handleZoomIn();
|
|
10901
|
+
},
|
|
10902
|
+
zoomOut() {
|
|
10903
|
+
zoom.handleZoomOut();
|
|
10904
|
+
},
|
|
10905
|
+
zoomReset() {
|
|
10906
|
+
zoom.handleResetZoom();
|
|
10907
|
+
},
|
|
10908
|
+
getMode() {
|
|
10909
|
+
return resolveReportedViewerMode(mode, canEdit);
|
|
10910
|
+
},
|
|
10911
|
+
setMode(newMode) {
|
|
10912
|
+
state.setMode(newMode);
|
|
10913
|
+
},
|
|
10914
|
+
getActiveSlideIndex() {
|
|
10915
|
+
return activeSlideIndex;
|
|
10916
|
+
},
|
|
10917
|
+
getSlideCount() {
|
|
10918
|
+
return slides.length;
|
|
10919
|
+
},
|
|
10920
|
+
isDirty() {
|
|
10921
|
+
return state.isDirty;
|
|
10922
|
+
},
|
|
10923
|
+
getSelectedElementIds() {
|
|
10924
|
+
return state.effectiveSelectedIds;
|
|
10925
|
+
},
|
|
10926
|
+
selectElements(ids) {
|
|
10927
|
+
state.setSelectedElementIds(ids);
|
|
10928
|
+
state.setSelectedElementId(ids[0] ?? null);
|
|
10929
|
+
},
|
|
10930
|
+
clearSelection() {
|
|
10931
|
+
state.setSelectedElementIds([]);
|
|
10932
|
+
state.setSelectedElementId(null);
|
|
10933
|
+
},
|
|
10934
|
+
// -- Active slide (alias) --
|
|
10935
|
+
setActiveSlideIndex(index) {
|
|
10936
|
+
if (index >= 0 && index < slides.length) {
|
|
10937
|
+
state.setActiveSlideIndex(index);
|
|
10938
|
+
}
|
|
10939
|
+
},
|
|
10940
|
+
// -- Slide access --
|
|
10941
|
+
getSlides() {
|
|
10942
|
+
return slides;
|
|
10943
|
+
},
|
|
10944
|
+
getSlide(index) {
|
|
10945
|
+
return slides[index];
|
|
10946
|
+
},
|
|
10947
|
+
getActiveSlide() {
|
|
10948
|
+
return slides[activeSlideIndex];
|
|
10949
|
+
},
|
|
10950
|
+
// -- Slide manipulation --
|
|
10951
|
+
addSlide(afterIndex) {
|
|
10952
|
+
if (afterIndex === void 0) {
|
|
10953
|
+
editorOps.slideOps.handleAddSlide();
|
|
10954
|
+
} else {
|
|
10955
|
+
editorOps.slideOps.handleAddSlideAfter(afterIndex);
|
|
10956
|
+
}
|
|
10957
|
+
},
|
|
10958
|
+
deleteSlides(indexes) {
|
|
10959
|
+
editorOps.slideOps.handleDeleteSlides(indexes);
|
|
10960
|
+
},
|
|
10961
|
+
duplicateSlides(indexes) {
|
|
10962
|
+
editorOps.slideOps.handleDuplicateSlides(indexes);
|
|
10963
|
+
},
|
|
10964
|
+
moveSlide(fromIndex, toIndex) {
|
|
10965
|
+
editorOps.slideOps.handleMoveSlide(fromIndex, toIndex);
|
|
10966
|
+
},
|
|
10967
|
+
toggleHideSlides(indexes) {
|
|
10968
|
+
editorOps.slideOps.handleToggleHideSlides(indexes);
|
|
10969
|
+
},
|
|
10970
|
+
// -- Element access --
|
|
10971
|
+
getElements(slideIndex) {
|
|
10972
|
+
const idx = slideIndex ?? activeSlideIndex;
|
|
10973
|
+
const s = slides[idx];
|
|
10974
|
+
return s?.elements ?? [];
|
|
10975
|
+
},
|
|
10976
|
+
getElementById(elementId, slideIndex) {
|
|
10977
|
+
const idx = slideIndex ?? activeSlideIndex;
|
|
10978
|
+
const s = slides[idx];
|
|
10979
|
+
return s ? slideSpaceElement(s.elements, elementId) ?? void 0 : void 0;
|
|
10980
|
+
},
|
|
10981
|
+
// -- Element manipulation --
|
|
10982
|
+
addElement(element) {
|
|
10983
|
+
const inserted = prepareElementForInsertion(element, {
|
|
10984
|
+
canEdit: canEdit && canInsertElement,
|
|
10985
|
+
mode,
|
|
10986
|
+
hasActiveSlide: !loading && !error && Boolean(activeSlide),
|
|
10987
|
+
editTemplateMode: state.editTemplateMode
|
|
10988
|
+
});
|
|
10989
|
+
if (!inserted) {
|
|
10990
|
+
return void 0;
|
|
10991
|
+
}
|
|
10992
|
+
editorOps.canvasHandlers.handleInlineEditCommit();
|
|
10993
|
+
editorOps.insertHandlers.addElement(inserted);
|
|
10994
|
+
editorOps.ops.applySelection(inserted.id, [inserted.id]);
|
|
10995
|
+
return inserted.id;
|
|
10996
|
+
},
|
|
10997
|
+
updateElements,
|
|
10998
|
+
updateElement(elementId, updates) {
|
|
10999
|
+
editorOps.ops.updateElementById(elementId, updates);
|
|
11000
|
+
},
|
|
11001
|
+
deleteElements(elementIds) {
|
|
11002
|
+
state.setSelectedElementIds(elementIds);
|
|
11003
|
+
state.setSelectedElementId(elementIds[0] ?? null);
|
|
11004
|
+
editorOps.manipulation.handleDelete();
|
|
11005
|
+
},
|
|
11006
|
+
duplicateElement(elementId) {
|
|
11007
|
+
state.setSelectedElementIds([elementId]);
|
|
11008
|
+
state.setSelectedElementId(elementId);
|
|
11009
|
+
editorOps.manipulation.handleDuplicate();
|
|
11010
|
+
return state.selectedElementIds[0];
|
|
10992
11011
|
}
|
|
10993
|
-
editorOps.canvasHandlers.handleInlineEditCommit();
|
|
10994
|
-
editorOps.insertHandlers.addElement(inserted);
|
|
10995
|
-
editorOps.ops.applySelection(inserted.id, [inserted.id]);
|
|
10996
|
-
return inserted.id;
|
|
10997
11012
|
},
|
|
10998
|
-
|
|
10999
|
-
|
|
11000
|
-
editorOps.ops.updateElementById(elementId, updates);
|
|
11001
|
-
},
|
|
11002
|
-
deleteElements(elementIds) {
|
|
11003
|
-
state.setSelectedElementIds(elementIds);
|
|
11004
|
-
state.setSelectedElementId(elementIds[0] ?? null);
|
|
11005
|
-
editorOps.manipulation.handleDelete();
|
|
11006
|
-
},
|
|
11007
|
-
duplicateElement(elementId) {
|
|
11008
|
-
state.setSelectedElementIds([elementId]);
|
|
11009
|
-
state.setSelectedElementId(elementId);
|
|
11010
|
-
editorOps.manipulation.handleDuplicate();
|
|
11011
|
-
return state.selectedElementIds[0];
|
|
11012
|
-
}
|
|
11013
|
-
},
|
|
11013
|
+
() => canEdit
|
|
11014
|
+
),
|
|
11014
11015
|
[
|
|
11015
11016
|
updateElements,
|
|
11016
11017
|
serializeSlides,
|
|
@@ -11095,6 +11096,7 @@ function useViewerIntegration(input) {
|
|
|
11095
11096
|
handleEnterPresenterView,
|
|
11096
11097
|
handleEnterRehearsalMode,
|
|
11097
11098
|
autosaveStatus,
|
|
11099
|
+
getChangeSources,
|
|
11098
11100
|
recovery,
|
|
11099
11101
|
isEncryptedDialogOpen,
|
|
11100
11102
|
setIsEncryptedDialogOpen,
|
|
@@ -11880,7 +11882,7 @@ function buildCanvasProps(input) {
|
|
|
11880
11882
|
findResults,
|
|
11881
11883
|
findResultIndex,
|
|
11882
11884
|
viewerOptions,
|
|
11883
|
-
|
|
11885
|
+
t
|
|
11884
11886
|
} = input;
|
|
11885
11887
|
const effectiveSlide = mode === "master" ? masterPseudoSlide : activeSlide;
|
|
11886
11888
|
const effectiveTemplateElements = mode === "master" ? s.activeLayout ? s.activeMaster?.elements ?? [] : [] : templateElements;
|
|
@@ -11892,10 +11894,7 @@ function buildCanvasProps(input) {
|
|
|
11892
11894
|
});
|
|
11893
11895
|
const tableStyleContext = s.theme || s.tableStyleMap ? { theme: s.theme, tableStyleMap: s.tableStyleMap } : void 0;
|
|
11894
11896
|
const openExternalUrl = (url, target) => {
|
|
11895
|
-
|
|
11896
|
-
return;
|
|
11897
|
-
}
|
|
11898
|
-
safeOpenUrl$1(url, target);
|
|
11897
|
+
void openExternalHyperlinkConfirmed(viewerOptions, url, { t }, target);
|
|
11899
11898
|
};
|
|
11900
11899
|
const handleActionClick = (elementId, action) => {
|
|
11901
11900
|
if (mode === "present") {
|
|
@@ -13276,9 +13275,7 @@ function useViewerBuildingBlocks(input) {
|
|
|
13276
13275
|
findResults: editorOps.findReplace.findResults,
|
|
13277
13276
|
findResultIndex: editorOps.findReplace.findResultIndex,
|
|
13278
13277
|
viewerOptions,
|
|
13279
|
-
|
|
13280
|
-
|
|
13281
|
-
${url}`
|
|
13278
|
+
t
|
|
13282
13279
|
});
|
|
13283
13280
|
canvasProps.collaborationOverlay = overlay;
|
|
13284
13281
|
const slidesPaneProps = useSlidesPaneProps({
|
|
@@ -14783,7 +14780,8 @@ function getContainerStyle({
|
|
|
14783
14780
|
animationState,
|
|
14784
14781
|
shapeVisualStyle,
|
|
14785
14782
|
has3DExtrusion,
|
|
14786
|
-
templateEditing
|
|
14783
|
+
templateEditing,
|
|
14784
|
+
edgeBleed
|
|
14787
14785
|
}) {
|
|
14788
14786
|
const ss = hasShapeProperties(el) ? el.shapeStyle : void 0;
|
|
14789
14787
|
const isPicture = el.type === "picture" || el.type === "image";
|
|
@@ -14794,7 +14792,7 @@ function getContainerStyle({
|
|
|
14794
14792
|
const painted = paintedElementSize(el);
|
|
14795
14793
|
const fs = MEDIA_FULLSCREEN_OVERLAY_STYLE;
|
|
14796
14794
|
const heightStyle = isFullscreenMedia ? { height: fs.height } : el.type === "table" ? elementContainerHeightStyle(el, painted.height) : { height: painted.height };
|
|
14797
|
-
|
|
14795
|
+
const style = {
|
|
14798
14796
|
left: isFullscreenMedia ? fs.left : el.x,
|
|
14799
14797
|
top: isFullscreenMedia ? fs.top : el.y,
|
|
14800
14798
|
width: isFullscreenMedia ? fs.width : painted.width,
|
|
@@ -14835,6 +14833,14 @@ function getContainerStyle({
|
|
|
14835
14833
|
// set for normal slide content or while the mode is off.
|
|
14836
14834
|
...templateEditing ? { outline: "2px dashed rgb(217, 119, 6)", outlineOffset: "1px", opacity: opacity ?? 0.95 } : {}
|
|
14837
14835
|
};
|
|
14836
|
+
return {
|
|
14837
|
+
...style,
|
|
14838
|
+
...abuttingEdgeBleedStyle(
|
|
14839
|
+
el,
|
|
14840
|
+
edgeBleed,
|
|
14841
|
+
style
|
|
14842
|
+
)
|
|
14843
|
+
};
|
|
14838
14844
|
}
|
|
14839
14845
|
function shapeParams(element) {
|
|
14840
14846
|
const style = hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
@@ -15014,6 +15020,7 @@ function ShapeEffectOverlay({
|
|
|
15014
15020
|
"svg",
|
|
15015
15021
|
{
|
|
15016
15022
|
className: "pptx-react-gradient-outline",
|
|
15023
|
+
"data-pptx-outline": "",
|
|
15017
15024
|
"aria-hidden": "true",
|
|
15018
15025
|
viewBox: strokeOutlineViewBox(element),
|
|
15019
15026
|
preserveAspectRatio: "none",
|
|
@@ -15110,6 +15117,7 @@ var ElementRenderer = /* @__PURE__ */ React17.memo(
|
|
|
15110
15117
|
opacity,
|
|
15111
15118
|
templateEditing,
|
|
15112
15119
|
zIndex,
|
|
15120
|
+
edgeBleed,
|
|
15113
15121
|
imageAltText,
|
|
15114
15122
|
showResizeHandles,
|
|
15115
15123
|
renderInk: doInk,
|
|
@@ -15246,7 +15254,8 @@ var ElementRenderer = /* @__PURE__ */ React17.memo(
|
|
|
15246
15254
|
animationState,
|
|
15247
15255
|
shapeVisualStyle: backgroundAnimationState ? {} : ss,
|
|
15248
15256
|
has3DExtrusion: extrusionData.hasExtrusion,
|
|
15249
|
-
templateEditing
|
|
15257
|
+
templateEditing,
|
|
15258
|
+
edgeBleed
|
|
15250
15259
|
});
|
|
15251
15260
|
const interactionProps = getElementInteractionProps({
|
|
15252
15261
|
element: el,
|
|
@@ -16079,7 +16088,7 @@ function InlineTextEditor({
|
|
|
16079
16088
|
...textStyle,
|
|
16080
16089
|
...warpStyle,
|
|
16081
16090
|
transform: mergedTransform,
|
|
16082
|
-
transformOrigin: warpStyle?.transformOrigin || "center"
|
|
16091
|
+
transformOrigin: warpStyle?.transformOrigin || (compensationTransform ? getTextCompensationOrigin(element) : "center")
|
|
16083
16092
|
};
|
|
16084
16093
|
const nextInlineStyleValue = (property) => {
|
|
16085
16094
|
if (!hasTextProperties(element)) {
|
|
@@ -17622,7 +17631,8 @@ function renderTextElementBody(options) {
|
|
|
17622
17631
|
);
|
|
17623
17632
|
const scene3dStyle = hasTextProperties(el) ? buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
|
|
17624
17633
|
const rotationTransform = getTextBodyRotationTransform(el);
|
|
17625
|
-
const
|
|
17634
|
+
const compensation = getTextCompensationStyle(el);
|
|
17635
|
+
const composedTransform = [rotationTransform, compensation?.transform, scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
17626
17636
|
const transformStyle = {
|
|
17627
17637
|
transform: composedTransform,
|
|
17628
17638
|
// A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
|
|
@@ -17633,7 +17643,7 @@ function renderTextElementBody(options) {
|
|
|
17633
17643
|
// hardcoded to `'center'` unconditionally, silently clobbering
|
|
17634
17644
|
// `scene3dStyle.transformOrigin` the same way Svelte's `ElementRenderer`
|
|
17635
17645
|
// once re-clobbered `pointerEvents` from its own interactive flag.
|
|
17636
|
-
transformOrigin: scene3dStyle?.transformOrigin ?? "center",
|
|
17646
|
+
transformOrigin: scene3dStyle?.transformOrigin ?? compensation?.transformOrigin ?? "center",
|
|
17637
17647
|
...scene3dStyle?.perspective ? { perspective: scene3dStyle.perspective } : {},
|
|
17638
17648
|
// COM-calibrated off-axis correction for a handful of camera presets
|
|
17639
17649
|
// (see `visual-3d-camera`'s module doc comment); only reachable when an
|
|
@@ -18151,7 +18161,7 @@ function getStaticElementVisualState(element, parentGroupFill) {
|
|
|
18151
18161
|
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : DEFAULT_TEXT_COLOR
|
|
18152
18162
|
);
|
|
18153
18163
|
const isImage = element.type === "picture" || element.type === "image";
|
|
18154
|
-
const letsTextOverflow = hasTextProperties(element) &&
|
|
18164
|
+
const letsTextOverflow = hasTextProperties(element) && Boolean(element.text?.trim());
|
|
18155
18165
|
const shapeType = hasShapeProperties(element) ? element.shapeType : void 0;
|
|
18156
18166
|
const isCallout = isWedgeCalloutPresetShape(shapeType) || String(shapeType ?? "").toLowerCase().includes("callout");
|
|
18157
18167
|
return {
|
|
@@ -18432,7 +18442,8 @@ function FragmentedTransitionLayer({
|
|
|
18432
18442
|
);
|
|
18433
18443
|
}
|
|
18434
18444
|
function overlayEntries(plan, incomingSlide) {
|
|
18435
|
-
|
|
18445
|
+
const slots = morphOverlayElementSlots(plan);
|
|
18446
|
+
return plan.overlayLayers.filter((layer) => layer.side === "outgoing" || incomingSlide !== void 0).flatMap((layer) => layer.elements.map((element) => ({ element, side: layer.side }))).map((entry, index) => ({ ...entry, zIndex: slots.elements.get(entry.element.id) ?? index }));
|
|
18436
18447
|
}
|
|
18437
18448
|
function MorphTransitionOverlay({
|
|
18438
18449
|
canvasSize,
|
|
@@ -18442,6 +18453,7 @@ function MorphTransitionOverlay({
|
|
|
18442
18453
|
incomingSlide,
|
|
18443
18454
|
containerRef
|
|
18444
18455
|
}) {
|
|
18456
|
+
const groupSlots = morphOverlayElementSlots(morphPlan).groups;
|
|
18445
18457
|
return /* @__PURE__ */ jsxs(
|
|
18446
18458
|
"div",
|
|
18447
18459
|
{
|
|
@@ -18451,7 +18463,11 @@ function MorphTransitionOverlay({
|
|
|
18451
18463
|
className: "pptx-react-transition-overlay absolute inset-0 pointer-events-none overflow-hidden",
|
|
18452
18464
|
style: { zIndex: 40 },
|
|
18453
18465
|
children: [
|
|
18454
|
-
/* @__PURE__ */ jsx("style", { children:
|
|
18466
|
+
/* @__PURE__ */ jsx("style", { children: [
|
|
18467
|
+
morphPlan.keyframesCss,
|
|
18468
|
+
buildMorphOutlineRules(morphPlan, "data-pptx-morph-outgoing"),
|
|
18469
|
+
buildMorphOutlineRules(morphPlan, "data-pptx-morph-lifted")
|
|
18470
|
+
].filter(Boolean).join("\n") }),
|
|
18455
18471
|
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs(
|
|
18456
18472
|
"div",
|
|
18457
18473
|
{
|
|
@@ -18517,7 +18533,7 @@ function MorphTransitionOverlay({
|
|
|
18517
18533
|
"data-pptx-morph-crossfade": group.incoming.id,
|
|
18518
18534
|
style: {
|
|
18519
18535
|
...MORPH_CROSSFADE_GROUP_STYLE,
|
|
18520
|
-
zIndex: morphPlan.outgoingElements.length + morphPlan.overlayIncomingElements.length + index
|
|
18536
|
+
zIndex: groupSlots[index] ?? morphPlan.outgoingElements.length + morphPlan.overlayIncomingElements.length + index
|
|
18521
18537
|
},
|
|
18522
18538
|
children: [
|
|
18523
18539
|
/* @__PURE__ */ jsx(
|
|
@@ -18823,4 +18839,4 @@ function useResizablePanels() {
|
|
|
18823
18839
|
};
|
|
18824
18840
|
}
|
|
18825
18841
|
|
|
18826
|
-
export { ACTION_VERB_MAP, ChartFormatContext, ChartPartSelectionProvider, CollaborationCursorOverlay, CollaborationProvider, ElementRenderer, FragmentedTransitionLayer, InlineCollaborationContext, MIN_TOUCH_TARGET, MorphTransitionOverlay, PresentationTransitionOverlay, RemoteSelectionOverlay, RemoteUserCursors, Rendering3DFlagsContext, ResizeHandles, SlideBackgroundImageLayer, SlideLayer, StaticElementRenderer, ViewerOptionsContext, ViewerOptionsStoreContext, computeToolbarVisibility, createReviewCommentsHost, detectTargetType, imgSrc, isAudienceTab, parseAudienceNonce, parseEmailUrl, parseSlideFromUrl, playAnimationSound, renderStrokeView, renderToCanvas, resolveSmartArtDataPalette,
|
|
18842
|
+
export { ACTION_VERB_MAP, ChartFormatContext, ChartPartSelectionProvider, CollaborationCursorOverlay, CollaborationProvider, ElementRenderer, FragmentedTransitionLayer, InlineCollaborationContext, MIN_TOUCH_TARGET, MorphTransitionOverlay, PresentationTransitionOverlay, RemoteSelectionOverlay, RemoteUserCursors, Rendering3DFlagsContext, ResizeHandles, SlideBackgroundImageLayer, SlideLayer, StaticElementRenderer, ViewerOptionsContext, ViewerOptionsStoreContext, computeToolbarVisibility, createReviewCommentsHost, detectTargetType, imgSrc, isAudienceTab, parseAudienceNonce, parseEmailUrl, parseSlideFromUrl, playAnimationSound, renderStrokeView, renderToCanvas, resolveSmartArtDataPalette, scopeLayoutOptionsToActiveSlide, useAnimationPlayback, useAnnotationHandlers, useAudienceMode, useAutosave, useBroadcastFollower, useCanvasInteractions, useChartFormatContext, useChartPartSelection, useClearSelectionOnSlideChange, useClipboardHandlers, useCollaboration, useCollaborationDocumentSync, useCollaborativeHistory, useCollaborativeState, useComments, useCompatibilityToastsState, useContentLifecycle, useController, useDerivedElementState, useDerivedSlideState, useDialogCustomShows, useEditorHistory, useEditorOperations, useElementManipulation, useElementOperations, useExportHandlers, useExportSaveAs, useFindReplace, useFollowMode, useFontInjection, useGroupAlignLayerHandlers, useIOHandlers, useInsertElements, useIsMobile, useKeyboardInsets, useKeyboardShortcutWiring, useKeyboardShortcuts, useLayoutSwitching, useLoadContent, useMergeShapesHandler, useModalDismissDrag, usePointerHandlers, usePresenceTracking, usePresentationAnnotations, usePresentationKeyboard, usePresentationMode, usePresentationSetup, usePresenterWindow, usePrintHandlers, usePropertyHandlers, useReadOnlyRecommendationState, useRecoveryDetection, useReducedMotion, useRehearsalTimings, useReportOnChange, useResizablePanels, useSectionOperations, useSerialize, useSheetDismissDrag, useSlideManagement, useSlideNavigation, useSwipeNavigation, useTableOperations, useThemeHandlers, useThemeSwitching, useToolbarVisibility, useTouchGestures, useViewPreferencesSync, useViewerBuildingBlocks, useViewerCoreState, useViewerDialogs, useViewerIntegration, useViewerOptions, useViewerOptionsContext, useViewerState, useViewerUIState, useVirtualizedSlides, useYjsDocumentSync, useYjsProvider, useZoomNavigation, useZoomViewport, withDisplayName };
|