pptx-react-viewer 2.20.0 → 2.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/{AiChatPanel-S5UYFWT2.mjs → AiChatPanel-NRWACXJ7.mjs} +3 -3
- package/dist/AiChatPanel-NRWACXJ7.mjs.br +0 -0
- package/dist/AiChatPanel-NRWACXJ7.mjs.gz +0 -0
- package/dist/{AiChatPanel-KOKEVIOQ.js → AiChatPanel-ZSVNVRM5.js} +23 -23
- package/dist/AiChatPanel-ZSVNVRM5.js.br +0 -0
- package/dist/AiChatPanel-ZSVNVRM5.js.gz +0 -0
- package/dist/{Model3DScene-T5372GIJ.js → Model3DScene-3HGARMTA.js} +2 -2
- package/dist/Model3DScene-3HGARMTA.js.br +0 -0
- package/dist/Model3DScene-3HGARMTA.js.gz +0 -0
- package/dist/{Model3DScene-T6QOOVLN.mjs → Model3DScene-IFYFOD6F.mjs} +1 -1
- package/dist/Model3DScene-IFYFOD6F.mjs.br +0 -0
- package/dist/Model3DScene-IFYFOD6F.mjs.gz +0 -0
- package/dist/{chunk-QLELFH7A.mjs → chunk-2MENHAYJ.mjs} +229 -1
- package/dist/chunk-2MENHAYJ.mjs.br +0 -0
- package/dist/{chunk-QLELFH7A.mjs.gz → chunk-2MENHAYJ.mjs.gz} +0 -0
- package/dist/{chunk-J56DMNSD.js → chunk-4Z4HEIP5.js} +243 -4
- package/dist/chunk-4Z4HEIP5.js.br +0 -0
- package/dist/{chunk-J56DMNSD.js.gz → chunk-4Z4HEIP5.js.gz} +0 -0
- package/dist/{chunk-SAKMXLW2.js → chunk-GKOJO67G.js} +472 -502
- package/dist/chunk-GKOJO67G.js.br +0 -0
- package/dist/chunk-GKOJO67G.js.gz +0 -0
- package/dist/{chunk-XWCN4TGE.mjs → chunk-HZ2PAL7P.mjs} +93 -117
- package/dist/chunk-HZ2PAL7P.mjs.br +0 -0
- package/dist/chunk-HZ2PAL7P.mjs.gz +0 -0
- package/dist/{chunk-BW3ZS73U.js → chunk-LLZ25OVR.js} +147 -147
- package/dist/chunk-LLZ25OVR.js.br +0 -0
- package/dist/chunk-LLZ25OVR.js.gz +0 -0
- package/dist/{chunk-U2UIJRSW.mjs → chunk-O5BR276S.mjs} +1 -1
- package/dist/chunk-O5BR276S.mjs.br +0 -0
- package/dist/chunk-O5BR276S.mjs.gz +0 -0
- package/dist/{chunk-T7OUKBWK.js → chunk-QJJX2E6I.js} +3 -3
- package/dist/chunk-QJJX2E6I.js.br +0 -0
- package/dist/chunk-QJJX2E6I.js.gz +0 -0
- package/dist/{chunk-2T7J57AC.mjs → chunk-RJ26DQIM.mjs} +1 -1
- package/dist/chunk-RJ26DQIM.mjs.br +0 -0
- package/dist/chunk-RJ26DQIM.mjs.gz +0 -0
- package/dist/{chunk-YMNURZ22.mjs → chunk-SZJLZWEX.mjs} +100 -130
- package/dist/chunk-SZJLZWEX.mjs.br +0 -0
- package/dist/chunk-SZJLZWEX.mjs.gz +0 -0
- package/dist/{chunk-AFAAKYYB.js → chunk-WCJ3HF4C.js} +1119 -1143
- package/dist/chunk-WCJ3HF4C.js.br +0 -0
- package/dist/chunk-WCJ3HF4C.js.gz +0 -0
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-KOKEVIOQ.js.br +0 -0
- package/dist/AiChatPanel-KOKEVIOQ.js.gz +0 -0
- package/dist/AiChatPanel-S5UYFWT2.mjs.br +0 -0
- package/dist/AiChatPanel-S5UYFWT2.mjs.gz +0 -0
- package/dist/Model3DScene-T5372GIJ.js.br +0 -0
- package/dist/Model3DScene-T5372GIJ.js.gz +0 -0
- package/dist/Model3DScene-T6QOOVLN.mjs.br +0 -0
- package/dist/Model3DScene-T6QOOVLN.mjs.gz +0 -0
- package/dist/chunk-2T7J57AC.mjs.br +0 -0
- package/dist/chunk-2T7J57AC.mjs.gz +0 -0
- package/dist/chunk-AFAAKYYB.js.br +0 -0
- package/dist/chunk-AFAAKYYB.js.gz +0 -0
- package/dist/chunk-BW3ZS73U.js.br +0 -0
- package/dist/chunk-BW3ZS73U.js.gz +0 -0
- package/dist/chunk-J56DMNSD.js.br +0 -0
- package/dist/chunk-QLELFH7A.mjs.br +0 -0
- package/dist/chunk-SAKMXLW2.js.br +0 -0
- package/dist/chunk-SAKMXLW2.js.gz +0 -0
- package/dist/chunk-T7OUKBWK.js.br +0 -0
- package/dist/chunk-T7OUKBWK.js.gz +0 -0
- package/dist/chunk-U2UIJRSW.mjs.br +0 -0
- package/dist/chunk-U2UIJRSW.mjs.gz +0 -0
- package/dist/chunk-XWCN4TGE.mjs.br +0 -0
- package/dist/chunk-XWCN4TGE.mjs.gz +0 -0
- package/dist/chunk-YMNURZ22.mjs.br +0 -0
- package/dist/chunk-YMNURZ22.mjs.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { translationsEn } from './chunk-MZOZNBRO.mjs';
|
|
2
|
-
import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, isImageLikeElement, getImageTilingStyle, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getComputedFillStyle, getComputedEffectStyle, getComputedStrokeStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx2, getResolvedShapeClipPath, mediaFallbackVisual, registerPersistentAudio, resolveAutoFitFontScale, getSubstituteFontFamily, parsePanoseString, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, chartPartToAttrs, splitRunForMetrics, hexToRgbChannels, segmentByScript, resolveFontForScript } from './chunk-
|
|
2
|
+
import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, isImageLikeElement, getImageTilingStyle, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getComputedFillStyle, getComputedEffectStyle, getComputedStrokeStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx2, getResolvedShapeClipPath, mediaFallbackVisual, registerPersistentAudio, resolveAutoFitFontScale, getSubstituteFontFamily, parsePanoseString, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, chartPartToAttrs, splitRunForMetrics, hexToRgbChannels, segmentByScript, resolveFontForScript } from './chunk-2MENHAYJ.mjs';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import React6, { useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect } from 'react';
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk4Z4HEIP5_js = require('./chunk-4Z4HEIP5.js');
|
|
4
4
|
var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var mcp = require('pptx-viewer-mcp');
|
|
6
6
|
var mcpSchemas = require('pptx-viewer-mcp/schemas');
|
|
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
|
|
|
14879
14879
|
};
|
|
14880
14880
|
let markdown;
|
|
14881
14881
|
try {
|
|
14882
|
-
const converter = new
|
|
14882
|
+
const converter = new chunk4Z4HEIP5_js.PptxMarkdownConverter(
|
|
14883
14883
|
"",
|
|
14884
14884
|
{
|
|
14885
14885
|
sourceName: meta3.title ?? "deck.pptx",
|
|
@@ -15471,7 +15471,7 @@ var getTheme = (ctx) => {
|
|
|
15471
15471
|
name: theme?.name,
|
|
15472
15472
|
colorScheme: theme?.colorScheme,
|
|
15473
15473
|
fontScheme: theme?.fontScheme,
|
|
15474
|
-
availablePresets: Object.keys(
|
|
15474
|
+
availablePresets: Object.keys(chunk4Z4HEIP5_js.ThemePresets)
|
|
15475
15475
|
};
|
|
15476
15476
|
};
|
|
15477
15477
|
var readExecutors = {
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ThemePresets, PptxMarkdownConverter } from './chunk-
|
|
1
|
+
import { ThemePresets, PptxMarkdownConverter } from './chunk-2MENHAYJ.mjs';
|
|
2
2
|
import { __export } from './chunk-XGB3TDIC.mjs';
|
|
3
3
|
import * as mcp from 'pptx-viewer-mcp';
|
|
4
4
|
import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-
|
|
1
|
+
import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-O5BR276S.mjs';
|
|
2
2
|
import { translationsEn } from './chunk-MZOZNBRO.mjs';
|
|
3
|
-
import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, describeFontEmbedding, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, generatePackageReadme, presentationBaseName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-
|
|
3
|
+
import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, describeFontEmbedding, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, generatePackageReadme, presentationBaseName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, computeColorFilter, computeSlideIndices, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, replyToCommentInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-2MENHAYJ.mjs';
|
|
4
4
|
import { useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect, useSyncExternalStore, useImperativeHandle } from 'react';
|
|
5
5
|
import JSZip from 'jszip';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
@@ -3002,65 +3002,72 @@ function useModalDismissDrag(onClose, threshold = 120) {
|
|
|
3002
3002
|
}
|
|
3003
3003
|
|
|
3004
3004
|
// src/viewer/hooks/useComments-helpers.ts
|
|
3005
|
-
function
|
|
3006
|
-
return `comment-${crypto.randomUUID()}`;
|
|
3007
|
-
}
|
|
3008
|
-
function addCommentToSlide(slides, slideIndex, comment) {
|
|
3005
|
+
function replaceCommentsOnSlide(slides, slideIndex, next) {
|
|
3009
3006
|
return slides.map(
|
|
3010
|
-
(entry, index) => index === slideIndex ? { ...entry, comments:
|
|
3007
|
+
(entry, index) => index === slideIndex ? { ...entry, comments: next } : entry
|
|
3008
|
+
);
|
|
3009
|
+
}
|
|
3010
|
+
function addCommentToSlide(slides, slideIndex, text, authorName, elementId) {
|
|
3011
|
+
const slide = slides[slideIndex];
|
|
3012
|
+
if (!slide) {
|
|
3013
|
+
return { slides, didAdd: false };
|
|
3014
|
+
}
|
|
3015
|
+
const next = addCommentToList(
|
|
3016
|
+
slide.comments || [],
|
|
3017
|
+
text,
|
|
3018
|
+
authorName,
|
|
3019
|
+
void 0,
|
|
3020
|
+
void 0,
|
|
3021
|
+
elementId
|
|
3011
3022
|
);
|
|
3023
|
+
if (!next) {
|
|
3024
|
+
return { slides, didAdd: false };
|
|
3025
|
+
}
|
|
3026
|
+
return { slides: replaceCommentsOnSlide(slides, slideIndex, next), didAdd: true };
|
|
3012
3027
|
}
|
|
3013
3028
|
function removeCommentFromSlide(slides, slideIndex, commentId) {
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
didDelete = true;
|
|
3024
|
-
}
|
|
3025
|
-
return keep;
|
|
3026
|
-
});
|
|
3027
|
-
return next.length === existing.length ? entry : { ...entry, comments: next };
|
|
3028
|
-
});
|
|
3029
|
-
return { slides: updated, didDelete };
|
|
3029
|
+
const slide = slides[slideIndex];
|
|
3030
|
+
if (!slide) {
|
|
3031
|
+
return { slides, didDelete: false };
|
|
3032
|
+
}
|
|
3033
|
+
const next = removeCommentFromList(slide.comments || [], commentId);
|
|
3034
|
+
if (!next) {
|
|
3035
|
+
return { slides, didDelete: false };
|
|
3036
|
+
}
|
|
3037
|
+
return { slides: replaceCommentsOnSlide(slides, slideIndex, next), didDelete: true };
|
|
3030
3038
|
}
|
|
3031
3039
|
function editCommentInSlide(slides, slideIndex, commentId, newText) {
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
didUpdate = true;
|
|
3042
|
-
return { ...c, text: newText };
|
|
3043
|
-
});
|
|
3044
|
-
return didUpdate ? { ...entry, comments: next } : entry;
|
|
3045
|
-
});
|
|
3046
|
-
return { slides: updated, didUpdate };
|
|
3040
|
+
const slide = slides[slideIndex];
|
|
3041
|
+
if (!slide) {
|
|
3042
|
+
return { slides, didUpdate: false };
|
|
3043
|
+
}
|
|
3044
|
+
const next = editCommentInList(slide.comments || [], commentId, newText);
|
|
3045
|
+
if (!next) {
|
|
3046
|
+
return { slides, didUpdate: false };
|
|
3047
|
+
}
|
|
3048
|
+
return { slides: replaceCommentsOnSlide(slides, slideIndex, next), didUpdate: true };
|
|
3047
3049
|
}
|
|
3048
3050
|
function toggleResolvedInSlide(slides, slideIndex, commentId) {
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3051
|
+
const slide = slides[slideIndex];
|
|
3052
|
+
if (!slide) {
|
|
3053
|
+
return { slides, didUpdate: false };
|
|
3054
|
+
}
|
|
3055
|
+
const next = toggleCommentResolvedInList(slide.comments || [], commentId);
|
|
3056
|
+
if (!next) {
|
|
3057
|
+
return { slides, didUpdate: false };
|
|
3058
|
+
}
|
|
3059
|
+
return { slides: replaceCommentsOnSlide(slides, slideIndex, next), didUpdate: true };
|
|
3060
|
+
}
|
|
3061
|
+
function addReplyToSlide(slides, slideIndex, parentId, text, authorName) {
|
|
3062
|
+
const slide = slides[slideIndex];
|
|
3063
|
+
if (!slide) {
|
|
3064
|
+
return { slides, didAdd: false };
|
|
3065
|
+
}
|
|
3066
|
+
const next = replyToCommentInList(slide.comments || [], parentId, text, authorName);
|
|
3067
|
+
if (!next) {
|
|
3068
|
+
return { slides, didAdd: false };
|
|
3069
|
+
}
|
|
3070
|
+
return { slides: replaceCommentsOnSlide(slides, slideIndex, next), didAdd: true };
|
|
3064
3071
|
}
|
|
3065
3072
|
function pruneSlideDrafts(drafts, slideIds) {
|
|
3066
3073
|
const next = {};
|
|
@@ -3111,14 +3118,21 @@ function useComments({
|
|
|
3111
3118
|
if (draft.length === 0) {
|
|
3112
3119
|
return;
|
|
3113
3120
|
}
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3121
|
+
let didAdd = false;
|
|
3122
|
+
onUpdateSlides((prev) => {
|
|
3123
|
+
const result = addCommentToSlide(
|
|
3124
|
+
prev,
|
|
3125
|
+
slideIndex,
|
|
3126
|
+
draft,
|
|
3127
|
+
userName,
|
|
3128
|
+
selectedElementId ?? void 0
|
|
3129
|
+
);
|
|
3130
|
+
didAdd = result.didAdd;
|
|
3131
|
+
return result.slides;
|
|
3132
|
+
});
|
|
3133
|
+
if (!didAdd) {
|
|
3134
|
+
return;
|
|
3135
|
+
}
|
|
3122
3136
|
setCommentDraftBySlideId((prev) => ({
|
|
3123
3137
|
...prev,
|
|
3124
3138
|
[slide.id]: ""
|
|
@@ -3258,39 +3272,19 @@ function useComments({
|
|
|
3258
3272
|
if (!slide) {
|
|
3259
3273
|
return;
|
|
3260
3274
|
}
|
|
3261
|
-
const parentComment = (slide.comments || []).find((c) => c.id === commentId);
|
|
3262
|
-
if (!parentComment) {
|
|
3263
|
-
return;
|
|
3264
|
-
}
|
|
3265
3275
|
const replyText = String(replyDraftByCommentId[commentId] || "").trim();
|
|
3266
3276
|
if (replyText.length === 0) {
|
|
3267
3277
|
return;
|
|
3268
3278
|
}
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
(prev) => prev.map((entry, index) => {
|
|
3279
|
-
if (index !== slideIndex) {
|
|
3280
|
-
return entry;
|
|
3281
|
-
}
|
|
3282
|
-
const updatedComments = (entry.comments || []).map((c) => {
|
|
3283
|
-
if (c.id !== commentId) {
|
|
3284
|
-
return c;
|
|
3285
|
-
}
|
|
3286
|
-
return {
|
|
3287
|
-
...c,
|
|
3288
|
-
replies: [...c.replies || [], replyComment]
|
|
3289
|
-
};
|
|
3290
|
-
});
|
|
3291
|
-
return { ...entry, comments: updatedComments };
|
|
3292
|
-
})
|
|
3293
|
-
);
|
|
3279
|
+
let didAdd = false;
|
|
3280
|
+
onUpdateSlides((prev) => {
|
|
3281
|
+
const result = addReplyToSlide(prev, slideIndex, commentId, replyText, userName);
|
|
3282
|
+
didAdd = result.didAdd;
|
|
3283
|
+
return result.slides;
|
|
3284
|
+
});
|
|
3285
|
+
if (!didAdd) {
|
|
3286
|
+
return;
|
|
3287
|
+
}
|
|
3294
3288
|
setReplyingToCommentId(null);
|
|
3295
3289
|
setReplyDraftByCommentId((prev) => {
|
|
3296
3290
|
const next = { ...prev };
|
|
@@ -7521,26 +7515,14 @@ function usePrintHandlers(input) {
|
|
|
7521
7515
|
if (!pptxData || settings.printWhat !== "slides") {
|
|
7522
7516
|
return handlePrintWithSettings(settings);
|
|
7523
7517
|
}
|
|
7524
|
-
const colorFilter = (
|
|
7525
|
-
|
|
7526
|
-
|
|
7527
|
-
|
|
7528
|
-
|
|
7529
|
-
|
|
7530
|
-
|
|
7531
|
-
|
|
7532
|
-
})();
|
|
7533
|
-
const slideIndices = (() => {
|
|
7534
|
-
if (settings.slideRange === "current") {
|
|
7535
|
-
return [activeSlideIndex];
|
|
7536
|
-
}
|
|
7537
|
-
if (settings.slideRange === "custom") {
|
|
7538
|
-
const from = Math.max(0, settings.customRangeFrom - 1);
|
|
7539
|
-
const to = Math.min(slides.length - 1, settings.customRangeTo - 1);
|
|
7540
|
-
return Array.from({ length: to - from + 1 }, (_, i) => from + i);
|
|
7541
|
-
}
|
|
7542
|
-
return Array.from({ length: slides.length }, (_, i) => i);
|
|
7543
|
-
})();
|
|
7518
|
+
const colorFilter = computeColorFilter(settings.colorMode);
|
|
7519
|
+
const slideIndices = computeSlideIndices(
|
|
7520
|
+
settings.slideRange,
|
|
7521
|
+
activeSlideIndex,
|
|
7522
|
+
slides.length,
|
|
7523
|
+
settings.customRangeFrom,
|
|
7524
|
+
settings.customRangeTo
|
|
7525
|
+
);
|
|
7544
7526
|
try {
|
|
7545
7527
|
const svgs = exportAllSlidesToSvg(pptxData, {
|
|
7546
7528
|
slideIndices
|
|
@@ -7561,26 +7543,14 @@ function usePrintHandlers(input) {
|
|
|
7561
7543
|
};
|
|
7562
7544
|
const handlePrintWithSettings = async (settings) => {
|
|
7563
7545
|
setIsPrintDialogOpen(false);
|
|
7564
|
-
const colorFilter = (
|
|
7565
|
-
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
})();
|
|
7573
|
-
const slideIndices = (() => {
|
|
7574
|
-
if (settings.slideRange === "current") {
|
|
7575
|
-
return [activeSlideIndex];
|
|
7576
|
-
}
|
|
7577
|
-
if (settings.slideRange === "custom") {
|
|
7578
|
-
const from = Math.max(0, settings.customRangeFrom - 1);
|
|
7579
|
-
const to = Math.min(slides.length - 1, settings.customRangeTo - 1);
|
|
7580
|
-
return Array.from({ length: to - from + 1 }, (_, i) => from + i);
|
|
7581
|
-
}
|
|
7582
|
-
return Array.from({ length: slides.length }, (_, i) => i);
|
|
7583
|
-
})();
|
|
7546
|
+
const colorFilter = computeColorFilter(settings.colorMode);
|
|
7547
|
+
const slideIndices = computeSlideIndices(
|
|
7548
|
+
settings.slideRange,
|
|
7549
|
+
activeSlideIndex,
|
|
7550
|
+
slides.length,
|
|
7551
|
+
settings.customRangeFrom,
|
|
7552
|
+
settings.customRangeTo
|
|
7553
|
+
);
|
|
7584
7554
|
if (settings.printWhat === "outline") {
|
|
7585
7555
|
openPrintWindow(
|
|
7586
7556
|
"Outline",
|
|
Binary file
|
|
Binary file
|