pptx-react-viewer 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/dist/{AiChatPanel-C3E7NLX3.mjs → AiChatPanel-BNFDBP4S.mjs} +9 -8
- package/dist/AiChatPanel-BNFDBP4S.mjs.br +0 -0
- package/dist/AiChatPanel-BNFDBP4S.mjs.gz +0 -0
- package/dist/{AiChatPanel-TKBVSYD2.js → AiChatPanel-WNQCTQB5.js} +29 -28
- package/dist/AiChatPanel-WNQCTQB5.js.br +0 -0
- package/dist/AiChatPanel-WNQCTQB5.js.gz +0 -0
- package/dist/{Area3DChartScene-3A3CXKN3.js → Area3DChartScene-FXBSLIGX.js} +2 -2
- package/dist/Area3DChartScene-FXBSLIGX.js.br +0 -0
- package/dist/Area3DChartScene-FXBSLIGX.js.gz +0 -0
- package/dist/{Area3DChartScene-7YCFWEGX.mjs → Area3DChartScene-SAQVRYOH.mjs} +1 -1
- package/dist/Area3DChartScene-SAQVRYOH.mjs.br +0 -0
- package/dist/Area3DChartScene-SAQVRYOH.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-BDUENAWJ.js → Bar3DChartScene-7HVUTP2E.js} +2 -2
- package/dist/Bar3DChartScene-7HVUTP2E.js.br +0 -0
- package/dist/Bar3DChartScene-7HVUTP2E.js.gz +0 -0
- package/dist/{Bar3DChartScene-7CNSJ35X.mjs → Bar3DChartScene-LUA6E2K6.mjs} +1 -1
- package/dist/Bar3DChartScene-LUA6E2K6.mjs.br +3 -0
- package/dist/Bar3DChartScene-LUA6E2K6.mjs.gz +0 -0
- package/dist/{Line3DChartScene-SMTHK6MD.mjs → Line3DChartScene-IW4JGH57.mjs} +1 -1
- package/dist/Line3DChartScene-IW4JGH57.mjs.br +0 -0
- package/dist/Line3DChartScene-IW4JGH57.mjs.gz +0 -0
- package/dist/{Line3DChartScene-R352CZ5U.js → Line3DChartScene-OVPULUTF.js} +2 -2
- package/dist/Line3DChartScene-OVPULUTF.js.br +0 -0
- package/dist/Line3DChartScene-OVPULUTF.js.gz +0 -0
- package/dist/{Model3DScene-Y4SGFQYW.js → Model3DScene-5KP6BVCV.js} +2 -2
- package/dist/Model3DScene-5KP6BVCV.js.br +0 -0
- package/dist/Model3DScene-5KP6BVCV.js.gz +0 -0
- package/dist/{Model3DScene-AUVJXXPV.mjs → Model3DScene-BERTZYCJ.mjs} +1 -1
- package/dist/Model3DScene-BERTZYCJ.mjs.br +0 -0
- package/dist/Model3DScene-BERTZYCJ.mjs.gz +0 -0
- package/dist/{PieChart3DScene-TK2VT4RS.js → PieChart3DScene-3R2ETTGA.js} +2 -2
- package/dist/PieChart3DScene-3R2ETTGA.js.br +0 -0
- package/dist/PieChart3DScene-3R2ETTGA.js.gz +0 -0
- package/dist/{PieChart3DScene-UD7GRH55.mjs → PieChart3DScene-O6FFK5L7.mjs} +1 -1
- package/dist/PieChart3DScene-O6FFK5L7.mjs.br +0 -0
- package/dist/PieChart3DScene-O6FFK5L7.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-TXY6UZSW.mjs → SurfaceChart3DScene-OCR26R5D.mjs} +1 -1
- package/dist/SurfaceChart3DScene-OCR26R5D.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-OCR26R5D.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-ERFXZW2O.js → SurfaceChart3DScene-TGFAOLHL.js} +2 -2
- package/dist/SurfaceChart3DScene-TGFAOLHL.js.br +0 -0
- package/dist/SurfaceChart3DScene-TGFAOLHL.js.gz +0 -0
- package/dist/{chunk-RX6FE24O.mjs → chunk-2FTJAMFA.mjs} +294 -61
- package/dist/chunk-2FTJAMFA.mjs.br +0 -0
- package/dist/chunk-2FTJAMFA.mjs.gz +0 -0
- package/dist/{chunk-PPNXPEEZ.mjs → chunk-3B5FRKYU.mjs} +130 -437
- package/dist/chunk-3B5FRKYU.mjs.br +0 -0
- package/dist/chunk-3B5FRKYU.mjs.gz +0 -0
- package/dist/{chunk-ALO4ZOHQ.js → chunk-3P7FYHJH.js} +1 -0
- package/dist/chunk-3P7FYHJH.js.br +0 -0
- package/dist/chunk-3P7FYHJH.js.gz +0 -0
- package/dist/{chunk-B6UIVRFA.js → chunk-44CQ67GQ.js} +173 -262
- package/dist/chunk-44CQ67GQ.js.br +0 -0
- package/dist/chunk-44CQ67GQ.js.gz +0 -0
- package/dist/{chunk-RHSA5BW5.mjs → chunk-AMRT3AE4.mjs} +1 -0
- package/dist/chunk-AMRT3AE4.mjs.br +0 -0
- package/dist/chunk-AMRT3AE4.mjs.gz +0 -0
- package/dist/{chunk-G7UBIKAG.mjs → chunk-DM2IZCSD.mjs} +2429 -39
- package/dist/chunk-DM2IZCSD.mjs.br +0 -0
- package/dist/{chunk-G7UBIKAG.mjs.gz → chunk-DM2IZCSD.mjs.gz} +0 -0
- package/dist/{chunk-Q52HT4EZ.js → chunk-FSQCEAMG.js} +299 -63
- package/dist/chunk-FSQCEAMG.js.br +0 -0
- package/dist/chunk-FSQCEAMG.js.gz +0 -0
- package/dist/{chunk-ARQGUUYU.js → chunk-GR6SJJIT.js} +449 -723
- package/dist/chunk-GR6SJJIT.js.br +0 -0
- package/dist/chunk-GR6SJJIT.js.gz +0 -0
- package/dist/{chunk-FMEEIS6L.mjs → chunk-ITN5NYYM.mjs} +10 -98
- package/dist/chunk-ITN5NYYM.mjs.br +0 -0
- package/dist/chunk-ITN5NYYM.mjs.gz +0 -0
- package/dist/{chunk-FJDZ7AEE.js → chunk-K6R2JNCK.js} +2459 -45
- package/dist/chunk-K6R2JNCK.js.br +0 -0
- package/dist/{chunk-FJDZ7AEE.js.gz → chunk-K6R2JNCK.js.gz} +0 -0
- package/dist/{chunk-UHR7EYFM.mjs → chunk-QEEU4S4Z.mjs} +50 -324
- package/dist/chunk-QEEU4S4Z.mjs.br +0 -0
- package/dist/chunk-QEEU4S4Z.mjs.gz +0 -0
- package/dist/{chunk-RRAL4Y7V.js → chunk-QKSYKQEL.js} +1236 -1543
- package/dist/chunk-QKSYKQEL.js.br +0 -0
- package/dist/chunk-QKSYKQEL.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 +4 -6
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.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-C3E7NLX3.mjs.br +0 -0
- package/dist/AiChatPanel-C3E7NLX3.mjs.gz +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.br +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.gz +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.br +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.gz +0 -0
- package/dist/Area3DChartScene-7YCFWEGX.mjs.br +0 -3
- package/dist/Area3DChartScene-7YCFWEGX.mjs.gz +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.br +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.gz +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.br +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.gz +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.br +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.gz +0 -0
- package/dist/Line3DChartScene-SMTHK6MD.mjs.br +0 -3
- package/dist/Line3DChartScene-SMTHK6MD.mjs.gz +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.br +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.gz +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.br +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.gz +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.br +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.gz +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.br +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.br +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.gz +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.gz +0 -0
- package/dist/chunk-ALO4ZOHQ.js.br +0 -0
- package/dist/chunk-ALO4ZOHQ.js.gz +0 -0
- package/dist/chunk-ARQGUUYU.js.br +0 -0
- package/dist/chunk-ARQGUUYU.js.gz +0 -0
- package/dist/chunk-B6UIVRFA.js.br +0 -0
- package/dist/chunk-B6UIVRFA.js.gz +0 -0
- package/dist/chunk-FJDZ7AEE.js.br +0 -0
- package/dist/chunk-FMEEIS6L.mjs.br +0 -0
- package/dist/chunk-FMEEIS6L.mjs.gz +0 -0
- package/dist/chunk-G7UBIKAG.mjs.br +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.br +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.gz +0 -0
- package/dist/chunk-Q52HT4EZ.js.br +0 -0
- package/dist/chunk-Q52HT4EZ.js.gz +0 -0
- package/dist/chunk-RHSA5BW5.mjs.br +0 -0
- package/dist/chunk-RHSA5BW5.mjs.gz +0 -0
- package/dist/chunk-RRAL4Y7V.js.br +0 -0
- package/dist/chunk-RRAL4Y7V.js.gz +0 -0
- package/dist/chunk-RX6FE24O.mjs.br +0 -0
- package/dist/chunk-RX6FE24O.mjs.gz +0 -0
- package/dist/chunk-UHR7EYFM.mjs.br +0 -0
- package/dist/chunk-UHR7EYFM.mjs.gz +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore,
|
|
2
|
-
import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-
|
|
3
|
-
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, 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 { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, isWedgeCalloutPresetShape, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, 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, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-G7UBIKAG.mjs';
|
|
5
|
-
import { LOCALE_CATALOG, translationsEn } from './chunk-
|
|
1
|
+
import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-2FTJAMFA.mjs';
|
|
2
|
+
import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-QEEU4S4Z.mjs';
|
|
3
|
+
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, 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-ITN5NYYM.mjs';
|
|
4
|
+
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, isWedgeCalloutPresetShape, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, 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, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, 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, buildFontCatalog, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, isSeriesUsingSecondaryAxis, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-DM2IZCSD.mjs';
|
|
5
|
+
import { LOCALE_CATALOG, translationsEn } from './chunk-AMRT3AE4.mjs';
|
|
6
6
|
import React19, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, Fragment as Fragment$1, useDeferredValue } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
@@ -514,7 +514,7 @@ function FailedToLoad() {
|
|
|
514
514
|
var LazyArea3DChartScene = React19.lazy(
|
|
515
515
|
async () => {
|
|
516
516
|
try {
|
|
517
|
-
return await import('./Area3DChartScene-
|
|
517
|
+
return await import('./Area3DChartScene-SAQVRYOH.mjs');
|
|
518
518
|
} catch {
|
|
519
519
|
return { default: FailedToLoad };
|
|
520
520
|
}
|
|
@@ -570,7 +570,7 @@ function FailedToLoad2() {
|
|
|
570
570
|
var LazyBar3DChartScene = React19.lazy(
|
|
571
571
|
async () => {
|
|
572
572
|
try {
|
|
573
|
-
return await import('./Bar3DChartScene-
|
|
573
|
+
return await import('./Bar3DChartScene-LUA6E2K6.mjs');
|
|
574
574
|
} catch {
|
|
575
575
|
return { default: FailedToLoad2 };
|
|
576
576
|
}
|
|
@@ -626,7 +626,7 @@ function FailedToLoad3() {
|
|
|
626
626
|
var LazyLine3DChartScene = React19.lazy(
|
|
627
627
|
async () => {
|
|
628
628
|
try {
|
|
629
|
-
return await import('./Line3DChartScene-
|
|
629
|
+
return await import('./Line3DChartScene-IW4JGH57.mjs');
|
|
630
630
|
} catch {
|
|
631
631
|
return { default: FailedToLoad3 };
|
|
632
632
|
}
|
|
@@ -682,7 +682,7 @@ function FailedToLoad4() {
|
|
|
682
682
|
var LazyPieChart3DScene = React19.lazy(
|
|
683
683
|
async () => {
|
|
684
684
|
try {
|
|
685
|
-
return await import('./PieChart3DScene-
|
|
685
|
+
return await import('./PieChart3DScene-O6FFK5L7.mjs');
|
|
686
686
|
} catch {
|
|
687
687
|
return { default: FailedToLoad4 };
|
|
688
688
|
}
|
|
@@ -738,7 +738,7 @@ function FailedToLoad5() {
|
|
|
738
738
|
var LazySurfaceChart3DScene = React19.lazy(
|
|
739
739
|
async () => {
|
|
740
740
|
try {
|
|
741
|
-
return await import('./SurfaceChart3DScene-
|
|
741
|
+
return await import('./SurfaceChart3DScene-OCR26R5D.mjs');
|
|
742
742
|
} catch {
|
|
743
743
|
return { default: FailedToLoad5 };
|
|
744
744
|
}
|
|
@@ -2402,6 +2402,9 @@ var ElementRenderer = React19.memo(
|
|
|
2402
2402
|
findHl: findHighlights,
|
|
2403
2403
|
onHyperlinkClick,
|
|
2404
2404
|
isPresentationPassive,
|
|
2405
|
+
// Same rule as the other four bindings: the hint belongs to the
|
|
2406
|
+
// editable canvas, not to a read-only viewer or the show stage.
|
|
2407
|
+
placeholderPromptMode: canInteract && !isPresentationPassive ? "edit" : "present",
|
|
2405
2408
|
handleMediaPlayStateChange,
|
|
2406
2409
|
presentationElementStates,
|
|
2407
2410
|
slideElements: activeSlide?.elements,
|
|
@@ -3018,35 +3021,14 @@ function FailedToLoad6() {
|
|
|
3018
3021
|
var LazyModel3DScene = React19.lazy(
|
|
3019
3022
|
async () => {
|
|
3020
3023
|
try {
|
|
3021
|
-
return await import('./Model3DScene-
|
|
3024
|
+
return await import('./Model3DScene-BERTZYCJ.mjs');
|
|
3022
3025
|
} catch {
|
|
3023
3026
|
return { default: FailedToLoad6 };
|
|
3024
3027
|
}
|
|
3025
3028
|
}
|
|
3026
3029
|
);
|
|
3027
|
-
function dataUrlToBlobUrl(dataUrl) {
|
|
3028
|
-
|
|
3029
|
-
return void 0;
|
|
3030
|
-
}
|
|
3031
|
-
try {
|
|
3032
|
-
const commaIdx = dataUrl.indexOf(",");
|
|
3033
|
-
if (commaIdx === -1) {
|
|
3034
|
-
return void 0;
|
|
3035
|
-
}
|
|
3036
|
-
const meta = dataUrl.slice(0, commaIdx);
|
|
3037
|
-
const base64 = dataUrl.slice(commaIdx + 1);
|
|
3038
|
-
const mimeMatch = meta.match(/data:(?<mime>[^;]+)/u);
|
|
3039
|
-
const mime = mimeMatch?.groups?.mime ?? "application/octet-stream";
|
|
3040
|
-
const binary = atob(base64);
|
|
3041
|
-
const bytes = new Uint8Array(binary.length);
|
|
3042
|
-
for (let i = 0; i < binary.length; i++) {
|
|
3043
|
-
bytes[i] = binary.charCodeAt(i);
|
|
3044
|
-
}
|
|
3045
|
-
const blob = new Blob([bytes], { type: mime });
|
|
3046
|
-
return URL.createObjectURL(blob);
|
|
3047
|
-
} catch {
|
|
3048
|
-
return void 0;
|
|
3049
|
-
}
|
|
3030
|
+
function dataUrlToBlobUrl(dataUrl, mimeType) {
|
|
3031
|
+
return modelDataToBlobUrl(dataUrl, mimeType);
|
|
3050
3032
|
}
|
|
3051
3033
|
function PosterFallback({
|
|
3052
3034
|
element,
|
|
@@ -3134,7 +3116,10 @@ function Model3DRenderer({ element, width, height, interactive }) {
|
|
|
3134
3116
|
cancelled = true;
|
|
3135
3117
|
};
|
|
3136
3118
|
}, []);
|
|
3137
|
-
const blobUrl = useMemo(
|
|
3119
|
+
const blobUrl = useMemo(
|
|
3120
|
+
() => dataUrlToBlobUrl(element.modelData, element.modelMimeType),
|
|
3121
|
+
[element.modelData, element.modelMimeType]
|
|
3122
|
+
);
|
|
3138
3123
|
useEffect(() => {
|
|
3139
3124
|
return () => {
|
|
3140
3125
|
if (blobUrl) {
|
|
@@ -4389,6 +4374,7 @@ function renderTextElementBody(options) {
|
|
|
4389
4374
|
fieldContext,
|
|
4390
4375
|
presentationElementStates,
|
|
4391
4376
|
isPresentationPassive,
|
|
4377
|
+
placeholderPromptMode = "present",
|
|
4392
4378
|
slideElements
|
|
4393
4379
|
} = options;
|
|
4394
4380
|
const isLinkedTextBox2 = isLinkedTextBox(el);
|
|
@@ -4407,7 +4393,8 @@ function renderTextElementBody(options) {
|
|
|
4407
4393
|
...isLinkedTextBox2 ? { overflow: "hidden" } : {}
|
|
4408
4394
|
};
|
|
4409
4395
|
const shapeType = "shapeType" in el ? el.shapeType : void 0;
|
|
4410
|
-
const
|
|
4396
|
+
const placeholderPrompt = placeholderPromptDescriptor(el, placeholderPromptMode);
|
|
4397
|
+
const shouldRenderText = isTxtEl || placeholderPrompt !== null;
|
|
4411
4398
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4412
4399
|
vecShape,
|
|
4413
4400
|
isActionButtonShape(shapeType) && /* @__PURE__ */ jsx(ActionButtonGlyphOverlay, { element: el }),
|
|
@@ -4453,7 +4440,8 @@ function renderTextElementBody(options) {
|
|
|
4453
4440
|
fieldContext,
|
|
4454
4441
|
presentationElementStates,
|
|
4455
4442
|
linkedSegments ?? void 0,
|
|
4456
|
-
!isPresentationPassive
|
|
4443
|
+
!isPresentationPassive,
|
|
4444
|
+
placeholderPrompt
|
|
4457
4445
|
)
|
|
4458
4446
|
}
|
|
4459
4447
|
))
|
|
@@ -5009,6 +4997,7 @@ function StaticElementRendererImpl({
|
|
|
5009
4997
|
// mode, so without saying so a video here would carry Chrome's
|
|
5010
4998
|
// scrubber over a slide nobody can play.
|
|
5011
4999
|
isStaticSurface: true,
|
|
5000
|
+
placeholderPromptMode: "thumbnail",
|
|
5012
5001
|
slideElements: activeSlide?.elements,
|
|
5013
5002
|
allSlides,
|
|
5014
5003
|
sourceSlideIndex,
|
|
@@ -5723,13 +5712,12 @@ var ATXT = [
|
|
|
5723
5712
|
{ id: "right", i: /* @__PURE__ */ jsx(LuAlignRight, { className: ic }), labelKey: "pptx.ribbon.alignRight" },
|
|
5724
5713
|
{ id: "justify", i: /* @__PURE__ */ jsx(LuAlignJustify, { className: ic }), labelKey: "pptx.ribbon.justify" }
|
|
5725
5714
|
];
|
|
5726
|
-
var DEFAULT_STROKE_WIDTH = 1;
|
|
5727
5715
|
function ShapeArrangeExtras(p) {
|
|
5728
5716
|
const { t } = useTranslation();
|
|
5729
|
-
const canGroup = p.canEdit
|
|
5730
|
-
const canUngroup = p.canEdit
|
|
5731
|
-
const
|
|
5732
|
-
const strokeWidth =
|
|
5717
|
+
const canGroup = canGroupSelection(p.canEdit, p.selectedCount);
|
|
5718
|
+
const canUngroup = canUngroupSelection(p.canEdit, p.selectedElement);
|
|
5719
|
+
const canStrokeWidth = canSetStrokeWidth(p.canEdit, p.selectedElement);
|
|
5720
|
+
const strokeWidth = strokeWidthOf(p.selectedElement);
|
|
5733
5721
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5734
5722
|
/* @__PURE__ */ jsxs("div", { className: grp, children: [
|
|
5735
5723
|
/* @__PURE__ */ jsx(
|
|
@@ -5764,7 +5752,7 @@ function ShapeArrangeExtras(p) {
|
|
|
5764
5752
|
min: "0",
|
|
5765
5753
|
max: "120",
|
|
5766
5754
|
step: "0.5",
|
|
5767
|
-
disabled: !
|
|
5755
|
+
disabled: !canStrokeWidth,
|
|
5768
5756
|
"aria-label": t("pptx.ribbon.strokeWidth"),
|
|
5769
5757
|
title: t("pptx.ribbon.strokeWidth"),
|
|
5770
5758
|
value: strokeWidth,
|
|
@@ -6291,7 +6279,7 @@ function AccountPage() {
|
|
|
6291
6279
|
return void 0;
|
|
6292
6280
|
});
|
|
6293
6281
|
};
|
|
6294
|
-
const version = "3.
|
|
6282
|
+
const version = "3.2.0" ;
|
|
6295
6283
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
6296
6284
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
6297
6285
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -7062,7 +7050,6 @@ function extractFontInfo(element, themeFonts) {
|
|
|
7062
7050
|
fontSize: fontSize !== void 0 && fontSize !== null ? String(fontSize) : defaults.fontSize
|
|
7063
7051
|
};
|
|
7064
7052
|
}
|
|
7065
|
-
var COMMON_SIZES = [8, 9, 10, 11, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 44, 48, 54, 60, 72, 96];
|
|
7066
7053
|
function HomeSection(p) {
|
|
7067
7054
|
const { t } = useTranslation();
|
|
7068
7055
|
const [fontMenuOpen, setFontMenuOpen] = useState(false);
|
|
@@ -7220,7 +7207,7 @@ function HomeSection(p) {
|
|
|
7220
7207
|
]
|
|
7221
7208
|
}
|
|
7222
7209
|
),
|
|
7223
|
-
sizeMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: sizeMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children:
|
|
7210
|
+
sizeMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: sizeMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: COMMON_FONT_SIZES.map((s) => /* @__PURE__ */ jsx(
|
|
7224
7211
|
"button",
|
|
7225
7212
|
{
|
|
7226
7213
|
type: "button",
|
|
@@ -11927,7 +11914,7 @@ function useDrawingOverlay({
|
|
|
11927
11914
|
},
|
|
11928
11915
|
[zoom.canvasStageRef, zoom.editorScale]
|
|
11929
11916
|
);
|
|
11930
|
-
const
|
|
11917
|
+
const buildPathD = useCallback((pts) => {
|
|
11931
11918
|
if (pts.length === 0) {
|
|
11932
11919
|
return "";
|
|
11933
11920
|
}
|
|
@@ -12056,7 +12043,7 @@ function useDrawingOverlay({
|
|
|
12056
12043
|
};
|
|
12057
12044
|
onAddFreeformShape?.(freeformShape);
|
|
12058
12045
|
} else {
|
|
12059
|
-
const pathD =
|
|
12046
|
+
const pathD = buildPathD(relPoints);
|
|
12060
12047
|
const isHighlighter = activeTool === "highlighter";
|
|
12061
12048
|
const hasPressure = currentStrokePressures.length >= 2 && currentStrokePressures.some((p) => Math.abs(p - currentStrokePressures[0]) > 0.01);
|
|
12062
12049
|
const ink = {
|
|
@@ -12087,13 +12074,13 @@ function useDrawingOverlay({
|
|
|
12087
12074
|
isDrawingRef,
|
|
12088
12075
|
onAddInkElement,
|
|
12089
12076
|
onAddFreeformShape,
|
|
12090
|
-
|
|
12077
|
+
buildPathD,
|
|
12091
12078
|
currentStrokePressures
|
|
12092
12079
|
]
|
|
12093
12080
|
);
|
|
12094
12081
|
const liveStrokeD = useMemo(
|
|
12095
|
-
() => isStrokeActive ?
|
|
12096
|
-
[isStrokeActive, currentStrokePoints,
|
|
12082
|
+
() => isStrokeActive ? buildPathD(currentStrokePoints) : "",
|
|
12083
|
+
[isStrokeActive, currentStrokePoints, buildPathD]
|
|
12097
12084
|
);
|
|
12098
12085
|
return {
|
|
12099
12086
|
isDrawing,
|
|
@@ -21850,7 +21837,13 @@ function ChartDataPointOptions({
|
|
|
21850
21837
|
}) })
|
|
21851
21838
|
] });
|
|
21852
21839
|
}
|
|
21853
|
-
function ChartDisplayOptions({
|
|
21840
|
+
function ChartDisplayOptions({
|
|
21841
|
+
style,
|
|
21842
|
+
canEdit,
|
|
21843
|
+
onUpdateStyle,
|
|
21844
|
+
hasGridlines,
|
|
21845
|
+
onToggleGridlines
|
|
21846
|
+
}) {
|
|
21854
21847
|
const { t } = useTranslation();
|
|
21855
21848
|
return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
|
|
21856
21849
|
/* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.display") }),
|
|
@@ -21903,8 +21896,8 @@ function ChartDisplayOptions({ style, canEdit, onUpdateStyle }) {
|
|
|
21903
21896
|
{
|
|
21904
21897
|
type: "checkbox",
|
|
21905
21898
|
disabled: !canEdit,
|
|
21906
|
-
checked:
|
|
21907
|
-
onChange: (e) =>
|
|
21899
|
+
checked: hasGridlines,
|
|
21900
|
+
onChange: (e) => onToggleGridlines(e.target.checked),
|
|
21908
21901
|
className: "accent-primary"
|
|
21909
21902
|
}
|
|
21910
21903
|
),
|
|
@@ -22113,11 +22106,13 @@ function DebouncedColorInput({
|
|
|
22113
22106
|
}
|
|
22114
22107
|
var DEFAULT_SWATCH = "#4472c4";
|
|
22115
22108
|
function ChartSeriesColorOptions({
|
|
22116
|
-
|
|
22109
|
+
chartData,
|
|
22117
22110
|
canEdit,
|
|
22118
|
-
onSetColor
|
|
22111
|
+
onSetColor,
|
|
22112
|
+
onToggleSecondaryAxis
|
|
22119
22113
|
}) {
|
|
22120
22114
|
const { t } = useTranslation();
|
|
22115
|
+
const series = chartData.series;
|
|
22121
22116
|
if (series.length === 0) {
|
|
22122
22117
|
return null;
|
|
22123
22118
|
}
|
|
@@ -22125,6 +22120,19 @@ function ChartSeriesColorOptions({
|
|
|
22125
22120
|
/* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.seriesColors") }),
|
|
22126
22121
|
/* @__PURE__ */ jsx("div", { className: "space-y-1", children: series.map((s, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
|
|
22127
22122
|
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate", title: s.name, children: s.name }),
|
|
22123
|
+
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-muted-foreground shrink-0", children: [
|
|
22124
|
+
/* @__PURE__ */ jsx(
|
|
22125
|
+
"input",
|
|
22126
|
+
{
|
|
22127
|
+
type: "checkbox",
|
|
22128
|
+
disabled: !canEdit,
|
|
22129
|
+
checked: isSeriesUsingSecondaryAxis(chartData, i),
|
|
22130
|
+
onChange: (e) => onToggleSecondaryAxis(i, e.target.checked),
|
|
22131
|
+
className: "accent-primary"
|
|
22132
|
+
}
|
|
22133
|
+
),
|
|
22134
|
+
t("pptx.chart.secondaryAxis")
|
|
22135
|
+
] }),
|
|
22128
22136
|
/* @__PURE__ */ jsx(
|
|
22129
22137
|
DebouncedColorInput,
|
|
22130
22138
|
{
|
|
@@ -22329,6 +22337,25 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22329
22337
|
},
|
|
22330
22338
|
[chartData, style, onUpdateElement]
|
|
22331
22339
|
);
|
|
22340
|
+
const hasGridlines = chartData ? chartGridlinesState(chartData) : false;
|
|
22341
|
+
const toggleGridlines = useCallback(
|
|
22342
|
+
(show) => {
|
|
22343
|
+
if (!chartData) {
|
|
22344
|
+
return;
|
|
22345
|
+
}
|
|
22346
|
+
updateChartData(chartGridlinesPatch(chartData, show));
|
|
22347
|
+
},
|
|
22348
|
+
[chartData, updateChartData]
|
|
22349
|
+
);
|
|
22350
|
+
const toggleSecondaryAxis = useCallback(
|
|
22351
|
+
(seriesIndex, useSecondary) => {
|
|
22352
|
+
if (!chartData) {
|
|
22353
|
+
return;
|
|
22354
|
+
}
|
|
22355
|
+
updateChartData(seriesSecondaryAxisPatch(chartData, seriesIndex, useSecondary));
|
|
22356
|
+
},
|
|
22357
|
+
[chartData, updateChartData]
|
|
22358
|
+
);
|
|
22332
22359
|
const updateAxis = useCallback(
|
|
22333
22360
|
(axisType, patch) => {
|
|
22334
22361
|
if (!chartData) {
|
|
@@ -22499,7 +22526,16 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22499
22526
|
onUpdateChartData: updateChartData
|
|
22500
22527
|
}
|
|
22501
22528
|
),
|
|
22502
|
-
/* @__PURE__ */ jsx(
|
|
22529
|
+
/* @__PURE__ */ jsx(
|
|
22530
|
+
ChartDisplayOptions,
|
|
22531
|
+
{
|
|
22532
|
+
style,
|
|
22533
|
+
canEdit,
|
|
22534
|
+
onUpdateStyle: updateStyle,
|
|
22535
|
+
hasGridlines,
|
|
22536
|
+
onToggleGridlines: toggleGridlines
|
|
22537
|
+
}
|
|
22538
|
+
),
|
|
22503
22539
|
/* @__PURE__ */ jsx(ChartDataLabelOptions, { style, canEdit, onUpdateStyle: updateStyle }),
|
|
22504
22540
|
/* @__PURE__ */ jsx(ChartAxisOptions, { axes: chartData.axes, canEdit, onUpdateAxis: updateAxis }),
|
|
22505
22541
|
/* @__PURE__ */ jsx(
|
|
@@ -22570,7 +22606,15 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22570
22606
|
onSetErrorBars: setSeriesErrorBars
|
|
22571
22607
|
}
|
|
22572
22608
|
),
|
|
22573
|
-
/* @__PURE__ */ jsx(
|
|
22609
|
+
/* @__PURE__ */ jsx(
|
|
22610
|
+
ChartSeriesColorOptions,
|
|
22611
|
+
{
|
|
22612
|
+
chartData,
|
|
22613
|
+
canEdit,
|
|
22614
|
+
onSetColor: setSeriesColor,
|
|
22615
|
+
onToggleSecondaryAxis: toggleSecondaryAxis
|
|
22616
|
+
}
|
|
22617
|
+
),
|
|
22574
22618
|
/* @__PURE__ */ jsx(
|
|
22575
22619
|
ChartDataGrid,
|
|
22576
22620
|
{
|
|
@@ -24303,23 +24347,10 @@ function MediaPropertiesPanel({
|
|
|
24303
24347
|
}
|
|
24304
24348
|
|
|
24305
24349
|
// src/viewer/components/inspector/fill-stroke-options.ts
|
|
24306
|
-
var
|
|
24307
|
-
|
|
24308
|
-
|
|
24309
|
-
|
|
24310
|
-
{ value: "thinThick", label: "Thin-Thick", i18nKey: "pptx.strokeOptions.compoundThinThick" },
|
|
24311
|
-
{ value: "tri", label: "Triple", i18nKey: "pptx.strokeOptions.compoundTriple" }
|
|
24312
|
-
];
|
|
24313
|
-
var LINE_JOIN_OPTIONS = [
|
|
24314
|
-
{ value: "round", label: "Round", i18nKey: "pptx.strokeOptions.joinRound" },
|
|
24315
|
-
{ value: "bevel", label: "Bevel", i18nKey: "pptx.strokeOptions.joinBevel" },
|
|
24316
|
-
{ value: "miter", label: "Miter", i18nKey: "pptx.strokeOptions.joinMiter" }
|
|
24317
|
-
];
|
|
24318
|
-
var LINE_CAP_OPTIONS = [
|
|
24319
|
-
{ value: "flat", label: "Flat", i18nKey: "pptx.strokeOptions.capFlat" },
|
|
24320
|
-
{ value: "rnd", label: "Round", i18nKey: "pptx.strokeOptions.capRound" },
|
|
24321
|
-
{ value: "sq", label: "Square", i18nKey: "pptx.strokeOptions.capSquare" }
|
|
24322
|
-
];
|
|
24350
|
+
var COMPOUND_LINE_OPTIONS2 = COMPOUND_LINE_OPTIONS;
|
|
24351
|
+
var LINE_JOIN_OPTIONS2 = LINE_JOIN_OPTIONS;
|
|
24352
|
+
var LINE_CAP_OPTIONS2 = LINE_CAP_OPTIONS;
|
|
24353
|
+
var PATTERN_PRESET_OPTIONS2 = PATTERN_PRESET_OPTIONS;
|
|
24323
24354
|
var FILL_MODE_OPTIONS2 = [
|
|
24324
24355
|
{ value: "solid", label: "Solid", i18nKey: "pptx.fill.solid" },
|
|
24325
24356
|
{ value: "gradient", label: "Gradient", i18nKey: "pptx.fill.gradient" },
|
|
@@ -24327,76 +24358,6 @@ var FILL_MODE_OPTIONS2 = [
|
|
|
24327
24358
|
{ value: "image", label: "Image", i18nKey: "pptx.inspector.image" },
|
|
24328
24359
|
{ value: "none", label: "None", i18nKey: "pptx.fill.none" }
|
|
24329
24360
|
];
|
|
24330
|
-
var PATTERN_PRESET_OPTIONS = [
|
|
24331
|
-
{ value: "pct5", label: "5%", i18nKey: "pptx.fillPatterns.pct5" },
|
|
24332
|
-
{ value: "pct10", label: "10%", i18nKey: "pptx.fillPatterns.pct10" },
|
|
24333
|
-
{ value: "pct20", label: "20%", i18nKey: "pptx.fillPatterns.pct20" },
|
|
24334
|
-
{ value: "pct25", label: "25%", i18nKey: "pptx.fillPatterns.pct25" },
|
|
24335
|
-
{ value: "pct30", label: "30%", i18nKey: "pptx.fillPatterns.pct30" },
|
|
24336
|
-
{ value: "pct40", label: "40%", i18nKey: "pptx.fillPatterns.pct40" },
|
|
24337
|
-
{ value: "pct50", label: "50%", i18nKey: "pptx.fillPatterns.pct50" },
|
|
24338
|
-
{ value: "pct60", label: "60%", i18nKey: "pptx.fillPatterns.pct60" },
|
|
24339
|
-
{ value: "pct70", label: "70%", i18nKey: "pptx.fillPatterns.pct70" },
|
|
24340
|
-
{ value: "pct75", label: "75%", i18nKey: "pptx.fillPatterns.pct75" },
|
|
24341
|
-
{ value: "pct80", label: "80%", i18nKey: "pptx.fillPatterns.pct80" },
|
|
24342
|
-
{ value: "pct90", label: "90%", i18nKey: "pptx.fillPatterns.pct90" },
|
|
24343
|
-
{ value: "horz", label: "Horizontal", i18nKey: "pptx.fillPatterns.horizontal" },
|
|
24344
|
-
{ value: "vert", label: "Vertical", i18nKey: "pptx.fillPatterns.vertical" },
|
|
24345
|
-
{ value: "ltHorz", label: "Light Horizontal", i18nKey: "pptx.fillPatterns.lightHorizontal" },
|
|
24346
|
-
{ value: "ltVert", label: "Light Vertical", i18nKey: "pptx.fillPatterns.lightVertical" },
|
|
24347
|
-
{ value: "dkHorz", label: "Dark Horizontal", i18nKey: "pptx.fillPatterns.darkHorizontal" },
|
|
24348
|
-
{ value: "dkVert", label: "Dark Vertical", i18nKey: "pptx.fillPatterns.darkVertical" },
|
|
24349
|
-
{ value: "narHorz", label: "Narrow Horizontal", i18nKey: "pptx.fillPatterns.narrowHorizontal" },
|
|
24350
|
-
{ value: "narVert", label: "Narrow Vertical", i18nKey: "pptx.fillPatterns.narrowVertical" },
|
|
24351
|
-
{ value: "wdHorz", label: "Wide Horizontal", i18nKey: "pptx.fillPatterns.wideHorizontal" },
|
|
24352
|
-
{ value: "wdVert", label: "Wide Vertical", i18nKey: "pptx.fillPatterns.wideVertical" },
|
|
24353
|
-
{ value: "dashHorz", label: "Dashed Horizontal", i18nKey: "pptx.fillPatterns.dashedHorizontal" },
|
|
24354
|
-
{ value: "dashVert", label: "Dashed Vertical", i18nKey: "pptx.fillPatterns.dashedVertical" },
|
|
24355
|
-
{ value: "cross", label: "Cross", i18nKey: "pptx.fillPatterns.cross" },
|
|
24356
|
-
{ value: "dnDiag", label: "Down Diagonal", i18nKey: "pptx.fillPatterns.downDiagonal" },
|
|
24357
|
-
{ value: "upDiag", label: "Up Diagonal", i18nKey: "pptx.fillPatterns.upDiagonal" },
|
|
24358
|
-
{
|
|
24359
|
-
value: "ltDnDiag",
|
|
24360
|
-
label: "Light Down Diagonal",
|
|
24361
|
-
i18nKey: "pptx.fillPatterns.lightDownDiagonal"
|
|
24362
|
-
},
|
|
24363
|
-
{ value: "ltUpDiag", label: "Light Up Diagonal", i18nKey: "pptx.fillPatterns.lightUpDiagonal" },
|
|
24364
|
-
{ value: "dkDnDiag", label: "Dark Down Diagonal", i18nKey: "pptx.fillPatterns.darkDownDiagonal" },
|
|
24365
|
-
{ value: "dkUpDiag", label: "Dark Up Diagonal", i18nKey: "pptx.fillPatterns.darkUpDiagonal" },
|
|
24366
|
-
{ value: "wdDnDiag", label: "Wide Down Diagonal", i18nKey: "pptx.fillPatterns.wideDownDiagonal" },
|
|
24367
|
-
{ value: "wdUpDiag", label: "Wide Up Diagonal", i18nKey: "pptx.fillPatterns.wideUpDiagonal" },
|
|
24368
|
-
{
|
|
24369
|
-
value: "dashDnDiag",
|
|
24370
|
-
label: "Dashed Down Diagonal",
|
|
24371
|
-
i18nKey: "pptx.fillPatterns.dashedDownDiagonal"
|
|
24372
|
-
},
|
|
24373
|
-
{
|
|
24374
|
-
value: "dashUpDiag",
|
|
24375
|
-
label: "Dashed Up Diagonal",
|
|
24376
|
-
i18nKey: "pptx.fillPatterns.dashedUpDiagonal"
|
|
24377
|
-
},
|
|
24378
|
-
{ value: "diagCross", label: "Diagonal Cross", i18nKey: "pptx.fillPatterns.diagonalCross" },
|
|
24379
|
-
{ value: "smCheck", label: "Small Check", i18nKey: "pptx.fillPatterns.smallCheck" },
|
|
24380
|
-
{ value: "lgCheck", label: "Large Check", i18nKey: "pptx.fillPatterns.largeCheck" },
|
|
24381
|
-
{ value: "smGrid", label: "Small Grid", i18nKey: "pptx.fillPatterns.smallGrid" },
|
|
24382
|
-
{ value: "lgGrid", label: "Large Grid", i18nKey: "pptx.fillPatterns.largeGrid" },
|
|
24383
|
-
{ value: "dotGrid", label: "Dot Grid", i18nKey: "pptx.fillPatterns.dotGrid" },
|
|
24384
|
-
{ value: "smConfetti", label: "Small Confetti", i18nKey: "pptx.fillPatterns.smallConfetti" },
|
|
24385
|
-
{ value: "lgConfetti", label: "Large Confetti", i18nKey: "pptx.fillPatterns.largeConfetti" },
|
|
24386
|
-
{ value: "horzBrick", label: "Horizontal Brick", i18nKey: "pptx.fillPatterns.horizontalBrick" },
|
|
24387
|
-
{ value: "diagBrick", label: "Diagonal Brick", i18nKey: "pptx.fillPatterns.diagonalBrick" },
|
|
24388
|
-
{ value: "solidDmnd", label: "Solid Diamond", i18nKey: "pptx.fillPatterns.solidDiamond" },
|
|
24389
|
-
{ value: "openDmnd", label: "Open Diamond", i18nKey: "pptx.fillPatterns.openDiamond" },
|
|
24390
|
-
{ value: "dotDmnd", label: "Dotted Diamond", i18nKey: "pptx.fillPatterns.dottedDiamond" },
|
|
24391
|
-
{ value: "plaid", label: "Plaid", i18nKey: "pptx.fillPatterns.plaid" },
|
|
24392
|
-
{ value: "sphere", label: "Sphere", i18nKey: "pptx.fillPatterns.sphere" },
|
|
24393
|
-
{ value: "weave", label: "Weave", i18nKey: "pptx.fillPatterns.weave" },
|
|
24394
|
-
{ value: "divot", label: "Divot", i18nKey: "pptx.fillPatterns.divot" },
|
|
24395
|
-
{ value: "shingle", label: "Shingle", i18nKey: "pptx.fillPatterns.shingle" },
|
|
24396
|
-
{ value: "wave", label: "Wave", i18nKey: "pptx.fillPatterns.wave" },
|
|
24397
|
-
{ value: "trellis", label: "Trellis", i18nKey: "pptx.fillPatterns.trellis" },
|
|
24398
|
-
{ value: "zigZag", label: "Zig Zag", i18nKey: "pptx.fillPatterns.zigZag" }
|
|
24399
|
-
];
|
|
24400
24361
|
var GRADIENT_TYPE_OPTIONS2 = [
|
|
24401
24362
|
{ value: "linear", label: "Linear", i18nKey: "pptx.gradient.linear" },
|
|
24402
24363
|
{ value: "radial", label: "Radial", i18nKey: "pptx.gradient.radial" }
|
|
@@ -24591,6 +24552,7 @@ var SHADOW_EFFECT_CONFIGS = [
|
|
|
24591
24552
|
{
|
|
24592
24553
|
key: "sr",
|
|
24593
24554
|
label: "Rotate with Shape",
|
|
24555
|
+
i18nKey: "pptx.effects.rotateWithShape",
|
|
24594
24556
|
type: "checkbox",
|
|
24595
24557
|
read: (s) => s?.shadowRotateWithShape ?? true,
|
|
24596
24558
|
write: (v) => ({ shadowRotateWithShape: Boolean(v) })
|
|
@@ -25287,7 +25249,7 @@ function FillAdvancedControls({
|
|
|
25287
25249
|
style?.fillMode === "pattern" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
25288
25250
|
/* @__PURE__ */ jsxs("div", { className: `${COL2} flex flex-col gap-2`, children: [
|
|
25289
25251
|
/* @__PURE__ */ jsx("span", { className: LBL2, children: "Pattern" }),
|
|
25290
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-8 gap-1 max-h-48 overflow-y-auto rounded border border-border p-2", children:
|
|
25252
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-8 gap-1 max-h-48 overflow-y-auto rounded border border-border p-2", children: PATTERN_PRESET_OPTIONS2.map((opt) => {
|
|
25291
25253
|
const fgColor = normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR);
|
|
25292
25254
|
const bgColor = normalizeHexColor(style?.fillPatternBackgroundColor, "#ffffff");
|
|
25293
25255
|
const svgPattern = getPatternSvg(opt.value, fgColor, bgColor);
|
|
@@ -25296,7 +25258,7 @@ function FillAdvancedControls({
|
|
|
25296
25258
|
"button",
|
|
25297
25259
|
{
|
|
25298
25260
|
type: "button",
|
|
25299
|
-
title: opt.
|
|
25261
|
+
title: t(opt.labelKey),
|
|
25300
25262
|
className: `h-8 w-8 rounded border transition-all ${isSelected ? "border-primary border-2 ring-2 ring-primary/20" : "border-border hover:border-primary/50"}`,
|
|
25301
25263
|
onClick: () => onUpdateShapeStyle({
|
|
25302
25264
|
fillMode: "pattern",
|
|
@@ -25499,7 +25461,7 @@ function StrokeEffectsSection({
|
|
|
25499
25461
|
] }),
|
|
25500
25462
|
/* @__PURE__ */ jsxs("label", { className: `flex flex-col gap-1 ${COL2}`, children: [
|
|
25501
25463
|
/* @__PURE__ */ jsx("span", { className: LBL2, children: t("pptx.strokeEffects.compoundLine") }),
|
|
25502
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-5 gap-1", children:
|
|
25464
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-5 gap-1", children: COMPOUND_LINE_OPTIONS2.map((opt) => /* @__PURE__ */ jsx(
|
|
25503
25465
|
"button",
|
|
25504
25466
|
{
|
|
25505
25467
|
type: "button",
|
|
@@ -25544,7 +25506,7 @@ function StrokeEffectsSection({
|
|
|
25544
25506
|
{
|
|
25545
25507
|
label: t("pptx.strokeEffects.lineJoin"),
|
|
25546
25508
|
value: style?.lineJoin || "round",
|
|
25547
|
-
options:
|
|
25509
|
+
options: LINE_JOIN_OPTIONS2,
|
|
25548
25510
|
onChange: (v) => onUpdateShapeStyle({ lineJoin: v })
|
|
25549
25511
|
}
|
|
25550
25512
|
),
|
|
@@ -25553,7 +25515,7 @@ function StrokeEffectsSection({
|
|
|
25553
25515
|
{
|
|
25554
25516
|
label: t("pptx.strokeEffects.lineCap"),
|
|
25555
25517
|
value: style?.lineCap || "flat",
|
|
25556
|
-
options:
|
|
25518
|
+
options: LINE_CAP_OPTIONS2,
|
|
25557
25519
|
onChange: (v) => onUpdateShapeStyle({ lineCap: v })
|
|
25558
25520
|
}
|
|
25559
25521
|
)
|
|
@@ -30090,32 +30052,6 @@ function InspectorPane(props) {
|
|
|
30090
30052
|
)
|
|
30091
30053
|
] });
|
|
30092
30054
|
}
|
|
30093
|
-
function buildPathD(points) {
|
|
30094
|
-
if (points.length === 0) {
|
|
30095
|
-
return "";
|
|
30096
|
-
}
|
|
30097
|
-
const first = points[0];
|
|
30098
|
-
let d = `M ${first.x} ${first.y}`;
|
|
30099
|
-
for (let i = 1; i < points.length; i++) {
|
|
30100
|
-
const pt = points[i];
|
|
30101
|
-
d += ` L ${pt.x} ${pt.y}`;
|
|
30102
|
-
}
|
|
30103
|
-
return d;
|
|
30104
|
-
}
|
|
30105
|
-
function getCursorForTool(tool) {
|
|
30106
|
-
switch (tool) {
|
|
30107
|
-
case "laser":
|
|
30108
|
-
return "none";
|
|
30109
|
-
case "pen":
|
|
30110
|
-
return "crosshair";
|
|
30111
|
-
case "highlighter":
|
|
30112
|
-
return "crosshair";
|
|
30113
|
-
case "eraser":
|
|
30114
|
-
return "crosshair";
|
|
30115
|
-
default:
|
|
30116
|
-
return "default";
|
|
30117
|
-
}
|
|
30118
|
-
}
|
|
30119
30055
|
function PresentationAnnotationOverlay({
|
|
30120
30056
|
canvasSize,
|
|
30121
30057
|
editorScale,
|
|
@@ -30226,7 +30162,7 @@ function PresentationAnnotationOverlay({
|
|
|
30226
30162
|
className: "absolute inset-0",
|
|
30227
30163
|
style: {
|
|
30228
30164
|
zIndex: annotationOverlayZIndex(blackout),
|
|
30229
|
-
cursor:
|
|
30165
|
+
cursor: cursorForTool(presentationTool),
|
|
30230
30166
|
pointerEvents: isCapturing ? "auto" : "none"
|
|
30231
30167
|
},
|
|
30232
30168
|
children: [
|
|
@@ -30249,7 +30185,7 @@ function PresentationAnnotationOverlay({
|
|
|
30249
30185
|
children: allStrokes.map((stroke) => /* @__PURE__ */ jsx(
|
|
30250
30186
|
"path",
|
|
30251
30187
|
{
|
|
30252
|
-
d:
|
|
30188
|
+
d: buildStrokePathD(stroke.points),
|
|
30253
30189
|
fill: "none",
|
|
30254
30190
|
stroke: stroke.color,
|
|
30255
30191
|
strokeWidth: stroke.width,
|
|
@@ -34209,24 +34145,9 @@ function EquationEditorDialog({
|
|
|
34209
34145
|
}
|
|
34210
34146
|
);
|
|
34211
34147
|
}
|
|
34212
|
-
var PREVIEW_ELEMENT_WIDTH = 600;
|
|
34213
|
-
var PREVIEW_ELEMENT_HEIGHT = 340;
|
|
34214
34148
|
var PREVIEW_TILE_WIDTH2 = 64;
|
|
34215
|
-
var FALLBACK_ITEMS = ["1", "2", "3"];
|
|
34216
|
-
function buildPreviewElement(layout) {
|
|
34217
|
-
const preset = PRESETS.find((p) => p.layout === layout);
|
|
34218
|
-
return {
|
|
34219
|
-
id: `smartart-preview-${layout}`,
|
|
34220
|
-
type: "smartArt",
|
|
34221
|
-
x: 0,
|
|
34222
|
-
y: 0,
|
|
34223
|
-
width: PREVIEW_ELEMENT_WIDTH,
|
|
34224
|
-
height: PREVIEW_ELEMENT_HEIGHT,
|
|
34225
|
-
smartArtData: buildSmartArtPresetData(layout, preset?.defaultItems ?? FALLBACK_ITEMS)
|
|
34226
|
-
};
|
|
34227
|
-
}
|
|
34228
34149
|
function getPreviewForLayout(layout) {
|
|
34229
|
-
const scale = PREVIEW_TILE_WIDTH2 /
|
|
34150
|
+
const scale = PREVIEW_TILE_WIDTH2 / SMARTART_PREVIEW_ELEMENT_WIDTH;
|
|
34230
34151
|
return /* @__PURE__ */ jsx(
|
|
34231
34152
|
"div",
|
|
34232
34153
|
{
|
|
@@ -34234,18 +34155,18 @@ function getPreviewForLayout(layout) {
|
|
|
34234
34155
|
className: "overflow-hidden pointer-events-none",
|
|
34235
34156
|
style: {
|
|
34236
34157
|
width: PREVIEW_TILE_WIDTH2,
|
|
34237
|
-
height: Math.round(
|
|
34158
|
+
height: Math.round(SMARTART_PREVIEW_ELEMENT_HEIGHT * scale)
|
|
34238
34159
|
},
|
|
34239
34160
|
children: /* @__PURE__ */ jsx(
|
|
34240
34161
|
"div",
|
|
34241
34162
|
{
|
|
34242
34163
|
style: {
|
|
34243
|
-
width:
|
|
34244
|
-
height:
|
|
34164
|
+
width: SMARTART_PREVIEW_ELEMENT_WIDTH,
|
|
34165
|
+
height: SMARTART_PREVIEW_ELEMENT_HEIGHT,
|
|
34245
34166
|
transform: `scale(${scale})`,
|
|
34246
34167
|
transformOrigin: "top left"
|
|
34247
34168
|
},
|
|
34248
|
-
children: /* @__PURE__ */ jsx(SmartArtRenderer, { element:
|
|
34169
|
+
children: /* @__PURE__ */ jsx(SmartArtRenderer, { element: buildSmartArtPreviewElement(layout) })
|
|
34249
34170
|
}
|
|
34250
34171
|
)
|
|
34251
34172
|
}
|
|
@@ -35402,7 +35323,7 @@ ${url}`)) {
|
|
|
35402
35323
|
var AiChatPanel = lazy(async () => {
|
|
35403
35324
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
35404
35325
|
import('@ai-sdk/react'),
|
|
35405
|
-
import('./AiChatPanel-
|
|
35326
|
+
import('./AiChatPanel-BNFDBP4S.mjs')
|
|
35406
35327
|
]);
|
|
35407
35328
|
function BoundAiChatPanel(props) {
|
|
35408
35329
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -37480,144 +37401,16 @@ function OptionsRibbonPane({
|
|
|
37480
37401
|
}
|
|
37481
37402
|
|
|
37482
37403
|
// src/viewer/utils/ai-log-export.ts
|
|
37483
|
-
function
|
|
37484
|
-
const n = Number.isFinite(ms) ? ms : 0;
|
|
37485
|
-
return new Date(n).toISOString();
|
|
37486
|
-
}
|
|
37487
|
-
function toLogChat(chat, detailed) {
|
|
37488
|
-
const messages = chat.messages.map((message) => {
|
|
37489
|
-
const parts = toRenderableParts(message);
|
|
37490
|
-
const textRuns = [];
|
|
37491
|
-
const toolCalls = [];
|
|
37492
|
-
for (const part of parts) {
|
|
37493
|
-
if (part.kind === "text") {
|
|
37494
|
-
textRuns.push(part.text);
|
|
37495
|
-
continue;
|
|
37496
|
-
}
|
|
37497
|
-
toolCalls.push({
|
|
37498
|
-
toolName: part.toolName,
|
|
37499
|
-
toolCallId: part.toolCallId,
|
|
37500
|
-
state: part.state,
|
|
37501
|
-
input: detailed ? part.input : void 0,
|
|
37502
|
-
output: detailed ? part.output : void 0,
|
|
37503
|
-
errorText: part.errorText
|
|
37504
|
-
});
|
|
37505
|
-
}
|
|
37506
|
-
return {
|
|
37507
|
-
role: message.role,
|
|
37508
|
-
text: textRuns.join("\n\n"),
|
|
37509
|
-
toolCalls
|
|
37510
|
-
};
|
|
37511
|
-
});
|
|
37512
|
-
return {
|
|
37513
|
-
id: chat.id,
|
|
37514
|
-
title: chat.title,
|
|
37515
|
-
deckId: chat.deckId,
|
|
37516
|
-
createdAt: chat.createdAt,
|
|
37517
|
-
updatedAt: chat.updatedAt,
|
|
37518
|
-
createdAtIso: isoOf(chat.createdAt),
|
|
37519
|
-
updatedAtIso: isoOf(chat.updatedAt),
|
|
37520
|
-
messageCount: chat.messages.length,
|
|
37521
|
-
messages
|
|
37522
|
-
};
|
|
37523
|
-
}
|
|
37524
|
-
function buildChatLogExport(chats, options) {
|
|
37525
|
-
const detailed = options?.detailed ?? true;
|
|
37526
|
-
const now = options?.now ?? Date.now();
|
|
37527
|
-
return {
|
|
37528
|
-
format: "pptx-ai-chat-log",
|
|
37529
|
-
version: 1,
|
|
37530
|
-
exportedAt: isoOf(now),
|
|
37531
|
-
detailed,
|
|
37532
|
-
chatCount: chats.length,
|
|
37533
|
-
chats: chats.map((chat) => toLogChat(chat, detailed))
|
|
37534
|
-
};
|
|
37535
|
-
}
|
|
37536
|
-
function toolCallLine(call, detailed) {
|
|
37537
|
-
const lines = [`- Tool \`${call.toolName}\` (${call.state})`];
|
|
37538
|
-
if (call.errorText) {
|
|
37539
|
-
lines.push(` - error: ${call.errorText}`);
|
|
37540
|
-
}
|
|
37541
|
-
if (detailed) {
|
|
37542
|
-
lines.push(" - input:");
|
|
37543
|
-
lines.push(" ```json");
|
|
37544
|
-
lines.push(JSON.stringify(call.input ?? null, null, 2));
|
|
37545
|
-
lines.push(" ```");
|
|
37546
|
-
lines.push(" - output:");
|
|
37547
|
-
lines.push(" ```json");
|
|
37548
|
-
lines.push(JSON.stringify(call.output ?? null, null, 2));
|
|
37549
|
-
lines.push(" ```");
|
|
37550
|
-
}
|
|
37551
|
-
return lines.join("\n");
|
|
37552
|
-
}
|
|
37553
|
-
function buildChatLogMarkdown(doc) {
|
|
37554
|
-
const out = [
|
|
37555
|
-
`# AI chat logs`,
|
|
37556
|
-
"",
|
|
37557
|
-
`Exported: ${doc.exportedAt}`,
|
|
37558
|
-
`Chats: ${doc.chatCount}`,
|
|
37559
|
-
""
|
|
37560
|
-
];
|
|
37561
|
-
for (const chat of doc.chats) {
|
|
37562
|
-
out.push(`## ${chat.title || chat.id}`);
|
|
37563
|
-
out.push("");
|
|
37564
|
-
out.push(`- id: ${chat.id}`);
|
|
37565
|
-
if (chat.deckId) {
|
|
37566
|
-
out.push(`- deck: ${chat.deckId}`);
|
|
37567
|
-
}
|
|
37568
|
-
out.push(`- created: ${chat.createdAtIso}`);
|
|
37569
|
-
out.push(`- updated: ${chat.updatedAtIso}`);
|
|
37570
|
-
out.push(`- messages: ${chat.messageCount}`);
|
|
37571
|
-
out.push("");
|
|
37572
|
-
for (const message of chat.messages) {
|
|
37573
|
-
out.push(`### ${message.role}`);
|
|
37574
|
-
out.push("");
|
|
37575
|
-
if (message.text) {
|
|
37576
|
-
out.push(message.text);
|
|
37577
|
-
out.push("");
|
|
37578
|
-
}
|
|
37579
|
-
for (const call of message.toolCalls) {
|
|
37580
|
-
out.push(toolCallLine(call, doc.detailed));
|
|
37581
|
-
out.push("");
|
|
37582
|
-
}
|
|
37583
|
-
}
|
|
37584
|
-
}
|
|
37585
|
-
return out.join("\n");
|
|
37586
|
-
}
|
|
37587
|
-
async function collectStoredChats(store) {
|
|
37588
|
-
const summaries = await store.listChats();
|
|
37589
|
-
const chats = [];
|
|
37590
|
-
for (const summary of summaries) {
|
|
37591
|
-
const chat = await store.loadChat(summary.id);
|
|
37592
|
-
if (chat) {
|
|
37593
|
-
chats.push(chat);
|
|
37594
|
-
}
|
|
37595
|
-
}
|
|
37596
|
-
return chats;
|
|
37597
|
-
}
|
|
37598
|
-
function timestampSlug(now) {
|
|
37599
|
-
const d = new Date(now);
|
|
37600
|
-
const p = (n) => String(n).padStart(2, "0");
|
|
37601
|
-
return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
|
|
37602
|
-
}
|
|
37603
|
-
async function exportAiChatLogs(options) {
|
|
37404
|
+
async function exportAiChatLogs2(options) {
|
|
37604
37405
|
const store = options?.store ?? createChatHistoryStore();
|
|
37605
|
-
const format = options?.format ?? "json";
|
|
37606
|
-
const now = options?.now ?? Date.now();
|
|
37607
37406
|
const chats = await collectStoredChats(store);
|
|
37608
|
-
|
|
37609
|
-
|
|
37610
|
-
|
|
37611
|
-
|
|
37612
|
-
|
|
37613
|
-
|
|
37614
|
-
|
|
37615
|
-
downloadBlob(blob, `pptx-ai-chats-${slug}.md`);
|
|
37616
|
-
} else {
|
|
37617
|
-
const blob = new Blob([JSON.stringify(doc, null, 2)], { type: "application/json" });
|
|
37618
|
-
downloadBlob(blob, `pptx-ai-chats-${slug}.json`);
|
|
37619
|
-
}
|
|
37620
|
-
return chats.length;
|
|
37407
|
+
return exportAiChatLogs(
|
|
37408
|
+
chats,
|
|
37409
|
+
{ format: options?.format, detailed: options?.detailed, now: options?.now },
|
|
37410
|
+
(filename, content, mime) => {
|
|
37411
|
+
downloadBlob(new Blob([content], { type: mime }), filename);
|
|
37412
|
+
}
|
|
37413
|
+
);
|
|
37621
37414
|
}
|
|
37622
37415
|
function SettingsAiTab({ store }) {
|
|
37623
37416
|
const { t } = useTranslation();
|
|
@@ -37648,7 +37441,7 @@ function SettingsAiTab({ store }) {
|
|
|
37648
37441
|
async (format) => {
|
|
37649
37442
|
setStatus({ kind: "busy" });
|
|
37650
37443
|
try {
|
|
37651
|
-
const count = await
|
|
37444
|
+
const count = await exportAiChatLogs2({ store: activeStore, format, detailed });
|
|
37652
37445
|
setStatus({ kind: "done", count });
|
|
37653
37446
|
} catch {
|
|
37654
37447
|
setStatus({ kind: "done", count: 0 });
|
|
@@ -38103,106 +37896,6 @@ function SettingsDialog({
|
|
|
38103
37896
|
)
|
|
38104
37897
|
] });
|
|
38105
37898
|
}
|
|
38106
|
-
|
|
38107
|
-
// src/viewer/hooks/ai/ai-element-update.ts
|
|
38108
|
-
function applyGeometry(el, u) {
|
|
38109
|
-
if (u.x !== void 0) {
|
|
38110
|
-
el.x = u.x;
|
|
38111
|
-
}
|
|
38112
|
-
if (u.y !== void 0) {
|
|
38113
|
-
el.y = u.y;
|
|
38114
|
-
}
|
|
38115
|
-
if (u.width !== void 0) {
|
|
38116
|
-
el.width = u.width;
|
|
38117
|
-
}
|
|
38118
|
-
if (u.height !== void 0) {
|
|
38119
|
-
el.height = u.height;
|
|
38120
|
-
}
|
|
38121
|
-
if (u.rotation !== void 0) {
|
|
38122
|
-
el.rotation = u.rotation;
|
|
38123
|
-
}
|
|
38124
|
-
if (u.opacity !== void 0) {
|
|
38125
|
-
el.opacity = u.opacity;
|
|
38126
|
-
}
|
|
38127
|
-
if (u.hidden !== void 0) {
|
|
38128
|
-
el.hidden = u.hidden;
|
|
38129
|
-
}
|
|
38130
|
-
if (u.flipHorizontal !== void 0) {
|
|
38131
|
-
el.flipHorizontal = u.flipHorizontal;
|
|
38132
|
-
}
|
|
38133
|
-
if (u.flipVertical !== void 0) {
|
|
38134
|
-
el.flipVertical = u.flipVertical;
|
|
38135
|
-
}
|
|
38136
|
-
}
|
|
38137
|
-
function applyText(el, u) {
|
|
38138
|
-
if (!hasTextProperties(el)) {
|
|
38139
|
-
return;
|
|
38140
|
-
}
|
|
38141
|
-
if (typeof u.text === "string") {
|
|
38142
|
-
el.text = u.text;
|
|
38143
|
-
if (el.textSegments && el.textSegments.length > 0) {
|
|
38144
|
-
el.textSegments = [{ text: u.text, style: el.textSegments[0].style }];
|
|
38145
|
-
} else {
|
|
38146
|
-
el.textSegments = [{ text: u.text, style: {} }];
|
|
38147
|
-
}
|
|
38148
|
-
}
|
|
38149
|
-
const textStyle = {};
|
|
38150
|
-
if (u.fontSize !== void 0) {
|
|
38151
|
-
textStyle.fontSize = u.fontSize;
|
|
38152
|
-
}
|
|
38153
|
-
if (u.fontFamily !== void 0) {
|
|
38154
|
-
textStyle.fontFamily = u.fontFamily;
|
|
38155
|
-
}
|
|
38156
|
-
if (u.fontColor !== void 0) {
|
|
38157
|
-
textStyle.color = u.fontColor;
|
|
38158
|
-
}
|
|
38159
|
-
if (u.bold !== void 0) {
|
|
38160
|
-
textStyle.bold = u.bold;
|
|
38161
|
-
}
|
|
38162
|
-
if (u.italic !== void 0) {
|
|
38163
|
-
textStyle.italic = u.italic;
|
|
38164
|
-
}
|
|
38165
|
-
if (u.underline !== void 0) {
|
|
38166
|
-
textStyle.underline = u.underline;
|
|
38167
|
-
}
|
|
38168
|
-
if (u.align !== void 0) {
|
|
38169
|
-
textStyle.align = u.align;
|
|
38170
|
-
}
|
|
38171
|
-
if (Object.keys(textStyle).length === 0) {
|
|
38172
|
-
return;
|
|
38173
|
-
}
|
|
38174
|
-
el.textStyle = { ...el.textStyle, ...textStyle };
|
|
38175
|
-
el.textSegments = el.textSegments?.map((seg) => ({
|
|
38176
|
-
...seg,
|
|
38177
|
-
style: { ...seg.style, ...textStyle }
|
|
38178
|
-
}));
|
|
38179
|
-
}
|
|
38180
|
-
function applyShapeStyle(el, u) {
|
|
38181
|
-
if (!hasShapeProperties(el)) {
|
|
38182
|
-
return;
|
|
38183
|
-
}
|
|
38184
|
-
const shapeStyle = {};
|
|
38185
|
-
if (u.fillColor !== void 0) {
|
|
38186
|
-
shapeStyle.fillColor = u.fillColor;
|
|
38187
|
-
}
|
|
38188
|
-
if (u.strokeColor !== void 0) {
|
|
38189
|
-
shapeStyle.strokeColor = u.strokeColor;
|
|
38190
|
-
}
|
|
38191
|
-
if (u.strokeWidth !== void 0) {
|
|
38192
|
-
shapeStyle.strokeWidth = u.strokeWidth;
|
|
38193
|
-
}
|
|
38194
|
-
if (Object.keys(shapeStyle).length === 0) {
|
|
38195
|
-
return;
|
|
38196
|
-
}
|
|
38197
|
-
el.shapeStyle = { ...el.shapeStyle, ...shapeStyle };
|
|
38198
|
-
}
|
|
38199
|
-
function applyAiElementUpdate(el, updates) {
|
|
38200
|
-
applyGeometry(el, updates);
|
|
38201
|
-
applyText(el, updates);
|
|
38202
|
-
applyShapeStyle(el, updates);
|
|
38203
|
-
}
|
|
38204
|
-
|
|
38205
|
-
// src/viewer/hooks/ai/useAiBridge.ts
|
|
38206
37899
|
function useAiBridge(input) {
|
|
38207
37900
|
const ref = useRef(input);
|
|
38208
37901
|
ref.current = input;
|
|
@@ -38258,7 +37951,7 @@ function useAiBridge(input) {
|
|
|
38258
37951
|
applySlidesUpdate((slides) => {
|
|
38259
37952
|
const el = slides[slideIndex]?.elements.find((e) => e.id === elementId);
|
|
38260
37953
|
if (el) {
|
|
38261
|
-
|
|
37954
|
+
applyElementUpdate(el, updates);
|
|
38262
37955
|
}
|
|
38263
37956
|
return slides;
|
|
38264
37957
|
});
|