pptx-react-viewer 1.25.2 → 1.25.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Model3DScene-VEL3LWME.mjs → Model3DScene-DZFYJPUH.mjs} +2 -2
  3. package/dist/Model3DScene-DZFYJPUH.mjs.br +0 -0
  4. package/dist/Model3DScene-DZFYJPUH.mjs.gz +0 -0
  5. package/dist/{Model3DScene-PPHEUVGE.js → Model3DScene-SP6WOKSX.js} +3 -3
  6. package/dist/{Model3DScene-PPHEUVGE.js.br → Model3DScene-SP6WOKSX.js.br} +0 -0
  7. package/dist/Model3DScene-SP6WOKSX.js.gz +0 -0
  8. package/dist/{SurfaceChart3DScene-ZBBY6LVV.mjs → SurfaceChart3DScene-54BRNPQ5.mjs} +2 -2
  9. package/dist/SurfaceChart3DScene-54BRNPQ5.mjs.br +0 -0
  10. package/dist/SurfaceChart3DScene-54BRNPQ5.mjs.gz +0 -0
  11. package/dist/{SurfaceChart3DScene-TGSDRCUC.js → SurfaceChart3DScene-GISPZ4C2.js} +3 -3
  12. package/dist/SurfaceChart3DScene-GISPZ4C2.js.br +0 -0
  13. package/dist/SurfaceChart3DScene-GISPZ4C2.js.gz +0 -0
  14. package/dist/{chunk-VHKA4C7G.js → chunk-5VYVKFMS.js} +850 -809
  15. package/dist/chunk-5VYVKFMS.js.br +0 -0
  16. package/dist/chunk-5VYVKFMS.js.gz +0 -0
  17. package/dist/{chunk-ML36DOIS.js → chunk-6F4WVHS3.js} +159 -64
  18. package/dist/chunk-6F4WVHS3.js.br +0 -0
  19. package/dist/chunk-6F4WVHS3.js.gz +0 -0
  20. package/dist/{chunk-WAG32RWG.js → chunk-7FE27DDH.js} +472 -464
  21. package/dist/chunk-7FE27DDH.js.br +0 -0
  22. package/dist/chunk-7FE27DDH.js.gz +0 -0
  23. package/dist/{chunk-RPWTP6QP.js → chunk-FWF2SP6N.js} +675 -160
  24. package/dist/chunk-FWF2SP6N.js.br +0 -0
  25. package/dist/chunk-FWF2SP6N.js.gz +0 -0
  26. package/dist/{chunk-WTTSE7SZ.mjs → chunk-P72VQ7WE.mjs} +12 -4
  27. package/dist/chunk-P72VQ7WE.mjs.br +0 -0
  28. package/dist/chunk-P72VQ7WE.mjs.gz +0 -0
  29. package/dist/{chunk-XUYKQ4DI.mjs → chunk-TPG2WKHQ.mjs} +49 -8
  30. package/dist/chunk-TPG2WKHQ.mjs.br +0 -0
  31. package/dist/chunk-TPG2WKHQ.mjs.gz +0 -0
  32. package/dist/{chunk-Q2WHYUNV.mjs → chunk-UYNOPUSG.mjs} +675 -160
  33. package/dist/chunk-UYNOPUSG.mjs.br +0 -0
  34. package/dist/chunk-UYNOPUSG.mjs.gz +0 -0
  35. package/dist/{chunk-UR4R3CH4.mjs → chunk-VUC3UPLM.mjs} +126 -31
  36. package/dist/chunk-VUC3UPLM.mjs.br +0 -0
  37. package/dist/chunk-VUC3UPLM.mjs.gz +0 -0
  38. package/dist/{dist-JFRKRKOK.mjs → dist-QNYKM7YS.mjs} +1 -1
  39. package/dist/dist-QNYKM7YS.mjs.br +0 -0
  40. package/dist/dist-QNYKM7YS.mjs.gz +0 -0
  41. package/dist/{dist-NR7AZFQW.js → dist-QU6JIDAF.js} +562 -562
  42. package/dist/dist-QU6JIDAF.js.br +0 -0
  43. package/dist/dist-QU6JIDAF.js.gz +0 -0
  44. package/dist/hooks-unstable.d.ts +107 -1
  45. package/dist/hooks-unstable.js +78 -78
  46. package/dist/hooks-unstable.js.br +0 -0
  47. package/dist/hooks-unstable.js.gz +0 -0
  48. package/dist/hooks-unstable.mjs +3 -3
  49. package/dist/hooks-unstable.mjs.br +0 -0
  50. package/dist/hooks-unstable.mjs.gz +0 -0
  51. package/dist/index.d.ts +107 -1
  52. package/dist/index.js +33 -33
  53. package/dist/index.js.br +0 -0
  54. package/dist/index.js.gz +0 -0
  55. package/dist/index.mjs +4 -4
  56. package/dist/index.mjs.br +0 -0
  57. package/dist/index.mjs.gz +0 -0
  58. package/dist/viewer/index.d.ts +107 -1
  59. package/dist/viewer/index.js +20 -20
  60. package/dist/viewer/index.js.br +0 -0
  61. package/dist/viewer/index.js.gz +0 -0
  62. package/dist/viewer/index.mjs +4 -4
  63. package/dist/viewer/index.mjs.br +0 -0
  64. package/dist/viewer/index.mjs.gz +0 -0
  65. package/package.json +1 -1
  66. package/dist/Model3DScene-PPHEUVGE.js.gz +0 -0
  67. package/dist/Model3DScene-VEL3LWME.mjs.br +0 -0
  68. package/dist/Model3DScene-VEL3LWME.mjs.gz +0 -0
  69. package/dist/SurfaceChart3DScene-TGSDRCUC.js.br +0 -0
  70. package/dist/SurfaceChart3DScene-TGSDRCUC.js.gz +0 -0
  71. package/dist/SurfaceChart3DScene-ZBBY6LVV.mjs.br +0 -0
  72. package/dist/SurfaceChart3DScene-ZBBY6LVV.mjs.gz +0 -0
  73. package/dist/chunk-ML36DOIS.js.br +0 -0
  74. package/dist/chunk-ML36DOIS.js.gz +0 -0
  75. package/dist/chunk-Q2WHYUNV.mjs.br +0 -0
  76. package/dist/chunk-Q2WHYUNV.mjs.gz +0 -0
  77. package/dist/chunk-RPWTP6QP.js.br +0 -0
  78. package/dist/chunk-RPWTP6QP.js.gz +0 -0
  79. package/dist/chunk-UR4R3CH4.mjs.br +0 -0
  80. package/dist/chunk-UR4R3CH4.mjs.gz +0 -0
  81. package/dist/chunk-VHKA4C7G.js.br +0 -0
  82. package/dist/chunk-VHKA4C7G.js.gz +0 -0
  83. package/dist/chunk-WAG32RWG.js.br +0 -0
  84. package/dist/chunk-WAG32RWG.js.gz +0 -0
  85. package/dist/chunk-WTTSE7SZ.mjs.br +0 -0
  86. package/dist/chunk-WTTSE7SZ.mjs.gz +0 -0
  87. package/dist/chunk-XUYKQ4DI.mjs.br +0 -0
  88. package/dist/chunk-XUYKQ4DI.mjs.gz +0 -0
  89. package/dist/dist-JFRKRKOK.mjs.br +0 -0
  90. package/dist/dist-JFRKRKOK.mjs.gz +0 -0
  91. package/dist/dist-NR7AZFQW.js.br +0 -0
  92. package/dist/dist-NR7AZFQW.js.gz +0 -0
