pptx-viewer-core 1.6.7 → 1.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -7083,26 +7083,49 @@ function applyScene3dStyle(shapeProps, style) {
7083
7083
  const camera = scene3dNode["a:camera"];
7084
7084
  const lightRig = scene3dNode["a:lightRig"];
7085
7085
  const cameraRot = camera?.["a:rot"];
7086
+ const lightRigRot = lightRig?.["a:rot"];
7086
7087
  style.scene3d = {
7087
7088
  cameraPreset: String(camera?.["@_prst"] || "").trim() || void 0,
7088
- cameraRotX: cameraRot?.["@_lat"] !== void 0 ? parseInt(String(cameraRot["@_lat"]), 10) : void 0,
7089
- cameraRotY: cameraRot?.["@_lon"] !== void 0 ? parseInt(String(cameraRot["@_lon"]), 10) : void 0,
7090
- cameraRotZ: cameraRot?.["@_rev"] !== void 0 ? parseInt(String(cameraRot["@_rev"]), 10) : void 0,
7089
+ cameraFieldOfView: intAttr(camera?.["@_fov"]),
7090
+ cameraZoom: floatAttr(camera?.["@_zoom"]),
7091
+ cameraRotX: intAttr(cameraRot?.["@_lat"]),
7092
+ cameraRotY: intAttr(cameraRot?.["@_lon"]),
7093
+ cameraRotZ: intAttr(cameraRot?.["@_rev"]),
7091
7094
  lightRigType: String(lightRig?.["@_rig"] || "").trim() || void 0,
7092
- lightRigDirection: String(lightRig?.["@_dir"] || "").trim() || void 0
7095
+ lightRigDirection: String(lightRig?.["@_dir"] || "").trim() || void 0,
7096
+ lightRigRotX: intAttr(lightRigRot?.["@_lat"]),
7097
+ lightRigRotY: intAttr(lightRigRot?.["@_lon"]),
7098
+ lightRigRotZ: intAttr(lightRigRot?.["@_rev"])
7093
7099
  };
7094
7100
  const backdrop = scene3dNode["a:backdrop"];
7095
7101
  if (backdrop) {
7096
7102
  style.scene3d.hasBackdrop = true;
7097
7103
  const anchor = backdrop["a:anchor"];
7098
- const anchorAttrs = anchor;
7099
- if (anchorAttrs) {
7100
- style.scene3d.backdropAnchorX = parseInt(String(anchorAttrs["@_x"] || "0"), 10);
7101
- style.scene3d.backdropAnchorY = parseInt(String(anchorAttrs["@_y"] || "0"), 10);
7102
- style.scene3d.backdropAnchorZ = parseInt(String(anchorAttrs["@_z"] || "0"), 10);
7104
+ if (anchor) {
7105
+ style.scene3d.backdropAnchorX = intAttr(anchor["@_x"]) ?? 0;
7106
+ style.scene3d.backdropAnchorY = intAttr(anchor["@_y"]) ?? 0;
7107
+ style.scene3d.backdropAnchorZ = intAttr(anchor["@_z"]) ?? 0;
7108
+ }
7109
+ const norm = backdrop["a:norm"];
7110
+ if (norm) {
7111
+ style.scene3d.backdropNormalX = intAttr(norm["@_dx"]) ?? 0;
7112
+ style.scene3d.backdropNormalY = intAttr(norm["@_dy"]) ?? 0;
7113
+ style.scene3d.backdropNormalZ = intAttr(norm["@_dz"]) ?? 0;
7114
+ }
7115
+ const up = backdrop["a:up"];
7116
+ if (up) {
7117
+ style.scene3d.backdropUpX = intAttr(up["@_dx"]) ?? 0;
7118
+ style.scene3d.backdropUpY = intAttr(up["@_dy"]) ?? 0;
7119
+ style.scene3d.backdropUpZ = intAttr(up["@_dz"]) ?? 0;
7103
7120
  }
7104
7121
  }
7105
7122
  }
7123
+ function intAttr(value) {
7124
+ return value !== void 0 ? parseInt(String(value), 10) : void 0;
7125
+ }
7126
+ function floatAttr(value) {
7127
+ return value !== void 0 ? parseFloat(String(value)) : void 0;
7128
+ }
7106
7129
  function applyShape3dStyle(shapeProps, style, context) {
7107
7130
  const shape3dNode = shapeProps["a:sp3d"];
7108
7131
  if (!shape3dNode) {
@@ -7984,7 +8007,7 @@ var MEDIA_REFERENCE_NAMES = [
7984
8007
  "videoFile",
7985
8008
  "quickTimeFile"
7986
8009
  ];
7987
- function parseDrawingMediaReference(container) {
8010
+ function parseDrawingMediaReference(container, externalRelIds) {
7988
8011
  if (!container) {
7989
8012
  return void 0;
7990
8013
  }
@@ -7993,11 +8016,17 @@ function parseDrawingMediaReference(container) {
7993
8016
  if (!node) {
7994
8017
  continue;
7995
8018
  }
8019
+ const linkId = String(attribute2(node, "link") ?? "").trim() || void 0;
8020
+ const embedId = String(attribute2(node, "embed") ?? "").trim() || void 0;
7996
8021
  return {
7997
8022
  kind,
7998
8023
  mediaType: kind === "videoFile" || kind === "quickTimeFile" ? "video" : "audio",
7999
- relationshipId: String(attribute2(node, "link") ?? attribute2(node, "embed") ?? "").trim() || void 0,
8000
- isLinked: attribute2(node, "link") !== void 0,
8024
+ relationshipId: linkId ?? embedId,
8025
+ // Embedded media legitimately uses r:link pointing at an INTERNAL
8026
+ // media part, so link presence alone does not imply a linked clip.
8027
+ // It is only truly linked when the referenced relationship is
8028
+ // external (TargetMode="External"), mirroring the OLE parser.
8029
+ isLinked: linkId !== void 0 && externalRelIds?.has(linkId) === true,
8001
8030
  name: kind === "wavAudioFile" ? String(attribute2(node, "name") ?? "") || void 0 : void 0,
8002
8031
  contentType: kind === "audioFile" ? String(attribute2(node, "contentType") ?? "") || void 0 : void 0,
8003
8032
  audioCdStart: kind === "audioCd" ? parseAudioCdPosition(child2(node, "st")) : void 0,
@@ -8128,7 +8157,10 @@ var PptxMediaDataParser = class {
8128
8157
  parseMediaData(graphicData, slidePath) {
8129
8158
  const result = {};
8130
8159
  try {
8131
- const reference = parseDrawingMediaReference(graphicData);
8160
+ const reference = parseDrawingMediaReference(
8161
+ graphicData,
8162
+ this.context.externalRelsMap.get(slidePath)
8163
+ );
8132
8164
  if (reference) {
8133
8165
  result.mediaType = reference.mediaType;
8134
8166
  result.mediaReferenceKind = reference.kind;
@@ -13085,6 +13117,7 @@ var PptxNativeAnimationService = class {
13085
13117
  const nodeType = String(cTn["@_nodeType"] || "");
13086
13118
  const presetClass = cTn["@_presetClass"];
13087
13119
  const presetId = cTn["@_presetID"] ? Number.parseInt(String(cTn["@_presetID"]), 10) : void 0;
13120
+ const presetSubtype = cTn["@_presetSubtype"] !== void 0 ? Number.parseInt(String(cTn["@_presetSubtype"]), 10) : void 0;
13088
13121
  const durationMs = cTn["@_dur"] ? Number.parseInt(String(cTn["@_dur"]), 10) : void 0;
13089
13122
  const delayMs = cTn["@_delay"] ? Number.parseInt(String(cTn["@_delay"]), 10) : void 0;
13090
13123
  let trigger = currentTrigger;
@@ -13136,6 +13169,7 @@ var PptxNativeAnimationService = class {
13136
13169
  trigger,
13137
13170
  presetClass: validPresetClass,
13138
13171
  presetId,
13172
+ presetSubtype,
13139
13173
  durationMs,
13140
13174
  delayMs,
13141
13175
  triggerDelayMs: trigger === "afterDelay" ? delayMs : void 0,
@@ -13446,6 +13480,74 @@ function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, x
13446
13480
  return { "p:ext": transitionExt };
13447
13481
  }
13448
13482
 
13483
+ // src/core/services/p15-transition-parser.ts
13484
+ var P15_TRANSITION_PRESETS = /* @__PURE__ */ new Set([
13485
+ "fallOver",
13486
+ "drape",
13487
+ "curtains",
13488
+ "wind",
13489
+ "prestige",
13490
+ "fracture",
13491
+ "crush",
13492
+ "peelOff",
13493
+ "pageCurlDouble",
13494
+ "pageCurlSingle",
13495
+ "airplane",
13496
+ "origami"
13497
+ ]);
13498
+ var PRSTTRANS_EXT_URI = "{D42A27DB-BD31-4B8C-83A1-F6EECF244321}";
13499
+ function optionalBoolean(value) {
13500
+ const valueToken = value === void 0 || value === null ? "" : String(value).trim().toLowerCase();
13501
+ if (valueToken === "1" || valueToken === "true") {
13502
+ return true;
13503
+ }
13504
+ if (valueToken === "0" || valueToken === "false") {
13505
+ return false;
13506
+ }
13507
+ return void 0;
13508
+ }
13509
+ function parseP15FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
13510
+ const extEntries = xmlLookupService.getChildrenArrayByLocalName(extLstNode, "ext");
13511
+ for (const ext of extEntries) {
13512
+ if (!ext) {
13513
+ continue;
13514
+ }
13515
+ for (const [key, value] of Object.entries(ext)) {
13516
+ if (key.startsWith("@_")) {
13517
+ continue;
13518
+ }
13519
+ if (getXmlLocalName(key) !== "prstTrans") {
13520
+ continue;
13521
+ }
13522
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
13523
+ continue;
13524
+ }
13525
+ const detail = value;
13526
+ const prst = String(detail["@_prst"] || "").trim();
13527
+ if (!P15_TRANSITION_PRESETS.has(prst)) {
13528
+ continue;
13529
+ }
13530
+ return {
13531
+ type: prst,
13532
+ invX: optionalBoolean(detail["@_invX"]),
13533
+ invY: optionalBoolean(detail["@_invY"])
13534
+ };
13535
+ }
13536
+ }
13537
+ return void 0;
13538
+ }
13539
+ function buildP15ExtLst(transitionType, invX, invY) {
13540
+ const prstTrans = {
13541
+ "@_xmlns:p15": "http://schemas.microsoft.com/office/powerpoint/2012/main",
13542
+ "@_prst": transitionType
13543
+ };
13544
+ const ext = {
13545
+ "@_uri": PRSTTRANS_EXT_URI,
13546
+ "p15:prstTrans": prstTrans
13547
+ };
13548
+ return { "p:ext": ext };
13549
+ }
13550
+
13449
13551
  // src/core/services/slide-transition-xml.ts
13450
13552
  var STANDARD_TRANSITION_TYPES = /* @__PURE__ */ new Set([
13451
13553
  "fade",
@@ -13511,7 +13613,7 @@ function parseTransitionDetails(node, localName22) {
13511
13613
  if (pattern) {
13512
13614
  result.pattern = pattern;
13513
13615
  }
13514
- const thruBlk = optionalBoolean(detail["@_thruBlk"]);
13616
+ const thruBlk = optionalBoolean2(detail["@_thruBlk"]);
13515
13617
  if (thruBlk !== void 0) {
13516
13618
  result.thruBlk = thruBlk;
13517
13619
  }
@@ -13522,7 +13624,7 @@ function parseTransitionAttributes(node) {
13522
13624
  const speedToken = token(node["@_spd"]);
13523
13625
  const speed = SPEEDS.has(speedToken) ? speedToken : void 0;
13524
13626
  const durationMs = unsignedInteger2(node["@_dur"] ?? node["@_p14:dur"], 1);
13525
- const advanceOnClick = optionalBoolean(node["@_advClick"]);
13627
+ const advanceOnClick = optionalBoolean2(node["@_advClick"]);
13526
13628
  const advanceAfterMs = unsignedInteger2(node["@_advTm"]);
13527
13629
  return { speed, durationMs, advanceOnClick, advanceAfterMs };
13528
13630
  }
@@ -13536,7 +13638,7 @@ function parseTransitionSound(raw, lookup, localName22) {
13536
13638
  return {
13537
13639
  soundRId: sound ? attributeByLocalName(sound, "embed", localName22) : void 0,
13538
13640
  soundName: sound ? attributeByLocalName(sound, "name", localName22) : void 0,
13539
- soundLoop: optionalBoolean(start["@_loop"])
13641
+ soundLoop: optionalBoolean2(start["@_loop"])
13540
13642
  };
13541
13643
  }
13542
13644
  const stopSound = Object.keys(raw).some(
@@ -13645,7 +13747,7 @@ function attributeByLocalName(node, name, localName22) {
13645
13747
  function token(value) {
13646
13748
  return value === void 0 || value === null ? "" : String(value).trim();
13647
13749
  }
13648
- function optionalBoolean(value) {
13750
+ function optionalBoolean2(value) {
13649
13751
  const valueToken = token(value).toLowerCase();
13650
13752
  if (!valueToken) {
13651
13753
  return void 0;
@@ -13691,6 +13793,7 @@ var PptxSlideTransitionService = class {
13691
13793
  const { spokes, thruBlk, rawSoundAction, rawExtLst } = details;
13692
13794
  if (rawExtLst && transitionType === "cut") {
13693
13795
  const p14Result = parseP14FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
13796
+ const p15Result = p14Result ? void 0 : parseP15FromExtLst(rawExtLst, this.xmlLookupService, this.getXmlLocalName);
13694
13797
  if (p14Result) {
13695
13798
  transitionType = p14Result.type;
13696
13799
  if (p14Result.direction) {
@@ -13702,6 +13805,8 @@ var PptxSlideTransitionService = class {
13702
13805
  if (p14Result.pattern) {
13703
13806
  pattern = p14Result.pattern;
13704
13807
  }
13808
+ } else if (p15Result) {
13809
+ transitionType = p15Result.type;
13705
13810
  } else if (this.parseMorphFromExtLst(rawExtLst)) {
13706
13811
  transitionType = "morph";
13707
13812
  }
@@ -13783,6 +13888,7 @@ var PptxSlideTransitionService = class {
13783
13888
  }
13784
13889
  const transitionType = transition.type || "cut";
13785
13890
  const isP14Type = P14_TRANSITION_TYPES.has(transitionType);
13891
+ const isP15Type = P15_TRANSITION_PRESETS.has(transitionType);
13786
13892
  const isMorphType = transitionType === "morph";
13787
13893
  const node = createPreservedTransitionNode(transition.rawTransition, this.getXmlLocalName);
13788
13894
  if (isP14Type) {
@@ -13795,6 +13901,8 @@ var PptxSlideTransitionService = class {
13795
13901
  this.xmlLookupService,
13796
13902
  this.getXmlLocalName
13797
13903
  );
13904
+ } else if (isP15Type) {
13905
+ node["p:extLst"] = transition.rawExtLst ?? buildP15ExtLst(transitionType);
13798
13906
  } else if (isMorphType) {
13799
13907
  node["p:extLst"] = this.buildMorphExtLst(transition.rawExtLst);
13800
13908
  } else {
@@ -13805,7 +13913,7 @@ var PptxSlideTransitionService = class {
13805
13913
  if (soundAction) {
13806
13914
  node["p:sndAc"] = soundAction;
13807
13915
  }
13808
- if (transition.rawExtLst && !isP14Type && !isMorphType) {
13916
+ if (transition.rawExtLst && !isP14Type && !isP15Type && !isMorphType) {
13809
13917
  node["p:extLst"] = transition.rawExtLst;
13810
13918
  }
13811
13919
  return node;
@@ -23168,15 +23276,15 @@ function getConnectorPathGeometry(element) {
23168
23276
  // src/core/geometry/transform-utils.ts
23169
23277
  function getElementTransform(element) {
23170
23278
  const transforms = [];
23279
+ if (element.rotation) {
23280
+ transforms.push(`rotate(${element.rotation}deg)`);
23281
+ }
23171
23282
  if (element.flipHorizontal) {
23172
23283
  transforms.push("scaleX(-1)");
23173
23284
  }
23174
23285
  if (element.flipVertical) {
23175
23286
  transforms.push("scaleY(-1)");
23176
23287
  }
23177
- if (element.rotation) {
23178
- transforms.push(`rotate(${element.rotation}deg)`);
23179
- }
23180
23288
  return transforms.length > 0 ? transforms.join(" ") : void 0;
23181
23289
  }
23182
23290
  function getTextCompensationTransform(element) {
@@ -29815,36 +29923,200 @@ async function fetchUrlToBytes(url, options = {}) {
29815
29923
  }
29816
29924
  }
29817
29925
 
29926
+ // src/core/utils/inkml-trace-decode.ts
29927
+ function resolveChannelOrder(root) {
29928
+ const traceFormat = findFirstByLocalName(root, "traceFormat");
29929
+ if (!traceFormat) {
29930
+ return ["X", "Y"];
29931
+ }
29932
+ const channels = ensureArray5(nsGet(traceFormat, "channel"));
29933
+ const names = channels.map(
29934
+ (channel) => String(nsAttr(channel, "name") ?? "").trim().toUpperCase()
29935
+ ).filter((name) => name.length > 0);
29936
+ return names.length > 0 ? names : ["X", "Y"];
29937
+ }
29938
+ function decodeTracePoints(text2, channelOrder) {
29939
+ const points3 = [];
29940
+ const modes = channelOrder.map(() => "explicit");
29941
+ const lastValue = channelOrder.map(() => 0);
29942
+ const lastVelocity = channelOrder.map(() => 0);
29943
+ for (const rawPoint of text2.split(",")) {
29944
+ const tokens = rawPoint.trim().split(/\s+/u).filter((token2) => token2.length > 0);
29945
+ if (tokens.length === 0) {
29946
+ continue;
29947
+ }
29948
+ const decoded = [];
29949
+ for (let i = 0; i < tokens.length && i < channelOrder.length; i++) {
29950
+ const parsed = parseValueToken(tokens[i], modes[i]);
29951
+ if (parsed === void 0) {
29952
+ decoded.push(lastValue[i]);
29953
+ continue;
29954
+ }
29955
+ modes[i] = parsed.mode;
29956
+ const value = applyDiffMode(parsed, i, lastValue, lastVelocity);
29957
+ decoded.push(value);
29958
+ }
29959
+ if (decoded.length >= 2) {
29960
+ points3.push(decoded);
29961
+ }
29962
+ }
29963
+ return points3;
29964
+ }
29965
+ function parseValueToken(token2, currentMode) {
29966
+ let mode = currentMode;
29967
+ let body = token2;
29968
+ const prefix = token2[0];
29969
+ if (prefix === "!") {
29970
+ mode = "explicit";
29971
+ body = token2.slice(1);
29972
+ } else if (prefix === "'") {
29973
+ mode = "single";
29974
+ body = token2.slice(1);
29975
+ } else if (prefix === '"') {
29976
+ mode = "double";
29977
+ body = token2.slice(1);
29978
+ }
29979
+ if (body.length === 0) {
29980
+ return void 0;
29981
+ }
29982
+ const value = Number(body);
29983
+ return Number.isFinite(value) ? { value, mode } : void 0;
29984
+ }
29985
+ function applyDiffMode(parsed, index, lastValue, lastVelocity) {
29986
+ if (parsed.mode === "single") {
29987
+ lastVelocity[index] = parsed.value;
29988
+ lastValue[index] += parsed.value;
29989
+ } else if (parsed.mode === "double") {
29990
+ lastVelocity[index] += parsed.value;
29991
+ lastValue[index] += lastVelocity[index];
29992
+ } else {
29993
+ lastValue[index] = parsed.value;
29994
+ lastVelocity[index] = 0;
29995
+ }
29996
+ return lastValue[index];
29997
+ }
29998
+ function pointsToSvgPath(points3, channelOrder) {
29999
+ const xi = channelOrder.indexOf("X");
30000
+ const yi = channelOrder.indexOf("Y");
30001
+ const xIndex = xi >= 0 ? xi : 0;
30002
+ const yIndex = yi >= 0 ? yi : 1;
30003
+ const segments = [];
30004
+ for (const point of points3) {
30005
+ const x = point[xIndex];
30006
+ const y = point[yIndex];
30007
+ if (!Number.isFinite(x) || !Number.isFinite(y)) {
30008
+ continue;
30009
+ }
30010
+ segments.push(`${segments.length === 0 ? "M" : "L"} ${x} ${y}`);
30011
+ }
30012
+ return segments.join(" ");
30013
+ }
30014
+ function pointsToPressures(points3, channelOrder) {
30015
+ const fIndex = channelOrder.indexOf("F");
30016
+ if (fIndex < 0) {
30017
+ return [];
30018
+ }
30019
+ const pressures = [];
30020
+ for (const point of points3) {
30021
+ const raw = point[fIndex];
30022
+ if (Number.isFinite(raw)) {
30023
+ const normalised = raw > 1 ? raw / 32767 : raw;
30024
+ pressures.push(Math.max(0, Math.min(1, normalised)));
30025
+ }
30026
+ }
30027
+ return pressures;
30028
+ }
30029
+ function nsGet(obj, localName22) {
30030
+ if (localName22 in obj) {
30031
+ return obj[localName22];
30032
+ }
30033
+ for (const key of Object.keys(obj)) {
30034
+ if (localNameOf(key) === localName22 && !key.startsWith("@_")) {
30035
+ return obj[key];
30036
+ }
30037
+ }
30038
+ return void 0;
30039
+ }
30040
+ function nsAttr(obj, localName22) {
30041
+ const direct = obj[`@_${localName22}`];
30042
+ if (direct !== void 0) {
30043
+ return direct;
30044
+ }
30045
+ for (const key of Object.keys(obj)) {
30046
+ if (key.startsWith("@_") && localNameOf(key.slice(2)) === localName22) {
30047
+ return obj[key];
30048
+ }
30049
+ }
30050
+ return void 0;
30051
+ }
30052
+ function localNameOf(key) {
30053
+ const colon = key.indexOf(":");
30054
+ return colon >= 0 ? key.slice(colon + 1) : key;
30055
+ }
30056
+ function findFirstByLocalName(node, localName22) {
30057
+ const direct = nsGet(node, localName22);
30058
+ if (direct && typeof direct === "object") {
30059
+ return Array.isArray(direct) ? direct[0] : direct;
30060
+ }
30061
+ for (const key of Object.keys(node)) {
30062
+ if (key.startsWith("@_") || key === "#text") {
30063
+ continue;
30064
+ }
30065
+ for (const child20 of ensureArray5(node[key])) {
30066
+ if (typeof child20 !== "object") {
30067
+ continue;
30068
+ }
30069
+ const found = findFirstByLocalName(child20, localName22);
30070
+ if (found) {
30071
+ return found;
30072
+ }
30073
+ }
30074
+ }
30075
+ return void 0;
30076
+ }
30077
+ function ensureArray5(value) {
30078
+ if (value === void 0 || value === null) {
30079
+ return [];
30080
+ }
30081
+ return Array.isArray(value) ? value : [value];
30082
+ }
30083
+
29818
30084
  // src/core/utils/inkml-content-part.ts
29819
30085
  var INKML_NAMESPACE = "http://www.w3.org/2003/InkML";
29820
30086
  var METADATA_NAMESPACE = "https://pptx-viewer.dev/inkml/metadata";
29821
30087
  function parseInkMlContent(data) {
29822
- const root = data["ink:ink"] ?? data["ink"];
30088
+ const root = nsGet(data, "ink") ?? data["ink"];
29823
30089
  if (!root) {
29824
30090
  return { strokes: [], rawXml: data };
29825
30091
  }
29826
30092
  const brushes = /* @__PURE__ */ new Map();
29827
- for (const brush of ensureArray5(root["ink:brush"] ?? root["brush"])) {
29828
- const properties = ensureArray5(brush["ink:brushProperty"] ?? brush["brushProperty"]);
30093
+ for (const brush of ensureArray5(nsGet(root, "brush"))) {
30094
+ const properties = ensureArray5(nsGet(brush, "brushProperty"));
29829
30095
  const valueByName = new Map(
29830
- properties.map((property) => [String(property["@_name"] ?? ""), property["@_value"]])
30096
+ properties.map((property) => [
30097
+ String(nsAttr(property, "name") ?? ""),
30098
+ nsAttr(property, "value")
30099
+ ])
29831
30100
  );
29832
- brushes.set(String(brush["@_id"] ?? ""), {
30101
+ brushes.set(String(nsAttr(brush, "id") ?? ""), {
29833
30102
  color: String(valueByName.get("color") ?? "#000000"),
29834
30103
  width: finiteNumber(valueByName.get("width"), 1),
29835
30104
  opacity: finiteNumber(valueByName.get("opacity"), 1)
29836
30105
  });
29837
30106
  }
30107
+ const channelOrder = resolveChannelOrder(root);
29838
30108
  const strokes = [];
29839
- for (const trace of ensureArray5(root["ink:trace"] ?? root["trace"])) {
30109
+ for (const trace of ensureArray5(nsGet(root, "trace"))) {
29840
30110
  const text2 = typeof trace === "string" ? trace : String(trace["#text"] ?? "").trim();
29841
- const path = typeof trace === "string" ? text2 : String(trace["@_pva:path"] ?? "").trim() || text2;
30111
+ const authored = typeof trace === "string" ? "" : String(nsAttr(trace, "path") ?? "").trim();
30112
+ const points3 = authored ? [] : decodeTracePoints(text2, channelOrder);
30113
+ const path = authored || pointsToSvgPath(points3, channelOrder);
29842
30114
  if (!path) {
29843
30115
  continue;
29844
30116
  }
29845
- const brushRef = typeof trace === "string" ? "" : String(trace["@_brushRef"] ?? "").replace("#", "");
30117
+ const brushRef = typeof trace === "string" ? "" : String(nsAttr(trace, "brushRef") ?? "").replace("#", "");
29846
30118
  const brush = brushes.get(brushRef) ?? { color: "#000000", width: 1, opacity: 1 };
29847
- const pressures = tracePressures(text2);
30119
+ const pressures = authored ? tracePressures(text2) : pointsToPressures(points3, channelOrder);
29848
30120
  strokes.push({ ...brush, path, ...pressures.length > 0 ? { pressures } : {} });
29849
30121
  }
29850
30122
  return { strokes, rawXml: data };
@@ -29903,12 +30175,6 @@ function finiteNumber(value, fallback) {
29903
30175
  const parsed = Number(value);
29904
30176
  return Number.isFinite(parsed) ? parsed : fallback;
29905
30177
  }
29906
- function ensureArray5(value) {
29907
- if (value === void 0 || value === null) {
29908
- return [];
29909
- }
29910
- return Array.isArray(value) ? value : [value];
29911
- }
29912
30178
 
29913
30179
  // src/core/utils/smartart-helpers.ts
29914
30180
  var DEFAULT_ACCENT_COLORS = [
@@ -47330,6 +47596,93 @@ var PptxHandlerRuntime = class {
47330
47596
  }
47331
47597
  };
47332
47598
 
47599
+ // src/core/core/runtime/table-style-border-parse.ts
47600
+ var EMU_PER_PIXEL = 9525;
47601
+ var BORDER_SIDES = [
47602
+ "left",
47603
+ "right",
47604
+ "top",
47605
+ "bottom",
47606
+ "insideH",
47607
+ "insideV",
47608
+ "tl2br",
47609
+ "bl2tr"
47610
+ ];
47611
+ function parseSolidFillStyle(solidFill2) {
47612
+ if (!solidFill2) {
47613
+ return void 0;
47614
+ }
47615
+ const schemeClr = solidFill2["a:schemeClr"];
47616
+ if (!schemeClr) {
47617
+ return void 0;
47618
+ }
47619
+ const schemeColor = String(schemeClr["@_val"] || "").trim() || void 0;
47620
+ if (!schemeColor) {
47621
+ return void 0;
47622
+ }
47623
+ const tintRaw = schemeClr["a:tint"];
47624
+ const tint = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
47625
+ const shadeRaw = schemeClr["a:shade"];
47626
+ const shade = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
47627
+ return { schemeColor, tint, shade };
47628
+ }
47629
+ function parseBorderSide(side) {
47630
+ if (!side) {
47631
+ return void 0;
47632
+ }
47633
+ const ln = side["a:ln"];
47634
+ if (!ln) {
47635
+ return void 0;
47636
+ }
47637
+ const border = {};
47638
+ let has = false;
47639
+ if (ln["a:noFill"] !== void 0) {
47640
+ border.noFill = true;
47641
+ has = true;
47642
+ }
47643
+ const widthEmu = parseInt(String(ln["@_w"] || "0"), 10);
47644
+ if (widthEmu > 0) {
47645
+ border.width = Math.max(1, Math.round(widthEmu / EMU_PER_PIXEL));
47646
+ has = true;
47647
+ }
47648
+ const prstDash = ln["a:prstDash"];
47649
+ const dashVal = prstDash ? String(prstDash["@_val"] || "").trim() : "";
47650
+ if (dashVal) {
47651
+ border.dash = dashVal;
47652
+ has = true;
47653
+ }
47654
+ const solidFill2 = ln["a:solidFill"];
47655
+ const fill = parseSolidFillStyle(solidFill2);
47656
+ if (fill) {
47657
+ border.fill = fill;
47658
+ has = true;
47659
+ } else {
47660
+ const srgb = solidFill2?.["a:srgbClr"];
47661
+ const hex10 = srgb ? String(srgb["@_val"] || "").trim() : "";
47662
+ if (hex10) {
47663
+ border.color = hex10.startsWith("#") ? hex10 : `#${hex10}`;
47664
+ has = true;
47665
+ }
47666
+ }
47667
+ return has ? border : void 0;
47668
+ }
47669
+ function parseTableStyleBorders(tcStyle) {
47670
+ const tcBdr = tcStyle?.["a:tcBdr"];
47671
+ if (!tcBdr) {
47672
+ return void 0;
47673
+ }
47674
+ const result = {};
47675
+ let has = false;
47676
+ for (const name of BORDER_SIDES) {
47677
+ const border = parseBorderSide(tcBdr[`a:${name}`]);
47678
+ if (border) {
47679
+ result[name] = border;
47680
+ has = true;
47681
+ }
47682
+ }
47683
+ return has ? result : void 0;
47684
+ }
47685
+
47333
47686
  // src/core/core/runtime/PptxHandlerRuntimeTableStyles.ts
47334
47687
  var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
47335
47688
  /**
@@ -47414,30 +47767,15 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
47414
47767
  return void 0;
47415
47768
  }
47416
47769
  const tcStyle = section["a:tcStyle"];
47417
- if (!tcStyle) {
47418
- return void 0;
47419
- }
47420
- const fill = tcStyle["a:fill"];
47421
- if (!fill) {
47422
- return void 0;
47423
- }
47424
- const solidFill2 = fill["a:solidFill"];
47425
- if (!solidFill2) {
47426
- return void 0;
47427
- }
47428
- const schemeClr = solidFill2["a:schemeClr"];
47429
- if (!schemeClr) {
47430
- return void 0;
47431
- }
47432
- const schemeColor = String(schemeClr["@_val"] || "").trim() || void 0;
47433
- if (!schemeColor) {
47434
- return void 0;
47435
- }
47436
- const tintRaw = schemeClr["a:tint"];
47437
- const tint = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
47438
- const shadeRaw = schemeClr["a:shade"];
47439
- const shade = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
47440
- return { schemeColor, tint, shade };
47770
+ const fill = tcStyle?.["a:fill"];
47771
+ return parseSolidFillStyle(fill?.["a:solidFill"]);
47772
+ }
47773
+ /**
47774
+ * Extract border styling from a table style section's
47775
+ * `a:tcStyle/a:tcBdr` (per-side line width, dash, and colour).
47776
+ */
47777
+ extractTableStyleSectionBorders(section) {
47778
+ return parseTableStyleBorders(section?.["a:tcStyle"]);
47441
47779
  }
47442
47780
  /**
47443
47781
  * Extract text properties from a:tcTxStyle in a table style section.
@@ -47584,6 +47922,15 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
47584
47922
  textProps[`${name}Text`] = text2;
47585
47923
  }
47586
47924
  }
47925
+ const borderProps = {};
47926
+ for (const name of sectionNames) {
47927
+ const borders = this.extractTableStyleSectionBorders(
47928
+ style[`a:${name}`]
47929
+ );
47930
+ if (borders) {
47931
+ borderProps[`${name}Borders`] = borders;
47932
+ }
47933
+ }
47587
47934
  const entry = {
47588
47935
  styleId,
47589
47936
  styleName,
@@ -47602,7 +47949,8 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
47602
47949
  ...swCellFill ? { swCellFill } : {},
47603
47950
  ...neCellFill ? { neCellFill } : {},
47604
47951
  ...nwCellFill ? { nwCellFill } : {},
47605
- ...textProps
47952
+ ...textProps,
47953
+ ...borderProps
47606
47954
  };
47607
47955
  map[styleId] = entry;
47608
47956
  }
@@ -49413,6 +49761,15 @@ var PptxHandlerRuntime11 = class extends PptxHandlerRuntime10 {
49413
49761
  if (align === "justify") {
49414
49762
  return "just";
49415
49763
  }
49764
+ if (align === "justLow") {
49765
+ return "justLow";
49766
+ }
49767
+ if (align === "dist") {
49768
+ return "dist";
49769
+ }
49770
+ if (align === "thaiDist") {
49771
+ return "thaiDist";
49772
+ }
49416
49773
  return void 0;
49417
49774
  }
49418
49775
  pixelsToPoints(px2) {
@@ -50467,6 +50824,16 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime extends PptxHandlerRuntime1
50467
50824
  const chOffY = 0;
50468
50825
  const chExtCx = extCx;
50469
50826
  const chExtCy = extCy;
50827
+ const xfrmAttrs = {};
50828
+ if (typeof group.rotation === "number" && group.rotation !== 0) {
50829
+ xfrmAttrs["@_rot"] = String(Math.round(group.rotation * 6e4));
50830
+ }
50831
+ if (group.flipHorizontal) {
50832
+ xfrmAttrs["@_flipH"] = "1";
50833
+ }
50834
+ if (group.flipVertical) {
50835
+ xfrmAttrs["@_flipV"] = "1";
50836
+ }
50470
50837
  const grpXml = {
50471
50838
  "p:nvGrpSpPr": {
50472
50839
  "p:cNvPr": { "@_id": "0", "@_name": group.id },
@@ -50475,6 +50842,7 @@ var PptxHandlerRuntime15 = class _PptxHandlerRuntime extends PptxHandlerRuntime1
50475
50842
  },
50476
50843
  "p:grpSpPr": {
50477
50844
  "a:xfrm": {
50845
+ ...xfrmAttrs,
50478
50846
  "a:off": {
50479
50847
  "@_x": String(offX),
50480
50848
  "@_y": String(offY)
@@ -56663,45 +57031,18 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
56663
57031
  const s3d = shapeStyle.scene3d;
56664
57032
  const hasData = s3d.cameraPreset || s3d.lightRigType;
56665
57033
  if (hasData) {
56666
- const cameraObj = {};
56667
- if (s3d.cameraPreset) {
56668
- cameraObj["@_prst"] = s3d.cameraPreset;
56669
- }
56670
- if (s3d.cameraRotX !== void 0 || s3d.cameraRotY !== void 0 || s3d.cameraRotZ !== void 0) {
56671
- const rot = {};
56672
- if (s3d.cameraRotX !== void 0) {
56673
- rot["@_lat"] = String(s3d.cameraRotX);
56674
- }
56675
- if (s3d.cameraRotY !== void 0) {
56676
- rot["@_lon"] = String(s3d.cameraRotY);
56677
- }
56678
- if (s3d.cameraRotZ !== void 0) {
56679
- rot["@_rev"] = String(s3d.cameraRotZ);
56680
- }
56681
- cameraObj["a:rot"] = rot;
56682
- }
56683
- const lightRigObj = {};
56684
- if (s3d.lightRigType) {
56685
- lightRigObj["@_rig"] = s3d.lightRigType;
56686
- }
56687
- if (s3d.lightRigDirection) {
56688
- lightRigObj["@_dir"] = s3d.lightRigDirection;
56689
- }
56690
- const scene3dXml = {};
56691
- scene3dXml["a:camera"] = cameraObj;
56692
- if (Object.keys(lightRigObj).length > 0) {
56693
- scene3dXml["a:lightRig"] = lightRigObj;
56694
- }
56695
- if (s3d.hasBackdrop) {
56696
- const backdropObj = {};
56697
- if (s3d.backdropAnchorX !== void 0 || s3d.backdropAnchorY !== void 0 || s3d.backdropAnchorZ !== void 0) {
56698
- backdropObj["a:anchor"] = {
56699
- "@_x": String(s3d.backdropAnchorX ?? 0),
56700
- "@_y": String(s3d.backdropAnchorY ?? 0),
56701
- "@_z": String(s3d.backdropAnchorZ ?? 0)
56702
- };
56703
- }
56704
- scene3dXml["a:backdrop"] = backdropObj;
57034
+ const source = spPr["a:scene3d"] ?? {};
57035
+ const scene3dXml = { ...source };
57036
+ scene3dXml["a:camera"] = buildScene3dCamera(s3d, source);
57037
+ const lightRig = buildScene3dLightRig(s3d, source);
57038
+ if (lightRig) {
57039
+ scene3dXml["a:lightRig"] = lightRig;
57040
+ }
57041
+ const backdrop = buildScene3dBackdrop(s3d);
57042
+ if (backdrop) {
57043
+ scene3dXml["a:backdrop"] = backdrop;
57044
+ } else {
57045
+ delete scene3dXml["a:backdrop"];
56705
57046
  }
56706
57047
  spPr["a:scene3d"] = scene3dXml;
56707
57048
  } else {
@@ -56746,12 +57087,12 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
56746
57087
  }
56747
57088
  if (sh3d.extrusionColor) {
56748
57089
  sp3dXml["a:extrusionClr"] = {
56749
- "a:srgbClr": { "@_val": sh3d.extrusionColor }
57090
+ "a:srgbClr": { "@_val": sh3d.extrusionColor.replace("#", "") }
56750
57091
  };
56751
57092
  }
56752
57093
  if (sh3d.contourColor) {
56753
57094
  sp3dXml["a:contourClr"] = {
56754
- "a:srgbClr": { "@_val": sh3d.contourColor }
57095
+ "a:srgbClr": { "@_val": sh3d.contourColor.replace("#", "") }
56755
57096
  };
56756
57097
  }
56757
57098
  spPr["a:sp3d"] = sp3dXml;
@@ -56763,6 +57104,77 @@ var PptxHandlerRuntime29 = class extends PptxHandlerRuntime28 {
56763
57104
  }
56764
57105
  }
56765
57106
  };
57107
+ function buildSphereRot(lat, lon, rev) {
57108
+ if (lat === void 0 && lon === void 0 && rev === void 0) {
57109
+ return void 0;
57110
+ }
57111
+ const rot = {};
57112
+ if (lat !== void 0) {
57113
+ rot["@_lat"] = String(lat);
57114
+ }
57115
+ if (lon !== void 0) {
57116
+ rot["@_lon"] = String(lon);
57117
+ }
57118
+ if (rev !== void 0) {
57119
+ rot["@_rev"] = String(rev);
57120
+ }
57121
+ return rot;
57122
+ }
57123
+ function buildScene3dCamera(s3d, source) {
57124
+ const camera = { ...source["a:camera"] ?? {} };
57125
+ if (s3d.cameraPreset) {
57126
+ camera["@_prst"] = s3d.cameraPreset;
57127
+ }
57128
+ if (s3d.cameraFieldOfView !== void 0) {
57129
+ camera["@_fov"] = String(s3d.cameraFieldOfView);
57130
+ }
57131
+ if (s3d.cameraZoom !== void 0) {
57132
+ camera["@_zoom"] = String(s3d.cameraZoom);
57133
+ }
57134
+ const rot = buildSphereRot(s3d.cameraRotX, s3d.cameraRotY, s3d.cameraRotZ);
57135
+ if (rot) {
57136
+ camera["a:rot"] = rot;
57137
+ }
57138
+ return camera;
57139
+ }
57140
+ function buildScene3dLightRig(s3d, source) {
57141
+ const lightRig = { ...source["a:lightRig"] ?? {} };
57142
+ if (s3d.lightRigType) {
57143
+ lightRig["@_rig"] = s3d.lightRigType;
57144
+ }
57145
+ if (s3d.lightRigDirection) {
57146
+ lightRig["@_dir"] = s3d.lightRigDirection;
57147
+ }
57148
+ const rot = buildSphereRot(s3d.lightRigRotX, s3d.lightRigRotY, s3d.lightRigRotZ);
57149
+ if (rot) {
57150
+ lightRig["a:rot"] = rot;
57151
+ }
57152
+ return Object.keys(lightRig).length > 0 ? lightRig : void 0;
57153
+ }
57154
+ function buildScene3dBackdrop(s3d) {
57155
+ const hasNorm = s3d.backdropNormalX !== void 0 || s3d.backdropNormalY !== void 0 || s3d.backdropNormalZ !== void 0;
57156
+ const hasUp = s3d.backdropUpX !== void 0 || s3d.backdropUpY !== void 0 || s3d.backdropUpZ !== void 0;
57157
+ if (!s3d.hasBackdrop || !hasNorm || !hasUp) {
57158
+ return void 0;
57159
+ }
57160
+ return {
57161
+ "a:anchor": {
57162
+ "@_x": String(s3d.backdropAnchorX ?? 0),
57163
+ "@_y": String(s3d.backdropAnchorY ?? 0),
57164
+ "@_z": String(s3d.backdropAnchorZ ?? 0)
57165
+ },
57166
+ "a:norm": {
57167
+ "@_dx": String(s3d.backdropNormalX ?? 0),
57168
+ "@_dy": String(s3d.backdropNormalY ?? 0),
57169
+ "@_dz": String(s3d.backdropNormalZ ?? 0)
57170
+ },
57171
+ "a:up": {
57172
+ "@_dx": String(s3d.backdropUpX ?? 0),
57173
+ "@_dy": String(s3d.backdropUpY ?? 0),
57174
+ "@_dz": String(s3d.backdropUpZ ?? 0)
57175
+ }
57176
+ };
57177
+ }
56766
57178
 
56767
57179
  // src/core/core/runtime/PptxHandlerRuntimeSaveTextWriter.ts
56768
57180
  var PptxHandlerRuntime30 = class _PptxHandlerRuntime extends PptxHandlerRuntime29 {
@@ -61770,7 +62182,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
61770
62182
  pointsToPixels(points3) {
61771
62183
  return points3 * (96 / 72);
61772
62184
  }
61773
- parseParagraphSpacingPx(spacingNode) {
62185
+ parseParagraphSpacingPx(spacingNode, basisFontSizePx) {
61774
62186
  if (!spacingNode) {
61775
62187
  return void 0;
61776
62188
  }
@@ -61781,6 +62193,13 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
61781
62193
  if (Number.isFinite(spacingPointsRaw)) {
61782
62194
  return this.pointsToPixels(spacingPointsRaw / 100);
61783
62195
  }
62196
+ const spacingPercentRaw = Number.parseInt(
62197
+ String(spacingNode["a:spcPct"]?.["@_val"] || ""),
62198
+ 10
62199
+ );
62200
+ if (Number.isFinite(spacingPercentRaw) && typeof basisFontSizePx === "number" && basisFontSizePx > 0) {
62201
+ return spacingPercentRaw / 1e5 * basisFontSizePx;
62202
+ }
61784
62203
  return void 0;
61785
62204
  }
61786
62205
  parseLineSpacingMultiplier(lineSpacingNode) {
@@ -61860,7 +62279,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
61860
62279
 
61861
62280
  // src/core/core/runtime/PptxHandlerRuntimeBulletParsing.ts
61862
62281
  var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
61863
- resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath) {
62282
+ resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath, effectiveLevelStyles) {
61864
62283
  if (!paragraph) {
61865
62284
  return null;
61866
62285
  }
@@ -61896,11 +62315,8 @@ var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
61896
62315
  }
61897
62316
  }
61898
62317
  if (!resolvedBulletProps) {
61899
- if (isBodyPlaceholder) {
61900
- const presentationLevelStyle = this.presentationDefaultTextStyle?.levelStyles?.[normalizedLevel - 1] ?? this.presentationDefaultTextStyle?.levelStyles?.[-1];
61901
- return this.createBulletInfoFromLevelStyle(presentationLevelStyle, paragraphIndex);
61902
- }
61903
- return null;
62318
+ const fallbackLevelStyle = effectiveLevelStyles?.[normalizedLevel - 1] ?? effectiveLevelStyles?.[-1] ?? (isBodyPlaceholder ? this.presentationDefaultTextStyle?.levelStyles?.[normalizedLevel - 1] ?? this.presentationDefaultTextStyle?.levelStyles?.[-1] : void 0);
62319
+ return this.createBulletInfoFromLevelStyle(fallbackLevelStyle, paragraphIndex);
61904
62320
  }
61905
62321
  const buFont = resolvedBulletProps["a:buFont"];
61906
62322
  const fontFamily = buFont?.["@_typeface"] ? String(buFont["@_typeface"]) : void 0;
@@ -62390,16 +62806,21 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
62390
62806
  textStyle.align = paraAlign;
62391
62807
  }
62392
62808
  }
62809
+ const spacingBasisPx = typeof textStyle.fontSize === "number" ? textStyle.fontSize : void 0;
62393
62810
  if (textStyle.paragraphSpacingBefore === void 0) {
62394
62811
  const spacingBefore = this.parseParagraphSpacingPx(
62395
- pPr?.["a:spcBef"]
62812
+ pPr?.["a:spcBef"],
62813
+ spacingBasisPx
62396
62814
  );
62397
62815
  if (spacingBefore !== void 0) {
62398
62816
  textStyle.paragraphSpacingBefore = spacingBefore;
62399
62817
  }
62400
62818
  }
62401
62819
  if (textStyle.paragraphSpacingAfter === void 0) {
62402
- const spacingAfter = this.parseParagraphSpacingPx(pPr?.["a:spcAft"]);
62820
+ const spacingAfter = this.parseParagraphSpacingPx(
62821
+ pPr?.["a:spcAft"],
62822
+ spacingBasisPx
62823
+ );
62403
62824
  if (spacingAfter !== void 0) {
62404
62825
  textStyle.paragraphSpacingAfter = spacingAfter;
62405
62826
  }
@@ -62573,7 +62994,8 @@ var PptxHandlerRuntime63 = class extends PptxHandlerRuntime62 {
62573
62994
  ctx.txBody,
62574
62995
  ctx.inheritedTxBody,
62575
62996
  isBodyPlaceholder,
62576
- ctx.slidePath
62997
+ ctx.slidePath,
62998
+ ctx.effectiveLevelStyles
62577
62999
  );
62578
63000
  if (paragraphBulletInfo && !paragraphBulletInfo.none) {
62579
63001
  let bulletText;
@@ -63182,7 +63604,7 @@ var PptxHandlerRuntime65 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
63182
63604
  const skewY = xfrm["@_skewY"] ? parseEmuInt(xfrm["@_skewY"]) / 6e4 : void 0;
63183
63605
  const { flipHorizontal, flipVertical } = this.readFlipState(xfrm);
63184
63606
  const nvPr = pic?.["p:nvPicPr"]?.["p:nvPr"];
63185
- const mediaReference = parseDrawingMediaReference(nvPr);
63607
+ const mediaReference = parseDrawingMediaReference(nvPr, this.externalRelsMap.get(slidePath));
63186
63608
  if (mediaReference) {
63187
63609
  this.compatibilityService.inspectMediaReferenceCompatibility(
63188
63610
  mediaReference.kind,
@@ -63950,6 +64372,9 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
63950
64372
  const grpSpPr = group["p:grpSpPr"];
63951
64373
  const xfrm = grpSpPr?.["a:xfrm"];
63952
64374
  let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
64375
+ let groupRotation;
64376
+ let flipHorizontal = false;
64377
+ let flipVertical = false;
63953
64378
  if (xfrm) {
63954
64379
  const off = xfrm["a:off"];
63955
64380
  if (off) {
@@ -63961,6 +64386,12 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
63961
64386
  parentW = Math.round(parseEmuInt2(ext["@_cx"]) / _PptxHandlerRuntime.EMU_PER_PX);
63962
64387
  parentH = Math.round(parseEmuInt2(ext["@_cy"]) / _PptxHandlerRuntime.EMU_PER_PX);
63963
64388
  }
64389
+ if (xfrm["@_rot"] !== void 0 && xfrm["@_rot"] !== null) {
64390
+ const rot = parseInt(String(xfrm["@_rot"]), 10) / 6e4;
64391
+ groupRotation = Number.isFinite(rot) && rot !== 0 ? rot : void 0;
64392
+ }
64393
+ flipHorizontal = this.parseBooleanAttr(xfrm["@_flipH"]);
64394
+ flipVertical = this.parseBooleanAttr(xfrm["@_flipV"]);
63964
64395
  }
63965
64396
  const grpFillStyle = grpSpPr ? this.extractShapeStyle(grpSpPr) : void 0;
63966
64397
  const hasGroupFill = grpFillStyle && grpFillStyle.fillMode && grpFillStyle.fillMode !== "none";
@@ -64006,6 +64437,9 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
64006
64437
  y: parentY,
64007
64438
  width: parentW || Math.max(...children10.map((c) => c.x + c.width)),
64008
64439
  height: parentH || Math.max(...children10.map((c) => c.y + c.height)),
64440
+ rotation: groupRotation,
64441
+ flipHorizontal: flipHorizontal || void 0,
64442
+ flipVertical: flipVertical || void 0,
64009
64443
  children: children10,
64010
64444
  rawXml: group,
64011
64445
  actionClick: grpActionClick,
@@ -64176,6 +64610,7 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
64176
64610
  if (!normalized) {
64177
64611
  return void 0;
64178
64612
  }
64613
+ const canon = (key) => key.toLowerCase() === "folhlink" ? "folHlink" : key;
64179
64614
  if (normalized === "phclr") {
64180
64615
  const injected = this.themeColorMap["phclr"];
64181
64616
  if (injected) {
@@ -64185,17 +64620,18 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
64185
64620
  }
64186
64621
  const overrideMap = this.currentSlideClrMapOverride ?? this.currentMasterClrMap;
64187
64622
  if (overrideMap) {
64188
- const remapped = overrideMap[normalized];
64623
+ const remapped = overrideMap[canon(normalized)];
64189
64624
  if (remapped) {
64190
- return this.themeColorMap[remapped] || this.getDefaultSchemeColorMap()[remapped];
64625
+ const target = canon(remapped);
64626
+ return this.themeColorMap[target] || this.getDefaultSchemeColorMap()[target];
64191
64627
  }
64192
64628
  } else {
64193
64629
  const defaultAliasTarget = DEFAULT_CLR_MAP_ALIAS[normalized];
64194
64630
  if (defaultAliasTarget) {
64195
- return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
64631
+ return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
64196
64632
  }
64197
64633
  }
64198
- return this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
64634
+ return this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
64199
64635
  }
64200
64636
  normalizeStrokeDashType(value) {
64201
64637
  const normalized = String(value ?? "").trim();
@@ -64978,11 +65414,24 @@ var PptxHandlerRuntime72 = class _PptxHandlerRuntime extends PptxHandlerRuntime7
64978
65414
  }
64979
65415
  }
64980
65416
  }
64981
- const spcBef = this.parseParagraphSpacingPx(levelProps["a:spcBef"]);
65417
+ const defRPrSzRaw = Number.parseInt(
65418
+ String(
65419
+ levelProps["a:defRPr"]?.["@_sz"] || ""
65420
+ ),
65421
+ 10
65422
+ );
65423
+ const basisFontSizePx = Number.isFinite(defRPrSzRaw) ? this.pointsToPixels(defRPrSzRaw / 100) : void 0;
65424
+ const spcBef = this.parseParagraphSpacingPx(
65425
+ levelProps["a:spcBef"],
65426
+ basisFontSizePx
65427
+ );
64982
65428
  if (spcBef !== void 0) {
64983
65429
  style.spaceBefore = spcBef;
64984
65430
  }
64985
- const spcAft = this.parseParagraphSpacingPx(levelProps["a:spcAft"]);
65431
+ const spcAft = this.parseParagraphSpacingPx(
65432
+ levelProps["a:spcAft"],
65433
+ basisFontSizePx
65434
+ );
64986
65435
  if (spcAft !== void 0) {
64987
65436
  style.spaceAfter = spcAft;
64988
65437
  }
@@ -65007,9 +65456,9 @@ var PptxHandlerRuntime72 = class _PptxHandlerRuntime extends PptxHandlerRuntime7
65007
65456
  }
65008
65457
  const buClr = levelProps["a:buClr"];
65009
65458
  if (buClr) {
65010
- const srgb = buClr["a:srgbClr"];
65011
- if (srgb?.["@_val"]) {
65012
- style.bulletColor = String(srgb["@_val"]);
65459
+ const bulletColor = this.parseColor(buClr);
65460
+ if (bulletColor) {
65461
+ style.bulletColor = bulletColor;
65013
65462
  }
65014
65463
  }
65015
65464
  const buSzPts = levelProps["a:buSzPts"];
@@ -67511,6 +67960,89 @@ var PptxHandlerRuntime83 = class extends PptxHandlerRuntime82 {
67511
67960
  }
67512
67961
  };
67513
67962
 
67963
+ // src/core/core/runtime/smartart-drawing-shape-style.ts
67964
+ function extractDrawingShapeFill(spPr, deps) {
67965
+ const result = {};
67966
+ const solidFill2 = deps.getChild(spPr, "solidFill");
67967
+ if (solidFill2) {
67968
+ result.fillColor = deps.parseColor(solidFill2) ?? void 0;
67969
+ }
67970
+ const gradFill = !solidFill2 ? deps.getChild(spPr, "gradFill") : void 0;
67971
+ if (gradFill) {
67972
+ const stops = deps.extractGradientStops(gradFill).map((stop) => ({
67973
+ color: stop.color,
67974
+ position: stop.position,
67975
+ ...stop.opacity !== void 0 ? { opacity: stop.opacity } : {}
67976
+ }));
67977
+ if (stops.length > 0) {
67978
+ result.fillGradientStops = stops;
67979
+ result.fillGradientType = deps.extractGradientType(gradFill);
67980
+ result.fillGradientAngle = deps.extractGradientAngle(gradFill);
67981
+ result.fillColor ??= stops[Math.floor(stops.length / 2)]?.color;
67982
+ }
67983
+ }
67984
+ const pattFill = !solidFill2 && !gradFill ? deps.getChild(spPr, "pattFill") : void 0;
67985
+ if (pattFill) {
67986
+ const preset = String(pattFill["@_prst"] || "").trim();
67987
+ if (preset) {
67988
+ result.fillPatternPreset = preset;
67989
+ }
67990
+ const fg = deps.parseColor(deps.getChild(pattFill, "fgClr"));
67991
+ const bg = deps.parseColor(deps.getChild(pattFill, "bgClr"));
67992
+ if (fg) {
67993
+ result.fillPatternForegroundColor = fg;
67994
+ }
67995
+ if (bg) {
67996
+ result.fillPatternBackgroundColor = bg;
67997
+ }
67998
+ result.fillColor ??= fg ?? bg;
67999
+ }
68000
+ const blipFill = !solidFill2 && !gradFill && !pattFill ? deps.getChild(spPr, "blipFill") : void 0;
68001
+ if (blipFill) {
68002
+ const blip = deps.getChild(blipFill, "blip");
68003
+ const embed = String(
68004
+ blip?.["@_r:embed"] || blip?.["@_embed"] || blip?.["@_r:link"] || ""
68005
+ ).trim();
68006
+ if (embed) {
68007
+ result.fillBlipEmbedId = embed;
68008
+ }
68009
+ }
68010
+ const shadowColor = deps.extractShadowColor(spPr);
68011
+ if (shadowColor) {
68012
+ result.hasShadow = true;
68013
+ result.shadowColor = shadowColor;
68014
+ }
68015
+ return result;
68016
+ }
68017
+ function extractDrawingShapeTextStyle(txBody, deps) {
68018
+ let fontSize;
68019
+ let fontColor;
68020
+ if (!txBody) {
68021
+ return { fontSize, fontColor };
68022
+ }
68023
+ const paragraphs = deps.getChildren(txBody, "p");
68024
+ for (const p of paragraphs) {
68025
+ const runs = deps.getChildren(p, "r");
68026
+ for (const r of runs) {
68027
+ const rPr = deps.getChild(r, "rPr");
68028
+ if (rPr && !fontSize) {
68029
+ const szRaw = parseInt(String(rPr["@_sz"] || ""), 10);
68030
+ if (Number.isFinite(szRaw) && szRaw > 0) {
68031
+ fontSize = szRaw / 100;
68032
+ }
68033
+ fontColor = deps.parseColor(deps.getChild(rPr, "solidFill")) ?? void 0;
68034
+ }
68035
+ if (fontSize) {
68036
+ break;
68037
+ }
68038
+ }
68039
+ if (fontSize) {
68040
+ break;
68041
+ }
68042
+ }
68043
+ return { fontSize, fontColor };
68044
+ }
68045
+
67514
68046
  // src/core/core/runtime/smartart-text-style-resolution.ts
67515
68047
  function resolveSmartArtTextStyles(paragraphs, resolve) {
67516
68048
  for (const paragraph of paragraphs ?? []) {
@@ -67686,8 +68218,7 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime extends PptxHandlerRuntime8
67686
68218
  };
67687
68219
  }
67688
68220
  }
67689
- const solidFill2 = this.xmlLookupService.getChildByLocalName(spPr, "solidFill");
67690
- const fillColor = this.parseColor(solidFill2);
68221
+ const fill = extractDrawingShapeFill(spPr, this.drawingShapeStyleDeps());
67691
68222
  const lnNode = this.xmlLookupService.getChildByLocalName(spPr, "ln");
67692
68223
  const lnFill = lnNode ? this.xmlLookupService.getChildByLocalName(lnNode, "solidFill") : void 0;
67693
68224
  const strokeColor = this.parseColor(lnFill);
@@ -67699,7 +68230,10 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime extends PptxHandlerRuntime8
67699
68230
  this.collectLocalTextValues(txBody, "t", textValues2);
67700
68231
  }
67701
68232
  const text2 = textValues2.join("").trim() || void 0;
67702
- const { fontSize, fontColor } = this.extractDrawingShapeTextStyle(txBody);
68233
+ const { fontSize, fontColor } = extractDrawingShapeTextStyle(
68234
+ txBody,
68235
+ this.drawingShapeStyleDeps()
68236
+ );
67703
68237
  const paragraphs = txBody ? resolveSmartArtTextStyles(
67704
68238
  parseSmartArtTextParagraphs({ "dgm:t": txBody }),
67705
68239
  (rPr) => this.extractTextRunStyle(rPr, void 0, void 0, false)
@@ -67725,7 +68259,8 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime extends PptxHandlerRuntime8
67725
68259
  rotation,
67726
68260
  skewX,
67727
68261
  skewY,
67728
- fillColor: fillColor ?? void 0,
68262
+ ...fill,
68263
+ fillColor: fill.fillColor ?? void 0,
67729
68264
  strokeColor: strokeColor ?? void 0,
67730
68265
  strokeWidth,
67731
68266
  text: structuredText,
@@ -67735,34 +68270,21 @@ var PptxHandlerRuntime84 = class _PptxHandlerRuntime extends PptxHandlerRuntime8
67735
68270
  ...customGeometry
67736
68271
  };
67737
68272
  }
67738
- extractDrawingShapeTextStyle(txBody) {
67739
- let fontSize;
67740
- let fontColor;
67741
- if (!txBody) {
67742
- return { fontSize, fontColor };
67743
- }
67744
- const paragraphs = this.xmlLookupService.getChildrenArrayByLocalName(txBody, "p");
67745
- for (const p of paragraphs) {
67746
- const runs = this.xmlLookupService.getChildrenArrayByLocalName(p, "r");
67747
- for (const r of runs) {
67748
- const rPr = this.xmlLookupService.getChildByLocalName(r, "rPr");
67749
- if (rPr && !fontSize) {
67750
- const szRaw = parseInt(String(rPr["@_sz"] || ""), 10);
67751
- if (Number.isFinite(szRaw) && szRaw > 0) {
67752
- fontSize = szRaw / 100;
67753
- }
67754
- const rprFill = this.xmlLookupService.getChildByLocalName(rPr, "solidFill");
67755
- fontColor = this.parseColor(rprFill) ?? void 0;
67756
- }
67757
- if (fontSize) {
67758
- break;
67759
- }
67760
- }
67761
- if (fontSize) {
67762
- break;
67763
- }
67764
- }
67765
- return { fontSize, fontColor };
68273
+ /**
68274
+ * Build the injected accessor bundle used by the pure drawing-shape style
68275
+ * helpers, binding the shared XML-lookup / colour / gradient / shadow codec
68276
+ * methods so no new colour logic is duplicated here.
68277
+ */
68278
+ drawingShapeStyleDeps() {
68279
+ return {
68280
+ getChild: (node, local) => this.xmlLookupService.getChildByLocalName(node, local),
68281
+ getChildren: (node, local) => this.xmlLookupService.getChildrenArrayByLocalName(node, local),
68282
+ parseColor: (node) => this.parseColor(node),
68283
+ extractGradientStops: (gradFill) => this.extractGradientStops(gradFill),
68284
+ extractGradientType: (gradFill) => this.extractGradientType(gradFill),
68285
+ extractGradientAngle: (gradFill) => this.extractGradientAngle(gradFill),
68286
+ extractShadowColor: (spPr) => this.extractShadowStyle(spPr).shadowColor
68287
+ };
67766
68288
  }
67767
68289
  };
67768
68290
 
@@ -70236,6 +70758,7 @@ var PptxHandlerRuntime95 = class _PptxHandlerRuntime extends PptxHandlerRuntime9
70236
70758
  });
70237
70759
  this.mediaDataParser = new PptxMediaDataParser({
70238
70760
  slideRelsMap: this.slideRelsMap,
70761
+ externalRelsMap: this.externalRelsMap,
70239
70762
  resolvePath: (base, relative) => this.resolvePath(base, relative),
70240
70763
  getPathExtension: (pathValue) => this.getPathExtension(pathValue)
70241
70764
  });
@@ -72926,9 +73449,9 @@ function removeEmptyDataPoint(series, pointIndex) {
72926
73449
  }
72927
73450
  }
72928
73451
  }
72929
- var EMU_PER_PIXEL = 9525;
73452
+ var EMU_PER_PIXEL2 = 9525;
72930
73453
  function pxToEmu(px2) {
72931
- return Math.round(px2 * EMU_PER_PIXEL);
73454
+ return Math.round(px2 * EMU_PER_PIXEL2);
72932
73455
  }
72933
73456
  function placeholderSpXml(ph, shapeId) {
72934
73457
  const name = ph.name ?? `${ph.type.charAt(0).toUpperCase() + ph.type.slice(1)} Placeholder ${shapeId - 1}`;
@@ -74682,7 +75205,7 @@ var GroupBuilder = class _GroupBuilder {
74682
75205
  // src/core/builders/sdk/units.ts
74683
75206
  var PPI = 96;
74684
75207
  var POINTS_PER_INCH = 72;
74685
- var EMU_PER_PIXEL2 = 9525;
75208
+ var EMU_PER_PIXEL3 = 9525;
74686
75209
  var EMU_PER_INCH = 914400;
74687
75210
  var EMU_PER_POINT = 12700;
74688
75211
  function inches(value) {
@@ -74698,10 +75221,10 @@ function pt(value) {
74698
75221
  return Math.round(value / POINTS_PER_INCH * PPI);
74699
75222
  }
74700
75223
  function emuToPixels(emu) {
74701
- return Math.round(emu / EMU_PER_PIXEL2);
75224
+ return Math.round(emu / EMU_PER_PIXEL3);
74702
75225
  }
74703
75226
  function pixelsToEmu(px2) {
74704
- return Math.round(px2 * EMU_PER_PIXEL2);
75227
+ return Math.round(px2 * EMU_PER_PIXEL3);
74705
75228
  }
74706
75229
  function inchesToEmu(value) {
74707
75230
  return Math.round(value * EMU_PER_INCH);
@@ -85009,4 +85532,4 @@ var SvgExporter = class _SvgExporter {
85009
85532
  * `<p:extLst>` (optional)
85010
85533
  */
85011
85534
 
85012
- 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 as EMU_PER_PIXEL, 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 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMarkdownConverter, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState as PptxSaveSession, PptxSaveStateBuilder as PptxSaveSessionBuilder, 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 as computeDigestBase64WebCrypto, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, computeVerificationStatus, 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 as isZoomElementUtil, 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 };
85535
+ 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 as EMU_PER_PIXEL, 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 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMarkdownConverter, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState as PptxSaveSession, PptxSaveStateBuilder as PptxSaveSessionBuilder, 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 as computeDigestBase64WebCrypto, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, computeVerificationStatus, 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 as isZoomElementUtil, 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 };