pptx-react-viewer 2.13.0 → 2.13.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 (102) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{AiChatPanel-DEI3EQFM.js → AiChatPanel-FXPGFU6H.js} +35 -27
  3. package/dist/AiChatPanel-FXPGFU6H.js.br +0 -0
  4. package/dist/AiChatPanel-FXPGFU6H.js.gz +0 -0
  5. package/dist/{AiChatPanel-4YS6DEIT.mjs → AiChatPanel-WMGS5TNX.mjs} +15 -7
  6. package/dist/AiChatPanel-WMGS5TNX.mjs.br +0 -0
  7. package/dist/AiChatPanel-WMGS5TNX.mjs.gz +0 -0
  8. package/dist/{Model3DScene-JSNQCKCJ.mjs → Model3DScene-E2XRQAMR.mjs} +1 -1
  9. package/dist/Model3DScene-E2XRQAMR.mjs.br +0 -0
  10. package/dist/Model3DScene-E2XRQAMR.mjs.gz +0 -0
  11. package/dist/{Model3DScene-X4W7GZVY.js → Model3DScene-K5FPZTRG.js} +2 -2
  12. package/dist/Model3DScene-K5FPZTRG.js.br +0 -0
  13. package/dist/Model3DScene-K5FPZTRG.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-3MSU74YH.mjs → SurfaceChart3DScene-2W2IFPLE.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-3MSU74YH.mjs.br → SurfaceChart3DScene-2W2IFPLE.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-2W2IFPLE.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-IZLUWT27.js → SurfaceChart3DScene-JDCFTXYT.js} +2 -2
  18. package/dist/SurfaceChart3DScene-JDCFTXYT.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-JDCFTXYT.js.gz +0 -0
  20. package/dist/{chunk-YA7VFYTW.mjs → chunk-3OV4FR6S.mjs} +16 -7
  21. package/dist/chunk-3OV4FR6S.mjs.br +0 -0
  22. package/dist/chunk-3OV4FR6S.mjs.gz +0 -0
  23. package/dist/{chunk-IDW5UPXW.js → chunk-66ZHD7Y4.js} +259 -295
  24. package/dist/chunk-66ZHD7Y4.js.br +0 -0
  25. package/dist/chunk-66ZHD7Y4.js.gz +0 -0
  26. package/dist/{chunk-WEU5EMKK.mjs → chunk-CQ2CKMG4.mjs} +1 -1
  27. package/dist/chunk-CQ2CKMG4.mjs.br +0 -0
  28. package/dist/{chunk-WEU5EMKK.mjs.gz → chunk-CQ2CKMG4.mjs.gz} +0 -0
  29. package/dist/{chunk-EFSQW6S5.js → chunk-DD2YRS6Z.js} +557 -303
  30. package/dist/chunk-DD2YRS6Z.js.br +0 -0
  31. package/dist/chunk-DD2YRS6Z.js.gz +0 -0
  32. package/dist/{chunk-HRLF4REI.mjs → chunk-GJEH27GD.mjs} +21 -56
  33. package/dist/chunk-GJEH27GD.mjs.br +0 -0
  34. package/dist/chunk-GJEH27GD.mjs.gz +0 -0
  35. package/dist/{chunk-6KRNQ2KF.mjs → chunk-H5H57XMH.mjs} +16 -2
  36. package/dist/chunk-H5H57XMH.mjs.br +0 -0
  37. package/dist/chunk-H5H57XMH.mjs.gz +0 -0
  38. package/dist/{chunk-4TD7EINA.mjs → chunk-OWGPRVRK.mjs} +553 -304
  39. package/dist/chunk-OWGPRVRK.mjs.br +0 -0
  40. package/dist/chunk-OWGPRVRK.mjs.gz +0 -0
  41. package/dist/{chunk-G2LZT5SV.js → chunk-PTFCMG3A.js} +3 -3
  42. package/dist/chunk-PTFCMG3A.js.br +0 -0
  43. package/dist/chunk-PTFCMG3A.js.gz +0 -0
  44. package/dist/{chunk-RWIQHVZQ.js → chunk-QFNJCEMS.js} +340 -326
  45. package/dist/chunk-QFNJCEMS.js.br +0 -0
  46. package/dist/chunk-QFNJCEMS.js.gz +0 -0
  47. package/dist/{chunk-SHZ3GWOD.js → chunk-ZMIFFURL.js} +1046 -1037
  48. package/dist/chunk-ZMIFFURL.js.br +0 -0
  49. package/dist/chunk-ZMIFFURL.js.gz +0 -0
  50. package/dist/index.d.ts +14 -0
  51. package/dist/index.js +34 -34
  52. package/dist/index.js.br +0 -0
  53. package/dist/index.js.gz +0 -0
  54. package/dist/index.mjs +5 -5
  55. package/dist/index.mjs.br +0 -0
  56. package/dist/index.mjs.gz +0 -0
  57. package/dist/internals.d.ts +14 -0
  58. package/dist/internals.d.ts.map +1 -1
  59. package/dist/internals.js +78 -78
  60. package/dist/internals.js.br +0 -0
  61. package/dist/internals.js.gz +0 -0
  62. package/dist/internals.mjs +3 -3
  63. package/dist/internals.mjs.br +0 -0
  64. package/dist/internals.mjs.gz +0 -0
  65. package/dist/viewer/index.d.ts +14 -0
  66. package/dist/viewer/index.js +21 -21
  67. package/dist/viewer/index.js.br +0 -0
  68. package/dist/viewer/index.js.gz +0 -0
  69. package/dist/viewer/index.mjs +5 -5
  70. package/dist/viewer/index.mjs.br +0 -0
  71. package/dist/viewer/index.mjs.gz +0 -0
  72. package/package.json +1 -1
  73. package/dist/AiChatPanel-4YS6DEIT.mjs.br +0 -0
  74. package/dist/AiChatPanel-4YS6DEIT.mjs.gz +0 -0
  75. package/dist/AiChatPanel-DEI3EQFM.js.br +0 -0
  76. package/dist/AiChatPanel-DEI3EQFM.js.gz +0 -0
  77. package/dist/Model3DScene-JSNQCKCJ.mjs.br +0 -0
  78. package/dist/Model3DScene-JSNQCKCJ.mjs.gz +0 -0
  79. package/dist/Model3DScene-X4W7GZVY.js.br +0 -0
  80. package/dist/Model3DScene-X4W7GZVY.js.gz +0 -0
  81. package/dist/SurfaceChart3DScene-3MSU74YH.mjs.gz +0 -0
  82. package/dist/SurfaceChart3DScene-IZLUWT27.js.br +0 -0
  83. package/dist/SurfaceChart3DScene-IZLUWT27.js.gz +0 -0
  84. package/dist/chunk-4TD7EINA.mjs.br +0 -0
  85. package/dist/chunk-4TD7EINA.mjs.gz +0 -0
  86. package/dist/chunk-6KRNQ2KF.mjs.br +0 -0
  87. package/dist/chunk-6KRNQ2KF.mjs.gz +0 -0
  88. package/dist/chunk-EFSQW6S5.js.br +0 -0
  89. package/dist/chunk-EFSQW6S5.js.gz +0 -0
  90. package/dist/chunk-G2LZT5SV.js.br +0 -0
  91. package/dist/chunk-G2LZT5SV.js.gz +0 -0
  92. package/dist/chunk-HRLF4REI.mjs.br +0 -0
  93. package/dist/chunk-HRLF4REI.mjs.gz +0 -0
  94. package/dist/chunk-IDW5UPXW.js.br +0 -0
  95. package/dist/chunk-IDW5UPXW.js.gz +0 -0
  96. package/dist/chunk-RWIQHVZQ.js.br +0 -0
  97. package/dist/chunk-RWIQHVZQ.js.gz +0 -0
  98. package/dist/chunk-SHZ3GWOD.js.br +0 -0
  99. package/dist/chunk-SHZ3GWOD.js.gz +0 -0
  100. package/dist/chunk-WEU5EMKK.mjs.br +0 -0
  101. package/dist/chunk-YA7VFYTW.mjs.br +0 -0
  102. package/dist/chunk-YA7VFYTW.mjs.gz +0 -0
@@ -15896,30 +15896,133 @@ var PptxCommentXmlFactoryProvider = class {
15896
15896
  return new PptxCommentAuthorsXmlFactory();
15897
15897
  }
15898
15898
  };
