pptx-react-viewer 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +34 -33
- package/dist/{AiChatPanel-P2N6X2KB.js → AiChatPanel-3C7GM6ZF.js} +28 -28
- package/dist/AiChatPanel-3C7GM6ZF.js.br +0 -0
- package/dist/AiChatPanel-3C7GM6ZF.js.gz +0 -0
- package/dist/{AiChatPanel-HXGCZPUX.mjs → AiChatPanel-L7DBCWE3.mjs} +4 -4
- package/dist/AiChatPanel-L7DBCWE3.mjs.br +0 -0
- package/dist/AiChatPanel-L7DBCWE3.mjs.gz +0 -0
- package/dist/{Model3DScene-QXMMJRV3.mjs → Model3DScene-IJ7YYTYU.mjs} +1 -1
- package/dist/Model3DScene-IJ7YYTYU.mjs.br +0 -0
- package/dist/Model3DScene-IJ7YYTYU.mjs.gz +0 -0
- package/dist/{Model3DScene-PIFMH2TU.js → Model3DScene-USKNPWWH.js} +2 -2
- package/dist/Model3DScene-USKNPWWH.js.br +0 -0
- package/dist/Model3DScene-USKNPWWH.js.gz +0 -0
- package/dist/{chunk-UMQV2432.js → chunk-3JUZOKFI.js} +1 -0
- package/dist/chunk-3JUZOKFI.js.br +0 -0
- package/dist/{chunk-UMQV2432.js.gz → chunk-3JUZOKFI.js.gz} +0 -0
- package/dist/{chunk-T35BGKZG.js → chunk-5V5SMT5A.js} +5 -5
- package/dist/chunk-5V5SMT5A.js.br +0 -0
- package/dist/chunk-5V5SMT5A.js.gz +0 -0
- package/dist/{chunk-UZFCFYK6.js → chunk-DFSWCVRW.js} +1278 -1129
- package/dist/chunk-DFSWCVRW.js.br +0 -0
- package/dist/chunk-DFSWCVRW.js.gz +0 -0
- package/dist/{chunk-LYZQLV7R.js → chunk-FZSYLXJT.js} +783 -38
- package/dist/chunk-FZSYLXJT.js.br +0 -0
- package/dist/chunk-FZSYLXJT.js.gz +0 -0
- package/dist/{chunk-Y4VRYQQS.js → chunk-IBHIXBC5.js} +865 -844
- package/dist/chunk-IBHIXBC5.js.br +0 -0
- package/dist/chunk-IBHIXBC5.js.gz +0 -0
- package/dist/{chunk-VZNIVS3X.mjs → chunk-ICEZL4TM.mjs} +755 -38
- package/dist/chunk-ICEZL4TM.mjs.br +0 -0
- package/dist/chunk-ICEZL4TM.mjs.gz +0 -0
- package/dist/{chunk-PRXJ3J5W.mjs → chunk-INX3E37P.mjs} +53 -32
- package/dist/chunk-INX3E37P.mjs.br +0 -0
- package/dist/chunk-INX3E37P.mjs.gz +0 -0
- package/dist/{chunk-ZF5S3HHW.mjs → chunk-K6QHGABT.mjs} +2 -2
- package/dist/chunk-K6QHGABT.mjs.br +0 -0
- package/dist/chunk-K6QHGABT.mjs.gz +0 -0
- package/dist/{chunk-APAVAD2A.mjs → chunk-OOO4JL2N.mjs} +1 -0
- package/dist/chunk-OOO4JL2N.mjs.br +0 -0
- package/dist/{chunk-APAVAD2A.mjs.gz → chunk-OOO4JL2N.mjs.gz} +0 -0
- package/dist/{chunk-DX2JCSQ4.mjs → chunk-VCAQSSGD.mjs} +1 -1
- package/dist/chunk-VCAQSSGD.mjs.br +0 -0
- package/dist/chunk-VCAQSSGD.mjs.gz +0 -0
- package/dist/{chunk-6FVYG27J.js → chunk-Y4QUVWZC.js} +188 -188
- package/dist/chunk-Y4QUVWZC.js.br +0 -0
- package/dist/chunk-Y4QUVWZC.js.gz +0 -0
- package/dist/{chunk-IDV2ITXM.mjs → chunk-ZAQFTO4P.mjs} +220 -71
- package/dist/chunk-ZAQFTO4P.mjs.br +0 -0
- package/dist/chunk-ZAQFTO4P.mjs.gz +0 -0
- package/dist/i18n/de.cjs +1 -0
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +1 -0
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +1 -0
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +1 -0
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +1 -0
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +1 -0
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +1 -0
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +1 -0
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.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 +266 -3
- package/dist/index.js +105 -49
- 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 +273 -2
- package/dist/internals.js +105 -105
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +368 -1
- 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 +3 -4
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-HXGCZPUX.mjs.br +0 -0
- package/dist/AiChatPanel-HXGCZPUX.mjs.gz +0 -0
- package/dist/AiChatPanel-P2N6X2KB.js.br +0 -0
- package/dist/AiChatPanel-P2N6X2KB.js.gz +0 -0
- package/dist/Model3DScene-PIFMH2TU.js.br +0 -0
- package/dist/Model3DScene-PIFMH2TU.js.gz +0 -0
- package/dist/Model3DScene-QXMMJRV3.mjs.br +0 -0
- package/dist/Model3DScene-QXMMJRV3.mjs.gz +0 -0
- package/dist/chunk-6FVYG27J.js.br +0 -0
- package/dist/chunk-6FVYG27J.js.gz +0 -0
- package/dist/chunk-APAVAD2A.mjs.br +0 -0
- package/dist/chunk-DX2JCSQ4.mjs.br +0 -0
- package/dist/chunk-DX2JCSQ4.mjs.gz +0 -0
- package/dist/chunk-IDV2ITXM.mjs.br +0 -0
- package/dist/chunk-IDV2ITXM.mjs.gz +0 -0
- package/dist/chunk-LYZQLV7R.js.br +0 -0
- package/dist/chunk-LYZQLV7R.js.gz +0 -0
- package/dist/chunk-PRXJ3J5W.mjs.br +0 -0
- package/dist/chunk-PRXJ3J5W.mjs.gz +0 -0
- package/dist/chunk-T35BGKZG.js.br +0 -0
- package/dist/chunk-T35BGKZG.js.gz +0 -0
- package/dist/chunk-UMQV2432.js.br +0 -0
- package/dist/chunk-UZFCFYK6.js.br +0 -0
- package/dist/chunk-UZFCFYK6.js.gz +0 -0
- package/dist/chunk-VZNIVS3X.mjs.br +0 -0
- package/dist/chunk-VZNIVS3X.mjs.gz +0 -0
- package/dist/chunk-Y4VRYQQS.js.br +0 -0
- package/dist/chunk-Y4VRYQQS.js.gz +0 -0
- package/dist/chunk-ZF5S3HHW.mjs.br +0 -0
- package/dist/chunk-ZF5S3HHW.mjs.gz +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-
|
|
2
|
-
import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, Rendering3DFlagsContext, CollaborationProvider, useCollaboration, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, InlineCollaborationContext, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-
|
|
3
|
-
import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-
|
|
4
|
-
import { SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, listAutosaveSnapshots, resolveExpiredAutosaveSnapshots, deleteAutosaveSnapshot, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, buildCanvasContextMenuEntries, isCurrentLayout, themeColorSchemesEqual, observeElementHeight, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, 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, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, resolveSlidePaneClick, SLIDE_VIRTUALIZATION_THRESHOLD, buildSlidePaneContextMenuEntries, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, buildLayoutPreviewGeometry, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, 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, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, playAnimationRibbonPreview, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, hasMultipleSelectedTableCells, computeAnchoredPopupPosition, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, SLIDE_TEMPLATES, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, TRIGGER_OPTIONS, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildSlideTemplateContent, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, hasTiltData, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, updateMergeAttrsInRawXml, resolveDisplayedChartType, CHART_TYPE_OPTIONS, chartDataLabelsTogglePatch, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-VZNIVS3X.mjs';
|
|
5
|
-
import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-
|
|
6
|
-
import React4, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useId, Fragment as Fragment$1, useDeferredValue,
|
|
1
|
+
import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-VCAQSSGD.mjs';
|
|
2
|
+
import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, Rendering3DFlagsContext, CollaborationProvider, useCollaboration, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, InlineCollaborationContext, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-INX3E37P.mjs';
|
|
3
|
+
import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-K6QHGABT.mjs';
|
|
4
|
+
import { EMPTY_RESOLVED_CUSTOMIZATION, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, isFeatureEnabled, isDialogAvailable, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, isPanelVisible, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, createCustomizationController, resolveEffectiveHiddenActions, listAutosaveSnapshots, resolveExpiredAutosaveSnapshots, deleteAutosaveSnapshot, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, getDensePanelTouchTargetPx, shouldStickyActionRow, customizeOptionsTabs, VIEWER_OPTIONS_TABS, isOptionsPageVisible, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, customizeContextMenuEntries, buildContextMenuEntries, customizeCanvasContextMenuEntries, buildCanvasContextMenuEntries, isCurrentLayout, themeColorSchemesEqual, observeElementHeight, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, 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, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, customizeBackstageNav, BACKSTAGE_NAV, listBackstageRecentFiles, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, resolveSlidePaneClick, SLIDE_VIRTUALIZATION_THRESHOLD, buildSlidePaneContextMenuEntries, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, clampFlyoutPosition, buildLayoutPreviewGeometry, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, 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, customizeBackstageCards, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, playAnimationRibbonPreview, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, hasMultipleSelectedTableCells, computeAnchoredPopupPosition, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, SLIDE_TEMPLATES, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, TRIGGER_OPTIONS, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildSlideTemplateContent, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, hasTiltData, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, updateMergeAttrsInRawXml, resolveDisplayedChartType, CHART_TYPE_OPTIONS, chartDataLabelsTogglePatch, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-ICEZL4TM.mjs';
|
|
5
|
+
import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-OOO4JL2N.mjs';
|
|
6
|
+
import React4, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useLayoutEffect, useSyncExternalStore, useId, useContext, Fragment as Fragment$1, useDeferredValue, Suspense } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
9
|
import { LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuClock, LuHash, LuFileText, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuDownload, LuCheck, LuLock, LuEye, 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, LuFilter, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuRotateCw, LuBookmark } from 'react-icons/lu';
|
|
@@ -1574,6 +1574,12 @@ function DrawSection(p) {
|
|
|
1574
1574
|
] })
|
|
1575
1575
|
] });
|
|
1576
1576
|
}
|
|
1577
|
+
var ViewerCustomizationContext = createContext(
|
|
1578
|
+
EMPTY_RESOLVED_CUSTOMIZATION
|
|
1579
|
+
);
|
|
1580
|
+
function useViewerCustomizationContext() {
|
|
1581
|
+
return useContext(ViewerCustomizationContext);
|
|
1582
|
+
}
|
|
1577
1583
|
function useHostEvent(ref, type, handler) {
|
|
1578
1584
|
useEffect(() => {
|
|
1579
1585
|
const host = ref.current;
|
|
@@ -1688,7 +1694,7 @@ function AccountPage() {
|
|
|
1688
1694
|
return void 0;
|
|
1689
1695
|
});
|
|
1690
1696
|
};
|
|
1691
|
-
const version = "4.
|
|
1697
|
+
const version = "4.5.0" ;
|
|
1692
1698
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
1693
1699
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
1694
1700
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -1902,8 +1908,10 @@ function BackstageCards({
|
|
|
1902
1908
|
print: props.onPrint,
|
|
1903
1909
|
share: props.onOpenShareDialog
|
|
1904
1910
|
};
|
|
1905
|
-
const
|
|
1906
|
-
|
|
1911
|
+
const customization = useViewerCustomizationContext();
|
|
1912
|
+
const cards = customizeBackstageCards(
|
|
1913
|
+
backstageCardsFor(page).filter((card) => card.id !== "saveAsPptm" || props.hasMacros),
|
|
1914
|
+
customization
|
|
1907
1915
|
);
|
|
1908
1916
|
if (cards.length === 0) {
|
|
1909
1917
|
return null;
|
|
@@ -1943,7 +1951,10 @@ function BackstageNavIcon({ page }) {
|
|
|
1943
1951
|
}
|
|
1944
1952
|
function FileSection(p) {
|
|
1945
1953
|
const { t } = useTranslation();
|
|
1946
|
-
const [
|
|
1954
|
+
const [requestedPage, setRequestedPage] = useState("home");
|
|
1955
|
+
const nav = customizeBackstageNav(BACKSTAGE_NAV, useViewerCustomizationContext());
|
|
1956
|
+
const offered = (id) => nav.some((item) => item.id === id);
|
|
1957
|
+
const page = offered(requestedPage) ? requestedPage : offered("home") ? "home" : nav.find((item) => item.id !== "save" && item.id !== "close")?.id ?? "home";
|
|
1947
1958
|
const [query, setQuery] = useState("");
|
|
1948
1959
|
const [recent, setRecent] = useState([]);
|
|
1949
1960
|
const { isHidden } = useToolbarVisibility(p.hiddenActions);
|
|
@@ -1961,7 +1972,7 @@ function FileSection(p) {
|
|
|
1961
1972
|
p.onClose();
|
|
1962
1973
|
}
|
|
1963
1974
|
};
|
|
1964
|
-
const current =
|
|
1975
|
+
const current = nav.find((item) => item.id === page);
|
|
1965
1976
|
const title = current ? t(current.labelKey, { defaultValue: current.label }) : t("pptx.backstage.nav.home");
|
|
1966
1977
|
return /* @__PURE__ */ jsxs(
|
|
1967
1978
|
"div",
|
|
@@ -1983,15 +1994,13 @@ function FileSection(p) {
|
|
|
1983
1994
|
}
|
|
1984
1995
|
) }),
|
|
1985
1996
|
/* @__PURE__ */ jsxs("nav", { className: "flex min-h-0 flex-1 flex-col overflow-y-auto pb-2 max-md:flex-row max-md:items-center max-md:overflow-y-visible max-md:pb-0", children: [
|
|
1986
|
-
|
|
1987
|
-
(item) => !item.group && !(item.id === "export" && exportHidden)
|
|
1988
|
-
).map((item) => /* @__PURE__ */ jsxs(
|
|
1997
|
+
nav.filter((item) => !item.group && !(item.id === "export" && exportHidden)).map((item) => /* @__PURE__ */ jsxs(
|
|
1989
1998
|
"button",
|
|
1990
1999
|
{
|
|
1991
2000
|
type: "button",
|
|
1992
2001
|
"data-pptx-backstage-nav-item": true,
|
|
1993
2002
|
"aria-current": page === item.id ? "page" : void 0,
|
|
1994
|
-
onClick: () => item.id === "close" ? p.onClose() : item.id === "save" ? run(p.onSaveAsPptx) :
|
|
2003
|
+
onClick: () => item.id === "close" ? p.onClose() : item.id === "save" ? run(p.onSaveAsPptx) : setRequestedPage(item.id),
|
|
1995
2004
|
className: `${BACKSTAGE_NAV_CLASSES.row} ${page === item.id ? BACKSTAGE_NAV_CLASSES.active : BACKSTAGE_NAV_CLASSES.inactive}`,
|
|
1996
2005
|
children: [
|
|
1997
2006
|
/* @__PURE__ */ jsx(BackstageNavIcon, { page: item.id }),
|
|
@@ -2001,13 +2010,13 @@ function FileSection(p) {
|
|
|
2001
2010
|
item.id
|
|
2002
2011
|
)),
|
|
2003
2012
|
/* @__PURE__ */ jsx("div", { className: "flex-1 max-md:hidden" }),
|
|
2004
|
-
|
|
2013
|
+
nav.filter((item) => item.group).map((item) => /* @__PURE__ */ jsxs(
|
|
2005
2014
|
"button",
|
|
2006
2015
|
{
|
|
2007
2016
|
type: "button",
|
|
2008
2017
|
"data-pptx-backstage-nav-item": true,
|
|
2009
2018
|
"aria-current": page === item.id ? "page" : void 0,
|
|
2010
|
-
onClick: () => item.id === "options" && p.onOpenSettings ? run(p.onOpenSettings) :
|
|
2019
|
+
onClick: () => item.id === "options" && p.onOpenSettings ? run(p.onOpenSettings) : setRequestedPage(item.id),
|
|
2011
2020
|
className: `${BACKSTAGE_NAV_CLASSES.row} ${page === item.id ? BACKSTAGE_NAV_CLASSES.active : BACKSTAGE_NAV_CLASSES.inactive}`,
|
|
2012
2021
|
children: [
|
|
2013
2022
|
/* @__PURE__ */ jsx(BackstageNavIcon, { page: item.id }),
|
|
@@ -3181,6 +3190,7 @@ function ReviewSection(p) {
|
|
|
3181
3190
|
{
|
|
3182
3191
|
label: t("pptx.review.language"),
|
|
3183
3192
|
icon: /* @__PURE__ */ jsx(LuGlobe, {}),
|
|
3193
|
+
disabled: !p.onSetLanguage,
|
|
3184
3194
|
onClick: p.onSetLanguage
|
|
3185
3195
|
}
|
|
3186
3196
|
)
|
|
@@ -5491,8 +5501,9 @@ function EditingSection(p) {
|
|
|
5491
5501
|
}
|
|
5492
5502
|
function HelpSection(p) {
|
|
5493
5503
|
const { t } = useTranslation();
|
|
5504
|
+
const showSettings = isDialogAvailable(useViewerCustomizationContext(), "options");
|
|
5494
5505
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5495
|
-
/* @__PURE__ */ jsx(
|
|
5506
|
+
showSettings && /* @__PURE__ */ jsx(
|
|
5496
5507
|
"button",
|
|
5497
5508
|
{
|
|
5498
5509
|
type: "button",
|
|
@@ -5823,8 +5834,23 @@ function ModeSwitcher({
|
|
|
5823
5834
|
}
|
|
5824
5835
|
);
|
|
5825
5836
|
}
|
|
5837
|
+
var EXPORT_CARD_OF = {
|
|
5838
|
+
png: "png",
|
|
5839
|
+
pdf: "pdf",
|
|
5840
|
+
video: "video",
|
|
5841
|
+
gif: "gif",
|
|
5842
|
+
copyImg: "copyImage"
|
|
5843
|
+
};
|
|
5826
5844
|
function OverflowMenu(p) {
|
|
5827
5845
|
const { t } = useTranslation();
|
|
5846
|
+
const customization = useViewerCustomizationContext();
|
|
5847
|
+
const offered = (k) => {
|
|
5848
|
+
const card = EXPORT_CARD_OF[k];
|
|
5849
|
+
if (card) {
|
|
5850
|
+
return !customization.hiddenBackstageCards.has(card);
|
|
5851
|
+
}
|
|
5852
|
+
return k !== "print" || isDialogAvailable(customization, "print");
|
|
5853
|
+
};
|
|
5828
5854
|
const ovAct = (k) => {
|
|
5829
5855
|
p.onSetOverflowMenuOpen(false);
|
|
5830
5856
|
({
|
|
@@ -5872,7 +5898,7 @@ function OverflowMenu(p) {
|
|
|
5872
5898
|
onClick: () => p.onSetOverflowMenuOpen(false)
|
|
5873
5899
|
}
|
|
5874
5900
|
),
|
|
5875
|
-
/* @__PURE__ */ jsx("div", { className: "absolute right-0 top-full mt-1 z-50 w-44 rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: OV.filter((o) => o.k !== "pptm" || p.hasMacros).map(
|
|
5901
|
+
/* @__PURE__ */ jsx("div", { className: "absolute right-0 top-full mt-1 z-50 w-44 rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: OV.filter((o) => (o.k !== "pptm" || p.hasMacros) && offered(o.k)).map(
|
|
5876
5902
|
(o) => o.k.startsWith("---") ? /* @__PURE__ */ jsx("div", { className: "my-1 border-t border-border/60" }, o.k) : /* @__PURE__ */ jsxs(
|
|
5877
5903
|
"button",
|
|
5878
5904
|
{
|
|
@@ -5901,9 +5927,15 @@ function ToolbarPrimaryRow(p) {
|
|
|
5901
5927
|
onToggleInspector
|
|
5902
5928
|
} = p;
|
|
5903
5929
|
const collab = useCollaboration();
|
|
5930
|
+
const customization = useViewerCustomizationContext();
|
|
5931
|
+
const showSlidesToggle = isPanelVisible(customization, "slidesPane");
|
|
5932
|
+
const showInspectorToggle = isPanelVisible(customization, "inspector");
|
|
5933
|
+
const showComments = isFeatureEnabled(customization, "comments");
|
|
5934
|
+
const showShare = isDialogAvailable(customization, "share");
|
|
5935
|
+
const showSettings = isDialogAvailable(customization, "options");
|
|
5904
5936
|
const qab = "p-1 max-md:p-2 max-md:min-h-[40px] max-md:min-w-[40px] rounded-sm transition-colors hover:bg-accent/60 disabled:opacity-40 disabled:cursor-not-allowed active:scale-90 active:opacity-70";
|
|
5905
5937
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-0.5 max-md:gap-0 px-1.5 py-0.5 max-md:px-1", children: [
|
|
5906
|
-
mode !== "present" && /* @__PURE__ */ jsx(
|
|
5938
|
+
mode !== "present" && showSlidesToggle && /* @__PURE__ */ jsx(
|
|
5907
5939
|
"button",
|
|
5908
5940
|
{
|
|
5909
5941
|
type: "button",
|
|
@@ -5915,7 +5947,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
5915
5947
|
}
|
|
5916
5948
|
),
|
|
5917
5949
|
/* @__PURE__ */ jsx("div", { className: "flex-1 min-w-2 max-md:min-w-1" }),
|
|
5918
|
-
(mode === "edit" || mode === "master") && /* @__PURE__ */ jsxs(
|
|
5950
|
+
(mode === "edit" || mode === "master") && showComments && /* @__PURE__ */ jsxs(
|
|
5919
5951
|
"button",
|
|
5920
5952
|
{
|
|
5921
5953
|
type: "button",
|
|
@@ -5933,7 +5965,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
5933
5965
|
]
|
|
5934
5966
|
}
|
|
5935
5967
|
),
|
|
5936
|
-
collab && (collab.status === "connected" || collab.status === "connecting") && collab.remoteUsers.length > 0 && /* @__PURE__ */ jsx(
|
|
5968
|
+
collab && showShare && (collab.status === "connected" || collab.status === "connecting") && collab.remoteUsers.length > 0 && /* @__PURE__ */ jsx(
|
|
5937
5969
|
"button",
|
|
5938
5970
|
{
|
|
5939
5971
|
type: "button",
|
|
@@ -5982,7 +6014,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
5982
6014
|
}
|
|
5983
6015
|
),
|
|
5984
6016
|
sep,
|
|
5985
|
-
(mode === "edit" || mode === "master") && /* @__PURE__ */ jsx(
|
|
6017
|
+
(mode === "edit" || mode === "master") && showInspectorToggle && /* @__PURE__ */ jsx(
|
|
5986
6018
|
"button",
|
|
5987
6019
|
{
|
|
5988
6020
|
type: "button",
|
|
@@ -6004,7 +6036,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
6004
6036
|
children: /* @__PURE__ */ jsx(LuSparkles, { className: ic })
|
|
6005
6037
|
}
|
|
6006
6038
|
),
|
|
6007
|
-
/* @__PURE__ */ jsx(
|
|
6039
|
+
showSettings && /* @__PURE__ */ jsx(
|
|
6008
6040
|
"button",
|
|
6009
6041
|
{
|
|
6010
6042
|
type: "button",
|
|
@@ -6033,6 +6065,7 @@ function Toolbar(p) {
|
|
|
6033
6065
|
const { t } = useTranslation();
|
|
6034
6066
|
const { isTabVisible } = useToolbarVisibility(p.hiddenActions);
|
|
6035
6067
|
const viewerOptions = useViewerOptionsContext();
|
|
6068
|
+
const customization = useViewerCustomizationContext();
|
|
6036
6069
|
if (isNarrowViewport && mode !== "present") {
|
|
6037
6070
|
return /* @__PURE__ */ jsx(MobileToolbar, { ...p });
|
|
6038
6071
|
}
|
|
@@ -6108,7 +6141,7 @@ function Toolbar(p) {
|
|
|
6108
6141
|
]
|
|
6109
6142
|
}
|
|
6110
6143
|
),
|
|
6111
|
-
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(
|
|
6144
|
+
showRibbon && viewerOptions.quickAccess.position === "below" && isPanelVisible(customization, "quickAccessToolbar") && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5 border-b border-border/60 px-2 py-1", children: /* @__PURE__ */ jsx(
|
|
6112
6145
|
TitleBarQuickExtras,
|
|
6113
6146
|
{
|
|
6114
6147
|
quickAccess: viewerOptions.quickAccess,
|
|
@@ -9288,6 +9321,7 @@ function contextMenuContext(props) {
|
|
|
9288
9321
|
table: tableCell(props),
|
|
9289
9322
|
hasMultiSelection: Boolean(props.hasMultiSelection),
|
|
9290
9323
|
selectionGroupable: props.selectionGroupable,
|
|
9324
|
+
hasClipboard: props.hasClipboard,
|
|
9291
9325
|
// Both AI entries appear together or not at all, so a viewer that wired
|
|
9292
9326
|
// only one of them does not produce a menu the other bindings cannot match.
|
|
9293
9327
|
aiEnabled: Boolean(props.onAskAi) && Boolean(props.onFixAi)
|
|
@@ -9361,10 +9395,36 @@ function ContextMenuItem({
|
|
|
9361
9395
|
function ContextMenuSeparator() {
|
|
9362
9396
|
return /* @__PURE__ */ jsx("div", { role: "separator", "aria-orientation": "horizontal", className: "my-1 border-t border-border" });
|
|
9363
9397
|
}
|
|
9398
|
+
function useClampedMenuPosition(x, y) {
|
|
9399
|
+
const [size, setSize] = useState({ width: 0, height: 0 });
|
|
9400
|
+
const ref = useCallback((node) => {
|
|
9401
|
+
if (!node) {
|
|
9402
|
+
return;
|
|
9403
|
+
}
|
|
9404
|
+
const rect = node.getBoundingClientRect();
|
|
9405
|
+
setSize(
|
|
9406
|
+
(previous) => previous.width === rect.width && previous.height === rect.height ? previous : { width: rect.width, height: rect.height }
|
|
9407
|
+
);
|
|
9408
|
+
}, []);
|
|
9409
|
+
const { left, top } = clampFlyoutPosition({
|
|
9410
|
+
x,
|
|
9411
|
+
y,
|
|
9412
|
+
width: size.width,
|
|
9413
|
+
height: size.height,
|
|
9414
|
+
viewportWidth: typeof window === "undefined" ? 0 : window.innerWidth,
|
|
9415
|
+
viewportHeight: typeof window === "undefined" ? 0 : window.innerHeight
|
|
9416
|
+
});
|
|
9417
|
+
return { ref, left, top };
|
|
9418
|
+
}
|
|
9364
9419
|
function ContextMenu(props) {
|
|
9365
9420
|
const { contextMenuState, mode, onClose } = props;
|
|
9366
9421
|
const { t } = useTranslation();
|
|
9422
|
+
const customization = useViewerCustomizationContext();
|
|
9367
9423
|
const open = Boolean(contextMenuState) && mode === "edit";
|
|
9424
|
+
const menuPosition = useClampedMenuPosition(
|
|
9425
|
+
contextMenuState?.x ?? 0,
|
|
9426
|
+
contextMenuState?.y ?? 0
|
|
9427
|
+
);
|
|
9368
9428
|
useEffect(() => {
|
|
9369
9429
|
if (!open) {
|
|
9370
9430
|
return;
|
|
@@ -9382,7 +9442,13 @@ function ContextMenu(props) {
|
|
|
9382
9442
|
return null;
|
|
9383
9443
|
}
|
|
9384
9444
|
const handlers = contextMenuHandlers(props);
|
|
9385
|
-
const entries =
|
|
9445
|
+
const entries = customizeContextMenuEntries(
|
|
9446
|
+
buildContextMenuEntries(contextMenuContext(props)),
|
|
9447
|
+
customization
|
|
9448
|
+
);
|
|
9449
|
+
if (entries.length === 0) {
|
|
9450
|
+
return null;
|
|
9451
|
+
}
|
|
9386
9452
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9387
9453
|
/* @__PURE__ */ jsx(
|
|
9388
9454
|
"div",
|
|
@@ -9398,13 +9464,14 @@ function ContextMenu(props) {
|
|
|
9398
9464
|
/* @__PURE__ */ jsx(
|
|
9399
9465
|
"div",
|
|
9400
9466
|
{
|
|
9467
|
+
ref: menuPosition.ref,
|
|
9401
9468
|
"data-pptx-context-menu": "true",
|
|
9402
9469
|
role: "menu",
|
|
9403
9470
|
"aria-label": t("pptx.contextMenu.ariaLabel"),
|
|
9404
9471
|
className: "fixed z-[120] min-w-[180px] rounded border border-border bg-popover shadow-2xl py-1.5 text-xs text-foreground",
|
|
9405
9472
|
style: {
|
|
9406
|
-
left:
|
|
9407
|
-
top:
|
|
9473
|
+
left: menuPosition.left,
|
|
9474
|
+
top: menuPosition.top
|
|
9408
9475
|
},
|
|
9409
9476
|
children: entries.map((entry) => {
|
|
9410
9477
|
const run = handlers[entry.id];
|
|
@@ -9452,7 +9519,12 @@ function canvasContextMenuHandlers(props) {
|
|
|
9452
9519
|
function CanvasContextMenu(props) {
|
|
9453
9520
|
const { canvasContextMenuState, mode, onClose } = props;
|
|
9454
9521
|
const { t } = useTranslation();
|
|
9522
|
+
const customization = useViewerCustomizationContext();
|
|
9455
9523
|
const open = Boolean(canvasContextMenuState) && mode === "edit";
|
|
9524
|
+
const menuPosition = useClampedMenuPosition(
|
|
9525
|
+
canvasContextMenuState?.x ?? 0,
|
|
9526
|
+
canvasContextMenuState?.y ?? 0
|
|
9527
|
+
);
|
|
9456
9528
|
useEffect(() => {
|
|
9457
9529
|
if (!open) {
|
|
9458
9530
|
return;
|
|
@@ -9470,7 +9542,13 @@ function CanvasContextMenu(props) {
|
|
|
9470
9542
|
return null;
|
|
9471
9543
|
}
|
|
9472
9544
|
const handlers = canvasContextMenuHandlers(props);
|
|
9473
|
-
const entries =
|
|
9545
|
+
const entries = customizeCanvasContextMenuEntries(
|
|
9546
|
+
buildCanvasContextMenuEntries(canvasContextMenuContext(props)),
|
|
9547
|
+
customization
|
|
9548
|
+
);
|
|
9549
|
+
if (entries.length === 0) {
|
|
9550
|
+
return null;
|
|
9551
|
+
}
|
|
9474
9552
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9475
9553
|
/* @__PURE__ */ jsx(
|
|
9476
9554
|
"div",
|
|
@@ -9486,13 +9564,14 @@ function CanvasContextMenu(props) {
|
|
|
9486
9564
|
/* @__PURE__ */ jsx(
|
|
9487
9565
|
"div",
|
|
9488
9566
|
{
|
|
9567
|
+
ref: menuPosition.ref,
|
|
9489
9568
|
"data-pptx-canvas-context-menu": "true",
|
|
9490
9569
|
role: "menu",
|
|
9491
9570
|
"aria-label": t("pptx.canvasContextMenu.ariaLabel"),
|
|
9492
9571
|
className: "fixed z-[120] min-w-[180px] rounded border border-border bg-popover shadow-2xl py-1.5 text-xs text-foreground",
|
|
9493
9572
|
style: {
|
|
9494
|
-
left:
|
|
9495
|
-
top:
|
|
9573
|
+
left: menuPosition.left,
|
|
9574
|
+
top: menuPosition.top
|
|
9496
9575
|
},
|
|
9497
9576
|
children: entries.map((entry) => {
|
|
9498
9577
|
const run = handlers[entry.id];
|
|
@@ -30982,9 +31061,11 @@ function ViewerBottomPanels({
|
|
|
30982
31061
|
onNotesHeightChange
|
|
30983
31062
|
}) {
|
|
30984
31063
|
const { isHidden } = useToolbarVisibility(hiddenActions);
|
|
31064
|
+
const customization = useViewerCustomizationContext();
|
|
31065
|
+
const showNotes = isPanelVisible(customization, "notes");
|
|
30985
31066
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
30986
|
-
onResizeBottom && !isSlideNotesCollapsed && /* @__PURE__ */ jsx(ResizeHandle, { direction: "vertical", onResize: onResizeBottom }),
|
|
30987
|
-
/* @__PURE__ */ jsx(
|
|
31067
|
+
showNotes && onResizeBottom && !isSlideNotesCollapsed && /* @__PURE__ */ jsx(ResizeHandle, { direction: "vertical", onResize: onResizeBottom }),
|
|
31068
|
+
showNotes && /* @__PURE__ */ jsx(
|
|
30988
31069
|
SlideNotesPanel,
|
|
30989
31070
|
{
|
|
30990
31071
|
activeSlide,
|
|
@@ -30998,7 +31079,7 @@ function ViewerBottomPanels({
|
|
|
30998
31079
|
onHeightChange: onNotesHeightChange
|
|
30999
31080
|
}
|
|
31000
31081
|
),
|
|
31001
|
-
!hideStatusBar && /* @__PURE__ */ jsx(
|
|
31082
|
+
!hideStatusBar && isPanelVisible(customization, "statusBar") && /* @__PURE__ */ jsx(
|
|
31002
31083
|
StatusBar,
|
|
31003
31084
|
{
|
|
31004
31085
|
slideCount,
|
|
@@ -31016,7 +31097,7 @@ function ViewerBottomPanels({
|
|
|
31016
31097
|
onToggleSlideSorter,
|
|
31017
31098
|
collaborationSlot,
|
|
31018
31099
|
hideZoomControls: isHidden("zoom"),
|
|
31019
|
-
hideNotesToggle: isHidden("notes"),
|
|
31100
|
+
hideNotesToggle: isHidden("notes") || !showNotes,
|
|
31020
31101
|
hideFullscreenToggle: isHidden("fullscreen")
|
|
31021
31102
|
}
|
|
31022
31103
|
)
|
|
@@ -31177,6 +31258,7 @@ function TitleBar(p) {
|
|
|
31177
31258
|
const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
|
|
31178
31259
|
const { isHidden } = useToolbarVisibility(p.hiddenActions);
|
|
31179
31260
|
const quickAccess = useViewerOptionsContext().quickAccess;
|
|
31261
|
+
const showQuickAccess = isPanelVisible(useViewerCustomizationContext(), "quickAccessToolbar");
|
|
31180
31262
|
const [searchQuery, setSearchQuery] = useState("");
|
|
31181
31263
|
const [searchFocused, setSearchFocused] = useState(false);
|
|
31182
31264
|
const searchRef = useRef(null);
|
|
@@ -31252,7 +31334,7 @@ function TitleBar(p) {
|
|
|
31252
31334
|
/* @__PURE__ */ jsx("span", { className: TITLE_BAR_CLASSES.autosaveLabel, children: t(p.autosaveEnabled ? "pptx.titleBar.autoSaveOn" : "pptx.titleBar.autoSaveOff") })
|
|
31253
31335
|
] }),
|
|
31254
31336
|
/* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator }),
|
|
31255
|
-
p.onSave && /* @__PURE__ */ jsx(
|
|
31337
|
+
showQuickAccess && p.onSave && /* @__PURE__ */ jsx(
|
|
31256
31338
|
"button",
|
|
31257
31339
|
{
|
|
31258
31340
|
type: "button",
|
|
@@ -31263,7 +31345,7 @@ function TitleBar(p) {
|
|
|
31263
31345
|
children: /* @__PURE__ */ jsx(LuSave, { className: "w-3.5 h-3.5" })
|
|
31264
31346
|
}
|
|
31265
31347
|
),
|
|
31266
|
-
!isHidden("undo") && /* @__PURE__ */ jsx(
|
|
31348
|
+
showQuickAccess && !isHidden("undo") && /* @__PURE__ */ jsx(
|
|
31267
31349
|
"button",
|
|
31268
31350
|
{
|
|
31269
31351
|
type: "button",
|
|
@@ -31275,7 +31357,7 @@ function TitleBar(p) {
|
|
|
31275
31357
|
children: /* @__PURE__ */ jsx(LuUndo, { className: "w-3.5 h-3.5" })
|
|
31276
31358
|
}
|
|
31277
31359
|
),
|
|
31278
|
-
!isHidden("redo") && /* @__PURE__ */ jsx(
|
|
31360
|
+
showQuickAccess && !isHidden("redo") && /* @__PURE__ */ jsx(
|
|
31279
31361
|
"button",
|
|
31280
31362
|
{
|
|
31281
31363
|
type: "button",
|
|
@@ -31287,8 +31369,8 @@ function TitleBar(p) {
|
|
|
31287
31369
|
children: /* @__PURE__ */ jsx(LuRedo, { className: "w-3.5 h-3.5" })
|
|
31288
31370
|
}
|
|
31289
31371
|
),
|
|
31290
|
-
quickAccess.position !== "below" && /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
31291
|
-
/* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator })
|
|
31372
|
+
showQuickAccess && quickAccess.position !== "below" && /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
|
|
31373
|
+
showQuickAccess && /* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator })
|
|
31292
31374
|
] }),
|
|
31293
31375
|
/* @__PURE__ */ jsxs("span", { className: TITLE_BAR_CLASSES.fileGroup, children: [
|
|
31294
31376
|
/* @__PURE__ */ jsx("span", { className: TITLE_BAR_CLASSES.fileName, children: p.fileName || t(TITLE_BAR_DEFAULT_FILE_KEY) }),
|
|
@@ -31414,6 +31496,7 @@ function ViewerToolbarSection(props) {
|
|
|
31414
31496
|
onSetShowGuides
|
|
31415
31497
|
} = props;
|
|
31416
31498
|
const { t } = useTranslation();
|
|
31499
|
+
const customization = useViewerCustomizationContext();
|
|
31417
31500
|
const handleAddAnimation = useCallback(
|
|
31418
31501
|
(preset, group) => {
|
|
31419
31502
|
if (!selectedElement || !activeSlide) {
|
|
@@ -31659,7 +31742,7 @@ function ViewerToolbarSection(props) {
|
|
|
31659
31742
|
[onSetMode, onPresentFromBeginning, printHandlers, exportHandlers, slideOps, s, zoom]
|
|
31660
31743
|
);
|
|
31661
31744
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31662
|
-
!dialogs.isNarrowViewport && /* @__PURE__ */ jsx(
|
|
31745
|
+
!dialogs.isNarrowViewport && isPanelVisible(customization, "titleBar") && /* @__PURE__ */ jsx(
|
|
31663
31746
|
TitleBar,
|
|
31664
31747
|
{
|
|
31665
31748
|
mode,
|
|
@@ -32340,6 +32423,7 @@ function ViewerDialogGroup(props) {
|
|
|
32340
32423
|
onKeepAnnotations,
|
|
32341
32424
|
onDiscardAnnotations
|
|
32342
32425
|
} = props;
|
|
32426
|
+
const printAvailable = isDialogAvailable(useViewerCustomizationContext(), "print");
|
|
32343
32427
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
32344
32428
|
/* @__PURE__ */ jsx(
|
|
32345
32429
|
VersionHistoryPanel,
|
|
@@ -32480,7 +32564,7 @@ function ViewerDialogGroup(props) {
|
|
|
32480
32564
|
/* @__PURE__ */ jsx(
|
|
32481
32565
|
PrintDialog,
|
|
32482
32566
|
{
|
|
32483
|
-
open: printHandlers.isPrintDialogOpen,
|
|
32567
|
+
open: printHandlers.isPrintDialogOpen && printAvailable,
|
|
32484
32568
|
onClose: () => printHandlers.setIsPrintDialogOpen(false),
|
|
32485
32569
|
onPrint: printHandlers.handlePrintSvg,
|
|
32486
32570
|
slides,
|
|
@@ -33157,6 +33241,7 @@ ${url}`)) {
|
|
|
33157
33241
|
onMouseDown: handleElementMouseDown,
|
|
33158
33242
|
onContextMenu: canvasHandlers.handleElementContextMenu,
|
|
33159
33243
|
onCanvasMouseDown: canvasHandlers.handleCanvasMouseDown,
|
|
33244
|
+
onCanvasContextMenu: canvasHandlers.handleCanvasContextMenu,
|
|
33160
33245
|
onResizePointerDown: canvasHandlers.handleResizePointerDown,
|
|
33161
33246
|
onAdjustmentPointerDown: canvasHandlers.handleAdjustmentPointerDown,
|
|
33162
33247
|
onRotate: canvasHandlers.handleRotate,
|
|
@@ -33335,7 +33420,7 @@ function useTableStyleMapHandlers(input) {
|
|
|
33335
33420
|
var AiChatPanel = lazy(async () => {
|
|
33336
33421
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
33337
33422
|
import('@ai-sdk/react'),
|
|
33338
|
-
import('./AiChatPanel-
|
|
33423
|
+
import('./AiChatPanel-L7DBCWE3.mjs')
|
|
33339
33424
|
]);
|
|
33340
33425
|
function BoundAiChatPanel(props) {
|
|
33341
33426
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -34258,15 +34343,17 @@ function ViewerSidePanels(props) {
|
|
|
34258
34343
|
setTableStylesToDelete: s.setTableStylesToDelete
|
|
34259
34344
|
});
|
|
34260
34345
|
const effectiveSlide = mode === "master" ? masterPseudoSlide : activeSlide;
|
|
34346
|
+
const customization = useViewerCustomizationContext();
|
|
34347
|
+
const inspectorOpen = (mode === "edit" || mode === "master") && s.isInspectorPaneOpen && isPanelVisible(customization, "inspector");
|
|
34261
34348
|
const currentBuiltInTheme = BUILT_IN_THEMES.find(
|
|
34262
34349
|
(candidate) => themeColorSchemesEqual(s.theme?.colorScheme, candidate.colorScheme)
|
|
34263
34350
|
) ?? null;
|
|
34264
34351
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
34265
|
-
|
|
34352
|
+
inspectorOpen && onResizeRight && /* @__PURE__ */ jsx(ResizeHandle, { direction: "horizontal", onResize: onResizeRight }),
|
|
34266
34353
|
/* @__PURE__ */ jsx(
|
|
34267
34354
|
ViewerInspector,
|
|
34268
34355
|
{
|
|
34269
|
-
isOpen:
|
|
34356
|
+
isOpen: inspectorOpen,
|
|
34270
34357
|
canEdit,
|
|
34271
34358
|
mode,
|
|
34272
34359
|
activeSlide: effectiveSlide,
|
|
@@ -34611,6 +34698,7 @@ function ViewerMainContent(props) {
|
|
|
34611
34698
|
tableEditorState: state.tableEditorState,
|
|
34612
34699
|
hasMultiSelection: state.effectiveSelectedIds.length > 1,
|
|
34613
34700
|
selectionGroupable: manipulation.selectionGroupable,
|
|
34701
|
+
hasClipboard: Boolean(state.clipboardPayload),
|
|
34614
34702
|
onAction: manipulation.handleContextMenuAction,
|
|
34615
34703
|
onInsertTableRow: tableOps.handleInsertTableRow,
|
|
34616
34704
|
onDeleteTableRow: tableOps.handleDeleteTableRow,
|
|
@@ -35464,10 +35552,11 @@ function readValue(options, control) {
|
|
|
35464
35552
|
function InfoTip({ text }) {
|
|
35465
35553
|
return /* @__PURE__ */ jsx("span", { title: text, className: "inline-flex cursor-help align-middle", children: /* @__PURE__ */ jsx(LuInfo, { className: "ml-1 h-3.5 w-3.5 text-primary/70", "aria-label": text }) });
|
|
35466
35554
|
}
|
|
35555
|
+
var IGNORE_CHANGE = () => void 0;
|
|
35467
35556
|
function ControlRow({
|
|
35468
35557
|
control,
|
|
35469
35558
|
options,
|
|
35470
|
-
onOptionChange
|
|
35559
|
+
onOptionChange: emitChange
|
|
35471
35560
|
}) {
|
|
35472
35561
|
const { t } = useTranslation();
|
|
35473
35562
|
const { viewportWidth } = useIsMobile();
|
|
@@ -35477,6 +35566,9 @@ function ControlRow({
|
|
|
35477
35566
|
const info = control.infoKey ? /* @__PURE__ */ jsx(InfoTip, { text: t(control.infoKey) }) : null;
|
|
35478
35567
|
const rowClass = cn("flex items-center justify-between gap-3 py-1.5", control.indent && "pl-6");
|
|
35479
35568
|
const rowStyle = { minHeight: fieldMinHeight };
|
|
35569
|
+
const locked = control.readOnly === true;
|
|
35570
|
+
const lockedTitle = locked ? t("pptx.options.lockedByHost") : void 0;
|
|
35571
|
+
const onOptionChange = locked ? IGNORE_CHANGE : emitChange;
|
|
35480
35572
|
if (control.kind === "toggle") {
|
|
35481
35573
|
return /* @__PURE__ */ jsxs("label", { className: cn(rowClass, "cursor-pointer select-none"), style: rowStyle, children: [
|
|
35482
35574
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
|
|
@@ -35488,6 +35580,8 @@ function ControlRow({
|
|
|
35488
35580
|
{
|
|
35489
35581
|
checked: value === true,
|
|
35490
35582
|
"aria-label": label,
|
|
35583
|
+
disabled: locked,
|
|
35584
|
+
title: lockedTitle,
|
|
35491
35585
|
onChange: (event) => onOptionChange(
|
|
35492
35586
|
control.group,
|
|
35493
35587
|
control.key,
|
|
@@ -35507,6 +35601,8 @@ function ControlRow({
|
|
|
35507
35601
|
WebSelect,
|
|
35508
35602
|
{
|
|
35509
35603
|
"aria-label": label,
|
|
35604
|
+
disabled: locked,
|
|
35605
|
+
title: lockedTitle,
|
|
35510
35606
|
style: { minHeight: fieldMinHeight },
|
|
35511
35607
|
value: typeof value === "string" ? value : "",
|
|
35512
35608
|
onChange: (event) => onOptionChange(
|
|
@@ -35531,6 +35627,8 @@ function ControlRow({
|
|
|
35531
35627
|
{
|
|
35532
35628
|
type: "number",
|
|
35533
35629
|
"aria-label": label,
|
|
35630
|
+
disabled: locked,
|
|
35631
|
+
title: lockedTitle,
|
|
35534
35632
|
style: { minHeight: fieldMinHeight },
|
|
35535
35633
|
className: "w-20 rounded border border-border bg-background px-2 py-1 text-right text-xs text-foreground",
|
|
35536
35634
|
min: control.min,
|
|
@@ -35559,6 +35657,8 @@ function ControlRow({
|
|
|
35559
35657
|
{
|
|
35560
35658
|
type: "text",
|
|
35561
35659
|
"aria-label": label,
|
|
35660
|
+
disabled: locked,
|
|
35661
|
+
title: lockedTitle,
|
|
35562
35662
|
style: { minHeight: fieldMinHeight },
|
|
35563
35663
|
className: "w-48 max-w-[55%] rounded border border-border bg-background px-2 py-1 text-xs text-foreground",
|
|
35564
35664
|
maxLength: control.maxLength,
|
|
@@ -36070,6 +36170,7 @@ function SettingsDialog({
|
|
|
36070
36170
|
}) {
|
|
36071
36171
|
const [activeTabId, setActiveTabId] = useState("general");
|
|
36072
36172
|
const { t } = useTranslation();
|
|
36173
|
+
const customization = useViewerCustomizationContext();
|
|
36073
36174
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
36074
36175
|
const { viewportWidth, viewportHeight } = useIsMobile();
|
|
36075
36176
|
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
@@ -36108,10 +36209,14 @@ function SettingsDialog({
|
|
|
36108
36209
|
if (!isOpen) {
|
|
36109
36210
|
return null;
|
|
36110
36211
|
}
|
|
36111
|
-
const
|
|
36212
|
+
const tabs = customizeOptionsTabs(VIEWER_OPTIONS_TABS, customization);
|
|
36213
|
+
const showAiTab = Boolean(aiEnabled) && isOptionsPageVisible(customization, AI_TAB_ID);
|
|
36214
|
+
const activeTab = tabs.find((tab) => tab.id === activeTabId) ?? tabs[0];
|
|
36215
|
+
const aiActive = activeTabId === AI_TAB_ID && showAiTab;
|
|
36112
36216
|
if (!activeTab) {
|
|
36113
36217
|
return null;
|
|
36114
36218
|
}
|
|
36219
|
+
const currentTabId = aiActive ? AI_TAB_ID : activeTab.id;
|
|
36115
36220
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36116
36221
|
/* @__PURE__ */ jsx(
|
|
36117
36222
|
"button",
|
|
@@ -36168,31 +36273,31 @@ function SettingsDialog({
|
|
|
36168
36273
|
"aria-label": t("pptx.options.title"),
|
|
36169
36274
|
className: "w-44 shrink-0 space-y-0.5 overflow-y-auto border-r border-border/60 p-2 max-md:flex max-md:w-full max-md:space-y-0 max-md:gap-1 max-md:overflow-x-auto max-md:border-b max-md:border-r-0",
|
|
36170
36275
|
children: [
|
|
36171
|
-
|
|
36276
|
+
tabs.map((tab) => /* @__PURE__ */ jsx(
|
|
36172
36277
|
"button",
|
|
36173
36278
|
{
|
|
36174
36279
|
type: "button",
|
|
36175
36280
|
onClick: () => setActiveTabId(tab.id),
|
|
36176
|
-
"aria-current":
|
|
36281
|
+
"aria-current": currentTabId === tab.id,
|
|
36177
36282
|
style: navBtnStyle,
|
|
36178
36283
|
className: cn(
|
|
36179
36284
|
"flex w-full items-center whitespace-nowrap rounded px-3 py-2 text-left text-sm transition-colors max-md:w-auto",
|
|
36180
|
-
|
|
36285
|
+
currentTabId === tab.id ? "bg-primary/10 font-medium text-primary" : "text-foreground hover:bg-accent"
|
|
36181
36286
|
),
|
|
36182
36287
|
children: t(tab.labelKey)
|
|
36183
36288
|
},
|
|
36184
36289
|
tab.id
|
|
36185
36290
|
)),
|
|
36186
|
-
|
|
36291
|
+
showAiTab && /* @__PURE__ */ jsx(
|
|
36187
36292
|
"button",
|
|
36188
36293
|
{
|
|
36189
36294
|
type: "button",
|
|
36190
36295
|
onClick: () => setActiveTabId(AI_TAB_ID),
|
|
36191
|
-
"aria-current":
|
|
36296
|
+
"aria-current": aiActive,
|
|
36192
36297
|
style: navBtnStyle,
|
|
36193
36298
|
className: cn(
|
|
36194
36299
|
"flex w-full items-center whitespace-nowrap rounded px-3 py-2 text-left text-sm transition-colors max-md:w-auto",
|
|
36195
|
-
|
|
36300
|
+
aiActive ? "bg-primary/10 font-medium text-primary" : "text-foreground hover:bg-accent"
|
|
36196
36301
|
),
|
|
36197
36302
|
children: t("pptx.ai.settingsSectionTitle")
|
|
36198
36303
|
}
|
|
@@ -36200,7 +36305,7 @@ function SettingsDialog({
|
|
|
36200
36305
|
]
|
|
36201
36306
|
}
|
|
36202
36307
|
),
|
|
36203
|
-
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-4", children:
|
|
36308
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-4", children: aiActive ? /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
36204
36309
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground", children: t("pptx.ai.settingsSectionTitle") }),
|
|
36205
36310
|
/* @__PURE__ */ jsx(SettingsAiTab, { store: chatStore })
|
|
36206
36311
|
] }) : activeTab.custom === "language" ? /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
@@ -36733,6 +36838,41 @@ function useRunProgramNoticesState() {
|
|
|
36733
36838
|
}, []);
|
|
36734
36839
|
return { notices, addNotice, dismiss, dismissAll };
|
|
36735
36840
|
}
|
|
36841
|
+
function useViewerCustomization(customization, legacyHiddenActions, optionsStore) {
|
|
36842
|
+
const controllerRef = useRef(null);
|
|
36843
|
+
controllerRef.current ??= createCustomizationController(customization);
|
|
36844
|
+
const controller = controllerRef.current;
|
|
36845
|
+
const appliedRef = useRef(customization);
|
|
36846
|
+
useLayoutEffect(() => {
|
|
36847
|
+
if (appliedRef.current === customization) {
|
|
36848
|
+
return;
|
|
36849
|
+
}
|
|
36850
|
+
appliedRef.current = customization;
|
|
36851
|
+
controller.api.setCustomization(customization ?? {});
|
|
36852
|
+
}, [controller, customization]);
|
|
36853
|
+
const resolved = useSyncExternalStore(
|
|
36854
|
+
controller.subscribe,
|
|
36855
|
+
controller.getResolved,
|
|
36856
|
+
controller.getResolved
|
|
36857
|
+
);
|
|
36858
|
+
const appliedConstraintsRef = useRef(null);
|
|
36859
|
+
useLayoutEffect(() => {
|
|
36860
|
+
const key = JSON.stringify([resolved.lockedSettings, resolved.defaultSettings]);
|
|
36861
|
+
if (appliedConstraintsRef.current === key) {
|
|
36862
|
+
return;
|
|
36863
|
+
}
|
|
36864
|
+
appliedConstraintsRef.current = key;
|
|
36865
|
+
optionsStore.setConstraints({
|
|
36866
|
+
locked: resolved.lockedSettings,
|
|
36867
|
+
defaults: resolved.defaultSettings
|
|
36868
|
+
});
|
|
36869
|
+
}, [optionsStore, resolved]);
|
|
36870
|
+
const hiddenActions = useMemo(
|
|
36871
|
+
() => resolveEffectiveHiddenActions(resolved, legacyHiddenActions),
|
|
36872
|
+
[resolved, legacyHiddenActions]
|
|
36873
|
+
);
|
|
36874
|
+
return { resolved, api: controller.api, hiddenActions };
|
|
36875
|
+
}
|
|
36736
36876
|
var PowerPointViewer = forwardRef(
|
|
36737
36877
|
// oxlint-disable-next-line prefer-arrow-callback -- named fn gives the forwardRef component its displayName
|
|
36738
36878
|
function PowerPointViewer2(props, ref) {
|
|
@@ -36771,8 +36911,9 @@ var PowerPointViewer = forwardRef(
|
|
|
36771
36911
|
lineChart3D = false,
|
|
36772
36912
|
areaChart3D = false,
|
|
36773
36913
|
pieChart3D = false,
|
|
36774
|
-
hiddenActions,
|
|
36775
|
-
ai
|
|
36914
|
+
hiddenActions: legacyHiddenActions,
|
|
36915
|
+
ai,
|
|
36916
|
+
customization
|
|
36776
36917
|
} = props;
|
|
36777
36918
|
useEffect(() => {
|
|
36778
36919
|
const css = buildUserFontFaceStyles(fonts);
|
|
@@ -36871,6 +37012,11 @@ var PowerPointViewer = forwardRef(
|
|
|
36871
37012
|
})();
|
|
36872
37013
|
}, []);
|
|
36873
37014
|
const { optionsStore, options: viewerOptions } = useViewerOptions();
|
|
37015
|
+
const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
|
|
37016
|
+
const { resolved: customizationResolved, hiddenActions } = custom;
|
|
37017
|
+
const aiEnabled = Boolean(ai) && isFeatureEnabled(customizationResolved, "ai");
|
|
37018
|
+
const optionsAvailable = isDialogAvailable(customizationResolved, "options");
|
|
37019
|
+
const shareAvailable = isDialogAvailable(customizationResolved, "share");
|
|
36874
37020
|
const [protectedViewOverridden, setProtectedViewOverridden] = useState(false);
|
|
36875
37021
|
useEffect(() => {
|
|
36876
37022
|
setProtectedViewOverridden(false);
|
|
@@ -37204,7 +37350,8 @@ var PowerPointViewer = forwardRef(
|
|
|
37204
37350
|
userName: authorName ?? collaboration?.userName ?? (viewerOptions.general.userName || void 0),
|
|
37205
37351
|
handlerRef: actionSoundHandlerRef,
|
|
37206
37352
|
// Options > Proofing > AutoCorrect, applied to committed inline-edit text.
|
|
37207
|
-
transformCommittedText: (text) => applyAutoCorrect(text, viewerOptions.proofing)
|
|
37353
|
+
transformCommittedText: (text) => applyAutoCorrect(text, viewerOptions.proofing),
|
|
37354
|
+
keyboard: customizationResolved.keyboard
|
|
37208
37355
|
});
|
|
37209
37356
|
const {
|
|
37210
37357
|
exportHandlers: rawExportHandlers,
|
|
@@ -37281,7 +37428,9 @@ var PowerPointViewer = forwardRef(
|
|
|
37281
37428
|
onModeChange,
|
|
37282
37429
|
onZoomChange,
|
|
37283
37430
|
onSelectionChange,
|
|
37284
|
-
onSlideCountChange
|
|
37431
|
+
onSlideCountChange,
|
|
37432
|
+
customizationApi: custom.api,
|
|
37433
|
+
customization: customizationResolved
|
|
37285
37434
|
});
|
|
37286
37435
|
const viewPreferencesSync = useViewPreferencesSync({
|
|
37287
37436
|
loadVersion,
|
|
@@ -37402,7 +37551,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37402
37551
|
markDirty: history.markDirty,
|
|
37403
37552
|
applyThemeUpdates: applyAiTheme
|
|
37404
37553
|
});
|
|
37405
|
-
const showSlidesPane = mode === "edit" && !isMobile && !dialogs.isNarrowViewport && state.isSlidesPaneOpen;
|
|
37554
|
+
const showSlidesPane = mode === "edit" && !isMobile && !dialogs.isNarrowViewport && state.isSlidesPaneOpen && isPanelVisible(customizationResolved, "slidesPane");
|
|
37406
37555
|
const showMasterPane = mode === "master" && !isMobile && state.isSlidesPaneOpen;
|
|
37407
37556
|
const addinStatus = {
|
|
37408
37557
|
smartArt3d: smartArt3D && !viewerOptions.advanced.disable3DRendering,
|
|
@@ -37455,7 +37604,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37455
37604
|
onPresentFromBeginning: presentation.enterPresentModeFromBeginning,
|
|
37456
37605
|
onEnterPresenterView: handleEnterPresenterView,
|
|
37457
37606
|
onEnterRehearsalMode: handleEnterRehearsalMode,
|
|
37458
|
-
onOpenSettings: () => setIsSettingsOpen(true),
|
|
37607
|
+
onOpenSettings: optionsAvailable ? () => setIsSettingsOpen(true) : void 0,
|
|
37459
37608
|
onOpenHeaderFooter: () => setIsHeaderFooterOpen(true),
|
|
37460
37609
|
onOpenShareDialog: () => setIsShareDialogOpen(true),
|
|
37461
37610
|
onOpenFile: handleOpenFile,
|
|
@@ -37470,7 +37619,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37470
37619
|
},
|
|
37471
37620
|
hiddenActions,
|
|
37472
37621
|
recentPresentationsCount: viewerOptions.advanced.recentPresentationsCount,
|
|
37473
|
-
aiEnabled
|
|
37622
|
+
aiEnabled,
|
|
37474
37623
|
isAiPanelOpen: aiPanel.isOpen,
|
|
37475
37624
|
onToggleAiPanel: aiPanel.toggle,
|
|
37476
37625
|
isProtectedView,
|
|
@@ -37545,9 +37694,9 @@ var PowerPointViewer = forwardRef(
|
|
|
37545
37694
|
rightPanelWidth: isMobile ? void 0 : resizablePanels.rightWidth,
|
|
37546
37695
|
onResizeRight: isMobile ? void 0 : resizablePanels.onResizeRight,
|
|
37547
37696
|
hiddenActions,
|
|
37548
|
-
aiConfig: ai,
|
|
37549
|
-
aiBridge:
|
|
37550
|
-
aiPanel:
|
|
37697
|
+
aiConfig: aiEnabled ? ai : void 0,
|
|
37698
|
+
aiBridge: aiEnabled ? aiBridge : void 0,
|
|
37699
|
+
aiPanel: aiEnabled ? aiPanel : void 0
|
|
37551
37700
|
}
|
|
37552
37701
|
),
|
|
37553
37702
|
mode !== "present" && (!isVirtualKeyboardOpen || !state.isSlideNotesCollapsed) && /* @__PURE__ */ jsx(
|
|
@@ -37563,7 +37712,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37563
37712
|
autosaveStatus,
|
|
37564
37713
|
onToggleNotes: () => state.setIsSlideNotesCollapsed((p) => !p),
|
|
37565
37714
|
onUpdateNotes: propertyHandlers.handleUpdateNotes,
|
|
37566
|
-
collaborationSlot: collaboration ? /* @__PURE__ */ jsx(CollaborationStatusStrip, {}) : void 0,
|
|
37715
|
+
collaborationSlot: collaboration && shareAvailable ? /* @__PURE__ */ jsx(CollaborationStatusStrip, {}) : void 0,
|
|
37567
37716
|
notesPanelHeight: isMobile ? void 0 : resizablePanels.bottomHeight,
|
|
37568
37717
|
onResizeBottom: isMobile ? void 0 : resizablePanels.onResizeBottom,
|
|
37569
37718
|
scale: zoom.scale,
|
|
@@ -37671,7 +37820,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37671
37820
|
/* @__PURE__ */ jsx(
|
|
37672
37821
|
SettingsDialog,
|
|
37673
37822
|
{
|
|
37674
|
-
isOpen: isSettingsOpen,
|
|
37823
|
+
isOpen: isSettingsOpen && optionsAvailable,
|
|
37675
37824
|
onClose: () => setIsSettingsOpen(false),
|
|
37676
37825
|
options: viewerOptions,
|
|
37677
37826
|
onOptionChange: (group, key, value) => optionsStore.setValue(group, key, value),
|
|
@@ -37687,7 +37836,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37687
37836
|
localeCode,
|
|
37688
37837
|
availableLocales: resolvedLocales,
|
|
37689
37838
|
onSelectLocale: handleLocaleChange,
|
|
37690
|
-
aiEnabled
|
|
37839
|
+
aiEnabled,
|
|
37691
37840
|
customFontFamilies,
|
|
37692
37841
|
onCustomFontRegistered: handleCustomFontRegistered
|
|
37693
37842
|
}
|
|
@@ -37711,7 +37860,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37711
37860
|
/* @__PURE__ */ jsx(
|
|
37712
37861
|
ShareDialog,
|
|
37713
37862
|
{
|
|
37714
|
-
open: isShareDialogOpen,
|
|
37863
|
+
open: isShareDialogOpen && shareAvailable,
|
|
37715
37864
|
onClose: () => setIsShareDialogOpen(false),
|
|
37716
37865
|
activeCollaboration: collaboration,
|
|
37717
37866
|
onStartCollaboration,
|
|
@@ -37725,7 +37874,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37725
37874
|
/* @__PURE__ */ jsx(
|
|
37726
37875
|
BroadcastDialog,
|
|
37727
37876
|
{
|
|
37728
|
-
open: dialogs.isBroadcastDialogOpen,
|
|
37877
|
+
open: dialogs.isBroadcastDialogOpen && isDialogAvailable(customizationResolved, "broadcast"),
|
|
37729
37878
|
onClose: () => dialogs.setIsBroadcastDialogOpen(false),
|
|
37730
37879
|
onStartBroadcast: onStartCollaboration,
|
|
37731
37880
|
onStopBroadcast: onStopCollaboration,
|
|
@@ -37803,7 +37952,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37803
37952
|
// Nothing previously provided it, so every one of those consumers was
|
|
37804
37953
|
// silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
|
|
37805
37954
|
// the user changed in the Options dialog.
|
|
37806
|
-
/* @__PURE__ */ jsx(ViewerOptionsContext.Provider, { value: viewerOptions, children: /* @__PURE__ */ jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsx(Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
|
|
37955
|
+
/* @__PURE__ */ jsx(ViewerOptionsContext.Provider, { value: viewerOptions, children: /* @__PURE__ */ jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsx(Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
|
|
37807
37956
|
CollaborationProvider,
|
|
37808
37957
|
{
|
|
37809
37958
|
config: collaboration,
|
|
@@ -37856,7 +38005,7 @@ var PowerPointViewer = forwardRef(
|
|
|
37856
38005
|
viewerContent
|
|
37857
38006
|
]
|
|
37858
38007
|
}
|
|
37859
|
-
) }) }) }) })
|
|
38008
|
+
) }) }) }) }) })
|
|
37860
38009
|
);
|
|
37861
38010
|
}
|
|
37862
38011
|
);
|