pptx-react-viewer 2.16.2 → 2.16.4
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 +14 -0
- package/dist/{AiChatPanel-WJXPCHQK.mjs → AiChatPanel-7DDN4QUA.mjs} +4 -4
- package/dist/AiChatPanel-7DDN4QUA.mjs.br +0 -0
- package/dist/AiChatPanel-7DDN4QUA.mjs.gz +0 -0
- package/dist/{AiChatPanel-MCGNCS7Q.js → AiChatPanel-KEORKCTT.js} +23 -23
- package/dist/AiChatPanel-KEORKCTT.js.br +0 -0
- package/dist/AiChatPanel-KEORKCTT.js.gz +0 -0
- package/dist/{Model3DScene-IXW2AKAU.mjs → Model3DScene-DEAQMMUS.mjs} +1 -1
- package/dist/{Model3DScene-IXW2AKAU.mjs.br → Model3DScene-DEAQMMUS.mjs.br} +0 -0
- package/dist/Model3DScene-DEAQMMUS.mjs.gz +0 -0
- package/dist/{Model3DScene-Q2DTGVQ7.js → Model3DScene-SBUYEWHL.js} +2 -2
- package/dist/Model3DScene-SBUYEWHL.js.br +0 -0
- package/dist/Model3DScene-SBUYEWHL.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-AD43LAOO.js → SurfaceChart3DScene-I5D54YQ3.js} +2 -2
- package/dist/SurfaceChart3DScene-I5D54YQ3.js.br +0 -0
- package/dist/SurfaceChart3DScene-I5D54YQ3.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-MODEHQ6G.mjs → SurfaceChart3DScene-TXGS2PBK.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-MODEHQ6G.mjs.br → SurfaceChart3DScene-TXGS2PBK.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-TXGS2PBK.mjs.gz +0 -0
- package/dist/{audience-content-store-DaABTAcQ.d.ts → audience-content-store-BvqKy7Hf.d.ts} +2 -2
- package/dist/{audience-content-store-DaABTAcQ.d.ts.map → audience-content-store-BvqKy7Hf.d.ts.map} +1 -1
- package/dist/{chunk-MDFCBYEM.mjs → chunk-23WSCMWN.mjs} +133 -68
- package/dist/chunk-23WSCMWN.mjs.br +0 -0
- package/dist/chunk-23WSCMWN.mjs.gz +0 -0
- package/dist/{chunk-5YV26HMJ.mjs → chunk-5IUEPQTK.mjs} +1 -0
- package/dist/chunk-5IUEPQTK.mjs.br +0 -0
- package/dist/chunk-5IUEPQTK.mjs.gz +0 -0
- package/dist/{chunk-3ISYPBSX.js → chunk-DVZF4ARG.js} +1 -0
- package/dist/chunk-DVZF4ARG.js.br +0 -0
- package/dist/chunk-DVZF4ARG.js.gz +0 -0
- package/dist/{chunk-OYF6ISXZ.mjs → chunk-DWIIYEOG.mjs} +4 -4
- package/dist/chunk-DWIIYEOG.mjs.br +0 -0
- package/dist/{chunk-OYF6ISXZ.mjs.gz → chunk-DWIIYEOG.mjs.gz} +0 -0
- package/dist/{chunk-JV6DI7AK.js → chunk-FQ3FTNKV.js} +1062 -1062
- package/dist/chunk-FQ3FTNKV.js.br +0 -0
- package/dist/chunk-FQ3FTNKV.js.gz +0 -0
- package/dist/{chunk-3OYWYONZ.mjs → chunk-FXGO5KLU.mjs} +3 -3
- package/dist/chunk-FXGO5KLU.mjs.br +0 -0
- package/dist/chunk-FXGO5KLU.mjs.gz +0 -0
- package/dist/{chunk-LDD2UVCV.mjs → chunk-GSAOP4Z4.mjs} +10 -10
- package/dist/chunk-GSAOP4Z4.mjs.br +0 -0
- package/dist/chunk-GSAOP4Z4.mjs.gz +0 -0
- package/dist/{chunk-CIK6XUOH.js → chunk-GZ2V3PWN.js} +3 -3
- package/dist/chunk-GZ2V3PWN.js.br +0 -0
- package/dist/chunk-GZ2V3PWN.js.gz +0 -0
- package/dist/{chunk-P6KM7RO5.js → chunk-HAQDKQ52.js} +266 -266
- package/dist/chunk-HAQDKQ52.js.br +0 -0
- package/dist/chunk-HAQDKQ52.js.gz +0 -0
- package/dist/{chunk-QI2JCXTH.mjs → chunk-J4QZVO3S.mjs} +1 -1
- package/dist/chunk-J4QZVO3S.mjs.br +0 -0
- package/dist/chunk-J4QZVO3S.mjs.gz +0 -0
- package/dist/{chunk-UWYHBCLM.mjs → chunk-LLTUDPRE.mjs} +18 -8
- package/dist/chunk-LLTUDPRE.mjs.br +0 -0
- package/dist/chunk-LLTUDPRE.mjs.gz +0 -0
- package/dist/{chunk-4GX347MG.js → chunk-MZ47MV52.js} +133 -68
- package/dist/chunk-MZ47MV52.js.br +0 -0
- package/dist/chunk-MZ47MV52.js.gz +0 -0
- package/dist/{chunk-PYV6FIYK.js → chunk-NB7M4XBG.js} +38 -38
- package/dist/chunk-NB7M4XBG.js.br +0 -0
- package/dist/chunk-NB7M4XBG.js.gz +0 -0
- package/dist/{chunk-Z4CS2ZYN.mjs → chunk-PLBS7OL2.mjs} +3 -3
- package/dist/chunk-PLBS7OL2.mjs.br +0 -0
- package/dist/chunk-PLBS7OL2.mjs.gz +0 -0
- package/dist/{chunk-NKE64XVV.js → chunk-RBQUSVYR.js} +361 -351
- package/dist/chunk-RBQUSVYR.js.br +0 -0
- package/dist/chunk-RBQUSVYR.js.gz +0 -0
- package/dist/{chunk-MMFM7JRT.js → chunk-ZYQT7I5C.js} +4 -4
- package/dist/chunk-ZYQT7I5C.js.br +0 -0
- package/dist/chunk-ZYQT7I5C.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.js +41 -41
- 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 +30 -1
- 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 +1 -1
- 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/dist/{y-webrtc-DGVURJIF.mjs → y-webrtc-7DLWG3LJ.mjs} +5 -5
- package/dist/y-webrtc-7DLWG3LJ.mjs.br +0 -0
- package/dist/y-webrtc-7DLWG3LJ.mjs.gz +0 -0
- package/dist/{y-webrtc-YN53KW3J.js → y-webrtc-TAJBJIKH.js} +107 -107
- package/dist/y-webrtc-TAJBJIKH.js.br +0 -0
- package/dist/y-webrtc-TAJBJIKH.js.gz +0 -0
- package/dist/{y-websocket-P5LTAJ5T.mjs → y-websocket-DCTJ76B7.mjs} +4 -4
- package/dist/y-websocket-DCTJ76B7.mjs.br +0 -0
- package/dist/y-websocket-DCTJ76B7.mjs.gz +0 -0
- package/dist/{y-websocket-HZCIQLM6.js → y-websocket-DQLOWGV6.js} +81 -81
- package/dist/y-websocket-DQLOWGV6.js.br +0 -0
- package/dist/y-websocket-DQLOWGV6.js.gz +0 -0
- package/dist/{yjs-FKGX4QHS.mjs → yjs-4ED7E5CZ.mjs} +1 -1
- package/dist/yjs-4ED7E5CZ.mjs.br +0 -0
- package/dist/yjs-4ED7E5CZ.mjs.gz +0 -0
- package/dist/{yjs-HBLSEMHP.js → yjs-OWUA3UHD.js} +104 -104
- package/dist/yjs-OWUA3UHD.js.br +0 -0
- package/dist/yjs-OWUA3UHD.js.gz +0 -0
- package/package.json +7 -7
- package/dist/AiChatPanel-MCGNCS7Q.js.br +0 -0
- package/dist/AiChatPanel-MCGNCS7Q.js.gz +0 -0
- package/dist/AiChatPanel-WJXPCHQK.mjs.br +0 -0
- package/dist/AiChatPanel-WJXPCHQK.mjs.gz +0 -0
- package/dist/Model3DScene-IXW2AKAU.mjs.gz +0 -0
- package/dist/Model3DScene-Q2DTGVQ7.js.br +0 -0
- package/dist/Model3DScene-Q2DTGVQ7.js.gz +0 -0
- package/dist/SurfaceChart3DScene-AD43LAOO.js.br +0 -0
- package/dist/SurfaceChart3DScene-AD43LAOO.js.gz +0 -0
- package/dist/SurfaceChart3DScene-MODEHQ6G.mjs.gz +0 -0
- package/dist/chunk-3ISYPBSX.js.br +0 -0
- package/dist/chunk-3ISYPBSX.js.gz +0 -0
- package/dist/chunk-3OYWYONZ.mjs.br +0 -0
- package/dist/chunk-3OYWYONZ.mjs.gz +0 -0
- package/dist/chunk-4GX347MG.js.br +0 -0
- package/dist/chunk-4GX347MG.js.gz +0 -0
- package/dist/chunk-5YV26HMJ.mjs.br +0 -0
- package/dist/chunk-5YV26HMJ.mjs.gz +0 -0
- package/dist/chunk-CIK6XUOH.js.br +0 -0
- package/dist/chunk-CIK6XUOH.js.gz +0 -0
- package/dist/chunk-JV6DI7AK.js.br +0 -0
- package/dist/chunk-JV6DI7AK.js.gz +0 -0
- package/dist/chunk-LDD2UVCV.mjs.br +0 -0
- package/dist/chunk-LDD2UVCV.mjs.gz +0 -0
- package/dist/chunk-MDFCBYEM.mjs.br +0 -0
- package/dist/chunk-MDFCBYEM.mjs.gz +0 -0
- package/dist/chunk-MMFM7JRT.js.br +0 -0
- package/dist/chunk-MMFM7JRT.js.gz +0 -0
- package/dist/chunk-NKE64XVV.js.br +0 -0
- package/dist/chunk-NKE64XVV.js.gz +0 -0
- package/dist/chunk-OYF6ISXZ.mjs.br +0 -0
- package/dist/chunk-P6KM7RO5.js.br +0 -0
- package/dist/chunk-P6KM7RO5.js.gz +0 -0
- package/dist/chunk-PYV6FIYK.js.br +0 -0
- package/dist/chunk-PYV6FIYK.js.gz +0 -0
- package/dist/chunk-QI2JCXTH.mjs.br +0 -0
- package/dist/chunk-QI2JCXTH.mjs.gz +0 -0
- package/dist/chunk-UWYHBCLM.mjs.br +0 -0
- package/dist/chunk-UWYHBCLM.mjs.gz +0 -0
- package/dist/chunk-Z4CS2ZYN.mjs.br +0 -0
- package/dist/chunk-Z4CS2ZYN.mjs.gz +0 -0
- package/dist/y-webrtc-DGVURJIF.mjs.br +0 -0
- package/dist/y-webrtc-DGVURJIF.mjs.gz +0 -0
- package/dist/y-webrtc-YN53KW3J.js.br +0 -0
- package/dist/y-webrtc-YN53KW3J.js.gz +0 -0
- package/dist/y-websocket-HZCIQLM6.js.br +0 -0
- package/dist/y-websocket-HZCIQLM6.js.gz +0 -0
- package/dist/y-websocket-P5LTAJ5T.mjs.br +0 -0
- package/dist/y-websocket-P5LTAJ5T.mjs.gz +0 -0
- package/dist/yjs-FKGX4QHS.mjs.br +0 -0
- package/dist/yjs-FKGX4QHS.mjs.gz +0 -0
- package/dist/yjs-HBLSEMHP.js.br +0 -0
- package/dist/yjs-HBLSEMHP.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ThemePresets, PptxMarkdownConverter } from './chunk-
|
|
1
|
+
import { ThemePresets, PptxMarkdownConverter } from './chunk-23WSCMWN.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, partitionTemplateElements, UNGROUPED_SECTION_ID, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-
|
|
2
|
-
import { translationsEn } 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, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, 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, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, exportDeckJson, groupElements, generateElementId, makeCloneId, 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, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-
|
|
1
|
+
import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-PLBS7OL2.mjs';
|
|
2
|
+
import { translationsEn } from './chunk-5IUEPQTK.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, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, 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, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, exportDeckJson, groupElements, generateElementId, makeCloneId, 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, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-23WSCMWN.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';
|
|
@@ -230,7 +230,7 @@ function useYjsProvider({ config }) {
|
|
|
230
230
|
}
|
|
231
231
|
setStatus("connecting");
|
|
232
232
|
try {
|
|
233
|
-
const [Y, { WebrtcProvider }] = await Promise.all([import('./yjs-
|
|
233
|
+
const [Y, { WebrtcProvider }] = await Promise.all([import('./yjs-4ED7E5CZ.mjs'), import('./y-webrtc-7DLWG3LJ.mjs')]);
|
|
234
234
|
const yDoc = new Y.Doc();
|
|
235
235
|
const opts = {};
|
|
236
236
|
if (config.signaling && config.signaling.length > 0) {
|
|
@@ -298,7 +298,7 @@ function useYjsProvider({ config }) {
|
|
|
298
298
|
}
|
|
299
299
|
setStatus("connecting");
|
|
300
300
|
try {
|
|
301
|
-
const [Y, { WebsocketProvider }] = await Promise.all([import('./yjs-
|
|
301
|
+
const [Y, { WebsocketProvider }] = await Promise.all([import('./yjs-4ED7E5CZ.mjs'), import('./y-websocket-DCTJ76B7.mjs')]);
|
|
302
302
|
const yDoc = new Y.Doc();
|
|
303
303
|
const provider = new WebsocketProvider(config.serverUrl, roomId, yDoc, {
|
|
304
304
|
params: config.authToken ? { token: config.authToken } : void 0
|
|
@@ -3488,6 +3488,7 @@ function useViewerCoreState(_input) {
|
|
|
3488
3488
|
const shapeAdjustmentDragStateRef = useRef(null);
|
|
3489
3489
|
const marqueeStateRef = useRef(null);
|
|
3490
3490
|
const isDrawingRef = useRef(false);
|
|
3491
|
+
const justInteractedRef = useRef(false);
|
|
3491
3492
|
const livePatcher = useMemo(() => createCollaborationLivePatcher(), []);
|
|
3492
3493
|
useEffect(() => () => livePatcher.dispose(), [livePatcher]);
|
|
3493
3494
|
const slidesRef = useRef([]);
|
|
@@ -3584,6 +3585,7 @@ function useViewerCoreState(_input) {
|
|
|
3584
3585
|
shapeAdjustmentDragStateRef,
|
|
3585
3586
|
marqueeStateRef,
|
|
3586
3587
|
isDrawingRef,
|
|
3588
|
+
justInteractedRef,
|
|
3587
3589
|
livePatcher,
|
|
3588
3590
|
mode,
|
|
3589
3591
|
setMode,
|
|
@@ -4601,6 +4603,7 @@ function processPointerUp(input) {
|
|
|
4601
4603
|
dragStateRef,
|
|
4602
4604
|
resizeStateRef,
|
|
4603
4605
|
shapeAdjustmentDragStateRef,
|
|
4606
|
+
justInteractedRef,
|
|
4604
4607
|
setMarqueeSelectionState,
|
|
4605
4608
|
setSnapLines,
|
|
4606
4609
|
setTemplateElementsBySlideId,
|
|
@@ -4665,6 +4668,9 @@ function processPointerUp(input) {
|
|
|
4665
4668
|
);
|
|
4666
4669
|
}
|
|
4667
4670
|
const wasMoved = drag?.moved || rs?.moved || adj?.moved;
|
|
4671
|
+
if (wasMoved) {
|
|
4672
|
+
justInteractedRef.current = true;
|
|
4673
|
+
}
|
|
4668
4674
|
if (wasMoved) {
|
|
4669
4675
|
livePatcher?.flush();
|
|
4670
4676
|
}
|
|
@@ -4842,6 +4848,7 @@ function useCanvasInteractions(input) {
|
|
|
4842
4848
|
resizeStateRef,
|
|
4843
4849
|
shapeAdjustmentDragStateRef,
|
|
4844
4850
|
marqueeStateRef,
|
|
4851
|
+
justInteractedRef,
|
|
4845
4852
|
setInlineEditingElementId,
|
|
4846
4853
|
setInlineEditingText,
|
|
4847
4854
|
setContextMenuState,
|
|
@@ -4901,8 +4908,9 @@ function useCanvasInteractions(input) {
|
|
|
4901
4908
|
const newIds = ids.includes(elementId) ? ids.filter((id) => id !== elementId) : [...ids, elementId];
|
|
4902
4909
|
ops.applySelection(newIds[0] ?? null, newIds);
|
|
4903
4910
|
} else if (selectedElementIdSet.has(elementId) && !inlineEditingElementId) {
|
|
4904
|
-
if (justSelectedRef.current) {
|
|
4911
|
+
if (justSelectedRef.current || justInteractedRef.current) {
|
|
4905
4912
|
justSelectedRef.current = false;
|
|
4913
|
+
justInteractedRef.current = false;
|
|
4906
4914
|
} else {
|
|
4907
4915
|
const el = elementLookup.get(elementId);
|
|
4908
4916
|
if (el && hasTextProperties(el) && !el.locks?.noTextEdit) {
|
|
@@ -8970,6 +8978,7 @@ function useEditorOperations(input) {
|
|
|
8970
8978
|
resizeStateRef: state.resizeStateRef,
|
|
8971
8979
|
shapeAdjustmentDragStateRef: state.shapeAdjustmentDragStateRef,
|
|
8972
8980
|
marqueeStateRef: state.marqueeStateRef,
|
|
8981
|
+
justInteractedRef: state.justInteractedRef,
|
|
8973
8982
|
setInlineEditingElementId: state.setInlineEditingElementId,
|
|
8974
8983
|
setInlineEditingText: state.setInlineEditingText,
|
|
8975
8984
|
setContextMenuState: state.setContextMenuState,
|
|
@@ -9629,6 +9638,7 @@ function useViewerIntegration(input) {
|
|
|
9629
9638
|
resizeStateRef: state.resizeStateRef,
|
|
9630
9639
|
shapeAdjustmentDragStateRef: state.shapeAdjustmentDragStateRef,
|
|
9631
9640
|
marqueeStateRef: state.marqueeStateRef,
|
|
9641
|
+
justInteractedRef: state.justInteractedRef,
|
|
9632
9642
|
editTemplateMode: state.editTemplateMode,
|
|
9633
9643
|
snapToGrid: state.snapToGrid,
|
|
9634
9644
|
snapToShape: state.snapToShape,
|
|
@@ -10026,7 +10036,7 @@ function useYjsDocumentSync({
|
|
|
10026
10036
|
if (factoriesRef.current) {
|
|
10027
10037
|
return factoriesRef.current;
|
|
10028
10038
|
}
|
|
10029
|
-
const Y = await import('./yjs-
|
|
10039
|
+
const Y = await import('./yjs-4ED7E5CZ.mjs');
|
|
10030
10040
|
const factories = {
|
|
10031
10041
|
createMap: () => new Y.Map(),
|
|
10032
10042
|
createArray: () => new Y.Array(),
|
|
@@ -10242,7 +10252,7 @@ function useCollaborationLivePatch({
|
|
|
10242
10252
|
}
|
|
10243
10253
|
let cancelled = false;
|
|
10244
10254
|
void (async () => {
|
|
10245
|
-
const Y = await import('./yjs-
|
|
10255
|
+
const Y = await import('./yjs-4ED7E5CZ.mjs');
|
|
10246
10256
|
if (cancelled) {
|
|
10247
10257
|
return;
|
|
10248
10258
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -8520,20 +8520,18 @@ function createTableElement(input, options) {
|
|
|
8520
8520
|
}
|
|
8521
8521
|
const rows = input.rows.map((rowInput) => ({
|
|
8522
8522
|
height: rowInput.height ?? rowHeight,
|
|
8523
|
-
cells: rowInput.cells.map(
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
})
|
|
8536
|
-
)
|
|
8523
|
+
cells: rowInput.cells.map((cellInput) => ({
|
|
8524
|
+
text: cellInput.text,
|
|
8525
|
+
gridSpan: cellInput.gridSpan,
|
|
8526
|
+
rowSpan: cellInput.rowSpan,
|
|
8527
|
+
style: cellInput.style ? {
|
|
8528
|
+
fontSize: cellInput.style.fontSize,
|
|
8529
|
+
bold: cellInput.style.bold,
|
|
8530
|
+
italic: cellInput.style.italic,
|
|
8531
|
+
color: cellInput.style.color,
|
|
8532
|
+
align: cellInput.style.alignment
|
|
8533
|
+
} : void 0
|
|
8534
|
+
}))
|
|
8537
8535
|
}));
|
|
8538
8536
|
const tableData = {
|
|
8539
8537
|
rows,
|
|
@@ -42502,17 +42500,13 @@ function remapCellStyleColors(style, remap) {
|
|
|
42502
42500
|
function remapTableColors(tableData, remap) {
|
|
42503
42501
|
return {
|
|
42504
42502
|
...tableData,
|
|
42505
|
-
rows: tableData.rows.map(
|
|
42506
|
-
|
|
42507
|
-
|
|
42508
|
-
|
|
42509
|
-
|
|
42510
|
-
|
|
42511
|
-
|
|
42512
|
-
})
|
|
42513
|
-
)
|
|
42514
|
-
})
|
|
42515
|
-
)
|
|
42503
|
+
rows: tableData.rows.map((row) => ({
|
|
42504
|
+
...row,
|
|
42505
|
+
cells: row.cells.map((cell) => ({
|
|
42506
|
+
...cell,
|
|
42507
|
+
style: remapCellStyleColors(cell.style, remap)
|
|
42508
|
+
}))
|
|
42509
|
+
}))
|
|
42516
42510
|
};
|
|
42517
42511
|
}
|
|
42518
42512
|
function remapSlideColors(slide, remap) {
|
|
@@ -42979,9 +42973,10 @@ function parseWhen(node) {
|
|
|
42979
42973
|
} : void 0;
|
|
42980
42974
|
}
|
|
42981
42975
|
function parseSmartArtControlFlow(node, localName22) {
|
|
42982
|
-
const forEach = children5(node, "forEach", localName22).map(
|
|
42983
|
-
|
|
42984
|
-
|
|
42976
|
+
const forEach = children5(node, "forEach", localName22).map((entry2) => ({
|
|
42977
|
+
...parseIterator(entry2),
|
|
42978
|
+
rawXml: entry2
|
|
42979
|
+
}));
|
|
42985
42980
|
const choose = children5(node, "choose", localName22).map((entry2) => {
|
|
42986
42981
|
const otherwiseNode = children5(entry2, "else", localName22)[0];
|
|
42987
42982
|
return {
|
|
@@ -102266,27 +102261,24 @@ function newTableElement(rows = 3, cols = 3, x = DEFAULT_X, y = TABLE_DEFAULT_Y)
|
|
|
102266
102261
|
const columnWidths = Array.from({ length: cols }).fill(colWidth);
|
|
102267
102262
|
const tableRows = Array.from({ length: rows }, (_, rowIdx) => {
|
|
102268
102263
|
const isHeader = rowIdx === 0;
|
|
102269
|
-
const cells = Array.from(
|
|
102270
|
-
{
|
|
102271
|
-
|
|
102272
|
-
|
|
102273
|
-
|
|
102274
|
-
|
|
102275
|
-
|
|
102276
|
-
|
|
102277
|
-
|
|
102278
|
-
|
|
102279
|
-
|
|
102280
|
-
|
|
102281
|
-
|
|
102282
|
-
|
|
102283
|
-
|
|
102284
|
-
|
|
102285
|
-
|
|
102286
|
-
|
|
102287
|
-
}
|
|
102288
|
-
})
|
|
102289
|
-
);
|
|
102264
|
+
const cells = Array.from({ length: cols }, (__, colIdx) => ({
|
|
102265
|
+
text: isHeader ? `Header ${colIdx + 1}` : "",
|
|
102266
|
+
style: {
|
|
102267
|
+
borderTopWidth: 1,
|
|
102268
|
+
borderBottomWidth: 1,
|
|
102269
|
+
borderLeftWidth: 1,
|
|
102270
|
+
borderRightWidth: 1,
|
|
102271
|
+
borderTopColor: "#cccccc",
|
|
102272
|
+
borderBottomColor: "#cccccc",
|
|
102273
|
+
borderLeftColor: "#cccccc",
|
|
102274
|
+
borderRightColor: "#cccccc",
|
|
102275
|
+
...isHeader ? {
|
|
102276
|
+
bold: true,
|
|
102277
|
+
backgroundColor: "#2563eb",
|
|
102278
|
+
color: "#ffffff"
|
|
102279
|
+
} : {}
|
|
102280
|
+
}
|
|
102281
|
+
}));
|
|
102290
102282
|
return { cells, height: isHeader ? 40 : 36 };
|
|
102291
102283
|
});
|
|
102292
102284
|
return {
|
|
@@ -103825,6 +103817,7 @@ var translationsEn = {
|
|
|
103825
103817
|
"pptx.inspector.lock": "Lock",
|
|
103826
103818
|
"pptx.inspector.unlock": "Unlock",
|
|
103827
103819
|
// Slide master / handout master / notes master
|
|
103820
|
+
"pptx.master.backgroundColorLabel": "Master background color",
|
|
103828
103821
|
"pptx.master.collapseMasterPane": "Collapse pane",
|
|
103829
103822
|
"pptx.master.handoutBackground": "Background",
|
|
103830
103823
|
"pptx.master.handoutMasterTitle": "Handout Master",
|
|
@@ -108041,19 +108034,21 @@ function childrenPair(a, b) {
|
|
|
108041
108034
|
}
|
|
108042
108035
|
return boxOverlapRatio(a, b) >= CHILD_OVERLAP_RATIO;
|
|
108043
108036
|
}
|
|
108044
|
-
function
|
|
108037
|
+
function correspondingChildren(a, b) {
|
|
108045
108038
|
if (a.length !== b.length || a.length === 0) {
|
|
108046
|
-
return
|
|
108039
|
+
return void 0;
|
|
108047
108040
|
}
|
|
108048
108041
|
const unclaimed = b.map((child22) => child22);
|
|
108042
|
+
const paired = [];
|
|
108049
108043
|
for (const child22 of a) {
|
|
108050
108044
|
const index = unclaimed.findIndex((candidate) => childrenPair(child22, candidate));
|
|
108051
108045
|
if (index < 0) {
|
|
108052
|
-
return
|
|
108046
|
+
return void 0;
|
|
108053
108047
|
}
|
|
108048
|
+
paired.push([child22, unclaimed[index]]);
|
|
108054
108049
|
unclaimed.splice(index, 1);
|
|
108055
108050
|
}
|
|
108056
|
-
return
|
|
108051
|
+
return paired;
|
|
108057
108052
|
}
|
|
108058
108053
|
function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
108059
108054
|
const out = [];
|
|
@@ -108062,7 +108057,7 @@ function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
|
108062
108057
|
if (children8 && containsMorphNamedDescendant(element)) {
|
|
108063
108058
|
const twin = correspondingGroup(element, counterpart);
|
|
108064
108059
|
const twinChildren = twin ? groupChildren(twin) ?? [] : void 0;
|
|
108065
|
-
if (twinChildren &&
|
|
108060
|
+
if (twinChildren && correspondingChildren(children8, twinChildren)) {
|
|
108066
108061
|
out.push(
|
|
108067
108062
|
...flattenMorphElements(children8, twinChildren, offsetX + element.x, offsetY + element.y)
|
|
108068
108063
|
);
|
|
@@ -108073,6 +108068,29 @@ function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
|
|
|
108073
108068
|
}
|
|
108074
108069
|
return out;
|
|
108075
108070
|
}
|
|
108071
|
+
function morphGroupChildPairs(elements, counterpart) {
|
|
108072
|
+
const pairs2 = /* @__PURE__ */ new Map();
|
|
108073
|
+
collectGroupChildPairs(elements, counterpart, pairs2);
|
|
108074
|
+
return pairs2;
|
|
108075
|
+
}
|
|
108076
|
+
function collectGroupChildPairs(elements, counterpart, into) {
|
|
108077
|
+
for (const element of elements) {
|
|
108078
|
+
const children8 = groupChildren(element);
|
|
108079
|
+
if (!children8 || !containsMorphNamedDescendant(element)) {
|
|
108080
|
+
continue;
|
|
108081
|
+
}
|
|
108082
|
+
const twin = correspondingGroup(element, counterpart);
|
|
108083
|
+
const twinChildren = twin ? groupChildren(twin) ?? [] : void 0;
|
|
108084
|
+
const corresponded = twinChildren ? correspondingChildren(children8, twinChildren) : void 0;
|
|
108085
|
+
if (!corresponded) {
|
|
108086
|
+
continue;
|
|
108087
|
+
}
|
|
108088
|
+
for (const [child22, twinChild] of corresponded) {
|
|
108089
|
+
into.set(child22.id, twinChild.id);
|
|
108090
|
+
}
|
|
108091
|
+
collectGroupChildPairs(children8, twinChildren ?? [], into);
|
|
108092
|
+
}
|
|
108093
|
+
}
|
|
108076
108094
|
var OUTLINE_SAMPLE_COUNT = 64;
|
|
108077
108095
|
var ELLIPSE_SAMPLE_COUNT = 48;
|
|
108078
108096
|
function resolveLength(token2, axis) {
|
|
@@ -108539,6 +108557,23 @@ function matchMorphElementsFull(fromSlide, toSlide) {
|
|
|
108539
108557
|
}
|
|
108540
108558
|
}
|
|
108541
108559
|
}
|
|
108560
|
+
const groupChildPairs = morphGroupChildPairs(fromSlide.elements, toSlide.elements);
|
|
108561
|
+
if (groupChildPairs.size > 0) {
|
|
108562
|
+
const toById = new Map(toElements.map((el) => [el.id, el]));
|
|
108563
|
+
for (const fromEl of fromElements) {
|
|
108564
|
+
if (usedFrom.has(fromEl.id)) {
|
|
108565
|
+
continue;
|
|
108566
|
+
}
|
|
108567
|
+
const toId = groupChildPairs.get(fromEl.id);
|
|
108568
|
+
const toEl = toId === void 0 ? void 0 : toById.get(toId);
|
|
108569
|
+
if (!toEl || usedTo.has(toEl.id) || fromEl.type !== toEl.type) {
|
|
108570
|
+
continue;
|
|
108571
|
+
}
|
|
108572
|
+
pairs2.push({ fromElement: fromEl, toElement: toEl });
|
|
108573
|
+
usedFrom.add(fromEl.id);
|
|
108574
|
+
usedTo.add(toEl.id);
|
|
108575
|
+
}
|
|
108576
|
+
}
|
|
108542
108577
|
for (const fromEl of fromElements) {
|
|
108543
108578
|
if (usedFrom.has(fromEl.id) || !fromEl.shapeId) {
|
|
108544
108579
|
continue;
|
|
@@ -108645,7 +108680,7 @@ function buildMorphMergedOrder(outgoing, incoming, pairs2) {
|
|
|
108645
108680
|
flushOutgoingBelow(outgoing.length);
|
|
108646
108681
|
return rank;
|
|
108647
108682
|
}
|
|
108648
|
-
function resolveMorphOverlayArrivals(outgoing, incoming, pairs2, holdingGhostIds) {
|
|
108683
|
+
function resolveMorphOverlayArrivals(outgoing, incoming, pairs2, holdingGhostIds, dissolvingInIds = /* @__PURE__ */ new Set()) {
|
|
108649
108684
|
const rank = buildMorphMergedOrder(outgoing, incoming, pairs2);
|
|
108650
108685
|
const matched = new Set(pairs2.map((pair) => pair.toElement.id));
|
|
108651
108686
|
const counterpart = new Map(pairs2.map((pair) => [pair.fromElement.id, pair.toElement]));
|
|
@@ -108655,7 +108690,7 @@ function resolveMorphOverlayArrivals(outgoing, incoming, pairs2, holdingGhostIds
|
|
|
108655
108690
|
}));
|
|
108656
108691
|
const lifted = /* @__PURE__ */ new Set();
|
|
108657
108692
|
for (const element of incoming) {
|
|
108658
|
-
if (matched.has(element.id)) {
|
|
108693
|
+
if (matched.has(element.id) && !dissolvingInIds.has(element.id)) {
|
|
108659
108694
|
continue;
|
|
108660
108695
|
}
|
|
108661
108696
|
const mine = rank.get(element.id) ?? 0;
|
|
@@ -108720,6 +108755,21 @@ function tokenizeText(element, mode) {
|
|
|
108720
108755
|
}
|
|
108721
108756
|
return tokens;
|
|
108722
108757
|
}
|
|
108758
|
+
var SAME_SLOT_OVERLAP = 0.5;
|
|
108759
|
+
function ownText(element) {
|
|
108760
|
+
return (element.text ?? "").replace(/\s+/gu, " ").trim();
|
|
108761
|
+
}
|
|
108762
|
+
function morphTextReplacedInSlot(fromElement, toElement) {
|
|
108763
|
+
if (fromElement.type !== "text" || toElement.type !== "text") {
|
|
108764
|
+
return false;
|
|
108765
|
+
}
|
|
108766
|
+
const from = ownText(fromElement);
|
|
108767
|
+
const to = ownText(toElement);
|
|
108768
|
+
if (from === "" || to === "" || from === to) {
|
|
108769
|
+
return false;
|
|
108770
|
+
}
|
|
108771
|
+
return boxOverlapRatio(fromElement, toElement) >= SAME_SLOT_OVERLAP;
|
|
108772
|
+
}
|
|
108723
108773
|
function diffTokens(fromTokens, toTokens) {
|
|
108724
108774
|
const n = fromTokens.length;
|
|
108725
108775
|
const m = toTokens.length;
|
|
@@ -108918,6 +108968,9 @@ function resolveMorphGhostIds(outgoingElements, pairs2) {
|
|
|
108918
108968
|
}
|
|
108919
108969
|
return painted;
|
|
108920
108970
|
}
|
|
108971
|
+
function morphPairIncomingFadesIn(fromElement, toElement, ghosted = true) {
|
|
108972
|
+
return !(ghosted && isInertMorphPair(fromElement, toElement)) && morphPairNeedsCrossfade(fromElement, toElement) && crossfadeIncomingMayFadeIn(toElement);
|
|
108973
|
+
}
|
|
108921
108974
|
function crossfadeIncomingMayFadeIn(element) {
|
|
108922
108975
|
const image = element;
|
|
108923
108976
|
if (image.imagePath || image.svgPath) {
|
|
@@ -108948,17 +109001,18 @@ function generateMorphAnimations(pairs2, durationMs, _mode = "object", ghostIds)
|
|
|
108948
109001
|
continue;
|
|
108949
109002
|
}
|
|
108950
109003
|
const safeName = `pptx-morph-${index}-${toElement.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
108951
|
-
const
|
|
108952
|
-
const
|
|
108953
|
-
const
|
|
108954
|
-
const
|
|
109004
|
+
const inSlot = morphTextReplacedInSlot(fromElement, toElement);
|
|
109005
|
+
const dx = inSlot ? 0 : fromElement.x + fromElement.width / 2 - (toElement.x + toElement.width / 2);
|
|
109006
|
+
const dy = inSlot ? 0 : fromElement.y + fromElement.height / 2 - (toElement.y + toElement.height / 2);
|
|
109007
|
+
const sx = inSlot ? 1 : Math.max(fromElement.width, 1) / Math.max(toElement.width, 1);
|
|
109008
|
+
const sy = inSlot ? 1 : Math.max(fromElement.height, 1) / Math.max(toElement.height, 1);
|
|
108955
109009
|
const fromOpacity = fromElement.opacity ?? 1;
|
|
108956
109010
|
const toOpacity = toElement.opacity ?? 1;
|
|
108957
109011
|
const toRot = toElement.rotation ?? 0;
|
|
108958
|
-
const fromRot = shortestRotationTarget(toRot, fromElement.rotation ?? 0);
|
|
109012
|
+
const fromRot = inSlot ? toRot : shortestRotationTarget(toRot, fromElement.rotation ?? 0);
|
|
108959
109013
|
const flips = `${toElement.flipHorizontal ? " scaleX(-1)" : ""}${toElement.flipVertical ? " scaleY(-1)" : ""}`;
|
|
108960
109014
|
const inert = ghosted && isInertMorphPair(fromElement, toElement);
|
|
108961
|
-
const crossfadesIn =
|
|
109015
|
+
const crossfadesIn = morphPairIncomingFadesIn(fromElement, toElement, ghosted);
|
|
108962
109016
|
const fromProps = [
|
|
108963
109017
|
` transform: translate(${dx}px, ${dy}px) scale(${sx}, ${sy}) rotate(${fromRot}deg)${flips};`
|
|
108964
109018
|
];
|
|
@@ -109013,12 +109067,13 @@ function generateMorphGhostAnimations(pairs2, durationMs, startIndex, ghostIds)
|
|
|
109013
109067
|
}
|
|
109014
109068
|
const fadesOut = morphPairNeedsCrossfade(fromElement, toElement);
|
|
109015
109069
|
const safeName = `pptx-morph-ghost-${startIndex + index}-${fromElement.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
|
|
109016
|
-
const
|
|
109017
|
-
const
|
|
109018
|
-
const
|
|
109019
|
-
const
|
|
109070
|
+
const inSlot = morphTextReplacedInSlot(fromElement, toElement);
|
|
109071
|
+
const dx = inSlot ? 0 : toElement.x + toElement.width / 2 - (fromElement.x + fromElement.width / 2);
|
|
109072
|
+
const dy = inSlot ? 0 : toElement.y + toElement.height / 2 - (fromElement.y + fromElement.height / 2);
|
|
109073
|
+
const sx = inSlot ? 1 : Math.max(toElement.width, 1) / Math.max(fromElement.width, 1);
|
|
109074
|
+
const sy = inSlot ? 1 : Math.max(toElement.height, 1) / Math.max(fromElement.height, 1);
|
|
109020
109075
|
const fromRot = fromElement.rotation ?? 0;
|
|
109021
|
-
const toRot = shortestRotationTarget(fromRot, toElement.rotation ?? 0);
|
|
109076
|
+
const toRot = inSlot ? fromRot : shortestRotationTarget(fromRot, toElement.rotation ?? 0);
|
|
109022
109077
|
const flips = `${fromElement.flipHorizontal ? " scaleX(-1)" : ""}${fromElement.flipVertical ? " scaleY(-1)" : ""}`;
|
|
109023
109078
|
const opacity2 = fromElement.opacity ?? 1;
|
|
109024
109079
|
const keyframes = `
|
|
@@ -109236,11 +109291,21 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
|
|
|
109236
109291
|
(candidate) => outgoingAnimations.has(candidate.fromElement.id) && !morphPairNeedsCrossfade(candidate.fromElement, candidate.toElement)
|
|
109237
109292
|
).map((candidate) => candidate.fromElement.id)
|
|
109238
109293
|
);
|
|
109294
|
+
const dissolvingInIds = new Set(
|
|
109295
|
+
match.pairs.filter(
|
|
109296
|
+
(candidate) => morphPairIncomingFadesIn(
|
|
109297
|
+
candidate.fromElement,
|
|
109298
|
+
candidate.toElement,
|
|
109299
|
+
outgoingAnimations.has(candidate.fromElement.id)
|
|
109300
|
+
)
|
|
109301
|
+
).map((candidate) => candidate.toElement.id)
|
|
109302
|
+
);
|
|
109239
109303
|
const lifted = resolveMorphOverlayArrivals(
|
|
109240
109304
|
flattenedOutgoing,
|
|
109241
109305
|
flattenedIncoming,
|
|
109242
109306
|
match.pairs,
|
|
109243
|
-
holdingGhostIds
|
|
109307
|
+
holdingGhostIds,
|
|
109308
|
+
dissolvingInIds
|
|
109244
109309
|
);
|
|
109245
109310
|
const overlayIncomingAnimations = /* @__PURE__ */ new Map();
|
|
109246
109311
|
for (const id of lifted) {
|
|
Binary file
|
|
Binary file
|