15899
+ var P14_TRANSITION_TYPES = /* @__PURE__ */ new Set([
15900
+ "conveyor",
15901
+ "doors",
15902
+ "ferris",
15903
+ "flash",
15904
+ "flythrough",
15905
+ "gallery",
15906
+ "glitter",
15907
+ "honeycomb",
15908
+ "pan",
15909
+ "prism",
15910
+ "reveal",
15911
+ "ripple",
15912
+ "shred",
15913
+ "switch",
15914
+ "vortex",
15915
+ "warp",
15916
+ "wheelReverse",
15917
+ "window",
15918
+ "cube",
15919
+ "flip",
15920
+ "rotate",
15921
+ "orbit"
15922
+ ]);
15923
+ function readP14Details(localName22, value) {
15924
+ const type = localName22;
15925
+ let direction;
15926
+ let orient;
15927
+ let pattern;
15928
+ if (value && typeof value === "object" && !Array.isArray(value)) {
15929
+ const detail = value;
15930
+ const rawDir = String(detail["@_dir"] || "").trim();
15931
+ if (rawDir.length > 0) {
15932
+ direction = rawDir;
15933
+ }
15934
+ const rawOrient = String(detail["@_orient"] || "").trim();
15935
+ if (rawOrient === "horz" || rawOrient === "vert") {
15936
+ orient = rawOrient;
15937
+ }
15938
+ const rawPattern = String(detail["@_pattern"] || "").trim();
15939
+ if (rawPattern.length > 0) {
15940
+ pattern = rawPattern;
15941
+ }
15942
+ }
15943
+ return { type, direction, orient, pattern };
15944
+ }
15945
+ function parseP14DirectChild(transitionNode, getXmlLocalName) {
15946
+ for (const [key, value] of Object.entries(transitionNode)) {
15947
+ if (key.startsWith("@_")) {
15948
+ continue;
15949
+ }
15950
+ const localName22 = getXmlLocalName(key);
15951
+ if (P14_TRANSITION_TYPES.has(localName22)) {
15952
+ return readP14Details(localName22, value);
15953
+ }
15954
+ }
15955
+ return void 0;
15956
+ }
15957
+ function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
15958
+ const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
15959
+ for (const ext of extEntries) {
15960
+ if (!ext) {
15961
+ continue;
15962
+ }
15963
+ for (const [key, value] of Object.entries(ext)) {
15964
+ if (key.startsWith("@_")) {
15965
+ continue;
15966
+ }
15967
+ const localName22 = getXmlLocalName(key);
15968
+ if (!P14_TRANSITION_TYPES.has(localName22)) {
15969
+ continue;
15970
+ }
15971
+ return readP14Details(localName22, value);
15972
+ }
15973
+ }
15974
+ return void 0;
15975
+ }
15976
+ function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, xmlLookupService, getXmlLocalName) {
15977
+ const p14Child = {};
15978
+ const dir = String(direction || "").trim();
15979
+ if (dir.length > 0) {
15980
+ p14Child["@_dir"] = dir;
15981
+ }
15982
+ if (orient) {
15983
+ p14Child["@_orient"] = orient;
15984
+ }
15985
+ if (pattern) {
15986
+ p14Child["@_pattern"] = pattern;
15987
+ }
15988
+ const transitionExt = {
15989
+ "@_uri": "{CE6CE671-F284-4235-B8B7-4F3F06D5A82C}",
15990
+ [`p14:${transitionType}`]: p14Child
15991
+ };
15992
+ if (rawExtLst) {
15993
+ const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
15994
+ const otherExts = existing.filter((ext) => {
15995
+ if (!ext) {
15996
+ return false;
15997
+ }
15998
+ for (const key of Object.keys(ext)) {
15999
+ if (key.startsWith("@_")) {
16000
+ continue;
16001
+ }
16002
+ const localName22 = getXmlLocalName(key);
16003
+ if (P14_TRANSITION_TYPES.has(localName22)) {
16004
+ return false;
16005
+ }
16006
+ }
16007
+ return true;
16008
+ });
16009
+ const allExts = [transitionExt, ...otherExts];
16010
+ return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
16011
+ }
16012
+ return { "p:ext": transitionExt };
16013
+ }
15899
16014
  var MC_NAMESPACE_CAPABILITIES = {
16015
+ // Office 2010 (p14) transitions are shared with the parser's canonical
16016
+ // list (`P14_TRANSITION_TYPES`) so the two can never drift apart again:
16017
+ // this set used to be a hand-copied subset that was missing `reveal` and
16018
+ // `ripple`, so every `mc:Choice Requires="p14"` carrying one of them
16019
+ // reported `UNSUPPORTED_ALTERNATE_CONTENT_CHOICE` and silently used the
16020
+ // fallback fade even though the parser handles both. The extra names are
16021
+ // the non-transition p14 features we also parse.
15900
16022
  p14: /* @__PURE__ */ new Set([
16023
+ ...P14_TRANSITION_TYPES,
15901
16024
  "transition",
15902
- "conveyor",
15903
- "pan",
15904
- "glitter",
15905
- "prism",
15906
- "vortex",
15907
- "switch",
15908
- "flip",
15909
- "gallery",
15910
- "honeycomb",
15911
- "flash",
15912
- "shred",
15913
- "warp",
15914
- "flythrough",
15915
- "doors",
15916
- "window",
15917
- "ferris",
15918
16025
  "newsflash",
15919
- "wheelReverse",
15920
- "rotate",
15921
- "orbit",
15922
- "cube",
15923
16026
  "media",
15924
16027
  "trim",
15925
16028
  "fade",
@@ -15928,6 +16031,17 @@ var MC_NAMESPACE_CAPABILITIES = {
15928
16031
  "hiddenFill",
15929
16032
  "hiddenLine"
15930
16033
  ]),
16034
+ // PowerPoint 2013+ writes its preset transitions (Origami, Fracture, Peel
16035
+ // Off, Page Curl, ...) as `<p15:prstTrans prst="...">`, either inside an
16036
+ // `mc:Choice Requires="p15"` or in a `p:transition/p:extLst` extension.
16037
+ // Both forms are parsed (see `PptxSlideTransitionService`), so the choice
16038
+ // IS supported: without this entry every p15 slide reported
16039
+ // `UNSUPPORTED_ALTERNATE_CONTENT_CHOICE`, which reads as "the transition
16040
+ // was dropped and the fallback fade was used" when in fact the preset
16041
+ // plays. `prstTrans` alone is listed on purpose: any OTHER `p15:*`
16042
+ // element still makes the choice unsupported and falls back, which is
16043
+ // the honest answer.
16044
+ p15: /* @__PURE__ */ new Set(["prstTrans"]),
15931
16045
  // PowerPoint 2016+ writes the Morph transition as `<p159:morph @option>`,
15932
16046
  // either inside an `mc:Choice Requires="p159"` or in a `p:transition/p:extLst`
15933
16047
  // extension. Both forms are parsed (see `PptxSlideTransitionService`), so the
@@ -19904,6 +20018,74 @@ function extractChildBehaviourDurationMs(cTn, toArray2) {
19904
20018
  }
19905
20019
  return longest;
19906
20020
  }
20021
+ var defaultLookup = new PptxXmlLookupService();
20022
+ function resolveSlideTimingNode(slideRoot) {
20023
+ const direct = slideRoot?.["p:timing"];
20024
+ if (direct && typeof direct === "object" && !Array.isArray(direct)) {
20025
+ return direct;
20026
+ }
20027
+ return findEnvelopeChildByLocalName(slideRoot, "timing", defaultLookup);
20028
+ }
20029
+ function findTransitionInAlternateContent(slideRoot, lookup) {
20030
+ return findEnvelopeChildByLocalName(slideRoot, "transition", lookup);
20031
+ }
20032
+ function findEnvelopeChildByLocalName(slideRoot, localName22, lookup) {
20033
+ for (const envelope of lookup.getChildrenArrayByLocalName(slideRoot, "AlternateContent")) {
20034
+ let unsupportedChoiceNode;
20035
+ for (const choice of lookup.getChildrenArrayByLocalName(envelope, "Choice")) {
20036
+ const node = lookup.getChildByLocalName(choice, localName22);
20037
+ if (!node) {
20038
+ continue;
20039
+ }
20040
+ if (isAlternateContentChoiceSupported(choice)) {
20041
+ return node;
20042
+ }
20043
+ unsupportedChoiceNode ??= node;
20044
+ }
20045
+ const fallbackNode = lookup.getChildByLocalName(
20046
+ lookup.getChildByLocalName(envelope, "Fallback"),
20047
+ localName22
20048
+ );
20049
+ const found = fallbackNode ?? unsupportedChoiceNode;
20050
+ if (found) {
20051
+ return found;
20052
+ }
20053
+ }
20054
+ return void 0;
20055
+ }
20056
+ function preservedP14ChildKey(node, transitionType, getXmlLocalName) {
20057
+ for (const key of Object.keys(node)) {
20058
+ if (!key.startsWith("@_") && getXmlLocalName(key) === transitionType) {
20059
+ return key;
20060
+ }
20061
+ }
20062
+ return void 0;
20063
+ }
20064
+ function preservedP15ChildKey(node, transitionType, getXmlLocalName) {
20065
+ for (const [key, value] of Object.entries(node)) {
20066
+ if (key.startsWith("@_") || getXmlLocalName(key) !== "prstTrans") {
20067
+ continue;
20068
+ }
20069
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
20070
+ continue;
20071
+ }
20072
+ if (String(value["@_prst"] || "").trim() === transitionType) {
20073
+ return key;
20074
+ }
20075
+ }
20076
+ return void 0;
20077
+ }
20078
+ function pruneDirectExtensionChildren(node, getXmlLocalName, keepKey) {
20079
+ for (const key of Object.keys(node)) {
20080
+ if (key === keepKey || key.startsWith("@_")) {
20081
+ continue;
20082
+ }
20083
+ const localName22 = getXmlLocalName(key);
20084
+ if (P14_TRANSITION_TYPES.has(localName22) || localName22 === "prstTrans") {
20085
+ delete node[key];
20086
+ }
20087
+ }
20088
+ }
19907
20089
  function isInteractiveSequence(seq) {
19908
20090
  const cTn = seq["p:cTn"];
19909
20091
  if (!cTn || String(cTn["@_nodeType"] || "") === "mainSeq") {
@@ -19925,7 +20107,7 @@ var PptxNativeAnimationService = class {
19925
20107
  */
19926
20108
  parseNativeAnimations(slideXml2) {
19927
20109
  try {
19928
- const timing = slideXml2?.["p:sld"]?.["p:timing"];
20110
+ const timing = resolveSlideTimingNode(slideXml2?.["p:sld"]);
19929
20111
  if (!timing || typeof timing !== "object") {
19930
20112
  return void 0;
19931
20113
  }
@@ -20303,106 +20485,6 @@ var PptxNativeAnimationService = class {
20303
20485
  }
20304
20486
  }
20305
20487
  };
20306
- var P14_TRANSITION_TYPES = /* @__PURE__ */ new Set([
20307
- "conveyor",
20308
- "doors",
20309
- "ferris",
20310
- "flash",
20311
- "flythrough",
20312
- "gallery",
20313
- "glitter",
20314
- "honeycomb",
20315
- "pan",
20316
- "prism",
20317
- "reveal",
20318
- "ripple",
20319
- "shred",
20320
- "switch",
20321
- "vortex",
20322
- "warp",
20323
- "wheelReverse",
20324
- "window",
20325
- "cube",
20326
- "flip",
20327
- "rotate",
20328
- "orbit"
20329
- ]);
20330
- function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
20331
- const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
20332
- for (const ext of extEntries) {
20333
- if (!ext) {
20334
- continue;
20335
- }
20336
- for (const [key, value] of Object.entries(ext)) {
20337
- if (key.startsWith("@_")) {
20338
- continue;
20339
- }
20340
- const localName22 = getXmlLocalName(key);
20341
- if (!P14_TRANSITION_TYPES.has(localName22)) {
20342
- continue;
20343
- }
20344
- const type = localName22;
20345
- let direction;
20346
- let orient;
20347
- let pattern;
20348
- if (value && typeof value === "object" && !Array.isArray(value)) {
20349
- const detail = value;
20350
- const rawDir = String(detail["@_dir"] || "").trim();
20351
- if (rawDir.length > 0) {
20352
- direction = rawDir;
20353
- }
20354
- const rawOrient = String(detail["@_orient"] || "").trim();
20355
- if (rawOrient === "horz" || rawOrient === "vert") {
20356
- orient = rawOrient;
20357
- }
20358
- const rawPattern = String(detail["@_pattern"] || "").trim();
20359
- if (rawPattern.length > 0) {
20360
- pattern = rawPattern;
20361
- }
20362
- }
20363
- return { type, direction, orient, pattern };
20364
- }
20365
- }
20366
- return void 0;
20367
- }
20368
- function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, xmlLookupService, getXmlLocalName) {
20369
- const p14Child = {};
20370
- const dir = String(direction || "").trim();
20371
- if (dir.length > 0) {
20372
- p14Child["@_dir"] = dir;
20373
- }
20374
- if (orient) {
20375
- p14Child["@_orient"] = orient;
20376
- }
20377
- if (pattern) {
20378
- p14Child["@_pattern"] = pattern;
20379
- }
20380
- const transitionExt = {
20381
- "@_uri": "{CE6CE671-F284-4235-B8B7-4F3F06D5A82C}",
20382
- [`p14:${transitionType}`]: p14Child
20383
- };
20384
- if (rawExtLst) {
20385
- const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
20386
- const otherExts = existing.filter((ext) => {
20387
- if (!ext) {
20388
- return false;
20389
- }
20390
- for (const key of Object.keys(ext)) {
20391
- if (key.startsWith("@_")) {
20392
- continue;
20393
- }
20394
- const localName22 = getXmlLocalName(key);
20395
- if (P14_TRANSITION_TYPES.has(localName22)) {
20396
- return false;
20397
- }
20398
- }
20399
- return true;
20400
- });
20401
- const allExts = [transitionExt, ...otherExts];
20402
- return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
20403
- }
20404
- return { "p:ext": transitionExt };
20405
- }
20406
20488
  var P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
20407
20489
  "fallOver",
20408
20490
  "drape",
@@ -20428,6 +20510,36 @@ function optionalBoolean(value) {
20428
20510
  }
20429
20511
  return void 0;
20430
20512
  }
