pptx-react-viewer 3.16.1 → 3.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{AiChatPanel-BUKJCMUY.js → AiChatPanel-G33WODR7.js} +24 -24
  3. package/dist/AiChatPanel-G33WODR7.js.br +0 -0
  4. package/dist/AiChatPanel-G33WODR7.js.gz +0 -0
  5. package/dist/{AiChatPanel-US56QZBD.mjs → AiChatPanel-X7NUNEJO.mjs} +3 -3
  6. package/dist/AiChatPanel-X7NUNEJO.mjs.br +0 -0
  7. package/dist/AiChatPanel-X7NUNEJO.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-6E4QEVTU.mjs → Area3DChartScene-HBTW5EQP.mjs} +1 -1
  9. package/dist/Area3DChartScene-HBTW5EQP.mjs.br +0 -0
  10. package/dist/Area3DChartScene-HBTW5EQP.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-APGQOK5A.js → Area3DChartScene-R3P4NSR5.js} +2 -2
  12. package/dist/{Area3DChartScene-APGQOK5A.js.br → Area3DChartScene-R3P4NSR5.js.br} +0 -0
  13. package/dist/Area3DChartScene-R3P4NSR5.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-F4B5TNJR.js → Bar3DChartScene-6IKIGGD7.js} +2 -2
  15. package/dist/Bar3DChartScene-6IKIGGD7.js.br +0 -0
  16. package/dist/Bar3DChartScene-6IKIGGD7.js.gz +0 -0
  17. package/dist/{Bar3DChartScene-5GRGZFE4.mjs → Bar3DChartScene-RTHG6TVC.mjs} +1 -1
  18. package/dist/Bar3DChartScene-RTHG6TVC.mjs.br +0 -0
  19. package/dist/Bar3DChartScene-RTHG6TVC.mjs.gz +0 -0
  20. package/dist/{Line3DChartScene-6FUMMX2T.js → Line3DChartScene-HNNC2O66.js} +2 -2
  21. package/dist/Line3DChartScene-HNNC2O66.js.br +0 -0
  22. package/dist/Line3DChartScene-HNNC2O66.js.gz +0 -0
  23. package/dist/{Line3DChartScene-2VRLE5RI.mjs → Line3DChartScene-WQIUFVLB.mjs} +1 -1
  24. package/dist/Line3DChartScene-WQIUFVLB.mjs.br +0 -0
  25. package/dist/Line3DChartScene-WQIUFVLB.mjs.gz +0 -0
  26. package/dist/{Model3DScene-2MGI3CB6.js → Model3DScene-AAMDGTRI.js} +2 -2
  27. package/dist/Model3DScene-AAMDGTRI.js.br +0 -0
  28. package/dist/Model3DScene-AAMDGTRI.js.gz +0 -0
  29. package/dist/{Model3DScene-TCIKWJ7R.mjs → Model3DScene-BPHGVJQG.mjs} +1 -1
  30. package/dist/Model3DScene-BPHGVJQG.mjs.br +0 -0
  31. package/dist/Model3DScene-BPHGVJQG.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-OFZEEZRO.js → PieChart3DScene-LO6IJAWY.js} +2 -2
  33. package/dist/{PieChart3DScene-OFZEEZRO.js.br → PieChart3DScene-LO6IJAWY.js.br} +0 -0
  34. package/dist/PieChart3DScene-LO6IJAWY.js.gz +0 -0
  35. package/dist/{PieChart3DScene-O5NZKI4T.mjs → PieChart3DScene-S5OWDFJN.mjs} +1 -1
  36. package/dist/{PieChart3DScene-O5NZKI4T.mjs.br → PieChart3DScene-S5OWDFJN.mjs.br} +0 -0
  37. package/dist/PieChart3DScene-S5OWDFJN.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-WXPQGMT3.mjs → SurfaceChart3DScene-7CKYX5HW.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-7CKYX5HW.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-7CKYX5HW.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-EK7KFNUQ.js → SurfaceChart3DScene-FLQRXC6F.js} +2 -2
  42. package/dist/{SurfaceChart3DScene-EK7KFNUQ.js.br → SurfaceChart3DScene-FLQRXC6F.js.br} +0 -0
  43. package/dist/SurfaceChart3DScene-FLQRXC6F.js.gz +0 -0
  44. package/dist/{chunk-GQVOQPNT.mjs → chunk-2G2MMJRA.mjs} +12 -12
  45. package/dist/chunk-2G2MMJRA.mjs.br +0 -0
  46. package/dist/chunk-2G2MMJRA.mjs.gz +0 -0
  47. package/dist/{chunk-LDFWF2KT.js → chunk-3TPQY6WR.js} +249 -242
  48. package/dist/chunk-3TPQY6WR.js.br +0 -0
  49. package/dist/chunk-3TPQY6WR.js.gz +0 -0
  50. package/dist/{chunk-2J64KPXY.js → chunk-4CLG3TRU.js} +169 -179
  51. package/dist/chunk-4CLG3TRU.js.br +0 -0
  52. package/dist/chunk-4CLG3TRU.js.gz +0 -0
  53. package/dist/{chunk-2DZJJ3VO.mjs → chunk-4U3OI6J3.mjs} +248 -243
  54. package/dist/chunk-4U3OI6J3.mjs.br +0 -0
  55. package/dist/chunk-4U3OI6J3.mjs.gz +0 -0
  56. package/dist/{chunk-CPWFKDGB.js → chunk-AAVKRMQA.js} +1290 -1290
  57. package/dist/chunk-AAVKRMQA.js.br +0 -0
  58. package/dist/chunk-AAVKRMQA.js.gz +0 -0
  59. package/dist/{chunk-C553GQRH.js → chunk-CVS2CHLU.js} +5 -5
  60. package/dist/chunk-CVS2CHLU.js.br +0 -0
  61. package/dist/chunk-CVS2CHLU.js.gz +0 -0
  62. package/dist/{chunk-Q2EGTNCU.js → chunk-QMLJFL7G.js} +469 -463
  63. package/dist/chunk-QMLJFL7G.js.br +0 -0
  64. package/dist/chunk-QMLJFL7G.js.gz +0 -0
  65. package/dist/{chunk-UISMOSNU.mjs → chunk-VA2JFII4.mjs} +1 -1
  66. package/dist/chunk-VA2JFII4.mjs.br +0 -0
  67. package/dist/chunk-VA2JFII4.mjs.gz +0 -0
  68. package/dist/{chunk-BDQBJ3AM.mjs → chunk-VVAXSNG5.mjs} +22 -16
  69. package/dist/chunk-VVAXSNG5.mjs.br +0 -0
  70. package/dist/chunk-VVAXSNG5.mjs.gz +0 -0
  71. package/dist/{chunk-VK3ASDDP.mjs → chunk-WTPGQ3K7.mjs} +3 -13
  72. package/dist/chunk-WTPGQ3K7.mjs.br +0 -0
  73. package/dist/chunk-WTPGQ3K7.mjs.gz +0 -0
  74. package/dist/index.js +45 -45
  75. package/dist/index.js.br +0 -0
  76. package/dist/index.js.gz +0 -0
  77. package/dist/index.mjs +5 -5
  78. package/dist/index.mjs.br +0 -0
  79. package/dist/index.mjs.gz +0 -0
  80. package/dist/internals.d.ts.map +1 -1
  81. package/dist/internals.js +78 -78
  82. package/dist/internals.js.br +0 -0
  83. package/dist/internals.js.gz +0 -0
  84. package/dist/internals.mjs +3 -3
  85. package/dist/internals.mjs.br +0 -0
  86. package/dist/internals.mjs.gz +0 -0
  87. package/dist/viewer/index.js +26 -26
  88. package/dist/viewer/index.js.br +0 -0
  89. package/dist/viewer/index.js.gz +0 -0
  90. package/dist/viewer/index.mjs +5 -5
  91. package/dist/viewer/index.mjs.br +0 -0
  92. package/dist/viewer/index.mjs.gz +0 -0
  93. package/package.json +1 -1
  94. package/dist/AiChatPanel-BUKJCMUY.js.br +0 -0
  95. package/dist/AiChatPanel-BUKJCMUY.js.gz +0 -0
  96. package/dist/AiChatPanel-US56QZBD.mjs.br +0 -0
  97. package/dist/AiChatPanel-US56QZBD.mjs.gz +0 -0
  98. package/dist/Area3DChartScene-6E4QEVTU.mjs.br +0 -0
  99. package/dist/Area3DChartScene-6E4QEVTU.mjs.gz +0 -0
  100. package/dist/Area3DChartScene-APGQOK5A.js.gz +0 -0
  101. package/dist/Bar3DChartScene-5GRGZFE4.mjs.br +0 -0
  102. package/dist/Bar3DChartScene-5GRGZFE4.mjs.gz +0 -0
  103. package/dist/Bar3DChartScene-F4B5TNJR.js.br +0 -0
  104. package/dist/Bar3DChartScene-F4B5TNJR.js.gz +0 -0
  105. package/dist/Line3DChartScene-2VRLE5RI.mjs.br +0 -0
  106. package/dist/Line3DChartScene-2VRLE5RI.mjs.gz +0 -0
  107. package/dist/Line3DChartScene-6FUMMX2T.js.br +0 -0
  108. package/dist/Line3DChartScene-6FUMMX2T.js.gz +0 -0
  109. package/dist/Model3DScene-2MGI3CB6.js.br +0 -0
  110. package/dist/Model3DScene-2MGI3CB6.js.gz +0 -0
  111. package/dist/Model3DScene-TCIKWJ7R.mjs.br +0 -0
  112. package/dist/Model3DScene-TCIKWJ7R.mjs.gz +0 -0
  113. package/dist/PieChart3DScene-O5NZKI4T.mjs.gz +0 -0
  114. package/dist/PieChart3DScene-OFZEEZRO.js.gz +0 -0
  115. package/dist/SurfaceChart3DScene-EK7KFNUQ.js.gz +0 -0
  116. package/dist/SurfaceChart3DScene-WXPQGMT3.mjs.br +0 -0
  117. package/dist/SurfaceChart3DScene-WXPQGMT3.mjs.gz +0 -0
  118. package/dist/chunk-2DZJJ3VO.mjs.br +0 -0
  119. package/dist/chunk-2DZJJ3VO.mjs.gz +0 -0
  120. package/dist/chunk-2J64KPXY.js.br +0 -0
  121. package/dist/chunk-2J64KPXY.js.gz +0 -0
  122. package/dist/chunk-BDQBJ3AM.mjs.br +0 -0
  123. package/dist/chunk-BDQBJ3AM.mjs.gz +0 -0
  124. package/dist/chunk-C553GQRH.js.br +0 -0
  125. package/dist/chunk-C553GQRH.js.gz +0 -0
  126. package/dist/chunk-CPWFKDGB.js.br +0 -0
  127. package/dist/chunk-CPWFKDGB.js.gz +0 -0
  128. package/dist/chunk-GQVOQPNT.mjs.br +0 -0
  129. package/dist/chunk-GQVOQPNT.mjs.gz +0 -0
  130. package/dist/chunk-LDFWF2KT.js.br +0 -0
  131. package/dist/chunk-LDFWF2KT.js.gz +0 -0
  132. package/dist/chunk-Q2EGTNCU.js.br +0 -0
  133. package/dist/chunk-Q2EGTNCU.js.gz +0 -0
  134. package/dist/chunk-UISMOSNU.mjs.br +0 -0
  135. package/dist/chunk-UISMOSNU.mjs.gz +0 -0
  136. package/dist/chunk-VK3ASDDP.mjs.br +0 -0
  137. package/dist/chunk-VK3ASDDP.mjs.gz +0 -0
