pptx-viewer-core 1.1.34 → 1.1.36

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
@@ -6204,16 +6204,16 @@ var PptxShapeStyleExtractor = class {
6204
6204
  extractShapeStyle(spPr, styleNode) {
6205
6205
  const style = {};
6206
6206
  const shapeProps = spPr || {};
6207
- const solidFill = shapeProps["a:solidFill"];
6207
+ const solidFill2 = shapeProps["a:solidFill"];
6208
6208
  const gradFill = shapeProps["a:gradFill"];
6209
6209
  const pattFill = shapeProps["a:pattFill"];
6210
6210
  const noFill = shapeProps["a:noFill"];
6211
6211
  const blipFill = shapeProps["a:blipFill"];
6212
- if (solidFill) {
6212
+ if (solidFill2) {
6213
6213
  style.fillMode = "solid";
6214
- style.fillColor = this.context.parseColor(solidFill);
6215
- style.fillOpacity = this.context.extractColorOpacity(solidFill);
6216
- const solidFillColorXml = extractColorChoiceXml(solidFill);
6214
+ style.fillColor = this.context.parseColor(solidFill2);
6215
+ style.fillOpacity = this.context.extractColorOpacity(solidFill2);
6216
+ const solidFillColorXml = extractColorChoiceXml(solidFill2);
6217
6217
  if (solidFillColorXml) {
6218
6218
  style.fillColorXml = solidFillColorXml;
6219
6219
  }
@@ -8944,15 +8944,15 @@ var PptxSlideLoaderService = class {
8944
8944
 
8945
8945
  // src/core/services/PptxXmlLookupService.ts
8946
8946
  var PptxXmlLookupService = class {
8947
- getChildByLocalName(parent, localName) {
8947
+ getChildByLocalName(parent, localName2) {
8948
8948
  if (!parent) {
8949
8949
  return void 0;
8950
8950
  }
8951
- const direct = parent[localName];
8951
+ const direct = parent[localName2];
8952
8952
  if (direct && typeof direct === "object" && !Array.isArray(direct)) {
8953
8953
  return direct;
8954
8954
  }
8955
- const suffix = `:${localName}`;
8955
+ const suffix = `:${localName2}`;
8956
8956
  const matchingKey = Object.keys(parent).find((key) => key.endsWith(suffix));
8957
8957
  if (!matchingKey) {
8958
8958
  return void 0;
@@ -8963,32 +8963,32 @@ var PptxXmlLookupService = class {
8963
8963
  }
8964
8964
  return value;
8965
8965
  }
8966
- getChildrenArrayByLocalName(parent, localName) {
8966
+ getChildrenArrayByLocalName(parent, localName2) {
8967
8967
  if (!parent) {
8968
8968
  return [];
8969
8969
  }
8970
- const direct = parent[localName];
8970
+ const direct = parent[localName2];
8971
8971
  if (direct !== void 0) {
8972
8972
  return this.toXmlArray(direct);
8973
8973
  }
8974
- const suffix = `:${localName}`;
8974
+ const suffix = `:${localName2}`;
8975
8975
  const matchingKey = Object.keys(parent).find((key) => key.endsWith(suffix));
8976
8976
  if (!matchingKey) {
8977
8977
  return [];
8978
8978
  }
8979
8979
  return this.toXmlArray(parent[matchingKey]);
8980
8980
  }
8981
- getScalarChildByLocalName(parent, localName) {
8981
+ getScalarChildByLocalName(parent, localName2) {
8982
8982
  if (!parent) {
8983
8983
  return void 0;
8984
8984
  }
8985
- const direct = parent[localName];
8985
+ const direct = parent[localName2];
8986
8986
  if (typeof direct === "string" || typeof direct === "number") {
8987
8987
  return String(direct);
8988
8988
  }
8989
- const suffix = `:${localName}`;
8989
+ const suffix = `:${localName2}`;
8990
8990
  for (const [key, value] of Object.entries(parent)) {
8991
- if (key !== localName && !key.endsWith(suffix)) {
8991
+ if (key !== localName2 && !key.endsWith(suffix)) {
8992
8992
  continue;
8993
8993
  }
8994
8994
  if (typeof value === "string" || typeof value === "number") {
@@ -10433,11 +10433,11 @@ function parseP14FromExtLst(extLstNode, xmlLookupService, getXmlLocalName) {
10433
10433
  if (key.startsWith("@_")) {
10434
10434
  continue;
10435
10435
  }
10436
- const localName = getXmlLocalName(key);
10437
- if (!P14_TRANSITION_TYPES.has(localName)) {
10436
+ const localName2 = getXmlLocalName(key);
10437
+ if (!P14_TRANSITION_TYPES.has(localName2)) {
10438
10438
  continue;
10439
10439
  }
10440
- const type = localName;
10440
+ const type = localName2;
10441
10441
  let direction;
10442
10442
  let orient;
10443
10443
  let pattern;
@@ -10487,8 +10487,8 @@ function buildP14ExtLst(transitionType, direction, orient, pattern, rawExtLst, x
10487
10487
  if (key.startsWith("@_")) {
10488
10488
  continue;
10489
10489
  }
10490
- const localName = getXmlLocalName(key);
10491
- if (P14_TRANSITION_TYPES.has(localName)) {
10490
+ const localName2 = getXmlLocalName(key);
10491
+ if (P14_TRANSITION_TYPES.has(localName2)) {
10492
10492
  return false;
10493
10493
  }
10494
10494
  }
@@ -10551,17 +10551,17 @@ var PptxSlideTransitionService = class {
10551
10551
  if (key.startsWith("@_")) {
10552
10552
  continue;
10553
10553
  }
10554
- const localName = this.getXmlLocalName(key);
10555
- if (localName === "sndAc") {
10554
+ const localName2 = this.getXmlLocalName(key);
10555
+ if (localName2 === "sndAc") {
10556
10556
  rawSoundAction = value;
10557
10557
  continue;
10558
10558
  }
10559
- if (localName === "extLst") {
10559
+ if (localName2 === "extLst") {
10560
10560
  rawExtLst = value;
10561
10561
  continue;
10562
10562
  }
10563
- if (TRANSITION_TYPES.has(localName)) {
10564
- transitionType = localName;
10563
+ if (TRANSITION_TYPES.has(localName2)) {
10564
+ transitionType = localName2;
10565
10565
  }
10566
10566
  if (value && typeof value === "object" && !Array.isArray(value)) {
10567
10567
  const detail = value;
@@ -11952,6 +11952,26 @@ var PptxAnimationWriteService = class {
11952
11952
  }
11953
11953
  };
11954
11954
 
11955
+ // src/core/utils/xml-entities.ts
11956
+ var NUMERIC_HEX = /&#x(?<hex>[0-9a-fA-F]+);/gu;
11957
+ var NUMERIC_DEC = /&#(?<dec>\d+);/gu;
11958
+ function decodeXmlEntities(value) {
11959
+ if (typeof value !== "string" || !value.includes("&")) {
11960
+ return value;
11961
+ }
11962
+ return value.replace(NUMERIC_HEX, (_match, hex8) => codePointToString(parseInt(hex8, 16))).replace(NUMERIC_DEC, (_match, dec) => codePointToString(parseInt(dec, 10))).replace(/&lt;/gu, "<").replace(/&gt;/gu, ">").replace(/&quot;/gu, '"').replace(/&apos;/gu, "'").replace(/&amp;/gu, "&");
11963
+ }
11964
+ function codePointToString(codePoint) {
11965
+ if (!Number.isFinite(codePoint) || codePoint < 0 || codePoint > 1114111) {
11966
+ return "";
11967
+ }
11968
+ try {
11969
+ return String.fromCodePoint(codePoint);
11970
+ } catch {
11971
+ return "";
11972
+ }
11973
+ }
11974
+
11955
11975
  // src/core/core/factories/PptxRuntimeDependencyFactory.ts
11956
11976
  var PptxRuntimeDependencyFactory = class {
11957
11977
  createParser() {
@@ -11963,7 +11983,7 @@ var PptxRuntimeDependencyFactory = class {
11963
11983
  // default), `<AppVersion>16.0000</AppVersion>` is coerced to the
11964
11984
  // JS number 16, losing the trailing zeros. On save we write back
11965
11985
  // "16", which fails PowerPoint's strict `[0-9]+\.[0-9]{4}` match
11966
- // on AppVersion the loader rejects the package with HRESULT
11986
+ // on AppVersion: the loader rejects the package with HRESULT
11967
11987
  // 0x80070570 (ERROR_FILE_CORRUPT) and shows the repair dialog.
11968
11988
  // More generally, OOXML element text is always an untyped string;
11969
11989
  // downstream callers coerce where needed.
@@ -11974,7 +11994,15 @@ var PptxRuntimeDependencyFactory = class {
11974
11994
  // (billion-laughs / external-entity / future fast-xml-parser
11975
11995
  // regressions). v5.5.5 currently defaults to safe behaviour but
11976
11996
  // pinning this makes the guarantee explicit and forward-stable.
11977
- processEntities: false
11997
+ processEntities: false,
11998
+ // With entity processing disabled, the five predefined XML entities
11999
+ // and numeric character references would survive ENCODED in element
12000
+ // text (e.g. `Tom &amp; Jerry` renders the literal `&amp;` and
12001
+ // double-encodes to `&amp;amp;` on save). Decode just those here -
12002
+ // they cannot trigger entity expansion, so the security guarantee
12003
+ // above is preserved - so text nodes hold their real characters and
12004
+ // the builder re-encodes them symmetrically on save.
12005
+ tagValueProcessor: (_tagName, tagValue) => decodeXmlEntities(tagValue)
11978
12006
  });
11979
12007
  }
11980
12008
  createBuilder() {
@@ -12738,27 +12766,27 @@ function detectDigitalSignatures(zipEntryPaths) {
12738
12766
  function getSignaturePathsToStrip(zipEntryPaths) {
12739
12767
  return zipEntryPaths.filter((p) => p.startsWith(SIGNATURE_PREFIX));
12740
12768
  }
12741
- function findByLocalName(parent, localName) {
12769
+ function findByLocalName(parent, localName2) {
12742
12770
  if (!parent) {
12743
12771
  return void 0;
12744
12772
  }
12745
- if (parent[localName] !== void 0 && typeof parent[localName] === "object") {
12746
- return parent[localName];
12773
+ if (parent[localName2] !== void 0 && typeof parent[localName2] === "object") {
12774
+ return parent[localName2];
12747
12775
  }
12748
12776
  for (const key of Object.keys(parent)) {
12749
12777
  const parts = key.split(":");
12750
- if (parts[parts.length - 1] === localName && typeof parent[key] === "object") {
12778
+ if (parts[parts.length - 1] === localName2 && typeof parent[key] === "object") {
12751
12779
  return parent[key];
12752
12780
  }
12753
12781
  }
12754
12782
  return void 0;
12755
12783
  }
12756
- function findScalarByLocalName(parent, localName) {
12784
+ function findScalarByLocalName(parent, localName2) {
12757
12785
  if (!parent) {
12758
12786
  return void 0;
12759
12787
  }
12760
- if (parent[localName] !== void 0) {
12761
- const v = parent[localName];
12788
+ if (parent[localName2] !== void 0) {
12789
+ const v = parent[localName2];
12762
12790
  if (typeof v === "string") {
12763
12791
  return v;
12764
12792
  }
@@ -12771,7 +12799,7 @@ function findScalarByLocalName(parent, localName) {
12771
12799
  }
12772
12800
  for (const key of Object.keys(parent)) {
12773
12801
  const parts = key.split(":");
12774
- if (parts[parts.length - 1] === localName) {
12802
+ if (parts[parts.length - 1] === localName2) {
12775
12803
  const v = parent[key];
12776
12804
  if (typeof v === "string") {
12777
12805
  return v;
@@ -12786,13 +12814,13 @@ function findScalarByLocalName(parent, localName) {
12786
12814
  }
12787
12815
  return void 0;
12788
12816
  }
12789
- function findAllByLocalName(parent, localName) {
12817
+ function findAllByLocalName(parent, localName2) {
12790
12818
  if (!parent) {
12791
12819
  return [];
12792
12820
  }
12793
12821
  for (const key of Object.keys(parent)) {
12794
12822
  const parts = key.split(":");
12795
- if (parts[parts.length - 1] === localName) {
12823
+ if (parts[parts.length - 1] === localName2) {
12796
12824
  const v = parent[key];
12797
12825
  if (Array.isArray(v)) {
12798
12826
  return v;
@@ -13269,8 +13297,8 @@ function parseLineStyle(container, elementName, xmlLookup, colorParser) {
13269
13297
  if (spPr) {
13270
13298
  const lnNode = xmlLookup.getChildByLocalName(spPr, "ln");
13271
13299
  if (lnNode) {
13272
- const solidFill = xmlLookup.getChildByLocalName(lnNode, "solidFill");
13273
- const lineColor = colorParser.parseColor(solidFill);
13300
+ const solidFill2 = xmlLookup.getChildByLocalName(lnNode, "solidFill");
13301
+ const lineColor = colorParser.parseColor(solidFill2);
13274
13302
  if (lineColor) {
13275
13303
  result.color = lineColor;
13276
13304
  }
@@ -13312,8 +13340,8 @@ function parseShapeProps(spPrNode, xmlLookup, colorParser) {
13312
13340
  }
13313
13341
  const result = {};
13314
13342
  let hasProps = false;
13315
- const solidFill = xmlLookup.getChildByLocalName(spPrNode, "solidFill");
13316
- const fillColor = colorParser.parseColor(solidFill);
13343
+ const solidFill2 = xmlLookup.getChildByLocalName(spPrNode, "solidFill");
13344
+ const fillColor = colorParser.parseColor(solidFill2);
13317
13345
  if (fillColor) {
13318
13346
  result.fillColor = fillColor;
13319
13347
  hasProps = true;
@@ -13493,8 +13521,8 @@ var AXIS_TYPE_MAP = {
13493
13521
  dateAx: "dateAx",
13494
13522
  serAx: "serAx"
13495
13523
  };
13496
- function upsertChartAxisChild(parent, localName, value, getLocalName) {
13497
- const existingKey = Object.keys(parent).find((k) => getLocalName(k) === localName);
13524
+ function upsertChartAxisChild(parent, localName2, value, getLocalName) {
13525
+ const existingKey = Object.keys(parent).find((k) => getLocalName(k) === localName2);
13498
13526
  if (value === void 0) {
13499
13527
  if (existingKey) {
13500
13528
  delete parent[existingKey];
@@ -13504,18 +13532,18 @@ function upsertChartAxisChild(parent, localName, value, getLocalName) {
13504
13532
  if (existingKey) {
13505
13533
  parent[existingKey]["@_val"] = value;
13506
13534
  } else {
13507
- parent[`c:${localName}`] = { "@_val": value };
13535
+ parent[`c:${localName2}`] = { "@_val": value };
13508
13536
  }
13509
13537
  }
13510
13538
  function parseChartAxes(plotArea, xmlLookup, colorParser, getLocalName) {
13511
13539
  const result = [];
13512
13540
  for (const key of Object.keys(plotArea)) {
13513
- const localName = getLocalName(key);
13514
- const axisType = AXIS_TYPE_MAP[localName];
13541
+ const localName2 = getLocalName(key);
13542
+ const axisType = AXIS_TYPE_MAP[localName2];
13515
13543
  if (!axisType) {
13516
13544
  continue;
13517
13545
  }
13518
- const axisNodes = xmlLookup.getChildrenArrayByLocalName(plotArea, localName);
13546
+ const axisNodes = xmlLookup.getChildrenArrayByLocalName(plotArea, localName2);
13519
13547
  for (const axisNode of axisNodes) {
13520
13548
  const axis = parseSingleAxis(axisNode, axisType, xmlLookup, colorParser);
13521
13549
  if (axis) {
@@ -13712,8 +13740,8 @@ function parseTxPr(txPrNode, xmlLookup, colorParser, target) {
13712
13740
  if (latin?.["@_typeface"]) {
13713
13741
  target.fontFamily = String(latin["@_typeface"]);
13714
13742
  }
13715
- const solidFill = xmlLookup.getChildByLocalName(defRPr, "solidFill");
13716
- const fontColor = colorParser.parseColor(solidFill);
13743
+ const solidFill2 = xmlLookup.getChildByLocalName(defRPr, "solidFill");
13744
+ const fontColor = colorParser.parseColor(solidFill2);
13717
13745
  if (fontColor) {
13718
13746
  target.fontColor = fontColor;
13719
13747
  }
@@ -13788,8 +13816,8 @@ var CONTAINER_LOCAL_NAME_TO_TYPE = {
13788
13816
  surfaceChart: "surface",
13789
13817
  surface3DChart: "surface"
13790
13818
  };
13791
- function chartContainerLocalNameToType(localName) {
13792
- return CONTAINER_LOCAL_NAME_TO_TYPE[localName];
13819
+ function chartContainerLocalNameToType(localName2) {
13820
+ return CONTAINER_LOCAL_NAME_TO_TYPE[localName2];
13793
13821
  }
13794
13822
 
13795
13823
  // src/core/utils/chart-cx-parser.ts
@@ -13798,11 +13826,11 @@ function extractCxSeriesColor(ser, xmlLookup) {
13798
13826
  if (!spPr) {
13799
13827
  return void 0;
13800
13828
  }
13801
- const solidFill = xmlLookup.getChildByLocalName(spPr, "solidFill");
13802
- if (!solidFill) {
13829
+ const solidFill2 = xmlLookup.getChildByLocalName(spPr, "solidFill");
13830
+ if (!solidFill2) {
13803
13831
  return void 0;
13804
13832
  }
13805
- const srgb = xmlLookup.getChildByLocalName(solidFill, "srgbClr");
13833
+ const srgb = xmlLookup.getChildByLocalName(solidFill2, "srgbClr");
13806
13834
  if (srgb) {
13807
13835
  const val = String(srgb["@_val"] || "").trim();
13808
13836
  if (val.length === 6) {
@@ -14010,18 +14038,18 @@ function parseWorksheetCells(xml) {
14010
14038
  }
14011
14039
  return cells;
14012
14040
  }
14013
- function findByLocalName2(obj, localName) {
14041
+ function findByLocalName2(obj, localName2) {
14014
14042
  for (const key of Object.keys(obj)) {
14015
14043
  const parts = key.split(":");
14016
14044
  const local = parts[parts.length - 1];
14017
- if (local === localName) {
14045
+ if (local === localName2) {
14018
14046
  return obj[key];
14019
14047
  }
14020
14048
  }
14021
14049
  return void 0;
14022
14050
  }
14023
- function getChildArray(parent, localName) {
14024
- const child = findByLocalName2(parent, localName);
14051
+ function getChildArray(parent, localName2) {
14052
+ const child = findByLocalName2(parent, localName2);
14025
14053
  if (!child) {
14026
14054
  return [];
14027
14055
  }
@@ -14033,8 +14061,8 @@ function getChildArray(parent, localName) {
14033
14061
  }
14034
14062
  return [];
14035
14063
  }
14036
- function getTextValue(parent, localName) {
14037
- const child = findByLocalName2(parent, localName);
14064
+ function getTextValue(parent, localName2) {
14065
+ const child = findByLocalName2(parent, localName2);
14038
14066
  if (child === void 0 || child === null) {
14039
14067
  return void 0;
14040
14068
  }
@@ -16500,8 +16528,8 @@ function createSimpleLookup() {
16500
16528
  return void 0;
16501
16529
  }
16502
16530
  for (const [key, value] of Object.entries(obj)) {
16503
- const localName = key.includes(":") ? key.split(":").pop() : key;
16504
- if (localName === name && value && typeof value === "object" && !Array.isArray(value)) {
16531
+ const localName2 = key.includes(":") ? key.split(":").pop() : key;
16532
+ if (localName2 === name && value && typeof value === "object" && !Array.isArray(value)) {
16505
16533
  return value;
16506
16534
  }
16507
16535
  }
@@ -16512,8 +16540,8 @@ function createSimpleLookup() {
16512
16540
  return [];
16513
16541
  }
16514
16542
  for (const [key, value] of Object.entries(obj)) {
16515
- const localName = key.includes(":") ? key.split(":").pop() : key;
16516
- if (localName === name) {
16543
+ const localName2 = key.includes(":") ? key.split(":").pop() : key;
16544
+ if (localName2 === name) {
16517
16545
  if (Array.isArray(value)) {
16518
16546
  return value.filter(
16519
16547
  (v) => v !== null && typeof v === "object"
@@ -17640,6 +17668,62 @@ function layoutRelationship(nodes, bounds, themeColorMap) {
17640
17668
  return elements;
17641
17669
  }
17642
17670
 
17671
+ // src/core/utils/smartart-node-style-apply.ts
17672
+ function styledContentNodes(nodes) {
17673
+ return getContentNodes(nodes);
17674
+ }
17675
+ function applyNodeStylesToElements(elements, nodes) {
17676
+ const contentNodes = styledContentNodes(nodes);
17677
+ if (contentNodes.length === 0) {
17678
+ return elements;
17679
+ }
17680
+ let shapeIndex = 0;
17681
+ return elements.map((element) => {
17682
+ if (element.type !== "shape") {
17683
+ return element;
17684
+ }
17685
+ const node = contentNodes[shapeIndex++];
17686
+ const style = node?.style;
17687
+ if (!style || Object.keys(style).length === 0) {
17688
+ return element;
17689
+ }
17690
+ const shapeStyle = { ...element.shapeStyle };
17691
+ if (style.fillColor !== void 0) {
17692
+ shapeStyle.fillColor = style.fillColor;
17693
+ shapeStyle.fillMode = "solid";
17694
+ }
17695
+ if (style.lineColor !== void 0) {
17696
+ shapeStyle.strokeColor = style.lineColor;
17697
+ }
17698
+ const baseTextStyle = element.textStyle ?? {};
17699
+ const textStyle = { ...baseTextStyle };
17700
+ if (style.fontColor !== void 0) {
17701
+ textStyle.color = style.fontColor;
17702
+ }
17703
+ if (style.bold !== void 0) {
17704
+ textStyle.bold = style.bold;
17705
+ }
17706
+ if (style.italic !== void 0) {
17707
+ textStyle.italic = style.italic;
17708
+ }
17709
+ const segments = element.textSegments?.map((seg) => ({
17710
+ ...seg,
17711
+ style: {
17712
+ ...seg.style,
17713
+ ...style.fontColor !== void 0 ? { color: style.fontColor } : {},
17714
+ ...style.bold !== void 0 ? { bold: style.bold } : {},
17715
+ ...style.italic !== void 0 ? { italic: style.italic } : {}
17716
+ }
17717
+ }));
17718
+ return {
17719
+ ...element,
17720
+ shapeStyle,
17721
+ textStyle,
17722
+ ...segments ? { textSegments: segments } : {}
17723
+ };
17724
+ });
17725
+ }
17726
+
17643
17727
  // src/core/utils/smartart-decompose.ts
17644
17728
  function quickStyleStrokeScale(quickStyle) {
17645
17729
  if (!quickStyle?.effectIntensity) {
@@ -17736,9 +17820,13 @@ function decomposeSmartArt(smartArtData, containerBounds, themeColorMap, layoutD
17736
17820
  if (namedLayout) {
17737
17821
  const namedResult = dispatchNamedLayout(namedLayout, nodes, containerBounds, effectiveThemeMap);
17738
17822
  if (namedResult) {
17739
- return namedResult;
17823
+ return applyNodeStylesToElements(namedResult, nodes);
17740
17824
  }
17741
17825
  }
17826
+ const algorithmic = dispatchLayoutByType(layoutType, nodes, containerBounds, effectiveThemeMap);
17827
+ return algorithmic ? applyNodeStylesToElements(algorithmic, nodes) : algorithmic;
17828
+ }
17829
+ function dispatchLayoutByType(layoutType, nodes, containerBounds, effectiveThemeMap) {
17742
17830
  switch (layoutType) {
17743
17831
  case "list":
17744
17832
  return layoutList(nodes, containerBounds, effectiveThemeMap);
@@ -18085,6 +18173,46 @@ function reorderSmartArtNodeToIndex(data, nodeId, newIndex) {
18085
18173
  };
18086
18174
  }
18087
18175
 
18176
+ // src/core/utils/smartart-editing-node-style.ts
18177
+ function mergeNodeStyle(current, patch) {
18178
+ const merged = { ...current };
18179
+ for (const key of Object.keys(patch)) {
18180
+ const value = patch[key];
18181
+ if (value === void 0) {
18182
+ delete merged[key];
18183
+ } else {
18184
+ merged[key] = value;
18185
+ }
18186
+ }
18187
+ return merged;
18188
+ }
18189
+ function setSmartArtNodeStyle(data, nodeId, style) {
18190
+ let matched = false;
18191
+ const nodes = data.nodes.map((node) => {
18192
+ if (node.id !== nodeId) {
18193
+ return node;
18194
+ }
18195
+ matched = true;
18196
+ const nextStyle = mergeNodeStyle(node.style, style);
18197
+ const hasStyle = Object.keys(nextStyle).length > 0;
18198
+ const updated = { ...node };
18199
+ if (hasStyle) {
18200
+ updated.style = nextStyle;
18201
+ } else {
18202
+ delete updated.style;
18203
+ }
18204
+ return updated;
18205
+ });
18206
+ if (!matched) {
18207
+ return data;
18208
+ }
18209
+ return {
18210
+ ...data,
18211
+ nodes,
18212
+ drawingShapes: void 0
18213
+ };
18214
+ }
18215
+
18088
18216
  // src/core/utils/smartart-editing-reflow-layouts-geometric.ts
18089
18217
  function reflowCycle(nodes, bounds) {
18090
18218
  const size = Math.min(bounds.width, bounds.height);
@@ -19897,18 +20025,18 @@ function extractTagAttribute(xml, tagName, attributeName) {
19897
20025
  const match = xml.match(pattern);
19898
20026
  return match?.groups?.["attributeValue"]?.trim();
19899
20027
  }
19900
- function extractFirstTagText(xml, localName) {
20028
+ function extractFirstTagText(xml, localName2) {
19901
20029
  const pattern = new RegExp(
19902
- `<([\\w.-]+:)?${localName}\\b[^>]*>([\\s\\S]*?)<\\/([\\w.-]+:)?${localName}>`,
20030
+ `<([\\w.-]+:)?${localName2}\\b[^>]*>([\\s\\S]*?)<\\/([\\w.-]+:)?${localName2}>`,
19903
20031
  "i"
19904
20032
  );
19905
20033
  const match = xml.match(pattern);
19906
20034
  return match?.[2]?.replace(/\s+/g, "").trim() || void 0;
19907
20035
  }
19908
- function extractAllTagText(xml, localName) {
20036
+ function extractAllTagText(xml, localName2) {
19909
20037
  const result = [];
19910
20038
  const regex = new RegExp(
19911
- `<([\\w.-]+:)?${localName}\\b[^>]*>([\\s\\S]*?)<\\/([\\w.-]+:)?${localName}>`,
20039
+ `<([\\w.-]+:)?${localName2}\\b[^>]*>([\\s\\S]*?)<\\/([\\w.-]+:)?${localName2}>`,
19912
20040
  "gi"
19913
20041
  );
19914
20042
  let match = regex.exec(xml);
@@ -26541,8 +26669,8 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
26541
26669
  return void 0;
26542
26670
  }
26543
26671
  const fillNode = tblBg["a:fill"];
26544
- const solidFill = fillNode?.["a:solidFill"] ?? tblBg["a:solidFill"];
26545
- const schemeClr = solidFill?.["a:schemeClr"];
26672
+ const solidFill2 = fillNode?.["a:solidFill"] ?? tblBg["a:solidFill"];
26673
+ const schemeClr = solidFill2?.["a:schemeClr"];
26546
26674
  const schemeColor = schemeClr ? String(schemeClr["@_val"] || "").trim() || void 0 : void 0;
26547
26675
  const fill = schemeColor ? { schemeColor } : void 0;
26548
26676
  const hasEffectLst = Boolean(tblBg["a:effectLst"]);
@@ -26570,11 +26698,11 @@ var PptxHandlerRuntime2 = class extends PptxHandlerRuntime {
26570
26698
  if (!fill) {
26571
26699
  return void 0;
26572
26700
  }
26573
- const solidFill = fill["a:solidFill"];
26574
- if (!solidFill) {
26701
+ const solidFill2 = fill["a:solidFill"];
26702
+ if (!solidFill2) {
26575
26703
  return void 0;
26576
26704
  }
26577
- const schemeClr = solidFill["a:schemeClr"];
26705
+ const schemeClr = solidFill2["a:schemeClr"];
26578
26706
  if (!schemeClr) {
26579
26707
  return void 0;
26580
26708
  }
@@ -30853,10 +30981,10 @@ var PptxHandlerRuntime19 = class _PptxHandlerRuntime extends PptxHandlerRuntime1
30853
30981
  if (csTypeface) {
30854
30982
  style.complexScriptFont = csTypeface;
30855
30983
  }
30856
- const solidFill = xmlChild(runProperties, "a:solidFill");
30857
- if (solidFill) {
30858
- style.color = this.parseColor(solidFill);
30859
- const colorXml = extractColorChoiceXml(solidFill);
30984
+ const solidFill2 = xmlChild(runProperties, "a:solidFill");
30985
+ if (solidFill2) {
30986
+ style.color = this.parseColor(solidFill2);
30987
+ const colorXml = extractColorChoiceXml(solidFill2);
30860
30988
  if (colorXml) {
30861
30989
  style.colorXml = colorXml;
30862
30990
  }
@@ -31821,13 +31949,13 @@ function serializeTablePropertyFlags(tbl, tableData) {
31821
31949
  }
31822
31950
  tbl["a:tblPr"] = tblPr;
31823
31951
  }
31824
- function replaceFirstTextValueInTree(node, localName, newValue, getXmlLocalName) {
31952
+ function replaceFirstTextValueInTree(node, localName2, newValue, getXmlLocalName) {
31825
31953
  if (node === null || node === void 0) {
31826
31954
  return false;
31827
31955
  }
31828
31956
  if (Array.isArray(node)) {
31829
31957
  for (const entry of node) {
31830
- if (replaceFirstTextValueInTree(entry, localName, newValue, getXmlLocalName)) {
31958
+ if (replaceFirstTextValueInTree(entry, localName2, newValue, getXmlLocalName)) {
31831
31959
  return true;
31832
31960
  }
31833
31961
  }
@@ -31838,13 +31966,13 @@ function replaceFirstTextValueInTree(node, localName, newValue, getXmlLocalName)
31838
31966
  }
31839
31967
  const objectNode = node;
31840
31968
  for (const [key, value] of Object.entries(objectNode)) {
31841
- if (getXmlLocalName(key) === localName) {
31969
+ if (getXmlLocalName(key) === localName2) {
31842
31970
  if (typeof value === "string" || typeof value === "number") {
31843
31971
  objectNode[key] = newValue;
31844
31972
  return true;
31845
31973
  }
31846
31974
  }
31847
- if (replaceFirstTextValueInTree(value, localName, newValue, getXmlLocalName)) {
31975
+ if (replaceFirstTextValueInTree(value, localName2, newValue, getXmlLocalName)) {
31848
31976
  return true;
31849
31977
  }
31850
31978
  }
@@ -32932,10 +33060,10 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
32932
33060
  * Upsert a `c:<localName>` child with `@_val` on an axis or scaling node.
32933
33061
  * When `value` is undefined, removes any existing child of that local name.
32934
33062
  */
32935
- upsertChartAxisChild(parent, localName, value) {
33063
+ upsertChartAxisChild(parent, localName2, value) {
32936
33064
  upsertChartAxisChild(
32937
33065
  parent,
32938
- localName,
33066
+ localName2,
32939
33067
  value,
32940
33068
  (key) => this.compatibilityService.getXmlLocalName(key)
32941
33069
  );
@@ -32969,10 +33097,10 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
32969
33097
  cacheNode[ptKey] = buildChartPoints(values);
32970
33098
  }
32971
33099
  /** Replace the first text value found deep in the node tree. */
32972
- replaceFirstTextValue(node, localName, newValue) {
33100
+ replaceFirstTextValue(node, localName2, newValue) {
32973
33101
  return replaceFirstTextValueInTree(
32974
33102
  node,
32975
- localName,
33103
+ localName2,
32976
33104
  newValue,
32977
33105
  (key) => this.compatibilityService.getXmlLocalName(key)
32978
33106
  );
@@ -32984,10 +33112,10 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
32984
33112
  * Upsert a `c:<localName>` child carrying only an `@_val` attribute on
32985
33113
  * `parent`. When `value` is `undefined` the existing child is removed.
32986
33114
  */
32987
- upsertValChild(parent, localName, value) {
32988
- const existing = this.xmlLookupService.getChildByLocalName(parent, localName);
33115
+ upsertValChild(parent, localName2, value) {
33116
+ const existing = this.xmlLookupService.getChildByLocalName(parent, localName2);
32989
33117
  const existingKey = Object.keys(parent).find(
32990
- (k) => this.compatibilityService.getXmlLocalName(k) === localName
33118
+ (k) => this.compatibilityService.getXmlLocalName(k) === localName2
32991
33119
  );
32992
33120
  if (value === void 0) {
32993
33121
  if (existingKey) {
@@ -32998,7 +33126,7 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
32998
33126
  if (existing && existingKey) {
32999
33127
  parent[existingKey] = { ...existing, "@_val": value };
33000
33128
  } else {
33001
- parent[`c:${localName}`] = { "@_val": value };
33129
+ parent[`c:${localName2}`] = { "@_val": value };
33002
33130
  }
33003
33131
  }
33004
33132
  /**
@@ -33318,27 +33446,27 @@ function applySmartArtChrome(dataModel, chrome, getLocalName) {
33318
33446
  if (!chrome || !chrome.backgroundColor && !chrome.outlineColor && (chrome.outlineWidth === null || chrome.outlineWidth === void 0)) {
33319
33447
  return;
33320
33448
  }
33321
- const findKey12 = (obj, name) => Object.keys(obj).find((k) => getLocalName(k) === name);
33449
+ const findKey13 = (obj, name) => Object.keys(obj).find((k) => getLocalName(k) === name);
33322
33450
  if (chrome.backgroundColor) {
33323
33451
  const hex8 = chrome.backgroundColor.replace("#", "");
33324
- const bgKey = findKey12(dataModel, "bg") ?? "dgm:bg";
33452
+ const bgKey = findKey13(dataModel, "bg") ?? "dgm:bg";
33325
33453
  const bg = asObject2(dataModel[bgKey]);
33326
- const fillKey = findKey12(bg, "solidFill") ?? "a:solidFill";
33454
+ const fillKey = findKey13(bg, "solidFill") ?? "a:solidFill";
33327
33455
  bg[fillKey] = { "a:srgbClr": { "@_val": hex8 } };
33328
33456
  dataModel[bgKey] = bg;
33329
33457
  }
33330
33458
  const hasOutlineWidth = chrome.outlineWidth !== null && chrome.outlineWidth !== void 0;
33331
33459
  if (chrome.outlineColor || hasOutlineWidth) {
33332
- const wholeKey = findKey12(dataModel, "whole") ?? "dgm:whole";
33460
+ const wholeKey = findKey13(dataModel, "whole") ?? "dgm:whole";
33333
33461
  const whole = asObject2(dataModel[wholeKey]);
33334
- const lnKey = findKey12(whole, "ln") ?? "a:ln";
33462
+ const lnKey = findKey13(whole, "ln") ?? "a:ln";
33335
33463
  const ln = asObject2(whole[lnKey]);
33336
33464
  if (hasOutlineWidth) {
33337
33465
  ln["@_w"] = String(Math.round(chrome.outlineWidth * 12700));
33338
33466
  }
33339
33467
  if (chrome.outlineColor) {
33340
33468
  const hex8 = chrome.outlineColor.replace("#", "");
33341
- const fillKey = findKey12(ln, "solidFill") ?? "a:solidFill";
33469
+ const fillKey = findKey13(ln, "solidFill") ?? "a:solidFill";
33342
33470
  ln[fillKey] = { "a:srgbClr": { "@_val": hex8 } };
33343
33471
  }
33344
33472
  whole[lnKey] = ln;
@@ -33346,6 +33474,102 @@ function applySmartArtChrome(dataModel, chrome, getLocalName) {
33346
33474
  }
33347
33475
  }
33348
33476
 
33477
+ // src/core/core/runtime/smartart-style-xml.ts
33478
+ function localName(key) {
33479
+ const idx = key.indexOf(":");
33480
+ return idx >= 0 ? key.slice(idx + 1) : key;
33481
+ }
33482
+ function findKey12(obj, local) {
33483
+ return Object.keys(obj).find((k) => localName(k) === local);
33484
+ }
33485
+ function ensureChild(obj, local, prefixedFallback) {
33486
+ const key = findKey12(obj, local) ?? prefixedFallback;
33487
+ const existing = obj[key];
33488
+ if (existing && typeof existing === "object" && !Array.isArray(existing)) {
33489
+ return existing;
33490
+ }
33491
+ const created = {};
33492
+ obj[key] = created;
33493
+ return created;
33494
+ }
33495
+ function hexValue(color) {
33496
+ return color.replace(/^#/u, "").toUpperCase();
33497
+ }
33498
+ function solidFill(color) {
33499
+ return { "a:srgbClr": { "@_val": hexValue(color) } };
33500
+ }
33501
+ function setSolidFill(parent, color) {
33502
+ const key = findKey12(parent, "solidFill") ?? "a:solidFill";
33503
+ parent[key] = solidFill(color);
33504
+ }
33505
+ function applyShapeStyle(pt2, style) {
33506
+ if (style.fillColor === void 0 && style.lineColor === void 0) {
33507
+ return;
33508
+ }
33509
+ const spPr = ensureChild(pt2, "spPr", "dgm:spPr");
33510
+ if (style.fillColor !== void 0) {
33511
+ setSolidFill(spPr, style.fillColor);
33512
+ }
33513
+ if (style.lineColor !== void 0) {
33514
+ const ln = ensureChild(spPr, "ln", "a:ln");
33515
+ setSolidFill(ln, style.lineColor);
33516
+ }
33517
+ }
33518
+ function ensureFirstRunRPr(pt2) {
33519
+ const tKey = findKey12(pt2, "t");
33520
+ if (!tKey) {
33521
+ return void 0;
33522
+ }
33523
+ const body = pt2[tKey];
33524
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
33525
+ return void 0;
33526
+ }
33527
+ const pKey = findKey12(body, "p");
33528
+ if (!pKey) {
33529
+ return void 0;
33530
+ }
33531
+ const paragraph = body[pKey];
33532
+ const firstP = Array.isArray(paragraph) ? paragraph[0] : paragraph;
33533
+ if (!firstP || typeof firstP !== "object") {
33534
+ return void 0;
33535
+ }
33536
+ const rKey = findKey12(firstP, "r");
33537
+ if (!rKey) {
33538
+ return void 0;
33539
+ }
33540
+ const run = firstP[rKey];
33541
+ const firstR = Array.isArray(run) ? run[0] : run;
33542
+ if (!firstR || typeof firstR !== "object") {
33543
+ return void 0;
33544
+ }
33545
+ return ensureChild(firstR, "rPr", "a:rPr");
33546
+ }
33547
+ function applyRunStyle(pt2, style) {
33548
+ if (style.bold === void 0 && style.italic === void 0 && style.fontColor === void 0) {
33549
+ return;
33550
+ }
33551
+ const rPr = ensureFirstRunRPr(pt2);
33552
+ if (!rPr) {
33553
+ return;
33554
+ }
33555
+ if (style.bold !== void 0) {
33556
+ rPr["@_b"] = style.bold ? "1" : "0";
33557
+ }
33558
+ if (style.italic !== void 0) {
33559
+ rPr["@_i"] = style.italic ? "1" : "0";
33560
+ }
33561
+ if (style.fontColor !== void 0) {
33562
+ setSolidFill(rPr, style.fontColor);
33563
+ }
33564
+ }
33565
+ function applySmartArtNodeStyleToPoint(pt2, style) {
33566
+ if (!style || Object.keys(style).length === 0) {
33567
+ return;
33568
+ }
33569
+ applyShapeStyle(pt2, style);
33570
+ applyRunStyle(pt2, style);
33571
+ }
33572
+
33349
33573
  // src/core/core/runtime/smartart-xml-builders.ts
33350
33574
  var NON_CONTENT_POINT_TYPES = /* @__PURE__ */ new Set([
33351
33575
  "doc",
@@ -33485,6 +33709,7 @@ function mergeSmartArtPointXml(existingPts, nodes) {
33485
33709
  continue;
33486
33710
  }
33487
33711
  applyTextToExistingPoint(pt2, desired);
33712
+ applySmartArtNodeStyleToPoint(pt2, desired.style);
33488
33713
  seenContentIds.add(modelId);
33489
33714
  merged.push(pt2);
33490
33715
  }
@@ -33498,6 +33723,7 @@ function mergeSmartArtPointXml(existingPts, nodes) {
33498
33723
  ptNode["@_type"] = node.nodeType;
33499
33724
  }
33500
33725
  ptNode["dgm:t"] = shouldRebuildFromRuns(node) ? buildPointFromRuns(node.runs) : buildPointText(node.text);
33726
+ applySmartArtNodeStyleToPoint(ptNode, node.style);
33501
33727
  merged.push(ptNode);
33502
33728
  }
33503
33729
  return merged;
@@ -34471,8 +34697,8 @@ var PptxHandlerRuntime27 = class extends PptxHandlerRuntime26 {
34471
34697
  }
34472
34698
  const obj = node;
34473
34699
  for (const [key, value] of Object.entries(obj)) {
34474
- const localName = this.compatibilityService.getXmlLocalName(key);
34475
- if (localName === "extLst" && value && typeof value === "object") {
34700
+ const localName2 = this.compatibilityService.getXmlLocalName(key);
34701
+ if (localName2 === "extLst" && value && typeof value === "object") {
34476
34702
  const extLst = value;
34477
34703
  for (const extKey of Object.keys(extLst)) {
34478
34704
  const extLocalName = this.compatibilityService.getXmlLocalName(extKey);
@@ -36688,9 +36914,9 @@ function applyTableStyleEntryToNode(styleNode, entry) {
36688
36914
  }
36689
36915
  function applyFillToSection(styleNode, sectionKey, fill) {
36690
36916
  const section = ensureSection(styleNode, sectionKey);
36691
- const tcStyle = ensureChild(section, "a:tcStyle");
36692
- const fillNode = ensureChild(tcStyle, "a:fill");
36693
- const solidFill = ensureChild(fillNode, "a:solidFill");
36917
+ const tcStyle = ensureChild2(section, "a:tcStyle");
36918
+ const fillNode = ensureChild2(tcStyle, "a:fill");
36919
+ const solidFill2 = ensureChild2(fillNode, "a:solidFill");
36694
36920
  const schemeClr = { "@_val": fill.schemeColor };
36695
36921
  if (fill.tint !== void 0) {
36696
36922
  schemeClr["a:tint"] = { "@_val": String(fill.tint) };
@@ -36698,14 +36924,14 @@ function applyFillToSection(styleNode, sectionKey, fill) {
36698
36924
  if (fill.shade !== void 0) {
36699
36925
  schemeClr["a:shade"] = { "@_val": String(fill.shade) };
36700
36926
  }
36701
- for (const key of Object.keys(solidFill)) {
36702
- delete solidFill[key];
36927
+ for (const key of Object.keys(solidFill2)) {
36928
+ delete solidFill2[key];
36703
36929
  }
36704
- solidFill["a:schemeClr"] = schemeClr;
36930
+ solidFill2["a:schemeClr"] = schemeClr;
36705
36931
  }
36706
36932
  function applyTextToSection(styleNode, sectionKey, text) {
36707
36933
  const section = ensureSection(styleNode, sectionKey);
36708
- const tcTxStyle = ensureChild(section, "a:tcTxStyle");
36934
+ const tcTxStyle = ensureChild2(section, "a:tcTxStyle");
36709
36935
  if (text.bold !== void 0) {
36710
36936
  if (text.bold) {
36711
36937
  tcTxStyle["@_b"] = "on";
@@ -36745,7 +36971,7 @@ function ensureSection(styleNode, sectionKey) {
36745
36971
  styleNode[sectionKey] = created;
36746
36972
  return created;
36747
36973
  }
36748
- function ensureChild(parent, key) {
36974
+ function ensureChild2(parent, key) {
36749
36975
  const existing = parent[key];
36750
36976
  if (Array.isArray(existing) && existing.length > 0) {
36751
36977
  return existing[0];
@@ -40503,9 +40729,9 @@ var PptxHandlerRuntime56 = class extends PptxHandlerRuntime55 {
40503
40729
  }
40504
40730
  const bgPr = xmlChild(bg, "p:bgPr");
40505
40731
  if (bgPr) {
40506
- const solidFill = xmlChild(bgPr, "a:solidFill");
40507
- if (solidFill) {
40508
- return this.parseColor(solidFill);
40732
+ const solidFill2 = xmlChild(bgPr, "a:solidFill");
40733
+ if (solidFill2) {
40734
+ return this.parseColor(solidFill2);
40509
40735
  }
40510
40736
  const pattFill = xmlChild(bgPr, "a:pattFill");
40511
40737
  if (pattFill) {
@@ -40548,9 +40774,9 @@ var PptxHandlerRuntime56 = class extends PptxHandlerRuntime55 {
40548
40774
  if (idx === 0) {
40549
40775
  return void 0;
40550
40776
  }
40551
- const solidFill = xmlChild(bgRef, "a:solidFill");
40552
- if (solidFill) {
40553
- return this.parseColor(solidFill);
40777
+ const solidFill2 = xmlChild(bgRef, "a:solidFill");
40778
+ if (solidFill2) {
40779
+ return this.parseColor(solidFill2);
40554
40780
  }
40555
40781
  const overrideColor = this.parseColor(bgRef);
40556
40782
  if (this.themeFormatScheme) {
@@ -43369,7 +43595,7 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
43369
43595
  partPath
43370
43596
  };
43371
43597
  }
43372
- collectLocalTextValues(node, localName, output) {
43598
+ collectLocalTextValues(node, localName2, output) {
43373
43599
  const MAX_NODES = 1e6;
43374
43600
  const stack = [node];
43375
43601
  let visited = 0;
@@ -43392,7 +43618,7 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
43392
43618
  }
43393
43619
  const objectNode = current;
43394
43620
  for (const [key, value] of Object.entries(objectNode)) {
43395
- if (this.compatibilityService.getXmlLocalName(key) === localName) {
43621
+ if (this.compatibilityService.getXmlLocalName(key) === localName2) {
43396
43622
  if (typeof value === "string" || typeof value === "number") {
43397
43623
  const textValue = String(value).trim();
43398
43624
  if (textValue.length > 0) {
@@ -43446,6 +43672,71 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
43446
43672
  }
43447
43673
  return runs.length > 0 ? runs : void 0;
43448
43674
  }
43675
+ /**
43676
+ * Extract a content point's per-node visual override.
43677
+ *
43678
+ * Reads the point's presentation `spPr` solid fill and line colour, and the
43679
+ * first run's `rPr` bold / italic / solid fill, into a
43680
+ * {@link PptxSmartArtNodeStyle}. Every field is optional and only set when
43681
+ * present, so an unstyled point yields `undefined` (never throws on missing
43682
+ * structure). This lets the editing UI display the node's current colours.
43683
+ */
43684
+ extractSmartArtNodeStyle(point) {
43685
+ const style = {};
43686
+ const spPr = this.xmlLookupService.getChildByLocalName(point, "spPr");
43687
+ if (spPr) {
43688
+ const fill = this.parseColor(this.xmlLookupService.getChildByLocalName(spPr, "solidFill"));
43689
+ if (fill) {
43690
+ style.fillColor = fill;
43691
+ }
43692
+ const ln = this.xmlLookupService.getChildByLocalName(spPr, "ln");
43693
+ if (ln) {
43694
+ const lineColor = this.parseColor(
43695
+ this.xmlLookupService.getChildByLocalName(ln, "solidFill")
43696
+ );
43697
+ if (lineColor) {
43698
+ style.lineColor = lineColor;
43699
+ }
43700
+ }
43701
+ }
43702
+ const rPr = this.firstRunProperties(point);
43703
+ if (rPr) {
43704
+ if (this.xmlBoolean(rPr["@_b"])) {
43705
+ style.bold = true;
43706
+ }
43707
+ if (this.xmlBoolean(rPr["@_i"])) {
43708
+ style.italic = true;
43709
+ }
43710
+ const fontColor = this.parseColor(
43711
+ this.xmlLookupService.getChildByLocalName(rPr, "solidFill")
43712
+ );
43713
+ if (fontColor) {
43714
+ style.fontColor = fontColor;
43715
+ }
43716
+ }
43717
+ return Object.keys(style).length > 0 ? style : void 0;
43718
+ }
43719
+ /** Read the first run's `rPr` of a content point's first paragraph. */
43720
+ firstRunProperties(point) {
43721
+ const tBody = this.xmlLookupService.getChildByLocalName(point, "t");
43722
+ if (!tBody) {
43723
+ return void 0;
43724
+ }
43725
+ const paragraph = this.xmlLookupService.getChildrenArrayByLocalName(tBody, "p")[0];
43726
+ if (!paragraph) {
43727
+ return void 0;
43728
+ }
43729
+ const run = this.xmlLookupService.getChildrenArrayByLocalName(paragraph, "r")[0];
43730
+ if (!run) {
43731
+ return void 0;
43732
+ }
43733
+ return this.xmlLookupService.getChildByLocalName(run, "rPr");
43734
+ }
43735
+ /** Interpret an OOXML boolean attribute ("1"/"true"/"on" => true). */
43736
+ xmlBoolean(value) {
43737
+ const v = String(value ?? "").trim().toLowerCase();
43738
+ return v === "1" || v === "true" || v === "on";
43739
+ }
43449
43740
  /**
43450
43741
  * Parse background and outline chrome from `dgm:bg` and `dgm:whole`.
43451
43742
  */
@@ -43460,8 +43751,8 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
43460
43751
  }
43461
43752
  const chrome = {};
43462
43753
  if (bg) {
43463
- const solidFill = this.xmlLookupService.getChildByLocalName(bg, "solidFill");
43464
- const bgColor = this.parseColor(solidFill);
43754
+ const solidFill2 = this.xmlLookupService.getChildByLocalName(bg, "solidFill");
43755
+ const bgColor = this.parseColor(solidFill2);
43465
43756
  if (bgColor) {
43466
43757
  chrome.backgroundColor = bgColor;
43467
43758
  }
@@ -43469,8 +43760,8 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
43469
43760
  if (whole) {
43470
43761
  const lnNode = this.xmlLookupService.getChildByLocalName(whole, "ln");
43471
43762
  if (lnNode) {
43472
- const solidFill = this.xmlLookupService.getChildByLocalName(lnNode, "solidFill");
43473
- const outlineColor = this.parseColor(solidFill);
43763
+ const solidFill2 = this.xmlLookupService.getChildByLocalName(lnNode, "solidFill");
43764
+ const outlineColor = this.parseColor(solidFill2);
43474
43765
  if (outlineColor) {
43475
43766
  chrome.outlineColor = outlineColor;
43476
43767
  }
@@ -43645,8 +43936,8 @@ var PptxHandlerRuntime69 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
43645
43936
  const skewY = xfrm?.["@_skewY"] ? parseInt(String(xfrm["@_skewY"]), 10) / 6e4 : void 0;
43646
43937
  const prstGeom = this.xmlLookupService.getChildByLocalName(spPr, "prstGeom");
43647
43938
  const shapeType = prstGeom ? String(prstGeom["@_prst"] || "rect") : "rect";
43648
- const solidFill = this.xmlLookupService.getChildByLocalName(spPr, "solidFill");
43649
- const fillColor = this.parseColor(solidFill);
43939
+ const solidFill2 = this.xmlLookupService.getChildByLocalName(spPr, "solidFill");
43940
+ const fillColor = this.parseColor(solidFill2);
43650
43941
  const lnNode = this.xmlLookupService.getChildByLocalName(spPr, "ln");
43651
43942
  const lnFill = lnNode ? this.xmlLookupService.getChildByLocalName(lnNode, "solidFill") : void 0;
43652
43943
  const strokeColor = this.parseColor(lnFill);
@@ -43750,12 +44041,14 @@ var PptxHandlerRuntime70 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
43750
44041
  return null;
43751
44042
  }
43752
44043
  const runs = this.extractSmartArtNodeRuns(point);
44044
+ const style = this.extractSmartArtNodeStyle(point);
43753
44045
  return {
43754
44046
  id: pointId,
43755
44047
  text: resolvedText.trim(),
43756
44048
  parentId: parentByNodeId.get(pointId),
43757
44049
  nodeType,
43758
- runs
44050
+ runs,
44051
+ style
43759
44052
  };
43760
44053
  }).filter((entry) => Boolean(entry)).slice(0, MAX_SMARTART_NODES);
43761
44054
  if (nodes.length === 0) {
@@ -43920,10 +44213,10 @@ var PptxHandlerRuntime71 = class extends PptxHandlerRuntime70 {
43920
44213
  };
43921
44214
  const matchedKeys = [];
43922
44215
  for (const key of Object.keys(plotArea)) {
43923
- const localName = this.compatibilityService.getXmlLocalName(key);
43924
- const mapped = chartElementMap[localName];
44216
+ const localName2 = this.compatibilityService.getXmlLocalName(key);
44217
+ const mapped = chartElementMap[localName2];
43925
44218
  if (mapped) {
43926
- matchedKeys.push(localName);
44219
+ matchedKeys.push(localName2);
43927
44220
  }
43928
44221
  }
43929
44222
  if (matchedKeys.length >= 2) {
@@ -43933,8 +44226,8 @@ var PptxHandlerRuntime71 = class extends PptxHandlerRuntime70 {
43933
44226
  return chartElementMap[matchedKeys[0]];
43934
44227
  }
43935
44228
  for (const key of Object.keys(plotArea)) {
43936
- const localName = this.compatibilityService.getXmlLocalName(key);
43937
- if (localName === "plotAreaRegion" || localName === "plotSurface") {
44229
+ const localName2 = this.compatibilityService.getXmlLocalName(key);
44230
+ if (localName2 === "plotAreaRegion" || localName2 === "plotSurface") {
43938
44231
  const seriesArr = this.xmlLookupService.getChildrenArrayByLocalName(
43939
44232
  plotArea[key],
43940
44233
  "series"
@@ -44461,8 +44754,8 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
44461
44754
  if (key.startsWith("@_")) {
44462
44755
  continue;
44463
44756
  }
44464
- const localName = this.compatibilityService.getXmlLocalName(key);
44465
- if (localName === "schemeClr") {
44757
+ const localName2 = this.compatibilityService.getXmlLocalName(key);
44758
+ if (localName2 === "schemeClr") {
44466
44759
  const items = Array.isArray(value) ? value : [value];
44467
44760
  for (const item of items) {
44468
44761
  const resolved = this.resolveChartSchemeColor(item);
@@ -44470,7 +44763,7 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
44470
44763
  output.push(resolved);
44471
44764
  }
44472
44765
  }
44473
- } else if (localName === "srgbClr") {
44766
+ } else if (localName2 === "srgbClr") {
44474
44767
  const items = Array.isArray(value) ? value : [value];
44475
44768
  for (const item of items) {
44476
44769
  const hex8 = String(
@@ -63671,4 +63964,4 @@ var SvgExporter = class _SvgExporter {
63671
63964
  * `<p:extLst>` (optional)
63672
63965
  */
63673
63966
 
63674
- 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, PptxHandlerRuntime81 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, 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, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, 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 };
63967
+ 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, PptxHandlerRuntime81 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, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, 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 };