20513
+ function readPrstTrans(value) {
20514
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
20515
+ return void 0;
20516
+ }
20517
+ const detail = value;
20518
+ const prst = String(detail["@_prst"] || "").trim();
20519
+ if (!P15_TRANSITION_PRESETS.has(prst)) {
20520
+ return void 0;
20521
+ }
20522
+ return {
20523
+ type: prst,
20524
+ invX: optionalBoolean(detail["@_invX"]),
20525
+ invY: optionalBoolean(detail["@_invY"])
20526
+ };
20527
+ }
20528
+ function parseP15DirectChild(transitionNode, getXmlLocalName) {
20529
+ for (const [key, value] of Object.entries(transitionNode)) {
20530
+ if (key.startsWith("@_")) {
20531
+ continue;
20532
+ }
20533
+ if (getXmlLocalName(key) !== "prstTrans") {
20534
+ continue;
20535
+ }
20536
+ const result = readPrstTrans(value);
20537
+ if (result) {
20538
+ return result;
20539
+ }
20540
+ }
20541
+ return void 0;
20542
+ }
20431
20543
  function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
20432
20544
  const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
20433
20545
  for (const ext of extEntries) {
@@ -20441,19 +20553,10 @@ function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
20441
20553
  if (getXmlLocalName(key) !== "prstTrans") {
20442
20554
  continue;
20443
20555
  }
20444
- if (!value || typeof value !== "object" || Array.isArray(value)) {
20445
- continue;
20446
- }
20447
- const detail = value;
20448
- const prst = String(detail["@_prst"] || "").trim();
20449
- if (!P15_TRANSITION_PRESETS.has(prst)) {
20450
- continue;
20556
+ const result = readPrstTrans(value);
20557
+ if (result) {
20558
+ return result;
20451
20559
  }
20452
- return {
20453
- type: prst,
20454
- invX: optionalBoolean(detail["@_invX"]),
20455
- invY: optionalBoolean(detail["@_invY"])
20456
- };
20457
20560
  }
20458
20561
  }
20459
20562
  return void 0;
@@ -20702,6 +20805,69 @@ function validUnsignedInteger(value, min = 0) {
20702
20805
  return Number.isInteger(value) && Number(value) >= min && Number(value) <= UINT_MAX;
20703
20806
  }
20704
20807
  var MORPH_EXT_URI = "{C7C9D14B-FE2A-4D35-B620-AB07D5B017F4}";
