pptx-viewer-core 1.1.31 → 1.1.33
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/{SvgExporter-BkkVdcN7.d.mts → SvgExporter-DszPzkAO.d.mts} +1 -1
- package/dist/{SvgExporter-MDf-1CNQ.d.ts → SvgExporter-K7gytgbs.d.ts} +1 -1
- package/dist/cli/index.d.mts +2 -2
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +0 -0
- package/dist/cli/index.mjs +0 -0
- package/dist/converter/index.d.mts +3 -3
- package/dist/converter/index.d.ts +3 -3
- package/dist/index.d.mts +127 -8
- package/dist/index.d.ts +127 -8
- package/dist/index.js +677 -116
- package/dist/index.mjs +677 -117
- package/dist/{presentation-BWchOWpy.d.mts → presentation-DnczfOWz.d.mts} +33 -1
- package/dist/{presentation-BWchOWpy.d.ts → presentation-DnczfOWz.d.ts} +33 -1
- package/dist/{text-operations-DTlmk6ap.d.ts → text-operations-BpaAJ5gE.d.ts} +1 -1
- package/dist/{text-operations-Dld03ITU.d.mts → text-operations-Q4Ckgnu_.d.mts} +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1579,8 +1579,8 @@ var DEFAULT_COLORS = {
|
|
|
1579
1579
|
};
|
|
1580
1580
|
var DEFAULT_MAJOR_FONT = "Calibri Light";
|
|
1581
1581
|
var DEFAULT_MINOR_FONT = "Calibri";
|
|
1582
|
-
function hexToRgb(
|
|
1583
|
-
return
|
|
1582
|
+
function hexToRgb(hex8) {
|
|
1583
|
+
return hex8.replace(/^#/, "").toUpperCase();
|
|
1584
1584
|
}
|
|
1585
1585
|
function isoNow() {
|
|
1586
1586
|
return (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d+Z$/, "Z");
|
|
@@ -4253,8 +4253,8 @@ var PptxColorTransformCodec = class {
|
|
|
4253
4253
|
clampUnitInterval(value) {
|
|
4254
4254
|
return Math.min(1, Math.max(0, value));
|
|
4255
4255
|
}
|
|
4256
|
-
hexToRgb(
|
|
4257
|
-
const normalized =
|
|
4256
|
+
hexToRgb(hex8) {
|
|
4257
|
+
const normalized = hex8.replace("#", "");
|
|
4258
4258
|
if (!/^[0-9a-fA-F]{6}$/.test(normalized)) {
|
|
4259
4259
|
return void 0;
|
|
4260
4260
|
}
|
|
@@ -5764,7 +5764,7 @@ var PptxColorStyleCodec = class {
|
|
|
5764
5764
|
parseColor: (colorNode, placeholderColor) => this.parseColor(colorNode, placeholderColor),
|
|
5765
5765
|
extractColorOpacity: (colorNode) => this.extractColorOpacity(colorNode),
|
|
5766
5766
|
clampUnitInterval: (value) => this.clampUnitInterval(value),
|
|
5767
|
-
hexToRgb: (
|
|
5767
|
+
hexToRgb: (hex8) => this.hexToRgb(hex8),
|
|
5768
5768
|
rgbToHex: (r, g, b) => this.rgbToHex(r, g, b)
|
|
5769
5769
|
});
|
|
5770
5770
|
this.shapeEffectXmlCodec = new PptxShapeEffectXmlCodec({
|
|
@@ -5787,8 +5787,8 @@ var PptxColorStyleCodec = class {
|
|
|
5787
5787
|
clampUnitInterval(value) {
|
|
5788
5788
|
return this.colorTransformCodec.clampUnitInterval(value);
|
|
5789
5789
|
}
|
|
5790
|
-
hexToRgb(
|
|
5791
|
-
return this.colorTransformCodec.hexToRgb(
|
|
5790
|
+
hexToRgb(hex8) {
|
|
5791
|
+
return this.colorTransformCodec.hexToRgb(hex8);
|
|
5792
5792
|
}
|
|
5793
5793
|
rgbToHex(r, g, b) {
|
|
5794
5794
|
return this.colorTransformCodec.rgbToHex(r, g, b);
|
|
@@ -5959,9 +5959,9 @@ function normalizeHex(value) {
|
|
|
5959
5959
|
if (raw.length === 0) {
|
|
5960
5960
|
return "";
|
|
5961
5961
|
}
|
|
5962
|
-
const
|
|
5963
|
-
if (/^[0-9a-fA-F]{6}$/.test(
|
|
5964
|
-
return
|
|
5962
|
+
const hex8 = raw.replace(/^#/, "");
|
|
5963
|
+
if (/^[0-9a-fA-F]{6}$/.test(hex8)) {
|
|
5964
|
+
return hex8.toUpperCase();
|
|
5965
5965
|
}
|
|
5966
5966
|
return raw.toLowerCase();
|
|
5967
5967
|
}
|
|
@@ -5971,8 +5971,8 @@ function colorsEqual(left, right) {
|
|
|
5971
5971
|
}
|
|
5972
5972
|
return normalizeHex(left) === normalizeHex(right);
|
|
5973
5973
|
}
|
|
5974
|
-
function buildSrgbColorChoice(
|
|
5975
|
-
const normalized = String(
|
|
5974
|
+
function buildSrgbColorChoice(hex8, opacity) {
|
|
5975
|
+
const normalized = String(hex8 || "").replace(/^#/, "");
|
|
5976
5976
|
const srgb = { "@_val": normalized };
|
|
5977
5977
|
if (typeof opacity === "number" && Number.isFinite(opacity) && opacity >= 0 && opacity < 1) {
|
|
5978
5978
|
const alphaPct = Math.round(Math.max(0, Math.min(1, opacity)) * 1e5);
|
|
@@ -9484,9 +9484,9 @@ function decodeKeyframeValue(valNode) {
|
|
|
9484
9484
|
if (strVal && strVal["@_val"] !== void 0) {
|
|
9485
9485
|
return { value: String(strVal["@_val"]), valueType: "str" };
|
|
9486
9486
|
}
|
|
9487
|
-
const
|
|
9488
|
-
if (
|
|
9489
|
-
const raw =
|
|
9487
|
+
const boolVal3 = valNode["p:boolVal"];
|
|
9488
|
+
if (boolVal3 && boolVal3["@_val"] !== void 0) {
|
|
9489
|
+
const raw = boolVal3["@_val"];
|
|
9490
9490
|
const value = raw === "1" || raw === "true";
|
|
9491
9491
|
return { value, valueType: "bool" };
|
|
9492
9492
|
}
|
|
@@ -12005,7 +12005,11 @@ var PptxSaveConstantsFactory = class {
|
|
|
12005
12005
|
slideAudioRelationshipType: "http://purl.oclc.org/ooxml/officeDocument/relationships/audio",
|
|
12006
12006
|
slideCommentRelationshipType: "http://purl.oclc.org/ooxml/officeDocument/relationships/comments",
|
|
12007
12007
|
slideNotesRelationshipType: "http://purl.oclc.org/ooxml/officeDocument/relationships/notesSlide",
|
|
12008
|
-
|
|
12008
|
+
// The OPC relationships namespace (the xmlns of .rels parts) is
|
|
12009
|
+
// conformance-independent: real Strict packages keep the canonical
|
|
12010
|
+
// schemas.openxmlformats.org form. Only the relationship *type*
|
|
12011
|
+
// URIs above switch to Strict. See strict-namespace-map.ts.
|
|
12012
|
+
relationshipsNamespace: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
12009
12013
|
// Content types are NOT namespace-dependent; they stay the same
|
|
12010
12014
|
// in both Strict and Transitional conformance.
|
|
12011
12015
|
slideContentType: "application/vnd.openxmlformats-officedocument.presentationml.slide+xml",
|
|
@@ -12728,13 +12732,13 @@ function generateFontGuid() {
|
|
|
12728
12732
|
bytes[i] = Math.floor(Math.random() * 256);
|
|
12729
12733
|
}
|
|
12730
12734
|
}
|
|
12731
|
-
const
|
|
12735
|
+
const hex8 = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0").toUpperCase()).join("");
|
|
12732
12736
|
return [
|
|
12733
|
-
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
|
|
12737
|
+
hex8.substring(0, 8),
|
|
12738
|
+
hex8.substring(8, 12),
|
|
12739
|
+
hex8.substring(12, 16),
|
|
12740
|
+
hex8.substring(16, 20),
|
|
12741
|
+
hex8.substring(20, 32)
|
|
12738
12742
|
].join("-");
|
|
12739
12743
|
}
|
|
12740
12744
|
function detectFontFormat(data) {
|
|
@@ -13055,7 +13059,8 @@ function parseSeriesDataPoints(seriesNode, xmlLookup, colorParser) {
|
|
|
13055
13059
|
}).filter((dp) => dp !== void 0);
|
|
13056
13060
|
}
|
|
13057
13061
|
function parseSeriesDataLabels(seriesNode, xmlLookup) {
|
|
13058
|
-
const
|
|
13062
|
+
const dLblsNode = xmlLookup.getChildByLocalName(seriesNode, "dLbls");
|
|
13063
|
+
const dLblNodes = dLblsNode ? xmlLookup.getChildrenArrayByLocalName(dLblsNode, "dLbl") : xmlLookup.getChildrenArrayByLocalName(seriesNode, "dLbl");
|
|
13059
13064
|
if (dLblNodes.length === 0) {
|
|
13060
13065
|
return [];
|
|
13061
13066
|
}
|
|
@@ -13065,6 +13070,10 @@ function parseSeriesDataLabels(seriesNode, xmlLookup) {
|
|
|
13065
13070
|
if (idx === void 0) {
|
|
13066
13071
|
return void 0;
|
|
13067
13072
|
}
|
|
13073
|
+
const deleteNode = xmlLookup.getChildByLocalName(node, "delete");
|
|
13074
|
+
if (deleteNode?.["@_val"] === "1" || deleteNode?.["@_val"] === "true") {
|
|
13075
|
+
return { idx };
|
|
13076
|
+
}
|
|
13068
13077
|
const result = { idx };
|
|
13069
13078
|
const boolFields = [
|
|
13070
13079
|
["showVal", "showVal"],
|
|
@@ -13412,6 +13421,29 @@ function collectAxisTextValues(node, results) {
|
|
|
13412
13421
|
}
|
|
13413
13422
|
}
|
|
13414
13423
|
|
|
13424
|
+
// src/core/utils/chart-container-type-map.ts
|
|
13425
|
+
var CONTAINER_LOCAL_NAME_TO_TYPE = {
|
|
13426
|
+
barChart: "bar",
|
|
13427
|
+
bar3DChart: "bar3D",
|
|
13428
|
+
lineChart: "line",
|
|
13429
|
+
line3DChart: "line3D",
|
|
13430
|
+
pieChart: "pie",
|
|
13431
|
+
pie3DChart: "pie3D",
|
|
13432
|
+
ofPieChart: "ofPie",
|
|
13433
|
+
doughnutChart: "doughnut",
|
|
13434
|
+
areaChart: "area",
|
|
13435
|
+
area3DChart: "area3D",
|
|
13436
|
+
scatterChart: "scatter",
|
|
13437
|
+
bubbleChart: "bubble",
|
|
13438
|
+
radarChart: "radar",
|
|
13439
|
+
stockChart: "stock",
|
|
13440
|
+
surfaceChart: "surface",
|
|
13441
|
+
surface3DChart: "surface"
|
|
13442
|
+
};
|
|
13443
|
+
function chartContainerLocalNameToType(localName) {
|
|
13444
|
+
return CONTAINER_LOCAL_NAME_TO_TYPE[localName];
|
|
13445
|
+
}
|
|
13446
|
+
|
|
13415
13447
|
// src/core/utils/chart-cx-parser.ts
|
|
13416
13448
|
function extractCxSeriesColor(ser, xmlLookup) {
|
|
13417
13449
|
const spPr = xmlLookup.getChildByLocalName(ser, "spPr");
|
|
@@ -15167,10 +15199,10 @@ function applyBackgroundColorToCSld(cSld, backgroundColor) {
|
|
|
15167
15199
|
delete cSld["p:bg"];
|
|
15168
15200
|
return;
|
|
15169
15201
|
}
|
|
15170
|
-
const
|
|
15202
|
+
const hex8 = backgroundColor.replace(/^#/, "").toUpperCase();
|
|
15171
15203
|
cSld["p:bg"] = {
|
|
15172
15204
|
"p:bgPr": {
|
|
15173
|
-
"a:solidFill": { "a:srgbClr": { "@_val":
|
|
15205
|
+
"a:solidFill": { "a:srgbClr": { "@_val": hex8 } },
|
|
15174
15206
|
"a:effectLst": {}
|
|
15175
15207
|
}
|
|
15176
15208
|
};
|
|
@@ -15793,8 +15825,8 @@ function accentColor(index, themeColorMap) {
|
|
|
15793
15825
|
}
|
|
15794
15826
|
return DEFAULT_ACCENT_COLORS[index % DEFAULT_ACCENT_COLORS.length];
|
|
15795
15827
|
}
|
|
15796
|
-
function lighten(
|
|
15797
|
-
const parsed =
|
|
15828
|
+
function lighten(hex8, amount) {
|
|
15829
|
+
const parsed = hex8.replace("#", "");
|
|
15798
15830
|
const r = parseInt(parsed.substring(0, 2), 16);
|
|
15799
15831
|
const g = parseInt(parsed.substring(2, 4), 16);
|
|
15800
15832
|
const b = parseInt(parsed.substring(4, 6), 16);
|
|
@@ -20177,26 +20209,27 @@ var NAMESPACE_PAIRS = [
|
|
|
20177
20209
|
"http://purl.oclc.org/ooxml/officeDocument/docPropsVTypes",
|
|
20178
20210
|
"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
|
|
20179
20211
|
],
|
|
20180
|
-
// --
|
|
20212
|
+
// -- OfficeDocument document relationship --
|
|
20213
|
+
// (Other OPC-defined relationship types - package/relationships,
|
|
20214
|
+
// core-properties, digital-signature - are conformance-independent and
|
|
20215
|
+
// intentionally omitted; see the module header.)
|
|
20181
20216
|
[
|
|
20182
20217
|
"http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument",
|
|
20183
20218
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
|
|
20184
20219
|
],
|
|
20220
|
+
// -- Schema Library --
|
|
20185
20221
|
[
|
|
20186
|
-
"http://purl.oclc.org/ooxml/
|
|
20187
|
-
"http://schemas.openxmlformats.org/
|
|
20222
|
+
"http://purl.oclc.org/ooxml/schemaLibrary/main",
|
|
20223
|
+
"http://schemas.openxmlformats.org/schemaLibrary/2006/main"
|
|
20188
20224
|
],
|
|
20225
|
+
// -- Content-type descriptions (note the distinct transitional host) --
|
|
20189
20226
|
[
|
|
20190
|
-
"http://purl.oclc.org/ooxml/
|
|
20191
|
-
"http://
|
|
20227
|
+
"http://purl.oclc.org/ooxml/descriptions/base",
|
|
20228
|
+
"http://descriptions.openxmlformats.org/description/base"
|
|
20192
20229
|
],
|
|
20193
20230
|
[
|
|
20194
|
-
"http://purl.oclc.org/ooxml/
|
|
20195
|
-
"http://
|
|
20196
|
-
],
|
|
20197
|
-
[
|
|
20198
|
-
"http://purl.oclc.org/ooxml/package/relationships/digital-signature/signature",
|
|
20199
|
-
"http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature"
|
|
20231
|
+
"http://purl.oclc.org/ooxml/descriptions/full",
|
|
20232
|
+
"http://descriptions.openxmlformats.org/description/full"
|
|
20200
20233
|
],
|
|
20201
20234
|
// -- SpreadsheetML (for embedded charts / workbooks) --
|
|
20202
20235
|
[
|
|
@@ -20207,11 +20240,6 @@ var NAMESPACE_PAIRS = [
|
|
|
20207
20240
|
[
|
|
20208
20241
|
"http://purl.oclc.org/ooxml/wordprocessingml/main",
|
|
20209
20242
|
"http://schemas.openxmlformats.org/wordprocessingml/2006/main"
|
|
20210
|
-
],
|
|
20211
|
-
// -- Markup Compatibility --
|
|
20212
|
-
[
|
|
20213
|
-
"http://purl.oclc.org/ooxml/markup-compatibility/2006",
|
|
20214
|
-
"http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
20215
20243
|
]
|
|
20216
20244
|
];
|
|
20217
20245
|
var STRICT_TO_TRANSITIONAL_NS = new Map(NAMESPACE_PAIRS);
|
|
@@ -20225,7 +20253,8 @@ var ALGORITHMIC_FAMILIES = /* @__PURE__ */ new Set([
|
|
|
20225
20253
|
"drawingml",
|
|
20226
20254
|
"spreadsheetml",
|
|
20227
20255
|
"wordprocessingml",
|
|
20228
|
-
"officeDocument"
|
|
20256
|
+
"officeDocument",
|
|
20257
|
+
"schemaLibrary"
|
|
20229
20258
|
]);
|
|
20230
20259
|
function deriveTransitionalUri(uri) {
|
|
20231
20260
|
if (!uri.startsWith(STRICT_BASE)) {
|
|
@@ -21412,11 +21441,11 @@ async function repairPptx(buffer) {
|
|
|
21412
21441
|
}
|
|
21413
21442
|
|
|
21414
21443
|
// src/core/utils/theme-switching.ts
|
|
21415
|
-
function normalizeHex2(
|
|
21416
|
-
if (!
|
|
21444
|
+
function normalizeHex2(hex8) {
|
|
21445
|
+
if (!hex8) {
|
|
21417
21446
|
return "";
|
|
21418
21447
|
}
|
|
21419
|
-
return
|
|
21448
|
+
return hex8.replace(/^#/, "").toUpperCase().slice(0, 6);
|
|
21420
21449
|
}
|
|
21421
21450
|
function buildColorRemapTable(oldColorMap, newColorMap) {
|
|
21422
21451
|
const remap = /* @__PURE__ */ new Map();
|
|
@@ -21610,8 +21639,8 @@ function applyThemeToData(data, newColorScheme, newFontScheme, themeName) {
|
|
|
21610
21639
|
}
|
|
21611
21640
|
|
|
21612
21641
|
// src/core/utils/accessibility-checker.ts
|
|
21613
|
-
function parseHexColor(
|
|
21614
|
-
const cleaned =
|
|
21642
|
+
function parseHexColor(hex8) {
|
|
21643
|
+
const cleaned = hex8.replace(/^#/, "");
|
|
21615
21644
|
if (!/^[\da-fA-F]+$/.test(cleaned)) {
|
|
21616
21645
|
return null;
|
|
21617
21646
|
}
|
|
@@ -24911,6 +24940,37 @@ function ensureArray6(v) {
|
|
|
24911
24940
|
}
|
|
24912
24941
|
return Array.isArray(v) ? v : [v];
|
|
24913
24942
|
}
|
|
24943
|
+
function consolidateComboContainersInXml(plotArea, getLocalName) {
|
|
24944
|
+
const containerKeys = Object.keys(plotArea).filter((k) => getLocalName(k).endsWith("Chart"));
|
|
24945
|
+
if (containerKeys.length === 0) {
|
|
24946
|
+
return void 0;
|
|
24947
|
+
}
|
|
24948
|
+
const primaryKey = containerKeys[0];
|
|
24949
|
+
if (containerKeys.length === 1) {
|
|
24950
|
+
return primaryKey;
|
|
24951
|
+
}
|
|
24952
|
+
const primary = plotArea[primaryKey];
|
|
24953
|
+
if (!primary) {
|
|
24954
|
+
return primaryKey;
|
|
24955
|
+
}
|
|
24956
|
+
const serKey = findKey4(primary, "ser", getLocalName) ?? "c:ser";
|
|
24957
|
+
const allSeries = [];
|
|
24958
|
+
for (const key of containerKeys) {
|
|
24959
|
+
const container = plotArea[key];
|
|
24960
|
+
if (!container) {
|
|
24961
|
+
continue;
|
|
24962
|
+
}
|
|
24963
|
+
const containerSerKey = findKey4(container, "ser", getLocalName);
|
|
24964
|
+
if (containerSerKey) {
|
|
24965
|
+
allSeries.push(...ensureArray6(container[containerSerKey]));
|
|
24966
|
+
}
|
|
24967
|
+
if (key !== primaryKey) {
|
|
24968
|
+
delete plotArea[key];
|
|
24969
|
+
}
|
|
24970
|
+
}
|
|
24971
|
+
primary[serKey] = allSeries.length === 1 ? allSeries[0] : allSeries;
|
|
24972
|
+
return primaryKey;
|
|
24973
|
+
}
|
|
24914
24974
|
function effectiveContainers(series, chartLevelType) {
|
|
24915
24975
|
return series.map((s) => {
|
|
24916
24976
|
const t = s.seriesChartType ?? chartLevelType;
|
|
@@ -25362,6 +25422,146 @@ function applySeriesMarkerToXml(seriesNode, marker, getLocalName) {
|
|
|
25362
25422
|
insertOrdered2(seriesNode, "c:marker", built, getLocalName);
|
|
25363
25423
|
}
|
|
25364
25424
|
|
|
25425
|
+
// src/core/utils/chart-series-datalabel-serializer.ts
|
|
25426
|
+
function findKey9(obj, local, getLocalName) {
|
|
25427
|
+
return Object.keys(obj).find((k) => getLocalName(k) === local);
|
|
25428
|
+
}
|
|
25429
|
+
function boolVal2(on) {
|
|
25430
|
+
return { "@_val": on ? "1" : "0" };
|
|
25431
|
+
}
|
|
25432
|
+
var AFTER_DLBLS = /* @__PURE__ */ new Set(["cat", "val", "xVal", "yVal", "bubbleSize", "smooth", "extLst"]);
|
|
25433
|
+
var DLBLS_GROUP_ORDER = [
|
|
25434
|
+
"numFmt",
|
|
25435
|
+
"spPr",
|
|
25436
|
+
"txPr",
|
|
25437
|
+
"dLblPos",
|
|
25438
|
+
"showLegendKey",
|
|
25439
|
+
"showVal",
|
|
25440
|
+
"showCatName",
|
|
25441
|
+
"showSerName",
|
|
25442
|
+
"showPercent",
|
|
25443
|
+
"showBubbleSize",
|
|
25444
|
+
"separator",
|
|
25445
|
+
"showLeaderLines",
|
|
25446
|
+
"leaderLines"
|
|
25447
|
+
];
|
|
25448
|
+
function buildDLbl(existing, label, getLocalName) {
|
|
25449
|
+
const node = {};
|
|
25450
|
+
node["c:idx"] = { "@_val": String(label.idx) };
|
|
25451
|
+
const hasShow = label.showVal !== void 0 || label.showCatName !== void 0 || label.showSerName !== void 0 || label.showPercent !== void 0 || label.showLegendKey !== void 0 || label.showBubbleSize !== void 0;
|
|
25452
|
+
const hasContent = hasShow || label.position !== void 0 || label.text !== void 0;
|
|
25453
|
+
if (!hasContent) {
|
|
25454
|
+
node["c:delete"] = { "@_val": "1" };
|
|
25455
|
+
return node;
|
|
25456
|
+
}
|
|
25457
|
+
if (existing) {
|
|
25458
|
+
const layoutKey = findKey9(existing, "layout", getLocalName);
|
|
25459
|
+
if (layoutKey) {
|
|
25460
|
+
node[layoutKey] = existing[layoutKey];
|
|
25461
|
+
}
|
|
25462
|
+
}
|
|
25463
|
+
if (label.text !== void 0) {
|
|
25464
|
+
node["c:tx"] = {
|
|
25465
|
+
"c:rich": {
|
|
25466
|
+
"a:bodyPr": {},
|
|
25467
|
+
"a:lstStyle": {},
|
|
25468
|
+
"a:p": { "a:r": { "a:t": label.text } }
|
|
25469
|
+
}
|
|
25470
|
+
};
|
|
25471
|
+
} else if (existing) {
|
|
25472
|
+
const txKey = findKey9(existing, "tx", getLocalName);
|
|
25473
|
+
if (txKey) {
|
|
25474
|
+
node[txKey] = existing[txKey];
|
|
25475
|
+
}
|
|
25476
|
+
}
|
|
25477
|
+
if (existing) {
|
|
25478
|
+
for (const local of ["numFmt", "spPr", "txPr"]) {
|
|
25479
|
+
const k = findKey9(existing, local, getLocalName);
|
|
25480
|
+
if (k) {
|
|
25481
|
+
node[k] = existing[k];
|
|
25482
|
+
}
|
|
25483
|
+
}
|
|
25484
|
+
}
|
|
25485
|
+
if (label.position !== void 0) {
|
|
25486
|
+
node["c:dLblPos"] = { "@_val": label.position };
|
|
25487
|
+
}
|
|
25488
|
+
if (label.showLegendKey !== void 0) {
|
|
25489
|
+
node["c:showLegendKey"] = boolVal2(label.showLegendKey);
|
|
25490
|
+
}
|
|
25491
|
+
if (label.showVal !== void 0) {
|
|
25492
|
+
node["c:showVal"] = boolVal2(label.showVal);
|
|
25493
|
+
}
|
|
25494
|
+
if (label.showCatName !== void 0) {
|
|
25495
|
+
node["c:showCatName"] = boolVal2(label.showCatName);
|
|
25496
|
+
}
|
|
25497
|
+
if (label.showSerName !== void 0) {
|
|
25498
|
+
node["c:showSerName"] = boolVal2(label.showSerName);
|
|
25499
|
+
}
|
|
25500
|
+
if (label.showPercent !== void 0) {
|
|
25501
|
+
node["c:showPercent"] = boolVal2(label.showPercent);
|
|
25502
|
+
}
|
|
25503
|
+
if (label.showBubbleSize !== void 0) {
|
|
25504
|
+
node["c:showBubbleSize"] = boolVal2(label.showBubbleSize);
|
|
25505
|
+
}
|
|
25506
|
+
return node;
|
|
25507
|
+
}
|
|
25508
|
+
function applySeriesDataLabelsToXml(seriesNode, dataLabels, getLocalName) {
|
|
25509
|
+
const dLblsKey = findKey9(seriesNode, "dLbls", getLocalName);
|
|
25510
|
+
const labels = dataLabels ?? [];
|
|
25511
|
+
const existingByIdx = /* @__PURE__ */ new Map();
|
|
25512
|
+
let groupChildren = [];
|
|
25513
|
+
if (dLblsKey) {
|
|
25514
|
+
const dLbls = seriesNode[dLblsKey];
|
|
25515
|
+
const dLblKey = findKey9(dLbls, "dLbl", getLocalName);
|
|
25516
|
+
if (dLblKey) {
|
|
25517
|
+
const nodes = Array.isArray(dLbls[dLblKey]) ? dLbls[dLblKey] : [dLbls[dLblKey]];
|
|
25518
|
+
for (const node of nodes) {
|
|
25519
|
+
const idxKey = findKey9(node, "idx", getLocalName);
|
|
25520
|
+
const idxNode = idxKey ? node[idxKey] : void 0;
|
|
25521
|
+
const idx = idxNode ? Number.parseInt(String(idxNode["@_val"]), 10) : NaN;
|
|
25522
|
+
if (Number.isFinite(idx)) {
|
|
25523
|
+
existingByIdx.set(idx, node);
|
|
25524
|
+
}
|
|
25525
|
+
}
|
|
25526
|
+
}
|
|
25527
|
+
groupChildren = Object.keys(dLbls).filter((k) => getLocalName(k) !== "dLbl").map((k) => [k, dLbls[k]]);
|
|
25528
|
+
}
|
|
25529
|
+
if (labels.length === 0 && groupChildren.length === 0) {
|
|
25530
|
+
if (dLblsKey) {
|
|
25531
|
+
delete seriesNode[dLblsKey];
|
|
25532
|
+
}
|
|
25533
|
+
return;
|
|
25534
|
+
}
|
|
25535
|
+
const built = [...labels].sort((a, b) => a.idx - b.idx).map((label) => buildDLbl(existingByIdx.get(label.idx), label, getLocalName));
|
|
25536
|
+
const newDLbls = {};
|
|
25537
|
+
if (built.length > 0) {
|
|
25538
|
+
newDLbls["c:dLbl"] = built.length === 1 ? built[0] : built;
|
|
25539
|
+
}
|
|
25540
|
+
const ordered = [...groupChildren].sort((a, b) => {
|
|
25541
|
+
const ai = DLBLS_GROUP_ORDER.indexOf(getLocalName(a[0]));
|
|
25542
|
+
const bi = DLBLS_GROUP_ORDER.indexOf(getLocalName(b[0]));
|
|
25543
|
+
return (ai === -1 ? DLBLS_GROUP_ORDER.length : ai) - (bi === -1 ? DLBLS_GROUP_ORDER.length : bi);
|
|
25544
|
+
});
|
|
25545
|
+
for (const [k, v] of ordered) {
|
|
25546
|
+
newDLbls[k] = v;
|
|
25547
|
+
}
|
|
25548
|
+
if (dLblsKey) {
|
|
25549
|
+
seriesNode[dLblsKey] = newDLbls;
|
|
25550
|
+
return;
|
|
25551
|
+
}
|
|
25552
|
+
const keys = Object.keys(seriesNode);
|
|
25553
|
+
const beforeIdx = keys.findIndex((k) => AFTER_DLBLS.has(getLocalName(k)));
|
|
25554
|
+
const entries = keys.map((k) => [k, seriesNode[k]]);
|
|
25555
|
+
const at = beforeIdx === -1 ? entries.length : beforeIdx;
|
|
25556
|
+
entries.splice(at, 0, ["c:dLbls", newDLbls]);
|
|
25557
|
+
for (const k of keys) {
|
|
25558
|
+
delete seriesNode[k];
|
|
25559
|
+
}
|
|
25560
|
+
for (const [k, v] of entries) {
|
|
25561
|
+
seriesNode[k] = v;
|
|
25562
|
+
}
|
|
25563
|
+
}
|
|
25564
|
+
|
|
25365
25565
|
// src/core/utils/chart-trendline-serializer.ts
|
|
25366
25566
|
var TYPE_TO_OOXML = {
|
|
25367
25567
|
linear: "linear",
|
|
@@ -25371,7 +25571,7 @@ var TYPE_TO_OOXML = {
|
|
|
25371
25571
|
power: "power",
|
|
25372
25572
|
movingAvg: "movingAvg"
|
|
25373
25573
|
};
|
|
25374
|
-
function
|
|
25574
|
+
function findKey10(obj, local, getLocalName) {
|
|
25375
25575
|
return Object.keys(obj).find((k) => getLocalName(k) === local);
|
|
25376
25576
|
}
|
|
25377
25577
|
function ensureArray9(v) {
|
|
@@ -25388,10 +25588,10 @@ function buildSpPr(existing, color, getLocalName) {
|
|
|
25388
25588
|
return existing;
|
|
25389
25589
|
}
|
|
25390
25590
|
const spPr = existing ? { ...existing } : {};
|
|
25391
|
-
const lnKey =
|
|
25591
|
+
const lnKey = findKey10(spPr, "ln", getLocalName) ?? "a:ln";
|
|
25392
25592
|
const existingLn = spPr[lnKey] ?? {};
|
|
25393
|
-
const fillKey =
|
|
25394
|
-
const noFillKey =
|
|
25593
|
+
const fillKey = findKey10(existingLn, "solidFill", getLocalName) ?? "a:solidFill";
|
|
25594
|
+
const noFillKey = findKey10(existingLn, "noFill", getLocalName);
|
|
25395
25595
|
const ln = { ...existingLn };
|
|
25396
25596
|
if (noFillKey) {
|
|
25397
25597
|
delete ln[noFillKey];
|
|
@@ -25403,13 +25603,13 @@ function buildSpPr(existing, color, getLocalName) {
|
|
|
25403
25603
|
function buildTrendline(existing, t, getLocalName) {
|
|
25404
25604
|
const node = {};
|
|
25405
25605
|
if (existing) {
|
|
25406
|
-
const nameKey =
|
|
25606
|
+
const nameKey = findKey10(existing, "name", getLocalName);
|
|
25407
25607
|
if (nameKey) {
|
|
25408
25608
|
node["c:name"] = existing[nameKey];
|
|
25409
25609
|
}
|
|
25410
25610
|
}
|
|
25411
25611
|
const spPr = buildSpPr(
|
|
25412
|
-
existing ? existing[
|
|
25612
|
+
existing ? existing[findKey10(existing, "spPr", getLocalName) ?? ""] : void 0,
|
|
25413
25613
|
t.color,
|
|
25414
25614
|
getLocalName
|
|
25415
25615
|
);
|
|
@@ -25439,7 +25639,7 @@ function buildTrendline(existing, t, getLocalName) {
|
|
|
25439
25639
|
node["c:dispEq"] = { "@_val": "1" };
|
|
25440
25640
|
}
|
|
25441
25641
|
if (existing) {
|
|
25442
|
-
const lblKey =
|
|
25642
|
+
const lblKey = findKey10(existing, "trendlineLbl", getLocalName);
|
|
25443
25643
|
if (lblKey) {
|
|
25444
25644
|
node["c:trendlineLbl"] = existing[lblKey];
|
|
25445
25645
|
}
|
|
@@ -25447,7 +25647,7 @@ function buildTrendline(existing, t, getLocalName) {
|
|
|
25447
25647
|
return node;
|
|
25448
25648
|
}
|
|
25449
25649
|
function applySeriesTrendlinesToXml(seriesNode, trendlines, getLocalName) {
|
|
25450
|
-
const existingKey =
|
|
25650
|
+
const existingKey = findKey10(seriesNode, "trendline", getLocalName);
|
|
25451
25651
|
const existingNodes = existingKey ? ensureArray9(seriesNode[existingKey]) : [];
|
|
25452
25652
|
const built = trendlines.map((t, i) => buildTrendline(existingNodes[i], t, getLocalName));
|
|
25453
25653
|
if (existingKey) {
|
|
@@ -28657,8 +28857,8 @@ function buildTextRunEffectListXml(style) {
|
|
|
28657
28857
|
}
|
|
28658
28858
|
return effectLst;
|
|
28659
28859
|
}
|
|
28660
|
-
function buildShadowColorNode(
|
|
28661
|
-
const clr =
|
|
28860
|
+
function buildShadowColorNode(hex8, opacity) {
|
|
28861
|
+
const clr = hex8.replace("#", "");
|
|
28662
28862
|
const alpha = typeof opacity === "number" ? Math.round(opacity * 1e5) : void 0;
|
|
28663
28863
|
return {
|
|
28664
28864
|
"@_val": clr,
|
|
@@ -31901,8 +32101,8 @@ function updateCellTextStyleInRawXml(element, rowIndex, colIndex, styleUpdates)
|
|
|
31901
32101
|
}
|
|
31902
32102
|
}
|
|
31903
32103
|
if ("color" in styleUpdates && typeof styleUpdates.color === "string") {
|
|
31904
|
-
const
|
|
31905
|
-
rPr["a:solidFill"] = { "a:srgbClr": { "@_val":
|
|
32104
|
+
const hex8 = styleUpdates.color.replace("#", "");
|
|
32105
|
+
rPr["a:solidFill"] = { "a:srgbClr": { "@_val": hex8 } };
|
|
31906
32106
|
}
|
|
31907
32107
|
if ("align" in styleUpdates) {
|
|
31908
32108
|
const pPr = paragraph["a:pPr"] ?? {};
|
|
@@ -31942,8 +32142,8 @@ function updateCellTextStyleInRawXml(element, rowIndex, colIndex, styleUpdates)
|
|
|
31942
32142
|
}
|
|
31943
32143
|
}
|
|
31944
32144
|
if ("color" in styleUpdates && typeof styleUpdates.color === "string") {
|
|
31945
|
-
const
|
|
31946
|
-
endRPr["a:solidFill"] = { "a:srgbClr": { "@_val":
|
|
32145
|
+
const hex8 = styleUpdates.color.replace("#", "");
|
|
32146
|
+
endRPr["a:solidFill"] = { "a:srgbClr": { "@_val": hex8 } };
|
|
31947
32147
|
}
|
|
31948
32148
|
}
|
|
31949
32149
|
}
|
|
@@ -32222,6 +32422,10 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
32222
32422
|
if (!plotArea) {
|
|
32223
32423
|
continue;
|
|
32224
32424
|
}
|
|
32425
|
+
consolidateComboContainersInXml(
|
|
32426
|
+
plotArea,
|
|
32427
|
+
(key) => this.compatibilityService.getXmlLocalName(key)
|
|
32428
|
+
);
|
|
32225
32429
|
let chartTypeKey = Object.keys(plotArea).find(
|
|
32226
32430
|
(key) => this.compatibilityService.getXmlLocalName(key).endsWith("Chart")
|
|
32227
32431
|
);
|
|
@@ -32284,19 +32488,19 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
32284
32488
|
this.updateChartCacheValues(valNode, true, seriesData.values.map(String));
|
|
32285
32489
|
}
|
|
32286
32490
|
if (seriesData.color) {
|
|
32287
|
-
const
|
|
32491
|
+
const hex8 = seriesData.color.replace("#", "");
|
|
32288
32492
|
const spPr = this.xmlLookupService.getChildByLocalName(seriesNode, "spPr");
|
|
32289
32493
|
if (spPr) {
|
|
32290
32494
|
const solidFillKey = Object.keys(spPr).find(
|
|
32291
32495
|
(k) => this.compatibilityService.getXmlLocalName(k) === "solidFill"
|
|
32292
32496
|
) ?? "a:solidFill";
|
|
32293
|
-
spPr[solidFillKey] = { "a:srgbClr": { "@_val":
|
|
32497
|
+
spPr[solidFillKey] = { "a:srgbClr": { "@_val": hex8 } };
|
|
32294
32498
|
} else {
|
|
32295
32499
|
const spPrKey = Object.keys(seriesNode).find(
|
|
32296
32500
|
(k) => this.compatibilityService.getXmlLocalName(k) === "spPr"
|
|
32297
32501
|
) ?? "c:spPr";
|
|
32298
32502
|
seriesNode[spPrKey] = {
|
|
32299
|
-
"a:solidFill": { "a:srgbClr": { "@_val":
|
|
32503
|
+
"a:solidFill": { "a:srgbClr": { "@_val": hex8 } }
|
|
32300
32504
|
};
|
|
32301
32505
|
}
|
|
32302
32506
|
}
|
|
@@ -32328,6 +32532,13 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
32328
32532
|
(key) => this.compatibilityService.getXmlLocalName(key)
|
|
32329
32533
|
);
|
|
32330
32534
|
}
|
|
32535
|
+
if (seriesData.dataLabels !== void 0) {
|
|
32536
|
+
applySeriesDataLabelsToXml(
|
|
32537
|
+
seriesNode,
|
|
32538
|
+
seriesData.dataLabels,
|
|
32539
|
+
(key) => this.compatibilityService.getXmlLocalName(key)
|
|
32540
|
+
);
|
|
32541
|
+
}
|
|
32331
32542
|
}
|
|
32332
32543
|
if (chartData.series.length > seriesNodes.length) {
|
|
32333
32544
|
const templateSeries = seriesNodes.length > 0 ? seriesNodes[seriesNodes.length - 1] : void 0;
|
|
@@ -32857,36 +33068,131 @@ var PptxHandlerRuntime23 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
32857
33068
|
}
|
|
32858
33069
|
};
|
|
32859
33070
|
|
|
32860
|
-
// src/core/core/runtime/smartart-
|
|
33071
|
+
// src/core/core/runtime/smartart-colors-builder.ts
|
|
32861
33072
|
function asObject(value) {
|
|
33073
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
33074
|
+
}
|
|
33075
|
+
function toArray(value) {
|
|
33076
|
+
if (Array.isArray(value)) {
|
|
33077
|
+
return value.filter((entry) => Boolean(asObject(entry)));
|
|
33078
|
+
}
|
|
33079
|
+
const obj = asObject(value);
|
|
33080
|
+
return obj ? [obj] : [];
|
|
33081
|
+
}
|
|
33082
|
+
function findKey11(obj, name, getLocalName) {
|
|
33083
|
+
return Object.keys(obj).find((k) => getLocalName(k) === name);
|
|
33084
|
+
}
|
|
33085
|
+
function hex7(value) {
|
|
33086
|
+
return value.replace("#", "");
|
|
33087
|
+
}
|
|
33088
|
+
var COLOR_LOCAL_NAMES = /* @__PURE__ */ new Set([
|
|
33089
|
+
"srgbClr",
|
|
33090
|
+
"schemeClr",
|
|
33091
|
+
"sysClr",
|
|
33092
|
+
"prstClr",
|
|
33093
|
+
"scrgbClr",
|
|
33094
|
+
"hslClr"
|
|
33095
|
+
]);
|
|
33096
|
+
function applyColorToList(list, value, getLocalName) {
|
|
33097
|
+
const colorKey = Object.keys(list).find((k) => COLOR_LOCAL_NAMES.has(getLocalName(k)));
|
|
33098
|
+
const srgb = { "@_val": hex7(value) };
|
|
33099
|
+
if (!colorKey) {
|
|
33100
|
+
list["a:srgbClr"] = srgb;
|
|
33101
|
+
return;
|
|
33102
|
+
}
|
|
33103
|
+
const existing = list[colorKey];
|
|
33104
|
+
const rest = Array.isArray(existing) ? existing.slice(1).filter((entry) => Boolean(asObject(entry))) : [];
|
|
33105
|
+
if (colorKey !== "a:srgbClr") {
|
|
33106
|
+
delete list[colorKey];
|
|
33107
|
+
}
|
|
33108
|
+
list["a:srgbClr"] = rest.length > 0 ? [srgb, ...rest] : srgb;
|
|
33109
|
+
}
|
|
33110
|
+
function applySmartArtColorTransform(colorsDef, transform, getLocalName) {
|
|
33111
|
+
if (!transform) {
|
|
33112
|
+
return false;
|
|
33113
|
+
}
|
|
33114
|
+
let mutated = false;
|
|
33115
|
+
if (transform.name && transform.name.length > 0) {
|
|
33116
|
+
if (colorsDef["@_title"] !== transform.name) {
|
|
33117
|
+
colorsDef["@_title"] = transform.name;
|
|
33118
|
+
mutated = true;
|
|
33119
|
+
}
|
|
33120
|
+
}
|
|
33121
|
+
const styleLblKey = findKey11(colorsDef, "styleLbl", getLocalName);
|
|
33122
|
+
if (!styleLblKey) {
|
|
33123
|
+
return mutated;
|
|
33124
|
+
}
|
|
33125
|
+
const labels = toArray(colorsDef[styleLblKey]);
|
|
33126
|
+
if (labels.length === 0) {
|
|
33127
|
+
return mutated;
|
|
33128
|
+
}
|
|
33129
|
+
let fillIndex = 0;
|
|
33130
|
+
let lineIndex = 0;
|
|
33131
|
+
for (const label of labels) {
|
|
33132
|
+
const fillKey = findKey11(label, "fillClrLst", getLocalName);
|
|
33133
|
+
if (fillKey) {
|
|
33134
|
+
const value = transform.fillColors[fillIndex++];
|
|
33135
|
+
const list = asObject(label[fillKey]);
|
|
33136
|
+
if (list && value) {
|
|
33137
|
+
applyColorToList(list, value, getLocalName);
|
|
33138
|
+
mutated = true;
|
|
33139
|
+
}
|
|
33140
|
+
}
|
|
33141
|
+
const lineKey = findKey11(label, "linClrLst", getLocalName);
|
|
33142
|
+
if (lineKey) {
|
|
33143
|
+
const value = transform.lineColors[lineIndex++];
|
|
33144
|
+
const list = asObject(label[lineKey]);
|
|
33145
|
+
if (list && value) {
|
|
33146
|
+
applyColorToList(list, value, getLocalName);
|
|
33147
|
+
mutated = true;
|
|
33148
|
+
}
|
|
33149
|
+
}
|
|
33150
|
+
}
|
|
33151
|
+
return mutated;
|
|
33152
|
+
}
|
|
33153
|
+
|
|
33154
|
+
// src/core/core/runtime/smartart-quickstyle-builder.ts
|
|
33155
|
+
function applySmartArtQuickStyle(styleDef, quickStyle) {
|
|
33156
|
+
if (!quickStyle || !quickStyle.name || quickStyle.name.length === 0) {
|
|
33157
|
+
return false;
|
|
33158
|
+
}
|
|
33159
|
+
if (styleDef["@_title"] === quickStyle.name) {
|
|
33160
|
+
return false;
|
|
33161
|
+
}
|
|
33162
|
+
styleDef["@_title"] = quickStyle.name;
|
|
33163
|
+
return true;
|
|
33164
|
+
}
|
|
33165
|
+
|
|
33166
|
+
// src/core/core/runtime/smartart-save-chrome.ts
|
|
33167
|
+
function asObject2(value) {
|
|
32862
33168
|
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
32863
33169
|
}
|
|
32864
33170
|
function applySmartArtChrome(dataModel, chrome, getLocalName) {
|
|
32865
33171
|
if (!chrome || !chrome.backgroundColor && !chrome.outlineColor && (chrome.outlineWidth === null || chrome.outlineWidth === void 0)) {
|
|
32866
33172
|
return;
|
|
32867
33173
|
}
|
|
32868
|
-
const
|
|
33174
|
+
const findKey12 = (obj, name) => Object.keys(obj).find((k) => getLocalName(k) === name);
|
|
32869
33175
|
if (chrome.backgroundColor) {
|
|
32870
|
-
const
|
|
32871
|
-
const bgKey =
|
|
32872
|
-
const bg =
|
|
32873
|
-
const fillKey =
|
|
32874
|
-
bg[fillKey] = { "a:srgbClr": { "@_val":
|
|
33176
|
+
const hex8 = chrome.backgroundColor.replace("#", "");
|
|
33177
|
+
const bgKey = findKey12(dataModel, "bg") ?? "dgm:bg";
|
|
33178
|
+
const bg = asObject2(dataModel[bgKey]);
|
|
33179
|
+
const fillKey = findKey12(bg, "solidFill") ?? "a:solidFill";
|
|
33180
|
+
bg[fillKey] = { "a:srgbClr": { "@_val": hex8 } };
|
|
32875
33181
|
dataModel[bgKey] = bg;
|
|
32876
33182
|
}
|
|
32877
33183
|
const hasOutlineWidth = chrome.outlineWidth !== null && chrome.outlineWidth !== void 0;
|
|
32878
33184
|
if (chrome.outlineColor || hasOutlineWidth) {
|
|
32879
|
-
const wholeKey =
|
|
32880
|
-
const whole =
|
|
32881
|
-
const lnKey =
|
|
32882
|
-
const ln =
|
|
33185
|
+
const wholeKey = findKey12(dataModel, "whole") ?? "dgm:whole";
|
|
33186
|
+
const whole = asObject2(dataModel[wholeKey]);
|
|
33187
|
+
const lnKey = findKey12(whole, "ln") ?? "a:ln";
|
|
33188
|
+
const ln = asObject2(whole[lnKey]);
|
|
32883
33189
|
if (hasOutlineWidth) {
|
|
32884
33190
|
ln["@_w"] = String(Math.round(chrome.outlineWidth * 12700));
|
|
32885
33191
|
}
|
|
32886
33192
|
if (chrome.outlineColor) {
|
|
32887
|
-
const
|
|
32888
|
-
const fillKey =
|
|
32889
|
-
ln[fillKey] = { "a:srgbClr": { "@_val":
|
|
33193
|
+
const hex8 = chrome.outlineColor.replace("#", "");
|
|
33194
|
+
const fillKey = findKey12(ln, "solidFill") ?? "a:solidFill";
|
|
33195
|
+
ln[fillKey] = { "a:srgbClr": { "@_val": hex8 } };
|
|
32890
33196
|
}
|
|
32891
33197
|
whole[lnKey] = ln;
|
|
32892
33198
|
dataModel[wholeKey] = whole;
|
|
@@ -32921,10 +33227,56 @@ function buildPointText(text) {
|
|
|
32921
33227
|
}
|
|
32922
33228
|
};
|
|
32923
33229
|
}
|
|
32924
|
-
function
|
|
33230
|
+
function joinRunText(runs) {
|
|
33231
|
+
return (runs ?? []).map((run) => run.text).join("");
|
|
33232
|
+
}
|
|
33233
|
+
function buildMultiRunParagraph(runs) {
|
|
33234
|
+
const runObjects = runs.map((run) => {
|
|
33235
|
+
const rObj = {};
|
|
33236
|
+
rObj["a:rPr"] = run.rPr ?? { "@_lang": "en-US", "@_dirty": "0" };
|
|
33237
|
+
rObj["a:t"] = run.text;
|
|
33238
|
+
return rObj;
|
|
33239
|
+
});
|
|
33240
|
+
return { "a:r": runObjects.length === 1 ? runObjects[0] : runObjects };
|
|
33241
|
+
}
|
|
33242
|
+
function shouldRebuildFromRuns(node) {
|
|
33243
|
+
const runs = node.runs;
|
|
33244
|
+
if (!runs || runs.length === 0) {
|
|
33245
|
+
return false;
|
|
33246
|
+
}
|
|
33247
|
+
const hasRichRun = runs.length > 1 || Boolean(runs[0]?.rPr);
|
|
33248
|
+
if (!hasRichRun) {
|
|
33249
|
+
return false;
|
|
33250
|
+
}
|
|
33251
|
+
return joinRunText(runs) === node.text;
|
|
33252
|
+
}
|
|
33253
|
+
function buildPointFromRuns(runs) {
|
|
33254
|
+
return {
|
|
33255
|
+
"a:bodyPr": {},
|
|
33256
|
+
"a:lstStyle": {},
|
|
33257
|
+
"a:p": buildMultiRunParagraph(runs)
|
|
33258
|
+
};
|
|
33259
|
+
}
|
|
33260
|
+
function applyRunsToExistingBody(pt2, tKey, runs) {
|
|
33261
|
+
const body = pt2[tKey];
|
|
33262
|
+
if (!body || typeof body !== "object" || Array.isArray(body)) {
|
|
33263
|
+
pt2[tKey] = buildPointFromRuns(runs);
|
|
33264
|
+
return;
|
|
33265
|
+
}
|
|
33266
|
+
const bodyObj = body;
|
|
33267
|
+
const pKey = Object.keys(bodyObj).find((k) => stripPrefix(k) === "p");
|
|
33268
|
+
bodyObj[pKey ?? "a:p"] = buildMultiRunParagraph(runs);
|
|
33269
|
+
}
|
|
33270
|
+
function applyTextToExistingPoint(pt2, node) {
|
|
33271
|
+
const text = node.text;
|
|
33272
|
+
const rebuildFromRuns = shouldRebuildFromRuns(node);
|
|
32925
33273
|
const tKey = Object.keys(pt2).find((k) => stripPrefix(k) === "t");
|
|
32926
33274
|
if (!tKey) {
|
|
32927
|
-
pt2["dgm:t"] = buildPointText(text);
|
|
33275
|
+
pt2["dgm:t"] = rebuildFromRuns ? buildPointFromRuns(node.runs) : buildPointText(text);
|
|
33276
|
+
return;
|
|
33277
|
+
}
|
|
33278
|
+
if (rebuildFromRuns) {
|
|
33279
|
+
applyRunsToExistingBody(pt2, tKey, node.runs);
|
|
32928
33280
|
return;
|
|
32929
33281
|
}
|
|
32930
33282
|
const body = pt2[tKey];
|
|
@@ -32985,7 +33337,7 @@ function mergeSmartArtPointXml(existingPts, nodes) {
|
|
|
32985
33337
|
if (!desired) {
|
|
32986
33338
|
continue;
|
|
32987
33339
|
}
|
|
32988
|
-
applyTextToExistingPoint(pt2, desired
|
|
33340
|
+
applyTextToExistingPoint(pt2, desired);
|
|
32989
33341
|
seenContentIds.add(modelId);
|
|
32990
33342
|
merged.push(pt2);
|
|
32991
33343
|
}
|
|
@@ -32998,7 +33350,7 @@ function mergeSmartArtPointXml(existingPts, nodes) {
|
|
|
32998
33350
|
if (node.nodeType && !NON_CONTENT_POINT_TYPES.has(node.nodeType)) {
|
|
32999
33351
|
ptNode["@_type"] = node.nodeType;
|
|
33000
33352
|
}
|
|
33001
|
-
ptNode["dgm:t"] = buildPointText(node.text);
|
|
33353
|
+
ptNode["dgm:t"] = shouldRebuildFromRuns(node) ? buildPointFromRuns(node.runs) : buildPointText(node.text);
|
|
33002
33354
|
merged.push(ptNode);
|
|
33003
33355
|
}
|
|
33004
33356
|
return merged;
|
|
@@ -33107,9 +33459,83 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
33107
33459
|
} catch (e) {
|
|
33108
33460
|
console.warn(`Failed to save SmartArt data at ${dataPartPath}:`, e);
|
|
33109
33461
|
}
|
|
33462
|
+
await this.regenerateSmartArtColorPart(slidePath, smartArtData);
|
|
33463
|
+
await this.regenerateSmartArtQuickStylePart(slidePath, smartArtData);
|
|
33110
33464
|
}
|
|
33111
33465
|
this.pendingSmartArtUpdates = void 0;
|
|
33112
33466
|
}
|
|
33467
|
+
/**
|
|
33468
|
+
* Merge the in-memory colour transform back into `ppt/diagrams/colors*.xml`.
|
|
33469
|
+
*
|
|
33470
|
+
* Resolves the part via the SmartArt `colorsRelId` relationship alongside
|
|
33471
|
+
* the data part, merges surgically (preserving unknown content), and skips
|
|
33472
|
+
* gracefully when the rel or part is absent. No-op when the in-memory data
|
|
33473
|
+
* carries no colour transform.
|
|
33474
|
+
*/
|
|
33475
|
+
async regenerateSmartArtColorPart(slidePath, smartArtData) {
|
|
33476
|
+
const transform = smartArtData?.colorTransform;
|
|
33477
|
+
if (!smartArtData?.colorsRelId || !transform) {
|
|
33478
|
+
return;
|
|
33479
|
+
}
|
|
33480
|
+
await this.mergeSmartArtDiagramPart(
|
|
33481
|
+
slidePath,
|
|
33482
|
+
smartArtData.colorsRelId,
|
|
33483
|
+
"colorsDef",
|
|
33484
|
+
"colours",
|
|
33485
|
+
(colorsDef) => applySmartArtColorTransform(
|
|
33486
|
+
colorsDef,
|
|
33487
|
+
transform,
|
|
33488
|
+
(k) => this.compatibilityService.getXmlLocalName(k)
|
|
33489
|
+
)
|
|
33490
|
+
);
|
|
33491
|
+
}
|
|
33492
|
+
/**
|
|
33493
|
+
* Merge the in-memory quick style back into `ppt/diagrams/quickStyles*.xml`.
|
|
33494
|
+
*
|
|
33495
|
+
* Resolves the part via the SmartArt `styleRelId` relationship, merges
|
|
33496
|
+
* surgically, and skips gracefully when the rel or part is absent. No-op
|
|
33497
|
+
* when the in-memory data carries no quick style.
|
|
33498
|
+
*/
|
|
33499
|
+
async regenerateSmartArtQuickStylePart(slidePath, smartArtData) {
|
|
33500
|
+
const quickStyle = smartArtData?.quickStyle;
|
|
33501
|
+
if (!smartArtData?.styleRelId || !quickStyle) {
|
|
33502
|
+
return;
|
|
33503
|
+
}
|
|
33504
|
+
await this.mergeSmartArtDiagramPart(
|
|
33505
|
+
slidePath,
|
|
33506
|
+
smartArtData.styleRelId,
|
|
33507
|
+
"styleDef",
|
|
33508
|
+
"quick style",
|
|
33509
|
+
(styleDef) => applySmartArtQuickStyle(styleDef, quickStyle)
|
|
33510
|
+
);
|
|
33511
|
+
}
|
|
33512
|
+
/**
|
|
33513
|
+
* Read a SmartArt diagram part by slide relationship id, locate its root
|
|
33514
|
+
* definition element by local name, apply a surgical merge callback, and
|
|
33515
|
+
* write the part back only when the callback reports a change. Skips
|
|
33516
|
+
* gracefully when the rel, part, or root element is absent.
|
|
33517
|
+
*/
|
|
33518
|
+
async mergeSmartArtDiagramPart(slidePath, relId, defLocalName, label, merge) {
|
|
33519
|
+
const relationships = this.slideRelsMap.get(slidePath);
|
|
33520
|
+
const target = relationships?.get(relId);
|
|
33521
|
+
if (!target) {
|
|
33522
|
+
return;
|
|
33523
|
+
}
|
|
33524
|
+
const partPath = this.resolveImagePath(slidePath, target);
|
|
33525
|
+
const existingXml = await this.zip.file(partPath)?.async("string");
|
|
33526
|
+
if (!existingXml) {
|
|
33527
|
+
return;
|
|
33528
|
+
}
|
|
33529
|
+
try {
|
|
33530
|
+
const parsed = this.parser.parse(existingXml);
|
|
33531
|
+
const def = this.xmlLookupService.getChildByLocalName(parsed, defLocalName);
|
|
33532
|
+
if (def && merge(def)) {
|
|
33533
|
+
this.zip.file(partPath, this.builder.build(parsed));
|
|
33534
|
+
}
|
|
33535
|
+
} catch (e) {
|
|
33536
|
+
console.warn(`Failed to save SmartArt ${label} at ${partPath}:`, e);
|
|
33537
|
+
}
|
|
33538
|
+
}
|
|
33113
33539
|
/**
|
|
33114
33540
|
* Find the slide path for an element by scanning the slideMap.
|
|
33115
33541
|
*/
|
|
@@ -33141,10 +33567,10 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
33141
33567
|
}
|
|
33142
33568
|
const cSld = root["p:cSld"] || {};
|
|
33143
33569
|
if (notesMaster.backgroundColor) {
|
|
33144
|
-
const
|
|
33570
|
+
const hex8 = notesMaster.backgroundColor.replace("#", "");
|
|
33145
33571
|
cSld["p:bg"] = {
|
|
33146
33572
|
"p:bgPr": {
|
|
33147
|
-
"a:solidFill": { "a:srgbClr": { "@_val":
|
|
33573
|
+
"a:solidFill": { "a:srgbClr": { "@_val": hex8 } },
|
|
33148
33574
|
"a:effectLst": {}
|
|
33149
33575
|
}
|
|
33150
33576
|
};
|
|
@@ -33177,10 +33603,10 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
33177
33603
|
}
|
|
33178
33604
|
const cSld = root["p:cSld"] || {};
|
|
33179
33605
|
if (handoutMaster.backgroundColor) {
|
|
33180
|
-
const
|
|
33606
|
+
const hex8 = handoutMaster.backgroundColor.replace("#", "");
|
|
33181
33607
|
cSld["p:bg"] = {
|
|
33182
33608
|
"p:bgPr": {
|
|
33183
|
-
"a:solidFill": { "a:srgbClr": { "@_val":
|
|
33609
|
+
"a:solidFill": { "a:srgbClr": { "@_val": hex8 } },
|
|
33184
33610
|
"a:effectLst": {}
|
|
33185
33611
|
}
|
|
33186
33612
|
};
|
|
@@ -35630,8 +36056,8 @@ var PptxHandlerRuntime34 = class extends PptxHandlerRuntime33 {
|
|
|
35630
36056
|
*/
|
|
35631
36057
|
buildClrSchemeObject(schemeName, colorMap) {
|
|
35632
36058
|
const slot = (key) => {
|
|
35633
|
-
const
|
|
35634
|
-
const srgb =
|
|
36059
|
+
const hex8 = String(colorMap[key] || "").replace(/^#/, "");
|
|
36060
|
+
const srgb = hex8.length === 6 ? hex8.toUpperCase() : "000000";
|
|
35635
36061
|
return { "a:srgbClr": { "@_val": srgb } };
|
|
35636
36062
|
};
|
|
35637
36063
|
return {
|
|
@@ -36295,6 +36721,12 @@ var PptxHandlerRuntime40 = class _PptxHandlerRuntime extends PptxHandlerRuntime3
|
|
|
36295
36721
|
xmlLookupService: this.xmlLookupService
|
|
36296
36722
|
});
|
|
36297
36723
|
this.deduplicateExtensionLists(this.presentationData);
|
|
36724
|
+
if (effectiveConformance === "transitional") {
|
|
36725
|
+
const presentationNode = this.presentationData["p:presentation"];
|
|
36726
|
+
if (presentationNode && "@_conformance" in presentationNode) {
|
|
36727
|
+
delete presentationNode["@_conformance"];
|
|
36728
|
+
}
|
|
36729
|
+
}
|
|
36298
36730
|
const presentationXml2 = this.builder.build(this.presentationData);
|
|
36299
36731
|
this.zip.file("ppt/presentation.xml", presentationXml2);
|
|
36300
36732
|
}
|
|
@@ -42404,8 +42836,8 @@ var PptxHandlerRuntime66 = class extends PptxHandlerRuntime65 {
|
|
|
42404
42836
|
/**
|
|
42405
42837
|
* Build an OOXML colour node (`a:srgbClr`) from a hex string.
|
|
42406
42838
|
*/
|
|
42407
|
-
buildSrgbClrNode(
|
|
42408
|
-
const clean =
|
|
42839
|
+
buildSrgbClrNode(hex8) {
|
|
42840
|
+
const clean = hex8.replace(/^#/, "").toUpperCase();
|
|
42409
42841
|
return { "a:srgbClr": { "@_val": clean } };
|
|
42410
42842
|
}
|
|
42411
42843
|
/**
|
|
@@ -42828,6 +43260,45 @@ var PptxHandlerRuntime68 = class extends PptxHandlerRuntime67 {
|
|
|
42828
43260
|
}
|
|
42829
43261
|
}
|
|
42830
43262
|
}
|
|
43263
|
+
/**
|
|
43264
|
+
* Extract the per-run text + run-properties of a SmartArt content point's
|
|
43265
|
+
* first paragraph (`dgm:t/a:p/a:r`).
|
|
43266
|
+
*
|
|
43267
|
+
* Each `a:r` yields one {@link PptxSmartArtTextRun} carrying its joined
|
|
43268
|
+
* `a:t` text and a verbatim copy of its `a:rPr` properties (when present).
|
|
43269
|
+
* Only the first paragraph is captured: SmartArt content points are
|
|
43270
|
+
* single-paragraph in practice, and the round-trip save path rebuilds a
|
|
43271
|
+
* single paragraph from these runs. Returns undefined when there is fewer
|
|
43272
|
+
* than one run worth preserving (a single run is still returned so per-run
|
|
43273
|
+
* formatting like a bold sole run survives).
|
|
43274
|
+
*/
|
|
43275
|
+
extractSmartArtNodeRuns(point) {
|
|
43276
|
+
const tBody = this.xmlLookupService.getChildByLocalName(point, "t");
|
|
43277
|
+
if (!tBody) {
|
|
43278
|
+
return void 0;
|
|
43279
|
+
}
|
|
43280
|
+
const paragraph = this.xmlLookupService.getChildrenArrayByLocalName(tBody, "p")[0];
|
|
43281
|
+
if (!paragraph) {
|
|
43282
|
+
return void 0;
|
|
43283
|
+
}
|
|
43284
|
+
const runNodes = this.xmlLookupService.getChildrenArrayByLocalName(paragraph, "r");
|
|
43285
|
+
if (runNodes.length === 0) {
|
|
43286
|
+
return void 0;
|
|
43287
|
+
}
|
|
43288
|
+
const runs = [];
|
|
43289
|
+
for (const run of runNodes) {
|
|
43290
|
+
const textValues = [];
|
|
43291
|
+
this.collectLocalTextValues(run, "t", textValues);
|
|
43292
|
+
const text = textValues.join("");
|
|
43293
|
+
const rPrNode = this.xmlLookupService.getChildByLocalName(run, "rPr");
|
|
43294
|
+
const entry = { text };
|
|
43295
|
+
if (rPrNode) {
|
|
43296
|
+
entry.rPr = JSON.parse(JSON.stringify(rPrNode));
|
|
43297
|
+
}
|
|
43298
|
+
runs.push(entry);
|
|
43299
|
+
}
|
|
43300
|
+
return runs.length > 0 ? runs : void 0;
|
|
43301
|
+
}
|
|
42831
43302
|
/**
|
|
42832
43303
|
* Parse background and outline chrome from `dgm:bg` and `dgm:whole`.
|
|
42833
43304
|
*/
|
|
@@ -43131,11 +43602,13 @@ var PptxHandlerRuntime70 = class _PptxHandlerRuntime extends PptxHandlerRuntime6
|
|
|
43131
43602
|
if (!resolvedText) {
|
|
43132
43603
|
return null;
|
|
43133
43604
|
}
|
|
43605
|
+
const runs = this.extractSmartArtNodeRuns(point);
|
|
43134
43606
|
return {
|
|
43135
43607
|
id: pointId,
|
|
43136
43608
|
text: resolvedText.trim(),
|
|
43137
43609
|
parentId: parentByNodeId.get(pointId),
|
|
43138
|
-
nodeType
|
|
43610
|
+
nodeType,
|
|
43611
|
+
runs
|
|
43139
43612
|
};
|
|
43140
43613
|
}).filter((entry) => Boolean(entry)).slice(0, MAX_SMARTART_NODES);
|
|
43141
43614
|
if (nodes.length === 0) {
|
|
@@ -43853,11 +44326,11 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
|
|
|
43853
44326
|
} else if (localName === "srgbClr") {
|
|
43854
44327
|
const items = Array.isArray(value) ? value : [value];
|
|
43855
44328
|
for (const item of items) {
|
|
43856
|
-
const
|
|
44329
|
+
const hex8 = String(
|
|
43857
44330
|
typeof item === "object" && item !== null ? item["@_val"] : item ?? ""
|
|
43858
44331
|
).trim();
|
|
43859
|
-
if (
|
|
43860
|
-
output.push(
|
|
44332
|
+
if (hex8.length > 0) {
|
|
44333
|
+
output.push(hex8.startsWith("#") ? hex8 : `#${hex8}`);
|
|
43861
44334
|
}
|
|
43862
44335
|
}
|
|
43863
44336
|
}
|
|
@@ -43925,9 +44398,10 @@ var PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
|
43925
44398
|
return void 0;
|
|
43926
44399
|
}
|
|
43927
44400
|
const chartType = this.detectChartType(plotArea);
|
|
43928
|
-
const
|
|
44401
|
+
const chartContainerKeys = Object.keys(plotArea).filter(
|
|
43929
44402
|
(key) => this.compatibilityService.getXmlLocalName(key).endsWith("Chart")
|
|
43930
44403
|
);
|
|
44404
|
+
const seriesContainerKey = chartContainerKeys[0];
|
|
43931
44405
|
if (!seriesContainerKey) {
|
|
43932
44406
|
return this.parseCxChart(
|
|
43933
44407
|
plotArea,
|
|
@@ -43939,19 +44413,14 @@ var PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
|
43939
44413
|
);
|
|
43940
44414
|
}
|
|
43941
44415
|
const seriesContainer = plotArea[seriesContainerKey];
|
|
43942
|
-
const
|
|
43943
|
-
|
|
44416
|
+
const { categories, series } = this.parseAllChartContainers(
|
|
44417
|
+
plotArea,
|
|
44418
|
+
chartContainerKeys,
|
|
44419
|
+
chartType
|
|
44420
|
+
);
|
|
44421
|
+
if (series.length === 0) {
|
|
43944
44422
|
return void 0;
|
|
43945
44423
|
}
|
|
43946
|
-
const categoriesFromFirstSeries = this.extractChartPointValues(
|
|
43947
|
-
this.xmlLookupService.getChildByLocalName(seriesList[0], "cat"),
|
|
43948
|
-
false
|
|
43949
|
-
);
|
|
43950
|
-
const categories = categoriesFromFirstSeries.length ? categoriesFromFirstSeries : this.extractChartPointValues(
|
|
43951
|
-
this.xmlLookupService.getChildByLocalName(seriesList[0], "xVal"),
|
|
43952
|
-
false
|
|
43953
|
-
);
|
|
43954
|
-
const series = this.buildChartSeries(seriesList, categories);
|
|
43955
44424
|
const titleNode = this.xmlLookupService.getChildByLocalName(chartRoot, "title");
|
|
43956
44425
|
const titleTextValues = [];
|
|
43957
44426
|
this.collectLocalTextValues(titleNode, "t", titleTextValues);
|
|
@@ -44050,6 +44519,49 @@ var PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
|
44050
44519
|
...clrMapOvr ? { clrMapOvr } : {}
|
|
44051
44520
|
};
|
|
44052
44521
|
}
|
|
44522
|
+
/**
|
|
44523
|
+
* Parse every chart-type container in the plot area into a single flat
|
|
44524
|
+
* series list plus a shared category list.
|
|
44525
|
+
*
|
|
44526
|
+
* For a single-type chart this parses the one container exactly as before.
|
|
44527
|
+
* For a combo chart (multiple `c:*Chart` siblings) each container's series
|
|
44528
|
+
* are parsed and tagged with the container's chart type via
|
|
44529
|
+
* {@link PptxChartSeries.seriesChartType}, so the combo serializer can
|
|
44530
|
+
* re-emit each series under the correct container on save. Series keep the
|
|
44531
|
+
* document order of their containers.
|
|
44532
|
+
*
|
|
44533
|
+
* @param plotArea - The `c:plotArea` XML object.
|
|
44534
|
+
* @param containerKeys - All chart-type container keys, in document order.
|
|
44535
|
+
* @param chartLevelType - The detected chart-level type. When this is
|
|
44536
|
+
* `combo`, each series is tagged with its own container type; otherwise no
|
|
44537
|
+
* per-series type is set (the chart-level type applies to every series).
|
|
44538
|
+
* @returns The merged categories and series.
|
|
44539
|
+
*/
|
|
44540
|
+
parseAllChartContainers(plotArea, containerKeys, chartLevelType) {
|
|
44541
|
+
const isCombo = chartLevelType === "combo";
|
|
44542
|
+
let categories = [];
|
|
44543
|
+
const series = [];
|
|
44544
|
+
for (const containerKey of containerKeys) {
|
|
44545
|
+
const container = plotArea[containerKey];
|
|
44546
|
+
const seriesList = this.xmlLookupService.getChildrenArrayByLocalName(container, "ser");
|
|
44547
|
+
if (seriesList.length === 0) {
|
|
44548
|
+
continue;
|
|
44549
|
+
}
|
|
44550
|
+
if (categories.length === 0) {
|
|
44551
|
+
const fromCat = this.extractChartPointValues(
|
|
44552
|
+
this.xmlLookupService.getChildByLocalName(seriesList[0], "cat"),
|
|
44553
|
+
false
|
|
44554
|
+
);
|
|
44555
|
+
categories = fromCat.length ? fromCat : this.extractChartPointValues(
|
|
44556
|
+
this.xmlLookupService.getChildByLocalName(seriesList[0], "xVal"),
|
|
44557
|
+
false
|
|
44558
|
+
);
|
|
44559
|
+
}
|
|
44560
|
+
const containerType = isCombo ? chartContainerLocalNameToType(this.compatibilityService.getXmlLocalName(containerKey)) : void 0;
|
|
44561
|
+
series.push(...this.buildChartSeries(seriesList, categories, containerType));
|
|
44562
|
+
}
|
|
44563
|
+
return { categories, series };
|
|
44564
|
+
}
|
|
44053
44565
|
/**
|
|
44054
44566
|
* Build the series array from raw OOXML `c:ser` nodes.
|
|
44055
44567
|
*
|
|
@@ -44059,9 +44571,11 @@ var PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
|
44059
44571
|
*
|
|
44060
44572
|
* @param seriesList - Array of `c:ser` XML objects from the chart container.
|
|
44061
44573
|
* @param categories - Pre-parsed category labels (used for fallback values).
|
|
44574
|
+
* @param seriesChartType - When set (combo charts), tags every series in this
|
|
44575
|
+
* container with its source chart type for round-trip.
|
|
44062
44576
|
* @returns The series array matching `PptxChartData["series"]`.
|
|
44063
44577
|
*/
|
|
44064
|
-
buildChartSeries(seriesList, categories) {
|
|
44578
|
+
buildChartSeries(seriesList, categories, seriesChartType) {
|
|
44065
44579
|
return seriesList.map((seriesNode, seriesIndex) => {
|
|
44066
44580
|
const seriesName = this.extractChartSeriesName(seriesNode);
|
|
44067
44581
|
const values = this.extractChartPointValues(
|
|
@@ -44099,7 +44613,8 @@ var PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
|
44099
44613
|
...dataPoints.length > 0 ? { dataPoints } : {},
|
|
44100
44614
|
...seriesMarker ? { marker: seriesMarker } : {},
|
|
44101
44615
|
...dataLabels.length > 0 ? { dataLabels } : {},
|
|
44102
|
-
...explosion !== void 0 ? { explosion } : {}
|
|
44616
|
+
...explosion !== void 0 ? { explosion } : {},
|
|
44617
|
+
...seriesChartType ? { seriesChartType } : {}
|
|
44103
44618
|
};
|
|
44104
44619
|
});
|
|
44105
44620
|
}
|
|
@@ -57086,6 +57601,51 @@ function setChartDataPointExplosion(element, seriesIndex, pointIndex, explosion)
|
|
|
57086
57601
|
const dp = ensureDataPoint(series, pointIndex);
|
|
57087
57602
|
dp.explosion = explosion;
|
|
57088
57603
|
}
|
|
57604
|
+
function applyLabelEdit(label, edit) {
|
|
57605
|
+
if (edit.showValue !== void 0) {
|
|
57606
|
+
label.showVal = edit.showValue;
|
|
57607
|
+
}
|
|
57608
|
+
if (edit.showCategory !== void 0) {
|
|
57609
|
+
label.showCatName = edit.showCategory;
|
|
57610
|
+
}
|
|
57611
|
+
if (edit.showSeriesName !== void 0) {
|
|
57612
|
+
label.showSerName = edit.showSeriesName;
|
|
57613
|
+
}
|
|
57614
|
+
if (edit.showPercent !== void 0) {
|
|
57615
|
+
label.showPercent = edit.showPercent;
|
|
57616
|
+
}
|
|
57617
|
+
if (edit.showLegendKey !== void 0) {
|
|
57618
|
+
label.showLegendKey = edit.showLegendKey;
|
|
57619
|
+
}
|
|
57620
|
+
if (edit.position !== void 0) {
|
|
57621
|
+
label.position = edit.position;
|
|
57622
|
+
}
|
|
57623
|
+
if (edit.text !== void 0) {
|
|
57624
|
+
label.text = edit.text === "" ? void 0 : edit.text;
|
|
57625
|
+
}
|
|
57626
|
+
}
|
|
57627
|
+
function setChartDataPointLabel(element, seriesIndex, pointIndex, edit) {
|
|
57628
|
+
validateSeriesIndex(element, seriesIndex);
|
|
57629
|
+
const series = element.chartData.series[seriesIndex];
|
|
57630
|
+
if (edit === null) {
|
|
57631
|
+
if (!series.dataLabels) {
|
|
57632
|
+
return;
|
|
57633
|
+
}
|
|
57634
|
+
series.dataLabels = series.dataLabels.filter((l) => l.idx !== pointIndex);
|
|
57635
|
+
if (series.dataLabels.length === 0) {
|
|
57636
|
+
series.dataLabels = void 0;
|
|
57637
|
+
}
|
|
57638
|
+
return;
|
|
57639
|
+
}
|
|
57640
|
+
const labels = series.dataLabels ??= [];
|
|
57641
|
+
let label = labels.find((l) => l.idx === pointIndex);
|
|
57642
|
+
if (!label) {
|
|
57643
|
+
label = { idx: pointIndex };
|
|
57644
|
+
labels.push(label);
|
|
57645
|
+
labels.sort((a, b) => a.idx - b.idx);
|
|
57646
|
+
}
|
|
57647
|
+
applyLabelEdit(label, edit);
|
|
57648
|
+
}
|
|
57089
57649
|
function removeEmptyDataPoint(series, pointIndex) {
|
|
57090
57650
|
if (!series.dataPoints) {
|
|
57091
57651
|
return;
|
|
@@ -57135,8 +57695,8 @@ function generateLayoutXml(definition) {
|
|
|
57135
57695
|
const phShapes = placeholders.map((ph, i) => placeholderSpXml(ph, i + 2)).join("\n");
|
|
57136
57696
|
let bgXml = "";
|
|
57137
57697
|
if (definition.backgroundColor) {
|
|
57138
|
-
const
|
|
57139
|
-
bgXml = ` <p:bg><p:bgPr><a:solidFill><a:srgbClr val="${
|
|
57698
|
+
const hex8 = definition.backgroundColor.replace(/^#/, "").toUpperCase();
|
|
57699
|
+
bgXml = ` <p:bg><p:bgPr><a:solidFill><a:srgbClr val="${hex8}"/></a:solidFill><a:effectLst/></p:bgPr></p:bg>
|
|
57140
57700
|
`;
|
|
57141
57701
|
}
|
|
57142
57702
|
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
@@ -57612,8 +58172,8 @@ var TextBuilder = class _TextBuilder {
|
|
|
57612
58172
|
*
|
|
57613
58173
|
* @param hex - Color as a hex string (e.g. "#FF0000").
|
|
57614
58174
|
*/
|
|
57615
|
-
color(
|
|
57616
|
-
this._options.color =
|
|
58175
|
+
color(hex8) {
|
|
58176
|
+
this._options.color = hex8;
|
|
57617
58177
|
return this;
|
|
57618
58178
|
}
|
|
57619
58179
|
/**
|
|
@@ -62389,8 +62949,8 @@ function stepTable10(t) {
|
|
|
62389
62949
|
}
|
|
62390
62950
|
return out.join(" ");
|
|
62391
62951
|
}
|
|
62392
|
-
function parseHexRgb(
|
|
62393
|
-
const m = /^#?([0-9a-f]{6})/i.exec(
|
|
62952
|
+
function parseHexRgb(hex8) {
|
|
62953
|
+
const m = /^#?([0-9a-f]{6})/i.exec(hex8.trim());
|
|
62394
62954
|
if (!m) {
|
|
62395
62955
|
return { r: 0, g: 0, b: 0 };
|
|
62396
62956
|
}
|
|
@@ -62909,4 +63469,4 @@ var SvgExporter = class _SvgExporter {
|
|
|
62909
63469
|
* `<p:extLst>` (optional)
|
|
62910
63470
|
*/
|
|
62911
63471
|
|
|
62912
|
-
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, 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, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2 as isZoomElementUtil, layoutEngineShapesToDrawingShapes, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, 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, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, shouldRenderFallbackLabel, shouldReturnToZoomSlide, subtractPolygons, subtractShapes, subtractSvgPaths, svgPathToPolygons, switchSmartArtLayout, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };
|
|
63472
|
+
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, 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, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2 as isZoomElementUtil, layoutEngineShapesToDrawingShapes, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, 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, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText };
|