pptx-react-viewer 2.19.7 → 2.20.1
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 +41 -0
- package/README.md +1 -1
- package/dist/{AiChatPanel-WVO66CKC.mjs → AiChatPanel-NRWACXJ7.mjs} +4 -4
- package/dist/AiChatPanel-NRWACXJ7.mjs.br +0 -0
- package/dist/AiChatPanel-NRWACXJ7.mjs.gz +0 -0
- package/dist/{AiChatPanel-MAC2Z5SK.js → AiChatPanel-ZSVNVRM5.js} +24 -24
- package/dist/AiChatPanel-ZSVNVRM5.js.br +0 -0
- package/dist/AiChatPanel-ZSVNVRM5.js.gz +0 -0
- package/dist/{Model3DScene-CU4WGIMH.js → Model3DScene-3HGARMTA.js} +2 -2
- package/dist/Model3DScene-3HGARMTA.js.br +0 -0
- package/dist/Model3DScene-3HGARMTA.js.gz +0 -0
- package/dist/{Model3DScene-PTCZUGIT.mjs → Model3DScene-IFYFOD6F.mjs} +1 -1
- package/dist/{Model3DScene-PTCZUGIT.mjs.br → Model3DScene-IFYFOD6F.mjs.br} +0 -0
- package/dist/Model3DScene-IFYFOD6F.mjs.gz +0 -0
- package/dist/{chunk-ZPNLWBED.mjs → chunk-2MENHAYJ.mjs} +814 -449
- package/dist/chunk-2MENHAYJ.mjs.br +0 -0
- package/dist/chunk-2MENHAYJ.mjs.gz +0 -0
- package/dist/{chunk-GUGHIQ4P.js → chunk-4Z4HEIP5.js} +847 -456
- package/dist/chunk-4Z4HEIP5.js.br +0 -0
- package/dist/chunk-4Z4HEIP5.js.gz +0 -0
- package/dist/{chunk-MVKRI3CZ.js → chunk-6CPUGAK7.js} +2 -0
- package/dist/chunk-6CPUGAK7.js.br +0 -0
- package/dist/{chunk-MVKRI3CZ.js.gz → chunk-6CPUGAK7.js.gz} +0 -0
- package/dist/{chunk-XDF76VFA.js → chunk-GKOJO67G.js} +480 -507
- package/dist/chunk-GKOJO67G.js.br +0 -0
- package/dist/chunk-GKOJO67G.js.gz +0 -0
- package/dist/{chunk-5BG5BANR.mjs → chunk-HZ2PAL7P.mjs} +153 -338
- package/dist/chunk-HZ2PAL7P.mjs.br +0 -0
- package/dist/chunk-HZ2PAL7P.mjs.gz +0 -0
- package/dist/{chunk-V5PW4QCE.js → chunk-LLZ25OVR.js} +178 -172
- package/dist/chunk-LLZ25OVR.js.br +0 -0
- package/dist/chunk-LLZ25OVR.js.gz +0 -0
- package/dist/{chunk-SQJBFMEX.mjs → chunk-MZOZNBRO.mjs} +2 -0
- package/dist/chunk-MZOZNBRO.mjs.br +0 -0
- package/dist/{chunk-SQJBFMEX.mjs.gz → chunk-MZOZNBRO.mjs.gz} +0 -0
- package/dist/{chunk-QZV7XDQG.mjs → chunk-O5BR276S.mjs} +25 -19
- package/dist/chunk-O5BR276S.mjs.br +0 -0
- package/dist/chunk-O5BR276S.mjs.gz +0 -0
- package/dist/{chunk-EVM5OFAD.js → chunk-QJJX2E6I.js} +3 -3
- package/dist/chunk-QJJX2E6I.js.br +0 -0
- package/dist/chunk-QJJX2E6I.js.gz +0 -0
- package/dist/{chunk-DZHCLAH3.mjs → chunk-RJ26DQIM.mjs} +1 -1
- package/dist/chunk-RJ26DQIM.mjs.br +0 -0
- package/dist/chunk-RJ26DQIM.mjs.gz +0 -0
- package/dist/{chunk-LP3Y4NXE.mjs → chunk-SZJLZWEX.mjs} +104 -131
- package/dist/chunk-SZJLZWEX.mjs.br +0 -0
- package/dist/chunk-SZJLZWEX.mjs.gz +0 -0
- package/dist/{chunk-JENKEQZP.js → chunk-WCJ3HF4C.js} +1174 -1359
- package/dist/chunk-WCJ3HF4C.js.br +0 -0
- package/dist/chunk-WCJ3HF4C.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-MAC2Z5SK.js.br +0 -0
- package/dist/AiChatPanel-MAC2Z5SK.js.gz +0 -0
- package/dist/AiChatPanel-WVO66CKC.mjs.br +0 -0
- package/dist/AiChatPanel-WVO66CKC.mjs.gz +0 -0
- package/dist/Model3DScene-CU4WGIMH.js.br +0 -0
- package/dist/Model3DScene-CU4WGIMH.js.gz +0 -0
- package/dist/Model3DScene-PTCZUGIT.mjs.gz +0 -0
- package/dist/chunk-5BG5BANR.mjs.br +0 -0
- package/dist/chunk-5BG5BANR.mjs.gz +0 -0
- package/dist/chunk-DZHCLAH3.mjs.br +0 -0
- package/dist/chunk-DZHCLAH3.mjs.gz +0 -0
- package/dist/chunk-EVM5OFAD.js.br +0 -0
- package/dist/chunk-EVM5OFAD.js.gz +0 -0
- package/dist/chunk-GUGHIQ4P.js.br +0 -0
- package/dist/chunk-GUGHIQ4P.js.gz +0 -0
- package/dist/chunk-JENKEQZP.js.br +0 -0
- package/dist/chunk-JENKEQZP.js.gz +0 -0
- package/dist/chunk-LP3Y4NXE.mjs.br +0 -0
- package/dist/chunk-LP3Y4NXE.mjs.gz +0 -0
- package/dist/chunk-MVKRI3CZ.js.br +0 -0
- package/dist/chunk-QZV7XDQG.mjs.br +0 -0
- package/dist/chunk-QZV7XDQG.mjs.gz +0 -0
- package/dist/chunk-SQJBFMEX.mjs.br +0 -0
- package/dist/chunk-V5PW4QCE.js.br +0 -0
- package/dist/chunk-V5PW4QCE.js.gz +0 -0
- package/dist/chunk-XDF76VFA.js.br +0 -0
- package/dist/chunk-XDF76VFA.js.gz +0 -0
- package/dist/chunk-ZPNLWBED.mjs.br +0 -0
- package/dist/chunk-ZPNLWBED.mjs.gz +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-
|
|
2
|
-
import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-
|
|
3
|
-
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-
|
|
4
|
-
import { LOCALE_CATALOG, translationsEn } from './chunk-
|
|
5
|
-
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, isImageLikeElement, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, ensureChartInteractionStyles, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, normalizeSegments, createPlainNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, escapeHtml2, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-ZPNLWBED.mjs';
|
|
1
|
+
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-RJ26DQIM.mjs';
|
|
2
|
+
import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-SZJLZWEX.mjs';
|
|
3
|
+
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-O5BR276S.mjs';
|
|
4
|
+
import { LOCALE_CATALOG, translationsEn } from './chunk-MZOZNBRO.mjs';
|
|
5
|
+
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, isImageLikeElement, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, normalizeSegments, createPlainNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, escapeHtml2, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, generateTicks, rulerDragToGuidePosition, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTo, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-2MENHAYJ.mjs';
|
|
6
6
|
import React14, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, Fragment as Fragment$1, useDeferredValue } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
|
-
import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus,
|
|
9
|
+
import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuClock, LuDownload, LuCheck, LuLock, LuEye, LuFileText, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuPackage, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuBookmark } from 'react-icons/lu';
|
|
10
10
|
|
|
11
11
|
var ViewerThemeContext = createContext(void 0);
|
|
12
12
|
function ViewerThemeProvider({ theme, children }) {
|
|
@@ -478,7 +478,6 @@ function ChartPartSelectionProvider({
|
|
|
478
478
|
function useChartPartSelection() {
|
|
479
479
|
return useContext(ChartPartSelectionContext);
|
|
480
480
|
}
|
|
481
|
-
var DRAG_THRESHOLD_PX = 3;
|
|
482
481
|
function ChartElementView({
|
|
483
482
|
element,
|
|
484
483
|
editable,
|
|
@@ -507,21 +506,7 @@ function ChartElementView({
|
|
|
507
506
|
}
|
|
508
507
|
}, [canEdit, selection, element.id, setSelection, onUpdateElement]);
|
|
509
508
|
useEffect(() => {
|
|
510
|
-
|
|
511
|
-
if (!root) {
|
|
512
|
-
return;
|
|
513
|
-
}
|
|
514
|
-
for (const node of root.querySelectorAll(".pptx-chart-part-selected")) {
|
|
515
|
-
node.classList.remove("pptx-chart-part-selected");
|
|
516
|
-
}
|
|
517
|
-
if (!selectedPart) {
|
|
518
|
-
return;
|
|
519
|
-
}
|
|
520
|
-
const pointSel = selectedPart.pointIndex !== void 0 ? `[data-chart-point='${selectedPart.pointIndex}']` : ":not([data-chart-point])";
|
|
521
|
-
const selector = `[data-chart-part='${selectedPart.role}'][data-chart-series='${selectedPart.seriesIndex}']${pointSel}`;
|
|
522
|
-
for (const node of root.querySelectorAll(selector)) {
|
|
523
|
-
node.classList.add("pptx-chart-part-selected");
|
|
524
|
-
}
|
|
509
|
+
applyChartPartHighlight(wrapperRef.current, selectedPart);
|
|
525
510
|
});
|
|
526
511
|
const endDrag = (commit) => {
|
|
527
512
|
const active = dragRef.current;
|
|
@@ -554,53 +539,37 @@ function ChartElementView({
|
|
|
554
539
|
}
|
|
555
540
|
e.stopPropagation();
|
|
556
541
|
setSelection({ elementId: element.id, part });
|
|
557
|
-
if (
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
};
|
|
542
|
+
if (!viewModel || !element.chartData) {
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
const started = beginChartValueDrag({
|
|
546
|
+
part,
|
|
547
|
+
viewModel,
|
|
548
|
+
chartData: element.chartData,
|
|
549
|
+
clientY: e.clientY
|
|
550
|
+
});
|
|
551
|
+
if (!started) {
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
e.preventDefault();
|
|
555
|
+
try {
|
|
556
|
+
e.currentTarget.setPointerCapture?.(e.pointerId);
|
|
557
|
+
} catch {
|
|
574
558
|
}
|
|
559
|
+
dragRef.current = started;
|
|
575
560
|
};
|
|
576
561
|
const handlePointerMove = (e) => {
|
|
577
562
|
const active = dragRef.current;
|
|
578
563
|
if (!active) {
|
|
579
564
|
return;
|
|
580
565
|
}
|
|
581
|
-
|
|
566
|
+
const height = wrapperRef.current?.querySelector("svg")?.getBoundingClientRect().height ?? 0;
|
|
567
|
+
const step = advanceChartValueDrag(active, e.clientY, height);
|
|
568
|
+
if (!step) {
|
|
582
569
|
return;
|
|
583
570
|
}
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
return;
|
|
587
|
-
}
|
|
588
|
-
const rect = svg.getBoundingClientRect();
|
|
589
|
-
if (rect.height === 0) {
|
|
590
|
-
return;
|
|
591
|
-
}
|
|
592
|
-
active.moved = true;
|
|
593
|
-
const deltaViewY = (e.clientY - active.startClientY) / rect.height * active.svgHeight;
|
|
594
|
-
const viewY = active.anchorViewY + deltaViewY;
|
|
595
|
-
const value = dragValueForPart(viewY, active.drag, active.part.seriesIndex);
|
|
596
|
-
active.lastData = withChartPointValue(
|
|
597
|
-
active.baseChartData,
|
|
598
|
-
active.part.seriesIndex,
|
|
599
|
-
active.part.pointIndex,
|
|
600
|
-
value
|
|
601
|
-
);
|
|
602
|
-
setPreviewData(active.lastData);
|
|
603
|
-
setDragValue(value);
|
|
571
|
+
setPreviewData(step.chartData);
|
|
572
|
+
setDragValue(step.value);
|
|
604
573
|
};
|
|
605
574
|
const handlePointerUp = () => {
|
|
606
575
|
if (dragRef.current) {
|
|
@@ -2574,7 +2543,7 @@ function FailedToLoad() {
|
|
|
2574
2543
|
var LazyModel3DScene = React14.lazy(
|
|
2575
2544
|
async () => {
|
|
2576
2545
|
try {
|
|
2577
|
-
return await import('./Model3DScene-
|
|
2546
|
+
return await import('./Model3DScene-IFYFOD6F.mjs');
|
|
2578
2547
|
} catch {
|
|
2579
2548
|
return { default: FailedToLoad };
|
|
2580
2549
|
}
|
|
@@ -3185,13 +3154,10 @@ function SmartArtNodeText({
|
|
|
3185
3154
|
}
|
|
3186
3155
|
);
|
|
3187
3156
|
}
|
|
3188
|
-
const source = text ?? ""
|
|
3189
|
-
const lines = maxWidth !== void 0 ? centeredSvgTextLines(source, fontSize, { maxWidth: maxWidth * LABEL_WIDTH_FRACTION }).map(
|
|
3157
|
+
const source = text ?? "", lines = maxWidth !== void 0 ? centeredSvgTextLines(source, fontSize, { maxWidth: maxWidth * LABEL_WIDTH_FRACTION }).map(
|
|
3190
3158
|
(line) => line.text
|
|
3191
|
-
) : source.split("\n").filter((l) => l.length > 0);
|
|
3192
|
-
|
|
3193
|
-
let startY;
|
|
3194
|
-
let dominantBaseline;
|
|
3159
|
+
) : source.split("\n").filter((l) => l.length > 0), lineHeight = fontSize * 1.2;
|
|
3160
|
+
let startY, dominantBaseline;
|
|
3195
3161
|
if (anchor === "bottom") {
|
|
3196
3162
|
startY = lines.length > 0 ? y - (lines.length - 1) * lineHeight : y;
|
|
3197
3163
|
dominantBaseline = "auto";
|
|
@@ -3218,14 +3184,15 @@ function SmartArtNodeText({
|
|
|
3218
3184
|
}
|
|
3219
3185
|
);
|
|
3220
3186
|
}
|
|
3221
|
-
function
|
|
3222
|
-
const
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
}
|
|
3226
|
-
if (chrome?.outlineColor) {
|
|
3227
|
-
wrapperStyle.border = `${chrome.outlineWidth ?? 1}px solid ${chrome.outlineColor}`;
|
|
3187
|
+
function chromeStyleToReactCss(style) {
|
|
3188
|
+
const react = {};
|
|
3189
|
+
for (const [key, value] of Object.entries(style)) {
|
|
3190
|
+
react[key.replace(/-([a-z])/gu, (_match, letter) => letter.toUpperCase())] = value;
|
|
3228
3191
|
}
|
|
3192
|
+
return react;
|
|
3193
|
+
}
|
|
3194
|
+
function wrapChrome(chrome, content, className, a11y) {
|
|
3195
|
+
const wrapperStyle = chromeStyleToReactCss(buildChromeStyle(chrome));
|
|
3229
3196
|
return /* @__PURE__ */ jsx(
|
|
3230
3197
|
"div",
|
|
3231
3198
|
{
|
|
@@ -5775,7 +5742,7 @@ function AccountPage() {
|
|
|
5775
5742
|
return void 0;
|
|
5776
5743
|
});
|
|
5777
5744
|
};
|
|
5778
|
-
const version = "2.
|
|
5745
|
+
const version = "2.20.0" ;
|
|
5779
5746
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
5780
5747
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
5781
5748
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -10282,39 +10249,42 @@ function CommentMarkersOverlay({
|
|
|
10282
10249
|
canvasSize,
|
|
10283
10250
|
onCommentMarkerClick
|
|
10284
10251
|
}) {
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
onCommentMarkerClick?.(comment.id);
|
|
10312
|
-
},
|
|
10313
|
-
children: idx + 1
|
|
10252
|
+
const { t } = useTranslation(), half = COMMENT_MARKER_SIZE / 2, markers = buildCommentMarkers(
|
|
10253
|
+
comments,
|
|
10254
|
+
canvasSize.width,
|
|
10255
|
+
canvasSize.height,
|
|
10256
|
+
t("pptx.comments.unknownAuthor")
|
|
10257
|
+
);
|
|
10258
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute inset-0 pointer-events-none z-[45]", children: markers.map((marker) => /* @__PURE__ */ jsx(
|
|
10259
|
+
"div",
|
|
10260
|
+
{
|
|
10261
|
+
className: "absolute pointer-events-auto cursor-pointer",
|
|
10262
|
+
style: {
|
|
10263
|
+
left: marker.x - half,
|
|
10264
|
+
top: marker.y - half,
|
|
10265
|
+
width: COMMENT_MARKER_SIZE,
|
|
10266
|
+
height: COMMENT_MARKER_SIZE,
|
|
10267
|
+
borderRadius: "50%",
|
|
10268
|
+
backgroundColor: "rgba(255, 165, 0, 0.9)",
|
|
10269
|
+
border: "2px solid #fff",
|
|
10270
|
+
boxShadow: "0 1px 3px rgba(0,0,0,0.3)",
|
|
10271
|
+
display: "flex",
|
|
10272
|
+
alignItems: "center",
|
|
10273
|
+
justifyContent: "center",
|
|
10274
|
+
fontSize: 10,
|
|
10275
|
+
fontWeight: 700,
|
|
10276
|
+
color: "#fff",
|
|
10277
|
+
lineHeight: 1
|
|
10314
10278
|
},
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10279
|
+
title: marker.title,
|
|
10280
|
+
onClick: (e) => {
|
|
10281
|
+
e.stopPropagation();
|
|
10282
|
+
onCommentMarkerClick?.(marker.commentId);
|
|
10283
|
+
},
|
|
10284
|
+
children: marker.label
|
|
10285
|
+
},
|
|
10286
|
+
marker.commentId
|
|
10287
|
+
)) });
|
|
10318
10288
|
}
|
|
10319
10289
|
function ConnectorEndpointOverlay({
|
|
10320
10290
|
connector,
|
|
@@ -19397,12 +19367,9 @@ function useAnimationDragDrop({
|
|
|
19397
19367
|
}, []);
|
|
19398
19368
|
const reorderAnimations = useCallback(
|
|
19399
19369
|
(sourceIndex, targetIndex) => {
|
|
19400
|
-
updateAnimations(
|
|
19401
|
-
|
|
19402
|
-
|
|
19403
|
-
sorted.splice(targetIndex, 0, moved);
|
|
19404
|
-
return sorted.map((a, i) => ({ ...a, order: i }));
|
|
19405
|
-
});
|
|
19370
|
+
updateAnimations(
|
|
19371
|
+
(anims) => reorderAnimationTo(anims, sourceIndex, targetIndex)
|
|
19372
|
+
);
|
|
19406
19373
|
},
|
|
19407
19374
|
[updateAnimations]
|
|
19408
19375
|
);
|
|
@@ -19436,18 +19403,9 @@ function useAnimationDragDrop({
|
|
|
19436
19403
|
);
|
|
19437
19404
|
const handleMoveDown = useCallback(
|
|
19438
19405
|
(animIndex) => {
|
|
19439
|
-
|
|
19440
|
-
const sorted = [...anims].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
|
|
19441
|
-
if (animIndex >= sorted.length - 1) {
|
|
19442
|
-
return anims;
|
|
19443
|
-
}
|
|
19444
|
-
const temp = sorted[animIndex + 1];
|
|
19445
|
-
sorted[animIndex + 1] = sorted[animIndex];
|
|
19446
|
-
sorted[animIndex] = temp;
|
|
19447
|
-
return sorted.map((a, i) => ({ ...a, order: i }));
|
|
19448
|
-
});
|
|
19406
|
+
reorderAnimations(animIndex, animIndex + 1);
|
|
19449
19407
|
},
|
|
19450
|
-
[
|
|
19408
|
+
[reorderAnimations]
|
|
19451
19409
|
);
|
|
19452
19410
|
return {
|
|
19453
19411
|
dragIndex,
|
|
@@ -19698,25 +19656,12 @@ function useAnimationHandlers({
|
|
|
19698
19656
|
);
|
|
19699
19657
|
const showDirectionPicker = hasAnimation && (DIRECTIONAL_PRESETS.has(selectedElementAnimation?.entrance ?? "") || DIRECTIONAL_PRESETS.has(selectedElementAnimation?.exit ?? ""));
|
|
19700
19658
|
const timelineBarData = useMemo(() => {
|
|
19701
|
-
|
|
19702
|
-
|
|
19703
|
-
|
|
19704
|
-
|
|
19705
|
-
|
|
19706
|
-
const startMs = anim.delayMs ?? 0;
|
|
19707
|
-
const durationMs = anim.durationMs ?? 500;
|
|
19708
|
-
const endMs = startMs + durationMs;
|
|
19709
|
-
if (endMs > maxEndMs) {
|
|
19710
|
-
maxEndMs = endMs;
|
|
19711
|
-
}
|
|
19712
|
-
return { anim, startMs, durationMs, endMs };
|
|
19659
|
+
const bars = buildAnimationTimelineBars(sortedAnimations);
|
|
19660
|
+
const barsByElementId = new Map(bars.map((bar) => [bar.elementId, bar]));
|
|
19661
|
+
return sortedAnimations.flatMap((anim) => {
|
|
19662
|
+
const bar = barsByElementId.get(anim.elementId);
|
|
19663
|
+
return bar ? [{ anim, leftPercent: bar.leftPercent, widthPercent: bar.widthPercent }] : [];
|
|
19713
19664
|
});
|
|
19714
|
-
const totalMs = Math.max(maxEndMs, 1);
|
|
19715
|
-
return entries.map((entry) => ({
|
|
19716
|
-
anim: entry.anim,
|
|
19717
|
-
leftPercent: entry.startMs / totalMs * 100,
|
|
19718
|
-
widthPercent: entry.durationMs / totalMs * 100
|
|
19719
|
-
}));
|
|
19720
19665
|
}, [sortedAnimations]);
|
|
19721
19666
|
return {
|
|
19722
19667
|
selectedElementAnimation,
|
|
@@ -25732,104 +25677,6 @@ function TextFormatToggle({
|
|
|
25732
25677
|
}
|
|
25733
25678
|
);
|
|
25734
25679
|
}
|
|
25735
|
-
|
|
25736
|
-
// src/viewer/components/inspector/smartart-node-limits.ts
|
|
25737
|
-
var LAYOUT_BOUNDS = {
|
|
25738
|
-
// A Venn diagram is typically drawn with 2-3 overlapping sets; beyond a
|
|
25739
|
-
// handful of circles it becomes unreadable.
|
|
25740
|
-
venn: { min: 2, max: 3 },
|
|
25741
|
-
// A 2x2 matrix has exactly four quadrants.
|
|
25742
|
-
matrix: { min: 4, max: 4 },
|
|
25743
|
-
// Pyramids and funnels need at least two tiers to convey a hierarchy.
|
|
25744
|
-
pyramid: { min: 2, max: 5 },
|
|
25745
|
-
funnel: { min: 2, max: 5 },
|
|
25746
|
-
// A target is a small set of concentric rings.
|
|
25747
|
-
target: { min: 2, max: 5 },
|
|
25748
|
-
// Gears mesh in small clusters.
|
|
25749
|
-
gear: { min: 2, max: 3 },
|
|
25750
|
-
// Cycles need at least three steps to read as a loop.
|
|
25751
|
-
cycle: { min: 3 }
|
|
25752
|
-
// Relationship / process / list / hierarchy / timeline are flexible but
|
|
25753
|
-
// still need at least one node to exist.
|
|
25754
|
-
};
|
|
25755
|
-
var DEFAULT_BOUNDS = { min: 1 };
|
|
25756
|
-
function getSmartArtNodeBounds(layout) {
|
|
25757
|
-
if (!layout) {
|
|
25758
|
-
return DEFAULT_BOUNDS;
|
|
25759
|
-
}
|
|
25760
|
-
return LAYOUT_BOUNDS[layout] ?? DEFAULT_BOUNDS;
|
|
25761
|
-
}
|
|
25762
|
-
function canAddTopLevelNode(layout, topLevelCount) {
|
|
25763
|
-
const { max } = getSmartArtNodeBounds(layout);
|
|
25764
|
-
return max === void 0 || topLevelCount < max;
|
|
25765
|
-
}
|
|
25766
|
-
function canRemoveTopLevelNode(layout, topLevelCount) {
|
|
25767
|
-
const { min } = getSmartArtNodeBounds(layout);
|
|
25768
|
-
return topLevelCount > min;
|
|
25769
|
-
}
|
|
25770
|
-
function describeSmartArtBounds(layout) {
|
|
25771
|
-
const { min, max } = getSmartArtNodeBounds(layout);
|
|
25772
|
-
if (min <= 1 && max === void 0) {
|
|
25773
|
-
return void 0;
|
|
25774
|
-
}
|
|
25775
|
-
if (max === void 0) {
|
|
25776
|
-
return `Works best with at least ${min} items.`;
|
|
25777
|
-
}
|
|
25778
|
-
if (min === max) {
|
|
25779
|
-
return `This layout uses exactly ${max} items.`;
|
|
25780
|
-
}
|
|
25781
|
-
return `Works best with ${min} to ${max} items.`;
|
|
25782
|
-
}
|
|
25783
|
-
|
|
25784
|
-
// src/viewer/components/inspector/smartart-node-pane-handlers.ts
|
|
25785
|
-
function addSiblingAfter(data, nodeId) {
|
|
25786
|
-
const next = addSmartArtNode(data, "", nodeId);
|
|
25787
|
-
if (next === data) {
|
|
25788
|
-
return void 0;
|
|
25789
|
-
}
|
|
25790
|
-
const idx = next.nodes.findIndex((n) => n.id === nodeId);
|
|
25791
|
-
const inserted = idx >= 0 ? next.nodes[idx + 1] : void 0;
|
|
25792
|
-
return { data: next, focusNodeId: inserted?.id };
|
|
25793
|
-
}
|
|
25794
|
-
function removeEmptyNode(data, nodeId) {
|
|
25795
|
-
if (data.nodes.length <= 1) {
|
|
25796
|
-
return void 0;
|
|
25797
|
-
}
|
|
25798
|
-
const removedIndex = data.nodes.findIndex((n) => n.id === nodeId);
|
|
25799
|
-
const next = removeSmartArtNode(data, nodeId);
|
|
25800
|
-
if (next === data) {
|
|
25801
|
-
return void 0;
|
|
25802
|
-
}
|
|
25803
|
-
const focusNode = next.nodes[Math.max(0, removedIndex - 1)];
|
|
25804
|
-
return { data: next, focusNodeId: focusNode?.id };
|
|
25805
|
-
}
|
|
25806
|
-
function demote(data, nodeId) {
|
|
25807
|
-
const next = demoteSmartArtNode(data, nodeId);
|
|
25808
|
-
return next === data ? void 0 : next;
|
|
25809
|
-
}
|
|
25810
|
-
function promote(data, nodeId) {
|
|
25811
|
-
const next = promoteSmartArtNode(data, nodeId);
|
|
25812
|
-
return next === data ? void 0 : next;
|
|
25813
|
-
}
|
|
25814
|
-
function reorder(data, nodeId, direction) {
|
|
25815
|
-
const next = reorderSmartArtNode(data, nodeId, direction);
|
|
25816
|
-
return next === data ? void 0 : next;
|
|
25817
|
-
}
|
|
25818
|
-
function siblingIndex(data, nodeId) {
|
|
25819
|
-
const node = data.nodes.find((n) => n.id === nodeId);
|
|
25820
|
-
if (!node) {
|
|
25821
|
-
return -1;
|
|
25822
|
-
}
|
|
25823
|
-
const siblings = data.nodes.filter((n) => n.parentId === node.parentId);
|
|
25824
|
-
return siblings.findIndex((n) => n.id === nodeId);
|
|
25825
|
-
}
|
|
25826
|
-
function siblingCount(data, nodeId) {
|
|
25827
|
-
const node = data.nodes.find((n) => n.id === nodeId);
|
|
25828
|
-
if (!node) {
|
|
25829
|
-
return 0;
|
|
25830
|
-
}
|
|
25831
|
-
return data.nodes.filter((n) => n.parentId === node.parentId).length;
|
|
25832
|
-
}
|
|
25833
25680
|
function ProcessThumb() {
|
|
25834
25681
|
return /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 48 32", className: "w-full h-full", children: [
|
|
25835
25682
|
/* @__PURE__ */ jsx("rect", { x: "2", y: "10", width: "10", height: "12", rx: "2", fill: "currentColor", opacity: 0.7 }),
|
|
@@ -26282,7 +26129,6 @@ var COLOR_SCHEMES = [
|
|
|
26282
26129
|
"monochromatic2"
|
|
26283
26130
|
];
|
|
26284
26131
|
var STYLE_OPTIONS = ["flat", "moderate", "intense"];
|
|
26285
|
-
var TREE_CONNECTION_TYPES = /* @__PURE__ */ new Set(["parOf", "presParOf", void 0]);
|
|
26286
26132
|
function SmartArtPropertiesPanel({
|
|
26287
26133
|
smartArtData,
|
|
26288
26134
|
canEdit,
|
|
@@ -26392,9 +26238,7 @@ function SmartArtPropertiesPanel({
|
|
|
26392
26238
|
};
|
|
26393
26239
|
const boundsHint = describeSmartArtBounds(layout);
|
|
26394
26240
|
const addDisabled = !canEdit || !canAddTopLevelNode(layout, topLevelCount);
|
|
26395
|
-
const extraConnections = (smartArtData
|
|
26396
|
-
(c) => !TREE_CONNECTION_TYPES.has(c.type)
|
|
26397
|
-
);
|
|
26241
|
+
const extraConnections = classifyExtraConnections(smartArtData);
|
|
26398
26242
|
const extraConnectionSummary = Array.from(
|
|
26399
26243
|
new Set(extraConnections.map((c) => c.type ?? "unknown"))
|
|
26400
26244
|
).join(", ");
|
|
@@ -27177,20 +27021,7 @@ function TablePropertiesPanel({
|
|
|
27177
27021
|
"aria-label": preset.label,
|
|
27178
27022
|
className: "rounded border border-border hover:border-primary overflow-hidden h-10 transition-colors",
|
|
27179
27023
|
onClick: () => {
|
|
27180
|
-
|
|
27181
|
-
...row,
|
|
27182
|
-
cells: row.cells.map((cell) => ({
|
|
27183
|
-
...cell,
|
|
27184
|
-
style: {
|
|
27185
|
-
...cell.style,
|
|
27186
|
-
backgroundColor: ri === 0 && td.firstRowHeader ? preset.headerBg : td.bandedRows && (ri - (td.firstRowHeader ? 1 : 0)) % 2 === 0 ? preset.bandBg : void 0,
|
|
27187
|
-
color: ri === 0 && td.firstRowHeader ? preset.headerFg : cell.style?.color,
|
|
27188
|
-
bold: ri === 0 && td.firstRowHeader ? true : cell.style?.bold,
|
|
27189
|
-
borderColor: preset.borderColor
|
|
27190
|
-
}
|
|
27191
|
-
}))
|
|
27192
|
-
}));
|
|
27193
|
-
updateTableData({ rows: newRows });
|
|
27024
|
+
updateTableData({ rows: applyTableStylePreset(td, preset) });
|
|
27194
27025
|
},
|
|
27195
27026
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full", children: [
|
|
27196
27027
|
/* @__PURE__ */ jsx("div", { className: "flex-1", style: { backgroundColor: preset.headerBg } }),
|
|
@@ -27211,10 +27042,7 @@ function TablePropertiesPanel({
|
|
|
27211
27042
|
className: BTN,
|
|
27212
27043
|
disabled: !canEdit,
|
|
27213
27044
|
onClick: () => {
|
|
27214
|
-
|
|
27215
|
-
updateTableData({
|
|
27216
|
-
columnWidths: Array(colCount).fill(even)
|
|
27217
|
-
});
|
|
27045
|
+
updateTableData({ columnWidths: evenColumnWidths(colCount) });
|
|
27218
27046
|
},
|
|
27219
27047
|
children: t("pptx.table.even")
|
|
27220
27048
|
}
|
|
@@ -27233,24 +27061,9 @@ function TablePropertiesPanel({
|
|
|
27233
27061
|
className: "flex-1 accent-primary",
|
|
27234
27062
|
onChange: (e) => {
|
|
27235
27063
|
const newPct = Number(e.target.value) / 100;
|
|
27236
|
-
|
|
27237
|
-
|
|
27238
|
-
|
|
27239
|
-
newWidths[ci] = newPct;
|
|
27240
|
-
const othersTotal = 1 - oldPct;
|
|
27241
|
-
if (othersTotal > 0) {
|
|
27242
|
-
for (let j = 0; j < newWidths.length; j++) {
|
|
27243
|
-
if (j !== ci) {
|
|
27244
|
-
newWidths[j] = Math.max(
|
|
27245
|
-
0.05,
|
|
27246
|
-
td.columnWidths[j] - diff * (td.columnWidths[j] / othersTotal)
|
|
27247
|
-
);
|
|
27248
|
-
}
|
|
27249
|
-
}
|
|
27250
|
-
}
|
|
27251
|
-
const sum = newWidths.reduce((a, b) => a + b, 0);
|
|
27252
|
-
const normed = newWidths.map((v) => v / sum);
|
|
27253
|
-
updateTableData({ columnWidths: normed });
|
|
27064
|
+
updateTableData({
|
|
27065
|
+
columnWidths: redistributeColumnWidth(td.columnWidths, ci, newPct)
|
|
27066
|
+
});
|
|
27254
27067
|
}
|
|
27255
27068
|
}
|
|
27256
27069
|
),
|
|
@@ -27270,10 +27083,7 @@ function TablePropertiesPanel({
|
|
|
27270
27083
|
className: BTN,
|
|
27271
27084
|
disabled: !canEdit,
|
|
27272
27085
|
onClick: () => {
|
|
27273
|
-
|
|
27274
|
-
updateTableData({
|
|
27275
|
-
rows: td.rows.map((r) => ({ ...r, height: avg }))
|
|
27276
|
-
});
|
|
27086
|
+
updateTableData({ rows: evenRowHeights(td.rows) });
|
|
27277
27087
|
},
|
|
27278
27088
|
children: t("pptx.table.even")
|
|
27279
27089
|
}
|
|
@@ -34690,7 +34500,7 @@ ${url}`)) {
|
|
|
34690
34500
|
var AiChatPanel = lazy(async () => {
|
|
34691
34501
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
34692
34502
|
import('@ai-sdk/react'),
|
|
34693
|
-
import('./AiChatPanel-
|
|
34503
|
+
import('./AiChatPanel-NRWACXJ7.mjs')
|
|
34694
34504
|
]);
|
|
34695
34505
|
function BoundAiChatPanel(props) {
|
|
34696
34506
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -36154,7 +35964,25 @@ var HeaderFooterPanel = ({
|
|
|
36154
35964
|
] })
|
|
36155
35965
|
] }) });
|
|
36156
35966
|
};
|
|
35967
|
+
function isActionKey(key) {
|
|
35968
|
+
return key === "slides" || key === "insert" || key === "inspector" || key === "comments" || key === "notes";
|
|
35969
|
+
}
|
|
35970
|
+
var LABEL_BY_KEY = {
|
|
35971
|
+
slides: "pptx.sections.slides",
|
|
35972
|
+
insert: "pptx.mobileBar.insert",
|
|
35973
|
+
inspector: "pptx.field.format",
|
|
35974
|
+
comments: "pptx.toolbar.comments",
|
|
35975
|
+
notes: "pptx.notes.title"
|
|
35976
|
+
};
|
|
35977
|
+
var ICON_BY_KEY = {
|
|
35978
|
+
slides: LuLayers,
|
|
35979
|
+
insert: LuPlus,
|
|
35980
|
+
inspector: LuSettings2,
|
|
35981
|
+
comments: LuMessageSquare,
|
|
35982
|
+
notes: LuStickyNote
|
|
35983
|
+
};
|
|
36157
35984
|
function MobileBottomBar({
|
|
35985
|
+
slideCount,
|
|
36158
35986
|
onOpenSlides,
|
|
36159
35987
|
onOpenInsert,
|
|
36160
35988
|
onOpenInspector,
|
|
@@ -36163,54 +35991,38 @@ function MobileBottomBar({
|
|
|
36163
35991
|
activeSheet,
|
|
36164
35992
|
commentCount
|
|
36165
35993
|
}) {
|
|
36166
|
-
const { t } = useTranslation()
|
|
36167
|
-
|
|
36168
|
-
|
|
36169
|
-
|
|
36170
|
-
|
|
36171
|
-
|
|
36172
|
-
|
|
36173
|
-
|
|
36174
|
-
{
|
|
36175
|
-
key
|
|
36176
|
-
label:
|
|
36177
|
-
icon:
|
|
36178
|
-
onClick:
|
|
36179
|
-
|
|
36180
|
-
|
|
36181
|
-
|
|
36182
|
-
|
|
36183
|
-
icon: LuSettings2,
|
|
36184
|
-
onClick: onOpenInspector
|
|
36185
|
-
},
|
|
36186
|
-
{
|
|
36187
|
-
key: "comments",
|
|
36188
|
-
label: "pptx.toolbar.comments",
|
|
36189
|
-
icon: LuMessageSquare,
|
|
36190
|
-
onClick: onOpenComments,
|
|
36191
|
-
badge: commentCount
|
|
36192
|
-
},
|
|
36193
|
-
{
|
|
36194
|
-
key: "notes",
|
|
36195
|
-
label: "pptx.notes.title",
|
|
36196
|
-
icon: LuStickyNote,
|
|
36197
|
-
onClick: onToggleNotes
|
|
36198
|
-
}
|
|
36199
|
-
];
|
|
35994
|
+
const { t } = useTranslation(), onClickByKey = {
|
|
35995
|
+
slides: onOpenSlides,
|
|
35996
|
+
insert: onOpenInsert,
|
|
35997
|
+
inspector: onOpenInspector,
|
|
35998
|
+
comments: onOpenComments,
|
|
35999
|
+
notes: onToggleNotes
|
|
36000
|
+
}, actions = buildBarActions({ slideCount }).filter((descriptor) => isActionKey(descriptor.key)).map((descriptor) => {
|
|
36001
|
+
const key = descriptor.key;
|
|
36002
|
+
return {
|
|
36003
|
+
key,
|
|
36004
|
+
label: LABEL_BY_KEY[key],
|
|
36005
|
+
icon: ICON_BY_KEY[key],
|
|
36006
|
+
onClick: onClickByKey[key],
|
|
36007
|
+
disabled: descriptor.disabled,
|
|
36008
|
+
badge: key === "comments" ? commentCount : void 0
|
|
36009
|
+
};
|
|
36010
|
+
});
|
|
36200
36011
|
return /* @__PURE__ */ jsx(
|
|
36201
36012
|
"nav",
|
|
36202
36013
|
{
|
|
36203
36014
|
"aria-label": t("pptx.mobileBar.ariaLabel"),
|
|
36204
36015
|
className: "flex items-stretch justify-around border-t border-border bg-secondary/80 backdrop-blur supports-[backdrop-filter]:bg-secondary/60 pb-[max(env(safe-area-inset-bottom),0px)]",
|
|
36205
|
-
children: actions.map(({ key, label, icon: Icon, onClick, badge }) => {
|
|
36016
|
+
children: actions.map(({ key, label, icon: Icon, onClick, disabled, badge }) => {
|
|
36206
36017
|
const active = activeSheet === key;
|
|
36207
36018
|
return /* @__PURE__ */ jsxs(
|
|
36208
36019
|
"button",
|
|
36209
36020
|
{
|
|
36210
36021
|
type: "button",
|
|
36211
36022
|
onClick,
|
|
36023
|
+
disabled,
|
|
36212
36024
|
className: cn(
|
|
36213
|
-
"relative flex flex-col items-center justify-center gap-0.5 flex-1 min-h-[56px] py-1.5 text-[10px] font-medium transition-colors active:scale-95",
|
|
36025
|
+
"relative flex flex-col items-center justify-center gap-0.5 flex-1 min-h-[56px] py-1.5 text-[10px] font-medium transition-colors active:scale-95 disabled:opacity-40 disabled:pointer-events-none",
|
|
36214
36026
|
active ? "text-primary" : "text-muted-foreground hover:text-foreground"
|
|
36215
36027
|
),
|
|
36216
36028
|
"aria-pressed": active,
|
|
@@ -36245,6 +36057,10 @@ function MobileSlidesSheet({
|
|
|
36245
36057
|
}
|
|
36246
36058
|
);
|
|
36247
36059
|
}
|
|
36060
|
+
function nextMobileSheet(current, tapped) {
|
|
36061
|
+
const next = toggleSheet(current, tapped);
|
|
36062
|
+
return next === tapped ? tapped : null;
|
|
36063
|
+
}
|
|
36248
36064
|
function MobileChromeOverlay(props) {
|
|
36249
36065
|
const {
|
|
36250
36066
|
state: s,
|
|
@@ -36256,15 +36072,11 @@ function MobileChromeOverlay(props) {
|
|
|
36256
36072
|
slideSectionGroups,
|
|
36257
36073
|
canEdit,
|
|
36258
36074
|
commentCount
|
|
36259
|
-
} = props
|
|
36260
|
-
const { keyboardInset, isKeyboardOpen } = useKeyboardInsets();
|
|
36261
|
-
const activeSheet = s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null;
|
|
36262
|
-
const closeAllSheets = () => {
|
|
36075
|
+
} = props, { keyboardInset, isKeyboardOpen } = useKeyboardInsets(), activeSheet = s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
|
|
36263
36076
|
s.setIsSlidesPaneOpen(false);
|
|
36264
36077
|
s.setIsInspectorPaneOpen(false);
|
|
36265
36078
|
s.setIsSlideNotesCollapsed(true);
|
|
36266
|
-
}
|
|
36267
|
-
const openSheet = (which) => {
|
|
36079
|
+
}, openSheet = (which) => {
|
|
36268
36080
|
closeAllSheets();
|
|
36269
36081
|
switch (which) {
|
|
36270
36082
|
case "slides":
|
|
@@ -36282,6 +36094,12 @@ function MobileChromeOverlay(props) {
|
|
|
36282
36094
|
s.setIsSlideNotesCollapsed(false);
|
|
36283
36095
|
break;
|
|
36284
36096
|
}
|
|
36097
|
+
}, applySheetTap = (tapped) => {
|
|
36098
|
+
const next = nextMobileSheet(activeSheet, tapped);
|
|
36099
|
+
closeAllSheets();
|
|
36100
|
+
if (next) {
|
|
36101
|
+
openSheet(next);
|
|
36102
|
+
}
|
|
36285
36103
|
};
|
|
36286
36104
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36287
36105
|
/* @__PURE__ */ jsx(
|
|
@@ -36327,15 +36145,16 @@ function MobileChromeOverlay(props) {
|
|
|
36327
36145
|
children: /* @__PURE__ */ jsx(
|
|
36328
36146
|
MobileBottomBar,
|
|
36329
36147
|
{
|
|
36148
|
+
slideCount: slides.length,
|
|
36330
36149
|
activeSheet,
|
|
36331
36150
|
commentCount,
|
|
36332
|
-
onOpenSlides: () =>
|
|
36151
|
+
onOpenSlides: () => applySheetTap("slides"),
|
|
36333
36152
|
onOpenInsert: () => {
|
|
36334
36153
|
editorOps.insertHandlers.handleAddTextBox();
|
|
36335
36154
|
},
|
|
36336
|
-
onOpenInspector: () =>
|
|
36337
|
-
onOpenComments: () =>
|
|
36338
|
-
onToggleNotes: () =>
|
|
36155
|
+
onOpenInspector: () => applySheetTap("inspector"),
|
|
36156
|
+
onOpenComments: () => applySheetTap("comments"),
|
|
36157
|
+
onToggleNotes: () => applySheetTap("notes")
|
|
36339
36158
|
}
|
|
36340
36159
|
)
|
|
36341
36160
|
}
|
|
@@ -36478,13 +36297,9 @@ function ControlRow({
|
|
|
36478
36297
|
step: control.step ?? 1,
|
|
36479
36298
|
value: typeof value === "number" ? value : control.min,
|
|
36480
36299
|
onChange: (event) => {
|
|
36481
|
-
const
|
|
36482
|
-
if (
|
|
36483
|
-
onOptionChange(
|
|
36484
|
-
control.group,
|
|
36485
|
-
control.key,
|
|
36486
|
-
Math.min(control.max, Math.max(control.min, parsed))
|
|
36487
|
-
);
|
|
36300
|
+
const clamped = clampOptionNumber(event.target.value, control.min, control.max);
|
|
36301
|
+
if (clamped !== void 0) {
|
|
36302
|
+
onOptionChange(control.group, control.key, clamped);
|
|
36488
36303
|
}
|
|
36489
36304
|
}
|
|
36490
36305
|
}
|