@@ -13591,26 +13591,49 @@ function applyScene3dStyle(shapeProps, style) {
13591
13591
  const camera = scene3dNode["a:camera"];
13592
13592
  const lightRig = scene3dNode["a:lightRig"];
13593
13593
  const cameraRot = camera?.["a:rot"];
13594
+ const lightRigRot = lightRig?.["a:rot"];
13594
13595
  style.scene3d = {
13595
13596
  cameraPreset: String(camera?.["@_prst"] || "").trim() || void 0,
13596
- cameraRotX: cameraRot?.["@_lat"] !== void 0 ? parseInt(String(cameraRot["@_lat"]), 10) : void 0,
13597
- cameraRotY: cameraRot?.["@_lon"] !== void 0 ? parseInt(String(cameraRot["@_lon"]), 10) : void 0,
13598
- cameraRotZ: cameraRot?.["@_rev"] !== void 0 ? parseInt(String(cameraRot["@_rev"]), 10) : void 0,
13597
+ cameraFieldOfView: intAttr(camera?.["@_fov"]),
13598
+ cameraZoom: floatAttr(camera?.["@_zoom"]),
13599
+ cameraRotX: intAttr(cameraRot?.["@_lat"]),
13600
+ cameraRotY: intAttr(cameraRot?.["@_lon"]),
13601
+ cameraRotZ: intAttr(cameraRot?.["@_rev"]),
13599
13602
  lightRigType: String(lightRig?.["@_rig"] || "").trim() || void 0,
13600
- lightRigDirection: String(lightRig?.["@_dir"] || "").trim() || void 0
13603
+ lightRigDirection: String(lightRig?.["@_dir"] || "").trim() || void 0,
13604
+ lightRigRotX: intAttr(lightRigRot?.["@_lat"]),
13605
+ lightRigRotY: intAttr(lightRigRot?.["@_lon"]),
13606
+ lightRigRotZ: intAttr(lightRigRot?.["@_rev"])
13601
13607
  };
13602
13608
  const backdrop = scene3dNode["a:backdrop"];
13603
13609
  if (backdrop) {
13604
13610
  style.scene3d.hasBackdrop = true;
13605
13611
  const anchor = backdrop["a:anchor"];
13606
- const anchorAttrs = anchor;
13607
- if (anchorAttrs) {
13608
- style.scene3d.backdropAnchorX = parseInt(String(anchorAttrs["@_x"] || "0"), 10);
13609
- style.scene3d.backdropAnchorY = parseInt(String(anchorAttrs["@_y"] || "0"), 10);
13610
- style.scene3d.backdropAnchorZ = parseInt(String(anchorAttrs["@_z"] || "0"), 10);
13612
+ if (anchor) {
13613
+ style.scene3d.backdropAnchorX = intAttr(anchor["@_x"]) ?? 0;
13614
+ style.scene3d.backdropAnchorY = intAttr(anchor["@_y"]) ?? 0;
13615
+ style.scene3d.backdropAnchorZ = intAttr(anchor["@_z"]) ?? 0;
13616
+ }
13617
+ const norm = backdrop["a:norm"];
13618
+ if (norm) {
13619
+ style.scene3d.backdropNormalX = intAttr(norm["@_dx"]) ?? 0;
13620
+ style.scene3d.backdropNormalY = intAttr(norm["@_dy"]) ?? 0;
13621
+ style.scene3d.backdropNormalZ = intAttr(norm["@_dz"]) ?? 0;
13622
+ }
13623
+ const up = backdrop["a:up"];
13624
+ if (up) {
13625
+ style.scene3d.backdropUpX = intAttr(up["@_dx"]) ?? 0;
13626
+ style.scene3d.backdropUpY = intAttr(up["@_dy"]) ?? 0;
13627
+ style.scene3d.backdropUpZ = intAttr(up["@_dz"]) ?? 0;
13611
13628
  }
13612
13629
  }
13613
13630
  }
13631
+ function intAttr(value) {
13632
+ return value !== void 0 ? parseInt(String(value), 10) : void 0;
13633
+ }
13634
+ function floatAttr(value) {
13635
+ return value !== void 0 ? parseFloat(String(value)) : void 0;
13636
+ }
13614
13637
  function applyShape3dStyle(shapeProps, style, context) {
13615
13638
  const shape3dNode = shapeProps["a:sp3d"];
13616
13639
  if (!shape3dNode) {
@@ -14480,7 +14503,7 @@ var MEDIA_REFERENCE_NAMES = [
14480
14503
  "videoFile",
14481
14504
  "quickTimeFile"
14482
14505
  ];
14483
- function parseDrawingMediaReference(container) {
14506
+ function parseDrawingMediaReference(container, externalRelIds) {
14484
14507
  if (!container) {
14485
14508
  return void 0;
14486
14509
  }
@@ -14489,11 +14512,17 @@ function parseDrawingMediaReference(container) {
14489
14512
  if (!node) {
14490
14513
  continue;
14491
14514
  }
14515
+ const linkId = String(attribute2(node, "link") ?? "").trim() || void 0;
14516
+ const embedId = String(attribute2(node, "embed") ?? "").trim() || void 0;
14492
14517
  return {
14493
14518
  kind,
14494
14519
  mediaType: kind === "videoFile" || kind === "quickTimeFile" ? "video" : "audio",
14495
- relationshipId: String(attribute2(node, "link") ?? attribute2(node, "embed") ?? "").trim() || void 0,
14496
- isLinked: attribute2(node, "link") !== void 0,
14520
+ relationshipId: linkId ?? embedId,
14521
+ // Embedded media legitimately uses r:link pointing at an INTERNAL
14522
+ // media part, so link presence alone does not imply a linked clip.
14523
+ // It is only truly linked when the referenced relationship is
14524
+ // external (TargetMode="External"), mirroring the OLE parser.
14525
+ isLinked: linkId !== void 0 && externalRelIds?.has(linkId) === true,
14497
14526
  name: kind === "wavAudioFile" ? String(attribute2(node, "name") ?? "") || void 0 : void 0,
14498
14527
  contentType: kind === "audioFile" ? String(attribute2(node, "contentType") ?? "") || void 0 : void 0,
14499
14528
  audioCdStart: kind === "audioCd" ? parseAudioCdPosition(child2(node, "st")) : void 0,
@@ -14622,7 +14651,10 @@ var PptxMediaDataParser = class {
14622
14651
  parseMediaData(graphicData, slidePath) {
14623
14652
  const result = {};
14624
14653
  try {
14625
- const reference = parseDrawingMediaReference(graphicData);
14654
+ const reference = parseDrawingMediaReference(
14655
+ graphicData,
14656
+ this.context.externalRelsMap.get(slidePath)
14657
+ );
14626
14658
  if (reference) {
14627
14659
  result.mediaType = reference.mediaType;
14628
14660
  result.mediaReferenceKind = reference.kind;
@@ -19507,6 +19539,7 @@ var PptxNativeAnimationService = class {
19507
19539
  const nodeType = String(cTn["@_nodeType"] || "");
19508
19540
  const presetClass = cTn["@_presetClass"];
19509
19541
  const presetId = cTn["@_presetID"] ? Number.parseInt(String(cTn["@_presetID"]), 10) : void 0;
19542
+ const presetSubtype = cTn["@_presetSubtype"] !== void 0 ? Number.parseInt(String(cTn["@_presetSubtype"]), 10) : void 0;
19510
19543
  const durationMs = cTn["@_dur"] ? Number.parseInt(String(cTn["@_dur"]), 10) : void 0;
19511
19544
  const delayMs = cTn["@_delay"] ? Number.parseInt(String(cTn["@_delay"]), 10) : void 0;
19512
19545
  let trigger = currentTrigger;
@@ -19558,6 +19591,7 @@ var PptxNativeAnimationService = class {
19558
19591
  trigger,
19559
19592
  presetClass: validPresetClass,
19560
19593
  presetId,
19594
+ presetSubtype,
19561
19595
  durationMs,
19562
19596
  delayMs,
19563
19597
  triggerDelayMs: trigger === "afterDelay" ? delayMs : void 0,
@@ -19865,6 +19899,72 @@ function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, x
19865
19899
  }
19866
19900
  return { "p:ext": transitionExt };
19867
19901
  }
19902
+ var P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
19903
+ "fallOver",
19904
+ "drape",
19905
+ "curtains",
19906
+ "wind",
19907
+ "prestige",
19908
+ "fracture",
19909
+ "crush",
19910
+ "peelOff",
19911
+ "pageCurlDouble",
19912
+ "pageCurlSingle",
19913
+ "airplane",
19914
+ "origami"
19915
+ ]);
19916
+ var PRSTTRANS_EXT_URI = "{D42A27DB-BD31-4B8C-83A1-F6EECF244321}";
19917
+ function optionalBoolean(value) {
19918
+ const valueToken = value === void 0 || value === null ? "" : String(value).trim().toLowerCase();
19919
+ if (valueToken === "1" || valueToken === "true") {
19920
+ return true;
19921
+ }
19922
+ if (valueToken === "0" || valueToken === "false") {
19923
+ return false;
19924
+ }
19925
+ return void 0;
19926
+ }
19927
+ function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
19928
+ const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
19929
+ for (const ext of extEntries) {
19930
+ if (!ext) {
19931
+ continue;
19932
+ }
19933
+ for (const [key, value] of Object.entries(ext)) {
19934
+ if (key.startsWith("@_")) {
19935
+ continue;
19936
+ }
19937
+ if (getXmlLocalName(key) !== "prstTrans") {
19938
+ continue;
19939
+ }
19940
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
19941
+ continue;
19942
+ }
19943
+ const detail = value;
19944
+ const prst = String(detail["@_prst"] || "").trim();
19945
+ if (!P15_TRANSITION_PRESETS.has(prst)) {
19946
+ continue;
19947
+ }
19948
+ return {
19949
+ type: prst,
19950
+ invX: optionalBoolean(detail["@_invX"]),
19951
+ invY: optionalBoolean(detail["@_invY"])
19952
+ };
19953
+ }
19954
+ }
19955
+ return void 0;
19956
+ }
19957
+ function buildP15ExtLst(transitionType, invX, invY) {
19958
+ const prstTrans = {
19959
+ "@_xmlns:p15": "http://schemas.microsoft.com/office/powerpoint/2012/main",
19960
+ "@_prst": transitionType
19961
+ };
19962
+ const ext = {
19963
+ "@_uri": PRSTTRANS_EXT_URI,
19964
+ "p15:prstTrans": prstTrans
19965
+ };
19966
+ return { "p:ext": ext };
19967
+ }
19868
19968
  var STANDARD_TRANSITION_TYPES = /* @__PURE__ */ new Set([
19869
19969
  "fade",
19870
19970
  "push",
@@ -19929,7 +20029,7 @@ function parseTransitionDetails(node, localName22) {
19929
20029
  if (pattern) {
19930
20030
  result.pattern = pattern;
19931
20031
  }
19932
- const thruBlk = optionalBoolean(detail["@_thruBlk"]);
20032
+ const thruBlk = optionalBoolean2(detail["@_thruBlk"]);
19933
20033
  if (thruBlk !== void 0) {
19934
20034
  result.thruBlk = thruBlk;
19935
20035
  }
@@ -19940,7 +20040,7 @@ function parseTransitionAttributes(node) {
19940
20040
  const speedToken = token(node["@_spd"]);
19941
20041
  const speed = SPEEDS.has(speedToken) ? speedToken : void 0;
19942
20042
  const durationMs = unsignedInteger2(node["@_dur"] ?? node["@_p14:dur"], 1);
19943
- const advanceOnClick = optionalBoolean(node["@_advClick"]);
20043
+ const advanceOnClick = optionalBoolean2(node["@_advClick"]);
19944
20044
  const advanceAfterMs = unsignedInteger2(node["@_advTm"]);
19945
20045
  return { speed, durationMs, advanceOnClick, advanceAfterMs };
19946
20046
  }
@@ -19954,7 +20054,7 @@ function parseTransitionSound(raw, lookup, localName22) {
19954
20054
  return {
19955
20055
  soundRId: sound ? attributeByLocalName(sound, "embed", localName22) : void 0,
19956
20056
  soundName: sound ? attributeByLocalName(sound, "name", localName22) : void 0,
19957
- soundLoop: optionalBoolean(start["@_loop"])
20057
+ soundLoop: optionalBoolean2(start["@_loop"])
19958
20058
  };
19959
20059
  }
19960
20060
  const stopSound = Object.keys(raw).some(
@@ -20063,7 +20163,7 @@ function attributeByLocalName(node, name, localName22) {
20063
20163
  function token(value) {
20064
20164
  return value === void 0 || value === null ? "" : String(value).trim();
20065
20165
  }
20066
- function optionalBoolean(value) {
20166
+ function optionalBoolean2(value) {
20067
20167
  const valueToken = token(value).toLowerCase();
20068
20168
  if (!valueToken) {
20069
20169
  return void 0;
@@ -20107,6 +20207,7 @@ var PptxSlideTransitionService = class {
20107
20207
  const { spokes, thruBlk, rawSoundAction, rawExtLst } = details;
20108
20208
  if (rawExtLst && transitionType === "cut") {
20109
20209
  const p14Result = parseP14FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
20210
+ const p15Result = p14Result ? void 0 : parseP15FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
20110
20211
  if (p14Result) {
20111
20212
  transitionType = p14Result.type;
20112
20213
  if (p14Result.direction) {
@@ -20118,6 +20219,8 @@ var PptxSlideTransitionService = class {
20118
20219
  if (p14Result.pattern) {
20119
20220
  pattern = p14Result.pattern;
20120
20221
  }
20222
+ } else if (p15Result) {
20223
+ transitionType = p15Result.type;
20121
20224
  } else if (this.parseMorphFromExtLst(rawExtLst)) {
20122
20225
  transitionType = "morph";
20123
20226
  }
@@ -20199,6 +20302,7 @@ var PptxSlideTransitionService = class {
20199
20302
  }
20200
20303
  const transitionType = transition.type || "cut";
20201
20304
  const isP14Type = P14_TRANSITION_TYPES.has(transitionType);
20305
+ const isP15Type = P15_TRANSITION_PRESETS.has(transitionType);
20202
20306
  const isMorphType = transitionType === "morph";
20203
20307
  const node = createPreservedTransitionNode(transition.rawTransition, this.getXmlLocalName);
20204
20308
  if (isP14Type) {
@@ -20211,6 +20315,8 @@ var PptxSlideTransitionService = class {
20211
20315
  this.xmlLookupService,
20212
20316
  this.getXmlLocalName
20213
20317
  );
20318
+ } else if (isP15Type) {
20319
+ node["p:extLst"] = transition.rawExtLst ?? buildP15ExtLst(transitionType);
20214
20320
  } else if (isMorphType) {
20215
20321
  node["p:extLst"] = this.buildMorphExtLst(transition.rawExtLst);
20216
20322
  } else {
@@ -20221,7 +20327,7 @@ var PptxSlideTransitionService = class {
20221
20327
  if (soundAction) {
20222
20328
  node["p:sndAc"] = soundAction;
20223
20329
  }
20224
- if (transition.rawExtLst && !isP14Type && !isMorphType) {
20330
+ if (transition.rawExtLst && !isP14Type && !isP15Type && !isMorphType) {
20225
20331
  node["p:extLst"] = transition.rawExtLst;
20226
20332
  }
20227
20333
  return node;
@@ -29525,15 +29631,15 @@ function getConnectorPathGeometry(element) {
29525
29631
  }
29526
29632
  function getElementTransform(element) {
29527
29633
  const transforms = [];
29634
+ if (element.rotation) {
29635
+ transforms.push(`rotate(${element.rotation}deg)`);
29636
+ }
29528
29637
  if (element.flipHorizontal) {
29529
29638
  transforms.push("scaleX(-1)");
29530
29639
  }
29531
29640
  if (element.flipVertical) {
29532
29641
  transforms.push("scaleY(-1)");
29533
29642
  }
29534
- if (element.rotation) {
29535
- transforms.push(`rotate(${element.rotation}deg)`);
29536
- }
29537
29643
  return transforms.length > 0 ? transforms.join(" ") : void 0;
29538
29644
  }
29539
29645
  function getTextCompensationTransform(element) {
@@ -36059,35 +36165,197 @@ async function fetchUrlToBytes(url, options = {}) {
36059
36165
  return null;
36060
36166
  }
36061
36167
  }
36168
+ function resolveChannelOrder(root) {
36169
+ const traceFormat = findFirstByLocalName(root, "traceFormat");
36170
+ if (!traceFormat) {
36171
+ return ["X", "Y"];
36172
+ }
36173
+ const channels = ensureArray5(nsGet(traceFormat, "channel"));
36174
+ const names = channels.map(
36175
+ (channel) => String(nsAttr(channel, "name") ?? "").trim().toUpperCase()
36176
+ ).filter((name) => name.length > 0);
36177
+ return names.length > 0 ? names : ["X", "Y"];
36178
+ }
36179
+ function decodeTracePoints(text2, channelOrder) {
36180
+ const points3 = [];
36181
+ const modes = channelOrder.map(() => "explicit");
36182
+ const lastValue = channelOrder.map(() => 0);
36183
+ const lastVelocity = channelOrder.map(() => 0);
36184
+ for (const rawPoint of text2.split(",")) {
36185
+ const tokens = rawPoint.trim().split(/\s+/u).filter((token2) => token2.length > 0);
36186
+ if (tokens.length === 0) {
36187
+ continue;
36188
+ }
36189
+ const decoded = [];
36190
+ for (let i = 0; i < tokens.length && i < channelOrder.length; i++) {
36191
+ const parsed = parseValueToken(tokens[i], modes[i]);
36192
+ if (parsed === void 0) {
36193
+ decoded.push(lastValue[i]);
36194
+ continue;
36195
+ }
36196
+ modes[i] = parsed.mode;
36197
+ const value = applyDiffMode(parsed, i, lastValue, lastVelocity);
36198
+ decoded.push(value);
36199
+ }
36200
+ if (decoded.length >= 2) {
36201
+ points3.push(decoded);
36202
+ }
36203
+ }
36204
+ return points3;
36205
+ }
36206
+ function parseValueToken(token2, currentMode) {
36207
+ let mode = currentMode;
36208
+ let body = token2;
36209
+ const prefix = token2[0];
36210
+ if (prefix === "!") {
36211
+ mode = "explicit";
36212
+ body = token2.slice(1);
36213
+ } else if (prefix === "'") {
36214
+ mode = "single";
36215
+ body = token2.slice(1);
36216
+ } else if (prefix === '"') {
36217
+ mode = "double";
36218
+ body = token2.slice(1);
36219
+ }
36220
+ if (body.length === 0) {
36221
+ return void 0;
36222
+ }
36223
+ const value = Number(body);
36224
+ return Number.isFinite(value) ? { value, mode } : void 0;
36225
+ }
36226
+ function applyDiffMode(parsed, index, lastValue, lastVelocity) {
36227
+ if (parsed.mode === "single") {
36228
+ lastVelocity[index] = parsed.value;
36229
+ lastValue[index] += parsed.value;
36230
+ } else if (parsed.mode === "double") {
36231
+ lastVelocity[index] += parsed.value;
36232
+ lastValue[index] += lastVelocity[index];
36233
+ } else {
36234
+ lastValue[index] = parsed.value;
36235
+ lastVelocity[index] = 0;
36236
+ }
36237
+ return lastValue[index];
36238
+ }
36239
+ function pointsToSvgPath(points3, channelOrder) {
36240
+ const xi = channelOrder.indexOf("X");
36241
+ const yi = channelOrder.indexOf("Y");
36242
+ const xIndex = xi >= 0 ? xi : 0;
36243
+ const yIndex = yi >= 0 ? yi : 1;
36244
+ const segments = [];
36245
+ for (const point of points3) {
36246
+ const x = point[xIndex];
36247
+ const y = point[yIndex];
36248
+ if (!Number.isFinite(x) || !Number.isFinite(y)) {
36249
+ continue;
36250
+ }
36251
+ segments.push(`${segments.length === 0 ? "M" : "L"} ${x} ${y}`);
36252
+ }
36253
+ return segments.join(" ");
36254
+ }
36255
+ function pointsToPressures(points3, channelOrder) {
36256
+ const fIndex = channelOrder.indexOf("F");
36257
+ if (fIndex < 0) {
36258
+ return [];
36259
+ }
36260
+ const pressures = [];
36261
+ for (const point of points3) {
36262
+ const raw = point[fIndex];
36263
+ if (Number.isFinite(raw)) {
36264
+ const normalised = raw > 1 ? raw / 32767 : raw;
36265
+ pressures.push(Math.max(0, Math.min(1, normalised)));
36266
+ }
36267
+ }
36268
+ return pressures;
36269
+ }
36270
+ function nsGet(obj, localName22) {
36271
+ if (localName22 in obj) {
36272
+ return obj[localName22];
36273
+ }
36274
+ for (const key of Object.keys(obj)) {
36275
+ if (localNameOf(key) === localName22 && !key.startsWith("@_")) {
36276
+ return obj[key];
36277
+ }
36278
+ }
36279
+ return void 0;
36280
+ }
36281
+ function nsAttr(obj, localName22) {
36282
+ const direct = obj[`@_${localName22}`];
36283
+ if (direct !== void 0) {
36284
+ return direct;
36285
+ }
36286
+ for (const key of Object.keys(obj)) {
36287
+ if (key.startsWith("@_") && localNameOf(key.slice(2)) === localName22) {
36288
+ return obj[key];
36289
+ }
36290
+ }
36291
+ return void 0;
36292
+ }
36293
+ function localNameOf(key) {
36294
+ const colon = key.indexOf(":");
36295
+ return colon >= 0 ? key.slice(colon + 1) : key;
36296
+ }
36297
+ function findFirstByLocalName(node, localName22) {
36298
+ const direct = nsGet(node, localName22);
36299
+ if (direct && typeof direct === "object") {
36300
+ return Array.isArray(direct) ? direct[0] : direct;
36301
+ }
36302
+ for (const key of Object.keys(node)) {
36303
+ if (key.startsWith("@_") || key === "#text") {
36304
+ continue;
36305
+ }
36306
+ for (const child20 of ensureArray5(node[key])) {
36307
+ if (typeof child20 !== "object") {
36308
+ continue;
36309
+ }
36310
+ const found = findFirstByLocalName(child20, localName22);
36311
+ if (found) {
36312
+ return found;
36313
+ }
36314
+ }
36315
+ }
36316
+ return void 0;
36317
+ }
36318
+ function ensureArray5(value) {
36319
+ if (value === void 0 || value === null) {
36320
+ return [];
36321
+ }
36322
+ return Array.isArray(value) ? value : [value];
36323
+ }
36062
36324
  var INKML_NAMESPACE = "http://www.w3.org/2003/InkML";
36063
36325
  var METADATA_NAMESPACE = "https://pptx-viewer.dev/inkml/metadata";
36064
36326
  function parseInkMlContent(data) {
36065
- const root = data["ink:ink"] ?? data["ink"];
36327
+ const root = nsGet(data, "ink") ?? data["ink"];
36066
36328
  if (!root) {
36067
36329
  return { strokes: [], rawXml: data };
36068
36330
  }
36069
36331
  const brushes = /* @__PURE__ */ new Map();
36070
- for (const brush of ensureArray5(root["ink:brush"] ?? root["brush"])) {
36071
- const properties = ensureArray5(brush["ink:brushProperty"] ?? brush["brushProperty"]);
36332
+ for (const brush of ensureArray5(nsGet(root, "brush"))) {
36333
+ const properties = ensureArray5(nsGet(brush, "brushProperty"));
36072
36334
  const valueByName = new Map(
36073
- properties.map((property) => [String(property["@_name"] ?? ""), property["@_value"]])
36335
+ properties.map((property) => [
36336
+ String(nsAttr(property, "name") ?? ""),
36337
+ nsAttr(property, "value")
36338
+ ])
36074
36339
  );
36075
- brushes.set(String(brush["@_id"] ?? ""), {
36340
+ brushes.set(String(nsAttr(brush, "id") ?? ""), {
36076
36341
  color: String(valueByName.get("color") ?? "#000000"),
36077
36342
  width: finiteNumber(valueByName.get("width"), 1),
36078
36343
  opacity: finiteNumber(valueByName.get("opacity"), 1)
36079
36344
  });
36080
36345
  }
36346
+ const channelOrder = resolveChannelOrder(root);
36081
36347
  const strokes = [];
36082
- for (const trace of ensureArray5(root["ink:trace"] ?? root["trace"])) {
36348
+ for (const trace of ensureArray5(nsGet(root, "trace"))) {
36083
36349
  const text2 = typeof trace === "string" ? trace : String(trace["#text"] ?? "").trim();
36084
- const path = typeof trace === "string" ? text2 : String(trace["@_pva:path"] ?? "").trim() || text2;
36350
+ const authored = typeof trace === "string" ? "" : String(nsAttr(trace, "path") ?? "").trim();
36351
+ const points3 = authored ? [] : decodeTracePoints(text2, channelOrder);
36352
+ const path = authored || pointsToSvgPath(points3, channelOrder);
36085
36353
  if (!path) {
36086
36354
  continue;
36087
36355
  }
36088
- const brushRef = typeof trace === "string" ? "" : String(trace["@_brushRef"] ?? "").replace("#", "");
36356
+ const brushRef = typeof trace === "string" ? "" : String(nsAttr(trace, "brushRef") ?? "").replace("#", "");
36089
36357
  const brush = brushes.get(brushRef) ?? { color: "#000000", width: 1, opacity: 1 };
36090
- const pressures = tracePressures(text2);
36358
+ const pressures = authored ? tracePressures(text2) : pointsToPressures(points3, channelOrder);
36091
36359
  strokes.push({ ...brush, path, ...pressures.length > 0 ? { pressures } : {} });
36092
36360
  }
36093
36361
  return { strokes, rawXml: data };
@@ -36146,12 +36414,6 @@ function finiteNumber(value, fallback) {
36146
36414
  const parsed = Number(value);
36147
36415
  return Number.isFinite(parsed) ? parsed : fallback;
36148
36416
  }
36149
- function ensureArray5(value) {
36150
- if (value === void 0 || value === null) {
36151
- return [];
36152
- }
36153
- return Array.isArray(value) ? value : [value];
36154
- }
36155
36417
  var DEFAULT_ACCENT_COLORS = [
36156
36418
  "#4472C4",
36157
36419
  "#ED7D31",
@@ -53350,6 +53612,91 @@ var PptxHandlerRuntime = class {
53350
53612
  }
53351
53613
  }
53352
53614
  };
53615
+ var EMU_PER_PIXEL = 9525;
53616
+ var BORDER_SIDES = [
53617
+ "left",
53618
+ "right",
53619
+ "top",
53620
+ "bottom",
53621
+ "insideH",
53622
+ "insideV",
53623
+ "tl2br",
53624
+ "bl2tr"
53625
+ ];
53626
+ function parseSolidFillStyle(solidFill2) {
53627
+ if (!solidFill2) {
53628
+ return void 0;
53629
+ }
53630
+ const schemeClr = solidFill2["a:schemeClr"];
53631
+ if (!schemeClr) {
53632
+ return void 0;
53633
+ }
53634
+ const schemeColor = String(schemeClr["@_val"] || "").trim() || void 0;
53635
+ if (!schemeColor) {
53636
+ return void 0;
53637
+ }
53638
+ const tintRaw = schemeClr["a:tint"];
53639
+ const tint = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
53640
+ const shadeRaw = schemeClr["a:shade"];
53641
+ const shade = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
53642
+ return { schemeColor, tint, shade };
53643
+ }
53644
+ function parseBorderSide(side) {
53645
+ if (!side) {
53646
+ return void 0;
53647
+ }
53648
+ const ln = side["a:ln"];
53649
+ if (!ln) {
53650
+ return void 0;
53651
+ }
53652
+ const border = {};
53653
+ let has = false;
53654
+ if (ln["a:noFill"] !== void 0) {
53655
+ border.noFill = true;
53656
+ has = true;
53657
+ }
53658
+ const widthEmu = parseInt(String(ln["@_w"] || "0"), 10);
53659
+ if (widthEmu > 0) {
53660
+ border.width = Math.max(1, Math.round(widthEmu / EMU_PER_PIXEL));
53661
+ has = true;
53662
+ }
53663
+ const prstDash = ln["a:prstDash"];
53664
+ const dashVal = prstDash ? String(prstDash["@_val"] || "").trim() : "";
53665
+ if (dashVal) {
53666
+ border.dash = dashVal;
53667
+ has = true;
53668
+ }
53669
+ const solidFill2 = ln["a:solidFill"];
53670
+ const fill = parseSolidFillStyle(solidFill2);
53671
+ if (fill) {
53672
+ border.fill = fill;
53673
+ has = true;
53674
+ } else {
53675
+ const srgb = solidFill2?.["a:srgbClr"];
53676
+ const hex10 = srgb ? String(srgb["@_val"] || "").trim() : "";
53677
+ if (hex10) {
53678
+ border.color = hex10.startsWith("#") ? hex10 : `#${hex10}`;
53679
+ has = true;
53680
+ }
53681
+ }
53682
+ return has ? border : void 0;
53683
+ }
53684
+ function parseTableStyleBorders(tcStyle) {
53685
+ const tcBdr = tcStyle?.["a:tcBdr"];
53686
+ if (!tcBdr) {
53687
+ return void 0;
53688
+ }
53689
+ const result = {};
53690
+ let has = false;
53691
+ for (const name of BORDER_SIDES) {
53692
+ const border = parseBorderSide(tcBdr[`a:${name}`]);
53693
+ if (border) {
53694
+ result[name] = border;
53695
+ has = true;
53696
+ }
53697
+ }
53698
+ return has ? result : void 0;
53699
+ }
53353
53700
  var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
53354
53701
  /**
53355
53702
  * Export slides to a raster/vector format.
@@ -53433,30 +53780,15 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
53433
53780
  return void 0;
53434
53781
  }
53435
53782
  const tcStyle = section["a:tcStyle"];
53436
- if (!tcStyle) {
53437
- return void 0;
53438
- }
53439
- const fill = tcStyle["a:fill"];
53440
- if (!fill) {
53441
- return void 0;
53442
- }
53443
- const solidFill2 = fill["a:solidFill"];
53444
- if (!solidFill2) {
53445
- return void 0;
53446
- }
53447
- const schemeClr = solidFill2["a:schemeClr"];
53448
- if (!schemeClr) {
53449
- return void 0;
53450
- }
53451
- const schemeColor = String(schemeClr["@_val"] || "").trim() || void 0;
53452
- if (!schemeColor) {
53453
- return void 0;
53454
- }
53455
- const tintRaw = schemeClr["a:tint"];
53456
- const tint = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
53457
- const shadeRaw = schemeClr["a:shade"];
53458
- const shade = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
53459
- return { schemeColor, tint, shade };
53783
+ const fill = tcStyle?.["a:fill"];
53784
+ return parseSolidFillStyle(fill?.["a:solidFill"]);
53785
+ }
53786
+ /**
53787
+ * Extract border styling from a table style section's
53788
+ * `a:tcStyle/a:tcBdr` (per-side line width, dash, and colour).
53789
+ */
53790
+ extractTableStyleSectionBorders(section) {
53791
+ return parseTableStyleBorders(section?.["a:tcStyle"]);
53460
53792
  }
53461
53793
  /**
53462
53794
  * Extract text properties from a:tcTxStyle in a table style section.
@@ -53603,6 +53935,15 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
53603
53935
  textProps[`${name}Text`] = text2;
53604
53936
  }
53605
53937
  }
53938
+ const borderProps = {};
53939
+ for (const name of sectionNames) {
53940
+ const borders = this.extractTableStyleSectionBorders(
53941
+ style[`a:${name}`]
53942
+ );
53943
+ if (borders) {
53944
+ borderProps[`${name}Borders`] = borders;
53945
+ }
53946
+ }
53606
53947
  const entry = {
53607
53948
  styleId,
53608
53949
  styleName,
@@ -53621,7 +53962,8 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
53621
53962
  ...swCellFill ? { swCellFill } : {},
53622
53963
  ...neCellFill ? { neCellFill } : {},
53623
53964
  ...nwCellFill ? { nwCellFill } : {},
53624
- ...textProps
53965
+ ...textProps,
53966
+ ...borderProps
53625
53967
  };
53626
53968
  map[styleId] = entry;
53627
53969
  }
@@ -55414,6 +55756,15 @@ var PptxHandlerRuntime11 = class extends PptxHandlerRuntime10 {
55414
55756
  if (align === "justify") {
55415
55757
  return "just";
55416
55758
  }
55759
+ if (align === "justLow") {
55760
+ return "justLow";
55761
+ }
55762
+ if (align === "dist") {
55763
+ return "dist";
55764
+ }
55765
+ if (align === "thaiDist") {
55766
+ return "thaiDist";
55767
+ }
55417
55768
  return void 0;
55418
55769
  }
55419
55770
  pixelsToPoints(px2) {
@@ -56458,6 +56809,16 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime3 extends PptxHandlerRuntime
56458
56809
  const chOffY = 0;
56459
56810
  const chExtCx = extCx;
56460
56811
  const chExtCy = extCy;
56812
+ const xfrmAttrs = {};
56813
+ if (typeof group.rotation === "number" && group.rotation !== 0) {
56814
+ xfrmAttrs["@_rot"] = String(Math.round(group.rotation * 6e4));
56815
+ }
56816
+ if (group.flipHorizontal) {
56817
+ xfrmAttrs["@_flipH"] = "1";
56818
+ }
56819
+ if (group.flipVertical) {
56820
+ xfrmAttrs["@_flipV"] = "1";
56821
+ }
56461
56822
  const grpXml = {
56462
56823
  "p:nvGrpSpPr": {
56463
56824
  "p:cNvPr": { "@_id": "0", "@_name": group.id },
@@ -56466,6 +56827,7 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime3 extends PptxHandlerRuntime
56466
56827
  },
56467
56828
  "p:grpSpPr": {
56468
56829
  "a:xfrm": {
56830
+ ...xfrmAttrs,
56469
56831
  "a:off": {
56470
56832
  "@_x": String(offX),
56471
56833
  "@_y": String(offY)
@@ -62590,45 +62952,18 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
62590
62952
  const s3d = shapeStyle.scene3d;
62591
62953
  const hasData = s3d.cameraPreset || s3d.lightRigType;
62592
62954
  if (hasData) {
62593
- const cameraObj = {};
62594
- if (s3d.cameraPreset) {
62595
- cameraObj["@_prst"] = s3d.cameraPreset;
62596
- }
62597
- if (s3d.cameraRotX !== void 0 || s3d.cameraRotY !== void 0 || s3d.cameraRotZ !== void 0) {
62598
- const rot = {};
62599
- if (s3d.cameraRotX !== void 0) {
62600
- rot["@_lat"] = String(s3d.cameraRotX);
62601
- }
62602
- if (s3d.cameraRotY !== void 0) {
62603
- rot["@_lon"] = String(s3d.cameraRotY);
62604
- }
62605
- if (s3d.cameraRotZ !== void 0) {
62606
- rot["@_rev"] = String(s3d.cameraRotZ);
62607
- }
62608
- cameraObj["a:rot"] = rot;
62609
- }
62610
- const lightRigObj = {};
62611
- if (s3d.lightRigType) {
62612
- lightRigObj["@_rig"] = s3d.lightRigType;
62613
- }
62614
- if (s3d.lightRigDirection) {
62615
- lightRigObj["@_dir"] = s3d.lightRigDirection;
62616
- }
62617
- const scene3dXml = {};
62618
- scene3dXml["a:camera"] = cameraObj;
62619
- if (Object.keys(lightRigObj).length > 0) {
62620
- scene3dXml["a:lightRig"] = lightRigObj;
62621
- }
62622
- if (s3d.hasBackdrop) {
62623
- const backdropObj = {};
62624
- if (s3d.backdropAnchorX !== void 0 || s3d.backdropAnchorY !== void 0 || s3d.backdropAnchorZ !== void 0) {
62625
- backdropObj["a:anchor"] = {
62626
- "@_x": String(s3d.backdropAnchorX ?? 0),
62627
- "@_y": String(s3d.backdropAnchorY ?? 0),
62628
- "@_z": String(s3d.backdropAnchorZ ?? 0)
62629
- };
62630
- }
62631
- scene3dXml["a:backdrop"] = backdropObj;
62955
+ const source = spPr["a:scene3d"] ?? {};
62956
+ const scene3dXml = { ...source };
62957
+ scene3dXml["a:camera"] = buildScene3dCamera(s3d, source);
62958
+ const lightRig = buildScene3dLightRig(s3d, source);
62959
+ if (lightRig) {
62960
+ scene3dXml["a:lightRig"] = lightRig;
62961
+ }
62962
+ const backdrop = buildScene3dBackdrop(s3d);
62963
+ if (backdrop) {
62964
+ scene3dXml["a:backdrop"] = backdrop;
62965
+ } else {
62966
+ delete scene3dXml["a:backdrop"];
62632
62967
  }
62633
62968
  spPr["a:scene3d"] = scene3dXml;
62634
62969
  } else {
@@ -62673,12 +63008,12 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
62673
63008
  }
62674
63009
  if (sh3d.extrusionColor) {
62675
63010
  sp3dXml["a:extrusionClr"] = {
62676
- "a:srgbClr": { "@_val": sh3d.extrusionColor }
63011
+ "a:srgbClr": { "@_val": sh3d.extrusionColor.replace("#", "") }
62677
63012
  };
62678
63013
  }
62679
63014
  if (sh3d.contourColor) {
62680
63015
  sp3dXml["a:contourClr"] = {
62681
- "a:srgbClr": { "@_val": sh3d.contourColor }
63016
+ "a:srgbClr": { "@_val": sh3d.contourColor.replace("#", "") }
62682
63017
  };
62683
63018
  }
62684
63019
  spPr["a:sp3d"] = sp3dXml;
@@ -62690,6 +63025,77 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
62690
63025
  }
62691
63026
  }
62692
63027
  };
63028
+ function buildSphereRot(lat, lon, rev) {
63029
+ if (lat === void 0 && lon === void 0 && rev === void 0) {
63030
+ return void 0;
63031
+ }
63032
+ const rot = {};
63033
+ if (lat !== void 0) {
63034
+ rot["@_lat"] = String(lat);
63035
+ }
63036
+ if (lon !== void 0) {
63037
+ rot["@_lon"] = String(lon);
63038
+ }
63039
+ if (rev !== void 0) {
63040
+ rot["@_rev"] = String(rev);
63041
+ }
63042
+ return rot;
63043
+ }
63044
+ function buildScene3dCamera(s3d, source) {
63045
+ const camera = { ...source["a:camera"] ?? {} };
63046
+ if (s3d.cameraPreset) {
63047
+ camera["@_prst"] = s3d.cameraPreset;
63048
+ }
63049
+ if (s3d.cameraFieldOfView !== void 0) {
63050
+ camera["@_fov"] = String(s3d.cameraFieldOfView);
63051
+ }
63052
+ if (s3d.cameraZoom !== void 0) {
63053
+ camera["@_zoom"] = String(s3d.cameraZoom);
63054
+ }
63055
+ const rot = buildSphereRot(s3d.cameraRotX, s3d.cameraRotY, s3d.cameraRotZ);
63056
+ if (rot) {
63057
+ camera["a:rot"] = rot;
63058
+ }
63059
+ return camera;
63060
+ }
63061
+ function buildScene3dLightRig(s3d, source) {
63062
+ const lightRig = { ...source["a:lightRig"] ?? {} };
63063
+ if (s3d.lightRigType) {
63064
+ lightRig["@_rig"] = s3d.lightRigType;
63065
+ }
63066
+ if (s3d.lightRigDirection) {
63067
+ lightRig["@_dir"] = s3d.lightRigDirection;
63068
+ }
63069
+ const rot = buildSphereRot(s3d.lightRigRotX, s3d.lightRigRotY, s3d.lightRigRotZ);
63070
+ if (rot) {
63071
+ lightRig["a:rot"] = rot;
63072
+ }
63073
+ return Object.keys(lightRig).length > 0 ? lightRig : void 0;
63074
+ }
63075
+ function buildScene3dBackdrop(s3d) {
63076
+ const hasNorm = s3d.backdropNormalX !== void 0 || s3d.backdropNormalY !== void 0 || s3d.backdropNormalZ !== void 0;
63077
+ const hasUp = s3d.backdropUpX !== void 0 || s3d.backdropUpY !== void 0 || s3d.backdropUpZ !== void 0;
63078
+ if (!s3d.hasBackdrop || !hasNorm || !hasUp) {
63079
+ return void 0;
63080
+ }
63081
+ return {
63082
+ "a:anchor": {
63083
+ "@_x": String(s3d.backdropAnchorX ?? 0),
63084
+ "@_y": String(s3d.backdropAnchorY ?? 0),
63085
+ "@_z": String(s3d.backdropAnchorZ ?? 0)
63086
+ },
63087
+ "a:norm": {
63088
+ "@_dx": String(s3d.backdropNormalX ?? 0),
63089
+ "@_dy": String(s3d.backdropNormalY ?? 0),
63090
+ "@_dz": String(s3d.backdropNormalZ ?? 0)
63091
+ },
63092
+ "a:up": {
63093
+ "@_dx": String(s3d.backdropUpX ?? 0),
63094
+ "@_dy": String(s3d.backdropUpY ?? 0),
63095
+ "@_dz": String(s3d.backdropUpZ ?? 0)
63096
+ }
63097
+ };
63098
+ }
62693
63099
  var PptxHandlerRuntime30 = class _PptxHandlerRuntime9 extends PptxHandlerRuntime29 {
62694
63100
  /**
62695
63101
  * Build and write the text body (`p:txBody`) for shapes, text boxes,
@@ -67635,7 +68041,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
67635
68041
  pointsToPixels(points3) {
67636
68042
  return points3 * (96 / 72);
67637
68043
  }
67638
- parseParagraphSpacingPx(spacingNode) {
68044
+ parseParagraphSpacingPx(spacingNode, basisFontSizePx) {
67639
68045
  if (!spacingNode) {
67640
68046
  return void 0;
67641
68047
  }
@@ -67646,6 +68052,13 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
67646
68052
  if (Number.isFinite(spacingPointsRaw)) {
67647
68053
  return this.pointsToPixels(spacingPointsRaw / 100);
67648
68054
  }
68055
+ const spacingPercentRaw = Number.parseInt(
68056
+ String(spacingNode["a:spcPct"]?.["@_val"] || ""),
68057
+ 10
68058
+ );
68059
+ if (Number.isFinite(spacingPercentRaw) && typeof basisFontSizePx === "number" && basisFontSizePx > 0) {
68060
+ return spacingPercentRaw / 1e5 * basisFontSizePx;
68061
+ }
67649
68062
  return void 0;
67650
68063
  }
67651
68064
  parseLineSpacingMultiplier(lineSpacingNode) {
@@ -67723,7 +68136,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
67723
68136
  }
67724
68137
  };
67725
68138
  var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
67726
- resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath) {
68139
+ resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath, effectiveLevelStyles) {
67727
68140
  if (!paragraph) {
67728
68141
  return null;
67729
68142
  }
@@ -67759,11 +68172,8 @@ var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
67759
68172
  }
67760
68173
  }
67761
68174
  if (!resolvedBulletProps) {
67762
- if (isBodyPlaceholder) {
67763
- const presentationLevelStyle = this.presentationDefaultTextStyle?.levelStyles?.[normalizedLevel - 1] ?? this.presentationDefaultTextStyle?.levelStyles?.[-1];
67764
- return this.createBulletInfoFromLevelStyle(presentationLevelStyle, paragraphIndex);
67765
- }
67766
- return null;
68175
+ const fallbackLevelStyle = effectiveLevelStyles?.[normalizedLevel - 1] ?? effectiveLevelStyles?.[-1] ?? (isBodyPlaceholder ? this.presentationDefaultTextStyle?.levelStyles?.[normalizedLevel - 1] ?? this.presentationDefaultTextStyle?.levelStyles?.[-1] : void 0);
68176
+ return this.createBulletInfoFromLevelStyle(fallbackLevelStyle, paragraphIndex);
67767
68177
  }
67768
68178
  const buFont = resolvedBulletProps["a:buFont"];
67769
68179
  const fontFamily = buFont?.["@_typeface"] ? String(buFont["@_typeface"]) : void 0;
@@ -68249,16 +68659,21 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
68249
68659
  textStyle.align = paraAlign;
68250
68660
  }
68251
68661
  }
68662
+ const spacingBasisPx = typeof textStyle.fontSize === "number" ? textStyle.fontSize : void 0;
68252
68663
  if (textStyle.paragraphSpacingBefore === void 0) {
68253
68664
  const spacingBefore = this.parseParagraphSpacingPx(
68254
- pPr?.["a:spcBef"]
68665
+ pPr?.["a:spcBef"],
68666
+ spacingBasisPx
68255
68667
  );
68256
68668
  if (spacingBefore !== void 0) {
68257
68669
  textStyle.paragraphSpacingBefore = spacingBefore;
68258
68670
  }
68259
68671
  }
68260
68672
  if (textStyle.paragraphSpacingAfter === void 0) {
68261
- const spacingAfter = this.parseParagraphSpacingPx(pPr?.["a:spcAft"]);
68673
+ const spacingAfter = this.parseParagraphSpacingPx(
68674
+ pPr?.["a:spcAft"],
68675
+ spacingBasisPx
68676
+ );
68262
68677
  if (spacingAfter !== void 0) {
68263
68678
  textStyle.paragraphSpacingAfter = spacingAfter;
68264
68679
  }
@@ -68430,7 +68845,8 @@ var PptxHandlerRuntime63 = class extends PptxHandlerRuntime62 {
68430
68845
  ctx.txBody,
68431
68846
  ctx.inheritedTxBody,
68432
68847
  isBodyPlaceholder,
68433
- ctx.slidePath
68848
+ ctx.slidePath,
68849
+ ctx.effectiveLevelStyles
68434
68850
  );
68435
68851
  if (paragraphBulletInfo && !paragraphBulletInfo.none) {
68436
68852
  let bulletText;
@@ -69035,7 +69451,7 @@ var PptxHandlerRuntime65 = class _PptxHandlerRuntime28 extends PptxHandlerRuntim
69035
69451
  const skewY = xfrm["@_skewY"] ? parseEmuInt(xfrm["@_skewY"]) / 6e4 : void 0;
69036
69452
  const { flipHorizontal, flipVertical } = this.readFlipState(xfrm);
69037
69453
  const nvPr = pic?.["p:nvPicPr"]?.["p:nvPr"];
69038
- const mediaReference = parseDrawingMediaReference(nvPr);
69454
+ const mediaReference = parseDrawingMediaReference(nvPr, this.externalRelsMap.get(slidePath));
69039
69455
  if (mediaReference) {
69040
69456
  this.compatibilityService.inspectMediaReferenceCompatibility(
69041
69457
  mediaReference.kind,
@@ -69799,6 +70215,9 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69799
70215
  const grpSpPr = group["p:grpSpPr"];
69800
70216
  const xfrm = grpSpPr?.["a:xfrm"];
69801
70217
  let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
70218
+ let groupRotation;
70219
+ let flipHorizontal = false;
70220
+ let flipVertical = false;
69802
70221
  if (xfrm) {
69803
70222
  const off = xfrm["a:off"];
69804
70223
  if (off) {
@@ -69810,6 +70229,12 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69810
70229
  parentW = Math.round(parseEmuInt2(ext["@_cx"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69811
70230
  parentH = Math.round(parseEmuInt2(ext["@_cy"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69812
70231
  }
70232
+ if (xfrm["@_rot"] !== void 0 && xfrm["@_rot"] !== null) {
70233
+ const rot = parseInt(String(xfrm["@_rot"]), 10) / 6e4;
70234
+ groupRotation = Number.isFinite(rot) && rot !== 0 ? rot : void 0;
70235
+ }
70236
+ flipHorizontal = this.parseBooleanAttr(xfrm["@_flipH"]);
70237
+ flipVertical = this.parseBooleanAttr(xfrm["@_flipV"]);
69813
70238
  }
69814
70239
  const grpFillStyle = grpSpPr ? this.extractShapeStyle(grpSpPr) : void 0;
69815
70240
  const hasGroupFill = grpFillStyle && grpFillStyle.fillMode && grpFillStyle.fillMode !== "none";
@@ -69855,6 +70280,9 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69855
70280
  y: parentY,
69856
70281
  width: parentW || Math.max(...children10.map((c) => c.x + c.width)),
69857
70282
  height: parentH || Math.max(...children10.map((c) => c.y + c.height)),
70283
+ rotation: groupRotation,
70284
+ flipHorizontal: flipHorizontal || void 0,
70285
+ flipVertical: flipVertical || void 0,
69858
70286
  children: children10,
69859
70287
  rawXml: group,
69860
70288
  actionClick: grpActionClick,
@@ -70021,6 +70449,7 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
70021
70449
  if (!normalized) {
70022
70450
  return void 0;
70023
70451
  }
70452
+ const canon = (key) => key.toLowerCase() === "folhlink" ? "folHlink" : key;
70024
70453
  if (normalized === "phclr") {
70025
70454
  const injected = this.themeColorMap["phclr"];
70026
70455
  if (injected) {
@@ -70030,17 +70459,18 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
70030
70459
  }
70031
70460
  const overrideMap = this.currentSlideClrMapOverride ?? this.currentMasterClrMap;
70032
70461
  if (overrideMap) {
70033
- const remapped = overrideMap[normalized];
70462
+ const remapped = overrideMap[canon(normalized)];
70034
70463
  if (remapped) {
70035
- return this.themeColorMap[remapped] || this.getDefaultSchemeColorMap()[remapped];
70464
+ const target = canon(remapped);
70465
+ return this.themeColorMap[target] || this.getDefaultSchemeColorMap()[target];
70036
70466
  }
70037
70467
  } else {
70038
70468
  const defaultAliasTarget = DEFAULT_CLR_MAP_ALIAS[normalized];
70039
70469
  if (defaultAliasTarget) {
70040
- return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
70470
+ return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
70041
70471
  }
70042
70472
  }
70043
- return this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
70473
+ return this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
70044
70474
  }
70045
70475
  normalizeStrokeDashType(value) {
70046
70476
  const normalized = String(value ?? "").trim();
@@ -70817,11 +71247,24 @@ var PptxHandlerRuntime72 = class _PptxHandlerRuntime31 extends PptxHandlerRuntim
70817
71247
  }
70818
71248
  }
70819
71249
  }
70820
- const spcBef = this.parseParagraphSpacingPx(levelProps["a:spcBef"]);
71250
+ const defRPrSzRaw = Number.parseInt(
71251
+ String(
71252
+ levelProps["a:defRPr"]?.["@_sz"] || ""
71253
+ ),
71254
+ 10
71255
+ );
71256
+ const basisFontSizePx = Number.isFinite(defRPrSzRaw) ? this.pointsToPixels(defRPrSzRaw / 100) : void 0;
71257
+ const spcBef = this.parseParagraphSpacingPx(
71258
+ levelProps["a:spcBef"],
71259
+ basisFontSizePx
71260
+ );
70821
71261
  if (spcBef !== void 0) {
70822
71262
  style.spaceBefore = spcBef;
70823
71263
  }
70824
- const spcAft = this.parseParagraphSpacingPx(levelProps["a:spcAft"]);
71264
+ const spcAft = this.parseParagraphSpacingPx(
71265
+ levelProps["a:spcAft"],
71266
+ basisFontSizePx
71267
+ );
70825
71268
  if (spcAft !== void 0) {
70826
71269
  style.spaceAfter = spcAft;
70827
71270
  }
@@ -70846,9 +71289,9 @@ var PptxHandlerRuntime72 = class _PptxHandlerRuntime31 extends PptxHandlerRuntim
70846
71289
  }
70847
71290
  const buClr = levelProps["a:buClr"];
70848
71291
  if (buClr) {
70849
- const srgb = buClr["a:srgbClr"];
70850
- if (srgb?.["@_val"]) {
70851
- style.bulletColor = String(srgb["@_val"]);
71292
+ const bulletColor = this.parseColor(buClr);
71293
+ if (bulletColor) {
71294
+ style.bulletColor = bulletColor;
70852
71295
  }
70853
71296
  }
70854
71297
  const buSzPts = levelProps["a:buSzPts"];
@@ -73327,6 +73770,87 @@ var PptxHandlerRuntime83 = class extends PptxHandlerRuntime82 {
73327
73770
  return void 0;
73328
73771
  }
73329
73772
  };
73773
+ function extractDrawingShapeFill(spPr, deps) {
73774
+ const result = {};
73775
+ const solidFill2 = deps.getChild(spPr, "solidFill");
73776
+ if (solidFill2) {
73777
+ result.fillColor = deps.parseColor(solidFill2) ?? void 0;
73778
+ }
73779
+ const gradFill = !solidFill2 ? deps.getChild(spPr, "gradFill") : void 0;
73780
+ if (gradFill) {
73781
+ const stops = deps.extractGradientStops(gradFill).map((stop) => ({
73782
+ color: stop.color,
73783
+ position: stop.position,
73784
+ ...stop.opacity !== void 0 ? { opacity: stop.opacity } : {}
73785
+ }));
73786
+ if (stops.length > 0) {
73787
+ result.fillGradientStops = stops;
73788
+ result.fillGradientType = deps.extractGradientType(gradFill);
73789
+ result.fillGradientAngle = deps.extractGradientAngle(gradFill);
73790
+ result.fillColor ??= stops[Math.floor(stops.length / 2)]?.color;
73791
+ }
73792
+ }
73793
+ const pattFill = !solidFill2 && !gradFill ? deps.getChild(spPr, "pattFill") : void 0;
73794
+ if (pattFill) {
73795
+ const preset = String(pattFill["@_prst"] || "").trim();
73796
+ if (preset) {
73797
+ result.fillPatternPreset = preset;
73798
+ }
73799
+ const fg = deps.parseColor(deps.getChild(pattFill, "fgClr"));
73800
+ const bg = deps.parseColor(deps.getChild(pattFill, "bgClr"));
73801
+ if (fg) {
73802
+ result.fillPatternForegroundColor = fg;
73803
+ }
73804
+ if (bg) {
73805
+ result.fillPatternBackgroundColor = bg;
73806
+ }
73807
+ result.fillColor ??= fg ?? bg;
73808
+ }
73809
+ const blipFill = !solidFill2 && !gradFill && !pattFill ? deps.getChild(spPr, "blipFill") : void 0;
73810
+ if (blipFill) {
73811
+ const blip = deps.getChild(blipFill, "blip");
73812
+ const embed = String(
73813
+ blip?.["@_r:embed"] || blip?.["@_embed"] || blip?.["@_r:link"] || ""
73814
+ ).trim();
73815
+ if (embed) {
73816
+ result.fillBlipEmbedId = embed;
73817
+ }
73818
+ }
73819
+ const shadowColor = deps.extractShadowColor(spPr);
73820
+ if (shadowColor) {
73821
+ result.hasShadow = true;
73822
+ result.shadowColor = shadowColor;
73823
+ }
73824
+ return result;
73825
+ }
73826
+ function extractDrawingShapeTextStyle(txBody, deps) {
73827
+ let fontSize;
73828
+ let fontColor;
73829
+ if (!txBody) {
73830
+ return { fontSize, fontColor };
73831
+ }
73832
+ const paragraphs = deps.getChildren(txBody, "p");
73833
+ for (const p of paragraphs) {
73834
+ const runs = deps.getChildren(p, "r");
73835
+ for (const r of runs) {
73836
+ const rPr = deps.getChild(r, "rPr");
73837
+ if (rPr && !fontSize) {
73838
+ const szRaw = parseInt(String(rPr["@_sz"] || ""), 10);
73839
+ if (Number.isFinite(szRaw) && szRaw > 0) {
73840
+ fontSize = szRaw / 100;
73841
+ }
73842
+ fontColor = deps.parseColor(deps.getChild(rPr, "solidFill")) ?? void 0;
73843
+ }
73844
+ if (fontSize) {
73845
+ break;
73846
+ }
73847
+ }
73848
+ if (fontSize) {
73849
+ break;
73850
+ }
73851
+ }
73852
+ return { fontSize, fontColor };
73853
+ }
73330
73854
  function resolveSmartArtTextStyles(paragraphs, resolve) {
73331
73855
  for (const paragraph of paragraphs ?? []) {
73332
73856
  if (paragraph.endParaRPr) {
@@ -73499,8 +74023,7 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
73499
74023
  };
73500
74024
  }
73501
74025
  }
73502
- const solidFill2 = this.xmlLookupService.getChildByLocalName(spPr, "solidFill");
73503
- const fillColor = this.parseColor(solidFill2);
74026
+ const fill = extractDrawingShapeFill(spPr, this.drawingShapeStyleDeps());
73504
74027
  const lnNode = this.xmlLookupService.getChildByLocalName(spPr, "ln");
73505
74028
  const lnFill = lnNode ? this.xmlLookupService.getChildByLocalName(lnNode, "solidFill") : void 0;
73506
74029
  const strokeColor = this.parseColor(lnFill);
@@ -73512,7 +74035,10 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
73512
74035
  this.collectLocalTextValues(txBody, "t", textValues2);
73513
74036
  }
73514
74037
  const text2 = textValues2.join("").trim() || void 0;
73515
- const { fontSize, fontColor } = this.extractDrawingShapeTextStyle(txBody);
74038
+ const { fontSize, fontColor } = extractDrawingShapeTextStyle(
74039
+ txBody,
74040
+ this.drawingShapeStyleDeps()
74041
+ );
73516
74042
  const paragraphs = txBody ? resolveSmartArtTextStyles(
73517
74043
  parseSmartArtTextParagraphs({ "dgm:t": txBody }),
73518
74044
  (rPr) => this.extractTextRunStyle(rPr, void 0, void 0, false)
@@ -73538,7 +74064,8 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
73538
74064
  rotation,
73539
74065
  skewX,
73540
74066
  skewY,
73541
- fillColor: fillColor ?? void 0,
74067
+ ...fill,
74068
+ fillColor: fill.fillColor ?? void 0,
73542
74069
  strokeColor: strokeColor ?? void 0,
73543
74070
  strokeWidth,
73544
74071
  text: structuredText,
@@ -73548,34 +74075,21 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
73548
74075
  ...customGeometry
73549
74076
  };
73550
74077
  }
73551
- extractDrawingShapeTextStyle(txBody) {
73552
- let fontSize;
73553
- let fontColor;
73554
- if (!txBody) {
73555
- return { fontSize, fontColor };
73556
- }
73557
- const paragraphs = this.xmlLookupService.getChildrenArrayByLocalName(txBody, "p");
73558
- for (const p of paragraphs) {
73559
- const runs = this.xmlLookupService.getChildrenArrayByLocalName(p, "r");
73560
- for (const r of runs) {
73561
- const rPr = this.xmlLookupService.getChildByLocalName(r, "rPr");
73562
- if (rPr && !fontSize) {
73563
- const szRaw = parseInt(String(rPr["@_sz"] || ""), 10);
73564
- if (Number.isFinite(szRaw) && szRaw > 0) {
73565
- fontSize = szRaw / 100;
73566
- }
73567
- const rprFill = this.xmlLookupService.getChildByLocalName(rPr, "solidFill");
73568
- fontColor = this.parseColor(rprFill) ?? void 0;
73569
- }
73570
- if (fontSize) {
73571
- break;
73572
- }
73573
- }
73574
- if (fontSize) {
73575
- break;
73576
- }
73577
- }
73578
- return { fontSize, fontColor };
74078
+ /**
74079
+ * Build the injected accessor bundle used by the pure drawing-shape style
74080
+ * helpers, binding the shared XML-lookup / colour / gradient / shadow codec
74081
+ * methods so no new colour logic is duplicated here.
74082
+ */
74083
+ drawingShapeStyleDeps() {
74084
+ return {
74085
+ getChild: (node, local) => this.xmlLookupService.getChildByLocalName(node, local),
74086
+ getChildren: (node, local) => this.xmlLookupService.getChildrenArrayByLocalName(node, local),
74087
+ parseColor: (node) => this.parseColor(node),
74088
+ extractGradientStops: (gradFill) => this.extractGradientStops(gradFill),
74089
+ extractGradientType: (gradFill) => this.extractGradientType(gradFill),
74090
+ extractGradientAngle: (gradFill) => this.extractGradientAngle(gradFill),
74091
+ extractShadowColor: (spPr) => this.extractShadowStyle(spPr).shadowColor
74092
+ };
73579
74093
  }
73580
74094
  };
73581
74095
  var CATEGORY_FAMILY = {
@@ -76025,6 +76539,7 @@ var PptxHandlerRuntime95 = class _PptxHandlerRuntime38 extends PptxHandlerRuntim
76025
76539
  });
76026
76540
  this.mediaDataParser = new PptxMediaDataParser({
76027
76541
  slideRelsMap: this.slideRelsMap,
76542
+ externalRelsMap: this.externalRelsMap,
76028
76543
  resolvePath: (base, relative) => this.resolvePath(base, relative),
76029
76544
  getPathExtension: (pathValue) => this.getPathExtension(pathValue)
76030
76545
  });
@@ -78679,9 +79194,9 @@ function removeEmptyDataPoint(series, pointIndex) {
78679
79194
  }
78680
79195
  }
78681
79196
  }
78682
- var EMU_PER_PIXEL = 9525;
79197
+ var EMU_PER_PIXEL2 = 9525;
78683
79198
  function pxToEmu(px2) {
78684
- return Math.round(px2 * EMU_PER_PIXEL);
79199
+ return Math.round(px2 * EMU_PER_PIXEL2);
78685
79200
  }
78686
79201
  function placeholderSpXml(ph, shapeId) {
78687
79202
  const name = ph.name ?? `${ph.type.charAt(0).toUpperCase() + ph.type.slice(1)} Placeholder ${shapeId - 1}`;
@@ -80413,7 +80928,7 @@ var GroupBuilder = class _GroupBuilder {
80413
80928
  };
80414
80929
  var PPI = 96;
80415
80930
  var POINTS_PER_INCH = 72;
80416
- var EMU_PER_PIXEL2 = 9525;
80931
+ var EMU_PER_PIXEL3 = 9525;
80417
80932
  var EMU_PER_INCH = 914400;
80418
80933
  var EMU_PER_POINT = 12700;
80419
80934
  function inches(value) {
@@ -80429,10 +80944,10 @@ function pt(value) {
80429
80944
  return Math.round(value / POINTS_PER_INCH * PPI);
80430
80945
  }
80431
80946
  function emuToPixels(emu) {
80432
- return Math.round(emu / EMU_PER_PIXEL2);
80947
+ return Math.round(emu / EMU_PER_PIXEL3);
80433
80948
  }
80434
80949
  function pixelsToEmu(px2) {
80435
- return Math.round(px2 * EMU_PER_PIXEL2);
80950
+ return Math.round(px2 * EMU_PER_PIXEL3);
80436
80951
  }
80437
80952
  function inchesToEmu(value) {
80438
80953
  return Math.round(value * EMU_PER_INCH);
@@ -90658,4 +91173,4 @@ var SvgExporter = class _SvgExporter {
90658
91173
  * `<p:extLst>` (optional)
90659
91174
  */
90660
91175
 
90661
- export { ALL_ANIMATION_PRESETS, BLIP_FILL_ORDER, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, ChartBuilder, ConnectorBuilder, ConnectorXmlFactory, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DIGEST_ALGORITHM_TO_HASH, DIGEST_ALGORITHM_TO_WEB_CRYPTO, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, DIGITAL_SIGNATURE_REL_TYPE, DataIntegrityError, DocumentConverter, EFFECT_LST_ORDER, ELEMENT_FIELD_KIND, EMPHASIS_PRESETS, EMU_PER_INCH, EMU_PER_PIXEL2, EMU_PER_POINT, EMU_PER_PX, ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, ENTERPRISE_REQUIRE_REVOCATION_ENV, ENTERPRISE_REQUIRE_TIMESTAMP_ENV, ENTERPRISE_TRUST_ROOTS_FILE_ENV, ENTERPRISE_TRUST_ROOTS_PEM_ENV, ENTRANCE_PRESETS, EXIT_PRESETS, EncryptedFileError, FONT_SUBSTITUTION_MAP, FreeformPathBuilder, GroupBuilder, ImageBuilder, IncorrectPasswordError, MAX_TABLE_DIMENSION, MAX_ZIP_ENTRY_COUNT, MIN_ELEMENT_SIZE, MIN_TABLE_DIMENSION, MOTION_PATH_PRESETS, MediaBuilder, MediaContext, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, OPC_RELATIONSHIP_TRANSFORM, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Ole2ParseError, P14_GUIDE_URI, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, POWERPOINT_PRESENCE_KEY, PPTX_VIEWER_MANIFEST_NS, PRESET_COLOR_MAP, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime96, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMarkdownConverter, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, Presentation, PresentationBuilder, SHAPE_TREE_ELEMENT_TAGS, SLIDE_FIELD_KIND, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER, STROKE_DASH_OPTIONS, SUPPORTED_XML_CANON_TRANSFORMS, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, ShapeBuilder, SlideBuilder, SlideProcessor, SlideSizes, SvgExporter, TC_PR_BORDERS_ORDER, THEME_COLOR_SCHEME_KEYS, THEME_PRESETS, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, TextShapeXmlFactory, ThemePresets, VML_SHAPE_TAGS, XMLDSIG_NS, XML_TRANSFORM_ENVELOPED_SIGNATURE, ZipBombError, addChartCategory, addChartSeries, addSection, addSmartArtNode, addSmartArtNodeAsChild, applyBubbleChartOptions, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySmartArtConstraintRules, applySmartArtLayoutDefinition, applyTableCellTextAndStyle, applyTemplate, applyThemeOverrideToSlide, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, buildInkMlContent, buildLinkedTextBoxChains, buildOle2, buildSingleEffectNode, buildSrgbColorChoice, buildThemeColorMap, catmullRomToBezier, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, clampUnitInterval, classifyPanose, cloneElement, cloneShapeStyle, cloneSlide, cloneTemplateElementsBySlideId, cloneTextStyle, cloneXmlObject, cm, cmToEmu, colorWithOpacity, colorsEqual, combineShapes, computeContrastRatio, computeCycleLayout, computeDetailStatus, computeDigestBase64, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, computeVerificationStatus, convertEmfToDataUrl, convertWmfToDataUrl, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createEditorId, createFreeformElement, createGroupElement, createImageElement, createLayout, createLayouts, createMediaElement, createModifyVerifier, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTemplateConnectorRawXml, createTemplateShapeRawXml, createTextElement, createUniformTextSegments, dataUrlToMediaBytes, decodeOle10Native, decodeXmlEntities, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, deriveOutputPath, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, diffPresentations, diffSlides, distributeSegmentsAcrossChain, douglasPeucker, duplicateElement, duplicateSlide, elementActionToPptxAction, elementHasAction, emuToPixels, encryptPptx, ensureArrayValue, escapeXmlAttr, escapeXmlText, estimateTextBoxCapacity, evaluateGeometryPaths, evaluateGuides, evaluatePresetShape, extractAllTagText, extractColorChoiceXml, extractFirstTagText, extractGraphicBuilds, extractGuidFromPartName, extractModel3DTransform, extractStyleReferenceColorXml, extractTagAttribute, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, findOpenXmlCoverage, findPlaceholders, findText, formatCommentTimestamp, fragmentShapes, generateFontGuid, generateLayoutXml, generateMediaFilename, getAdjustmentAwareClipPath, getAdjustmentAwareShapeClipPath, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getCloudPathForRendering, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getDirectory, getElementLabel, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getNativeAnimationPresetMetadata, getOleObjectTypeLabel, getPanoseWeight, getPresetShapeClipPath, getPresetsByCategory, getRoundRectRadiusPx, getSectionForSlide, getSectionSlideRange, getShapeClipPath, getShapeClipPathFromPreset, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getThemePreset, getZoomElements, getZoomTargetSlideIndexes, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasShapeProperties, hasTextProperties, hexToRgbChannels, hslToRgb, inches, inchesToEmu, inferOleExtensionFromTarget, interpolateShapeGeometry, intersectPolygons, intersectShapes, intersectSvgPaths, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2, layoutEngineShapesToDrawingShapes, listUnassessedOpenXmlCoverage, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlToPresetName, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseChart3DSurfaces, parseChartAxes, parseChartLayouts, parseChartManualLayout, parseChartUpDownBars, parseCondition, parseConditionList, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDiagramRelationshipIds, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseInkMlContent, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConstraintRules, parseSmartArtDefinitionHeaderList, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtQuickStyleLabels, parseStructuredCustomGeometry, parseSvgPath, parseTimeTargetElement, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, rebuildTableStructureInRawXml, reconcileAnimationTargets, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeSection, removeSmartArtNode, reorderObjectKeys, reorderSections, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, replaceShapeGeometry, replaceText, replaceTextInSlide, replaceWithCustomGeometry, resetCloneIdCounter, resetDecomposeCounter, resetIdCounter, resetSectionIdCounter, resetSmartArtEditCounter, resolveCoordinate, resolveCustomShowSlideIndices, resolveLayoutDisplayName, resolveModel3DMimeType, resolveReferenceUriToPart, resolveTableCellStyle, rgbToHsl, selectAlternateContentBranch, serializeColorChoice, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeSmartArtDefinitionHeaderList, serializeSvgPath, serializeTimeTargetElement, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, setElementLocked, setSmartArtNodeStyle, shouldRenderFallbackLabel, shouldReturnToZoomSlide, stripParentDirSegments, stripXmlOrderSuffix, subtractPolygons, subtractShapes, subtractSvgPaths, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, svgPathToPolygons, switchSmartArtLayout, themeColorSchemesEqual, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, validateSmartArtColorStyleLabels, validateSmartArtConstraintRules, validateSmartArtDefinitionHeaderList, validateSmartArtDefinitionMetadata, validateSmartArtLayoutDefinition, verifyModifyPassword, verifyPassword, verifySignatureDigests, withThemePlaceholderColor, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };
91176
+ export { ALL_ANIMATION_PRESETS, BLIP_FILL_ORDER, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, ChartBuilder, ConnectorBuilder, ConnectorXmlFactory, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DIGEST_ALGORITHM_TO_HASH, DIGEST_ALGORITHM_TO_WEB_CRYPTO, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, DIGITAL_SIGNATURE_REL_TYPE, DataIntegrityError, DocumentConverter, EFFECT_LST_ORDER, ELEMENT_FIELD_KIND, EMPHASIS_PRESETS, EMU_PER_INCH, EMU_PER_PIXEL3, EMU_PER_POINT, EMU_PER_PX, ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, ENTERPRISE_REQUIRE_REVOCATION_ENV, ENTERPRISE_REQUIRE_TIMESTAMP_ENV, ENTERPRISE_TRUST_ROOTS_FILE_ENV, ENTERPRISE_TRUST_ROOTS_PEM_ENV, ENTRANCE_PRESETS, EXIT_PRESETS, EncryptedFileError, FONT_SUBSTITUTION_MAP, FreeformPathBuilder, GroupBuilder, ImageBuilder, IncorrectPasswordError, MAX_TABLE_DIMENSION, MAX_ZIP_ENTRY_COUNT, MIN_ELEMENT_SIZE, MIN_TABLE_DIMENSION, MOTION_PATH_PRESETS, MediaBuilder, MediaContext, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, OPC_RELATIONSHIP_TRANSFORM, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Ole2ParseError, P14_GUIDE_URI, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, POWERPOINT_PRESENCE_KEY, PPTX_VIEWER_MANIFEST_NS, PRESET_COLOR_MAP, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime96, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMarkdownConverter, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, Presentation, PresentationBuilder, SHAPE_TREE_ELEMENT_TAGS, SLIDE_FIELD_KIND, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER, STROKE_DASH_OPTIONS, SUPPORTED_XML_CANON_TRANSFORMS, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, ShapeBuilder, SlideBuilder, SlideProcessor, SlideSizes, SvgExporter, TC_PR_BORDERS_ORDER, THEME_COLOR_SCHEME_KEYS, THEME_PRESETS, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, TextShapeXmlFactory, ThemePresets, VML_SHAPE_TAGS, XMLDSIG_NS, XML_TRANSFORM_ENVELOPED_SIGNATURE, ZipBombError, addChartCategory, addChartSeries, addSection, addSmartArtNode, addSmartArtNodeAsChild, applyBubbleChartOptions, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySmartArtConstraintRules, applySmartArtLayoutDefinition, applyTableCellTextAndStyle, applyTemplate, applyThemeOverrideToSlide, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, buildInkMlContent, buildLinkedTextBoxChains, buildOle2, buildSingleEffectNode, buildSrgbColorChoice, buildThemeColorMap, catmullRomToBezier, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, clampUnitInterval, classifyPanose, cloneElement, cloneShapeStyle, cloneSlide, cloneTemplateElementsBySlideId, cloneTextStyle, cloneXmlObject, cm, cmToEmu, colorWithOpacity, colorsEqual, combineShapes, computeContrastRatio, computeCycleLayout, computeDetailStatus, computeDigestBase64, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, computeVerificationStatus, convertEmfToDataUrl, convertWmfToDataUrl, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createEditorId, createFreeformElement, createGroupElement, createImageElement, createLayout, createLayouts, createMediaElement, createModifyVerifier, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTemplateConnectorRawXml, createTemplateShapeRawXml, createTextElement, createUniformTextSegments, dataUrlToMediaBytes, decodeOle10Native, decodeXmlEntities, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, deriveOutputPath, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, diffPresentations, diffSlides, distributeSegmentsAcrossChain, douglasPeucker, duplicateElement, duplicateSlide, elementActionToPptxAction, elementHasAction, emuToPixels, encryptPptx, ensureArrayValue, escapeXmlAttr, escapeXmlText, estimateTextBoxCapacity, evaluateGeometryPaths, evaluateGuides, evaluatePresetShape, extractAllTagText, extractColorChoiceXml, extractFirstTagText, extractGraphicBuilds, extractGuidFromPartName, extractModel3DTransform, extractStyleReferenceColorXml, extractTagAttribute, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, findOpenXmlCoverage, findPlaceholders, findText, formatCommentTimestamp, fragmentShapes, generateFontGuid, generateLayoutXml, generateMediaFilename, getAdjustmentAwareClipPath, getAdjustmentAwareShapeClipPath, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getCloudPathForRendering, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getDirectory, getElementLabel, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getNativeAnimationPresetMetadata, getOleObjectTypeLabel, getPanoseWeight, getPresetShapeClipPath, getPresetsByCategory, getRoundRectRadiusPx, getSectionForSlide, getSectionSlideRange, getShapeClipPath, getShapeClipPathFromPreset, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getThemePreset, getZoomElements, getZoomTargetSlideIndexes, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasShapeProperties, hasTextProperties, hexToRgbChannels, hslToRgb, inches, inchesToEmu, inferOleExtensionFromTarget, interpolateShapeGeometry, intersectPolygons, intersectShapes, intersectSvgPaths, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2, layoutEngineShapesToDrawingShapes, listUnassessedOpenXmlCoverage, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlToPresetName, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseChart3DSurfaces, parseChartAxes, parseChartLayouts, parseChartManualLayout, parseChartUpDownBars, parseCondition, parseConditionList, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDiagramRelationshipIds, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseInkMlContent, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConstraintRules, parseSmartArtDefinitionHeaderList, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtQuickStyleLabels, parseStructuredCustomGeometry, parseSvgPath, parseTimeTargetElement, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, rebuildTableStructureInRawXml, reconcileAnimationTargets, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeSection, removeSmartArtNode, reorderObjectKeys, reorderSections, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, replaceShapeGeometry, replaceText, replaceTextInSlide, replaceWithCustomGeometry, resetCloneIdCounter, resetDecomposeCounter, resetIdCounter, resetSectionIdCounter, resetSmartArtEditCounter, resolveCoordinate, resolveCustomShowSlideIndices, resolveLayoutDisplayName, resolveModel3DMimeType, resolveReferenceUriToPart, resolveTableCellStyle, rgbToHsl, selectAlternateContentBranch, serializeColorChoice, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeSmartArtDefinitionHeaderList, serializeSvgPath, serializeTimeTargetElement, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, setElementLocked, setSmartArtNodeStyle, shouldRenderFallbackLabel, shouldReturnToZoomSlide, stripParentDirSegments, stripXmlOrderSuffix, subtractPolygons, subtractShapes, subtractSvgPaths, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, svgPathToPolygons, switchSmartArtLayout, themeColorSchemesEqual, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, validateSmartArtColorStyleLabels, validateSmartArtConstraintRules, validateSmartArtDefinitionHeaderList, validateSmartArtDefinitionMetadata, validateSmartArtLayoutDefinition, verifyModifyPassword, verifyPassword, verifySignatureDigests, withThemePlaceholderColor, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };