pptx-react-viewer 3.1.5 → 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 +35 -0
- package/dist/{AiChatPanel-ITCVRVKP.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-TO5PHBGW.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-2UNQ3J3V.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-7PHPDOTG.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-MC5S3AGT.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-BLPUHYRZ.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-L5B4YFG3.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-JVVZRIDD.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-LRDNQNKJ.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-6TNWS5LV.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-PZWZCXHX.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-XXAIVP4I.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-CRUGJSCY.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-UBQV3ZN2.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-QOLYY7E3.mjs → chunk-2FTJAMFA.mjs} +300 -66
- package/dist/chunk-2FTJAMFA.mjs.br +0 -0
- package/dist/chunk-2FTJAMFA.mjs.gz +0 -0
- package/dist/{chunk-P3VXXUZM.mjs → chunk-3B5FRKYU.mjs} +137 -438
- package/dist/chunk-3B5FRKYU.mjs.br +0 -0
- package/dist/chunk-3B5FRKYU.mjs.gz +0 -0
- package/dist/{chunk-SWRY3SI5.js → chunk-3P7FYHJH.js} +47 -1
- package/dist/chunk-3P7FYHJH.js.br +0 -0
- package/dist/chunk-3P7FYHJH.js.gz +0 -0
- package/dist/{chunk-T2QG2HD5.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-ARJE3V6V.mjs → chunk-AMRT3AE4.mjs} +47 -1
- package/dist/chunk-AMRT3AE4.mjs.br +0 -0
- package/dist/chunk-AMRT3AE4.mjs.gz +0 -0
- package/dist/{chunk-XIHK52SB.mjs → chunk-DM2IZCSD.mjs} +8499 -3404
- package/dist/chunk-DM2IZCSD.mjs.br +0 -0
- package/dist/chunk-DM2IZCSD.mjs.gz +0 -0
- package/dist/{chunk-LGVNUG3G.js → chunk-FSQCEAMG.js} +305 -68
- package/dist/chunk-FSQCEAMG.js.br +0 -0
- package/dist/chunk-FSQCEAMG.js.gz +0 -0
- package/dist/{chunk-LXYDXLKZ.js → chunk-GR6SJJIT.js} +463 -776
- package/dist/chunk-GR6SJJIT.js.br +0 -0
- package/dist/chunk-GR6SJJIT.js.gz +0 -0
- package/dist/{chunk-BPWSJLLG.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-YDEEINER.js → chunk-K6R2JNCK.js} +8531 -3410
- package/dist/chunk-K6R2JNCK.js.br +0 -0
- package/dist/chunk-K6R2JNCK.js.gz +0 -0
- package/dist/{chunk-A2UAUSJM.mjs → chunk-QEEU4S4Z.mjs} +65 -378
- package/dist/chunk-QEEU4S4Z.mjs.br +0 -0
- package/dist/chunk-QEEU4S4Z.mjs.gz +0 -0
- package/dist/{chunk-ZPF4L6SD.js → chunk-QKSYKQEL.js} +1243 -1544
- 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.d.ts +170 -17
- 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 +170 -17
- 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/viewer/index.d.ts +170 -17
- 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-ITCVRVKP.mjs.br +0 -0
- package/dist/AiChatPanel-ITCVRVKP.mjs.gz +0 -0
- package/dist/AiChatPanel-TO5PHBGW.js.br +0 -0
- package/dist/AiChatPanel-TO5PHBGW.js.gz +0 -0
- package/dist/Area3DChartScene-2UNQ3J3V.js.br +0 -0
- package/dist/Area3DChartScene-2UNQ3J3V.js.gz +0 -0
- package/dist/Area3DChartScene-7PHPDOTG.mjs.br +0 -0
- package/dist/Area3DChartScene-7PHPDOTG.mjs.gz +0 -0
- package/dist/Bar3DChartScene-BLPUHYRZ.mjs.br +0 -0
- package/dist/Bar3DChartScene-BLPUHYRZ.mjs.gz +0 -0
- package/dist/Bar3DChartScene-MC5S3AGT.js.br +0 -0
- package/dist/Bar3DChartScene-MC5S3AGT.js.gz +0 -0
- package/dist/Line3DChartScene-JVVZRIDD.js.br +0 -0
- package/dist/Line3DChartScene-JVVZRIDD.js.gz +0 -0
- package/dist/Line3DChartScene-L5B4YFG3.mjs.br +0 -0
- package/dist/Line3DChartScene-L5B4YFG3.mjs.gz +0 -0
- package/dist/Model3DScene-6TNWS5LV.mjs.br +0 -0
- package/dist/Model3DScene-6TNWS5LV.mjs.gz +0 -0
- package/dist/Model3DScene-LRDNQNKJ.js.br +0 -0
- package/dist/Model3DScene-LRDNQNKJ.js.gz +0 -0
- package/dist/PieChart3DScene-PZWZCXHX.js.br +0 -0
- package/dist/PieChart3DScene-PZWZCXHX.js.gz +0 -0
- package/dist/PieChart3DScene-XXAIVP4I.mjs.br +0 -0
- package/dist/PieChart3DScene-XXAIVP4I.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.br +0 -1
- package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-UBQV3ZN2.js.br +0 -0
- package/dist/SurfaceChart3DScene-UBQV3ZN2.js.gz +0 -0
- package/dist/chunk-A2UAUSJM.mjs.br +0 -0
- package/dist/chunk-A2UAUSJM.mjs.gz +0 -0
- package/dist/chunk-ARJE3V6V.mjs.br +0 -0
- package/dist/chunk-ARJE3V6V.mjs.gz +0 -0
- package/dist/chunk-BPWSJLLG.mjs.br +0 -0
- package/dist/chunk-BPWSJLLG.mjs.gz +0 -0
- package/dist/chunk-LGVNUG3G.js.br +0 -0
- package/dist/chunk-LGVNUG3G.js.gz +0 -0
- package/dist/chunk-LXYDXLKZ.js.br +0 -0
- package/dist/chunk-LXYDXLKZ.js.gz +0 -0
- package/dist/chunk-P3VXXUZM.mjs.br +0 -0
- package/dist/chunk-P3VXXUZM.mjs.gz +0 -0
- package/dist/chunk-QOLYY7E3.mjs.br +0 -0
- package/dist/chunk-QOLYY7E3.mjs.gz +0 -0
- package/dist/chunk-SWRY3SI5.js.br +0 -0
- package/dist/chunk-SWRY3SI5.js.gz +0 -0
- package/dist/chunk-T2QG2HD5.js.br +0 -0
- package/dist/chunk-T2QG2HD5.js.gz +0 -0
- package/dist/chunk-XIHK52SB.mjs.br +0 -0
- package/dist/chunk-XIHK52SB.mjs.gz +0 -0
- package/dist/chunk-YDEEINER.js.br +0 -0
- package/dist/chunk-YDEEINER.js.gz +0 -0
- package/dist/chunk-ZPF4L6SD.js.br +0 -0
- package/dist/chunk-ZPF4L6SD.js.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-XIHK52SB.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
|
))
|
|
@@ -4803,7 +4791,13 @@ function renderBody(options) {
|
|
|
4803
4791
|
}
|
|
4804
4792
|
if (el.type === "media") {
|
|
4805
4793
|
return renderMediaElement(el, media, {
|
|
4806
|
-
|
|
4794
|
+
// Present mode autoplays every media element on the active slide,
|
|
4795
|
+
// not only ones persisted with their own `autoPlay` flag (matching
|
|
4796
|
+
// the other four bindings' unconditional `presenting`-gated
|
|
4797
|
+
// `startMediaAutoplay` call): a clip inserted via Insert > Media
|
|
4798
|
+
// never gets that flag, so gating on `el.autoPlay` left it silently
|
|
4799
|
+
// paused the moment the show reached its slide.
|
|
4800
|
+
autoPlay: isPresentationPassive === true,
|
|
4807
4801
|
fullScreen: isPresentationPassive && Boolean(el.fullScreen),
|
|
4808
4802
|
isPresentationMode: isPresentationPassive,
|
|
4809
4803
|
// A still of a slide never carries a transport, whatever the canvas
|
|
@@ -5003,6 +4997,7 @@ function StaticElementRendererImpl({
|
|
|
5003
4997
|
// mode, so without saying so a video here would carry Chrome's
|
|
5004
4998
|
// scrubber over a slide nobody can play.
|
|
5005
4999
|
isStaticSurface: true,
|
|
5000
|
+
placeholderPromptMode: "thumbnail",
|
|
5006
5001
|
slideElements: activeSlide?.elements,
|
|
5007
5002
|
allSlides,
|
|
5008
5003
|
sourceSlideIndex,
|
|
@@ -5717,13 +5712,12 @@ var ATXT = [
|
|
|
5717
5712
|
{ id: "right", i: /* @__PURE__ */ jsx(LuAlignRight, { className: ic }), labelKey: "pptx.ribbon.alignRight" },
|
|
5718
5713
|
{ id: "justify", i: /* @__PURE__ */ jsx(LuAlignJustify, { className: ic }), labelKey: "pptx.ribbon.justify" }
|
|
5719
5714
|
];
|
|
5720
|
-
var DEFAULT_STROKE_WIDTH = 1;
|
|
5721
5715
|
function ShapeArrangeExtras(p) {
|
|
5722
5716
|
const { t } = useTranslation();
|
|
5723
|
-
const canGroup = p.canEdit
|
|
5724
|
-
const canUngroup = p.canEdit
|
|
5725
|
-
const
|
|
5726
|
-
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);
|
|
5727
5721
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5728
5722
|
/* @__PURE__ */ jsxs("div", { className: grp, children: [
|
|
5729
5723
|
/* @__PURE__ */ jsx(
|
|
@@ -5758,7 +5752,7 @@ function ShapeArrangeExtras(p) {
|
|
|
5758
5752
|
min: "0",
|
|
5759
5753
|
max: "120",
|
|
5760
5754
|
step: "0.5",
|
|
5761
|
-
disabled: !
|
|
5755
|
+
disabled: !canStrokeWidth,
|
|
5762
5756
|
"aria-label": t("pptx.ribbon.strokeWidth"),
|
|
5763
5757
|
title: t("pptx.ribbon.strokeWidth"),
|
|
5764
5758
|
value: strokeWidth,
|
|
@@ -6285,7 +6279,7 @@ function AccountPage() {
|
|
|
6285
6279
|
return void 0;
|
|
6286
6280
|
});
|
|
6287
6281
|
};
|
|
6288
|
-
const version = "3.
|
|
6282
|
+
const version = "3.2.0" ;
|
|
6289
6283
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
6290
6284
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
6291
6285
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -7056,7 +7050,6 @@ function extractFontInfo(element, themeFonts) {
|
|
|
7056
7050
|
fontSize: fontSize !== void 0 && fontSize !== null ? String(fontSize) : defaults.fontSize
|
|
7057
7051
|
};
|
|
7058
7052
|
}
|
|
7059
|
-
var COMMON_SIZES = [8, 9, 10, 11, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 44, 48, 54, 60, 72, 96];
|
|
7060
7053
|
function HomeSection(p) {
|
|
7061
7054
|
const { t } = useTranslation();
|
|
7062
7055
|
const [fontMenuOpen, setFontMenuOpen] = useState(false);
|
|
@@ -7214,7 +7207,7 @@ function HomeSection(p) {
|
|
|
7214
7207
|
]
|
|
7215
7208
|
}
|
|
7216
7209
|
),
|
|
7217
|
-
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(
|
|
7218
7211
|
"button",
|
|
7219
7212
|
{
|
|
7220
7213
|
type: "button",
|
|
@@ -11921,7 +11914,7 @@ function useDrawingOverlay({
|
|
|
11921
11914
|
},
|
|
11922
11915
|
[zoom.canvasStageRef, zoom.editorScale]
|
|
11923
11916
|
);
|
|
11924
|
-
const
|
|
11917
|
+
const buildPathD = useCallback((pts) => {
|
|
11925
11918
|
if (pts.length === 0) {
|
|
11926
11919
|
return "";
|
|
11927
11920
|
}
|
|
@@ -12050,7 +12043,7 @@ function useDrawingOverlay({
|
|
|
12050
12043
|
};
|
|
12051
12044
|
onAddFreeformShape?.(freeformShape);
|
|
12052
12045
|
} else {
|
|
12053
|
-
const pathD =
|
|
12046
|
+
const pathD = buildPathD(relPoints);
|
|
12054
12047
|
const isHighlighter = activeTool === "highlighter";
|
|
12055
12048
|
const hasPressure = currentStrokePressures.length >= 2 && currentStrokePressures.some((p) => Math.abs(p - currentStrokePressures[0]) > 0.01);
|
|
12056
12049
|
const ink = {
|
|
@@ -12081,13 +12074,13 @@ function useDrawingOverlay({
|
|
|
12081
12074
|
isDrawingRef,
|
|
12082
12075
|
onAddInkElement,
|
|
12083
12076
|
onAddFreeformShape,
|
|
12084
|
-
|
|
12077
|
+
buildPathD,
|
|
12085
12078
|
currentStrokePressures
|
|
12086
12079
|
]
|
|
12087
12080
|
);
|
|
12088
12081
|
const liveStrokeD = useMemo(
|
|
12089
|
-
() => isStrokeActive ?
|
|
12090
|
-
[isStrokeActive, currentStrokePoints,
|
|
12082
|
+
() => isStrokeActive ? buildPathD(currentStrokePoints) : "",
|
|
12083
|
+
[isStrokeActive, currentStrokePoints, buildPathD]
|
|
12091
12084
|
);
|
|
12092
12085
|
return {
|
|
12093
12086
|
isDrawing,
|
|
@@ -21844,7 +21837,13 @@ function ChartDataPointOptions({
|
|
|
21844
21837
|
}) })
|
|
21845
21838
|
] });
|
|
21846
21839
|
}
|
|
21847
|
-
function ChartDisplayOptions({
|
|
21840
|
+
function ChartDisplayOptions({
|
|
21841
|
+
style,
|
|
21842
|
+
canEdit,
|
|
21843
|
+
onUpdateStyle,
|
|
21844
|
+
hasGridlines,
|
|
21845
|
+
onToggleGridlines
|
|
21846
|
+
}) {
|
|
21848
21847
|
const { t } = useTranslation();
|
|
21849
21848
|
return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
|
|
21850
21849
|
/* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.display") }),
|
|
@@ -21897,8 +21896,8 @@ function ChartDisplayOptions({ style, canEdit, onUpdateStyle }) {
|
|
|
21897
21896
|
{
|
|
21898
21897
|
type: "checkbox",
|
|
21899
21898
|
disabled: !canEdit,
|
|
21900
|
-
checked:
|
|
21901
|
-
onChange: (e) =>
|
|
21899
|
+
checked: hasGridlines,
|
|
21900
|
+
onChange: (e) => onToggleGridlines(e.target.checked),
|
|
21902
21901
|
className: "accent-primary"
|
|
21903
21902
|
}
|
|
21904
21903
|
),
|
|
@@ -22107,11 +22106,13 @@ function DebouncedColorInput({
|
|
|
22107
22106
|
}
|
|
22108
22107
|
var DEFAULT_SWATCH = "#4472c4";
|
|
22109
22108
|
function ChartSeriesColorOptions({
|
|
22110
|
-
|
|
22109
|
+
chartData,
|
|
22111
22110
|
canEdit,
|
|
22112
|
-
onSetColor
|
|
22111
|
+
onSetColor,
|
|
22112
|
+
onToggleSecondaryAxis
|
|
22113
22113
|
}) {
|
|
22114
22114
|
const { t } = useTranslation();
|
|
22115
|
+
const series = chartData.series;
|
|
22115
22116
|
if (series.length === 0) {
|
|
22116
22117
|
return null;
|
|
22117
22118
|
}
|
|
@@ -22119,6 +22120,19 @@ function ChartSeriesColorOptions({
|
|
|
22119
22120
|
/* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.seriesColors") }),
|
|
22120
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: [
|
|
22121
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
|
+
] }),
|
|
22122
22136
|
/* @__PURE__ */ jsx(
|
|
22123
22137
|
DebouncedColorInput,
|
|
22124
22138
|
{
|
|
@@ -22323,6 +22337,25 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22323
22337
|
},
|
|
22324
22338
|
[chartData, style, onUpdateElement]
|
|
22325
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
|
+
);
|
|
22326
22359
|
const updateAxis = useCallback(
|
|
22327
22360
|
(axisType, patch) => {
|
|
22328
22361
|
if (!chartData) {
|
|
@@ -22493,7 +22526,16 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22493
22526
|
onUpdateChartData: updateChartData
|
|
22494
22527
|
}
|
|
22495
22528
|
),
|
|
22496
|
-
/* @__PURE__ */ jsx(
|
|
22529
|
+
/* @__PURE__ */ jsx(
|
|
22530
|
+
ChartDisplayOptions,
|
|
22531
|
+
{
|
|
22532
|
+
style,
|
|
22533
|
+
canEdit,
|
|
22534
|
+
onUpdateStyle: updateStyle,
|
|
22535
|
+
hasGridlines,
|
|
22536
|
+
onToggleGridlines: toggleGridlines
|
|
22537
|
+
}
|
|
22538
|
+
),
|
|
22497
22539
|
/* @__PURE__ */ jsx(ChartDataLabelOptions, { style, canEdit, onUpdateStyle: updateStyle }),
|
|
22498
22540
|
/* @__PURE__ */ jsx(ChartAxisOptions, { axes: chartData.axes, canEdit, onUpdateAxis: updateAxis }),
|
|
22499
22541
|
/* @__PURE__ */ jsx(
|
|
@@ -22564,7 +22606,15 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
|
22564
22606
|
onSetErrorBars: setSeriesErrorBars
|
|
22565
22607
|
}
|
|
22566
22608
|
),
|
|
22567
|
-
/* @__PURE__ */ jsx(
|
|
22609
|
+
/* @__PURE__ */ jsx(
|
|
22610
|
+
ChartSeriesColorOptions,
|
|
22611
|
+
{
|
|
22612
|
+
chartData,
|
|
22613
|
+
canEdit,
|
|
22614
|
+
onSetColor: setSeriesColor,
|
|
22615
|
+
onToggleSecondaryAxis: toggleSecondaryAxis
|
|
22616
|
+
}
|
|
22617
|
+
),
|
|
22568
22618
|
/* @__PURE__ */ jsx(
|
|
22569
22619
|
ChartDataGrid,
|
|
22570
22620
|
{
|
|
@@ -24297,23 +24347,10 @@ function MediaPropertiesPanel({
|
|
|
24297
24347
|
}
|
|
24298
24348
|
|
|
24299
24349
|
// src/viewer/components/inspector/fill-stroke-options.ts
|
|
24300
|
-
var
|
|
24301
|
-
|
|
24302
|
-
|
|
24303
|
-
|
|
24304
|
-
{ value: "thinThick", label: "Thin-Thick", i18nKey: "pptx.strokeOptions.compoundThinThick" },
|
|
24305
|
-
{ value: "tri", label: "Triple", i18nKey: "pptx.strokeOptions.compoundTriple" }
|
|
24306
|
-
];
|
|
24307
|
-
var LINE_JOIN_OPTIONS = [
|
|
24308
|
-
{ value: "round", label: "Round", i18nKey: "pptx.strokeOptions.joinRound" },
|
|
24309
|
-
{ value: "bevel", label: "Bevel", i18nKey: "pptx.strokeOptions.joinBevel" },
|
|
24310
|
-
{ value: "miter", label: "Miter", i18nKey: "pptx.strokeOptions.joinMiter" }
|
|
24311
|
-
];
|
|
24312
|
-
var LINE_CAP_OPTIONS = [
|
|
24313
|
-
{ value: "flat", label: "Flat", i18nKey: "pptx.strokeOptions.capFlat" },
|
|
24314
|
-
{ value: "rnd", label: "Round", i18nKey: "pptx.strokeOptions.capRound" },
|
|
24315
|
-
{ value: "sq", label: "Square", i18nKey: "pptx.strokeOptions.capSquare" }
|
|
24316
|
-
];
|
|
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;
|
|
24317
24354
|
var FILL_MODE_OPTIONS2 = [
|
|
24318
24355
|
{ value: "solid", label: "Solid", i18nKey: "pptx.fill.solid" },
|
|
24319
24356
|
{ value: "gradient", label: "Gradient", i18nKey: "pptx.fill.gradient" },
|
|
@@ -24321,76 +24358,6 @@ var FILL_MODE_OPTIONS2 = [
|
|
|
24321
24358
|
{ value: "image", label: "Image", i18nKey: "pptx.inspector.image" },
|
|
24322
24359
|
{ value: "none", label: "None", i18nKey: "pptx.fill.none" }
|
|
24323
24360
|
];
|
|
24324
|
-
var PATTERN_PRESET_OPTIONS = [
|
|
24325
|
-
{ value: "pct5", label: "5%", i18nKey: "pptx.fillPatterns.pct5" },
|
|
24326
|
-
{ value: "pct10", label: "10%", i18nKey: "pptx.fillPatterns.pct10" },
|
|
24327
|
-
{ value: "pct20", label: "20%", i18nKey: "pptx.fillPatterns.pct20" },
|
|
24328
|
-
{ value: "pct25", label: "25%", i18nKey: "pptx.fillPatterns.pct25" },
|
|
24329
|
-
{ value: "pct30", label: "30%", i18nKey: "pptx.fillPatterns.pct30" },
|
|
24330
|
-
{ value: "pct40", label: "40%", i18nKey: "pptx.fillPatterns.pct40" },
|
|
24331
|
-
{ value: "pct50", label: "50%", i18nKey: "pptx.fillPatterns.pct50" },
|
|
24332
|
-
{ value: "pct60", label: "60%", i18nKey: "pptx.fillPatterns.pct60" },
|
|
24333
|
-
{ value: "pct70", label: "70%", i18nKey: "pptx.fillPatterns.pct70" },
|
|
24334
|
-
{ value: "pct75", label: "75%", i18nKey: "pptx.fillPatterns.pct75" },
|
|
24335
|
-
{ value: "pct80", label: "80%", i18nKey: "pptx.fillPatterns.pct80" },
|
|
24336
|
-
{ value: "pct90", label: "90%", i18nKey: "pptx.fillPatterns.pct90" },
|
|
24337
|
-
{ value: "horz", label: "Horizontal", i18nKey: "pptx.fillPatterns.horizontal" },
|
|
24338
|
-
{ value: "vert", label: "Vertical", i18nKey: "pptx.fillPatterns.vertical" },
|
|
24339
|
-
{ value: "ltHorz", label: "Light Horizontal", i18nKey: "pptx.fillPatterns.lightHorizontal" },
|
|
24340
|
-
{ value: "ltVert", label: "Light Vertical", i18nKey: "pptx.fillPatterns.lightVertical" },
|
|
24341
|
-
{ value: "dkHorz", label: "Dark Horizontal", i18nKey: "pptx.fillPatterns.darkHorizontal" },
|
|
24342
|
-
{ value: "dkVert", label: "Dark Vertical", i18nKey: "pptx.fillPatterns.darkVertical" },
|
|
24343
|
-
{ value: "narHorz", label: "Narrow Horizontal", i18nKey: "pptx.fillPatterns.narrowHorizontal" },
|
|
24344
|
-
{ value: "narVert", label: "Narrow Vertical", i18nKey: "pptx.fillPatterns.narrowVertical" },
|
|
24345
|
-
{ value: "wdHorz", label: "Wide Horizontal", i18nKey: "pptx.fillPatterns.wideHorizontal" },
|
|
24346
|
-
{ value: "wdVert", label: "Wide Vertical", i18nKey: "pptx.fillPatterns.wideVertical" },
|
|
24347
|
-
{ value: "dashHorz", label: "Dashed Horizontal", i18nKey: "pptx.fillPatterns.dashedHorizontal" },
|
|
24348
|
-
{ value: "dashVert", label: "Dashed Vertical", i18nKey: "pptx.fillPatterns.dashedVertical" },
|
|
24349
|
-
{ value: "cross", label: "Cross", i18nKey: "pptx.fillPatterns.cross" },
|
|
24350
|
-
{ value: "dnDiag", label: "Down Diagonal", i18nKey: "pptx.fillPatterns.downDiagonal" },
|
|
24351
|
-
{ value: "upDiag", label: "Up Diagonal", i18nKey: "pptx.fillPatterns.upDiagonal" },
|
|
24352
|
-
{
|
|
24353
|
-
value: "ltDnDiag",
|
|
24354
|
-
label: "Light Down Diagonal",
|
|
24355
|
-
i18nKey: "pptx.fillPatterns.lightDownDiagonal"
|
|
24356
|
-
},
|
|
24357
|
-
{ value: "ltUpDiag", label: "Light Up Diagonal", i18nKey: "pptx.fillPatterns.lightUpDiagonal" },
|
|
24358
|
-
{ value: "dkDnDiag", label: "Dark Down Diagonal", i18nKey: "pptx.fillPatterns.darkDownDiagonal" },
|
|
24359
|
-
{ value: "dkUpDiag", label: "Dark Up Diagonal", i18nKey: "pptx.fillPatterns.darkUpDiagonal" },
|
|
24360
|
-
{ value: "wdDnDiag", label: "Wide Down Diagonal", i18nKey: "pptx.fillPatterns.wideDownDiagonal" },
|
|
24361
|
-
{ value: "wdUpDiag", label: "Wide Up Diagonal", i18nKey: "pptx.fillPatterns.wideUpDiagonal" },
|
|
24362
|
-
{
|
|
24363
|
-
value: "dashDnDiag",
|
|
24364
|
-
label: "Dashed Down Diagonal",
|
|
24365
|
-
i18nKey: "pptx.fillPatterns.dashedDownDiagonal"
|
|
24366
|
-
},
|
|
24367
|
-
{
|
|
24368
|
-
value: "dashUpDiag",
|
|
24369
|
-
label: "Dashed Up Diagonal",
|
|
24370
|
-
i18nKey: "pptx.fillPatterns.dashedUpDiagonal"
|
|
24371
|
-
},
|
|
24372
|
-
{ value: "diagCross", label: "Diagonal Cross", i18nKey: "pptx.fillPatterns.diagonalCross" },
|
|
24373
|
-
{ value: "smCheck", label: "Small Check", i18nKey: "pptx.fillPatterns.smallCheck" },
|
|
24374
|
-
{ value: "lgCheck", label: "Large Check", i18nKey: "pptx.fillPatterns.largeCheck" },
|
|
24375
|
-
{ value: "smGrid", label: "Small Grid", i18nKey: "pptx.fillPatterns.smallGrid" },
|
|
24376
|
-
{ value: "lgGrid", label: "Large Grid", i18nKey: "pptx.fillPatterns.largeGrid" },
|
|
24377
|
-
{ value: "dotGrid", label: "Dot Grid", i18nKey: "pptx.fillPatterns.dotGrid" },
|
|
24378
|
-
{ value: "smConfetti", label: "Small Confetti", i18nKey: "pptx.fillPatterns.smallConfetti" },
|
|
24379
|
-
{ value: "lgConfetti", label: "Large Confetti", i18nKey: "pptx.fillPatterns.largeConfetti" },
|
|
24380
|
-
{ value: "horzBrick", label: "Horizontal Brick", i18nKey: "pptx.fillPatterns.horizontalBrick" },
|
|
24381
|
-
{ value: "diagBrick", label: "Diagonal Brick", i18nKey: "pptx.fillPatterns.diagonalBrick" },
|
|
24382
|
-
{ value: "solidDmnd", label: "Solid Diamond", i18nKey: "pptx.fillPatterns.solidDiamond" },
|
|
24383
|
-
{ value: "openDmnd", label: "Open Diamond", i18nKey: "pptx.fillPatterns.openDiamond" },
|
|
24384
|
-
{ value: "dotDmnd", label: "Dotted Diamond", i18nKey: "pptx.fillPatterns.dottedDiamond" },
|
|
24385
|
-
{ value: "plaid", label: "Plaid", i18nKey: "pptx.fillPatterns.plaid" },
|
|
24386
|
-
{ value: "sphere", label: "Sphere", i18nKey: "pptx.fillPatterns.sphere" },
|
|
24387
|
-
{ value: "weave", label: "Weave", i18nKey: "pptx.fillPatterns.weave" },
|
|
24388
|
-
{ value: "divot", label: "Divot", i18nKey: "pptx.fillPatterns.divot" },
|
|
24389
|
-
{ value: "shingle", label: "Shingle", i18nKey: "pptx.fillPatterns.shingle" },
|
|
24390
|
-
{ value: "wave", label: "Wave", i18nKey: "pptx.fillPatterns.wave" },
|
|
24391
|
-
{ value: "trellis", label: "Trellis", i18nKey: "pptx.fillPatterns.trellis" },
|
|
24392
|
-
{ value: "zigZag", label: "Zig Zag", i18nKey: "pptx.fillPatterns.zigZag" }
|
|
24393
|
-
];
|
|
24394
24361
|
var GRADIENT_TYPE_OPTIONS2 = [
|
|
24395
24362
|
{ value: "linear", label: "Linear", i18nKey: "pptx.gradient.linear" },
|
|
24396
24363
|
{ value: "radial", label: "Radial", i18nKey: "pptx.gradient.radial" }
|
|
@@ -24585,6 +24552,7 @@ var SHADOW_EFFECT_CONFIGS = [
|
|
|
24585
24552
|
{
|
|
24586
24553
|
key: "sr",
|
|
24587
24554
|
label: "Rotate with Shape",
|
|
24555
|
+
i18nKey: "pptx.effects.rotateWithShape",
|
|
24588
24556
|
type: "checkbox",
|
|
24589
24557
|
read: (s) => s?.shadowRotateWithShape ?? true,
|
|
24590
24558
|
write: (v) => ({ shadowRotateWithShape: Boolean(v) })
|
|
@@ -25281,7 +25249,7 @@ function FillAdvancedControls({
|
|
|
25281
25249
|
style?.fillMode === "pattern" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
25282
25250
|
/* @__PURE__ */ jsxs("div", { className: `${COL2} flex flex-col gap-2`, children: [
|
|
25283
25251
|
/* @__PURE__ */ jsx("span", { className: LBL2, children: "Pattern" }),
|
|
25284
|
-
/* @__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) => {
|
|
25285
25253
|
const fgColor = normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR);
|
|
25286
25254
|
const bgColor = normalizeHexColor(style?.fillPatternBackgroundColor, "#ffffff");
|
|
25287
25255
|
const svgPattern = getPatternSvg(opt.value, fgColor, bgColor);
|
|
@@ -25290,7 +25258,7 @@ function FillAdvancedControls({
|
|
|
25290
25258
|
"button",
|
|
25291
25259
|
{
|
|
25292
25260
|
type: "button",
|
|
25293
|
-
title: opt.
|
|
25261
|
+
title: t(opt.labelKey),
|
|
25294
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"}`,
|
|
25295
25263
|
onClick: () => onUpdateShapeStyle({
|
|
25296
25264
|
fillMode: "pattern",
|
|
@@ -25493,7 +25461,7 @@ function StrokeEffectsSection({
|
|
|
25493
25461
|
] }),
|
|
25494
25462
|
/* @__PURE__ */ jsxs("label", { className: `flex flex-col gap-1 ${COL2}`, children: [
|
|
25495
25463
|
/* @__PURE__ */ jsx("span", { className: LBL2, children: t("pptx.strokeEffects.compoundLine") }),
|
|
25496
|
-
/* @__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(
|
|
25497
25465
|
"button",
|
|
25498
25466
|
{
|
|
25499
25467
|
type: "button",
|
|
@@ -25538,7 +25506,7 @@ function StrokeEffectsSection({
|
|
|
25538
25506
|
{
|
|
25539
25507
|
label: t("pptx.strokeEffects.lineJoin"),
|
|
25540
25508
|
value: style?.lineJoin || "round",
|
|
25541
|
-
options:
|
|
25509
|
+
options: LINE_JOIN_OPTIONS2,
|
|
25542
25510
|
onChange: (v) => onUpdateShapeStyle({ lineJoin: v })
|
|
25543
25511
|
}
|
|
25544
25512
|
),
|
|
@@ -25547,7 +25515,7 @@ function StrokeEffectsSection({
|
|
|
25547
25515
|
{
|
|
25548
25516
|
label: t("pptx.strokeEffects.lineCap"),
|
|
25549
25517
|
value: style?.lineCap || "flat",
|
|
25550
|
-
options:
|
|
25518
|
+
options: LINE_CAP_OPTIONS2,
|
|
25551
25519
|
onChange: (v) => onUpdateShapeStyle({ lineCap: v })
|
|
25552
25520
|
}
|
|
25553
25521
|
)
|
|
@@ -30084,32 +30052,6 @@ function InspectorPane(props) {
|
|
|
30084
30052
|
)
|
|
30085
30053
|
] });
|
|
30086
30054
|
}
|
|
30087
|
-
function buildPathD(points) {
|
|
30088
|
-
if (points.length === 0) {
|
|
30089
|
-
return "";
|
|
30090
|
-
}
|
|
30091
|
-
const first = points[0];
|
|
30092
|
-
let d = `M ${first.x} ${first.y}`;
|
|
30093
|
-
for (let i = 1; i < points.length; i++) {
|
|
30094
|
-
const pt = points[i];
|
|
30095
|
-
d += ` L ${pt.x} ${pt.y}`;
|
|
30096
|
-
}
|
|
30097
|
-
return d;
|
|
30098
|
-
}
|
|
30099
|
-
function getCursorForTool(tool) {
|
|
30100
|
-
switch (tool) {
|
|
30101
|
-
case "laser":
|
|
30102
|
-
return "none";
|
|
30103
|
-
case "pen":
|
|
30104
|
-
return "crosshair";
|
|
30105
|
-
case "highlighter":
|
|
30106
|
-
return "crosshair";
|
|
30107
|
-
case "eraser":
|
|
30108
|
-
return "crosshair";
|
|
30109
|
-
default:
|
|
30110
|
-
return "default";
|
|
30111
|
-
}
|
|
30112
|
-
}
|
|
30113
30055
|
function PresentationAnnotationOverlay({
|
|
30114
30056
|
canvasSize,
|
|
30115
30057
|
editorScale,
|
|
@@ -30220,7 +30162,7 @@ function PresentationAnnotationOverlay({
|
|
|
30220
30162
|
className: "absolute inset-0",
|
|
30221
30163
|
style: {
|
|
30222
30164
|
zIndex: annotationOverlayZIndex(blackout),
|
|
30223
|
-
cursor:
|
|
30165
|
+
cursor: cursorForTool(presentationTool),
|
|
30224
30166
|
pointerEvents: isCapturing ? "auto" : "none"
|
|
30225
30167
|
},
|
|
30226
30168
|
children: [
|
|
@@ -30243,7 +30185,7 @@ function PresentationAnnotationOverlay({
|
|
|
30243
30185
|
children: allStrokes.map((stroke) => /* @__PURE__ */ jsx(
|
|
30244
30186
|
"path",
|
|
30245
30187
|
{
|
|
30246
|
-
d:
|
|
30188
|
+
d: buildStrokePathD(stroke.points),
|
|
30247
30189
|
fill: "none",
|
|
30248
30190
|
stroke: stroke.color,
|
|
30249
30191
|
strokeWidth: stroke.width,
|
|
@@ -34203,24 +34145,9 @@ function EquationEditorDialog({
|
|
|
34203
34145
|
}
|
|
34204
34146
|
);
|
|
34205
34147
|
}
|
|
34206
|
-
var PREVIEW_ELEMENT_WIDTH = 600;
|
|
34207
|
-
var PREVIEW_ELEMENT_HEIGHT = 340;
|
|
34208
34148
|
var PREVIEW_TILE_WIDTH2 = 64;
|
|
34209
|
-
var FALLBACK_ITEMS = ["1", "2", "3"];
|
|
34210
|
-
function buildPreviewElement(layout) {
|
|
34211
|
-
const preset = PRESETS.find((p) => p.layout === layout);
|
|
34212
|
-
return {
|
|
34213
|
-
id: `smartart-preview-${layout}`,
|
|
34214
|
-
type: "smartArt",
|
|
34215
|
-
x: 0,
|
|
34216
|
-
y: 0,
|
|
34217
|
-
width: PREVIEW_ELEMENT_WIDTH,
|
|
34218
|
-
height: PREVIEW_ELEMENT_HEIGHT,
|
|
34219
|
-
smartArtData: buildSmartArtPresetData(layout, preset?.defaultItems ?? FALLBACK_ITEMS)
|
|
34220
|
-
};
|
|
34221
|
-
}
|
|
34222
34149
|
function getPreviewForLayout(layout) {
|
|
34223
|
-
const scale = PREVIEW_TILE_WIDTH2 /
|
|
34150
|
+
const scale = PREVIEW_TILE_WIDTH2 / SMARTART_PREVIEW_ELEMENT_WIDTH;
|
|
34224
34151
|
return /* @__PURE__ */ jsx(
|
|
34225
34152
|
"div",
|
|
34226
34153
|
{
|
|
@@ -34228,18 +34155,18 @@ function getPreviewForLayout(layout) {
|
|
|
34228
34155
|
className: "overflow-hidden pointer-events-none",
|
|
34229
34156
|
style: {
|
|
34230
34157
|
width: PREVIEW_TILE_WIDTH2,
|
|
34231
|
-
height: Math.round(
|
|
34158
|
+
height: Math.round(SMARTART_PREVIEW_ELEMENT_HEIGHT * scale)
|
|
34232
34159
|
},
|
|
34233
34160
|
children: /* @__PURE__ */ jsx(
|
|
34234
34161
|
"div",
|
|
34235
34162
|
{
|
|
34236
34163
|
style: {
|
|
34237
|
-
width:
|
|
34238
|
-
height:
|
|
34164
|
+
width: SMARTART_PREVIEW_ELEMENT_WIDTH,
|
|
34165
|
+
height: SMARTART_PREVIEW_ELEMENT_HEIGHT,
|
|
34239
34166
|
transform: `scale(${scale})`,
|
|
34240
34167
|
transformOrigin: "top left"
|
|
34241
34168
|
},
|
|
34242
|
-
children: /* @__PURE__ */ jsx(SmartArtRenderer, { element:
|
|
34169
|
+
children: /* @__PURE__ */ jsx(SmartArtRenderer, { element: buildSmartArtPreviewElement(layout) })
|
|
34243
34170
|
}
|
|
34244
34171
|
)
|
|
34245
34172
|
}
|
|
@@ -35396,7 +35323,7 @@ ${url}`)) {
|
|
|
35396
35323
|
var AiChatPanel = lazy(async () => {
|
|
35397
35324
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
35398
35325
|
import('@ai-sdk/react'),
|
|
35399
|
-
import('./AiChatPanel-
|
|
35326
|
+
import('./AiChatPanel-BNFDBP4S.mjs')
|
|
35400
35327
|
]);
|
|
35401
35328
|
function BoundAiChatPanel(props) {
|
|
35402
35329
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -37474,144 +37401,16 @@ function OptionsRibbonPane({
|
|
|
37474
37401
|
}
|
|
37475
37402
|
|
|
37476
37403
|
// src/viewer/utils/ai-log-export.ts
|
|
37477
|
-
function
|
|
37478
|
-
const n = Number.isFinite(ms) ? ms : 0;
|
|
37479
|
-
return new Date(n).toISOString();
|
|
37480
|
-
}
|
|
37481
|
-
function toLogChat(chat, detailed) {
|
|
37482
|
-
const messages = chat.messages.map((message) => {
|
|
37483
|
-
const parts = toRenderableParts(message);
|
|
37484
|
-
const textRuns = [];
|
|
37485
|
-
const toolCalls = [];
|
|
37486
|
-
for (const part of parts) {
|
|
37487
|
-
if (part.kind === "text") {
|
|
37488
|
-
textRuns.push(part.text);
|
|
37489
|
-
continue;
|
|
37490
|
-
}
|
|
37491
|
-
toolCalls.push({
|
|
37492
|
-
toolName: part.toolName,
|
|
37493
|
-
toolCallId: part.toolCallId,
|
|
37494
|
-
state: part.state,
|
|
37495
|
-
input: detailed ? part.input : void 0,
|
|
37496
|
-
output: detailed ? part.output : void 0,
|
|
37497
|
-
errorText: part.errorText
|
|
37498
|
-
});
|
|
37499
|
-
}
|
|
37500
|
-
return {
|
|
37501
|
-
role: message.role,
|
|
37502
|
-
text: textRuns.join("\n\n"),
|
|
37503
|
-
toolCalls
|
|
37504
|
-
};
|
|
37505
|
-
});
|
|
37506
|
-
return {
|
|
37507
|
-
id: chat.id,
|
|
37508
|
-
title: chat.title,
|
|
37509
|
-
deckId: chat.deckId,
|
|
37510
|
-
createdAt: chat.createdAt,
|
|
37511
|
-
updatedAt: chat.updatedAt,
|
|
37512
|
-
createdAtIso: isoOf(chat.createdAt),
|
|
37513
|
-
updatedAtIso: isoOf(chat.updatedAt),
|
|
37514
|
-
messageCount: chat.messages.length,
|
|
37515
|
-
messages
|
|
37516
|
-
};
|
|
37517
|
-
}
|
|
37518
|
-
function buildChatLogExport(chats, options) {
|
|
37519
|
-
const detailed = options?.detailed ?? true;
|
|
37520
|
-
const now = options?.now ?? Date.now();
|
|
37521
|
-
return {
|
|
37522
|
-
format: "pptx-ai-chat-log",
|
|
37523
|
-
version: 1,
|
|
37524
|
-
exportedAt: isoOf(now),
|
|
37525
|
-
detailed,
|
|
37526
|
-
chatCount: chats.length,
|
|
37527
|
-
chats: chats.map((chat) => toLogChat(chat, detailed))
|
|
37528
|
-
};
|
|
37529
|
-
}
|
|
37530
|
-
function toolCallLine(call, detailed) {
|
|
37531
|
-
const lines = [`- Tool \`${call.toolName}\` (${call.state})`];
|
|
37532
|
-
if (call.errorText) {
|
|
37533
|
-
lines.push(` - error: ${call.errorText}`);
|
|
37534
|
-
}
|
|
37535
|
-
if (detailed) {
|
|
37536
|
-
lines.push(" - input:");
|
|
37537
|
-
lines.push(" ```json");
|
|
37538
|
-
lines.push(JSON.stringify(call.input ?? null, null, 2));
|
|
37539
|
-
lines.push(" ```");
|
|
37540
|
-
lines.push(" - output:");
|
|
37541
|
-
lines.push(" ```json");
|
|
37542
|
-
lines.push(JSON.stringify(call.output ?? null, null, 2));
|
|
37543
|
-
lines.push(" ```");
|
|
37544
|
-
}
|
|
37545
|
-
return lines.join("\n");
|
|
37546
|
-
}
|
|
37547
|
-
function buildChatLogMarkdown(doc) {
|
|
37548
|
-
const out = [
|
|
37549
|
-
`# AI chat logs`,
|
|
37550
|
-
"",
|
|
37551
|
-
`Exported: ${doc.exportedAt}`,
|
|
37552
|
-
`Chats: ${doc.chatCount}`,
|
|
37553
|
-
""
|
|
37554
|
-
];
|
|
37555
|
-
for (const chat of doc.chats) {
|
|
37556
|
-
out.push(`## ${chat.title || chat.id}`);
|
|
37557
|
-
out.push("");
|
|
37558
|
-
out.push(`- id: ${chat.id}`);
|
|
37559
|
-
if (chat.deckId) {
|
|
37560
|
-
out.push(`- deck: ${chat.deckId}`);
|
|
37561
|
-
}
|
|
37562
|
-
out.push(`- created: ${chat.createdAtIso}`);
|
|
37563
|
-
out.push(`- updated: ${chat.updatedAtIso}`);
|
|
37564
|
-
out.push(`- messages: ${chat.messageCount}`);
|
|
37565
|
-
out.push("");
|
|
37566
|
-
for (const message of chat.messages) {
|
|
37567
|
-
out.push(`### ${message.role}`);
|
|
37568
|
-
out.push("");
|
|
37569
|
-
if (message.text) {
|
|
37570
|
-
out.push(message.text);
|
|
37571
|
-
out.push("");
|
|
37572
|
-
}
|
|
37573
|
-
for (const call of message.toolCalls) {
|
|
37574
|
-
out.push(toolCallLine(call, doc.detailed));
|
|
37575
|
-
out.push("");
|
|
37576
|
-
}
|
|
37577
|
-
}
|
|
37578
|
-
}
|
|
37579
|
-
return out.join("\n");
|
|
37580
|
-
}
|
|
37581
|
-
async function collectStoredChats(store) {
|
|
37582
|
-
const summaries = await store.listChats();
|
|
37583
|
-
const chats = [];
|
|
37584
|
-
for (const summary of summaries) {
|
|
37585
|
-
const chat = await store.loadChat(summary.id);
|
|
37586
|
-
if (chat) {
|
|
37587
|
-
chats.push(chat);
|
|
37588
|
-
}
|
|
37589
|
-
}
|
|
37590
|
-
return chats;
|
|
37591
|
-
}
|
|
37592
|
-
function timestampSlug(now) {
|
|
37593
|
-
const d = new Date(now);
|
|
37594
|
-
const p = (n) => String(n).padStart(2, "0");
|
|
37595
|
-
return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
|
|
37596
|
-
}
|
|
37597
|
-
async function exportAiChatLogs(options) {
|
|
37404
|
+
async function exportAiChatLogs2(options) {
|
|
37598
37405
|
const store = options?.store ?? createChatHistoryStore();
|
|
37599
|
-
const format = options?.format ?? "json";
|
|
37600
|
-
const now = options?.now ?? Date.now();
|
|
37601
37406
|
const chats = await collectStoredChats(store);
|
|
37602
|
-
|
|
37603
|
-
|
|
37604
|
-
|
|
37605
|
-
|
|
37606
|
-
|
|
37607
|
-
|
|
37608
|
-
|
|
37609
|
-
downloadBlob(blob, `pptx-ai-chats-${slug}.md`);
|
|
37610
|
-
} else {
|
|
37611
|
-
const blob = new Blob([JSON.stringify(doc, null, 2)], { type: "application/json" });
|
|
37612
|
-
downloadBlob(blob, `pptx-ai-chats-${slug}.json`);
|
|
37613
|
-
}
|
|
37614
|
-
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
|
+
);
|
|
37615
37414
|
}
|
|
37616
37415
|
function SettingsAiTab({ store }) {
|
|
37617
37416
|
const { t } = useTranslation();
|
|
@@ -37642,7 +37441,7 @@ function SettingsAiTab({ store }) {
|
|
|
37642
37441
|
async (format) => {
|
|
37643
37442
|
setStatus({ kind: "busy" });
|
|
37644
37443
|
try {
|
|
37645
|
-
const count = await
|
|
37444
|
+
const count = await exportAiChatLogs2({ store: activeStore, format, detailed });
|
|
37646
37445
|
setStatus({ kind: "done", count });
|
|
37647
37446
|
} catch {
|
|
37648
37447
|
setStatus({ kind: "done", count: 0 });
|
|
@@ -38097,106 +37896,6 @@ function SettingsDialog({
|
|
|
38097
37896
|
)
|
|
38098
37897
|
] });
|
|
38099
37898
|
}
|
|
38100
|
-
|
|
38101
|
-
// src/viewer/hooks/ai/ai-element-update.ts
|
|
38102
|
-
function applyGeometry(el, u) {
|
|
38103
|
-
if (u.x !== void 0) {
|
|
38104
|
-
el.x = u.x;
|
|
38105
|
-
}
|
|
38106
|
-
if (u.y !== void 0) {
|
|
38107
|
-
el.y = u.y;
|
|
38108
|
-
}
|
|
38109
|
-
if (u.width !== void 0) {
|
|
38110
|
-
el.width = u.width;
|
|
38111
|
-
}
|
|
38112
|
-
if (u.height !== void 0) {
|
|
38113
|
-
el.height = u.height;
|
|
38114
|
-
}
|
|
38115
|
-
if (u.rotation !== void 0) {
|
|
38116
|
-
el.rotation = u.rotation;
|
|
38117
|
-
}
|
|
38118
|
-
if (u.opacity !== void 0) {
|
|
38119
|
-
el.opacity = u.opacity;
|
|
38120
|
-
}
|
|
38121
|
-
if (u.hidden !== void 0) {
|
|
38122
|
-
el.hidden = u.hidden;
|
|
38123
|
-
}
|
|
38124
|
-
if (u.flipHorizontal !== void 0) {
|
|
38125
|
-
el.flipHorizontal = u.flipHorizontal;
|
|
38126
|
-
}
|
|
38127
|
-
if (u.flipVertical !== void 0) {
|
|
38128
|
-
el.flipVertical = u.flipVertical;
|
|
38129
|
-
}
|
|
38130
|
-
}
|
|
38131
|
-
function applyText(el, u) {
|
|
38132
|
-
if (!hasTextProperties(el)) {
|
|
38133
|
-
return;
|
|
38134
|
-
}
|
|
38135
|
-
if (typeof u.text === "string") {
|
|
38136
|
-
el.text = u.text;
|
|
38137
|
-
if (el.textSegments && el.textSegments.length > 0) {
|
|
38138
|
-
el.textSegments = [{ text: u.text, style: el.textSegments[0].style }];
|
|
38139
|
-
} else {
|
|
38140
|
-
el.textSegments = [{ text: u.text, style: {} }];
|
|
38141
|
-
}
|
|
38142
|
-
}
|
|
38143
|
-
const textStyle = {};
|
|
38144
|
-
if (u.fontSize !== void 0) {
|
|
38145
|
-
textStyle.fontSize = u.fontSize;
|
|
38146
|
-
}
|
|
38147
|
-
if (u.fontFamily !== void 0) {
|
|
38148
|
-
textStyle.fontFamily = u.fontFamily;
|
|
38149
|
-
}
|
|
38150
|
-
if (u.fontColor !== void 0) {
|
|
38151
|
-
textStyle.color = u.fontColor;
|
|
38152
|
-
}
|
|
38153
|
-
if (u.bold !== void 0) {
|
|
38154
|
-
textStyle.bold = u.bold;
|
|
38155
|
-
}
|
|
38156
|
-
if (u.italic !== void 0) {
|
|
38157
|
-
textStyle.italic = u.italic;
|
|
38158
|
-
}
|
|
38159
|
-
if (u.underline !== void 0) {
|
|
38160
|
-
textStyle.underline = u.underline;
|
|
38161
|
-
}
|
|
38162
|
-
if (u.align !== void 0) {
|
|
38163
|
-
textStyle.align = u.align;
|
|
38164
|
-
}
|
|
38165
|
-
if (Object.keys(textStyle).length === 0) {
|
|
38166
|
-
return;
|
|
38167
|
-
}
|
|
38168
|
-
el.textStyle = { ...el.textStyle, ...textStyle };
|
|
38169
|
-
el.textSegments = el.textSegments?.map((seg) => ({
|
|
38170
|
-
...seg,
|
|
38171
|
-
style: { ...seg.style, ...textStyle }
|
|
38172
|
-
}));
|
|
38173
|
-
}
|
|
38174
|
-
function applyShapeStyle(el, u) {
|
|
38175
|
-
if (!hasShapeProperties(el)) {
|
|
38176
|
-
return;
|
|
38177
|
-
}
|
|
38178
|
-
const shapeStyle = {};
|
|
38179
|
-
if (u.fillColor !== void 0) {
|
|
38180
|
-
shapeStyle.fillColor = u.fillColor;
|
|
38181
|
-
}
|
|
38182
|
-
if (u.strokeColor !== void 0) {
|
|
38183
|
-
shapeStyle.strokeColor = u.strokeColor;
|
|
38184
|
-
}
|
|
38185
|
-
if (u.strokeWidth !== void 0) {
|
|
38186
|
-
shapeStyle.strokeWidth = u.strokeWidth;
|
|
38187
|
-
}
|
|
38188
|
-
if (Object.keys(shapeStyle).length === 0) {
|
|
38189
|
-
return;
|
|
38190
|
-
}
|
|
38191
|
-
el.shapeStyle = { ...el.shapeStyle, ...shapeStyle };
|
|
38192
|
-
}
|
|
38193
|
-
function applyAiElementUpdate(el, updates) {
|
|
38194
|
-
applyGeometry(el, updates);
|
|
38195
|
-
applyText(el, updates);
|
|
38196
|
-
applyShapeStyle(el, updates);
|
|
38197
|
-
}
|
|
38198
|
-
|
|
38199
|
-
// src/viewer/hooks/ai/useAiBridge.ts
|
|
38200
37899
|
function useAiBridge(input) {
|
|
38201
37900
|
const ref = useRef(input);
|
|
38202
37901
|
ref.current = input;
|
|
@@ -38252,7 +37951,7 @@ function useAiBridge(input) {
|
|
|
38252
37951
|
applySlidesUpdate((slides) => {
|
|
38253
37952
|
const el = slides[slideIndex]?.elements.find((e) => e.id === elementId);
|
|
38254
37953
|
if (el) {
|
|
38255
|
-
|
|
37954
|
+
applyElementUpdate(el, updates);
|
|
38256
37955
|
}
|
|
38257
37956
|
return slides;
|
|
38258
37957
|
});
|