pptx-react-viewer 3.16.6 → 3.17.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 +36 -0
- package/README.md +25 -3
- package/dist/{AiChatPanel-6IBPORZC.mjs → AiChatPanel-4LKH44IE.mjs} +3 -3
- package/dist/AiChatPanel-4LKH44IE.mjs.br +0 -0
- package/dist/AiChatPanel-4LKH44IE.mjs.gz +0 -0
- package/dist/{AiChatPanel-WDNBYHX7.js → AiChatPanel-VWVGQ5DD.js} +24 -24
- package/dist/AiChatPanel-VWVGQ5DD.js.br +0 -0
- package/dist/AiChatPanel-VWVGQ5DD.js.gz +0 -0
- package/dist/{Area3DChartScene-MRPRTJWY.js → Area3DChartScene-D7GSJGPQ.js} +2 -2
- package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
- package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
- package/dist/{Area3DChartScene-EMOWMHHK.mjs → Area3DChartScene-X5SM67PZ.mjs} +1 -1
- package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
- package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-J3GJEGDJ.mjs → Bar3DChartScene-HWIFFGI3.mjs} +1 -1
- package/dist/{Bar3DChartScene-J3GJEGDJ.mjs.br → Bar3DChartScene-HWIFFGI3.mjs.br} +0 -0
- package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-THALZEYK.js → Bar3DChartScene-M72WQW5Y.js} +2 -2
- package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
- package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
- package/dist/{Line3DChartScene-Y7MODOK2.mjs → Line3DChartScene-7MPZWVF3.mjs} +1 -1
- package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
- package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
- package/dist/{Line3DChartScene-B26WZNO3.js → Line3DChartScene-YOZEEQZ3.js} +2 -2
- package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
- package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
- package/dist/{Model3DScene-XM3JN7M6.mjs → Model3DScene-57LVY5QW.mjs} +1 -1
- package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
- package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
- package/dist/{Model3DScene-27GN3D3U.js → Model3DScene-5IJSNGDZ.js} +2 -2
- package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
- package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
- package/dist/{PieChart3DScene-URSRUABE.js → PieChart3DScene-UBI6X66Q.js} +2 -2
- package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
- package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
- package/dist/{PieChart3DScene-4GP2B3PY.mjs → PieChart3DScene-WD5B6NP3.mjs} +1 -1
- package/dist/{PieChart3DScene-4GP2B3PY.mjs.br → PieChart3DScene-WD5B6NP3.mjs.br} +0 -0
- package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
- package/dist/{PowerPointViewer-Cl6jBPNw.d.ts → PowerPointViewer-Cde_wzd0.d.ts} +2 -2
- package/dist/{PowerPointViewer-Cl6jBPNw.d.ts.map → PowerPointViewer-Cde_wzd0.d.ts.map} +1 -1
- package/dist/{SurfaceChart3DScene-4OQNB3JY.js → SurfaceChart3DScene-JGNPYQ32.js} +2 -2
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
- package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-YJ4EYMWQ.mjs → SurfaceChart3DScene-JZGU6BBD.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-YJ4EYMWQ.mjs.br → SurfaceChart3DScene-JZGU6BBD.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
- package/dist/{audience-content-store-CB2WVM1K.d.ts → audience-content-store-A8Km8rBo.d.ts} +2 -2
- package/dist/{audience-content-store-CB2WVM1K.d.ts.map → audience-content-store-A8Km8rBo.d.ts.map} +1 -1
- package/dist/{chunk-U2H7CQ34.mjs → chunk-23PW4Y4R.mjs} +1 -1
- package/dist/chunk-23PW4Y4R.mjs.br +0 -0
- package/dist/chunk-23PW4Y4R.mjs.gz +0 -0
- package/dist/{chunk-TTCWWF47.js → chunk-3UGVURWU.js} +555 -499
- package/dist/chunk-3UGVURWU.js.br +0 -0
- package/dist/chunk-3UGVURWU.js.gz +0 -0
- package/dist/{chunk-VRMITIZZ.js → chunk-4SPZ5IZN.js} +1239 -506
- package/dist/chunk-4SPZ5IZN.js.br +0 -0
- package/dist/chunk-4SPZ5IZN.js.gz +0 -0
- package/dist/{chunk-LTQRC4WB.js → chunk-72LYFUGL.js} +1323 -1310
- package/dist/chunk-72LYFUGL.js.br +0 -0
- package/dist/chunk-72LYFUGL.js.gz +0 -0
- package/dist/{chunk-YUIXPWFT.mjs → chunk-7YJBRPCT.mjs} +9 -5
- package/dist/chunk-7YJBRPCT.mjs.br +0 -0
- package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
- package/dist/{chunk-QLZHTIH6.mjs → chunk-7YOA4HNP.mjs} +106 -50
- package/dist/chunk-7YOA4HNP.mjs.br +0 -0
- package/dist/chunk-7YOA4HNP.mjs.gz +0 -0
- package/dist/{chunk-RWVMSJ7C.mjs → chunk-EDMJYVCS.mjs} +44 -31
- package/dist/chunk-EDMJYVCS.mjs.br +0 -0
- package/dist/chunk-EDMJYVCS.mjs.gz +0 -0
- package/dist/{chunk-C7H7NM2W.js → chunk-KVXB22D3.js} +13 -9
- package/dist/chunk-KVXB22D3.js.br +0 -0
- package/dist/chunk-KVXB22D3.js.gz +0 -0
- package/dist/{chunk-BJL5MJ7A.js → chunk-NJ3WCYYG.js} +169 -169
- package/dist/chunk-NJ3WCYYG.js.br +0 -0
- package/dist/{chunk-BJL5MJ7A.js.gz → chunk-NJ3WCYYG.js.gz} +0 -0
- package/dist/{chunk-PO2PYVHF.mjs → chunk-QTGCOL5H.mjs} +1233 -507
- package/dist/chunk-QTGCOL5H.mjs.br +0 -0
- package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
- package/dist/index.d.ts +33 -3
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +38 -3
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- 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/{types-Bzdkiakq.d.ts → types-BqB2ZCwS.d.ts} +3 -3
- package/dist/{types-Bzdkiakq.d.ts.map → types-BqB2ZCwS.d.ts.map} +1 -1
- package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts → useViewerBuildingBlocks-DkUGmlkP.d.ts} +4 -4
- package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts.map → useViewerBuildingBlocks-DkUGmlkP.d.ts.map} +1 -1
- package/dist/viewer/index.d.ts +31 -1
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-6IBPORZC.mjs.br +0 -0
- package/dist/AiChatPanel-6IBPORZC.mjs.gz +0 -0
- package/dist/AiChatPanel-WDNBYHX7.js.br +0 -0
- package/dist/AiChatPanel-WDNBYHX7.js.gz +0 -0
- package/dist/Area3DChartScene-EMOWMHHK.mjs.br +0 -0
- package/dist/Area3DChartScene-EMOWMHHK.mjs.gz +0 -0
- package/dist/Area3DChartScene-MRPRTJWY.js.br +0 -0
- package/dist/Area3DChartScene-MRPRTJWY.js.gz +0 -0
- package/dist/Bar3DChartScene-J3GJEGDJ.mjs.gz +0 -0
- package/dist/Bar3DChartScene-THALZEYK.js.br +0 -0
- package/dist/Bar3DChartScene-THALZEYK.js.gz +0 -0
- package/dist/Line3DChartScene-B26WZNO3.js.br +0 -0
- package/dist/Line3DChartScene-B26WZNO3.js.gz +0 -0
- package/dist/Line3DChartScene-Y7MODOK2.mjs.br +0 -0
- package/dist/Line3DChartScene-Y7MODOK2.mjs.gz +0 -0
- package/dist/Model3DScene-27GN3D3U.js.br +0 -0
- package/dist/Model3DScene-27GN3D3U.js.gz +0 -0
- package/dist/Model3DScene-XM3JN7M6.mjs.br +0 -0
- package/dist/Model3DScene-XM3JN7M6.mjs.gz +0 -0
- package/dist/PieChart3DScene-4GP2B3PY.mjs.gz +0 -0
- package/dist/PieChart3DScene-URSRUABE.js.br +0 -0
- package/dist/PieChart3DScene-URSRUABE.js.gz +0 -0
- package/dist/SurfaceChart3DScene-4OQNB3JY.js.br +0 -0
- package/dist/SurfaceChart3DScene-4OQNB3JY.js.gz +0 -0
- package/dist/SurfaceChart3DScene-YJ4EYMWQ.mjs.gz +0 -0
- package/dist/chunk-BJL5MJ7A.js.br +0 -0
- package/dist/chunk-C7H7NM2W.js.br +0 -0
- package/dist/chunk-C7H7NM2W.js.gz +0 -0
- package/dist/chunk-LTQRC4WB.js.br +0 -0
- package/dist/chunk-LTQRC4WB.js.gz +0 -0
- package/dist/chunk-PO2PYVHF.mjs.br +0 -0
- package/dist/chunk-PO2PYVHF.mjs.gz +0 -0
- package/dist/chunk-QLZHTIH6.mjs.br +0 -0
- package/dist/chunk-QLZHTIH6.mjs.gz +0 -0
- package/dist/chunk-RWVMSJ7C.mjs.br +0 -0
- package/dist/chunk-RWVMSJ7C.mjs.gz +0 -0
- package/dist/chunk-TTCWWF47.js.br +0 -0
- package/dist/chunk-TTCWWF47.js.gz +0 -0
- package/dist/chunk-U2H7CQ34.mjs.br +0 -0
- package/dist/chunk-U2H7CQ34.mjs.gz +0 -0
- package/dist/chunk-VRMITIZZ.js.br +0 -0
- package/dist/chunk-VRMITIZZ.js.gz +0 -0
- package/dist/chunk-YUIXPWFT.mjs.br +0 -0
- package/dist/chunk-YUIXPWFT.mjs.gz +0 -0
|
@@ -7049,6 +7049,7 @@ var init_collaboration_field_schema = __esm({
|
|
|
7049
7049
|
hidden: "scalar",
|
|
7050
7050
|
opacity: "scalar",
|
|
7051
7051
|
rawXml: "complex",
|
|
7052
|
+
inheritedTransform: "complex",
|
|
7052
7053
|
actionClick: "complex",
|
|
7053
7054
|
actionHover: "complex",
|
|
7054
7055
|
locks: "complex",
|
|
@@ -34232,10 +34233,10 @@ function clampByRules(value, rules, type) {
|
|
|
34232
34233
|
}
|
|
34233
34234
|
function ratioConstraint(constraints, types, fallback, rules) {
|
|
34234
34235
|
for (const type of types) {
|
|
34235
|
-
const
|
|
34236
|
+
const matches2 = (constraints ?? []).filter((constraint) => constraint.type === type);
|
|
34236
34237
|
const ordered4 = [
|
|
34237
|
-
...
|
|
34238
|
-
...
|
|
34238
|
+
...matches2.filter((constraint) => constraint.for === "ch"),
|
|
34239
|
+
...matches2.filter((constraint) => constraint.for !== "ch")
|
|
34239
34240
|
];
|
|
34240
34241
|
for (const constraint of ordered4) {
|
|
34241
34242
|
const ratio = constraintRatio(constraint);
|
|
@@ -37104,9 +37105,9 @@ function compoundChildIds(role, node, childrenOf) {
|
|
|
37104
37105
|
const children13 = childrenOf.get(node.id) ?? [];
|
|
37105
37106
|
const start = role.presentationOf?.start?.[chIndex] ?? 1;
|
|
37106
37107
|
const count = role.presentationOf?.count?.[chIndex];
|
|
37107
|
-
const
|
|
37108
|
+
const positions2 = positionRange(start, count, 1, children13.length);
|
|
37108
37109
|
const ids = [];
|
|
37109
|
-
for (const position2 of
|
|
37110
|
+
for (const position2 of positions2) {
|
|
37110
37111
|
const child262 = children13[position2 - 1];
|
|
37111
37112
|
if (!child262 || child262.text.trim().length === 0) {
|
|
37112
37113
|
continue;
|
|
@@ -40437,14 +40438,14 @@ var init_smartart_hierarchy_composite_child = __esm({
|
|
|
40437
40438
|
});
|
|
40438
40439
|
function findByReference(constraints, type, referenceType, preferredName) {
|
|
40439
40440
|
const list = constraints ?? [];
|
|
40440
|
-
const
|
|
40441
|
+
const matches2 = (c) => c.type === type && c.referenceType === referenceType && typeof c.factor === "number";
|
|
40441
40442
|
if (preferredName !== void 0) {
|
|
40442
|
-
const named = list.find((c) =>
|
|
40443
|
+
const named = list.find((c) => matches2(c) && c.forName === preferredName);
|
|
40443
40444
|
if (named) {
|
|
40444
40445
|
return named.factor;
|
|
40445
40446
|
}
|
|
40446
40447
|
}
|
|
40447
|
-
return list.find(
|
|
40448
|
+
return list.find(matches2)?.factor;
|
|
40448
40449
|
}
|
|
40449
40450
|
function findDirectAspectRatio(constraints, preferredName) {
|
|
40450
40451
|
const hRefW = findByReference(constraints, "h", "w", preferredName);
|
|
@@ -43112,14 +43113,14 @@ function findDrawingShapeIndex(shapes, nodes, nodeId) {
|
|
|
43112
43113
|
const node = nodes.find((n) => n.id === nodeId);
|
|
43113
43114
|
if (node?.text) {
|
|
43114
43115
|
const text22 = node.text.trim();
|
|
43115
|
-
const
|
|
43116
|
+
const matches2 = [];
|
|
43116
43117
|
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
43117
43118
|
if (shapes[i2].text?.trim() === text22) {
|
|
43118
|
-
|
|
43119
|
+
matches2.push(i2);
|
|
43119
43120
|
}
|
|
43120
43121
|
}
|
|
43121
|
-
if (
|
|
43122
|
-
return
|
|
43122
|
+
if (matches2.length === 1) {
|
|
43123
|
+
return matches2[0];
|
|
43123
43124
|
}
|
|
43124
43125
|
}
|
|
43125
43126
|
return -1;
|
|
@@ -43319,14 +43320,14 @@ function findShapeIndexForNode(shapes, nodes, nodeId) {
|
|
|
43319
43320
|
const node = nodes.find((n) => n.id === nodeId);
|
|
43320
43321
|
if (node?.text) {
|
|
43321
43322
|
const text22 = node.text.trim();
|
|
43322
|
-
const
|
|
43323
|
+
const matches2 = [];
|
|
43323
43324
|
for (let i2 = 0; i2 < shapes.length; i2++) {
|
|
43324
43325
|
if (shapes[i2].text?.trim() === text22) {
|
|
43325
|
-
|
|
43326
|
+
matches2.push(i2);
|
|
43326
43327
|
}
|
|
43327
43328
|
}
|
|
43328
|
-
if (
|
|
43329
|
-
return
|
|
43329
|
+
if (matches2.length === 1) {
|
|
43330
|
+
return matches2[0];
|
|
43330
43331
|
}
|
|
43331
43332
|
}
|
|
43332
43333
|
return -1;
|
|
@@ -48827,7 +48828,7 @@ function parseValueColors(node, colorParser) {
|
|
|
48827
48828
|
return colors.length > 0 ? colors : void 0;
|
|
48828
48829
|
}
|
|
48829
48830
|
function parseValueColorPositions(node, xmlLookup) {
|
|
48830
|
-
const
|
|
48831
|
+
const positions2 = [];
|
|
48831
48832
|
for (const posNode of xmlLookup.getChildrenArrayByLocalName(node, "pos")) {
|
|
48832
48833
|
const kind = POSITION_KIND_MAP[String(posNode["@_type"] ?? "").trim()];
|
|
48833
48834
|
if (!kind) {
|
|
@@ -48841,9 +48842,9 @@ function parseValueColorPositions(node, xmlLookup) {
|
|
|
48841
48842
|
entry2.value = num;
|
|
48842
48843
|
}
|
|
48843
48844
|
}
|
|
48844
|
-
|
|
48845
|
+
positions2.push(entry2);
|
|
48845
48846
|
}
|
|
48846
|
-
return
|
|
48847
|
+
return positions2.length > 0 ? positions2 : void 0;
|
|
48847
48848
|
}
|
|
48848
48849
|
function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
48849
48850
|
const valueColorsNode = xmlLookup.getChildByLocalName(series, "valueColors");
|
|
@@ -48859,9 +48860,9 @@ function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
|
48859
48860
|
}
|
|
48860
48861
|
}
|
|
48861
48862
|
if (valueColorPositionsNode) {
|
|
48862
|
-
const
|
|
48863
|
-
if (
|
|
48864
|
-
result.valueColorPositions =
|
|
48863
|
+
const positions2 = parseValueColorPositions(valueColorPositionsNode, xmlLookup);
|
|
48864
|
+
if (positions2) {
|
|
48865
|
+
result.valueColorPositions = positions2;
|
|
48865
48866
|
}
|
|
48866
48867
|
}
|
|
48867
48868
|
return Object.keys(result).length > 0 ? result : void 0;
|
|
@@ -63570,15 +63571,48 @@ var init_group_tight_rewrap = __esm({
|
|
|
63570
63571
|
init_group_tight_rewrap_own_box();
|
|
63571
63572
|
}
|
|
63572
63573
|
});
|
|
63574
|
+
function materializeInheritedShapeTransform(shape, element) {
|
|
63575
|
+
const baseline = element.inheritedTransform;
|
|
63576
|
+
const envelope = element.type === "text" || element.type === "shape" ? "p:nvSpPr" : element.type === "picture" || element.type === "media" ? "p:nvPicPr" : void 0;
|
|
63577
|
+
if (!baseline || !envelope || !xmlChild(shape, envelope)) {
|
|
63578
|
+
return void 0;
|
|
63579
|
+
}
|
|
63580
|
+
if (["x", "y", "width", "height"].some(
|
|
63581
|
+
(key2) => !Number.isFinite(element[key2]) || !Number.isFinite(baseline[key2])
|
|
63582
|
+
) || NUMERIC_KEYS.some(
|
|
63583
|
+
(key2) => !Number.isFinite(element[key2] ?? 0) || !Number.isFinite(baseline[key2] ?? 0)
|
|
63584
|
+
) || element.width < 0 || element.height < 0 || baseline.width < 0 || baseline.height < 0) {
|
|
63585
|
+
return void 0;
|
|
63586
|
+
}
|
|
63587
|
+
const changed = NUMERIC_KEYS.some((key2) => (element[key2] ?? 0) !== (baseline[key2] ?? 0)) || Boolean(element.flipHorizontal) !== Boolean(baseline.flipHorizontal) || Boolean(element.flipVertical) !== Boolean(baseline.flipVertical);
|
|
63588
|
+
if (!changed) {
|
|
63589
|
+
return void 0;
|
|
63590
|
+
}
|
|
63591
|
+
const transform6 = {};
|
|
63592
|
+
const properties = { ...xmlChild(shape, "p:spPr") };
|
|
63593
|
+
delete properties["a:xfrm"];
|
|
63594
|
+
shape["p:spPr"] = { "a:xfrm": transform6, ...properties };
|
|
63595
|
+
return transform6;
|
|
63596
|
+
}
|
|
63597
|
+
var NUMERIC_KEYS;
|
|
63598
|
+
var init_inherited_shape_transform = __esm({
|
|
63599
|
+
"src/core/core/builders/inherited-shape-transform.ts"() {
|
|
63600
|
+
init_xml_access();
|
|
63601
|
+
NUMERIC_KEYS = ["x", "y", "width", "height", "rotation", "skewX", "skewY"];
|
|
63602
|
+
}
|
|
63603
|
+
});
|
|
63573
63604
|
var PptxElementTransformUpdater;
|
|
63574
63605
|
var init_PptxElementTransformUpdater = __esm({
|
|
63575
63606
|
"src/core/core/builders/PptxElementTransformUpdater.ts"() {
|
|
63576
63607
|
init_rotated_resize_anchor();
|
|
63577
63608
|
init_xfrm_emu_resolution();
|
|
63609
|
+
init_xml_access();
|
|
63578
63610
|
init_group_tight_rewrap();
|
|
63611
|
+
init_inherited_shape_transform();
|
|
63579
63612
|
PptxElementTransformUpdater = class {
|
|
63580
63613
|
applyTransform(shape, element, emuPerPx, enclosingGroupChildSpace) {
|
|
63581
|
-
const transform6 = shape["p:spPr"]?.["a:xfrm"] || shape["p:xfrm"]
|
|
63614
|
+
const transform6 = shape["p:spPr"]?.["a:xfrm"] || shape["p:xfrm"] || // A group's child geometry uses a different frame from the load-time baseline.
|
|
63615
|
+
!enclosingGroupChildSpace && materializeInheritedShapeTransform(shape, element);
|
|
63582
63616
|
if (!transform6) {
|
|
63583
63617
|
return;
|
|
63584
63618
|
}
|
|
@@ -63599,8 +63633,9 @@ var init_PptxElementTransformUpdater = __esm({
|
|
|
63599
63633
|
} else {
|
|
63600
63634
|
const naiveOffX = resolveXfrmEmu(element.x, element.xEmu, emuPerPx);
|
|
63601
63635
|
const naiveOffY = resolveXfrmEmu(element.y, element.yEmu, emuPerPx);
|
|
63636
|
+
const rotationChanged = element.inheritedTransform !== void 0 && (element.inheritedTransform.rotation ?? 0) !== (element.rotation ?? 0);
|
|
63602
63637
|
const rotatedResize = resolveRotatedResizeOffset({
|
|
63603
|
-
rotationDeg: element.rotation,
|
|
63638
|
+
rotationDeg: rotationChanged ? void 0 : element.rotation,
|
|
63604
63639
|
oldOffXEmu: element.xEmu,
|
|
63605
63640
|
oldOffYEmu: element.yEmu,
|
|
63606
63641
|
oldExtWidthEmu: element.widthEmu,
|
|
@@ -63626,14 +63661,20 @@ var init_PptxElementTransformUpdater = __esm({
|
|
|
63626
63661
|
if (element.skewY !== void 0) {
|
|
63627
63662
|
transform6["@_skewY"] = String(Math.round(element.skewY * 6e4));
|
|
63628
63663
|
}
|
|
63664
|
+
const nonVisual = xmlChild(shape, "p:nvSpPr") ?? xmlChild(shape, "p:nvPicPr");
|
|
63665
|
+
const isPlaceholder = xmlHasChild(xmlChild(nonVisual, "p:nvPr"), "p:ph");
|
|
63629
63666
|
if (element.flipHorizontal) {
|
|
63630
63667
|
transform6["@_flipH"] = "1";
|
|
63631
|
-
} else {
|
|
63668
|
+
} else if (element.inheritedTransform?.flipHorizontal || isPlaceholder && transform6["@_flipH"] !== void 0 && transform6["@_flipH"] !== "false") {
|
|
63669
|
+
transform6["@_flipH"] = "0";
|
|
63670
|
+
} else if (transform6["@_flipH"] !== "0" && transform6["@_flipH"] !== "false") {
|
|
63632
63671
|
delete transform6["@_flipH"];
|
|
63633
63672
|
}
|
|
63634
63673
|
if (element.flipVertical) {
|
|
63635
63674
|
transform6["@_flipV"] = "1";
|
|
63636
|
-
} else {
|
|
63675
|
+
} else if (element.inheritedTransform?.flipVertical || isPlaceholder && transform6["@_flipV"] !== void 0 && transform6["@_flipV"] !== "false") {
|
|
63676
|
+
transform6["@_flipV"] = "0";
|
|
63677
|
+
} else if (transform6["@_flipV"] !== "0" && transform6["@_flipV"] !== "false") {
|
|
63637
63678
|
delete transform6["@_flipV"];
|
|
63638
63679
|
}
|
|
63639
63680
|
}
|
|
@@ -74201,45 +74242,40 @@ var init_PptxEditorAnimationService = __esm({
|
|
|
74201
74242
|
};
|
|
74202
74243
|
}
|
|
74203
74244
|
});
|
|
74204
|
-
function
|
|
74205
|
-
|
|
74206
|
-
|
|
74207
|
-
|
|
74208
|
-
|
|
74209
|
-
|
|
74210
|
-
|
|
74211
|
-
|
|
74212
|
-
|
|
74213
|
-
let max = 0;
|
|
74214
|
-
for (const el of elements2) {
|
|
74215
|
-
if (el.shapeId !== void 0) {
|
|
74216
|
-
const n = Number.parseInt(el.shapeId, 10);
|
|
74217
|
-
if (Number.isFinite(n) && n > max) {
|
|
74218
|
-
max = n;
|
|
74245
|
+
function createShapeIdResolver(elements2, reservedMaxId = 0) {
|
|
74246
|
+
const byId = /* @__PURE__ */ new Map();
|
|
74247
|
+
let maxId = reservedMaxId;
|
|
74248
|
+
const visit = (element) => {
|
|
74249
|
+
byId.set(element.id, element);
|
|
74250
|
+
if (element.shapeId !== void 0) {
|
|
74251
|
+
const value = Number.parseInt(element.shapeId, 10);
|
|
74252
|
+
if (Number.isFinite(value)) {
|
|
74253
|
+
maxId = Math.max(maxId, value);
|
|
74219
74254
|
}
|
|
74220
74255
|
}
|
|
74221
|
-
|
|
74222
|
-
|
|
74223
|
-
}
|
|
74224
|
-
|
|
74225
|
-
|
|
74226
|
-
|
|
74227
|
-
|
|
74228
|
-
|
|
74229
|
-
byId.set(el.id, el);
|
|
74230
|
-
}
|
|
74231
|
-
let nextId2 = Math.max(maxShapeId(flat), reservedMaxId) + 1;
|
|
74232
|
-
const resolve2 = (elementId) => {
|
|
74233
|
-
const el = byId.get(elementId);
|
|
74234
|
-
if (!el) {
|
|
74256
|
+
if (element.type === "group") {
|
|
74257
|
+
element.children.forEach(visit);
|
|
74258
|
+
}
|
|
74259
|
+
};
|
|
74260
|
+
elements2.forEach(visit);
|
|
74261
|
+
return (elementId) => {
|
|
74262
|
+
const element = byId.get(elementId);
|
|
74263
|
+
if (!element) {
|
|
74235
74264
|
return void 0;
|
|
74236
74265
|
}
|
|
74237
|
-
if (
|
|
74238
|
-
|
|
74239
|
-
|
|
74266
|
+
if (element.shapeId === void 0) {
|
|
74267
|
+
maxId += 1;
|
|
74268
|
+
element.shapeId = String(maxId);
|
|
74240
74269
|
}
|
|
74241
|
-
return
|
|
74270
|
+
return element.shapeId;
|
|
74242
74271
|
};
|
|
74272
|
+
}
|
|
74273
|
+
var init_shape_id_resolver = __esm({
|
|
74274
|
+
"src/core/services/shape-id-resolver.ts"() {
|
|
74275
|
+
}
|
|
74276
|
+
});
|
|
74277
|
+
function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId = 0) {
|
|
74278
|
+
const resolve2 = createShapeIdResolver(elements2, reservedMaxId);
|
|
74243
74279
|
return animations.map((anim) => {
|
|
74244
74280
|
const resolvedElement = resolve2(anim.elementId);
|
|
74245
74281
|
const resolvedTrigger = anim.triggerShapeId !== void 0 ? resolve2(anim.triggerShapeId) : void 0;
|
|
@@ -74255,6 +74291,67 @@ function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId =
|
|
|
74255
74291
|
}
|
|
74256
74292
|
var init_animation_shape_id_assign = __esm({
|
|
74257
74293
|
"src/core/services/animation-shape-id-assign.ts"() {
|
|
74294
|
+
init_shape_id_resolver();
|
|
74295
|
+
}
|
|
74296
|
+
});
|
|
74297
|
+
function resolveConnectorShapeIds(elements2, reservedMaxId) {
|
|
74298
|
+
const resolve2 = createShapeIdResolver(elements2, reservedMaxId);
|
|
74299
|
+
const result = /* @__PURE__ */ new Map();
|
|
74300
|
+
const visit = (element) => {
|
|
74301
|
+
const nativeId = resolve2(element.id);
|
|
74302
|
+
if (nativeId !== void 0) {
|
|
74303
|
+
result.set(element.id, nativeId);
|
|
74304
|
+
}
|
|
74305
|
+
if (element.type === "group") {
|
|
74306
|
+
element.children.forEach(visit);
|
|
74307
|
+
}
|
|
74308
|
+
};
|
|
74309
|
+
elements2.forEach(visit);
|
|
74310
|
+
return result;
|
|
74311
|
+
}
|
|
74312
|
+
function applyConnectorShapeIds(shape, element, nativeIds) {
|
|
74313
|
+
if (element.type !== "connector" || !element.shapeStyle) {
|
|
74314
|
+
return;
|
|
74315
|
+
}
|
|
74316
|
+
const nv = xmlChild(shape, "p:nvCxnSpPr");
|
|
74317
|
+
if (!nv) {
|
|
74318
|
+
return;
|
|
74319
|
+
}
|
|
74320
|
+
const connections = xmlChild(nv, "p:cNvCxnSpPr") ?? {};
|
|
74321
|
+
for (const [tag, reference] of [
|
|
74322
|
+
["a:stCxn", element.shapeStyle.connectorStartConnection],
|
|
74323
|
+
["a:endCxn", element.shapeStyle.connectorEndConnection]
|
|
74324
|
+
]) {
|
|
74325
|
+
if (!reference?.shapeId) {
|
|
74326
|
+
continue;
|
|
74327
|
+
}
|
|
74328
|
+
const nativeId = nativeIds.get(reference.shapeId) ?? (/^\d+$/.test(reference.shapeId) ? reference.shapeId : void 0);
|
|
74329
|
+
if (nativeId === void 0) {
|
|
74330
|
+
if (!element.rawXml) {
|
|
74331
|
+
delete connections[tag];
|
|
74332
|
+
}
|
|
74333
|
+
continue;
|
|
74334
|
+
}
|
|
74335
|
+
connections[tag] = {
|
|
74336
|
+
...xmlChild(connections, tag),
|
|
74337
|
+
"@_id": nativeId,
|
|
74338
|
+
"@_idx": String(reference.connectionSiteIndex ?? 0)
|
|
74339
|
+
};
|
|
74340
|
+
}
|
|
74341
|
+
if (Object.keys(connections).length > 0) {
|
|
74342
|
+
nv["p:cNvCxnSpPr"] = reorderObjectKeys(connections, [
|
|
74343
|
+
"a:cxnSpLocks",
|
|
74344
|
+
"a:stCxn",
|
|
74345
|
+
"a:endCxn",
|
|
74346
|
+
"a:extLst"
|
|
74347
|
+
]);
|
|
74348
|
+
}
|
|
74349
|
+
}
|
|
74350
|
+
var init_connector_shape_id_assign = __esm({
|
|
74351
|
+
"src/core/services/connector-shape-id-assign.ts"() {
|
|
74352
|
+
init_xml_access();
|
|
74353
|
+
init_xml_reorder();
|
|
74354
|
+
init_shape_id_resolver();
|
|
74258
74355
|
}
|
|
74259
74356
|
});
|
|
74260
74357
|
function createGroupContext() {
|
|
@@ -77593,6 +77690,7 @@ var init_services = __esm({
|
|
|
77593
77690
|
init_PptxEditorAnimationService();
|
|
77594
77691
|
init_animation_target_reconcile();
|
|
77595
77692
|
init_animation_shape_id_assign();
|
|
77693
|
+
init_connector_shape_id_assign();
|
|
77596
77694
|
init_animation_sound_merge();
|
|
77597
77695
|
init_PptxNativeAnimationService();
|
|
77598
77696
|
init_PptxSlideTransitionService();
|
|
@@ -83809,10 +83907,10 @@ function buildFbse(picture, foDelay, size) {
|
|
|
83809
83907
|
function buildDgg(shapesPerDrawing, totalShapes) {
|
|
83810
83908
|
const drawingCount = shapesPerDrawing.length;
|
|
83811
83909
|
const lastDrawingShapeCount = shapesPerDrawing[drawingCount - 1] ?? 0;
|
|
83812
|
-
const
|
|
83910
|
+
const maxShapeId = drawingCount * SHAPE_ID_CLUSTER_SIZE + lastDrawingShapeCount;
|
|
83813
83911
|
const cidcl = drawingCount + 1;
|
|
83814
83912
|
const cspSaved = totalShapes - drawingCount;
|
|
83815
|
-
const w = new ByteWriter().u32(
|
|
83913
|
+
const w = new ByteWriter().u32(maxShapeId).u32(cidcl).u32(cspSaved).u32(drawingCount);
|
|
83816
83914
|
shapesPerDrawing.forEach((count, i2) => {
|
|
83817
83915
|
const drawingId = i2 + 1;
|
|
83818
83916
|
w.u32(drawingId).u32(count);
|
|
@@ -91986,6 +92084,51 @@ var init_notes_paragraph_scoped_xml = __esm({
|
|
|
91986
92084
|
DEFAULT_END_PARA_RPR = { "@_lang": "en-US" };
|
|
91987
92085
|
}
|
|
91988
92086
|
});
|
|
92087
|
+
function updateEndParagraphProperties(existing, style, serialize) {
|
|
92088
|
+
if (!style?.inheritedRunStyle) {
|
|
92089
|
+
return existing;
|
|
92090
|
+
}
|
|
92091
|
+
const baseline = serialize({ ...style, ...style.inheritedRunStyle, ...style.authoredRunStyle });
|
|
92092
|
+
const current = serialize(style);
|
|
92093
|
+
const attributes = {};
|
|
92094
|
+
const children13 = /* @__PURE__ */ new Map();
|
|
92095
|
+
for (const key2 of /* @__PURE__ */ new Set([...Object.keys(baseline), ...Object.keys(current)])) {
|
|
92096
|
+
if (JSON.stringify(baseline[key2]) === JSON.stringify(current[key2])) {
|
|
92097
|
+
continue;
|
|
92098
|
+
}
|
|
92099
|
+
if (key2.startsWith("@_")) {
|
|
92100
|
+
attributes[key2.slice(2)] = current[key2] === void 0 ? null : String(current[key2]);
|
|
92101
|
+
} else {
|
|
92102
|
+
children13.set(key2, current[key2] ?? null);
|
|
92103
|
+
}
|
|
92104
|
+
}
|
|
92105
|
+
if (Object.keys(attributes).length === 0 && children13.size === 0) {
|
|
92106
|
+
return existing;
|
|
92107
|
+
}
|
|
92108
|
+
const fillKeys = [
|
|
92109
|
+
"a:noFill",
|
|
92110
|
+
"a:solidFill",
|
|
92111
|
+
"a:gradFill",
|
|
92112
|
+
"a:blipFill",
|
|
92113
|
+
"a:pattFill",
|
|
92114
|
+
"a:grpFill"
|
|
92115
|
+
];
|
|
92116
|
+
const changedFill = fillKeys.find((key2) => children13.get(key2));
|
|
92117
|
+
if (changedFill) {
|
|
92118
|
+
for (const key2 of fillKeys) {
|
|
92119
|
+
if (key2 !== changedFill) {
|
|
92120
|
+
children13.set(key2, null);
|
|
92121
|
+
}
|
|
92122
|
+
}
|
|
92123
|
+
}
|
|
92124
|
+
return mergeOrderedXml(existing, attributes, children13, DEF_RPR_CHILD_ORDER);
|
|
92125
|
+
}
|
|
92126
|
+
var init_paragraph_insertion_style = __esm({
|
|
92127
|
+
"src/core/core/runtime/paragraph-insertion-style.ts"() {
|
|
92128
|
+
init_ordered_xml_merge();
|
|
92129
|
+
init_placeholder_level_style_serializer();
|
|
92130
|
+
}
|
|
92131
|
+
});
|
|
91989
92132
|
function stripMarker(run, marker) {
|
|
91990
92133
|
const { [marker]: _drop, ...rest } = run;
|
|
91991
92134
|
return rest;
|
|
@@ -92079,6 +92222,10 @@ function computeUniformSegmentOverrides(textStyle, textSegments) {
|
|
|
92079
92222
|
if (nextValue === void 0) {
|
|
92080
92223
|
return;
|
|
92081
92224
|
}
|
|
92225
|
+
const baseline = textStyle?.inheritedRunStyle;
|
|
92226
|
+
if (baseline && nextValue === (textStyle?.authoredRunStyle?.[styleKey] ?? baseline[styleKey])) {
|
|
92227
|
+
return;
|
|
92228
|
+
}
|
|
92082
92229
|
const firstValue = textSegments[0]?.style?.[styleKey];
|
|
92083
92230
|
const isUniform = textSegments.every((segment) => segment.style?.[styleKey] === firstValue);
|
|
92084
92231
|
if (isUniform) {
|
|
@@ -96980,15 +97127,19 @@ var PptxHandlerRuntime13;
|
|
|
96980
97127
|
var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
96981
97128
|
"src/core/core/runtime/PptxHandlerRuntimeSaveParagraphs.ts"() {
|
|
96982
97129
|
init_auto_number_format();
|
|
97130
|
+
init_paragraph_insertion_style();
|
|
96983
97131
|
init_PptxHandlerRuntimeSaveParagraphHelpers();
|
|
96984
97132
|
init_PptxHandlerRuntimeSaveRunProperties();
|
|
96985
97133
|
init_run_scoped_text_style();
|
|
96986
97134
|
PptxHandlerRuntime13 = class extends PptxHandlerRuntime12 {
|
|
96987
97135
|
isRenderedBulletMarker(segment) {
|
|
96988
97136
|
const bullet = segment.bulletInfo;
|
|
96989
|
-
if (!bullet) {
|
|
97137
|
+
if (!bullet || bullet.none) {
|
|
96990
97138
|
return false;
|
|
96991
97139
|
}
|
|
97140
|
+
if (segment.text === "" && (bullet.imageRelId || bullet.imageDataUrl) && !segment.fieldType && !segment.equationXml && segment.rubyText === void 0) {
|
|
97141
|
+
return true;
|
|
97142
|
+
}
|
|
96992
97143
|
if (bullet.autoNumType) {
|
|
96993
97144
|
if (bullet.paragraphIndex === void 0) {
|
|
96994
97145
|
return false;
|
|
@@ -97122,6 +97273,11 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97122
97273
|
if (segment.endParaRunProperties) {
|
|
97123
97274
|
currentEndParaRunProperties = segment.endParaRunProperties;
|
|
97124
97275
|
}
|
|
97276
|
+
currentEndParaRunProperties = updateEndParagraphProperties(
|
|
97277
|
+
currentEndParaRunProperties,
|
|
97278
|
+
segment.paragraphInsertionStyle,
|
|
97279
|
+
(style) => this.createRunPropertiesFromTextStyle(style, resolveHyperlinkRelationshipId)
|
|
97280
|
+
);
|
|
97125
97281
|
if (segment.paragraphProperties) {
|
|
97126
97282
|
currentParagraphProperties = segment.paragraphProperties;
|
|
97127
97283
|
}
|
|
@@ -97152,7 +97308,10 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97152
97308
|
currentRuns.push(eqNode);
|
|
97153
97309
|
return;
|
|
97154
97310
|
}
|
|
97155
|
-
const segmentText2 = String(segment.text ?? "");
|
|
97311
|
+
const segmentText2 = segment.isParagraphBreak ? "\n" : String(segment.text ?? "");
|
|
97312
|
+
if (segmentText2 === "" && segment.paragraphInsertionStyle && !segment.fieldType && segment.rubyText === void 0) {
|
|
97313
|
+
return;
|
|
97314
|
+
}
|
|
97156
97315
|
const lineParts = segmentText2.split("\n");
|
|
97157
97316
|
const isSplitProduct = lineParts.length > 1;
|
|
97158
97317
|
lineParts.forEach((linePart, lineIndex) => {
|
|
@@ -97184,7 +97343,7 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97184
97343
|
}
|
|
97185
97344
|
});
|
|
97186
97345
|
});
|
|
97187
|
-
if (currentRuns.length > 0 || paragraphs.length === 0) {
|
|
97346
|
+
if (currentRuns.length > 0 || paragraphs.length === 0 || capturedParagraphMeta) {
|
|
97188
97347
|
pushParagraph();
|
|
97189
97348
|
}
|
|
97190
97349
|
return paragraphs;
|
|
@@ -97416,17 +97575,20 @@ function classifyGroupChildTag(elementType, xml) {
|
|
|
97416
97575
|
function cloneXmlNode(node) {
|
|
97417
97576
|
return JSON.parse(JSON.stringify(node));
|
|
97418
97577
|
}
|
|
97419
|
-
function buildGroupNonVisualXml(rawGroupXml, modelName, fallbackName) {
|
|
97578
|
+
function buildGroupNonVisualXml(rawGroupXml, modelName, fallbackName, modelShapeId) {
|
|
97420
97579
|
const rawNv = rawGroupXml?.["p:nvGrpSpPr"];
|
|
97421
97580
|
if (!rawNv) {
|
|
97422
97581
|
return {
|
|
97423
|
-
"p:cNvPr": { "@_id": "0", "@_name": modelName ?? fallbackName },
|
|
97582
|
+
"p:cNvPr": { "@_id": modelShapeId ?? "0", "@_name": modelName ?? fallbackName },
|
|
97424
97583
|
"p:cNvGrpSpPr": {},
|
|
97425
97584
|
"p:nvPr": {}
|
|
97426
97585
|
};
|
|
97427
97586
|
}
|
|
97428
97587
|
const nv = cloneXmlNode(rawNv);
|
|
97429
97588
|
const cNvPr = nv["p:cNvPr"] ?? {};
|
|
97589
|
+
if (modelShapeId !== void 0) {
|
|
97590
|
+
cNvPr["@_id"] = modelShapeId;
|
|
97591
|
+
}
|
|
97430
97592
|
if (typeof cNvPr["@_id"] !== "string" || cNvPr["@_id"].length === 0) {
|
|
97431
97593
|
cNvPr["@_id"] = "0";
|
|
97432
97594
|
}
|
|
@@ -97965,7 +98127,10 @@ var init_PptxHandlerRuntimeSaveShapeXml = __esm({
|
|
|
97965
98127
|
*/
|
|
97966
98128
|
buildGroupShapeXml(group2, ctx, ownEmuOverride) {
|
|
97967
98129
|
if (group2.rawXml && group2.children.length === 0) {
|
|
97968
|
-
return
|
|
98130
|
+
return {
|
|
98131
|
+
...group2.rawXml,
|
|
98132
|
+
"p:nvGrpSpPr": buildGroupNonVisualXml(group2.rawXml, group2.name, group2.id, group2.shapeId)
|
|
98133
|
+
};
|
|
97969
98134
|
}
|
|
97970
98135
|
const EMU = _PptxHandlerRuntime.EMU_PER_PX;
|
|
97971
98136
|
const rawGroupXml = group2.rawXml;
|
|
@@ -97973,7 +98138,7 @@ var init_PptxHandlerRuntimeSaveShapeXml = __esm({
|
|
|
97973
98138
|
const xfrm = buildGroupTransformXml(group2, EMU, ownEmuOverride, rewrap);
|
|
97974
98139
|
const childSpace = group2;
|
|
97975
98140
|
const grpXml2 = {
|
|
97976
|
-
"p:nvGrpSpPr": buildGroupNonVisualXml(rawGroupXml, group2.name, group2.id),
|
|
98141
|
+
"p:nvGrpSpPr": buildGroupNonVisualXml(rawGroupXml, group2.name, group2.id, group2.shapeId),
|
|
97977
98142
|
"p:grpSpPr": buildGroupPropertiesXml(rawGroupXml, xfrm)
|
|
97978
98143
|
};
|
|
97979
98144
|
const rawExtLst = rawGroupXml?.["p:extLst"];
|
|
@@ -106808,6 +106973,7 @@ var init_template_group_node = __esm({
|
|
|
106808
106973
|
var PptxHandlerRuntime41;
|
|
106809
106974
|
var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
106810
106975
|
"src/core/core/runtime/PptxHandlerRuntimeSaveElementWriter.ts"() {
|
|
106976
|
+
init_services();
|
|
106811
106977
|
init_types();
|
|
106812
106978
|
init_chart_color_style_writer();
|
|
106813
106979
|
init_chart_cx_generator();
|
|
@@ -107340,6 +107506,9 @@ var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
|
107340
107506
|
);
|
|
107341
107507
|
}
|
|
107342
107508
|
this.applyDataSerialization(shape, el, ctx.slide.id);
|
|
107509
|
+
if (ctx.connectorShapeIds) {
|
|
107510
|
+
applyConnectorShapeIds(shape, el, ctx.connectorShapeIds);
|
|
107511
|
+
}
|
|
107343
107512
|
this.serializeElementActions(shape, el, ctx.resolveHyperlinkRelationshipId);
|
|
107344
107513
|
this.serializeShapeLocks(shape, el);
|
|
107345
107514
|
this.applyHiddenToCnvPr(shape, el);
|
|
@@ -108278,6 +108447,7 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
108278
108447
|
zooms: []
|
|
108279
108448
|
};
|
|
108280
108449
|
const ctx = {
|
|
108450
|
+
connectorShapeIds: resolveConnectorShapeIds(slide.elements, this.maxCnvPrId(spTree)),
|
|
108281
108451
|
slide,
|
|
108282
108452
|
slideRelationships,
|
|
108283
108453
|
slideRelationshipRegistry,
|
|
@@ -109075,7 +109245,7 @@ function asObjects3(value) {
|
|
|
109075
109245
|
return isXmlObject9(value) ? [value] : [];
|
|
109076
109246
|
}
|
|
109077
109247
|
function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf) {
|
|
109078
|
-
const
|
|
109248
|
+
const positions2 = /* @__PURE__ */ new Map();
|
|
109079
109249
|
for (const [key2, value] of Object.entries(spTree)) {
|
|
109080
109250
|
if (!SHAPE_TREE_ELEMENT_TAGS.has(key2) && key2 !== ALTERNATE_CONTENT_TAG3) {
|
|
109081
109251
|
continue;
|
|
@@ -109083,7 +109253,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109083
109253
|
for (const node of asObjects3(value)) {
|
|
109084
109254
|
const position2 = positionOf(node);
|
|
109085
109255
|
if (position2 !== void 0) {
|
|
109086
|
-
|
|
109256
|
+
positions2.set(node, position2);
|
|
109087
109257
|
}
|
|
109088
109258
|
}
|
|
109089
109259
|
}
|
|
@@ -109092,7 +109262,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109092
109262
|
byPart = /* @__PURE__ */ new Map();
|
|
109093
109263
|
positionsByRuntime.set(runtime, byPart);
|
|
109094
109264
|
}
|
|
109095
|
-
byPart.set(partPath,
|
|
109265
|
+
byPart.set(partPath, positions2);
|
|
109096
109266
|
}
|
|
109097
109267
|
function withReplacedChild(container, tag, indexInType, replacement) {
|
|
109098
109268
|
const existing = container[tag];
|
|
@@ -109121,17 +109291,17 @@ function orderContainer(container, plan, getLocalName2) {
|
|
|
109121
109291
|
working = withReplacedChild(working, entry2.tag, entry2.indexInType, ordered4);
|
|
109122
109292
|
}
|
|
109123
109293
|
}
|
|
109124
|
-
const
|
|
109294
|
+
const positions2 = /* @__PURE__ */ new Map();
|
|
109125
109295
|
plan.forEach((entry2, position2) => {
|
|
109126
109296
|
const node = asObjects3(working[entry2.tag])[entry2.indexInType];
|
|
109127
|
-
if (node && !
|
|
109128
|
-
|
|
109297
|
+
if (node && !positions2.has(node)) {
|
|
109298
|
+
positions2.set(node, position2);
|
|
109129
109299
|
}
|
|
109130
109300
|
});
|
|
109131
|
-
if (
|
|
109301
|
+
if (positions2.size === 0) {
|
|
109132
109302
|
return working;
|
|
109133
109303
|
}
|
|
109134
|
-
return orderShapeTreeChildren(working, (node) =>
|
|
109304
|
+
return orderShapeTreeChildren(working, (node) => positions2.get(node), getLocalName2);
|
|
109135
109305
|
}
|
|
109136
109306
|
function orderedTemplatePartXml(options) {
|
|
109137
109307
|
const {
|
|
@@ -109183,6 +109353,7 @@ var shapeIdValidator2;
|
|
|
109183
109353
|
var PptxHandlerRuntime46;
|
|
109184
109354
|
var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
109185
109355
|
"src/core/core/runtime/PptxHandlerRuntimeSaveMasterElements.ts"() {
|
|
109356
|
+
init_services();
|
|
109186
109357
|
init_builders();
|
|
109187
109358
|
init_auxiliary_master_node_cache();
|
|
109188
109359
|
init_master_part_element_signature();
|
|
@@ -109272,6 +109443,7 @@ var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
|
109272
109443
|
elements: elements2
|
|
109273
109444
|
};
|
|
109274
109445
|
const ctx = {
|
|
109446
|
+
connectorShapeIds: resolveConnectorShapeIds(elements2, this.maxCnvPrId(spTree)),
|
|
109275
109447
|
slide,
|
|
109276
109448
|
slideRelationships: relationships,
|
|
109277
109449
|
slideRelationshipRegistry: relationshipRegistry,
|
|
@@ -111189,13 +111361,13 @@ var init_PptxHandlerRuntimePlaceholderLookup = __esm({
|
|
|
111189
111361
|
findPlaceholderInShapeTree(spTree, expected) {
|
|
111190
111362
|
return this.scanPlaceholderBuckets(spTree, (info) => this.placeholderMatches(expected, info));
|
|
111191
111363
|
}
|
|
111192
|
-
scanPlaceholderBuckets(spTree,
|
|
111364
|
+
scanPlaceholderBuckets(spTree, matches2) {
|
|
111193
111365
|
if (!spTree) {
|
|
111194
111366
|
return void 0;
|
|
111195
111367
|
}
|
|
111196
111368
|
for (const { bucket, nvKey, contextKey } of PLACEHOLDER_BUCKETS) {
|
|
111197
111369
|
for (const node of this.ensureArray(spTree[bucket])) {
|
|
111198
|
-
if (
|
|
111370
|
+
if (matches2(this.extractPlaceholderInfo(xmlPath(node, nvKey, "p:nvPr")))) {
|
|
111199
111371
|
return { [contextKey]: node };
|
|
111200
111372
|
}
|
|
111201
111373
|
}
|
|
@@ -113050,7 +113222,7 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113050
113222
|
bulletText = "\u2022 ";
|
|
113051
113223
|
}
|
|
113052
113224
|
const bulletStyle = { ...mergedDefaultRunStyle };
|
|
113053
|
-
if (paragraphBulletInfo.
|
|
113225
|
+
if (paragraphBulletInfo.sizePts === void 0) {
|
|
113054
113226
|
const firstRunSize = this.resolveFirstRunFontSize(p, paraAlign, ctx);
|
|
113055
113227
|
if (firstRunSize !== void 0) {
|
|
113056
113228
|
bulletStyle.fontSize = firstRunSize;
|
|
@@ -113263,6 +113435,15 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113263
113435
|
...endParaRPrRaw
|
|
113264
113436
|
};
|
|
113265
113437
|
}
|
|
113438
|
+
if (entries.length === 0) {
|
|
113439
|
+
segments[firstSegmentIndex].paragraphInsertionStyle = withAuthoredSplit(
|
|
113440
|
+
endParaRPrRaw && typeof endParaRPrRaw === "object" ? this.extractTextRunStyle(
|
|
113441
|
+
endParaRPrRaw,
|
|
113442
|
+
paraAlign,
|
|
113443
|
+
ctx.slideRelationshipMap
|
|
113444
|
+
) : {}
|
|
113445
|
+
);
|
|
113446
|
+
}
|
|
113266
113447
|
const basisFontSize = typeof mergedDefaultRunStyle.fontSize === "number" ? mergedDefaultRunStyle.fontSize : void 0;
|
|
113267
113448
|
const paragraphOwnProps = this.extractParagraphOwnProperties(p, basisFontSize);
|
|
113268
113449
|
if (paragraphOwnProps) {
|
|
@@ -113283,27 +113464,22 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113283
113464
|
}
|
|
113284
113465
|
/**
|
|
113285
113466
|
* Font size (px) of the first text run in a paragraph, or `undefined` when
|
|
113286
|
-
*
|
|
113467
|
+
* that first run inherits its size.
|
|
113287
113468
|
*
|
|
113288
|
-
* Used
|
|
113289
|
-
* `a:
|
|
113290
|
-
* size. Only `a:r` and `a:fld` carry renderable text; `a:br` does not.
|
|
113469
|
+
* Used as the base for unsized and percentage-sized bullets. Only `a:r`
|
|
113470
|
+
* and `a:fld` carry renderable text; `a:br` does not.
|
|
113291
113471
|
*/
|
|
113292
113472
|
resolveFirstRunFontSize(p, paraAlign, ctx) {
|
|
113293
|
-
for (const
|
|
113294
|
-
|
|
113295
|
-
if (!node) {
|
|
113473
|
+
for (const [tag, node] of paragraphContentEntries(p, PARAGRAPH_CONTENT_TAGS).entries) {
|
|
113474
|
+
if (tag !== "a:r" && tag !== "a:fld") {
|
|
113296
113475
|
continue;
|
|
113297
113476
|
}
|
|
113298
|
-
const
|
|
113299
|
-
const runProps = first?.["a:rPr"];
|
|
113477
|
+
const runProps = node?.["a:rPr"];
|
|
113300
113478
|
if (!runProps) {
|
|
113301
|
-
|
|
113479
|
+
return void 0;
|
|
113302
113480
|
}
|
|
113303
113481
|
const style = this.extractTextRunStyle(runProps, paraAlign, ctx.slideRelationshipMap);
|
|
113304
|
-
|
|
113305
|
-
return style.fontSize;
|
|
113306
|
-
}
|
|
113482
|
+
return typeof style.fontSize === "number" ? style.fontSize : void 0;
|
|
113307
113483
|
}
|
|
113308
113484
|
return void 0;
|
|
113309
113485
|
}
|
|
@@ -113687,6 +113863,7 @@ var init_PptxHandlerRuntimeShapeParsing = __esm({
|
|
|
113687
113863
|
skewY,
|
|
113688
113864
|
flipHorizontal,
|
|
113689
113865
|
flipVertical,
|
|
113866
|
+
inheritedTransform: !spPr?.["a:xfrm"] && xfrm && off && ext ? { x, y, width, height, rotation, skewX, skewY, flipHorizontal, flipVertical } : void 0,
|
|
113690
113867
|
actionClick,
|
|
113691
113868
|
actionHover,
|
|
113692
113869
|
locks,
|
|
@@ -113775,6 +113952,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
113775
113952
|
const skewX = xfrm["@_skewX"] ? parseEmuInt2(xfrm["@_skewX"]) / 6e4 : void 0;
|
|
113776
113953
|
const skewY = xfrm["@_skewY"] ? parseEmuInt2(xfrm["@_skewY"]) / 6e4 : void 0;
|
|
113777
113954
|
const { flipHorizontal, flipVertical } = this.readFlipState(xfrm);
|
|
113955
|
+
const inheritedTransform = !spPr?.["a:xfrm"] && off && ext ? { x, y, width, height, rotation, skewX, skewY, flipHorizontal, flipVertical } : void 0;
|
|
113778
113956
|
const nvPr = pic?.["p:nvPicPr"]?.["p:nvPr"];
|
|
113779
113957
|
const mediaReference = parseDrawingMediaReference(nvPr, this.externalRelsMap.get(slidePath));
|
|
113780
113958
|
if (mediaReference) {
|
|
@@ -113835,6 +114013,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
113835
114013
|
return {
|
|
113836
114014
|
id,
|
|
113837
114015
|
type: "media",
|
|
114016
|
+
inheritedTransform,
|
|
113838
114017
|
x,
|
|
113839
114018
|
y,
|
|
113840
114019
|
width,
|
|
@@ -114043,6 +114222,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
114043
114222
|
id,
|
|
114044
114223
|
name: picElementName || void 0,
|
|
114045
114224
|
type: "picture",
|
|
114225
|
+
inheritedTransform,
|
|
114046
114226
|
x,
|
|
114047
114227
|
y,
|
|
114048
114228
|
width,
|
|
@@ -116379,6 +116559,7 @@ var init_PptxHandlerRuntimeMasterElements = __esm({
|
|
|
116379
116559
|
var PptxHandlerRuntime77;
|
|
116380
116560
|
var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
116381
116561
|
"src/core/core/runtime/PptxHandlerRuntimeAuxiliaryMasterElements.ts"() {
|
|
116562
|
+
init_services();
|
|
116382
116563
|
init_auxiliary_master_node_cache();
|
|
116383
116564
|
init_master_part_background_cache();
|
|
116384
116565
|
init_master_part_element_signature();
|
|
@@ -116436,6 +116617,7 @@ var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
|
116436
116617
|
} finally {
|
|
116437
116618
|
this.currentSlideClrMapOverride = previousClrMapOverride;
|
|
116438
116619
|
}
|
|
116620
|
+
reconcileAnimationTargets(part.elements, void 0, void 0);
|
|
116439
116621
|
rememberMasterPartElementSignature(this, partPath, part.elements);
|
|
116440
116622
|
this.rememberUnparsedMasterNodes(partPath, spTree, part.elements);
|
|
116441
116623
|
}
|
|
@@ -122571,6 +122753,7 @@ var init_core = __esm({
|
|
|
122571
122753
|
init_types2();
|
|
122572
122754
|
init_table_structural_ops();
|
|
122573
122755
|
init_table_style_defaults();
|
|
122756
|
+
init_auto_number_sequence();
|
|
122574
122757
|
init_table_style_editor();
|
|
122575
122758
|
init_table_style_entry_parse();
|
|
122576
122759
|
}
|
|
@@ -139426,8 +139609,8 @@ var TextSegmentRenderer = class {
|
|
|
139426
139609
|
return defaultText;
|
|
139427
139610
|
}
|
|
139428
139611
|
wrapCode(text22) {
|
|
139429
|
-
const
|
|
139430
|
-
const maxTicks =
|
|
139612
|
+
const matches2 = text22.match(/`+/g);
|
|
139613
|
+
const maxTicks = matches2 && matches2.length > 0 ? Math.max(...matches2.map((entry2) => entry2.length)) : 0;
|
|
139431
139614
|
const fence = "`".repeat(Math.max(1, maxTicks + 1));
|
|
139432
139615
|
return `${fence}${text22}${fence}`;
|
|
139433
139616
|
}
|
|
@@ -153024,21 +153207,21 @@ function categoryX3(value, count, layout, mode) {
|
|
|
153024
153207
|
}
|
|
153025
153208
|
return layout.plotLeft + value / Math.max(count - 1, 1) * layout.plotWidth;
|
|
153026
153209
|
}
|
|
153027
|
-
function positionedCategoryX(value,
|
|
153028
|
-
if (!
|
|
153210
|
+
function positionedCategoryX(value, positions2, fallback) {
|
|
153211
|
+
if (!positions2 || positions2.length === 0) {
|
|
153029
153212
|
return fallback(value);
|
|
153030
153213
|
}
|
|
153031
153214
|
const lower = Math.floor(value);
|
|
153032
153215
|
const upper = Math.ceil(value);
|
|
153033
153216
|
const at = (index) => {
|
|
153034
|
-
if (
|
|
153035
|
-
return
|
|
153217
|
+
if (positions2[index] !== void 0) {
|
|
153218
|
+
return positions2[index];
|
|
153036
153219
|
}
|
|
153037
|
-
const lastIndex =
|
|
153038
|
-
const last =
|
|
153039
|
-
const beforeLast = lastIndex > 0 ?
|
|
153220
|
+
const lastIndex = positions2.length - 1;
|
|
153221
|
+
const last = positions2[lastIndex] ?? 0;
|
|
153222
|
+
const beforeLast = lastIndex > 0 ? positions2[lastIndex - 1] ?? positions2[0] ?? 0 : positions2[0] ?? 0;
|
|
153040
153223
|
const gap = last - beforeLast;
|
|
153041
|
-
return last + gap * (index -
|
|
153224
|
+
return last + gap * (index - positions2.length + 1);
|
|
153042
153225
|
};
|
|
153043
153226
|
return at(lower) + (at(upper) - at(lower)) * (value - lower);
|
|
153044
153227
|
}
|
|
@@ -161481,9 +161664,9 @@ function resolveDrawingShapeNodeId(shape, shapeIndex, shapes, nodes) {
|
|
|
161481
161664
|
}
|
|
161482
161665
|
const text22 = shape.text?.trim();
|
|
161483
161666
|
if (text22) {
|
|
161484
|
-
const
|
|
161485
|
-
if (
|
|
161486
|
-
return
|
|
161667
|
+
const matches2 = nodes.filter((n) => n.text.trim() === text22);
|
|
161668
|
+
if (matches2.length === 1) {
|
|
161669
|
+
return matches2[0].id;
|
|
161487
161670
|
}
|
|
161488
161671
|
}
|
|
161489
161672
|
return void 0;
|
|
@@ -174956,16 +175139,580 @@ function resolveParagraphIndent(paraIndent, paragraphLevel) {
|
|
|
174956
175139
|
}
|
|
174957
175140
|
return { marginLeftPx: marginLeft, textIndentPx: textIndent };
|
|
174958
175141
|
}
|
|
175142
|
+
var DEFAULT_BULLET_CHAR = "\u2022";
|
|
175143
|
+
var DEFAULT_AUTONUM_TYPE = "arabicPeriod";
|
|
175144
|
+
function bulletInfoForKind(kind, ordinal = 0) {
|
|
175145
|
+
if (kind === "none") {
|
|
175146
|
+
return { none: true };
|
|
175147
|
+
}
|
|
175148
|
+
if (kind === "bullet") {
|
|
175149
|
+
return { char: DEFAULT_BULLET_CHAR };
|
|
175150
|
+
}
|
|
175151
|
+
return { autoNumType: DEFAULT_AUTONUM_TYPE, autoNumStartAt: 1, paragraphIndex: ordinal };
|
|
175152
|
+
}
|
|
174959
175153
|
function isBulletMarkerSegment(segment) {
|
|
174960
|
-
const
|
|
174961
|
-
if (!
|
|
175154
|
+
const info = segment.bulletInfo;
|
|
175155
|
+
if (!info || info.none || segment.fieldType || segment.isLineBreak) {
|
|
174962
175156
|
return false;
|
|
174963
175157
|
}
|
|
174964
|
-
|
|
174965
|
-
if (!resolved) {
|
|
175158
|
+
if (!info.char && !info.autoNumType && !info.imageRelId && !info.imageDataUrl && !info.imageBlipFillXml) {
|
|
174966
175159
|
return false;
|
|
174967
175160
|
}
|
|
174968
|
-
|
|
175161
|
+
if (info.autoNumType) {
|
|
175162
|
+
if (info.paragraphIndex === void 0) {
|
|
175163
|
+
return false;
|
|
175164
|
+
}
|
|
175165
|
+
const marker = markerText(info);
|
|
175166
|
+
return segment.text === marker || segment.text === `${marker} `;
|
|
175167
|
+
}
|
|
175168
|
+
return segment.text === markerText(info);
|
|
175169
|
+
}
|
|
175170
|
+
function paragraphBulletKind(paragraph) {
|
|
175171
|
+
const resolved = resolveParagraphBullet(paragraph[0]);
|
|
175172
|
+
return resolved ? resolved.isNumbered ? "numbered" : "bullet" : "none";
|
|
175173
|
+
}
|
|
175174
|
+
function withoutListType(style) {
|
|
175175
|
+
const next = { ...style };
|
|
175176
|
+
delete next.listType;
|
|
175177
|
+
return next;
|
|
175178
|
+
}
|
|
175179
|
+
function markerText(info) {
|
|
175180
|
+
if (info.imageRelId || info.imageDataUrl || info.imageBlipFillXml) {
|
|
175181
|
+
return "\u{1F4CE} ";
|
|
175182
|
+
}
|
|
175183
|
+
if (info.autoNumType) {
|
|
175184
|
+
return formatAutoNumberMarker(
|
|
175185
|
+
info.autoNumType,
|
|
175186
|
+
Math.max(1, (info.autoNumStartAt ?? 1) + (info.paragraphIndex ?? 0))
|
|
175187
|
+
);
|
|
175188
|
+
}
|
|
175189
|
+
return `${info.char ?? DEFAULT_BULLET_CHAR} `;
|
|
175190
|
+
}
|
|
175191
|
+
function infoForParagraph(previous, kind, ordinal) {
|
|
175192
|
+
if (kind === "none") {
|
|
175193
|
+
return { ...previous, none: true };
|
|
175194
|
+
}
|
|
175195
|
+
const sameKind = previous && (kind === "numbered" ? Boolean(previous.autoNumType) : Boolean(
|
|
175196
|
+
previous.char || previous.imageRelId || previous.imageDataUrl || previous.imageBlipFillXml
|
|
175197
|
+
) && !previous.autoNumType);
|
|
175198
|
+
const info = sameKind ? { ...previous } : bulletInfoForKind(kind, ordinal);
|
|
175199
|
+
delete info.none;
|
|
175200
|
+
if (kind === "numbered" && ordinal !== void 0) {
|
|
175201
|
+
info.paragraphIndex = ordinal;
|
|
175202
|
+
}
|
|
175203
|
+
return info;
|
|
175204
|
+
}
|
|
175205
|
+
function toggleParagraphBullet(paragraph, kind, ordinal) {
|
|
175206
|
+
const source = paragraph[0];
|
|
175207
|
+
if (!source) {
|
|
175208
|
+
return [];
|
|
175209
|
+
}
|
|
175210
|
+
if (paragraph.length === 1 && source.paragraphInsertionStyle && (source.text === "" || isBulletMarkerSegment(source))) {
|
|
175211
|
+
const info2 = infoForParagraph(source.bulletInfo, kind, ordinal);
|
|
175212
|
+
const picture = info2.imageRelId || info2.imageDataUrl || info2.imageBlipFillXml;
|
|
175213
|
+
return [
|
|
175214
|
+
{
|
|
175215
|
+
...source,
|
|
175216
|
+
text: kind === "none" || picture ? "" : markerText(info2),
|
|
175217
|
+
style: withoutListType(source.style),
|
|
175218
|
+
bulletInfo: info2
|
|
175219
|
+
}
|
|
175220
|
+
];
|
|
175221
|
+
}
|
|
175222
|
+
const content = isBulletMarkerSegment(source) ? paragraph.slice(1) : [...paragraph];
|
|
175223
|
+
const first = content[0] ?? { text: "", style: source.style };
|
|
175224
|
+
const meta = {
|
|
175225
|
+
...source.paragraphLevel !== void 0 ? { paragraphLevel: source.paragraphLevel } : {},
|
|
175226
|
+
...source.paragraphProperties ? { paragraphProperties: source.paragraphProperties } : {},
|
|
175227
|
+
...source.endParaRunProperties ? { endParaRunProperties: source.endParaRunProperties } : {},
|
|
175228
|
+
...source.paragraphInsertionStyle ? { paragraphInsertionStyle: source.paragraphInsertionStyle } : {}
|
|
175229
|
+
};
|
|
175230
|
+
const info = infoForParagraph(source.bulletInfo, kind, ordinal);
|
|
175231
|
+
const body = { ...first, ...meta, style: withoutListType(first.style) };
|
|
175232
|
+
const rest = content.slice(1).map((segment) => {
|
|
175233
|
+
if (!segment.bulletInfo) {
|
|
175234
|
+
return segment;
|
|
175235
|
+
}
|
|
175236
|
+
const run = { ...segment };
|
|
175237
|
+
delete run.bulletInfo;
|
|
175238
|
+
return run;
|
|
175239
|
+
});
|
|
175240
|
+
if (kind === "none" || info.imageRelId || info.imageDataUrl || info.imageBlipFillXml) {
|
|
175241
|
+
return [{ ...body, bulletInfo: info }, ...rest];
|
|
175242
|
+
}
|
|
175243
|
+
delete body.bulletInfo;
|
|
175244
|
+
delete body.paragraphInsertionStyle;
|
|
175245
|
+
const markerStyle = isBulletMarkerSegment(source) && paragraphBulletKind([source]) === kind ? source.style : first.style;
|
|
175246
|
+
return [
|
|
175247
|
+
{ text: markerText(info), style: withoutListType(markerStyle), ...meta, bulletInfo: info },
|
|
175248
|
+
body,
|
|
175249
|
+
...rest
|
|
175250
|
+
];
|
|
175251
|
+
}
|
|
175252
|
+
function elementSegments(element) {
|
|
175253
|
+
if (!hasTextProperties(element)) {
|
|
175254
|
+
return [];
|
|
175255
|
+
}
|
|
175256
|
+
if (element.textSegments?.length) {
|
|
175257
|
+
return element.textSegments;
|
|
175258
|
+
}
|
|
175259
|
+
return (element.text ?? "").split("\n").flatMap((text22, index) => [
|
|
175260
|
+
...index ? [{ text: "\n", style: { ...element.textStyle }, isParagraphBreak: true }] : [],
|
|
175261
|
+
{ text: text22, style: { ...element.textStyle } }
|
|
175262
|
+
]);
|
|
175263
|
+
}
|
|
175264
|
+
function splitParagraphs2(segments) {
|
|
175265
|
+
const paragraphs = [
|
|
175266
|
+
{ segments: [] }
|
|
175267
|
+
];
|
|
175268
|
+
for (const segment of segments) {
|
|
175269
|
+
if (isParagraphSeparatorSegment(segment)) {
|
|
175270
|
+
paragraphs[paragraphs.length - 1].terminator = segment;
|
|
175271
|
+
paragraphs.push({ segments: [] });
|
|
175272
|
+
} else {
|
|
175273
|
+
paragraphs[paragraphs.length - 1].segments.push(segment);
|
|
175274
|
+
}
|
|
175275
|
+
}
|
|
175276
|
+
return paragraphs;
|
|
175277
|
+
}
|
|
175278
|
+
function elementBulletKind(element) {
|
|
175279
|
+
for (const paragraph of splitParagraphs2(elementSegments(element))) {
|
|
175280
|
+
if (paragraph.segments.length) {
|
|
175281
|
+
return paragraphBulletKind(paragraph.segments);
|
|
175282
|
+
}
|
|
175283
|
+
}
|
|
175284
|
+
return "none";
|
|
175285
|
+
}
|
|
175286
|
+
function setElementBullets(element, kind, range) {
|
|
175287
|
+
if (!hasTextProperties(element)) {
|
|
175288
|
+
return {};
|
|
175289
|
+
}
|
|
175290
|
+
if (range && (!Number.isInteger(range.startParagraph) || !Number.isInteger(range.endParagraph) || range.startParagraph < 0 || range.endParagraph < range.startParagraph)) {
|
|
175291
|
+
return {};
|
|
175292
|
+
}
|
|
175293
|
+
const paragraphs = splitParagraphs2(elementSegments(element));
|
|
175294
|
+
if (range && range.startParagraph >= paragraphs.length) {
|
|
175295
|
+
return {};
|
|
175296
|
+
}
|
|
175297
|
+
const next = [];
|
|
175298
|
+
const sequence = createAutoNumberSequence();
|
|
175299
|
+
for (const [index, paragraph] of paragraphs.entries()) {
|
|
175300
|
+
const selected = !range || index >= range.startParagraph && index <= range.endParagraph;
|
|
175301
|
+
let segments = paragraph.segments;
|
|
175302
|
+
if (selected) {
|
|
175303
|
+
const empty = {
|
|
175304
|
+
...paragraph.terminator,
|
|
175305
|
+
text: "",
|
|
175306
|
+
style: { ...paragraph.terminator?.style }
|
|
175307
|
+
};
|
|
175308
|
+
delete empty.isParagraphBreak;
|
|
175309
|
+
delete empty.isLineBreak;
|
|
175310
|
+
segments = toggleParagraphBullet(segments.length ? segments : [empty], kind);
|
|
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
|
+
}
|
|
175321
|
+
} else {
|
|
175322
|
+
breakAutoNumberRun(sequence, level);
|
|
175323
|
+
}
|
|
175324
|
+
next.push(...segments);
|
|
175325
|
+
if (paragraph.terminator) {
|
|
175326
|
+
next.push(paragraph.terminator);
|
|
175327
|
+
}
|
|
175328
|
+
}
|
|
175329
|
+
return {
|
|
175330
|
+
textSegments: next,
|
|
175331
|
+
textStyle: withoutListType(element.textStyle)
|
|
175332
|
+
};
|
|
175333
|
+
}
|
|
175334
|
+
function updateTextSegmentStyle(segment, updates, options = {}) {
|
|
175335
|
+
return {
|
|
175336
|
+
...segment,
|
|
175337
|
+
...options.updateBodyStyle === false ? {} : { style: { ...segment.style, ...updates } },
|
|
175338
|
+
...segment.paragraphInsertionStyle ? { paragraphInsertionStyle: { ...segment.paragraphInsertionStyle, ...updates } } : {}
|
|
175339
|
+
};
|
|
175340
|
+
}
|
|
175341
|
+
function getInlineEditorSelection(segments) {
|
|
175342
|
+
if (!segments?.length) {
|
|
175343
|
+
return null;
|
|
175344
|
+
}
|
|
175345
|
+
const selection = window.getSelection();
|
|
175346
|
+
if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
|
|
175347
|
+
return null;
|
|
175348
|
+
}
|
|
175349
|
+
const range = selection.getRangeAt(0);
|
|
175350
|
+
const editor = findEditorContainer(range.startContainer);
|
|
175351
|
+
if (!editor || !editor.contains(range.endContainer) || range.toString().length === 0) {
|
|
175352
|
+
return null;
|
|
175353
|
+
}
|
|
175354
|
+
const start = getSegmentPosition(editor, range.startContainer, range.startOffset, segments);
|
|
175355
|
+
const end = getSegmentPosition(editor, range.endContainer, range.endOffset, segments);
|
|
175356
|
+
if (!start || !end) {
|
|
175357
|
+
return null;
|
|
175358
|
+
}
|
|
175359
|
+
const renderedSpans = Array.from(editor.querySelectorAll("[data-seg-idx]"));
|
|
175360
|
+
const startSpanIndex = renderedSpans.indexOf(start.span);
|
|
175361
|
+
const endSpanIndex = renderedSpans.indexOf(end.span);
|
|
175362
|
+
if (startSpanIndex < 0 || endSpanIndex < startSpanIndex) {
|
|
175363
|
+
return null;
|
|
175364
|
+
}
|
|
175365
|
+
const selectedSpans = renderedSpans.slice(startSpanIndex, endSpanIndex + 1);
|
|
175366
|
+
const first = selectedSpans.find(
|
|
175367
|
+
(span) => isEditableSpan(span, segments) && (span !== start.span || start.offset < start.textLength)
|
|
175368
|
+
);
|
|
175369
|
+
const last = [...selectedSpans].reverse().find((span) => isEditableSpan(span, segments) && (span !== end.span || end.offset > 0));
|
|
175370
|
+
if (!first || !last) {
|
|
175371
|
+
return null;
|
|
175372
|
+
}
|
|
175373
|
+
return {
|
|
175374
|
+
startSegIdx: getSegmentIndex(first),
|
|
175375
|
+
startOffset: first === start.span ? start.offset : 0,
|
|
175376
|
+
endSegIdx: getSegmentIndex(last),
|
|
175377
|
+
endOffset: last === end.span ? end.offset : last.textContent?.length ?? 0
|
|
175378
|
+
};
|
|
175379
|
+
}
|
|
175380
|
+
function isEditableSpan(span, segments) {
|
|
175381
|
+
const segment = segments[getSegmentIndex(span)];
|
|
175382
|
+
return Boolean(
|
|
175383
|
+
segment && !segment.isParagraphBreak && segment.text !== "\n" && !isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
|
|
175384
|
+
);
|
|
175385
|
+
}
|
|
175386
|
+
function getSegmentIndex(span) {
|
|
175387
|
+
return Number(span.getAttribute("data-seg-idx"));
|
|
175388
|
+
}
|
|
175389
|
+
function findEditorContainer(node) {
|
|
175390
|
+
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
175391
|
+
return element?.closest("[data-inline-editor]") ?? null;
|
|
175392
|
+
}
|
|
175393
|
+
function getSegmentPosition(editor, node, offset, segments) {
|
|
175394
|
+
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
175395
|
+
const span = element?.closest("[data-seg-idx]");
|
|
175396
|
+
if (!span || !editor.contains(span)) {
|
|
175397
|
+
return null;
|
|
175398
|
+
}
|
|
175399
|
+
const segIdx = getSegmentIndex(span);
|
|
175400
|
+
if (!Number.isInteger(segIdx) || segIdx < 0 || segIdx >= segments.length) {
|
|
175401
|
+
return null;
|
|
175402
|
+
}
|
|
175403
|
+
return {
|
|
175404
|
+
segIdx,
|
|
175405
|
+
offset: getTextOffsetWithin(span, node, offset),
|
|
175406
|
+
span,
|
|
175407
|
+
textLength: span.textContent?.length ?? 0
|
|
175408
|
+
};
|
|
175409
|
+
}
|
|
175410
|
+
function getTextOffsetWithin(container, targetNode, targetOffset) {
|
|
175411
|
+
if (targetNode === container || targetNode.nodeType === Node.ELEMENT_NODE) {
|
|
175412
|
+
const parent = targetNode === container ? container : targetNode;
|
|
175413
|
+
let count = 0;
|
|
175414
|
+
for (let index = 0; index < targetOffset && index < parent.childNodes.length; index++) {
|
|
175415
|
+
count += parent.childNodes[index].textContent?.length ?? 0;
|
|
175416
|
+
}
|
|
175417
|
+
return count;
|
|
175418
|
+
}
|
|
175419
|
+
const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT);
|
|
175420
|
+
let charCount = 0;
|
|
175421
|
+
let node;
|
|
175422
|
+
while (node = walker.nextNode()) {
|
|
175423
|
+
if (node === targetNode) {
|
|
175424
|
+
return charCount + targetOffset;
|
|
175425
|
+
}
|
|
175426
|
+
charCount += node.length;
|
|
175427
|
+
}
|
|
175428
|
+
return charCount;
|
|
175429
|
+
}
|
|
175430
|
+
var pendingRestore = null;
|
|
175431
|
+
function setPendingSelectionRestore(sel) {
|
|
175432
|
+
pendingRestore = sel;
|
|
175433
|
+
}
|
|
175434
|
+
function getPendingSelectionRestore() {
|
|
175435
|
+
const sel = pendingRestore;
|
|
175436
|
+
pendingRestore = null;
|
|
175437
|
+
return sel;
|
|
175438
|
+
}
|
|
175439
|
+
function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
175440
|
+
const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
|
|
175441
|
+
const result = [];
|
|
175442
|
+
let newStartSegIdx = -1;
|
|
175443
|
+
let newStartOffset = 0;
|
|
175444
|
+
let newEndSegIdx = -1;
|
|
175445
|
+
let newEndOffset = 0;
|
|
175446
|
+
for (let i2 = 0; i2 < segments.length; i2++) {
|
|
175447
|
+
const seg = i2 >= startSegIdx && i2 <= endSegIdx ? updateTextSegmentStyle(segments[i2], updates, { updateBodyStyle: false }) : segments[i2];
|
|
175448
|
+
if (seg.isParagraphBreak || seg.text === "\n") {
|
|
175449
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175450
|
+
continue;
|
|
175451
|
+
}
|
|
175452
|
+
if (i2 < startSegIdx) {
|
|
175453
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175454
|
+
continue;
|
|
175455
|
+
}
|
|
175456
|
+
if (i2 > endSegIdx) {
|
|
175457
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175458
|
+
continue;
|
|
175459
|
+
}
|
|
175460
|
+
if (seg.paragraphInsertionStyle && (seg.text === "" || isBulletMarkerSegment(seg))) {
|
|
175461
|
+
newStartSegIdx = newStartSegIdx < 0 ? result.length : newStartSegIdx;
|
|
175462
|
+
newEndSegIdx = result.length;
|
|
175463
|
+
result.push(seg);
|
|
175464
|
+
continue;
|
|
175465
|
+
}
|
|
175466
|
+
if (i2 === startSegIdx && i2 === endSegIdx) {
|
|
175467
|
+
splitSingle(seg, startOffset, endOffset, updates, result);
|
|
175468
|
+
const partsAdded = (startOffset > 0 ? 1 : 0) + 1 + (endOffset < seg.text.length ? 1 : 0);
|
|
175469
|
+
const selectedPartIdx = result.length - partsAdded + (startOffset > 0 ? 1 : 0);
|
|
175470
|
+
newStartSegIdx = selectedPartIdx;
|
|
175471
|
+
newStartOffset = 0;
|
|
175472
|
+
newEndSegIdx = selectedPartIdx;
|
|
175473
|
+
newEndOffset = endOffset - startOffset;
|
|
175474
|
+
continue;
|
|
175475
|
+
}
|
|
175476
|
+
if (i2 === startSegIdx) {
|
|
175477
|
+
if (startOffset === 0) {
|
|
175478
|
+
newStartSegIdx = result.length;
|
|
175479
|
+
newStartOffset = 0;
|
|
175480
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175481
|
+
} else {
|
|
175482
|
+
const beforeSeg = {
|
|
175483
|
+
text: seg.text.slice(0, startOffset),
|
|
175484
|
+
style: { ...seg.style }
|
|
175485
|
+
};
|
|
175486
|
+
if (seg.bulletInfo) {
|
|
175487
|
+
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
175488
|
+
}
|
|
175489
|
+
result.push(beforeSeg);
|
|
175490
|
+
newStartSegIdx = result.length;
|
|
175491
|
+
newStartOffset = 0;
|
|
175492
|
+
result.push({
|
|
175493
|
+
text: seg.text.slice(startOffset),
|
|
175494
|
+
style: { ...seg.style, ...updates }
|
|
175495
|
+
});
|
|
175496
|
+
}
|
|
175497
|
+
continue;
|
|
175498
|
+
}
|
|
175499
|
+
if (i2 === endSegIdx) {
|
|
175500
|
+
if (endOffset >= seg.text.length) {
|
|
175501
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175502
|
+
newEndSegIdx = result.length - 1;
|
|
175503
|
+
newEndOffset = seg.text.length;
|
|
175504
|
+
} else {
|
|
175505
|
+
result.push({
|
|
175506
|
+
text: seg.text.slice(0, endOffset),
|
|
175507
|
+
style: { ...seg.style, ...updates }
|
|
175508
|
+
});
|
|
175509
|
+
newEndSegIdx = result.length - 1;
|
|
175510
|
+
newEndOffset = endOffset;
|
|
175511
|
+
result.push({
|
|
175512
|
+
text: seg.text.slice(endOffset),
|
|
175513
|
+
style: { ...seg.style }
|
|
175514
|
+
});
|
|
175515
|
+
}
|
|
175516
|
+
continue;
|
|
175517
|
+
}
|
|
175518
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175519
|
+
}
|
|
175520
|
+
return {
|
|
175521
|
+
newSegments: result,
|
|
175522
|
+
newSelection: {
|
|
175523
|
+
startSegIdx: newStartSegIdx,
|
|
175524
|
+
startOffset: newStartOffset,
|
|
175525
|
+
endSegIdx: newEndSegIdx,
|
|
175526
|
+
endOffset: newEndOffset
|
|
175527
|
+
}
|
|
175528
|
+
};
|
|
175529
|
+
}
|
|
175530
|
+
function splitSingle(seg, startOffset, endOffset, updates, result) {
|
|
175531
|
+
if (startOffset === 0 && endOffset >= seg.text.length) {
|
|
175532
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175533
|
+
return;
|
|
175534
|
+
}
|
|
175535
|
+
if (startOffset > 0) {
|
|
175536
|
+
const beforeSeg = {
|
|
175537
|
+
text: seg.text.slice(0, startOffset),
|
|
175538
|
+
style: { ...seg.style }
|
|
175539
|
+
};
|
|
175540
|
+
if (seg.bulletInfo) {
|
|
175541
|
+
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
175542
|
+
}
|
|
175543
|
+
result.push(beforeSeg);
|
|
175544
|
+
}
|
|
175545
|
+
result.push({
|
|
175546
|
+
text: seg.text.slice(startOffset, endOffset),
|
|
175547
|
+
style: { ...seg.style, ...updates }
|
|
175548
|
+
});
|
|
175549
|
+
if (endOffset < seg.text.length) {
|
|
175550
|
+
result.push({
|
|
175551
|
+
text: seg.text.slice(endOffset),
|
|
175552
|
+
style: { ...seg.style }
|
|
175553
|
+
});
|
|
175554
|
+
}
|
|
175555
|
+
}
|
|
175556
|
+
function restoreSegmentSelection(editor, startSegIdx, startOffset, endSegIdx, endOffset) {
|
|
175557
|
+
const sel = window.getSelection();
|
|
175558
|
+
if (!sel) {
|
|
175559
|
+
return;
|
|
175560
|
+
}
|
|
175561
|
+
const startPos = findTextPositionInSegment(editor, startSegIdx, startOffset);
|
|
175562
|
+
const endPos = findTextPositionInSegment(editor, endSegIdx, endOffset);
|
|
175563
|
+
if (!startPos || !endPos) {
|
|
175564
|
+
return;
|
|
175565
|
+
}
|
|
175566
|
+
const range = document.createRange();
|
|
175567
|
+
range.setStart(startPos.node, startPos.offset);
|
|
175568
|
+
range.setEnd(endPos.node, endPos.offset);
|
|
175569
|
+
sel.removeAllRanges();
|
|
175570
|
+
sel.addRange(range);
|
|
175571
|
+
}
|
|
175572
|
+
function findTextPositionInSegment(editor, segIdx, charOffset) {
|
|
175573
|
+
const segSpan = editor.querySelector(`[data-seg-idx="${segIdx}"]`);
|
|
175574
|
+
if (!segSpan) {
|
|
175575
|
+
return null;
|
|
175576
|
+
}
|
|
175577
|
+
const walker = document.createTreeWalker(segSpan, NodeFilter.SHOW_TEXT);
|
|
175578
|
+
let charCount = 0;
|
|
175579
|
+
let node;
|
|
175580
|
+
while (node = walker.nextNode()) {
|
|
175581
|
+
const textLen = node.length;
|
|
175582
|
+
if (charCount + textLen >= charOffset) {
|
|
175583
|
+
return { node, offset: charOffset - charCount };
|
|
175584
|
+
}
|
|
175585
|
+
charCount += textLen;
|
|
175586
|
+
}
|
|
175587
|
+
const lastTextNode = segSpan.querySelector("*") ? null : segSpan.firstChild;
|
|
175588
|
+
if (lastTextNode && lastTextNode.nodeType === Node.TEXT_NODE) {
|
|
175589
|
+
return { node: lastTextNode, offset: lastTextNode.length };
|
|
175590
|
+
}
|
|
175591
|
+
return null;
|
|
175592
|
+
}
|
|
175593
|
+
function positions(segments) {
|
|
175594
|
+
let offset = 0;
|
|
175595
|
+
let paragraph = 0;
|
|
175596
|
+
let first = true;
|
|
175597
|
+
return segments.map((segment) => {
|
|
175598
|
+
const marker = first && isBulletMarkerSegment(segment);
|
|
175599
|
+
const start = offset;
|
|
175600
|
+
if (!marker) {
|
|
175601
|
+
offset += segment.text.length;
|
|
175602
|
+
}
|
|
175603
|
+
const entry2 = {
|
|
175604
|
+
start,
|
|
175605
|
+
end: offset,
|
|
175606
|
+
paragraph,
|
|
175607
|
+
editable: !marker && !isParagraphSeparatorSegment(segment)
|
|
175608
|
+
};
|
|
175609
|
+
first = isParagraphSeparatorSegment(segment);
|
|
175610
|
+
if (first) {
|
|
175611
|
+
paragraph += 1;
|
|
175612
|
+
}
|
|
175613
|
+
return entry2;
|
|
175614
|
+
});
|
|
175615
|
+
}
|
|
175616
|
+
function restorePoint(segments, offset, end) {
|
|
175617
|
+
const entries = positions(segments);
|
|
175618
|
+
let fallback = { index: 0, offset: 0 };
|
|
175619
|
+
for (const [index, entry2] of entries.entries()) {
|
|
175620
|
+
if (!entry2.editable) {
|
|
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);
|
|
175707
|
+
return {
|
|
175708
|
+
patch,
|
|
175709
|
+
selection: {
|
|
175710
|
+
startSegIdx: start.index,
|
|
175711
|
+
startOffset: start.offset,
|
|
175712
|
+
endSegIdx: end.index,
|
|
175713
|
+
endOffset: end.offset
|
|
175714
|
+
}
|
|
175715
|
+
};
|
|
174969
175716
|
}
|
|
174970
175717
|
var DEBOUNCE_MS = 600;
|
|
174971
175718
|
var EXPANDED_MAX_HEIGHT = 200;
|
|
@@ -175688,15 +176435,15 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
175688
176435
|
const pos2 = tabStops[0].position;
|
|
175689
176436
|
return typeof pos2 === "number" && pos2 > 0 ? `${Math.round(pos2)}px` : fromDefault;
|
|
175690
176437
|
}
|
|
175691
|
-
const
|
|
175692
|
-
if (
|
|
175693
|
-
return
|
|
176438
|
+
const positions2 = tabStops.map((t) => t.position).filter((p) => typeof p === "number" && p > 0).sort((a, b) => a - b);
|
|
176439
|
+
if (positions2.length < 2) {
|
|
176440
|
+
return positions2.length === 1 ? `${Math.round(positions2[0])}px` : fromDefault;
|
|
175694
176441
|
}
|
|
175695
176442
|
let totalGap = 0;
|
|
175696
|
-
for (let i2 = 1; i2 <
|
|
175697
|
-
totalGap +=
|
|
176443
|
+
for (let i2 = 1; i2 < positions2.length; i2++) {
|
|
176444
|
+
totalGap += positions2[i2] - positions2[i2 - 1];
|
|
175698
176445
|
}
|
|
175699
|
-
const avgGap = totalGap / (
|
|
176446
|
+
const avgGap = totalGap / (positions2.length - 1);
|
|
175700
176447
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
175701
176448
|
}
|
|
175702
176449
|
function resolveTextOverflowClip(textStyle) {
|
|
@@ -176328,8 +177075,8 @@ function splitWordsForUnderline(text22) {
|
|
|
176328
177075
|
return [];
|
|
176329
177076
|
}
|
|
176330
177077
|
const pieces = [];
|
|
176331
|
-
const
|
|
176332
|
-
for (const match of
|
|
177078
|
+
const matches2 = text22.matchAll(/(\s+)|(\S+)/gu);
|
|
177079
|
+
for (const match of matches2) {
|
|
176333
177080
|
if (match[1] !== void 0) {
|
|
176334
177081
|
pieces.push({ text: match[1], underline: false });
|
|
176335
177082
|
} else if (match[2] !== void 0) {
|
|
@@ -179861,252 +180608,6 @@ function buildThemeColorGrid(colorScheme, translate) {
|
|
|
179861
180608
|
function themeColorLabel(key2, translate) {
|
|
179862
180609
|
return translate ? schemaLabel(THEME_COLOR_SLOT_LABEL_KEYS, key2, translate) : THEME_COLOR_LABELS[key2];
|
|
179863
180610
|
}
|
|
179864
|
-
function getInlineEditorSelection(segments) {
|
|
179865
|
-
if (!segments?.length) {
|
|
179866
|
-
return null;
|
|
179867
|
-
}
|
|
179868
|
-
const selection = window.getSelection();
|
|
179869
|
-
if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
|
|
179870
|
-
return null;
|
|
179871
|
-
}
|
|
179872
|
-
const range = selection.getRangeAt(0);
|
|
179873
|
-
const editor = findEditorContainer(range.startContainer);
|
|
179874
|
-
if (!editor || !editor.contains(range.endContainer) || range.toString().length === 0) {
|
|
179875
|
-
return null;
|
|
179876
|
-
}
|
|
179877
|
-
const start = getSegmentPosition(editor, range.startContainer, range.startOffset, segments);
|
|
179878
|
-
const end = getSegmentPosition(editor, range.endContainer, range.endOffset, segments);
|
|
179879
|
-
if (!start || !end) {
|
|
179880
|
-
return null;
|
|
179881
|
-
}
|
|
179882
|
-
const renderedSpans = Array.from(editor.querySelectorAll("[data-seg-idx]"));
|
|
179883
|
-
const startSpanIndex = renderedSpans.indexOf(start.span);
|
|
179884
|
-
const endSpanIndex = renderedSpans.indexOf(end.span);
|
|
179885
|
-
if (startSpanIndex < 0 || endSpanIndex < startSpanIndex) {
|
|
179886
|
-
return null;
|
|
179887
|
-
}
|
|
179888
|
-
const selectedSpans = renderedSpans.slice(startSpanIndex, endSpanIndex + 1);
|
|
179889
|
-
const first = selectedSpans.find(
|
|
179890
|
-
(span) => isEditableSpan(span, segments) && (span !== start.span || start.offset < start.textLength)
|
|
179891
|
-
);
|
|
179892
|
-
const last = [...selectedSpans].reverse().find((span) => isEditableSpan(span, segments) && (span !== end.span || end.offset > 0));
|
|
179893
|
-
if (!first || !last) {
|
|
179894
|
-
return null;
|
|
179895
|
-
}
|
|
179896
|
-
return {
|
|
179897
|
-
startSegIdx: getSegmentIndex(first),
|
|
179898
|
-
startOffset: first === start.span ? start.offset : 0,
|
|
179899
|
-
endSegIdx: getSegmentIndex(last),
|
|
179900
|
-
endOffset: last === end.span ? end.offset : last.textContent?.length ?? 0
|
|
179901
|
-
};
|
|
179902
|
-
}
|
|
179903
|
-
function isEditableSpan(span, segments) {
|
|
179904
|
-
const segment = segments[getSegmentIndex(span)];
|
|
179905
|
-
return Boolean(
|
|
179906
|
-
segment && !segment.isParagraphBreak && segment.text !== "\n" && !isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
|
|
179907
|
-
);
|
|
179908
|
-
}
|
|
179909
|
-
function getSegmentIndex(span) {
|
|
179910
|
-
return Number(span.getAttribute("data-seg-idx"));
|
|
179911
|
-
}
|
|
179912
|
-
function findEditorContainer(node) {
|
|
179913
|
-
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
179914
|
-
return element?.closest("[data-inline-editor]") ?? null;
|
|
179915
|
-
}
|
|
179916
|
-
function getSegmentPosition(editor, node, offset, segments) {
|
|
179917
|
-
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
179918
|
-
const span = element?.closest("[data-seg-idx]");
|
|
179919
|
-
if (!span || !editor.contains(span)) {
|
|
179920
|
-
return null;
|
|
179921
|
-
}
|
|
179922
|
-
const segIdx = getSegmentIndex(span);
|
|
179923
|
-
if (!Number.isInteger(segIdx) || segIdx < 0 || segIdx >= segments.length) {
|
|
179924
|
-
return null;
|
|
179925
|
-
}
|
|
179926
|
-
return {
|
|
179927
|
-
segIdx,
|
|
179928
|
-
offset: getTextOffsetWithin(span, node, offset),
|
|
179929
|
-
span,
|
|
179930
|
-
textLength: span.textContent?.length ?? 0
|
|
179931
|
-
};
|
|
179932
|
-
}
|
|
179933
|
-
function getTextOffsetWithin(container, targetNode, targetOffset) {
|
|
179934
|
-
if (targetNode === container || targetNode.nodeType === Node.ELEMENT_NODE) {
|
|
179935
|
-
const parent = targetNode === container ? container : targetNode;
|
|
179936
|
-
let count = 0;
|
|
179937
|
-
for (let index = 0; index < targetOffset && index < parent.childNodes.length; index++) {
|
|
179938
|
-
count += parent.childNodes[index].textContent?.length ?? 0;
|
|
179939
|
-
}
|
|
179940
|
-
return count;
|
|
179941
|
-
}
|
|
179942
|
-
const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT);
|
|
179943
|
-
let charCount = 0;
|
|
179944
|
-
let node;
|
|
179945
|
-
while (node = walker.nextNode()) {
|
|
179946
|
-
if (node === targetNode) {
|
|
179947
|
-
return charCount + targetOffset;
|
|
179948
|
-
}
|
|
179949
|
-
charCount += node.length;
|
|
179950
|
-
}
|
|
179951
|
-
return charCount;
|
|
179952
|
-
}
|
|
179953
|
-
var pendingRestore = null;
|
|
179954
|
-
function setPendingSelectionRestore(sel) {
|
|
179955
|
-
pendingRestore = sel;
|
|
179956
|
-
}
|
|
179957
|
-
function getPendingSelectionRestore() {
|
|
179958
|
-
const sel = pendingRestore;
|
|
179959
|
-
pendingRestore = null;
|
|
179960
|
-
return sel;
|
|
179961
|
-
}
|
|
179962
|
-
function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
179963
|
-
const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
|
|
179964
|
-
const result = [];
|
|
179965
|
-
let newStartSegIdx = -1;
|
|
179966
|
-
let newStartOffset = 0;
|
|
179967
|
-
let newEndSegIdx = -1;
|
|
179968
|
-
let newEndOffset = 0;
|
|
179969
|
-
for (let i2 = 0; i2 < segments.length; i2++) {
|
|
179970
|
-
const seg = segments[i2];
|
|
179971
|
-
if (seg.isParagraphBreak || seg.text === "\n") {
|
|
179972
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179973
|
-
continue;
|
|
179974
|
-
}
|
|
179975
|
-
if (i2 < startSegIdx) {
|
|
179976
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179977
|
-
continue;
|
|
179978
|
-
}
|
|
179979
|
-
if (i2 > endSegIdx) {
|
|
179980
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179981
|
-
continue;
|
|
179982
|
-
}
|
|
179983
|
-
if (i2 === startSegIdx && i2 === endSegIdx) {
|
|
179984
|
-
splitSingle(seg, startOffset, endOffset, updates, result);
|
|
179985
|
-
const partsAdded = (startOffset > 0 ? 1 : 0) + 1 + (endOffset < seg.text.length ? 1 : 0);
|
|
179986
|
-
const selectedPartIdx = result.length - partsAdded + (startOffset > 0 ? 1 : 0);
|
|
179987
|
-
newStartSegIdx = selectedPartIdx;
|
|
179988
|
-
newStartOffset = 0;
|
|
179989
|
-
newEndSegIdx = selectedPartIdx;
|
|
179990
|
-
newEndOffset = endOffset - startOffset;
|
|
179991
|
-
continue;
|
|
179992
|
-
}
|
|
179993
|
-
if (i2 === startSegIdx) {
|
|
179994
|
-
if (startOffset === 0) {
|
|
179995
|
-
newStartSegIdx = result.length;
|
|
179996
|
-
newStartOffset = 0;
|
|
179997
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
179998
|
-
} else {
|
|
179999
|
-
const beforeSeg = {
|
|
180000
|
-
text: seg.text.slice(0, startOffset),
|
|
180001
|
-
style: { ...seg.style }
|
|
180002
|
-
};
|
|
180003
|
-
if (seg.bulletInfo) {
|
|
180004
|
-
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
180005
|
-
}
|
|
180006
|
-
result.push(beforeSeg);
|
|
180007
|
-
newStartSegIdx = result.length;
|
|
180008
|
-
newStartOffset = 0;
|
|
180009
|
-
result.push({
|
|
180010
|
-
text: seg.text.slice(startOffset),
|
|
180011
|
-
style: { ...seg.style, ...updates }
|
|
180012
|
-
});
|
|
180013
|
-
}
|
|
180014
|
-
continue;
|
|
180015
|
-
}
|
|
180016
|
-
if (i2 === endSegIdx) {
|
|
180017
|
-
if (endOffset >= seg.text.length) {
|
|
180018
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180019
|
-
newEndSegIdx = result.length - 1;
|
|
180020
|
-
newEndOffset = seg.text.length;
|
|
180021
|
-
} else {
|
|
180022
|
-
result.push({
|
|
180023
|
-
text: seg.text.slice(0, endOffset),
|
|
180024
|
-
style: { ...seg.style, ...updates }
|
|
180025
|
-
});
|
|
180026
|
-
newEndSegIdx = result.length - 1;
|
|
180027
|
-
newEndOffset = endOffset;
|
|
180028
|
-
result.push({
|
|
180029
|
-
text: seg.text.slice(endOffset),
|
|
180030
|
-
style: { ...seg.style }
|
|
180031
|
-
});
|
|
180032
|
-
}
|
|
180033
|
-
continue;
|
|
180034
|
-
}
|
|
180035
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180036
|
-
}
|
|
180037
|
-
return {
|
|
180038
|
-
newSegments: result,
|
|
180039
|
-
newSelection: {
|
|
180040
|
-
startSegIdx: newStartSegIdx,
|
|
180041
|
-
startOffset: newStartOffset,
|
|
180042
|
-
endSegIdx: newEndSegIdx,
|
|
180043
|
-
endOffset: newEndOffset
|
|
180044
|
-
}
|
|
180045
|
-
};
|
|
180046
|
-
}
|
|
180047
|
-
function splitSingle(seg, startOffset, endOffset, updates, result) {
|
|
180048
|
-
if (startOffset === 0 && endOffset >= seg.text.length) {
|
|
180049
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180050
|
-
return;
|
|
180051
|
-
}
|
|
180052
|
-
if (startOffset > 0) {
|
|
180053
|
-
const beforeSeg = {
|
|
180054
|
-
text: seg.text.slice(0, startOffset),
|
|
180055
|
-
style: { ...seg.style }
|
|
180056
|
-
};
|
|
180057
|
-
if (seg.bulletInfo) {
|
|
180058
|
-
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
180059
|
-
}
|
|
180060
|
-
result.push(beforeSeg);
|
|
180061
|
-
}
|
|
180062
|
-
result.push({
|
|
180063
|
-
text: seg.text.slice(startOffset, endOffset),
|
|
180064
|
-
style: { ...seg.style, ...updates }
|
|
180065
|
-
});
|
|
180066
|
-
if (endOffset < seg.text.length) {
|
|
180067
|
-
result.push({
|
|
180068
|
-
text: seg.text.slice(endOffset),
|
|
180069
|
-
style: { ...seg.style }
|
|
180070
|
-
});
|
|
180071
|
-
}
|
|
180072
|
-
}
|
|
180073
|
-
function restoreSegmentSelection(editor, startSegIdx, startOffset, endSegIdx, endOffset) {
|
|
180074
|
-
const sel = window.getSelection();
|
|
180075
|
-
if (!sel) {
|
|
180076
|
-
return;
|
|
180077
|
-
}
|
|
180078
|
-
const startPos = findTextPositionInSegment(editor, startSegIdx, startOffset);
|
|
180079
|
-
const endPos = findTextPositionInSegment(editor, endSegIdx, endOffset);
|
|
180080
|
-
if (!startPos || !endPos) {
|
|
180081
|
-
return;
|
|
180082
|
-
}
|
|
180083
|
-
const range = document.createRange();
|
|
180084
|
-
range.setStart(startPos.node, startPos.offset);
|
|
180085
|
-
range.setEnd(endPos.node, endPos.offset);
|
|
180086
|
-
sel.removeAllRanges();
|
|
180087
|
-
sel.addRange(range);
|
|
180088
|
-
}
|
|
180089
|
-
function findTextPositionInSegment(editor, segIdx, charOffset) {
|
|
180090
|
-
const segSpan = editor.querySelector(`[data-seg-idx="${segIdx}"]`);
|
|
180091
|
-
if (!segSpan) {
|
|
180092
|
-
return null;
|
|
180093
|
-
}
|
|
180094
|
-
const walker = document.createTreeWalker(segSpan, NodeFilter.SHOW_TEXT);
|
|
180095
|
-
let charCount = 0;
|
|
180096
|
-
let node;
|
|
180097
|
-
while (node = walker.nextNode()) {
|
|
180098
|
-
const textLen = node.length;
|
|
180099
|
-
if (charCount + textLen >= charOffset) {
|
|
180100
|
-
return { node, offset: charOffset - charCount };
|
|
180101
|
-
}
|
|
180102
|
-
charCount += textLen;
|
|
180103
|
-
}
|
|
180104
|
-
const lastTextNode = segSpan.querySelector("*") ? null : segSpan.firstChild;
|
|
180105
|
-
if (lastTextNode && lastTextNode.nodeType === Node.TEXT_NODE) {
|
|
180106
|
-
return { node: lastTextNode, offset: lastTextNode.length };
|
|
180107
|
-
}
|
|
180108
|
-
return null;
|
|
180109
|
-
}
|
|
180110
180611
|
function placeCaretAtEnd(el) {
|
|
180111
180612
|
const doc = el.ownerDocument;
|
|
180112
180613
|
const win = doc.defaultView;
|
|
@@ -180533,6 +181034,100 @@ function withConnectorEndpointUpdate(connector, update) {
|
|
|
180533
181034
|
function connectorWrapperTransform(element) {
|
|
180534
181035
|
return element.rotation ? `rotate(${element.rotation}deg)` : void 0;
|
|
180535
181036
|
}
|
|
181037
|
+
function textFontSizePxToPt(fontSizePx2) {
|
|
181038
|
+
return Math.round(fontSizePx2 * (72 / 96) * 100) / 100;
|
|
181039
|
+
}
|
|
181040
|
+
function textFontSizePtToPx(fontSizePt) {
|
|
181041
|
+
return fontSizePt * (96 / 72);
|
|
181042
|
+
}
|
|
181043
|
+
var COMMON_FONT_FAMILIES = [
|
|
181044
|
+
"Abadi",
|
|
181045
|
+
"Aptos",
|
|
181046
|
+
"Aptos Display",
|
|
181047
|
+
"Arial",
|
|
181048
|
+
"Arial Black",
|
|
181049
|
+
"Arial Narrow",
|
|
181050
|
+
"Bahnschrift",
|
|
181051
|
+
"Book Antiqua",
|
|
181052
|
+
"Bookman Old Style",
|
|
181053
|
+
"Calibri",
|
|
181054
|
+
"Calibri Light",
|
|
181055
|
+
"Cambria",
|
|
181056
|
+
"Candara",
|
|
181057
|
+
"Century Gothic",
|
|
181058
|
+
"Comic Sans MS",
|
|
181059
|
+
"Consolas",
|
|
181060
|
+
"Corbel",
|
|
181061
|
+
"Courier New",
|
|
181062
|
+
"Franklin Gothic Book",
|
|
181063
|
+
"Franklin Gothic Medium",
|
|
181064
|
+
"Garamond",
|
|
181065
|
+
"Georgia",
|
|
181066
|
+
"Gill Sans MT",
|
|
181067
|
+
"Helvetica",
|
|
181068
|
+
"Impact",
|
|
181069
|
+
"Inter",
|
|
181070
|
+
"Lucida Console",
|
|
181071
|
+
"Lucida Sans Unicode",
|
|
181072
|
+
"Microsoft Sans Serif",
|
|
181073
|
+
"Montserrat",
|
|
181074
|
+
"Noto Sans",
|
|
181075
|
+
"Open Sans",
|
|
181076
|
+
"Palatino Linotype",
|
|
181077
|
+
"Poppins",
|
|
181078
|
+
"Roboto",
|
|
181079
|
+
"Rockwell",
|
|
181080
|
+
"Segoe UI",
|
|
181081
|
+
"Source Sans Pro",
|
|
181082
|
+
"Tahoma",
|
|
181083
|
+
"Times New Roman",
|
|
181084
|
+
"Trebuchet MS",
|
|
181085
|
+
"Tw Cen MT",
|
|
181086
|
+
"Verdana"
|
|
181087
|
+
];
|
|
181088
|
+
var COMMON_FONT_SIZES = [
|
|
181089
|
+
8,
|
|
181090
|
+
9,
|
|
181091
|
+
10,
|
|
181092
|
+
11,
|
|
181093
|
+
12,
|
|
181094
|
+
14,
|
|
181095
|
+
16,
|
|
181096
|
+
18,
|
|
181097
|
+
20,
|
|
181098
|
+
24,
|
|
181099
|
+
28,
|
|
181100
|
+
32,
|
|
181101
|
+
36,
|
|
181102
|
+
40,
|
|
181103
|
+
44,
|
|
181104
|
+
48,
|
|
181105
|
+
54,
|
|
181106
|
+
60,
|
|
181107
|
+
72,
|
|
181108
|
+
96
|
|
181109
|
+
];
|
|
181110
|
+
var CHARACTER_SPACING_OPTIONS = [
|
|
181111
|
+
{ label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
|
|
181112
|
+
{ label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
|
|
181113
|
+
{ label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
|
|
181114
|
+
{ label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
|
|
181115
|
+
{ label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
|
|
181116
|
+
];
|
|
181117
|
+
function textStylePatch(el, changes) {
|
|
181118
|
+
const base = hasTextProperties(el) ? el.textStyle ?? {} : {};
|
|
181119
|
+
return {
|
|
181120
|
+
...hasTextProperties(el) && el.textSegments?.some((segment) => segment.paragraphInsertionStyle) ? {
|
|
181121
|
+
textSegments: el.textSegments.map(
|
|
181122
|
+
(segment) => updateTextSegmentStyle(segment, changes, { updateBodyStyle: false })
|
|
181123
|
+
)
|
|
181124
|
+
} : {},
|
|
181125
|
+
textStyle: {
|
|
181126
|
+
...base,
|
|
181127
|
+
...changes
|
|
181128
|
+
}
|
|
181129
|
+
};
|
|
181130
|
+
}
|
|
180536
181131
|
function copyFormatFromElement(element) {
|
|
180537
181132
|
const result = {};
|
|
180538
181133
|
if (hasShapeProperties(element) && element.shapeStyle) {
|
|
@@ -180607,10 +181202,7 @@ function applyFormatToElement(element, format) {
|
|
|
180607
181202
|
if (format.textStyle && hasTextProperties(updated)) {
|
|
180608
181203
|
updated = {
|
|
180609
181204
|
...updated,
|
|
180610
|
-
textStyle
|
|
180611
|
-
...updated.textStyle,
|
|
180612
|
-
...definedEntries2(format.textStyle)
|
|
180613
|
-
}
|
|
181205
|
+
...textStylePatch(updated, definedEntries2(format.textStyle))
|
|
180614
181206
|
};
|
|
180615
181207
|
}
|
|
180616
181208
|
return updated;
|
|
@@ -180621,6 +181213,53 @@ function hasCopyableFormat(element) {
|
|
|
180621
181213
|
}
|
|
180622
181214
|
return hasShapeProperties(element) || hasTextProperties(element);
|
|
180623
181215
|
}
|
|
181216
|
+
function remapEmptyParagraph(text22, segments, terminator) {
|
|
181217
|
+
const source = segments[0] ?? terminator;
|
|
181218
|
+
const insertionStyle = source?.paragraphInsertionStyle;
|
|
181219
|
+
if (!source || !insertionStyle || segments.length > 1 || segments.length > 0 && source.text !== "" && !isBulletMarkerSegment(source)) {
|
|
181220
|
+
return void 0;
|
|
181221
|
+
}
|
|
181222
|
+
if (text22.length === 0) {
|
|
181223
|
+
return segments.map((segment) => ({ ...segment }));
|
|
181224
|
+
}
|
|
181225
|
+
const first = { ...source };
|
|
181226
|
+
delete first.paragraphInsertionStyle;
|
|
181227
|
+
const bullet = first.bulletInfo;
|
|
181228
|
+
if (bullet && !bullet.none && segments.length > 0) {
|
|
181229
|
+
return [first, { text: text22, style: { ...insertionStyle } }];
|
|
181230
|
+
}
|
|
181231
|
+
delete first.isParagraphBreak;
|
|
181232
|
+
return [{ ...first, text: text22, style: { ...insertionStyle } }];
|
|
181233
|
+
}
|
|
181234
|
+
function renumberRemappedParagraphs(segments) {
|
|
181235
|
+
const sequence = createAutoNumberSequence();
|
|
181236
|
+
let first = true;
|
|
181237
|
+
return segments.map((segment) => {
|
|
181238
|
+
const paragraphStart = first;
|
|
181239
|
+
first = isParagraphSeparatorSegment(segment);
|
|
181240
|
+
if (!paragraphStart) {
|
|
181241
|
+
return segment;
|
|
181242
|
+
}
|
|
181243
|
+
const info = segment.bulletInfo;
|
|
181244
|
+
const level = segment.paragraphLevel ?? 0;
|
|
181245
|
+
if (!info?.autoNumType || !resolveParagraphBullet(segment)?.isNumbered) {
|
|
181246
|
+
breakAutoNumberRun(sequence, level);
|
|
181247
|
+
return segment;
|
|
181248
|
+
}
|
|
181249
|
+
const ordinal = nextAutoNumber(sequence, level, info.autoNumType, info.autoNumStartAt ?? 1) - (info.autoNumStartAt ?? 1);
|
|
181250
|
+
if (info.paragraphIndex === void 0 || info.paragraphIndex === ordinal) {
|
|
181251
|
+
return segment;
|
|
181252
|
+
}
|
|
181253
|
+
const updated = { ...segment, bulletInfo: { ...info, paragraphIndex: ordinal } };
|
|
181254
|
+
if (isBulletMarkerSegment(segment)) {
|
|
181255
|
+
const resolved = resolveParagraphBullet(updated);
|
|
181256
|
+
if (resolved) {
|
|
181257
|
+
updated.text = resolved.marker + (segment.text.match(/\s+$/u)?.[0] ?? "");
|
|
181258
|
+
}
|
|
181259
|
+
}
|
|
181260
|
+
return updated;
|
|
181261
|
+
});
|
|
181262
|
+
}
|
|
180624
181263
|
function withoutRenderedBulletPrefix(text22, originalSegments, dedicatedMarker) {
|
|
180625
181264
|
if (!dedicatedMarker) {
|
|
180626
181265
|
return text22;
|
|
@@ -180641,10 +181280,14 @@ function withoutRenderedBulletPrefix(text22, originalSegments, dedicatedMarker)
|
|
|
180641
181280
|
}
|
|
180642
181281
|
return withoutMarker;
|
|
180643
181282
|
}
|
|
180644
|
-
function
|
|
181283
|
+
function continueListParagraph(segments, donorSegments) {
|
|
180645
181284
|
const donor = donorSegments[0];
|
|
180646
181285
|
const paragraphIndex = donor?.bulletInfo?.paragraphIndex;
|
|
180647
|
-
|
|
181286
|
+
const bullet = resolveParagraphBullet(donor);
|
|
181287
|
+
if (segments.length === 0 || !bullet) {
|
|
181288
|
+
return segments;
|
|
181289
|
+
}
|
|
181290
|
+
if (bullet.isNumbered && (typeof paragraphIndex !== "number" || !Number.isFinite(paragraphIndex))) {
|
|
180648
181291
|
return segments;
|
|
180649
181292
|
}
|
|
180650
181293
|
const [first, ...rest] = segments;
|
|
@@ -180652,13 +181295,13 @@ function continueAutoNumberedParagraph(segments, donorSegments, offset) {
|
|
|
180652
181295
|
...first,
|
|
180653
181296
|
bulletInfo: {
|
|
180654
181297
|
...donor.bulletInfo,
|
|
180655
|
-
paragraphIndex: paragraphIndex +
|
|
181298
|
+
...bullet.isNumbered && typeof paragraphIndex === "number" && Number.isFinite(paragraphIndex) ? { paragraphIndex: paragraphIndex + 1 } : {}
|
|
180656
181299
|
}
|
|
180657
181300
|
};
|
|
180658
181301
|
if (donor.paragraphLevel !== void 0) {
|
|
180659
181302
|
continued.paragraphLevel = donor.paragraphLevel;
|
|
180660
181303
|
}
|
|
180661
|
-
if (isBulletMarkerSegment(donor)) {
|
|
181304
|
+
if (bullet.isNumbered && typeof paragraphIndex === "number" && Number.isFinite(paragraphIndex) && isBulletMarkerSegment(donor)) {
|
|
180662
181305
|
const resolved = resolveParagraphBullet(continued);
|
|
180663
181306
|
if (resolved) {
|
|
180664
181307
|
const trailingWhitespace = donor.text.match(/\s+$/u)?.[0] ?? "";
|
|
@@ -180667,10 +181310,91 @@ function continueAutoNumberedParagraph(segments, donorSegments, offset) {
|
|
|
180667
181310
|
}
|
|
180668
181311
|
return [continued, ...rest];
|
|
180669
181312
|
}
|
|
181313
|
+
function restoreParagraphMetadata2(from, segments) {
|
|
181314
|
+
if (segments.length === 0) {
|
|
181315
|
+
return segments;
|
|
181316
|
+
}
|
|
181317
|
+
const [first, ...rest] = segments;
|
|
181318
|
+
const restored = { ...first };
|
|
181319
|
+
delete restored.paragraphLevel;
|
|
181320
|
+
delete restored.paragraphProperties;
|
|
181321
|
+
delete restored.endParaRunProperties;
|
|
181322
|
+
if (!from) {
|
|
181323
|
+
delete restored.paragraphInsertionStyle;
|
|
181324
|
+
}
|
|
181325
|
+
if (from?.paragraphLevel !== void 0) {
|
|
181326
|
+
restored.paragraphLevel = from.paragraphLevel;
|
|
181327
|
+
}
|
|
181328
|
+
if (from?.paragraphProperties !== void 0) {
|
|
181329
|
+
restored.paragraphProperties = from.paragraphProperties;
|
|
181330
|
+
}
|
|
181331
|
+
if (from?.endParaRunProperties !== void 0) {
|
|
181332
|
+
restored.endParaRunProperties = from.endParaRunProperties;
|
|
181333
|
+
}
|
|
181334
|
+
return [restored, ...rest];
|
|
181335
|
+
}
|
|
181336
|
+
function matches(text22, paragraph) {
|
|
181337
|
+
const first = paragraph.segments[0];
|
|
181338
|
+
const marker = first && isBulletMarkerSegment(first) && (!first.bulletInfo?.autoNumType || first.bulletInfo.paragraphIndex !== void 0) ? first : void 0;
|
|
181339
|
+
const body = paragraph.segments.slice(marker ? 1 : 0).map((segment) => segment.text).join("");
|
|
181340
|
+
return text22 === body || withoutRenderedBulletPrefix(text22, paragraph.segments, marker) === body;
|
|
181341
|
+
}
|
|
181342
|
+
function alignParagraphSources(texts, original) {
|
|
181343
|
+
const sources = Array.from({ length: texts.length });
|
|
181344
|
+
let prefix = 0;
|
|
181345
|
+
while (prefix < texts.length && prefix < original.length && matches(texts[prefix], original[prefix])) {
|
|
181346
|
+
sources[prefix] = prefix;
|
|
181347
|
+
prefix += 1;
|
|
181348
|
+
}
|
|
181349
|
+
let oldEnd = original.length;
|
|
181350
|
+
let newEnd = texts.length;
|
|
181351
|
+
while (oldEnd > prefix && newEnd > prefix && matches(texts[newEnd - 1], original[oldEnd - 1])) {
|
|
181352
|
+
sources[--newEnd] = --oldEnd;
|
|
181353
|
+
}
|
|
181354
|
+
const anchors = [];
|
|
181355
|
+
const oldCount = oldEnd - prefix;
|
|
181356
|
+
const newCount = newEnd - prefix;
|
|
181357
|
+
if (oldCount * newCount <= 1e4) {
|
|
181358
|
+
const lengths = Array.from({ length: oldCount + 1 }, () => new Uint16Array(newCount + 1));
|
|
181359
|
+
for (let old2 = oldCount - 1; old2 >= 0; old2--) {
|
|
181360
|
+
for (let next2 = newCount - 1; next2 >= 0; next2--) {
|
|
181361
|
+
lengths[old2][next2] = matches(texts[prefix + next2], original[prefix + old2]) ? lengths[old2 + 1][next2 + 1] + 1 : Math.max(lengths[old2 + 1][next2], lengths[old2][next2 + 1]);
|
|
181362
|
+
}
|
|
181363
|
+
}
|
|
181364
|
+
let old = 0;
|
|
181365
|
+
let next = 0;
|
|
181366
|
+
while (old < oldCount && next < newCount) {
|
|
181367
|
+
if (matches(texts[prefix + next], original[prefix + old])) {
|
|
181368
|
+
anchors.push([prefix + next++, prefix + old++]);
|
|
181369
|
+
} else if (lengths[old + 1][next] >= lengths[old][next + 1]) {
|
|
181370
|
+
old++;
|
|
181371
|
+
} else {
|
|
181372
|
+
next++;
|
|
181373
|
+
}
|
|
181374
|
+
}
|
|
181375
|
+
}
|
|
181376
|
+
anchors.push([newEnd, oldEnd]);
|
|
181377
|
+
let oldCursor = prefix;
|
|
181378
|
+
let newCursor = prefix;
|
|
181379
|
+
for (const [newAnchor, oldAnchor] of anchors) {
|
|
181380
|
+
while (oldCursor < oldAnchor && newCursor < newAnchor) {
|
|
181381
|
+
sources[newCursor++] = oldCursor++;
|
|
181382
|
+
}
|
|
181383
|
+
if (newAnchor < newEnd) {
|
|
181384
|
+
sources[newAnchor] = oldAnchor;
|
|
181385
|
+
}
|
|
181386
|
+
oldCursor = oldAnchor + 1;
|
|
181387
|
+
newCursor = newAnchor + 1;
|
|
181388
|
+
}
|
|
181389
|
+
return sources;
|
|
181390
|
+
}
|
|
180670
181391
|
function isAtomicOriginalSegment(seg) {
|
|
180671
181392
|
return seg.fieldType !== void 0 || seg.equationXml !== void 0;
|
|
180672
181393
|
}
|
|
180673
181394
|
function copySegmentMetadata(from, to) {
|
|
181395
|
+
if (!from) {
|
|
181396
|
+
return to;
|
|
181397
|
+
}
|
|
180674
181398
|
if (from.equationXml !== void 0) {
|
|
180675
181399
|
to.equationXml = from.equationXml;
|
|
180676
181400
|
}
|
|
@@ -180691,26 +181415,6 @@ function copySegmentMetadata(from, to) {
|
|
|
180691
181415
|
}
|
|
180692
181416
|
return to;
|
|
180693
181417
|
}
|
|
180694
|
-
function restoreParagraphMetadata(from, segments) {
|
|
180695
|
-
if (segments.length === 0) {
|
|
180696
|
-
return segments;
|
|
180697
|
-
}
|
|
180698
|
-
const [first, ...rest] = segments;
|
|
180699
|
-
const restored = { ...first };
|
|
180700
|
-
delete restored.paragraphLevel;
|
|
180701
|
-
delete restored.paragraphProperties;
|
|
180702
|
-
delete restored.endParaRunProperties;
|
|
180703
|
-
if (from?.paragraphLevel !== void 0) {
|
|
180704
|
-
restored.paragraphLevel = from.paragraphLevel;
|
|
180705
|
-
}
|
|
180706
|
-
if (from?.paragraphProperties !== void 0) {
|
|
180707
|
-
restored.paragraphProperties = from.paragraphProperties;
|
|
180708
|
-
}
|
|
180709
|
-
if (from?.endParaRunProperties !== void 0) {
|
|
180710
|
-
restored.endParaRunProperties = from.endParaRunProperties;
|
|
180711
|
-
}
|
|
180712
|
-
return [restored, ...rest];
|
|
180713
|
-
}
|
|
180714
181418
|
function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
180715
181419
|
const fallbackStyle = { ...elementTextStyle };
|
|
180716
181420
|
if (!originalSegments || originalSegments.length === 0) {
|
|
@@ -180728,9 +181432,10 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180728
181432
|
}
|
|
180729
181433
|
}
|
|
180730
181434
|
const newParagraphTexts = newText.split("\n");
|
|
181435
|
+
const paragraphSources = alignParagraphSources(newParagraphTexts, originalParagraphs);
|
|
180731
181436
|
const firstContentSeg = originalParagraphs.flatMap((paragraph) => paragraph.segments).find((s) => s.text.trim().length > 0);
|
|
180732
181437
|
const baseFallbackStyle = firstContentSeg?.style ? { ...firstContentSeg.style } : fallbackStyle;
|
|
180733
|
-
function remapParagraph(paraNewText, paraOrigSegments) {
|
|
181438
|
+
function remapParagraph(paraNewText, paraOrigSegments, isOriginalParagraph = true) {
|
|
180734
181439
|
if (paraOrigSegments.length === 0) {
|
|
180735
181440
|
return paraNewText.length > 0 ? [{ text: paraNewText, style: { ...baseFallbackStyle } }] : [{ text: "", style: { ...baseFallbackStyle } }];
|
|
180736
181441
|
}
|
|
@@ -180738,12 +181443,8 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180738
181443
|
const dedicatedMarker = isBulletMarkerSegment(firstSegment) && (!firstSegment.bulletInfo?.autoNumType || firstSegment.bulletInfo.paragraphIndex !== void 0) ? firstSegment : void 0;
|
|
180739
181444
|
if (dedicatedMarker) {
|
|
180740
181445
|
const contentSegments = paraOrigSegments.slice(1);
|
|
180741
|
-
const contentText = withoutRenderedBulletPrefix(
|
|
180742
|
-
|
|
180743
|
-
paraOrigSegments,
|
|
180744
|
-
dedicatedMarker
|
|
180745
|
-
);
|
|
180746
|
-
const content = contentSegments.length > 0 ? remapParagraph(contentText, contentSegments) : [{ text: contentText, style: { ...dedicatedMarker.style } }];
|
|
181446
|
+
const contentText = isOriginalParagraph ? withoutRenderedBulletPrefix(paraNewText, paraOrigSegments, dedicatedMarker) : paraNewText;
|
|
181447
|
+
const content = contentSegments.length > 0 ? remapParagraph(contentText, contentSegments, isOriginalParagraph) : [{ text: contentText, style: { ...dedicatedMarker.style } }];
|
|
180747
181448
|
return [dedicatedMarker, ...content];
|
|
180748
181449
|
}
|
|
180749
181450
|
const paragraphBulletInfo = paraOrigSegments[0].bulletInfo;
|
|
@@ -180758,7 +181459,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180758
181459
|
const totalOrigLen = paraOrigSegments.reduce((sum, s) => sum + s.text.length, 0);
|
|
180759
181460
|
if (totalOrigLen === 0) {
|
|
180760
181461
|
const result = [
|
|
180761
|
-
copySegmentMetadata(paraOrigSegments[0], {
|
|
181462
|
+
copySegmentMetadata(isOriginalParagraph ? paraOrigSegments[0] : void 0, {
|
|
180762
181463
|
text: paraNewText,
|
|
180763
181464
|
style: { ...paraOrigSegments[0].style }
|
|
180764
181465
|
})
|
|
@@ -180772,7 +181473,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180772
181473
|
let newPos = 0;
|
|
180773
181474
|
for (let i2 = 0; i2 < paraOrigSegments.length; i2++) {
|
|
180774
181475
|
const origSeg = paraOrigSegments[i2];
|
|
180775
|
-
const isLastSeg = i2 === paraOrigSegments.length - 1 && !isAtomicOriginalSegment(origSeg);
|
|
181476
|
+
const isLastSeg = i2 === paraOrigSegments.length - 1 && (!isOriginalParagraph || !isAtomicOriginalSegment(origSeg));
|
|
180776
181477
|
const origLen = origSeg.text.length;
|
|
180777
181478
|
if (newPos >= paraNewText.length) {
|
|
180778
181479
|
break;
|
|
@@ -180784,7 +181485,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180784
181485
|
segText = paraNewText.slice(newPos, newPos + origLen);
|
|
180785
181486
|
}
|
|
180786
181487
|
if (segText.length > 0) {
|
|
180787
|
-
const outSeg = copySegmentMetadata(origSeg, {
|
|
181488
|
+
const outSeg = copySegmentMetadata(isOriginalParagraph ? origSeg : void 0, {
|
|
180788
181489
|
text: segText,
|
|
180789
181490
|
style: { ...origSeg.style }
|
|
180790
181491
|
});
|
|
@@ -180803,10 +181504,13 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180803
181504
|
});
|
|
180804
181505
|
}
|
|
180805
181506
|
if (remapped.length === 0) {
|
|
180806
|
-
const fallback = copySegmentMetadata(
|
|
180807
|
-
|
|
180808
|
-
|
|
180809
|
-
|
|
181507
|
+
const fallback = copySegmentMetadata(
|
|
181508
|
+
isOriginalParagraph ? paraOrigSegments[0] : void 0,
|
|
181509
|
+
{
|
|
181510
|
+
text: paraNewText,
|
|
181511
|
+
style: { ...paraOrigSegments[0].style }
|
|
181512
|
+
}
|
|
181513
|
+
);
|
|
180810
181514
|
if (paragraphBulletInfo) {
|
|
180811
181515
|
fallback.bulletInfo = paragraphBulletInfo;
|
|
180812
181516
|
}
|
|
@@ -180816,26 +181520,30 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180816
181520
|
}
|
|
180817
181521
|
const output = [];
|
|
180818
181522
|
const lastOrigPara = originalParagraphs[originalParagraphs.length - 1]?.segments;
|
|
181523
|
+
let precedingParagraph;
|
|
180819
181524
|
for (let pi = 0; pi < newParagraphTexts.length; pi++) {
|
|
180820
181525
|
if (pi > 0) {
|
|
180821
|
-
const precedingOrigPara = originalParagraphs[pi - 1]?.segments ?? [];
|
|
181526
|
+
const precedingOrigPara = originalParagraphs[paragraphSources[pi - 1] ?? -1]?.segments ?? [];
|
|
180822
181527
|
const breakStyle = precedingOrigPara[0]?.style ? { ...precedingOrigPara[0].style } : { ...baseFallbackStyle };
|
|
180823
|
-
|
|
181528
|
+
const terminator = originalParagraphs[paragraphSources[pi - 1] ?? -1]?.terminator;
|
|
181529
|
+
output.push(
|
|
181530
|
+
terminator?.paragraphInsertionStyle && newParagraphTexts[pi - 1] === "" ? { ...terminator, text: "\n", isParagraphBreak: true } : { text: "\n", style: breakStyle, isParagraphBreak: true }
|
|
181531
|
+
);
|
|
180824
181532
|
}
|
|
180825
|
-
const originalParagraph = originalParagraphs[pi];
|
|
180826
|
-
const origPara = originalParagraph?.segments ?? lastOrigPara ?? [];
|
|
180827
|
-
let paraSegments =
|
|
181533
|
+
const originalParagraph = originalParagraphs[paragraphSources[pi] ?? -1];
|
|
181534
|
+
const origPara = originalParagraph?.segments ?? precedingParagraph ?? lastOrigPara ?? [];
|
|
181535
|
+
let paraSegments = restoreParagraphMetadata2(
|
|
180828
181536
|
originalParagraph?.segments[0] ?? originalParagraph?.terminator,
|
|
180829
|
-
remapParagraph(newParagraphTexts[pi], origPara)
|
|
181537
|
+
(originalParagraph && remapEmptyParagraph(newParagraphTexts[pi], origPara, originalParagraph.terminator)) ?? remapParagraph(newParagraphTexts[pi], origPara, originalParagraph !== void 0)
|
|
180830
181538
|
);
|
|
180831
|
-
if (!originalParagraph) {
|
|
180832
|
-
paraSegments =
|
|
180833
|
-
paraSegments,
|
|
180834
|
-
lastOrigPara ?? [],
|
|
180835
|
-
pi - originalParagraphs.length + 1
|
|
180836
|
-
);
|
|
181539
|
+
if (!originalParagraph && precedingParagraph) {
|
|
181540
|
+
paraSegments = continueListParagraph(paraSegments, precedingParagraph);
|
|
180837
181541
|
}
|
|
180838
181542
|
output.push(...paraSegments);
|
|
181543
|
+
precedingParagraph = paraSegments;
|
|
181544
|
+
}
|
|
181545
|
+
if (paragraphSources.some((source, index) => source !== void 0 && source !== index)) {
|
|
181546
|
+
return renumberRemappedParagraphs(output);
|
|
180839
181547
|
}
|
|
180840
181548
|
return output.length > 0 ? output : [{ text: "", style: { ...baseFallbackStyle } }];
|
|
180841
181549
|
}
|
|
@@ -181750,6 +182458,9 @@ function buildSegmentAttrs(seg) {
|
|
|
181750
182458
|
if (seg.endParaRunProperties) {
|
|
181751
182459
|
a.pr = JSON.stringify(seg.endParaRunProperties);
|
|
181752
182460
|
}
|
|
182461
|
+
if (seg.paragraphInsertionStyle) {
|
|
182462
|
+
a.pi = JSON.stringify(seg.paragraphInsertionStyle);
|
|
182463
|
+
}
|
|
181753
182464
|
if (typeof seg.fieldType === "string") {
|
|
181754
182465
|
a.ft = seg.fieldType;
|
|
181755
182466
|
}
|
|
@@ -181856,6 +182567,12 @@ function decodeDelta(delta) {
|
|
|
181856
182567
|
} catch {
|
|
181857
182568
|
}
|
|
181858
182569
|
}
|
|
182570
|
+
if (a.pi) {
|
|
182571
|
+
try {
|
|
182572
|
+
seg.paragraphInsertionStyle = JSON.parse(a.pi);
|
|
182573
|
+
} catch {
|
|
182574
|
+
}
|
|
182575
|
+
}
|
|
181859
182576
|
if (a.ft) {
|
|
181860
182577
|
seg.fieldType = a.ft;
|
|
181861
182578
|
}
|
|
@@ -182044,6 +182761,7 @@ var COMPLEX_ELEMENT_FIELDS = {
|
|
|
182044
182761
|
children: "_ch",
|
|
182045
182762
|
paragraphIndents: "_pi",
|
|
182046
182763
|
rawXml: "_rx",
|
|
182764
|
+
inheritedTransform: "_it",
|
|
182047
182765
|
extLstXml: "_elx",
|
|
182048
182766
|
actionClick: "_ac",
|
|
182049
182767
|
actionHover: "_av",
|
|
@@ -190046,86 +190764,6 @@ function projectDrawingShapes(elementId, shapes, viewBox, palette, style) {
|
|
|
190046
190764
|
function styleShadowFilter(style) {
|
|
190047
190765
|
return styleShadow(style);
|
|
190048
190766
|
}
|
|
190049
|
-
function textFontSizePxToPt(fontSizePx2) {
|
|
190050
|
-
return Math.round(fontSizePx2 * (72 / 96) * 100) / 100;
|
|
190051
|
-
}
|
|
190052
|
-
function textFontSizePtToPx(fontSizePt) {
|
|
190053
|
-
return fontSizePt * (96 / 72);
|
|
190054
|
-
}
|
|
190055
|
-
var COMMON_FONT_FAMILIES = [
|
|
190056
|
-
"Abadi",
|
|
190057
|
-
"Aptos",
|
|
190058
|
-
"Aptos Display",
|
|
190059
|
-
"Arial",
|
|
190060
|
-
"Arial Black",
|
|
190061
|
-
"Arial Narrow",
|
|
190062
|
-
"Bahnschrift",
|
|
190063
|
-
"Book Antiqua",
|
|
190064
|
-
"Bookman Old Style",
|
|
190065
|
-
"Calibri",
|
|
190066
|
-
"Calibri Light",
|
|
190067
|
-
"Cambria",
|
|
190068
|
-
"Candara",
|
|
190069
|
-
"Century Gothic",
|
|
190070
|
-
"Comic Sans MS",
|
|
190071
|
-
"Consolas",
|
|
190072
|
-
"Corbel",
|
|
190073
|
-
"Courier New",
|
|
190074
|
-
"Franklin Gothic Book",
|
|
190075
|
-
"Franklin Gothic Medium",
|
|
190076
|
-
"Garamond",
|
|
190077
|
-
"Georgia",
|
|
190078
|
-
"Gill Sans MT",
|
|
190079
|
-
"Helvetica",
|
|
190080
|
-
"Impact",
|
|
190081
|
-
"Inter",
|
|
190082
|
-
"Lucida Console",
|
|
190083
|
-
"Lucida Sans Unicode",
|
|
190084
|
-
"Microsoft Sans Serif",
|
|
190085
|
-
"Montserrat",
|
|
190086
|
-
"Noto Sans",
|
|
190087
|
-
"Open Sans",
|
|
190088
|
-
"Palatino Linotype",
|
|
190089
|
-
"Poppins",
|
|
190090
|
-
"Roboto",
|
|
190091
|
-
"Rockwell",
|
|
190092
|
-
"Segoe UI",
|
|
190093
|
-
"Source Sans Pro",
|
|
190094
|
-
"Tahoma",
|
|
190095
|
-
"Times New Roman",
|
|
190096
|
-
"Trebuchet MS",
|
|
190097
|
-
"Tw Cen MT",
|
|
190098
|
-
"Verdana"
|
|
190099
|
-
];
|
|
190100
|
-
var COMMON_FONT_SIZES = [
|
|
190101
|
-
8,
|
|
190102
|
-
9,
|
|
190103
|
-
10,
|
|
190104
|
-
11,
|
|
190105
|
-
12,
|
|
190106
|
-
14,
|
|
190107
|
-
16,
|
|
190108
|
-
18,
|
|
190109
|
-
20,
|
|
190110
|
-
24,
|
|
190111
|
-
28,
|
|
190112
|
-
32,
|
|
190113
|
-
36,
|
|
190114
|
-
40,
|
|
190115
|
-
44,
|
|
190116
|
-
48,
|
|
190117
|
-
54,
|
|
190118
|
-
60,
|
|
190119
|
-
72,
|
|
190120
|
-
96
|
|
190121
|
-
];
|
|
190122
|
-
var CHARACTER_SPACING_OPTIONS = [
|
|
190123
|
-
{ label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
|
|
190124
|
-
{ label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
|
|
190125
|
-
{ label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
|
|
190126
|
-
{ label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
|
|
190127
|
-
{ label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
|
|
190128
|
-
];
|
|
190129
190767
|
var GOOGLE_FONTS_CSS2_BASE = "https://fonts.googleapis.com/css2";
|
|
190130
190768
|
var GOOGLE_WEBFONT_AXIS = "ital,wght@0,400;0,700;1,400;1,700";
|
|
190131
190769
|
var DISPLAY_PARAM = "display=swap";
|
|
@@ -192336,7 +192974,7 @@ function isBulletMarker(segment) {
|
|
|
192336
192974
|
const marker = bullet.char ? `${bullet.char} ` : bullet.imageRelId || bullet.imageDataUrl ? "\u{1F4CE} " : "\u2022 ";
|
|
192337
192975
|
return segment.text === marker;
|
|
192338
192976
|
}
|
|
192339
|
-
function
|
|
192977
|
+
function isParagraphSeparator(segment) {
|
|
192340
192978
|
return Boolean(segment.isParagraphBreak) || segment.text === "\n" && !segment.isLineBreak;
|
|
192341
192979
|
}
|
|
192342
192980
|
function groupElementParagraphs(element) {
|
|
@@ -192350,7 +192988,7 @@ function groupElementParagraphs(element) {
|
|
|
192350
192988
|
}
|
|
192351
192989
|
const groups = [{ content: [] }];
|
|
192352
192990
|
for (const segment of segments) {
|
|
192353
|
-
if (
|
|
192991
|
+
if (isParagraphSeparator(segment)) {
|
|
192354
192992
|
groups.push({ content: [] });
|
|
192355
192993
|
continue;
|
|
192356
192994
|
}
|
|
@@ -192442,8 +193080,37 @@ function buildElementClipboardPayload(element, isTemplate) {
|
|
|
192442
193080
|
function cloneElementForPaste(element, options = {}) {
|
|
192443
193081
|
const clone3 = structuredClone(element);
|
|
192444
193082
|
const intoTemplate = options.intoTemplate ?? false;
|
|
192445
|
-
|
|
192446
|
-
|
|
193083
|
+
const modelIds = /* @__PURE__ */ new Map();
|
|
193084
|
+
const nativeIds = /* @__PURE__ */ new Map();
|
|
193085
|
+
const mintId = (node) => {
|
|
193086
|
+
const id = makeCloneId(intoTemplate, element.id);
|
|
193087
|
+
modelIds.set(node.id, id);
|
|
193088
|
+
if (node.shapeId !== void 0) {
|
|
193089
|
+
nativeIds.set(node.shapeId, id);
|
|
193090
|
+
}
|
|
193091
|
+
delete node.shapeId;
|
|
193092
|
+
return id;
|
|
193093
|
+
};
|
|
193094
|
+
clone3.id = mintId(clone3);
|
|
193095
|
+
reassignDescendantIds(clone3, mintId);
|
|
193096
|
+
const remapConnections = (node) => {
|
|
193097
|
+
if (node.type === "group") {
|
|
193098
|
+
node.children.forEach(remapConnections);
|
|
193099
|
+
}
|
|
193100
|
+
if (node.type !== "connector") {
|
|
193101
|
+
return;
|
|
193102
|
+
}
|
|
193103
|
+
for (const ref of [
|
|
193104
|
+
node.shapeStyle?.connectorStartConnection,
|
|
193105
|
+
node.shapeStyle?.connectorEndConnection
|
|
193106
|
+
]) {
|
|
193107
|
+
if (!ref?.shapeId) {
|
|
193108
|
+
continue;
|
|
193109
|
+
}
|
|
193110
|
+
ref.shapeId = modelIds.get(ref.shapeId) ?? nativeIds.get(ref.shapeId) ?? ref.shapeId;
|
|
193111
|
+
}
|
|
193112
|
+
};
|
|
193113
|
+
remapConnections(clone3);
|
|
192447
193114
|
clone3.x += options.offsetX ?? PASTE_OFFSET_PX;
|
|
192448
193115
|
clone3.y += options.offsetY ?? PASTE_OFFSET_PX;
|
|
192449
193116
|
return clone3;
|
|
@@ -192684,6 +193351,7 @@ var GUARD_DEFAULTS = {
|
|
|
192684
193351
|
canEdit: true,
|
|
192685
193352
|
isPresenting: false,
|
|
192686
193353
|
hasSelection: false,
|
|
193354
|
+
canPaste: true,
|
|
192687
193355
|
isEditingText: false,
|
|
192688
193356
|
isDrawing: false,
|
|
192689
193357
|
isTextInputTarget: false
|
|
@@ -192741,6 +193409,9 @@ function mapEditorKey(input, guard = {}) {
|
|
|
192741
193409
|
if (mod && !alt) {
|
|
192742
193410
|
const chord2 = resolveChord(key2, Boolean(input.shiftKey), state.hasSelection);
|
|
192743
193411
|
if (chord2) {
|
|
193412
|
+
if (chord2.action === "paste" && state.canPaste === false) {
|
|
193413
|
+
return NO_ACTION;
|
|
193414
|
+
}
|
|
192744
193415
|
return chord2;
|
|
192745
193416
|
}
|
|
192746
193417
|
}
|
|
@@ -193599,8 +194270,8 @@ function applyFindReplacements(slides, toReplace, replacement) {
|
|
|
193599
194270
|
}
|
|
193600
194271
|
const nextSlides = slides.slice();
|
|
193601
194272
|
let totalReplacements = 0;
|
|
193602
|
-
for (const [,
|
|
193603
|
-
const sorted =
|
|
194273
|
+
for (const [, matches2] of grouped) {
|
|
194274
|
+
const sorted = matches2.slice().sort((a, b) => b.startOffset - a.startOffset);
|
|
193604
194275
|
for (const match of sorted) {
|
|
193605
194276
|
const slide = nextSlides[match.slideIndex];
|
|
193606
194277
|
if (!slide) {
|
|
@@ -196051,6 +196722,12 @@ var COMMON_FONTS = [
|
|
|
196051
196722
|
"Tw Cen MT",
|
|
196052
196723
|
"Verdana"
|
|
196053
196724
|
];
|
|
196725
|
+
function prepareElementForInsertion(element, target) {
|
|
196726
|
+
if (!target.canEdit || target.mode !== "edit" || !target.hasActiveSlide || target.editTemplateMode) {
|
|
196727
|
+
return void 0;
|
|
196728
|
+
}
|
|
196729
|
+
return cloneElementForPaste(element, { offsetX: 0, offsetY: 0 });
|
|
196730
|
+
}
|
|
196054
196731
|
function isHeaderFooterDateTextVisible(draft) {
|
|
196055
196732
|
return Boolean(draft.hasDateTime) && !draft.dateTimeAuto;
|
|
196056
196733
|
}
|
|
@@ -199780,10 +200457,15 @@ function resolveSlideSizeRescaleTransform(oldSize, newSize, mode) {
|
|
|
199780
200457
|
};
|
|
199781
200458
|
}
|
|
199782
200459
|
function scaleTextSegment(segment, scale2) {
|
|
199783
|
-
|
|
200460
|
+
const insertion = segment.paragraphInsertionStyle;
|
|
200461
|
+
if (typeof segment.style.fontSize !== "number" && typeof insertion?.fontSize !== "number") {
|
|
199784
200462
|
return segment;
|
|
199785
200463
|
}
|
|
199786
|
-
return {
|
|
200464
|
+
return {
|
|
200465
|
+
...segment,
|
|
200466
|
+
...typeof segment.style.fontSize === "number" ? { style: { ...segment.style, fontSize: segment.style.fontSize * scale2 } } : {},
|
|
200467
|
+
...typeof insertion?.fontSize === "number" ? { paragraphInsertionStyle: { ...insertion, fontSize: insertion.fontSize * scale2 } } : {}
|
|
200468
|
+
};
|
|
199787
200469
|
}
|
|
199788
200470
|
function scaleFontSizesDeep(element, scale2) {
|
|
199789
200471
|
let next = element;
|
|
@@ -200596,6 +201278,50 @@ function wrapForeignObjectSvg(bodyMarkup, tile) {
|
|
|
200596
201278
|
const { viewBoxX, viewBoxY, viewBoxWidth, viewBoxHeight, outputWidth, outputHeight } = tile;
|
|
200597
201279
|
return `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="${outputWidth}" height="${outputHeight}" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}">${bodyMarkup}</svg>`;
|
|
200598
201280
|
}
|
|
201281
|
+
var DEFAULTS2 = {
|
|
201282
|
+
fitPadding: { horizontal: 0, vertical: 0 },
|
|
201283
|
+
maxFitScale: null
|
|
201284
|
+
};
|
|
201285
|
+
function validPadding(value, fallback) {
|
|
201286
|
+
return Number.isFinite(value) && value >= 0 ? value : fallback;
|
|
201287
|
+
}
|
|
201288
|
+
function resolveViewportFitOptions(options = {}, defaults = DEFAULTS2) {
|
|
201289
|
+
const base = typeof defaults.fitPadding === "number" ? { horizontal: defaults.fitPadding, vertical: defaults.fitPadding } : defaults.fitPadding;
|
|
201290
|
+
const padding = options.fitPadding ?? base;
|
|
201291
|
+
const horizontal = typeof padding === "number" ? padding : padding.horizontal;
|
|
201292
|
+
const vertical = typeof padding === "number" ? padding : padding.vertical;
|
|
201293
|
+
const cap = options.maxFitScale;
|
|
201294
|
+
return {
|
|
201295
|
+
fitPadding: {
|
|
201296
|
+
horizontal: validPadding(horizontal, base.horizontal),
|
|
201297
|
+
vertical: validPadding(vertical, base.vertical)
|
|
201298
|
+
},
|
|
201299
|
+
maxFitScale: cap === null ? null : typeof cap === "number" && Number.isFinite(cap) && cap > 0 ? cap : defaults.maxFitScale
|
|
201300
|
+
};
|
|
201301
|
+
}
|
|
201302
|
+
function calculateViewportFit(input, defaults = DEFAULTS2) {
|
|
201303
|
+
const { fitPadding, maxFitScale } = resolveViewportFitOptions(input, defaults);
|
|
201304
|
+
const availableWidth = Math.max(
|
|
201305
|
+
0,
|
|
201306
|
+
validPadding(input.viewportWidth, 0) - 2 * fitPadding.horizontal - validPadding(input.horizontalGutter ?? 0, 0)
|
|
201307
|
+
);
|
|
201308
|
+
const availableHeight = Math.max(
|
|
201309
|
+
0,
|
|
201310
|
+
validPadding(input.viewportHeight, 0) - 2 * fitPadding.vertical - validPadding(input.verticalGutter ?? 0, 0)
|
|
201311
|
+
);
|
|
201312
|
+
const fallback = typeof input.fallbackScale === "number" && Number.isFinite(input.fallbackScale) && input.fallbackScale > 0 ? input.fallbackScale : 1;
|
|
201313
|
+
const validCanvas = Number.isFinite(input.canvasWidth) && input.canvasWidth > 0 && Number.isFinite(input.canvasHeight) && input.canvasHeight > 0;
|
|
201314
|
+
const scale2 = availableWidth > 0 && availableHeight > 0 && validCanvas ? Math.min(
|
|
201315
|
+
availableWidth / input.canvasWidth,
|
|
201316
|
+
availableHeight / input.canvasHeight,
|
|
201317
|
+
maxFitScale ?? Number.POSITIVE_INFINITY
|
|
201318
|
+
) : fallback;
|
|
201319
|
+
return {
|
|
201320
|
+
scale: Number.isFinite(scale2) && scale2 > 0 ? scale2 : fallback,
|
|
201321
|
+
availableWidth,
|
|
201322
|
+
availableHeight
|
|
201323
|
+
};
|
|
201324
|
+
}
|
|
200599
201325
|
var FALLBACK_DOWNLOAD_NAME = "presentation.pptx";
|
|
200600
201326
|
var REVOKE_DELAY_MS = 200;
|
|
200601
201327
|
var OPEN_REVOKE_DELAY_MS = 6e4;
|
|
@@ -202992,4 +203718,4 @@ async function rasterResultToPngBlob(result) {
|
|
|
202992
203718
|
* `<p:extLst>` (optional)
|
|
202993
203719
|
*/
|
|
202994
203720
|
|
|
202995
|
-
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, 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, 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, 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, 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, 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, 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 };
|
|
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 };
|