pptx-viewer-core 1.2.3 → 1.2.5

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
@@ -7170,6 +7170,32 @@ function findAinkInkPayload(graphicData) {
7170
7170
  }
7171
7171
  return void 0;
7172
7172
  }
7173
+ function findOleObjPayload(graphicData) {
7174
+ if (!graphicData) {
7175
+ return void 0;
7176
+ }
7177
+ const direct = graphicData["p:oleObj"];
7178
+ if (direct) {
7179
+ return direct;
7180
+ }
7181
+ const altContent = graphicData["mc:AlternateContent"];
7182
+ if (!altContent) {
7183
+ return void 0;
7184
+ }
7185
+ const fallback = altContent["mc:Fallback"];
7186
+ const fallbackOleObj = fallback?.["p:oleObj"];
7187
+ if (fallbackOleObj) {
7188
+ return fallbackOleObj;
7189
+ }
7190
+ const choices = ensureArrayLike(altContent["mc:Choice"]);
7191
+ for (const choice of choices) {
7192
+ const node = choice?.["p:oleObj"];
7193
+ if (node) {
7194
+ return node;
7195
+ }
7196
+ }
7197
+ return void 0;
7198
+ }
7173
7199
  function decodeAinkInk(inkRoot) {
7174
7200
  const inkPaths = [];
7175
7201
  const inkColors = [];
@@ -7282,7 +7308,7 @@ var PptxGraphicFrameParser = class {
7282
7308
  };
7283
7309
  }
