pptx-react-viewer 2.20.5 → 2.21.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.
Files changed (104) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AiChatPanel-3H5WGSM5.js → AiChatPanel-BD6NR2AU.js} +24 -24
  3. package/dist/AiChatPanel-BD6NR2AU.js.br +0 -0
  4. package/dist/AiChatPanel-BD6NR2AU.js.gz +0 -0
  5. package/dist/{AiChatPanel-AYS6SCSC.mjs → AiChatPanel-XMRQE2GY.mjs} +4 -4
  6. package/dist/AiChatPanel-XMRQE2GY.mjs.br +0 -0
  7. package/dist/AiChatPanel-XMRQE2GY.mjs.gz +0 -0
  8. package/dist/{Model3DScene-QQQEABW7.mjs → Model3DScene-HAJKICLT.mjs} +1 -1
  9. package/dist/Model3DScene-HAJKICLT.mjs.br +0 -0
  10. package/dist/Model3DScene-HAJKICLT.mjs.gz +0 -0
  11. package/dist/{Model3DScene-6OVVKUSF.js → Model3DScene-UXWNLRNQ.js} +2 -2
  12. package/dist/Model3DScene-UXWNLRNQ.js.br +0 -0
  13. package/dist/Model3DScene-UXWNLRNQ.js.gz +0 -0
  14. package/dist/{chunk-2LOKAZHT.js → chunk-3ILDZ7MD.js} +3 -3
  15. package/dist/chunk-3ILDZ7MD.js.br +0 -0
  16. package/dist/chunk-3ILDZ7MD.js.gz +0 -0
  17. package/dist/{chunk-ULBSTLY3.mjs → chunk-5W2W46LY.mjs} +47 -4
  18. package/dist/chunk-5W2W46LY.mjs.br +0 -0
  19. package/dist/{chunk-ULBSTLY3.mjs.gz → chunk-5W2W46LY.mjs.gz} +0 -0
  20. package/dist/{chunk-ZVFTYICH.mjs → chunk-6PRFUWZA.mjs} +7 -10
  21. package/dist/chunk-6PRFUWZA.mjs.br +0 -0
  22. package/dist/chunk-6PRFUWZA.mjs.gz +0 -0
  23. package/dist/{chunk-BQJU7ZG6.js → chunk-F7SX4EUT.js} +49 -5
  24. package/dist/chunk-F7SX4EUT.js.br +0 -0
  25. package/dist/{chunk-BQJU7ZG6.js.gz → chunk-F7SX4EUT.js.gz} +0 -0
  26. package/dist/{chunk-PBFNE5X5.mjs → chunk-GNY4FD3V.mjs} +2 -2
  27. package/dist/chunk-GNY4FD3V.mjs.br +0 -0
  28. package/dist/chunk-GNY4FD3V.mjs.gz +0 -0
  29. package/dist/{chunk-62EM4JYP.js → chunk-HLUJOKES.js} +391 -395
  30. package/dist/chunk-HLUJOKES.js.br +0 -0
  31. package/dist/chunk-HLUJOKES.js.gz +0 -0
  32. package/dist/{chunk-DIJWZ6ZS.mjs → chunk-II5SCD5L.mjs} +1 -1
  33. package/dist/chunk-II5SCD5L.mjs.br +0 -0
  34. package/dist/chunk-II5SCD5L.mjs.gz +0 -0
  35. package/dist/{chunk-MZOZNBRO.mjs → chunk-L5MNLIQF.mjs} +3 -0
  36. package/dist/chunk-L5MNLIQF.mjs.br +0 -0
  37. package/dist/chunk-L5MNLIQF.mjs.gz +0 -0
  38. package/dist/{chunk-ETJBX4YT.js → chunk-SUNSC3Z5.js} +156 -156
  39. package/dist/chunk-SUNSC3Z5.js.br +0 -0
  40. package/dist/chunk-SUNSC3Z5.js.gz +0 -0
  41. package/dist/{chunk-6CPUGAK7.js → chunk-U6A5FWWE.js} +3 -0
  42. package/dist/chunk-U6A5FWWE.js.br +0 -0
  43. package/dist/chunk-U6A5FWWE.js.gz +0 -0
  44. package/dist/{chunk-JYVQ2MTO.js → chunk-W3Y3X4AT.js} +1072 -1098
  45. package/dist/chunk-W3Y3X4AT.js.br +0 -0
  46. package/dist/chunk-W3Y3X4AT.js.gz +0 -0
  47. package/dist/{chunk-BSOTRNVG.mjs → chunk-Y67QVETX.mjs} +34 -60
  48. package/dist/chunk-Y67QVETX.mjs.br +0 -0
  49. package/dist/chunk-Y67QVETX.mjs.gz +0 -0
  50. package/dist/i18n.js +4 -4
  51. package/dist/i18n.js.br +0 -0
  52. package/dist/i18n.js.gz +0 -0
  53. package/dist/i18n.mjs +1 -1
  54. package/dist/i18n.mjs.br +0 -0
  55. package/dist/i18n.mjs.gz +0 -0
  56. package/dist/index.js +47 -47
  57. package/dist/index.js.br +0 -0
  58. package/dist/index.js.gz +0 -0
  59. package/dist/index.mjs +6 -6
  60. package/dist/index.mjs.br +0 -0
  61. package/dist/index.mjs.gz +0 -0
  62. package/dist/internals.js +79 -79
  63. package/dist/internals.js.br +0 -0
  64. package/dist/internals.js.gz +0 -0
  65. package/dist/internals.mjs +4 -4
  66. package/dist/internals.mjs.br +0 -0
  67. package/dist/internals.mjs.gz +0 -0
  68. package/dist/viewer/index.js +27 -27
  69. package/dist/viewer/index.js.br +0 -0
  70. package/dist/viewer/index.js.gz +0 -0
  71. package/dist/viewer/index.mjs +6 -6
  72. package/dist/viewer/index.mjs.br +0 -0
  73. package/dist/viewer/index.mjs.gz +0 -0
  74. package/package.json +1 -1
  75. package/dist/AiChatPanel-3H5WGSM5.js.br +0 -0
  76. package/dist/AiChatPanel-3H5WGSM5.js.gz +0 -0
  77. package/dist/AiChatPanel-AYS6SCSC.mjs.br +0 -0
  78. package/dist/AiChatPanel-AYS6SCSC.mjs.gz +0 -0
  79. package/dist/Model3DScene-6OVVKUSF.js.br +0 -0
  80. package/dist/Model3DScene-6OVVKUSF.js.gz +0 -0
  81. package/dist/Model3DScene-QQQEABW7.mjs.br +0 -0
  82. package/dist/Model3DScene-QQQEABW7.mjs.gz +0 -0
  83. package/dist/chunk-2LOKAZHT.js.br +0 -0
  84. package/dist/chunk-2LOKAZHT.js.gz +0 -0
  85. package/dist/chunk-62EM4JYP.js.br +0 -0
  86. package/dist/chunk-62EM4JYP.js.gz +0 -0
  87. package/dist/chunk-6CPUGAK7.js.br +0 -0
  88. package/dist/chunk-6CPUGAK7.js.gz +0 -0
  89. package/dist/chunk-BQJU7ZG6.js.br +0 -0
  90. package/dist/chunk-BSOTRNVG.mjs.br +0 -0
  91. package/dist/chunk-BSOTRNVG.mjs.gz +0 -0
  92. package/dist/chunk-DIJWZ6ZS.mjs.br +0 -0
  93. package/dist/chunk-DIJWZ6ZS.mjs.gz +0 -0
  94. package/dist/chunk-ETJBX4YT.js.br +0 -0
  95. package/dist/chunk-ETJBX4YT.js.gz +0 -0
  96. package/dist/chunk-JYVQ2MTO.js.br +0 -0
  97. package/dist/chunk-JYVQ2MTO.js.gz +0 -0
  98. package/dist/chunk-MZOZNBRO.mjs.br +0 -0
  99. package/dist/chunk-MZOZNBRO.mjs.gz +0 -0
  100. package/dist/chunk-PBFNE5X5.mjs.br +0 -0
  101. package/dist/chunk-PBFNE5X5.mjs.gz +0 -0
  102. package/dist/chunk-ULBSTLY3.mjs.br +0 -0
  103. package/dist/chunk-ZVFTYICH.mjs.br +0 -0
  104. package/dist/chunk-ZVFTYICH.mjs.gz +0 -0
