pptx-react-viewer 2.11.0 → 2.11.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.
Files changed (117) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{AiChatPanel-PJPSDMN4.js → AiChatPanel-E6W3EACA.js} +23 -23
  3. package/dist/AiChatPanel-E6W3EACA.js.br +0 -0
  4. package/dist/AiChatPanel-E6W3EACA.js.gz +0 -0
  5. package/dist/{AiChatPanel-EX2TBRJM.mjs → AiChatPanel-RMQIJDUJ.mjs} +4 -4
  6. package/dist/AiChatPanel-RMQIJDUJ.mjs.br +0 -0
  7. package/dist/AiChatPanel-RMQIJDUJ.mjs.gz +0 -0
  8. package/dist/{Model3DScene-UCBPTEAY.js → Model3DScene-U4B4NZJT.js} +2 -2
  9. package/dist/Model3DScene-U4B4NZJT.js.br +0 -0
  10. package/dist/Model3DScene-U4B4NZJT.js.gz +0 -0
  11. package/dist/{Model3DScene-TTQFV7OS.mjs → Model3DScene-WHSHBMR5.mjs} +1 -1
  12. package/dist/Model3DScene-WHSHBMR5.mjs.br +0 -0
  13. package/dist/Model3DScene-WHSHBMR5.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-ADKCYYOQ.js → SurfaceChart3DScene-5S43UBRD.js} +2 -2
  15. package/dist/SurfaceChart3DScene-5S43UBRD.js.br +0 -0
  16. package/dist/SurfaceChart3DScene-5S43UBRD.js.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-5SZCRHZI.mjs → SurfaceChart3DScene-77JP5XH5.mjs} +1 -1
  18. package/dist/{SurfaceChart3DScene-5SZCRHZI.mjs.br → SurfaceChart3DScene-77JP5XH5.mjs.br} +0 -0
  19. package/dist/SurfaceChart3DScene-77JP5XH5.mjs.gz +0 -0
  20. package/dist/{chunk-RJEY2KZH.mjs → chunk-DD54KUDG.mjs} +3 -3
  21. package/dist/chunk-DD54KUDG.mjs.br +0 -0
  22. package/dist/chunk-DD54KUDG.mjs.gz +0 -0
  23. package/dist/{chunk-MM5RMRSP.js → chunk-FAP6OPLL.js} +250 -250
  24. package/dist/chunk-FAP6OPLL.js.br +0 -0
  25. package/dist/chunk-FAP6OPLL.js.gz +0 -0
  26. package/dist/{chunk-C2UWTH42.mjs → chunk-FV7HEYCX.mjs} +211 -3
  27. package/dist/chunk-FV7HEYCX.mjs.br +0 -0
  28. package/dist/{chunk-C2UWTH42.mjs.gz → chunk-FV7HEYCX.mjs.gz} +0 -0
  29. package/dist/{chunk-UZVRM6LD.mjs → chunk-HF6L2CTF.mjs} +1 -1
  30. package/dist/chunk-HF6L2CTF.mjs.br +0 -0
  31. package/dist/chunk-HF6L2CTF.mjs.gz +0 -0
  32. package/dist/{chunk-N6IHR6PS.js → chunk-IOVOQ6ZJ.js} +89 -1
  33. package/dist/chunk-IOVOQ6ZJ.js.br +0 -0
  34. package/dist/{chunk-N6IHR6PS.js.gz → chunk-IOVOQ6ZJ.js.gz} +0 -0
  35. package/dist/{chunk-E367QIKR.js → chunk-IXBM3HWH.js} +1109 -1070
  36. package/dist/chunk-IXBM3HWH.js.br +0 -0
  37. package/dist/chunk-IXBM3HWH.js.gz +0 -0
  38. package/dist/{chunk-HMQVOPQH.js → chunk-KDJBWJJH.js} +222 -2
  39. package/dist/chunk-KDJBWJJH.js.br +0 -0
  40. package/dist/{chunk-HMQVOPQH.js.gz → chunk-KDJBWJJH.js.gz} +0 -0
  41. package/dist/{chunk-HK2UERUX.mjs → chunk-NJ4PTG4F.mjs} +30 -28
  42. package/dist/chunk-NJ4PTG4F.mjs.br +0 -0
  43. package/dist/chunk-NJ4PTG4F.mjs.gz +0 -0
  44. package/dist/{chunk-L2CM5EUD.mjs → chunk-PXYZFWDA.mjs} +142 -103
  45. package/dist/chunk-PXYZFWDA.mjs.br +0 -0
  46. package/dist/chunk-PXYZFWDA.mjs.gz +0 -0
  47. package/dist/{chunk-4J7SPY64.js → chunk-QT6BPOZM.js} +352 -350
  48. package/dist/chunk-QT6BPOZM.js.br +0 -0
  49. package/dist/chunk-QT6BPOZM.js.gz +0 -0
  50. package/dist/{chunk-53NXKDMZ.mjs → chunk-RHR7GTDX.mjs} +89 -1
  51. package/dist/chunk-RHR7GTDX.mjs.br +0 -0
  52. package/dist/{chunk-53NXKDMZ.mjs.gz → chunk-RHR7GTDX.mjs.gz} +0 -0
  53. package/dist/{chunk-VNP627O5.js → chunk-X3SFCKAF.js} +3 -3
  54. package/dist/chunk-X3SFCKAF.js.br +0 -0
  55. package/dist/chunk-X3SFCKAF.js.gz +0 -0
  56. package/dist/i18n.js +4 -4
  57. package/dist/i18n.js.br +0 -0
  58. package/dist/i18n.js.gz +0 -0
  59. package/dist/i18n.mjs +1 -1
  60. package/dist/i18n.mjs.br +0 -0
  61. package/dist/i18n.mjs.gz +0 -0
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +36 -36
  64. package/dist/index.js.br +0 -0
  65. package/dist/index.js.gz +0 -0
  66. package/dist/index.mjs +6 -6
  67. package/dist/index.mjs.br +0 -0
  68. package/dist/index.mjs.gz +0 -0
  69. package/dist/internals.d.ts +12 -1
  70. package/dist/internals.d.ts.map +1 -1
  71. package/dist/internals.js +79 -79
  72. package/dist/internals.js.br +0 -0
  73. package/dist/internals.js.gz +0 -0
  74. package/dist/internals.mjs +4 -4
  75. package/dist/internals.mjs.br +0 -0
  76. package/dist/internals.mjs.gz +0 -0
  77. package/dist/{useViewerBuildingBlocks-Rqxm0pRS.d.ts → useViewerBuildingBlocks-YvCYsxa3.d.ts} +5 -1
  78. package/dist/useViewerBuildingBlocks-YvCYsxa3.d.ts.map +1 -0
  79. package/dist/viewer/index.js +22 -22
  80. package/dist/viewer/index.js.br +0 -0
  81. package/dist/viewer/index.js.gz +0 -0
  82. package/dist/viewer/index.mjs +6 -6
  83. package/dist/viewer/index.mjs.br +0 -0
  84. package/dist/viewer/index.mjs.gz +0 -0
  85. package/package.json +1 -1
  86. package/dist/AiChatPanel-EX2TBRJM.mjs.br +0 -0
  87. package/dist/AiChatPanel-EX2TBRJM.mjs.gz +0 -0
  88. package/dist/AiChatPanel-PJPSDMN4.js.br +0 -0
  89. package/dist/AiChatPanel-PJPSDMN4.js.gz +0 -0
  90. package/dist/Model3DScene-TTQFV7OS.mjs.br +0 -0
  91. package/dist/Model3DScene-TTQFV7OS.mjs.gz +0 -0
  92. package/dist/Model3DScene-UCBPTEAY.js.br +0 -0
  93. package/dist/Model3DScene-UCBPTEAY.js.gz +0 -0
  94. package/dist/SurfaceChart3DScene-5SZCRHZI.mjs.gz +0 -0
  95. package/dist/SurfaceChart3DScene-ADKCYYOQ.js.br +0 -0
  96. package/dist/SurfaceChart3DScene-ADKCYYOQ.js.gz +0 -0
  97. package/dist/chunk-4J7SPY64.js.br +0 -0
  98. package/dist/chunk-4J7SPY64.js.gz +0 -0
  99. package/dist/chunk-53NXKDMZ.mjs.br +0 -0
  100. package/dist/chunk-C2UWTH42.mjs.br +0 -0
  101. package/dist/chunk-E367QIKR.js.br +0 -0
  102. package/dist/chunk-E367QIKR.js.gz +0 -0
  103. package/dist/chunk-HK2UERUX.mjs.br +0 -0
  104. package/dist/chunk-HK2UERUX.mjs.gz +0 -0
  105. package/dist/chunk-HMQVOPQH.js.br +0 -0
  106. package/dist/chunk-L2CM5EUD.mjs.br +0 -0
  107. package/dist/chunk-L2CM5EUD.mjs.gz +0 -0
  108. package/dist/chunk-MM5RMRSP.js.br +0 -0
  109. package/dist/chunk-MM5RMRSP.js.gz +0 -0
  110. package/dist/chunk-N6IHR6PS.js.br +0 -0
  111. package/dist/chunk-RJEY2KZH.mjs.br +0 -0
  112. package/dist/chunk-RJEY2KZH.mjs.gz +0 -0
  113. package/dist/chunk-UZVRM6LD.mjs.br +0 -0
  114. package/dist/chunk-UZVRM6LD.mjs.gz +0 -0
  115. package/dist/chunk-VNP627O5.js.br +0 -0
  116. package/dist/chunk-VNP627O5.js.gz +0 -0
  117. package/dist/useViewerBuildingBlocks-Rqxm0pRS.d.ts.map +0 -1
