pptx-react-viewer 1.25.1 → 1.25.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.
- package/CHANGELOG.md +4 -0
- package/dist/{Model3DScene-AWSM6CYB.js → Model3DScene-F2GUSTZI.js} +3 -3
- package/dist/Model3DScene-F2GUSTZI.js.br +0 -0
- package/dist/Model3DScene-F2GUSTZI.js.gz +0 -0
- package/dist/{Model3DScene-2QZ7CADN.mjs → Model3DScene-IQLE5JLL.mjs} +2 -2
- package/dist/Model3DScene-IQLE5JLL.mjs.br +0 -0
- package/dist/Model3DScene-IQLE5JLL.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-PJ36HRGC.js → SurfaceChart3DScene-4OMD7LWR.js} +3 -3
- package/dist/SurfaceChart3DScene-4OMD7LWR.js.br +0 -0
- package/dist/SurfaceChart3DScene-4OMD7LWR.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-IW4WGZHH.mjs → SurfaceChart3DScene-JG26PJ7O.mjs} +2 -2
- package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.gz +0 -0
- package/dist/{chunk-CYZLRYJV.js → chunk-2V6BD4JQ.js} +130 -39
- package/dist/chunk-2V6BD4JQ.js.br +0 -0
- package/dist/chunk-2V6BD4JQ.js.gz +0 -0
- package/dist/{chunk-ASN2DZSP.js → chunk-5G3SPYQE.js} +812 -810
- package/dist/chunk-5G3SPYQE.js.br +0 -0
- package/dist/chunk-5G3SPYQE.js.gz +0 -0
- package/dist/{chunk-M7JHZV3P.mjs → chunk-DAI4KM5W.mjs} +130 -39
- package/dist/chunk-DAI4KM5W.mjs.br +0 -0
- package/dist/chunk-DAI4KM5W.mjs.gz +0 -0
- package/dist/{chunk-PMGLZ7N4.mjs → chunk-DVM75RMN.mjs} +63 -6
- package/dist/chunk-DVM75RMN.mjs.br +0 -0
- package/dist/chunk-DVM75RMN.mjs.gz +0 -0
- package/dist/{chunk-RVKPHAK5.mjs → chunk-GNXWU7UG.mjs} +10 -8
- package/dist/chunk-GNXWU7UG.mjs.br +0 -0
- package/dist/chunk-GNXWU7UG.mjs.gz +0 -0
- package/dist/{chunk-QTIJWFJX.mjs → chunk-NYBERTS7.mjs} +12 -4
- package/dist/chunk-NYBERTS7.mjs.br +0 -0
- package/dist/chunk-NYBERTS7.mjs.gz +0 -0
- package/dist/{chunk-NIWO2WYI.js → chunk-UXVFNGJH.js} +96 -39
- package/dist/chunk-UXVFNGJH.js.br +0 -0
- package/dist/chunk-UXVFNGJH.js.gz +0 -0
- package/dist/{chunk-NT5FIWWU.js → chunk-ZUJHFLOR.js} +472 -464
- package/dist/chunk-ZUJHFLOR.js.br +0 -0
- package/dist/chunk-ZUJHFLOR.js.gz +0 -0
- package/dist/{dist-RHAXXX2R.mjs → dist-E3IHM3OU.mjs} +1 -1
- package/dist/dist-E3IHM3OU.mjs.br +0 -0
- package/dist/dist-E3IHM3OU.mjs.gz +0 -0
- package/dist/{dist-AFRACFHO.js → dist-ZA77P2O5.js} +562 -562
- package/dist/dist-ZA77P2O5.js.br +0 -0
- package/dist/dist-ZA77P2O5.js.gz +0 -0
- package/dist/hooks-unstable.js +78 -78
- package/dist/hooks-unstable.js.br +0 -0
- package/dist/hooks-unstable.js.gz +0 -0
- package/dist/hooks-unstable.mjs +3 -3
- package/dist/hooks-unstable.mjs.br +0 -0
- package/dist/hooks-unstable.mjs.gz +0 -0
- package/dist/index.js +33 -33
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/viewer/index.js +20 -20
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +4 -4
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/Model3DScene-2QZ7CADN.mjs.br +0 -0
- package/dist/Model3DScene-2QZ7CADN.mjs.gz +0 -0
- package/dist/Model3DScene-AWSM6CYB.js.br +0 -0
- package/dist/Model3DScene-AWSM6CYB.js.gz +0 -0
- package/dist/SurfaceChart3DScene-IW4WGZHH.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-IW4WGZHH.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-PJ36HRGC.js.br +0 -0
- package/dist/SurfaceChart3DScene-PJ36HRGC.js.gz +0 -0
- package/dist/chunk-ASN2DZSP.js.br +0 -0
- package/dist/chunk-ASN2DZSP.js.gz +0 -0
- package/dist/chunk-CYZLRYJV.js.br +0 -0
- package/dist/chunk-CYZLRYJV.js.gz +0 -0
- package/dist/chunk-M7JHZV3P.mjs.br +0 -0
- package/dist/chunk-M7JHZV3P.mjs.gz +0 -0
- package/dist/chunk-NIWO2WYI.js.br +0 -0
- package/dist/chunk-NIWO2WYI.js.gz +0 -0
- package/dist/chunk-NT5FIWWU.js.br +0 -0
- package/dist/chunk-NT5FIWWU.js.gz +0 -0
- package/dist/chunk-PMGLZ7N4.mjs.br +0 -0
- package/dist/chunk-PMGLZ7N4.mjs.gz +0 -0
- package/dist/chunk-QTIJWFJX.mjs.br +0 -0
- package/dist/chunk-QTIJWFJX.mjs.gz +0 -0
- package/dist/chunk-RVKPHAK5.mjs.br +0 -0
- package/dist/chunk-RVKPHAK5.mjs.gz +0 -0
- package/dist/dist-AFRACFHO.js.br +0 -0
- package/dist/dist-AFRACFHO.js.gz +0 -0
- package/dist/dist-RHAXXX2R.mjs.br +0 -0
- package/dist/dist-RHAXXX2R.mjs.gz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ All notable changes to this project are documented here.
|
|
|
4
4
|
This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
|
|
5
5
|
by [git-cliff](https://git-cliff.org); do not edit it by hand.
|
|
6
6
|
|
|
7
|
+
## [1.25.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.2) - 2026-07-19
|
|
8
|
+
|
|
9
|
+
## [1.25.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.1) - 2026-07-18
|
|
10
|
+
|
|
7
11
|
## [1.25.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.0) - 2026-07-18
|
|
8
12
|
|
|
9
13
|
## [1.24.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.24.1) - 2026-07-18
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var chunkUXVFNGJH_js = require('./chunk-UXVFNGJH.js');
|
|
4
|
+
require('./chunk-2V6BD4JQ.js');
|
|
5
5
|
require('./chunk-QGM4M3NI.js');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -15,7 +15,7 @@ function Model3DScene({ modelUrl, interactive, width, height }) {
|
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
let disposed = false;
|
|
18
|
-
void
|
|
18
|
+
void chunkUXVFNGJH_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
|
|
19
19
|
if (disposed) {
|
|
20
20
|
handle.dispose();
|
|
21
21
|
} else {
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { mountModel3D } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { mountModel3D } from './chunk-DVM75RMN.mjs';
|
|
2
|
+
import './chunk-DAI4KM5W.mjs';
|
|
3
3
|
import './chunk-6DZX6EAA.mjs';
|
|
4
4
|
import { useRef, useEffect } from 'react';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var chunkUXVFNGJH_js = require('./chunk-UXVFNGJH.js');
|
|
4
|
+
require('./chunk-2V6BD4JQ.js');
|
|
5
5
|
require('./chunk-QGM4M3NI.js');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -26,7 +26,7 @@ function SurfaceChart3DScene({
|
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
let disposed = false;
|
|
29
|
-
void
|
|
29
|
+
void chunkUXVFNGJH_js.mountSurfaceChart3D(container, {
|
|
30
30
|
cols,
|
|
31
31
|
rows,
|
|
32
32
|
heightMap,
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { mountSurfaceChart3D } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { mountSurfaceChart3D } from './chunk-DVM75RMN.mjs';
|
|
2
|
+
import './chunk-DAI4KM5W.mjs';
|
|
3
3
|
import './chunk-6DZX6EAA.mjs';
|
|
4
4
|
import { useRef, useEffect } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
Binary file
|
|
Binary file
|
|
@@ -7104,14 +7104,52 @@ function extractSourceOrders(xml) {
|
|
|
7104
7104
|
}
|
|
7105
7105
|
return orders;
|
|
7106
7106
|
}
|
|
7107
|
+
function ensureArrayLocal(value) {
|
|
7108
|
+
return Array.isArray(value) ? value : value === void 0 ? [] : [value];
|
|
7109
|
+
}
|
|
7110
|
+
function countsSignature(counts) {
|
|
7111
|
+
return [...counts.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([name, count]) => `${name}:${count}`).join(",");
|
|
7112
|
+
}
|
|
7113
|
+
function pathSignature(path) {
|
|
7114
|
+
const counts = /* @__PURE__ */ new Map();
|
|
7115
|
+
for (const key of Object.keys(path)) {
|
|
7116
|
+
const name = localName(key);
|
|
7117
|
+
if (!PATH_COMMANDS.has(name)) {
|
|
7118
|
+
continue;
|
|
7119
|
+
}
|
|
7120
|
+
counts.set(name, (counts.get(name) ?? 0) + ensureArrayLocal(path[key]).length);
|
|
7121
|
+
}
|
|
7122
|
+
return countsSignature(counts);
|
|
7123
|
+
}
|
|
7124
|
+
function orderSignature(order) {
|
|
7125
|
+
const counts = /* @__PURE__ */ new Map();
|
|
7126
|
+
for (const name of order) {
|
|
7127
|
+
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
7128
|
+
}
|
|
7129
|
+
return countsSignature(counts);
|
|
7130
|
+
}
|
|
7107
7131
|
function annotateCustomGeometryCommandOrder(xml, parsed) {
|
|
7108
7132
|
const orders = extractSourceOrders(xml);
|
|
7109
7133
|
if (orders.length === 0) {
|
|
7110
7134
|
return;
|
|
7111
7135
|
}
|
|
7112
7136
|
const paths = collectParsedPaths(parsed);
|
|
7113
|
-
|
|
7114
|
-
|
|
7137
|
+
const ordersBySignature = /* @__PURE__ */ new Map();
|
|
7138
|
+
for (const order of orders) {
|
|
7139
|
+
const signature = orderSignature(order);
|
|
7140
|
+
const bucket = ordersBySignature.get(signature);
|
|
7141
|
+
if (bucket) {
|
|
7142
|
+
bucket.push(order);
|
|
7143
|
+
} else {
|
|
7144
|
+
ordersBySignature.set(signature, [order]);
|
|
7145
|
+
}
|
|
7146
|
+
}
|
|
7147
|
+
for (const path of paths) {
|
|
7148
|
+
const bucket = ordersBySignature.get(pathSignature(path));
|
|
7149
|
+
const order = bucket?.shift();
|
|
7150
|
+
if (order) {
|
|
7151
|
+
commandOrder.set(path, order);
|
|
7152
|
+
}
|
|
7115
7153
|
}
|
|
7116
7154
|
}
|
|
7117
7155
|
function orderedPathCommandEntries(path, ensureArray16) {
|
|
@@ -29493,15 +29531,15 @@ function getConnectorPathGeometry(element) {
|
|
|
29493
29531
|
}
|
|
29494
29532
|
function getElementTransform(element) {
|
|
29495
29533
|
const transforms = [];
|
|
29534
|
+
if (element.rotation) {
|
|
29535
|
+
transforms.push(`rotate(${element.rotation}deg)`);
|
|
29536
|
+
}
|
|
29496
29537
|
if (element.flipHorizontal) {
|
|
29497
29538
|
transforms.push("scaleX(-1)");
|
|
29498
29539
|
}
|
|
29499
29540
|
if (element.flipVertical) {
|
|
29500
29541
|
transforms.push("scaleY(-1)");
|
|
29501
29542
|
}
|
|
29502
|
-
if (element.rotation) {
|
|
29503
|
-
transforms.push(`rotate(${element.rotation}deg)`);
|
|
29504
|
-
}
|
|
29505
29543
|
return transforms.length > 0 ? transforms.join(" ") : void 0;
|
|
29506
29544
|
}
|
|
29507
29545
|
function getTextCompensationTransform(element) {
|
|
@@ -67603,7 +67641,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
|
|
|
67603
67641
|
pointsToPixels(points3) {
|
|
67604
67642
|
return points3 * (96 / 72);
|
|
67605
67643
|
}
|
|
67606
|
-
parseParagraphSpacingPx(spacingNode) {
|
|
67644
|
+
parseParagraphSpacingPx(spacingNode, basisFontSizePx) {
|
|
67607
67645
|
if (!spacingNode) {
|
|
67608
67646
|
return void 0;
|
|
67609
67647
|
}
|
|
@@ -67614,6 +67652,13 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
|
|
|
67614
67652
|
if (Number.isFinite(spacingPointsRaw)) {
|
|
67615
67653
|
return this.pointsToPixels(spacingPointsRaw / 100);
|
|
67616
67654
|
}
|
|
67655
|
+
const spacingPercentRaw = Number.parseInt(
|
|
67656
|
+
String(spacingNode["a:spcPct"]?.["@_val"] || ""),
|
|
67657
|
+
10
|
|
67658
|
+
);
|
|
67659
|
+
if (Number.isFinite(spacingPercentRaw) && typeof basisFontSizePx === "number" && basisFontSizePx > 0) {
|
|
67660
|
+
return spacingPercentRaw / 1e5 * basisFontSizePx;
|
|
67661
|
+
}
|
|
67617
67662
|
return void 0;
|
|
67618
67663
|
}
|
|
67619
67664
|
parseLineSpacingMultiplier(lineSpacingNode) {
|
|
@@ -67691,7 +67736,7 @@ var PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
|
|
|
67691
67736
|
}
|
|
67692
67737
|
};
|
|
67693
67738
|
var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
|
|
67694
|
-
resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath) {
|
|
67739
|
+
resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath, effectiveLevelStyles) {
|
|
67695
67740
|
if (!paragraph) {
|
|
67696
67741
|
return null;
|
|
67697
67742
|
}
|
|
@@ -67727,11 +67772,8 @@ var PptxHandlerRuntime60 = class extends PptxHandlerRuntime59 {
|
|
|
67727
67772
|
}
|
|
67728
67773
|
}
|
|
67729
67774
|
if (!resolvedBulletProps) {
|
|
67730
|
-
|
|
67731
|
-
|
|
67732
|
-
return this.createBulletInfoFromLevelStyle(presentationLevelStyle, paragraphIndex);
|
|
67733
|
-
}
|
|
67734
|
-
return null;
|
|
67775
|
+
const fallbackLevelStyle = effectiveLevelStyles?.[normalizedLevel - 1] ?? effectiveLevelStyles?.[-1] ?? (isBodyPlaceholder ? this.presentationDefaultTextStyle?.levelStyles?.[normalizedLevel - 1] ?? this.presentationDefaultTextStyle?.levelStyles?.[-1] : void 0);
|
|
67776
|
+
return this.createBulletInfoFromLevelStyle(fallbackLevelStyle, paragraphIndex);
|
|
67735
67777
|
}
|
|
67736
67778
|
const buFont = resolvedBulletProps["a:buFont"];
|
|
67737
67779
|
const fontFamily = buFont?.["@_typeface"] ? String(buFont["@_typeface"]) : void 0;
|
|
@@ -68217,16 +68259,21 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
|
|
|
68217
68259
|
textStyle.align = paraAlign;
|
|
68218
68260
|
}
|
|
68219
68261
|
}
|
|
68262
|
+
const spacingBasisPx = typeof textStyle.fontSize === "number" ? textStyle.fontSize : void 0;
|
|
68220
68263
|
if (textStyle.paragraphSpacingBefore === void 0) {
|
|
68221
68264
|
const spacingBefore = this.parseParagraphSpacingPx(
|
|
68222
|
-
pPr?.["a:spcBef"]
|
|
68265
|
+
pPr?.["a:spcBef"],
|
|
68266
|
+
spacingBasisPx
|
|
68223
68267
|
);
|
|
68224
68268
|
if (spacingBefore !== void 0) {
|
|
68225
68269
|
textStyle.paragraphSpacingBefore = spacingBefore;
|
|
68226
68270
|
}
|
|
68227
68271
|
}
|
|
68228
68272
|
if (textStyle.paragraphSpacingAfter === void 0) {
|
|
68229
|
-
const spacingAfter = this.parseParagraphSpacingPx(
|
|
68273
|
+
const spacingAfter = this.parseParagraphSpacingPx(
|
|
68274
|
+
pPr?.["a:spcAft"],
|
|
68275
|
+
spacingBasisPx
|
|
68276
|
+
);
|
|
68230
68277
|
if (spacingAfter !== void 0) {
|
|
68231
68278
|
textStyle.paragraphSpacingAfter = spacingAfter;
|
|
68232
68279
|
}
|
|
@@ -68398,7 +68445,8 @@ var PptxHandlerRuntime63 = class extends PptxHandlerRuntime62 {
|
|
|
68398
68445
|
ctx.txBody,
|
|
68399
68446
|
ctx.inheritedTxBody,
|
|
68400
68447
|
isBodyPlaceholder,
|
|
68401
|
-
ctx.slidePath
|
|
68448
|
+
ctx.slidePath,
|
|
68449
|
+
ctx.effectiveLevelStyles
|
|
68402
68450
|
);
|
|
68403
68451
|
if (paragraphBulletInfo && !paragraphBulletInfo.none) {
|
|
68404
68452
|
let bulletText;
|
|
@@ -69989,6 +70037,7 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
|
|
|
69989
70037
|
if (!normalized) {
|
|
69990
70038
|
return void 0;
|
|
69991
70039
|
}
|
|
70040
|
+
const canon = (key) => key.toLowerCase() === "folhlink" ? "folHlink" : key;
|
|
69992
70041
|
if (normalized === "phclr") {
|
|
69993
70042
|
const injected = this.themeColorMap["phclr"];
|
|
69994
70043
|
if (injected) {
|
|
@@ -69998,17 +70047,18 @@ var PptxHandlerRuntime69 = class extends PptxHandlerRuntime68 {
|
|
|
69998
70047
|
}
|
|
69999
70048
|
const overrideMap = this.currentSlideClrMapOverride ?? this.currentMasterClrMap;
|
|
70000
70049
|
if (overrideMap) {
|
|
70001
|
-
const remapped = overrideMap[normalized];
|
|
70050
|
+
const remapped = overrideMap[canon(normalized)];
|
|
70002
70051
|
if (remapped) {
|
|
70003
|
-
|
|
70052
|
+
const target = canon(remapped);
|
|
70053
|
+
return this.themeColorMap[target] || this.getDefaultSchemeColorMap()[target];
|
|
70004
70054
|
}
|
|
70005
70055
|
} else {
|
|
70006
70056
|
const defaultAliasTarget = DEFAULT_CLR_MAP_ALIAS[normalized];
|
|
70007
70057
|
if (defaultAliasTarget) {
|
|
70008
|
-
return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
|
|
70058
|
+
return this.themeColorMap[defaultAliasTarget] || this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
|
|
70009
70059
|
}
|
|
70010
70060
|
}
|
|
70011
|
-
return this.themeColorMap[normalized] || this.getDefaultSchemeColorMap()[normalized];
|
|
70061
|
+
return this.themeColorMap[canon(normalized)] || this.getDefaultSchemeColorMap()[canon(normalized)];
|
|
70012
70062
|
}
|
|
70013
70063
|
normalizeStrokeDashType(value) {
|
|
70014
70064
|
const normalized = String(value ?? "").trim();
|
|
@@ -70295,6 +70345,40 @@ var PptxHandlerRuntime70 = class extends PptxHandlerRuntime69 {
|
|
|
70295
70345
|
}
|
|
70296
70346
|
return void 0;
|
|
70297
70347
|
}
|
|
70348
|
+
/**
|
|
70349
|
+
* Reuse the cached parse of a layout XML part, parsing (and caching) on a
|
|
70350
|
+
* miss. Background resolution runs per slide but the layout/master parts are
|
|
70351
|
+
* large (a themed master can be ~200 KB); re-parsing them for every slide
|
|
70352
|
+
* dominated load time, so share the same parsed object `getLayoutElements`
|
|
70353
|
+
* already populated.
|
|
70354
|
+
*/
|
|
70355
|
+
async resolveCachedLayoutXml(layoutPath) {
|
|
70356
|
+
const cached = this.layoutXmlMap.get(layoutPath);
|
|
70357
|
+
if (cached) {
|
|
70358
|
+
return cached;
|
|
70359
|
+
}
|
|
70360
|
+
const xml = await this.zip.file(layoutPath)?.async("string");
|
|
70361
|
+
if (!xml) {
|
|
70362
|
+
return void 0;
|
|
70363
|
+
}
|
|
70364
|
+
const parsed = this.parser.parse(xml);
|
|
70365
|
+
this.layoutXmlMap.set(layoutPath, parsed);
|
|
70366
|
+
return parsed;
|
|
70367
|
+
}
|
|
70368
|
+
/** Reuse the cached parse of a master XML part, parsing (and caching) on a miss. */
|
|
70369
|
+
async resolveCachedMasterXml(masterPath) {
|
|
70370
|
+
const cached = this.masterXmlMap.get(masterPath);
|
|
70371
|
+
if (cached) {
|
|
70372
|
+
return cached;
|
|
70373
|
+
}
|
|
70374
|
+
const xml = await this.zip.file(masterPath)?.async("string");
|
|
70375
|
+
if (!xml) {
|
|
70376
|
+
return void 0;
|
|
70377
|
+
}
|
|
70378
|
+
const parsed = this.parser.parse(xml);
|
|
70379
|
+
this.masterXmlMap.set(masterPath, parsed);
|
|
70380
|
+
return parsed;
|
|
70381
|
+
}
|
|
70298
70382
|
async getMasterBackgroundImage(layoutPath) {
|
|
70299
70383
|
const layoutRels = this.slideRelsMap.get(layoutPath);
|
|
70300
70384
|
if (!layoutRels) {
|
|
@@ -70305,9 +70389,8 @@ var PptxHandlerRuntime70 = class extends PptxHandlerRuntime69 {
|
|
|
70305
70389
|
const layoutDir = layoutPath.substring(0, layoutPath.lastIndexOf("/") + 1);
|
|
70306
70390
|
const masterPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(layoutDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70307
70391
|
try {
|
|
70308
|
-
const
|
|
70309
|
-
if (
|
|
70310
|
-
const masterXmlObj = this.parser.parse(masterXmlStr);
|
|
70392
|
+
const masterXmlObj = await this.resolveCachedMasterXml(masterPath);
|
|
70393
|
+
if (masterXmlObj) {
|
|
70311
70394
|
const masterRelsPath = `${masterPath.replace("slideMasters/", "slideMasters/_rels/")}.rels`;
|
|
70312
70395
|
await this.loadSlideRelationships(masterPath, masterRelsPath);
|
|
70313
70396
|
return this.extractBackgroundImage(masterXmlObj, masterPath, "p:sldMaster");
|
|
@@ -70329,9 +70412,8 @@ var PptxHandlerRuntime70 = class extends PptxHandlerRuntime69 {
|
|
|
70329
70412
|
const slideDir = slidePath.substring(0, slidePath.lastIndexOf("/") + 1);
|
|
70330
70413
|
const layoutPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(slideDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70331
70414
|
try {
|
|
70332
|
-
const
|
|
70333
|
-
if (
|
|
70334
|
-
const layoutXmlObj = this.parser.parse(layoutXmlStr);
|
|
70415
|
+
const layoutXmlObj = await this.resolveCachedLayoutXml(layoutPath);
|
|
70416
|
+
if (layoutXmlObj) {
|
|
70335
70417
|
const layoutRelsPath = `${layoutPath.replace("slideLayouts/", "slideLayouts/_rels/")}.rels`;
|
|
70336
70418
|
await this.loadSlideRelationships(layoutPath, layoutRelsPath);
|
|
70337
70419
|
const bg = this.extractBackgroundImage(layoutXmlObj, layoutPath, "p:sldLayout");
|
|
@@ -70357,9 +70439,8 @@ var PptxHandlerRuntime70 = class extends PptxHandlerRuntime69 {
|
|
|
70357
70439
|
const slideDir = slidePath.substring(0, slidePath.lastIndexOf("/") + 1);
|
|
70358
70440
|
const layoutPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(slideDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70359
70441
|
try {
|
|
70360
|
-
const
|
|
70361
|
-
if (
|
|
70362
|
-
const layoutXmlObj = this.parser.parse(layoutXmlStr);
|
|
70442
|
+
const layoutXmlObj = await this.resolveCachedLayoutXml(layoutPath);
|
|
70443
|
+
if (layoutXmlObj) {
|
|
70363
70444
|
const layoutBg = this.extractBackgroundColor(layoutXmlObj, "p:sldLayout");
|
|
70364
70445
|
if (layoutBg) {
|
|
70365
70446
|
return layoutBg;
|
|
@@ -70386,9 +70467,8 @@ var PptxHandlerRuntime70 = class extends PptxHandlerRuntime69 {
|
|
|
70386
70467
|
const layoutDir = layoutPath.substring(0, layoutPath.lastIndexOf("/") + 1);
|
|
70387
70468
|
const masterPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(layoutDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70388
70469
|
try {
|
|
70389
|
-
const
|
|
70390
|
-
if (
|
|
70391
|
-
const masterXmlObj = this.parser.parse(masterXmlStr);
|
|
70470
|
+
const masterXmlObj = await this.resolveCachedMasterXml(masterPath);
|
|
70471
|
+
if (masterXmlObj) {
|
|
70392
70472
|
return this.extractBackgroundColor(masterXmlObj, "p:sldMaster");
|
|
70393
70473
|
}
|
|
70394
70474
|
} catch {
|
|
@@ -70413,9 +70493,8 @@ var PptxHandlerRuntime71 = class extends PptxHandlerRuntime70 {
|
|
|
70413
70493
|
const slideDir = slidePath.substring(0, slidePath.lastIndexOf("/") + 1);
|
|
70414
70494
|
const layoutPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(slideDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70415
70495
|
try {
|
|
70416
|
-
const
|
|
70417
|
-
if (
|
|
70418
|
-
const layoutXmlObj = this.parser.parse(layoutXmlStr);
|
|
70496
|
+
const layoutXmlObj = await this.resolveCachedLayoutXml(layoutPath);
|
|
70497
|
+
if (layoutXmlObj) {
|
|
70419
70498
|
const layoutGrad = this.extractBackgroundGradient(layoutXmlObj, "p:sldLayout");
|
|
70420
70499
|
if (layoutGrad) {
|
|
70421
70500
|
return layoutGrad;
|
|
@@ -70442,9 +70521,8 @@ var PptxHandlerRuntime71 = class extends PptxHandlerRuntime70 {
|
|
|
70442
70521
|
const layoutDir = layoutPath.substring(0, layoutPath.lastIndexOf("/") + 1);
|
|
70443
70522
|
const masterPath = target.startsWith("/") ? target.substring(1) : target.startsWith("..") ? this.resolvePath(layoutDir, target) : `ppt/${stripParentDirSegments(target)}`;
|
|
70444
70523
|
try {
|
|
70445
|
-
const
|
|
70446
|
-
if (
|
|
70447
|
-
const masterXmlObj = this.parser.parse(masterXmlStr);
|
|
70524
|
+
const masterXmlObj = await this.resolveCachedMasterXml(masterPath);
|
|
70525
|
+
if (masterXmlObj) {
|
|
70448
70526
|
return this.extractBackgroundGradient(masterXmlObj, "p:sldMaster");
|
|
70449
70527
|
}
|
|
70450
70528
|
} catch {
|
|
@@ -70757,11 +70835,24 @@ var PptxHandlerRuntime72 = class _PptxHandlerRuntime31 extends PptxHandlerRuntim
|
|
|
70757
70835
|
}
|
|
70758
70836
|
}
|
|
70759
70837
|
}
|
|
70760
|
-
const
|
|
70838
|
+
const defRPrSzRaw = Number.parseInt(
|
|
70839
|
+
String(
|
|
70840
|
+
levelProps["a:defRPr"]?.["@_sz"] || ""
|
|
70841
|
+
),
|
|
70842
|
+
10
|
|
70843
|
+
);
|
|
70844
|
+
const basisFontSizePx = Number.isFinite(defRPrSzRaw) ? this.pointsToPixels(defRPrSzRaw / 100) : void 0;
|
|
70845
|
+
const spcBef = this.parseParagraphSpacingPx(
|
|
70846
|
+
levelProps["a:spcBef"],
|
|
70847
|
+
basisFontSizePx
|
|
70848
|
+
);
|
|
70761
70849
|
if (spcBef !== void 0) {
|
|
70762
70850
|
style.spaceBefore = spcBef;
|
|
70763
70851
|
}
|
|
70764
|
-
const spcAft = this.parseParagraphSpacingPx(
|
|
70852
|
+
const spcAft = this.parseParagraphSpacingPx(
|
|
70853
|
+
levelProps["a:spcAft"],
|
|
70854
|
+
basisFontSizePx
|
|
70855
|
+
);
|
|
70765
70856
|
if (spcAft !== void 0) {
|
|
70766
70857
|
style.spaceAfter = spcAft;
|
|
70767
70858
|
}
|
|
Binary file
|
|
Binary file
|