@@ -97335,6 +97335,14 @@ function computeChartLegendLayout(vm) {
97335
97335
  return { x, y, color: entry2.color, label: entry2.label };
97336
97336
  });
97337
97337
  }
97338
+ function patchChartData(data, patch) {
97339
+ if (patch.chartType && patch.chartType !== data.chartType) {
97340
+ const adapted = chartDataChangeType(data, patch.chartType);
97341
+ const { chartType: _chartType, ...rest } = patch;
97342
+ return { ...adapted, ...rest };
97343
+ }
97344
+ return { ...data, ...patch };
97345
+ }
97338
97346
  function schemaLabel(keys, token2, translate) {
97339
97347
  if (token2 === void 0) {
97340
97348
  return "";
@@ -104078,6 +104086,7 @@ function reorderAnimationTo(animations, source, targetIndex) {
104078
104086
  sorted.splice(targetIndex, 0, moved);
104079
104087
  return reindexOrder(sorted);
104080
104088
  }
104089
+ var MIN_TIMELINE_BAR_WIDTH_PERCENT = 2;
104081
104090
  function buildAnimationTimelineBars(animations) {
104082
104091
  const sorted = [...animations].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
104083
104092
  const total = Math.max(
@@ -104087,7 +104096,10 @@ function buildAnimationTimelineBars(animations) {
104087
104096
  return sorted.map((animation) => ({
104088
104097
  elementId: animation.elementId,
104089
104098
  leftPercent: (animation.delayMs ?? 0) / total * 100,
104090
- widthPercent: (animation.durationMs ?? 500) / total * 100
104099
+ widthPercent: Math.max(
104100
+ (animation.durationMs ?? 500) / total * 100,
104101
+ MIN_TIMELINE_BAR_WIDTH_PERCENT
104102
+ )
104091
104103
  }));
104092
104104
  }
104093
104105
  function reindexOrder(anims) {
@@ -111264,6 +111276,9 @@ var translationsEn = {
111264
111276
  "pptx.notes.strikethrough": "Strikethrough",
111265
111277
  "pptx.notes.toggleRichPlainEditor": "Toggle rich/plain text editor",
111266
111278
  "pptx.notes.underline": "Underline",
111279
+ // Group info panel (element inspector)
111280
+ "pptx.group.childCount": "{{count}} children",
111281
+ "pptx.group.groupedElement": "Grouped element",
111267
111282
  // OLE object properties
111268
111283
  "pptx.ole.embedded": "Embedded",
111269
111284
  "pptx.ole.fileName": "File Name",
@@ -130748,6 +130763,34 @@ var COMMON_FONTS = [
130748
130763
  "Tw Cen MT",
130749
130764
  "Verdana"
130750
130765
  ];
130766
+ function classifyMediaType(mimeType) {
130767
+ if (mimeType.startsWith("audio/")) {
130768
+ return "audio";
130769
+ }
130770
+ if (mimeType.startsWith("video/")) {
130771
+ return "video";
130772
+ }
130773
+ return null;
130774
+ }
130775
+ function resolveTemplateBackgroundRows(activeSlide, slideMasters, fallbackLayoutLabel, fallbackMasterLabel) {
130776
+ const result = {};
130777
+ if (activeSlide.layoutPath) {
130778
+ result.layout = {
130779
+ path: activeSlide.layoutPath,
130780
+ label: activeSlide.layoutName ?? fallbackLayoutLabel,
130781
+ title: activeSlide.layoutName ?? activeSlide.layoutPath
130782
+ };
130783
+ }
130784
+ const master = slideMasters?.find((m) => m.layoutPaths?.includes(activeSlide.layoutPath ?? ""));
130785
+ if (master) {
130786
+ result.master = {
130787
+ path: master.path,
130788
+ label: master.name ?? fallbackMasterLabel,
130789
+ title: master.name ?? master.path
130790
+ };
130791
+ }
130792
+ return result;
130793
+ }
130751
130794
  function partitionTemplateElements(slides) {
130752
130795
  const templateElementsBySlideId = {};
130753
130796
  const nextSlides = slides.map((slide) => {
@@ -133176,7 +133219,7 @@ function sanitizeDownloadFilename(input) {
133176
133219
  function downloadBlob(blob, filename) {
133177
133220
  const url = URL.createObjectURL(blob), anchor = document.createElement("a");
133178
133221
  anchor.href = url;
133179
- anchor.download = filename;
133222
+ anchor.download = sanitizeDownloadFilename(filename);
133180
133223
  document.body.appendChild(anchor);
133181
133224
  anchor.click();
133182
133225
  setTimeout(() => {
@@ -133187,7 +133230,7 @@ function downloadBlob(blob, filename) {
133187
133230
  function downloadDataUrl(dataUrl, filename) {
133188
133231
  const anchor = document.createElement("a");
133189
133232
  anchor.href = dataUrl;
133190
- anchor.download = filename;
133233
+ anchor.download = sanitizeDownloadFilename(filename);
133191
133234
  document.body.appendChild(anchor);
133192
133235
  anchor.click();
133193
133236
  setTimeout(() => {
@@ -135053,7 +135096,6 @@ exports.canvasToJpegData = canvasToJpegData;
135053
135096
  exports.cellRunStyle = cellRunStyle;
135054
135097
  exports.cellStyleToCss = cellStyleToCss;
135055
135098
  exports.centeredSvgTextLines = centeredSvgTextLines;
135056
- exports.chartDataChangeType = chartDataChangeType;
135057
135099
  exports.chartPartToAttrs = chartPartToAttrs;
135058
135100
  exports.chartPreserveAspectRatio = chartPreserveAspectRatio;
135059
135101
  exports.clampCropValue = clampCropValue;
@@ -135065,6 +135107,7 @@ exports.clampTransitionNumber = clampTransitionNumber;
135065
135107
  exports.clampUnitInterval = clampUnitInterval2;
135066
135108
  exports.clampZoomScale = clampZoomScale;
135067
135109
  exports.classifyExtraConnections = classifyExtraConnections;
135110
+ exports.classifyMediaType = classifyMediaType;
135068
135111
  exports.clearAllLocalViewerData = clearAllLocalViewerData;
135069
135112
  exports.clearAudienceContent = clearAudienceContent;
135070
135113
  exports.clearLocalAwareness = clearLocalAwareness;
@@ -135357,6 +135400,7 @@ exports.parsePanoseString = parsePanoseString;
135357
135400
  exports.parsePpactionUrl = parsePpactionUrl;
135358
135401
  exports.parseSegmentsFromRichEditor = parseSegmentsFromRichEditor;
135359
135402
  exports.partitionTemplateElements = partitionTemplateElements;
135403
+ exports.patchChartData = patchChartData;
135360
135404
  exports.pickSupportedMimeType = pickSupportedMimeType;
135361
135405
  exports.pieceLetterSpacing = pieceLetterSpacing;
135362
135406
  exports.placeAudienceWindow = placeAudienceWindow;
@@ -135446,6 +135490,7 @@ exports.resolveSelectionPaneRename = resolveSelectionPaneRename;
135446
135490
  exports.resolveShapeGeometry = resolveShapeGeometry;
135447
135491
  exports.resolveShowSlideIndexes = resolveShowSlideIndexes;
135448
135492
  exports.resolveSlideSizeSelection = resolveSlideSizeSelection;
135493
+ exports.resolveTemplateBackgroundRows = resolveTemplateBackgroundRows;
135449
135494
  exports.resolveThemeCatalogEntry = resolveThemeCatalogEntry;
135450
135495
  exports.resolveTitleBarStatusKey = resolveTitleBarStatusKey;
135451
135496
  exports.resolveTransitionDurationMs = resolveTransitionDurationMs;
@@ -135460,7 +135505,6 @@ exports.runMediaCommand = runMediaCommand;
135460
135505
  exports.runPresentationAction = runPresentationAction;
135461
135506
  exports.safeOpenUrl = safeOpenUrl;
135462
135507
  exports.sanitizeColor = sanitizeColor;
135463
- exports.sanitizeDownloadFilename = sanitizeDownloadFilename;
135464
135508
  exports.sanitizeGradientStops = sanitizeGradientStops;
135465
135509
  exports.sanitizeMathMl = sanitizeMathMl;
135466
135510
  exports.saveAutosaveSnapshot = saveAutosaveSnapshot;
Binary file
@@ -1,5 +1,5 @@
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-ULBSTLY3.mjs';
1
+ import { translationsEn } from './chunk-L5MNLIQF.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-5W2W46LY.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