Binary file
Binary file
@@ -87161,6 +87161,97 @@ function resolveDataPointMarker(series, pointIndex) {
87161
87161
  fill: point?.spPr?.fillColor ?? series.marker?.spPr?.fillColor
87162
87162
  };
87163
87163
  }
87164
+ function schemaLabel(keys, token2, translate) {
87165
+ if (token2 === void 0) {
87166
+ return "";
87167
+ }
87168
+ const key = keys[token2];
87169
+ return key === void 0 ? token2 : translate(key);
87170
+ }
87171
+ var THEME_COLOR_SLOT_LABEL_KEYS = {
87172
+ dk1: "pptx.themeColor.dark1",
87173
+ lt1: "pptx.themeColor.light1",
87174
+ dk2: "pptx.themeColor.dark2",
87175
+ lt2: "pptx.themeColor.light2",
87176
+ accent1: "pptx.themeColor.accent1",
87177
+ accent2: "pptx.themeColor.accent2",
87178
+ accent3: "pptx.themeColor.accent3",
87179
+ accent4: "pptx.themeColor.accent4",
87180
+ accent5: "pptx.themeColor.accent5",
87181
+ accent6: "pptx.themeColor.accent6",
87182
+ hlink: "pptx.themeColor.hyperlink",
87183
+ folHlink: "pptx.themeColor.followedHyperlink"
87184
+ };
87185
+ var SMARTART_COLOR_SCHEME_LABEL_KEYS = {
87186
+ colorful1: "pptx.smartart.schemeColorful1",
87187
+ colorful2: "pptx.smartart.schemeColorful2",
87188
+ colorful3: "pptx.smartart.schemeColorful3",
87189
+ monochromatic1: "pptx.smartart.schemeMonochromatic1",
87190
+ monochromatic2: "pptx.smartart.schemeMonochromatic2"
87191
+ };
87192
+ var SMARTART_STYLE_LABEL_KEYS = {
87193
+ flat: "pptx.smartart.styleFlat",
87194
+ moderate: "pptx.smartart.styleModerate",
87195
+ intense: "pptx.smartart.styleIntense"
87196
+ };
87197
+ var FILL_PATTERN_LABEL_KEYS = {
87198
+ pct5: "pptx.fillPatterns.pct5",
87199
+ pct10: "pptx.fillPatterns.pct10",
87200
+ pct20: "pptx.fillPatterns.pct20",
87201
+ pct25: "pptx.fillPatterns.pct25",
87202
+ pct30: "pptx.fillPatterns.pct30",
87203
+ pct40: "pptx.fillPatterns.pct40",
87204
+ pct50: "pptx.fillPatterns.pct50",
87205
+ pct60: "pptx.fillPatterns.pct60",
87206
+ pct70: "pptx.fillPatterns.pct70",
87207
+ pct75: "pptx.fillPatterns.pct75",
87208
+ pct80: "pptx.fillPatterns.pct80",
87209
+ pct90: "pptx.fillPatterns.pct90",
87210
+ horz: "pptx.fillPatterns.horizontal",
87211
+ vert: "pptx.fillPatterns.vertical",
87212
+ ltHorz: "pptx.fillPatterns.lightHorizontal",
87213
+ ltVert: "pptx.fillPatterns.lightVertical",
87214
+ dkHorz: "pptx.fillPatterns.darkHorizontal",
87215
+ dkVert: "pptx.fillPatterns.darkVertical",
87216
+ narHorz: "pptx.fillPatterns.narrowHorizontal",
87217
+ narVert: "pptx.fillPatterns.narrowVertical",
87218
+ wdHorz: "pptx.fillPatterns.wideHorizontal",
87219
+ wdVert: "pptx.fillPatterns.wideVertical",
87220
+ dashHorz: "pptx.fillPatterns.dashedHorizontal",
87221
+ dashVert: "pptx.fillPatterns.dashedVertical",
87222
+ cross: "pptx.fillPatterns.cross",
87223
+ dnDiag: "pptx.fillPatterns.downDiagonal",
87224
+ upDiag: "pptx.fillPatterns.upDiagonal",
87225
+ ltDnDiag: "pptx.fillPatterns.lightDownDiagonal",
87226
+ ltUpDiag: "pptx.fillPatterns.lightUpDiagonal",
87227
+ dkDnDiag: "pptx.fillPatterns.darkDownDiagonal",
87228
+ dkUpDiag: "pptx.fillPatterns.darkUpDiagonal",
87229
+ wdDnDiag: "pptx.fillPatterns.wideDownDiagonal",
87230
+ wdUpDiag: "pptx.fillPatterns.wideUpDiagonal",
87231
+ dashDnDiag: "pptx.fillPatterns.dashedDownDiagonal",
87232
+ dashUpDiag: "pptx.fillPatterns.dashedUpDiagonal",
87233
+ diagCross: "pptx.fillPatterns.diagonalCross",
87234
+ smCheck: "pptx.fillPatterns.smallCheck",
87235
+ lgCheck: "pptx.fillPatterns.largeCheck",
87236
+ smGrid: "pptx.fillPatterns.smallGrid",
87237
+ lgGrid: "pptx.fillPatterns.largeGrid",
87238
+ dotGrid: "pptx.fillPatterns.dotGrid",
87239
+ smConfetti: "pptx.fillPatterns.smallConfetti",
87240
+ lgConfetti: "pptx.fillPatterns.largeConfetti",
87241
+ horzBrick: "pptx.fillPatterns.horizontalBrick",
87242
+ diagBrick: "pptx.fillPatterns.diagonalBrick",
87243
+ solidDmnd: "pptx.fillPatterns.solidDiamond",
87244
+ openDmnd: "pptx.fillPatterns.openDiamond",
87245
+ dotDmnd: "pptx.fillPatterns.dottedDiamond",
87246
+ plaid: "pptx.fillPatterns.plaid",
87247
+ sphere: "pptx.fillPatterns.sphere",
87248
+ weave: "pptx.fillPatterns.weave",
87249
+ divot: "pptx.fillPatterns.divot",
87250
+ shingle: "pptx.fillPatterns.shingle",
87251
+ wave: "pptx.fillPatterns.wave",
87252
+ trellis: "pptx.fillPatterns.trellis",
87253
+ zigZag: "pptx.fillPatterns.zigZag"
87254
+ };
87164
87255
  function addChartSeries(data) {
87165
87256
  return chartDataAddSeries(data, {
87166
87257
  name: `Series ${data.series.length + 1}`,
@@ -99779,6 +99870,12 @@ function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
99779
99870
  }
99780
99871
  return out;
99781
99872
  }
99873
+ function differentText(a, b) {
99874
+ const textOf2 = (element) => (element.text ?? "").replace(/\s+/gu, " ").trim();
99875
+ const fromText = textOf2(a);
99876
+ const toText = textOf2(b);
99877
+ return fromText !== "" && toText !== "" && fromText !== toText;
99878
+ }
99782
99879
  var NV_PR_KEYS = [
99783
99880
  "p:nvSpPr",
99784
99881
  "p:nvPicPr",
@@ -99893,6 +99990,9 @@ function matchMorphElementsFull(fromSlide, toSlide) {
99893
99990
  if (fromEl.type !== toEl.type) {
99894
99991
  continue;
99895
99992
  }
99993
+ if (differentText(fromEl, toEl)) {
99994
+ continue;
99995
+ }
99896
99996
  const widthRatio = Math.max(fromEl.width, toEl.width, 1) / Math.max(Math.min(fromEl.width, toEl.width), 1);
99897
99997
  const heightRatio = Math.max(fromEl.height, toEl.height, 1) / Math.max(Math.min(fromEl.height, toEl.height), 1);
99898
99998
  if (widthRatio > PROXIMITY_SIZE_RATIO_LIMIT || heightRatio > PROXIMITY_SIZE_RATIO_LIMIT) {
@@ -100149,6 +100249,27 @@ function appearanceSignature(element, depth = 0) {
100149
100249
  function morphPairNeedsCrossfade(fromElement, toElement) {
100150
100250
  return appearanceSignature(fromElement) !== appearanceSignature(toElement);
100151
100251
  }
100252
+ var GEOMETRY_EPSILON = 0.5;
100253
+ function isInertMorphPair(fromElement, toElement) {
100254
+ return Math.abs(fromElement.x - toElement.x) <= GEOMETRY_EPSILON && Math.abs(fromElement.y - toElement.y) <= GEOMETRY_EPSILON && Math.abs(fromElement.width - toElement.width) <= GEOMETRY_EPSILON && Math.abs(fromElement.height - toElement.height) <= GEOMETRY_EPSILON && (fromElement.rotation ?? 0) === (toElement.rotation ?? 0) && Boolean(fromElement.flipHorizontal) === Boolean(toElement.flipHorizontal) && Boolean(fromElement.flipVertical) === Boolean(toElement.flipVertical) && (fromElement.opacity ?? 1) === (toElement.opacity ?? 1) && !morphPairNeedsCrossfade(fromElement, toElement);
100255
+ }
100256
+ function crossfadeIncomingMayFadeIn(element) {
100257
+ const image = element;
100258
+ if (image.imagePath || image.svgPath) {
100259
+ return false;
100260
+ }
100261
+ if (!hasShapeProperties(element)) {
100262
+ return true;
100263
+ }
100264
+ const style = element.shapeStyle;
100265
+ if (!style) {
100266
+ return true;
100267
+ }
100268
+ if (style.fillMode === "none" || (style.fillOpacity ?? 1) === 0) {
100269
+ return true;
100270
+ }
100271
+ return !(style.fillColor || style.fillGradient || style.fillGradientStops?.length || style.fillPatternPreset || style.fillImageUrl);
100272
+ }
100152
100273
  function generateMorphAnimations(pairs2, durationMs, _mode = "object") {
100153
100274
  const animations = [];
100154
100275
  for (let index = 0; index < pairs2.length; index++) {
@@ -100163,13 +100284,15 @@ function generateMorphAnimations(pairs2, durationMs, _mode = "object") {
100163
100284
  const toRot = toElement.rotation ?? 0;
100164
100285
  const fromRot = shortestRotationTarget(toRot, fromElement.rotation ?? 0);
100165
100286
  const flips = `${toElement.flipHorizontal ? " scaleX(-1)" : ""}${toElement.flipVertical ? " scaleY(-1)" : ""}`;
100287
+ const inert = isInertMorphPair(fromElement, toElement);
100288
+ const crossfadesIn = !inert && morphPairNeedsCrossfade(fromElement, toElement) && crossfadeIncomingMayFadeIn(toElement);
100166
100289
  const fromProps = [
100167
100290
  ` transform: translate(${dx}px, ${dy}px) scale(${sx}, ${sy}) rotate(${fromRot}deg)${flips};`,
100168
- ` opacity: ${fromOpacity};`
100291
+ ` opacity: ${inert ? 0 : crossfadesIn ? 0 : fromOpacity};`
100169
100292
  ];
100170
100293
  const toProps = [
100171
100294
  ` transform: translate(0, 0) scale(1, 1) rotate(${toRot}deg)${flips};`,
100172
- ` opacity: ${toOpacity};`
100295
+ ` opacity: ${inert ? 0 : toOpacity};`
100173
100296
  ];
100174
100297
  const colorInterp = buildColorInterpolationProps(fromElement, toElement);
100175
100298
  if (colorInterp) {
@@ -111025,6 +111148,91 @@ function applyRehearsalTimings(slides, timings) {
111025
111148
  function computeEntranceAnimationDelay(delayMs, animationIndex) {
111026
111149
  return Math.max(0, delayMs || 0) + animationIndex * 60;
111027
111150
  }
111151
+ function resolveCustomShowIndexes(slides, customShow) {
111152
+ const keys = customShow.slideRIds ?? customShow.slideIds;
111153
+ if (!keys || keys.length === 0) {
111154
+ return [];
111155
+ }
111156
+ const byKey = /* @__PURE__ */ new Map();
111157
+ slides.forEach((slide, index) => {
111158
+ if (slide.id !== void 0 && !byKey.has(slide.id)) {
111159
+ byKey.set(slide.id, index);
111160
+ }
111161
+ });
111162
+ slides.forEach((slide, index) => {
111163
+ if (slide.rId !== void 0) {
111164
+ byKey.set(slide.rId, index);
111165
+ }
111166
+ });
111167
+ const resolved = [];
111168
+ for (const key of keys) {
111169
+ const index = byKey.get(key);
111170
+ if (index !== void 0) {
111171
+ resolved.push(index);
111172
+ }
111173
+ }
111174
+ return resolved;
111175
+ }
111176
+ function resolveShowSlideIndexes(slides, activeCustomShow) {
111177
+ const all = [];
111178
+ for (let index = 0; index < slides.length; index++) {
111179
+ all.push(index);
111180
+ }
111181
+ const base = activeCustomShow ? resolveCustomShowIndexes(slides, activeCustomShow) : all;
111182
+ const effectiveBase = base.length > 0 ? base : all;
111183
+ const visible = effectiveBase.filter((index) => !slides[index]?.hidden);
111184
+ return visible.length > 0 ? visible : effectiveBase;
111185
+ }
111186
+ function showPosition(deckIndex, showIndexes) {
111187
+ return showIndexes.indexOf(deckIndex);
111188
+ }
111189
+ function nextShowSlideIndex(deckIndex, showIndexes, options) {
111190
+ if (showIndexes.length === 0) {
111191
+ return void 0;
111192
+ }
111193
+ const position2 = showPosition(deckIndex, showIndexes);
111194
+ if (position2 >= 0) {
111195
+ if (position2 + 1 < showIndexes.length) {
111196
+ return showIndexes[position2 + 1];
111197
+ }
111198
+ return options?.loop ? showIndexes[0] : void 0;
111199
+ }
111200
+ for (const candidate of showIndexes) {
111201
+ if (candidate > deckIndex) {
111202
+ return candidate;
111203
+ }
111204
+ }
111205
+ return options?.loop ? showIndexes[0] : void 0;
111206
+ }
111207
+ function previousShowSlideIndex(deckIndex, showIndexes) {
111208
+ if (showIndexes.length === 0) {
111209
+ return void 0;
111210
+ }
111211
+ const position2 = showPosition(deckIndex, showIndexes);
111212
+ if (position2 >= 0) {
111213
+ return position2 > 0 ? showIndexes[position2 - 1] : void 0;
111214
+ }
111215
+ let previous;
111216
+ for (const candidate of showIndexes) {
111217
+ if (candidate < deckIndex) {
111218
+ previous = candidate;
111219
+ }
111220
+ }
111221
+ return previous;
111222
+ }
111223
+ function hasShowSlideAfter(deckIndex, showIndexes) {
111224
+ return nextShowSlideIndex(deckIndex, showIndexes) !== void 0;
111225
+ }
111226
+ function nextPresentedSlide(slides, deckIndex) {
111227
+ const next = nextShowSlideIndex(deckIndex, resolveShowSlideIndexes(slides));
111228
+ return next === void 0 ? void 0 : slides[next];
111229
+ }
111230
+ function firstShowSlideIndex(showIndexes) {
111231
+ return showIndexes.length > 0 ? showIndexes[0] : void 0;
111232
+ }
111233
+ function lastShowSlideIndex(showIndexes) {
111234
+ return showIndexes.length > 0 ? showIndexes[showIndexes.length - 1] : void 0;
111235
+ }
111028
111236
  var VIEWER_PREFS_STORAGE_KEY = "pptx-viewer-prefs";
111029
111237
  function hasLocalStorage() {
111030
111238
  return typeof localStorage !== "undefined";
@@ -113662,6 +113870,7 @@ exports.EXPORT_ASSEMBLING_PERCENT = EXPORT_ASSEMBLING_PERCENT;
113662
113870
  exports.EXPORT_DONE_PERCENT = EXPORT_DONE_PERCENT;
113663
113871
  exports.EncryptedFileError = EncryptedFileError;
113664
113872
  exports.FILL_MODE_OPTIONS = FILL_MODE_OPTIONS;
113873
+ exports.FILL_PATTERN_LABEL_KEYS = FILL_PATTERN_LABEL_KEYS;
113665
113874
  exports.GRADIENT_TYPE_OPTIONS = GRADIENT_TYPE_OPTIONS;
113666
113875
  exports.HANDOUT_OPTIONS = HANDOUT_OPTIONS;
113667
113876
  exports.INK_REPLAY_KEYFRAMES = INK_REPLAY_KEYFRAMES;
@@ -113706,6 +113915,8 @@ exports.SHORTCUT_REFERENCE_ITEMS = SHORTCUT_REFERENCE_ITEMS;
113706
113915
  exports.SLIDE_TRANSITION_KEYFRAMES = SLIDE_TRANSITION_KEYFRAMES;
113707
113916
  exports.SLIDE_TRANSITION_OPTIONS = SLIDE_TRANSITION_OPTIONS;
113708
113917
  exports.SLIDE_VIRTUALIZATION_THRESHOLD = SLIDE_VIRTUALIZATION_THRESHOLD;
113918
+ exports.SMARTART_COLOR_SCHEME_LABEL_KEYS = SMARTART_COLOR_SCHEME_LABEL_KEYS;
113919
+ exports.SMARTART_STYLE_LABEL_KEYS = SMARTART_STYLE_LABEL_KEYS;
113709
113920
  exports.STATUS_BAR_CLASSES = STATUS_BAR_CLASSES;
113710
113921
  exports.SWITCHABLE_LAYOUT_TYPES = SWITCHABLE_LAYOUT_TYPES;
113711
113922
  exports.SvgExporter = SvgExporter;
@@ -113717,6 +113928,7 @@ exports.TEXT_WARP_PRESETS = TEXT_WARP_PRESETS;
113717
113928
  exports.THEME_CATALOG = THEME_CATALOG;
113718
113929
  exports.THEME_COLOR_LABELS = THEME_COLOR_LABELS;
113719
113930
  exports.THEME_COLOR_SCHEME_KEYS = THEME_COLOR_SCHEME_KEYS;
113931
+ exports.THEME_COLOR_SLOT_LABEL_KEYS = THEME_COLOR_SLOT_LABEL_KEYS;
113720
113932
  exports.THEME_PRESETS = THEME_PRESETS;
113721
113933
  exports.TITLE_BAR_CLASSES = TITLE_BAR_CLASSES;
113722
113934
  exports.TITLE_BAR_DEFAULT_FILE_KEY = TITLE_BAR_DEFAULT_FILE_KEY;
@@ -113913,6 +114125,7 @@ exports.filterRenderedElements = filterRenderedElements;
113913
114125
  exports.findChartPartTarget = findChartPartTarget;
113914
114126
  exports.findMediaElementByElementId = findMediaElementByElementId;
113915
114127
  exports.findSmartArtNodeText = findSmartArtNodeText;
114128
+ exports.firstShowSlideIndex = firstShowSlideIndex;
113916
114129
  exports.flattenTagCollections = flattenTagCollections;
113917
114130
  exports.formatAxisValue = formatAxisValue;
113918
114131
  exports.formatAxisValueWithUnits = formatAxisValueWithUnits;
@@ -114001,6 +114214,7 @@ exports.hasCopyableFormat = hasCopyableFormat;
114001
114214
  exports.hasDistinctScriptFonts = hasDistinctScriptFonts;
114002
114215
  exports.hasPressureVariation = hasPressureVariation;
114003
114216
  exports.hasShapeProperties = hasShapeProperties;
114217
+ exports.hasShowSlideAfter = hasShowSlideAfter;
114004
114218
  exports.hasTextProperties = hasTextProperties;
114005
114219
  exports.hexToRgbChannels = hexToRgbChannels2;
114006
114220
  exports.insertTableColumn = insertTableColumn;
@@ -114029,6 +114243,7 @@ exports.isPresentationSessionMessage = isPresentationSessionMessage;
114029
114243
  exports.isTemplateElement = isTemplateElement;
114030
114244
  exports.isTemplateElementId = isTemplateElementId2;
114031
114245
  exports.isUrlSafe = isUrlSafe;
114246
+ exports.lastShowSlideIndex = lastShowSlideIndex;
114032
114247
  exports.listAutosaveSnapshots = listAutosaveSnapshots;
114033
114248
  exports.listBackstageRecentFiles = listBackstageRecentFiles;
114034
114249
  exports.loadAudienceContent = loadAudienceContent;
@@ -114061,6 +114276,8 @@ exports.moveSectionDown = moveSectionDown;
114061
114276
  exports.moveSectionUp = moveSectionUp;
114062
114277
  exports.moveSlidesToSection = moveSlidesToSection;
114063
114278
  exports.newTableElement = newTableElement;
114279
+ exports.nextPresentedSlide = nextPresentedSlide;
114280
+ exports.nextShowSlideIndex = nextShowSlideIndex;
114064
114281
  exports.normalizeColorsForCapture = normalizeColorsForCapture;
114065
114282
  exports.normalizeHexColor = normalizeHexColor;
114066
114283
  exports.normalizeStrokeDashType = normalizeStrokeDashType;
@@ -114086,6 +114303,7 @@ exports.presentationInkPath = presentationInkPath;
114086
114303
  exports.presenterElapsed = presenterElapsed;
114087
114304
  exports.presenterPaneAdvancesOnClick = presenterPaneAdvancesOnClick;
114088
114305
  exports.pressuresToWidths = pressuresToWidths;
114306
+ exports.previousShowSlideIndex = previousShowSlideIndex;
114089
114307
  exports.printPropertiesFrameSlides = printPropertiesFrameSlides;
114090
114308
  exports.printPropertiesSlidesPerPage = printPropertiesSlidesPerPage;
114091
114309
  exports.promoteSmartArtNode = promoteSmartArtNode;
@@ -114136,6 +114354,7 @@ exports.resolveParagraphStrutFontSize = resolveParagraphStrutFontSize;
114136
114354
  exports.resolvePictureBullet = resolvePictureBullet;
114137
114355
  exports.resolveProfileInitial = resolveProfileInitial;
114138
114356
  exports.resolveRegionCode = resolveRegionCode;
114357
+ exports.resolveShowSlideIndexes = resolveShowSlideIndexes;
114139
114358
  exports.resolveThemeCatalogEntry = resolveThemeCatalogEntry;
114140
114359
  exports.resolveTitleBarStatusKey = resolveTitleBarStatusKey;
114141
114360
  exports.resolveTransitionDurationMs = resolveTransitionDurationMs;
@@ -114154,6 +114373,7 @@ exports.sanitizeMathMl = sanitizeMathMl;
114154
114373
  exports.saveAutosaveSnapshot = saveAutosaveSnapshot;
114155
114374
  exports.saveViewerProfile = saveViewerProfile;
114156
114375
  exports.scanAvailableFontFamilies = scanAvailableFontFamilies;
114376
+ exports.schemaLabel = schemaLabel;
114157
114377
  exports.segmentByScript = segmentByScript;
114158
114378
  exports.segmentFrameCount = segmentFrameCount;
114159
114379
  exports.sendBackward = sendBackward;
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, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-RJEY2KZH.mjs';
2
- import { translationsEn } from './chunk-53NXKDMZ.mjs';
3
- import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, buildMorphTransitionPlan, morphOptionToMode, 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, 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, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, 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-C2UWTH42.mjs';
1
+ import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-DD54KUDG.mjs';
2
+ import { translationsEn } from './chunk-RHR7GTDX.mjs';
3
+ import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, 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, buildMorphTransitionPlan, morphOptionToMode, 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, 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, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, 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-FV7HEYCX.mjs';
4
4
  import { useRef, useState, useEffect, useCallback, useMemo, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import JSZip from 'jszip';
6
6
  import { useTranslation } from 'react-i18next';
@@ -1580,6 +1580,7 @@ function usePresentationKeyboard(input) {
1580
1580
  movePresentationSlide,
1581
1581
  navigateToSlide,
1582
1582
  slideCount,
1583
+ showSlideIndexes,
1583
1584
  onSetMode,
1584
1585
  onSetPointerTool,
1585
1586
  onEraseAnnotations,
@@ -1619,12 +1620,16 @@ function usePresentationKeyboard(input) {
1619
1620
  case "previous":
1620
1621
  movePresentationSlide(-1);
1621
1622
  return;
1622
- case "first":
1623
- navigateToSlide(0);
1623
+ case "first": {
1624
+ const first = firstShowSlideIndex(showSlideIndexes);
1625
+ navigateToSlide(first ?? 0);
1624
1626
  return;
1625
- case "last":
1626
- navigateToSlide(Math.max(0, slideCount - 1));
1627
+ }
1628
+ case "last": {
1629
+ const last = lastShowSlideIndex(showSlideIndexes);
1630
+ navigateToSlide(last ?? Math.max(0, slideCount - 1));
1627
1631
  return;
1632
+ }
1628
1633
  case "goto": {
1629
1634
  const index = mapped.slideNumber - 1;
1630
1635
  if (index >= 0 && index < slideCount) {
@@ -1664,6 +1669,7 @@ function usePresentationKeyboard(input) {
1664
1669
  movePresentationSlide,
1665
1670
  navigateToSlide,
1666
1671
  slideCount,
1672
+ showSlideIndexes,
1667
1673
  onSetMode,
1668
1674
  onSetPointerTool,
1669
1675
  onEraseAnnotations,
@@ -1900,10 +1906,8 @@ function useSlideNavigation(input) {
1900
1906
  if (availableSlideIndexes.length === 0) {
1901
1907
  return;
1902
1908
  }
1903
- const currentVisiblePosition = availableSlideIndexes.indexOf(presentationSlideIndex);
1904
- const normalizedCurrentPosition = currentVisiblePosition >= 0 ? currentVisiblePosition : 0;
1905
- const nextPosition = normalizedCurrentPosition + direction;
1906
- if (rehearsing && direction === 1 && nextPosition >= availableSlideIndexes.length) {
1909
+ const pastLastSlide = direction === 1 && !hasShowSlideAfter(presentationSlideIndex, availableSlideIndexes);
1910
+ if (rehearsing && pastLastSlide) {
1907
1911
  recordCurrentSlideTime(presentationSlideIndex);
1908
1912
  try {
1909
1913
  if (document.fullscreenElement) {
@@ -1916,17 +1920,13 @@ function useSlideNavigation(input) {
1916
1920
  setShowRehearsalSummary(true);
1917
1921
  return;
1918
1922
  }
1919
- if (!loopContinuously && !rehearsing && direction === 1 && nextPosition >= availableSlideIndexes.length && onAdvancePastLastSlide) {
1923
+ if (!loopContinuously && !rehearsing && pastLastSlide && onAdvancePastLastSlide) {
1920
1924
  onAdvancePastLastSlide();
1921
1925
  return;
1922
1926
  }
1923
- let resolvedPosition;
1924
- if (loopContinuously && !rehearsing && direction === 1 && nextPosition >= availableSlideIndexes.length) {
1925
- resolvedPosition = 0;
1926
- } else {
1927
- resolvedPosition = Math.min(availableSlideIndexes.length - 1, Math.max(0, nextPosition));
1928
- }
1929
- const nextSlideIndex = availableSlideIndexes[resolvedPosition];
1927
+ const nextSlideIndex = direction === 1 ? nextShowSlideIndex(presentationSlideIndex, availableSlideIndexes, {
1928
+ loop: Boolean(loopContinuously) && !rehearsing
1929
+ }) : previousShowSlideIndex(presentationSlideIndex, availableSlideIndexes);
1930
1930
  if (nextSlideIndex === void 0 || nextSlideIndex === presentationSlideIndex) {
1931
1931
  return;
1932
1932
  }
@@ -2325,6 +2325,7 @@ function usePresentationMode(input) {
2325
2325
  movePresentationSlide,
2326
2326
  navigateToSlide,
2327
2327
  slideCount: slides.length,
2328
+ showSlideIndexes: visibleSlideIndexes,
2328
2329
  onSetMode,
2329
2330
  onSetPointerTool,
2330
2331
  onEraseAnnotations,
@@ -8221,15 +8222,8 @@ function computeGridSpacingPx(presentationGridSpacing) {
8221
8222
  return GRID_SIZE;
8222
8223
  }
8223
8224
  function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows) {
8224
- if (activeCustomShowId) {
8225
- const show = customShows.find((s) => s.id === activeCustomShowId);
8226
- if (show) {
8227
- const rIdToIndex = /* @__PURE__ */ new Map();
8228
- slides.forEach((s, i) => rIdToIndex.set(s.rId, i));
8229
- return show.slideRIds.map((rId) => rIdToIndex.get(rId)).filter((i) => i !== void 0);
8230
- }
8231
- }
8232
- return slides.map((_, i) => i).filter((i) => !slides[i]?.hidden);
8225
+ const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
8226
+ return resolveShowSlideIndexes(slides, activeShow);
8233
8227
  }
8234
8228
  function computeSlideSectionGroups(slides, sections) {
8235
8229
  return groupSlidesBySection(sections, slides).map((group) => ({
@@ -10517,6 +10511,7 @@ function buildToolbarProps(input) {
10517
10511
  state: s,
10518
10512
  selectedElement,
10519
10513
  activeSlide,
10514
+ activeSlideIndex,
10520
10515
  zoom,
10521
10516
  history,
10522
10517
  findReplace,
@@ -10713,6 +10708,10 @@ function buildToolbarProps(input) {
10713
10708
  eyedropperActive: s.eyedropperActive,
10714
10709
  onToggleEyedropper: () => s.setEyedropperActive((p) => !p),
10715
10710
  onOpenSetUpSlideShow: () => dialogs.setIsSetUpSlideShowOpen(true),
10711
+ // PowerPoint's Hide Slide: skip the active slide during the show while
10712
+ // leaving it in the deck, the rail and the sorter.
10713
+ onToggleHideSlide: () => slideOps.handleToggleHideSlides([activeSlideIndex]),
10714
+ activeSlideHidden: Boolean(activeSlide?.hidden),
10716
10715
  onOpenBroadcastDialog: () => dialogs.setIsBroadcastDialogOpen(true),
10717
10716
  onToggleSubtitles: dialogs.handleToggleSubtitles,
10718
10717
  showSubtitles: Boolean(s.presentationProperties.showSubtitles),
@@ -10782,10 +10781,12 @@ function useViewerBuildingBlocksCore(input) {
10782
10781
  activeMaster: state.activeMaster,
10783
10782
  presentationGridSpacing: state.presentationProperties.gridSpacing
10784
10783
  });
10784
+ const { options: viewerOptions } = useViewerOptions();
10785
10785
  const { presentation, annotations, actionSoundHandlerRef } = usePresentationSetup({
10786
10786
  mode,
10787
10787
  slides,
10788
10788
  visibleSlideIndexes,
10789
+ endWithBlackSlide: viewerOptions.advanced.slideShowEndWithBlackSlide,
10789
10790
  activeSlideIndex,
10790
10791
  containerRef,
10791
10792
  content,
@@ -11041,6 +11042,7 @@ function useViewerBuildingBlocks(input) {
11041
11042
  printHandlers,
11042
11043
  propertyHandlers,
11043
11044
  dialogs,
11045
+ activeSlideIndex,
11044
11046
  slideOps: editorOps.slideOps,
11045
11047
  ops: editorOps.ops,
11046
11048
  onSetMode: handleSetMode,
Binary file
Binary file