pptx-react-viewer 3.1.0 → 3.1.2
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 +58 -0
- package/dist/{AiChatPanel-WVORGKRT.js → AiChatPanel-4EYZDQXM.js} +24 -24
- package/dist/AiChatPanel-4EYZDQXM.js.br +0 -0
- package/dist/AiChatPanel-4EYZDQXM.js.gz +0 -0
- package/dist/{AiChatPanel-5LCCN7FG.mjs → AiChatPanel-UCFQIWOQ.mjs} +4 -4
- package/dist/AiChatPanel-UCFQIWOQ.mjs.br +0 -0
- package/dist/AiChatPanel-UCFQIWOQ.mjs.gz +0 -0
- package/dist/{Area3DChartScene-W6UZTRDP.mjs → Area3DChartScene-PMYXO4MR.mjs} +1 -1
- package/dist/Area3DChartScene-PMYXO4MR.mjs.br +0 -0
- package/dist/Area3DChartScene-PMYXO4MR.mjs.gz +0 -0
- package/dist/{Area3DChartScene-DY5CSLE2.js → Area3DChartScene-YBMC6NKY.js} +2 -2
- package/dist/Area3DChartScene-YBMC6NKY.js.br +0 -0
- package/dist/Area3DChartScene-YBMC6NKY.js.gz +0 -0
- package/dist/{Bar3DChartScene-7HZSPYG4.js → Bar3DChartScene-75DCA2ZA.js} +2 -2
- package/dist/Bar3DChartScene-75DCA2ZA.js.br +0 -0
- package/dist/Bar3DChartScene-75DCA2ZA.js.gz +0 -0
- package/dist/{Bar3DChartScene-FCWQEQLH.mjs → Bar3DChartScene-CEOI6SU6.mjs} +1 -1
- package/dist/Bar3DChartScene-CEOI6SU6.mjs.br +0 -0
- package/dist/Bar3DChartScene-CEOI6SU6.mjs.gz +0 -0
- package/dist/{Line3DChartScene-EPPWQOHS.mjs → Line3DChartScene-EZZKWUZR.mjs} +1 -1
- package/dist/Line3DChartScene-EZZKWUZR.mjs.br +0 -0
- package/dist/Line3DChartScene-EZZKWUZR.mjs.gz +0 -0
- package/dist/{Line3DChartScene-BKO24WYO.js → Line3DChartScene-STGX6N6V.js} +2 -2
- package/dist/Line3DChartScene-STGX6N6V.js.br +0 -0
- package/dist/Line3DChartScene-STGX6N6V.js.gz +0 -0
- package/dist/{Model3DScene-JFVRE5VL.js → Model3DScene-DWRD63FH.js} +2 -2
- package/dist/Model3DScene-DWRD63FH.js.br +0 -0
- package/dist/Model3DScene-DWRD63FH.js.gz +0 -0
- package/dist/{Model3DScene-IAY33GO2.mjs → Model3DScene-FGQJKWL6.mjs} +1 -1
- package/dist/Model3DScene-FGQJKWL6.mjs.br +0 -0
- package/dist/Model3DScene-FGQJKWL6.mjs.gz +0 -0
- package/dist/{PieChart3DScene-ZP5TSL62.mjs → PieChart3DScene-DH6RSJO6.mjs} +1 -1
- package/dist/PieChart3DScene-DH6RSJO6.mjs.br +0 -0
- package/dist/PieChart3DScene-DH6RSJO6.mjs.gz +0 -0
- package/dist/{PieChart3DScene-IPH7GLKU.js → PieChart3DScene-R3Y7OVVO.js} +2 -2
- package/dist/PieChart3DScene-R3Y7OVVO.js.br +0 -0
- package/dist/PieChart3DScene-R3Y7OVVO.js.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-DOMJGPAD.mjs → SurfaceChart3DScene-BMBU5RKI.mjs} +1 -1
- package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-TGDBVJSW.js → SurfaceChart3DScene-UM5HA3VO.js} +2 -2
- package/dist/SurfaceChart3DScene-UM5HA3VO.js.br +0 -0
- package/dist/SurfaceChart3DScene-UM5HA3VO.js.gz +0 -0
- package/dist/{chunk-7JZLE56X.js → chunk-2HLDBQH7.js} +157 -157
- package/dist/chunk-2HLDBQH7.js.br +0 -0
- package/dist/chunk-2HLDBQH7.js.gz +0 -0
- package/dist/{chunk-VMLKJDA5.mjs → chunk-4VVOTEQ4.mjs} +359 -336
- package/dist/chunk-4VVOTEQ4.mjs.br +0 -0
- package/dist/chunk-4VVOTEQ4.mjs.gz +0 -0
- package/dist/{chunk-T7BAPZBY.js → chunk-7ZQ2FZXE.js} +305 -45
- package/dist/chunk-7ZQ2FZXE.js.br +0 -0
- package/dist/chunk-7ZQ2FZXE.js.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-A5EUD6UU.js → chunk-MQEG5GOV.js} +1343 -1250
- package/dist/chunk-MQEG5GOV.js.br +0 -0
- package/dist/chunk-MQEG5GOV.js.gz +0 -0
- package/dist/{chunk-PQNZCSB7.mjs → chunk-O5DKWJDK.mjs} +1 -1
- package/dist/chunk-O5DKWJDK.mjs.br +0 -0
- package/dist/{chunk-PQNZCSB7.mjs.gz → chunk-O5DKWJDK.mjs.gz} +0 -0
- package/dist/{chunk-BP2L2KOZ.mjs → chunk-S546O4W2.mjs} +291 -45
- package/dist/chunk-S546O4W2.mjs.br +0 -0
- package/dist/chunk-S546O4W2.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-TIEUZCYQ.mjs → chunk-VLLZ3QL2.mjs} +265 -172
- package/dist/chunk-VLLZ3QL2.mjs.br +0 -0
- package/dist/chunk-VLLZ3QL2.mjs.gz +0 -0
- package/dist/{chunk-SNWAM2XJ.mjs → chunk-W3J6SNVE.mjs} +2 -2
- package/dist/chunk-W3J6SNVE.mjs.br +0 -0
- package/dist/chunk-W3J6SNVE.mjs.gz +0 -0
- package/dist/{chunk-POAZ53L5.js → chunk-WVIKFMNS.js} +725 -704
- package/dist/chunk-WVIKFMNS.js.br +0 -0
- package/dist/chunk-WVIKFMNS.js.gz +0 -0
- package/dist/{chunk-VQVC27WL.js → chunk-YNUYFR2T.js} +3 -3
- package/dist/chunk-YNUYFR2T.js.br +0 -0
- package/dist/chunk-YNUYFR2T.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +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-5LCCN7FG.mjs.br +0 -0
- package/dist/AiChatPanel-5LCCN7FG.mjs.gz +0 -0
- package/dist/AiChatPanel-WVORGKRT.js.br +0 -0
- package/dist/AiChatPanel-WVORGKRT.js.gz +0 -0
- package/dist/Area3DChartScene-DY5CSLE2.js.br +0 -0
- package/dist/Area3DChartScene-DY5CSLE2.js.gz +0 -0
- package/dist/Area3DChartScene-W6UZTRDP.mjs.br +0 -0
- package/dist/Area3DChartScene-W6UZTRDP.mjs.gz +0 -0
- package/dist/Bar3DChartScene-7HZSPYG4.js.br +0 -0
- package/dist/Bar3DChartScene-7HZSPYG4.js.gz +0 -0
- package/dist/Bar3DChartScene-FCWQEQLH.mjs.br +0 -0
- package/dist/Bar3DChartScene-FCWQEQLH.mjs.gz +0 -0
- package/dist/Line3DChartScene-BKO24WYO.js.br +0 -0
- package/dist/Line3DChartScene-BKO24WYO.js.gz +0 -0
- package/dist/Line3DChartScene-EPPWQOHS.mjs.br +0 -0
- package/dist/Line3DChartScene-EPPWQOHS.mjs.gz +0 -0
- package/dist/Model3DScene-IAY33GO2.mjs.br +0 -0
- package/dist/Model3DScene-IAY33GO2.mjs.gz +0 -0
- package/dist/Model3DScene-JFVRE5VL.js.br +0 -0
- package/dist/Model3DScene-JFVRE5VL.js.gz +0 -0
- package/dist/PieChart3DScene-IPH7GLKU.js.br +0 -0
- package/dist/PieChart3DScene-IPH7GLKU.js.gz +0 -0
- package/dist/PieChart3DScene-ZP5TSL62.mjs.br +0 -0
- package/dist/PieChart3DScene-ZP5TSL62.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-DOMJGPAD.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-DOMJGPAD.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-TGDBVJSW.js.br +0 -0
- package/dist/SurfaceChart3DScene-TGDBVJSW.js.gz +0 -0
- package/dist/chunk-7JZLE56X.js.br +0 -0
- package/dist/chunk-7JZLE56X.js.gz +0 -0
- package/dist/chunk-A5EUD6UU.js.br +0 -0
- package/dist/chunk-A5EUD6UU.js.gz +0 -0
- package/dist/chunk-BP2L2KOZ.mjs.br +0 -0
- package/dist/chunk-BP2L2KOZ.mjs.gz +0 -0
- package/dist/chunk-MKPSUHUH.mjs.br +0 -0
- package/dist/chunk-MKPSUHUH.mjs.gz +0 -0
- package/dist/chunk-PIUB7R2K.js.br +0 -0
- package/dist/chunk-PIUB7R2K.js.gz +0 -0
- package/dist/chunk-POAZ53L5.js.br +0 -0
- package/dist/chunk-POAZ53L5.js.gz +0 -0
- package/dist/chunk-PQNZCSB7.mjs.br +0 -0
- package/dist/chunk-SNWAM2XJ.mjs.br +0 -0
- package/dist/chunk-SNWAM2XJ.mjs.gz +0 -0
- package/dist/chunk-T7BAPZBY.js.br +0 -0
- package/dist/chunk-T7BAPZBY.js.gz +0 -0
- package/dist/chunk-TIEUZCYQ.mjs.br +0 -0
- package/dist/chunk-TIEUZCYQ.mjs.gz +0 -0
- package/dist/chunk-VMLKJDA5.mjs.br +0 -0
- package/dist/chunk-VMLKJDA5.mjs.gz +0 -0
- package/dist/chunk-VQVC27WL.js.br +0 -0
- package/dist/chunk-VQVC27WL.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-BP2L2KOZ.mjs';
|
|
1
|
+
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-O5DKWJDK.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-4VVOTEQ4.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-W3J6SNVE.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-S546O4W2.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 }) {
|
|
@@ -479,13 +479,38 @@ function useChartPartSelection() {
|
|
|
479
479
|
return useContext(ChartPartSelectionContext);
|
|
480
480
|
}
|
|
481
481
|
var AreaChart3DContext = createContext(false);
|
|
482
|
+
function LoadingState({ className }) {
|
|
483
|
+
const { t } = useTranslation();
|
|
484
|
+
return /* @__PURE__ */ jsx(
|
|
485
|
+
"div",
|
|
486
|
+
{
|
|
487
|
+
role: "status",
|
|
488
|
+
"aria-live": "polite",
|
|
489
|
+
"aria-atomic": "true",
|
|
490
|
+
className: cn(
|
|
491
|
+
"h-full w-full flex items-center justify-center text-muted-foreground",
|
|
492
|
+
className
|
|
493
|
+
),
|
|
494
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
495
|
+
/* @__PURE__ */ jsx(
|
|
496
|
+
"div",
|
|
497
|
+
{
|
|
498
|
+
className: "animate-spin rounded-full h-6 w-6 border-b-2 border-primary",
|
|
499
|
+
"aria-hidden": "true"
|
|
500
|
+
}
|
|
501
|
+
),
|
|
502
|
+
/* @__PURE__ */ jsx("span", { children: t("pptx.viewer.loading") })
|
|
503
|
+
] })
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
}
|
|
482
507
|
function FailedToLoad() {
|
|
483
508
|
return null;
|
|
484
509
|
}
|
|
485
510
|
var LazyArea3DChartScene = React19.lazy(
|
|
486
511
|
async () => {
|
|
487
512
|
try {
|
|
488
|
-
return await import('./Area3DChartScene-
|
|
513
|
+
return await import('./Area3DChartScene-PMYXO4MR.mjs');
|
|
489
514
|
} catch {
|
|
490
515
|
return { default: FailedToLoad };
|
|
491
516
|
}
|
|
@@ -530,9 +555,9 @@ function Area3DChartRenderer({ element }) {
|
|
|
530
555
|
return svgFallback;
|
|
531
556
|
}
|
|
532
557
|
if (threeAvailable === null) {
|
|
533
|
-
return
|
|
558
|
+
return /* @__PURE__ */ jsx(LoadingState, {});
|
|
534
559
|
}
|
|
535
|
-
return /* @__PURE__ */ jsx(SceneErrorBoundary, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback:
|
|
560
|
+
return /* @__PURE__ */ jsx(SceneErrorBoundary, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingState, {}), children: /* @__PURE__ */ jsx(LazyArea3DChartScene, { options }) }) });
|
|
536
561
|
}
|
|
537
562
|
var BarChart3DContext = createContext(false);
|
|
538
563
|
function FailedToLoad2() {
|
|
@@ -541,7 +566,7 @@ function FailedToLoad2() {
|
|
|
541
566
|
var LazyBar3DChartScene = React19.lazy(
|
|
542
567
|
async () => {
|
|
543
568
|
try {
|
|
544
|
-
return await import('./Bar3DChartScene-
|
|
569
|
+
return await import('./Bar3DChartScene-CEOI6SU6.mjs');
|
|
545
570
|
} catch {
|
|
546
571
|
return { default: FailedToLoad2 };
|
|
547
572
|
}
|
|
@@ -586,9 +611,9 @@ function Bar3DChartRenderer({ element }) {
|
|
|
586
611
|
return svgFallback;
|
|
587
612
|
}
|
|
588
613
|
if (threeAvailable === null) {
|
|
589
|
-
return
|
|
614
|
+
return /* @__PURE__ */ jsx(LoadingState, {});
|
|
590
615
|
}
|
|
591
|
-
return /* @__PURE__ */ jsx(SceneErrorBoundary2, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback:
|
|
616
|
+
return /* @__PURE__ */ jsx(SceneErrorBoundary2, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingState, {}), children: /* @__PURE__ */ jsx(LazyBar3DChartScene, { options }) }) });
|
|
592
617
|
}
|
|
593
618
|
var LineChart3DContext = createContext(false);
|
|
594
619
|
function FailedToLoad3() {
|
|
@@ -597,7 +622,7 @@ function FailedToLoad3() {
|
|
|
597
622
|
var LazyLine3DChartScene = React19.lazy(
|
|
598
623
|
async () => {
|
|
599
624
|
try {
|
|
600
|
-
return await import('./Line3DChartScene-
|
|
625
|
+
return await import('./Line3DChartScene-EZZKWUZR.mjs');
|
|
601
626
|
} catch {
|
|
602
627
|
return { default: FailedToLoad3 };
|
|
603
628
|
}
|
|
@@ -642,9 +667,9 @@ function Line3DChartRenderer({ element }) {
|
|
|
642
667
|
return svgFallback;
|
|
643
668
|
}
|
|
644
669
|
if (threeAvailable === null) {
|
|
645
|
-
return
|
|
670
|
+
return /* @__PURE__ */ jsx(LoadingState, {});
|
|
646
671
|
}
|
|
647
|
-
return /* @__PURE__ */ jsx(SceneErrorBoundary3, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback:
|
|
672
|
+
return /* @__PURE__ */ jsx(SceneErrorBoundary3, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingState, {}), children: /* @__PURE__ */ jsx(LazyLine3DChartScene, { options }) }) });
|
|
648
673
|
}
|
|
649
674
|
var PieChart3DContext = createContext(false);
|
|
650
675
|
function FailedToLoad4() {
|
|
@@ -653,7 +678,7 @@ function FailedToLoad4() {
|
|
|
653
678
|
var LazyPieChart3DScene = React19.lazy(
|
|
654
679
|
async () => {
|
|
655
680
|
try {
|
|
656
|
-
return await import('./PieChart3DScene-
|
|
681
|
+
return await import('./PieChart3DScene-DH6RSJO6.mjs');
|
|
657
682
|
} catch {
|
|
658
683
|
return { default: FailedToLoad4 };
|
|
659
684
|
}
|
|
@@ -698,9 +723,9 @@ function PieChart3DRenderer({ element }) {
|
|
|
698
723
|
return svgFallback;
|
|
699
724
|
}
|
|
700
725
|
if (threeAvailable === null) {
|
|
701
|
-
return
|
|
726
|
+
return /* @__PURE__ */ jsx(LoadingState, {});
|
|
702
727
|
}
|
|
703
|
-
return /* @__PURE__ */ jsx(SceneErrorBoundary4, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback:
|
|
728
|
+
return /* @__PURE__ */ jsx(SceneErrorBoundary4, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingState, {}), children: /* @__PURE__ */ jsx(LazyPieChart3DScene, { options }) }) });
|
|
704
729
|
}
|
|
705
730
|
var SurfaceChart3DContext = createContext(false);
|
|
706
731
|
function FailedToLoad5() {
|
|
@@ -709,7 +734,7 @@ function FailedToLoad5() {
|
|
|
709
734
|
var LazySurfaceChart3DScene = React19.lazy(
|
|
710
735
|
async () => {
|
|
711
736
|
try {
|
|
712
|
-
return await import('./SurfaceChart3DScene-
|
|
737
|
+
return await import('./SurfaceChart3DScene-BMBU5RKI.mjs');
|
|
713
738
|
} catch {
|
|
714
739
|
return { default: FailedToLoad5 };
|
|
715
740
|
}
|
|
@@ -756,9 +781,9 @@ function SurfaceChart3DRenderer({
|
|
|
756
781
|
return svgFallback;
|
|
757
782
|
}
|
|
758
783
|
if (threeAvailable === null) {
|
|
759
|
-
return
|
|
784
|
+
return /* @__PURE__ */ jsx(LoadingState, {});
|
|
760
785
|
}
|
|
761
|
-
return /* @__PURE__ */ jsx(SceneErrorBoundary5, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback:
|
|
786
|
+
return /* @__PURE__ */ jsx(SceneErrorBoundary5, { fallback: svgFallback, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingState, {}), children: /* @__PURE__ */ jsx(LazySurfaceChart3DScene, { options }) }) });
|
|
762
787
|
}
|
|
763
788
|
function ChartElementView({
|
|
764
789
|
element,
|
|
@@ -1326,8 +1351,8 @@ function ResizeHandles({
|
|
|
1326
1351
|
onResizePointerDown(elementId, e, handle);
|
|
1327
1352
|
};
|
|
1328
1353
|
const startRotate = (btn, pointerId) => {
|
|
1329
|
-
const wrapper =
|
|
1330
|
-
|
|
1354
|
+
const wrapper = document.querySelector(
|
|
1355
|
+
`[data-element-id="${elementId}"]`
|
|
1331
1356
|
);
|
|
1332
1357
|
if (!wrapper) {
|
|
1333
1358
|
return;
|
|
@@ -2898,7 +2923,7 @@ function FailedToLoad6() {
|
|
|
2898
2923
|
var LazyModel3DScene = React19.lazy(
|
|
2899
2924
|
async () => {
|
|
2900
2925
|
try {
|
|
2901
|
-
return await import('./Model3DScene-
|
|
2926
|
+
return await import('./Model3DScene-FGQJKWL6.mjs');
|
|
2902
2927
|
} catch {
|
|
2903
2928
|
return { default: FailedToLoad6 };
|
|
2904
2929
|
}
|
|
@@ -5479,11 +5504,6 @@ var OV = [
|
|
|
5479
5504
|
labelKey: "pptx.ribbon.exportGif",
|
|
5480
5505
|
i: /* @__PURE__ */ jsx(LuImage, { className: `${ics} text-muted-foreground` })
|
|
5481
5506
|
},
|
|
5482
|
-
{
|
|
5483
|
-
k: "package",
|
|
5484
|
-
labelKey: "pptx.file.packageTooltip",
|
|
5485
|
-
i: /* @__PURE__ */ jsx(LuFolderOpen, { className: `${ics} text-muted-foreground` })
|
|
5486
|
-
},
|
|
5487
5507
|
{
|
|
5488
5508
|
k: "pptx",
|
|
5489
5509
|
labelKey: "pptx.file.saveAsPptxTooltip",
|
|
@@ -6133,7 +6153,7 @@ function AccountPage() {
|
|
|
6133
6153
|
return void 0;
|
|
6134
6154
|
});
|
|
6135
6155
|
};
|
|
6136
|
-
const version = "3.
|
|
6156
|
+
const version = "3.1.1" ;
|
|
6137
6157
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
6138
6158
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
6139
6159
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -6312,7 +6332,6 @@ var ICONS = {
|
|
|
6312
6332
|
saveAsPptx: LuDownload,
|
|
6313
6333
|
saveAsPpsx: LuPlay,
|
|
6314
6334
|
saveAsPptm: LuFileText,
|
|
6315
|
-
package: LuPackage,
|
|
6316
6335
|
pdf: LuFileText,
|
|
6317
6336
|
png: LuFileImage,
|
|
6318
6337
|
video: LuVideo,
|
|
@@ -6320,8 +6339,7 @@ var ICONS = {
|
|
|
6320
6339
|
json: LuFileJson,
|
|
6321
6340
|
copyImage: LuCopy,
|
|
6322
6341
|
print: LuPrinter,
|
|
6323
|
-
share: LuShare2
|
|
6324
|
-
sharePackage: LuPackage
|
|
6342
|
+
share: LuShare2
|
|
6325
6343
|
};
|
|
6326
6344
|
function BackstageCards({
|
|
6327
6345
|
page,
|
|
@@ -6338,7 +6356,6 @@ function BackstageCards({
|
|
|
6338
6356
|
saveAsPptx: props.onSaveAsPptx,
|
|
6339
6357
|
saveAsPpsx: props.onSaveAsPpsx,
|
|
6340
6358
|
saveAsPptm: props.onSaveAsPptm,
|
|
6341
|
-
package: props.onPackageForSharing,
|
|
6342
6359
|
pdf: props.onExportPdf,
|
|
6343
6360
|
png: props.onExportPng,
|
|
6344
6361
|
video: props.onExportVideo,
|
|
@@ -6346,8 +6363,7 @@ function BackstageCards({
|
|
|
6346
6363
|
json: props.onExportJson,
|
|
6347
6364
|
copyImage: props.onCopySlideAsImage,
|
|
6348
6365
|
print: props.onPrint,
|
|
6349
|
-
share: props.onOpenShareDialog
|
|
6350
|
-
sharePackage: props.onPackageForSharing
|
|
6366
|
+
share: props.onOpenShareDialog
|
|
6351
6367
|
};
|
|
6352
6368
|
const cards = backstageCardsFor(page).filter(
|
|
6353
6369
|
(card) => card.id !== "saveAsPptm" || props.hasMacros
|
|
@@ -6396,8 +6412,8 @@ function FileSection(p) {
|
|
|
6396
6412
|
const { isHidden } = useToolbarVisibility(p.hiddenActions);
|
|
6397
6413
|
const exportHidden = isHidden("export");
|
|
6398
6414
|
useEffect(() => {
|
|
6399
|
-
void listBackstageRecentFiles(t).then(setRecent);
|
|
6400
|
-
}, [t]);
|
|
6415
|
+
void listBackstageRecentFiles(t, p.recentPresentationsCount).then(setRecent);
|
|
6416
|
+
}, [t, p.recentPresentationsCount]);
|
|
6401
6417
|
const visibleRecent = useMemo(() => {
|
|
6402
6418
|
const q = query.trim().toLowerCase();
|
|
6403
6419
|
return q ? recent.filter((file) => `${file.name} ${file.location}`.toLowerCase().includes(q)) : recent;
|
|
@@ -9277,7 +9293,6 @@ function MobileSectionBody({
|
|
|
9277
9293
|
onExportVideo: p.onExportVideo,
|
|
9278
9294
|
onExportGif: p.onExportGif,
|
|
9279
9295
|
onExportJson: p.onExportJson,
|
|
9280
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
9281
9296
|
onSaveAsPptx: p.onSaveAsPptx,
|
|
9282
9297
|
onSaveAsPpsx: p.onSaveAsPpsx,
|
|
9283
9298
|
onSaveAsPptm: p.onSaveAsPptm,
|
|
@@ -9291,7 +9306,8 @@ function MobileSectionBody({
|
|
|
9291
9306
|
onOpenFontEmbedding: p.onOpenFontEmbedding,
|
|
9292
9307
|
onOpenDigitalSignatures: p.onOpenDigitalSignatures,
|
|
9293
9308
|
onOpenVersionHistory: p.onToggleVersionHistory,
|
|
9294
|
-
hiddenActions: p.hiddenActions
|
|
9309
|
+
hiddenActions: p.hiddenActions,
|
|
9310
|
+
recentPresentationsCount: p.recentPresentationsCount
|
|
9295
9311
|
}
|
|
9296
9312
|
) });
|
|
9297
9313
|
default:
|
|
@@ -9388,7 +9404,7 @@ function MobileToolbar(props) {
|
|
|
9388
9404
|
"button",
|
|
9389
9405
|
{
|
|
9390
9406
|
type: "button",
|
|
9391
|
-
onClick: props.onOpenShareDialog
|
|
9407
|
+
onClick: props.onOpenShareDialog,
|
|
9392
9408
|
className: cn(btn, "bg-primary text-white hover:bg-primary/90 px-3"),
|
|
9393
9409
|
title: t("pptx.toolbar.share"),
|
|
9394
9410
|
"aria-label": t("pptx.toolbar.share"),
|
|
@@ -9789,7 +9805,7 @@ function TabRowActions(p) {
|
|
|
9789
9805
|
"button",
|
|
9790
9806
|
{
|
|
9791
9807
|
type: "button",
|
|
9792
|
-
onClick: p.onOpenShareDialog
|
|
9808
|
+
onClick: p.onOpenShareDialog,
|
|
9793
9809
|
className: cn(
|
|
9794
9810
|
"relative inline-flex items-center gap-1 px-2.5 py-1 rounded-sm text-[11px] font-medium transition-colors whitespace-nowrap",
|
|
9795
9811
|
isCollaborating ? "bg-green-600 hover:bg-green-500 text-white" : "bg-primary hover:bg-primary/90 text-white"
|
|
@@ -9804,6 +9820,44 @@ function TabRowActions(p) {
|
|
|
9804
9820
|
)
|
|
9805
9821
|
] });
|
|
9806
9822
|
}
|
|
9823
|
+
var QUICK_ACCESS_ICONS = {
|
|
9824
|
+
save: LuSave,
|
|
9825
|
+
undo: LuUndo,
|
|
9826
|
+
redo: LuRedo,
|
|
9827
|
+
play: LuPlay,
|
|
9828
|
+
printer: LuPrinter,
|
|
9829
|
+
fileDown: LuFileDown,
|
|
9830
|
+
plus: LuPlus,
|
|
9831
|
+
spellCheck: LuSpellCheck,
|
|
9832
|
+
zoomIn: LuZoomIn,
|
|
9833
|
+
zoomOut: LuZoomOut
|
|
9834
|
+
};
|
|
9835
|
+
function TitleBarQuickExtras(p) {
|
|
9836
|
+
const { t } = useTranslation();
|
|
9837
|
+
if (!p.quickAccess.visible) {
|
|
9838
|
+
return null;
|
|
9839
|
+
}
|
|
9840
|
+
const commands = extraQuickAccessCommands(p.quickAccess.commandIds);
|
|
9841
|
+
if (commands.length === 0) {
|
|
9842
|
+
return null;
|
|
9843
|
+
}
|
|
9844
|
+
return /* @__PURE__ */ jsx(Fragment, { children: commands.map((command) => {
|
|
9845
|
+
const Icon = QUICK_ACCESS_ICONS[command.icon] ?? LuPlay;
|
|
9846
|
+
const label = t(command.labelKey);
|
|
9847
|
+
return /* @__PURE__ */ jsx(
|
|
9848
|
+
"button",
|
|
9849
|
+
{
|
|
9850
|
+
type: "button",
|
|
9851
|
+
onClick: () => p.onCommand?.(command.id),
|
|
9852
|
+
className: TITLE_BAR_CLASSES.quickButton,
|
|
9853
|
+
title: label,
|
|
9854
|
+
"aria-label": label,
|
|
9855
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "w-3.5 h-3.5" })
|
|
9856
|
+
},
|
|
9857
|
+
command.id
|
|
9858
|
+
);
|
|
9859
|
+
}) });
|
|
9860
|
+
}
|
|
9807
9861
|
function PresentDropdown({
|
|
9808
9862
|
isActive,
|
|
9809
9863
|
onPresent,
|
|
@@ -10003,7 +10057,6 @@ function OverflowMenu(p) {
|
|
|
10003
10057
|
pdf: p.onExportPdf,
|
|
10004
10058
|
video: p.onExportVideo,
|
|
10005
10059
|
gif: p.onExportGif,
|
|
10006
|
-
package: p.onPackageForSharing,
|
|
10007
10060
|
pptx: p.onSaveAsPptx,
|
|
10008
10061
|
ppsx: p.onSaveAsPpsx,
|
|
10009
10062
|
pptm: p.onSaveAsPptm,
|
|
@@ -10186,7 +10239,16 @@ function ToolbarPrimaryRow(p) {
|
|
|
10186
10239
|
children: /* @__PURE__ */ jsx(LuSettings, { className: ics })
|
|
10187
10240
|
}
|
|
10188
10241
|
),
|
|
10189
|
-
!canEdit && /* @__PURE__ */ jsx(
|
|
10242
|
+
!canEdit && p.isProtectedView && p.onEnableEditing ? /* @__PURE__ */ jsx(
|
|
10243
|
+
"button",
|
|
10244
|
+
{
|
|
10245
|
+
type: "button",
|
|
10246
|
+
onClick: p.onEnableEditing,
|
|
10247
|
+
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",
|
|
10248
|
+
title: t("pptx.options.trust.protectedViewInfo"),
|
|
10249
|
+
children: t("pptx.security.enableEditing")
|
|
10250
|
+
}
|
|
10251
|
+
) : !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") }),
|
|
10190
10252
|
/* @__PURE__ */ jsx(OverflowMenu, { ...p })
|
|
10191
10253
|
] });
|
|
10192
10254
|
}
|
|
@@ -10194,6 +10256,7 @@ function Toolbar(p) {
|
|
|
10194
10256
|
const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
|
|
10195
10257
|
const { t } = useTranslation();
|
|
10196
10258
|
const { isTabVisible } = useToolbarVisibility(p.hiddenActions);
|
|
10259
|
+
const viewerOptions = useViewerOptionsContext();
|
|
10197
10260
|
if (isNarrowViewport && mode !== "present") {
|
|
10198
10261
|
return /* @__PURE__ */ jsx(MobileToolbar, { ...p });
|
|
10199
10262
|
}
|
|
@@ -10232,6 +10295,7 @@ function Toolbar(p) {
|
|
|
10232
10295
|
type: "button",
|
|
10233
10296
|
role: "tab",
|
|
10234
10297
|
"aria-selected": toolbarSection === s.id,
|
|
10298
|
+
title: resolveScreenTip(viewerOptions, t(s.labelKey)),
|
|
10235
10299
|
onClick: () => onSetToolbarSection(s.id),
|
|
10236
10300
|
className: cn(
|
|
10237
10301
|
"relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
|
|
@@ -10247,7 +10311,6 @@ function Toolbar(p) {
|
|
|
10247
10311
|
{
|
|
10248
10312
|
onEnterRehearsalMode: p.canEdit ? p.onEnterRehearsalMode : void 0,
|
|
10249
10313
|
onOpenShareDialog: p.onOpenShareDialog,
|
|
10250
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
10251
10314
|
hiddenActions: p.hiddenActions
|
|
10252
10315
|
}
|
|
10253
10316
|
),
|
|
@@ -10269,11 +10332,18 @@ function Toolbar(p) {
|
|
|
10269
10332
|
]
|
|
10270
10333
|
}
|
|
10271
10334
|
),
|
|
10335
|
+
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(
|
|
10336
|
+
TitleBarQuickExtras,
|
|
10337
|
+
{
|
|
10338
|
+
quickAccess: viewerOptions.quickAccess,
|
|
10339
|
+
onCommand: p.onQuickCommand
|
|
10340
|
+
}
|
|
10341
|
+
) }),
|
|
10272
10342
|
showRibbon && /* @__PURE__ */ jsxs(
|
|
10273
10343
|
"div",
|
|
10274
10344
|
{
|
|
10275
10345
|
className: cn(
|
|
10276
|
-
"flex min-h-[82px] items-
|
|
10346
|
+
"flex min-h-[82px] items-center 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",
|
|
10277
10347
|
isNarrowViewport && !isCompactToolbarOpen && "hidden"
|
|
10278
10348
|
),
|
|
10279
10349
|
children: [
|
|
@@ -10290,7 +10360,6 @@ function Toolbar(p) {
|
|
|
10290
10360
|
onExportVideo: p.onExportVideo,
|
|
10291
10361
|
onExportGif: p.onExportGif,
|
|
10292
10362
|
onExportJson: p.onExportJson,
|
|
10293
|
-
onPackageForSharing: p.onPackageForSharing,
|
|
10294
10363
|
onSaveAsPptx: p.onSaveAsPptx,
|
|
10295
10364
|
onSaveAsPpsx: p.onSaveAsPpsx,
|
|
10296
10365
|
onSaveAsPptm: p.onSaveAsPptm,
|
|
@@ -10304,7 +10373,8 @@ function Toolbar(p) {
|
|
|
10304
10373
|
onOpenFontEmbedding: p.onOpenFontEmbedding,
|
|
10305
10374
|
onOpenDigitalSignatures: p.onOpenDigitalSignatures,
|
|
10306
10375
|
onOpenVersionHistory: p.onToggleVersionHistory,
|
|
10307
|
-
hiddenActions: p.hiddenActions
|
|
10376
|
+
hiddenActions: p.hiddenActions,
|
|
10377
|
+
recentPresentationsCount: p.recentPresentationsCount
|
|
10308
10378
|
}
|
|
10309
10379
|
),
|
|
10310
10380
|
sHome && /* @__PURE__ */ jsx(
|
|
@@ -12408,31 +12478,6 @@ function SlideCanvas({
|
|
|
12408
12478
|
}
|
|
12409
12479
|
);
|
|
12410
12480
|
}
|
|
12411
|
-
function LoadingState({ className }) {
|
|
12412
|
-
const { t } = useTranslation();
|
|
12413
|
-
return /* @__PURE__ */ jsx(
|
|
12414
|
-
"div",
|
|
12415
|
-
{
|
|
12416
|
-
role: "status",
|
|
12417
|
-
"aria-live": "polite",
|
|
12418
|
-
"aria-atomic": "true",
|
|
12419
|
-
className: cn(
|
|
12420
|
-
"h-full w-full flex items-center justify-center text-muted-foreground",
|
|
12421
|
-
className
|
|
12422
|
-
),
|
|
12423
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
12424
|
-
/* @__PURE__ */ jsx(
|
|
12425
|
-
"div",
|
|
12426
|
-
{
|
|
12427
|
-
className: "animate-spin rounded-full h-6 w-6 border-b-2 border-primary",
|
|
12428
|
-
"aria-hidden": "true"
|
|
12429
|
-
}
|
|
12430
|
-
),
|
|
12431
|
-
/* @__PURE__ */ jsx("span", { children: t("pptx.viewer.loading") })
|
|
12432
|
-
] })
|
|
12433
|
-
}
|
|
12434
|
-
);
|
|
12435
|
-
}
|
|
12436
12481
|
function ErrorState({ className, error }) {
|
|
12437
12482
|
return /* @__PURE__ */ jsx(
|
|
12438
12483
|
"div",
|
|
@@ -22039,6 +22084,7 @@ function ChartTypeSelector({
|
|
|
22039
22084
|
}
|
|
22040
22085
|
function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
22041
22086
|
const chartData = selectedElement.chartData;
|
|
22087
|
+
const followDataPoint = useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
|
|
22042
22088
|
const { selection: partSelection } = useChartPartSelection();
|
|
22043
22089
|
const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
|
|
22044
22090
|
const title = chartData?.title;
|
|
@@ -22159,12 +22205,12 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22159
22205
|
}, [chartData, replaceChartData]);
|
|
22160
22206
|
const removeCategory = useCallback(
|
|
22161
22207
|
(catIndex) => {
|
|
22162
|
-
const next = chartData && removeChartCategory(chartData, catIndex);
|
|
22208
|
+
const next = chartData && removeChartCategory(chartData, catIndex, followDataPoint);
|
|
22163
22209
|
if (next) {
|
|
22164
22210
|
replaceChartData(next);
|
|
22165
22211
|
}
|
|
22166
22212
|
},
|
|
22167
|
-
[chartData, replaceChartData]
|
|
22213
|
+
[chartData, followDataPoint, replaceChartData]
|
|
22168
22214
|
);
|
|
22169
22215
|
const addSeries = useCallback(() => {
|
|
22170
22216
|
if (chartData) {
|
|
@@ -31188,10 +31234,15 @@ function PrintDialog({
|
|
|
31188
31234
|
}) {
|
|
31189
31235
|
const { t } = useTranslation();
|
|
31190
31236
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
31191
|
-
const
|
|
31237
|
+
const printOptionDefaults = resolveDefaultPrintSettings(useViewerOptionsContext());
|
|
31238
|
+
const [printWhat, setPrintWhat] = useState(printOptionDefaults?.printWhat ?? "slides");
|
|
31192
31239
|
const [orientation, setOrientation] = useState("landscape");
|
|
31193
|
-
const [colorMode, setColorMode] = useState(
|
|
31194
|
-
|
|
31240
|
+
const [colorMode, setColorMode] = useState(
|
|
31241
|
+
printOptionDefaults?.colorMode ?? "color"
|
|
31242
|
+
);
|
|
31243
|
+
const [frameSlides, setFrameSlides] = useState(
|
|
31244
|
+
printOptionDefaults?.frameSlides ?? defaultFrameSlides ?? false
|
|
31245
|
+
);
|
|
31195
31246
|
const [slidesPerPage, setSlidesPerPage] = useState(
|
|
31196
31247
|
HANDOUT_OPTIONS.includes(defaultSlidesPerPage) ? defaultSlidesPerPage : 6
|
|
31197
31248
|
);
|
|
@@ -31250,7 +31301,10 @@ function PrintDialog({
|
|
|
31250
31301
|
slidesPerPage,
|
|
31251
31302
|
slideRange,
|
|
31252
31303
|
customRangeFrom: Math.max(1, Math.min(customFrom, slides.length)),
|
|
31253
|
-
customRangeTo: Math.max(1, Math.min(customTo, slides.length))
|
|
31304
|
+
customRangeTo: Math.max(1, Math.min(customTo, slides.length)),
|
|
31305
|
+
// Options > Advanced > "Print scale to fit"; no dialog control of its
|
|
31306
|
+
// own (PowerPoint keeps this an Options default, not a per-job choice).
|
|
31307
|
+
scaleToFit: printOptionDefaults?.scaleToFit ?? true
|
|
31254
31308
|
});
|
|
31255
31309
|
}, [
|
|
31256
31310
|
printWhat,
|
|
@@ -31262,6 +31316,7 @@ function PrintDialog({
|
|
|
31262
31316
|
customFrom,
|
|
31263
31317
|
customTo,
|
|
31264
31318
|
slides.length,
|
|
31319
|
+
printOptionDefaults?.scaleToFit,
|
|
31265
31320
|
onPrint
|
|
31266
31321
|
]);
|
|
31267
31322
|
if (!open) {
|
|
@@ -32025,8 +32080,9 @@ function ActiveSessionView({
|
|
|
32025
32080
|
onCopyRoomId,
|
|
32026
32081
|
onStopCollaboration
|
|
32027
32082
|
}) {
|
|
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({
|
|
32083
|
+
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
32084
|
localUserName: activeCollaboration?.userName ?? collab.config.userName,
|
|
32085
|
+
localUserInitials: viewerOptions.general.userInitials,
|
|
32030
32086
|
localUserColor: collab.config.userColor,
|
|
32031
32087
|
remoteUsers: collab.remoteUsers
|
|
32032
32088
|
});
|
|
@@ -32995,48 +33051,6 @@ function ViewerInspector({
|
|
|
32995
33051
|
}
|
|
32996
33052
|
);
|
|
32997
33053
|
}
|
|
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
33054
|
function TitleBar(p) {
|
|
33041
33055
|
const { t } = useTranslation();
|
|
33042
33056
|
const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
|
|
@@ -33152,7 +33166,7 @@ function TitleBar(p) {
|
|
|
33152
33166
|
children: /* @__PURE__ */ jsx(LuRedo, { className: "w-3.5 h-3.5" })
|
|
33153
33167
|
}
|
|
33154
33168
|
),
|
|
33155
|
-
/* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
33169
|
+
quickAccess.position !== "below" && /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
33156
33170
|
/* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator })
|
|
33157
33171
|
] }),
|
|
33158
33172
|
/* @__PURE__ */ jsxs("span", { className: TITLE_BAR_CLASSES.fileGroup, children: [
|
|
@@ -33278,9 +33292,12 @@ function ViewerToolbarSection(props) {
|
|
|
33278
33292
|
autosaveEnabled = true,
|
|
33279
33293
|
onToggleAutosave,
|
|
33280
33294
|
hiddenActions,
|
|
33295
|
+
recentPresentationsCount,
|
|
33281
33296
|
aiEnabled,
|
|
33282
33297
|
isAiPanelOpen,
|
|
33283
|
-
onToggleAiPanel
|
|
33298
|
+
onToggleAiPanel,
|
|
33299
|
+
isProtectedView,
|
|
33300
|
+
onEnableEditing
|
|
33284
33301
|
} = props;
|
|
33285
33302
|
const { t } = useTranslation();
|
|
33286
33303
|
const handleAddAnimation = useCallback(
|
|
@@ -33558,7 +33575,11 @@ function ViewerToolbarSection(props) {
|
|
|
33558
33575
|
fileName,
|
|
33559
33576
|
mode,
|
|
33560
33577
|
canEdit,
|
|
33578
|
+
isProtectedView,
|
|
33579
|
+
onEnableEditing,
|
|
33580
|
+
onQuickCommand: handleQuickAccessCommand,
|
|
33561
33581
|
hiddenActions,
|
|
33582
|
+
recentPresentationsCount,
|
|
33562
33583
|
isNarrowViewport: dialogs.isNarrowViewport,
|
|
33563
33584
|
isSidebarCollapsed: !s.isSlidesPaneOpen,
|
|
33564
33585
|
isInspectorPaneOpen: s.isInspectorPaneOpen,
|
|
@@ -33648,7 +33669,6 @@ function ViewerToolbarSection(props) {
|
|
|
33648
33669
|
onExportVideo: exportHandlers.handleExportVideo,
|
|
33649
33670
|
onExportGif: exportHandlers.handleExportGif,
|
|
33650
33671
|
onExportJson: exportHandlers.handleExportJson,
|
|
33651
|
-
onPackageForSharing: exportHandlers.handlePackageForSharing,
|
|
33652
33672
|
onOpenFile,
|
|
33653
33673
|
onOpenRecentFile,
|
|
33654
33674
|
onCreatePresentation: (templateId) => {
|
|
@@ -34352,7 +34372,7 @@ function ViewerDialogGroup(props) {
|
|
|
34352
34372
|
{
|
|
34353
34373
|
open: printHandlers.isPrintDialogOpen,
|
|
34354
34374
|
onClose: () => printHandlers.setIsPrintDialogOpen(false),
|
|
34355
|
-
onPrint: printHandlers.
|
|
34375
|
+
onPrint: printHandlers.handlePrintSvg,
|
|
34356
34376
|
slides,
|
|
34357
34377
|
activeSlideIndex,
|
|
34358
34378
|
defaultSlidesPerPage: printPropertiesSlidesPerPage(presentationProperties.printProperties),
|
|
@@ -34764,12 +34784,17 @@ ${url}`)) {
|
|
|
34764
34784
|
const handleActionClick = useCallback(
|
|
34765
34785
|
(_elementId, action) => {
|
|
34766
34786
|
if (mode === "present") {
|
|
34787
|
+
const resolved = resolvePresentationAction(action, { slideCount: slides.length });
|
|
34788
|
+
if (resolved.intent.kind === "openUrl") {
|
|
34789
|
+
openExternalUrl(resolved.intent.url);
|
|
34790
|
+
return;
|
|
34791
|
+
}
|
|
34767
34792
|
presentation.handlePresentationAction(action);
|
|
34768
34793
|
} else if (action.url) {
|
|
34769
34794
|
openExternalUrl(action.url);
|
|
34770
34795
|
}
|
|
34771
34796
|
},
|
|
34772
|
-
[mode, presentation, openExternalUrl]
|
|
34797
|
+
[mode, presentation, openExternalUrl, slides.length]
|
|
34773
34798
|
);
|
|
34774
34799
|
const handleHyperlinkClick = useCallback(
|
|
34775
34800
|
(url) => {
|
|
@@ -35168,7 +35193,7 @@ ${url}`)) {
|
|
|
35168
35193
|
var AiChatPanel = lazy(async () => {
|
|
35169
35194
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
35170
35195
|
import('@ai-sdk/react'),
|
|
35171
|
-
import('./AiChatPanel-
|
|
35196
|
+
import('./AiChatPanel-UCFQIWOQ.mjs')
|
|
35172
35197
|
]);
|
|
35173
35198
|
function BoundAiChatPanel(props) {
|
|
35174
35199
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -38212,7 +38237,7 @@ var PowerPointViewer = forwardRef(
|
|
|
38212
38237
|
fonts = [],
|
|
38213
38238
|
filePath,
|
|
38214
38239
|
fileName,
|
|
38215
|
-
canEdit = false,
|
|
38240
|
+
canEdit: hostCanEdit = false,
|
|
38216
38241
|
autosave: hostAutosave,
|
|
38217
38242
|
autosaveIntervalMs: hostAutosaveIntervalMs,
|
|
38218
38243
|
onContentChange,
|
|
@@ -38341,6 +38366,16 @@ var PowerPointViewer = forwardRef(
|
|
|
38341
38366
|
}
|
|
38342
38367
|
})();
|
|
38343
38368
|
}, []);
|
|
38369
|
+
const { optionsStore, options: viewerOptions } = useViewerOptions();
|
|
38370
|
+
const [protectedViewOverridden, setProtectedViewOverridden] = useState(false);
|
|
38371
|
+
useEffect(() => {
|
|
38372
|
+
setProtectedViewOverridden(false);
|
|
38373
|
+
}, [content]);
|
|
38374
|
+
const isProtectedView = viewerOptions.trust.openInProtectedView && !protectedViewOverridden;
|
|
38375
|
+
const handleEnableEditing = useCallback(() => {
|
|
38376
|
+
setProtectedViewOverridden(true);
|
|
38377
|
+
}, []);
|
|
38378
|
+
const canEdit = hostCanEdit && !isProtectedView;
|
|
38344
38379
|
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
|
38345
38380
|
const [isHeaderFooterOpen, setIsHeaderFooterOpen] = useState(false);
|
|
38346
38381
|
const [autosaveEnabled, setAutosaveEnabled] = useState(true);
|
|
@@ -38412,7 +38447,6 @@ var PowerPointViewer = forwardRef(
|
|
|
38412
38447
|
},
|
|
38413
38448
|
[state, reducedMotion, toggleReducedMotion]
|
|
38414
38449
|
);
|
|
38415
|
-
const { optionsStore, options: viewerOptions } = useViewerOptions();
|
|
38416
38450
|
const settingsRef = useRef(settings);
|
|
38417
38451
|
settingsRef.current = settings;
|
|
38418
38452
|
const handleSettingsChangeRef = useRef(handleSettingsChange);
|
|
@@ -38457,6 +38491,28 @@ var PowerPointViewer = forwardRef(
|
|
|
38457
38491
|
await Promise.all(snapshots.map((entry) => deleteAutosaveSnapshot(entry.key)));
|
|
38458
38492
|
})();
|
|
38459
38493
|
}, []);
|
|
38494
|
+
useEffect(() => {
|
|
38495
|
+
void (async () => {
|
|
38496
|
+
try {
|
|
38497
|
+
const snapshots = await listAutosaveSnapshots();
|
|
38498
|
+
const expired = resolveExpiredAutosaveSnapshots(snapshots, viewerOptions);
|
|
38499
|
+
await Promise.all(expired.map((key) => deleteAutosaveSnapshot(key)));
|
|
38500
|
+
} catch {
|
|
38501
|
+
}
|
|
38502
|
+
})();
|
|
38503
|
+
}, []);
|
|
38504
|
+
useEffect(() => {
|
|
38505
|
+
const clearIfRequested = () => {
|
|
38506
|
+
if (shouldClearAutosaveCacheOnClose(viewerOptions)) {
|
|
38507
|
+
handleClearOptionsCache();
|
|
38508
|
+
}
|
|
38509
|
+
};
|
|
38510
|
+
window.addEventListener("beforeunload", clearIfRequested);
|
|
38511
|
+
return () => {
|
|
38512
|
+
window.removeEventListener("beforeunload", clearIfRequested);
|
|
38513
|
+
clearIfRequested();
|
|
38514
|
+
};
|
|
38515
|
+
}, [viewerOptions, handleClearOptionsCache]);
|
|
38460
38516
|
const mobile = useIsMobile();
|
|
38461
38517
|
const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
|
|
38462
38518
|
const resizablePanels = useResizablePanels();
|
|
@@ -38502,6 +38558,9 @@ var PowerPointViewer = forwardRef(
|
|
|
38502
38558
|
headerFooter: state.headerFooter,
|
|
38503
38559
|
loading,
|
|
38504
38560
|
error,
|
|
38561
|
+
// File > Options > Advanced > "Maximum number of undos", re-read every
|
|
38562
|
+
// render so a mid-session change reaches the undo stack.
|
|
38563
|
+
maxHistoryEntries: resolveHistoryDepth(viewerOptions),
|
|
38505
38564
|
hasActivePointerInteraction,
|
|
38506
38565
|
pointerCommitNonce: state.pointerCommitNonce,
|
|
38507
38566
|
onDirty: markDocumentDirty,
|
|
@@ -38514,13 +38573,18 @@ var PowerPointViewer = forwardRef(
|
|
|
38514
38573
|
setEditTemplateMode: state.setEditTemplateMode,
|
|
38515
38574
|
setHeaderFooter: state.setHeaderFooter
|
|
38516
38575
|
});
|
|
38517
|
-
const { presentation, annotations, actionSoundHandlerRef } = usePresentationSetup({
|
|
38576
|
+
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
|
|
38518
38577
|
mode,
|
|
38519
38578
|
slides,
|
|
38520
38579
|
visibleSlideIndexes,
|
|
38521
38580
|
// File > Options > Advanced > "End with black slide". Off means the show
|
|
38522
38581
|
// exits straight to the editor instead of raising the black end screen.
|
|
38523
38582
|
endWithBlackSlide: viewerOptions.advanced.slideShowEndWithBlackSlide,
|
|
38583
|
+
// File > Options > Advanced > "Prompt to keep ink annotations when
|
|
38584
|
+
// exiting". Off skips the keep/discard dialog entirely.
|
|
38585
|
+
promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
|
|
38586
|
+
// File > Options > Advanced > "Show popup toolbar" while presenting.
|
|
38587
|
+
popupToolbarEnabled: viewerOptions.advanced.slideShowShowPopupToolbar,
|
|
38524
38588
|
activeSlideIndex,
|
|
38525
38589
|
containerRef,
|
|
38526
38590
|
content,
|
|
@@ -38616,11 +38680,16 @@ var PowerPointViewer = forwardRef(
|
|
|
38616
38680
|
canvasSize,
|
|
38617
38681
|
dialogs,
|
|
38618
38682
|
presentation,
|
|
38619
|
-
|
|
38620
|
-
|
|
38683
|
+
// Comment/reply authorship: an explicit host `authorName` or an active
|
|
38684
|
+
// collaboration session's identity wins; otherwise fall back to the
|
|
38685
|
+
// user's own Options > General > "User name" before the generic "You".
|
|
38686
|
+
userName: authorName ?? collaboration?.userName ?? (viewerOptions.general.userName || void 0),
|
|
38687
|
+
handlerRef: actionSoundHandlerRef,
|
|
38688
|
+
// Options > Proofing > AutoCorrect, applied to committed inline-edit text.
|
|
38689
|
+
transformCommittedText: (text) => applyAutoCorrect(text, viewerOptions.proofing)
|
|
38621
38690
|
});
|
|
38622
38691
|
const {
|
|
38623
|
-
exportHandlers,
|
|
38692
|
+
exportHandlers: rawExportHandlers,
|
|
38624
38693
|
printHandlers,
|
|
38625
38694
|
themeHandlers,
|
|
38626
38695
|
propertyHandlers,
|
|
@@ -38656,7 +38725,20 @@ var PowerPointViewer = forwardRef(
|
|
|
38656
38725
|
hostIntervalMs: hostAutosaveIntervalMs,
|
|
38657
38726
|
optionsIntervalSeconds: resolveAutosaveIntervalSeconds(viewerOptions)
|
|
38658
38727
|
}),
|
|
38728
|
+
// Trust Center > "Allow external content": core defaults this to false
|
|
38729
|
+
// (SSRF/privacy-safe), so only an explicit `true` here lets remote
|
|
38730
|
+
// http(s) image sources actually load.
|
|
38731
|
+
allowExternalImages: viewerOptions.trust.allowExternalContent,
|
|
38659
38732
|
canEdit,
|
|
38733
|
+
promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
|
|
38734
|
+
// File > Options > Advanced > "Image Size and Quality" (do-not-compress /
|
|
38735
|
+
// default resolution), resolved to a raster-scale multiplier for
|
|
38736
|
+
// PNG/PDF export and copy-slide-as-image. Multiplied against the
|
|
38737
|
+
// pre-existing 2x baseline (not used outright) so the default "High
|
|
38738
|
+
// fidelity" preset (raw multiplier 1) keeps today's export quality
|
|
38739
|
+
// instead of silently downgrading it; the explicit ppi presets still
|
|
38740
|
+
// scale proportionally from that baseline. Mirrors the other bindings.
|
|
38741
|
+
imageExportScale: 2 * resolveImageResolutionScale(viewerOptions),
|
|
38660
38742
|
mode,
|
|
38661
38743
|
slides,
|
|
38662
38744
|
activeSlide,
|
|
@@ -38674,6 +38756,26 @@ var PowerPointViewer = forwardRef(
|
|
|
38674
38756
|
onSelectionChange,
|
|
38675
38757
|
onSlideCountChange
|
|
38676
38758
|
});
|
|
38759
|
+
const exportHandlers = useMemo(() => {
|
|
38760
|
+
const afterSuccessfulSave = (format) => {
|
|
38761
|
+
playFeedbackSound(viewerOptions);
|
|
38762
|
+
if (format === "pptx" && filePath && shouldDiscardAutosaveOnSuccessfulSave(viewerOptions)) {
|
|
38763
|
+
void deleteAutosaveSnapshot(filePath);
|
|
38764
|
+
}
|
|
38765
|
+
};
|
|
38766
|
+
const handleSaveAsFormat = async (format) => {
|
|
38767
|
+
await rawExportHandlers.handleSaveAsFormat(format);
|
|
38768
|
+
afterSuccessfulSave(format);
|
|
38769
|
+
};
|
|
38770
|
+
return {
|
|
38771
|
+
...rawExportHandlers,
|
|
38772
|
+
handleSaveAsFormat,
|
|
38773
|
+
handleSaveAsPptx: () => void handleSaveAsFormat("pptx"),
|
|
38774
|
+
handleSaveAsPpsx: () => void handleSaveAsFormat("ppsx"),
|
|
38775
|
+
handleSaveAsPptm: () => void handleSaveAsFormat("pptm")
|
|
38776
|
+
};
|
|
38777
|
+
}, [rawExportHandlers, viewerOptions, filePath]);
|
|
38778
|
+
setExitModeHandler(handleSetMode);
|
|
38677
38779
|
const handleTemplateElementsChanged = useCallback(
|
|
38678
38780
|
(slideId, elements) => {
|
|
38679
38781
|
state.setTemplateElementsBySlideId((prev) => ({ ...prev, [slideId]: elements }));
|
|
@@ -38739,13 +38841,21 @@ var PowerPointViewer = forwardRef(
|
|
|
38739
38841
|
});
|
|
38740
38842
|
const showSlidesPane = mode === "edit" && !isMobile && !dialogs.isNarrowViewport && state.isSlidesPaneOpen;
|
|
38741
38843
|
const showMasterPane = mode === "master" && !isMobile && state.isSlidesPaneOpen;
|
|
38844
|
+
const addinStatus = {
|
|
38845
|
+
smartArt3d: smartArt3D && !viewerOptions.advanced.disable3DRendering,
|
|
38846
|
+
collaboration: Boolean(collaboration),
|
|
38847
|
+
locales: resolvedLocales.length > 1
|
|
38848
|
+
};
|
|
38742
38849
|
const viewerContent = /* @__PURE__ */ jsxs(
|
|
38743
38850
|
"div",
|
|
38744
38851
|
{
|
|
38745
38852
|
style: themeStyle,
|
|
38746
38853
|
"data-pptx-viewer": "",
|
|
38747
38854
|
"aria-busy": loading,
|
|
38748
|
-
className:
|
|
38855
|
+
className: cn(
|
|
38856
|
+
"h-full w-full bg-background text-foreground relative",
|
|
38857
|
+
...resolveOptionRootClasses(viewerOptions, "pptx")
|
|
38858
|
+
),
|
|
38749
38859
|
children: [
|
|
38750
38860
|
/* @__PURE__ */ jsx(
|
|
38751
38861
|
"div",
|
|
@@ -38795,9 +38905,12 @@ var PowerPointViewer = forwardRef(
|
|
|
38795
38905
|
}
|
|
38796
38906
|
},
|
|
38797
38907
|
hiddenActions,
|
|
38908
|
+
recentPresentationsCount: viewerOptions.advanced.recentPresentationsCount,
|
|
38798
38909
|
aiEnabled: Boolean(ai),
|
|
38799
38910
|
isAiPanelOpen: aiPanel.isOpen,
|
|
38800
|
-
onToggleAiPanel: aiPanel.toggle
|
|
38911
|
+
onToggleAiPanel: aiPanel.toggle,
|
|
38912
|
+
isProtectedView,
|
|
38913
|
+
onEnableEditing: hostCanEdit ? handleEnableEditing : void 0
|
|
38801
38914
|
}
|
|
38802
38915
|
),
|
|
38803
38916
|
/* @__PURE__ */ jsx(
|
|
@@ -38935,6 +39048,7 @@ var PowerPointViewer = forwardRef(
|
|
|
38935
39048
|
onQuickAccessCommandsChange: (commandIds) => optionsStore.setQuickAccessCommands(commandIds),
|
|
38936
39049
|
onResetOptions: (group) => optionsStore.reset(group),
|
|
38937
39050
|
onClearCache: handleClearOptionsCache,
|
|
39051
|
+
addinStatus,
|
|
38938
39052
|
themeKey,
|
|
38939
39053
|
availableThemes: themeCatalog,
|
|
38940
39054
|
onSelectTheme: handleThemeChange,
|
|
@@ -39050,40 +39164,19 @@ var PowerPointViewer = forwardRef(
|
|
|
39050
39164
|
]
|
|
39051
39165
|
}
|
|
39052
39166
|
);
|
|
39053
|
-
|
|
39054
|
-
|
|
39055
|
-
|
|
39056
|
-
|
|
39057
|
-
|
|
39058
|
-
|
|
39059
|
-
|
|
39060
|
-
|
|
39061
|
-
|
|
39062
|
-
|
|
39063
|
-
|
|
39064
|
-
|
|
39065
|
-
|
|
39066
|
-
setSlides: state.setSlides,
|
|
39067
|
-
config: collaboration,
|
|
39068
|
-
content,
|
|
39069
|
-
loadVersion,
|
|
39070
|
-
loadOrigin,
|
|
39071
|
-
livePatcher: state.livePatcher
|
|
39072
|
-
}
|
|
39073
|
-
),
|
|
39074
|
-
/* @__PURE__ */ jsx(
|
|
39075
|
-
CollaborationFollowLayer,
|
|
39076
|
-
{
|
|
39077
|
-
activeSlideIndex,
|
|
39078
|
-
setActiveSlideIndex: state.setActiveSlideIndex,
|
|
39079
|
-
slideCount: slides.length
|
|
39080
|
-
}
|
|
39081
|
-
),
|
|
39082
|
-
viewerContent
|
|
39083
|
-
]
|
|
39084
|
-
}
|
|
39085
|
-
) }) }) }),
|
|
39086
|
-
/* @__PURE__ */ jsx(PieChart3DContext.Provider, { value: pieChart3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
|
|
39167
|
+
const effective3D = resolve3DRenderingFlags(
|
|
39168
|
+
{ smartArt3D, surfaceChart3D, barChart3D, lineChart3D, areaChart3D, pieChart3D },
|
|
39169
|
+
viewerOptions
|
|
39170
|
+
);
|
|
39171
|
+
return (
|
|
39172
|
+
// `ViewerOptionsContext` is how every deeply-nested chrome piece (the
|
|
39173
|
+
// toolbar, title bar, Quick Access strip, print dialog, canvas
|
|
39174
|
+
// hyperlink gate, share dialog) reads the live File > Options
|
|
39175
|
+
// snapshot without threading it through each intermediate prop list.
|
|
39176
|
+
// Nothing previously provided it, so every one of those consumers was
|
|
39177
|
+
// silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
|
|
39178
|
+
// the user changed in the Options dialog.
|
|
39179
|
+
/* @__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(
|
|
39087
39180
|
CollaborationProvider,
|
|
39088
39181
|
{
|
|
39089
39182
|
config: collaboration,
|
|
@@ -39114,8 +39207,8 @@ var PowerPointViewer = forwardRef(
|
|
|
39114
39207
|
viewerContent
|
|
39115
39208
|
]
|
|
39116
39209
|
}
|
|
39117
|
-
) }) })
|
|
39118
|
-
|
|
39210
|
+
) }) }) }) }) }) }) }) }) })
|
|
39211
|
+
);
|
|
39119
39212
|
}
|
|
39120
39213
|
);
|
|
39121
39214
|
PowerPointViewer.displayName = "PowerPointViewer";
|