@@ -27509,11 +27509,8 @@ function xmlAttrNumber(node, name) {
27509
27509
  return Number.isFinite(parsed) ? parsed : void 0;
27510
27510
  }
27511
27511
  function xmlText(node) {
27512
- if (typeof node === "string") {
27513
- return node;
27514
- }
27515
27512
  if (!isXmlObject(node)) {
27516
- return void 0;
27513
+ return coerceString(node);
27517
27514
  }
27518
27515
  return coerceString(node[TEXT_KEY]);
27519
27516
  }
@@ -48215,6 +48212,82 @@ var init_chart_date_axis = __esm({
48215
48212
  ];
48216
48213
  }
48217
48214
  });
48215
+ function findKey6(node, localName28, getLocalName2) {
48216
+ return Object.keys(node).find((key2) => getLocalName2(key2) === localName28);
48217
+ }
48218
+ function replaceEntries(parent, entries) {
48219
+ for (const key2 of Object.keys(parent)) {
48220
+ delete parent[key2];
48221
+ }
48222
+ for (const [key2, value] of entries) {
48223
+ parent[key2] = value;
48224
+ }
48225
+ }
48226
+ function insertAt2(parent, index, key2, value) {
48227
+ const entries = Object.keys(parent).map((k) => [k, parent[k]]);
48228
+ entries.splice(Math.max(0, Math.min(index, entries.length)), 0, [key2, value]);
48229
+ replaceEntries(parent, entries);
48230
+ }
48231
+ function setAutoTitleDeleted(chartRoot, deleted, getLocalName2) {
48232
+ const value = { "@_val": deleted ? "1" : "0" };
48233
+ const existingKey = findKey6(chartRoot, "autoTitleDeleted", getLocalName2);
48234
+ if (existingKey) {
48235
+ chartRoot[existingKey] = value;
48236
+ return;
48237
+ }
48238
+ const keys = Object.keys(chartRoot);
48239
+ const titleIndex = keys.findIndex((key2) => getLocalName2(key2) === "title");
48240
+ insertAt2(chartRoot, titleIndex === -1 ? 0 : titleIndex + 1, "c:autoTitleDeleted", value);
48241
+ }
48242
+ function collectAllText(node, getLocalName2, out) {
48243
+ for (const key2 of Object.keys(node)) {
48244
+ if (key2.startsWith("@_")) {
48245
+ continue;
48246
+ }
48247
+ const value = node[key2];
48248
+ const children13 = Array.isArray(value) ? value : [value];
48249
+ if (getLocalName2(key2) === "t") {
48250
+ for (const child262 of children13) {
48251
+ if (child262 === void 0 || child262 === null) {
48252
+ continue;
48253
+ }
48254
+ out.push(
48255
+ typeof child262 === "object" ? String(child262["#text"] ?? "") : String(child262)
48256
+ );
48257
+ }
48258
+ continue;
48259
+ }
48260
+ for (const child262 of children13) {
48261
+ if (child262 && typeof child262 === "object") {
48262
+ collectAllText(child262, getLocalName2, out);
48263
+ }
48264
+ }
48265
+ }
48266
+ }
48267
+ function replaceFirstText(node, text22, getLocalName2) {
48268
+ for (const key2 of Object.keys(node)) {
48269
+ if (key2.startsWith("@_")) {
48270
+ continue;
48271
+ }
48272
+ if (getLocalName2(key2) === "t") {
48273
+ const current = node[key2];
48274
+ node[key2] = current && typeof current === "object" && !Array.isArray(current) ? { ...current, "#text": text22 } : text22;
48275
+ return true;
48276
+ }
48277
+ const value = node[key2];
48278
+ const children13 = Array.isArray(value) ? value : [value];
48279
+ for (const child262 of children13) {
48280
+ if (child262 && typeof child262 === "object" && replaceFirstText(child262, text22, getLocalName2)) {
48281
+ return true;
48282
+ }
48283
+ }
48284
+ }
48285
+ return false;
48286
+ }
48287
+ var init_chart_title_xml_ops = __esm({
48288
+ "src/core/utils/chart-title-xml-ops.ts"() {
48289
+ }
48290
+ });
48218
48291
  function safeInt3(val2) {
48219
48292
  const n = parseInt(String(val2), 10);
48220
48293
  return Number.isFinite(n) ? n : void 0;
@@ -48266,7 +48339,7 @@ function parseSingleAxis(axisNode, axisType, xmlLookup, colorParser, getLocalNam
48266
48339
  const titleNode = xmlLookup.getChildByLocalName(axisNode, "title");
48267
48340
  if (titleNode) {
48268
48341
  const texts = [];
48269
- collectAxisTextValues(titleNode, texts);
48342
+ collectAllText(titleNode, getLocalName2, texts);
48270
48343
  if (texts.length > 0) {
48271
48344
  result.titleText = texts.join("");
48272
48345
  }
@@ -48418,26 +48491,6 @@ function parseChart3DSurfaces(chartRoot, xmlLookup, colorParser) {
48418
48491
  }
48419
48492
  return result;
48420
48493
  }
48421
- function collectAxisTextValues(node, results) {
48422
- if (node["a:t"] !== void 0) {
48423
- results.push(String(node["a:t"]));
48424
- }
48425
- for (const key2 of Object.keys(node)) {
48426
- if (key2.startsWith("@_")) {
48427
- continue;
48428
- }
48429
- const child262 = node[key2];
48430
- if (Array.isArray(child262)) {
48431
- for (const item of child262) {
48432
- if (item && typeof item === "object") {
48433
- collectAxisTextValues(item, results);
48434
- }
48435
- }
48436
- } else if (child262 && typeof child262 === "object") {
48437
- collectAxisTextValues(child262, results);
48438
- }
48439
- }
48440
- }
48441
48494
  var AXIS_TYPE_MAP;
48442
48495
  var init_chart_axis_parser = __esm({
48443
48496
  "src/core/utils/chart-axis-parser.ts"() {
@@ -48446,6 +48499,7 @@ var init_chart_axis_parser = __esm({
48446
48499
  init_chart_axis_scaling();
48447
48500
  init_chart_date_axis();
48448
48501
  init_chart_series_detail_parser();
48502
+ init_chart_title_xml_ops();
48449
48503
  init_chart_axis_scaling();
48450
48504
  AXIS_TYPE_MAP = {
48451
48505
  catAx: "catAx",
@@ -48459,29 +48513,12 @@ function safeInt4(val2) {
48459
48513
  const n = Number.parseInt(String(val2), 10);
48460
48514
  return Number.isFinite(n) ? n : void 0;
48461
48515
  }
48462
- function collectRunText(node, out) {
48463
- for (const [key2, child262] of Object.entries(node)) {
48464
- if (key2.startsWith("@_")) {
48465
- continue;
48466
- }
48467
- if (key2 === "a:t" || key2.endsWith(":t")) {
48468
- out.push(String(child262));
48469
- continue;
48470
- }
48471
- const items = Array.isArray(child262) ? child262 : [child262];
48472
- for (const item of items) {
48473
- if (item && typeof item === "object") {
48474
- collectRunText(item, out);
48475
- }
48476
- }
48477
- }
48478
- }
48479
48516
  function resolveCxTitleText(titleNode, xmlLookup) {
48480
48517
  if (!titleNode) {
48481
48518
  return void 0;
48482
48519
  }
48483
48520
  const texts = [];
48484
- collectRunText(titleNode, texts);
48521
+ collectAllText(titleNode, (key2) => key2.split(":").at(-1) ?? key2, texts);
48485
48522
  if (texts.length > 0) {
48486
48523
  return texts.join("");
48487
48524
  }
@@ -48619,6 +48656,7 @@ var NO_COLOR;
48619
48656
  var init_chart_cx_axis_parser = __esm({
48620
48657
  "src/core/utils/chart-cx-axis-parser.ts"() {
48621
48658
  init_chart_series_detail_parser();
48659
+ init_chart_title_xml_ops();
48622
48660
  NO_COLOR = { parseColor: () => void 0 };
48623
48661
  }
48624
48662
  });
@@ -52032,9 +52070,9 @@ function parseKinsoku(presentationXml3) {
52032
52070
  if (!presentationXml3) {
52033
52071
  return void 0;
52034
52072
  }
52035
- const rootKey = findKey6(presentationXml3, "presentation");
52073
+ const rootKey = findKey7(presentationXml3, "presentation");
52036
52074
  const root = rootKey ? presentationXml3[rootKey] : void 0;
52037
- const key2 = root ? findKey6(root, "kinsoku") : void 0;
52075
+ const key2 = root ? findKey7(root, "kinsoku") : void 0;
52038
52076
  const node = key2 && root ? root[key2] : void 0;
52039
52077
  if (!node) {
52040
52078
  return void 0;
@@ -52053,7 +52091,7 @@ function parseKinsoku(presentationXml3) {
52053
52091
  return result;
52054
52092
  }
52055
52093
  function setAttribute2(node, name, value) {
52056
- const key2 = findKey6(node, name);
52094
+ const key2 = findKey7(node, name);
52057
52095
  if (value === null) {
52058
52096
  if (key2) {
52059
52097
  delete node[key2];
@@ -52082,7 +52120,7 @@ function insertKinsoku(root, key2, value) {
52082
52120
  return result;
52083
52121
  }
52084
52122
  function applyKinsokuToXml(presentation, kinsoku) {
52085
- const existingKey = findKey6(presentation, "kinsoku");
52123
+ const existingKey = findKey7(presentation, "kinsoku");
52086
52124
  if (kinsoku === void 0) {
52087
52125
  return presentation;
52088
52126
  }
@@ -52111,7 +52149,7 @@ function applyKinsokuToXml(presentation, kinsoku) {
52111
52149
  }
52112
52150
  var BEFORE_KINSOKU;
52113
52151
  var localName7;
52114
- var findKey6;
52152
+ var findKey7;
52115
52153
  var init_kinsoku_parser = __esm({
52116
52154
  "src/core/utils/kinsoku-parser.ts"() {
52117
52155
  BEFORE_KINSOKU = /* @__PURE__ */ new Set([
@@ -52128,7 +52166,7 @@ var init_kinsoku_parser = __esm({
52128
52166
  "custDataLst"
52129
52167
  ]);
52130
52168
  localName7 = (key2) => key2.replace(/^@_/u, "").replace(/^.*:/u, "");
52131
- findKey6 = (node, name) => Object.keys(node).find((key2) => localName7(key2) === name);
52169
+ findKey7 = (node, name) => Object.keys(node).find((key2) => localName7(key2) === name);
52132
52170
  }
52133
52171
  });
52134
52172
  function safeResolveZipPath(basePath, target) {
@@ -56427,11 +56465,11 @@ function localName8(key2) {
56427
56465
  const idx = key2.indexOf(":");
56428
56466
  return idx >= 0 ? key2.slice(idx + 1) : key2;
56429
56467
  }
56430
- function findKey7(obj, local) {
56468
+ function findKey8(obj, local) {
56431
56469
  return Object.keys(obj).find((k) => localName8(k) === local);
56432
56470
  }
56433
56471
  function ensureChild(obj, local, prefixedFallback) {
56434
- const key2 = findKey7(obj, local) ?? prefixedFallback;
56472
+ const key2 = findKey8(obj, local) ?? prefixedFallback;
56435
56473
  const existing = obj[key2];
56436
56474
  if (existing && typeof existing === "object" && !Array.isArray(existing)) {
56437
56475
  return existing;
@@ -56447,7 +56485,7 @@ function solidFill2(color2) {
56447
56485
  return { "a:srgbClr": { "@_val": hexValue(color2) } };
56448
56486
  }
56449
56487
  function setSolidFill(parent, color2) {
56450
- const key2 = findKey7(parent, "solidFill") ?? "a:solidFill";
56488
+ const key2 = findKey8(parent, "solidFill") ?? "a:solidFill";
56451
56489
  parent[key2] = solidFill2(color2);
56452
56490
  }
56453
56491
  function applyShapeStyle(pt2, style) {
@@ -56464,7 +56502,7 @@ function applyShapeStyle(pt2, style) {
56464
56502
  }
56465
56503
  }
56466
56504
  function ensureFirstRunRPr(pt2) {
56467
- const tKey = findKey7(pt2, "t");
56505
+ const tKey = findKey8(pt2, "t");
56468
56506
  if (!tKey) {
56469
56507
  return void 0;
56470
56508
  }
@@ -56472,7 +56510,7 @@ function ensureFirstRunRPr(pt2) {
56472
56510
  if (!body || typeof body !== "object" || Array.isArray(body)) {
56473
56511
  return void 0;
56474
56512
  }
56475
- const pKey = findKey7(body, "p");
56513
+ const pKey = findKey8(body, "p");
56476
56514
  if (!pKey) {
56477
56515
  return void 0;
56478
56516
  }
@@ -56481,7 +56519,7 @@ function ensureFirstRunRPr(pt2) {
56481
56519
  if (!firstP || typeof firstP !== "object") {
56482
56520
  return void 0;
56483
56521
  }
56484
- const rKey = findKey7(firstP, "r");
56522
+ const rKey = findKey8(firstP, "r");
56485
56523
  if (!rKey) {
56486
56524
  return void 0;
56487
56525
  }
@@ -57493,7 +57531,7 @@ var init_xml_reorder = __esm({
57493
57531
  ];
57494
57532
  }
57495
57533
  });
57496
- function findKey8(node, name, localName28) {
57534
+ function findKey9(node, name, localName28) {
57497
57535
  return Object.keys(node).find((key2) => localName28(key2) === name);
57498
57536
  }
57499
57537
  function boolValue2(node) {
@@ -57508,7 +57546,7 @@ function parseBubbleChartOptions(container, localName28) {
57508
57546
  return void 0;
57509
57547
  }
57510
57548
  const node = (name) => {
57511
- const key2 = findKey8(container, name, localName28);
57549
+ const key2 = findKey9(container, name, localName28);
57512
57550
  return key2 ? container[key2] : void 0;
57513
57551
  };
57514
57552
  const options = {};
@@ -57537,7 +57575,7 @@ function parseBubbleChartOptions(container, localName28) {
57537
57575
  return Object.keys(options).length > 0 ? options : void 0;
57538
57576
  }
57539
57577
  function insertOrdered2(container, name, value, localName28) {
57540
- const existingKey = findKey8(container, name, localName28);
57578
+ const existingKey = findKey9(container, name, localName28);
57541
57579
  if (existingKey) {
57542
57580
  container[existingKey] = { ...container[existingKey], ...value };
57543
57581
  return;
@@ -57665,7 +57703,7 @@ function parseChartUpDownBars(chartContainer, xmlLookup, colorParser) {
57665
57703
  return result;
57666
57704
  }
57667
57705
  function setOrdered2(node, name, value, order, localName28) {
57668
- const key2 = findKey9(node, name, localName28);
57706
+ const key2 = findKey10(node, name, localName28);
57669
57707
  if (key2) {
57670
57708
  node[key2] = value;
57671
57709
  return;
@@ -57688,7 +57726,7 @@ function applyChartUpDownBars(chartContainer, options, localName28, resolveColor
57688
57726
  if (options === void 0) {
57689
57727
  return;
57690
57728
  }
57691
- const key2 = findKey9(chartContainer, "upDownBars", localName28);
57729
+ const key2 = findKey10(chartContainer, "upDownBars", localName28);
57692
57730
  if (options === null) {
57693
57731
  if (key2) {
57694
57732
  delete chartContainer[key2];
@@ -57710,11 +57748,11 @@ function applyChartUpDownBars(chartContainer, options, localName28, resolveColor
57710
57748
  if (!style) {
57711
57749
  continue;
57712
57750
  }
57713
- const existingBar = findKey9(node, name, localName28);
57751
+ const existingBar = findKey10(node, name, localName28);
57714
57752
  const bar = {
57715
57753
  ...existingBar ? node[existingBar] : void 0
57716
57754
  };
57717
- const spPrKey = findKey9(bar, "spPr", localName28) ?? "c:spPr";
57755
+ const spPrKey = findKey10(bar, "spPr", localName28) ?? "c:spPr";
57718
57756
  bar[spPrKey] = writeChartShapeProps(
57719
57757
  bar[spPrKey],
57720
57758
  style,
@@ -57726,7 +57764,7 @@ function applyChartUpDownBars(chartContainer, options, localName28, resolveColor
57726
57764
  setOrdered2(chartContainer, "upDownBars", node, CONTAINER_ORDER, localName28);
57727
57765
  }
57728
57766
  var CONTAINER_ORDER;
57729
- var findKey9;
57767
+ var findKey10;
57730
57768
  var init_chart_up_down_bars = __esm({
57731
57769
  "src/core/utils/chart-up-down-bars.ts"() {
57732
57770
  init_chart_percent_union_value();
@@ -57745,7 +57783,7 @@ var init_chart_up_down_bars = __esm({
57745
57783
  "axId",
57746
57784
  "extLst"
57747
57785
  ];
57748
- findKey9 = (node, name, localName28) => Object.keys(node).find((key2) => localName28(key2) === name);
57786
+ findKey10 = (node, name, localName28) => Object.keys(node).find((key2) => localName28(key2) === name);
57749
57787
  }
57750
57788
  });
57751
57789
  function parseDrawingMediaReference(container, externalRelIds) {
@@ -67864,7 +67902,7 @@ function extractTableCellTextRuns(tableCell, context) {
67864
67902
  continue;
67865
67903
  }
67866
67904
  const node = item;
67867
- const run = { text: String(node?.["a:t"] ?? "") };
67905
+ const run = { text: xmlText(node?.["a:t"]) ?? "" };
67868
67906
  if (tag === "a:fld") {
67869
67907
  run.isField = true;
67870
67908
  }
@@ -67878,6 +67916,7 @@ function extractTableCellTextRuns(tableCell, context) {
67878
67916
  var CELL_CONTENT_TAGS;
67879
67917
  var init_table_cell_runs = __esm({
67880
67918
  "src/core/core/builders/table-cell-runs.ts"() {
67919
+ init_utils();
67881
67920
  init_paragraph_sibling_order();
67882
67921
  CELL_CONTENT_TAGS = /* @__PURE__ */ new Set(["a:r", "a:br", "a:fld"]);
67883
67922
  }
@@ -68023,6 +68062,7 @@ var init_table_cell_text_style_helpers = __esm({
68023
68062
  var PptxTableDataParser;
68024
68063
  var init_PptxTableDataParser = __esm({
68025
68064
  "src/core/core/builders/PptxTableDataParser.ts"() {
68065
+ init_utils();
68026
68066
  init_table_style_effect_parse();
68027
68067
  init_table_style_fill_parse();
68028
68068
  init_table_cell_3d_helpers();
@@ -68196,10 +68236,10 @@ var init_PptxTableDataParser = __esm({
68196
68236
  const fields = this.context.ensureArray(paragraph["a:fld"]);
68197
68237
  let lineText = "";
68198
68238
  for (const run of runs) {
68199
- lineText += String(run?.["a:t"] ?? "");
68239
+ lineText += xmlText(run?.["a:t"]) ?? "";
68200
68240
  }
68201
68241
  for (const field of fields) {
68202
- lineText += String(field?.["a:t"] ?? "");
68242
+ lineText += xmlText(field?.["a:t"]) ?? "";
68203
68243
  }
68204
68244
  lines.push(lineText);
68205
68245
  }
@@ -78238,7 +78278,7 @@ function parseEmbeddedFontList(presentationData) {
78238
78278
  };
78239
78279
  }
78240
78280
  function applyAttribute(node, name, value) {
78241
- const key2 = findKey10(node, name);
78281
+ const key2 = findKey11(node, name);
78242
78282
  if (value === null) {
78243
78283
  if (key2) {
78244
78284
  delete node[key2];
@@ -78286,7 +78326,7 @@ function serializeEntry(entry2) {
78286
78326
  }
78287
78327
  for (const name of ENTRY_ORDER) {
78288
78328
  const edit = edits.get(name);
78289
- const key2 = findKey10(source, name) ?? `p:${name}`;
78329
+ const key2 = findKey11(source, name) ?? `p:${name}`;
78290
78330
  if (edit !== null && edit !== void 0) {
78291
78331
  result[key2] = edit;
78292
78332
  } else if (!edits.has(name) && source[key2] !== void 0) {
@@ -78305,7 +78345,7 @@ function serializeEmbeddedFontList(list) {
78305
78345
  throw new Error("CT_EmbeddedFontList requires at least one embeddedFont");
78306
78346
  }
78307
78347
  const source = { ...list.rawXml ?? {} };
78308
- const key2 = findKey10(source, "embeddedFont") ?? "p:embeddedFont";
78348
+ const key2 = findKey11(source, "embeddedFont") ?? "p:embeddedFont";
78309
78349
  source[key2] = list.fonts.map(serializeEntry);
78310
78350
  return source;
78311
78351
  }
@@ -78315,7 +78355,7 @@ function setEmbeddedFontList(presentationData, list) {
78315
78355
  return;
78316
78356
  }
78317
78357
  const root = presentationData[rootKey];
78318
- const existingKey = findKey10(root, "embeddedFontLst");
78358
+ const existingKey = findKey11(root, "embeddedFontLst");
78319
78359
  const result = {};
78320
78360
  let inserted = false;
78321
78361
  for (const [key2, value] of Object.entries(root)) {
@@ -78337,7 +78377,7 @@ function setEmbeddedFontList(presentationData, list) {
78337
78377
  var ENTRY_ORDER;
78338
78378
  var PRESENTATION_BEFORE;
78339
78379
  var localName16;
78340
- var findKey10;
78380
+ var findKey11;
78341
78381
  var child15;
78342
78382
  var children11;
78343
78383
  var init_embedded_font_list = __esm({
@@ -78353,13 +78393,13 @@ var init_embedded_font_list = __esm({
78353
78393
  "smartTags"
78354
78394
  ]);
78355
78395
  localName16 = (key2) => key2.replace(/^@_/u, "").replace(/^.*:/u, "");
78356
- findKey10 = (node, name) => Object.keys(node).find((key2) => localName16(key2) === name);
78396
+ findKey11 = (node, name) => Object.keys(node).find((key2) => localName16(key2) === name);
78357
78397
  child15 = (node, name) => {
78358
- const key2 = findKey10(node, name);
78398
+ const key2 = findKey11(node, name);
78359
78399
  return key2 ? node[key2] : void 0;
78360
78400
  };
78361
78401
  children11 = (node, name) => {
78362
- const key2 = findKey10(node, name);
78402
+ const key2 = findKey11(node, name);
78363
78403
  const value = key2 ? node[key2] : void 0;
78364
78404
  return Array.isArray(value) ? value : value ? [value] : [];
78365
78405
  };
@@ -78823,7 +78863,7 @@ function parseChartBandFmts(seriesContainer, xmlLookup, colorParser) {
78823
78863
  return result.length > 0 ? result : void 0;
78824
78864
  }
78825
78865
  function setOrdered3(node, name, value, order, localName28) {
78826
- const key2 = findKey11(node, name, localName28);
78866
+ const key2 = findKey12(node, name, localName28);
78827
78867
  if (key2) {
78828
78868
  node[key2] = value;
78829
78869
  return;
@@ -78846,7 +78886,7 @@ function applyChartBandFmts(seriesContainer, bandFmts, localName28, resolveColor
78846
78886
  if (bandFmts === void 0) {
78847
78887
  return;
78848
78888
  }
78849
- const containerKey = findKey11(seriesContainer, "bandFmts", localName28);
78889
+ const containerKey = findKey12(seriesContainer, "bandFmts", localName28);
78850
78890
  if (bandFmts.length === 0) {
78851
78891
  if (containerKey) {
78852
78892
  delete seriesContainer[containerKey];
@@ -78854,11 +78894,11 @@ function applyChartBandFmts(seriesContainer, bandFmts, localName28, resolveColor
78854
78894
  return;
78855
78895
  }
78856
78896
  const bandFmtsNode = containerKey ? seriesContainer[containerKey] : void 0;
78857
- const bandFmtKey = bandFmtsNode ? findKey11(bandFmtsNode, "bandFmt", localName28) : void 0;
78897
+ const bandFmtKey = bandFmtsNode ? findKey12(bandFmtsNode, "bandFmt", localName28) : void 0;
78858
78898
  const existingRaw = bandFmtKey ? bandFmtsNode?.[bandFmtKey] : void 0;
78859
78899
  const existingNodes = existingRaw ? Array.isArray(existingRaw) ? existingRaw : [existingRaw] : [];
78860
78900
  const bandIndexOf = (node) => {
78861
- const idxKey = findKey11(node, "idx", localName28);
78901
+ const idxKey = findKey12(node, "idx", localName28);
78862
78902
  return idxKey ? safeUnsignedInt2(node[idxKey]?.["@_val"]) : void 0;
78863
78903
  };
78864
78904
  const byIndex = new Map(existingNodes.map((node) => [bandIndexOf(node), node]));
@@ -78870,7 +78910,7 @@ function applyChartBandFmts(seriesContainer, bandFmts, localName28, resolveColor
78870
78910
  updated.push(node);
78871
78911
  }
78872
78912
  if (band.spPr) {
78873
- const spPrKey = findKey11(node, "spPr", localName28);
78913
+ const spPrKey = findKey12(node, "spPr", localName28);
78874
78914
  const spPr = writeChartShapeProps(
78875
78915
  spPrKey ? node[spPrKey] : void 0,
78876
78916
  band.spPr,
@@ -78888,12 +78928,12 @@ function applyChartBandFmts(seriesContainer, bandFmts, localName28, resolveColor
78888
78928
  localName28
78889
78929
  );
78890
78930
  }
78891
- var findKey11;
78931
+ var findKey12;
78892
78932
  var init_chart_band_fmts = __esm({
78893
78933
  "src/core/utils/chart-band-fmts.ts"() {
78894
78934
  init_chart_series_detail_parser();
78895
78935
  init_chart_shape_props_writer();
78896
- findKey11 = (node, name, localName28) => Object.keys(node).find((key2) => localName28(key2) === name);
78936
+ findKey12 = (node, name, localName28) => Object.keys(node).find((key2) => localName28(key2) === name);
78897
78937
  }
78898
78938
  });
78899
78939
  function extractSeriesNumbersWithBlanks(valNode2, xml) {
@@ -80110,7 +80150,7 @@ var init_chart_subtype_values = __esm({
80110
80150
  }
80111
80151
  });
80112
80152
  function readRunText(run, xmlLookup) {
80113
- return xmlLookup.getScalarChildByLocalName(run, "t") ?? "";
80153
+ return xmlText(xmlLookup.getChildByLocalName(run, "t")) ?? xmlLookup.getScalarChildByLocalName(run, "t") ?? "";
80114
80154
  }
80115
80155
  function parseChartTitleRuns(titleNode, xmlLookup, colorParser) {
80116
80156
  const rich = xmlLookup.getChildByLocalName(
@@ -80140,6 +80180,7 @@ function parseChartTitleRuns(titleNode, xmlLookup, colorParser) {
80140
80180
  var init_chart_title_runs_parser = __esm({
80141
80181
  "src/core/utils/chart-title-runs-parser.ts"() {
80142
80182
  init_chart_def_rpr_style();
80183
+ init_xml_access();
80143
80184
  }
80144
80185
  });
80145
80186
  async function resolveDataPointPictureImages(xmlLookup, readChartRels, resolveImagePath, getImageData, plotArea, containerKeys, series, chartPartPath) {
@@ -80470,6 +80511,16 @@ function collectLocalTextValues(obj, targetName, out) {
80470
80511
  out.push(String(current.value));
80471
80512
  continue;
80472
80513
  }
80514
+ if (current.value && typeof current.value === "object" && !Array.isArray(current.value)) {
80515
+ const text22 = xmlText(current.value);
80516
+ const isLeaf = Object.keys(current.value).every(
80517
+ (key2) => key2 === "#text" || key2.startsWith("@_")
80518
+ );
80519
+ if (isLeaf) {
80520
+ out.push(text22 ?? "");
80521
+ continue;
80522
+ }
80523
+ }
80473
80524
  }
80474
80525
  if (Array.isArray(current.value)) {
80475
80526
  for (let index = current.value.length - 1; index >= 0; index--) {
@@ -80490,6 +80541,7 @@ function getLocalName(qualifiedName) {
80490
80541
  var MAX_SMARTART_NODES;
80491
80542
  var init_smart_art_text_helpers = __esm({
80492
80543
  "src/core/core/builders/smart-art-text-helpers.ts"() {
80544
+ init_utils();
80493
80545
  MAX_SMARTART_NODES = 2e3;
80494
80546
  }
80495
80547
  });
@@ -82615,7 +82667,7 @@ function parsePrintProperties(node) {
82615
82667
  };
82616
82668
  }
82617
82669
  function applyAttribute2(node, name, value) {
82618
- const existingKey = findKey12(node, name);
82670
+ const existingKey = findKey13(node, name);
82619
82671
  if (value === null) {
82620
82672
  if (existingKey) {
82621
82673
  delete node[existingKey];
@@ -82650,14 +82702,14 @@ function serializePrintProperties(properties) {
82650
82702
  result[key2] = value;
82651
82703
  }
82652
82704
  }
82653
- const extKey = findKey12(source, "extLst");
82705
+ const extKey = findKey13(source, "extLst");
82654
82706
  if (extKey) {
82655
82707
  result[extKey] = source[extKey];
82656
82708
  }
82657
82709
  return result;
82658
82710
  }
82659
82711
  function findChildByLocalName2(parent, name) {
82660
- const key2 = findKey12(parent, name);
82712
+ const key2 = findKey13(parent, name);
82661
82713
  return key2 ? parent[key2] : void 0;
82662
82714
  }
82663
82715
  function setPresentationPropertiesChild(root, name, value) {
@@ -82700,7 +82752,7 @@ var PRINT_OUTPUTS;
82700
82752
  var COLOR_MODES;
82701
82753
  var ROOT_ORDER;
82702
82754
  var localName20;
82703
- var findKey12;
82755
+ var findKey13;
82704
82756
  var init_pptx_print_properties = __esm({
82705
82757
  "src/core/core/runtime/pptx-print-properties.ts"() {
82706
82758
  PRINT_OUTPUTS = /* @__PURE__ */ new Set([
@@ -82717,7 +82769,7 @@ var init_pptx_print_properties = __esm({
82717
82769
  COLOR_MODES = /* @__PURE__ */ new Set(["bw", "gray", "clr"]);
82718
82770
  ROOT_ORDER = ["htmlPubPr", "webPr", "prnPr", "showPr", "clrMru", "extLst"];
82719
82771
  localName20 = (key2) => key2.replace(/^@_/u, "").replace(/^.*:/u, "");
82720
- findKey12 = (node, name) => Object.keys(node).find((key2) => localName20(key2) === name);
82772
+ findKey13 = (node, name) => Object.keys(node).find((key2) => localName20(key2) === name);
82721
82773
  }
82722
82774
  });
82723
82775
  function elementRectEmu(el) {
@@ -86468,7 +86520,7 @@ var init_chart_cx_generator = __esm({
86468
86520
  NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart";
86469
86521
  }
86470
86522
  });
86471
- function findKey13(obj, local, getLocalName2) {
86523
+ function findKey14(obj, local, getLocalName2) {
86472
86524
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
86473
86525
  }
86474
86526
  function boolVal(on) {
@@ -86542,7 +86594,7 @@ function applyChartDataLabelsToXml(plotArea, style, getLocalName2) {
86542
86594
  if (!container || typeof container !== "object") {
86543
86595
  continue;
86544
86596
  }
86545
- const existingKey = findKey13(container, "dLbls", getLocalName2);
86597
+ const existingKey = findKey14(container, "dLbls", getLocalName2);
86546
86598
  if (style.hasDataLabels === false) {
86547
86599
  const existing2 = existingKey ? container[existingKey] : void 0;
86548
86600
  const off = ordered3(existing2, { "c:delete": { "@_val": "1" } }, getLocalName2);
@@ -86620,11 +86672,11 @@ var init_chart_data_labels_serializer = __esm({
86620
86672
  ]);
86621
86673
  }
86622
86674
  });
86623
- function findKey14(node, name, localName28) {
86675
+ function findKey15(node, name, localName28) {
86624
86676
  return Object.keys(node).find((key2) => localName28(key2) === name);
86625
86677
  }
86626
86678
  function setOrdered4(node, name, value, order, localName28) {
86627
- const existingKey = findKey14(node, name, localName28);
86679
+ const existingKey = findKey15(node, name, localName28);
86628
86680
  if (existingKey) {
86629
86681
  node[existingKey] = value;
86630
86682
  return;
@@ -86647,7 +86699,7 @@ function applyChartDataTable(plotArea, dataTable, localName28, resolveColor2) {
86647
86699
  if (dataTable === void 0) {
86648
86700
  return;
86649
86701
  }
86650
- const tableKey = findKey14(plotArea, "dTable", localName28);
86702
+ const tableKey = findKey15(plotArea, "dTable", localName28);
86651
86703
  if (dataTable === null) {
86652
86704
  if (tableKey) {
86653
86705
  delete plotArea[tableKey];
@@ -86664,7 +86716,7 @@ function applyChartDataTable(plotArea, dataTable, localName28, resolveColor2) {
86664
86716
  }
86665
86717
  }
86666
86718
  if (dataTable.spPr) {
86667
- const spPrKey = findKey14(table2, "spPr", localName28);
86719
+ const spPrKey = findKey15(table2, "spPr", localName28);
86668
86720
  const spPr = writeChartShapeProps(
86669
86721
  spPrKey ? table2[spPrKey] : void 0,
86670
86722
  dataTable.spPr,
@@ -86674,13 +86726,13 @@ function applyChartDataTable(plotArea, dataTable, localName28, resolveColor2) {
86674
86726
  setOrdered4(table2, "spPr", spPr, TABLE_ORDER, localName28);
86675
86727
  }
86676
86728
  if (dataTable.txPr) {
86677
- const txPrKey = findKey14(table2, "txPr", localName28);
86729
+ const txPrKey = findKey15(table2, "txPr", localName28);
86678
86730
  const authoredDefRPr = resolveTxPrDefRPr(txPrKey ? table2[txPrKey] : void 0, {
86679
86731
  getChildByLocalName: (parent, name) => {
86680
86732
  if (!parent) {
86681
86733
  return void 0;
86682
86734
  }
86683
- const key2 = findKey14(parent, name, localName28);
86735
+ const key2 = findKey15(parent, name, localName28);
86684
86736
  return key2 ? parent[key2] : void 0;
86685
86737
  }
86686
86738
  });
@@ -86740,7 +86792,7 @@ var init_chart_data_table = __esm({
86740
86792
  FLAGS2 = ["showHorzBorder", "showVertBorder", "showOutline", "showKeys"];
86741
86793
  }
86742
86794
  });
86743
- function findKey15(obj, local, getLocalName2) {
86795
+ function findKey16(obj, local, getLocalName2) {
86744
86796
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
86745
86797
  }
86746
86798
  function ensureArray14(v) {
@@ -86783,7 +86835,7 @@ function buildErrBars(existing, e, getLocalName2, resolveColor2) {
86783
86835
  if (e.noEndCap !== void 0) {
86784
86836
  node["c:noEndCap"] = { "@_val": e.noEndCap ? "1" : "0" };
86785
86837
  } else if (existing) {
86786
- const noEndCapKey = findKey15(existing, "noEndCap", getLocalName2);
86838
+ const noEndCapKey = findKey16(existing, "noEndCap", getLocalName2);
86787
86839
  if (noEndCapKey) {
86788
86840
  node["c:noEndCap"] = existing[noEndCapKey];
86789
86841
  }
@@ -86798,7 +86850,7 @@ function buildErrBars(existing, e, getLocalName2, resolveColor2) {
86798
86850
  } else if (e.val !== void 0) {
86799
86851
  node["c:val"] = { "@_val": String(e.val) };
86800
86852
  }
86801
- const spPrKey = existing ? findKey15(existing, "spPr", getLocalName2) : void 0;
86853
+ const spPrKey = existing ? findKey16(existing, "spPr", getLocalName2) : void 0;
86802
86854
  const existingSpPr = spPrKey ? existing?.[spPrKey] : void 0;
86803
86855
  if (e.color || e.width !== void 0 || e.dashStyle) {
86804
86856
  node["c:spPr"] = buildSpPr(existingSpPr, e, getLocalName2, resolveColor2);
@@ -86806,7 +86858,7 @@ function buildErrBars(existing, e, getLocalName2, resolveColor2) {
86806
86858
  node["c:spPr"] = existingSpPr;
86807
86859
  }
86808
86860
  if (existing) {
86809
- const extKey = findKey15(existing, "extLst", getLocalName2);
86861
+ const extKey = findKey16(existing, "extLst", getLocalName2);
86810
86862
  if (extKey) {
86811
86863
  node["c:extLst"] = existing[extKey];
86812
86864
  }
@@ -86814,7 +86866,7 @@ function buildErrBars(existing, e, getLocalName2, resolveColor2) {
86814
86866
  return node;
86815
86867
  }
86816
86868
  function applySeriesErrBarsToXml(seriesNode, errBars, getLocalName2, resolveColor2) {
86817
- const existingKey = findKey15(seriesNode, "errBars", getLocalName2);
86869
+ const existingKey = findKey16(seriesNode, "errBars", getLocalName2);
86818
86870
  const existingNodes = existingKey ? ensureArray14(seriesNode[existingKey]) : [];
86819
86871
  const built = errBars.map(
86820
86872
  (e, i2) => buildErrBars(existingNodes[i2], e, getLocalName2, resolveColor2)
@@ -86846,7 +86898,7 @@ var init_chart_errbars_serializer = __esm({
86846
86898
  init_chart_shape_props_writer();
86847
86899
  }
86848
86900
  });
86849
- function findKey16(obj, local, getLocalName2) {
86901
+ function findKey17(obj, local, getLocalName2) {
86850
86902
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
86851
86903
  }
86852
86904
  function boolVal2(on) {
@@ -86895,7 +86947,7 @@ function buildDLbl(existing, label, getLocalName2, resolveColor2) {
86895
86947
  node["c:delete"] = { "@_val": "0" };
86896
86948
  }
86897
86949
  if (existing && label.layout === void 0) {
86898
- const layoutKey = findKey16(existing, "layout", getLocalName2);
86950
+ const layoutKey = findKey17(existing, "layout", getLocalName2);
86899
86951
  if (layoutKey) {
86900
86952
  node[layoutKey] = existing[layoutKey];
86901
86953
  }
@@ -86914,7 +86966,7 @@ function buildDLbl(existing, label, getLocalName2, resolveColor2) {
86914
86966
  }
86915
86967
  };
86916
86968
  } else if (existing) {
86917
- const txKey = findKey16(existing, "tx", getLocalName2);
86969
+ const txKey = findKey17(existing, "tx", getLocalName2);
86918
86970
  if (txKey) {
86919
86971
  node[txKey] = existing[txKey];
86920
86972
  }
@@ -86930,7 +86982,7 @@ function buildDLbl(existing, label, getLocalName2, resolveColor2) {
86930
86982
  if (local === "txPr" && label.txPr !== void 0) {
86931
86983
  continue;
86932
86984
  }
86933
- const k = findKey16(existing, local, getLocalName2);
86985
+ const k = findKey17(existing, local, getLocalName2);
86934
86986
  if (k) {
86935
86987
  node[k] = existing[k];
86936
86988
  }
@@ -86942,15 +86994,15 @@ function buildDLbl(existing, label, getLocalName2, resolveColor2) {
86942
86994
  }
86943
86995
  if (label.spPr !== void 0) {
86944
86996
  replaced.add("spPr");
86945
- const existingSpPr = existing ? existing[findKey16(existing, "spPr", getLocalName2) ?? ""] : void 0;
86997
+ const existingSpPr = existing ? existing[findKey17(existing, "spPr", getLocalName2) ?? ""] : void 0;
86946
86998
  node["c:spPr"] = writeChartShapeProps(existingSpPr, label.spPr, getLocalName2, resolveColor2);
86947
86999
  }
86948
87000
  if (label.txPr !== void 0) {
86949
87001
  replaced.add("txPr");
86950
- const existingTxPr = existing ? existing[findKey16(existing, "txPr", getLocalName2) ?? ""] : void 0;
86951
- const paragraph = existingTxPr ? existingTxPr[findKey16(existingTxPr, "p", getLocalName2) ?? ""] : void 0;
86952
- const pPr = paragraph ? paragraph[findKey16(paragraph, "pPr", getLocalName2) ?? ""] : void 0;
86953
- const authoredDefRPr = pPr ? pPr[findKey16(pPr, "defRPr", getLocalName2) ?? ""] : void 0;
87002
+ const existingTxPr = existing ? existing[findKey17(existing, "txPr", getLocalName2) ?? ""] : void 0;
87003
+ const paragraph = existingTxPr ? existingTxPr[findKey17(existingTxPr, "p", getLocalName2) ?? ""] : void 0;
87004
+ const pPr = paragraph ? paragraph[findKey17(paragraph, "pPr", getLocalName2) ?? ""] : void 0;
87005
+ const authoredDefRPr = pPr ? pPr[findKey17(pPr, "defRPr", getLocalName2) ?? ""] : void 0;
86954
87006
  const txPr = buildDefRPrTextProperties(label.txPr, authoredDefRPr, resolveColor2);
86955
87007
  if (txPr) {
86956
87008
  node["c:txPr"] = txPr;
@@ -87019,17 +87071,17 @@ var init_chart_series_datalabel_build = __esm({
87019
87071
  }
87020
87072
  });
87021
87073
  function applySeriesDataLabelsToXml(seriesNode, dataLabels, getLocalName2, resolveColor2) {
87022
- const dLblsKey = findKey16(seriesNode, "dLbls", getLocalName2);
87074
+ const dLblsKey = findKey17(seriesNode, "dLbls", getLocalName2);
87023
87075
  const labels = dataLabels ?? [];
87024
87076
  const existingByIdx = /* @__PURE__ */ new Map();
87025
87077
  let groupChildren2 = [];
87026
87078
  if (dLblsKey) {
87027
87079
  const dLbls = seriesNode[dLblsKey];
87028
- const dLblKey = findKey16(dLbls, "dLbl", getLocalName2);
87080
+ const dLblKey = findKey17(dLbls, "dLbl", getLocalName2);
87029
87081
  if (dLblKey) {
87030
87082
  const nodes = Array.isArray(dLbls[dLblKey]) ? dLbls[dLblKey] : [dLbls[dLblKey]];
87031
87083
  for (const node of nodes) {
87032
- const idxKey = findKey16(node, "idx", getLocalName2);
87084
+ const idxKey = findKey17(node, "idx", getLocalName2);
87033
87085
  const idxNode = idxKey ? node[idxKey] : void 0;
87034
87086
  const idx = idxNode ? Number.parseInt(String(idxNode["@_val"]), 10) : NaN;
87035
87087
  if (Number.isFinite(idx)) {
@@ -87115,7 +87167,7 @@ var init_chart_space_metadata = __esm({
87115
87167
  init_chart_protection2();
87116
87168
  }
87117
87169
  });
87118
- function findKey17(obj, local, getLocalName2) {
87170
+ function findKey18(obj, local, getLocalName2) {
87119
87171
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
87120
87172
  }
87121
87173
  function ensureArray15(v) {
@@ -87154,14 +87206,14 @@ function buildSpPr2(existing, t, getLocalName2, resolveColor2) {
87154
87206
  function buildTrendline(existing, t, getLocalName2, resolveColor2) {
87155
87207
  validateTrendline(t);
87156
87208
  const node = {};
87157
- const existingNameKey = existing ? findKey17(existing, "name", getLocalName2) : void 0;
87209
+ const existingNameKey = existing ? findKey18(existing, "name", getLocalName2) : void 0;
87158
87210
  if (t.name !== void 0) {
87159
87211
  node["c:name"] = t.name;
87160
87212
  } else if (existing && existingNameKey) {
87161
87213
  node["c:name"] = existing[existingNameKey];
87162
87214
  }
87163
87215
  const spPr = buildSpPr2(
87164
- existing ? existing[findKey17(existing, "spPr", getLocalName2) ?? ""] : void 0,
87216
+ existing ? existing[findKey18(existing, "spPr", getLocalName2) ?? ""] : void 0,
87165
87217
  t,
87166
87218
  getLocalName2,
87167
87219
  resolveColor2
@@ -87191,7 +87243,7 @@ function buildTrendline(existing, t, getLocalName2, resolveColor2) {
87191
87243
  if (t.displayEq !== void 0) {
87192
87244
  node["c:dispEq"] = { "@_val": t.displayEq ? "1" : "0" };
87193
87245
  }
87194
- const lblKey = existing ? findKey17(existing, "trendlineLbl", getLocalName2) : void 0;
87246
+ const lblKey = existing ? findKey18(existing, "trendlineLbl", getLocalName2) : void 0;
87195
87247
  if (t.label) {
87196
87248
  node["c:trendlineLbl"] = buildTrendlineLabel(
87197
87249
  lblKey ? existing?.[lblKey] : void 0,
@@ -87202,7 +87254,7 @@ function buildTrendline(existing, t, getLocalName2, resolveColor2) {
87202
87254
  node["c:trendlineLbl"] = existing[lblKey];
87203
87255
  }
87204
87256
  if (existing) {
87205
- const extKey = findKey17(existing, "extLst", getLocalName2);
87257
+ const extKey = findKey18(existing, "extLst", getLocalName2);
87206
87258
  if (extKey) {
87207
87259
  node["c:extLst"] = existing[extKey];
87208
87260
  }
@@ -87210,7 +87262,7 @@ function buildTrendline(existing, t, getLocalName2, resolveColor2) {
87210
87262
  return node;
87211
87263
  }
87212
87264
  function applySeriesTrendlinesToXml(seriesNode, trendlines, getLocalName2, resolveColor2) {
87213
- const existingKey = findKey17(seriesNode, "trendline", getLocalName2);
87265
+ const existingKey = findKey18(seriesNode, "trendline", getLocalName2);
87214
87266
  const existingNodes = existingKey ? ensureArray15(seriesNode[existingKey]) : [];
87215
87267
  const built = trendlines.map(
87216
87268
  (t, i2) => buildTrendline(existingNodes[i2], t, getLocalName2, resolveColor2)
@@ -87252,7 +87304,7 @@ var init_chart_trendline_serializer = __esm({
87252
87304
  };
87253
87305
  }
87254
87306
  });
87255
- function findKey18(obj, local, getLocalName2) {
87307
+ function findKey19(obj, local, getLocalName2) {
87256
87308
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
87257
87309
  }
87258
87310
  function insertBefore(axisNode, newKey, value, afterSet, getLocalName2) {
@@ -87272,7 +87324,7 @@ function applyOne(axisNode, local, key2, flag, afterSet, getLocalName2) {
87272
87324
  if (flag === void 0) {
87273
87325
  return;
87274
87326
  }
87275
- const existingKey = findKey18(axisNode, local, getLocalName2);
87327
+ const existingKey = findKey19(axisNode, local, getLocalName2);
87276
87328
  if (!flag) {
87277
87329
  if (existingKey) {
87278
87330
  delete axisNode[existingKey];
@@ -87320,14 +87372,14 @@ function hex(color2) {
87320
87372
  }
87321
87373
  function buildGridlineSpPr(existing, style, getLocalName2, resolveColor2) {
87322
87374
  const spPr = existing ? { ...existing } : {};
87323
- const lnKey = findKey18(spPr, "ln", getLocalName2) ?? "a:ln";
87375
+ const lnKey = findKey19(spPr, "ln", getLocalName2) ?? "a:ln";
87324
87376
  const ln = { ...spPr[lnKey] ?? {} };
87325
87377
  if (style.strokeWidth !== void 0) {
87326
87378
  ln["@_w"] = String(Math.round(style.strokeWidth * 12700));
87327
87379
  }
87328
87380
  if (style.strokeColor) {
87329
- const fillKey = findKey18(ln, "solidFill", getLocalName2) ?? "a:solidFill";
87330
- const noFillKey = findKey18(ln, "noFill", getLocalName2);
87381
+ const fillKey = findKey19(ln, "solidFill", getLocalName2) ?? "a:solidFill";
87382
+ const noFillKey = findKey19(ln, "noFill", getLocalName2);
87331
87383
  if (noFillKey) {
87332
87384
  delete ln[noFillKey];
87333
87385
  }
@@ -87339,7 +87391,7 @@ function buildGridlineSpPr(existing, style, getLocalName2, resolveColor2) {
87339
87391
  );
87340
87392
  }
87341
87393
  if (style.strokeDashStyle) {
87342
- const dashKey = findKey18(ln, "prstDash", getLocalName2) ?? "a:prstDash";
87394
+ const dashKey = findKey19(ln, "prstDash", getLocalName2) ?? "a:prstDash";
87343
87395
  ln[dashKey] = { "@_val": style.strokeDashStyle };
87344
87396
  }
87345
87397
  spPr[lnKey] = ln;
@@ -87349,12 +87401,12 @@ function applyGridlineStyle(axisNode, local, style, getLocalName2, resolveColor2
87349
87401
  if (!style) {
87350
87402
  return;
87351
87403
  }
87352
- const gridKey = findKey18(axisNode, local, getLocalName2);
87404
+ const gridKey = findKey19(axisNode, local, getLocalName2);
87353
87405
  if (!gridKey) {
87354
87406
  return;
87355
87407
  }
87356
87408
  const grid = { ...axisNode[gridKey] ?? {} };
87357
- const spPrKey = findKey18(grid, "spPr", getLocalName2) ?? "c:spPr";
87409
+ const spPrKey = findKey19(grid, "spPr", getLocalName2) ?? "c:spPr";
87358
87410
  grid[spPrKey] = buildGridlineSpPr(
87359
87411
  grid[spPrKey],
87360
87412
  style,
@@ -88407,7 +88459,7 @@ var init_tag_package = __esm({
88407
88459
  TAG_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.tags+xml";
88408
88460
  }
88409
88461
  });
88410
- function findKey19(obj, local, getLocalName2) {
88462
+ function findKey20(obj, local, getLocalName2) {
88411
88463
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
88412
88464
  }
88413
88465
  function setFirstText(node, text22, getLocalName2) {
@@ -88464,7 +88516,7 @@ function applyChartAxisTitleToXml(axisNode, titleText, getLocalName2) {
88464
88516
  if (titleText === void 0) {
88465
88517
  return;
88466
88518
  }
88467
- const titleKey = findKey19(axisNode, "title", getLocalName2);
88519
+ const titleKey = findKey20(axisNode, "title", getLocalName2);
88468
88520
  if (titleText === "") {
88469
88521
  if (titleKey) {
88470
88522
  delete axisNode[titleKey];
@@ -88502,27 +88554,27 @@ function applyChartAxisTitleStyleToXml(axisNode, style, getLocalName2, resolveCo
88502
88554
  if (!hasAny) {
88503
88555
  return;
88504
88556
  }
88505
- const titleKey = findKey19(axisNode, "title", getLocalName2);
88557
+ const titleKey = findKey20(axisNode, "title", getLocalName2);
88506
88558
  if (!titleKey) {
88507
88559
  return;
88508
88560
  }
88509
88561
  const title = { ...axisNode[titleKey] ?? {} };
88510
- const txPrKey = findKey19(title, "txPr", getLocalName2) ?? "c:txPr";
88562
+ const txPrKey = findKey20(title, "txPr", getLocalName2) ?? "c:txPr";
88511
88563
  const txPr = { ...title[txPrKey] ?? {} };
88512
- if (!txPr[findKey19(txPr, "bodyPr", getLocalName2) ?? "a:bodyPr"]) {
88564
+ if (!txPr[findKey20(txPr, "bodyPr", getLocalName2) ?? "a:bodyPr"]) {
88513
88565
  txPr["a:bodyPr"] = {};
88514
88566
  }
88515
- if (!txPr[findKey19(txPr, "lstStyle", getLocalName2) ?? "a:lstStyle"]) {
88567
+ if (!txPr[findKey20(txPr, "lstStyle", getLocalName2) ?? "a:lstStyle"]) {
88516
88568
  txPr["a:lstStyle"] = {};
88517
88569
  }
88518
- const pKey = findKey19(txPr, "p", getLocalName2) ?? "a:p";
88570
+ const pKey = findKey20(txPr, "p", getLocalName2) ?? "a:p";
88519
88571
  const existingP = txPr[pKey];
88520
88572
  const para = {
88521
88573
  ...(Array.isArray(existingP) ? existingP[0] : existingP) ?? {}
88522
88574
  };
88523
- const pPrKey = findKey19(para, "pPr", getLocalName2) ?? "a:pPr";
88575
+ const pPrKey = findKey20(para, "pPr", getLocalName2) ?? "a:pPr";
88524
88576
  const pPr = { ...para[pPrKey] ?? {} };
88525
- const defRPrKey = findKey19(pPr, "defRPr", getLocalName2) ?? "a:defRPr";
88577
+ const defRPrKey = findKey20(pPr, "defRPr", getLocalName2) ?? "a:defRPr";
88526
88578
  const existingDefRPr = pPr[defRPrKey] ?? {};
88527
88579
  pPr[defRPrKey] = { ...existingDefRPr, ...buildDefRPr(style, existingDefRPr, resolveColor2) };
88528
88580
  para[pPrKey] = pPr;
@@ -88877,7 +88929,7 @@ var init_chart_container_schema = __esm({
88877
88929
  init_chart_container_content_model();
88878
88930
  }
88879
88931
  });
88880
- function findKey20(obj, local, getLocalName2) {
88932
+ function findKey21(obj, local, getLocalName2) {
88881
88933
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
88882
88934
  }
88883
88935
  function nonSeriesEntries(container, getLocalName2) {
@@ -88909,14 +88961,14 @@ function consolidateComboContainersInXml(plotArea, getLocalName2) {
88909
88961
  if (!primary) {
88910
88962
  return { primaryKey, containerChildren };
88911
88963
  }
88912
- const serKey = findKey20(primary, "ser", getLocalName2) ?? "c:ser";
88964
+ const serKey = findKey21(primary, "ser", getLocalName2) ?? "c:ser";
88913
88965
  const allSeries = [];
88914
88966
  for (const key2 of containerKeys) {
88915
88967
  const container = plotArea[key2];
88916
88968
  if (!container) {
88917
88969
  continue;
88918
88970
  }
88919
- const containerSerKey = findKey20(container, "ser", getLocalName2);
88971
+ const containerSerKey = findKey21(container, "ser", getLocalName2);
88920
88972
  if (containerSerKey) {
88921
88973
  allSeries.push(...ensureArray18(container[containerSerKey]));
88922
88974
  }
@@ -88944,7 +88996,7 @@ function applyComboSeriesTypesToXml(plotArea, originalKey, series, chartLevelTyp
88944
88996
  if (!original) {
88945
88997
  return false;
88946
88998
  }
88947
- const serKey = findKey20(original, "ser", getLocalName2) ?? "c:ser";
88999
+ const serKey = findKey21(original, "ser", getLocalName2) ?? "c:ser";
88948
89000
  const serNodes = ensureArray18(original[serKey]);
88949
89001
  if (serNodes.length !== series.length) {
88950
89002
  return false;
@@ -89001,7 +89053,7 @@ function applyGroupAxisReferences(container, series, axes, getLocalName2) {
89001
89053
  if (valueAxisId === void 0 || categoryAxisId === void 0) {
89002
89054
  return;
89003
89055
  }
89004
- const key2 = findKey20(container, "axId", getLocalName2) ?? "c:axId";
89056
+ const key2 = findKey21(container, "axId", getLocalName2) ?? "c:axId";
89005
89057
  container[key2] = [{ "@_val": String(categoryAxisId) }, { "@_val": String(valueAxisId) }];
89006
89058
  }
89007
89059
  var init_chart_combo_serializer = __esm({
@@ -89009,7 +89061,7 @@ var init_chart_combo_serializer = __esm({
89009
89061
  init_chart_container_schema();
89010
89062
  }
89011
89063
  });
89012
- function findKey21(obj, local, getLocalName2) {
89064
+ function findKey22(obj, local, getLocalName2) {
89013
89065
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
89014
89066
  }
89015
89067
  function points3(values) {
@@ -89067,9 +89119,9 @@ function filteredSeriesUnchanged(container, filteredSeries, xmlLookup) {
89067
89119
  });
89068
89120
  }
89069
89121
  function applyFilteredSeriesToXml(container, filteredSeries, categories, containerLocalName, getLocalName2) {
89070
- const extLstKey = findKey21(container, "extLst", getLocalName2) ?? "c:extLst";
89122
+ const extLstKey = findKey22(container, "extLst", getLocalName2) ?? "c:extLst";
89071
89123
  const extLst = { ...container[extLstKey] ?? {} };
89072
- const extKey = findKey21(extLst, "ext", getLocalName2);
89124
+ const extKey = findKey22(extLst, "ext", getLocalName2);
89073
89125
  const exts = extKey ? Array.isArray(extLst[extKey]) ? [...extLst[extKey]] : [extLst[extKey]] : [];
89074
89126
  const otherExts = exts.filter((ext) => ext["@_uri"] !== CHART_FILTERED_SERIES_EXT_URI);
89075
89127
  const ownExt = {
@@ -89279,11 +89331,11 @@ var init_chart_legend_serializer = __esm({
89279
89331
  init_chart_def_rpr_style();
89280
89332
  }
89281
89333
  });
89282
- function findKey22(node, name, localName28) {
89334
+ function findKey23(node, name, localName28) {
89283
89335
  return Object.keys(node).find((key2) => localName28(key2) === name);
89284
89336
  }
89285
89337
  function setOrdered5(node, name, value, localName28) {
89286
- const key2 = findKey22(node, name, localName28);
89338
+ const key2 = findKey23(node, name, localName28);
89287
89339
  if (key2) {
89288
89340
  node[key2] = value;
89289
89341
  return;
@@ -89308,7 +89360,7 @@ function applyChartLineStyle(chartContainer, elementName, style, localName28, re
89308
89360
  if (style === void 0) {
89309
89361
  return;
89310
89362
  }
89311
- const key2 = findKey22(chartContainer, elementName, localName28);
89363
+ const key2 = findKey23(chartContainer, elementName, localName28);
89312
89364
  if (style === null) {
89313
89365
  if (key2) {
89314
89366
  delete chartContainer[key2];
@@ -89319,7 +89371,7 @@ function applyChartLineStyle(chartContainer, elementName, style, localName28, re
89319
89371
  const node = { ...existing };
89320
89372
  const hasLineProps = style.color || style.width !== void 0 || style.dashStyle;
89321
89373
  if (hasLineProps) {
89322
- const spPrKey = findKey22(node, "spPr", localName28) ?? "c:spPr";
89374
+ const spPrKey = findKey23(node, "spPr", localName28) ?? "c:spPr";
89323
89375
  node[spPrKey] = writeChartShapeProps(
89324
89376
  node[spPrKey],
89325
89377
  { strokeColor: style.color, strokeWidth: style.width, strokeDashStyle: style.dashStyle },
@@ -89351,7 +89403,7 @@ var init_chart_line_style_serializer = __esm({
89351
89403
  ];
89352
89404
  }
89353
89405
  });
89354
- function findKey23(obj, local, getLocalName2) {
89406
+ function findKey24(obj, local, getLocalName2) {
89355
89407
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
89356
89408
  }
89357
89409
  function insertBeforeLn(obj, key2, value, getLocalName2) {
@@ -89381,14 +89433,14 @@ function insertFirst(obj, key2, value) {
89381
89433
  function writeSeriesColorToSpPr(spPr, hex4, isLineFamily, getLocalName2, resolveColor2) {
89382
89434
  const normalizedHex = hex4.replace(/^#/u, "");
89383
89435
  if (isLineFamily) {
89384
- const lnKey = findKey23(spPr, "ln", getLocalName2) ?? "a:ln";
89436
+ const lnKey = findKey24(spPr, "ln", getLocalName2) ?? "a:ln";
89385
89437
  const ln = spPr[lnKey] ?? {};
89386
89438
  const hadLn = Boolean(spPr[lnKey]);
89387
- const noFillKey2 = findKey23(ln, "noFill", getLocalName2);
89439
+ const noFillKey2 = findKey24(ln, "noFill", getLocalName2);
89388
89440
  if (noFillKey2) {
89389
89441
  delete ln[noFillKey2];
89390
89442
  }
89391
- const lnFillKey = findKey23(ln, "solidFill", getLocalName2) ?? "a:solidFill";
89443
+ const lnFillKey = findKey24(ln, "solidFill", getLocalName2) ?? "a:solidFill";
89392
89444
  const authoredFill2 = ln[lnFillKey];
89393
89445
  const fillNode2 = serializeColorChoice(
89394
89446
  authoredFill2,
@@ -89405,11 +89457,11 @@ function writeSeriesColorToSpPr(spPr, hex4, isLineFamily, getLocalName2, resolve
89405
89457
  }
89406
89458
  return;
89407
89459
  }
89408
- const noFillKey = findKey23(spPr, "noFill", getLocalName2);
89460
+ const noFillKey = findKey24(spPr, "noFill", getLocalName2);
89409
89461
  if (noFillKey) {
89410
89462
  delete spPr[noFillKey];
89411
89463
  }
89412
- const fillKey = findKey23(spPr, "solidFill", getLocalName2) ?? "a:solidFill";
89464
+ const fillKey = findKey24(spPr, "solidFill", getLocalName2) ?? "a:solidFill";
89413
89465
  const authoredFill = spPr[fillKey];
89414
89466
  const fillNode = serializeColorChoice(
89415
89467
  authoredFill,
@@ -89427,11 +89479,11 @@ var init_chart_series_color_serializer = __esm({
89427
89479
  init_color_xml_preservation();
89428
89480
  }
89429
89481
  });
89430
- function findKey24(obj, local, getLocalName2) {
89482
+ function findKey25(obj, local, getLocalName2) {
89431
89483
  return Object.keys(obj).find((k) => getLocalName2(k) === local);
89432
89484
  }
89433
89485
  function upsertValChild(parent, localName28, value, getLocalName2) {
89434
- const existingKey = findKey24(parent, localName28, getLocalName2);
89486
+ const existingKey = findKey25(parent, localName28, getLocalName2);
89435
89487
  if (value === void 0) {
89436
89488
  if (existingKey) {
89437
89489
  delete parent[existingKey];
@@ -89471,7 +89523,7 @@ function applySurfaceWireframeToXml(chartTypeContainer, containerLocalName, wire
89471
89523
  orderChartContainerChildren(chartTypeContainer, containerLocalName, getLocalName2);
89472
89524
  }
89473
89525
  function applySeriesBar3DShapeToXml(seriesNode, shape, getLocalName2) {
89474
- const existingKey = findKey24(seriesNode, "shape", getLocalName2);
89526
+ const existingKey = findKey25(seriesNode, "shape", getLocalName2);
89475
89527
  if (shape === void 0) {
89476
89528
  if (existingKey) {
89477
89529
  delete seriesNode[existingKey];
@@ -89608,85 +89660,9 @@ var init_chart_title_run_alignment = __esm({
89608
89660
  "src/core/utils/chart-title-run-alignment.ts"() {
89609
89661
  }
89610
89662
  });
89611
- function findKey25(node, localName28, getLocalName2) {
89612
- return Object.keys(node).find((key2) => getLocalName2(key2) === localName28);
89613
- }
89614
- function replaceEntries(parent, entries) {
89615
- for (const key2 of Object.keys(parent)) {
89616
- delete parent[key2];
89617
- }
89618
- for (const [key2, value] of entries) {
89619
- parent[key2] = value;
89620
- }
89621
- }
89622
- function insertAt2(parent, index, key2, value) {
89623
- const entries = Object.keys(parent).map((k) => [k, parent[k]]);
89624
- entries.splice(Math.max(0, Math.min(index, entries.length)), 0, [key2, value]);
89625
- replaceEntries(parent, entries);
89626
- }
89627
- function setAutoTitleDeleted(chartRoot, deleted, getLocalName2) {
89628
- const value = { "@_val": deleted ? "1" : "0" };
89629
- const existingKey = findKey25(chartRoot, "autoTitleDeleted", getLocalName2);
89630
- if (existingKey) {
89631
- chartRoot[existingKey] = value;
89632
- return;
89633
- }
89634
- const keys = Object.keys(chartRoot);
89635
- const titleIndex = keys.findIndex((key2) => getLocalName2(key2) === "title");
89636
- insertAt2(chartRoot, titleIndex === -1 ? 0 : titleIndex + 1, "c:autoTitleDeleted", value);
89637
- }
89638
- function collectAllText(node, getLocalName2, out) {
89639
- for (const key2 of Object.keys(node)) {
89640
- if (key2.startsWith("@_")) {
89641
- continue;
89642
- }
89643
- const value = node[key2];
89644
- const children13 = Array.isArray(value) ? value : [value];
89645
- if (getLocalName2(key2) === "t") {
89646
- for (const child262 of children13) {
89647
- if (child262 === void 0 || child262 === null) {
89648
- continue;
89649
- }
89650
- out.push(
89651
- typeof child262 === "object" ? String(child262["#text"] ?? "") : String(child262)
89652
- );
89653
- }
89654
- continue;
89655
- }
89656
- for (const child262 of children13) {
89657
- if (child262 && typeof child262 === "object") {
89658
- collectAllText(child262, getLocalName2, out);
89659
- }
89660
- }
89661
- }
89662
- }
89663
- function replaceFirstText(node, text22, getLocalName2) {
89664
- for (const key2 of Object.keys(node)) {
89665
- if (key2.startsWith("@_")) {
89666
- continue;
89667
- }
89668
- if (getLocalName2(key2) === "t") {
89669
- const current = node[key2];
89670
- node[key2] = current && typeof current === "object" && !Array.isArray(current) ? { ...current, "#text": text22 } : text22;
89671
- return true;
89672
- }
89673
- const value = node[key2];
89674
- const children13 = Array.isArray(value) ? value : [value];
89675
- for (const child262 of children13) {
89676
- if (child262 && typeof child262 === "object" && replaceFirstText(child262, text22, getLocalName2)) {
89677
- return true;
89678
- }
89679
- }
89680
- }
89681
- return false;
89682
- }
89683
- var init_chart_title_xml_ops = __esm({
89684
- "src/core/utils/chart-title-xml-ops.ts"() {
89685
- }
89686
- });
89687
89663
  function applyChartTitleToXml(chartRoot, model, getLocalName2, options = { prefix: "c" }) {
89688
89664
  const { prefix } = options;
89689
- const existingKey = findKey25(chartRoot, "title", getLocalName2);
89665
+ const existingKey = findKey6(chartRoot, "title", getLocalName2);
89690
89666
  const remove = model.hasTitle === false || model.title === "" && model.hasTitle !== true;
89691
89667
  if (remove) {
89692
89668
  if (existingKey) {
@@ -89724,14 +89700,14 @@ function applyChartTitleToXml(chartRoot, model, getLocalName2, options = { prefi
89724
89700
  insertAt2(chartRoot, 0, `${prefix}:title`, titleNode);
89725
89701
  }
89726
89702
  } else if (runs) {
89727
- const txKey = findKey25(titleNode, "tx", getLocalName2);
89703
+ const txKey = findKey6(titleNode, "tx", getLocalName2);
89728
89704
  if (txKey) {
89729
89705
  titleNode[txKey] = buildTitleTextFromRuns(prefix, runs);
89730
89706
  } else {
89731
89707
  insertAt2(titleNode, 0, `${prefix}:tx`, buildTitleTextFromRuns(prefix, runs));
89732
89708
  }
89733
89709
  } else if (model.title !== void 0 && !replaceFirstText(titleNode, model.title, getLocalName2)) {
89734
- const txKey = findKey25(titleNode, "tx", getLocalName2);
89710
+ const txKey = findKey6(titleNode, "tx", getLocalName2);
89735
89711
  if (txKey) {
89736
89712
  titleNode[txKey] = buildTitleText(prefix, model.title);
89737
89713
  } else {
@@ -99882,10 +99858,10 @@ function flattenCellTxBodyText(txBody, ensureArray20) {
99882
99858
  const fields = ensureArray20(paragraph?.["a:fld"]);
99883
99859
  let lineText = "";
99884
99860
  for (const run of runs) {
99885
- lineText += String(run?.["a:t"] ?? "");
99861
+ lineText += xmlText(run?.["a:t"]) ?? "";
99886
99862
  }
99887
99863
  for (const field of fields) {
99888
- lineText += String(field?.["a:t"] ?? "");
99864
+ lineText += xmlText(field?.["a:t"]) ?? "";
99889
99865
  }
99890
99866
  lines.push(lineText);
99891
99867
  }
@@ -99926,6 +99902,7 @@ function rebuildCellTextBody(existingTxBody, text22) {
99926
99902
  var xmlArray;
99927
99903
  var init_table_cell_text_xml = __esm({
99928
99904
  "src/core/core/runtime/table-cell-text-xml.ts"() {
99905
+ init_utils();
99929
99906
  init_table_structural_helpers();
99930
99907
  xmlArray = (value) => ensureArray19(value);
99931
99908
  }
@@ -100441,7 +100418,7 @@ function matchesParagraph(paragraph, runs) {
100441
100418
  if (node === void 0) {
100442
100419
  return false;
100443
100420
  }
100444
- if (tag !== "a:br" && (!isXmlObject3(node) || String(node["a:t"] ?? "") !== run.text)) {
100421
+ if (tag !== "a:br" && (!isXmlObject3(node) || (xmlText(node["a:t"]) ?? "") !== run.text)) {
100445
100422
  return false;
100446
100423
  }
100447
100424
  consumed.set(tag, index + 1);
@@ -100546,6 +100523,7 @@ var CONTENT_TAGS;
100546
100523
  var paragraphOrders;
100547
100524
  var init_table_paragraph_save_order = __esm({
100548
100525
  "src/core/core/runtime/table-paragraph-save-order.ts"() {
100526
+ init_utils();
100549
100527
  init_ordered_xml_children();
100550
100528
  init_paragraph_sibling_order();
100551
100529
  init_xml_child_scan();
@@ -140034,6 +140012,31 @@ var DIVIDEND_PRESET = {
140034
140012
  SLICE_PRESET,
140035
140013
  DIVIDEND_PRESET
140036
140014
  ];
140015
+ function createPresentationLoadResources(handler) {
140016
+ const blobUrls = [];
140017
+ let committed = false;
140018
+ let released = false;
140019
+ return {
140020
+ blobUrls,
140021
+ /** The live viewer now owns the handler and media URLs. */
140022
+ commit() {
140023
+ committed = true;
140024
+ },
140025
+ /** Call in finally, after pending asset reads have settled. */
140026
+ releaseIfUncommitted() {
140027
+ if (committed || released) {
140028
+ return;
140029
+ }
140030
+ released = true;
140031
+ handler.dispose();
140032
+ for (const url of blobUrls) {
140033
+ if (url.startsWith("blob:")) {
140034
+ URL.revokeObjectURL(url);
140035
+ }
140036
+ }
140037
+ }
140038
+ };
140039
+ }
140037
140040
  function walkAndPatchElements(elements, patch) {
140038
140041
  let mutated = false;
140039
140042
  const next = elements.map((el) => {
@@ -155365,7 +155368,7 @@ function resolveChartTitleRunSpans(chartData) {
155365
155368
  }
155366
155369
  const base = resolveChartTitleTextStyle(chartData);
155367
155370
  return runs.map((run) => ({
155368
- text: run.text,
155371
+ text: runs.length === 1 ? chartData?.title ?? run.text : run.text,
155369
155372
  fontSize: run.fontSize !== void 0 ? chartFontPx(run.fontSize) : base.fontSize,
155370
155373
  fontWeight: run.bold !== void 0 ? run.bold ? 700 : 400 : base.fontWeight,
155371
155374
  ...run.italic ? { fontStyle: "italic" } : {},
@@ -168906,7 +168909,7 @@ function computeMergeCellRight(td, rowIndex, columnIndex) {
168906
168909
  return { ...c, gridSpan: currentSpan + nextSpan };
168907
168910
  }
168908
168911
  if (ci >= nextColumnIndex && ci < nextColumnIndex + nextSpan) {
168909
- return { ...c, hMerge: true, text: "" };
168912
+ return { ...withCellText(c, ""), hMerge: true };
168910
168913
  }
168911
168914
  return c;
168912
168915
  });
@@ -168945,7 +168948,9 @@ function computeMergeCellDown(td, rowIndex, columnIndex) {
168945
168948
  if (ri === targetNextRowIndex) {
168946
168949
  return {
168947
168950
  ...r,
168948
- cells: r.cells.map((c, ci) => ci === columnIndex ? { ...c, vMerge: true, text: "" } : c)
168951
+ cells: r.cells.map(
168952
+ (c, ci) => ci === columnIndex ? { ...withCellText(c, ""), vMerge: true } : c
168953
+ )
168949
168954
  };
168950
168955
  }
168951
168956
  return r;
@@ -203281,6 +203286,7 @@ exports.createInitialPresentationSnapshot = createInitialPresentationSnapshot;
203281
203286
  exports.createPlainNotesSegments = createPlainNotesSegments;
203282
203287
  exports.createPresenceProjector = createPresenceProjector;
203283
203288
  exports.createPresentationKeyBuffer = createPresentationKeyBuffer;
203289
+ exports.createPresentationLoadResources = createPresentationLoadResources;
203284
203290
  exports.createPresentationSessionId = createPresentationSessionId;
203285
203291
  exports.createPresenterShowGuard = createPresenterShowGuard;
203286
203292
  exports.createPresenterTimer = createPresenterTimer;
@@ -203866,3 +203872,4 @@ exports.withFrameSlides = withFrameSlides;
203866
203872
  exports.withSlideSizeOrientation = withSlideSizeOrientation;
203867
203873
  exports.withSlidesPerPage = withSlidesPerPage;
203868
203874
  exports.writeStoredViewerPrefs = writeStoredViewerPrefs;
203875
+ exports.xmlText = xmlText;