pptx-react-viewer 3.1.1 → 3.1.3
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 +22 -0
- package/dist/{AiChatPanel-EIENGCKW.mjs → AiChatPanel-5JAQBLTU.mjs} +4 -4
- package/dist/AiChatPanel-5JAQBLTU.mjs.br +0 -0
- package/dist/AiChatPanel-5JAQBLTU.mjs.gz +0 -0
- package/dist/{AiChatPanel-6PERJN7M.js → AiChatPanel-C3E7UV7T.js} +24 -24
- package/dist/AiChatPanel-C3E7UV7T.js.br +0 -0
- package/dist/AiChatPanel-C3E7UV7T.js.gz +0 -0
- package/dist/{Area3DChartScene-W6SVC235.mjs → Area3DChartScene-KE434ERF.mjs} +1 -1
- package/dist/{Area3DChartScene-W6SVC235.mjs.br → Area3DChartScene-KE434ERF.mjs.br} +0 -0
- package/dist/Area3DChartScene-KE434ERF.mjs.gz +0 -0
- package/dist/{Area3DChartScene-TXCLQLBQ.js → Area3DChartScene-XY2PKRMA.js} +2 -2
- package/dist/Area3DChartScene-XY2PKRMA.js.br +0 -0
- package/dist/Area3DChartScene-XY2PKRMA.js.gz +0 -0
- package/dist/{Bar3DChartScene-FCVUZIJ3.mjs → Bar3DChartScene-2KQABQZM.mjs} +1 -1
- package/dist/{Bar3DChartScene-FCVUZIJ3.mjs.br → Bar3DChartScene-2KQABQZM.mjs.br} +0 -0
- package/dist/Bar3DChartScene-2KQABQZM.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-6RHPFLZT.js → Bar3DChartScene-YMADUUZN.js} +2 -2
- package/dist/Bar3DChartScene-YMADUUZN.js.br +0 -0
- package/dist/Bar3DChartScene-YMADUUZN.js.gz +0 -0
- package/dist/{Line3DChartScene-2ZFE53KO.js → Line3DChartScene-AB7N6ORX.js} +2 -2
- package/dist/Line3DChartScene-AB7N6ORX.js.br +0 -0
- package/dist/Line3DChartScene-AB7N6ORX.js.gz +0 -0
- package/dist/{Line3DChartScene-MJXFXSPW.mjs → Line3DChartScene-K3BSK6BB.mjs} +1 -1
- package/dist/{Line3DChartScene-MJXFXSPW.mjs.br → Line3DChartScene-K3BSK6BB.mjs.br} +0 -0
- package/dist/Line3DChartScene-K3BSK6BB.mjs.gz +0 -0
- package/dist/{Model3DScene-A5RV3KNJ.mjs → Model3DScene-NT5RRIB5.mjs} +1 -1
- package/dist/{Model3DScene-A5RV3KNJ.mjs.br → Model3DScene-NT5RRIB5.mjs.br} +0 -0
- package/dist/Model3DScene-NT5RRIB5.mjs.gz +0 -0
- package/dist/{Model3DScene-7VQNRY5B.js → Model3DScene-VSLGUWC7.js} +2 -2
- package/dist/{Model3DScene-7VQNRY5B.js.br → Model3DScene-VSLGUWC7.js.br} +0 -0
- package/dist/Model3DScene-VSLGUWC7.js.gz +0 -0
- package/dist/{PieChart3DScene-JTHZESS3.js → PieChart3DScene-6MUFRFYJ.js} +2 -2
- package/dist/PieChart3DScene-6MUFRFYJ.js.br +0 -0
- package/dist/PieChart3DScene-6MUFRFYJ.js.gz +0 -0
- package/dist/{PieChart3DScene-UEVFZZVW.mjs → PieChart3DScene-NFRBKII7.mjs} +1 -1
- package/dist/PieChart3DScene-NFRBKII7.mjs.br +0 -0
- package/dist/PieChart3DScene-NFRBKII7.mjs.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-FXUNT5OK.js → SurfaceChart3DScene-2UQOKVFB.js} +2 -2
- package/dist/SurfaceChart3DScene-2UQOKVFB.js.br +0 -0
- package/dist/SurfaceChart3DScene-2UQOKVFB.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-WD65PAG4.mjs → SurfaceChart3DScene-UKIOTKJC.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-WD65PAG4.mjs.br → SurfaceChart3DScene-UKIOTKJC.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-UKIOTKJC.mjs.gz +0 -0
- package/dist/{chunk-ICAYXQVJ.mjs → chunk-5WH6UVWC.mjs} +289 -135
- package/dist/chunk-5WH6UVWC.mjs.br +0 -0
- package/dist/chunk-5WH6UVWC.mjs.gz +0 -0
- package/dist/{chunk-OUX4O5XK.mjs → chunk-ACVLIDUS.mjs} +2 -2
- package/dist/chunk-ACVLIDUS.mjs.br +0 -0
- package/dist/chunk-ACVLIDUS.mjs.gz +0 -0
- package/dist/{chunk-MKPSUHUH.mjs → chunk-ARJE3V6V.mjs} +5 -6
- package/dist/chunk-ARJE3V6V.mjs.br +0 -0
- package/dist/chunk-ARJE3V6V.mjs.gz +0 -0
- package/dist/{chunk-MAOUVROK.mjs → chunk-BZ6OM3H5.mjs} +360 -338
- package/dist/chunk-BZ6OM3H5.mjs.br +0 -0
- package/dist/chunk-BZ6OM3H5.mjs.gz +0 -0
- package/dist/{chunk-GIFQWIW5.js → chunk-GCOGKBK3.js} +1368 -1214
- package/dist/chunk-GCOGKBK3.js.br +0 -0
- package/dist/chunk-GCOGKBK3.js.gz +0 -0
- package/dist/{chunk-IDTNKL4S.js → chunk-HMZA25W2.js} +300 -45
- package/dist/chunk-HMZA25W2.js.br +0 -0
- package/dist/chunk-HMZA25W2.js.gz +0 -0
- package/dist/{chunk-OZGFMZEX.js → chunk-K4DUVYZ7.js} +3 -3
- package/dist/chunk-K4DUVYZ7.js.br +0 -0
- package/dist/chunk-K4DUVYZ7.js.gz +0 -0
- package/dist/{chunk-GCE2TYHF.js → chunk-OABOL32L.js} +157 -157
- package/dist/chunk-OABOL32L.js.br +0 -0
- package/dist/chunk-OABOL32L.js.gz +0 -0
- package/dist/{chunk-ISDTM2V3.mjs → chunk-SRAXNEJX.mjs} +286 -45
- package/dist/chunk-SRAXNEJX.mjs.br +0 -0
- package/dist/chunk-SRAXNEJX.mjs.gz +0 -0
- package/dist/{chunk-PIUB7R2K.js → chunk-SWRY3SI5.js} +5 -6
- package/dist/chunk-SWRY3SI5.js.br +0 -0
- package/dist/chunk-SWRY3SI5.js.gz +0 -0
- package/dist/{chunk-OTBQBTTQ.js → chunk-XBR7W47W.js} +726 -706
- package/dist/chunk-XBR7W47W.js.br +0 -0
- package/dist/chunk-XBR7W47W.js.gz +0 -0
- package/dist/{chunk-5ERW2B25.mjs → chunk-Z3DEULRJ.mjs} +1 -1
- package/dist/chunk-Z3DEULRJ.mjs.br +0 -0
- package/dist/chunk-Z3DEULRJ.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 +27 -1
- package/dist/index.d.ts.map +1 -1
- 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 +99 -22
- 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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-DC1O_op4.d.ts → useViewerBuildingBlocks-X1L8BjsQ.d.ts} +19 -2
- package/dist/useViewerBuildingBlocks-X1L8BjsQ.d.ts.map +1 -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-6PERJN7M.js.br +0 -0
- package/dist/AiChatPanel-6PERJN7M.js.gz +0 -0
- package/dist/AiChatPanel-EIENGCKW.mjs.br +0 -0
- package/dist/AiChatPanel-EIENGCKW.mjs.gz +0 -0
- package/dist/Area3DChartScene-TXCLQLBQ.js.br +0 -0
- package/dist/Area3DChartScene-TXCLQLBQ.js.gz +0 -0
- package/dist/Area3DChartScene-W6SVC235.mjs.gz +0 -0
- package/dist/Bar3DChartScene-6RHPFLZT.js.br +0 -0
- package/dist/Bar3DChartScene-6RHPFLZT.js.gz +0 -0
- package/dist/Bar3DChartScene-FCVUZIJ3.mjs.gz +0 -0
- package/dist/Line3DChartScene-2ZFE53KO.js.br +0 -0
- package/dist/Line3DChartScene-2ZFE53KO.js.gz +0 -0
- package/dist/Line3DChartScene-MJXFXSPW.mjs.gz +0 -0
- package/dist/Model3DScene-7VQNRY5B.js.gz +0 -0
- package/dist/Model3DScene-A5RV3KNJ.mjs.gz +0 -0
- package/dist/PieChart3DScene-JTHZESS3.js.br +0 -0
- package/dist/PieChart3DScene-JTHZESS3.js.gz +0 -0
- package/dist/PieChart3DScene-UEVFZZVW.mjs.br +0 -0
- package/dist/PieChart3DScene-UEVFZZVW.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-FXUNT5OK.js.br +0 -0
- package/dist/SurfaceChart3DScene-FXUNT5OK.js.gz +0 -0
- package/dist/SurfaceChart3DScene-WD65PAG4.mjs.gz +0 -0
- package/dist/chunk-5ERW2B25.mjs.br +0 -0
- package/dist/chunk-5ERW2B25.mjs.gz +0 -0
- package/dist/chunk-GCE2TYHF.js.br +0 -0
- package/dist/chunk-GCE2TYHF.js.gz +0 -0
- package/dist/chunk-GIFQWIW5.js.br +0 -0
- package/dist/chunk-GIFQWIW5.js.gz +0 -0
- package/dist/chunk-ICAYXQVJ.mjs.br +0 -0
- package/dist/chunk-ICAYXQVJ.mjs.gz +0 -0
- package/dist/chunk-IDTNKL4S.js.br +0 -0
- package/dist/chunk-IDTNKL4S.js.gz +0 -0
- package/dist/chunk-ISDTM2V3.mjs.br +0 -0
- package/dist/chunk-ISDTM2V3.mjs.gz +0 -0
- package/dist/chunk-MAOUVROK.mjs.br +0 -0
- package/dist/chunk-MAOUVROK.mjs.gz +0 -0
- package/dist/chunk-MKPSUHUH.mjs.br +0 -0
- package/dist/chunk-MKPSUHUH.mjs.gz +0 -0
- package/dist/chunk-OTBQBTTQ.js.br +0 -0
- package/dist/chunk-OTBQBTTQ.js.gz +0 -0
- package/dist/chunk-OUX4O5XK.mjs.br +0 -0
- package/dist/chunk-OUX4O5XK.mjs.gz +0 -0
- package/dist/chunk-OZGFMZEX.js.br +0 -0
- package/dist/chunk-OZGFMZEX.js.gz +0 -0
- package/dist/chunk-PIUB7R2K.js.br +0 -0
- package/dist/chunk-PIUB7R2K.js.gz +0 -0
- package/dist/useViewerBuildingBlocks-DC1O_op4.d.ts.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-
|
|
2
|
-
import { useReducedMotion, useViewerState,
|
|
3
|
-
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-
|
|
4
|
-
import { LOCALE_CATALOG, translationsEn } from './chunk-
|
|
5
|
-
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-ISDTM2V3.mjs';
|
|
1
|
+
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-Z3DEULRJ.mjs';
|
|
2
|
+
import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-BZ6OM3H5.mjs';
|
|
3
|
+
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-ACVLIDUS.mjs';
|
|
4
|
+
import { LOCALE_CATALOG, translationsEn } from './chunk-ARJE3V6V.mjs';
|
|
5
|
+
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-SRAXNEJX.mjs';
|
|
6
6
|
import React19, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, Fragment as Fragment$1, useDeferredValue } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
|
-
import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuClock, LuDownload, LuCheck, LuLock, LuEye, LuFileText, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse,
|
|
9
|
+
import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuClock, LuDownload, LuCheck, LuLock, LuEye, LuFileText, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuBookmark } from 'react-icons/lu';
|
|
10
10
|
|
|
11
11
|
var ViewerThemeContext = createContext(void 0);
|
|
12
12
|
function ViewerThemeProvider({ theme, children }) {
|
|
@@ -68,7 +68,11 @@ function RemoteUserCursors({
|
|
|
68
68
|
children: visibleUsers.map((user) => /* @__PURE__ */ jsxs(
|
|
69
69
|
"g",
|
|
70
70
|
{
|
|
71
|
-
|
|
71
|
+
style: {
|
|
72
|
+
transform: `translate(${user.cursorX}px, ${user.cursorY}px)`,
|
|
73
|
+
transition: "transform 90ms linear",
|
|
74
|
+
willChange: "transform"
|
|
75
|
+
},
|
|
72
76
|
"data-testid": `remote-cursor-${user.clientId}`,
|
|
73
77
|
"data-pptx-remote-cursor": user.clientId,
|
|
74
78
|
children: [
|
|
@@ -510,7 +514,7 @@ function FailedToLoad() {
|
|
|
510
514
|
var LazyArea3DChartScene = React19.lazy(
|
|
511
515
|
async () => {
|
|
512
516
|
try {
|
|
513
|
-
return await import('./Area3DChartScene-
|
|
517
|
+
return await import('./Area3DChartScene-KE434ERF.mjs');
|
|
514
518
|
} catch {
|
|
515
519
|
return { default: FailedToLoad };
|
|
516
520
|
}
|
|
@@ -566,7 +570,7 @@ function FailedToLoad2() {
|
|
|
566
570
|
var LazyBar3DChartScene = React19.lazy(
|
|
567
571
|
async () => {
|
|
568
572
|
try {
|
|
569
|
-
return await import('./Bar3DChartScene-
|
|
573
|
+
return await import('./Bar3DChartScene-2KQABQZM.mjs');
|
|
570
574
|
} catch {
|
|
571
575
|
return { default: FailedToLoad2 };
|
|
572
576
|
}
|
|
@@ -622,7 +626,7 @@ function FailedToLoad3() {
|
|
|
622
626
|
var LazyLine3DChartScene = React19.lazy(
|
|
623
627
|
async () => {
|
|
624
628
|
try {
|
|
625
|
-
return await import('./Line3DChartScene-
|
|
629
|
+
return await import('./Line3DChartScene-K3BSK6BB.mjs');
|
|
626
630
|
} catch {
|
|
627
631
|
return { default: FailedToLoad3 };
|
|
628
632
|
}
|
|
@@ -678,7 +682,7 @@ function FailedToLoad4() {
|
|
|
678
682
|
var LazyPieChart3DScene = React19.lazy(
|
|
679
683
|
async () => {
|
|
680
684
|
try {
|
|
681
|
-
return await import('./PieChart3DScene-
|
|
685
|
+
return await import('./PieChart3DScene-NFRBKII7.mjs');
|
|
682
686
|
} catch {
|
|
683
687
|
return { default: FailedToLoad4 };
|
|
684
688
|
}
|
|
@@ -734,7 +738,7 @@ function FailedToLoad5() {
|
|
|
734
738
|
var LazySurfaceChart3DScene = React19.lazy(
|
|
735
739
|
async () => {
|
|
736
740
|
try {
|
|
737
|
-
return await import('./SurfaceChart3DScene-
|
|
741
|
+
return await import('./SurfaceChart3DScene-UKIOTKJC.mjs');
|
|
738
742
|
} catch {
|
|
739
743
|
return { default: FailedToLoad5 };
|
|
740
744
|
}
|
|
@@ -1351,8 +1355,8 @@ function ResizeHandles({
|
|
|
1351
1355
|
onResizePointerDown(elementId, e, handle);
|
|
1352
1356
|
};
|
|
1353
1357
|
const startRotate = (btn, pointerId) => {
|
|
1354
|
-
const wrapper =
|
|
1355
|
-
|
|
1358
|
+
const wrapper = document.querySelector(
|
|
1359
|
+
`[data-element-id="${elementId}"]`
|
|
1356
1360
|
);
|
|
1357
1361
|
if (!wrapper) {
|
|
1358
1362
|
return;
|
|
@@ -2923,7 +2927,7 @@ function FailedToLoad6() {
|
|
|
2923
2927
|
var LazyModel3DScene = React19.lazy(
|
|
2924
2928
|
async () => {
|
|
2925
2929
|
try {
|
|
2926
|
-
return await import('./Model3DScene-
|
|
2930
|
+
return await import('./Model3DScene-NT5RRIB5.mjs');
|
|
2927
2931
|
} catch {
|
|
2928
2932
|
return { default: FailedToLoad6 };
|
|
2929
2933
|
}
|
|
@@ -5504,11 +5508,6 @@ var OV = [
|
|
|
5504
5508
|
labelKey: "pptx.ribbon.exportGif",
|
|
5505
5509
|
i: /* @__PURE__ */ jsx(LuImage, { className: `${ics} text-muted-foreground` })
|
|
5506
5510
|
},
|
|
5507
|
-
{
|
|
5508
|
-
k: "package",
|
|
5509
|
-
labelKey: "pptx.file.packageTooltip",
|
|
5510
|
-
i: /* @__PURE__ */ jsx(LuFolderOpen, { className: `${ics} text-muted-foreground` })
|
|
5511
|
-
},
|
|
5512
5511
|
{
|
|
5513
5512
|
k: "pptx",
|
|
5514
5513
|
labelKey: "pptx.file.saveAsPptxTooltip",
|
|
@@ -6158,7 +6157,7 @@ function AccountPage() {
|
|
|
6158
6157
|
return void 0;
|
|
6159
6158
|
});
|
|
6160
6159
|
};
|
|
6161
|
-
const version = "3.1.
|
|
6160
|
+
const version = "3.1.2" ;
|
|
6162
6161
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
6163
6162
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
6164
6163
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -6337,7 +6336,6 @@ var ICONS = {
|
|
|
6337
6336
|
saveAsPptx: LuDownload,
|
|
6338
6337
|
saveAsPpsx: LuPlay,
|
|
6339
6338
|
saveAsPptm: LuFileText,
|
|
6340
|
-
package: LuPackage,
|
|
6341
6339
|
pdf: LuFileText,
|
|
6342
6340
|
png: LuFileImage,
|
|
6343
6341
|
video: LuVideo,
|
|
@@ -6345,8 +6343,7 @@ var ICONS = {
|
|
|
6345
6343
|
json: LuFileJson,
|
|
6346
6344
|
copyImage: LuCopy,
|
|
6347
6345
|
print: LuPrinter,
|
|
6348
|
-
share: LuShare2
|
|
6349
|
-
sharePackage: LuPackage
|
|
6346
|
+
share: LuShare2
|
|
6350
6347
|
};
|
|
6351
6348
|
function BackstageCards({
|
|
6352
6349
|
page,
|
|
@@ -6363,7 +6360,6 @@ function BackstageCards({
|
|
|
6363
6360
|
saveAsPptx: props.onSaveAsPptx,
|
|
6364
6361
|
saveAsPpsx: props.onSaveAsPpsx,
|
|
6365
6362
|
saveAsPptm: props.onSaveAsPptm,
|
|
6366
|
-
package: props.onPackageForSharing,
|
|
6367
6363
|
pdf: props.onExportPdf,
|
|
6368
6364
|
png: props.onExportPng,
|
|
6369
6365
|
video: props.onExportVideo,
|
|
@@ -6371,8 +6367,7 @@ function BackstageCards({
|
|
|
6371
6367
|
json: props.onExportJson,
|
|
6372
6368
|
copyImage: props.onCopySlideAsImage,
|
|
6373
6369
|
print: props.onPrint,
|
|
6374
|
-
share: props.onOpenShareDialog
|
|
6375
|
-
sharePackage: props.onPackageForSharing
|
|
6370
|
+
share: props.onOpenShareDialog
|
|
6376
6371
|
};
|
|
6377
6372
|
const cards = backstageCardsFor(page).filter(
|
|
6378
6373
|
(card) => card.id !== "saveAsPptm" || props.hasMacros
|
|
@@ -6421,8 +6416,8 @@ function FileSection(p) {
|
|
|
6421
6416
|
const { isHidden } = useToolbarVisibility(p.hiddenActions);
|
|
6422
6417
|
const exportHidden = isHidden("export");
|
|
6423
6418
|
useEffect(() => {
|
|
6424
|
-
void listBackstageRecentFiles(t).then(setRecent);
|
|
6425
|
-
}, [t]);
|
|
6419
|
+
void listBackstageRecentFiles(t, p.recentPresentationsCount).then(setRecent);
|
|
6420
|
+
}, [t, p.recentPresentationsCount]);
|
|
6426
6421
|
const visibleRecent = useMemo(() => {
|
|
6427
6422
|
const q = query.trim().toLowerCase();
|
|
6428
6423
|
return q ? recent.filter((file) => `${file.name} ${file.location}`.toLowerCase().includes(q)) : recent;
|
|
@@ -9302,7 +9297,6 @@ function MobileSectionBody({
|
|
|
9302
9297
|
onExportVideo: p.onExportVideo,
|
|
9303
9298
|
onExportGif: p.onExportGif,
|
|
9304
9299
|
onExportJson: p.onExportJson,
|
|
9305
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
9306
9300
|
onSaveAsPptx: p.onSaveAsPptx,
|
|
9307
9301
|
onSaveAsPpsx: p.onSaveAsPpsx,
|
|
9308
9302
|
onSaveAsPptm: p.onSaveAsPptm,
|
|
@@ -9316,7 +9310,8 @@ function MobileSectionBody({
|
|
|
9316
9310
|
onOpenFontEmbedding: p.onOpenFontEmbedding,
|
|
9317
9311
|
onOpenDigitalSignatures: p.onOpenDigitalSignatures,
|
|
9318
9312
|
onOpenVersionHistory: p.onToggleVersionHistory,
|
|
9319
|
-
hiddenActions: p.hiddenActions
|
|
9313
|
+
hiddenActions: p.hiddenActions,
|
|
9314
|
+
recentPresentationsCount: p.recentPresentationsCount
|
|
9320
9315
|
}
|
|
9321
9316
|
) });
|
|
9322
9317
|
default:
|
|
@@ -9413,7 +9408,7 @@ function MobileToolbar(props) {
|
|
|
9413
9408
|
"button",
|
|
9414
9409
|
{
|
|
9415
9410
|
type: "button",
|
|
9416
|
-
onClick: props.onOpenShareDialog
|
|
9411
|
+
onClick: props.onOpenShareDialog,
|
|
9417
9412
|
className: cn(btn, "bg-primary text-white hover:bg-primary/90 px-3"),
|
|
9418
9413
|
title: t("pptx.toolbar.share"),
|
|
9419
9414
|
"aria-label": t("pptx.toolbar.share"),
|
|
@@ -9814,7 +9809,7 @@ function TabRowActions(p) {
|
|
|
9814
9809
|
"button",
|
|
9815
9810
|
{
|
|
9816
9811
|
type: "button",
|
|
9817
|
-
onClick: p.onOpenShareDialog
|
|
9812
|
+
onClick: p.onOpenShareDialog,
|
|
9818
9813
|
className: cn(
|
|
9819
9814
|
"relative inline-flex items-center gap-1 px-2.5 py-1 rounded-sm text-[11px] font-medium transition-colors whitespace-nowrap",
|
|
9820
9815
|
isCollaborating ? "bg-green-600 hover:bg-green-500 text-white" : "bg-primary hover:bg-primary/90 text-white"
|
|
@@ -9829,6 +9824,44 @@ function TabRowActions(p) {
|
|
|
9829
9824
|
)
|
|
9830
9825
|
] });
|
|
9831
9826
|
}
|
|
9827
|
+
var QUICK_ACCESS_ICONS = {
|
|
9828
|
+
save: LuSave,
|
|
9829
|
+
undo: LuUndo,
|
|
9830
|
+
redo: LuRedo,
|
|
9831
|
+
play: LuPlay,
|
|
9832
|
+
printer: LuPrinter,
|
|
9833
|
+
fileDown: LuFileDown,
|
|
9834
|
+
plus: LuPlus,
|
|
9835
|
+
spellCheck: LuSpellCheck,
|
|
9836
|
+
zoomIn: LuZoomIn,
|
|
9837
|
+
zoomOut: LuZoomOut
|
|
9838
|
+
};
|
|
9839
|
+
function TitleBarQuickExtras(p) {
|
|
9840
|
+
const { t } = useTranslation();
|
|
9841
|
+
if (!p.quickAccess.visible) {
|
|
9842
|
+
return null;
|
|
9843
|
+
}
|
|
9844
|
+
const commands = extraQuickAccessCommands(p.quickAccess.commandIds);
|
|
9845
|
+
if (commands.length === 0) {
|
|
9846
|
+
return null;
|
|
9847
|
+
}
|
|
9848
|
+
return /* @__PURE__ */ jsx(Fragment, { children: commands.map((command) => {
|
|
9849
|
+
const Icon = QUICK_ACCESS_ICONS[command.icon] ?? LuPlay;
|
|
9850
|
+
const label = t(command.labelKey);
|
|
9851
|
+
return /* @__PURE__ */ jsx(
|
|
9852
|
+
"button",
|
|
9853
|
+
{
|
|
9854
|
+
type: "button",
|
|
9855
|
+
onClick: () => p.onCommand?.(command.id),
|
|
9856
|
+
className: TITLE_BAR_CLASSES.quickButton,
|
|
9857
|
+
title: label,
|
|
9858
|
+
"aria-label": label,
|
|
9859
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "w-3.5 h-3.5" })
|
|
9860
|
+
},
|
|
9861
|
+
command.id
|
|
9862
|
+
);
|
|
9863
|
+
}) });
|
|
9864
|
+
}
|
|
9832
9865
|
function PresentDropdown({
|
|
9833
9866
|
isActive,
|
|
9834
9867
|
onPresent,
|
|
@@ -10028,7 +10061,6 @@ function OverflowMenu(p) {
|
|
|
10028
10061
|
pdf: p.onExportPdf,
|
|
10029
10062
|
video: p.onExportVideo,
|
|
10030
10063
|
gif: p.onExportGif,
|
|
10031
|
-
package: p.onPackageForSharing,
|
|
10032
10064
|
pptx: p.onSaveAsPptx,
|
|
10033
10065
|
ppsx: p.onSaveAsPpsx,
|
|
10034
10066
|
pptm: p.onSaveAsPptm,
|
|
@@ -10211,7 +10243,16 @@ function ToolbarPrimaryRow(p) {
|
|
|
10211
10243
|
children: /* @__PURE__ */ jsx(LuSettings, { className: ics })
|
|
10212
10244
|
}
|
|
10213
10245
|
),
|
|
10214
|
-
!canEdit && /* @__PURE__ */ jsx(
|
|
10246
|
+
!canEdit && p.isProtectedView && p.onEnableEditing ? /* @__PURE__ */ jsx(
|
|
10247
|
+
"button",
|
|
10248
|
+
{
|
|
10249
|
+
type: "button",
|
|
10250
|
+
onClick: p.onEnableEditing,
|
|
10251
|
+
className: "inline-flex items-center px-2 py-0.5 rounded-sm bg-amber-600/90 text-[10px] text-amber-50 transition-colors hover:bg-amber-600",
|
|
10252
|
+
title: t("pptx.options.trust.protectedViewInfo"),
|
|
10253
|
+
children: t("pptx.security.enableEditing")
|
|
10254
|
+
}
|
|
10255
|
+
) : !canEdit && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center px-2 py-0.5 rounded-sm bg-amber-600/90 text-[10px] text-amber-50", children: t("pptx.toolbar.readOnly") }),
|
|
10215
10256
|
/* @__PURE__ */ jsx(OverflowMenu, { ...p })
|
|
10216
10257
|
] });
|
|
10217
10258
|
}
|
|
@@ -10219,6 +10260,7 @@ function Toolbar(p) {
|
|
|
10219
10260
|
const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
|
|
10220
10261
|
const { t } = useTranslation();
|
|
10221
10262
|
const { isTabVisible } = useToolbarVisibility(p.hiddenActions);
|
|
10263
|
+
const viewerOptions = useViewerOptionsContext();
|
|
10222
10264
|
if (isNarrowViewport && mode !== "present") {
|
|
10223
10265
|
return /* @__PURE__ */ jsx(MobileToolbar, { ...p });
|
|
10224
10266
|
}
|
|
@@ -10257,6 +10299,7 @@ function Toolbar(p) {
|
|
|
10257
10299
|
type: "button",
|
|
10258
10300
|
role: "tab",
|
|
10259
10301
|
"aria-selected": toolbarSection === s.id,
|
|
10302
|
+
title: resolveScreenTip(viewerOptions, t(s.labelKey)),
|
|
10260
10303
|
onClick: () => onSetToolbarSection(s.id),
|
|
10261
10304
|
className: cn(
|
|
10262
10305
|
"relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
|
|
@@ -10272,7 +10315,6 @@ function Toolbar(p) {
|
|
|
10272
10315
|
{
|
|
10273
10316
|
onEnterRehearsalMode: p.canEdit ? p.onEnterRehearsalMode : void 0,
|
|
10274
10317
|
onOpenShareDialog: p.onOpenShareDialog,
|
|
10275
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
10276
10318
|
hiddenActions: p.hiddenActions
|
|
10277
10319
|
}
|
|
10278
10320
|
),
|
|
@@ -10294,10 +10336,29 @@ function Toolbar(p) {
|
|
|
10294
10336
|
]
|
|
10295
10337
|
}
|
|
10296
10338
|
),
|
|
10339
|
+
showRibbon && viewerOptions.quickAccess.position === "below" && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5 border-b border-border/60 px-2 py-1", children: /* @__PURE__ */ jsx(
|
|
10340
|
+
TitleBarQuickExtras,
|
|
10341
|
+
{
|
|
10342
|
+
quickAccess: viewerOptions.quickAccess,
|
|
10343
|
+
onCommand: p.onQuickCommand
|
|
10344
|
+
}
|
|
10345
|
+
) }),
|
|
10297
10346
|
showRibbon && /* @__PURE__ */ jsxs(
|
|
10298
10347
|
"div",
|
|
10299
10348
|
{
|
|
10300
10349
|
className: cn(
|
|
10350
|
+
/*
|
|
10351
|
+
* `items-stretch` (not `items-center`): `RibbonGroup` pins its
|
|
10352
|
+
* caption to `bottom-0.5` of ITS OWN box (`position: relative`), so
|
|
10353
|
+
* a group left at its un-stretched intrinsic height sits centered in
|
|
10354
|
+
* the row with its caption floating well above the row's true bottom
|
|
10355
|
+
* edge whenever a taller sibling sets the row's height (e.g. View's
|
|
10356
|
+
* five-row "Show" group next to its two-row "Zoom" group). Stretching
|
|
10357
|
+
* every direct child to the row's full height lines up every group's
|
|
10358
|
+
* caption and right-hand divider at the same baseline. File's
|
|
10359
|
+
* backstage is unaffected: it renders `position: fixed`, outside this
|
|
10360
|
+
* row's flex layout entirely.
|
|
10361
|
+
*/
|
|
10301
10362
|
"flex min-h-[82px] items-stretch gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
|
|
10302
10363
|
isNarrowViewport && !isCompactToolbarOpen && "hidden"
|
|
10303
10364
|
),
|
|
@@ -10315,7 +10376,6 @@ function Toolbar(p) {
|
|
|
10315
10376
|
onExportVideo: p.onExportVideo,
|
|
10316
10377
|
onExportGif: p.onExportGif,
|
|
10317
10378
|
onExportJson: p.onExportJson,
|
|
10318
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
10319
10379
|
onSaveAsPptx: p.onSaveAsPptx,
|
|
10320
10380
|
onSaveAsPpsx: p.onSaveAsPpsx,
|
|
10321
10381
|
onSaveAsPptm: p.onSaveAsPptm,
|
|
@@ -10329,7 +10389,8 @@ function Toolbar(p) {
|
|
|
10329
10389
|
onOpenFontEmbedding: p.onOpenFontEmbedding,
|
|
10330
10390
|
onOpenDigitalSignatures: p.onOpenDigitalSignatures,
|
|
10331
10391
|
onOpenVersionHistory: p.onToggleVersionHistory,
|
|
10332
|
-
hiddenActions: p.hiddenActions
|
|
10392
|
+
hiddenActions: p.hiddenActions,
|
|
10393
|
+
recentPresentationsCount: p.recentPresentationsCount
|
|
10333
10394
|
}
|
|
10334
10395
|
),
|
|
10335
10396
|
sHome && /* @__PURE__ */ jsx(
|
|
@@ -11393,6 +11454,17 @@ function SelectionHandleOverlay({
|
|
|
11393
11454
|
top: element.y,
|
|
11394
11455
|
width: Math.max(element.width, MIN_ELEMENT_SIZE),
|
|
11395
11456
|
height: Math.max(element.height, MIN_ELEMENT_SIZE),
|
|
11457
|
+
// Every slide element carries an explicit numeric `zIndex` (see
|
|
11458
|
+
// `getContainerStyle`), so a sibling with no z-index at all paints
|
|
11459
|
+
// at the CSS "z-index: 0" level regardless of DOM order: any
|
|
11460
|
+
// element other than the very bottom one (index 0) then renders
|
|
11461
|
+
// ABOVE this host, hiding its own resize/rotate handles behind its
|
|
11462
|
+
// own fill (worst on a rotated shape, where the rotate knob
|
|
11463
|
+
// deliberately overlaps the box) and stealing their clicks. Pinned
|
|
11464
|
+
// above the stage's other interaction overlays
|
|
11465
|
+
// (marquee z-50, connector overlay z-55/56) to match, well clear of
|
|
11466
|
+
// any realistic per-slide element count.
|
|
11467
|
+
zIndex: 58,
|
|
11396
11468
|
transform: getElementTransform(element),
|
|
11397
11469
|
transformOrigin: "center",
|
|
11398
11470
|
// Transparent everywhere a handle button is not, so a click that
|
|
@@ -12197,14 +12269,14 @@ function SlideCanvas({
|
|
|
12197
12269
|
{
|
|
12198
12270
|
ref: zoom.canvasViewportRef,
|
|
12199
12271
|
"data-pptx-viewport": true,
|
|
12200
|
-
className: "flex-1 overflow-auto relative",
|
|
12272
|
+
className: "flex-1 flex overflow-auto relative",
|
|
12201
12273
|
style: { touchAction: "pan-x pan-y" },
|
|
12202
12274
|
onMouseDown: handleViewportMouseDown,
|
|
12203
12275
|
children: /* @__PURE__ */ jsxs(
|
|
12204
12276
|
"div",
|
|
12205
12277
|
{
|
|
12206
12278
|
ref: zoom.editWrapperRef,
|
|
12207
|
-
className: "relative
|
|
12279
|
+
className: "relative m-auto",
|
|
12208
12280
|
style: {
|
|
12209
12281
|
width: canvasSize.width * zoom.editorScale + rulerOffset,
|
|
12210
12282
|
height: canvasSize.height * zoom.editorScale + rulerOffset
|
|
@@ -22039,6 +22111,7 @@ function ChartTypeSelector({
|
|
|
22039
22111
|
}
|
|
22040
22112
|
function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
22041
22113
|
const chartData = selectedElement.chartData;
|
|
22114
|
+
const followDataPoint = useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
|
|
22042
22115
|
const { selection: partSelection } = useChartPartSelection();
|
|
22043
22116
|
const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
|
|
22044
22117
|
const title = chartData?.title;
|
|
@@ -22159,12 +22232,12 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22159
22232
|
}, [chartData, replaceChartData]);
|
|
22160
22233
|
const removeCategory = useCallback(
|
|
22161
22234
|
(catIndex) => {
|
|
22162
|
-
const next = chartData && removeChartCategory(chartData, catIndex);
|
|
22235
|
+
const next = chartData && removeChartCategory(chartData, catIndex, followDataPoint);
|
|
22163
22236
|
if (next) {
|
|
22164
22237
|
replaceChartData(next);
|
|
22165
22238
|
}
|
|
22166
22239
|
},
|
|
22167
|
-
[chartData, replaceChartData]
|
|
22240
|
+
[chartData, followDataPoint, replaceChartData]
|
|
22168
22241
|
);
|
|
22169
22242
|
const addSeries = useCallback(() => {
|
|
22170
22243
|
if (chartData) {
|
|
@@ -31188,10 +31261,15 @@ function PrintDialog({
|
|
|
31188
31261
|
}) {
|
|
31189
31262
|
const { t } = useTranslation();
|
|
31190
31263
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
31191
|
-
const
|
|
31264
|
+
const printOptionDefaults = resolveDefaultPrintSettings(useViewerOptionsContext());
|
|
31265
|
+
const [printWhat, setPrintWhat] = useState(printOptionDefaults?.printWhat ?? "slides");
|
|
31192
31266
|
const [orientation, setOrientation] = useState("landscape");
|
|
31193
|
-
const [colorMode, setColorMode] = useState(
|
|
31194
|
-
|
|
31267
|
+
const [colorMode, setColorMode] = useState(
|
|
31268
|
+
printOptionDefaults?.colorMode ?? "color"
|
|
31269
|
+
);
|
|
31270
|
+
const [frameSlides, setFrameSlides] = useState(
|
|
31271
|
+
printOptionDefaults?.frameSlides ?? defaultFrameSlides ?? false
|
|
31272
|
+
);
|
|
31195
31273
|
const [slidesPerPage, setSlidesPerPage] = useState(
|
|
31196
31274
|
HANDOUT_OPTIONS.includes(defaultSlidesPerPage) ? defaultSlidesPerPage : 6
|
|
31197
31275
|
);
|
|
@@ -31250,7 +31328,10 @@ function PrintDialog({
|
|
|
31250
31328
|
slidesPerPage,
|
|
31251
31329
|
slideRange,
|
|
31252
31330
|
customRangeFrom: Math.max(1, Math.min(customFrom, slides.length)),
|
|
31253
|
-
customRangeTo: Math.max(1, Math.min(customTo, slides.length))
|
|
31331
|
+
customRangeTo: Math.max(1, Math.min(customTo, slides.length)),
|
|
31332
|
+
// Options > Advanced > "Print scale to fit"; no dialog control of its
|
|
31333
|
+
// own (PowerPoint keeps this an Options default, not a per-job choice).
|
|
31334
|
+
scaleToFit: printOptionDefaults?.scaleToFit ?? true
|
|
31254
31335
|
});
|
|
31255
31336
|
}, [
|
|
31256
31337
|
printWhat,
|
|
@@ -31262,6 +31343,7 @@ function PrintDialog({
|
|
|
31262
31343
|
customFrom,
|
|
31263
31344
|
customTo,
|
|
31264
31345
|
slides.length,
|
|
31346
|
+
printOptionDefaults?.scaleToFit,
|
|
31265
31347
|
onPrint
|
|
31266
31348
|
]);
|
|
31267
31349
|
if (!open) {
|
|
@@ -32025,8 +32107,9 @@ function ActiveSessionView({
|
|
|
32025
32107
|
onCopyRoomId,
|
|
32026
32108
|
onStopCollaboration
|
|
32027
32109
|
}) {
|
|
32028
|
-
const { t } = useTranslation(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" }), sessionUsers = buildActiveSessionUsers({
|
|
32110
|
+
const { t } = useTranslation(), viewerOptions = useViewerOptionsContext(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" }), sessionUsers = buildActiveSessionUsers({
|
|
32029
32111
|
localUserName: activeCollaboration?.userName ?? collab.config.userName,
|
|
32112
|
+
localUserInitials: viewerOptions.general.userInitials,
|
|
32030
32113
|
localUserColor: collab.config.userColor,
|
|
32031
32114
|
remoteUsers: collab.remoteUsers
|
|
32032
32115
|
});
|
|
@@ -32995,48 +33078,6 @@ function ViewerInspector({
|
|
|
32995
33078
|
}
|
|
32996
33079
|
);
|
|
32997
33080
|
}
|
|
32998
|
-
var ViewerOptionsContext = createContext(DEFAULT_VIEWER_OPTIONS);
|
|
32999
|
-
function useViewerOptionsContext() {
|
|
33000
|
-
return useContext(ViewerOptionsContext);
|
|
33001
|
-
}
|
|
33002
|
-
var QUICK_ACCESS_ICONS = {
|
|
33003
|
-
save: LuSave,
|
|
33004
|
-
undo: LuUndo,
|
|
33005
|
-
redo: LuRedo,
|
|
33006
|
-
play: LuPlay,
|
|
33007
|
-
printer: LuPrinter,
|
|
33008
|
-
fileDown: LuFileDown,
|
|
33009
|
-
plus: LuPlus,
|
|
33010
|
-
spellCheck: LuSpellCheck,
|
|
33011
|
-
zoomIn: LuZoomIn,
|
|
33012
|
-
zoomOut: LuZoomOut
|
|
33013
|
-
};
|
|
33014
|
-
function TitleBarQuickExtras(p) {
|
|
33015
|
-
const { t } = useTranslation();
|
|
33016
|
-
if (!p.quickAccess.visible) {
|
|
33017
|
-
return null;
|
|
33018
|
-
}
|
|
33019
|
-
const commands = extraQuickAccessCommands(p.quickAccess.commandIds);
|
|
33020
|
-
if (commands.length === 0) {
|
|
33021
|
-
return null;
|
|
33022
|
-
}
|
|
33023
|
-
return /* @__PURE__ */ jsx(Fragment, { children: commands.map((command) => {
|
|
33024
|
-
const Icon = QUICK_ACCESS_ICONS[command.icon] ?? LuPlay;
|
|
33025
|
-
const label = t(command.labelKey);
|
|
33026
|
-
return /* @__PURE__ */ jsx(
|
|
33027
|
-
"button",
|
|
33028
|
-
{
|
|
33029
|
-
type: "button",
|
|
33030
|
-
onClick: () => p.onCommand?.(command.id),
|
|
33031
|
-
className: TITLE_BAR_CLASSES.quickButton,
|
|
33032
|
-
title: label,
|
|
33033
|
-
"aria-label": label,
|
|
33034
|
-
children: /* @__PURE__ */ jsx(Icon, { className: "w-3.5 h-3.5" })
|
|
33035
|
-
},
|
|
33036
|
-
command.id
|
|
33037
|
-
);
|
|
33038
|
-
}) });
|
|
33039
|
-
}
|
|
33040
33081
|
function TitleBar(p) {
|
|
33041
33082
|
const { t } = useTranslation();
|
|
33042
33083
|
const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
|
|
@@ -33152,7 +33193,7 @@ function TitleBar(p) {
|
|
|
33152
33193
|
children: /* @__PURE__ */ jsx(LuRedo, { className: "w-3.5 h-3.5" })
|
|
33153
33194
|
}
|
|
33154
33195
|
),
|
|
33155
|
-
/* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
33196
|
+
quickAccess.position !== "below" && /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
33156
33197
|
/* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator })
|
|
33157
33198
|
] }),
|
|
33158
33199
|
/* @__PURE__ */ jsxs("span", { className: TITLE_BAR_CLASSES.fileGroup, children: [
|
|
@@ -33278,9 +33319,12 @@ function ViewerToolbarSection(props) {
|
|
|
33278
33319
|
autosaveEnabled = true,
|
|
33279
33320
|
onToggleAutosave,
|
|
33280
33321
|
hiddenActions,
|
|
33322
|
+
recentPresentationsCount,
|
|
33281
33323
|
aiEnabled,
|
|
33282
33324
|
isAiPanelOpen,
|
|
33283
|
-
onToggleAiPanel
|
|
33325
|
+
onToggleAiPanel,
|
|
33326
|
+
isProtectedView,
|
|
33327
|
+
onEnableEditing
|
|
33284
33328
|
} = props;
|
|
33285
33329
|
const { t } = useTranslation();
|
|
33286
33330
|
const handleAddAnimation = useCallback(
|
|
@@ -33558,7 +33602,11 @@ function ViewerToolbarSection(props) {
|
|
|
33558
33602
|
fileName,
|
|
33559
33603
|
mode,
|
|
33560
33604
|
canEdit,
|
|
33605
|
+
isProtectedView,
|
|
33606
|
+
onEnableEditing,
|
|
33607
|
+
onQuickCommand: handleQuickAccessCommand,
|
|
33561
33608
|
hiddenActions,
|
|
33609
|
+
recentPresentationsCount,
|
|
33562
33610
|
isNarrowViewport: dialogs.isNarrowViewport,
|
|
33563
33611
|
isSidebarCollapsed: !s.isSlidesPaneOpen,
|
|
33564
33612
|
isInspectorPaneOpen: s.isInspectorPaneOpen,
|
|
@@ -33648,7 +33696,6 @@ function ViewerToolbarSection(props) {
|
|
|
33648
33696
|
onExportVideo: exportHandlers.handleExportVideo,
|
|
33649
33697
|
onExportGif: exportHandlers.handleExportGif,
|
|
33650
33698
|
onExportJson: exportHandlers.handleExportJson,
|
|
33651
|
-
onPackageForSharing: exportHandlers.handlePackageForSharing,
|
|
33652
33699
|
onOpenFile,
|
|
33653
33700
|
onOpenRecentFile,
|
|
33654
33701
|
onCreatePresentation: (templateId) => {
|
|
@@ -34352,7 +34399,7 @@ function ViewerDialogGroup(props) {
|
|
|
34352
34399
|
{
|
|
34353
34400
|
open: printHandlers.isPrintDialogOpen,
|
|
34354
34401
|
onClose: () => printHandlers.setIsPrintDialogOpen(false),
|
|
34355
|
-
onPrint: printHandlers.
|
|
34402
|
+
onPrint: printHandlers.handlePrintSvg,
|
|
34356
34403
|
slides,
|
|
34357
34404
|
activeSlideIndex,
|
|
34358
34405
|
defaultSlidesPerPage: printPropertiesSlidesPerPage(presentationProperties.printProperties),
|
|
@@ -34764,12 +34811,17 @@ ${url}`)) {
|
|
|
34764
34811
|
const handleActionClick = useCallback(
|
|
34765
34812
|
(_elementId, action) => {
|
|
34766
34813
|
if (mode === "present") {
|
|
34814
|
+
const resolved = resolvePresentationAction(action, { slideCount: slides.length });
|
|
34815
|
+
if (resolved.intent.kind === "openUrl") {
|
|
34816
|
+
openExternalUrl(resolved.intent.url);
|
|
34817
|
+
return;
|
|
34818
|
+
}
|
|
34767
34819
|
presentation.handlePresentationAction(action);
|
|
34768
34820
|
} else if (action.url) {
|
|
34769
34821
|
openExternalUrl(action.url);
|
|
34770
34822
|
}
|
|
34771
34823
|
},
|
|
34772
|
-
[mode, presentation, openExternalUrl]
|
|
34824
|
+
[mode, presentation, openExternalUrl, slides.length]
|
|
34773
34825
|
);
|
|
34774
34826
|
const handleHyperlinkClick = useCallback(
|
|
34775
34827
|
(url) => {
|
|
@@ -35168,7 +35220,7 @@ ${url}`)) {
|
|
|
35168
35220
|
var AiChatPanel = lazy(async () => {
|
|
35169
35221
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
35170
35222
|
import('@ai-sdk/react'),
|
|
35171
|
-
import('./AiChatPanel-
|
|
35223
|
+
import('./AiChatPanel-5JAQBLTU.mjs')
|
|
35172
35224
|
]);
|
|
35173
35225
|
function BoundAiChatPanel(props) {
|
|
35174
35226
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -38212,7 +38264,7 @@ var PowerPointViewer = forwardRef(
|
|
|
38212
38264
|
fonts = [],
|
|
38213
38265
|
filePath,
|
|
38214
38266
|
fileName,
|
|
38215
|
-
canEdit = false,
|
|
38267
|
+
canEdit: hostCanEdit = false,
|
|
38216
38268
|
autosave: hostAutosave,
|
|
38217
38269
|
autosaveIntervalMs: hostAutosaveIntervalMs,
|
|
38218
38270
|
onContentChange,
|
|
@@ -38341,6 +38393,16 @@ var PowerPointViewer = forwardRef(
|
|
|
38341
38393
|
}
|
|
38342
38394
|
})();
|
|
38343
38395
|
}, []);
|
|
38396
|
+
const { optionsStore, options: viewerOptions } = useViewerOptions();
|
|
38397
|
+
const [protectedViewOverridden, setProtectedViewOverridden] = useState(false);
|
|
38398
|
+
useEffect(() => {
|
|
38399
|
+
setProtectedViewOverridden(false);
|
|
38400
|
+
}, [content]);
|
|
38401
|
+
const isProtectedView = viewerOptions.trust.openInProtectedView && !protectedViewOverridden;
|
|
38402
|
+
const handleEnableEditing = useCallback(() => {
|
|
38403
|
+
setProtectedViewOverridden(true);
|
|
38404
|
+
}, []);
|
|
38405
|
+
const canEdit = hostCanEdit && !isProtectedView;
|
|
38344
38406
|
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
|
38345
38407
|
const [isHeaderFooterOpen, setIsHeaderFooterOpen] = useState(false);
|
|
38346
38408
|
const [autosaveEnabled, setAutosaveEnabled] = useState(true);
|
|
@@ -38412,7 +38474,6 @@ var PowerPointViewer = forwardRef(
|
|
|
38412
38474
|
},
|
|
38413
38475
|
[state, reducedMotion, toggleReducedMotion]
|
|
38414
38476
|
);
|
|
38415
|
-
const { optionsStore, options: viewerOptions } = useViewerOptions();
|
|
38416
38477
|
const settingsRef = useRef(settings);
|
|
38417
38478
|
settingsRef.current = settings;
|
|
38418
38479
|
const handleSettingsChangeRef = useRef(handleSettingsChange);
|
|
@@ -38457,6 +38518,28 @@ var PowerPointViewer = forwardRef(
|
|
|
38457
38518
|
await Promise.all(snapshots.map((entry) => deleteAutosaveSnapshot(entry.key)));
|
|
38458
38519
|
})();
|
|
38459
38520
|
}, []);
|
|
38521
|
+
useEffect(() => {
|
|
38522
|
+
void (async () => {
|
|
38523
|
+
try {
|
|
38524
|
+
const snapshots = await listAutosaveSnapshots();
|
|
38525
|
+
const expired = resolveExpiredAutosaveSnapshots(snapshots, viewerOptions);
|
|
38526
|
+
await Promise.all(expired.map((key) => deleteAutosaveSnapshot(key)));
|
|
38527
|
+
} catch {
|
|
38528
|
+
}
|
|
38529
|
+
})();
|
|
38530
|
+
}, []);
|
|
38531
|
+
useEffect(() => {
|
|
38532
|
+
const clearIfRequested = () => {
|
|
38533
|
+
if (shouldClearAutosaveCacheOnClose(viewerOptions)) {
|
|
38534
|
+
handleClearOptionsCache();
|
|
38535
|
+
}
|
|
38536
|
+
};
|
|
38537
|
+
window.addEventListener("beforeunload", clearIfRequested);
|
|
38538
|
+
return () => {
|
|
38539
|
+
window.removeEventListener("beforeunload", clearIfRequested);
|
|
38540
|
+
clearIfRequested();
|
|
38541
|
+
};
|
|
38542
|
+
}, [viewerOptions, handleClearOptionsCache]);
|
|
38460
38543
|
const mobile = useIsMobile();
|
|
38461
38544
|
const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
|
|
38462
38545
|
const resizablePanels = useResizablePanels();
|
|
@@ -38502,6 +38585,9 @@ var PowerPointViewer = forwardRef(
|
|
|
38502
38585
|
headerFooter: state.headerFooter,
|
|
38503
38586
|
loading,
|
|
38504
38587
|
error,
|
|
38588
|
+
// File > Options > Advanced > "Maximum number of undos", re-read every
|
|
38589
|
+
// render so a mid-session change reaches the undo stack.
|
|
38590
|
+
maxHistoryEntries: resolveHistoryDepth(viewerOptions),
|
|
38505
38591
|
hasActivePointerInteraction,
|
|
38506
38592
|
pointerCommitNonce: state.pointerCommitNonce,
|
|
38507
38593
|
onDirty: markDocumentDirty,
|
|
@@ -38514,13 +38600,18 @@ var PowerPointViewer = forwardRef(
|
|
|
38514
38600
|
setEditTemplateMode: state.setEditTemplateMode,
|
|
38515
38601
|
setHeaderFooter: state.setHeaderFooter
|
|
38516
38602
|
});
|
|
38517
|
-
const { presentation, annotations, actionSoundHandlerRef } = usePresentationSetup({
|
|
38603
|
+
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
|
|
38518
38604
|
mode,
|
|
38519
38605
|
slides,
|
|
38520
38606
|
visibleSlideIndexes,
|
|
38521
38607
|
// File > Options > Advanced > "End with black slide". Off means the show
|
|
38522
38608
|
// exits straight to the editor instead of raising the black end screen.
|
|
38523
38609
|
endWithBlackSlide: viewerOptions.advanced.slideShowEndWithBlackSlide,
|
|
38610
|
+
// File > Options > Advanced > "Prompt to keep ink annotations when
|
|
38611
|
+
// exiting". Off skips the keep/discard dialog entirely.
|
|
38612
|
+
promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
|
|
38613
|
+
// File > Options > Advanced > "Show popup toolbar" while presenting.
|
|
38614
|
+
popupToolbarEnabled: viewerOptions.advanced.slideShowShowPopupToolbar,
|
|
38524
38615
|
activeSlideIndex,
|
|
38525
38616
|
containerRef,
|
|
38526
38617
|
content,
|
|
@@ -38616,11 +38707,16 @@ var PowerPointViewer = forwardRef(
|
|
|
38616
38707
|
canvasSize,
|
|
38617
38708
|
dialogs,
|
|
38618
38709
|
presentation,
|
|
38619
|
-
|
|
38620
|
-
|
|
38710
|
+
// Comment/reply authorship: an explicit host `authorName` or an active
|
|
38711
|
+
// collaboration session's identity wins; otherwise fall back to the
|
|
38712
|
+
// user's own Options > General > "User name" before the generic "You".
|
|
38713
|
+
userName: authorName ?? collaboration?.userName ?? (viewerOptions.general.userName || void 0),
|
|
38714
|
+
handlerRef: actionSoundHandlerRef,
|
|
38715
|
+
// Options > Proofing > AutoCorrect, applied to committed inline-edit text.
|
|
38716
|
+
transformCommittedText: (text) => applyAutoCorrect(text, viewerOptions.proofing)
|
|
38621
38717
|
});
|
|
38622
38718
|
const {
|
|
38623
|
-
exportHandlers,
|
|
38719
|
+
exportHandlers: rawExportHandlers,
|
|
38624
38720
|
printHandlers,
|
|
38625
38721
|
themeHandlers,
|
|
38626
38722
|
propertyHandlers,
|
|
@@ -38656,7 +38752,20 @@ var PowerPointViewer = forwardRef(
|
|
|
38656
38752
|
hostIntervalMs: hostAutosaveIntervalMs,
|
|
38657
38753
|
optionsIntervalSeconds: resolveAutosaveIntervalSeconds(viewerOptions)
|
|
38658
38754
|
}),
|
|
38755
|
+
// Trust Center > "Allow external content": core defaults this to false
|
|
38756
|
+
// (SSRF/privacy-safe), so only an explicit `true` here lets remote
|
|
38757
|
+
// http(s) image sources actually load.
|
|
38758
|
+
allowExternalImages: viewerOptions.trust.allowExternalContent,
|
|
38659
38759
|
canEdit,
|
|
38760
|
+
promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
|
|
38761
|
+
// File > Options > Advanced > "Image Size and Quality" (do-not-compress /
|
|
38762
|
+
// default resolution), resolved to a raster-scale multiplier for
|
|
38763
|
+
// PNG/PDF export and copy-slide-as-image. Multiplied against the
|
|
38764
|
+
// pre-existing 2x baseline (not used outright) so the default "High
|
|
38765
|
+
// fidelity" preset (raw multiplier 1) keeps today's export quality
|
|
38766
|
+
// instead of silently downgrading it; the explicit ppi presets still
|
|
38767
|
+
// scale proportionally from that baseline. Mirrors the other bindings.
|
|
38768
|
+
imageExportScale: 2 * resolveImageResolutionScale(viewerOptions),
|
|
38660
38769
|
mode,
|
|
38661
38770
|
slides,
|
|
38662
38771
|
activeSlide,
|
|
@@ -38674,6 +38783,26 @@ var PowerPointViewer = forwardRef(
|
|
|
38674
38783
|
onSelectionChange,
|
|
38675
38784
|
onSlideCountChange
|
|
38676
38785
|
});
|
|
38786
|
+
const exportHandlers = useMemo(() => {
|
|
38787
|
+
const afterSuccessfulSave = (format) => {
|
|
38788
|
+
playFeedbackSound(viewerOptions);
|
|
38789
|
+
if (format === "pptx" && filePath && shouldDiscardAutosaveOnSuccessfulSave(viewerOptions)) {
|
|
38790
|
+
void deleteAutosaveSnapshot(filePath);
|
|
38791
|
+
}
|
|
38792
|
+
};
|
|
38793
|
+
const handleSaveAsFormat = async (format) => {
|
|
38794
|
+
await rawExportHandlers.handleSaveAsFormat(format);
|
|
38795
|
+
afterSuccessfulSave(format);
|
|
38796
|
+
};
|
|
38797
|
+
return {
|
|
38798
|
+
...rawExportHandlers,
|
|
38799
|
+
handleSaveAsFormat,
|
|
38800
|
+
handleSaveAsPptx: () => void handleSaveAsFormat("pptx"),
|
|
38801
|
+
handleSaveAsPpsx: () => void handleSaveAsFormat("ppsx"),
|
|
38802
|
+
handleSaveAsPptm: () => void handleSaveAsFormat("pptm")
|
|
38803
|
+
};
|
|
38804
|
+
}, [rawExportHandlers, viewerOptions, filePath]);
|
|
38805
|
+
setExitModeHandler(handleSetMode);
|
|
38677
38806
|
const handleTemplateElementsChanged = useCallback(
|
|
38678
38807
|
(slideId, elements) => {
|
|
38679
38808
|
state.setTemplateElementsBySlideId((prev) => ({ ...prev, [slideId]: elements }));
|
|
@@ -38739,13 +38868,21 @@ var PowerPointViewer = forwardRef(
|
|
|
38739
38868
|
});
|
|
38740
38869
|
const showSlidesPane = mode === "edit" && !isMobile && !dialogs.isNarrowViewport && state.isSlidesPaneOpen;
|
|
38741
38870
|
const showMasterPane = mode === "master" && !isMobile && state.isSlidesPaneOpen;
|
|
38871
|
+
const addinStatus = {
|
|
38872
|
+
smartArt3d: smartArt3D && !viewerOptions.advanced.disable3DRendering,
|
|
38873
|
+
collaboration: Boolean(collaboration),
|
|
38874
|
+
locales: resolvedLocales.length > 1
|
|
38875
|
+
};
|
|
38742
38876
|
const viewerContent = /* @__PURE__ */ jsxs(
|
|
38743
38877
|
"div",
|
|
38744
38878
|
{
|
|
38745
38879
|
style: themeStyle,
|
|
38746
38880
|
"data-pptx-viewer": "",
|
|
38747
38881
|
"aria-busy": loading,
|
|
38748
|
-
className:
|
|
38882
|
+
className: cn(
|
|
38883
|
+
"h-full w-full bg-background text-foreground relative",
|
|
38884
|
+
...resolveOptionRootClasses(viewerOptions, "pptx")
|
|
38885
|
+
),
|
|
38749
38886
|
children: [
|
|
38750
38887
|
/* @__PURE__ */ jsx(
|
|
38751
38888
|
"div",
|
|
@@ -38795,9 +38932,12 @@ var PowerPointViewer = forwardRef(
|
|
|
38795
38932
|
}
|
|
38796
38933
|
},
|
|
38797
38934
|
hiddenActions,
|
|
38935
|
+
recentPresentationsCount: viewerOptions.advanced.recentPresentationsCount,
|
|
38798
38936
|
aiEnabled: Boolean(ai),
|
|
38799
38937
|
isAiPanelOpen: aiPanel.isOpen,
|
|
38800
|
-
onToggleAiPanel: aiPanel.toggle
|
|
38938
|
+
onToggleAiPanel: aiPanel.toggle,
|
|
38939
|
+
isProtectedView,
|
|
38940
|
+
onEnableEditing: hostCanEdit ? handleEnableEditing : void 0
|
|
38801
38941
|
}
|
|
38802
38942
|
),
|
|
38803
38943
|
/* @__PURE__ */ jsx(
|
|
@@ -38935,6 +39075,7 @@ var PowerPointViewer = forwardRef(
|
|
|
38935
39075
|
onQuickAccessCommandsChange: (commandIds) => optionsStore.setQuickAccessCommands(commandIds),
|
|
38936
39076
|
onResetOptions: (group) => optionsStore.reset(group),
|
|
38937
39077
|
onClearCache: handleClearOptionsCache,
|
|
39078
|
+
addinStatus,
|
|
38938
39079
|
themeKey,
|
|
38939
39080
|
availableThemes: themeCatalog,
|
|
38940
39081
|
onSelectTheme: handleThemeChange,
|
|
@@ -39050,38 +39191,51 @@ var PowerPointViewer = forwardRef(
|
|
|
39050
39191
|
]
|
|
39051
39192
|
}
|
|
39052
39193
|
);
|
|
39053
|
-
|
|
39054
|
-
|
|
39055
|
-
|
|
39056
|
-
|
|
39057
|
-
|
|
39058
|
-
|
|
39059
|
-
|
|
39060
|
-
|
|
39061
|
-
|
|
39062
|
-
|
|
39063
|
-
|
|
39064
|
-
|
|
39065
|
-
|
|
39066
|
-
|
|
39067
|
-
|
|
39068
|
-
|
|
39069
|
-
|
|
39070
|
-
|
|
39071
|
-
|
|
39072
|
-
|
|
39073
|
-
|
|
39074
|
-
|
|
39075
|
-
|
|
39076
|
-
|
|
39077
|
-
|
|
39078
|
-
|
|
39079
|
-
|
|
39080
|
-
|
|
39081
|
-
|
|
39082
|
-
|
|
39083
|
-
|
|
39084
|
-
|
|
39194
|
+
const effective3D = resolve3DRenderingFlags(
|
|
39195
|
+
{ smartArt3D, surfaceChart3D, barChart3D, lineChart3D, areaChart3D, pieChart3D },
|
|
39196
|
+
viewerOptions
|
|
39197
|
+
);
|
|
39198
|
+
return (
|
|
39199
|
+
// `ViewerOptionsContext` is how every deeply-nested chrome piece (the
|
|
39200
|
+
// toolbar, title bar, Quick Access strip, print dialog, canvas
|
|
39201
|
+
// hyperlink gate, share dialog) reads the live File > Options
|
|
39202
|
+
// snapshot without threading it through each intermediate prop list.
|
|
39203
|
+
// Nothing previously provided it, so every one of those consumers was
|
|
39204
|
+
// silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
|
|
39205
|
+
// the user changed in the Options dialog.
|
|
39206
|
+
/* @__PURE__ */ jsx(ViewerOptionsContext.Provider, { value: viewerOptions, children: /* @__PURE__ */ jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsx(SmartArt3DContext.Provider, { value: effective3D.smartArt3D, children: /* @__PURE__ */ jsx(SurfaceChart3DContext.Provider, { value: effective3D.surfaceChart3D, children: /* @__PURE__ */ jsx(BarChart3DContext.Provider, { value: effective3D.barChart3D, children: /* @__PURE__ */ jsx(LineChart3DContext.Provider, { value: effective3D.lineChart3D, children: /* @__PURE__ */ jsx(AreaChart3DContext.Provider, { value: effective3D.areaChart3D, children: /* @__PURE__ */ jsx(PieChart3DContext.Provider, { value: effective3D.pieChart3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
|
|
39207
|
+
CollaborationProvider,
|
|
39208
|
+
{
|
|
39209
|
+
config: collaboration,
|
|
39210
|
+
canvasWidth: canvasSize.width,
|
|
39211
|
+
canvasHeight: canvasSize.height,
|
|
39212
|
+
children: [
|
|
39213
|
+
/* @__PURE__ */ jsx(
|
|
39214
|
+
CollaborationDocumentSync,
|
|
39215
|
+
{
|
|
39216
|
+
slides,
|
|
39217
|
+
templateElementsBySlideId,
|
|
39218
|
+
setSlides: state.setSlides,
|
|
39219
|
+
config: collaboration,
|
|
39220
|
+
content,
|
|
39221
|
+
loadVersion,
|
|
39222
|
+
loadOrigin,
|
|
39223
|
+
livePatcher: state.livePatcher
|
|
39224
|
+
}
|
|
39225
|
+
),
|
|
39226
|
+
/* @__PURE__ */ jsx(
|
|
39227
|
+
CollaborationFollowLayer,
|
|
39228
|
+
{
|
|
39229
|
+
activeSlideIndex,
|
|
39230
|
+
setActiveSlideIndex: state.setActiveSlideIndex,
|
|
39231
|
+
slideCount: slides.length
|
|
39232
|
+
}
|
|
39233
|
+
),
|
|
39234
|
+
viewerContent
|
|
39235
|
+
]
|
|
39236
|
+
}
|
|
39237
|
+
) }) }) }) }) }) }) }) }) })
|
|
39238
|
+
);
|
|
39085
39239
|
}
|
|
39086
39240
|
);
|
|
39087
39241
|
PowerPointViewer.displayName = "PowerPointViewer";
|