20808
+ function parseMorphFromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
20809
+ const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
20810
+ for (const ext of extEntries) {
20811
+ if (!ext) {
20812
+ continue;
20813
+ }
20814
+ for (const [key, value] of Object.entries(ext)) {
20815
+ if (key.startsWith("@_")) {
20816
+ continue;
20817
+ }
20818
+ if (getXmlLocalName(key) === "morph") {
20819
+ return {
20820
+ morphOption: normalizeMorphOption(value?.["@_option"])
20821
+ };
20822
+ }
20823
+ }
20824
+ }
20825
+ return void 0;
20826
+ }
20827
+ function hasDirectMorphChild(node, getXmlLocalName) {
20828
+ for (const key of Object.keys(node)) {
20829
+ if (!key.startsWith("@_") && getXmlLocalName(key) === "morph") {
20830
+ return true;
20831
+ }
20832
+ }
20833
+ return false;
20834
+ }
20835
+ function buildMorphExtLst(rawExtLst, morphOption, xmlLookupService, getXmlLocalName) {
20836
+ const morphNode = {
20837
+ "@_xmlns:p159": "http://schemas.microsoft.com/office/powerpoint/2015/09/main"
20838
+ };
20839
+ if (morphOption) {
20840
+ morphNode["@_option"] = morphOption;
20841
+ }
20842
+ const morphExt = {
20843
+ "@_uri": MORPH_EXT_URI,
20844
+ "p159:morph": morphNode
20845
+ };
20846
+ if (!rawExtLst) {
20847
+ return { "p:ext": morphExt };
20848
+ }
20849
+ const existing = xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
20850
+ const otherExts = existing.filter((ext) => {
20851
+ if (!ext) {
20852
+ return false;
20853
+ }
20854
+ const uri = String(ext["@_uri"] || "").trim();
20855
+ if (uri.toUpperCase() === MORPH_EXT_URI.toUpperCase()) {
20856
+ return false;
20857
+ }
20858
+ for (const key of Object.keys(ext)) {
20859
+ if (key.startsWith("@_")) {
20860
+ continue;
20861
+ }
20862
+ if (getXmlLocalName(key) === "morph") {
20863
+ return false;
20864
+ }
20865
+ }
20866
+ return true;
20867
+ });
20868
+ const allExts = [morphExt, ...otherExts];
20869
+ return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
20870
+ }
20705
20871
  var PptxSlideTransitionService = class {
20706
20872
  xmlLookupService;
20707
20873
  getXmlLocalName;
@@ -20711,7 +20877,7 @@ var PptxSlideTransitionService = class {
20711
20877
  }
20712
20878
  parseSlideTransition(slideXml2) {
20713
20879
  const slideRoot = this.xmlLookupService.getChildByLocalName(slideXml2, "sld");
20714
- const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition") || this.findTransitionInAlternateContent(slideRoot);
20880
+ const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition") || findTransitionInAlternateContent(slideRoot, this.xmlLookupService);
20715
20881
  if (!transitionNode) {
20716
20882
  return void 0;
20717
20883
  }
@@ -20720,6 +20886,18 @@ var PptxSlideTransitionService = class {
20720
20886
  let { direction, orient, pattern } = details;
20721
20887
  const { spokes, thruBlk, rawSoundAction, rawExtLst } = details;
20722
20888
  let { morphOption } = details;
20889
+ if (transitionType === "cut") {
20890
+ const p14Direct = parseP14DirectChild(transitionNode, this.getXmlLocalName);
20891
+ const p15Direct = p14Direct ? void 0 : parseP15DirectChild(transitionNode, this.getXmlLocalName);
20892
+ if (p14Direct) {
20893
+ transitionType = p14Direct.type;
20894
+ direction = p14Direct.direction ?? direction;
20895
+ orient = p14Direct.orient ?? orient;
20896
+ pattern = p14Direct.pattern ?? pattern;
20897
+ } else if (p15Direct) {
20898
+ transitionType = p15Direct.type;
20899
+ }
20900
+ }
20723
20901
  if (rawExtLst && transitionType === "cut") {
20724
20902
  const p14Result = parseP14FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
20725
20903
  const p15Result = p14Result ? void 0 : parseP15FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
@@ -20737,7 +20915,11 @@ var PptxSlideTransitionService = class {
20737
20915
  } else if (p15Result) {
20738
20916
  transitionType = p15Result.type;
20739
20917
  } else {
20740
- const morphResult = this.parseMorphFromExtLst(rawExtLst);
20918
+ const morphResult = parseMorphFromExtLst(
20919
+ rawExtLst,
20920
+ this.xmlLookupService,
20921
+ this.getXmlLocalName
20922
+ );
20741
20923
  if (morphResult) {
20742
20924
  transitionType = "morph";
20743
20925
  morphOption = morphResult.morphOption;
@@ -20761,58 +20943,6 @@ var PptxSlideTransitionService = class {
20761
20943
  rawTransition: transitionNode
20762
20944
  };
20763
20945
  }
20764
- /**
20765
- * Locate a `<p:transition>` wrapped in a slide-root `mc:AlternateContent`
20766
- * envelope.
20767
- *
20768
- * Real PowerPoint (verified via COM-authored fixtures) wraps the
20769
- * transition in `mc:AlternateContent` whenever it carries an Office
20770
- * 2010+ attribute such as `p14:dur` (sub-second transition duration):
20771
- * an `mc:Choice Requires="p14"` branch carries the richer transition,
20772
- * and `mc:Fallback` carries a plain one for older readers. Without this
20773
- * unwrap, `p:sld`'s direct-child lookup for `transition` finds nothing
20774
- * and the whole transition (including plain ones falling back with no
20775
- * p14 data) is silently dropped, even though `mc:Choice` is otherwise a
20776
- * complete, directly usable `p:transition` node.
20777
- */
20778
- findTransitionInAlternateContent(slideRoot) {
20779
- const altContent = this.xmlLookupService.getChildByLocalName(slideRoot, "AlternateContent");
20780
- if (!altContent) {
20781
- return void 0;
20782
- }
20783
- const choices2 = this.xmlLookupService.getChildrenArrayByLocalName(altContent, "Choice");
20784
- for (const choice of choices2) {
20785
- const transitionNode = this.xmlLookupService.getChildByLocalName(choice, "transition");
20786
- if (transitionNode) {
20787
- return transitionNode;
20788
- }
20789
- }
20790
- const fallback = this.xmlLookupService.getChildByLocalName(altContent, "Fallback");
20791
- return this.xmlLookupService.getChildByLocalName(fallback, "transition");
20792
- }
20793
- /**
20794
- * Detects the PowerPoint 2016+ `morph` transition stored as a p159 extension
20795
- * inside the transition's extLst.
20796
- */
20797
- parseMorphFromExtLst(extLstNode) {
20798
- const extEntries = this.xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
20799
- for (const ext of extEntries) {
20800
- if (!ext) {
20801
- continue;
20802
- }
20803
- for (const [key, value] of Object.entries(ext)) {
20804
- if (key.startsWith("@_")) {
20805
- continue;
20806
- }
20807
- if (this.getXmlLocalName(key) === "morph") {
20808
- return {
20809
- morphOption: normalizeMorphOption(value?.["@_option"])
20810
- };
20811
- }
20812
- }
20813
- }
20814
- return void 0;
20815
- }
20816
20946
  buildSlideTransitionXml(transition) {
20817
20947
  if (!transition || transition.type === "none") {
20818
20948
  return void 0;
@@ -20822,21 +20952,33 @@ var PptxSlideTransitionService = class {
20822
20952
  const isP15Type = P15_TRANSITION_PRESETS.has(transitionType);
20823
20953
  const isMorphType = transitionType === "morph";
20824
20954
  const node = createPreservedTransitionNode(transition.rawTransition, this.getXmlLocalName);
20955
+ const p14ChildKey = isP14Type ? preservedP14ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
20956
+ const p15ChildKey = isP15Type ? preservedP15ChildKey(node, transitionType, this.getXmlLocalName) : void 0;
20957
+ pruneDirectExtensionChildren(node, this.getXmlLocalName, p14ChildKey ?? p15ChildKey);
20825
20958
  if (isP14Type) {
20826
- node["p:extLst"] = buildP14ExtLst(
20827
- transitionType,
20828
- transition.direction,
20829
- transition.orient,
20830
- transition.pattern,
20831
- transition.rawExtLst,
20832
- this.xmlLookupService,
20833
- this.getXmlLocalName
20834
- );
20959
+ if (!p14ChildKey) {
20960
+ node["p:extLst"] = buildP14ExtLst(
20961
+ transitionType,
20962
+ transition.direction,
20963
+ transition.orient,
20964
+ transition.pattern,
20965
+ transition.rawExtLst,
20966
+ this.xmlLookupService,
20967
+ this.getXmlLocalName
20968
+ );
20969
+ }
20835
20970
  } else if (isP15Type) {
20836
- node["p:extLst"] = transition.rawExtLst ?? buildP15ExtLst(transitionType);
20971
+ if (!p15ChildKey) {
20972
+ node["p:extLst"] = transition.rawExtLst ?? buildP15ExtLst(transitionType);
20973
+ }
20837
20974
  } else if (isMorphType) {
20838
- if (!this.hasDirectMorphChild(node)) {
20839
- node["p:extLst"] = this.buildMorphExtLst(transition.rawExtLst, transition.morphOption);
20975
+ if (!hasDirectMorphChild(node, this.getXmlLocalName)) {
20976
+ node["p:extLst"] = buildMorphExtLst(
20977
+ transition.rawExtLst,
20978
+ transition.morphOption,
20979
+ this.xmlLookupService,
20980
+ this.getXmlLocalName
20981
+ );
20840
20982
  }
20841
20983
  } else {
20842
20984
  node[`p:${transitionType}`] = buildStandardTransitionChild(transition);
@@ -20851,58 +20993,6 @@ var PptxSlideTransitionService = class {
20851
20993
  }
20852
20994
  return node;
20853
20995
  }
20854
- /**
20855
- * True when the (preserved) transition node already carries a `morph`
20856
- * element as a direct child, in any namespace prefix.
20857
- */
20858
- hasDirectMorphChild(node) {
20859
- for (const key of Object.keys(node)) {
20860
- if (!key.startsWith("@_") && this.getXmlLocalName(key) === "morph") {
20861
- return true;
20862
- }
20863
- }
20864
- return false;
20865
- }
20866
- /**
20867
- * Build the extLst XML node for a morph (p159) transition, preserving any
20868
- * non-morph extensions from rawExtLst.
20869
- */
20870
- buildMorphExtLst(rawExtLst, morphOption) {
20871
- const morphNode = {
20872
- "@_xmlns:p159": "http://schemas.microsoft.com/office/powerpoint/2015/09/main"
20873
- };
20874
- if (morphOption) {
20875
- morphNode["@_option"] = morphOption;
20876
- }
20877
- const morphExt = {
20878
- "@_uri": MORPH_EXT_URI,
20879
- "p159:morph": morphNode
20880
- };
20881
- if (!rawExtLst) {
20882
- return { "p:ext": morphExt };
20883
- }
20884
- const existing = this.xmlLookupService.getChildrenArrayByLocalName(rawExtLst, "ext");
20885
- const otherExts = existing.filter((ext) => {
20886
- if (!ext) {
20887
- return false;
20888
- }
20889
- const uri = String(ext["@_uri"] || "").trim();
20890
- if (uri.toUpperCase() === MORPH_EXT_URI.toUpperCase()) {
20891
- return false;
20892
- }
20893
- for (const key of Object.keys(ext)) {
20894
- if (key.startsWith("@_")) {
20895
- continue;
20896
- }
20897
- if (this.getXmlLocalName(key) === "morph") {
20898
- return false;
20899
- }
20900
- }
20901
- return true;
20902
- });
20903
- const allExts = [morphExt, ...otherExts];
20904
- return { "p:ext": allExts.length === 1 ? allExts[0] : allExts };
20905
- }
20906
20996
  };
20907
20997
  var PRESET_TO_OOXML = {
20908
20998
  // ---- Entrance effects (typed `PptxAnimationPreset` names) ----
@@ -47181,6 +47271,16 @@ function parseCtnMediaTiming(cTn, mediaTag) {
47181
47271
  }
47182
47272
  return { trimStartMs, trimEndMs, loop, autoPlay, playAcrossSlides };
47183
47273
  }
47274
+ function resolvePlayAcrossSlides(cMediaNode, ctnPlayAcrossSlides, mediaTag) {
47275
+ if (ctnPlayAcrossSlides) {
47276
+ return true;
47277
+ }
47278
+ if (mediaTag !== "p:audio") {
47279
+ return false;
47280
+ }
47281
+ const numSld = Number.parseInt(String(cMediaNode["@_numSld"] ?? ""), 10);
47282
+ return Number.isFinite(numSld) && numSld > 1;
47283
+ }
47184
47284
  function parseMediaExtensionData(mediaNode, cMediaNode, shapeId, ensureArray17) {
47185
47285
  let fadeInDuration;
47186
47286
  let fadeOutDuration;
@@ -48641,6 +48741,11 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
48641
48741
  }
48642
48742
  }
48643
48743
  const hideWhenNotPlaying = cMediaNode["@_showWhenStopped"] === "0";
48744
+ const playAcrossSlides = resolvePlayAcrossSlides(
48745
+ cMediaNode,
48746
+ timing.playAcrossSlides,
48747
+ mediaTag
48748
+ );
48644
48749
  let posterFramePath;
48645
48750
  const posterRId = cMediaNode["@_posterFrame"];
48646
48751
  if (posterRId) {
@@ -48665,7 +48770,7 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
48665
48770
  fadeInDuration: extData.fadeInDuration,
48666
48771
  fadeOutDuration: extData.fadeOutDuration,
48667
48772
  autoPlay: timing.autoPlay || void 0,
48668
- playAcrossSlides: timing.playAcrossSlides || void 0,
48773
+ playAcrossSlides: playAcrossSlides || void 0,
48669
48774
  hideWhenNotPlaying: hideWhenNotPlaying || void 0,
48670
48775
  bookmarks: extData.bookmarks.length > 0 ? extData.bookmarks : void 0,
48671
48776
  playbackSpeed: extData.playbackSpeed,
@@ -48702,7 +48807,7 @@ var PptxHandlerRuntime6 = class extends PptxHandlerRuntime5 {
48702
48807
  extractMediaTimingMap(slideXml2, slidePath) {
48703
48808
  const result = /* @__PURE__ */ new Map();
48704
48809
  try {
48705
- const timing = slideXml2?.["p:sld"]?.["p:timing"];
48810
+ const timing = resolveSlideTimingNode(slideXml2?.["p:sld"]);
48706
48811
  if (!timing) {
48707
48812
  return result;
48708
48813
  }
@@ -62263,31 +62368,35 @@ var PptxHandlerRuntime57 = class _PptxHandlerRuntime23 extends PptxHandlerRuntim
62263
62368
  return normalized;
62264
62369
  }
62265
62370
  readImageCropFromBlipFill(blipFill) {
62371
+ const result = {};
62266
62372
  const sourceRect = blipFill?.["a:srcRect"];
62267
62373
  if (sourceRect) {
62268
- const cropLeft = this.parseCropFraction(sourceRect["@_l"]);
62269
- const cropTop = this.parseCropFraction(sourceRect["@_t"]);
62270
- const cropRight = this.parseCropFraction(sourceRect["@_r"]);
62271
- const cropBottom = this.parseCropFraction(sourceRect["@_b"]);
62272
- return { cropLeft, cropTop, cropRight, cropBottom };
62374
+ result.cropLeft = this.parseCropFraction(sourceRect["@_l"]);
62375
+ result.cropTop = this.parseCropFraction(sourceRect["@_t"]);
62376
+ result.cropRight = this.parseCropFraction(sourceRect["@_r"]);
62377
+ result.cropBottom = this.parseCropFraction(sourceRect["@_b"]);
62273
62378
  }
62274
62379
  const stretchNode = blipFill?.["a:stretch"];
62275
62380
  const fillRect = stretchNode?.["a:fillRect"];
62276
62381
  if (fillRect) {
62277
- const l = this.parseCropFraction(fillRect["@_l"]);
62278
- const t = this.parseCropFraction(fillRect["@_t"]);
62279
- const r = this.parseCropFraction(fillRect["@_r"]);
62280
- const b = this.parseCropFraction(fillRect["@_b"]);
62281
- if (l !== void 0 || t !== void 0 || r !== void 0 || b !== void 0) {
62282
- return {
62283
- cropLeft: l,
62284
- cropTop: t,
62285
- cropRight: r,
62286
- cropBottom: b
62287
- };
62288
- }
62382
+ result.fillRectLeft = this.parseSignedRectFraction(fillRect["@_l"]);
62383
+ result.fillRectTop = this.parseSignedRectFraction(fillRect["@_t"]);
62384
+ result.fillRectRight = this.parseSignedRectFraction(fillRect["@_r"]);
62385
+ result.fillRectBottom = this.parseSignedRectFraction(fillRect["@_b"]);
62289
62386
  }
62290
- return {};
62387
+ return result;
62388
+ }
62389
+ /**
62390
+ * Parse a signed ST_Percentage rect offset (thousandths of a percent) to a
62391
+ * fraction. Unlike {@link parseCropFraction} the sign is preserved; the
62392
+ * magnitude is capped at 10x the frame to bound hostile input.
62393
+ */
62394
+ parseSignedRectFraction(value) {
62395
+ const raw = Number.parseInt(String(value ?? ""), 10);
62396
+ if (!Number.isFinite(raw)) {
62397
+ return void 0;
62398
+ }
62399
+ return Math.max(-1e6, Math.min(1e6, raw)) / 1e5;
62291
62400
  }
62292
62401
  extractShapeStyle(spPr, styleNode) {
62293
62402
  return this.shapeStyleExtractor.extractShapeStyle(spPr, styleNode);
@@ -63126,6 +63235,19 @@ var PptxHandlerRuntime61 = class _PptxHandlerRuntime25 extends PptxHandlerRuntim
63126
63235
  }
63127
63236
  };
63128
63237
  var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntime61 {
63238
+ /**
63239
+ * A copy of an `a:lstStyle` level entry without its `a:defRPr`: run
63240
+ * defaults follow their own precedence chain, so only the paragraph-level
63241
+ * keys (algn, lnSpc, spacing, margins, tabs) may join the pPr merge.
63242
+ */
63243
+ withoutDefaultRunProperties(node) {
63244
+ if (!node || typeof node !== "object") {
63245
+ return void 0;
63246
+ }
63247
+ const copy2 = { ...node };
63248
+ delete copy2["a:defRPr"];
63249
+ return copy2;
63250
+ }
63129
63251
  /**
63130
63252
  * Extract a paragraph's OWN `a:pPr` geometry (align, spacing, margins,
63131
63253
  * indent, tabs, rtl) as a partial {@link TextStyle} so per-paragraph
@@ -63189,10 +63311,26 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
63189
63311
  */
63190
63312
  resolveShapeParagraphStyle(p, textStyle, ctx) {
63191
63313
  const inheritedParagraph = this.ensureArray(ctx.inheritedTxBody?.["a:p"])[0];
63192
- const pPr = this.mergeXmlObjects(
63314
+ const directPPr = this.mergeXmlObjects(
63193
63315
  inheritedParagraph?.["a:pPr"],
63194
63316
  p["a:pPr"]
63195
63317
  );
63318
+ const parsedLevel = Number.parseInt(String(directPPr?.["@_lvl"] ?? "0"), 10);
63319
+ const level = Number.isFinite(parsedLevel) ? Math.min(Math.max(parsedLevel, 0), 8) : 0;
63320
+ const levelKey = `a:lvl${level + 1}pPr`;
63321
+ const ownLstStyle = ctx.txBody?.["a:lstStyle"];
63322
+ const inheritedLstStyle = ctx.inheritedTxBody?.["a:lstStyle"];
63323
+ const lstStyleParagraphDefaults = this.mergeXmlObjects(
63324
+ this.mergeXmlObjects(
63325
+ this.withoutDefaultRunProperties(inheritedLstStyle?.["a:defPPr"]),
63326
+ this.withoutDefaultRunProperties(inheritedLstStyle?.[levelKey])
63327
+ ),
63328
+ this.mergeXmlObjects(
63329
+ this.withoutDefaultRunProperties(ownLstStyle?.["a:defPPr"]),
63330
+ this.withoutDefaultRunProperties(ownLstStyle?.[levelKey])
63331
+ )
63332
+ );
63333
+ const pPr = this.mergeXmlObjects(lstStyleParagraphDefaults, directPPr);
63196
63334
  const paragraphRtl = this.parseOptionalBooleanAttr(pPr?.["@_rtl"]);
63197
63335
  if (paragraphRtl !== void 0 && textStyle.rtl === void 0) {
63198
63336
  textStyle.rtl = paragraphRtl;
@@ -63316,8 +63454,6 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
63316
63454
  ctx.slideRelationshipMap,
63317
63455
  false
63318
63456
  );
63319
- const level = pPr?.["@_lvl"] === void 0 ? -1 : Number.parseInt(String(pPr["@_lvl"]), 10);
63320
- const levelKey = level === -1 ? "a:defPPr" : `a:lvl${Number.isFinite(level) ? Math.min(Math.max(level + 1, 1), 9) : 1}pPr`;
63321
63457
  const inheritedLevelStyle = this.extractTextRunStyle(
63322
63458
  ctx.inheritedTxBody?.["a:lstStyle"]?.[levelKey]?.["a:defRPr"],
63323
63459
  paraAlign,
@@ -63350,12 +63486,16 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
63350
63486
  mergedDefaultRunStyle.fontFamily = ctx.styleFontRefTypeface;
63351
63487
  }
63352
63488
  if (ctx.effectiveLevelStyles) {
63353
- const normalizedLevel = level === -1 ? -1 : Number.isFinite(level) ? Math.min(Math.max(level, 0), 8) : 0;
63354
- const phLevel = ctx.effectiveLevelStyles[normalizedLevel] ?? ctx.effectiveLevelStyles[-1] ?? (normalizedLevel === -1 ? ctx.effectiveLevelStyles[0] : void 0);
63489
+ const phLevel = ctx.effectiveLevelStyles[level];
63490
+ const phBase = ctx.effectiveLevelStyles[-1];
63355
63491
  if (phLevel) {
63356
63492
  this.applyPlaceholderLevelDefaults(mergedDefaultRunStyle, phLevel);
63357
63493
  this.applyPlaceholderLevelDefaults(textStyle, phLevel);
63358
63494
  }
63495
+ if (phBase) {
63496
+ this.applyPlaceholderLevelDefaults(mergedDefaultRunStyle, phBase);
63497
+ this.applyPlaceholderLevelDefaults(textStyle, phBase);
63498
+ }
63359
63499
  }
63360
63500
  if (pPr?.["@_algn"] === void 0 && textStyle.align !== void 0) {
63361
63501
  paraAlign = textStyle.align;
@@ -63365,15 +63505,13 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
63365
63505
  let effectiveMarginLeft = parMarginLeft;
63366
63506
  let effectiveIndent = parIndent;
63367
63507
  if (ctx.effectiveLevelStyles) {
63368
- const normalizedLevel = level === -1 ? -1 : Number.isFinite(level) ? Math.min(Math.max(level, 0), 8) : 0;
63369
- const phLevel = ctx.effectiveLevelStyles[normalizedLevel] ?? ctx.effectiveLevelStyles[-1] ?? (normalizedLevel === -1 ? ctx.effectiveLevelStyles[0] : void 0);
63370
- if (phLevel) {
63371
- if (effectiveMarginLeft === void 0 && phLevel.marginLeft !== void 0) {
63372
- effectiveMarginLeft = phLevel.marginLeft;
63373
- }
63374
- if (effectiveIndent === void 0 && phLevel.indent !== void 0) {
63375
- effectiveIndent = phLevel.indent;
63376
- }
63508
+ const phLevel = ctx.effectiveLevelStyles[level];
63509
+ const phBase = ctx.effectiveLevelStyles[-1];
63510
+ if (effectiveMarginLeft === void 0) {
63511
+ effectiveMarginLeft = phLevel?.marginLeft ?? phBase?.marginLeft;
63512
+ }
63513
+ if (effectiveIndent === void 0) {
63514
+ effectiveIndent = phLevel?.indent ?? phBase?.indent;
63377
63515
  }
63378
63516
  }
63379
63517
  return {
@@ -98256,25 +98394,39 @@ function getImageFitStyle(el) {
98256
98394
  if (!isImageLikeElement(el)) {
98257
98395
  return uncropped;
98258
98396
  }
98397
+ const frLeft = el.fillRectLeft ?? 0;
98398
+ const frTop = el.fillRectTop ?? 0;
98399
+ const frRight = el.fillRectRight ?? 0;
98400
+ const frBottom = el.fillRectBottom ?? 0;
98401
+ const hasFillRect = Math.abs(frLeft) + Math.abs(frTop) + Math.abs(frRight) + Math.abs(frBottom) > 1e-4;
98402
+ const placementTransform = hasFillRect ? `translate(${round2(frLeft * 100)}%, ${round2(frTop * 100)}%) scale(${round6(
98403
+ Math.max(0.01, 1 - frLeft - frRight)
98404
+ )}, ${round6(Math.max(0.01, 1 - frTop - frBottom))})` : "";
98259
98405
  const cropLeft = clampCropValue(el.cropLeft);
98260
98406
  const cropTop = clampCropValue(el.cropTop);
98261
98407
  const cropRight = clampCropValue(el.cropRight);
98262
98408
  const cropBottom = clampCropValue(el.cropBottom);
98263
- if (cropLeft + cropRight <= 1e-4 && cropTop + cropBottom <= 1e-4) {
98409
+ const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
98410
+ if (!hasCrop && !hasFillRect) {
98264
98411
  return uncropped;
98265
98412
  }
98266
- const horizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
98267
- const verticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
98268
- const left = clampCropValue(cropLeft * horizontalScale);
98269
- const right = clampCropValue(cropRight * horizontalScale);
98270
- const top = clampCropValue(cropTop * verticalScale);
98271
- const bottom = clampCropValue(cropBottom * verticalScale);
98272
- const remainingWidth = Math.max(0.01, 1 - left - right);
98273
- const remainingHeight = Math.max(0.01, 1 - top - bottom);
98274
- const tx = Math.round(-left / remainingWidth * 1e4) / 100;
98275
- const ty = Math.round(-top / remainingHeight * 1e4) / 100;
98276
- const sx = Math.round(1 / remainingWidth * 1e6) / 1e6;
98277
- const sy = Math.round(1 / remainingHeight * 1e6) / 1e6;
98413
+ let cropTransform = "";
98414
+ if (hasCrop) {
98415
+ const horizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
98416
+ const verticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
98417
+ const left = clampCropValue(cropLeft * horizontalScale);
98418
+ const right = clampCropValue(cropRight * horizontalScale);
98419
+ const top = clampCropValue(cropTop * verticalScale);
98420
+ const bottom = clampCropValue(cropBottom * verticalScale);
98421
+ const remainingWidth = Math.max(0.01, 1 - left - right);
98422
+ const remainingHeight = Math.max(0.01, 1 - top - bottom);
98423
+ const tx = Math.round(-left / remainingWidth * 1e4) / 100;
98424
+ const ty = Math.round(-top / remainingHeight * 1e4) / 100;
98425
+ const sx = Math.round(1 / remainingWidth * 1e6) / 1e6;
98426
+ const sy = Math.round(1 / remainingHeight * 1e6) / 1e6;
98427
+ cropTransform = `translate(${tx}%, ${ty}%) scale(${sx}, ${sy})`;
98428
+ }
98429
+ const transform = [placementTransform, cropTransform].filter(Boolean).join(" ");
98278
98430
  return {
98279
98431
  position: "absolute",
98280
98432
  width: "100%",
@@ -98283,9 +98435,15 @@ function getImageFitStyle(el) {
98283
98435
  maxHeight: "none",
98284
98436
  objectFit: "fill",
98285
98437
  transformOrigin: "top left",
98286
- transform: `translate(${tx}%, ${ty}%) scale(${sx}, ${sy})`
98438
+ transform
98287
98439
  };
98288
98440
  }
98441
+ function round2(value) {
98442
+ return Math.round(value * 100) / 100;
98443
+ }
98444
+ function round6(value) {
98445
+ return Math.round(value * 1e6) / 1e6;
98446
+ }
98289
98447
  function groupElements(elements, ids, groupId) {
98290
98448
  const idSet = new Set(ids);
98291
98449
  const gathered = [];
@@ -99071,7 +99229,10 @@ function resolveLineHeight(textStyle, hasItalicRuns2) {
99071
99229
  if (typeof textStyle?.lineSpacingExactPt === "number" && textStyle.lineSpacingExactPt > 0) {
99072
99230
  return `${textStyle.lineSpacingExactPt}pt`;
99073
99231
  }
99074
- return textStyle?.lineSpacing || DEFAULT_LINE_HEIGHT;
99232
+ return proportionalLineHeight(textStyle?.lineSpacing);
99233
+ }
99234
+ function proportionalLineHeight(lineSpacing) {
99235
+ return typeof lineSpacing === "number" && lineSpacing > 0 ? lineSpacing * DEFAULT_LINE_HEIGHT : DEFAULT_LINE_HEIGHT;
99075
99236
  }
99076
99237
  function toCssWritingMode(textDirection) {
99077
99238
  switch (textDirection) {
@@ -99122,7 +99283,7 @@ function computeAutoFitTextStyle(input) {
99122
99283
  result.fontSize = Math.max(6, Math.round(baseFontSize * ts.autoFitFontScale));
99123
99284
  } else if (ts.autoFitMode !== "normal") {
99124
99285
  const textLength = text2.length;
99125
- const lineHeight = ts.lineSpacingExactPt ? ts.lineSpacingExactPt / baseFontSize : ts.lineSpacing || DEFAULT_LINE_HEIGHT;
99286
+ const lineHeight = ts.lineSpacingExactPt ? ts.lineSpacingExactPt / baseFontSize : proportionalLineHeight(ts.lineSpacing);
99126
99287
  const approxCharsPerLine = Math.max(1, Math.floor(width / (baseFontSize * 0.6)));
99127
99288
  const estimatedLines = Math.max(1, Math.ceil(textLength / approxCharsPerLine));
99128
99289
  const requiredHeight = estimatedLines * baseFontSize * lineHeight;
@@ -99133,8 +99294,7 @@ function computeAutoFitTextStyle(input) {
99133
99294
  }
99134
99295
  }
99135
99296
  if (ts.autoFitLineSpacingReduction !== void 0 && ts.autoFitLineSpacingReduction > 0) {
99136
- const baseLineHeight = typeof ts.lineSpacing === "number" ? ts.lineSpacing : DEFAULT_LINE_HEIGHT;
99137
- result.lineHeight = baseLineHeight * (1 - ts.autoFitLineSpacingReduction);
99297
+ result.lineHeight = proportionalLineHeight(ts.lineSpacing) * (1 - ts.autoFitLineSpacingReduction);
99138
99298
  }
99139
99299
  return result;
99140
99300
  }
@@ -99954,6 +100114,8 @@ function buildTextRunFilterChain(style) {
99954
100114
  }
99955
100115
  return parts.length > 0 ? parts.join(" ") : void 0;
99956
100116
  }
100117
+ var POWERPOINT_METRIC_TRACKING_EM = 3e-3;
100118
+ var POWERPOINT_METRIC_TRACKING = `${POWERPOINT_METRIC_TRACKING_EM}em`;
99957
100119
  function resolveParagraphStrutFontSize(segments, bodyFontSize) {
99958
100120
  let largest;
99959
100121
  for (const segment of segments) {
@@ -110524,6 +110686,93 @@ function mediaTransportVisible(surface) {
110524
110686
  }
110525
110687
  return surface.canvasTransport;
110526
110688
  }
110689
+ var persistentAudioMap = /* @__PURE__ */ new Map();
110690
+ function registerPersistentAudio(elementId, dataUrl, mimetype, loop, volume, trimStartSec) {
110691
+ if (persistentAudioMap.has(elementId) || typeof document === "undefined") {
110692
+ return;
110693
+ }
110694
+ const audio = document.createElement("audio");
110695
+ audio.src = dataUrl;
110696
+ if (mimetype) {
110697
+ const source = document.createElement("source");
110698
+ source.src = dataUrl;
110699
+ source.type = mimetype;
110700
+ audio.appendChild(source);
110701
+ }
110702
+ audio.loop = loop;
110703
+ audio.volume = Math.max(0, Math.min(1, volume));
110704
+ if (trimStartSec > 0) {
110705
+ try {
110706
+ audio.currentTime = trimStartSec;
110707
+ } catch {
110708
+ }
110709
+ }
110710
+ audio.style.display = "none";
110711
+ audio.setAttribute("data-pptx-persistent-audio", elementId);
110712
+ document.body.appendChild(audio);
110713
+ persistentAudioMap.set(elementId, { elementId, audio, loop, pausedByVisibility: false });
110714
+ void audio.play().catch(() => {
110715
+ });
110716
+ }
110717
+ function stopAllPersistentAudio() {
110718
+ for (const entry2 of persistentAudioMap.values()) {
110719
+ entry2.audio.pause();
110720
+ entry2.audio.remove();
110721
+ }
110722
+ persistentAudioMap.clear();
110723
+ }
110724
+ function pauseAllPersistentAudio() {
110725
+ for (const entry2 of persistentAudioMap.values()) {
110726
+ if (!entry2.audio.paused) {
110727
+ entry2.pausedByVisibility = true;
110728
+ entry2.audio.pause();
110729
+ }
110730
+ }
110731
+ }
110732
+ function resumeAllPersistentAudio() {
110733
+ for (const entry2 of persistentAudioMap.values()) {
110734
+ if (entry2.pausedByVisibility) {
110735
+ entry2.pausedByVisibility = false;
110736
+ void entry2.audio.play().catch(() => {
110737
+ });
110738
+ }
110739
+ }
110740
+ }
110741
+ function attachPresentationVisibilityPause(options = {}) {
110742
+ if (typeof document === "undefined") {
110743
+ return () => {
110744
+ };
110745
+ }
110746
+ const root = options.root ?? document;
110747
+ let pausedMedia = [];
110748
+ const onVisibilityChange = () => {
110749
+ if (document.visibilityState === "hidden") {
110750
+ pausedMedia = [];
110751
+ for (const media of root.querySelectorAll("audio, video")) {
110752
+ if (!media.paused && !media.ended) {
110753
+ pausedMedia.push(media);
110754
+ media.pause();
110755
+ }
110756
+ }
110757
+ pauseAllPersistentAudio();
110758
+ options.onHidden?.();
110759
+ return;
110760
+ }
110761
+ for (const media of pausedMedia) {
110762
+ if (media.isConnected) {
110763
+ void media.play().catch(() => {
110764
+ });
110765
+ }
110766
+ }
110767
+ pausedMedia = [];
110768
+ resumeAllPersistentAudio();
110769
+ options.onVisible?.();
110770
+ };
110771
+ document.addEventListener("visibilitychange", onVisibilityChange);
110772
+ return () => {
110773
+ document.removeEventListener("visibilitychange", onVisibilityChange);
110774
+ };
110775
+ }
110527
110776
  function buildSummaryZoomView(element, lookup) {
110528
110777
  if (element.zoomType !== "summary" || !element.summaryTargets?.length) {
110529
110778
  return void 0;
@@ -114794,4 +115043,4 @@ function segmentFrameCount(durationMs, fps) {
114794
115043
  * `<p:extLst>` (optional)
114795
115044
  */
114796
115045
 
114797
- export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, COLOR_MAP_ALIAS_KEYS, COMMON_FONTS, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_INSERT_CHART_TYPE, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PEN_COLORS, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, STATUS_BAR_CLASSES, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_LABELS, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_ORIENTATION_TYPES, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addQuickAccessCommand, addSection, addSmartArtNode, addSmartArtNodeAsChild, addTagToCollections, alignElements, animationEffectLabel, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyMotionPathPreset, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyThemeOverrideToSlide, applyThemeToData, availableQuickAccessCommands, backstageCardsFor, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartViewModel, buildCollaborationShareUrl, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMorphTransitionPlan, buildMotionPathPreview, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutline, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildStrokeOutline, buildSummaryZoomView, buildSvgGradientDef, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBuildSpec, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildThemeColorMap, buildUserFontFaceStyles, canCommitActionType, canGoNext, canGoPrevious, canvasToJpegData, cell3DBevelCss, chartAreaFill, chartDataChangeType, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout2 as computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDepartureChannel, createInitialPresentationSnapshot, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, deleteTagFromCollections, demoteSmartArtNode, derivePresenceList, deriveSlideFieldContext, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, elementActionToPptxAction, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, erasePresentationInkAt, evaluatePresetShape, extraQuickAccessCommands, extractPathPoints, filterCommands, filterRenderedElements, findChartPartTarget, findMediaElementByElementId, findSmartArtNodeText, firstShowSlideIndex, flattenTagCollections, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleObjectTypeLabel, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hexToRgbChannels2 as hexToRgbChannels, hiddenSlideCue, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCalloutShape, isCellInRect, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementRendered, isExportAbortError, isImageLikeElement, isInkElement, isKeyboardOpen, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isTemplateElement, isTemplateElementId2 as isTemplateElementId, isUrlSafe, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mapEditorKey, mapOutlineKey, mapPresentationKey, mayLeaveSlideShow, mediaPlaybackAttributes, mediaTransportVisible, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPptxFile, openReadingView, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, pressuresToWidths, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, promoteSmartArtNode, publishLiveGeometry, publishLiveInlineText, quickStyleSwatchCss, reResolveSlideColors, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, rebuildTableStructureInRawXml, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, registerCollaborationTeardown, remapTextToSegments, removeChartCategory, removeChartSeries, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorderSmartArtNode, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveActionType, resolveAudienceScreenPlacement, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveElementActionAffordance, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveParagraphStrutFontSize, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveShowSlideIndexes, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, rulerDragToGuidePosition, runMediaCommand, runPresentationAction, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, schemaLabel, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor2 as seriesColor, setCachedResult, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDuotoneCachedResult, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, storeAudienceContent, substituteFieldText, suppressesCssBorder, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, themeColorSchemesEqual, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, togglePresenterTimer, toggleText3dExtrusion, transformTextCase, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, warpPreviewPath, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs, zoomInScale, zoomOutScale };
115046
+ export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, COLOR_MAP_ALIAS_KEYS, COMMON_FONTS, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_INSERT_CHART_TYPE, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PEN_COLORS, POWERPOINT_METRIC_TRACKING, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, STATUS_BAR_CLASSES, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_LABELS, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_ORIENTATION_TYPES, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addQuickAccessCommand, addSection, addSmartArtNode, addSmartArtNodeAsChild, addTagToCollections, alignElements, animationEffectLabel, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyCaseTransformToSegments, applyChartBuildReveal, applyColorChange, applyDuotone, applyFormatToElement, applyMotionPathPreset, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyThemeOverrideToSlide, applyThemeToData, attachPresentationVisibilityPause, availableQuickAccessCommands, backstageCardsFor, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartViewModel, buildCollaborationShareUrl, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildJoinCollaborationConfig, buildMorphTransitionPlan, buildMotionPathPreview, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutline, buildOutlineHtml, buildPatternFillCss, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildStrokeOutline, buildSummaryZoomView, buildSvgGradientDef, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBuildSpec, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildThemeColorMap, buildUserFontFaceStyles, canCommitActionType, canGoNext, canGoPrevious, canvasToJpegData, cell3DBevelCss, chartAreaFill, chartDataChangeType, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearStoredViewerPrefs, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, collectUsedFonts, colorWithOpacity, comparePresentation, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeColumnBoundaries, computeEntranceAnimationDelay, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout2 as computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, computeVirtualRange, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDepartureChannel, createInitialPresentationSnapshot, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTouchGestureRecognizer, createViewerOptionsStore, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, deleteTagFromCollections, demoteSmartArtNode, derivePresenceList, deriveSlideFieldContext, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, elementActionToPptxAction, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, erasePresentationInkAt, evaluatePresetShape, extraQuickAccessCommands, extractPathPoints, filterCommands, filterRenderedElements, findChartPartTarget, findMediaElementByElementId, findSmartArtNodeText, firstShowSlideIndex, flattenTagCollections, formatAxisValue, formatAxisValueWithUnits, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePackageReadme, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getLocalStorageUsageSummary, getNotesPrintableArea, getOleBadgeLabel, getOleObjectTypeLabel, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeFilterId, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hexToRgbChannels2 as hexToRgbChannels, hiddenSlideCue, insertTableColumn, insertTableRow, isActionHidden, isBrowserOpenableMime, isCalloutShape, isCellInRect, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementRendered, isExportAbortError, isImageLikeElement, isInkElement, isKeyboardOpen, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isTemplateElement, isTemplateElementId2 as isTemplateElementId, isUrlSafe, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, loadAudienceContent, makeCloneId, makeSlideId, mapEditorKey, mapOutlineKey, mapPresentationKey, mayLeaveSlideShow, mediaPlaybackAttributes, mediaTransportVisible, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountModel3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPptxFile, openReadingView, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, pickSupportedMimeType, placeAudienceWindow, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, pressuresToWidths, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, promoteSmartArtNode, proportionalLineHeight, publishLiveGeometry, publishLiveInlineText, quickStyleSwatchCss, reResolveSlideColors, readBackstageRecentFile, readSlidesFromYDoc, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, rebuildTableStructureInRawXml, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, registerCollaborationTeardown, registerPersistentAudio, remapTextToSegments, removeChartCategory, removeChartSeries, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorderSmartArtNode, rerouteConnectorsForMovedElements, resetPresenterTimer, resolveActionType, resolveAudienceScreenPlacement, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveElementActionAffordance, resolveFontForScript, resolveFontRefIdx, resolveGroupChildFill, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveParagraphStrutFontSize, resolvePictureBullet, resolveProfileInitial, resolveRegionCode, resolveShowSlideIndexes, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, resolveViewerAddinRows, restoreSegmentSelection, revealedSmartArtNodeCount, rulerDragToGuidePosition, runMediaCommand, runPresentationAction, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveViewerProfile, scanAvailableFontFamilies, schemaLabel, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor2 as seriesColor, setCachedResult, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDuotoneCachedResult, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shadeColor2, shouldAutoFollowBroadcaster, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldLoopContinuously, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, substituteFieldText, suppressesCssBorder, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, themeColorSchemesEqual, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, togglePresenterTimer, toggleText3dExtrusion, transformTextCase, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewerOptionsToPreferences, warpPreviewPath, withChartPointValue, withChartTitle, withFrameSlides, withSlidesPerPage, writeStoredViewerPrefs, zoomInScale, zoomOutScale };