pptx-react-viewer 3.17.1 → 3.18.0
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 +6 -0
- package/README.md +33 -31
- package/dist/{AiChatPanel-SINEEZBW.mjs → AiChatPanel-DDZC6IRK.mjs} +4 -4
- package/dist/AiChatPanel-DDZC6IRK.mjs.br +0 -0
- package/dist/AiChatPanel-DDZC6IRK.mjs.gz +0 -0
- package/dist/{AiChatPanel-GYH43XWW.js → AiChatPanel-T2QSCUQR.js} +25 -25
- package/dist/AiChatPanel-T2QSCUQR.js.br +0 -0
- package/dist/AiChatPanel-T2QSCUQR.js.gz +0 -0
- package/dist/{Area3DChartScene-D7GSJGPQ.js → Area3DChartScene-WEU2MP3B.js} +2 -2
- package/dist/Area3DChartScene-WEU2MP3B.js.br +0 -0
- package/dist/Area3DChartScene-WEU2MP3B.js.gz +0 -0
- package/dist/{Area3DChartScene-X5SM67PZ.mjs → Area3DChartScene-WTKQDHC7.mjs} +1 -1
- package/dist/Area3DChartScene-WTKQDHC7.mjs.br +0 -0
- package/dist/Area3DChartScene-WTKQDHC7.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-M72WQW5Y.js → Bar3DChartScene-25G6TG53.js} +2 -2
- package/dist/Bar3DChartScene-25G6TG53.js.br +0 -0
- package/dist/Bar3DChartScene-25G6TG53.js.gz +0 -0
- package/dist/{Bar3DChartScene-HWIFFGI3.mjs → Bar3DChartScene-A5ICLHXS.mjs} +1 -1
- package/dist/{Bar3DChartScene-HWIFFGI3.mjs.br → Bar3DChartScene-A5ICLHXS.mjs.br} +0 -0
- package/dist/Bar3DChartScene-A5ICLHXS.mjs.gz +0 -0
- package/dist/{GLTFLoader-374ZNTXW.mjs → GLTFLoader-IWJFC4XI.mjs} +54 -16
- package/dist/GLTFLoader-IWJFC4XI.mjs.br +0 -0
- package/dist/GLTFLoader-IWJFC4XI.mjs.gz +0 -0
- package/dist/{GLTFLoader-Q7BHCGAW.js → GLTFLoader-KY7AYPMX.js} +178 -140
- package/dist/GLTFLoader-KY7AYPMX.js.br +0 -0
- package/dist/GLTFLoader-KY7AYPMX.js.gz +0 -0
- package/dist/{Line3DChartScene-7MPZWVF3.mjs → Line3DChartScene-ARCDLHXQ.mjs} +1 -1
- package/dist/Line3DChartScene-ARCDLHXQ.mjs.br +0 -0
- package/dist/Line3DChartScene-ARCDLHXQ.mjs.gz +0 -0
- package/dist/{Line3DChartScene-YOZEEQZ3.js → Line3DChartScene-WRZ52Z2Z.js} +2 -2
- package/dist/Line3DChartScene-WRZ52Z2Z.js.br +0 -0
- package/dist/Line3DChartScene-WRZ52Z2Z.js.gz +0 -0
- package/dist/{Model3DScene-5IJSNGDZ.js → Model3DScene-JGUG5NPX.js} +2 -2
- package/dist/Model3DScene-JGUG5NPX.js.br +0 -0
- package/dist/Model3DScene-JGUG5NPX.js.gz +0 -0
- package/dist/{Model3DScene-57LVY5QW.mjs → Model3DScene-PBKBL2YU.mjs} +1 -1
- package/dist/Model3DScene-PBKBL2YU.mjs.br +0 -0
- package/dist/Model3DScene-PBKBL2YU.mjs.gz +0 -0
- package/dist/OrbitControls-2XOMWUVE.mjs +3 -0
- package/dist/OrbitControls-2XOMWUVE.mjs.br +0 -0
- package/dist/OrbitControls-2XOMWUVE.mjs.gz +0 -0
- package/dist/OrbitControls-CGYUF3BY.js +12 -0
- package/dist/OrbitControls-CGYUF3BY.js.br +0 -0
- package/dist/OrbitControls-CGYUF3BY.js.gz +0 -0
- package/dist/{PieChart3DScene-UBI6X66Q.js → PieChart3DScene-S25DNSRS.js} +2 -2
- package/dist/PieChart3DScene-S25DNSRS.js.br +0 -0
- package/dist/PieChart3DScene-S25DNSRS.js.gz +0 -0
- package/dist/{PieChart3DScene-WD5B6NP3.mjs → PieChart3DScene-ZNKXS62H.mjs} +1 -1
- package/dist/{PieChart3DScene-WD5B6NP3.mjs.br → PieChart3DScene-ZNKXS62H.mjs.br} +0 -0
- package/dist/PieChart3DScene-ZNKXS62H.mjs.gz +0 -0
- package/dist/{SmartArt3DScene-ODKCGJBO.mjs → SmartArt3DScene-QZGIABOK.mjs} +2 -2
- package/dist/SmartArt3DScene-QZGIABOK.mjs.br +0 -0
- package/dist/SmartArt3DScene-QZGIABOK.mjs.gz +0 -0
- package/dist/{SmartArt3DScene-BK7QN3WT.js → SmartArt3DScene-T236GYUT.js} +33 -33
- package/dist/SmartArt3DScene-T236GYUT.js.br +0 -0
- package/dist/SmartArt3DScene-T236GYUT.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-JZGU6BBD.mjs → SurfaceChart3DScene-EBT7RPCX.mjs} +1 -1
- package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-JGNPYQ32.js → SurfaceChart3DScene-LXBC3HMV.js} +2 -2
- package/dist/SurfaceChart3DScene-LXBC3HMV.js.br +0 -0
- package/dist/SurfaceChart3DScene-LXBC3HMV.js.gz +0 -0
- package/dist/{chunk-KVXB22D3.js → chunk-2LTTSFLD.js} +5 -5
- package/dist/chunk-2LTTSFLD.js.br +0 -0
- package/dist/chunk-2LTTSFLD.js.gz +0 -0
- package/dist/{chunk-VYSMTC5C.mjs → chunk-2OCTGK4L.mjs} +6 -110
- package/dist/chunk-2OCTGK4L.mjs.br +0 -0
- package/dist/chunk-2OCTGK4L.mjs.gz +0 -0
- package/dist/{chunk-IXKAIIA2.mjs → chunk-3KKPRPVE.mjs} +114 -126
- package/dist/chunk-3KKPRPVE.mjs.br +0 -0
- package/dist/chunk-3KKPRPVE.mjs.gz +0 -0
- package/dist/{chunk-B4QYQLZU.js → chunk-3N6AC4HA.js} +1122 -693
- package/dist/chunk-3N6AC4HA.js.br +0 -0
- package/dist/chunk-3N6AC4HA.js.gz +0 -0
- package/dist/{chunk-OAKDJYYT.mjs → chunk-5S3A6HL3.mjs} +121 -42
- package/dist/chunk-5S3A6HL3.mjs.br +0 -0
- package/dist/chunk-5S3A6HL3.mjs.gz +0 -0
- package/dist/{chunk-IRG7SIUX.js → chunk-6R2EUDJQ.js} +1399 -1411
- package/dist/chunk-6R2EUDJQ.js.br +0 -0
- package/dist/chunk-6R2EUDJQ.js.gz +0 -0
- package/dist/{chunk-XBMKFZVP.mjs → chunk-7TAWW5QQ.mjs} +1120 -694
- package/dist/chunk-7TAWW5QQ.mjs.br +0 -0
- package/dist/chunk-7TAWW5QQ.mjs.gz +0 -0
- package/dist/{chunk-64FUV37N.js → chunk-BRJN3ZMG.js} +2 -1
- package/dist/chunk-BRJN3ZMG.js.br +0 -0
- package/dist/{chunk-64FUV37N.js.gz → chunk-BRJN3ZMG.js.gz} +0 -0
- package/dist/{chunk-QTGCOL5H.mjs → chunk-GNRVDNCV.mjs} +1707 -435
- package/dist/chunk-GNRVDNCV.mjs.br +0 -0
- package/dist/chunk-GNRVDNCV.mjs.gz +0 -0
- package/dist/{chunk-6C2WYLZY.js → chunk-IXS7DALE.js} +45 -39
- package/dist/chunk-IXS7DALE.js.br +0 -0
- package/dist/chunk-IXS7DALE.js.gz +0 -0
- package/dist/{chunk-7FBKS7OS.js → chunk-LJ46KXUV.js} +179 -283
- package/dist/chunk-LJ46KXUV.js.br +0 -0
- package/dist/chunk-LJ46KXUV.js.gz +0 -0
- package/dist/{chunk-LAU34UMB.mjs → chunk-MQUTXOET.mjs} +2 -1
- package/dist/chunk-MQUTXOET.mjs.br +0 -0
- package/dist/{chunk-LAU34UMB.mjs.gz → chunk-MQUTXOET.mjs.gz} +0 -0
- package/dist/{chunk-3CBDTD46.mjs → chunk-MV2GCDBR.mjs} +8 -2
- package/dist/chunk-MV2GCDBR.mjs.br +0 -0
- package/dist/chunk-MV2GCDBR.mjs.gz +0 -0
- package/dist/{chunk-4SPZ5IZN.js → chunk-V32F4I45.js} +1713 -439
- package/dist/chunk-V32F4I45.js.br +0 -0
- package/dist/chunk-V32F4I45.js.gz +0 -0
- package/dist/{chunk-E55VEC37.js → chunk-WGBXO4LM.js} +576 -497
- package/dist/chunk-WGBXO4LM.js.br +0 -0
- package/dist/chunk-WGBXO4LM.js.gz +0 -0
- package/dist/{chunk-7YJBRPCT.mjs → chunk-WRO37U2O.mjs} +1 -1
- package/dist/chunk-WRO37U2O.mjs.br +0 -0
- package/dist/chunk-WRO37U2O.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +18 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/three.module-LGUV2LI6.mjs +2 -0
- package/dist/three.module-LGUV2LI6.mjs.br +0 -0
- package/dist/three.module-LGUV2LI6.mjs.gz +0 -0
- package/dist/{three.module-GNNNRIMK.js → three.module-YZ4M24WM.js} +454 -442
- package/dist/three.module-YZ4M24WM.js.br +0 -0
- package/dist/three.module-YZ4M24WM.js.gz +0 -0
- package/dist/{useViewerBuildingBlocks-DkUGmlkP.d.ts → useViewerBuildingBlocks-4Tj6P8Fm.d.ts} +3 -1
- package/dist/useViewerBuildingBlocks-4Tj6P8Fm.d.ts.map +1 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -3
- package/dist/AiChatPanel-GYH43XWW.js.br +0 -0
- package/dist/AiChatPanel-GYH43XWW.js.gz +0 -0
- package/dist/AiChatPanel-SINEEZBW.mjs.br +0 -0
- package/dist/AiChatPanel-SINEEZBW.mjs.gz +0 -0
- package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
- package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
- package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
- package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
- package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
- package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
- package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
- package/dist/GLTFLoader-374ZNTXW.mjs.br +0 -0
- package/dist/GLTFLoader-374ZNTXW.mjs.gz +0 -0
- package/dist/GLTFLoader-Q7BHCGAW.js.br +0 -0
- package/dist/GLTFLoader-Q7BHCGAW.js.gz +0 -0
- package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
- package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
- package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
- package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
- package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
- package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
- package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
- package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
- package/dist/OrbitControls-SMYCPLXO.js +0 -12
- package/dist/OrbitControls-SMYCPLXO.js.br +0 -3
- package/dist/OrbitControls-SMYCPLXO.js.gz +0 -0
- package/dist/OrbitControls-ZTGHPI5G.mjs +0 -3
- package/dist/OrbitControls-ZTGHPI5G.mjs.br +0 -0
- package/dist/OrbitControls-ZTGHPI5G.mjs.gz +0 -0
- package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
- package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
- package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
- package/dist/SmartArt3DScene-BK7QN3WT.js.br +0 -0
- package/dist/SmartArt3DScene-BK7QN3WT.js.gz +0 -0
- package/dist/SmartArt3DScene-ODKCGJBO.mjs.br +0 -0
- package/dist/SmartArt3DScene-ODKCGJBO.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
- package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
- package/dist/chunk-3CBDTD46.mjs.br +0 -0
- package/dist/chunk-3CBDTD46.mjs.gz +0 -0
- package/dist/chunk-4SPZ5IZN.js.br +0 -0
- package/dist/chunk-4SPZ5IZN.js.gz +0 -0
- package/dist/chunk-64FUV37N.js.br +0 -0
- package/dist/chunk-6C2WYLZY.js.br +0 -0
- package/dist/chunk-6C2WYLZY.js.gz +0 -0
- package/dist/chunk-7FBKS7OS.js.br +0 -0
- package/dist/chunk-7FBKS7OS.js.gz +0 -0
- package/dist/chunk-7YJBRPCT.mjs.br +0 -0
- package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
- package/dist/chunk-B4QYQLZU.js.br +0 -0
- package/dist/chunk-B4QYQLZU.js.gz +0 -0
- package/dist/chunk-E55VEC37.js.br +0 -0
- package/dist/chunk-E55VEC37.js.gz +0 -0
- package/dist/chunk-IRG7SIUX.js.br +0 -0
- package/dist/chunk-IRG7SIUX.js.gz +0 -0
- package/dist/chunk-IXKAIIA2.mjs.br +0 -0
- package/dist/chunk-IXKAIIA2.mjs.gz +0 -0
- package/dist/chunk-KVXB22D3.js.br +0 -0
- package/dist/chunk-KVXB22D3.js.gz +0 -0
- package/dist/chunk-LAU34UMB.mjs.br +0 -0
- package/dist/chunk-OAKDJYYT.mjs.br +0 -0
- package/dist/chunk-OAKDJYYT.mjs.gz +0 -0
- package/dist/chunk-QTGCOL5H.mjs.br +0 -0
- package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
- package/dist/chunk-VYSMTC5C.mjs.br +0 -0
- package/dist/chunk-VYSMTC5C.mjs.gz +0 -0
- package/dist/chunk-XBMKFZVP.mjs.br +0 -0
- package/dist/chunk-XBMKFZVP.mjs.gz +0 -0
- package/dist/three.module-AC7ESV4W.mjs +0 -2
- package/dist/three.module-AC7ESV4W.mjs.br +0 -0
- package/dist/three.module-AC7ESV4W.mjs.gz +0 -0
- package/dist/three.module-GNNNRIMK.js.br +0 -0
- package/dist/three.module-GNNNRIMK.js.gz +0 -0
- package/dist/useViewerBuildingBlocks-DkUGmlkP.d.ts.map +0 -1
|
@@ -8115,11 +8115,11 @@ function createBuiltinVariables(ctx) {
|
|
|
8115
8115
|
vars.set("b", h2);
|
|
8116
8116
|
vars.set("hc", w / 2);
|
|
8117
8117
|
vars.set("vc", h2 / 2);
|
|
8118
|
-
const widthDivisors = [2, 3, 4, 5, 6, 8, 10, 12];
|
|
8118
|
+
const widthDivisors = [2, 3, 4, 5, 6, 8, 10, 12, 16, 32];
|
|
8119
8119
|
for (const d of widthDivisors) {
|
|
8120
8120
|
vars.set(`wd${d}`, w / d);
|
|
8121
8121
|
}
|
|
8122
|
-
const heightDivisors = [2, 3, 4, 5, 6, 8, 10, 12];
|
|
8122
|
+
const heightDivisors = [2, 3, 4, 5, 6, 8, 10, 12, 16, 32];
|
|
8123
8123
|
for (const d of heightDivisors) {
|
|
8124
8124
|
vars.set(`hd${d}`, h2 / d);
|
|
8125
8125
|
}
|
|
@@ -37105,9 +37105,9 @@ function compoundChildIds(role, node, childrenOf) {
|
|
|
37105
37105
|
const children13 = childrenOf.get(node.id) ?? [];
|
|
37106
37106
|
const start = role.presentationOf?.start?.[chIndex] ?? 1;
|
|
37107
37107
|
const count = role.presentationOf?.count?.[chIndex];
|
|
37108
|
-
const
|
|
37108
|
+
const positions = positionRange(start, count, 1, children13.length);
|
|
37109
37109
|
const ids = [];
|
|
37110
|
-
for (const position2 of
|
|
37110
|
+
for (const position2 of positions) {
|
|
37111
37111
|
const child262 = children13[position2 - 1];
|
|
37112
37112
|
if (!child262 || child262.text.trim().length === 0) {
|
|
37113
37113
|
continue;
|
|
@@ -48828,7 +48828,7 @@ function parseValueColors(node, colorParser) {
|
|
|
48828
48828
|
return colors.length > 0 ? colors : void 0;
|
|
48829
48829
|
}
|
|
48830
48830
|
function parseValueColorPositions(node, xmlLookup) {
|
|
48831
|
-
const
|
|
48831
|
+
const positions = [];
|
|
48832
48832
|
for (const posNode of xmlLookup.getChildrenArrayByLocalName(node, "pos")) {
|
|
48833
48833
|
const kind = POSITION_KIND_MAP[String(posNode["@_type"] ?? "").trim()];
|
|
48834
48834
|
if (!kind) {
|
|
@@ -48842,9 +48842,9 @@ function parseValueColorPositions(node, xmlLookup) {
|
|
|
48842
48842
|
entry2.value = num;
|
|
48843
48843
|
}
|
|
48844
48844
|
}
|
|
48845
|
-
|
|
48845
|
+
positions.push(entry2);
|
|
48846
48846
|
}
|
|
48847
|
-
return
|
|
48847
|
+
return positions.length > 0 ? positions : void 0;
|
|
48848
48848
|
}
|
|
48849
48849
|
function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
48850
48850
|
const valueColorsNode = xmlLookup.getChildByLocalName(series, "valueColors");
|
|
@@ -48860,9 +48860,9 @@ function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
|
48860
48860
|
}
|
|
48861
48861
|
}
|
|
48862
48862
|
if (valueColorPositionsNode) {
|
|
48863
|
-
const
|
|
48864
|
-
if (
|
|
48865
|
-
result.valueColorPositions =
|
|
48863
|
+
const positions = parseValueColorPositions(valueColorPositionsNode, xmlLookup);
|
|
48864
|
+
if (positions) {
|
|
48865
|
+
result.valueColorPositions = positions;
|
|
48866
48866
|
}
|
|
48867
48867
|
}
|
|
48868
48868
|
return Object.keys(result).length > 0 ? result : void 0;
|
|
@@ -51598,6 +51598,55 @@ function toStrictNamespaceUri(uri) {
|
|
|
51598
51598
|
function isTransitionalNamespaceUri(uri) {
|
|
51599
51599
|
return TRANSITIONAL_TO_STRICT_NS.has(uri) || deriveStrictUri(uri) !== void 0;
|
|
51600
51600
|
}
|
|
51601
|
+
function isXmlWhitespace(char) {
|
|
51602
|
+
return char.trim().length === 0;
|
|
51603
|
+
}
|
|
51604
|
+
function isConvertibleAttributeName(name) {
|
|
51605
|
+
return name === "Type" || name === "uri" || name === "xmlns" || name.startsWith("xmlns:") && /^[A-Za-z_][\w.-]*$/u.test(name.slice("xmlns:".length));
|
|
51606
|
+
}
|
|
51607
|
+
function containsConvertibleStrictNamespaceAttribute(xml) {
|
|
51608
|
+
let index = 0;
|
|
51609
|
+
while (index < xml.length) {
|
|
51610
|
+
while (index < xml.length && !isXmlWhitespace(xml[index])) {
|
|
51611
|
+
index++;
|
|
51612
|
+
}
|
|
51613
|
+
while (index < xml.length && isXmlWhitespace(xml[index])) {
|
|
51614
|
+
index++;
|
|
51615
|
+
}
|
|
51616
|
+
const nameStart = index;
|
|
51617
|
+
while (index < xml.length && !isXmlWhitespace(xml[index]) && xml[index] !== "=") {
|
|
51618
|
+
index++;
|
|
51619
|
+
}
|
|
51620
|
+
const name = xml.slice(nameStart, index);
|
|
51621
|
+
if (!isConvertibleAttributeName(name)) {
|
|
51622
|
+
continue;
|
|
51623
|
+
}
|
|
51624
|
+
while (index < xml.length && isXmlWhitespace(xml[index])) {
|
|
51625
|
+
index++;
|
|
51626
|
+
}
|
|
51627
|
+
if (xml[index] !== "=") {
|
|
51628
|
+
continue;
|
|
51629
|
+
}
|
|
51630
|
+
index++;
|
|
51631
|
+
while (index < xml.length && isXmlWhitespace(xml[index])) {
|
|
51632
|
+
index++;
|
|
51633
|
+
}
|
|
51634
|
+
const quote = xml[index];
|
|
51635
|
+
if (quote !== '"' && quote !== "'") {
|
|
51636
|
+
continue;
|
|
51637
|
+
}
|
|
51638
|
+
const valueStart = ++index;
|
|
51639
|
+
const valueEnd = xml.indexOf(quote, valueStart);
|
|
51640
|
+
if (valueEnd === -1) {
|
|
51641
|
+
return false;
|
|
51642
|
+
}
|
|
51643
|
+
if (isTransitionalNamespaceUri(xml.slice(valueStart, valueEnd))) {
|
|
51644
|
+
return true;
|
|
51645
|
+
}
|
|
51646
|
+
index = valueEnd + 1;
|
|
51647
|
+
}
|
|
51648
|
+
return false;
|
|
51649
|
+
}
|
|
51601
51650
|
function convertXmlToStrict(node, setConformance = false) {
|
|
51602
51651
|
if (typeof node !== "object" || node === null || Array.isArray(node)) {
|
|
51603
51652
|
return node;
|
|
@@ -52060,6 +52109,178 @@ var init_activex_serializer = __esm({
|
|
|
52060
52109
|
"src/core/utils/activex-serializer.ts"() {
|
|
52061
52110
|
}
|
|
52062
52111
|
});
|
|
52112
|
+
function parseShapeId(value, allowZero = false) {
|
|
52113
|
+
const text22 = String(value ?? "").trim();
|
|
52114
|
+
if (!/^\d+$/.test(text22)) {
|
|
52115
|
+
return void 0;
|
|
52116
|
+
}
|
|
52117
|
+
const id = Number(text22);
|
|
52118
|
+
return Number.isSafeInteger(id) && id >= (allowZero ? 0 : 1) && id <= MAX_SHAPE_ID ? id : void 0;
|
|
52119
|
+
}
|
|
52120
|
+
function visitXmlObjects(value, visit, tag = "") {
|
|
52121
|
+
if (Array.isArray(value)) {
|
|
52122
|
+
for (const item of value) {
|
|
52123
|
+
visitXmlObjects(item, visit, tag);
|
|
52124
|
+
}
|
|
52125
|
+
} else if (value && typeof value === "object") {
|
|
52126
|
+
const node = value;
|
|
52127
|
+
visit(node, tag);
|
|
52128
|
+
for (const [key2, child262] of Object.entries(node)) {
|
|
52129
|
+
if (!key2.startsWith("@_")) {
|
|
52130
|
+
visitXmlObjects(child262, visit, key2);
|
|
52131
|
+
}
|
|
52132
|
+
}
|
|
52133
|
+
}
|
|
52134
|
+
}
|
|
52135
|
+
function remapAttribute(node, attribute6, ids) {
|
|
52136
|
+
const current = node[attribute6];
|
|
52137
|
+
if (current === void 0) {
|
|
52138
|
+
return;
|
|
52139
|
+
}
|
|
52140
|
+
const replacement = ids.get(String(current).trim());
|
|
52141
|
+
if (replacement !== void 0) {
|
|
52142
|
+
node[attribute6] = replacement;
|
|
52143
|
+
}
|
|
52144
|
+
}
|
|
52145
|
+
function remapShapeIdReferences(root, ids) {
|
|
52146
|
+
if (ids.size === 0) {
|
|
52147
|
+
return;
|
|
52148
|
+
}
|
|
52149
|
+
visitXmlObjects(root, (node, tag) => {
|
|
52150
|
+
if (ID_REFERENCE_TAGS.has(tag)) {
|
|
52151
|
+
remapAttribute(node, "@_id", ids);
|
|
52152
|
+
} else if (SPID_REFERENCE_TAGS.has(tag)) {
|
|
52153
|
+
remapAttribute(node, "@_spid", ids);
|
|
52154
|
+
} else if (tag === "pptx:animation") {
|
|
52155
|
+
for (const attribute6 of EDITOR_ANIMATION_ID_ATTRIBUTES) {
|
|
52156
|
+
remapAttribute(node, attribute6, ids);
|
|
52157
|
+
}
|
|
52158
|
+
}
|
|
52159
|
+
});
|
|
52160
|
+
}
|
|
52161
|
+
function findCnvPrNode(rawXml) {
|
|
52162
|
+
if (!rawXml) {
|
|
52163
|
+
return void 0;
|
|
52164
|
+
}
|
|
52165
|
+
for (const nvTag of NV_CONTAINER_TAGS) {
|
|
52166
|
+
const nv = rawXml[nvTag];
|
|
52167
|
+
const cNvPr = nv?.["p:cNvPr"] ?? nv?.["p14:cNvPr"];
|
|
52168
|
+
if (cNvPr) {
|
|
52169
|
+
return cNvPr;
|
|
52170
|
+
}
|
|
52171
|
+
}
|
|
52172
|
+
return void 0;
|
|
52173
|
+
}
|
|
52174
|
+
function flattenElements(elements2, out) {
|
|
52175
|
+
for (const element of elements2) {
|
|
52176
|
+
out.push(element);
|
|
52177
|
+
if (element.type === "group" && Array.isArray(element.children)) {
|
|
52178
|
+
flattenElements(element.children, out);
|
|
52179
|
+
}
|
|
52180
|
+
}
|
|
52181
|
+
}
|
|
52182
|
+
function remapElementShapeIds(elements2, ids) {
|
|
52183
|
+
if (ids.size === 0) {
|
|
52184
|
+
return 0;
|
|
52185
|
+
}
|
|
52186
|
+
const flat = [];
|
|
52187
|
+
flattenElements(elements2, flat);
|
|
52188
|
+
const declaredId = (element) => {
|
|
52189
|
+
const cNvPr = findCnvPrNode(element.rawXml);
|
|
52190
|
+
if (cNvPr?.["@_id"] !== void 0) {
|
|
52191
|
+
return String(cNvPr["@_id"]).trim();
|
|
52192
|
+
}
|
|
52193
|
+
return element.shapeId;
|
|
52194
|
+
};
|
|
52195
|
+
const holders = /* @__PURE__ */ new Map();
|
|
52196
|
+
for (const element of flat) {
|
|
52197
|
+
const declared = declaredId(element);
|
|
52198
|
+
if (declared !== void 0 && ids.has(declared)) {
|
|
52199
|
+
holders.set(declared, (holders.get(declared) ?? 0) + 1);
|
|
52200
|
+
}
|
|
52201
|
+
}
|
|
52202
|
+
const keptKeys = /* @__PURE__ */ new Set();
|
|
52203
|
+
const inPlaceRepairedIds = /* @__PURE__ */ new Set();
|
|
52204
|
+
for (const element of flat) {
|
|
52205
|
+
const rawId = findCnvPrNode(element.rawXml)?.["@_id"];
|
|
52206
|
+
if (rawId !== void 0) {
|
|
52207
|
+
inPlaceRepairedIds.add(String(rawId).trim());
|
|
52208
|
+
}
|
|
52209
|
+
}
|
|
52210
|
+
let changed = 0;
|
|
52211
|
+
for (const element of flat) {
|
|
52212
|
+
const rawXml = element.rawXml;
|
|
52213
|
+
const cNvPr = findCnvPrNode(rawXml);
|
|
52214
|
+
const rawId = cNvPr?.["@_id"] === void 0 ? void 0 : String(cNvPr["@_id"]).trim();
|
|
52215
|
+
const declared = rawId ?? element.shapeId;
|
|
52216
|
+
let touched = false;
|
|
52217
|
+
if (declared !== void 0 && ids.has(declared)) {
|
|
52218
|
+
const fresh = ids.get(declared);
|
|
52219
|
+
const retainsOldId = inPlaceRepairedIds.has(fresh);
|
|
52220
|
+
if (!retainsOldId && ((holders.get(declared) ?? 0) === 1 || keptKeys.has(declared))) {
|
|
52221
|
+
if (cNvPr && rawId !== void 0) {
|
|
52222
|
+
cNvPr["@_id"] = fresh;
|
|
52223
|
+
}
|
|
52224
|
+
if (element.shapeId !== void 0) {
|
|
52225
|
+
element.shapeId = fresh;
|
|
52226
|
+
}
|
|
52227
|
+
touched = true;
|
|
52228
|
+
} else if (!retainsOldId) {
|
|
52229
|
+
keptKeys.add(declared);
|
|
52230
|
+
}
|
|
52231
|
+
} else if (rawId !== void 0 && element.shapeId !== void 0 && element.shapeId !== rawId) {
|
|
52232
|
+
if (ids.get(element.shapeId) === rawId) {
|
|
52233
|
+
element.shapeId = rawId;
|
|
52234
|
+
touched = true;
|
|
52235
|
+
}
|
|
52236
|
+
}
|
|
52237
|
+
if (rawXml) {
|
|
52238
|
+
remapShapeIdReferences(rawXml, ids);
|
|
52239
|
+
}
|
|
52240
|
+
const style = "shapeStyle" in element ? element.shapeStyle : void 0;
|
|
52241
|
+
for (const connection of [style?.connectorStartConnection, style?.connectorEndConnection]) {
|
|
52242
|
+
const replacement = connection?.shapeId === void 0 ? void 0 : ids.get(connection.shapeId.trim());
|
|
52243
|
+
if (connection && replacement !== void 0) {
|
|
52244
|
+
connection.shapeId = replacement;
|
|
52245
|
+
touched = true;
|
|
52246
|
+
}
|
|
52247
|
+
}
|
|
52248
|
+
if (touched) {
|
|
52249
|
+
changed += 1;
|
|
52250
|
+
}
|
|
52251
|
+
}
|
|
52252
|
+
return changed;
|
|
52253
|
+
}
|
|
52254
|
+
var MAX_SHAPE_ID;
|
|
52255
|
+
var ID_REFERENCE_TAGS;
|
|
52256
|
+
var SPID_REFERENCE_TAGS;
|
|
52257
|
+
var EDITOR_ANIMATION_ID_ATTRIBUTES;
|
|
52258
|
+
var NV_CONTAINER_TAGS;
|
|
52259
|
+
var init_shape_ids = __esm({
|
|
52260
|
+
"src/core/utils/shape-ids.ts"() {
|
|
52261
|
+
MAX_SHAPE_ID = 4294967295;
|
|
52262
|
+
ID_REFERENCE_TAGS = /* @__PURE__ */ new Set(["a:stCxn", "a:endCxn"]);
|
|
52263
|
+
SPID_REFERENCE_TAGS = /* @__PURE__ */ new Set([
|
|
52264
|
+
"p:spTgt",
|
|
52265
|
+
"p:bldP",
|
|
52266
|
+
"p:bldOleChart",
|
|
52267
|
+
"p:bldDgm",
|
|
52268
|
+
"p:bldGraphic",
|
|
52269
|
+
"p:inkTgt",
|
|
52270
|
+
"p:control"
|
|
52271
|
+
]);
|
|
52272
|
+
EDITOR_ANIMATION_ID_ATTRIBUTES = ["@_elementId", "@_triggerShapeId"];
|
|
52273
|
+
NV_CONTAINER_TAGS = [
|
|
52274
|
+
"p:nvSpPr",
|
|
52275
|
+
"p:nvPicPr",
|
|
52276
|
+
"p:nvCxnSpPr",
|
|
52277
|
+
"p:nvGrpSpPr",
|
|
52278
|
+
"p:nvGraphicFramePr",
|
|
52279
|
+
"p:nvContentPartPr",
|
|
52280
|
+
"p14:nvContentPartPr"
|
|
52281
|
+
];
|
|
52282
|
+
}
|
|
52283
|
+
});
|
|
52063
52284
|
function parseKinsoku(presentationXml3) {
|
|
52064
52285
|
if (!presentationXml3) {
|
|
52065
52286
|
return void 0;
|
|
@@ -52772,6 +52993,19 @@ var init_font_substitution = __esm({
|
|
|
52772
52993
|
// fallbacks must stay condensed, or short numeric labels sized to the
|
|
52773
52994
|
// narrow face overflow their text boxes and wrap (issue #132, "77%").
|
|
52774
52995
|
"Bebas Neue": ["Oswald", "Arial Narrow", "Impact", "sans-serif"],
|
|
52996
|
+
// Office stores named Source Sans weights as separate family names (e.g. a
|
|
52997
|
+
// theme authored with "Source Sans Pro ExtraLight" as its own face), while
|
|
52998
|
+
// Google Fonts and most local installs expose the base family with a
|
|
52999
|
+
// weight axis instead. Keep the authored face first for a browser that
|
|
53000
|
+
// does have it installed under that exact name, then fall back to the
|
|
53001
|
+
// metrically compatible base family before generic sans-serif.
|
|
53002
|
+
"Source Sans Pro ExtraLight": [
|
|
53003
|
+
"Source Sans Pro",
|
|
53004
|
+
"Calibri Light",
|
|
53005
|
+
"Segoe UI Light",
|
|
53006
|
+
"Arial",
|
|
53007
|
+
"sans-serif"
|
|
53008
|
+
],
|
|
52775
53009
|
"Century Gothic": ["URW Gothic", "Futura", "sans-serif"],
|
|
52776
53010
|
Oswald: ["Agency FB", "Arial Narrow", "sans-serif"],
|
|
52777
53011
|
"Franklin Gothic": ["Liberation Sans", "Helvetica Neue", "sans-serif"],
|
|
@@ -52871,6 +53105,11 @@ var init_pptx_validator_conformance_xml = __esm({
|
|
|
52871
53105
|
};
|
|
52872
53106
|
}
|
|
52873
53107
|
});
|
|
53108
|
+
var init_pptx_validator_content_order = __esm({
|
|
53109
|
+
"src/core/utils/pptx-validator-content-order.ts"() {
|
|
53110
|
+
init_pptx_validator_conformance_xml();
|
|
53111
|
+
}
|
|
53112
|
+
});
|
|
52874
53113
|
var init_pptx_validator_facet_constants = __esm({
|
|
52875
53114
|
"src/core/utils/pptx-validator-facet-constants.ts"() {
|
|
52876
53115
|
}
|
|
@@ -52891,6 +53130,12 @@ var init_pptx_validator_mce = __esm({
|
|
|
52891
53130
|
init_pptx_validator_conformance_xml();
|
|
52892
53131
|
}
|
|
52893
53132
|
});
|
|
53133
|
+
var init_pptx_validator_slide_parts = __esm({
|
|
53134
|
+
"src/core/utils/pptx-validator-slide-parts.ts"() {
|
|
53135
|
+
init_pptx_validator_conformance_xml();
|
|
53136
|
+
init_pptx_validator_content_order();
|
|
53137
|
+
}
|
|
53138
|
+
});
|
|
52894
53139
|
var init_pptx_validator_transitions = __esm({
|
|
52895
53140
|
"src/core/utils/pptx-validator-transitions.ts"() {
|
|
52896
53141
|
init_pptx_validator_conformance_xml();
|
|
@@ -52907,9 +53152,11 @@ var init_pptx_validator_transitions = __esm({
|
|
|
52907
53152
|
var init_pptx_validator_conformance = __esm({
|
|
52908
53153
|
"src/core/utils/pptx-validator-conformance.ts"() {
|
|
52909
53154
|
init_pptx_validator_conformance_xml();
|
|
53155
|
+
init_pptx_validator_content_order();
|
|
52910
53156
|
init_pptx_validator_facets();
|
|
52911
53157
|
init_pptx_validator_helpers();
|
|
52912
53158
|
init_pptx_validator_mce();
|
|
53159
|
+
init_pptx_validator_slide_parts();
|
|
52913
53160
|
init_pptx_validator_transitions();
|
|
52914
53161
|
}
|
|
52915
53162
|
});
|
|
@@ -52982,6 +53229,192 @@ var init_pptx_validator = __esm({
|
|
|
52982
53229
|
init_pptx_validator_repair();
|
|
52983
53230
|
}
|
|
52984
53231
|
});
|
|
53232
|
+
function normalizeFace(face) {
|
|
53233
|
+
return face?.trim().toLowerCase() ?? "";
|
|
53234
|
+
}
|
|
53235
|
+
function themeFace(scheme, role, script) {
|
|
53236
|
+
const group2 = role === "major" ? scheme?.majorFont : scheme?.minorFont;
|
|
53237
|
+
return group2?.[script] || group2?.latin;
|
|
53238
|
+
}
|
|
53239
|
+
function parseThemeFontToken(token2) {
|
|
53240
|
+
const match = token2?.trim().toLowerCase().match(TOKEN_PATTERN);
|
|
53241
|
+
if (!match) {
|
|
53242
|
+
return void 0;
|
|
53243
|
+
}
|
|
53244
|
+
const role = match[1] === "mj" ? "major" : "minor";
|
|
53245
|
+
const script = match[2] === "ea" ? "eastAsia" : match[2] === "cs" ? "complexScript" : "latin";
|
|
53246
|
+
return { role, script };
|
|
53247
|
+
}
|
|
53248
|
+
function placeholderFontRole(element) {
|
|
53249
|
+
const placeholderType2 = element.placeholderType?.trim().toLowerCase();
|
|
53250
|
+
if (!placeholderType2) {
|
|
53251
|
+
return void 0;
|
|
53252
|
+
}
|
|
53253
|
+
return placeholderType2 === "title" || placeholderType2 === "ctrtitle" ? "major" : "minor";
|
|
53254
|
+
}
|
|
53255
|
+
function resolveFace(current, token2, script, oldScheme, newScheme, fallbackRole) {
|
|
53256
|
+
const parsed = parseThemeFontToken(token2);
|
|
53257
|
+
if (parsed) {
|
|
53258
|
+
const linked = themeFace(newScheme, parsed.role, parsed.script);
|
|
53259
|
+
return linked && linked !== current ? linked : void 0;
|
|
53260
|
+
}
|
|
53261
|
+
if (!fallbackRole || !current) {
|
|
53262
|
+
return void 0;
|
|
53263
|
+
}
|
|
53264
|
+
const oldFace = themeFace(oldScheme, fallbackRole, script);
|
|
53265
|
+
const newFace = themeFace(newScheme, fallbackRole, script);
|
|
53266
|
+
if (!oldFace || !newFace || normalizeFace(current) !== normalizeFace(oldFace)) {
|
|
53267
|
+
return void 0;
|
|
53268
|
+
}
|
|
53269
|
+
return newFace !== current ? newFace : void 0;
|
|
53270
|
+
}
|
|
53271
|
+
function remapTextStyleFonts(style, oldScheme, newScheme, fallbackRole) {
|
|
53272
|
+
const latin = resolveFace(
|
|
53273
|
+
style.fontFamily,
|
|
53274
|
+
style.latinFontThemeToken,
|
|
53275
|
+
"latin",
|
|
53276
|
+
oldScheme,
|
|
53277
|
+
newScheme,
|
|
53278
|
+
fallbackRole
|
|
53279
|
+
);
|
|
53280
|
+
const eastAsia = resolveFace(
|
|
53281
|
+
style.eastAsiaFont,
|
|
53282
|
+
style.eastAsiaFontThemeToken,
|
|
53283
|
+
"eastAsia",
|
|
53284
|
+
oldScheme,
|
|
53285
|
+
newScheme,
|
|
53286
|
+
fallbackRole
|
|
53287
|
+
);
|
|
53288
|
+
const complexScript = resolveFace(
|
|
53289
|
+
style.complexScriptFont,
|
|
53290
|
+
style.complexScriptFontThemeToken,
|
|
53291
|
+
"complexScript",
|
|
53292
|
+
oldScheme,
|
|
53293
|
+
newScheme,
|
|
53294
|
+
fallbackRole
|
|
53295
|
+
);
|
|
53296
|
+
if (latin === void 0 && eastAsia === void 0 && complexScript === void 0) {
|
|
53297
|
+
return style;
|
|
53298
|
+
}
|
|
53299
|
+
return {
|
|
53300
|
+
...style,
|
|
53301
|
+
...latin !== void 0 && { fontFamily: latin },
|
|
53302
|
+
...eastAsia !== void 0 && { eastAsiaFont: eastAsia },
|
|
53303
|
+
...complexScript !== void 0 && { complexScriptFont: complexScript }
|
|
53304
|
+
};
|
|
53305
|
+
}
|
|
53306
|
+
function remapSegmentFonts(segments, oldScheme, newScheme, fallbackRole) {
|
|
53307
|
+
let changed = false;
|
|
53308
|
+
const next = segments.map((segment) => {
|
|
53309
|
+
if (!segment.style) {
|
|
53310
|
+
return segment;
|
|
53311
|
+
}
|
|
53312
|
+
const style = remapTextStyleFonts(segment.style, oldScheme, newScheme, fallbackRole);
|
|
53313
|
+
if (style === segment.style) {
|
|
53314
|
+
return segment;
|
|
53315
|
+
}
|
|
53316
|
+
changed = true;
|
|
53317
|
+
return { ...segment, style };
|
|
53318
|
+
});
|
|
53319
|
+
return changed ? next : segments;
|
|
53320
|
+
}
|
|
53321
|
+
function remapTableFonts(tableData, oldScheme, newScheme) {
|
|
53322
|
+
let changed = false;
|
|
53323
|
+
const rows = tableData.rows.map((row) => {
|
|
53324
|
+
let rowChanged = false;
|
|
53325
|
+
const cells2 = row.cells.map((cell) => {
|
|
53326
|
+
const face = resolveFace(
|
|
53327
|
+
cell.style?.fontFamily,
|
|
53328
|
+
void 0,
|
|
53329
|
+
"latin",
|
|
53330
|
+
oldScheme,
|
|
53331
|
+
newScheme,
|
|
53332
|
+
"minor"
|
|
53333
|
+
);
|
|
53334
|
+
if (face === void 0) {
|
|
53335
|
+
return cell;
|
|
53336
|
+
}
|
|
53337
|
+
rowChanged = true;
|
|
53338
|
+
return { ...cell, style: { ...cell.style, fontFamily: face } };
|
|
53339
|
+
});
|
|
53340
|
+
if (!rowChanged) {
|
|
53341
|
+
return row;
|
|
53342
|
+
}
|
|
53343
|
+
changed = true;
|
|
53344
|
+
return { ...row, cells: cells2 };
|
|
53345
|
+
});
|
|
53346
|
+
return changed ? { ...tableData, rows } : tableData;
|
|
53347
|
+
}
|
|
53348
|
+
function remapElementFonts(element, oldScheme, newScheme) {
|
|
53349
|
+
const patched = { ...element };
|
|
53350
|
+
let changed = false;
|
|
53351
|
+
const fallbackRole = placeholderFontRole(element);
|
|
53352
|
+
if ("textStyle" in element && element.textStyle) {
|
|
53353
|
+
const textStyle = remapTextStyleFonts(element.textStyle, oldScheme, newScheme, fallbackRole);
|
|
53354
|
+
if (textStyle !== element.textStyle) {
|
|
53355
|
+
patched.textStyle = textStyle;
|
|
53356
|
+
changed = true;
|
|
53357
|
+
}
|
|
53358
|
+
}
|
|
53359
|
+
if ("textSegments" in element && element.textSegments) {
|
|
53360
|
+
const textSegments = remapSegmentFonts(
|
|
53361
|
+
element.textSegments,
|
|
53362
|
+
oldScheme,
|
|
53363
|
+
newScheme,
|
|
53364
|
+
fallbackRole
|
|
53365
|
+
);
|
|
53366
|
+
if (textSegments !== element.textSegments) {
|
|
53367
|
+
patched.textSegments = textSegments;
|
|
53368
|
+
changed = true;
|
|
53369
|
+
}
|
|
53370
|
+
}
|
|
53371
|
+
if (element.type === "group" && element.children) {
|
|
53372
|
+
const children13 = reResolveElementFonts(element.children, oldScheme, newScheme);
|
|
53373
|
+
if (children13 !== element.children) {
|
|
53374
|
+
patched.children = children13;
|
|
53375
|
+
changed = true;
|
|
53376
|
+
}
|
|
53377
|
+
}
|
|
53378
|
+
if (element.type === "table" && element.tableData) {
|
|
53379
|
+
const tableData = remapTableFonts(element.tableData, oldScheme, newScheme);
|
|
53380
|
+
if (tableData !== element.tableData) {
|
|
53381
|
+
patched.tableData = tableData;
|
|
53382
|
+
changed = true;
|
|
53383
|
+
}
|
|
53384
|
+
}
|
|
53385
|
+
return changed ? patched : element;
|
|
53386
|
+
}
|
|
53387
|
+
function reResolveElementFonts(elements2, oldFontScheme, newFontScheme) {
|
|
53388
|
+
let changed = false;
|
|
53389
|
+
const next = elements2.map((element) => {
|
|
53390
|
+
const remapped = remapElementFonts(element, oldFontScheme, newFontScheme);
|
|
53391
|
+
if (remapped !== element) {
|
|
53392
|
+
changed = true;
|
|
53393
|
+
}
|
|
53394
|
+
return remapped;
|
|
53395
|
+
});
|
|
53396
|
+
return changed ? next : elements2;
|
|
53397
|
+
}
|
|
53398
|
+
function reResolveSlideFonts(slides, oldFontScheme, newFontScheme) {
|
|
53399
|
+
let changed = false;
|
|
53400
|
+
const next = slides.map((slide) => {
|
|
53401
|
+
const elements2 = reResolveElementFonts(slide.elements, oldFontScheme, newFontScheme);
|
|
53402
|
+
const notesSegments = slide.notesSegments ? remapSegmentFonts(slide.notesSegments, oldFontScheme, newFontScheme, "minor") : slide.notesSegments;
|
|
53403
|
+
const notesShapes = slide.notesShapes ? reResolveElementFonts(slide.notesShapes, oldFontScheme, newFontScheme) : slide.notesShapes;
|
|
53404
|
+
if (elements2 === slide.elements && notesSegments === slide.notesSegments && notesShapes === slide.notesShapes) {
|
|
53405
|
+
return slide;
|
|
53406
|
+
}
|
|
53407
|
+
changed = true;
|
|
53408
|
+
return { ...slide, elements: elements2, notesSegments, notesShapes };
|
|
53409
|
+
});
|
|
53410
|
+
return changed ? next : slides;
|
|
53411
|
+
}
|
|
53412
|
+
var TOKEN_PATTERN;
|
|
53413
|
+
var init_theme_font_switching = __esm({
|
|
53414
|
+
"src/core/utils/theme-font-switching.ts"() {
|
|
53415
|
+
TOKEN_PATTERN = /^\+(mj|mn)-(lt|ea|cs)$/u;
|
|
53416
|
+
}
|
|
53417
|
+
});
|
|
52985
53418
|
function normalizeHex2(hex4) {
|
|
52986
53419
|
if (!hex4) {
|
|
52987
53420
|
return "";
|
|
@@ -52994,7 +53427,7 @@ function buildColorRemapTable(oldColorMap, newColorMap) {
|
|
|
52994
53427
|
for (const key2 of allKeys) {
|
|
52995
53428
|
const oldVal = normalizeHex2(oldColorMap[key2]);
|
|
52996
53429
|
const newVal = normalizeHex2(newColorMap[key2]);
|
|
52997
|
-
if (oldVal && newVal && oldVal !== newVal) {
|
|
53430
|
+
if (oldVal && newVal && oldVal !== newVal && !remap.has(oldVal)) {
|
|
52998
53431
|
remap.set(oldVal, `#${newVal}`);
|
|
52999
53432
|
remap.set(`#${oldVal}`, `#${newVal}`);
|
|
53000
53433
|
}
|
|
@@ -53212,7 +53645,8 @@ function reResolveElementColors(elements2, oldColorMap, newColorScheme) {
|
|
|
53212
53645
|
function applyThemeToData(data, newColorScheme, newFontScheme, themeName) {
|
|
53213
53646
|
const oldColorMap = data.themeColorMap ?? {};
|
|
53214
53647
|
const newColorMap = buildThemeColorMap(newColorScheme);
|
|
53215
|
-
const
|
|
53648
|
+
const recolouredSlides = reResolveSlideColors(data.slides, oldColorMap, newColorScheme);
|
|
53649
|
+
const newSlides = newFontScheme ? reResolveSlideFonts(recolouredSlides, data.theme?.fontScheme, newFontScheme) : recolouredSlides;
|
|
53216
53650
|
const newTheme = {
|
|
53217
53651
|
...data.theme,
|
|
53218
53652
|
colorScheme: newColorScheme,
|
|
@@ -53231,6 +53665,7 @@ var init_theme_switching = __esm({
|
|
|
53231
53665
|
init_theme_color_ref();
|
|
53232
53666
|
init_theme();
|
|
53233
53667
|
init_gradient_angle();
|
|
53668
|
+
init_theme_font_switching();
|
|
53234
53669
|
}
|
|
53235
53670
|
});
|
|
53236
53671
|
function applyThemeOverrideToSlide(slide, baseColorScheme, nextOverride) {
|
|
@@ -60216,6 +60651,7 @@ var init_utils = __esm({
|
|
|
60216
60651
|
init_vml_parser();
|
|
60217
60652
|
init_activex_parser();
|
|
60218
60653
|
init_activex_serializer();
|
|
60654
|
+
init_shape_ids();
|
|
60219
60655
|
init_kinsoku_parser();
|
|
60220
60656
|
init_smart_tags_parser();
|
|
60221
60657
|
init_header_footer_placeholder();
|
|
@@ -60225,6 +60661,7 @@ var init_utils = __esm({
|
|
|
60225
60661
|
init_font_substitution();
|
|
60226
60662
|
init_pptx_validator();
|
|
60227
60663
|
init_theme_switching();
|
|
60664
|
+
init_theme_font_switching();
|
|
60228
60665
|
init_slide_theme_override();
|
|
60229
60666
|
init_smartart_layout_definition();
|
|
60230
60667
|
init_smartart_definition_metadata();
|
|
@@ -60467,14 +60904,109 @@ var init_custom_geometry_live_eval = __esm({
|
|
|
60467
60904
|
ensureArray7 = (value) => ensureArrayValue(value);
|
|
60468
60905
|
}
|
|
60469
60906
|
});
|
|
60470
|
-
|
|
60471
|
-
|
|
60907
|
+
function formatCoordinate(value) {
|
|
60908
|
+
return String(Number(value.toFixed(12)));
|
|
60909
|
+
}
|
|
60910
|
+
function flipPresetPath(pathData, width, height, flipH, flipV) {
|
|
60911
|
+
const tokens = pathData.match(PATH_TOKEN);
|
|
60912
|
+
if (!tokens) {
|
|
60913
|
+
return void 0;
|
|
60472
60914
|
}
|
|
60473
|
-
|
|
60915
|
+
const output = [];
|
|
60916
|
+
let command = "";
|
|
60917
|
+
let coordinateIndex = 0;
|
|
60918
|
+
for (const token2 of tokens) {
|
|
60919
|
+
if (/^[A-Z]$/u.test(token2)) {
|
|
60920
|
+
command = token2;
|
|
60921
|
+
coordinateIndex = 0;
|
|
60922
|
+
if (!(command in COMMAND_ARITY)) {
|
|
60923
|
+
return void 0;
|
|
60924
|
+
}
|
|
60925
|
+
output.push(command);
|
|
60926
|
+
continue;
|
|
60927
|
+
}
|
|
60928
|
+
const arity = COMMAND_ARITY[command];
|
|
60929
|
+
if (!arity || coordinateIndex >= arity) {
|
|
60930
|
+
return void 0;
|
|
60931
|
+
}
|
|
60932
|
+
const value = Number(token2);
|
|
60933
|
+
const isX = coordinateIndex % 2 === 0;
|
|
60934
|
+
const flipped = isX ? flipH ? width - value : value : flipV ? height - value : value;
|
|
60935
|
+
output.push(formatCoordinate(flipped));
|
|
60936
|
+
coordinateIndex += 1;
|
|
60937
|
+
}
|
|
60938
|
+
return output.join(" ");
|
|
60939
|
+
}
|
|
60940
|
+
function evaluateConnectorPresetPath(shapeType, width, height, adjustments, flipH, flipV) {
|
|
60941
|
+
if (!CONNECTOR_PRESET.test(shapeType)) {
|
|
60942
|
+
return void 0;
|
|
60943
|
+
}
|
|
60944
|
+
const pathData = evaluatePresetShape(shapeType, width, height, adjustments)?.svgPath;
|
|
60945
|
+
if (!pathData || !flipH && !flipV) {
|
|
60946
|
+
return pathData;
|
|
60947
|
+
}
|
|
60948
|
+
return flipPresetPath(pathData, width, height, flipH, flipV);
|
|
60949
|
+
}
|
|
60950
|
+
var CONNECTOR_PRESET;
|
|
60951
|
+
var PATH_TOKEN;
|
|
60952
|
+
var COMMAND_ARITY;
|
|
60953
|
+
var init_connector_preset_geometry = __esm({
|
|
60954
|
+
"src/core/geometry/connector-preset-geometry.ts"() {
|
|
60955
|
+
init_preset_shape_evaluator();
|
|
60956
|
+
CONNECTOR_PRESET = /^(?:bent|curved)connector[2-5]$/iu;
|
|
60957
|
+
PATH_TOKEN = /[MLQCZ]|[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/giu;
|
|
60958
|
+
COMMAND_ARITY = {
|
|
60959
|
+
M: 2,
|
|
60960
|
+
L: 2,
|
|
60961
|
+
Q: 4,
|
|
60962
|
+
C: 6,
|
|
60963
|
+
Z: 0
|
|
60964
|
+
};
|
|
60965
|
+
}
|
|
60966
|
+
});
|
|
60967
|
+
function getConnectorPathGeometry(element) {
|
|
60968
|
+
const width = Math.max(element.width, 0);
|
|
60969
|
+
const height = Math.max(element.height, 0);
|
|
60970
|
+
const shapeType = element.shapeType || "";
|
|
60971
|
+
const point = (x, y) => `${x} ${y}`;
|
|
60972
|
+
const rawSpPr = element.rawXml?.["p:spPr"];
|
|
60973
|
+
const rawXfrm = rawSpPr?.["a:xfrm"];
|
|
60974
|
+
const xmlBoolean = (value) => value === true || value === 1 || value === "1" || value === "true";
|
|
60975
|
+
const flipH = element.flipHorizontal ?? xmlBoolean(rawXfrm?.["@_flipH"]);
|
|
60976
|
+
const flipV = element.flipVertical ?? xmlBoolean(rawXfrm?.["@_flipV"]);
|
|
60977
|
+
const startX2 = flipH ? width : 0;
|
|
60978
|
+
const startY = flipV ? height : 0;
|
|
60979
|
+
const endX = flipH ? 0 : width;
|
|
60980
|
+
const endY = flipV ? 0 : height;
|
|
60981
|
+
const presetPath = evaluateConnectorPresetPath(
|
|
60982
|
+
shapeType,
|
|
60983
|
+
width,
|
|
60984
|
+
height,
|
|
60985
|
+
element.shapeAdjustments,
|
|
60986
|
+
flipH,
|
|
60987
|
+
flipV
|
|
60988
|
+
);
|
|
60989
|
+
if (presetPath) {
|
|
60990
|
+
return {
|
|
60991
|
+
startX: startX2,
|
|
60992
|
+
startY,
|
|
60993
|
+
endX,
|
|
60994
|
+
endY,
|
|
60995
|
+
pathData: presetPath
|
|
60996
|
+
};
|
|
60997
|
+
}
|
|
60998
|
+
return {
|
|
60999
|
+
startX: startX2,
|
|
61000
|
+
startY,
|
|
61001
|
+
endX,
|
|
61002
|
+
endY,
|
|
61003
|
+
pathData: `M ${point(startX2, startY)} L ${point(endX, endY)}`
|
|
61004
|
+
};
|
|
61005
|
+
}
|
|
60474
61006
|
var init_connector_geometry = __esm({
|
|
60475
61007
|
"src/core/geometry/connector-geometry.ts"() {
|
|
60476
61008
|
init_color_primitives();
|
|
60477
|
-
|
|
61009
|
+
init_connector_preset_geometry();
|
|
60478
61010
|
}
|
|
60479
61011
|
});
|
|
60480
61012
|
function isTextOrientationMatrix(value) {
|
|
@@ -70081,39 +70613,76 @@ function collectCnvPrNodes(node, results, ensureArray20) {
|
|
|
70081
70613
|
}
|
|
70082
70614
|
}
|
|
70083
70615
|
}
|
|
70616
|
+
var ShapeIdAllocator;
|
|
70084
70617
|
var PptxShapeIdValidator;
|
|
70085
70618
|
var init_PptxShapeIdValidator = __esm({
|
|
70086
70619
|
"src/core/core/builders/PptxShapeIdValidator.ts"() {
|
|
70620
|
+
init_shape_ids();
|
|
70621
|
+
ShapeIdAllocator = class {
|
|
70622
|
+
constructor(used, maxId) {
|
|
70623
|
+
this.used = used;
|
|
70624
|
+
this.maxId = maxId;
|
|
70625
|
+
}
|
|
70626
|
+
used;
|
|
70627
|
+
maxId;
|
|
70628
|
+
gapCursor = 1;
|
|
70629
|
+
next() {
|
|
70630
|
+
if (this.maxId < MAX_SHAPE_ID) {
|
|
70631
|
+
this.maxId += 1;
|
|
70632
|
+
this.used.add(this.maxId);
|
|
70633
|
+
return this.maxId;
|
|
70634
|
+
}
|
|
70635
|
+
while (this.gapCursor <= MAX_SHAPE_ID && this.used.has(this.gapCursor)) {
|
|
70636
|
+
this.gapCursor += 1;
|
|
70637
|
+
}
|
|
70638
|
+
if (this.gapCursor > MAX_SHAPE_ID) {
|
|
70639
|
+
throw new Error("No free DrawingML shape id left in this shape tree.");
|
|
70640
|
+
}
|
|
70641
|
+
this.used.add(this.gapCursor);
|
|
70642
|
+
return this.gapCursor;
|
|
70643
|
+
}
|
|
70644
|
+
};
|
|
70087
70645
|
PptxShapeIdValidator = class {
|
|
70088
|
-
validateAndDeduplicateIds(spTree, ensureArray20) {
|
|
70646
|
+
validateAndDeduplicateIds(spTree, ensureArray20, referenceRoot = spTree) {
|
|
70647
|
+
return this.repairShapeIds(spTree, ensureArray20, referenceRoot).reassigned;
|
|
70648
|
+
}
|
|
70649
|
+
/**
|
|
70650
|
+
* Same repair, but also returns the old-id -> new-id map so a caller can
|
|
70651
|
+
* replay it onto state that lives outside `referenceRoot` (the live element
|
|
70652
|
+
* model, a cached `rawTiming`, typed ActiveX controls).
|
|
70653
|
+
*/
|
|
70654
|
+
repairShapeIds(spTree, ensureArray20, referenceRoot = spTree) {
|
|
70655
|
+
const ids = /* @__PURE__ */ new Map();
|
|
70089
70656
|
const cNvPrNodes = [];
|
|
70090
70657
|
collectCnvPrNodes(spTree, cNvPrNodes, ensureArray20);
|
|
70091
70658
|
if (cNvPrNodes.length === 0) {
|
|
70092
|
-
return 0;
|
|
70659
|
+
return { reassigned: 0, ids };
|
|
70093
70660
|
}
|
|
70094
70661
|
const usedIds = /* @__PURE__ */ new Set();
|
|
70095
|
-
const
|
|
70662
|
+
const invalid = [];
|
|
70096
70663
|
let maxId = 0;
|
|
70097
70664
|
for (const cNvPr of cNvPrNodes) {
|
|
70098
|
-
const
|
|
70099
|
-
|
|
70665
|
+
const id = parseShapeId(cNvPr["@_id"], true);
|
|
70666
|
+
if (id === void 0 || id === 0 || usedIds.has(id)) {
|
|
70667
|
+
invalid.push(cNvPr);
|
|
70668
|
+
continue;
|
|
70669
|
+
}
|
|
70670
|
+
usedIds.add(id);
|
|
70100
70671
|
if (id > maxId) {
|
|
70101
70672
|
maxId = id;
|
|
70102
70673
|
}
|
|
70103
|
-
if (id === 0 || usedIds.has(id)) {
|
|
70104
|
-
duplicates.push(cNvPr);
|
|
70105
|
-
} else {
|
|
70106
|
-
usedIds.add(id);
|
|
70107
|
-
}
|
|
70108
70674
|
}
|
|
70109
|
-
|
|
70110
|
-
for (const cNvPr of
|
|
70111
|
-
|
|
70112
|
-
|
|
70113
|
-
|
|
70114
|
-
|
|
70675
|
+
const allocator = new ShapeIdAllocator(usedIds, maxId);
|
|
70676
|
+
for (const cNvPr of invalid) {
|
|
70677
|
+
const oldId = String(cNvPr["@_id"] ?? "").trim();
|
|
70678
|
+
const fresh = String(allocator.next());
|
|
70679
|
+
cNvPr["@_id"] = fresh;
|
|
70680
|
+
if (oldId.length > 0) {
|
|
70681
|
+
ids.set(oldId, fresh);
|
|
70682
|
+
}
|
|
70115
70683
|
}
|
|
70116
|
-
|
|
70684
|
+
remapShapeIdReferences(referenceRoot, ids);
|
|
70685
|
+
return { reassigned: invalid.length, ids };
|
|
70117
70686
|
}
|
|
70118
70687
|
};
|
|
70119
70688
|
}
|
|
@@ -78496,6 +79065,62 @@ var init_embedded_font_list = __esm({
|
|
|
78496
79065
|
};
|
|
78497
79066
|
}
|
|
78498
79067
|
});
|
|
79068
|
+
function partRelsPath(partPath) {
|
|
79069
|
+
const lastSlash = partPath.lastIndexOf("/");
|
|
79070
|
+
if (lastSlash < 0) {
|
|
79071
|
+
return `_rels/${partPath}.rels`;
|
|
79072
|
+
}
|
|
79073
|
+
const directory = partPath.slice(0, lastSlash);
|
|
79074
|
+
const fileName = partPath.slice(lastSlash + 1);
|
|
79075
|
+
return `${directory}/_rels/${fileName}.rels`;
|
|
79076
|
+
}
|
|
79077
|
+
var init_part_rels_path = __esm({
|
|
79078
|
+
"src/core/utils/part-rels-path.ts"() {
|
|
79079
|
+
}
|
|
79080
|
+
});
|
|
79081
|
+
function isEmptyTextElement(element) {
|
|
79082
|
+
if (element.type !== "text" || !hasTextProperties(element)) {
|
|
79083
|
+
return false;
|
|
79084
|
+
}
|
|
79085
|
+
if (element.text && element.text.trim().length > 0) {
|
|
79086
|
+
return false;
|
|
79087
|
+
}
|
|
79088
|
+
return !element.textSegments?.some((segment) => segment.text.trim().length > 0);
|
|
79089
|
+
}
|
|
79090
|
+
function enrichEmptyPlaceholderPrompts(elements2, resolver) {
|
|
79091
|
+
return elements2.map((element) => {
|
|
79092
|
+
if (!isEmptyTextElement(element) || element.promptText) {
|
|
79093
|
+
return element;
|
|
79094
|
+
}
|
|
79095
|
+
const defaults = resolver.resolveDefaults(element);
|
|
79096
|
+
const placeholderType2 = resolver.placeholderType(element);
|
|
79097
|
+
if (!defaults && placeholderType2 === void 0) {
|
|
79098
|
+
return element;
|
|
79099
|
+
}
|
|
79100
|
+
const textStyle = { ...element.textStyle ?? {} };
|
|
79101
|
+
if (defaults) {
|
|
79102
|
+
resolver.applyBodyDefaults(textStyle, defaults);
|
|
79103
|
+
const firstLevel = defaults.levelStyles?.[0];
|
|
79104
|
+
if (firstLevel) {
|
|
79105
|
+
resolver.applyLevelDefaults(textStyle, firstLevel);
|
|
79106
|
+
}
|
|
79107
|
+
}
|
|
79108
|
+
const enriched = {
|
|
79109
|
+
...element,
|
|
79110
|
+
...defaults?.promptText ? { promptText: defaults.promptText } : {},
|
|
79111
|
+
...Object.keys(textStyle).length > 0 ? { textStyle } : {}
|
|
79112
|
+
};
|
|
79113
|
+
if (placeholderType2 !== void 0) {
|
|
79114
|
+
enriched.placeholderType = placeholderType2;
|
|
79115
|
+
}
|
|
79116
|
+
return enriched;
|
|
79117
|
+
});
|
|
79118
|
+
}
|
|
79119
|
+
var init_layout_switch_placeholder_prompts = __esm({
|
|
79120
|
+
"src/core/core/runtime/layout-switch-placeholder-prompts.ts"() {
|
|
79121
|
+
init_types();
|
|
79122
|
+
}
|
|
79123
|
+
});
|
|
78499
79124
|
var DEFAULT_MAX_UNCOMPRESSED_BYTES;
|
|
78500
79125
|
var MAX_ZIP_ENTRY_COUNT;
|
|
78501
79126
|
var ZipBombError;
|
|
@@ -81485,19 +82110,6 @@ var init_color_scheme_index = __esm({
|
|
|
81485
82110
|
};
|
|
81486
82111
|
}
|
|
81487
82112
|
});
|
|
81488
|
-
function partRelsPath(partPath) {
|
|
81489
|
-
const lastSlash = partPath.lastIndexOf("/");
|
|
81490
|
-
if (lastSlash < 0) {
|
|
81491
|
-
return `_rels/${partPath}.rels`;
|
|
81492
|
-
}
|
|
81493
|
-
const directory = partPath.slice(0, lastSlash);
|
|
81494
|
-
const fileName = partPath.slice(lastSlash + 1);
|
|
81495
|
-
return `${directory}/_rels/${fileName}.rels`;
|
|
81496
|
-
}
|
|
81497
|
-
var init_part_rels_path = __esm({
|
|
81498
|
-
"src/core/utils/part-rels-path.ts"() {
|
|
81499
|
-
}
|
|
81500
|
-
});
|
|
81501
82113
|
function rememberAuxiliaryMasterUnparsedNodes(runtime, partPath, nodesByTag) {
|
|
81502
82114
|
let byPart = unparsedNodesByRuntime.get(runtime);
|
|
81503
82115
|
if (!byPart) {
|
|
@@ -81555,6 +82167,16 @@ function masterPartElementSignature(elements2) {
|
|
|
81555
82167
|
return "";
|
|
81556
82168
|
}
|
|
81557
82169
|
}
|
|
82170
|
+
function templateElementSignature(element) {
|
|
82171
|
+
try {
|
|
82172
|
+
return JSON.stringify(
|
|
82173
|
+
element,
|
|
82174
|
+
(key2, value) => TEMPLATE_ELEMENT_SKIP_KEYS.has(key2) ? void 0 : value
|
|
82175
|
+
);
|
|
82176
|
+
} catch {
|
|
82177
|
+
return "";
|
|
82178
|
+
}
|
|
82179
|
+
}
|
|
81558
82180
|
function rememberMasterPartElementSignature(runtime, partPath, elements2) {
|
|
81559
82181
|
let byPart = signaturesByRuntime.get(runtime);
|
|
81560
82182
|
if (!byPart) {
|
|
@@ -81575,6 +82197,7 @@ function masterPartElementsChanged(runtime, partPath, elements2) {
|
|
|
81575
82197
|
}
|
|
81576
82198
|
var signaturesByRuntime;
|
|
81577
82199
|
var SIGNATURE_SKIP_KEYS;
|
|
82200
|
+
var TEMPLATE_ELEMENT_SKIP_KEYS;
|
|
81578
82201
|
var init_master_part_element_signature = __esm({
|
|
81579
82202
|
"src/core/core/runtime/master-part-element-signature.ts"() {
|
|
81580
82203
|
signaturesByRuntime = /* @__PURE__ */ new WeakMap();
|
|
@@ -81586,6 +82209,10 @@ var init_master_part_element_signature = __esm({
|
|
|
81586
82209
|
"posterSrc",
|
|
81587
82210
|
"thumbnailSrc"
|
|
81588
82211
|
]);
|
|
82212
|
+
TEMPLATE_ELEMENT_SKIP_KEYS = /* @__PURE__ */ new Set([
|
|
82213
|
+
...SIGNATURE_SKIP_KEYS,
|
|
82214
|
+
"shapeId"
|
|
82215
|
+
]);
|
|
81589
82216
|
}
|
|
81590
82217
|
});
|
|
81591
82218
|
function masterPartIdPrefix(rootTag2, partPath) {
|
|
@@ -82863,6 +83490,86 @@ var init_pptx_print_properties = __esm({
|
|
|
82863
83490
|
findKey13 = (node, name) => Object.keys(node).find((key2) => localName20(key2) === name);
|
|
82864
83491
|
}
|
|
82865
83492
|
});
|
|
83493
|
+
function canonicalPlaceholderType(value) {
|
|
83494
|
+
const text22 = String(value ?? "").trim();
|
|
83495
|
+
if (text22.length === 0) {
|
|
83496
|
+
return void 0;
|
|
83497
|
+
}
|
|
83498
|
+
return CANONICAL_BY_LOWER2.get(text22.toLowerCase());
|
|
83499
|
+
}
|
|
83500
|
+
function canonicalizePlaceholderTypes(root) {
|
|
83501
|
+
let changed = 0;
|
|
83502
|
+
const visit = (value, tag) => {
|
|
83503
|
+
if (Array.isArray(value)) {
|
|
83504
|
+
for (const item of value) {
|
|
83505
|
+
visit(item, tag);
|
|
83506
|
+
}
|
|
83507
|
+
return;
|
|
83508
|
+
}
|
|
83509
|
+
if (!value || typeof value !== "object") {
|
|
83510
|
+
return;
|
|
83511
|
+
}
|
|
83512
|
+
const node = value;
|
|
83513
|
+
if (tag === "p:ph" && node["@_type"] !== void 0) {
|
|
83514
|
+
const canonical = canonicalPlaceholderType(node["@_type"]);
|
|
83515
|
+
if (canonical !== void 0 && canonical !== String(node["@_type"])) {
|
|
83516
|
+
node["@_type"] = canonical;
|
|
83517
|
+
changed += 1;
|
|
83518
|
+
}
|
|
83519
|
+
}
|
|
83520
|
+
for (const [key2, child262] of Object.entries(node)) {
|
|
83521
|
+
if (!key2.startsWith("@_")) {
|
|
83522
|
+
visit(child262, key2);
|
|
83523
|
+
}
|
|
83524
|
+
}
|
|
83525
|
+
};
|
|
83526
|
+
visit(root, "");
|
|
83527
|
+
return changed;
|
|
83528
|
+
}
|
|
83529
|
+
var VALID_PLACEHOLDER_TYPES;
|
|
83530
|
+
var CANONICAL_BY_LOWER2;
|
|
83531
|
+
var init_placeholder_validation = __esm({
|
|
83532
|
+
"src/core/utils/placeholder-validation.ts"() {
|
|
83533
|
+
VALID_PLACEHOLDER_TYPES = /* @__PURE__ */ new Set([
|
|
83534
|
+
"body",
|
|
83535
|
+
"chart",
|
|
83536
|
+
"clipArt",
|
|
83537
|
+
"ctrTitle",
|
|
83538
|
+
"dgm",
|
|
83539
|
+
"dt",
|
|
83540
|
+
"ftr",
|
|
83541
|
+
"hdr",
|
|
83542
|
+
"media",
|
|
83543
|
+
"obj",
|
|
83544
|
+
"pic",
|
|
83545
|
+
"sldImg",
|
|
83546
|
+
"sldNum",
|
|
83547
|
+
"subTitle",
|
|
83548
|
+
"tbl",
|
|
83549
|
+
"title",
|
|
83550
|
+
// Additional types from extended specs
|
|
83551
|
+
"half",
|
|
83552
|
+
"qtr",
|
|
83553
|
+
"txAndClipArt",
|
|
83554
|
+
"txAndChart",
|
|
83555
|
+
"txAndMedia",
|
|
83556
|
+
"txAndObj",
|
|
83557
|
+
"txAndTwoObj",
|
|
83558
|
+
"txOverObj",
|
|
83559
|
+
"objAndTx",
|
|
83560
|
+
"twoObj",
|
|
83561
|
+
"twoObjAndObj",
|
|
83562
|
+
"twoObjAndTx",
|
|
83563
|
+
"twoObjOverTx",
|
|
83564
|
+
"objOverTx",
|
|
83565
|
+
"twoColTx",
|
|
83566
|
+
"fourObj"
|
|
83567
|
+
]);
|
|
83568
|
+
CANONICAL_BY_LOWER2 = new Map(
|
|
83569
|
+
Array.from(VALID_PLACEHOLDER_TYPES, (type) => [type.toLowerCase(), type])
|
|
83570
|
+
);
|
|
83571
|
+
}
|
|
83572
|
+
});
|
|
82866
83573
|
function elementRectEmu(el) {
|
|
82867
83574
|
return {
|
|
82868
83575
|
x: el.xEmu ?? Math.round(el.x * EMU_PER_PX),
|
|
@@ -84968,10 +85675,10 @@ var init_group_writer = __esm({
|
|
|
84968
85675
|
ZERO_RECT = { x: 0, y: 0, w: 0, h: 0 };
|
|
84969
85676
|
}
|
|
84970
85677
|
});
|
|
84971
|
-
var
|
|
85678
|
+
var ShapeIdAllocator2;
|
|
84972
85679
|
var init_shape_id_allocator = __esm({
|
|
84973
85680
|
"src/core/ppt/writer/shape-id-allocator.ts"() {
|
|
84974
|
-
|
|
85681
|
+
ShapeIdAllocator2 = class {
|
|
84975
85682
|
current;
|
|
84976
85683
|
constructor(drawingId, clusterSize) {
|
|
84977
85684
|
this.current = drawingId * clusterSize - 1;
|
|
@@ -85007,7 +85714,7 @@ function buildBackgroundShape(rgb2, allocator) {
|
|
|
85007
85714
|
return record(OA.SpContainer, data, 0, true);
|
|
85008
85715
|
}
|
|
85009
85716
|
function buildDrawing(canvasRect, shapes, backgroundRgb, fonts, drawingId, hyperlinks, oleEmbeds, mediaEmbeds) {
|
|
85010
|
-
const allocator = new
|
|
85717
|
+
const allocator = new ShapeIdAllocator2(drawingId, SHAPE_ID_CLUSTER_SIZE2);
|
|
85011
85718
|
const spgrData = new ByteWriter().bytes(buildCanvasPatriarch(allocator));
|
|
85012
85719
|
if (backgroundRgb) {
|
|
85013
85720
|
spgrData.bytes(buildBackgroundShape(backgroundRgb, allocator));
|
|
@@ -91106,7 +91813,7 @@ function scorePlaceholderMatch(element, source, target) {
|
|
|
91106
91813
|
}
|
|
91107
91814
|
const sourceType = normalizeType(source.type);
|
|
91108
91815
|
const targetType = normalizeType(target.type);
|
|
91109
|
-
let score =
|
|
91816
|
+
let score = 1;
|
|
91110
91817
|
if (source.idx !== void 0 && source.idx === target.idx) {
|
|
91111
91818
|
score += 100;
|
|
91112
91819
|
}
|
|
@@ -93638,11 +94345,97 @@ var init_SvgExporter = __esm({
|
|
|
93638
94345
|
};
|
|
93639
94346
|
}
|
|
93640
94347
|
});
|
|
94348
|
+
var TemplateElementBaselineTracker;
|
|
94349
|
+
var init_template_element_baselines = __esm({
|
|
94350
|
+
"src/core/core/runtime/template-element-baselines.ts"() {
|
|
94351
|
+
init_master_part_element_signature();
|
|
94352
|
+
TemplateElementBaselineTracker = class {
|
|
94353
|
+
/** Element id -> signature of the copy the owning part currently holds. */
|
|
94354
|
+
baselines = /* @__PURE__ */ new Map();
|
|
94355
|
+
/** Copies superseded by a written edit; skipped on every later save. */
|
|
94356
|
+
stale = /* @__PURE__ */ new WeakSet();
|
|
94357
|
+
/** Element id -> signature written back during the save in progress. */
|
|
94358
|
+
pending = /* @__PURE__ */ new Map();
|
|
94359
|
+
/** Every copy the save in progress looked at, keyed by element id. */
|
|
94360
|
+
seen = /* @__PURE__ */ new Map();
|
|
94361
|
+
/** Forget everything; called wherever the other per-load caches are cleared. */
|
|
94362
|
+
reset() {
|
|
94363
|
+
this.baselines.clear();
|
|
94364
|
+
this.pending.clear();
|
|
94365
|
+
this.seen.clear();
|
|
94366
|
+
this.stale = /* @__PURE__ */ new WeakSet();
|
|
94367
|
+
}
|
|
94368
|
+
/**
|
|
94369
|
+
* Record the as-parsed signature of freshly produced inherited copies. A
|
|
94370
|
+
* baseline is written once per id: a later re-parse of the same part (layout
|
|
94371
|
+
* switch, preview decoding) must not move it, because the part's XML may by
|
|
94372
|
+
* then already carry an edit the tracker has committed.
|
|
94373
|
+
*/
|
|
94374
|
+
recordBaselines(elements2) {
|
|
94375
|
+
for (const element of elements2) {
|
|
94376
|
+
if (!this.baselines.has(element.id)) {
|
|
94377
|
+
this.baselines.set(element.id, templateElementSignature(element));
|
|
94378
|
+
}
|
|
94379
|
+
}
|
|
94380
|
+
}
|
|
94381
|
+
/** Drop any bookkeeping left over from a save that did not complete. */
|
|
94382
|
+
beginSave() {
|
|
94383
|
+
this.pending.clear();
|
|
94384
|
+
this.seen.clear();
|
|
94385
|
+
}
|
|
94386
|
+
/**
|
|
94387
|
+
* Decide whether the save writer has to write this copy back into its
|
|
94388
|
+
* part. `false` means the part already holds it (or a newer edit of it),
|
|
94389
|
+
* so the shared `rawXml` must be left untouched.
|
|
94390
|
+
*/
|
|
94391
|
+
shouldWriteBack(element) {
|
|
94392
|
+
if (this.stale.has(element)) {
|
|
94393
|
+
return false;
|
|
94394
|
+
}
|
|
94395
|
+
const signature = templateElementSignature(element);
|
|
94396
|
+
this.remember(element, signature);
|
|
94397
|
+
const baseline = this.baselines.get(element.id);
|
|
94398
|
+
if (baseline !== void 0 && baseline === signature) {
|
|
94399
|
+
return false;
|
|
94400
|
+
}
|
|
94401
|
+
this.pending.set(element.id, signature);
|
|
94402
|
+
return true;
|
|
94403
|
+
}
|
|
94404
|
+
/**
|
|
94405
|
+
* Promote the signatures written during this save to baselines, and mark
|
|
94406
|
+
* every other copy of the same id that still matched the previous baseline
|
|
94407
|
+
* as stale.
|
|
94408
|
+
*/
|
|
94409
|
+
commitSave() {
|
|
94410
|
+
for (const [id, signature] of this.pending) {
|
|
94411
|
+
const previous = this.baselines.get(id);
|
|
94412
|
+
for (const copy2 of this.seen.get(id) ?? []) {
|
|
94413
|
+
if (copy2.signature !== signature && copy2.signature === previous) {
|
|
94414
|
+
this.stale.add(copy2.element);
|
|
94415
|
+
}
|
|
94416
|
+
}
|
|
94417
|
+
this.baselines.set(id, signature);
|
|
94418
|
+
}
|
|
94419
|
+
this.pending.clear();
|
|
94420
|
+
this.seen.clear();
|
|
94421
|
+
}
|
|
94422
|
+
remember(element, signature) {
|
|
94423
|
+
const copies = this.seen.get(element.id);
|
|
94424
|
+
if (copies) {
|
|
94425
|
+
copies.push({ element, signature });
|
|
94426
|
+
} else {
|
|
94427
|
+
this.seen.set(element.id, [{ element, signature }]);
|
|
94428
|
+
}
|
|
94429
|
+
}
|
|
94430
|
+
};
|
|
94431
|
+
}
|
|
94432
|
+
});
|
|
93641
94433
|
var PptxHandlerRuntime;
|
|
93642
94434
|
var init_PptxHandlerRuntimeState = __esm({
|
|
93643
94435
|
"src/core/core/runtime/PptxHandlerRuntimeState.ts"() {
|
|
93644
94436
|
init_utils();
|
|
93645
94437
|
init_part_rels_path();
|
|
94438
|
+
init_template_element_baselines();
|
|
93646
94439
|
PptxHandlerRuntime = class {
|
|
93647
94440
|
/** The in-memory ZIP archive representing the OPC (.pptx) package. */
|
|
93648
94441
|
zip;
|
|
@@ -93672,6 +94465,13 @@ var init_PptxHandlerRuntimeState = __esm({
|
|
|
93672
94465
|
layoutCache = /* @__PURE__ */ new Map();
|
|
93673
94466
|
/** Cached parsed master elements keyed by master archive path. */
|
|
93674
94467
|
masterCache = /* @__PURE__ */ new Map();
|
|
94468
|
+
/**
|
|
94469
|
+
* As-parsed signatures of the `layout-` / `master-` element copies merged
|
|
94470
|
+
* into slides, plus the copies a later edit has superseded. Lets the save
|
|
94471
|
+
* writer patch a shared template `rawXml` node only from the copy that was
|
|
94472
|
+
* actually edited; see `template-element-baselines.ts`.
|
|
94473
|
+
*/
|
|
94474
|
+
templateElementBaselines = new TemplateElementBaselineTracker();
|
|
93675
94475
|
/** Raw parsed layout XML objects keyed by layout archive path. */
|
|
93676
94476
|
layoutXmlMap = /* @__PURE__ */ new Map();
|
|
93677
94477
|
/** Raw parsed master XML objects keyed by master archive path. */
|
|
@@ -99520,6 +100320,7 @@ var init_PptxHandlerRuntimeTextEditing = __esm({
|
|
|
99520
100320
|
}
|
|
99521
100321
|
});
|
|
99522
100322
|
var PptxHandlerRuntime21;
|
|
100323
|
+
var NON_MATERIALIZED_PLACEHOLDER_TYPES;
|
|
99523
100324
|
var init_PptxHandlerRuntimeLayoutSwitching = __esm({
|
|
99524
100325
|
"src/core/core/runtime/PptxHandlerRuntimeLayoutSwitching.ts"() {
|
|
99525
100326
|
init_constants();
|
|
@@ -99739,11 +100540,15 @@ var init_PptxHandlerRuntimeLayoutSwitching = __esm({
|
|
|
99739
100540
|
...slot,
|
|
99740
100541
|
matched: false
|
|
99741
100542
|
}));
|
|
99742
|
-
const
|
|
99743
|
-
|
|
100543
|
+
const claimOrder = [
|
|
100544
|
+
...elements2.filter((element) => !this.isUntouchedPlaceholderPrompt(element)),
|
|
100545
|
+
...elements2.filter((element) => this.isUntouchedPlaceholderPrompt(element))
|
|
100546
|
+
];
|
|
100547
|
+
const remappedByElement = /* @__PURE__ */ new Map();
|
|
100548
|
+
for (const element of claimOrder) {
|
|
99744
100549
|
const phInfo = this.getElementPlaceholderInfo(element);
|
|
99745
100550
|
if (!phInfo) {
|
|
99746
|
-
|
|
100551
|
+
remappedByElement.set(element, element);
|
|
99747
100552
|
continue;
|
|
99748
100553
|
}
|
|
99749
100554
|
let resolvedLayoutPh;
|
|
@@ -99782,18 +100587,31 @@ var init_PptxHandlerRuntimeLayoutSwitching = __esm({
|
|
|
99782
100587
|
if (updatedElement.rawXml) {
|
|
99783
100588
|
retargetPlaceholder(updatedElement.rawXml, resolvedLayoutPh.phInfo);
|
|
99784
100589
|
}
|
|
99785
|
-
|
|
99786
|
-
|
|
99787
|
-
|
|
100590
|
+
const retyped = updatedElement;
|
|
100591
|
+
if (resolvedLayoutPh.phInfo.type) {
|
|
100592
|
+
retyped.placeholderType = resolvedLayoutPh.phInfo.type;
|
|
100593
|
+
} else {
|
|
100594
|
+
delete retyped.placeholderType;
|
|
100595
|
+
}
|
|
100596
|
+
remappedByElement.set(element, updatedElement);
|
|
100597
|
+
} else {
|
|
100598
|
+
remappedByElement.set(element, this.isUntouchedPlaceholderPrompt(element) ? null : element);
|
|
100599
|
+
}
|
|
100600
|
+
}
|
|
100601
|
+
const resultElements = [];
|
|
100602
|
+
for (const element of elements2) {
|
|
100603
|
+
const remapped = remappedByElement.get(element);
|
|
100604
|
+
if (remapped) {
|
|
100605
|
+
resultElements.push(remapped);
|
|
99788
100606
|
}
|
|
99789
100607
|
}
|
|
99790
100608
|
let slotIndex = 0;
|
|
100609
|
+
const generatedElements = [];
|
|
99791
100610
|
for (const lp of targets) {
|
|
99792
100611
|
if (lp.matched) {
|
|
99793
100612
|
continue;
|
|
99794
100613
|
}
|
|
99795
|
-
|
|
99796
|
-
if (lp.phInfo.type && skipTypes.has(lp.phInfo.type)) {
|
|
100614
|
+
if (lp.phInfo.type && NON_MATERIALIZED_PLACEHOLDER_TYPES.has(lp.phInfo.type)) {
|
|
99797
100615
|
continue;
|
|
99798
100616
|
}
|
|
99799
100617
|
const emptyElement = createEmptyPlaceholderElement(
|
|
@@ -99805,12 +100623,25 @@ var init_PptxHandlerRuntimeLayoutSwitching = __esm({
|
|
|
99805
100623
|
`${newLayoutPath}-${slotIndex++}-${Date.now()}`
|
|
99806
100624
|
);
|
|
99807
100625
|
if (emptyElement) {
|
|
99808
|
-
|
|
100626
|
+
generatedElements.push(emptyElement);
|
|
99809
100627
|
}
|
|
99810
100628
|
}
|
|
99811
|
-
return resultElements;
|
|
100629
|
+
return [...generatedElements, ...resultElements];
|
|
99812
100630
|
}
|
|
99813
100631
|
};
|
|
100632
|
+
NON_MATERIALIZED_PLACEHOLDER_TYPES = /* @__PURE__ */ new Set([
|
|
100633
|
+
"dt",
|
|
100634
|
+
"ftr",
|
|
100635
|
+
"sldnum",
|
|
100636
|
+
"hdr",
|
|
100637
|
+
"pic",
|
|
100638
|
+
"clipart",
|
|
100639
|
+
"chart",
|
|
100640
|
+
"tbl",
|
|
100641
|
+
"dgm",
|
|
100642
|
+
"media",
|
|
100643
|
+
"sldimg"
|
|
100644
|
+
]);
|
|
99814
100645
|
}
|
|
99815
100646
|
});
|
|
99816
100647
|
function writeCellFill(tcPr, style, resolveColorXml) {
|
|
@@ -103923,12 +104754,8 @@ var init_PptxHandlerRuntimeSaveDocumentParts = __esm({
|
|
|
103923
104754
|
continue;
|
|
103924
104755
|
}
|
|
103925
104756
|
const isPresentationXml = path === "ppt/presentation.xml";
|
|
103926
|
-
if (!isPresentationXml) {
|
|
103927
|
-
|
|
103928
|
-
const hasConvertibleUri = candidateUris?.some((uri) => isTransitionalNamespaceUri(uri));
|
|
103929
|
-
if (!hasConvertibleUri) {
|
|
103930
|
-
continue;
|
|
103931
|
-
}
|
|
104757
|
+
if (!isPresentationXml && !containsConvertibleStrictNamespaceAttribute(xmlText2)) {
|
|
104758
|
+
continue;
|
|
103932
104759
|
}
|
|
103933
104760
|
try {
|
|
103934
104761
|
const parsed = parse2(xmlText2);
|
|
@@ -105435,6 +106262,16 @@ var init_PptxHandlerRuntimeSaveTextWriter = __esm({
|
|
|
105435
106262
|
};
|
|
105436
106263
|
}
|
|
105437
106264
|
});
|
|
106265
|
+
function shouldWritePictureGeometry(el, spPr) {
|
|
106266
|
+
if (el.type !== "picture" && el.type !== "image") {
|
|
106267
|
+
return true;
|
|
106268
|
+
}
|
|
106269
|
+
return Boolean(spPr["a:prstGeom"] || spPr["a:custGeom"]);
|
|
106270
|
+
}
|
|
106271
|
+
var init_save_picture_geometry_gate = __esm({
|
|
106272
|
+
"src/core/core/runtime/save-picture-geometry-gate.ts"() {
|
|
106273
|
+
}
|
|
106274
|
+
});
|
|
105438
106275
|
function getMediaReferenceContainer(shape) {
|
|
105439
106276
|
if (!shape) {
|
|
105440
106277
|
return void 0;
|
|
@@ -105456,6 +106293,7 @@ var init_PptxHandlerRuntimeSaveElementEmbedding = __esm({
|
|
|
105456
106293
|
init_drawing_media_reference();
|
|
105457
106294
|
init_xml_access();
|
|
105458
106295
|
init_PptxHandlerRuntimeSaveTextWriter();
|
|
106296
|
+
init_save_picture_geometry_gate();
|
|
105459
106297
|
PptxHandlerRuntime32 = class extends PptxHandlerRuntime31 {
|
|
105460
106298
|
/** Serialize table, chart, and SmartArt data when applicable. */
|
|
105461
106299
|
applyDataSerialization(shape, el, slideId) {
|
|
@@ -105497,7 +106335,7 @@ var init_PptxHandlerRuntimeSaveElementEmbedding = __esm({
|
|
|
105497
106335
|
return;
|
|
105498
106336
|
}
|
|
105499
106337
|
const spPr = ensureXmlChild(shape, "p:spPr");
|
|
105500
|
-
if (!spPr) {
|
|
106338
|
+
if (!spPr || !shouldWritePictureGeometry(el, spPr)) {
|
|
105501
106339
|
return;
|
|
105502
106340
|
}
|
|
105503
106341
|
const elWithPaths = el;
|
|
@@ -107353,6 +108191,9 @@ var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
|
107353
108191
|
* transforms, geometry, styles, text, and sorts into collectors.
|
|
107354
108192
|
*/
|
|
107355
108193
|
processSlideElement(el, collectors, ctx) {
|
|
108194
|
+
if (this.isOwnTemplateElement(el, ctx) && !this.templateElementBaselines.shouldWriteBack(el)) {
|
|
108195
|
+
return;
|
|
108196
|
+
}
|
|
107356
108197
|
let shape = el.rawXml;
|
|
107357
108198
|
if ((el.type === "picture" || el.type === "image") && typeof el.imageData === "string") {
|
|
107358
108199
|
shape = this.processImageEmbedding(el, shape, ctx) ?? shape;
|
|
@@ -107535,6 +108376,135 @@ var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
|
107535
108376
|
};
|
|
107536
108377
|
}
|
|
107537
108378
|
});
|
|
108379
|
+
function structuralPartRootTag(path) {
|
|
108380
|
+
return PART_ROOT_BY_PATH.find(([pattern]) => pattern.test(path))?.[1];
|
|
108381
|
+
}
|
|
108382
|
+
function spTreeOfPartRoot(root) {
|
|
108383
|
+
const cSld = root?.["p:cSld"];
|
|
108384
|
+
return cSld?.["p:spTree"];
|
|
108385
|
+
}
|
|
108386
|
+
function prescanStructuralPart(xml) {
|
|
108387
|
+
let suspectIds = false;
|
|
108388
|
+
const seen = /* @__PURE__ */ new Set();
|
|
108389
|
+
for (const match of xml.matchAll(CNVPR_ID_RE)) {
|
|
108390
|
+
const id = parseShapeId(match[1] ?? match[2], true);
|
|
108391
|
+
if (id === void 0 || seen.has(id)) {
|
|
108392
|
+
suspectIds = true;
|
|
108393
|
+
break;
|
|
108394
|
+
}
|
|
108395
|
+
seen.add(id);
|
|
108396
|
+
}
|
|
108397
|
+
let placeholderCasing = false;
|
|
108398
|
+
for (const match of xml.matchAll(PH_TYPE_RE)) {
|
|
108399
|
+
const raw = match[1] ?? match[2] ?? "";
|
|
108400
|
+
const canonical = canonicalPlaceholderType(raw);
|
|
108401
|
+
if (canonical !== void 0 && canonical !== raw) {
|
|
108402
|
+
placeholderCasing = true;
|
|
108403
|
+
break;
|
|
108404
|
+
}
|
|
108405
|
+
}
|
|
108406
|
+
return { suspectIds, placeholderCasing };
|
|
108407
|
+
}
|
|
108408
|
+
function countDeclaredIds(node, counts, ensureArray20) {
|
|
108409
|
+
for (const [nvTag, cNvPrTag] of NV_CONTAINERS3) {
|
|
108410
|
+
const cNvPr = node[nvTag]?.[cNvPrTag];
|
|
108411
|
+
if (!cNvPr) {
|
|
108412
|
+
continue;
|
|
108413
|
+
}
|
|
108414
|
+
const id = parseShapeId(cNvPr["@_id"], true);
|
|
108415
|
+
if (id === void 0) {
|
|
108416
|
+
return false;
|
|
108417
|
+
}
|
|
108418
|
+
counts.set(id, (counts.get(id) ?? 0) + 1);
|
|
108419
|
+
}
|
|
108420
|
+
for (const listKey of SHAPE_LISTS) {
|
|
108421
|
+
for (const child262 of ensureArray20(node[listKey])) {
|
|
108422
|
+
if (!countDeclaredIds(child262, counts, ensureArray20)) {
|
|
108423
|
+
return false;
|
|
108424
|
+
}
|
|
108425
|
+
}
|
|
108426
|
+
}
|
|
108427
|
+
for (const envelope of ensureArray20(node["mc:AlternateContent"])) {
|
|
108428
|
+
const merged = /* @__PURE__ */ new Map();
|
|
108429
|
+
for (const branchKey of ["mc:Choice", "mc:Fallback"]) {
|
|
108430
|
+
for (const branch of ensureArray20(envelope[branchKey])) {
|
|
108431
|
+
const branchCounts = /* @__PURE__ */ new Map();
|
|
108432
|
+
if (!countDeclaredIds(branch, branchCounts, ensureArray20)) {
|
|
108433
|
+
return false;
|
|
108434
|
+
}
|
|
108435
|
+
for (const [id, count] of branchCounts) {
|
|
108436
|
+
merged.set(id, Math.max(merged.get(id) ?? 0, count));
|
|
108437
|
+
}
|
|
108438
|
+
}
|
|
108439
|
+
}
|
|
108440
|
+
for (const [id, count] of merged) {
|
|
108441
|
+
counts.set(id, (counts.get(id) ?? 0) + count);
|
|
108442
|
+
}
|
|
108443
|
+
}
|
|
108444
|
+
return true;
|
|
108445
|
+
}
|
|
108446
|
+
function hasStructuralIdDefects(spTree, ensureArray20) {
|
|
108447
|
+
const counts = /* @__PURE__ */ new Map();
|
|
108448
|
+
if (!countDeclaredIds(spTree, counts, ensureArray20)) {
|
|
108449
|
+
return true;
|
|
108450
|
+
}
|
|
108451
|
+
for (const count of counts.values()) {
|
|
108452
|
+
if (count > 1) {
|
|
108453
|
+
return true;
|
|
108454
|
+
}
|
|
108455
|
+
}
|
|
108456
|
+
return false;
|
|
108457
|
+
}
|
|
108458
|
+
function applyShapeIdMapToSlide(slide, ids) {
|
|
108459
|
+
if (ids.size === 0) {
|
|
108460
|
+
return;
|
|
108461
|
+
}
|
|
108462
|
+
remapElementShapeIds(
|
|
108463
|
+
slide.elements.filter((element) => !isTemplateElementId(element.id)),
|
|
108464
|
+
ids
|
|
108465
|
+
);
|
|
108466
|
+
if (slide.rawTiming) {
|
|
108467
|
+
remapShapeIdReferences(slide.rawTiming, ids);
|
|
108468
|
+
}
|
|
108469
|
+
for (const control of slide.activeXControls ?? []) {
|
|
108470
|
+
const replacement = control.shapeId === void 0 ? void 0 : ids.get(control.shapeId.trim());
|
|
108471
|
+
if (replacement !== void 0) {
|
|
108472
|
+
control.shapeId = replacement;
|
|
108473
|
+
}
|
|
108474
|
+
}
|
|
108475
|
+
}
|
|
108476
|
+
var PART_ROOT_BY_PATH;
|
|
108477
|
+
var CNVPR_ID_RE;
|
|
108478
|
+
var PH_TYPE_RE;
|
|
108479
|
+
var NV_CONTAINERS3;
|
|
108480
|
+
var SHAPE_LISTS;
|
|
108481
|
+
var init_save_structural_id_gate = __esm({
|
|
108482
|
+
"src/core/core/runtime/save-structural-id-gate.ts"() {
|
|
108483
|
+
init_group_ops();
|
|
108484
|
+
init_placeholder_validation();
|
|
108485
|
+
init_shape_ids();
|
|
108486
|
+
PART_ROOT_BY_PATH = [
|
|
108487
|
+
[/^ppt\/slides\/[^/]+\.xml$/u, "p:sld"],
|
|
108488
|
+
[/^ppt\/slideLayouts\/[^/]+\.xml$/u, "p:sldLayout"],
|
|
108489
|
+
[/^ppt\/slideMasters\/[^/]+\.xml$/u, "p:sldMaster"],
|
|
108490
|
+
[/^ppt\/notesSlides\/[^/]+\.xml$/u, "p:notes"],
|
|
108491
|
+
[/^ppt\/notesMasters\/[^/]+\.xml$/u, "p:notesMaster"],
|
|
108492
|
+
[/^ppt\/handoutMasters\/[^/]+\.xml$/u, "p:handoutMaster"]
|
|
108493
|
+
];
|
|
108494
|
+
CNVPR_ID_RE = /<(?:p|p14):cNvPr\b[^>]*?\sid\s*=\s*(?:"([^"]*)"|'([^']*)')/gu;
|
|
108495
|
+
PH_TYPE_RE = /<p:ph\b[^>]*?\stype\s*=\s*(?:"([^"]*)"|'([^']*)')/gu;
|
|
108496
|
+
NV_CONTAINERS3 = [
|
|
108497
|
+
["p:nvSpPr", "p:cNvPr"],
|
|
108498
|
+
["p:nvPicPr", "p:cNvPr"],
|
|
108499
|
+
["p:nvCxnSpPr", "p:cNvPr"],
|
|
108500
|
+
["p:nvGrpSpPr", "p:cNvPr"],
|
|
108501
|
+
["p:nvGraphicFramePr", "p:cNvPr"],
|
|
108502
|
+
["p:nvContentPartPr", "p:cNvPr"],
|
|
108503
|
+
["p14:nvContentPartPr", "p14:cNvPr"]
|
|
108504
|
+
];
|
|
108505
|
+
SHAPE_LISTS = ["p:sp", "p:pic", "p:cxnSp", "p:graphicFrame", "p:grpSp", "p:contentPart"];
|
|
108506
|
+
}
|
|
108507
|
+
});
|
|
107538
108508
|
function hashString(hasher, text22) {
|
|
107539
108509
|
hasher.update(`s${text22.length}:`);
|
|
107540
108510
|
if (text22.length <= FULL_HASH_LIMIT) {
|
|
@@ -108148,6 +109118,7 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
108148
109118
|
init_builders();
|
|
108149
109119
|
init_authored_slide_background();
|
|
108150
109120
|
init_PptxHandlerRuntimeSaveElementWriter();
|
|
109121
|
+
init_save_structural_id_gate();
|
|
108151
109122
|
init_slide_fingerprint();
|
|
108152
109123
|
init_slide_save_xml_order();
|
|
108153
109124
|
init_slide_transition_reconcile();
|
|
@@ -108497,11 +109468,13 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
108497
109468
|
this.wrapNewContentPartEnvelopes(spTree, collectors.contentParts);
|
|
108498
109469
|
this.wrapNewModel3DEnvelopes(spTree, collectors.model3ds);
|
|
108499
109470
|
this.wrapNewZoomEnvelopes(spTree, collectors.zooms);
|
|
108500
|
-
const reassigned = shapeIdValidator.
|
|
109471
|
+
const { reassigned, ids: reassignedIds } = shapeIdValidator.repairShapeIds(
|
|
108501
109472
|
spTree,
|
|
108502
|
-
(v) => this.ensureArray(v)
|
|
109473
|
+
(v) => this.ensureArray(v),
|
|
109474
|
+
xmlObj
|
|
108503
109475
|
);
|
|
108504
109476
|
if (reassigned > 0) {
|
|
109477
|
+
applyShapeIdMapToSlide(slide, reassignedIds);
|
|
108505
109478
|
this.compatibilityService.reportWarning({
|
|
108506
109479
|
code: "SHAPE_ID_DEDUPLICATED",
|
|
108507
109480
|
message: `Reassigned ${reassigned} duplicate shape ID(s) on slide '${slide.id}'.`,
|
|
@@ -109245,7 +110218,7 @@ function asObjects3(value) {
|
|
|
109245
110218
|
return isXmlObject9(value) ? [value] : [];
|
|
109246
110219
|
}
|
|
109247
110220
|
function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf) {
|
|
109248
|
-
const
|
|
110221
|
+
const positions = /* @__PURE__ */ new Map();
|
|
109249
110222
|
for (const [key2, value] of Object.entries(spTree)) {
|
|
109250
110223
|
if (!SHAPE_TREE_ELEMENT_TAGS.has(key2) && key2 !== ALTERNATE_CONTENT_TAG3) {
|
|
109251
110224
|
continue;
|
|
@@ -109253,7 +110226,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109253
110226
|
for (const node of asObjects3(value)) {
|
|
109254
110227
|
const position2 = positionOf(node);
|
|
109255
110228
|
if (position2 !== void 0) {
|
|
109256
|
-
|
|
110229
|
+
positions.set(node, position2);
|
|
109257
110230
|
}
|
|
109258
110231
|
}
|
|
109259
110232
|
}
|
|
@@ -109262,7 +110235,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109262
110235
|
byPart = /* @__PURE__ */ new Map();
|
|
109263
110236
|
positionsByRuntime.set(runtime, byPart);
|
|
109264
110237
|
}
|
|
109265
|
-
byPart.set(partPath,
|
|
110238
|
+
byPart.set(partPath, positions);
|
|
109266
110239
|
}
|
|
109267
110240
|
function withReplacedChild(container, tag, indexInType, replacement) {
|
|
109268
110241
|
const existing = container[tag];
|
|
@@ -109291,17 +110264,17 @@ function orderContainer(container, plan, getLocalName2) {
|
|
|
109291
110264
|
working = withReplacedChild(working, entry2.tag, entry2.indexInType, ordered4);
|
|
109292
110265
|
}
|
|
109293
110266
|
}
|
|
109294
|
-
const
|
|
110267
|
+
const positions = /* @__PURE__ */ new Map();
|
|
109295
110268
|
plan.forEach((entry2, position2) => {
|
|
109296
110269
|
const node = asObjects3(working[entry2.tag])[entry2.indexInType];
|
|
109297
|
-
if (node && !
|
|
109298
|
-
|
|
110270
|
+
if (node && !positions.has(node)) {
|
|
110271
|
+
positions.set(node, position2);
|
|
109299
110272
|
}
|
|
109300
110273
|
});
|
|
109301
|
-
if (
|
|
110274
|
+
if (positions.size === 0) {
|
|
109302
110275
|
return working;
|
|
109303
110276
|
}
|
|
109304
|
-
return orderShapeTreeChildren(working, (node) =>
|
|
110277
|
+
return orderShapeTreeChildren(working, (node) => positions.get(node), getLocalName2);
|
|
109305
110278
|
}
|
|
109306
110279
|
function orderedTemplatePartXml(options) {
|
|
109307
110280
|
const {
|
|
@@ -109354,6 +110327,7 @@ var PptxHandlerRuntime46;
|
|
|
109354
110327
|
var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
109355
110328
|
"src/core/core/runtime/PptxHandlerRuntimeSaveMasterElements.ts"() {
|
|
109356
110329
|
init_services();
|
|
110330
|
+
init_shape_ids();
|
|
109357
110331
|
init_builders();
|
|
109358
110332
|
init_auxiliary_master_node_cache();
|
|
109359
110333
|
init_master_part_element_signature();
|
|
@@ -109463,7 +110437,12 @@ var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
|
109463
110437
|
}
|
|
109464
110438
|
this.publishMasterCollectors(partPath, spTree, collectors);
|
|
109465
110439
|
this.reapplyAlternateContentEnvelopes(spTree, collectors);
|
|
109466
|
-
|
|
110440
|
+
const idRepair = shapeIdValidator2.repairShapeIds(
|
|
110441
|
+
spTree,
|
|
110442
|
+
(value) => this.ensureArray(value),
|
|
110443
|
+
root
|
|
110444
|
+
);
|
|
110445
|
+
remapElementShapeIds(elements2, idRepair.ids);
|
|
109467
110446
|
rememberTemplateSpTreePositions(this, partPath, spTree, (node) => childOrder3.positionOf(node));
|
|
109468
110447
|
relsRoot["Relationship"] = relationships;
|
|
109469
110448
|
relsData["Relationships"] = relsRoot;
|
|
@@ -110513,7 +111492,104 @@ var init_PptxHandlerRuntimeSaveLegacyPpt = __esm({
|
|
|
110513
111492
|
};
|
|
110514
111493
|
}
|
|
110515
111494
|
});
|
|
111495
|
+
var shapeIdValidator3;
|
|
110516
111496
|
var PptxHandlerRuntime53;
|
|
111497
|
+
var init_PptxHandlerRuntimeSaveStructuralIds = __esm({
|
|
111498
|
+
"src/core/core/runtime/PptxHandlerRuntimeSaveStructuralIds.ts"() {
|
|
111499
|
+
init_placeholder_validation();
|
|
111500
|
+
init_shape_ids();
|
|
111501
|
+
init_builders();
|
|
111502
|
+
init_PptxHandlerRuntimeSaveLegacyPpt();
|
|
111503
|
+
init_save_structural_id_gate();
|
|
111504
|
+
init_slide_fingerprint();
|
|
111505
|
+
init_template_sp_tree_order();
|
|
111506
|
+
shapeIdValidator3 = new PptxShapeIdValidator();
|
|
111507
|
+
PptxHandlerRuntime53 = class extends PptxHandlerRuntime52 {
|
|
111508
|
+
async repairStructuralIdsBeforeExport(slides) {
|
|
111509
|
+
for (const path of Object.keys(this.zip.files)) {
|
|
111510
|
+
const rootTag2 = structuralPartRootTag(path);
|
|
111511
|
+
if (rootTag2 === void 0) {
|
|
111512
|
+
continue;
|
|
111513
|
+
}
|
|
111514
|
+
const xml = await this.zip.file(path)?.async("string");
|
|
111515
|
+
if (xml === void 0) {
|
|
111516
|
+
continue;
|
|
111517
|
+
}
|
|
111518
|
+
const scan = prescanStructuralPart(xml);
|
|
111519
|
+
if (!scan.suspectIds && !scan.placeholderCasing) {
|
|
111520
|
+
continue;
|
|
111521
|
+
}
|
|
111522
|
+
await this.repairStructuralPart(path, rootTag2, xml, scan.suspectIds, slides);
|
|
111523
|
+
}
|
|
111524
|
+
}
|
|
111525
|
+
/** The loader's cached parse of a part, which the live model's `rawXml` nodes belong to. */
|
|
111526
|
+
cachedStructuralPart(path) {
|
|
111527
|
+
return this.slideMap.get(path) ?? this.layoutXmlMap.get(path) ?? this.masterXmlMap.get(path);
|
|
111528
|
+
}
|
|
111529
|
+
async repairStructuralPart(path, rootTag2, xml, suspectIds, slides) {
|
|
111530
|
+
const fresh = this.parser.parse(xml);
|
|
111531
|
+
const ensureArray20 = (value) => this.ensureArray(value);
|
|
111532
|
+
const freshTree = spTreeOfPartRoot(fresh[rootTag2]);
|
|
111533
|
+
const needsIds = suspectIds && freshTree !== void 0 && hasStructuralIdDefects(freshTree, ensureArray20);
|
|
111534
|
+
const cached = this.cachedStructuralPart(path);
|
|
111535
|
+
let target = cached ?? fresh;
|
|
111536
|
+
let repair = this.repairPartObject(target, rootTag2, needsIds, ensureArray20);
|
|
111537
|
+
if (repair.reassigned === 0 && repair.casing === 0 && cached !== void 0) {
|
|
111538
|
+
target = fresh;
|
|
111539
|
+
repair = this.repairPartObject(target, rootTag2, needsIds, ensureArray20);
|
|
111540
|
+
}
|
|
111541
|
+
if (repair.reassigned === 0 && repair.casing === 0) {
|
|
111542
|
+
return;
|
|
111543
|
+
}
|
|
111544
|
+
if (repair.ids.size > 0) {
|
|
111545
|
+
const slide = slides.find((candidate) => candidate.id === path);
|
|
111546
|
+
if (slide) {
|
|
111547
|
+
applyShapeIdMapToSlide(slide, repair.ids);
|
|
111548
|
+
this.savedSlideFingerprints.set(slide.id, fingerprintSlide(slide));
|
|
111549
|
+
}
|
|
111550
|
+
const templateElements = this.layoutCache.get(path) ?? this.masterCache.get(path);
|
|
111551
|
+
if (templateElements) {
|
|
111552
|
+
remapElementShapeIds(templateElements, repair.ids);
|
|
111553
|
+
}
|
|
111554
|
+
}
|
|
111555
|
+
const ordered4 = orderedTemplatePartXml({
|
|
111556
|
+
runtime: this,
|
|
111557
|
+
partPath: path,
|
|
111558
|
+
xmlObj: target,
|
|
111559
|
+
rootTag: rootTag2,
|
|
111560
|
+
sourceXml: xml,
|
|
111561
|
+
getLocalName: (key2) => this.compatibilityService.getXmlLocalName(key2),
|
|
111562
|
+
alternateContentBlockByRawXml: this.alternateContentBlockByRawXml
|
|
111563
|
+
});
|
|
111564
|
+
this.zip.file(path, this.builder.build(ordered4));
|
|
111565
|
+
if (repair.reassigned > 0) {
|
|
111566
|
+
this.compatibilityService.reportWarning({
|
|
111567
|
+
code: "SHAPE_ID_DEDUPLICATED",
|
|
111568
|
+
message: `Reassigned ${repair.reassigned} invalid or duplicate shape ID(s) in '${path}'.`,
|
|
111569
|
+
scope: "save",
|
|
111570
|
+
slideId: path
|
|
111571
|
+
});
|
|
111572
|
+
}
|
|
111573
|
+
if (repair.casing > 0) {
|
|
111574
|
+
this.compatibilityService.reportWarning({
|
|
111575
|
+
code: "PLACEHOLDER_TYPE_CANONICALIZED",
|
|
111576
|
+
message: `Corrected the casing of ${repair.casing} placeholder type(s) in '${path}'.`,
|
|
111577
|
+
scope: "save",
|
|
111578
|
+
slideId: path
|
|
111579
|
+
});
|
|
111580
|
+
}
|
|
111581
|
+
}
|
|
111582
|
+
repairPartObject(xmlObj, rootTag2, needsIds, ensureArray20) {
|
|
111583
|
+
const root = xmlObj[rootTag2];
|
|
111584
|
+
const spTree = spTreeOfPartRoot(root);
|
|
111585
|
+
const idRepair = needsIds && root !== void 0 && spTree !== void 0 ? shapeIdValidator3.repairShapeIds(spTree, ensureArray20, root) : { reassigned: 0, ids: /* @__PURE__ */ new Map() };
|
|
111586
|
+
const casing = root === void 0 ? 0 : canonicalizePlaceholderTypes(root);
|
|
111587
|
+
return { ...idRepair, casing };
|
|
111588
|
+
}
|
|
111589
|
+
};
|
|
111590
|
+
}
|
|
111591
|
+
});
|
|
111592
|
+
var PptxHandlerRuntime54;
|
|
110517
111593
|
var init_PptxHandlerRuntimeSavePipeline = __esm({
|
|
110518
111594
|
"src/core/core/runtime/PptxHandlerRuntimeSavePipeline.ts"() {
|
|
110519
111595
|
init_modern_comment_package();
|
|
@@ -110521,8 +111597,8 @@ var init_PptxHandlerRuntimeSavePipeline = __esm({
|
|
|
110521
111597
|
init_factories();
|
|
110522
111598
|
init_header_footer_parts();
|
|
110523
111599
|
init_pptx_print_properties();
|
|
110524
|
-
|
|
110525
|
-
|
|
111600
|
+
init_PptxHandlerRuntimeSaveStructuralIds();
|
|
111601
|
+
PptxHandlerRuntime54 = class _PptxHandlerRuntime extends PptxHandlerRuntime53 {
|
|
110526
111602
|
/**
|
|
110527
111603
|
* Resolve the effective conformance class for this save operation.
|
|
110528
111604
|
*
|
|
@@ -110561,9 +111637,11 @@ var init_PptxHandlerRuntimeSavePipeline = __esm({
|
|
|
110561
111637
|
});
|
|
110562
111638
|
await this.ensureNotesMasterForAuthoredNotes(slides, saveConstants);
|
|
110563
111639
|
await this.ensureHandoutMasterInfrastructure(options?.handoutMaster, saveConstants);
|
|
111640
|
+
this.templateElementBaselines.beginSave();
|
|
110564
111641
|
for (const slide of slides) {
|
|
110565
111642
|
await this.processSlideForSave(slide, saveSession, saveConstants);
|
|
110566
111643
|
}
|
|
111644
|
+
this.templateElementBaselines.commitSave();
|
|
110567
111645
|
const contentTypesXml3 = await this.zip.file("[Content_Types].xml")?.async("string");
|
|
110568
111646
|
if (contentTypesXml3) {
|
|
110569
111647
|
const contentTypesData = this.parser.parse(contentTypesXml3);
|
|
@@ -110727,6 +111805,7 @@ var init_PptxHandlerRuntimeSavePipeline = __esm({
|
|
|
110727
111805
|
await this.stripDigitalSignatures();
|
|
110728
111806
|
const outputFormat = options?.outputFormat ?? "pptx";
|
|
110729
111807
|
await this.applyOutputFormatOverrides(outputFormat);
|
|
111808
|
+
await this.repairStructuralIdsBeforeExport(slides);
|
|
110730
111809
|
if (effectiveConformance === "strict") {
|
|
110731
111810
|
await this.convertZipToStrictConformance();
|
|
110732
111811
|
}
|
|
@@ -110810,14 +111889,14 @@ var init_PptxHandlerRuntimeSavePipeline = __esm({
|
|
|
110810
111889
|
}
|
|
110811
111890
|
});
|
|
110812
111891
|
var SPECIAL_PLACEHOLDER_TYPES;
|
|
110813
|
-
var
|
|
111892
|
+
var PptxHandlerRuntime55;
|
|
110814
111893
|
var init_PptxHandlerRuntimeElementParsing = __esm({
|
|
110815
111894
|
"src/core/core/runtime/PptxHandlerRuntimeElementParsing.ts"() {
|
|
110816
111895
|
init_utils();
|
|
110817
111896
|
init_placeholder_index();
|
|
110818
111897
|
init_PptxHandlerRuntimeSavePipeline();
|
|
110819
111898
|
SPECIAL_PLACEHOLDER_TYPES = /* @__PURE__ */ new Set(["dt", "ftr", "hdr", "sldnum"]);
|
|
110820
|
-
|
|
111899
|
+
PptxHandlerRuntime55 = class _PptxHandlerRuntime extends PptxHandlerRuntime54 {
|
|
110821
111900
|
/**
|
|
110822
111901
|
* Parse media data (video/audio path and MIME type) from graphic frame data.
|
|
110823
111902
|
*/
|
|
@@ -111112,11 +112191,11 @@ function readBoolean(value) {
|
|
|
111112
112191
|
}
|
|
111113
112192
|
return String(value) !== "0" && String(value).toLowerCase() !== "false";
|
|
111114
112193
|
}
|
|
111115
|
-
var
|
|
112194
|
+
var PptxHandlerRuntime56;
|
|
111116
112195
|
var init_PptxHandlerRuntimeZoomParsing = __esm({
|
|
111117
112196
|
"src/core/core/runtime/PptxHandlerRuntimeZoomParsing.ts"() {
|
|
111118
112197
|
init_PptxHandlerRuntimeElementParsing();
|
|
111119
|
-
|
|
112198
|
+
PptxHandlerRuntime56 = class _PptxHandlerRuntime extends PptxHandlerRuntime55 {
|
|
111120
112199
|
/** Parse an Office 2016 `pslz:sldZm` slide Zoom object. */
|
|
111121
112200
|
async parseSlideZoomElement(zoom, id, slidePath) {
|
|
111122
112201
|
try {
|
|
@@ -111183,12 +112262,12 @@ function readBoolean2(value) {
|
|
|
111183
112262
|
}
|
|
111184
112263
|
return String(value) !== "0" && String(value).toLowerCase() !== "false";
|
|
111185
112264
|
}
|
|
111186
|
-
var
|
|
112265
|
+
var PptxHandlerRuntime57;
|
|
111187
112266
|
var init_PptxHandlerRuntimeSectionZoomParsing = __esm({
|
|
111188
112267
|
"src/core/core/runtime/PptxHandlerRuntimeSectionZoomParsing.ts"() {
|
|
111189
112268
|
init_presentation_section_parser();
|
|
111190
112269
|
init_PptxHandlerRuntimeZoomParsing();
|
|
111191
|
-
|
|
112270
|
+
PptxHandlerRuntime57 = class _PptxHandlerRuntime extends PptxHandlerRuntime56 {
|
|
111192
112271
|
/** Parse an Office 2016 `psezm:sectionZm` section Zoom object. */
|
|
111193
112272
|
async parseSectionZoomElement(zoom, id, slidePath) {
|
|
111194
112273
|
try {
|
|
@@ -111248,12 +112327,12 @@ var init_PptxHandlerRuntimeSectionZoomParsing = __esm({
|
|
|
111248
112327
|
};
|
|
111249
112328
|
}
|
|
111250
112329
|
});
|
|
111251
|
-
var
|
|
112330
|
+
var PptxHandlerRuntime58;
|
|
111252
112331
|
var init_PptxHandlerRuntimeSummaryZoomParsing = __esm({
|
|
111253
112332
|
"src/core/core/runtime/PptxHandlerRuntimeSummaryZoomParsing.ts"() {
|
|
111254
112333
|
init_presentation_section_parser();
|
|
111255
112334
|
init_PptxHandlerRuntimeSectionZoomParsing();
|
|
111256
|
-
|
|
112335
|
+
PptxHandlerRuntime58 = class _PptxHandlerRuntime extends PptxHandlerRuntime57 {
|
|
111257
112336
|
/** Parse an Office 2016 Summary Zoom container and all section tiles. */
|
|
111258
112337
|
async parseSummaryZoomElement(zoom, id, slidePath) {
|
|
111259
112338
|
try {
|
|
@@ -111344,7 +112423,7 @@ var init_PptxHandlerRuntimeSummaryZoomParsing = __esm({
|
|
|
111344
112423
|
}
|
|
111345
112424
|
});
|
|
111346
112425
|
var PLACEHOLDER_BUCKETS;
|
|
111347
|
-
var
|
|
112426
|
+
var PptxHandlerRuntime59;
|
|
111348
112427
|
var init_PptxHandlerRuntimePlaceholderLookup = __esm({
|
|
111349
112428
|
"src/core/core/runtime/PptxHandlerRuntimePlaceholderLookup.ts"() {
|
|
111350
112429
|
init_header_footer_placeholder();
|
|
@@ -111357,7 +112436,7 @@ var init_PptxHandlerRuntimePlaceholderLookup = __esm({
|
|
|
111357
112436
|
{ bucket: "p:pic", nvKey: "p:nvPicPr", contextKey: "picture" },
|
|
111358
112437
|
{ bucket: "p:graphicFrame", nvKey: "p:nvGraphicFramePr", contextKey: "graphicFrame" }
|
|
111359
112438
|
];
|
|
111360
|
-
|
|
112439
|
+
PptxHandlerRuntime59 = class extends PptxHandlerRuntime58 {
|
|
111361
112440
|
findPlaceholderInShapeTree(spTree, expected) {
|
|
111362
112441
|
return this.scanPlaceholderBuckets(spTree, (info) => this.placeholderMatches(expected, info));
|
|
111363
112442
|
}
|
|
@@ -111590,14 +112669,22 @@ var init_preset_avlst_fmla = __esm({
|
|
|
111590
112669
|
]);
|
|
111591
112670
|
}
|
|
111592
112671
|
});
|
|
111593
|
-
|
|
112672
|
+
function parseBoundedRectFraction(value) {
|
|
112673
|
+
const fraction = parseOoxmlPercent(value);
|
|
112674
|
+
if (fraction === void 0) {
|
|
112675
|
+
return void 0;
|
|
112676
|
+
}
|
|
112677
|
+
return Math.max(-10, Math.min(10, fraction));
|
|
112678
|
+
}
|
|
112679
|
+
var PptxHandlerRuntime60;
|
|
111594
112680
|
var init_PptxHandlerRuntimeGeometryParsing = __esm({
|
|
111595
112681
|
"src/core/core/runtime/PptxHandlerRuntimeGeometryParsing.ts"() {
|
|
112682
|
+
init_color_primitives();
|
|
111596
112683
|
init_custom_geometry_parser();
|
|
111597
112684
|
init_guide_formula();
|
|
111598
112685
|
init_PptxHandlerRuntimePlaceholderLookup();
|
|
111599
112686
|
init_preset_avlst_fmla();
|
|
111600
|
-
|
|
112687
|
+
PptxHandlerRuntime60 = class _PptxHandlerRuntime extends PptxHandlerRuntime59 {
|
|
111601
112688
|
parseGeometryAdjustments(prstGeom) {
|
|
111602
112689
|
if (!prstGeom) {
|
|
111603
112690
|
return void 0;
|
|
@@ -111968,11 +113055,7 @@ var init_PptxHandlerRuntimeGeometryParsing = __esm({
|
|
|
111968
113055
|
* hostile input.
|
|
111969
113056
|
*/
|
|
111970
113057
|
parseCropFraction(value) {
|
|
111971
|
-
|
|
111972
|
-
if (!Number.isFinite(raw)) {
|
|
111973
|
-
return void 0;
|
|
111974
|
-
}
|
|
111975
|
-
return Math.max(-1e6, Math.min(1e6, raw)) / 1e5;
|
|
113058
|
+
return parseBoundedRectFraction(value);
|
|
111976
113059
|
}
|
|
111977
113060
|
readImageCropFromBlipFill(blipFill) {
|
|
111978
113061
|
const result = {};
|
|
@@ -111999,11 +113082,7 @@ var init_PptxHandlerRuntimeGeometryParsing = __esm({
|
|
|
111999
113082
|
* magnitude is capped at 10x the frame to bound hostile input.
|
|
112000
113083
|
*/
|
|
112001
113084
|
parseSignedRectFraction(value) {
|
|
112002
|
-
|
|
112003
|
-
if (!Number.isFinite(raw)) {
|
|
112004
|
-
return void 0;
|
|
112005
|
-
}
|
|
112006
|
-
return Math.max(-1e6, Math.min(1e6, raw)) / 1e5;
|
|
113085
|
+
return parseBoundedRectFraction(value);
|
|
112007
113086
|
}
|
|
112008
113087
|
extractShapeStyle(spPr, styleNode) {
|
|
112009
113088
|
return this.shapeStyleExtractor.extractShapeStyle(spPr, styleNode);
|
|
@@ -112011,12 +113090,12 @@ var init_PptxHandlerRuntimeGeometryParsing = __esm({
|
|
|
112011
113090
|
};
|
|
112012
113091
|
}
|
|
112013
113092
|
});
|
|
112014
|
-
var
|
|
113093
|
+
var PptxHandlerRuntime61;
|
|
112015
113094
|
var init_PptxHandlerRuntimeShapeImageFill = __esm({
|
|
112016
113095
|
"src/core/core/runtime/PptxHandlerRuntimeShapeImageFill.ts"() {
|
|
112017
113096
|
init_xml_access();
|
|
112018
113097
|
init_PptxHandlerRuntimeGeometryParsing();
|
|
112019
|
-
|
|
113098
|
+
PptxHandlerRuntime61 = class _PptxHandlerRuntime extends PptxHandlerRuntime60 {
|
|
112020
113099
|
/**
|
|
112021
113100
|
* Parse a shape that has an image fill (a:blipFill inside spPr)
|
|
112022
113101
|
* This handles shapes like rectangles filled with images (e.g., wood texture backgrounds)
|
|
@@ -112228,12 +113307,12 @@ var init_PptxHandlerRuntimeShapeImageFill = __esm({
|
|
|
112228
113307
|
};
|
|
112229
113308
|
}
|
|
112230
113309
|
});
|
|
112231
|
-
var
|
|
113310
|
+
var PptxHandlerRuntime62;
|
|
112232
113311
|
var init_PptxHandlerRuntimeTextDefaults = __esm({
|
|
112233
113312
|
"src/core/core/runtime/PptxHandlerRuntimeTextDefaults.ts"() {
|
|
112234
113313
|
init_color();
|
|
112235
113314
|
init_PptxHandlerRuntimeShapeImageFill();
|
|
112236
|
-
|
|
113315
|
+
PptxHandlerRuntime62 = class extends PptxHandlerRuntime61 {
|
|
112237
113316
|
/**
|
|
112238
113317
|
* Apply {@link PlaceholderDefaults} body-level properties to a
|
|
112239
113318
|
* {@link TextStyle} as fallback values (only sets fields that are
|
|
@@ -112410,7 +113489,7 @@ var init_PptxHandlerRuntimeTextDefaults = __esm({
|
|
|
112410
113489
|
};
|
|
112411
113490
|
}
|
|
112412
113491
|
});
|
|
112413
|
-
var
|
|
113492
|
+
var PptxHandlerRuntime63;
|
|
112414
113493
|
var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
112415
113494
|
"src/core/core/runtime/PptxHandlerRuntimeBulletParsing.ts"() {
|
|
112416
113495
|
init_theme_color_ref();
|
|
@@ -112419,7 +113498,7 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
112419
113498
|
init_paragraph_properties_parser();
|
|
112420
113499
|
init_xml_access();
|
|
112421
113500
|
init_PptxHandlerRuntimeTextDefaults();
|
|
112422
|
-
|
|
113501
|
+
PptxHandlerRuntime63 = class extends PptxHandlerRuntime62 {
|
|
112423
113502
|
resolveParagraphBulletInfo(paragraph, paragraphIndex, txBody, inheritedTxBody, isBodyPlaceholder = false, slidePath, effectiveLevelStyles) {
|
|
112424
113503
|
if (!paragraph) {
|
|
112425
113504
|
return null;
|
|
@@ -112618,7 +113697,7 @@ var init_PptxHandlerRuntimeBulletParsing = __esm({
|
|
|
112618
113697
|
};
|
|
112619
113698
|
}
|
|
112620
113699
|
});
|
|
112621
|
-
var
|
|
113700
|
+
var PptxHandlerRuntime64;
|
|
112622
113701
|
var init_PptxHandlerRuntimeShapeBodyParsing = __esm({
|
|
112623
113702
|
"src/core/core/runtime/PptxHandlerRuntimeShapeBodyParsing.ts"() {
|
|
112624
113703
|
init_alternate_content();
|
|
@@ -112626,7 +113705,7 @@ var init_PptxHandlerRuntimeShapeBodyParsing = __esm({
|
|
|
112626
113705
|
init_text_body_scene3d();
|
|
112627
113706
|
init_text_body_sp3d();
|
|
112628
113707
|
init_PptxHandlerRuntimeBulletParsing();
|
|
112629
|
-
|
|
113708
|
+
PptxHandlerRuntime64 = class _PptxHandlerRuntime extends PptxHandlerRuntime63 {
|
|
112630
113709
|
/**
|
|
112631
113710
|
* Parse `a:spLocks` attributes into a structured {@link PptxShapeLocks} object.
|
|
112632
113711
|
* Returns `undefined` when the node is absent or contains no lock attributes.
|
|
@@ -112847,12 +113926,12 @@ var init_PptxHandlerRuntimeShapeBodyParsing = __esm({
|
|
|
112847
113926
|
};
|
|
112848
113927
|
}
|
|
112849
113928
|
});
|
|
112850
|
-
var
|
|
113929
|
+
var PptxHandlerRuntime65;
|
|
112851
113930
|
var init_PptxHandlerRuntimeShapeTextParsing = __esm({
|
|
112852
113931
|
"src/core/core/runtime/PptxHandlerRuntimeShapeTextParsing.ts"() {
|
|
112853
113932
|
init_paragraph_properties_parser();
|
|
112854
113933
|
init_PptxHandlerRuntimeShapeBodyParsing();
|
|
112855
|
-
|
|
113934
|
+
PptxHandlerRuntime65 = class _PptxHandlerRuntime extends PptxHandlerRuntime64 {
|
|
112856
113935
|
/**
|
|
112857
113936
|
* A copy of an `a:lstStyle` level entry without its `a:defRPr`: run
|
|
112858
113937
|
* defaults follow their own precedence chain, so only the paragraph-level
|
|
@@ -113143,7 +114222,7 @@ var init_PptxHandlerRuntimeShapeTextParsing = __esm({
|
|
|
113143
114222
|
}
|
|
113144
114223
|
});
|
|
113145
114224
|
var PARAGRAPH_CONTENT_TAGS;
|
|
113146
|
-
var
|
|
114225
|
+
var PptxHandlerRuntime66;
|
|
113147
114226
|
var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
113148
114227
|
"src/core/core/runtime/PptxHandlerRuntimeShapeParagraphContentParsing.ts"() {
|
|
113149
114228
|
init_utils();
|
|
@@ -113162,7 +114241,7 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113162
114241
|
"mc:AlternateContent",
|
|
113163
114242
|
"a:br"
|
|
113164
114243
|
]);
|
|
113165
|
-
|
|
114244
|
+
PptxHandlerRuntime66 = class extends PptxHandlerRuntime65 {
|
|
113166
114245
|
/**
|
|
113167
114246
|
* Collect text content (runs, fields, equations, bullets) for a single
|
|
113168
114247
|
* paragraph and return text parts + segments. The returned `seedStyle`
|
|
@@ -113591,7 +114670,7 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113591
114670
|
};
|
|
113592
114671
|
}
|
|
113593
114672
|
});
|
|
113594
|
-
var
|
|
114673
|
+
var PptxHandlerRuntime67;
|
|
113595
114674
|
var init_PptxHandlerRuntimeShapeParsing = __esm({
|
|
113596
114675
|
"src/core/core/runtime/PptxHandlerRuntimeShapeParsing.ts"() {
|
|
113597
114676
|
init_decorative_extension();
|
|
@@ -113601,7 +114680,7 @@ var init_PptxHandlerRuntimeShapeParsing = __esm({
|
|
|
113601
114680
|
init_auto_number_sequence();
|
|
113602
114681
|
init_element_paragraph_geometry();
|
|
113603
114682
|
init_PptxHandlerRuntimeShapeParagraphContentParsing();
|
|
113604
|
-
|
|
114683
|
+
PptxHandlerRuntime67 = class _PptxHandlerRuntime extends PptxHandlerRuntime66 {
|
|
113605
114684
|
parseShape(shape, id, slidePath) {
|
|
113606
114685
|
try {
|
|
113607
114686
|
const spPr = shape["p:spPr"];
|
|
@@ -113908,7 +114987,7 @@ function parseEmuInt2(value) {
|
|
|
113908
114987
|
}
|
|
113909
114988
|
var INT32_MIN2;
|
|
113910
114989
|
var INT32_MAX2;
|
|
113911
|
-
var
|
|
114990
|
+
var PptxHandlerRuntime68;
|
|
113912
114991
|
var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
113913
114992
|
"src/core/core/runtime/PptxHandlerRuntimePictureParsing.ts"() {
|
|
113914
114993
|
init_crop_shape_geometry();
|
|
@@ -113921,7 +115000,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
113921
115000
|
init_shape_lock_containers();
|
|
113922
115001
|
INT32_MIN2 = -2147483648;
|
|
113923
115002
|
INT32_MAX2 = 2147483647;
|
|
113924
|
-
|
|
115003
|
+
PptxHandlerRuntime68 = class _PptxHandlerRuntime extends PptxHandlerRuntime67 {
|
|
113925
115004
|
async parsePicture(pic, id, slidePath) {
|
|
113926
115005
|
try {
|
|
113927
115006
|
const spPr = pic["p:spPr"];
|
|
@@ -114275,13 +115354,13 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
114275
115354
|
};
|
|
114276
115355
|
}
|
|
114277
115356
|
});
|
|
114278
|
-
var
|
|
115357
|
+
var PptxHandlerRuntime69;
|
|
114279
115358
|
var init_PptxHandlerRuntimeSpTreeParsing = __esm({
|
|
114280
115359
|
"src/core/core/runtime/PptxHandlerRuntimeSpTreeParsing.ts"() {
|
|
114281
115360
|
init_alternate_content();
|
|
114282
115361
|
init_vml_parser();
|
|
114283
115362
|
init_PptxHandlerRuntimePictureParsing();
|
|
114284
|
-
|
|
115363
|
+
PptxHandlerRuntime69 = class _PptxHandlerRuntime extends PptxHandlerRuntime68 {
|
|
114285
115364
|
/**
|
|
114286
115365
|
* Known element tag names that appear as direct children of `p:spTree`
|
|
114287
115366
|
* (or `p:grpSp`) and represent renderable shapes/objects.
|
|
@@ -114663,7 +115742,7 @@ var init_PptxHandlerRuntimeSpTreeParsing = __esm({
|
|
|
114663
115742
|
};
|
|
114664
115743
|
}
|
|
114665
115744
|
});
|
|
114666
|
-
var
|
|
115745
|
+
var PptxHandlerRuntime70;
|
|
114667
115746
|
var init_PptxHandlerRuntimeGroupParsing = __esm({
|
|
114668
115747
|
"src/core/core/runtime/PptxHandlerRuntimeGroupParsing.ts"() {
|
|
114669
115748
|
init_transform_utils();
|
|
@@ -114672,7 +115751,7 @@ var init_PptxHandlerRuntimeGroupParsing = __esm({
|
|
|
114672
115751
|
init_group_shape_geometry();
|
|
114673
115752
|
init_PptxHandlerRuntimeSpTreeParsing();
|
|
114674
115753
|
init_shape_lock_containers();
|
|
114675
|
-
|
|
115754
|
+
PptxHandlerRuntime70 = class _PptxHandlerRuntime extends PptxHandlerRuntime69 {
|
|
114676
115755
|
/**
|
|
114677
115756
|
* Parse the children of a `<p:grpSp>` into the group's own pixel space.
|
|
114678
115757
|
*
|
|
@@ -114874,11 +115953,11 @@ var init_PptxHandlerRuntimeGroupParsing = __esm({
|
|
|
114874
115953
|
};
|
|
114875
115954
|
}
|
|
114876
115955
|
});
|
|
114877
|
-
var
|
|
115956
|
+
var PptxHandlerRuntime71;
|
|
114878
115957
|
var init_PptxHandlerRuntimeSlideParsing = __esm({
|
|
114879
115958
|
"src/core/core/runtime/PptxHandlerRuntimeSlideParsing.ts"() {
|
|
114880
115959
|
init_PptxHandlerRuntimeGroupParsing();
|
|
114881
|
-
|
|
115960
|
+
PptxHandlerRuntime71 = class extends PptxHandlerRuntime70 {
|
|
114882
115961
|
/**
|
|
114883
115962
|
* Parse text body from a connector shape (p:cxnSp > p:txBody).
|
|
114884
115963
|
* Uses the same text run extraction logic as regular shapes but
|
|
@@ -114989,7 +116068,7 @@ var init_PptxHandlerRuntimeSlideParsing = __esm({
|
|
|
114989
116068
|
}
|
|
114990
116069
|
});
|
|
114991
116070
|
var DEFAULT_CLR_MAP_ALIAS;
|
|
114992
|
-
var
|
|
116071
|
+
var PptxHandlerRuntime72;
|
|
114993
116072
|
var init_PptxHandlerRuntimeColorAndEffects = __esm({
|
|
114994
116073
|
"src/core/core/runtime/PptxHandlerRuntimeColorAndEffects.ts"() {
|
|
114995
116074
|
init_PptxHandlerRuntimeSlideParsing();
|
|
@@ -114999,7 +116078,7 @@ var init_PptxHandlerRuntimeColorAndEffects = __esm({
|
|
|
114999
116078
|
bg2: "lt2",
|
|
115000
116079
|
tx2: "dk2"
|
|
115001
116080
|
};
|
|
115002
|
-
|
|
116081
|
+
PptxHandlerRuntime72 = class extends PptxHandlerRuntime71 {
|
|
115003
116082
|
/**
|
|
115004
116083
|
* Forward declaration – implemented in PptxHandlerRuntimeThemeProcessing.
|
|
115005
116084
|
* Re-resolves gradient stops by substituting `phClr` with the given colour.
|
|
@@ -115141,14 +116220,14 @@ var init_PptxHandlerRuntimeColorAndEffects = __esm({
|
|
|
115141
116220
|
};
|
|
115142
116221
|
}
|
|
115143
116222
|
});
|
|
115144
|
-
var
|
|
116223
|
+
var PptxHandlerRuntime73;
|
|
115145
116224
|
var init_PptxHandlerRuntimeBackgroundParsing = __esm({
|
|
115146
116225
|
"src/core/core/runtime/PptxHandlerRuntimeBackgroundParsing.ts"() {
|
|
115147
116226
|
init_part_rels_path();
|
|
115148
116227
|
init_strip_parent_dir_segments();
|
|
115149
116228
|
init_xml_access();
|
|
115150
116229
|
init_PptxHandlerRuntimeColorAndEffects();
|
|
115151
|
-
|
|
116230
|
+
PptxHandlerRuntime73 = class extends PptxHandlerRuntime72 {
|
|
115152
116231
|
/**
|
|
115153
116232
|
* Preserve the visual properties authored on a background `a:blipFill`.
|
|
115154
116233
|
*
|
|
@@ -115592,14 +116671,14 @@ var init_PptxHandlerRuntimeBackgroundParsing = __esm({
|
|
|
115592
116671
|
};
|
|
115593
116672
|
}
|
|
115594
116673
|
});
|
|
115595
|
-
var
|
|
116674
|
+
var PptxHandlerRuntime74;
|
|
115596
116675
|
var init_PptxHandlerRuntimeSlideUtils = __esm({
|
|
115597
116676
|
"src/core/core/runtime/PptxHandlerRuntimeSlideUtils.ts"() {
|
|
115598
116677
|
init_part_rels_path();
|
|
115599
116678
|
init_strip_parent_dir_segments();
|
|
115600
116679
|
init_notes_body_shapes();
|
|
115601
116680
|
init_PptxHandlerRuntimeBackgroundParsing();
|
|
115602
|
-
|
|
116681
|
+
PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
|
|
115603
116682
|
/**
|
|
115604
116683
|
* Retrieve the background gradient from a layout, falling back to master.
|
|
115605
116684
|
*/
|
|
@@ -115942,14 +117021,14 @@ var init_PptxHandlerRuntimeSlideUtils = __esm({
|
|
|
115942
117021
|
};
|
|
115943
117022
|
}
|
|
115944
117023
|
});
|
|
115945
|
-
var
|
|
117024
|
+
var PptxHandlerRuntime75;
|
|
115946
117025
|
var init_PptxHandlerRuntimePlaceholderStyles = __esm({
|
|
115947
117026
|
"src/core/core/runtime/PptxHandlerRuntimePlaceholderStyles.ts"() {
|
|
115948
117027
|
init_color_xml_preservation();
|
|
115949
117028
|
init_paragraph_properties_parser();
|
|
115950
117029
|
init_xml_access();
|
|
115951
117030
|
init_PptxHandlerRuntimeSlideUtils();
|
|
115952
|
-
|
|
117031
|
+
PptxHandlerRuntime75 = class extends PptxHandlerRuntime74 {
|
|
115953
117032
|
/**
|
|
115954
117033
|
* Parse a single `a:lvlXpPr` node into a structured
|
|
115955
117034
|
* {@link PlaceholderTextLevelStyle}.
|
|
@@ -116099,11 +117178,11 @@ var init_PptxHandlerRuntimePlaceholderStyles = __esm({
|
|
|
116099
117178
|
};
|
|
116100
117179
|
}
|
|
116101
117180
|
});
|
|
116102
|
-
var
|
|
117181
|
+
var PptxHandlerRuntime76;
|
|
116103
117182
|
var init_PptxHandlerRuntimePlaceholderDefaults = __esm({
|
|
116104
117183
|
"src/core/core/runtime/PptxHandlerRuntimePlaceholderDefaults.ts"() {
|
|
116105
117184
|
init_PptxHandlerRuntimePlaceholderStyles();
|
|
116106
|
-
|
|
117185
|
+
PptxHandlerRuntime76 = class _PptxHandlerRuntime extends PptxHandlerRuntime75 {
|
|
116107
117186
|
/**
|
|
116108
117187
|
* Extract structured {@link PlaceholderDefaults} from a layout or master
|
|
116109
117188
|
* shape that carries a `p:ph` element.
|
|
@@ -116265,14 +117344,14 @@ function parseHeaderFooterFlags(hf) {
|
|
|
116265
117344
|
}
|
|
116266
117345
|
return Object.keys(result).length > 0 ? result : void 0;
|
|
116267
117346
|
}
|
|
116268
|
-
var
|
|
117347
|
+
var PptxHandlerRuntime77;
|
|
116269
117348
|
var init_PptxHandlerRuntimeMasterElements = __esm({
|
|
116270
117349
|
"src/core/core/runtime/PptxHandlerRuntimeMasterElements.ts"() {
|
|
116271
117350
|
init_part_rels_path();
|
|
116272
117351
|
init_strip_parent_dir_segments();
|
|
116273
117352
|
init_xml_access();
|
|
116274
117353
|
init_PptxHandlerRuntimePlaceholderDefaults();
|
|
116275
|
-
|
|
117354
|
+
PptxHandlerRuntime77 = class extends PptxHandlerRuntime76 {
|
|
116276
117355
|
/**
|
|
116277
117356
|
* Parse a `CT_TextListStyle` node (`a:defPPr` + `a:lvl1pPr` … `a:lvl9pPr`)
|
|
116278
117357
|
* into a level-keyed style map. Used for `<p:txStyles>` children
|
|
@@ -116556,7 +117635,7 @@ var init_PptxHandlerRuntimeMasterElements = __esm({
|
|
|
116556
117635
|
};
|
|
116557
117636
|
}
|
|
116558
117637
|
});
|
|
116559
|
-
var
|
|
117638
|
+
var PptxHandlerRuntime78;
|
|
116560
117639
|
var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
116561
117640
|
"src/core/core/runtime/PptxHandlerRuntimeAuxiliaryMasterElements.ts"() {
|
|
116562
117641
|
init_services();
|
|
@@ -116565,7 +117644,7 @@ var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
|
116565
117644
|
init_master_part_element_signature();
|
|
116566
117645
|
init_master_part_tags();
|
|
116567
117646
|
init_PptxHandlerRuntimeMasterElements();
|
|
116568
|
-
|
|
117647
|
+
PptxHandlerRuntime78 = class extends PptxHandlerRuntime77 {
|
|
116569
117648
|
/** Parse every editable element in a master or layout shape tree. */
|
|
116570
117649
|
async enrichMasterPartElements(part, rootTag2) {
|
|
116571
117650
|
if (!part) {
|
|
@@ -116670,14 +117749,14 @@ var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
|
116670
117749
|
};
|
|
116671
117750
|
}
|
|
116672
117751
|
});
|
|
116673
|
-
var
|
|
117752
|
+
var PptxHandlerRuntime79;
|
|
116674
117753
|
var init_PptxHandlerRuntimeLayoutElements = __esm({
|
|
116675
117754
|
"src/core/core/runtime/PptxHandlerRuntimeLayoutElements.ts"() {
|
|
116676
117755
|
init_part_rels_path();
|
|
116677
117756
|
init_strip_parent_dir_segments();
|
|
116678
117757
|
init_xml_access();
|
|
116679
117758
|
init_PptxHandlerRuntimeAuxiliaryMasterElements();
|
|
116680
|
-
|
|
117759
|
+
PptxHandlerRuntime79 = class extends PptxHandlerRuntime78 {
|
|
116681
117760
|
/**
|
|
116682
117761
|
* Parse the layout artwork inherited by a slide.
|
|
116683
117762
|
*
|
|
@@ -116861,6 +117940,7 @@ var init_PptxHandlerRuntimeLayoutElements = __esm({
|
|
|
116861
117940
|
const masterElements = showMasterSp ? await this.getMasterElements(layoutPath) : [];
|
|
116862
117941
|
this.currentSlideClrMapOverride = prevClrMapOverride;
|
|
116863
117942
|
const allElements = [...masterElements, ...elements2];
|
|
117943
|
+
this.templateElementBaselines.recordBaselines(allElements);
|
|
116864
117944
|
this.layoutCache.set(layoutPath, allElements);
|
|
116865
117945
|
return allElements;
|
|
116866
117946
|
} catch (e) {
|
|
@@ -116871,13 +117951,13 @@ var init_PptxHandlerRuntimeLayoutElements = __esm({
|
|
|
116871
117951
|
};
|
|
116872
117952
|
}
|
|
116873
117953
|
});
|
|
116874
|
-
var
|
|
117954
|
+
var PptxHandlerRuntime80;
|
|
116875
117955
|
var init_PptxHandlerRuntimeLayoutPreviews = __esm({
|
|
116876
117956
|
"src/core/core/runtime/PptxHandlerRuntimeLayoutPreviews.ts"() {
|
|
116877
117957
|
init_constants();
|
|
116878
117958
|
init_xml_access();
|
|
116879
117959
|
init_PptxHandlerRuntimeLayoutElements();
|
|
116880
|
-
|
|
117960
|
+
PptxHandlerRuntime80 = class extends PptxHandlerRuntime79 {
|
|
116881
117961
|
layoutPreviewCache = /* @__PURE__ */ new Map();
|
|
116882
117962
|
/**
|
|
116883
117963
|
* Build (or return the memoised) preview for one layout.
|
|
@@ -116990,7 +118070,7 @@ function extractFillStyleListChildOrder(rawXml, listTag) {
|
|
|
116990
118070
|
return order;
|
|
116991
118071
|
}
|
|
116992
118072
|
var FILL_LIST_CHILD_TAGS;
|
|
116993
|
-
var
|
|
118073
|
+
var PptxHandlerRuntime81;
|
|
116994
118074
|
var init_PptxHandlerRuntimeThemeFormatScheme = __esm({
|
|
116995
118075
|
"src/core/core/runtime/PptxHandlerRuntimeThemeFormatScheme.ts"() {
|
|
116996
118076
|
init_PptxHandlerRuntimeLayoutPreviews();
|
|
@@ -117001,7 +118081,7 @@ var init_PptxHandlerRuntimeThemeFormatScheme = __esm({
|
|
|
117001
118081
|
"a:noFill",
|
|
117002
118082
|
"a:grpFill"
|
|
117003
118083
|
];
|
|
117004
|
-
|
|
118084
|
+
PptxHandlerRuntime81 = class _PptxHandlerRuntime extends PptxHandlerRuntime80 {
|
|
117005
118085
|
/**
|
|
117006
118086
|
* Build a fill-style entry for one child node based on its tag.
|
|
117007
118087
|
*/
|
|
@@ -117284,12 +118364,12 @@ var init_PptxHandlerRuntimeThemeFormatScheme = __esm({
|
|
|
117284
118364
|
};
|
|
117285
118365
|
}
|
|
117286
118366
|
});
|
|
117287
|
-
var
|
|
118367
|
+
var PptxHandlerRuntime82;
|
|
117288
118368
|
var init_PptxHandlerRuntimeThemeOverrides = __esm({
|
|
117289
118369
|
"src/core/core/runtime/PptxHandlerRuntimeThemeOverrides.ts"() {
|
|
117290
118370
|
init_color_scheme_index();
|
|
117291
118371
|
init_PptxHandlerRuntimeThemeFormatScheme();
|
|
117292
|
-
|
|
118372
|
+
PptxHandlerRuntime82 = class extends PptxHandlerRuntime81 {
|
|
117293
118373
|
/**
|
|
117294
118374
|
* Parse the `a:fmtScheme` element from the theme into a structured
|
|
117295
118375
|
* {@link PptxThemeFormatScheme}. Each sub-list (fillStyleLst, lnStyleLst,
|
|
@@ -117512,12 +118592,12 @@ var init_PptxHandlerRuntimeThemeOverrides = __esm({
|
|
|
117512
118592
|
};
|
|
117513
118593
|
}
|
|
117514
118594
|
});
|
|
117515
|
-
var
|
|
118595
|
+
var PptxHandlerRuntime83;
|
|
117516
118596
|
var init_PptxHandlerRuntimeThemeRefResolution = __esm({
|
|
117517
118597
|
"src/core/core/runtime/PptxHandlerRuntimeThemeRefResolution.ts"() {
|
|
117518
118598
|
init_utils();
|
|
117519
118599
|
init_PptxHandlerRuntimeThemeOverrides();
|
|
117520
|
-
|
|
118600
|
+
PptxHandlerRuntime83 = class extends PptxHandlerRuntime82 {
|
|
117521
118601
|
/**
|
|
117522
118602
|
* Resolve a `a:effectRef` element into concrete effect properties
|
|
117523
118603
|
* by looking up `@_idx` in the theme format scheme's effect style list.
|
|
@@ -117760,11 +118840,11 @@ var init_PptxHandlerRuntimeThemeRefResolution = __esm({
|
|
|
117760
118840
|
function isPresentationThemePartPath(path) {
|
|
117761
118841
|
return /^ppt\/theme\/(?!themeOverride)[^/]+\.xml$/iu.test(path);
|
|
117762
118842
|
}
|
|
117763
|
-
var
|
|
118843
|
+
var PptxHandlerRuntime84;
|
|
117764
118844
|
var init_PptxHandlerRuntimeThemeLoading = __esm({
|
|
117765
118845
|
"src/core/core/runtime/PptxHandlerRuntimeThemeLoading.ts"() {
|
|
117766
118846
|
init_PptxHandlerRuntimeThemeRefResolution();
|
|
117767
|
-
|
|
118847
|
+
PptxHandlerRuntime84 = class extends PptxHandlerRuntime83 {
|
|
117768
118848
|
async resolvePrimaryThemePath() {
|
|
117769
118849
|
const masterFiles = this.zip.file(/^ppt\/slideMasters\/slideMaster\d+\.xml$/);
|
|
117770
118850
|
if (!masterFiles || masterFiles.length === 0) {
|
|
@@ -118301,13 +119381,13 @@ var init_theme_scheme_edit = __esm({
|
|
|
118301
119381
|
}
|
|
118302
119382
|
});
|
|
118303
119383
|
var THEME_PART_PATTERN;
|
|
118304
|
-
var
|
|
119384
|
+
var PptxHandlerRuntime85;
|
|
118305
119385
|
var init_PptxHandlerRuntimeThemeProcessing = __esm({
|
|
118306
119386
|
"src/core/core/runtime/PptxHandlerRuntimeThemeProcessing.ts"() {
|
|
118307
119387
|
init_PptxHandlerRuntimeThemeLoading();
|
|
118308
119388
|
init_theme_scheme_edit();
|
|
118309
119389
|
THEME_PART_PATTERN = /^ppt\/theme\/theme\d+\.xml$/;
|
|
118310
|
-
|
|
119390
|
+
PptxHandlerRuntime85 = class extends PptxHandlerRuntime84 {
|
|
118311
119391
|
/**
|
|
118312
119392
|
* The theme parts an edit should touch, primary theme first.
|
|
118313
119393
|
*
|
|
@@ -118460,14 +119540,14 @@ var init_PptxHandlerRuntimeThemeProcessing = __esm({
|
|
|
118460
119540
|
};
|
|
118461
119541
|
}
|
|
118462
119542
|
});
|
|
118463
|
-
var
|
|
119543
|
+
var PptxHandlerRuntime86;
|
|
118464
119544
|
var init_PptxHandlerRuntimeComments = __esm({
|
|
118465
119545
|
"src/core/core/runtime/PptxHandlerRuntimeComments.ts"() {
|
|
118466
119546
|
init_legacy_comment_threading();
|
|
118467
119547
|
init_modern_comment_xml();
|
|
118468
119548
|
init_xml_access();
|
|
118469
119549
|
init_PptxHandlerRuntimeThemeProcessing();
|
|
118470
|
-
|
|
119550
|
+
PptxHandlerRuntime86 = class _PptxHandlerRuntime extends PptxHandlerRuntime85 {
|
|
118471
119551
|
/**
|
|
118472
119552
|
* Parse modern threaded comments (PowerPoint 2019+ / Office 365).
|
|
118473
119553
|
* Modern comments use `p188:cmLst`/`p15:cmLst` roots within
|
|
@@ -118694,7 +119774,7 @@ var init_PptxHandlerRuntimeComments = __esm({
|
|
|
118694
119774
|
};
|
|
118695
119775
|
}
|
|
118696
119776
|
});
|
|
118697
|
-
var
|
|
119777
|
+
var PptxHandlerRuntime87;
|
|
118698
119778
|
var init_PptxHandlerRuntimeSmartArtXmlUtils = __esm({
|
|
118699
119779
|
"src/core/core/runtime/PptxHandlerRuntimeSmartArtXmlUtils.ts"() {
|
|
118700
119780
|
init_smartart_color_lists();
|
|
@@ -118702,7 +119782,7 @@ var init_PptxHandlerRuntimeSmartArtXmlUtils = __esm({
|
|
|
118702
119782
|
init_smart_art_text_helpers();
|
|
118703
119783
|
init_PptxHandlerRuntimeComments();
|
|
118704
119784
|
init_smartart_text_paragraphs();
|
|
118705
|
-
|
|
119785
|
+
PptxHandlerRuntime87 = class extends PptxHandlerRuntime86 {
|
|
118706
119786
|
async readXmlPartByRelationshipId(slidePath, relationshipId2) {
|
|
118707
119787
|
const normalizedRelationshipId = String(relationshipId2 || "").trim();
|
|
118708
119788
|
if (normalizedRelationshipId.length === 0) {
|
|
@@ -119192,7 +120272,7 @@ var init_smartart_text_style_resolution = __esm({
|
|
|
119192
120272
|
"src/core/core/runtime/smartart-text-style-resolution.ts"() {
|
|
119193
120273
|
}
|
|
119194
120274
|
});
|
|
119195
|
-
var
|
|
120275
|
+
var PptxHandlerRuntime88;
|
|
119196
120276
|
var init_PptxHandlerRuntimeSmartArtParsing = __esm({
|
|
119197
120277
|
"src/core/core/runtime/PptxHandlerRuntimeSmartArtParsing.ts"() {
|
|
119198
120278
|
init_smartart_connector_labels();
|
|
@@ -119203,7 +120283,7 @@ var init_PptxHandlerRuntimeSmartArtParsing = __esm({
|
|
|
119203
120283
|
init_smartart_style_label_refs();
|
|
119204
120284
|
init_smartart_text_paragraphs();
|
|
119205
120285
|
init_smartart_text_style_resolution();
|
|
119206
|
-
|
|
120286
|
+
PptxHandlerRuntime88 = class _PptxHandlerRuntime extends PptxHandlerRuntime87 {
|
|
119207
120287
|
reportIncompleteSmartArtRelationships(graphicFrame, relationshipIds, slidePath) {
|
|
119208
120288
|
const missing = [
|
|
119209
120289
|
["dm", relationshipIds?.dataRelId],
|
|
@@ -119593,7 +120673,7 @@ var init_smartart_layout_category = __esm({
|
|
|
119593
120673
|
];
|
|
119594
120674
|
}
|
|
119595
120675
|
});
|
|
119596
|
-
var
|
|
120676
|
+
var PptxHandlerRuntime89;
|
|
119597
120677
|
var init_PptxHandlerRuntimeSmartArt = __esm({
|
|
119598
120678
|
"src/core/core/runtime/PptxHandlerRuntimeSmartArt.ts"() {
|
|
119599
120679
|
init_utils();
|
|
@@ -119606,7 +120686,7 @@ var init_PptxHandlerRuntimeSmartArt = __esm({
|
|
|
119606
120686
|
init_smartart_text_paragraphs();
|
|
119607
120687
|
init_smartart_text_style_resolution();
|
|
119608
120688
|
init_smartart_xml_builders();
|
|
119609
|
-
|
|
120689
|
+
PptxHandlerRuntime89 = class _PptxHandlerRuntime extends PptxHandlerRuntime88 {
|
|
119610
120690
|
async getSmartArtDataForGraphicFrame(slidePath, graphicFrame) {
|
|
119611
120691
|
const graphicData = this.xmlLookupService.getChildByLocalName(
|
|
119612
120692
|
this.xmlLookupService.getChildByLocalName(graphicFrame, "graphic"),
|
|
@@ -119825,12 +120905,12 @@ var init_PptxHandlerRuntimeSmartArt = __esm({
|
|
|
119825
120905
|
};
|
|
119826
120906
|
}
|
|
119827
120907
|
});
|
|
119828
|
-
var
|
|
120908
|
+
var PptxHandlerRuntime90;
|
|
119829
120909
|
var init_PptxHandlerRuntimeChartDetection = __esm({
|
|
119830
120910
|
"src/core/core/runtime/PptxHandlerRuntimeChartDetection.ts"() {
|
|
119831
120911
|
init_chart_multi_level_category_parser();
|
|
119832
120912
|
init_PptxHandlerRuntimeSmartArt();
|
|
119833
|
-
|
|
120913
|
+
PptxHandlerRuntime90 = class extends PptxHandlerRuntime89 {
|
|
119834
120914
|
detectChartType(plotArea) {
|
|
119835
120915
|
if (!plotArea) {
|
|
119836
120916
|
return "unknown";
|
|
@@ -120040,14 +121120,14 @@ function parseNumberVal(node) {
|
|
|
120040
121120
|
return Number.isFinite(num) ? num : void 0;
|
|
120041
121121
|
}
|
|
120042
121122
|
var CHART_DATA_DISPLAY_OPTIONS_EXT_URI2;
|
|
120043
|
-
var
|
|
121123
|
+
var PptxHandlerRuntime91;
|
|
120044
121124
|
var init_PptxHandlerRuntimeChartParsingHelpers = __esm({
|
|
120045
121125
|
"src/core/core/runtime/PptxHandlerRuntimeChartParsingHelpers.ts"() {
|
|
120046
121126
|
init_chart_ext_lookup();
|
|
120047
121127
|
init_chart_pivot_source2();
|
|
120048
121128
|
init_PptxHandlerRuntimeChartDetection();
|
|
120049
121129
|
CHART_DATA_DISPLAY_OPTIONS_EXT_URI2 = "{56B9EC1D-385E-4148-901F-78D8002777C0}";
|
|
120050
|
-
|
|
121130
|
+
PptxHandlerRuntime91 = class extends PptxHandlerRuntime90 {
|
|
120051
121131
|
/**
|
|
120052
121132
|
* Parse `c:plotVisOnly` from the chart root element.
|
|
120053
121133
|
*
|
|
@@ -120306,14 +121386,14 @@ var init_PptxHandlerRuntimeChartParsingHelpers = __esm({
|
|
|
120306
121386
|
}
|
|
120307
121387
|
});
|
|
120308
121388
|
var CHART_USER_SHAPES_REL_TYPE2;
|
|
120309
|
-
var
|
|
121389
|
+
var PptxHandlerRuntime92;
|
|
120310
121390
|
var init_PptxHandlerRuntimeChartExternalData = __esm({
|
|
120311
121391
|
"src/core/core/runtime/PptxHandlerRuntimeChartExternalData.ts"() {
|
|
120312
121392
|
init_chart_user_shapes_parser();
|
|
120313
121393
|
init_chart_xlsx_parser();
|
|
120314
121394
|
init_PptxHandlerRuntimeChartParsingHelpers();
|
|
120315
121395
|
CHART_USER_SHAPES_REL_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes";
|
|
120316
|
-
|
|
121396
|
+
PptxHandlerRuntime92 = class extends PptxHandlerRuntime91 {
|
|
120317
121397
|
/**
|
|
120318
121398
|
* Parse `c:externalData` from the chart's `c:chartSpace` and resolve
|
|
120319
121399
|
* the external relationship target from the chart part's .rels file.
|
|
@@ -120470,12 +121550,12 @@ var init_PptxHandlerRuntimeChartExternalData = __esm({
|
|
|
120470
121550
|
};
|
|
120471
121551
|
}
|
|
120472
121552
|
});
|
|
120473
|
-
var
|
|
121553
|
+
var PptxHandlerRuntime93;
|
|
120474
121554
|
var init_PptxHandlerRuntimeChartColorStyle = __esm({
|
|
120475
121555
|
"src/core/core/runtime/PptxHandlerRuntimeChartColorStyle.ts"() {
|
|
120476
121556
|
init_chart_style_definition_parser();
|
|
120477
121557
|
init_PptxHandlerRuntimeChartExternalData();
|
|
120478
|
-
|
|
121558
|
+
PptxHandlerRuntime93 = class extends PptxHandlerRuntime92 {
|
|
120479
121559
|
/**
|
|
120480
121560
|
* Parse the Office 2013+ chart-style part (`ppt/charts/style#.xml`)
|
|
120481
121561
|
* referenced from the chart's relationships, sibling to
|
|
@@ -120615,7 +121695,7 @@ var init_PptxHandlerRuntimeChartColorStyle = __esm({
|
|
|
120615
121695
|
}
|
|
120616
121696
|
});
|
|
120617
121697
|
var SCATTER_STYLES;
|
|
120618
|
-
var
|
|
121698
|
+
var PptxHandlerRuntime94;
|
|
120619
121699
|
var init_PptxHandlerRuntimeChartParsing = __esm({
|
|
120620
121700
|
"src/core/core/runtime/PptxHandlerRuntimeChartParsing.ts"() {
|
|
120621
121701
|
init_chart_advanced_parser();
|
|
@@ -120652,7 +121732,7 @@ var init_PptxHandlerRuntimeChartParsing = __esm({
|
|
|
120652
121732
|
"smooth",
|
|
120653
121733
|
"smoothMarker"
|
|
120654
121734
|
]);
|
|
120655
|
-
|
|
121735
|
+
PptxHandlerRuntime94 = class extends PptxHandlerRuntime93 {
|
|
120656
121736
|
/**
|
|
120657
121737
|
* Parse chart data from a graphic frame element on a slide.
|
|
120658
121738
|
*
|
|
@@ -121304,14 +122384,14 @@ var init_PptxHandlerRuntimeChartParsing = __esm({
|
|
|
121304
122384
|
};
|
|
121305
122385
|
}
|
|
121306
122386
|
});
|
|
121307
|
-
var
|
|
122387
|
+
var PptxHandlerRuntime95;
|
|
121308
122388
|
var init_PptxHandlerRuntimePresentationStructure = __esm({
|
|
121309
122389
|
"src/core/core/runtime/PptxHandlerRuntimePresentationStructure.ts"() {
|
|
121310
122390
|
init_kinsoku_parser();
|
|
121311
122391
|
init_presentation_section_parser();
|
|
121312
122392
|
init_header_footer_parts();
|
|
121313
122393
|
init_PptxHandlerRuntimeChartParsing();
|
|
121314
|
-
|
|
122394
|
+
PptxHandlerRuntime95 = class extends PptxHandlerRuntime94 {
|
|
121315
122395
|
parseEditorAnimations(slideXml3) {
|
|
121316
122396
|
return this.editorAnimationService.parseEditorAnimations(slideXml3);
|
|
121317
122397
|
}
|
|
@@ -121496,7 +122576,7 @@ var init_PptxHandlerRuntimePresentationStructure = __esm({
|
|
|
121496
122576
|
};
|
|
121497
122577
|
}
|
|
121498
122578
|
});
|
|
121499
|
-
var
|
|
122579
|
+
var PptxHandlerRuntime96;
|
|
121500
122580
|
var init_PptxHandlerRuntimeEmbeddedFonts = __esm({
|
|
121501
122581
|
"src/core/core/runtime/PptxHandlerRuntimeEmbeddedFonts.ts"() {
|
|
121502
122582
|
init_eot_parser();
|
|
@@ -121505,7 +122585,7 @@ var init_PptxHandlerRuntimeEmbeddedFonts = __esm({
|
|
|
121505
122585
|
init_strip_parent_dir_segments();
|
|
121506
122586
|
init_xml_access();
|
|
121507
122587
|
init_PptxHandlerRuntimePresentationStructure();
|
|
121508
|
-
|
|
122588
|
+
PptxHandlerRuntime96 = class extends PptxHandlerRuntime95 {
|
|
121509
122589
|
async getEmbeddedFonts(fontList) {
|
|
121510
122590
|
if (!fontList || fontList.fonts.length === 0) {
|
|
121511
122591
|
return [];
|
|
@@ -121708,7 +122788,7 @@ var init_PptxHandlerRuntimeEmbeddedFonts = __esm({
|
|
|
121708
122788
|
}
|
|
121709
122789
|
});
|
|
121710
122790
|
var MAX_OLE_EMBEDDING_BYTES;
|
|
121711
|
-
var
|
|
122791
|
+
var PptxHandlerRuntime97;
|
|
121712
122792
|
var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
121713
122793
|
"src/core/core/runtime/PptxHandlerRuntimeLoadSession.ts"() {
|
|
121714
122794
|
init_ole_embedded_extract();
|
|
@@ -121718,7 +122798,7 @@ var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
|
121718
122798
|
init_authored_slide_background();
|
|
121719
122799
|
init_PptxHandlerRuntimeEmbeddedFonts();
|
|
121720
122800
|
MAX_OLE_EMBEDDING_BYTES = 25 * 1024 * 1024;
|
|
121721
|
-
|
|
122801
|
+
PptxHandlerRuntime97 = class _PptxHandlerRuntime extends PptxHandlerRuntime96 {
|
|
121722
122802
|
isZipContainer(data) {
|
|
121723
122803
|
const bytes = new Uint8Array(data);
|
|
121724
122804
|
if (bytes.byteLength < 4) {
|
|
@@ -121777,6 +122857,7 @@ var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
|
121777
122857
|
this.savedSlideFingerprints.clear();
|
|
121778
122858
|
this.layoutCache.clear();
|
|
121779
122859
|
this.masterCache.clear();
|
|
122860
|
+
this.templateElementBaselines.reset();
|
|
121780
122861
|
this.layoutXmlMap.clear();
|
|
121781
122862
|
this.masterXmlMap.clear();
|
|
121782
122863
|
this.masterTxStylesCache.clear();
|
|
@@ -122075,19 +123156,22 @@ var init_PptxHandlerRuntimeLoadSession = __esm({
|
|
|
122075
123156
|
};
|
|
122076
123157
|
}
|
|
122077
123158
|
});
|
|
122078
|
-
var
|
|
123159
|
+
var PptxHandlerRuntime98;
|
|
122079
123160
|
var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
122080
123161
|
"src/core/core/runtime/PptxHandlerRuntimeLoadPipeline.ts"() {
|
|
122081
123162
|
init_fluent();
|
|
122082
123163
|
init_embedded_font_list();
|
|
122083
123164
|
init_guide_utils();
|
|
122084
123165
|
init_layout_display_name();
|
|
123166
|
+
init_part_rels_path();
|
|
122085
123167
|
init_smart_tags_parser();
|
|
122086
123168
|
init_strip_parent_dir_segments();
|
|
122087
123169
|
init_builders();
|
|
123170
|
+
init_authored_slide_background();
|
|
123171
|
+
init_layout_switch_placeholder_prompts();
|
|
122088
123172
|
init_PptxHandlerRuntimeLoadSession();
|
|
122089
123173
|
init_slide_fingerprint();
|
|
122090
|
-
|
|
123174
|
+
PptxHandlerRuntime98 = class extends PptxHandlerRuntime97 {
|
|
122091
123175
|
async buildLoadData(presentationState, slidesWithWarnings, slideMasters) {
|
|
122092
123176
|
const headerFooter = this.extractHeaderFooter();
|
|
122093
123177
|
const presentationProperties = await this.parsePresentationProperties();
|
|
@@ -122249,6 +123333,7 @@ var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
|
122249
123333
|
this.externalRelsMap.clear();
|
|
122250
123334
|
this.layoutCache.clear();
|
|
122251
123335
|
this.masterCache.clear();
|
|
123336
|
+
this.templateElementBaselines.reset();
|
|
122252
123337
|
this.layoutXmlMap.clear();
|
|
122253
123338
|
this.masterXmlMap.clear();
|
|
122254
123339
|
this.masterTxStylesCache.clear();
|
|
@@ -122510,15 +123595,28 @@ var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
|
122510
123595
|
}
|
|
122511
123596
|
}
|
|
122512
123597
|
}
|
|
123598
|
+
if (!this.slideRelsMap.has(slidePath)) {
|
|
123599
|
+
this.slideRelsMap.set(
|
|
123600
|
+
slidePath,
|
|
123601
|
+
/* @__PURE__ */ new Map([["rId1", `../slideLayouts/${layoutPath.split("/").pop()}`]])
|
|
123602
|
+
);
|
|
123603
|
+
}
|
|
122513
123604
|
this.layoutCache.delete(layoutPath);
|
|
122514
|
-
|
|
122515
|
-
|
|
122516
|
-
layoutXml,
|
|
122517
|
-
|
|
123605
|
+
await this.getLayoutElements(slidePath);
|
|
123606
|
+
const remappedElements = enrichEmptyPlaceholderPrompts(
|
|
123607
|
+
this.remapElementsToNewLayout(slide.elements, layoutXml, layoutPath),
|
|
123608
|
+
{
|
|
123609
|
+
resolveDefaults: (element) => {
|
|
123610
|
+
const phInfo = this.getElementPlaceholderInfo(element);
|
|
123611
|
+
return phInfo ? this.lookupPlaceholderDefaults(slidePath, phInfo) : void 0;
|
|
123612
|
+
},
|
|
123613
|
+
placeholderType: (element) => this.getElementPlaceholderInfo(element)?.type,
|
|
123614
|
+
applyBodyDefaults: (textStyle, defaults) => this.applyPlaceholderBodyDefaults(textStyle, defaults),
|
|
123615
|
+
applyLevelDefaults: (textStyle, level) => this.applyPlaceholderLevelDefaults(textStyle, level)
|
|
123616
|
+
}
|
|
122518
123617
|
);
|
|
122519
123618
|
const sldLayout = layoutXml["p:sldLayout"];
|
|
122520
123619
|
const layoutName = String(sldLayout?.["p:cSld"]?.["@_name"] || "").trim() || layoutPath;
|
|
122521
|
-
const layoutBgColor = this.extractBackgroundColor(layoutXml, "p:sldLayout");
|
|
122522
123620
|
const updated = {
|
|
122523
123621
|
...slide,
|
|
122524
123622
|
elements: remappedElements,
|
|
@@ -122526,10 +123624,24 @@ var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
|
122526
123624
|
layoutName,
|
|
122527
123625
|
isDirty: true
|
|
122528
123626
|
};
|
|
122529
|
-
|
|
122530
|
-
|
|
122531
|
-
|
|
122532
|
-
|
|
123627
|
+
const origin = slideBackgroundOrigin(this, slidePath);
|
|
123628
|
+
const inheritsBackground = origin ? slideBackgroundIsPurelyInherited(origin, slide) : !slide.rawXml || !this.extractBackgroundColor(slide.rawXml);
|
|
123629
|
+
if (inheritsBackground) {
|
|
123630
|
+
await this.loadSlideRelationships(layoutPath, partRelsPath(layoutPath));
|
|
123631
|
+
const [color2, gradient, image] = await Promise.all([
|
|
123632
|
+
this.getLayoutBackgroundColor(slidePath),
|
|
123633
|
+
this.getLayoutBackgroundGradient(slidePath),
|
|
123634
|
+
this.getLayoutBackgroundImage(slidePath)
|
|
123635
|
+
]);
|
|
123636
|
+
updated.backgroundColor = color2 ?? slide.backgroundColor;
|
|
123637
|
+
updated.backgroundGradient = gradient;
|
|
123638
|
+
updated.backgroundImage = image;
|
|
123639
|
+
rememberSlideBackgroundOrigin(this, slidePath, {
|
|
123640
|
+
authored: false,
|
|
123641
|
+
color: updated.backgroundColor,
|
|
123642
|
+
gradient,
|
|
123643
|
+
image
|
|
123644
|
+
});
|
|
122533
123645
|
}
|
|
122534
123646
|
slides[slideIndex] = updated;
|
|
122535
123647
|
return updated;
|
|
@@ -122537,14 +123649,14 @@ var init_PptxHandlerRuntimeLoadPipeline = __esm({
|
|
|
122537
123649
|
};
|
|
122538
123650
|
}
|
|
122539
123651
|
});
|
|
122540
|
-
var
|
|
123652
|
+
var PptxHandlerRuntime99;
|
|
122541
123653
|
var init_PptxHandlerRuntimeImplementation = __esm({
|
|
122542
123654
|
"src/core/core/runtime/PptxHandlerRuntimeImplementation.ts"() {
|
|
122543
123655
|
init_PptxElementXmlBuilder();
|
|
122544
123656
|
init_builders();
|
|
122545
123657
|
init_factories();
|
|
122546
123658
|
init_PptxHandlerRuntimeLoadPipeline();
|
|
122547
|
-
|
|
123659
|
+
PptxHandlerRuntime99 = class _PptxHandlerRuntime extends PptxHandlerRuntime98 {
|
|
122548
123660
|
constructor(dependencyFactory = new PptxRuntimeDependencyFactory()) {
|
|
122549
123661
|
super();
|
|
122550
123662
|
this.dependencyFactory = dependencyFactory;
|
|
@@ -122681,11 +123793,11 @@ var init_PptxHandlerRuntimeImplementation = __esm({
|
|
|
122681
123793
|
};
|
|
122682
123794
|
}
|
|
122683
123795
|
});
|
|
122684
|
-
var
|
|
123796
|
+
var PptxHandlerRuntime100;
|
|
122685
123797
|
var init_PptxHandlerRuntime = __esm({
|
|
122686
123798
|
"src/core/core/PptxHandlerRuntime.ts"() {
|
|
122687
123799
|
init_PptxHandlerRuntimeImplementation();
|
|
122688
|
-
|
|
123800
|
+
PptxHandlerRuntime100 = class extends PptxHandlerRuntime99 {
|
|
122689
123801
|
};
|
|
122690
123802
|
}
|
|
122691
123803
|
});
|
|
@@ -122693,7 +123805,7 @@ var createDefaultPptxHandlerRuntime;
|
|
|
122693
123805
|
var init_PptxHandlerRuntimeFactory = __esm({
|
|
122694
123806
|
"src/core/core/PptxHandlerRuntimeFactory.ts"() {
|
|
122695
123807
|
init_PptxHandlerRuntime();
|
|
122696
|
-
createDefaultPptxHandlerRuntime = () => new
|
|
123808
|
+
createDefaultPptxHandlerRuntime = () => new PptxHandlerRuntime100();
|
|
122697
123809
|
}
|
|
122698
123810
|
});
|
|
122699
123811
|
function deepClone(value) {
|
|
@@ -175190,7 +176302,7 @@ function markerText(info) {
|
|
|
175190
176302
|
}
|
|
175191
176303
|
function infoForParagraph(previous, kind, ordinal) {
|
|
175192
176304
|
if (kind === "none") {
|
|
175193
|
-
return {
|
|
176305
|
+
return { none: true };
|
|
175194
176306
|
}
|
|
175195
176307
|
const sameKind = previous && (kind === "numbered" ? Boolean(previous.autoNumType) : Boolean(
|
|
175196
176308
|
previous.char || previous.imageRelId || previous.imageDataUrl || previous.imageBlipFillXml
|
|
@@ -175261,75 +176373,218 @@ function elementSegments(element) {
|
|
|
175261
176373
|
{ text: text22, style: { ...element.textStyle } }
|
|
175262
176374
|
]);
|
|
175263
176375
|
}
|
|
175264
|
-
function
|
|
175265
|
-
const paragraphs = [
|
|
175266
|
-
|
|
175267
|
-
];
|
|
175268
|
-
for (const segment of segments) {
|
|
176376
|
+
function splitBulletParagraphs(segments) {
|
|
176377
|
+
const paragraphs = [{ segments: [], indices: [] }];
|
|
176378
|
+
for (const [index, segment] of segments.entries()) {
|
|
175269
176379
|
if (isParagraphSeparatorSegment(segment)) {
|
|
175270
176380
|
paragraphs[paragraphs.length - 1].terminator = segment;
|
|
175271
|
-
paragraphs.push({ segments: [] });
|
|
176381
|
+
paragraphs.push({ segments: [], indices: [] });
|
|
175272
176382
|
} else {
|
|
175273
176383
|
paragraphs[paragraphs.length - 1].segments.push(segment);
|
|
176384
|
+
paragraphs[paragraphs.length - 1].indices.push(index);
|
|
175274
176385
|
}
|
|
175275
176386
|
}
|
|
175276
176387
|
return paragraphs;
|
|
175277
176388
|
}
|
|
175278
|
-
function
|
|
175279
|
-
|
|
175280
|
-
|
|
175281
|
-
return paragraphBulletKind(paragraph.segments);
|
|
175282
|
-
}
|
|
176389
|
+
function resolveBulletSegments(element, override) {
|
|
176390
|
+
if (override?.length) {
|
|
176391
|
+
return [...override];
|
|
175283
176392
|
}
|
|
175284
|
-
return
|
|
176393
|
+
return elementSegments(element);
|
|
175285
176394
|
}
|
|
175286
|
-
function
|
|
175287
|
-
|
|
175288
|
-
|
|
176395
|
+
function paragraphsBulletKind(paragraphs) {
|
|
176396
|
+
let kind;
|
|
176397
|
+
for (const paragraph of paragraphs) {
|
|
176398
|
+
if (paragraph.segments.length === 0) {
|
|
176399
|
+
continue;
|
|
176400
|
+
}
|
|
176401
|
+
const current = paragraphBulletKind(paragraph.segments);
|
|
176402
|
+
if (kind !== void 0 && kind !== current) {
|
|
176403
|
+
return "mixed";
|
|
176404
|
+
}
|
|
176405
|
+
kind = current;
|
|
175289
176406
|
}
|
|
175290
|
-
|
|
175291
|
-
|
|
176407
|
+
return kind ?? "none";
|
|
176408
|
+
}
|
|
176409
|
+
function elementBulletKind(element) {
|
|
176410
|
+
return paragraphsBulletKind(splitBulletParagraphs(resolveBulletSegments(element)));
|
|
176411
|
+
}
|
|
176412
|
+
function inScope(paragraph, selection) {
|
|
176413
|
+
if (!selection) {
|
|
176414
|
+
return true;
|
|
175292
176415
|
}
|
|
175293
|
-
|
|
175294
|
-
|
|
175295
|
-
|
|
176416
|
+
return paragraph.indices.some(
|
|
176417
|
+
(index) => index >= selection.startSegIdx && index <= selection.endSegIdx
|
|
176418
|
+
);
|
|
176419
|
+
}
|
|
176420
|
+
function selectionBulletKind(element, selection, segments) {
|
|
176421
|
+
const paragraphs = splitBulletParagraphs(resolveBulletSegments(element, segments));
|
|
176422
|
+
return paragraphsBulletKind(paragraphs.filter((paragraph) => inScope(paragraph, selection)));
|
|
176423
|
+
}
|
|
176424
|
+
function setSelectionBullets(element, kind, selection, segments) {
|
|
176425
|
+
if (!hasTextProperties(element)) {
|
|
176426
|
+
return { patch: {}, newSelection: selection };
|
|
175296
176427
|
}
|
|
176428
|
+
const source = resolveBulletSegments(element, segments);
|
|
175297
176429
|
const next = [];
|
|
175298
|
-
const
|
|
175299
|
-
|
|
175300
|
-
|
|
175301
|
-
|
|
175302
|
-
|
|
175303
|
-
|
|
175304
|
-
|
|
175305
|
-
|
|
175306
|
-
|
|
175307
|
-
|
|
175308
|
-
|
|
175309
|
-
|
|
175310
|
-
|
|
175311
|
-
|
|
175312
|
-
const first = segments[0] ?? paragraph.terminator;
|
|
175313
|
-
const info = first?.bulletInfo;
|
|
175314
|
-
const level = first?.paragraphLevel ?? 0;
|
|
175315
|
-
if (info?.autoNumType && paragraphBulletKind(segments) === "numbered") {
|
|
175316
|
-
const startAt = info.autoNumStartAt ?? 1;
|
|
175317
|
-
const ordinal = nextAutoNumber(sequence, level, info.autoNumType, startAt) - startAt;
|
|
175318
|
-
if (info.paragraphIndex !== ordinal) {
|
|
175319
|
-
segments = toggleParagraphBullet(segments, "numbered", ordinal);
|
|
175320
|
-
}
|
|
176430
|
+
const indexMap = /* @__PURE__ */ new Map();
|
|
176431
|
+
let ordinal = 0;
|
|
176432
|
+
for (const paragraph of splitBulletParagraphs(source)) {
|
|
176433
|
+
const content = paragraph.indices.filter(
|
|
176434
|
+
(_index, position2) => !isBulletMarkerSegment(paragraph.segments[position2])
|
|
176435
|
+
);
|
|
176436
|
+
if (paragraph.segments.length > 0 && content.length > 0 && inScope(paragraph, selection)) {
|
|
176437
|
+
const rewritten = toggleParagraphBullet(paragraph.segments, kind, ordinal);
|
|
176438
|
+
ordinal += 1;
|
|
176439
|
+
const contentStart = next.length + (kind === "none" ? 0 : 1);
|
|
176440
|
+
for (const [position2, index] of content.entries()) {
|
|
176441
|
+
indexMap.set(index, contentStart + position2);
|
|
176442
|
+
}
|
|
176443
|
+
next.push(...rewritten);
|
|
175321
176444
|
} else {
|
|
175322
|
-
|
|
176445
|
+
for (const [position2, index] of paragraph.indices.entries()) {
|
|
176446
|
+
indexMap.set(index, next.length + position2);
|
|
176447
|
+
}
|
|
176448
|
+
next.push(...paragraph.segments);
|
|
175323
176449
|
}
|
|
175324
|
-
next.push(...segments);
|
|
175325
176450
|
if (paragraph.terminator) {
|
|
175326
176451
|
next.push(paragraph.terminator);
|
|
175327
176452
|
}
|
|
175328
176453
|
}
|
|
175329
|
-
|
|
175330
|
-
|
|
175331
|
-
|
|
175332
|
-
|
|
176454
|
+
const textStyle = withoutListType(element.textStyle);
|
|
176455
|
+
const newSelection = selection ? {
|
|
176456
|
+
startSegIdx: indexMap.get(selection.startSegIdx) ?? selection.startSegIdx,
|
|
176457
|
+
startOffset: selection.startOffset,
|
|
176458
|
+
endSegIdx: indexMap.get(selection.endSegIdx) ?? selection.endSegIdx,
|
|
176459
|
+
endOffset: selection.endOffset
|
|
176460
|
+
} : null;
|
|
176461
|
+
return { patch: { textSegments: next, textStyle }, newSelection };
|
|
176462
|
+
}
|
|
176463
|
+
function toggleSelectionBullets(element, kind, selection, segments) {
|
|
176464
|
+
const current = selectionBulletKind(element, selection, segments);
|
|
176465
|
+
return setSelectionBullets(element, current === kind ? "none" : kind, selection, segments);
|
|
176466
|
+
}
|
|
176467
|
+
var TEXT_DECORATION_FLAGS = [
|
|
176468
|
+
"bold",
|
|
176469
|
+
"italic",
|
|
176470
|
+
"underline",
|
|
176471
|
+
"strikethrough"
|
|
176472
|
+
];
|
|
176473
|
+
function isContentSegment(segment) {
|
|
176474
|
+
return !segment.isParagraphBreak && segment.text !== "\n" && segment.text.length > 0 && !isBulletMarkerSegment(segment);
|
|
176475
|
+
}
|
|
176476
|
+
function contentSegmentsInSelection(segments, selection) {
|
|
176477
|
+
if (!segments) {
|
|
176478
|
+
return [];
|
|
176479
|
+
}
|
|
176480
|
+
return segments.filter(
|
|
176481
|
+
(segment, index) => isContentSegment(segment) && (!selection || index >= selection.startSegIdx && index <= selection.endSegIdx)
|
|
176482
|
+
);
|
|
176483
|
+
}
|
|
176484
|
+
function flagState(values) {
|
|
176485
|
+
if (values.every((value) => value)) {
|
|
176486
|
+
return "on";
|
|
176487
|
+
}
|
|
176488
|
+
return values.some((value) => value) ? "mixed" : "off";
|
|
176489
|
+
}
|
|
176490
|
+
function getSelectionTextStyleFlags(segments, selection, elementTextStyle) {
|
|
176491
|
+
const runs = contentSegmentsInSelection(segments, selection);
|
|
176492
|
+
const flags = {};
|
|
176493
|
+
for (const flag of TEXT_DECORATION_FLAGS) {
|
|
176494
|
+
const body = elementTextStyle?.[flag] ?? false;
|
|
176495
|
+
flags[flag] = runs.length === 0 ? flagState([body]) : flagState(runs.map((run) => run.style?.[flag] ?? body));
|
|
176496
|
+
}
|
|
176497
|
+
return flags;
|
|
176498
|
+
}
|
|
176499
|
+
function nextToggleValue(state) {
|
|
176500
|
+
return state !== "on";
|
|
176501
|
+
}
|
|
176502
|
+
var BODY_TEXT_STYLE_KEYS = /* @__PURE__ */ new Set([
|
|
176503
|
+
// autofit (`a:normAutofit` / `a:spAutoFit`)
|
|
176504
|
+
"autoFit",
|
|
176505
|
+
"autoFitMode",
|
|
176506
|
+
"autoFitFontScale",
|
|
176507
|
+
"autoFitLineSpacingReduction",
|
|
176508
|
+
// `a:bodyPr` anchoring, direction, rotation
|
|
176509
|
+
"vAlign",
|
|
176510
|
+
"anchorCenter",
|
|
176511
|
+
"textDirection",
|
|
176512
|
+
"textBodyRotation",
|
|
176513
|
+
"upright",
|
|
176514
|
+
// `a:bodyPr` columns, overflow, wrap
|
|
176515
|
+
"columnCount",
|
|
176516
|
+
"columnSpacing",
|
|
176517
|
+
"rtlColumns",
|
|
176518
|
+
"hOverflow",
|
|
176519
|
+
"vertOverflow",
|
|
176520
|
+
"textWrap",
|
|
176521
|
+
// `a:bodyPr` insets
|
|
176522
|
+
"bodyInsetLeft",
|
|
176523
|
+
"bodyInsetTop",
|
|
176524
|
+
"bodyInsetRight",
|
|
176525
|
+
"bodyInsetBottom",
|
|
176526
|
+
// paragraph geometry the block applies body-wide
|
|
176527
|
+
"paragraphMarginLeft",
|
|
176528
|
+
"paragraphMarginRight",
|
|
176529
|
+
"paragraphIndent",
|
|
176530
|
+
"paragraphSpacingBefore",
|
|
176531
|
+
"paragraphSpacingAfter",
|
|
176532
|
+
"lineSpacing",
|
|
176533
|
+
"lineSpacingExactPt",
|
|
176534
|
+
"tabStops",
|
|
176535
|
+
"defaultTabSize",
|
|
176536
|
+
"eaLineBreak",
|
|
176537
|
+
"latinLineBreak",
|
|
176538
|
+
"fontAlignment",
|
|
176539
|
+
"hangingPunctuation",
|
|
176540
|
+
// `a:bodyPr` flags
|
|
176541
|
+
"spaceFirstLastParagraph",
|
|
176542
|
+
"fromWordArt",
|
|
176543
|
+
"forceAntiAlias",
|
|
176544
|
+
"compatibleLineSpacing",
|
|
176545
|
+
// warp and 3D scene on the body
|
|
176546
|
+
"textWarpPreset",
|
|
176547
|
+
"textWarpAdj",
|
|
176548
|
+
"textWarpAdj2",
|
|
176549
|
+
"text3d",
|
|
176550
|
+
"textBodyScene3d",
|
|
176551
|
+
"textBodyScene3dXml",
|
|
176552
|
+
"flatText",
|
|
176553
|
+
"bodyPropertiesExtLstXml"
|
|
176554
|
+
]);
|
|
176555
|
+
function isBodyTextStyleKey(key2) {
|
|
176556
|
+
return BODY_TEXT_STYLE_KEYS.has(key2);
|
|
176557
|
+
}
|
|
176558
|
+
function splitTextStyleUpdate(updates) {
|
|
176559
|
+
const body = {};
|
|
176560
|
+
const run = {};
|
|
176561
|
+
for (const [key2, value] of Object.entries(updates)) {
|
|
176562
|
+
(isBodyTextStyleKey(key2) ? body : run)[key2] = value;
|
|
176563
|
+
}
|
|
176564
|
+
return { body, run };
|
|
176565
|
+
}
|
|
176566
|
+
function reconcileDecorationFlags(segments, textStyle, flags) {
|
|
176567
|
+
const nextStyle = { ...textStyle ?? {} };
|
|
176568
|
+
let nextSegments = [...segments];
|
|
176569
|
+
for (const flag of flags) {
|
|
176570
|
+
const body = nextStyle[flag] ?? false;
|
|
176571
|
+
const content = nextSegments.filter(isContentSegment);
|
|
176572
|
+
if (content.length === 0) {
|
|
176573
|
+
continue;
|
|
176574
|
+
}
|
|
176575
|
+
if (content.every((segment) => segment.style?.[flag] ?? body)) {
|
|
176576
|
+
nextStyle[flag] = true;
|
|
176577
|
+
continue;
|
|
176578
|
+
}
|
|
176579
|
+
if (!body) {
|
|
176580
|
+
continue;
|
|
176581
|
+
}
|
|
176582
|
+
delete nextStyle[flag];
|
|
176583
|
+
nextSegments = nextSegments.map(
|
|
176584
|
+
(segment) => isContentSegment(segment) && segment.style?.[flag] === void 0 ? { ...segment, style: { ...segment.style, [flag]: true } } : segment
|
|
176585
|
+
);
|
|
176586
|
+
}
|
|
176587
|
+
return { textStyle: nextStyle, textSegments: nextSegments };
|
|
175333
176588
|
}
|
|
175334
176589
|
function updateTextSegmentStyle(segment, updates, options = {}) {
|
|
175335
176590
|
return {
|
|
@@ -175590,128 +176845,37 @@ function findTextPositionInSegment(editor, segIdx, charOffset) {
|
|
|
175590
176845
|
}
|
|
175591
176846
|
return null;
|
|
175592
176847
|
}
|
|
175593
|
-
function
|
|
175594
|
-
|
|
175595
|
-
|
|
175596
|
-
|
|
175597
|
-
|
|
175598
|
-
|
|
175599
|
-
const
|
|
175600
|
-
|
|
175601
|
-
|
|
175602
|
-
|
|
175603
|
-
|
|
175604
|
-
|
|
175605
|
-
|
|
175606
|
-
|
|
175607
|
-
|
|
175608
|
-
|
|
175609
|
-
|
|
175610
|
-
|
|
175611
|
-
|
|
175612
|
-
|
|
175613
|
-
|
|
175614
|
-
|
|
175615
|
-
}
|
|
175616
|
-
|
|
175617
|
-
const
|
|
175618
|
-
|
|
175619
|
-
|
|
175620
|
-
|
|
175621
|
-
continue;
|
|
175622
|
-
}
|
|
175623
|
-
fallback = { index, offset: segments[index].text.length };
|
|
175624
|
-
if (end ? offset <= entry2.end : offset < entry2.end) {
|
|
175625
|
-
return { index, offset: Math.max(0, offset - entry2.start) };
|
|
175626
|
-
}
|
|
175627
|
-
}
|
|
175628
|
-
return fallback;
|
|
175629
|
-
}
|
|
175630
|
-
function restoreParagraphMetadata(original, updated) {
|
|
175631
|
-
const firstRuns = original.filter(
|
|
175632
|
-
(_, index) => index === 0 || isParagraphSeparatorSegment(original[index - 1])
|
|
175633
|
-
);
|
|
175634
|
-
let paragraph = 0;
|
|
175635
|
-
return updated.map((segment, index) => {
|
|
175636
|
-
const first = index === 0 || isParagraphSeparatorSegment(updated[index - 1]);
|
|
175637
|
-
if (!first) {
|
|
175638
|
-
return segment;
|
|
175639
|
-
}
|
|
175640
|
-
const source = firstRuns[paragraph++];
|
|
175641
|
-
if (!source) {
|
|
175642
|
-
return segment;
|
|
175643
|
-
}
|
|
175644
|
-
return {
|
|
175645
|
-
...segment,
|
|
175646
|
-
bulletInfo: source.bulletInfo,
|
|
175647
|
-
paragraphLevel: source.paragraphLevel,
|
|
175648
|
-
paragraphProperties: source.paragraphProperties,
|
|
175649
|
-
endParaRunProperties: source.endParaRunProperties
|
|
175650
|
-
};
|
|
175651
|
-
});
|
|
175652
|
-
}
|
|
175653
|
-
function selectedParagraphBulletKind(element, selection) {
|
|
175654
|
-
if (!selection || !hasTextProperties(element) || !element.textSegments) {
|
|
175655
|
-
return elementBulletKind(element);
|
|
175656
|
-
}
|
|
175657
|
-
let first = selection.startSegIdx;
|
|
175658
|
-
while (first > 0 && !isParagraphSeparatorSegment(element.textSegments[first - 1])) {
|
|
175659
|
-
first -= 1;
|
|
175660
|
-
}
|
|
175661
|
-
return paragraphBulletKind(element.textSegments.slice(first));
|
|
175662
|
-
}
|
|
175663
|
-
function applyListStyleUpdate(element, updates, selection) {
|
|
175664
|
-
if (!hasTextProperties(element) || !updates.listType) {
|
|
175665
|
-
return { patch: {}, selection };
|
|
175666
|
-
}
|
|
175667
|
-
const { listType, ...characterStyle } = updates;
|
|
175668
|
-
let segments = element.textSegments;
|
|
175669
|
-
let workingSelection = selection;
|
|
175670
|
-
if (segments && Object.keys(characterStyle).length > 0) {
|
|
175671
|
-
if (selection) {
|
|
175672
|
-
const styled = applyStyleToSelectedSegments(segments, selection, characterStyle);
|
|
175673
|
-
segments = restoreParagraphMetadata(segments, styled.newSegments);
|
|
175674
|
-
workingSelection = styled.newSelection;
|
|
175675
|
-
} else {
|
|
175676
|
-
segments = segments.map((segment) => updateTextSegmentStyle(segment, characterStyle));
|
|
175677
|
-
}
|
|
175678
|
-
}
|
|
175679
|
-
const working = {
|
|
175680
|
-
...element,
|
|
175681
|
-
textSegments: segments,
|
|
175682
|
-
textStyle: selection ? element.textStyle : { ...element.textStyle, ...characterStyle }
|
|
175683
|
-
};
|
|
175684
|
-
if (!workingSelection || !segments) {
|
|
175685
|
-
return { patch: setElementBullets(working, listType), selection: null };
|
|
175686
|
-
}
|
|
175687
|
-
const entries = positions(segments);
|
|
175688
|
-
const startEntry = entries[workingSelection.startSegIdx];
|
|
175689
|
-
const endEntry = entries[workingSelection.endSegIdx];
|
|
175690
|
-
if (!startEntry || !endEntry) {
|
|
175691
|
-
return { patch: {}, selection: null };
|
|
175692
|
-
}
|
|
175693
|
-
const startOffset = startEntry.start + workingSelection.startOffset;
|
|
175694
|
-
const endOffset = endEntry.start + workingSelection.endOffset;
|
|
175695
|
-
const lastSelected = [...entries].reverse().find((entry2) => entry2.start < endOffset);
|
|
175696
|
-
const patch = setElementBullets(working, listType, {
|
|
175697
|
-
startParagraph: startEntry.paragraph,
|
|
175698
|
-
endParagraph: lastSelected?.paragraph ?? endEntry.paragraph
|
|
175699
|
-
});
|
|
175700
|
-
const next = { ...working, ...patch };
|
|
175701
|
-
const nextSegments = hasTextProperties(next) ? next.textSegments : void 0;
|
|
175702
|
-
if (!nextSegments) {
|
|
175703
|
-
return { patch, selection: null };
|
|
175704
|
-
}
|
|
175705
|
-
const start = restorePoint(nextSegments, startOffset, false);
|
|
175706
|
-
const end = restorePoint(nextSegments, endOffset, true);
|
|
176848
|
+
function applyTextStyleUpdate(element, updates, selection, segments) {
|
|
176849
|
+
if (!hasTextProperties(element)) {
|
|
176850
|
+
return { patch: {}, newSelection: null };
|
|
176851
|
+
}
|
|
176852
|
+
const current = segments ?? element.textSegments;
|
|
176853
|
+
if (selection && current && current.length > 0) {
|
|
176854
|
+
const { body, run } = splitTextStyleUpdate(updates);
|
|
176855
|
+
let textStyle2 = { ...element.textStyle, ...body };
|
|
176856
|
+
let textSegments2 = [...current];
|
|
176857
|
+
let newSelection = selection;
|
|
176858
|
+
if (Object.keys(run).length > 0) {
|
|
176859
|
+
const scoped = applyStyleToSelectedSegments(textSegments2, selection, run);
|
|
176860
|
+
textSegments2 = scoped.newSegments;
|
|
176861
|
+
newSelection = scoped.newSelection;
|
|
176862
|
+
}
|
|
176863
|
+
const touched = TEXT_DECORATION_FLAGS.filter((flag) => flag in run);
|
|
176864
|
+
if (touched.length > 0) {
|
|
176865
|
+
const reconciled = reconcileDecorationFlags(textSegments2, textStyle2, touched);
|
|
176866
|
+
textStyle2 = reconciled.textStyle;
|
|
176867
|
+
textSegments2 = reconciled.textSegments;
|
|
176868
|
+
}
|
|
176869
|
+
return { patch: { textStyle: textStyle2, textSegments: textSegments2 }, newSelection };
|
|
176870
|
+
}
|
|
176871
|
+
const textStyle = { ...element.textStyle, ...updates };
|
|
176872
|
+
const textSegments = current?.map((segment) => ({
|
|
176873
|
+
...segment,
|
|
176874
|
+
style: { ...segment.style, ...updates }
|
|
176875
|
+
}));
|
|
175707
176876
|
return {
|
|
175708
|
-
patch,
|
|
175709
|
-
|
|
175710
|
-
startSegIdx: start.index,
|
|
175711
|
-
startOffset: start.offset,
|
|
175712
|
-
endSegIdx: end.index,
|
|
175713
|
-
endOffset: end.offset
|
|
175714
|
-
}
|
|
176877
|
+
patch: textSegments ? { textStyle, textSegments } : { textStyle },
|
|
176878
|
+
newSelection: null
|
|
175715
176879
|
};
|
|
175716
176880
|
}
|
|
175717
176881
|
var DEBOUNCE_MS = 600;
|
|
@@ -176860,12 +178024,15 @@ function buildTextBlockStyle(element, options = {}) {
|
|
|
176860
178024
|
const bodyIndent = hasParagraphIndents ? 0 : ts?.paragraphIndent || 0;
|
|
176861
178025
|
const bodyMarginLeft = hasParagraphIndents ? 0 : ts?.paragraphMarginLeft || 0;
|
|
176862
178026
|
const bodyMarginRight = hasParagraphIndents ? 0 : ts?.paragraphMarginRight || 0;
|
|
178027
|
+
const hasTextSegments = (element.textSegments?.length ?? 0) > 0;
|
|
176863
178028
|
const decorations = [];
|
|
176864
|
-
if (
|
|
176865
|
-
|
|
176866
|
-
|
|
176867
|
-
|
|
176868
|
-
|
|
178029
|
+
if (!hasTextSegments) {
|
|
178030
|
+
if (ts?.underline || ts?.hyperlink) {
|
|
178031
|
+
decorations.push("underline");
|
|
178032
|
+
}
|
|
178033
|
+
if (ts?.strikethrough) {
|
|
178034
|
+
decorations.push("line-through");
|
|
178035
|
+
}
|
|
176869
178036
|
}
|
|
176870
178037
|
const style = {};
|
|
176871
178038
|
if (options.bodyLayout) {
|
|
@@ -176881,7 +178048,7 @@ function buildTextBlockStyle(element, options = {}) {
|
|
|
176881
178048
|
}
|
|
176882
178049
|
}
|
|
176883
178050
|
style.color = ts?.hyperlink ? normalizeHexColor2(ts?.color, HYPERLINK_COLOR) : normalizeHexColor2(ts?.color, fallbackColor);
|
|
176884
|
-
if (
|
|
178051
|
+
if (!hasTextSegments && ts?.highlightColor) {
|
|
176885
178052
|
style.backgroundColor = normalizeHexColor2(ts.highlightColor, void 0);
|
|
176886
178053
|
}
|
|
176887
178054
|
style.textAlign = resolveCssTextAlign(ts?.align, isRtl) ?? "left";
|
|
@@ -176894,7 +178061,7 @@ function buildTextBlockStyle(element, options = {}) {
|
|
|
176894
178061
|
style.fontWeight = ts?.bold ? 700 : 400;
|
|
176895
178062
|
style.fontStyle = ts?.italic ? "italic" : "normal";
|
|
176896
178063
|
style.textDecorationLine = decorations.length > 0 ? decorations.join(" ") : "none";
|
|
176897
|
-
if (ts?.strikethrough && ts?.strikeType === "dblStrike") {
|
|
178064
|
+
if (!hasTextSegments && ts?.strikethrough && ts?.strikeType === "dblStrike") {
|
|
176898
178065
|
style.textDecorationStyle = "double";
|
|
176899
178066
|
}
|
|
176900
178067
|
style.lineHeight = resolveLineHeight(ts);
|
|
@@ -181231,6 +182398,9 @@ function remapEmptyParagraph(text22, segments, terminator) {
|
|
|
181231
182398
|
delete first.isParagraphBreak;
|
|
181232
182399
|
return [{ ...first, text: text22, style: { ...insertionStyle } }];
|
|
181233
182400
|
}
|
|
182401
|
+
function trailingWhitespace(text22) {
|
|
182402
|
+
return text22.slice(text22.trimEnd().length);
|
|
182403
|
+
}
|
|
181234
182404
|
function renumberRemappedParagraphs(segments) {
|
|
181235
182405
|
const sequence = createAutoNumberSequence();
|
|
181236
182406
|
let first = true;
|
|
@@ -181254,7 +182424,7 @@ function renumberRemappedParagraphs(segments) {
|
|
|
181254
182424
|
if (isBulletMarkerSegment(segment)) {
|
|
181255
182425
|
const resolved = resolveParagraphBullet(updated);
|
|
181256
182426
|
if (resolved) {
|
|
181257
|
-
updated.text = resolved.marker + (segment.text
|
|
182427
|
+
updated.text = resolved.marker + trailingWhitespace(segment.text);
|
|
181258
182428
|
}
|
|
181259
182429
|
}
|
|
181260
182430
|
return updated;
|
|
@@ -181304,8 +182474,7 @@ function continueListParagraph(segments, donorSegments) {
|
|
|
181304
182474
|
if (bullet.isNumbered && typeof paragraphIndex === "number" && Number.isFinite(paragraphIndex) && isBulletMarkerSegment(donor)) {
|
|
181305
182475
|
const resolved = resolveParagraphBullet(continued);
|
|
181306
182476
|
if (resolved) {
|
|
181307
|
-
|
|
181308
|
-
continued.text = `${resolved.marker}${trailingWhitespace}`;
|
|
182477
|
+
continued.text = `${resolved.marker}${trailingWhitespace(donor.text)}`;
|
|
181309
182478
|
}
|
|
181310
182479
|
}
|
|
181311
182480
|
return [continued, ...rest];
|
|
@@ -181538,6 +182707,22 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
181538
182707
|
);
|
|
181539
182708
|
if (!originalParagraph && precedingParagraph) {
|
|
181540
182709
|
paraSegments = continueListParagraph(paraSegments, precedingParagraph);
|
|
182710
|
+
const donor = precedingParagraph[0];
|
|
182711
|
+
if (donor?.paragraphProperties?.alignment !== void 0 && paraSegments[0]) {
|
|
182712
|
+
paraSegments = [
|
|
182713
|
+
{
|
|
182714
|
+
...paraSegments[0],
|
|
182715
|
+
paragraphLevel: donor.paragraphLevel,
|
|
182716
|
+
paragraphProperties: donor.paragraphProperties
|
|
182717
|
+
},
|
|
182718
|
+
...paraSegments.slice(1)
|
|
182719
|
+
];
|
|
182720
|
+
}
|
|
182721
|
+
} else if (!originalParagraph && pi === 0 && paraSegments[0]) {
|
|
182722
|
+
const firstOriginal = originalParagraphs[0]?.segments[0];
|
|
182723
|
+
if (firstOriginal?.paragraphLevel !== void 0) {
|
|
182724
|
+
paraSegments = [{ ...paraSegments[0], paragraphLevel: firstOriginal.paragraphLevel }];
|
|
182725
|
+
}
|
|
181541
182726
|
}
|
|
181542
182727
|
output.push(...paraSegments);
|
|
181543
182728
|
precedingParagraph = paraSegments;
|
|
@@ -181648,7 +182833,7 @@ function adjustmentRange(def, key2, vars, isAngular) {
|
|
|
181648
182833
|
}
|
|
181649
182834
|
return isAngular ? { min: 0, max: ANGLE_UNITS_PER_TURN } : { min: -UNBOUNDED_CARTESIAN, max: UNBOUNDED_CARTESIAN };
|
|
181650
182835
|
}
|
|
181651
|
-
var
|
|
182836
|
+
var COMMAND_ARITY2 = {
|
|
181652
182837
|
M: { take: 2, points: [0] },
|
|
181653
182838
|
L: { take: 2, points: [0] },
|
|
181654
182839
|
Q: { take: 4, points: [0, 2] },
|
|
@@ -181668,7 +182853,7 @@ function pathCoordinates(paths) {
|
|
|
181668
182853
|
i2 += 1;
|
|
181669
182854
|
continue;
|
|
181670
182855
|
}
|
|
181671
|
-
const arity =
|
|
182856
|
+
const arity = COMMAND_ARITY2[command];
|
|
181672
182857
|
if (!arity) {
|
|
181673
182858
|
i2 += 1;
|
|
181674
182859
|
continue;
|
|
@@ -187560,14 +188745,14 @@ var THREE_UNAVAILABLE = {
|
|
|
187560
188745
|
var FOV = 50;
|
|
187561
188746
|
async function loadThree() {
|
|
187562
188747
|
try {
|
|
187563
|
-
return await import('./three.module-
|
|
188748
|
+
return await import('./three.module-LGUV2LI6.mjs');
|
|
187564
188749
|
} catch {
|
|
187565
188750
|
return null;
|
|
187566
188751
|
}
|
|
187567
188752
|
}
|
|
187568
188753
|
async function loadGltfLoaderCtor() {
|
|
187569
188754
|
try {
|
|
187570
|
-
const mod = await import('./GLTFLoader-
|
|
188755
|
+
const mod = await import('./GLTFLoader-IWJFC4XI.mjs');
|
|
187571
188756
|
return mod.GLTFLoader;
|
|
187572
188757
|
} catch {
|
|
187573
188758
|
return null;
|
|
@@ -187575,7 +188760,7 @@ async function loadGltfLoaderCtor() {
|
|
|
187575
188760
|
}
|
|
187576
188761
|
async function loadOrbitControlsCtor() {
|
|
187577
188762
|
try {
|
|
187578
|
-
const mod = await import('./OrbitControls-
|
|
188763
|
+
const mod = await import('./OrbitControls-2XOMWUVE.mjs');
|
|
187579
188764
|
return mod.OrbitControls;
|
|
187580
188765
|
} catch {
|
|
187581
188766
|
return null;
|
|
@@ -187922,14 +189107,14 @@ function createChart3DLabelProjector(three, doc, labels) {
|
|
|
187922
189107
|
}
|
|
187923
189108
|
async function loadChart3DThree() {
|
|
187924
189109
|
try {
|
|
187925
|
-
return await import('./three.module-
|
|
189110
|
+
return await import('./three.module-LGUV2LI6.mjs');
|
|
187926
189111
|
} catch {
|
|
187927
189112
|
return null;
|
|
187928
189113
|
}
|
|
187929
189114
|
}
|
|
187930
189115
|
async function loadChart3DOrbitControls() {
|
|
187931
189116
|
try {
|
|
187932
|
-
const mod = await import('./OrbitControls-
|
|
189117
|
+
const mod = await import('./OrbitControls-2XOMWUVE.mjs');
|
|
187933
189118
|
return mod.OrbitControls;
|
|
187934
189119
|
} catch {
|
|
187935
189120
|
return null;
|
|
@@ -190764,27 +191949,41 @@ function projectDrawingShapes(elementId, shapes, viewBox, palette, style) {
|
|
|
190764
191949
|
function styleShadowFilter(style) {
|
|
190765
191950
|
return styleShadow(style);
|
|
190766
191951
|
}
|
|
191952
|
+
function collectFontsFromElement(element, fonts) {
|
|
191953
|
+
if (hasTextProperties(element)) {
|
|
191954
|
+
if (element.textStyle?.fontFamily) {
|
|
191955
|
+
fonts.add(element.textStyle.fontFamily);
|
|
191956
|
+
}
|
|
191957
|
+
for (const segment of element.textSegments ?? []) {
|
|
191958
|
+
if (segment.style?.fontFamily) {
|
|
191959
|
+
fonts.add(segment.style.fontFamily);
|
|
191960
|
+
}
|
|
191961
|
+
}
|
|
191962
|
+
}
|
|
191963
|
+
if (element.type === "group") {
|
|
191964
|
+
for (const child27 of element.children ?? []) {
|
|
191965
|
+
collectFontsFromElement(child27, fonts);
|
|
191966
|
+
}
|
|
191967
|
+
}
|
|
191968
|
+
}
|
|
191969
|
+
function collectUsedFonts(slides) {
|
|
191970
|
+
const fonts = /* @__PURE__ */ new Set();
|
|
191971
|
+
for (const slide of slides) {
|
|
191972
|
+
for (const element of slide.elements ?? []) {
|
|
191973
|
+
collectFontsFromElement(element, fonts);
|
|
191974
|
+
}
|
|
191975
|
+
}
|
|
191976
|
+
return [...fonts].sort();
|
|
191977
|
+
}
|
|
190767
191978
|
var GOOGLE_FONTS_CSS2_BASE = "https://fonts.googleapis.com/css2";
|
|
190768
191979
|
var GOOGLE_WEBFONT_AXIS = "ital,wght@0,400;0,700;1,400;1,700";
|
|
190769
191980
|
var DISPLAY_PARAM = "display=swap";
|
|
190770
191981
|
function collectReferencedFontFamilies(slides) {
|
|
190771
191982
|
const families = /* @__PURE__ */ new Set();
|
|
190772
|
-
const visit = (elements) => {
|
|
190773
|
-
for (const el of elements) {
|
|
190774
|
-
if (el.type === "group") {
|
|
190775
|
-
visit(el.children);
|
|
190776
|
-
}
|
|
190777
|
-
if (hasTextProperties(el) && el.textSegments) {
|
|
190778
|
-
for (const seg of el.textSegments) {
|
|
190779
|
-
if (seg.style.fontFamily) {
|
|
190780
|
-
families.add(seg.style.fontFamily);
|
|
190781
|
-
}
|
|
190782
|
-
}
|
|
190783
|
-
}
|
|
190784
|
-
}
|
|
190785
|
-
};
|
|
190786
191983
|
for (const slide of slides) {
|
|
190787
|
-
|
|
191984
|
+
for (const el of slide.elements) {
|
|
191985
|
+
collectFontsFromElement(el, families);
|
|
191986
|
+
}
|
|
190788
191987
|
}
|
|
190789
191988
|
return families;
|
|
190790
191989
|
}
|
|
@@ -198362,32 +199561,6 @@ function computeVirtualRange(totalItems, itemHeight, scrollTop, viewportHeight,
|
|
|
198362
199561
|
visibleRange: { start: visibleStart, end: visibleEnd }
|
|
198363
199562
|
};
|
|
198364
199563
|
}
|
|
198365
|
-
function collectFontsFromElement(element, fonts) {
|
|
198366
|
-
if (hasTextProperties(element)) {
|
|
198367
|
-
if (element.textStyle?.fontFamily) {
|
|
198368
|
-
fonts.add(element.textStyle.fontFamily);
|
|
198369
|
-
}
|
|
198370
|
-
for (const segment of element.textSegments ?? []) {
|
|
198371
|
-
if (segment.style?.fontFamily) {
|
|
198372
|
-
fonts.add(segment.style.fontFamily);
|
|
198373
|
-
}
|
|
198374
|
-
}
|
|
198375
|
-
}
|
|
198376
|
-
if (element.type === "group") {
|
|
198377
|
-
for (const child27 of element.children ?? []) {
|
|
198378
|
-
collectFontsFromElement(child27, fonts);
|
|
198379
|
-
}
|
|
198380
|
-
}
|
|
198381
|
-
}
|
|
198382
|
-
function collectUsedFonts(slides) {
|
|
198383
|
-
const fonts = /* @__PURE__ */ new Set();
|
|
198384
|
-
for (const slide of slides) {
|
|
198385
|
-
for (const element of slide.elements ?? []) {
|
|
198386
|
-
collectFontsFromElement(element, fonts);
|
|
198387
|
-
}
|
|
198388
|
-
}
|
|
198389
|
-
return [...fonts].sort();
|
|
198390
|
-
}
|
|
198391
199564
|
function browserFontSource() {
|
|
198392
199565
|
return typeof document === "undefined" ? void 0 : document.fonts;
|
|
198393
199566
|
}
|
|
@@ -201178,13 +202351,26 @@ async function fetchAsDataUrl(url) {
|
|
|
201178
202351
|
return null;
|
|
201179
202352
|
}
|
|
201180
202353
|
}
|
|
201181
|
-
var CSS_URL_PATTERN = /url\(\s*(?:"([^"]*)"|'([^']*)'|([^"')\s]+))\s*\)/u;
|
|
201182
202354
|
function extractCssUrl(value) {
|
|
201183
|
-
const
|
|
201184
|
-
if (
|
|
202355
|
+
const start = value.indexOf("url(");
|
|
202356
|
+
if (start === -1) {
|
|
202357
|
+
return null;
|
|
202358
|
+
}
|
|
202359
|
+
const contents = value.slice(start + "url(".length).trimStart();
|
|
202360
|
+
const quote = contents[0];
|
|
202361
|
+
if (quote === '"' || quote === "'") {
|
|
202362
|
+
const end2 = contents.indexOf(quote, 1);
|
|
202363
|
+
if (end2 === -1 || !contents.slice(end2 + 1).trimStart().startsWith(")")) {
|
|
202364
|
+
return null;
|
|
202365
|
+
}
|
|
202366
|
+
return contents.slice(1, end2);
|
|
202367
|
+
}
|
|
202368
|
+
const end = contents.indexOf(")");
|
|
202369
|
+
if (end === -1) {
|
|
201185
202370
|
return null;
|
|
201186
202371
|
}
|
|
201187
|
-
|
|
202372
|
+
const url = contents.slice(0, end).trimEnd();
|
|
202373
|
+
return url && !url.includes('"') && !url.includes("'") && !url.includes(" ") && !url.includes(" ") ? url : null;
|
|
201188
202374
|
}
|
|
201189
202375
|
function needsEmbedding(url) {
|
|
201190
202376
|
return url.startsWith("blob:") || url.startsWith("http:") || url.startsWith("https:");
|
|
@@ -201322,6 +202508,89 @@ function calculateViewportFit(input, defaults = DEFAULTS2) {
|
|
|
201322
202508
|
availableHeight
|
|
201323
202509
|
};
|
|
201324
202510
|
}
|
|
202511
|
+
var FREEFORM_COORD_SCALE = 100;
|
|
202512
|
+
var FREEFORM_MIN_POINTS = 2;
|
|
202513
|
+
var FREEFORM_CLOSE_TOLERANCE_FACTOR = 3;
|
|
202514
|
+
var FREEFORM_CLOSE_TOLERANCE_MIN_PX = 4;
|
|
202515
|
+
function freeformCloseTolerance(strokeWidth) {
|
|
202516
|
+
return Math.max(FREEFORM_CLOSE_TOLERANCE_MIN_PX, strokeWidth * FREEFORM_CLOSE_TOLERANCE_FACTOR);
|
|
202517
|
+
}
|
|
202518
|
+
function isFreeformStrokeClosed(points4, tolerance) {
|
|
202519
|
+
if (points4.length < 3) {
|
|
202520
|
+
return false;
|
|
202521
|
+
}
|
|
202522
|
+
const first = points4[0];
|
|
202523
|
+
const last = points4[points4.length - 1];
|
|
202524
|
+
return Math.hypot(last.x - first.x, last.y - first.y) <= tolerance;
|
|
202525
|
+
}
|
|
202526
|
+
function buildFreeformStrokeGeometry(points4, strokeWidth, options = {}) {
|
|
202527
|
+
if (points4.length < FREEFORM_MIN_POINTS) {
|
|
202528
|
+
return null;
|
|
202529
|
+
}
|
|
202530
|
+
let minX = Infinity;
|
|
202531
|
+
let minY = Infinity;
|
|
202532
|
+
let maxX = -Infinity;
|
|
202533
|
+
let maxY = -Infinity;
|
|
202534
|
+
for (const point of points4) {
|
|
202535
|
+
minX = Math.min(minX, point.x);
|
|
202536
|
+
minY = Math.min(minY, point.y);
|
|
202537
|
+
maxX = Math.max(maxX, point.x);
|
|
202538
|
+
maxY = Math.max(maxY, point.y);
|
|
202539
|
+
}
|
|
202540
|
+
minX -= strokeWidth;
|
|
202541
|
+
minY -= strokeWidth;
|
|
202542
|
+
maxX += strokeWidth;
|
|
202543
|
+
maxY += strokeWidth;
|
|
202544
|
+
const width = Math.max(maxX - minX, 1);
|
|
202545
|
+
const height = Math.max(maxY - minY, 1);
|
|
202546
|
+
const segments = points4.map((point, index) => {
|
|
202547
|
+
const pt = {
|
|
202548
|
+
x: Math.round((point.x - minX) * FREEFORM_COORD_SCALE),
|
|
202549
|
+
y: Math.round((point.y - minY) * FREEFORM_COORD_SCALE)
|
|
202550
|
+
};
|
|
202551
|
+
return index === 0 ? { type: "moveTo", pt } : { type: "lineTo", pt };
|
|
202552
|
+
});
|
|
202553
|
+
const closed = isFreeformStrokeClosed(
|
|
202554
|
+
points4,
|
|
202555
|
+
options.closeTolerance ?? freeformCloseTolerance(strokeWidth)
|
|
202556
|
+
);
|
|
202557
|
+
if (closed) {
|
|
202558
|
+
segments.push({ type: "close" });
|
|
202559
|
+
}
|
|
202560
|
+
return {
|
|
202561
|
+
x: minX,
|
|
202562
|
+
y: minY,
|
|
202563
|
+
width,
|
|
202564
|
+
height,
|
|
202565
|
+
path: {
|
|
202566
|
+
width: Math.round(width * FREEFORM_COORD_SCALE),
|
|
202567
|
+
height: Math.round(height * FREEFORM_COORD_SCALE),
|
|
202568
|
+
segments
|
|
202569
|
+
},
|
|
202570
|
+
closed
|
|
202571
|
+
};
|
|
202572
|
+
}
|
|
202573
|
+
function buildFreeformShapeElement(points4, options) {
|
|
202574
|
+
const geometry = buildFreeformStrokeGeometry(points4, options.width, options);
|
|
202575
|
+
if (!geometry) {
|
|
202576
|
+
return null;
|
|
202577
|
+
}
|
|
202578
|
+
return {
|
|
202579
|
+
id: options.id ?? createEditorId("shape"),
|
|
202580
|
+
type: "shape",
|
|
202581
|
+
x: geometry.x,
|
|
202582
|
+
y: geometry.y,
|
|
202583
|
+
width: geometry.width,
|
|
202584
|
+
height: geometry.height,
|
|
202585
|
+
shapeType: "custom",
|
|
202586
|
+
shapeStyle: {
|
|
202587
|
+
fillColor: "transparent",
|
|
202588
|
+
strokeColor: options.color,
|
|
202589
|
+
strokeWidth: options.width
|
|
202590
|
+
},
|
|
202591
|
+
customGeometryPaths: [geometry.path]
|
|
202592
|
+
};
|
|
202593
|
+
}
|
|
201325
202594
|
var FALLBACK_DOWNLOAD_NAME = "presentation.pptx";
|
|
201326
202595
|
var REVOKE_DELAY_MS = 200;
|
|
201327
202596
|
var OPEN_REVOKE_DELAY_MS = 6e4;
|
|
@@ -203486,15 +204755,18 @@ async function rasterizeElementTiles(element, naturalWidth, naturalHeight, doc,
|
|
|
203486
204755
|
return { fullWidth: plan.fullWidth, fullHeight: plan.fullHeight, tiled: plan.tiled, tiles };
|
|
203487
204756
|
}
|
|
203488
204757
|
function groupTilesByRow(tiles) {
|
|
203489
|
-
const
|
|
203490
|
-
|
|
203491
|
-
|
|
203492
|
-
|
|
203493
|
-
|
|
203494
|
-
|
|
203495
|
-
|
|
203496
|
-
|
|
203497
|
-
|
|
204758
|
+
const validTiles = tiles.filter(
|
|
204759
|
+
(tile) => Number.isInteger(tile.row) && Number.isInteger(tile.col) && tile.row >= 0 && tile.col >= 0
|
|
204760
|
+
);
|
|
204761
|
+
const rowCount = validTiles.reduce((max, tile) => Math.max(max, tile.row), 0) + 1;
|
|
204762
|
+
return Array.from({ length: rowCount }, (_rowIndex, row) => {
|
|
204763
|
+
const tilesInRow = validTiles.filter((tile) => tile.row === row);
|
|
204764
|
+
const colCount = tilesInRow.reduce((max, tile) => Math.max(max, tile.col), -1) + 1;
|
|
204765
|
+
return Array.from(
|
|
204766
|
+
{ length: colCount },
|
|
204767
|
+
(_columnIndex, col) => tilesInRow.find((tile) => tile.col === col)
|
|
204768
|
+
);
|
|
204769
|
+
});
|
|
203498
204770
|
}
|
|
203499
204771
|
function combineTileRowPixels(tiles, fullWidth) {
|
|
203500
204772
|
if (tiles.length === 0) {
|
|
@@ -203718,4 +204990,4 @@ async function rasterResultToPngBlob(result) {
|
|
|
203718
204990
|
* `<p:extLst>` (optional)
|
|
203719
204991
|
*/
|
|
203720
204992
|
|
|
203721
|
-
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_TYPE_OPTIONS, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_OPTIONS, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptAutosaveRecovery, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChartPartHighlight, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyListStyleUpdate, applyMasterViewCrudAction, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, attachPresentationVisibilityPause, authorConnectorBetweenSites, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginShapeAdjustment, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildAreaChart3DDataForElement, buildBarActions, buildBarChart3DDataForElement, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartMarkDragGeometry, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildGlyphEnvelope, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLineChart3DDataForElement, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPieChart3DDataForElement, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRectPathGradient, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSurfaceChart3DDataForElement, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, calculateViewportFit, canAddTopLevelNode, canCommitActionType, canDrillDown, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectCoherent3DOffNodeIds, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createInitialPresentationSnapshot, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationLoadResources, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, cursorForTool, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, editCommentInList, elementActionToPptxAction, elementBulletKind, elementIdSelector, elementLockTogglePatch, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelection, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPresetShapeVectorGeometry, getPrintableArea, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasMultipleSelectedTableCells, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, insertCommentMention, insertTableElementColumn, insertTableElementRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isCalloutShape, isCellInRect, isCurrentLayout, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapEditingWheel, mapEditorKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, measureSvgViewportRect, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountAreaChart3D, mountBarChart3D, mountLineChart3D, mountModel3D, mountPieChart3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeYDocSlides, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, paintedStrokeWidth, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, playFeedbackSound, playGroup, playSlideTransitionPreview, polygonsToSvgPath, pptxActionToElementAction, prepareElementForInsertion, preprocessCssForCapture, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readOnlyRecommendation, readRibbonTransitionDraft, readSlideShowOption, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDisplayedChartType, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlideSizeSelection, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, resolveViewportFitOptions, restoreFilteredSeries, restoreSegmentSelection, restoreSessionDeck, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, seedRecentColors, segmentFrameCount, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, selectedParagraphBulletKind, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideShowOptionChange, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, surfaceWireframePatch, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, updateTextSegmentStyle, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleTemplateElements, warpPreviewPath, withChartPointValue, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs, xmlText };
|
|
204993
|
+
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_TYPE_OPTIONS, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_DECORATION_FLAGS, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_OPTIONS, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptAutosaveRecovery, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChartPartHighlight, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyMasterViewCrudAction, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyTextStyleUpdate, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, attachPresentationVisibilityPause, authorConnectorBetweenSites, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginShapeAdjustment, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildAreaChart3DDataForElement, buildBarActions, buildBarChart3DDataForElement, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartMarkDragGeometry, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildFreeformShapeElement, buildGlyphEnvelope, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLineChart3DDataForElement, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPieChart3DDataForElement, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRectPathGradient, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSurfaceChart3DDataForElement, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, calculateViewportFit, canAddTopLevelNode, canCommitActionType, canDrillDown, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectCoherent3DOffNodeIds, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createInitialPresentationSnapshot, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationLoadResources, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, cursorForTool, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, editCommentInList, elementActionToPptxAction, elementBulletKind, elementIdSelector, elementLockTogglePatch, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getConnectorPathGeometry, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelection, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPresetShapeVectorGeometry, getPrintableArea, getSelectionTextStyleFlags, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasMultipleSelectedTableCells, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, insertCommentMention, insertTableElementColumn, insertTableElementRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isCalloutShape, isCellInRect, isCurrentLayout, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapEditingWheel, mapEditorKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, measureSvgViewportRect, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountAreaChart3D, mountBarChart3D, mountLineChart3D, mountModel3D, mountPieChart3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, nextToggleValue, normalizeColorsForCapture, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeYDocSlides, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, paintedStrokeWidth, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, playFeedbackSound, playGroup, playSlideTransitionPreview, polygonsToSvgPath, pptxActionToElementAction, prepareElementForInsertion, preprocessCssForCapture, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readOnlyRecommendation, readRibbonTransitionDraft, readSlideShowOption, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDisplayedChartType, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlideSizeSelection, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, resolveViewportFitOptions, restoreFilteredSeries, restoreSegmentSelection, restoreSessionDeck, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, seedRecentColors, segmentFrameCount, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideShowOptionChange, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, surfaceWireframePatch, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSelectionBullets, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleTemplateElements, warpPreviewPath, withChartPointValue, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs, xmlText };
|