7284
7310
  if (type === "ole" && graphicData) {
7285
- const oleObject = graphicData["p:oleObj"];
7311
+ const oleObject = findOleObjPayload(graphicData);
7286
7312
  const oleProgId = String(oleObject?.["@_progId"] || "").trim() || void 0;
7287
7313
  const oleName = String(oleObject?.["@_name"] || "").trim() || void 0;
7288
7314
  const oleClsId = String(oleObject?.["@_classid"] || "").trim() || void 0;
@@ -7373,7 +7399,7 @@ var PptxGraphicFrameParser = class {
7373
7399
  if (graphicData["dgm:relIds"] || uri.includes("/drawingml/2006/diagram")) {
7374
7400
  return "smartArt";
7375
7401
  }
7376
- if (graphicData["p:oleObj"] || uri.includes("/drawingml/2006/ole")) {
7402
+ if (uri.includes("/presentationml/2006/ole") || uri.includes("/drawingml/2006/ole") || findOleObjPayload(graphicData)) {
7377
7403
  return "ole";
7378
7404
  }
7379
7405
  if (graphicData["a:videoFile"] || graphicData["a:audioFile"] || uri.includes("/drawingml/2006/media")) {
@@ -8674,6 +8700,87 @@ function parseGuideNode(node) {
8674
8700
  return { id, orientation, positionEmu, color };
8675
8701
  }
8676
8702
 
8703
+ // src/core/services/animation-target-reconcile.ts
8704
+ var NV_CONTAINERS = [
8705
+ "p:nvSpPr",
8706
+ "p:nvPicPr",
8707
+ "p:nvCxnSpPr",
8708
+ "p:nvGraphicFramePr",
8709
+ "p:nvGrpSpPr"
8710
+ ];
8711
+ function readCnvPrId(rawXml) {
8712
+ if (!rawXml) {
8713
+ return void 0;
8714
+ }
8715
+ for (const nvKey of NV_CONTAINERS) {
8716
+ const nv = rawXml[nvKey];
8717
+ const cNvPr = nv?.["p:cNvPr"];
8718
+ const id = cNvPr?.["@_id"];
8719
+ if (id !== void 0 && id !== null && String(id).length > 0) {
8720
+ return String(id);
8721
+ }
8722
+ }
8723
+ return void 0;
8724
+ }
8725
+ function isTemplateElementId(elementId) {
8726
+ return elementId.startsWith("layout-") || elementId.startsWith("master-");
8727
+ }
8728
+ function collectShapeIdMap(elements) {
8729
+ const map = /* @__PURE__ */ new Map();
8730
+ const walk = (els) => {
8731
+ for (const el of els) {
8732
+ const cnvId = readCnvPrId(el.rawXml);
8733
+ if (cnvId) {
8734
+ el.shapeId = cnvId;
8735
+ if (!isTemplateElementId(el.id)) {
8736
+ map.set(cnvId, el.id);
8737
+ }
8738
+ }
8739
+ if (el.type === "group" && Array.isArray(el.children)) {
8740
+ walk(el.children);
8741
+ }
8742
+ }
8743
+ };
8744
+ walk(elements);
8745
+ return map;
8746
+ }
8747
+ function reconcileAnimationTargets(elements, nativeAnimations, editorAnimations) {
8748
+ const map = collectShapeIdMap(elements);
8749
+ if (map.size === 0) {
8750
+ return;
8751
+ }
8752
+ if (nativeAnimations) {
8753
+ for (const anim of nativeAnimations) {
8754
+ if (anim.targetId !== void 0) {
8755
+ const resolved = map.get(anim.targetId);
8756
+ if (resolved) {
8757
+ anim.targetId = resolved;
8758
+ }
8759
+ }
8760
+ if (anim.triggerShapeId !== void 0) {
8761
+ const resolved = map.get(anim.triggerShapeId);
8762
+ if (resolved) {
8763
+ anim.triggerShapeId = resolved;
8764
+ }
8765
+ }
8766
+ }
8767
+ }
8768
+ if (editorAnimations) {
8769
+ for (const anim of editorAnimations) {
8770
+ const resolvedElement = map.get(anim.elementId);
8771
+ if (resolvedElement) {
8772
+ anim.elementId = resolvedElement;
8773
+ }
8774
+ if (anim.triggerShapeId !== void 0) {
8775
+ const resolvedTrigger = map.get(anim.triggerShapeId);
8776
+ if (resolvedTrigger) {
8777
+ anim.triggerShapeId = resolvedTrigger;
8778
+ }
8779
+ }
8780
+ }
8781
+ }
8782
+ }
8783
+
8677
8784
  // src/core/services/PptxSlideLoaderService.ts
8678
8785
  var PptxSlideLoaderService = class {
8679
8786
  /**
@@ -8814,6 +8921,7 @@ var PptxSlideLoaderService = class {
8814
8921
  const transition = params.parseSlideTransition(slideXmlObj, path);
8815
8922
  const animations = params.parseEditorAnimations(slideXmlObj);
8816
8923
  const nativeAnimations = params.parseNativeAnimations(slideXmlObj);
8924
+ reconcileAnimationTargets(elements, nativeAnimations, animations);
8817
8925
  const rawTiming = slideXmlObj["p:sld"]?.["p:timing"];
8818
8926
  const drawingGuides = parseSlideDrawingGuides(slideXmlObj);
8819
8927
  const customerData = await params.parseSlideCustomerData(slideXmlObj, path);
@@ -9313,6 +9421,60 @@ var PptxEditorAnimationService = class {
9313
9421
  }
9314
9422
  };
9315
9423
 
9424
+ // src/core/services/animation-shape-id-assign.ts
9425
+ function flattenElements(elements, out) {
9426
+ for (const el of elements) {
9427
+ out.push(el);
9428
+ if (el.type === "group" && Array.isArray(el.children)) {
9429
+ flattenElements(el.children, out);
9430
+ }
9431
+ }
9432
+ }
9433
+ function maxShapeId(elements) {
9434
+ let max = 0;
9435
+ for (const el of elements) {
9436
+ if (el.shapeId !== void 0) {
9437
+ const n = Number.parseInt(el.shapeId, 10);
9438
+ if (Number.isFinite(n) && n > max) {
9439
+ max = n;
9440
+ }
9441
+ }
9442
+ }
9443
+ return max;
9444
+ }
9445
+ function remapEditorAnimationsToShapeIds(elements, animations, reservedMaxId = 0) {
9446
+ const flat = [];
9447
+ flattenElements(elements, flat);
9448
+ const byId = /* @__PURE__ */ new Map();
9449
+ for (const el of flat) {
9450
+ byId.set(el.id, el);
9451
+ }
9452
+ let nextId2 = Math.max(maxShapeId(flat), reservedMaxId) + 1;
9453
+ const resolve = (elementId) => {
9454
+ const el = byId.get(elementId);
9455
+ if (!el) {
9456
+ return void 0;
9457
+ }
9458
+ if (el.shapeId === void 0) {
9459
+ el.shapeId = String(nextId2);
9460
+ nextId2 += 1;
9461
+ }
9462
+ return el.shapeId;
9463
+ };
9464
+ return animations.map((anim) => {
9465
+ const resolvedElement = resolve(anim.elementId);
9466
+ const resolvedTrigger = anim.triggerShapeId !== void 0 ? resolve(anim.triggerShapeId) : void 0;
9467
+ if (resolvedElement === void 0 && resolvedTrigger === void 0) {
9468
+ return anim;
9469
+ }
9470
+ return {
9471
+ ...anim,
9472
+ elementId: resolvedElement ?? anim.elementId,
9473
+ triggerShapeId: resolvedTrigger ?? anim.triggerShapeId
9474
+ };
9475
+ });
9476
+ }
9477
+
9316
9478
  // src/core/services/native-animation-helpers.ts
9317
9479
  function extractSoundAction(cTn) {
9318
9480
  const stSnd = cTn["p:stSnd"];
@@ -10535,7 +10697,7 @@ var PptxSlideTransitionService = class {
10535
10697
  }
10536
10698
  parseSlideTransition(slideXml2) {
10537
10699
  const slideRoot = this.xmlLookupService.getChildByLocalName(slideXml2, "sld");
10538
- const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition");
10700
+ const transitionNode = this.xmlLookupService.getChildByLocalName(slideRoot, "transition") || this.findTransitionInAlternateContent(slideRoot);
10539
10701
  if (!transitionNode) {
10540
10702
  return void 0;
10541
10703
  }
@@ -10607,7 +10769,8 @@ var PptxSlideTransitionService = class {
10607
10769
  transitionType = "morph";
10608
10770
  }
10609
10771
  }
10610
- const parsedDuration = Number.parseInt(String(transitionNode["@_dur"] || ""), 10);
10772
+ const rawDuration = transitionNode["@_dur"] ?? transitionNode["@_p14:dur"];
10773
+ const parsedDuration = Number.parseInt(String(rawDuration || ""), 10);
10611
10774
  const durationMs = Number.isFinite(parsedDuration) && parsedDuration > 0 ? parsedDuration : void 0;
10612
10775
  const advanceOnClickToken = String(transitionNode["@_advClick"] || "").trim();
10613
10776
  const advanceOnClick = advanceOnClickToken.length > 0 ? !["0", "false", "off"].includes(advanceOnClickToken.toLowerCase()) : void 0;
@@ -10656,6 +10819,35 @@ var PptxSlideTransitionService = class {
10656
10819
  rawExtLst
10657
10820
  };
10658
10821
  }
10822
+ /**
10823
+ * Locate a `<p:transition>` wrapped in a slide-root `mc:AlternateContent`
10824
+ * envelope.
10825
+ *
10826
+ * Real PowerPoint (verified via COM-authored fixtures) wraps the
10827
+ * transition in `mc:AlternateContent` whenever it carries an Office
10828
+ * 2010+ attribute such as `p14:dur` (sub-second transition duration):
10829
+ * an `mc:Choice Requires="p14"` branch carries the richer transition,
10830
+ * and `mc:Fallback` carries a plain one for older readers. Without this
10831
+ * unwrap, `p:sld`'s direct-child lookup for `transition` finds nothing
10832
+ * and the whole transition (including plain ones falling back with no
10833
+ * p14 data) is silently dropped, even though `mc:Choice` is otherwise a
10834
+ * complete, directly usable `p:transition` node.
10835
+ */
10836
+ findTransitionInAlternateContent(slideRoot) {
10837
+ const altContent = this.xmlLookupService.getChildByLocalName(slideRoot, "AlternateContent");
10838
+ if (!altContent) {
10839
+ return void 0;
10840
+ }
10841
+ const choices = this.xmlLookupService.getChildrenArrayByLocalName(altContent, "Choice");
10842
+ for (const choice of choices) {
10843
+ const transitionNode = this.xmlLookupService.getChildByLocalName(choice, "transition");
10844
+ if (transitionNode) {
10845
+ return transitionNode;
10846
+ }
10847
+ }
10848
+ const fallback = this.xmlLookupService.getChildByLocalName(altContent, "Fallback");
10849
+ return this.xmlLookupService.getChildByLocalName(fallback, "transition");
10850
+ }
10659
10851
  /**
10660
10852
  * Detects the PowerPoint 2016+ `morph` transition stored as a p159 extension
10661
10853
  * inside the transition's extLst.
@@ -16902,6 +17094,7 @@ function getDefaultShapeType(layoutType) {
16902
17094
  case "cycle":
16903
17095
  case "target":
16904
17096
  case "gear":
17097
+ return "ellipse";
16905
17098
  case "relationship":
16906
17099
  case "venn":
16907
17100
  return "ellipse";
@@ -16909,7 +17102,10 @@ function getDefaultShapeType(layoutType) {
16909
17102
  return "chevron";
16910
17103
  case "pyramid":
16911
17104
  case "funnel":
16912
- return "rect";
17105
+ return "trapezoid";
17106
+ case "timeline":
17107
+ case "bending":
17108
+ return "roundRect";
16913
17109
  default:
16914
17110
  return "roundRect";
16915
17111
  }
@@ -16999,7 +17195,7 @@ function layoutCycle(nodes, bounds, themeColorMap) {
16999
17195
  const ny = cy + radius * Math.sin(angle) - nodeH / 2;
17000
17196
  const fill = accentColor(i, themeColorMap);
17001
17197
  elements.push(
17002
- makeShapeElement(nextId("sa-cycle"), nx, ny, nodeW, nodeH, "roundRect", fill, node.text, {
17198
+ makeShapeElement(nextId("sa-cycle"), nx, ny, nodeW, nodeH, "ellipse", fill, node.text, {
17003
17199
  fontSize: Math.max(7, Math.min(10, nodeW * 0.1))
17004
17200
  })
17005
17201
  );
@@ -17066,7 +17262,7 @@ function layoutPyramid(nodes, bounds, themeColorMap) {
17066
17262
  const x = bounds.x + (bounds.width - w) / 2;
17067
17263
  const y = bounds.y + padding + i * (bandH + gap);
17068
17264
  const fill = accentColor(i, themeColorMap);
17069
- return makeShapeElement(nextId("sa-pyramid"), x, y, w, bandH, "rect", fill, node.text, {
17265
+ return makeShapeElement(nextId("sa-pyramid"), x, y, w, bandH, "trapezoid", fill, node.text, {
17070
17266
  fontSize: Math.max(8, Math.min(11, bandH * 0.4))
17071
17267
  });
17072
17268
  });
@@ -17815,7 +18011,7 @@ function decomposeSmartArt(smartArtData, containerBounds, themeColorMap, layoutD
17815
18011
  themeColorMap,
17816
18012
  smartArtData.colorTransform?.fillColors
17817
18013
  );
17818
- const layoutType = smartArtData.resolvedLayoutType ?? resolveLayoutFromRawType(smartArtData.layoutType);
18014
+ const layoutType = resolveEffectiveLayoutType(smartArtData);
17819
18015
  const namedLayout = smartArtData.layout;
17820
18016
  if (namedLayout) {
17821
18017
  const namedResult = dispatchNamedLayout(namedLayout, nodes, containerBounds, effectiveThemeMap);
@@ -17846,6 +18042,52 @@ function dispatchLayoutByType(layoutType, nodes, containerBounds, effectiveTheme
17846
18042
  return layoutWithHeuristic(nodes, containerBounds, effectiveThemeMap);
17847
18043
  }
17848
18044
  }
18045
+ var LAYOUT_PRESET_TO_TYPE = {
18046
+ basicBlockList: "list",
18047
+ alternatingHexagons: "list",
18048
+ horizontalBulletList: "list",
18049
+ stackedList: "list",
18050
+ tableList: "list",
18051
+ trapezoidList: "list",
18052
+ pictureAccentList: "list",
18053
+ verticalBlockList: "list",
18054
+ groupedList: "list",
18055
+ pyramidList: "list",
18056
+ horizontalPictureList: "list",
18057
+ basicMatrix: "matrix",
18058
+ basicPyramid: "pyramid",
18059
+ invertedPyramid: "pyramid",
18060
+ basicChevronProcess: "chevron",
18061
+ continuousBlockProcess: "process",
18062
+ segmentedProcess: "process",
18063
+ upwardArrow: "process",
18064
+ basicTimeline: "timeline",
18065
+ bendingProcess: "bending",
18066
+ stepDownProcess: "process",
18067
+ alternatingFlow: "process",
18068
+ descendingProcess: "process",
18069
+ accentProcess: "process",
18070
+ verticalChevronList: "chevron",
18071
+ basicFunnel: "funnel",
18072
+ basicCycle: "cycle",
18073
+ basicPie: "cycle",
18074
+ basicRadial: "cycle",
18075
+ basicVenn: "relationship",
18076
+ convergingRadial: "cycle",
18077
+ linearVenn: "relationship",
18078
+ basicTarget: "target",
18079
+ interlockingGears: "gear",
18080
+ hierarchy: "hierarchy"
18081
+ };
18082
+ function resolveEffectiveLayoutType(data) {
18083
+ if (data.resolvedLayoutType && data.resolvedLayoutType !== "unknown") {
18084
+ return data.resolvedLayoutType;
18085
+ }
18086
+ if (data.layout && LAYOUT_PRESET_TO_TYPE[data.layout]) {
18087
+ return LAYOUT_PRESET_TO_TYPE[data.layout];
18088
+ }
18089
+ return resolveLayoutFromRawType(data.layoutType);
18090
+ }
17849
18091
  function buildEffectiveThemeMap(themeColorMap, colorTransformFills) {
17850
18092
  if (!colorTransformFills || colorTransformFills.length === 0) {
17851
18093
  return themeColorMap;
@@ -36086,14 +36328,19 @@ function transPointXml(guid, type, cxnGuid) {
36086
36328
  function docPointXml(docGuid, ids) {
36087
36329
  return `<dgm:pt modelId="${docGuid}" type="doc"><dgm:prSet loTypeId="${xmlEscape(ids.layoutUniqueId)}" loCatId="${xmlEscape(ids.layoutCategory)}" qsTypeId="${xmlEscape(ids.quickStyleUniqueId)}" qsCatId="simple" csTypeId="${xmlEscape(ids.colorsUniqueId)}" csCatId="${xmlEscape(ids.colorsCategory)}"/><dgm:spPr/>${EMPTY_TEXT_BODY}</dgm:pt>`;
36088
36330
  }
36089
- function buildFabricatedDiagramDataXml(data, ids) {
36090
- const docGuid = newSmartArtGuid();
36331
+ function buildNodeGuidMap(nodes) {
36091
36332
  const guidByNodeId = /* @__PURE__ */ new Map();
36092
- for (const node of data.nodes) {
36333
+ for (const node of nodes) {
36093
36334
  if (node.id && !guidByNodeId.has(node.id)) {
36094
36335
  guidByNodeId.set(node.id, GUID_MODEL_ID.test(node.id) ? node.id : newSmartArtGuid());
36095
36336
  }
36096
36337
  }
36338
+ return guidByNodeId;
36339
+ }
36340
+ var DSP_DATA_MODEL_EXT_URI = "http://schemas.microsoft.com/office/drawing/2008/diagram";
36341
+ function buildFabricatedDiagramDataXml(data, ids, options = {}) {
36342
+ const docGuid = newSmartArtGuid();
36343
+ const guidByNodeId = options.guidByNodeId ?? buildNodeGuidMap(data.nodes);
36097
36344
  const points2 = [docPointXml(docGuid, ids)];
36098
36345
  const connections = [];
36099
36346
  const nextSrcOrd = /* @__PURE__ */ new Map();
@@ -36116,7 +36363,121 @@ function buildFabricatedDiagramDataXml(data, ids) {
36116
36363
  );
36117
36364
  }
36118
36365
  return `${XML_PROLOG}\r
36119
- <dgm:dataModel ${DGM_XMLNS}><dgm:ptLst>${points2.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel>`;
36366
+ <dgm:dataModel ${DGM_XMLNS}><dgm:ptLst>${points2.join("")}</dgm:ptLst><dgm:cxnLst>${connections.join("")}</dgm:cxnLst><dgm:bg/><dgm:whole/>${dataModelExtXml(options.drawingRelId)}</dgm:dataModel>`;
36367
+ }
36368
+ function dataModelExtXml(drawingRelId) {
36369
+ if (!drawingRelId) {
36370
+ return "";
36371
+ }
36372
+ return `<dgm:extLst><a:ext uri="${DSP_DATA_MODEL_EXT_URI}"><dsp:dataModelExt xmlns:dsp="${DSP_DATA_MODEL_EXT_URI}" relId="${xmlEscape(drawingRelId)}" minVer="http://schemas.openxmlformats.org/drawingml/2006/diagram"/></a:ext></dgm:extLst>`;
36373
+ }
36374
+
36375
+ // src/core/core/runtime/smartart-fabrication-drawing.ts
36376
+ var DIAGRAM_DRAWING_CONTENT_TYPE = "application/vnd.ms-office.drawingml.diagramDrawing+xml";
36377
+ var DIAGRAM_DRAWING_REL_TYPE = "http://schemas.microsoft.com/office/2007/relationships/diagramDrawing";
36378
+ var DSP_XMLNS = 'xmlns:dsp="http://schemas.microsoft.com/office/drawing/2008/diagram" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"';
36379
+ var ACCENTS = ["accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
36380
+ function toEmu(px2) {
36381
+ return Math.round(px2 * EMU_PER_PX);
36382
+ }
36383
+ function normalizeHex3(color) {
36384
+ if (!color) {
36385
+ return void 0;
36386
+ }
36387
+ const hex8 = color.replace(/^#/u, "").trim();
36388
+ return /^[0-9A-Fa-f]{6}$/u.test(hex8) ? hex8.toUpperCase() : void 0;
36389
+ }
36390
+ function resolveShapeModelId(shape, index, nodes, guidByNodeId) {
36391
+ const direct = guidByNodeId.get(shape.id);
36392
+ if (direct) {
36393
+ return direct;
36394
+ }
36395
+ const matched = nodes.find(
36396
+ (node) => node.id && (shape.id === node.id || shape.id.endsWith(`-${node.id}`))
36397
+ );
36398
+ if (matched?.id) {
36399
+ const guid = guidByNodeId.get(matched.id);
36400
+ if (guid) {
36401
+ return guid;
36402
+ }
36403
+ }
36404
+ const positional = nodes[index]?.id;
36405
+ if (positional) {
36406
+ const guid = guidByNodeId.get(positional);
36407
+ if (guid) {
36408
+ return guid;
36409
+ }
36410
+ }
36411
+ return newSmartArtGuid();
36412
+ }
36413
+ function textBodyXml(shape) {
36414
+ const text = shape.text ?? "";
36415
+ const fontColor = normalizeHex3(shape.fontColor);
36416
+ const size = shape.fontSize && shape.fontSize > 0 ? ` sz="${Math.round(shape.fontSize * 100)}"` : "";
36417
+ const fill = fontColor ? `<a:solidFill><a:srgbClr val="${fontColor}"/></a:solidFill>` : "";
36418
+ const rPr = `<a:rPr lang="en-US"${size}>${fill}</a:rPr>`;
36419
+ const run = text ? `<a:r>${rPr}<a:t>${xmlEscape(text)}</a:t></a:r>` : `<a:endParaRPr lang="en-US"/>`;
36420
+ return `<dsp:txBody><a:bodyPr/><a:lstStyle/><a:p><a:pPr algn="ctr"/>${run}</a:p></dsp:txBody>`;
36421
+ }
36422
+ function styleXml(index) {
36423
+ const accent = ACCENTS[index % ACCENTS.length];
36424
+ return `<dsp:style><a:lnRef idx="2"><a:schemeClr val="${accent}"><a:shade val="50000"/></a:schemeClr></a:lnRef><a:fillRef idx="1"><a:schemeClr val="${accent}"/></a:fillRef><a:effectRef idx="0"><a:schemeClr val="${accent}"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></dsp:style>`;
36425
+ }
36426
+ function shapePropsXml(shape) {
36427
+ const rot = shape.rotation ? ` rot="${Math.round(shape.rotation * 6e4)}"` : "";
36428
+ const xfrm = `<a:xfrm${rot}><a:off x="${toEmu(shape.x)}" y="${toEmu(shape.y)}"/><a:ext cx="${toEmu(Math.max(shape.width, 1))}" cy="${toEmu(Math.max(shape.height, 1))}"/></a:xfrm>`;
36429
+ const prst = shape.shapeType && shape.shapeType.length > 0 ? shape.shapeType : "rect";
36430
+ const geom = `<a:prstGeom prst="${xmlEscape(prst)}"><a:avLst/></a:prstGeom>`;
36431
+ const fillHex = normalizeHex3(shape.fillColor);
36432
+ const fill = fillHex ? `<a:solidFill><a:srgbClr val="${fillHex}"/></a:solidFill>` : "";
36433
+ const strokeHex = normalizeHex3(shape.strokeColor);
36434
+ const strokeW = shape.strokeWidth && shape.strokeWidth > 0 ? ` w="${Math.round(shape.strokeWidth * 12700)}"` : "";
36435
+ const ln = strokeHex ? `<a:ln${strokeW}><a:solidFill><a:srgbClr val="${strokeHex}"/></a:solidFill></a:ln>` : "";
36436
+ return `<dsp:spPr>${xfrm}${geom}${fill}${ln}</dsp:spPr>`;
36437
+ }
36438
+ function shapeXml(shape, index, nodes, guidByNodeId) {
36439
+ const modelId = resolveShapeModelId(shape, index, nodes, guidByNodeId);
36440
+ return `<dsp:sp modelId="${modelId}"><dsp:nvSpPr><dsp:cNvPr id="0" name=""/><dsp:cNvSpPr/></dsp:nvSpPr>${shapePropsXml(shape)}${styleXml(index)}${textBodyXml(shape)}</dsp:sp>`;
36441
+ }
36442
+ function buildFabricatedDrawingXml(shapes, nodes, guidByNodeId) {
36443
+ if (!shapes || shapes.length === 0) {
36444
+ return void 0;
36445
+ }
36446
+ const body = shapes.map((shape, index) => shapeXml(shape, index, nodes, guidByNodeId)).join("");
36447
+ return `${XML_PROLOG}\r
36448
+ <dsp:drawing ${DSP_XMLNS}><dsp:spTree><dsp:nvGrpSpPr><dsp:cNvPr id="0" name=""/><dsp:cNvGrpSpPr/></dsp:nvGrpSpPr><dsp:grpSpPr/>${body}</dsp:spTree></dsp:drawing>`;
36449
+ }
36450
+ function buildDiagramDataRelsXml(drawingRelId, drawingFileName) {
36451
+ return `${XML_PROLOG}\r
36452
+ <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="${xmlEscape(drawingRelId)}" Type="${DIAGRAM_DRAWING_REL_TYPE}" Target="${xmlEscape(drawingFileName)}"/></Relationships>`;
36453
+ }
36454
+ function smartArtElementsToDrawingShapes(elements) {
36455
+ if (!elements || elements.length === 0) {
36456
+ return [];
36457
+ }
36458
+ const shapes = [];
36459
+ for (const el of elements) {
36460
+ if (el.type !== "shape") {
36461
+ continue;
36462
+ }
36463
+ const shape = el;
36464
+ shapes.push({
36465
+ id: shape.id,
36466
+ shapeType: shape.shapeType ?? "rect",
36467
+ x: shape.x,
36468
+ y: shape.y,
36469
+ width: shape.width,
36470
+ height: shape.height,
36471
+ rotation: shape.rotation,
36472
+ fillColor: shape.shapeStyle?.fillColor,
36473
+ strokeColor: shape.shapeStyle?.strokeColor,
36474
+ strokeWidth: shape.shapeStyle?.strokeWidth,
36475
+ text: shape.text,
36476
+ fontSize: shape.textStyle?.fontSize,
36477
+ fontColor: shape.textStyle?.color
36478
+ });
36479
+ }
36480
+ return shapes;
36120
36481
  }
36121
36482
 
36122
36483
  // src/core/core/runtime/smartart-fabrication-hierarchy.ts
@@ -36324,14 +36685,29 @@ var PptxHandlerRuntime32 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
36324
36685
  const data = el.smartArtData;
36325
36686
  const family = resolveFabricatedLayoutFamily(data);
36326
36687
  const index = this.nextDiagramPartIndex();
36688
+ const guidByNodeId = buildNodeGuidMap(data.nodes);
36689
+ const drawingShapes = data.drawingShapes && data.drawingShapes.length > 0 ? data.drawingShapes : smartArtElementsToDrawingShapes(
36690
+ decomposeSmartArt(data, {
36691
+ x: 0,
36692
+ y: 0,
36693
+ width: Math.max(el.width, 1),
36694
+ height: Math.max(el.height, 1)
36695
+ })
36696
+ );
36697
+ const drawingRelId = "rId1";
36698
+ const drawingXml = buildFabricatedDrawingXml(drawingShapes, data.nodes, guidByNodeId);
36327
36699
  const payloads = {
36328
- data: buildFabricatedDiagramDataXml(data, {
36329
- layoutUniqueId: fabricatedLayoutUniqueId(family),
36330
- layoutCategory: fabricatedLayoutCategory(family),
36331
- quickStyleUniqueId: FABRICATED_QUICKSTYLE_UNIQUE_ID,
36332
- colorsUniqueId: fabricatedColorsUniqueId(data.colorScheme),
36333
- colorsCategory: fabricatedColorsCategory(data.colorScheme)
36334
- }),
36700
+ data: buildFabricatedDiagramDataXml(
36701
+ data,
36702
+ {
36703
+ layoutUniqueId: fabricatedLayoutUniqueId(family),
36704
+ layoutCategory: fabricatedLayoutCategory(family),
36705
+ quickStyleUniqueId: FABRICATED_QUICKSTYLE_UNIQUE_ID,
36706
+ colorsUniqueId: fabricatedColorsUniqueId(data.colorScheme),
36707
+ colorsCategory: fabricatedColorsCategory(data.colorScheme)
36708
+ },
36709
+ { guidByNodeId, drawingRelId: drawingXml ? drawingRelId : void 0 }
36710
+ ),
36335
36711
  layout: buildFabricatedLayoutDefXml(family),
36336
36712
  quickStyle: buildFabricatedQuickStyleXml(),
36337
36713
  colors: buildFabricatedColorsXml(data.colorScheme)
@@ -36355,6 +36731,19 @@ var PptxHandlerRuntime32 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
36355
36731
  });
36356
36732
  relIds[kind.relAttr] = relId;
36357
36733
  }
36734
+ if (drawingXml) {
36735
+ const drawingFile = `drawing${index}.xml`;
36736
+ const drawingPath = `ppt/diagrams/${drawingFile}`;
36737
+ this.zip.file(drawingPath, drawingXml);
36738
+ (this.pendingDiagramContentTypes ??= []).push({
36739
+ partName: `/${drawingPath}`,
36740
+ contentType: DIAGRAM_DRAWING_CONTENT_TYPE
36741
+ });
36742
+ this.zip.file(
36743
+ `ppt/diagrams/_rels/data${index}.xml.rels`,
36744
+ buildDiagramDataRelsXml(drawingRelId, drawingFile)
36745
+ );
36746
+ }
36358
36747
  const EMU = _PptxHandlerRuntime.EMU_PER_PX;
36359
36748
  return {
36360
36749
  "p:nvGraphicFramePr": {
@@ -36413,6 +36802,22 @@ var PptxHandlerRuntime32 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
36413
36802
 
36414
36803
  // src/core/core/runtime/PptxHandlerRuntimeSaveElementWriter.ts
36415
36804
  var PptxHandlerRuntime33 = class _PptxHandlerRuntime extends PptxHandlerRuntime32 {
36805
+ /**
36806
+ * Whether a shape XML represents a `<p:pic>` (picture-shaped) node.
36807
+ *
36808
+ * Real PowerPoint (verified via COM-authored fixtures) represents video
36809
+ * *and* audio media as `<p:pic>` (poster-frame blip + `p:nvPr/a:videoFile`
36810
+ * or `a:audioFile` + a `p14:media` extension) rather than the older
36811
+ * `<p:graphicFrame>` form. A `media`-typed element's `rawXml` is
36812
+ * therefore frequently `p:pic`-shaped, not a graphic frame; without this
36813
+ * check it falls into the generic `shapes` bucket, which the slide
36814
+ * writer serializes under `<p:sp>` -- corrupting the picture markup
36815
+ * (`p:nvPicPr`/`p:blipFill`) into an invalid shape and permanently
36816
+ * losing the media relationship on save.
36817
+ */
36818
+ isPictureShape(shape) {
36819
+ return Boolean(shape["p:nvPicPr"]);
36820
+ }
36416
36821
  /** Whether a shape XML represents a graphic frame. */
36417
36822
  isGraphicFrameShape(shape) {
36418
36823
  return Boolean(shape["p:nvGraphicFramePr"] || shape["a:graphic"] && shape["p:xfrm"]);
@@ -36528,6 +36933,34 @@ var PptxHandlerRuntime33 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
36528
36933
  isTemplateElementId(elementId) {
36529
36934
  return elementId.startsWith("layout-") || elementId.startsWith("master-");
36530
36935
  }
36936
+ /** Non-visual property containers that hold a `p:cNvPr`. */
36937
+ static NV_CONTAINERS = [
36938
+ "p:nvSpPr",
36939
+ "p:nvPicPr",
36940
+ "p:nvCxnSpPr",
36941
+ "p:nvGraphicFramePr",
36942
+ "p:nvGrpSpPr"
36943
+ ];
36944
+ /**
36945
+ * Write an element's native shape id (`element.shapeId`) into the serialized
36946
+ * shape's `p:cNvPr/@id`. Animation targets (`p:spTgt/@spid`) reference this
36947
+ * id, so the two must agree for PowerPoint to bind an animation to its shape.
36948
+ * A no-op when the element carries no `shapeId` (nothing to reconcile) or the
36949
+ * shape XML has no cNvPr container.
36950
+ */
36951
+ applyShapeIdToCnvPr(shape, el) {
36952
+ if (el.shapeId === void 0) {
36953
+ return;
36954
+ }
36955
+ for (const nvKey of _PptxHandlerRuntime.NV_CONTAINERS) {
36956
+ const nv = shape[nvKey];
36957
+ const cNvPr = nv?.["p:cNvPr"];
36958
+ if (cNvPr) {
36959
+ cNvPr["@_id"] = el.shapeId;
36960
+ return;
36961
+ }
36962
+ }
36963
+ }
36531
36964
  /**
36532
36965
  * Process a single slide element during save. Handles embedding,
36533
36966
  * transforms, geometry, styles, text, and sorts into collectors.
@@ -36637,12 +37070,15 @@ var PptxHandlerRuntime33 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
36637
37070
  }
36638
37071
  return;
36639
37072
  }
37073
+ this.applyShapeIdToCnvPr(shape, el);
36640
37074
  if (el.type === "picture" || el.type === "image") {
36641
37075
  collectors.pics.push(shape);
36642
37076
  } else if (el.type === "connector") {
36643
37077
  collectors.connectors.push(shape);
36644
37078
  } else if (el.type === "model3d") {
36645
37079
  collectors.model3ds.push(shape);
37080
+ } else if (el.type === "media" && this.isPictureShape(shape)) {
37081
+ collectors.pics.push(shape);
36646
37082
  } else if (this.isGraphicFrameShape(shape)) {
36647
37083
  collectors.graphicFrames.push(shape);
36648
37084
  } else {
@@ -36681,12 +37117,17 @@ var PptxHandlerRuntime34 = class extends PptxHandlerRuntime33 {
36681
37117
  delete slideNode["p:transition"];
36682
37118
  }
36683
37119
  }
36684
- if (slide.animations !== void 0) {
36685
- this.applyEditorAnimations(slideNode, slide.animations);
37120
+ const shapeIdAnimations = slide.animations !== void 0 ? remapEditorAnimationsToShapeIds(
37121
+ slide.elements,
37122
+ slide.animations,
37123
+ this.maxCnvPrId(this.ensureSlideTree(xmlObj))
37124
+ ) : void 0;
37125
+ if (shapeIdAnimations !== void 0) {
37126
+ this.applyEditorAnimations(slideNode, shapeIdAnimations);
36686
37127
  }
36687
- if (slide.animations && slide.animations.length > 0) {
37128
+ if (shapeIdAnimations && shapeIdAnimations.length > 0) {
36688
37129
  const generatedTiming = this.animationWriteService.buildTimingXml(
36689
- slide.animations,
37130
+ shapeIdAnimations,
36690
37131
  slide.rawTiming
36691
37132
  );
36692
37133
  if (generatedTiming) {
@@ -36839,6 +37280,40 @@ var PptxHandlerRuntime34 = class extends PptxHandlerRuntime33 {
36839
37280
  }
36840
37281
  this.zip.file(slide.id, this.builder.build(xmlObj));
36841
37282
  }
37283
+ /**
37284
+ * Largest `p:cNvPr/@id` already present anywhere in a shape tree, including
37285
+ * the implicit `<p:spTree>` group's own reserved id. Used to seed minting of
37286
+ * fresh animation-target shape ids so they never collide with a reserved id.
37287
+ */
37288
+ maxCnvPrId(spTree) {
37289
+ let max = 0;
37290
+ const nvContainers = [
37291
+ "p:nvSpPr",
37292
+ "p:nvPicPr",
37293
+ "p:nvCxnSpPr",
37294
+ "p:nvGraphicFramePr",
37295
+ "p:nvGrpSpPr"
37296
+ ];
37297
+ const visit = (node) => {
37298
+ for (const nvKey of nvContainers) {
37299
+ const nv = node[nvKey];
37300
+ const cNvPr = nv?.["p:cNvPr"];
37301
+ if (cNvPr?.["@_id"] !== void 0) {
37302
+ const n = Number.parseInt(String(cNvPr["@_id"]), 10);
37303
+ if (Number.isFinite(n) && n > max) {
37304
+ max = n;
37305
+ }
37306
+ }
37307
+ }
37308
+ for (const listKey of ["p:sp", "p:pic", "p:cxnSp", "p:graphicFrame", "p:grpSp"]) {
37309
+ for (const child of this.ensureArray(node[listKey])) {
37310
+ visit(child);
37311
+ }
37312
+ }
37313
+ };
37314
+ visit(spTree);
37315
+ return max;
37316
+ }
36842
37317
  /**
36843
37318
  * Re-wrap selected children with their original `<mc:AlternateContent>`
36844
37319
  * envelope (CC-4).
@@ -46557,7 +47032,22 @@ var PptxHandlerRuntime79 = class _PptxHandlerRuntime extends PptxHandlerRuntime7
46557
47032
  await this.enrichOleElementsWithEmbeddedData(el.children, slidePath, depth + 1);
46558
47033
  continue;
46559
47034
  }
46560
- if (el.type !== "ole" || el.isLinked || !el.oleTarget) {
47035
+ if (el.type !== "ole") {
47036
+ continue;
47037
+ }
47038
+ if (el.previewImage && !el.previewImageData) {
47039
+ try {
47040
+ const previewPath = this.resolveImagePath(slidePath, el.previewImage);
47041
+ if (previewPath) {
47042
+ const previewData = await this.getImageData(previewPath);
47043
+ if (previewData) {
47044
+ el.previewImageData = previewData;
47045
+ }
47046
+ }
47047
+ } catch {
47048
+ }
47049
+ }
47050
+ if (el.isLinked || !el.oleTarget) {
46561
47051
  continue;
46562
47052
  }
46563
47053
  try {
@@ -64816,4 +65306,4 @@ var SvgExporter = class _SvgExporter {
64816
65306
  * `<p:extLst>` (optional)
64817
65307
  */
64818
65308
 
64819
- 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, 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, 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, PptxHandlerRuntime82 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, 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, applyDrawingColorTransforms, applyKinsokuToXml, applyTableCellTextAndStyle, applyTemplate, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, 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, extractGuidFromPartName, extractModel3DTransform, extractTagAttribute, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, 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, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2 as isZoomElementUtil, layoutEngineShapesToDrawingShapes, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlToPresetName, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseChart3DSurfaces, parseChartAxes, parseCondition, parseConditionList, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSvgPath, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, rebuildTableStructureInRawXml, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, 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, serializeSvgPath, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, setElementLocked, setSmartArtNodeStyle, shouldRenderFallbackLabel, shouldReturnToZoomSlide, subtractPolygons, subtractShapes, subtractSvgPaths, svgPathToPolygons, switchSmartArtLayout, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };
65309
+ 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, 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, 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, PptxHandlerRuntime82 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, 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, applyDrawingColorTransforms, applyKinsokuToXml, applyTableCellTextAndStyle, applyTemplate, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, 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, extractGuidFromPartName, extractModel3DTransform, extractTagAttribute, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, 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, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2 as isZoomElementUtil, layoutEngineShapesToDrawingShapes, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlToPresetName, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseChart3DSurfaces, parseChartAxes, parseCondition, parseConditionList, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSvgPath, 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, serializeSvgPath, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, setElementLocked, setSmartArtNodeStyle, shouldRenderFallbackLabel, shouldReturnToZoomSlide, subtractPolygons, subtractShapes, subtractSvgPaths, svgPathToPolygons, switchSmartArtLayout, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };