pptx-react-viewer 4.1.0 → 4.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 +42 -0
- package/dist/{AiChatPanel-C3ACRWOY.mjs → AiChatPanel-3MBRZW26.mjs} +3 -3
- package/dist/AiChatPanel-3MBRZW26.mjs.br +0 -0
- package/dist/AiChatPanel-3MBRZW26.mjs.gz +0 -0
- package/dist/{AiChatPanel-GQNSKMP6.js → AiChatPanel-H5OF3KBZ.js} +24 -24
- package/dist/AiChatPanel-H5OF3KBZ.js.br +0 -0
- package/dist/AiChatPanel-H5OF3KBZ.js.gz +0 -0
- package/dist/{Area3DChartScene-4TPNRYXS.mjs → Area3DChartScene-4NQEW5KF.mjs} +1 -1
- package/dist/{Area3DChartScene-4TPNRYXS.mjs.br → Area3DChartScene-4NQEW5KF.mjs.br} +0 -0
- package/dist/Area3DChartScene-4NQEW5KF.mjs.gz +0 -0
- package/dist/{Area3DChartScene-3I6KB2DN.js → Area3DChartScene-VN5RQBRM.js} +2 -2
- package/dist/Area3DChartScene-VN5RQBRM.js.br +0 -0
- package/dist/Area3DChartScene-VN5RQBRM.js.gz +0 -0
- package/dist/{Bar3DChartScene-ZSCATOYF.js → Bar3DChartScene-AKC3DWD5.js} +2 -2
- package/dist/Bar3DChartScene-AKC3DWD5.js.br +0 -0
- package/dist/Bar3DChartScene-AKC3DWD5.js.gz +0 -0
- package/dist/{Bar3DChartScene-V45IUIT7.mjs → Bar3DChartScene-HDRJUZ3U.mjs} +1 -1
- package/dist/{Bar3DChartScene-V45IUIT7.mjs.br → Bar3DChartScene-HDRJUZ3U.mjs.br} +0 -0
- package/dist/Bar3DChartScene-HDRJUZ3U.mjs.gz +0 -0
- package/dist/{Line3DChartScene-DK55LQ2D.js → Line3DChartScene-3FMVK4VO.js} +2 -2
- package/dist/Line3DChartScene-3FMVK4VO.js.br +0 -0
- package/dist/Line3DChartScene-3FMVK4VO.js.gz +0 -0
- package/dist/{Line3DChartScene-DCQJEZK6.mjs → Line3DChartScene-IVR5DJS6.mjs} +1 -1
- package/dist/{Line3DChartScene-DCQJEZK6.mjs.br → Line3DChartScene-IVR5DJS6.mjs.br} +0 -0
- package/dist/Line3DChartScene-IVR5DJS6.mjs.gz +0 -0
- package/dist/{Model3DScene-SA5XMR2D.mjs → Model3DScene-RTRR7W5G.mjs} +1 -1
- package/dist/Model3DScene-RTRR7W5G.mjs.br +0 -0
- package/dist/Model3DScene-RTRR7W5G.mjs.gz +0 -0
- package/dist/{Model3DScene-2WNP4XBP.js → Model3DScene-ZDQ6L7IA.js} +2 -2
- package/dist/Model3DScene-ZDQ6L7IA.js.br +0 -0
- package/dist/Model3DScene-ZDQ6L7IA.js.gz +0 -0
- package/dist/{PieChart3DScene-Q75D66HS.js → PieChart3DScene-KTA4QWWO.js} +2 -2
- package/dist/PieChart3DScene-KTA4QWWO.js.br +0 -0
- package/dist/PieChart3DScene-KTA4QWWO.js.gz +0 -0
- package/dist/{PieChart3DScene-HC2ZWL42.mjs → PieChart3DScene-PV7CLRBQ.mjs} +1 -1
- package/dist/PieChart3DScene-PV7CLRBQ.mjs.br +0 -0
- package/dist/PieChart3DScene-PV7CLRBQ.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-JRMX4PN5.mjs → SurfaceChart3DScene-3XRDIWM3.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-JRMX4PN5.mjs.br → SurfaceChart3DScene-3XRDIWM3.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-3XRDIWM3.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-ODS5E6ZG.js → SurfaceChart3DScene-LGKTU3KM.js} +2 -2
- package/dist/SurfaceChart3DScene-LGKTU3KM.js.br +0 -0
- package/dist/SurfaceChart3DScene-LGKTU3KM.js.gz +0 -0
- package/dist/{chunk-MQHMMB6V.js → chunk-2YZHPPKB.js} +5 -5
- package/dist/chunk-2YZHPPKB.js.br +0 -0
- package/dist/chunk-2YZHPPKB.js.gz +0 -0
- package/dist/{chunk-25CABWCR.mjs → chunk-5HWRX5WI.mjs} +20 -14
- package/dist/chunk-5HWRX5WI.mjs.br +0 -0
- package/dist/chunk-5HWRX5WI.mjs.gz +0 -0
- package/dist/{chunk-Q6QJOD56.mjs → chunk-7YLUB3VE.mjs} +84 -112
- package/dist/chunk-7YLUB3VE.mjs.br +0 -0
- package/dist/{chunk-Q6QJOD56.mjs.gz → chunk-7YLUB3VE.mjs.gz} +0 -0
- package/dist/{chunk-SK2CZQ6P.js → chunk-FRSFVE2I.js} +84 -112
- package/dist/chunk-FRSFVE2I.js.br +0 -0
- package/dist/{chunk-SK2CZQ6P.js.gz → chunk-FRSFVE2I.js.gz} +0 -0
- package/dist/{chunk-NR4MQJM5.js → chunk-HFSWAAY4.js} +1076 -1070
- package/dist/chunk-HFSWAAY4.js.br +0 -0
- package/dist/chunk-HFSWAAY4.js.gz +0 -0
- package/dist/{chunk-GRAARMUW.mjs → chunk-KLIZF4F6.mjs} +1 -1
- package/dist/chunk-KLIZF4F6.mjs.br +0 -0
- package/dist/chunk-KLIZF4F6.mjs.gz +0 -0
- package/dist/{chunk-WLWAYLL6.mjs → chunk-LP52C4PZ.mjs} +1 -1
- package/dist/chunk-LP52C4PZ.mjs.br +0 -0
- package/dist/chunk-LP52C4PZ.mjs.gz +0 -0
- package/dist/{chunk-PUALTXTU.js → chunk-MEAT7XDZ.js} +173 -173
- package/dist/chunk-MEAT7XDZ.js.br +0 -0
- package/dist/chunk-MEAT7XDZ.js.gz +0 -0
- package/dist/{chunk-A6JKOHSV.js → chunk-OHYMOFAS.js} +845 -803
- package/dist/chunk-OHYMOFAS.js.br +0 -0
- package/dist/chunk-OHYMOFAS.js.gz +0 -0
- package/dist/{chunk-3B6YIH4K.mjs → chunk-P4SKGHBS.mjs} +60 -18
- package/dist/chunk-P4SKGHBS.mjs.br +0 -0
- package/dist/chunk-P4SKGHBS.mjs.gz +0 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +5 -0
- package/dist/internals.js +104 -104
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- 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/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-C3ACRWOY.mjs.br +0 -0
- package/dist/AiChatPanel-C3ACRWOY.mjs.gz +0 -0
- package/dist/AiChatPanel-GQNSKMP6.js.br +0 -0
- package/dist/AiChatPanel-GQNSKMP6.js.gz +0 -0
- package/dist/Area3DChartScene-3I6KB2DN.js.br +0 -0
- package/dist/Area3DChartScene-3I6KB2DN.js.gz +0 -0
- package/dist/Area3DChartScene-4TPNRYXS.mjs.gz +0 -0
- package/dist/Bar3DChartScene-V45IUIT7.mjs.gz +0 -0
- package/dist/Bar3DChartScene-ZSCATOYF.js.br +0 -0
- package/dist/Bar3DChartScene-ZSCATOYF.js.gz +0 -0
- package/dist/Line3DChartScene-DCQJEZK6.mjs.gz +0 -0
- package/dist/Line3DChartScene-DK55LQ2D.js.br +0 -0
- package/dist/Line3DChartScene-DK55LQ2D.js.gz +0 -0
- package/dist/Model3DScene-2WNP4XBP.js.br +0 -0
- package/dist/Model3DScene-2WNP4XBP.js.gz +0 -0
- package/dist/Model3DScene-SA5XMR2D.mjs.br +0 -0
- package/dist/Model3DScene-SA5XMR2D.mjs.gz +0 -0
- package/dist/PieChart3DScene-HC2ZWL42.mjs.br +0 -0
- package/dist/PieChart3DScene-HC2ZWL42.mjs.gz +0 -0
- package/dist/PieChart3DScene-Q75D66HS.js.br +0 -0
- package/dist/PieChart3DScene-Q75D66HS.js.gz +0 -0
- package/dist/SurfaceChart3DScene-JRMX4PN5.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-ODS5E6ZG.js.br +0 -0
- package/dist/SurfaceChart3DScene-ODS5E6ZG.js.gz +0 -0
- package/dist/chunk-25CABWCR.mjs.br +0 -0
- package/dist/chunk-25CABWCR.mjs.gz +0 -0
- package/dist/chunk-3B6YIH4K.mjs.br +0 -0
- package/dist/chunk-3B6YIH4K.mjs.gz +0 -0
- package/dist/chunk-A6JKOHSV.js.br +0 -0
- package/dist/chunk-A6JKOHSV.js.gz +0 -0
- package/dist/chunk-GRAARMUW.mjs.br +0 -0
- package/dist/chunk-GRAARMUW.mjs.gz +0 -0
- package/dist/chunk-MQHMMB6V.js.br +0 -0
- package/dist/chunk-MQHMMB6V.js.gz +0 -0
- package/dist/chunk-NR4MQJM5.js.br +0 -0
- package/dist/chunk-NR4MQJM5.js.gz +0 -0
- package/dist/chunk-PUALTXTU.js.br +0 -0
- package/dist/chunk-PUALTXTU.js.gz +0 -0
- package/dist/chunk-Q6QJOD56.mjs.br +0 -0
- package/dist/chunk-SK2CZQ6P.js.br +0 -0
- package/dist/chunk-WLWAYLL6.mjs.br +0 -0
- package/dist/chunk-WLWAYLL6.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
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, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, 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, 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, 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, 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, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, 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, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, 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, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, 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, 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, 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-Q6QJOD56.mjs';
|
|
1
|
+
import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-KLIZF4F6.mjs';
|
|
2
|
+
import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, 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-P4SKGHBS.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-LP52C4PZ.mjs';
|
|
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, 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, 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, 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, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, 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, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, 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, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, 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, 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, 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-7YLUB3VE.mjs';
|
|
5
5
|
import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-PC7H3C5W.mjs';
|
|
6
6
|
import React4, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useId, Fragment as Fragment$1, useDeferredValue, Suspense, useContext, useSyncExternalStore, useLayoutEffect } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -1599,7 +1599,7 @@ function AccountPage() {
|
|
|
1599
1599
|
return void 0;
|
|
1600
1600
|
});
|
|
1601
1601
|
};
|
|
1602
|
-
const version = "4.
|
|
1602
|
+
const version = "4.1.1" ;
|
|
1603
1603
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
1604
1604
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
1605
1605
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -32827,7 +32827,7 @@ function useTableStyleMapHandlers(input) {
|
|
|
32827
32827
|
var AiChatPanel = lazy(async () => {
|
|
32828
32828
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
32829
32829
|
import('@ai-sdk/react'),
|
|
32830
|
-
import('./AiChatPanel-
|
|
32830
|
+
import('./AiChatPanel-3MBRZW26.mjs')
|
|
32831
32831
|
]);
|
|
32832
32832
|
function BoundAiChatPanel(props) {
|
|
32833
32833
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -34138,7 +34138,8 @@ function ViewerMainContent(props) {
|
|
|
34138
34138
|
function AutosaveRecoveryDialog({
|
|
34139
34139
|
prompt,
|
|
34140
34140
|
onRestore,
|
|
34141
|
-
onDiscard
|
|
34141
|
+
onDiscard,
|
|
34142
|
+
busy = false
|
|
34142
34143
|
}) {
|
|
34143
34144
|
const { t } = useTranslation();
|
|
34144
34145
|
if (!prompt) {
|
|
@@ -34150,7 +34151,7 @@ function AutosaveRecoveryDialog({
|
|
|
34150
34151
|
"div",
|
|
34151
34152
|
{
|
|
34152
34153
|
style: { zIndex: 1200 },
|
|
34153
|
-
className: "fixed inset-0 flex items-center justify-center bg-black/50",
|
|
34154
|
+
className: "fixed inset-0 flex items-center justify-center bg-black/50 p-4",
|
|
34154
34155
|
"data-pptx-autosave-recovery": "true",
|
|
34155
34156
|
children: /* @__PURE__ */ jsxs(
|
|
34156
34157
|
"div",
|
|
@@ -34158,21 +34159,23 @@ function AutosaveRecoveryDialog({
|
|
|
34158
34159
|
role: "dialog",
|
|
34159
34160
|
"aria-modal": "true",
|
|
34160
34161
|
"aria-label": title,
|
|
34161
|
-
|
|
34162
|
+
"aria-busy": busy,
|
|
34163
|
+
className: "bg-background border border-border rounded-lg shadow-xl w-[440px] max-w-full max-h-[calc(100dvh-2rem)] overflow-y-auto p-6",
|
|
34162
34164
|
children: [
|
|
34163
34165
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
34164
34166
|
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-10 h-10 rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(LuHistory, { className: "w-5 h-5 text-primary" }) }),
|
|
34165
34167
|
/* @__PURE__ */ jsx("h2", { className: "text-base font-semibold text-foreground", children: title })
|
|
34166
34168
|
] }),
|
|
34167
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t(prompt.messageKey, prompt.messageParams) }),
|
|
34169
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground [overflow-wrap:anywhere]", children: t(prompt.messageKey, prompt.messageParams) }),
|
|
34168
34170
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground mt-2", children: t("pptx.autosave.recovery.savedLabel", { when }) }),
|
|
34169
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 mt-6", children: [
|
|
34171
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap justify-end gap-2 mt-6", children: [
|
|
34170
34172
|
/* @__PURE__ */ jsxs(
|
|
34171
34173
|
"button",
|
|
34172
34174
|
{
|
|
34173
34175
|
type: "button",
|
|
34174
|
-
className: "inline-flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-md border border-border bg-background text-foreground hover:bg-accent transition-colors",
|
|
34176
|
+
className: "inline-flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-md border border-border bg-background text-foreground hover:bg-accent transition-colors disabled:cursor-not-allowed disabled:opacity-50",
|
|
34175
34177
|
onClick: onDiscard,
|
|
34178
|
+
disabled: busy,
|
|
34176
34179
|
children: [
|
|
34177
34180
|
/* @__PURE__ */ jsx(LuTrash2, { className: "w-4 h-4" }),
|
|
34178
34181
|
t(prompt.discardKey)
|
|
@@ -34183,8 +34186,9 @@ function AutosaveRecoveryDialog({
|
|
|
34183
34186
|
"button",
|
|
34184
34187
|
{
|
|
34185
34188
|
type: "button",
|
|
34186
|
-
className: "inline-flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-md bg-primary text-white hover:bg-primary/90 transition-colors",
|
|
34189
|
+
className: "inline-flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-md bg-primary text-white hover:bg-primary/90 transition-colors disabled:cursor-not-allowed disabled:opacity-50",
|
|
34187
34190
|
onClick: onRestore,
|
|
34191
|
+
disabled: busy,
|
|
34188
34192
|
children: [
|
|
34189
34193
|
/* @__PURE__ */ jsx(LuHistory, { className: "w-4 h-4" }),
|
|
34190
34194
|
t(prompt.restoreKey)
|
|
@@ -36631,6 +36635,7 @@ var PowerPointViewer = forwardRef(
|
|
|
36631
36635
|
gridSpacingPx,
|
|
36632
36636
|
content,
|
|
36633
36637
|
filePath,
|
|
36638
|
+
fileName,
|
|
36634
36639
|
autosaveEnabled: autosaveActivation.active,
|
|
36635
36640
|
autosaveAllowed: hostAutosave !== false,
|
|
36636
36641
|
// Host prop first (an explicit policy), else File > Options > Save >
|
|
@@ -37034,7 +37039,8 @@ var PowerPointViewer = forwardRef(
|
|
|
37034
37039
|
presenting: mode === "present"
|
|
37035
37040
|
}) ? recovery.prompt : null,
|
|
37036
37041
|
onRestore: recovery.restore,
|
|
37037
|
-
onDiscard: recovery.discard
|
|
37042
|
+
onDiscard: recovery.discard,
|
|
37043
|
+
busy: recovery.discarding
|
|
37038
37044
|
}
|
|
37039
37045
|
),
|
|
37040
37046
|
/* @__PURE__ */ jsx(
|
|
Binary file
|
|
Binary file
|
|
@@ -196750,117 +196750,6 @@ async function saveAutosaveSnapshot(filePath, data) {
|
|
|
196750
196750
|
return putAutosaveRecord(filePath, data);
|
|
196751
196751
|
}
|
|
196752
196752
|
}
|
|
196753
|
-
var AUTOSAVE_RECOVERY_WINDOW_MS = 24 * 60 * 60 * 1e3;
|
|
196754
|
-
var CONSUMED_KEY = "pptx-viewer-recovery-consumed";
|
|
196755
|
-
function markAutosaveSnapshotConsumed(timestamp) {
|
|
196756
|
-
try {
|
|
196757
|
-
if (typeof sessionStorage === "undefined" || !Number.isFinite(timestamp)) {
|
|
196758
|
-
return;
|
|
196759
|
-
}
|
|
196760
|
-
const previous = consumedAutosaveSnapshotTimestamp();
|
|
196761
|
-
if (timestamp > previous) {
|
|
196762
|
-
sessionStorage.setItem(CONSUMED_KEY, String(timestamp));
|
|
196763
|
-
}
|
|
196764
|
-
} catch {
|
|
196765
|
-
}
|
|
196766
|
-
}
|
|
196767
|
-
function consumedAutosaveSnapshotTimestamp() {
|
|
196768
|
-
try {
|
|
196769
|
-
if (typeof sessionStorage === "undefined") {
|
|
196770
|
-
return 0;
|
|
196771
|
-
}
|
|
196772
|
-
const raw = sessionStorage.getItem(CONSUMED_KEY);
|
|
196773
|
-
const value = raw === null ? Number.NaN : Number(raw);
|
|
196774
|
-
return Number.isFinite(value) ? value : 0;
|
|
196775
|
-
} catch {
|
|
196776
|
-
return 0;
|
|
196777
|
-
}
|
|
196778
|
-
}
|
|
196779
|
-
function shouldProbeAutosaveRecovery(input) {
|
|
196780
|
-
return !input.alreadyChecked && input.autosaveAllowed && Boolean(input.filePath) && !input.loading && !input.error && input.slideCount > 0;
|
|
196781
|
-
}
|
|
196782
|
-
function formatSnapshotSize(bytes) {
|
|
196783
|
-
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
196784
|
-
return "0 KB";
|
|
196785
|
-
}
|
|
196786
|
-
if (bytes < 1024 * 1024) {
|
|
196787
|
-
return `${Math.max(1, Math.round(bytes / 1024))} KB`;
|
|
196788
|
-
}
|
|
196789
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
196790
|
-
}
|
|
196791
|
-
function ageKeyFor(ageMinutes) {
|
|
196792
|
-
if (ageMinutes < 1) {
|
|
196793
|
-
return { key: "pptx.autosave.justNow", count: 0 };
|
|
196794
|
-
}
|
|
196795
|
-
if (ageMinutes === 1) {
|
|
196796
|
-
return { key: "pptx.autosave.oneMinAgo", count: 1 };
|
|
196797
|
-
}
|
|
196798
|
-
if (ageMinutes < 60) {
|
|
196799
|
-
return { key: "pptx.autosave.minutesAgo", count: ageMinutes };
|
|
196800
|
-
}
|
|
196801
|
-
return { key: "pptx.autosave.recovery.hoursAgo", count: Math.floor(ageMinutes / 60) };
|
|
196802
|
-
}
|
|
196803
|
-
function autosaveRecoveryPrompt(input) {
|
|
196804
|
-
const record2 = input.record;
|
|
196805
|
-
if (!record2 || record2.size <= 0 || !record2.key) {
|
|
196806
|
-
return null;
|
|
196807
|
-
}
|
|
196808
|
-
const age = input.now - record2.timestamp;
|
|
196809
|
-
if (!Number.isFinite(age) || age < 0 || age >= AUTOSAVE_RECOVERY_WINDOW_MS) {
|
|
196810
|
-
return null;
|
|
196811
|
-
}
|
|
196812
|
-
if (record2.timestamp <= (input.consumedTimestamp ?? 0)) {
|
|
196813
|
-
return null;
|
|
196814
|
-
}
|
|
196815
|
-
const ageMinutes = Math.floor(age / 6e4);
|
|
196816
|
-
const relative = ageKeyFor(ageMinutes);
|
|
196817
|
-
return {
|
|
196818
|
-
filePath: record2.key,
|
|
196819
|
-
timestamp: record2.timestamp,
|
|
196820
|
-
size: record2.size,
|
|
196821
|
-
ageMinutes,
|
|
196822
|
-
titleKey: "pptx.autosave.recovery.title",
|
|
196823
|
-
messageKey: "pptx.autosave.recovery.message",
|
|
196824
|
-
messageParams: { file: record2.key, size: formatSnapshotSize(record2.size) },
|
|
196825
|
-
ageKey: relative.key,
|
|
196826
|
-
ageParams: { count: relative.count },
|
|
196827
|
-
restoreKey: "pptx.autosave.recovery.restore",
|
|
196828
|
-
discardKey: "pptx.autosave.recovery.discard"
|
|
196829
|
-
};
|
|
196830
|
-
}
|
|
196831
|
-
function shouldShowAutosaveRecoveryPrompt(input) {
|
|
196832
|
-
return Boolean(input.prompt) && !input.presenting;
|
|
196833
|
-
}
|
|
196834
|
-
async function probeAutosaveRecovery(filePath, now = Date.now()) {
|
|
196835
|
-
if (typeof indexedDB === "undefined") {
|
|
196836
|
-
return null;
|
|
196837
|
-
}
|
|
196838
|
-
try {
|
|
196839
|
-
const record2 = await getAutosaveSnapshot(filePath);
|
|
196840
|
-
const prompt = autosaveRecoveryPrompt({
|
|
196841
|
-
record: record2 ? { key: record2.key, timestamp: record2.timestamp, size: record2.size } : void 0,
|
|
196842
|
-
now,
|
|
196843
|
-
consumedTimestamp: consumedAutosaveSnapshotTimestamp()
|
|
196844
|
-
});
|
|
196845
|
-
if (!prompt || !record2) {
|
|
196846
|
-
return null;
|
|
196847
|
-
}
|
|
196848
|
-
return { prompt, record: record2 };
|
|
196849
|
-
} catch {
|
|
196850
|
-
return null;
|
|
196851
|
-
}
|
|
196852
|
-
}
|
|
196853
|
-
function acceptAutosaveRecovery(record2) {
|
|
196854
|
-
markAutosaveSnapshotConsumed(record2.timestamp);
|
|
196855
|
-
return record2.data instanceof Uint8Array ? record2.data : new Uint8Array(record2.data);
|
|
196856
|
-
}
|
|
196857
|
-
async function discardAutosaveRecovery(record2) {
|
|
196858
|
-
markAutosaveSnapshotConsumed(record2.timestamp);
|
|
196859
|
-
try {
|
|
196860
|
-
await deleteAutosaveSnapshot(record2.key);
|
|
196861
|
-
} catch {
|
|
196862
|
-
}
|
|
196863
|
-
}
|
|
196864
196753
|
function secureRandomBytes(length) {
|
|
196865
196754
|
const bytes = new Uint8Array(length);
|
|
196866
196755
|
if (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function") {
|
|
@@ -197059,7 +196948,6 @@ async function restoreSessionDeck() {
|
|
|
197059
196948
|
const snapshot = await getAutosaveSnapshot(deck.fileName);
|
|
197060
196949
|
const bytes = snapshot ? toBytes(snapshot.data) : null;
|
|
197061
196950
|
if (snapshot && bytes && bytes.byteLength > 0 && snapshot.timestamp > deck.timestamp) {
|
|
197062
|
-
markAutosaveSnapshotConsumed(snapshot.timestamp);
|
|
197063
196951
|
return { fileName: deck.fileName, data: bytes, timestamp: snapshot.timestamp };
|
|
197064
196952
|
}
|
|
197065
196953
|
} catch {
|
|
@@ -203519,6 +203407,90 @@ function resolveAutosaveIntervalMs(input) {
|
|
|
203519
203407
|
}
|
|
203520
203408
|
return AUTOSAVE_DEFAULT_INTERVAL_MS;
|
|
203521
203409
|
}
|
|
203410
|
+
var AUTOSAVE_RECOVERY_WINDOW_MS = 24 * 60 * 60 * 1e3;
|
|
203411
|
+
function shouldProbeAutosaveRecovery(input) {
|
|
203412
|
+
return !input.alreadyChecked && input.autosaveAllowed && Boolean(input.filePath) && !input.loading && !input.error && input.slideCount > 0;
|
|
203413
|
+
}
|
|
203414
|
+
function formatSnapshotSize(bytes) {
|
|
203415
|
+
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
203416
|
+
return "0 KB";
|
|
203417
|
+
}
|
|
203418
|
+
if (bytes < 1024 * 1024) {
|
|
203419
|
+
return `${Math.max(1, Math.round(bytes / 1024))} KB`;
|
|
203420
|
+
}
|
|
203421
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
203422
|
+
}
|
|
203423
|
+
function ageKeyFor(ageMinutes) {
|
|
203424
|
+
if (ageMinutes < 1) {
|
|
203425
|
+
return { key: "pptx.autosave.justNow", count: 0 };
|
|
203426
|
+
}
|
|
203427
|
+
if (ageMinutes === 1) {
|
|
203428
|
+
return { key: "pptx.autosave.oneMinAgo", count: 1 };
|
|
203429
|
+
}
|
|
203430
|
+
if (ageMinutes < 60) {
|
|
203431
|
+
return { key: "pptx.autosave.minutesAgo", count: ageMinutes };
|
|
203432
|
+
}
|
|
203433
|
+
return { key: "pptx.autosave.recovery.hoursAgo", count: Math.floor(ageMinutes / 60) };
|
|
203434
|
+
}
|
|
203435
|
+
function autosaveRecoveryPrompt(input) {
|
|
203436
|
+
const record2 = input.record;
|
|
203437
|
+
if (!record2 || record2.size <= 0 || !record2.key) {
|
|
203438
|
+
return null;
|
|
203439
|
+
}
|
|
203440
|
+
const age = input.now - record2.timestamp;
|
|
203441
|
+
if (!Number.isFinite(age) || age < 0 || age >= AUTOSAVE_RECOVERY_WINDOW_MS) {
|
|
203442
|
+
return null;
|
|
203443
|
+
}
|
|
203444
|
+
const ageMinutes = Math.floor(age / 6e4);
|
|
203445
|
+
const relative = ageKeyFor(ageMinutes);
|
|
203446
|
+
return {
|
|
203447
|
+
filePath: record2.key,
|
|
203448
|
+
timestamp: record2.timestamp,
|
|
203449
|
+
size: record2.size,
|
|
203450
|
+
ageMinutes,
|
|
203451
|
+
titleKey: "pptx.autosave.recovery.title",
|
|
203452
|
+
messageKey: "pptx.autosave.recovery.message",
|
|
203453
|
+
messageParams: {
|
|
203454
|
+
file: input.displayName?.trim() || record2.key,
|
|
203455
|
+
size: formatSnapshotSize(record2.size)
|
|
203456
|
+
},
|
|
203457
|
+
ageKey: relative.key,
|
|
203458
|
+
ageParams: { count: relative.count },
|
|
203459
|
+
restoreKey: "pptx.autosave.recovery.restore",
|
|
203460
|
+
discardKey: "pptx.autosave.recovery.discard"
|
|
203461
|
+
};
|
|
203462
|
+
}
|
|
203463
|
+
function shouldShowAutosaveRecoveryPrompt(input) {
|
|
203464
|
+
return Boolean(input.prompt) && !input.presenting;
|
|
203465
|
+
}
|
|
203466
|
+
async function probeAutosaveRecovery(filePath, now = Date.now(), displayName) {
|
|
203467
|
+
if (typeof indexedDB === "undefined") {
|
|
203468
|
+
return null;
|
|
203469
|
+
}
|
|
203470
|
+
try {
|
|
203471
|
+
const record2 = await getAutosaveSnapshot(filePath);
|
|
203472
|
+
const prompt = autosaveRecoveryPrompt({
|
|
203473
|
+
record: record2 ? { key: record2.key, timestamp: record2.timestamp, size: record2.size } : void 0,
|
|
203474
|
+
now,
|
|
203475
|
+
displayName
|
|
203476
|
+
});
|
|
203477
|
+
if (!prompt || !record2) {
|
|
203478
|
+
return null;
|
|
203479
|
+
}
|
|
203480
|
+
return { prompt, record: record2 };
|
|
203481
|
+
} catch {
|
|
203482
|
+
return null;
|
|
203483
|
+
}
|
|
203484
|
+
}
|
|
203485
|
+
function acceptAutosaveRecovery(record2) {
|
|
203486
|
+
return record2.data instanceof Uint8Array ? record2.data : new Uint8Array(record2.data);
|
|
203487
|
+
}
|
|
203488
|
+
async function discardAutosaveRecovery(record2) {
|
|
203489
|
+
try {
|
|
203490
|
+
await deleteAutosaveSnapshot(record2.key);
|
|
203491
|
+
} catch {
|
|
203492
|
+
}
|
|
203493
|
+
}
|
|
203522
203494
|
var BACKSTAGE_NAV = [
|
|
203523
203495
|
{ id: "home", label: "Home", labelKey: "pptx.backstage.nav.home" },
|
|
203524
203496
|
{ id: "new", label: "New", labelKey: "pptx.backstage.nav.new" },
|
|
Binary file
|
|
Binary file
|
|
@@ -196757,117 +196757,6 @@ async function saveAutosaveSnapshot(filePath, data) {
|
|
|
196757
196757
|
return putAutosaveRecord(filePath, data);
|
|
196758
196758
|
}
|
|
196759
196759
|
}
|
|
196760
|
-
var AUTOSAVE_RECOVERY_WINDOW_MS = 24 * 60 * 60 * 1e3;
|
|
196761
|
-
var CONSUMED_KEY = "pptx-viewer-recovery-consumed";
|
|
196762
|
-
function markAutosaveSnapshotConsumed(timestamp) {
|
|
196763
|
-
try {
|
|
196764
|
-
if (typeof sessionStorage === "undefined" || !Number.isFinite(timestamp)) {
|
|
196765
|
-
return;
|
|
196766
|
-
}
|
|
196767
|
-
const previous = consumedAutosaveSnapshotTimestamp();
|
|
196768
|
-
if (timestamp > previous) {
|
|
196769
|
-
sessionStorage.setItem(CONSUMED_KEY, String(timestamp));
|
|
196770
|
-
}
|
|
196771
|
-
} catch {
|
|
196772
|
-
}
|
|
196773
|
-
}
|
|
196774
|
-
function consumedAutosaveSnapshotTimestamp() {
|
|
196775
|
-
try {
|
|
196776
|
-
if (typeof sessionStorage === "undefined") {
|
|
196777
|
-
return 0;
|
|
196778
|
-
}
|
|
196779
|
-
const raw = sessionStorage.getItem(CONSUMED_KEY);
|
|
196780
|
-
const value = raw === null ? Number.NaN : Number(raw);
|
|
196781
|
-
return Number.isFinite(value) ? value : 0;
|
|
196782
|
-
} catch {
|
|
196783
|
-
return 0;
|
|
196784
|
-
}
|
|
196785
|
-
}
|
|
196786
|
-
function shouldProbeAutosaveRecovery(input) {
|
|
196787
|
-
return !input.alreadyChecked && input.autosaveAllowed && Boolean(input.filePath) && !input.loading && !input.error && input.slideCount > 0;
|
|
196788
|
-
}
|
|
196789
|
-
function formatSnapshotSize(bytes) {
|
|
196790
|
-
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
196791
|
-
return "0 KB";
|
|
196792
|
-
}
|
|
196793
|
-
if (bytes < 1024 * 1024) {
|
|
196794
|
-
return `${Math.max(1, Math.round(bytes / 1024))} KB`;
|
|
196795
|
-
}
|
|
196796
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
196797
|
-
}
|
|
196798
|
-
function ageKeyFor(ageMinutes) {
|
|
196799
|
-
if (ageMinutes < 1) {
|
|
196800
|
-
return { key: "pptx.autosave.justNow", count: 0 };
|
|
196801
|
-
}
|
|
196802
|
-
if (ageMinutes === 1) {
|
|
196803
|
-
return { key: "pptx.autosave.oneMinAgo", count: 1 };
|
|
196804
|
-
}
|
|
196805
|
-
if (ageMinutes < 60) {
|
|
196806
|
-
return { key: "pptx.autosave.minutesAgo", count: ageMinutes };
|
|
196807
|
-
}
|
|
196808
|
-
return { key: "pptx.autosave.recovery.hoursAgo", count: Math.floor(ageMinutes / 60) };
|
|
196809
|
-
}
|
|
196810
|
-
function autosaveRecoveryPrompt(input) {
|
|
196811
|
-
const record2 = input.record;
|
|
196812
|
-
if (!record2 || record2.size <= 0 || !record2.key) {
|
|
196813
|
-
return null;
|
|
196814
|
-
}
|
|
196815
|
-
const age = input.now - record2.timestamp;
|
|
196816
|
-
if (!Number.isFinite(age) || age < 0 || age >= AUTOSAVE_RECOVERY_WINDOW_MS) {
|
|
196817
|
-
return null;
|
|
196818
|
-
}
|
|
196819
|
-
if (record2.timestamp <= (input.consumedTimestamp ?? 0)) {
|
|
196820
|
-
return null;
|
|
196821
|
-
}
|
|
196822
|
-
const ageMinutes = Math.floor(age / 6e4);
|
|
196823
|
-
const relative = ageKeyFor(ageMinutes);
|
|
196824
|
-
return {
|
|
196825
|
-
filePath: record2.key,
|
|
196826
|
-
timestamp: record2.timestamp,
|
|
196827
|
-
size: record2.size,
|
|
196828
|
-
ageMinutes,
|
|
196829
|
-
titleKey: "pptx.autosave.recovery.title",
|
|
196830
|
-
messageKey: "pptx.autosave.recovery.message",
|
|
196831
|
-
messageParams: { file: record2.key, size: formatSnapshotSize(record2.size) },
|
|
196832
|
-
ageKey: relative.key,
|
|
196833
|
-
ageParams: { count: relative.count },
|
|
196834
|
-
restoreKey: "pptx.autosave.recovery.restore",
|
|
196835
|
-
discardKey: "pptx.autosave.recovery.discard"
|
|
196836
|
-
};
|
|
196837
|
-
}
|
|
196838
|
-
function shouldShowAutosaveRecoveryPrompt(input) {
|
|
196839
|
-
return Boolean(input.prompt) && !input.presenting;
|
|
196840
|
-
}
|
|
196841
|
-
async function probeAutosaveRecovery(filePath, now = Date.now()) {
|
|
196842
|
-
if (typeof indexedDB === "undefined") {
|
|
196843
|
-
return null;
|
|
196844
|
-
}
|
|
196845
|
-
try {
|
|
196846
|
-
const record2 = await getAutosaveSnapshot(filePath);
|
|
196847
|
-
const prompt = autosaveRecoveryPrompt({
|
|
196848
|
-
record: record2 ? { key: record2.key, timestamp: record2.timestamp, size: record2.size } : void 0,
|
|
196849
|
-
now,
|
|
196850
|
-
consumedTimestamp: consumedAutosaveSnapshotTimestamp()
|
|
196851
|
-
});
|
|
196852
|
-
if (!prompt || !record2) {
|
|
196853
|
-
return null;
|
|
196854
|
-
}
|
|
196855
|
-
return { prompt, record: record2 };
|
|
196856
|
-
} catch {
|
|
196857
|
-
return null;
|
|
196858
|
-
}
|
|
196859
|
-
}
|
|
196860
|
-
function acceptAutosaveRecovery(record2) {
|
|
196861
|
-
markAutosaveSnapshotConsumed(record2.timestamp);
|
|
196862
|
-
return record2.data instanceof Uint8Array ? record2.data : new Uint8Array(record2.data);
|
|
196863
|
-
}
|
|
196864
|
-
async function discardAutosaveRecovery(record2) {
|
|
196865
|
-
markAutosaveSnapshotConsumed(record2.timestamp);
|
|
196866
|
-
try {
|
|
196867
|
-
await deleteAutosaveSnapshot(record2.key);
|
|
196868
|
-
} catch {
|
|
196869
|
-
}
|
|
196870
|
-
}
|
|
196871
196760
|
function secureRandomBytes(length) {
|
|
196872
196761
|
const bytes = new Uint8Array(length);
|
|
196873
196762
|
if (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function") {
|
|
@@ -197066,7 +196955,6 @@ async function restoreSessionDeck() {
|
|
|
197066
196955
|
const snapshot = await getAutosaveSnapshot(deck.fileName);
|
|
197067
196956
|
const bytes = snapshot ? toBytes(snapshot.data) : null;
|
|
197068
196957
|
if (snapshot && bytes && bytes.byteLength > 0 && snapshot.timestamp > deck.timestamp) {
|
|
197069
|
-
markAutosaveSnapshotConsumed(snapshot.timestamp);
|
|
197070
196958
|
return { fileName: deck.fileName, data: bytes, timestamp: snapshot.timestamp };
|
|
197071
196959
|
}
|
|
197072
196960
|
} catch {
|
|
@@ -203526,6 +203414,90 @@ function resolveAutosaveIntervalMs(input) {
|
|
|
203526
203414
|
}
|
|
203527
203415
|
return AUTOSAVE_DEFAULT_INTERVAL_MS;
|
|
203528
203416
|
}
|
|
203417
|
+
var AUTOSAVE_RECOVERY_WINDOW_MS = 24 * 60 * 60 * 1e3;
|
|
203418
|
+
function shouldProbeAutosaveRecovery(input) {
|
|
203419
|
+
return !input.alreadyChecked && input.autosaveAllowed && Boolean(input.filePath) && !input.loading && !input.error && input.slideCount > 0;
|
|
203420
|
+
}
|
|
203421
|
+
function formatSnapshotSize(bytes) {
|
|
203422
|
+
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
203423
|
+
return "0 KB";
|
|
203424
|
+
}
|
|
203425
|
+
if (bytes < 1024 * 1024) {
|
|
203426
|
+
return `${Math.max(1, Math.round(bytes / 1024))} KB`;
|
|
203427
|
+
}
|
|
203428
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
203429
|
+
}
|
|
203430
|
+
function ageKeyFor(ageMinutes) {
|
|
203431
|
+
if (ageMinutes < 1) {
|
|
203432
|
+
return { key: "pptx.autosave.justNow", count: 0 };
|
|
203433
|
+
}
|
|
203434
|
+
if (ageMinutes === 1) {
|
|
203435
|
+
return { key: "pptx.autosave.oneMinAgo", count: 1 };
|
|
203436
|
+
}
|
|
203437
|
+
if (ageMinutes < 60) {
|
|
203438
|
+
return { key: "pptx.autosave.minutesAgo", count: ageMinutes };
|
|
203439
|
+
}
|
|
203440
|
+
return { key: "pptx.autosave.recovery.hoursAgo", count: Math.floor(ageMinutes / 60) };
|
|
203441
|
+
}
|
|
203442
|
+
function autosaveRecoveryPrompt(input) {
|
|
203443
|
+
const record2 = input.record;
|
|
203444
|
+
if (!record2 || record2.size <= 0 || !record2.key) {
|
|
203445
|
+
return null;
|
|
203446
|
+
}
|
|
203447
|
+
const age = input.now - record2.timestamp;
|
|
203448
|
+
if (!Number.isFinite(age) || age < 0 || age >= AUTOSAVE_RECOVERY_WINDOW_MS) {
|
|
203449
|
+
return null;
|
|
203450
|
+
}
|
|
203451
|
+
const ageMinutes = Math.floor(age / 6e4);
|
|
203452
|
+
const relative = ageKeyFor(ageMinutes);
|
|
203453
|
+
return {
|
|
203454
|
+
filePath: record2.key,
|
|
203455
|
+
timestamp: record2.timestamp,
|
|
203456
|
+
size: record2.size,
|
|
203457
|
+
ageMinutes,
|
|
203458
|
+
titleKey: "pptx.autosave.recovery.title",
|
|
203459
|
+
messageKey: "pptx.autosave.recovery.message",
|
|
203460
|
+
messageParams: {
|
|
203461
|
+
file: input.displayName?.trim() || record2.key,
|
|
203462
|
+
size: formatSnapshotSize(record2.size)
|
|
203463
|
+
},
|
|
203464
|
+
ageKey: relative.key,
|
|
203465
|
+
ageParams: { count: relative.count },
|
|
203466
|
+
restoreKey: "pptx.autosave.recovery.restore",
|
|
203467
|
+
discardKey: "pptx.autosave.recovery.discard"
|
|
203468
|
+
};
|
|
203469
|
+
}
|
|
203470
|
+
function shouldShowAutosaveRecoveryPrompt(input) {
|
|
203471
|
+
return Boolean(input.prompt) && !input.presenting;
|
|
203472
|
+
}
|
|
203473
|
+
async function probeAutosaveRecovery(filePath, now = Date.now(), displayName) {
|
|
203474
|
+
if (typeof indexedDB === "undefined") {
|
|
203475
|
+
return null;
|
|
203476
|
+
}
|
|
203477
|
+
try {
|
|
203478
|
+
const record2 = await getAutosaveSnapshot(filePath);
|
|
203479
|
+
const prompt = autosaveRecoveryPrompt({
|
|
203480
|
+
record: record2 ? { key: record2.key, timestamp: record2.timestamp, size: record2.size } : void 0,
|
|
203481
|
+
now,
|
|
203482
|
+
displayName
|
|
203483
|
+
});
|
|
203484
|
+
if (!prompt || !record2) {
|
|
203485
|
+
return null;
|
|
203486
|
+
}
|
|
203487
|
+
return { prompt, record: record2 };
|
|
203488
|
+
} catch {
|
|
203489
|
+
return null;
|
|
203490
|
+
}
|
|
203491
|
+
}
|
|
203492
|
+
function acceptAutosaveRecovery(record2) {
|
|
203493
|
+
return record2.data instanceof Uint8Array ? record2.data : new Uint8Array(record2.data);
|
|
203494
|
+
}
|
|
203495
|
+
async function discardAutosaveRecovery(record2) {
|
|
203496
|
+
try {
|
|
203497
|
+
await deleteAutosaveSnapshot(record2.key);
|
|
203498
|
+
} catch {
|
|
203499
|
+
}
|
|
203500
|
+
}
|
|
203529
203501
|
var BACKSTAGE_NAV = [
|
|
203530
203502
|
{ id: "home", label: "Home", labelKey: "pptx.backstage.nav.home" },
|
|
203531
203503
|
{ id: "new", label: "New", labelKey: "pptx.backstage.nav.new" },
|
|
Binary file
|
|
Binary file
|