pptx-react-viewer 3.17.1 → 3.18.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 +6 -0
- package/README.md +33 -31
- package/dist/{AiChatPanel-SINEEZBW.mjs → AiChatPanel-DDZC6IRK.mjs} +4 -4
- package/dist/AiChatPanel-DDZC6IRK.mjs.br +0 -0
- package/dist/AiChatPanel-DDZC6IRK.mjs.gz +0 -0
- package/dist/{AiChatPanel-GYH43XWW.js → AiChatPanel-T2QSCUQR.js} +25 -25
- package/dist/AiChatPanel-T2QSCUQR.js.br +0 -0
- package/dist/AiChatPanel-T2QSCUQR.js.gz +0 -0
- package/dist/{Area3DChartScene-D7GSJGPQ.js → Area3DChartScene-WEU2MP3B.js} +2 -2
- package/dist/Area3DChartScene-WEU2MP3B.js.br +0 -0
- package/dist/Area3DChartScene-WEU2MP3B.js.gz +0 -0
- package/dist/{Area3DChartScene-X5SM67PZ.mjs → Area3DChartScene-WTKQDHC7.mjs} +1 -1
- package/dist/Area3DChartScene-WTKQDHC7.mjs.br +0 -0
- package/dist/Area3DChartScene-WTKQDHC7.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-M72WQW5Y.js → Bar3DChartScene-25G6TG53.js} +2 -2
- package/dist/Bar3DChartScene-25G6TG53.js.br +0 -0
- package/dist/Bar3DChartScene-25G6TG53.js.gz +0 -0
- package/dist/{Bar3DChartScene-HWIFFGI3.mjs → Bar3DChartScene-A5ICLHXS.mjs} +1 -1
- package/dist/{Bar3DChartScene-HWIFFGI3.mjs.br → Bar3DChartScene-A5ICLHXS.mjs.br} +0 -0
- package/dist/Bar3DChartScene-A5ICLHXS.mjs.gz +0 -0
- package/dist/{GLTFLoader-374ZNTXW.mjs → GLTFLoader-IWJFC4XI.mjs} +54 -16
- package/dist/GLTFLoader-IWJFC4XI.mjs.br +0 -0
- package/dist/GLTFLoader-IWJFC4XI.mjs.gz +0 -0
- package/dist/{GLTFLoader-Q7BHCGAW.js → GLTFLoader-KY7AYPMX.js} +178 -140
- package/dist/GLTFLoader-KY7AYPMX.js.br +0 -0
- package/dist/GLTFLoader-KY7AYPMX.js.gz +0 -0
- package/dist/{Line3DChartScene-7MPZWVF3.mjs → Line3DChartScene-ARCDLHXQ.mjs} +1 -1
- package/dist/Line3DChartScene-ARCDLHXQ.mjs.br +0 -0
- package/dist/Line3DChartScene-ARCDLHXQ.mjs.gz +0 -0
- package/dist/{Line3DChartScene-YOZEEQZ3.js → Line3DChartScene-WRZ52Z2Z.js} +2 -2
- package/dist/Line3DChartScene-WRZ52Z2Z.js.br +0 -0
- package/dist/Line3DChartScene-WRZ52Z2Z.js.gz +0 -0
- package/dist/{Model3DScene-5IJSNGDZ.js → Model3DScene-JGUG5NPX.js} +2 -2
- package/dist/Model3DScene-JGUG5NPX.js.br +0 -0
- package/dist/Model3DScene-JGUG5NPX.js.gz +0 -0
- package/dist/{Model3DScene-57LVY5QW.mjs → Model3DScene-PBKBL2YU.mjs} +1 -1
- package/dist/Model3DScene-PBKBL2YU.mjs.br +0 -0
- package/dist/Model3DScene-PBKBL2YU.mjs.gz +0 -0
- package/dist/OrbitControls-2XOMWUVE.mjs +3 -0
- package/dist/OrbitControls-2XOMWUVE.mjs.br +0 -0
- package/dist/OrbitControls-2XOMWUVE.mjs.gz +0 -0
- package/dist/OrbitControls-CGYUF3BY.js +12 -0
- package/dist/OrbitControls-CGYUF3BY.js.br +0 -0
- package/dist/OrbitControls-CGYUF3BY.js.gz +0 -0
- package/dist/{PieChart3DScene-UBI6X66Q.js → PieChart3DScene-S25DNSRS.js} +2 -2
- package/dist/PieChart3DScene-S25DNSRS.js.br +0 -0
- package/dist/PieChart3DScene-S25DNSRS.js.gz +0 -0
- package/dist/{PieChart3DScene-WD5B6NP3.mjs → PieChart3DScene-ZNKXS62H.mjs} +1 -1
- package/dist/{PieChart3DScene-WD5B6NP3.mjs.br → PieChart3DScene-ZNKXS62H.mjs.br} +0 -0
- package/dist/PieChart3DScene-ZNKXS62H.mjs.gz +0 -0
- package/dist/{SmartArt3DScene-ODKCGJBO.mjs → SmartArt3DScene-QZGIABOK.mjs} +2 -2
- package/dist/SmartArt3DScene-QZGIABOK.mjs.br +0 -0
- package/dist/SmartArt3DScene-QZGIABOK.mjs.gz +0 -0
- package/dist/{SmartArt3DScene-BK7QN3WT.js → SmartArt3DScene-T236GYUT.js} +33 -33
- package/dist/SmartArt3DScene-T236GYUT.js.br +0 -0
- package/dist/SmartArt3DScene-T236GYUT.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-JZGU6BBD.mjs → SurfaceChart3DScene-EBT7RPCX.mjs} +1 -1
- package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-JGNPYQ32.js → SurfaceChart3DScene-LXBC3HMV.js} +2 -2
- package/dist/SurfaceChart3DScene-LXBC3HMV.js.br +0 -0
- package/dist/SurfaceChart3DScene-LXBC3HMV.js.gz +0 -0
- package/dist/{chunk-KVXB22D3.js → chunk-2LTTSFLD.js} +5 -5
- package/dist/chunk-2LTTSFLD.js.br +0 -0
- package/dist/chunk-2LTTSFLD.js.gz +0 -0
- package/dist/{chunk-VYSMTC5C.mjs → chunk-2OCTGK4L.mjs} +6 -110
- package/dist/chunk-2OCTGK4L.mjs.br +0 -0
- package/dist/chunk-2OCTGK4L.mjs.gz +0 -0
- package/dist/{chunk-IXKAIIA2.mjs → chunk-3KKPRPVE.mjs} +114 -126
- package/dist/chunk-3KKPRPVE.mjs.br +0 -0
- package/dist/chunk-3KKPRPVE.mjs.gz +0 -0
- package/dist/{chunk-B4QYQLZU.js → chunk-3N6AC4HA.js} +1122 -693
- package/dist/chunk-3N6AC4HA.js.br +0 -0
- package/dist/chunk-3N6AC4HA.js.gz +0 -0
- package/dist/{chunk-OAKDJYYT.mjs → chunk-5S3A6HL3.mjs} +121 -42
- package/dist/chunk-5S3A6HL3.mjs.br +0 -0
- package/dist/chunk-5S3A6HL3.mjs.gz +0 -0
- package/dist/{chunk-IRG7SIUX.js → chunk-6R2EUDJQ.js} +1399 -1411
- package/dist/chunk-6R2EUDJQ.js.br +0 -0
- package/dist/chunk-6R2EUDJQ.js.gz +0 -0
- package/dist/{chunk-XBMKFZVP.mjs → chunk-7TAWW5QQ.mjs} +1120 -694
- package/dist/chunk-7TAWW5QQ.mjs.br +0 -0
- package/dist/chunk-7TAWW5QQ.mjs.gz +0 -0
- package/dist/{chunk-64FUV37N.js → chunk-BRJN3ZMG.js} +2 -1
- package/dist/chunk-BRJN3ZMG.js.br +0 -0
- package/dist/{chunk-64FUV37N.js.gz → chunk-BRJN3ZMG.js.gz} +0 -0
- package/dist/{chunk-QTGCOL5H.mjs → chunk-GNRVDNCV.mjs} +1707 -435
- package/dist/chunk-GNRVDNCV.mjs.br +0 -0
- package/dist/chunk-GNRVDNCV.mjs.gz +0 -0
- package/dist/{chunk-6C2WYLZY.js → chunk-IXS7DALE.js} +45 -39
- package/dist/chunk-IXS7DALE.js.br +0 -0
- package/dist/chunk-IXS7DALE.js.gz +0 -0
- package/dist/{chunk-7FBKS7OS.js → chunk-LJ46KXUV.js} +179 -283
- package/dist/chunk-LJ46KXUV.js.br +0 -0
- package/dist/chunk-LJ46KXUV.js.gz +0 -0
- package/dist/{chunk-LAU34UMB.mjs → chunk-MQUTXOET.mjs} +2 -1
- package/dist/chunk-MQUTXOET.mjs.br +0 -0
- package/dist/{chunk-LAU34UMB.mjs.gz → chunk-MQUTXOET.mjs.gz} +0 -0
- package/dist/{chunk-3CBDTD46.mjs → chunk-MV2GCDBR.mjs} +8 -2
- package/dist/chunk-MV2GCDBR.mjs.br +0 -0
- package/dist/chunk-MV2GCDBR.mjs.gz +0 -0
- package/dist/{chunk-4SPZ5IZN.js → chunk-V32F4I45.js} +1713 -439
- package/dist/chunk-V32F4I45.js.br +0 -0
- package/dist/chunk-V32F4I45.js.gz +0 -0
- package/dist/{chunk-E55VEC37.js → chunk-WGBXO4LM.js} +576 -497
- package/dist/chunk-WGBXO4LM.js.br +0 -0
- package/dist/chunk-WGBXO4LM.js.gz +0 -0
- package/dist/{chunk-7YJBRPCT.mjs → chunk-WRO37U2O.mjs} +1 -1
- package/dist/chunk-WRO37U2O.mjs.br +0 -0
- package/dist/chunk-WRO37U2O.mjs.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 +2 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +18 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/three.module-LGUV2LI6.mjs +2 -0
- package/dist/three.module-LGUV2LI6.mjs.br +0 -0
- package/dist/three.module-LGUV2LI6.mjs.gz +0 -0
- package/dist/{three.module-GNNNRIMK.js → three.module-YZ4M24WM.js} +454 -442
- package/dist/three.module-YZ4M24WM.js.br +0 -0
- package/dist/three.module-YZ4M24WM.js.gz +0 -0
- package/dist/{useViewerBuildingBlocks-DkUGmlkP.d.ts → useViewerBuildingBlocks-4Tj6P8Fm.d.ts} +3 -1
- package/dist/useViewerBuildingBlocks-4Tj6P8Fm.d.ts.map +1 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -3
- package/dist/AiChatPanel-GYH43XWW.js.br +0 -0
- package/dist/AiChatPanel-GYH43XWW.js.gz +0 -0
- package/dist/AiChatPanel-SINEEZBW.mjs.br +0 -0
- package/dist/AiChatPanel-SINEEZBW.mjs.gz +0 -0
- package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
- package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
- package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
- package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
- package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
- package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
- package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
- package/dist/GLTFLoader-374ZNTXW.mjs.br +0 -0
- package/dist/GLTFLoader-374ZNTXW.mjs.gz +0 -0
- package/dist/GLTFLoader-Q7BHCGAW.js.br +0 -0
- package/dist/GLTFLoader-Q7BHCGAW.js.gz +0 -0
- package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
- package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
- package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
- package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
- package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
- package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
- package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
- package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
- package/dist/OrbitControls-SMYCPLXO.js +0 -12
- package/dist/OrbitControls-SMYCPLXO.js.br +0 -3
- package/dist/OrbitControls-SMYCPLXO.js.gz +0 -0
- package/dist/OrbitControls-ZTGHPI5G.mjs +0 -3
- package/dist/OrbitControls-ZTGHPI5G.mjs.br +0 -0
- package/dist/OrbitControls-ZTGHPI5G.mjs.gz +0 -0
- package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
- package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
- package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
- package/dist/SmartArt3DScene-BK7QN3WT.js.br +0 -0
- package/dist/SmartArt3DScene-BK7QN3WT.js.gz +0 -0
- package/dist/SmartArt3DScene-ODKCGJBO.mjs.br +0 -0
- package/dist/SmartArt3DScene-ODKCGJBO.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
- package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
- package/dist/chunk-3CBDTD46.mjs.br +0 -0
- package/dist/chunk-3CBDTD46.mjs.gz +0 -0
- package/dist/chunk-4SPZ5IZN.js.br +0 -0
- package/dist/chunk-4SPZ5IZN.js.gz +0 -0
- package/dist/chunk-64FUV37N.js.br +0 -0
- package/dist/chunk-6C2WYLZY.js.br +0 -0
- package/dist/chunk-6C2WYLZY.js.gz +0 -0
- package/dist/chunk-7FBKS7OS.js.br +0 -0
- package/dist/chunk-7FBKS7OS.js.gz +0 -0
- package/dist/chunk-7YJBRPCT.mjs.br +0 -0
- package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
- package/dist/chunk-B4QYQLZU.js.br +0 -0
- package/dist/chunk-B4QYQLZU.js.gz +0 -0
- package/dist/chunk-E55VEC37.js.br +0 -0
- package/dist/chunk-E55VEC37.js.gz +0 -0
- package/dist/chunk-IRG7SIUX.js.br +0 -0
- package/dist/chunk-IRG7SIUX.js.gz +0 -0
- package/dist/chunk-IXKAIIA2.mjs.br +0 -0
- package/dist/chunk-IXKAIIA2.mjs.gz +0 -0
- package/dist/chunk-KVXB22D3.js.br +0 -0
- package/dist/chunk-KVXB22D3.js.gz +0 -0
- package/dist/chunk-LAU34UMB.mjs.br +0 -0
- package/dist/chunk-OAKDJYYT.mjs.br +0 -0
- package/dist/chunk-OAKDJYYT.mjs.gz +0 -0
- package/dist/chunk-QTGCOL5H.mjs.br +0 -0
- package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
- package/dist/chunk-VYSMTC5C.mjs.br +0 -0
- package/dist/chunk-VYSMTC5C.mjs.gz +0 -0
- package/dist/chunk-XBMKFZVP.mjs.br +0 -0
- package/dist/chunk-XBMKFZVP.mjs.gz +0 -0
- package/dist/three.module-AC7ESV4W.mjs +0 -2
- package/dist/three.module-AC7ESV4W.mjs.br +0 -0
- package/dist/three.module-AC7ESV4W.mjs.gz +0 -0
- package/dist/three.module-GNNNRIMK.js.br +0 -0
- package/dist/three.module-GNNNRIMK.js.gz +0 -0
- package/dist/useViewerBuildingBlocks-DkUGmlkP.d.ts.map +0 -1
|
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_TEXT_FONT_SIZE, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, buildNotesPdf, GRID_SIZE } from './chunk-
|
|
2
|
-
import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, MIN_TOUCH_TARGET_PX, 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, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, advanceMainSequence, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties,
|
|
3
|
-
import { translationsEn } 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_TEXT_FONT_SIZE, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, buildNotesPdf, GRID_SIZE } from './chunk-2OCTGK4L.mjs';
|
|
2
|
+
import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, MIN_TOUCH_TARGET_PX, 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, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, advanceMainSequence, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, applyTextStyleUpdate, getInlineEditorSelection, setPendingSelectionRestore, toggleSelectionBullets, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canInteractWithElement, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, prepareElementForInsertion, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, downloadBlob, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, resolveViewportFitOptions, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterResultToPngBlob, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, rasterizeElementTiledToCanvas, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, clampGifDimensions, rasterizeElement, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from './chunk-GNRVDNCV.mjs';
|
|
3
|
+
import { translationsEn } from './chunk-MQUTXOET.mjs';
|
|
4
4
|
import { createContext, useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect, useContext, useImperativeHandle, useSyncExternalStore } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
|
|
@@ -471,6 +471,40 @@ function useSheetDismissDrag(onClose, threshold = 120) {
|
|
|
471
471
|
handlers: { onPointerDown, onPointerMove, onPointerUp, onPointerCancel: onPointerUp }
|
|
472
472
|
};
|
|
473
473
|
}
|
|
474
|
+
var POLL_INTERVAL_MS = 16;
|
|
475
|
+
function usePointerReleaseWakeup(hasActivePointerInteraction) {
|
|
476
|
+
const [pointerReleaseNonce, setPointerReleaseNonce] = useState(0);
|
|
477
|
+
const gateRef = useRef(hasActivePointerInteraction);
|
|
478
|
+
const timerRef = useRef(null);
|
|
479
|
+
useEffect(() => {
|
|
480
|
+
gateRef.current = hasActivePointerInteraction;
|
|
481
|
+
}, [hasActivePointerInteraction]);
|
|
482
|
+
const deferUntilPointerReleased = useCallback(() => {
|
|
483
|
+
if (timerRef.current !== null) {
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
const poll = () => {
|
|
487
|
+
if (gateRef.current()) {
|
|
488
|
+
timerRef.current = setTimeout(poll, POLL_INTERVAL_MS);
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
timerRef.current = null;
|
|
492
|
+
setPointerReleaseNonce((previous) => previous + 1);
|
|
493
|
+
};
|
|
494
|
+
timerRef.current = setTimeout(poll, POLL_INTERVAL_MS);
|
|
495
|
+
}, []);
|
|
496
|
+
useEffect(() => {
|
|
497
|
+
return () => {
|
|
498
|
+
if (timerRef.current !== null) {
|
|
499
|
+
clearTimeout(timerRef.current);
|
|
500
|
+
timerRef.current = null;
|
|
501
|
+
}
|
|
502
|
+
};
|
|
503
|
+
}, []);
|
|
504
|
+
return { pointerReleaseNonce, deferUntilPointerReleased };
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
// src/viewer/hooks/useEditorHistory.ts
|
|
474
508
|
var DEFAULT_MAX_HISTORY_ENTRIES = 120;
|
|
475
509
|
function serializeDocument(snapshot) {
|
|
476
510
|
return JSON.stringify({
|
|
@@ -511,6 +545,9 @@ function useEditorHistory(input) {
|
|
|
511
545
|
const [undoLabel, setUndoLabel] = useState(void 0);
|
|
512
546
|
const [redoLabel, setRedoLabel] = useState(void 0);
|
|
513
547
|
const [editCommitNonce, setEditCommitNonce] = useState(0);
|
|
548
|
+
const { pointerReleaseNonce, deferUntilPointerReleased } = usePointerReleaseWakeup(
|
|
549
|
+
hasActivePointerInteraction
|
|
550
|
+
);
|
|
514
551
|
const updateHistoryAvailability = useCallback(() => {
|
|
515
552
|
setCanUndo(historyPastRef.current.length > 0);
|
|
516
553
|
setCanRedo(historyFutureRef.current.length > 0);
|
|
@@ -648,9 +685,10 @@ function useEditorHistory(input) {
|
|
|
648
685
|
return;
|
|
649
686
|
}
|
|
650
687
|
if (hasActivePointerInteraction()) {
|
|
688
|
+
deferUntilPointerReleased();
|
|
651
689
|
return;
|
|
652
690
|
}
|
|
653
|
-
const cheapHash = `${pointerCommitNonce}|${editCommitNonce}|${slides.length}|${activeSlideIndex}|${canvasSize.width}x${canvasSize.height}|${slides.map((s) => `${s.id}:${s.elements.length}`).join("/")}`;
|
|
691
|
+
const cheapHash = `${pointerCommitNonce}|${editCommitNonce}|${pointerReleaseNonce}|${slides.length}|${activeSlideIndex}|${canvasSize.width}x${canvasSize.height}|${slides.map((s) => `${s.id}:${s.elements.length}`).join("/")}`;
|
|
654
692
|
if (cheapHash === lastCheapHashRef.current) {
|
|
655
693
|
return;
|
|
656
694
|
}
|
|
@@ -690,12 +728,14 @@ function useEditorHistory(input) {
|
|
|
690
728
|
buildHistorySnapshot,
|
|
691
729
|
canvasSize.height,
|
|
692
730
|
canvasSize.width,
|
|
731
|
+
deferUntilPointerReleased,
|
|
693
732
|
editCommitNonce,
|
|
694
733
|
error,
|
|
695
734
|
hasActivePointerInteraction,
|
|
696
735
|
loading,
|
|
697
736
|
maxHistoryEntries,
|
|
698
737
|
pointerCommitNonce,
|
|
738
|
+
pointerReleaseNonce,
|
|
699
739
|
slides,
|
|
700
740
|
updateHistoryAvailability
|
|
701
741
|
]);
|
|
@@ -2967,6 +3007,15 @@ function useFindReplace({
|
|
|
2967
3007
|
const [findMatchCase, setFindMatchCase] = useState(false);
|
|
2968
3008
|
const [findResults, setFindResults] = useState([]);
|
|
2969
3009
|
const [findResultIndex, setFindResultIndex] = useState(-1);
|
|
3010
|
+
const pendingRefindRef = useRef(false);
|
|
3011
|
+
useEffect(() => {
|
|
3012
|
+
if (findReplaceOpen) {
|
|
3013
|
+
return;
|
|
3014
|
+
}
|
|
3015
|
+
setFindResults([]);
|
|
3016
|
+
setFindResultIndex(-1);
|
|
3017
|
+
pendingRefindRef.current = false;
|
|
3018
|
+
}, [findReplaceOpen]);
|
|
2970
3019
|
const performFind = useCallback(() => {
|
|
2971
3020
|
const results = findInSlides(slides, findQuery, { matchCase: findMatchCase });
|
|
2972
3021
|
if (!findQuery) {
|
|
@@ -3013,15 +3062,22 @@ function useFindReplace({
|
|
|
3013
3062
|
return;
|
|
3014
3063
|
}
|
|
3015
3064
|
applyReplacements([findResults[findResultIndex]]);
|
|
3016
|
-
|
|
3017
|
-
}, [findResults, findResultIndex, applyReplacements
|
|
3065
|
+
pendingRefindRef.current = true;
|
|
3066
|
+
}, [findResults, findResultIndex, applyReplacements]);
|
|
3018
3067
|
const handleReplaceAll = useCallback(() => {
|
|
3019
3068
|
if (findResults.length === 0) {
|
|
3020
3069
|
return;
|
|
3021
3070
|
}
|
|
3022
3071
|
applyReplacements(findResults);
|
|
3023
|
-
|
|
3024
|
-
}, [findResults, applyReplacements
|
|
3072
|
+
pendingRefindRef.current = true;
|
|
3073
|
+
}, [findResults, applyReplacements]);
|
|
3074
|
+
useEffect(() => {
|
|
3075
|
+
if (!pendingRefindRef.current) {
|
|
3076
|
+
return;
|
|
3077
|
+
}
|
|
3078
|
+
pendingRefindRef.current = false;
|
|
3079
|
+
performFind();
|
|
3080
|
+
}, [performFind]);
|
|
3025
3081
|
useEffect(() => {
|
|
3026
3082
|
const handler = (event) => {
|
|
3027
3083
|
const { action } = mapEditorKey(event, {
|
|
@@ -4414,38 +4470,46 @@ function useElementOperations(input) {
|
|
|
4414
4470
|
}
|
|
4415
4471
|
const isLiveEditing = selectedElement.id === inlineEditingElementId;
|
|
4416
4472
|
const currentSegments = liveTextSegments();
|
|
4417
|
-
const
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
setPendingSelectionRestore(
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
}
|
|
4473
|
+
const { patch, newSelection } = applyTextStyleUpdate(
|
|
4474
|
+
selectedElement,
|
|
4475
|
+
updates,
|
|
4476
|
+
getInlineEditorSelection(currentSegments),
|
|
4477
|
+
currentSegments
|
|
4478
|
+
);
|
|
4479
|
+
if (newSelection) {
|
|
4480
|
+
setPendingSelectionRestore(newSelection);
|
|
4481
|
+
}
|
|
4482
|
+
updateSelectedElement({
|
|
4483
|
+
...patch,
|
|
4484
|
+
...isLiveEditing ? { text: inlineEditingText } : {}
|
|
4485
|
+
});
|
|
4486
|
+
},
|
|
4487
|
+
[
|
|
4488
|
+
selectedElement,
|
|
4489
|
+
updateSelectedElement,
|
|
4490
|
+
inlineEditingElementId,
|
|
4491
|
+
inlineEditingText,
|
|
4492
|
+
liveTextSegments
|
|
4493
|
+
]
|
|
4494
|
+
);
|
|
4495
|
+
const toggleSelectedBullets = useCallback(
|
|
4496
|
+
(kind) => {
|
|
4497
|
+
if (!selectedElement || !hasTextProperties(selectedElement)) {
|
|
4429
4498
|
return;
|
|
4430
4499
|
}
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
)
|
|
4500
|
+
const isLiveEditing = selectedElement.id === inlineEditingElementId;
|
|
4501
|
+
const currentSegments = liveTextSegments();
|
|
4502
|
+
const { patch, newSelection } = toggleSelectionBullets(
|
|
4503
|
+
selectedElement,
|
|
4504
|
+
kind,
|
|
4505
|
+
getInlineEditorSelection(currentSegments),
|
|
4506
|
+
currentSegments
|
|
4507
|
+
);
|
|
4508
|
+
if (newSelection) {
|
|
4437
4509
|
setPendingSelectionRestore(newSelection);
|
|
4438
|
-
updateSelectedElement({
|
|
4439
|
-
textSegments: newSegments2,
|
|
4440
|
-
...isLiveEditing ? { text: inlineEditingText } : {}
|
|
4441
|
-
});
|
|
4442
|
-
return;
|
|
4443
4510
|
}
|
|
4444
|
-
const newTextStyle = { ...selectedElement.textStyle, ...updates };
|
|
4445
|
-
const newSegments = currentSegments?.map((seg) => updateTextSegmentStyle(seg, updates));
|
|
4446
4511
|
updateSelectedElement({
|
|
4447
|
-
|
|
4448
|
-
textSegments: newSegments,
|
|
4512
|
+
...patch,
|
|
4449
4513
|
...isLiveEditing ? { text: inlineEditingText } : {}
|
|
4450
4514
|
});
|
|
4451
4515
|
},
|
|
@@ -4552,6 +4616,7 @@ function useElementOperations(input) {
|
|
|
4552
4616
|
updateSelectedElement,
|
|
4553
4617
|
updateSelectedShapeStyle,
|
|
4554
4618
|
updateSelectedTextStyle,
|
|
4619
|
+
toggleSelectedBullets,
|
|
4555
4620
|
updateSelectedTextCase,
|
|
4556
4621
|
updateSlides,
|
|
4557
4622
|
activeElements,
|
|
@@ -6285,10 +6350,23 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6285
6350
|
effectiveSelectedIds,
|
|
6286
6351
|
selectedElements,
|
|
6287
6352
|
elementLookup,
|
|
6353
|
+
canvasSize,
|
|
6354
|
+
editTemplateMode = false,
|
|
6288
6355
|
setSelectedElementIds,
|
|
6289
6356
|
ops,
|
|
6290
6357
|
history
|
|
6291
6358
|
} = input;
|
|
6359
|
+
const updateElementsOwning = (elementId, updater) => {
|
|
6360
|
+
if (editTemplateMode && !isTemplateElementId(elementId)) {
|
|
6361
|
+
ops.updateSlides(
|
|
6362
|
+
(prev) => prev.map(
|
|
6363
|
+
(slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
|
|
6364
|
+
)
|
|
6365
|
+
);
|
|
6366
|
+
return;
|
|
6367
|
+
}
|
|
6368
|
+
ops.updateActiveElements(updater);
|
|
6369
|
+
};
|
|
6292
6370
|
const handleGroupElements = () => {
|
|
6293
6371
|
const ids = effectiveSelectedIds;
|
|
6294
6372
|
if (ids.length < 2 || !activeSlide) {
|
|
@@ -6339,14 +6417,11 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6339
6417
|
history.markDirty();
|
|
6340
6418
|
};
|
|
6341
6419
|
const handleAlignElements = (align) => {
|
|
6342
|
-
if (selectedElements.length < 2) {
|
|
6343
|
-
return;
|
|
6344
|
-
}
|
|
6345
6420
|
const edge = ALIGN_EDGE_BY_KEY[align];
|
|
6346
|
-
if (!edge) {
|
|
6421
|
+
if (!edge || selectedElements.length === 0) {
|
|
6347
6422
|
return;
|
|
6348
6423
|
}
|
|
6349
|
-
const positions = alignElements(selectedElements, edge);
|
|
6424
|
+
const positions = alignElements(selectedElements, edge, { slideSize: canvasSize });
|
|
6350
6425
|
for (const [id, pos] of positions) {
|
|
6351
6426
|
const el = elementLookup.get(id);
|
|
6352
6427
|
if (!el) {
|
|
@@ -6381,7 +6456,8 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6381
6456
|
return;
|
|
6382
6457
|
}
|
|
6383
6458
|
const id = selectedElement.id;
|
|
6384
|
-
|
|
6459
|
+
updateElementsOwning(
|
|
6460
|
+
id,
|
|
6385
6461
|
(els) => direction === "forward" ? bringForward(els, id) : direction === "backward" ? sendBackward(els, id) : els
|
|
6386
6462
|
);
|
|
6387
6463
|
history.markDirty();
|
|
@@ -6391,7 +6467,8 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6391
6467
|
return;
|
|
6392
6468
|
}
|
|
6393
6469
|
const id = selectedElement.id;
|
|
6394
|
-
|
|
6470
|
+
updateElementsOwning(
|
|
6471
|
+
id,
|
|
6395
6472
|
(els) => direction === "front" ? bringToFront(els, id) : sendToBack(els, id)
|
|
6396
6473
|
);
|
|
6397
6474
|
history.markDirty();
|
|
@@ -9247,6 +9324,7 @@ function useEditorOperations(input) {
|
|
|
9247
9324
|
selectedElementIdSet: state.selectedElementIdSet,
|
|
9248
9325
|
elementLookup: state.elementLookup,
|
|
9249
9326
|
editTemplateMode: state.editTemplateMode,
|
|
9327
|
+
canvasSize,
|
|
9250
9328
|
clipboardPayload: state.clipboardPayload,
|
|
9251
9329
|
setClipboardPayload: state.setClipboardPayload,
|
|
9252
9330
|
setSelectedElementIds: state.setSelectedElementIds,
|
|
@@ -11321,6 +11399,7 @@ function buildToolbarProps(input) {
|
|
|
11321
11399
|
onOpenReadingView: () => s.setShowReadingView(true),
|
|
11322
11400
|
onOpenOutlineView: () => s.setShowOutlineView(true),
|
|
11323
11401
|
onUpdateTextStyle: ops.updateSelectedTextStyle,
|
|
11402
|
+
onToggleBullets: ops.toggleSelectedBullets,
|
|
11324
11403
|
onTransformTextCase: ops.updateSelectedTextCase,
|
|
11325
11404
|
isOverflowMenuOpen: s.isOverflowMenuOpen,
|
|
11326
11405
|
onSetOverflowMenuOpen: s.setIsOverflowMenuOpen,
|
|
Binary file
|
|
Binary file
|