pptx-react-viewer 3.16.7 → 3.17.1
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 +53 -0
- package/README.md +25 -3
- package/dist/{AiChatPanel-N25STHYW.js → AiChatPanel-GYH43XWW.js} +25 -25
- package/dist/AiChatPanel-GYH43XWW.js.br +0 -0
- package/dist/AiChatPanel-GYH43XWW.js.gz +0 -0
- package/dist/{AiChatPanel-GLDW5OK4.mjs → AiChatPanel-SINEEZBW.mjs} +4 -4
- package/dist/AiChatPanel-SINEEZBW.mjs.br +0 -0
- package/dist/AiChatPanel-SINEEZBW.mjs.gz +0 -0
- package/dist/{Area3DChartScene-5POI5LF7.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-FCHO4SK6.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-M3LLHXAL.mjs → Bar3DChartScene-HWIFFGI3.mjs} +1 -1
- package/dist/Bar3DChartScene-HWIFFGI3.mjs.br +0 -0
- package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-5CY5GRV5.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-77TZRLJY.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-3TP7OUIP.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-QINKUHM2.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-CBETCFMI.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-NFXFVG7R.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-H2DJSHW7.mjs → PieChart3DScene-WD5B6NP3.mjs} +1 -1
- package/dist/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-2IN5YKKE.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-4AGI4O3L.mjs → SurfaceChart3DScene-JZGU6BBD.mjs} +1 -1
- package/dist/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-3FVOKV4E.js → chunk-4SPZ5IZN.js} +1110 -470
- package/dist/chunk-4SPZ5IZN.js.br +0 -0
- package/dist/chunk-4SPZ5IZN.js.gz +0 -0
- package/dist/{chunk-3AJ54EAB.js → chunk-64FUV37N.js} +9 -0
- package/dist/chunk-64FUV37N.js.br +0 -0
- package/dist/{chunk-3AJ54EAB.js.gz → chunk-64FUV37N.js.gz} +0 -0
- package/dist/{chunk-4NSDMKFE.js → chunk-7FBKS7OS.js} +178 -178
- package/dist/chunk-7FBKS7OS.js.br +0 -0
- package/dist/chunk-7FBKS7OS.js.gz +0 -0
- package/dist/{chunk-7ELFYC6K.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-4Q6VIX6M.js → chunk-E55VEC37.js} +557 -504
- package/dist/chunk-E55VEC37.js.br +0 -0
- package/dist/chunk-E55VEC37.js.gz +0 -0
- package/dist/{chunk-SQNEE6AM.js → chunk-IRG7SIUX.js} +1347 -1337
- package/dist/chunk-IRG7SIUX.js.br +0 -0
- package/dist/chunk-IRG7SIUX.js.gz +0 -0
- package/dist/{chunk-I5YSAIL5.mjs → chunk-IXKAIIA2.mjs} +63 -53
- package/dist/chunk-IXKAIIA2.mjs.br +0 -0
- package/dist/chunk-IXKAIIA2.mjs.gz +0 -0
- package/dist/{chunk-TYVSLRC7.js → chunk-KVXB22D3.js} +13 -9
- package/dist/chunk-KVXB22D3.js.br +0 -0
- package/dist/{chunk-TYVSLRC7.js.gz → chunk-KVXB22D3.js.gz} +0 -0
- package/dist/{chunk-HMX3MQR7.mjs → chunk-LAU34UMB.mjs} +9 -1
- package/dist/chunk-LAU34UMB.mjs.br +0 -0
- package/dist/{chunk-HMX3MQR7.mjs.gz → chunk-LAU34UMB.mjs.gz} +0 -0
- package/dist/{chunk-3PUFHKXW.mjs → chunk-OAKDJYYT.mjs} +103 -50
- package/dist/chunk-OAKDJYYT.mjs.br +0 -0
- package/dist/chunk-OAKDJYYT.mjs.gz +0 -0
- package/dist/{chunk-XMD6ZWUO.mjs → chunk-QTGCOL5H.mjs} +1104 -471
- package/dist/chunk-QTGCOL5H.mjs.br +0 -0
- package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
- package/dist/{chunk-B3YVURJB.mjs → chunk-VYSMTC5C.mjs} +2 -2
- package/dist/chunk-VYSMTC5C.mjs.br +0 -0
- package/dist/chunk-VYSMTC5C.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +33 -3
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +38 -3
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{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 +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-GLDW5OK4.mjs.br +0 -0
- package/dist/AiChatPanel-GLDW5OK4.mjs.gz +0 -0
- package/dist/AiChatPanel-N25STHYW.js.br +0 -0
- package/dist/AiChatPanel-N25STHYW.js.gz +0 -0
- package/dist/Area3DChartScene-5POI5LF7.js.br +0 -0
- package/dist/Area3DChartScene-5POI5LF7.js.gz +0 -0
- package/dist/Area3DChartScene-FCHO4SK6.mjs.br +0 -0
- package/dist/Area3DChartScene-FCHO4SK6.mjs.gz +0 -0
- package/dist/Bar3DChartScene-5CY5GRV5.js.br +0 -0
- package/dist/Bar3DChartScene-5CY5GRV5.js.gz +0 -0
- package/dist/Bar3DChartScene-M3LLHXAL.mjs.br +0 -0
- package/dist/Bar3DChartScene-M3LLHXAL.mjs.gz +0 -0
- package/dist/Line3DChartScene-3TP7OUIP.js.br +0 -0
- package/dist/Line3DChartScene-3TP7OUIP.js.gz +0 -0
- package/dist/Line3DChartScene-77TZRLJY.mjs.br +0 -0
- package/dist/Line3DChartScene-77TZRLJY.mjs.gz +0 -0
- package/dist/Model3DScene-CBETCFMI.js.br +0 -0
- package/dist/Model3DScene-CBETCFMI.js.gz +0 -0
- package/dist/Model3DScene-QINKUHM2.mjs.br +0 -0
- package/dist/Model3DScene-QINKUHM2.mjs.gz +0 -0
- package/dist/PieChart3DScene-H2DJSHW7.mjs.br +0 -0
- package/dist/PieChart3DScene-H2DJSHW7.mjs.gz +0 -0
- package/dist/PieChart3DScene-NFXFVG7R.js.br +0 -0
- package/dist/PieChart3DScene-NFXFVG7R.js.gz +0 -0
- package/dist/SurfaceChart3DScene-2IN5YKKE.js.br +0 -0
- package/dist/SurfaceChart3DScene-2IN5YKKE.js.gz +0 -0
- package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.gz +0 -0
- package/dist/chunk-3AJ54EAB.js.br +0 -0
- package/dist/chunk-3FVOKV4E.js.br +0 -0
- package/dist/chunk-3FVOKV4E.js.gz +0 -0
- package/dist/chunk-3PUFHKXW.mjs.br +0 -0
- package/dist/chunk-3PUFHKXW.mjs.gz +0 -0
- package/dist/chunk-4NSDMKFE.js.br +0 -0
- package/dist/chunk-4NSDMKFE.js.gz +0 -0
- package/dist/chunk-4Q6VIX6M.js.br +0 -0
- package/dist/chunk-4Q6VIX6M.js.gz +0 -0
- package/dist/chunk-7ELFYC6K.mjs.br +0 -0
- package/dist/chunk-7ELFYC6K.mjs.gz +0 -0
- package/dist/chunk-B3YVURJB.mjs.br +0 -0
- package/dist/chunk-B3YVURJB.mjs.gz +0 -0
- package/dist/chunk-HMX3MQR7.mjs.br +0 -0
- package/dist/chunk-I5YSAIL5.mjs.br +0 -0
- package/dist/chunk-I5YSAIL5.mjs.gz +0 -0
- package/dist/chunk-SQNEE6AM.js.br +0 -0
- package/dist/chunk-SQNEE6AM.js.gz +0 -0
- package/dist/chunk-TYVSLRC7.js.br +0 -0
- package/dist/chunk-XMD6ZWUO.mjs.br +0 -0
- package/dist/chunk-XMD6ZWUO.mjs.gz +0 -0
|
@@ -7056,6 +7056,7 @@ var init_collaboration_field_schema = __esm({
|
|
|
7056
7056
|
hidden: "scalar",
|
|
7057
7057
|
opacity: "scalar",
|
|
7058
7058
|
rawXml: "complex",
|
|
7059
|
+
inheritedTransform: "complex",
|
|
7059
7060
|
actionClick: "complex",
|
|
7060
7061
|
actionHover: "complex",
|
|
7061
7062
|
locks: "complex",
|
|
@@ -37111,9 +37112,9 @@ function compoundChildIds(role, node, childrenOf) {
|
|
|
37111
37112
|
const children13 = childrenOf.get(node.id) ?? [];
|
|
37112
37113
|
const start = role.presentationOf?.start?.[chIndex] ?? 1;
|
|
37113
37114
|
const count = role.presentationOf?.count?.[chIndex];
|
|
37114
|
-
const
|
|
37115
|
+
const positions2 = positionRange(start, count, 1, children13.length);
|
|
37115
37116
|
const ids = [];
|
|
37116
|
-
for (const position2 of
|
|
37117
|
+
for (const position2 of positions2) {
|
|
37117
37118
|
const child262 = children13[position2 - 1];
|
|
37118
37119
|
if (!child262 || child262.text.trim().length === 0) {
|
|
37119
37120
|
continue;
|
|
@@ -48834,7 +48835,7 @@ function parseValueColors(node, colorParser) {
|
|
|
48834
48835
|
return colors.length > 0 ? colors : void 0;
|
|
48835
48836
|
}
|
|
48836
48837
|
function parseValueColorPositions(node, xmlLookup) {
|
|
48837
|
-
const
|
|
48838
|
+
const positions2 = [];
|
|
48838
48839
|
for (const posNode of xmlLookup.getChildrenArrayByLocalName(node, "pos")) {
|
|
48839
48840
|
const kind = POSITION_KIND_MAP[String(posNode["@_type"] ?? "").trim()];
|
|
48840
48841
|
if (!kind) {
|
|
@@ -48848,9 +48849,9 @@ function parseValueColorPositions(node, xmlLookup) {
|
|
|
48848
48849
|
entry2.value = num;
|
|
48849
48850
|
}
|
|
48850
48851
|
}
|
|
48851
|
-
|
|
48852
|
+
positions2.push(entry2);
|
|
48852
48853
|
}
|
|
48853
|
-
return
|
|
48854
|
+
return positions2.length > 0 ? positions2 : void 0;
|
|
48854
48855
|
}
|
|
48855
48856
|
function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
48856
48857
|
const valueColorsNode = xmlLookup.getChildByLocalName(series, "valueColors");
|
|
@@ -48866,9 +48867,9 @@ function parseCxValueColors(series, xmlLookup, colorParser) {
|
|
|
48866
48867
|
}
|
|
48867
48868
|
}
|
|
48868
48869
|
if (valueColorPositionsNode) {
|
|
48869
|
-
const
|
|
48870
|
-
if (
|
|
48871
|
-
result.valueColorPositions =
|
|
48870
|
+
const positions2 = parseValueColorPositions(valueColorPositionsNode, xmlLookup);
|
|
48871
|
+
if (positions2) {
|
|
48872
|
+
result.valueColorPositions = positions2;
|
|
48872
48873
|
}
|
|
48873
48874
|
}
|
|
48874
48875
|
return Object.keys(result).length > 0 ? result : void 0;
|
|
@@ -63577,15 +63578,48 @@ var init_group_tight_rewrap = __esm({
|
|
|
63577
63578
|
init_group_tight_rewrap_own_box();
|
|
63578
63579
|
}
|
|
63579
63580
|
});
|
|
63581
|
+
function materializeInheritedShapeTransform(shape, element) {
|
|
63582
|
+
const baseline = element.inheritedTransform;
|
|
63583
|
+
const envelope = element.type === "text" || element.type === "shape" ? "p:nvSpPr" : element.type === "picture" || element.type === "media" ? "p:nvPicPr" : void 0;
|
|
63584
|
+
if (!baseline || !envelope || !xmlChild(shape, envelope)) {
|
|
63585
|
+
return void 0;
|
|
63586
|
+
}
|
|
63587
|
+
if (["x", "y", "width", "height"].some(
|
|
63588
|
+
(key2) => !Number.isFinite(element[key2]) || !Number.isFinite(baseline[key2])
|
|
63589
|
+
) || NUMERIC_KEYS.some(
|
|
63590
|
+
(key2) => !Number.isFinite(element[key2] ?? 0) || !Number.isFinite(baseline[key2] ?? 0)
|
|
63591
|
+
) || element.width < 0 || element.height < 0 || baseline.width < 0 || baseline.height < 0) {
|
|
63592
|
+
return void 0;
|
|
63593
|
+
}
|
|
63594
|
+
const changed = NUMERIC_KEYS.some((key2) => (element[key2] ?? 0) !== (baseline[key2] ?? 0)) || Boolean(element.flipHorizontal) !== Boolean(baseline.flipHorizontal) || Boolean(element.flipVertical) !== Boolean(baseline.flipVertical);
|
|
63595
|
+
if (!changed) {
|
|
63596
|
+
return void 0;
|
|
63597
|
+
}
|
|
63598
|
+
const transform6 = {};
|
|
63599
|
+
const properties = { ...xmlChild(shape, "p:spPr") };
|
|
63600
|
+
delete properties["a:xfrm"];
|
|
63601
|
+
shape["p:spPr"] = { "a:xfrm": transform6, ...properties };
|
|
63602
|
+
return transform6;
|
|
63603
|
+
}
|
|
63604
|
+
var NUMERIC_KEYS;
|
|
63605
|
+
var init_inherited_shape_transform = __esm({
|
|
63606
|
+
"src/core/core/builders/inherited-shape-transform.ts"() {
|
|
63607
|
+
init_xml_access();
|
|
63608
|
+
NUMERIC_KEYS = ["x", "y", "width", "height", "rotation", "skewX", "skewY"];
|
|
63609
|
+
}
|
|
63610
|
+
});
|
|
63580
63611
|
var PptxElementTransformUpdater;
|
|
63581
63612
|
var init_PptxElementTransformUpdater = __esm({
|
|
63582
63613
|
"src/core/core/builders/PptxElementTransformUpdater.ts"() {
|
|
63583
63614
|
init_rotated_resize_anchor();
|
|
63584
63615
|
init_xfrm_emu_resolution();
|
|
63616
|
+
init_xml_access();
|
|
63585
63617
|
init_group_tight_rewrap();
|
|
63618
|
+
init_inherited_shape_transform();
|
|
63586
63619
|
PptxElementTransformUpdater = class {
|
|
63587
63620
|
applyTransform(shape, element, emuPerPx, enclosingGroupChildSpace) {
|
|
63588
|
-
const transform6 = shape["p:spPr"]?.["a:xfrm"] || shape["p:xfrm"]
|
|
63621
|
+
const transform6 = shape["p:spPr"]?.["a:xfrm"] || shape["p:xfrm"] || // A group's child geometry uses a different frame from the load-time baseline.
|
|
63622
|
+
!enclosingGroupChildSpace && materializeInheritedShapeTransform(shape, element);
|
|
63589
63623
|
if (!transform6) {
|
|
63590
63624
|
return;
|
|
63591
63625
|
}
|
|
@@ -63606,8 +63640,9 @@ var init_PptxElementTransformUpdater = __esm({
|
|
|
63606
63640
|
} else {
|
|
63607
63641
|
const naiveOffX = resolveXfrmEmu(element.x, element.xEmu, emuPerPx);
|
|
63608
63642
|
const naiveOffY = resolveXfrmEmu(element.y, element.yEmu, emuPerPx);
|
|
63643
|
+
const rotationChanged = element.inheritedTransform !== void 0 && (element.inheritedTransform.rotation ?? 0) !== (element.rotation ?? 0);
|
|
63609
63644
|
const rotatedResize = resolveRotatedResizeOffset({
|
|
63610
|
-
rotationDeg: element.rotation,
|
|
63645
|
+
rotationDeg: rotationChanged ? void 0 : element.rotation,
|
|
63611
63646
|
oldOffXEmu: element.xEmu,
|
|
63612
63647
|
oldOffYEmu: element.yEmu,
|
|
63613
63648
|
oldExtWidthEmu: element.widthEmu,
|
|
@@ -63633,14 +63668,20 @@ var init_PptxElementTransformUpdater = __esm({
|
|
|
63633
63668
|
if (element.skewY !== void 0) {
|
|
63634
63669
|
transform6["@_skewY"] = String(Math.round(element.skewY * 6e4));
|
|
63635
63670
|
}
|
|
63671
|
+
const nonVisual = xmlChild(shape, "p:nvSpPr") ?? xmlChild(shape, "p:nvPicPr");
|
|
63672
|
+
const isPlaceholder = xmlHasChild(xmlChild(nonVisual, "p:nvPr"), "p:ph");
|
|
63636
63673
|
if (element.flipHorizontal) {
|
|
63637
63674
|
transform6["@_flipH"] = "1";
|
|
63638
|
-
} else {
|
|
63675
|
+
} else if (element.inheritedTransform?.flipHorizontal || isPlaceholder && transform6["@_flipH"] !== void 0 && transform6["@_flipH"] !== "false") {
|
|
63676
|
+
transform6["@_flipH"] = "0";
|
|
63677
|
+
} else if (transform6["@_flipH"] !== "0" && transform6["@_flipH"] !== "false") {
|
|
63639
63678
|
delete transform6["@_flipH"];
|
|
63640
63679
|
}
|
|
63641
63680
|
if (element.flipVertical) {
|
|
63642
63681
|
transform6["@_flipV"] = "1";
|
|
63643
|
-
} else {
|
|
63682
|
+
} else if (element.inheritedTransform?.flipVertical || isPlaceholder && transform6["@_flipV"] !== void 0 && transform6["@_flipV"] !== "false") {
|
|
63683
|
+
transform6["@_flipV"] = "0";
|
|
63684
|
+
} else if (transform6["@_flipV"] !== "0" && transform6["@_flipV"] !== "false") {
|
|
63644
63685
|
delete transform6["@_flipV"];
|
|
63645
63686
|
}
|
|
63646
63687
|
}
|
|
@@ -74208,45 +74249,40 @@ var init_PptxEditorAnimationService = __esm({
|
|
|
74208
74249
|
};
|
|
74209
74250
|
}
|
|
74210
74251
|
});
|
|
74211
|
-
function
|
|
74212
|
-
|
|
74213
|
-
|
|
74214
|
-
|
|
74215
|
-
|
|
74216
|
-
|
|
74217
|
-
|
|
74218
|
-
|
|
74219
|
-
|
|
74220
|
-
let max = 0;
|
|
74221
|
-
for (const el of elements2) {
|
|
74222
|
-
if (el.shapeId !== void 0) {
|
|
74223
|
-
const n = Number.parseInt(el.shapeId, 10);
|
|
74224
|
-
if (Number.isFinite(n) && n > max) {
|
|
74225
|
-
max = n;
|
|
74252
|
+
function createShapeIdResolver(elements2, reservedMaxId = 0) {
|
|
74253
|
+
const byId = /* @__PURE__ */ new Map();
|
|
74254
|
+
let maxId = reservedMaxId;
|
|
74255
|
+
const visit = (element) => {
|
|
74256
|
+
byId.set(element.id, element);
|
|
74257
|
+
if (element.shapeId !== void 0) {
|
|
74258
|
+
const value = Number.parseInt(element.shapeId, 10);
|
|
74259
|
+
if (Number.isFinite(value)) {
|
|
74260
|
+
maxId = Math.max(maxId, value);
|
|
74226
74261
|
}
|
|
74227
74262
|
}
|
|
74228
|
-
|
|
74229
|
-
|
|
74230
|
-
}
|
|
74231
|
-
|
|
74232
|
-
|
|
74233
|
-
|
|
74234
|
-
|
|
74235
|
-
|
|
74236
|
-
byId.set(el.id, el);
|
|
74237
|
-
}
|
|
74238
|
-
let nextId2 = Math.max(maxShapeId(flat), reservedMaxId) + 1;
|
|
74239
|
-
const resolve2 = (elementId) => {
|
|
74240
|
-
const el = byId.get(elementId);
|
|
74241
|
-
if (!el) {
|
|
74263
|
+
if (element.type === "group") {
|
|
74264
|
+
element.children.forEach(visit);
|
|
74265
|
+
}
|
|
74266
|
+
};
|
|
74267
|
+
elements2.forEach(visit);
|
|
74268
|
+
return (elementId) => {
|
|
74269
|
+
const element = byId.get(elementId);
|
|
74270
|
+
if (!element) {
|
|
74242
74271
|
return void 0;
|
|
74243
74272
|
}
|
|
74244
|
-
if (
|
|
74245
|
-
|
|
74246
|
-
|
|
74273
|
+
if (element.shapeId === void 0) {
|
|
74274
|
+
maxId += 1;
|
|
74275
|
+
element.shapeId = String(maxId);
|
|
74247
74276
|
}
|
|
74248
|
-
return
|
|
74277
|
+
return element.shapeId;
|
|
74249
74278
|
};
|
|
74279
|
+
}
|
|
74280
|
+
var init_shape_id_resolver = __esm({
|
|
74281
|
+
"src/core/services/shape-id-resolver.ts"() {
|
|
74282
|
+
}
|
|
74283
|
+
});
|
|
74284
|
+
function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId = 0) {
|
|
74285
|
+
const resolve2 = createShapeIdResolver(elements2, reservedMaxId);
|
|
74250
74286
|
return animations.map((anim) => {
|
|
74251
74287
|
const resolvedElement = resolve2(anim.elementId);
|
|
74252
74288
|
const resolvedTrigger = anim.triggerShapeId !== void 0 ? resolve2(anim.triggerShapeId) : void 0;
|
|
@@ -74262,6 +74298,67 @@ function remapEditorAnimationsToShapeIds(elements2, animations, reservedMaxId =
|
|
|
74262
74298
|
}
|
|
74263
74299
|
var init_animation_shape_id_assign = __esm({
|
|
74264
74300
|
"src/core/services/animation-shape-id-assign.ts"() {
|
|
74301
|
+
init_shape_id_resolver();
|
|
74302
|
+
}
|
|
74303
|
+
});
|
|
74304
|
+
function resolveConnectorShapeIds(elements2, reservedMaxId) {
|
|
74305
|
+
const resolve2 = createShapeIdResolver(elements2, reservedMaxId);
|
|
74306
|
+
const result = /* @__PURE__ */ new Map();
|
|
74307
|
+
const visit = (element) => {
|
|
74308
|
+
const nativeId = resolve2(element.id);
|
|
74309
|
+
if (nativeId !== void 0) {
|
|
74310
|
+
result.set(element.id, nativeId);
|
|
74311
|
+
}
|
|
74312
|
+
if (element.type === "group") {
|
|
74313
|
+
element.children.forEach(visit);
|
|
74314
|
+
}
|
|
74315
|
+
};
|
|
74316
|
+
elements2.forEach(visit);
|
|
74317
|
+
return result;
|
|
74318
|
+
}
|
|
74319
|
+
function applyConnectorShapeIds(shape, element, nativeIds) {
|
|
74320
|
+
if (element.type !== "connector" || !element.shapeStyle) {
|
|
74321
|
+
return;
|
|
74322
|
+
}
|
|
74323
|
+
const nv = xmlChild(shape, "p:nvCxnSpPr");
|
|
74324
|
+
if (!nv) {
|
|
74325
|
+
return;
|
|
74326
|
+
}
|
|
74327
|
+
const connections = xmlChild(nv, "p:cNvCxnSpPr") ?? {};
|
|
74328
|
+
for (const [tag, reference] of [
|
|
74329
|
+
["a:stCxn", element.shapeStyle.connectorStartConnection],
|
|
74330
|
+
["a:endCxn", element.shapeStyle.connectorEndConnection]
|
|
74331
|
+
]) {
|
|
74332
|
+
if (!reference?.shapeId) {
|
|
74333
|
+
continue;
|
|
74334
|
+
}
|
|
74335
|
+
const nativeId = nativeIds.get(reference.shapeId) ?? (/^\d+$/.test(reference.shapeId) ? reference.shapeId : void 0);
|
|
74336
|
+
if (nativeId === void 0) {
|
|
74337
|
+
if (!element.rawXml) {
|
|
74338
|
+
delete connections[tag];
|
|
74339
|
+
}
|
|
74340
|
+
continue;
|
|
74341
|
+
}
|
|
74342
|
+
connections[tag] = {
|
|
74343
|
+
...xmlChild(connections, tag),
|
|
74344
|
+
"@_id": nativeId,
|
|
74345
|
+
"@_idx": String(reference.connectionSiteIndex ?? 0)
|
|
74346
|
+
};
|
|
74347
|
+
}
|
|
74348
|
+
if (Object.keys(connections).length > 0) {
|
|
74349
|
+
nv["p:cNvCxnSpPr"] = reorderObjectKeys(connections, [
|
|
74350
|
+
"a:cxnSpLocks",
|
|
74351
|
+
"a:stCxn",
|
|
74352
|
+
"a:endCxn",
|
|
74353
|
+
"a:extLst"
|
|
74354
|
+
]);
|
|
74355
|
+
}
|
|
74356
|
+
}
|
|
74357
|
+
var init_connector_shape_id_assign = __esm({
|
|
74358
|
+
"src/core/services/connector-shape-id-assign.ts"() {
|
|
74359
|
+
init_xml_access();
|
|
74360
|
+
init_xml_reorder();
|
|
74361
|
+
init_shape_id_resolver();
|
|
74265
74362
|
}
|
|
74266
74363
|
});
|
|
74267
74364
|
function createGroupContext() {
|
|
@@ -77600,6 +77697,7 @@ var init_services = __esm({
|
|
|
77600
77697
|
init_PptxEditorAnimationService();
|
|
77601
77698
|
init_animation_target_reconcile();
|
|
77602
77699
|
init_animation_shape_id_assign();
|
|
77700
|
+
init_connector_shape_id_assign();
|
|
77603
77701
|
init_animation_sound_merge();
|
|
77604
77702
|
init_PptxNativeAnimationService();
|
|
77605
77703
|
init_PptxSlideTransitionService();
|
|
@@ -83816,10 +83914,10 @@ function buildFbse(picture, foDelay, size) {
|
|
|
83816
83914
|
function buildDgg(shapesPerDrawing, totalShapes) {
|
|
83817
83915
|
const drawingCount = shapesPerDrawing.length;
|
|
83818
83916
|
const lastDrawingShapeCount = shapesPerDrawing[drawingCount - 1] ?? 0;
|
|
83819
|
-
const
|
|
83917
|
+
const maxShapeId = drawingCount * SHAPE_ID_CLUSTER_SIZE + lastDrawingShapeCount;
|
|
83820
83918
|
const cidcl = drawingCount + 1;
|
|
83821
83919
|
const cspSaved = totalShapes - drawingCount;
|
|
83822
|
-
const w = new ByteWriter().u32(
|
|
83920
|
+
const w = new ByteWriter().u32(maxShapeId).u32(cidcl).u32(cspSaved).u32(drawingCount);
|
|
83823
83921
|
shapesPerDrawing.forEach((count, i2) => {
|
|
83824
83922
|
const drawingId = i2 + 1;
|
|
83825
83923
|
w.u32(drawingId).u32(count);
|
|
@@ -91993,6 +92091,51 @@ var init_notes_paragraph_scoped_xml = __esm({
|
|
|
91993
92091
|
DEFAULT_END_PARA_RPR = { "@_lang": "en-US" };
|
|
91994
92092
|
}
|
|
91995
92093
|
});
|
|
92094
|
+
function updateEndParagraphProperties(existing, style, serialize) {
|
|
92095
|
+
if (!style?.inheritedRunStyle) {
|
|
92096
|
+
return existing;
|
|
92097
|
+
}
|
|
92098
|
+
const baseline = serialize({ ...style, ...style.inheritedRunStyle, ...style.authoredRunStyle });
|
|
92099
|
+
const current = serialize(style);
|
|
92100
|
+
const attributes = {};
|
|
92101
|
+
const children13 = /* @__PURE__ */ new Map();
|
|
92102
|
+
for (const key2 of /* @__PURE__ */ new Set([...Object.keys(baseline), ...Object.keys(current)])) {
|
|
92103
|
+
if (JSON.stringify(baseline[key2]) === JSON.stringify(current[key2])) {
|
|
92104
|
+
continue;
|
|
92105
|
+
}
|
|
92106
|
+
if (key2.startsWith("@_")) {
|
|
92107
|
+
attributes[key2.slice(2)] = current[key2] === void 0 ? null : String(current[key2]);
|
|
92108
|
+
} else {
|
|
92109
|
+
children13.set(key2, current[key2] ?? null);
|
|
92110
|
+
}
|
|
92111
|
+
}
|
|
92112
|
+
if (Object.keys(attributes).length === 0 && children13.size === 0) {
|
|
92113
|
+
return existing;
|
|
92114
|
+
}
|
|
92115
|
+
const fillKeys = [
|
|
92116
|
+
"a:noFill",
|
|
92117
|
+
"a:solidFill",
|
|
92118
|
+
"a:gradFill",
|
|
92119
|
+
"a:blipFill",
|
|
92120
|
+
"a:pattFill",
|
|
92121
|
+
"a:grpFill"
|
|
92122
|
+
];
|
|
92123
|
+
const changedFill = fillKeys.find((key2) => children13.get(key2));
|
|
92124
|
+
if (changedFill) {
|
|
92125
|
+
for (const key2 of fillKeys) {
|
|
92126
|
+
if (key2 !== changedFill) {
|
|
92127
|
+
children13.set(key2, null);
|
|
92128
|
+
}
|
|
92129
|
+
}
|
|
92130
|
+
}
|
|
92131
|
+
return mergeOrderedXml(existing, attributes, children13, DEF_RPR_CHILD_ORDER);
|
|
92132
|
+
}
|
|
92133
|
+
var init_paragraph_insertion_style = __esm({
|
|
92134
|
+
"src/core/core/runtime/paragraph-insertion-style.ts"() {
|
|
92135
|
+
init_ordered_xml_merge();
|
|
92136
|
+
init_placeholder_level_style_serializer();
|
|
92137
|
+
}
|
|
92138
|
+
});
|
|
91996
92139
|
function stripMarker(run, marker) {
|
|
91997
92140
|
const { [marker]: _drop, ...rest } = run;
|
|
91998
92141
|
return rest;
|
|
@@ -96991,15 +97134,19 @@ var PptxHandlerRuntime13;
|
|
|
96991
97134
|
var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
96992
97135
|
"src/core/core/runtime/PptxHandlerRuntimeSaveParagraphs.ts"() {
|
|
96993
97136
|
init_auto_number_format();
|
|
97137
|
+
init_paragraph_insertion_style();
|
|
96994
97138
|
init_PptxHandlerRuntimeSaveParagraphHelpers();
|
|
96995
97139
|
init_PptxHandlerRuntimeSaveRunProperties();
|
|
96996
97140
|
init_run_scoped_text_style();
|
|
96997
97141
|
PptxHandlerRuntime13 = class extends PptxHandlerRuntime12 {
|
|
96998
97142
|
isRenderedBulletMarker(segment) {
|
|
96999
97143
|
const bullet = segment.bulletInfo;
|
|
97000
|
-
if (!bullet) {
|
|
97144
|
+
if (!bullet || bullet.none) {
|
|
97001
97145
|
return false;
|
|
97002
97146
|
}
|
|
97147
|
+
if (segment.text === "" && (bullet.imageRelId || bullet.imageDataUrl) && !segment.fieldType && !segment.equationXml && segment.rubyText === void 0) {
|
|
97148
|
+
return true;
|
|
97149
|
+
}
|
|
97003
97150
|
if (bullet.autoNumType) {
|
|
97004
97151
|
if (bullet.paragraphIndex === void 0) {
|
|
97005
97152
|
return false;
|
|
@@ -97133,6 +97280,11 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97133
97280
|
if (segment.endParaRunProperties) {
|
|
97134
97281
|
currentEndParaRunProperties = segment.endParaRunProperties;
|
|
97135
97282
|
}
|
|
97283
|
+
currentEndParaRunProperties = updateEndParagraphProperties(
|
|
97284
|
+
currentEndParaRunProperties,
|
|
97285
|
+
segment.paragraphInsertionStyle,
|
|
97286
|
+
(style) => this.createRunPropertiesFromTextStyle(style, resolveHyperlinkRelationshipId)
|
|
97287
|
+
);
|
|
97136
97288
|
if (segment.paragraphProperties) {
|
|
97137
97289
|
currentParagraphProperties = segment.paragraphProperties;
|
|
97138
97290
|
}
|
|
@@ -97163,7 +97315,10 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97163
97315
|
currentRuns.push(eqNode);
|
|
97164
97316
|
return;
|
|
97165
97317
|
}
|
|
97166
|
-
const segmentText2 = String(segment.text ?? "");
|
|
97318
|
+
const segmentText2 = segment.isParagraphBreak ? "\n" : String(segment.text ?? "");
|
|
97319
|
+
if (segmentText2 === "" && segment.paragraphInsertionStyle && !segment.fieldType && segment.rubyText === void 0) {
|
|
97320
|
+
return;
|
|
97321
|
+
}
|
|
97167
97322
|
const lineParts = segmentText2.split("\n");
|
|
97168
97323
|
const isSplitProduct = lineParts.length > 1;
|
|
97169
97324
|
lineParts.forEach((linePart, lineIndex) => {
|
|
@@ -97195,7 +97350,7 @@ var init_PptxHandlerRuntimeSaveParagraphs = __esm({
|
|
|
97195
97350
|
}
|
|
97196
97351
|
});
|
|
97197
97352
|
});
|
|
97198
|
-
if (currentRuns.length > 0 || paragraphs.length === 0) {
|
|
97353
|
+
if (currentRuns.length > 0 || paragraphs.length === 0 || capturedParagraphMeta) {
|
|
97199
97354
|
pushParagraph();
|
|
97200
97355
|
}
|
|
97201
97356
|
return paragraphs;
|
|
@@ -97427,17 +97582,20 @@ function classifyGroupChildTag(elementType, xml) {
|
|
|
97427
97582
|
function cloneXmlNode(node) {
|
|
97428
97583
|
return JSON.parse(JSON.stringify(node));
|
|
97429
97584
|
}
|
|
97430
|
-
function buildGroupNonVisualXml(rawGroupXml, modelName, fallbackName) {
|
|
97585
|
+
function buildGroupNonVisualXml(rawGroupXml, modelName, fallbackName, modelShapeId) {
|
|
97431
97586
|
const rawNv = rawGroupXml?.["p:nvGrpSpPr"];
|
|
97432
97587
|
if (!rawNv) {
|
|
97433
97588
|
return {
|
|
97434
|
-
"p:cNvPr": { "@_id": "0", "@_name": modelName ?? fallbackName },
|
|
97589
|
+
"p:cNvPr": { "@_id": modelShapeId ?? "0", "@_name": modelName ?? fallbackName },
|
|
97435
97590
|
"p:cNvGrpSpPr": {},
|
|
97436
97591
|
"p:nvPr": {}
|
|
97437
97592
|
};
|
|
97438
97593
|
}
|
|
97439
97594
|
const nv = cloneXmlNode(rawNv);
|
|
97440
97595
|
const cNvPr = nv["p:cNvPr"] ?? {};
|
|
97596
|
+
if (modelShapeId !== void 0) {
|
|
97597
|
+
cNvPr["@_id"] = modelShapeId;
|
|
97598
|
+
}
|
|
97441
97599
|
if (typeof cNvPr["@_id"] !== "string" || cNvPr["@_id"].length === 0) {
|
|
97442
97600
|
cNvPr["@_id"] = "0";
|
|
97443
97601
|
}
|
|
@@ -97976,7 +98134,10 @@ var init_PptxHandlerRuntimeSaveShapeXml = __esm({
|
|
|
97976
98134
|
*/
|
|
97977
98135
|
buildGroupShapeXml(group2, ctx, ownEmuOverride) {
|
|
97978
98136
|
if (group2.rawXml && group2.children.length === 0) {
|
|
97979
|
-
return
|
|
98137
|
+
return {
|
|
98138
|
+
...group2.rawXml,
|
|
98139
|
+
"p:nvGrpSpPr": buildGroupNonVisualXml(group2.rawXml, group2.name, group2.id, group2.shapeId)
|
|
98140
|
+
};
|
|
97980
98141
|
}
|
|
97981
98142
|
const EMU = _PptxHandlerRuntime.EMU_PER_PX;
|
|
97982
98143
|
const rawGroupXml = group2.rawXml;
|
|
@@ -97984,7 +98145,7 @@ var init_PptxHandlerRuntimeSaveShapeXml = __esm({
|
|
|
97984
98145
|
const xfrm = buildGroupTransformXml(group2, EMU, ownEmuOverride, rewrap);
|
|
97985
98146
|
const childSpace = group2;
|
|
97986
98147
|
const grpXml2 = {
|
|
97987
|
-
"p:nvGrpSpPr": buildGroupNonVisualXml(rawGroupXml, group2.name, group2.id),
|
|
98148
|
+
"p:nvGrpSpPr": buildGroupNonVisualXml(rawGroupXml, group2.name, group2.id, group2.shapeId),
|
|
97988
98149
|
"p:grpSpPr": buildGroupPropertiesXml(rawGroupXml, xfrm)
|
|
97989
98150
|
};
|
|
97990
98151
|
const rawExtLst = rawGroupXml?.["p:extLst"];
|
|
@@ -106819,6 +106980,7 @@ var init_template_group_node = __esm({
|
|
|
106819
106980
|
var PptxHandlerRuntime41;
|
|
106820
106981
|
var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
106821
106982
|
"src/core/core/runtime/PptxHandlerRuntimeSaveElementWriter.ts"() {
|
|
106983
|
+
init_services();
|
|
106822
106984
|
init_types();
|
|
106823
106985
|
init_chart_color_style_writer();
|
|
106824
106986
|
init_chart_cx_generator();
|
|
@@ -107351,6 +107513,9 @@ var init_PptxHandlerRuntimeSaveElementWriter = __esm({
|
|
|
107351
107513
|
);
|
|
107352
107514
|
}
|
|
107353
107515
|
this.applyDataSerialization(shape, el, ctx.slide.id);
|
|
107516
|
+
if (ctx.connectorShapeIds) {
|
|
107517
|
+
applyConnectorShapeIds(shape, el, ctx.connectorShapeIds);
|
|
107518
|
+
}
|
|
107354
107519
|
this.serializeElementActions(shape, el, ctx.resolveHyperlinkRelationshipId);
|
|
107355
107520
|
this.serializeShapeLocks(shape, el);
|
|
107356
107521
|
this.applyHiddenToCnvPr(shape, el);
|
|
@@ -108289,6 +108454,7 @@ var init_PptxHandlerRuntimeSaveSlideWriter = __esm({
|
|
|
108289
108454
|
zooms: []
|
|
108290
108455
|
};
|
|
108291
108456
|
const ctx = {
|
|
108457
|
+
connectorShapeIds: resolveConnectorShapeIds(slide.elements, this.maxCnvPrId(spTree)),
|
|
108292
108458
|
slide,
|
|
108293
108459
|
slideRelationships,
|
|
108294
108460
|
slideRelationshipRegistry,
|
|
@@ -109086,7 +109252,7 @@ function asObjects3(value) {
|
|
|
109086
109252
|
return isXmlObject9(value) ? [value] : [];
|
|
109087
109253
|
}
|
|
109088
109254
|
function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf) {
|
|
109089
|
-
const
|
|
109255
|
+
const positions2 = /* @__PURE__ */ new Map();
|
|
109090
109256
|
for (const [key2, value] of Object.entries(spTree)) {
|
|
109091
109257
|
if (!SHAPE_TREE_ELEMENT_TAGS.has(key2) && key2 !== ALTERNATE_CONTENT_TAG3) {
|
|
109092
109258
|
continue;
|
|
@@ -109094,7 +109260,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109094
109260
|
for (const node of asObjects3(value)) {
|
|
109095
109261
|
const position2 = positionOf(node);
|
|
109096
109262
|
if (position2 !== void 0) {
|
|
109097
|
-
|
|
109263
|
+
positions2.set(node, position2);
|
|
109098
109264
|
}
|
|
109099
109265
|
}
|
|
109100
109266
|
}
|
|
@@ -109103,7 +109269,7 @@ function rememberTemplateSpTreePositions(runtime, partPath, spTree, positionOf)
|
|
|
109103
109269
|
byPart = /* @__PURE__ */ new Map();
|
|
109104
109270
|
positionsByRuntime.set(runtime, byPart);
|
|
109105
109271
|
}
|
|
109106
|
-
byPart.set(partPath,
|
|
109272
|
+
byPart.set(partPath, positions2);
|
|
109107
109273
|
}
|
|
109108
109274
|
function withReplacedChild(container, tag, indexInType, replacement) {
|
|
109109
109275
|
const existing = container[tag];
|
|
@@ -109132,17 +109298,17 @@ function orderContainer(container, plan, getLocalName2) {
|
|
|
109132
109298
|
working = withReplacedChild(working, entry2.tag, entry2.indexInType, ordered4);
|
|
109133
109299
|
}
|
|
109134
109300
|
}
|
|
109135
|
-
const
|
|
109301
|
+
const positions2 = /* @__PURE__ */ new Map();
|
|
109136
109302
|
plan.forEach((entry2, position2) => {
|
|
109137
109303
|
const node = asObjects3(working[entry2.tag])[entry2.indexInType];
|
|
109138
|
-
if (node && !
|
|
109139
|
-
|
|
109304
|
+
if (node && !positions2.has(node)) {
|
|
109305
|
+
positions2.set(node, position2);
|
|
109140
109306
|
}
|
|
109141
109307
|
});
|
|
109142
|
-
if (
|
|
109308
|
+
if (positions2.size === 0) {
|
|
109143
109309
|
return working;
|
|
109144
109310
|
}
|
|
109145
|
-
return orderShapeTreeChildren(working, (node) =>
|
|
109311
|
+
return orderShapeTreeChildren(working, (node) => positions2.get(node), getLocalName2);
|
|
109146
109312
|
}
|
|
109147
109313
|
function orderedTemplatePartXml(options) {
|
|
109148
109314
|
const {
|
|
@@ -109194,6 +109360,7 @@ var shapeIdValidator2;
|
|
|
109194
109360
|
var PptxHandlerRuntime46;
|
|
109195
109361
|
var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
109196
109362
|
"src/core/core/runtime/PptxHandlerRuntimeSaveMasterElements.ts"() {
|
|
109363
|
+
init_services();
|
|
109197
109364
|
init_builders();
|
|
109198
109365
|
init_auxiliary_master_node_cache();
|
|
109199
109366
|
init_master_part_element_signature();
|
|
@@ -109283,6 +109450,7 @@ var init_PptxHandlerRuntimeSaveMasterElements = __esm({
|
|
|
109283
109450
|
elements: elements2
|
|
109284
109451
|
};
|
|
109285
109452
|
const ctx = {
|
|
109453
|
+
connectorShapeIds: resolveConnectorShapeIds(elements2, this.maxCnvPrId(spTree)),
|
|
109286
109454
|
slide,
|
|
109287
109455
|
slideRelationships: relationships,
|
|
109288
109456
|
slideRelationshipRegistry: relationshipRegistry,
|
|
@@ -113274,6 +113442,15 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
113274
113442
|
...endParaRPrRaw
|
|
113275
113443
|
};
|
|
113276
113444
|
}
|
|
113445
|
+
if (entries.length === 0) {
|
|
113446
|
+
segments[firstSegmentIndex].paragraphInsertionStyle = withAuthoredSplit(
|
|
113447
|
+
endParaRPrRaw && typeof endParaRPrRaw === "object" ? this.extractTextRunStyle(
|
|
113448
|
+
endParaRPrRaw,
|
|
113449
|
+
paraAlign,
|
|
113450
|
+
ctx.slideRelationshipMap
|
|
113451
|
+
) : {}
|
|
113452
|
+
);
|
|
113453
|
+
}
|
|
113277
113454
|
const basisFontSize = typeof mergedDefaultRunStyle.fontSize === "number" ? mergedDefaultRunStyle.fontSize : void 0;
|
|
113278
113455
|
const paragraphOwnProps = this.extractParagraphOwnProperties(p, basisFontSize);
|
|
113279
113456
|
if (paragraphOwnProps) {
|
|
@@ -113693,6 +113870,7 @@ var init_PptxHandlerRuntimeShapeParsing = __esm({
|
|
|
113693
113870
|
skewY,
|
|
113694
113871
|
flipHorizontal,
|
|
113695
113872
|
flipVertical,
|
|
113873
|
+
inheritedTransform: !spPr?.["a:xfrm"] && xfrm && off && ext ? { x, y, width, height, rotation, skewX, skewY, flipHorizontal, flipVertical } : void 0,
|
|
113696
113874
|
actionClick,
|
|
113697
113875
|
actionHover,
|
|
113698
113876
|
locks,
|
|
@@ -113781,6 +113959,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
113781
113959
|
const skewX = xfrm["@_skewX"] ? parseEmuInt2(xfrm["@_skewX"]) / 6e4 : void 0;
|
|
113782
113960
|
const skewY = xfrm["@_skewY"] ? parseEmuInt2(xfrm["@_skewY"]) / 6e4 : void 0;
|
|
113783
113961
|
const { flipHorizontal, flipVertical } = this.readFlipState(xfrm);
|
|
113962
|
+
const inheritedTransform = !spPr?.["a:xfrm"] && off && ext ? { x, y, width, height, rotation, skewX, skewY, flipHorizontal, flipVertical } : void 0;
|
|
113784
113963
|
const nvPr = pic?.["p:nvPicPr"]?.["p:nvPr"];
|
|
113785
113964
|
const mediaReference = parseDrawingMediaReference(nvPr, this.externalRelsMap.get(slidePath));
|
|
113786
113965
|
if (mediaReference) {
|
|
@@ -113841,6 +114020,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
113841
114020
|
return {
|
|
113842
114021
|
id,
|
|
113843
114022
|
type: "media",
|
|
114023
|
+
inheritedTransform,
|
|
113844
114024
|
x,
|
|
113845
114025
|
y,
|
|
113846
114026
|
width,
|
|
@@ -114049,6 +114229,7 @@ var init_PptxHandlerRuntimePictureParsing = __esm({
|
|
|
114049
114229
|
id,
|
|
114050
114230
|
name: picElementName || void 0,
|
|
114051
114231
|
type: "picture",
|
|
114232
|
+
inheritedTransform,
|
|
114052
114233
|
x,
|
|
114053
114234
|
y,
|
|
114054
114235
|
width,
|
|
@@ -116385,6 +116566,7 @@ var init_PptxHandlerRuntimeMasterElements = __esm({
|
|
|
116385
116566
|
var PptxHandlerRuntime77;
|
|
116386
116567
|
var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
116387
116568
|
"src/core/core/runtime/PptxHandlerRuntimeAuxiliaryMasterElements.ts"() {
|
|
116569
|
+
init_services();
|
|
116388
116570
|
init_auxiliary_master_node_cache();
|
|
116389
116571
|
init_master_part_background_cache();
|
|
116390
116572
|
init_master_part_element_signature();
|
|
@@ -116442,6 +116624,7 @@ var init_PptxHandlerRuntimeAuxiliaryMasterElements = __esm({
|
|
|
116442
116624
|
} finally {
|
|
116443
116625
|
this.currentSlideClrMapOverride = previousClrMapOverride;
|
|
116444
116626
|
}
|
|
116627
|
+
reconcileAnimationTargets(part.elements, void 0, void 0);
|
|
116445
116628
|
rememberMasterPartElementSignature(this, partPath, part.elements);
|
|
116446
116629
|
this.rememberUnparsedMasterNodes(partPath, spTree, part.elements);
|
|
116447
116630
|
}
|
|
@@ -153031,21 +153214,21 @@ function categoryX3(value, count, layout, mode) {
|
|
|
153031
153214
|
}
|
|
153032
153215
|
return layout.plotLeft + value / Math.max(count - 1, 1) * layout.plotWidth;
|
|
153033
153216
|
}
|
|
153034
|
-
function positionedCategoryX(value,
|
|
153035
|
-
if (!
|
|
153217
|
+
function positionedCategoryX(value, positions2, fallback) {
|
|
153218
|
+
if (!positions2 || positions2.length === 0) {
|
|
153036
153219
|
return fallback(value);
|
|
153037
153220
|
}
|
|
153038
153221
|
const lower = Math.floor(value);
|
|
153039
153222
|
const upper = Math.ceil(value);
|
|
153040
153223
|
const at = (index) => {
|
|
153041
|
-
if (
|
|
153042
|
-
return
|
|
153224
|
+
if (positions2[index] !== void 0) {
|
|
153225
|
+
return positions2[index];
|
|
153043
153226
|
}
|
|
153044
|
-
const lastIndex =
|
|
153045
|
-
const last =
|
|
153046
|
-
const beforeLast = lastIndex > 0 ?
|
|
153227
|
+
const lastIndex = positions2.length - 1;
|
|
153228
|
+
const last = positions2[lastIndex] ?? 0;
|
|
153229
|
+
const beforeLast = lastIndex > 0 ? positions2[lastIndex - 1] ?? positions2[0] ?? 0 : positions2[0] ?? 0;
|
|
153047
153230
|
const gap = last - beforeLast;
|
|
153048
|
-
return last + gap * (index -
|
|
153231
|
+
return last + gap * (index - positions2.length + 1);
|
|
153049
153232
|
};
|
|
153050
153233
|
return at(lower) + (at(upper) - at(lower)) * (value - lower);
|
|
153051
153234
|
}
|
|
@@ -174963,16 +175146,580 @@ function resolveParagraphIndent(paraIndent, paragraphLevel) {
|
|
|
174963
175146
|
}
|
|
174964
175147
|
return { marginLeftPx: marginLeft, textIndentPx: textIndent };
|
|
174965
175148
|
}
|
|
175149
|
+
var DEFAULT_BULLET_CHAR = "\u2022";
|
|
175150
|
+
var DEFAULT_AUTONUM_TYPE = "arabicPeriod";
|
|
175151
|
+
function bulletInfoForKind(kind, ordinal = 0) {
|
|
175152
|
+
if (kind === "none") {
|
|
175153
|
+
return { none: true };
|
|
175154
|
+
}
|
|
175155
|
+
if (kind === "bullet") {
|
|
175156
|
+
return { char: DEFAULT_BULLET_CHAR };
|
|
175157
|
+
}
|
|
175158
|
+
return { autoNumType: DEFAULT_AUTONUM_TYPE, autoNumStartAt: 1, paragraphIndex: ordinal };
|
|
175159
|
+
}
|
|
174966
175160
|
function isBulletMarkerSegment(segment) {
|
|
174967
|
-
const
|
|
174968
|
-
if (!
|
|
175161
|
+
const info = segment.bulletInfo;
|
|
175162
|
+
if (!info || info.none || segment.fieldType || segment.isLineBreak) {
|
|
174969
175163
|
return false;
|
|
174970
175164
|
}
|
|
174971
|
-
|
|
174972
|
-
if (!resolved) {
|
|
175165
|
+
if (!info.char && !info.autoNumType && !info.imageRelId && !info.imageDataUrl && !info.imageBlipFillXml) {
|
|
174973
175166
|
return false;
|
|
174974
175167
|
}
|
|
174975
|
-
|
|
175168
|
+
if (info.autoNumType) {
|
|
175169
|
+
if (info.paragraphIndex === void 0) {
|
|
175170
|
+
return false;
|
|
175171
|
+
}
|
|
175172
|
+
const marker = markerText(info);
|
|
175173
|
+
return segment.text === marker || segment.text === `${marker} `;
|
|
175174
|
+
}
|
|
175175
|
+
return segment.text === markerText(info);
|
|
175176
|
+
}
|
|
175177
|
+
function paragraphBulletKind(paragraph) {
|
|
175178
|
+
const resolved = resolveParagraphBullet(paragraph[0]);
|
|
175179
|
+
return resolved ? resolved.isNumbered ? "numbered" : "bullet" : "none";
|
|
175180
|
+
}
|
|
175181
|
+
function withoutListType(style) {
|
|
175182
|
+
const next = { ...style };
|
|
175183
|
+
delete next.listType;
|
|
175184
|
+
return next;
|
|
175185
|
+
}
|
|
175186
|
+
function markerText(info) {
|
|
175187
|
+
if (info.imageRelId || info.imageDataUrl || info.imageBlipFillXml) {
|
|
175188
|
+
return "\u{1F4CE} ";
|
|
175189
|
+
}
|
|
175190
|
+
if (info.autoNumType) {
|
|
175191
|
+
return formatAutoNumberMarker(
|
|
175192
|
+
info.autoNumType,
|
|
175193
|
+
Math.max(1, (info.autoNumStartAt ?? 1) + (info.paragraphIndex ?? 0))
|
|
175194
|
+
);
|
|
175195
|
+
}
|
|
175196
|
+
return `${info.char ?? DEFAULT_BULLET_CHAR} `;
|
|
175197
|
+
}
|
|
175198
|
+
function infoForParagraph(previous, kind, ordinal) {
|
|
175199
|
+
if (kind === "none") {
|
|
175200
|
+
return { ...previous, none: true };
|
|
175201
|
+
}
|
|
175202
|
+
const sameKind = previous && (kind === "numbered" ? Boolean(previous.autoNumType) : Boolean(
|
|
175203
|
+
previous.char || previous.imageRelId || previous.imageDataUrl || previous.imageBlipFillXml
|
|
175204
|
+
) && !previous.autoNumType);
|
|
175205
|
+
const info = sameKind ? { ...previous } : bulletInfoForKind(kind, ordinal);
|
|
175206
|
+
delete info.none;
|
|
175207
|
+
if (kind === "numbered" && ordinal !== void 0) {
|
|
175208
|
+
info.paragraphIndex = ordinal;
|
|
175209
|
+
}
|
|
175210
|
+
return info;
|
|
175211
|
+
}
|
|
175212
|
+
function toggleParagraphBullet(paragraph, kind, ordinal) {
|
|
175213
|
+
const source = paragraph[0];
|
|
175214
|
+
if (!source) {
|
|
175215
|
+
return [];
|
|
175216
|
+
}
|
|
175217
|
+
if (paragraph.length === 1 && source.paragraphInsertionStyle && (source.text === "" || isBulletMarkerSegment(source))) {
|
|
175218
|
+
const info2 = infoForParagraph(source.bulletInfo, kind, ordinal);
|
|
175219
|
+
const picture = info2.imageRelId || info2.imageDataUrl || info2.imageBlipFillXml;
|
|
175220
|
+
return [
|
|
175221
|
+
{
|
|
175222
|
+
...source,
|
|
175223
|
+
text: kind === "none" || picture ? "" : markerText(info2),
|
|
175224
|
+
style: withoutListType(source.style),
|
|
175225
|
+
bulletInfo: info2
|
|
175226
|
+
}
|
|
175227
|
+
];
|
|
175228
|
+
}
|
|
175229
|
+
const content = isBulletMarkerSegment(source) ? paragraph.slice(1) : [...paragraph];
|
|
175230
|
+
const first = content[0] ?? { text: "", style: source.style };
|
|
175231
|
+
const meta = {
|
|
175232
|
+
...source.paragraphLevel !== void 0 ? { paragraphLevel: source.paragraphLevel } : {},
|
|
175233
|
+
...source.paragraphProperties ? { paragraphProperties: source.paragraphProperties } : {},
|
|
175234
|
+
...source.endParaRunProperties ? { endParaRunProperties: source.endParaRunProperties } : {},
|
|
175235
|
+
...source.paragraphInsertionStyle ? { paragraphInsertionStyle: source.paragraphInsertionStyle } : {}
|
|
175236
|
+
};
|
|
175237
|
+
const info = infoForParagraph(source.bulletInfo, kind, ordinal);
|
|
175238
|
+
const body = { ...first, ...meta, style: withoutListType(first.style) };
|
|
175239
|
+
const rest = content.slice(1).map((segment) => {
|
|
175240
|
+
if (!segment.bulletInfo) {
|
|
175241
|
+
return segment;
|
|
175242
|
+
}
|
|
175243
|
+
const run = { ...segment };
|
|
175244
|
+
delete run.bulletInfo;
|
|
175245
|
+
return run;
|
|
175246
|
+
});
|
|
175247
|
+
if (kind === "none" || info.imageRelId || info.imageDataUrl || info.imageBlipFillXml) {
|
|
175248
|
+
return [{ ...body, bulletInfo: info }, ...rest];
|
|
175249
|
+
}
|
|
175250
|
+
delete body.bulletInfo;
|
|
175251
|
+
delete body.paragraphInsertionStyle;
|
|
175252
|
+
const markerStyle = isBulletMarkerSegment(source) && paragraphBulletKind([source]) === kind ? source.style : first.style;
|
|
175253
|
+
return [
|
|
175254
|
+
{ text: markerText(info), style: withoutListType(markerStyle), ...meta, bulletInfo: info },
|
|
175255
|
+
body,
|
|
175256
|
+
...rest
|
|
175257
|
+
];
|
|
175258
|
+
}
|
|
175259
|
+
function elementSegments(element) {
|
|
175260
|
+
if (!hasTextProperties(element)) {
|
|
175261
|
+
return [];
|
|
175262
|
+
}
|
|
175263
|
+
if (element.textSegments?.length) {
|
|
175264
|
+
return element.textSegments;
|
|
175265
|
+
}
|
|
175266
|
+
return (element.text ?? "").split("\n").flatMap((text22, index) => [
|
|
175267
|
+
...index ? [{ text: "\n", style: { ...element.textStyle }, isParagraphBreak: true }] : [],
|
|
175268
|
+
{ text: text22, style: { ...element.textStyle } }
|
|
175269
|
+
]);
|
|
175270
|
+
}
|
|
175271
|
+
function splitParagraphs2(segments) {
|
|
175272
|
+
const paragraphs = [
|
|
175273
|
+
{ segments: [] }
|
|
175274
|
+
];
|
|
175275
|
+
for (const segment of segments) {
|
|
175276
|
+
if (isParagraphSeparatorSegment(segment)) {
|
|
175277
|
+
paragraphs[paragraphs.length - 1].terminator = segment;
|
|
175278
|
+
paragraphs.push({ segments: [] });
|
|
175279
|
+
} else {
|
|
175280
|
+
paragraphs[paragraphs.length - 1].segments.push(segment);
|
|
175281
|
+
}
|
|
175282
|
+
}
|
|
175283
|
+
return paragraphs;
|
|
175284
|
+
}
|
|
175285
|
+
function elementBulletKind(element) {
|
|
175286
|
+
for (const paragraph of splitParagraphs2(elementSegments(element))) {
|
|
175287
|
+
if (paragraph.segments.length) {
|
|
175288
|
+
return paragraphBulletKind(paragraph.segments);
|
|
175289
|
+
}
|
|
175290
|
+
}
|
|
175291
|
+
return "none";
|
|
175292
|
+
}
|
|
175293
|
+
function setElementBullets(element, kind, range) {
|
|
175294
|
+
if (!hasTextProperties(element)) {
|
|
175295
|
+
return {};
|
|
175296
|
+
}
|
|
175297
|
+
if (range && (!Number.isInteger(range.startParagraph) || !Number.isInteger(range.endParagraph) || range.startParagraph < 0 || range.endParagraph < range.startParagraph)) {
|
|
175298
|
+
return {};
|
|
175299
|
+
}
|
|
175300
|
+
const paragraphs = splitParagraphs2(elementSegments(element));
|
|
175301
|
+
if (range && range.startParagraph >= paragraphs.length) {
|
|
175302
|
+
return {};
|
|
175303
|
+
}
|
|
175304
|
+
const next = [];
|
|
175305
|
+
const sequence = createAutoNumberSequence();
|
|
175306
|
+
for (const [index, paragraph] of paragraphs.entries()) {
|
|
175307
|
+
const selected = !range || index >= range.startParagraph && index <= range.endParagraph;
|
|
175308
|
+
let segments = paragraph.segments;
|
|
175309
|
+
if (selected) {
|
|
175310
|
+
const empty = {
|
|
175311
|
+
...paragraph.terminator,
|
|
175312
|
+
text: "",
|
|
175313
|
+
style: { ...paragraph.terminator?.style }
|
|
175314
|
+
};
|
|
175315
|
+
delete empty.isParagraphBreak;
|
|
175316
|
+
delete empty.isLineBreak;
|
|
175317
|
+
segments = toggleParagraphBullet(segments.length ? segments : [empty], kind);
|
|
175318
|
+
}
|
|
175319
|
+
const first = segments[0] ?? paragraph.terminator;
|
|
175320
|
+
const info = first?.bulletInfo;
|
|
175321
|
+
const level = first?.paragraphLevel ?? 0;
|
|
175322
|
+
if (info?.autoNumType && paragraphBulletKind(segments) === "numbered") {
|
|
175323
|
+
const startAt = info.autoNumStartAt ?? 1;
|
|
175324
|
+
const ordinal = nextAutoNumber(sequence, level, info.autoNumType, startAt) - startAt;
|
|
175325
|
+
if (info.paragraphIndex !== ordinal) {
|
|
175326
|
+
segments = toggleParagraphBullet(segments, "numbered", ordinal);
|
|
175327
|
+
}
|
|
175328
|
+
} else {
|
|
175329
|
+
breakAutoNumberRun(sequence, level);
|
|
175330
|
+
}
|
|
175331
|
+
next.push(...segments);
|
|
175332
|
+
if (paragraph.terminator) {
|
|
175333
|
+
next.push(paragraph.terminator);
|
|
175334
|
+
}
|
|
175335
|
+
}
|
|
175336
|
+
return {
|
|
175337
|
+
textSegments: next,
|
|
175338
|
+
textStyle: withoutListType(element.textStyle)
|
|
175339
|
+
};
|
|
175340
|
+
}
|
|
175341
|
+
function updateTextSegmentStyle(segment, updates, options = {}) {
|
|
175342
|
+
return {
|
|
175343
|
+
...segment,
|
|
175344
|
+
...options.updateBodyStyle === false ? {} : { style: { ...segment.style, ...updates } },
|
|
175345
|
+
...segment.paragraphInsertionStyle ? { paragraphInsertionStyle: { ...segment.paragraphInsertionStyle, ...updates } } : {}
|
|
175346
|
+
};
|
|
175347
|
+
}
|
|
175348
|
+
function getInlineEditorSelection(segments) {
|
|
175349
|
+
if (!segments?.length) {
|
|
175350
|
+
return null;
|
|
175351
|
+
}
|
|
175352
|
+
const selection = window.getSelection();
|
|
175353
|
+
if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
|
|
175354
|
+
return null;
|
|
175355
|
+
}
|
|
175356
|
+
const range = selection.getRangeAt(0);
|
|
175357
|
+
const editor = findEditorContainer(range.startContainer);
|
|
175358
|
+
if (!editor || !editor.contains(range.endContainer) || range.toString().length === 0) {
|
|
175359
|
+
return null;
|
|
175360
|
+
}
|
|
175361
|
+
const start = getSegmentPosition(editor, range.startContainer, range.startOffset, segments);
|
|
175362
|
+
const end = getSegmentPosition(editor, range.endContainer, range.endOffset, segments);
|
|
175363
|
+
if (!start || !end) {
|
|
175364
|
+
return null;
|
|
175365
|
+
}
|
|
175366
|
+
const renderedSpans = Array.from(editor.querySelectorAll("[data-seg-idx]"));
|
|
175367
|
+
const startSpanIndex = renderedSpans.indexOf(start.span);
|
|
175368
|
+
const endSpanIndex = renderedSpans.indexOf(end.span);
|
|
175369
|
+
if (startSpanIndex < 0 || endSpanIndex < startSpanIndex) {
|
|
175370
|
+
return null;
|
|
175371
|
+
}
|
|
175372
|
+
const selectedSpans = renderedSpans.slice(startSpanIndex, endSpanIndex + 1);
|
|
175373
|
+
const first = selectedSpans.find(
|
|
175374
|
+
(span) => isEditableSpan(span, segments) && (span !== start.span || start.offset < start.textLength)
|
|
175375
|
+
);
|
|
175376
|
+
const last = [...selectedSpans].reverse().find((span) => isEditableSpan(span, segments) && (span !== end.span || end.offset > 0));
|
|
175377
|
+
if (!first || !last) {
|
|
175378
|
+
return null;
|
|
175379
|
+
}
|
|
175380
|
+
return {
|
|
175381
|
+
startSegIdx: getSegmentIndex(first),
|
|
175382
|
+
startOffset: first === start.span ? start.offset : 0,
|
|
175383
|
+
endSegIdx: getSegmentIndex(last),
|
|
175384
|
+
endOffset: last === end.span ? end.offset : last.textContent?.length ?? 0
|
|
175385
|
+
};
|
|
175386
|
+
}
|
|
175387
|
+
function isEditableSpan(span, segments) {
|
|
175388
|
+
const segment = segments[getSegmentIndex(span)];
|
|
175389
|
+
return Boolean(
|
|
175390
|
+
segment && !segment.isParagraphBreak && segment.text !== "\n" && !isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
|
|
175391
|
+
);
|
|
175392
|
+
}
|
|
175393
|
+
function getSegmentIndex(span) {
|
|
175394
|
+
return Number(span.getAttribute("data-seg-idx"));
|
|
175395
|
+
}
|
|
175396
|
+
function findEditorContainer(node) {
|
|
175397
|
+
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
175398
|
+
return element?.closest("[data-inline-editor]") ?? null;
|
|
175399
|
+
}
|
|
175400
|
+
function getSegmentPosition(editor, node, offset, segments) {
|
|
175401
|
+
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
175402
|
+
const span = element?.closest("[data-seg-idx]");
|
|
175403
|
+
if (!span || !editor.contains(span)) {
|
|
175404
|
+
return null;
|
|
175405
|
+
}
|
|
175406
|
+
const segIdx = getSegmentIndex(span);
|
|
175407
|
+
if (!Number.isInteger(segIdx) || segIdx < 0 || segIdx >= segments.length) {
|
|
175408
|
+
return null;
|
|
175409
|
+
}
|
|
175410
|
+
return {
|
|
175411
|
+
segIdx,
|
|
175412
|
+
offset: getTextOffsetWithin(span, node, offset),
|
|
175413
|
+
span,
|
|
175414
|
+
textLength: span.textContent?.length ?? 0
|
|
175415
|
+
};
|
|
175416
|
+
}
|
|
175417
|
+
function getTextOffsetWithin(container, targetNode, targetOffset) {
|
|
175418
|
+
if (targetNode === container || targetNode.nodeType === Node.ELEMENT_NODE) {
|
|
175419
|
+
const parent = targetNode === container ? container : targetNode;
|
|
175420
|
+
let count = 0;
|
|
175421
|
+
for (let index = 0; index < targetOffset && index < parent.childNodes.length; index++) {
|
|
175422
|
+
count += parent.childNodes[index].textContent?.length ?? 0;
|
|
175423
|
+
}
|
|
175424
|
+
return count;
|
|
175425
|
+
}
|
|
175426
|
+
const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT);
|
|
175427
|
+
let charCount = 0;
|
|
175428
|
+
let node;
|
|
175429
|
+
while (node = walker.nextNode()) {
|
|
175430
|
+
if (node === targetNode) {
|
|
175431
|
+
return charCount + targetOffset;
|
|
175432
|
+
}
|
|
175433
|
+
charCount += node.length;
|
|
175434
|
+
}
|
|
175435
|
+
return charCount;
|
|
175436
|
+
}
|
|
175437
|
+
var pendingRestore = null;
|
|
175438
|
+
function setPendingSelectionRestore(sel) {
|
|
175439
|
+
pendingRestore = sel;
|
|
175440
|
+
}
|
|
175441
|
+
function getPendingSelectionRestore() {
|
|
175442
|
+
const sel = pendingRestore;
|
|
175443
|
+
pendingRestore = null;
|
|
175444
|
+
return sel;
|
|
175445
|
+
}
|
|
175446
|
+
function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
175447
|
+
const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
|
|
175448
|
+
const result = [];
|
|
175449
|
+
let newStartSegIdx = -1;
|
|
175450
|
+
let newStartOffset = 0;
|
|
175451
|
+
let newEndSegIdx = -1;
|
|
175452
|
+
let newEndOffset = 0;
|
|
175453
|
+
for (let i2 = 0; i2 < segments.length; i2++) {
|
|
175454
|
+
const seg = i2 >= startSegIdx && i2 <= endSegIdx ? updateTextSegmentStyle(segments[i2], updates, { updateBodyStyle: false }) : segments[i2];
|
|
175455
|
+
if (seg.isParagraphBreak || seg.text === "\n") {
|
|
175456
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175457
|
+
continue;
|
|
175458
|
+
}
|
|
175459
|
+
if (i2 < startSegIdx) {
|
|
175460
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175461
|
+
continue;
|
|
175462
|
+
}
|
|
175463
|
+
if (i2 > endSegIdx) {
|
|
175464
|
+
result.push({ ...seg, style: { ...seg.style } });
|
|
175465
|
+
continue;
|
|
175466
|
+
}
|
|
175467
|
+
if (seg.paragraphInsertionStyle && (seg.text === "" || isBulletMarkerSegment(seg))) {
|
|
175468
|
+
newStartSegIdx = newStartSegIdx < 0 ? result.length : newStartSegIdx;
|
|
175469
|
+
newEndSegIdx = result.length;
|
|
175470
|
+
result.push(seg);
|
|
175471
|
+
continue;
|
|
175472
|
+
}
|
|
175473
|
+
if (i2 === startSegIdx && i2 === endSegIdx) {
|
|
175474
|
+
splitSingle(seg, startOffset, endOffset, updates, result);
|
|
175475
|
+
const partsAdded = (startOffset > 0 ? 1 : 0) + 1 + (endOffset < seg.text.length ? 1 : 0);
|
|
175476
|
+
const selectedPartIdx = result.length - partsAdded + (startOffset > 0 ? 1 : 0);
|
|
175477
|
+
newStartSegIdx = selectedPartIdx;
|
|
175478
|
+
newStartOffset = 0;
|
|
175479
|
+
newEndSegIdx = selectedPartIdx;
|
|
175480
|
+
newEndOffset = endOffset - startOffset;
|
|
175481
|
+
continue;
|
|
175482
|
+
}
|
|
175483
|
+
if (i2 === startSegIdx) {
|
|
175484
|
+
if (startOffset === 0) {
|
|
175485
|
+
newStartSegIdx = result.length;
|
|
175486
|
+
newStartOffset = 0;
|
|
175487
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175488
|
+
} else {
|
|
175489
|
+
const beforeSeg = {
|
|
175490
|
+
text: seg.text.slice(0, startOffset),
|
|
175491
|
+
style: { ...seg.style }
|
|
175492
|
+
};
|
|
175493
|
+
if (seg.bulletInfo) {
|
|
175494
|
+
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
175495
|
+
}
|
|
175496
|
+
result.push(beforeSeg);
|
|
175497
|
+
newStartSegIdx = result.length;
|
|
175498
|
+
newStartOffset = 0;
|
|
175499
|
+
result.push({
|
|
175500
|
+
text: seg.text.slice(startOffset),
|
|
175501
|
+
style: { ...seg.style, ...updates }
|
|
175502
|
+
});
|
|
175503
|
+
}
|
|
175504
|
+
continue;
|
|
175505
|
+
}
|
|
175506
|
+
if (i2 === endSegIdx) {
|
|
175507
|
+
if (endOffset >= seg.text.length) {
|
|
175508
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175509
|
+
newEndSegIdx = result.length - 1;
|
|
175510
|
+
newEndOffset = seg.text.length;
|
|
175511
|
+
} else {
|
|
175512
|
+
result.push({
|
|
175513
|
+
text: seg.text.slice(0, endOffset),
|
|
175514
|
+
style: { ...seg.style, ...updates }
|
|
175515
|
+
});
|
|
175516
|
+
newEndSegIdx = result.length - 1;
|
|
175517
|
+
newEndOffset = endOffset;
|
|
175518
|
+
result.push({
|
|
175519
|
+
text: seg.text.slice(endOffset),
|
|
175520
|
+
style: { ...seg.style }
|
|
175521
|
+
});
|
|
175522
|
+
}
|
|
175523
|
+
continue;
|
|
175524
|
+
}
|
|
175525
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175526
|
+
}
|
|
175527
|
+
return {
|
|
175528
|
+
newSegments: result,
|
|
175529
|
+
newSelection: {
|
|
175530
|
+
startSegIdx: newStartSegIdx,
|
|
175531
|
+
startOffset: newStartOffset,
|
|
175532
|
+
endSegIdx: newEndSegIdx,
|
|
175533
|
+
endOffset: newEndOffset
|
|
175534
|
+
}
|
|
175535
|
+
};
|
|
175536
|
+
}
|
|
175537
|
+
function splitSingle(seg, startOffset, endOffset, updates, result) {
|
|
175538
|
+
if (startOffset === 0 && endOffset >= seg.text.length) {
|
|
175539
|
+
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
175540
|
+
return;
|
|
175541
|
+
}
|
|
175542
|
+
if (startOffset > 0) {
|
|
175543
|
+
const beforeSeg = {
|
|
175544
|
+
text: seg.text.slice(0, startOffset),
|
|
175545
|
+
style: { ...seg.style }
|
|
175546
|
+
};
|
|
175547
|
+
if (seg.bulletInfo) {
|
|
175548
|
+
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
175549
|
+
}
|
|
175550
|
+
result.push(beforeSeg);
|
|
175551
|
+
}
|
|
175552
|
+
result.push({
|
|
175553
|
+
text: seg.text.slice(startOffset, endOffset),
|
|
175554
|
+
style: { ...seg.style, ...updates }
|
|
175555
|
+
});
|
|
175556
|
+
if (endOffset < seg.text.length) {
|
|
175557
|
+
result.push({
|
|
175558
|
+
text: seg.text.slice(endOffset),
|
|
175559
|
+
style: { ...seg.style }
|
|
175560
|
+
});
|
|
175561
|
+
}
|
|
175562
|
+
}
|
|
175563
|
+
function restoreSegmentSelection(editor, startSegIdx, startOffset, endSegIdx, endOffset) {
|
|
175564
|
+
const sel = window.getSelection();
|
|
175565
|
+
if (!sel) {
|
|
175566
|
+
return;
|
|
175567
|
+
}
|
|
175568
|
+
const startPos = findTextPositionInSegment(editor, startSegIdx, startOffset);
|
|
175569
|
+
const endPos = findTextPositionInSegment(editor, endSegIdx, endOffset);
|
|
175570
|
+
if (!startPos || !endPos) {
|
|
175571
|
+
return;
|
|
175572
|
+
}
|
|
175573
|
+
const range = document.createRange();
|
|
175574
|
+
range.setStart(startPos.node, startPos.offset);
|
|
175575
|
+
range.setEnd(endPos.node, endPos.offset);
|
|
175576
|
+
sel.removeAllRanges();
|
|
175577
|
+
sel.addRange(range);
|
|
175578
|
+
}
|
|
175579
|
+
function findTextPositionInSegment(editor, segIdx, charOffset) {
|
|
175580
|
+
const segSpan = editor.querySelector(`[data-seg-idx="${segIdx}"]`);
|
|
175581
|
+
if (!segSpan) {
|
|
175582
|
+
return null;
|
|
175583
|
+
}
|
|
175584
|
+
const walker = document.createTreeWalker(segSpan, NodeFilter.SHOW_TEXT);
|
|
175585
|
+
let charCount = 0;
|
|
175586
|
+
let node;
|
|
175587
|
+
while (node = walker.nextNode()) {
|
|
175588
|
+
const textLen = node.length;
|
|
175589
|
+
if (charCount + textLen >= charOffset) {
|
|
175590
|
+
return { node, offset: charOffset - charCount };
|
|
175591
|
+
}
|
|
175592
|
+
charCount += textLen;
|
|
175593
|
+
}
|
|
175594
|
+
const lastTextNode = segSpan.querySelector("*") ? null : segSpan.firstChild;
|
|
175595
|
+
if (lastTextNode && lastTextNode.nodeType === Node.TEXT_NODE) {
|
|
175596
|
+
return { node: lastTextNode, offset: lastTextNode.length };
|
|
175597
|
+
}
|
|
175598
|
+
return null;
|
|
175599
|
+
}
|
|
175600
|
+
function positions(segments) {
|
|
175601
|
+
let offset = 0;
|
|
175602
|
+
let paragraph = 0;
|
|
175603
|
+
let first = true;
|
|
175604
|
+
return segments.map((segment) => {
|
|
175605
|
+
const marker = first && isBulletMarkerSegment(segment);
|
|
175606
|
+
const start = offset;
|
|
175607
|
+
if (!marker) {
|
|
175608
|
+
offset += segment.text.length;
|
|
175609
|
+
}
|
|
175610
|
+
const entry2 = {
|
|
175611
|
+
start,
|
|
175612
|
+
end: offset,
|
|
175613
|
+
paragraph,
|
|
175614
|
+
editable: !marker && !isParagraphSeparatorSegment(segment)
|
|
175615
|
+
};
|
|
175616
|
+
first = isParagraphSeparatorSegment(segment);
|
|
175617
|
+
if (first) {
|
|
175618
|
+
paragraph += 1;
|
|
175619
|
+
}
|
|
175620
|
+
return entry2;
|
|
175621
|
+
});
|
|
175622
|
+
}
|
|
175623
|
+
function restorePoint(segments, offset, end) {
|
|
175624
|
+
const entries = positions(segments);
|
|
175625
|
+
let fallback = { index: 0, offset: 0 };
|
|
175626
|
+
for (const [index, entry2] of entries.entries()) {
|
|
175627
|
+
if (!entry2.editable) {
|
|
175628
|
+
continue;
|
|
175629
|
+
}
|
|
175630
|
+
fallback = { index, offset: segments[index].text.length };
|
|
175631
|
+
if (end ? offset <= entry2.end : offset < entry2.end) {
|
|
175632
|
+
return { index, offset: Math.max(0, offset - entry2.start) };
|
|
175633
|
+
}
|
|
175634
|
+
}
|
|
175635
|
+
return fallback;
|
|
175636
|
+
}
|
|
175637
|
+
function restoreParagraphMetadata(original, updated) {
|
|
175638
|
+
const firstRuns = original.filter(
|
|
175639
|
+
(_, index) => index === 0 || isParagraphSeparatorSegment(original[index - 1])
|
|
175640
|
+
);
|
|
175641
|
+
let paragraph = 0;
|
|
175642
|
+
return updated.map((segment, index) => {
|
|
175643
|
+
const first = index === 0 || isParagraphSeparatorSegment(updated[index - 1]);
|
|
175644
|
+
if (!first) {
|
|
175645
|
+
return segment;
|
|
175646
|
+
}
|
|
175647
|
+
const source = firstRuns[paragraph++];
|
|
175648
|
+
if (!source) {
|
|
175649
|
+
return segment;
|
|
175650
|
+
}
|
|
175651
|
+
return {
|
|
175652
|
+
...segment,
|
|
175653
|
+
bulletInfo: source.bulletInfo,
|
|
175654
|
+
paragraphLevel: source.paragraphLevel,
|
|
175655
|
+
paragraphProperties: source.paragraphProperties,
|
|
175656
|
+
endParaRunProperties: source.endParaRunProperties
|
|
175657
|
+
};
|
|
175658
|
+
});
|
|
175659
|
+
}
|
|
175660
|
+
function selectedParagraphBulletKind(element, selection) {
|
|
175661
|
+
if (!selection || !hasTextProperties(element) || !element.textSegments) {
|
|
175662
|
+
return elementBulletKind(element);
|
|
175663
|
+
}
|
|
175664
|
+
let first = selection.startSegIdx;
|
|
175665
|
+
while (first > 0 && !isParagraphSeparatorSegment(element.textSegments[first - 1])) {
|
|
175666
|
+
first -= 1;
|
|
175667
|
+
}
|
|
175668
|
+
return paragraphBulletKind(element.textSegments.slice(first));
|
|
175669
|
+
}
|
|
175670
|
+
function applyListStyleUpdate(element, updates, selection) {
|
|
175671
|
+
if (!hasTextProperties(element) || !updates.listType) {
|
|
175672
|
+
return { patch: {}, selection };
|
|
175673
|
+
}
|
|
175674
|
+
const { listType, ...characterStyle } = updates;
|
|
175675
|
+
let segments = element.textSegments;
|
|
175676
|
+
let workingSelection = selection;
|
|
175677
|
+
if (segments && Object.keys(characterStyle).length > 0) {
|
|
175678
|
+
if (selection) {
|
|
175679
|
+
const styled = applyStyleToSelectedSegments(segments, selection, characterStyle);
|
|
175680
|
+
segments = restoreParagraphMetadata(segments, styled.newSegments);
|
|
175681
|
+
workingSelection = styled.newSelection;
|
|
175682
|
+
} else {
|
|
175683
|
+
segments = segments.map((segment) => updateTextSegmentStyle(segment, characterStyle));
|
|
175684
|
+
}
|
|
175685
|
+
}
|
|
175686
|
+
const working = {
|
|
175687
|
+
...element,
|
|
175688
|
+
textSegments: segments,
|
|
175689
|
+
textStyle: selection ? element.textStyle : { ...element.textStyle, ...characterStyle }
|
|
175690
|
+
};
|
|
175691
|
+
if (!workingSelection || !segments) {
|
|
175692
|
+
return { patch: setElementBullets(working, listType), selection: null };
|
|
175693
|
+
}
|
|
175694
|
+
const entries = positions(segments);
|
|
175695
|
+
const startEntry = entries[workingSelection.startSegIdx];
|
|
175696
|
+
const endEntry = entries[workingSelection.endSegIdx];
|
|
175697
|
+
if (!startEntry || !endEntry) {
|
|
175698
|
+
return { patch: {}, selection: null };
|
|
175699
|
+
}
|
|
175700
|
+
const startOffset = startEntry.start + workingSelection.startOffset;
|
|
175701
|
+
const endOffset = endEntry.start + workingSelection.endOffset;
|
|
175702
|
+
const lastSelected = [...entries].reverse().find((entry2) => entry2.start < endOffset);
|
|
175703
|
+
const patch = setElementBullets(working, listType, {
|
|
175704
|
+
startParagraph: startEntry.paragraph,
|
|
175705
|
+
endParagraph: lastSelected?.paragraph ?? endEntry.paragraph
|
|
175706
|
+
});
|
|
175707
|
+
const next = { ...working, ...patch };
|
|
175708
|
+
const nextSegments = hasTextProperties(next) ? next.textSegments : void 0;
|
|
175709
|
+
if (!nextSegments) {
|
|
175710
|
+
return { patch, selection: null };
|
|
175711
|
+
}
|
|
175712
|
+
const start = restorePoint(nextSegments, startOffset, false);
|
|
175713
|
+
const end = restorePoint(nextSegments, endOffset, true);
|
|
175714
|
+
return {
|
|
175715
|
+
patch,
|
|
175716
|
+
selection: {
|
|
175717
|
+
startSegIdx: start.index,
|
|
175718
|
+
startOffset: start.offset,
|
|
175719
|
+
endSegIdx: end.index,
|
|
175720
|
+
endOffset: end.offset
|
|
175721
|
+
}
|
|
175722
|
+
};
|
|
174976
175723
|
}
|
|
174977
175724
|
var DEBOUNCE_MS = 600;
|
|
174978
175725
|
var EXPANDED_MAX_HEIGHT = 200;
|
|
@@ -175695,15 +176442,15 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
175695
176442
|
const pos2 = tabStops[0].position;
|
|
175696
176443
|
return typeof pos2 === "number" && pos2 > 0 ? `${Math.round(pos2)}px` : fromDefault;
|
|
175697
176444
|
}
|
|
175698
|
-
const
|
|
175699
|
-
if (
|
|
175700
|
-
return
|
|
176445
|
+
const positions2 = tabStops.map((t) => t.position).filter((p) => typeof p === "number" && p > 0).sort((a, b) => a - b);
|
|
176446
|
+
if (positions2.length < 2) {
|
|
176447
|
+
return positions2.length === 1 ? `${Math.round(positions2[0])}px` : fromDefault;
|
|
175701
176448
|
}
|
|
175702
176449
|
let totalGap = 0;
|
|
175703
|
-
for (let i2 = 1; i2 <
|
|
175704
|
-
totalGap +=
|
|
176450
|
+
for (let i2 = 1; i2 < positions2.length; i2++) {
|
|
176451
|
+
totalGap += positions2[i2] - positions2[i2 - 1];
|
|
175705
176452
|
}
|
|
175706
|
-
const avgGap = totalGap / (
|
|
176453
|
+
const avgGap = totalGap / (positions2.length - 1);
|
|
175707
176454
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
175708
176455
|
}
|
|
175709
176456
|
function resolveTextOverflowClip(textStyle) {
|
|
@@ -179868,252 +180615,6 @@ function buildThemeColorGrid(colorScheme, translate) {
|
|
|
179868
180615
|
function themeColorLabel(key2, translate) {
|
|
179869
180616
|
return translate ? schemaLabel(THEME_COLOR_SLOT_LABEL_KEYS, key2, translate) : THEME_COLOR_LABELS[key2];
|
|
179870
180617
|
}
|
|
179871
|
-
function getInlineEditorSelection(segments) {
|
|
179872
|
-
if (!segments?.length) {
|
|
179873
|
-
return null;
|
|
179874
|
-
}
|
|
179875
|
-
const selection = window.getSelection();
|
|
179876
|
-
if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
|
|
179877
|
-
return null;
|
|
179878
|
-
}
|
|
179879
|
-
const range = selection.getRangeAt(0);
|
|
179880
|
-
const editor = findEditorContainer(range.startContainer);
|
|
179881
|
-
if (!editor || !editor.contains(range.endContainer) || range.toString().length === 0) {
|
|
179882
|
-
return null;
|
|
179883
|
-
}
|
|
179884
|
-
const start = getSegmentPosition(editor, range.startContainer, range.startOffset, segments);
|
|
179885
|
-
const end = getSegmentPosition(editor, range.endContainer, range.endOffset, segments);
|
|
179886
|
-
if (!start || !end) {
|
|
179887
|
-
return null;
|
|
179888
|
-
}
|
|
179889
|
-
const renderedSpans = Array.from(editor.querySelectorAll("[data-seg-idx]"));
|
|
179890
|
-
const startSpanIndex = renderedSpans.indexOf(start.span);
|
|
179891
|
-
const endSpanIndex = renderedSpans.indexOf(end.span);
|
|
179892
|
-
if (startSpanIndex < 0 || endSpanIndex < startSpanIndex) {
|
|
179893
|
-
return null;
|
|
179894
|
-
}
|
|
179895
|
-
const selectedSpans = renderedSpans.slice(startSpanIndex, endSpanIndex + 1);
|
|
179896
|
-
const first = selectedSpans.find(
|
|
179897
|
-
(span) => isEditableSpan(span, segments) && (span !== start.span || start.offset < start.textLength)
|
|
179898
|
-
);
|
|
179899
|
-
const last = [...selectedSpans].reverse().find((span) => isEditableSpan(span, segments) && (span !== end.span || end.offset > 0));
|
|
179900
|
-
if (!first || !last) {
|
|
179901
|
-
return null;
|
|
179902
|
-
}
|
|
179903
|
-
return {
|
|
179904
|
-
startSegIdx: getSegmentIndex(first),
|
|
179905
|
-
startOffset: first === start.span ? start.offset : 0,
|
|
179906
|
-
endSegIdx: getSegmentIndex(last),
|
|
179907
|
-
endOffset: last === end.span ? end.offset : last.textContent?.length ?? 0
|
|
179908
|
-
};
|
|
179909
|
-
}
|
|
179910
|
-
function isEditableSpan(span, segments) {
|
|
179911
|
-
const segment = segments[getSegmentIndex(span)];
|
|
179912
|
-
return Boolean(
|
|
179913
|
-
segment && !segment.isParagraphBreak && segment.text !== "\n" && !isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
|
|
179914
|
-
);
|
|
179915
|
-
}
|
|
179916
|
-
function getSegmentIndex(span) {
|
|
179917
|
-
return Number(span.getAttribute("data-seg-idx"));
|
|
179918
|
-
}
|
|
179919
|
-
function findEditorContainer(node) {
|
|
179920
|
-
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
179921
|
-
return element?.closest("[data-inline-editor]") ?? null;
|
|
179922
|
-
}
|
|
179923
|
-
function getSegmentPosition(editor, node, offset, segments) {
|
|
179924
|
-
const element = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;
|
|
179925
|
-
const span = element?.closest("[data-seg-idx]");
|
|
179926
|
-
if (!span || !editor.contains(span)) {
|
|
179927
|
-
return null;
|
|
179928
|
-
}
|
|
179929
|
-
const segIdx = getSegmentIndex(span);
|
|
179930
|
-
if (!Number.isInteger(segIdx) || segIdx < 0 || segIdx >= segments.length) {
|
|
179931
|
-
return null;
|
|
179932
|
-
}
|
|
179933
|
-
return {
|
|
179934
|
-
segIdx,
|
|
179935
|
-
offset: getTextOffsetWithin(span, node, offset),
|
|
179936
|
-
span,
|
|
179937
|
-
textLength: span.textContent?.length ?? 0
|
|
179938
|
-
};
|
|
179939
|
-
}
|
|
179940
|
-
function getTextOffsetWithin(container, targetNode, targetOffset) {
|
|
179941
|
-
if (targetNode === container || targetNode.nodeType === Node.ELEMENT_NODE) {
|
|
179942
|
-
const parent = targetNode === container ? container : targetNode;
|
|
179943
|
-
let count = 0;
|
|
179944
|
-
for (let index = 0; index < targetOffset && index < parent.childNodes.length; index++) {
|
|
179945
|
-
count += parent.childNodes[index].textContent?.length ?? 0;
|
|
179946
|
-
}
|
|
179947
|
-
return count;
|
|
179948
|
-
}
|
|
179949
|
-
const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT);
|
|
179950
|
-
let charCount = 0;
|
|
179951
|
-
let node;
|
|
179952
|
-
while (node = walker.nextNode()) {
|
|
179953
|
-
if (node === targetNode) {
|
|
179954
|
-
return charCount + targetOffset;
|
|
179955
|
-
}
|
|
179956
|
-
charCount += node.length;
|
|
179957
|
-
}
|
|
179958
|
-
return charCount;
|
|
179959
|
-
}
|
|
179960
|
-
var pendingRestore = null;
|
|
179961
|
-
function setPendingSelectionRestore(sel) {
|
|
179962
|
-
pendingRestore = sel;
|
|
179963
|
-
}
|
|
179964
|
-
function getPendingSelectionRestore() {
|
|
179965
|
-
const sel = pendingRestore;
|
|
179966
|
-
pendingRestore = null;
|
|
179967
|
-
return sel;
|
|
179968
|
-
}
|
|
179969
|
-
function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
179970
|
-
const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
|
|
179971
|
-
const result = [];
|
|
179972
|
-
let newStartSegIdx = -1;
|
|
179973
|
-
let newStartOffset = 0;
|
|
179974
|
-
let newEndSegIdx = -1;
|
|
179975
|
-
let newEndOffset = 0;
|
|
179976
|
-
for (let i2 = 0; i2 < segments.length; i2++) {
|
|
179977
|
-
const seg = segments[i2];
|
|
179978
|
-
if (seg.isParagraphBreak || seg.text === "\n") {
|
|
179979
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179980
|
-
continue;
|
|
179981
|
-
}
|
|
179982
|
-
if (i2 < startSegIdx) {
|
|
179983
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179984
|
-
continue;
|
|
179985
|
-
}
|
|
179986
|
-
if (i2 > endSegIdx) {
|
|
179987
|
-
result.push({ ...seg, style: { ...seg.style } });
|
|
179988
|
-
continue;
|
|
179989
|
-
}
|
|
179990
|
-
if (i2 === startSegIdx && i2 === endSegIdx) {
|
|
179991
|
-
splitSingle(seg, startOffset, endOffset, updates, result);
|
|
179992
|
-
const partsAdded = (startOffset > 0 ? 1 : 0) + 1 + (endOffset < seg.text.length ? 1 : 0);
|
|
179993
|
-
const selectedPartIdx = result.length - partsAdded + (startOffset > 0 ? 1 : 0);
|
|
179994
|
-
newStartSegIdx = selectedPartIdx;
|
|
179995
|
-
newStartOffset = 0;
|
|
179996
|
-
newEndSegIdx = selectedPartIdx;
|
|
179997
|
-
newEndOffset = endOffset - startOffset;
|
|
179998
|
-
continue;
|
|
179999
|
-
}
|
|
180000
|
-
if (i2 === startSegIdx) {
|
|
180001
|
-
if (startOffset === 0) {
|
|
180002
|
-
newStartSegIdx = result.length;
|
|
180003
|
-
newStartOffset = 0;
|
|
180004
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180005
|
-
} else {
|
|
180006
|
-
const beforeSeg = {
|
|
180007
|
-
text: seg.text.slice(0, startOffset),
|
|
180008
|
-
style: { ...seg.style }
|
|
180009
|
-
};
|
|
180010
|
-
if (seg.bulletInfo) {
|
|
180011
|
-
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
180012
|
-
}
|
|
180013
|
-
result.push(beforeSeg);
|
|
180014
|
-
newStartSegIdx = result.length;
|
|
180015
|
-
newStartOffset = 0;
|
|
180016
|
-
result.push({
|
|
180017
|
-
text: seg.text.slice(startOffset),
|
|
180018
|
-
style: { ...seg.style, ...updates }
|
|
180019
|
-
});
|
|
180020
|
-
}
|
|
180021
|
-
continue;
|
|
180022
|
-
}
|
|
180023
|
-
if (i2 === endSegIdx) {
|
|
180024
|
-
if (endOffset >= seg.text.length) {
|
|
180025
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180026
|
-
newEndSegIdx = result.length - 1;
|
|
180027
|
-
newEndOffset = seg.text.length;
|
|
180028
|
-
} else {
|
|
180029
|
-
result.push({
|
|
180030
|
-
text: seg.text.slice(0, endOffset),
|
|
180031
|
-
style: { ...seg.style, ...updates }
|
|
180032
|
-
});
|
|
180033
|
-
newEndSegIdx = result.length - 1;
|
|
180034
|
-
newEndOffset = endOffset;
|
|
180035
|
-
result.push({
|
|
180036
|
-
text: seg.text.slice(endOffset),
|
|
180037
|
-
style: { ...seg.style }
|
|
180038
|
-
});
|
|
180039
|
-
}
|
|
180040
|
-
continue;
|
|
180041
|
-
}
|
|
180042
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180043
|
-
}
|
|
180044
|
-
return {
|
|
180045
|
-
newSegments: result,
|
|
180046
|
-
newSelection: {
|
|
180047
|
-
startSegIdx: newStartSegIdx,
|
|
180048
|
-
startOffset: newStartOffset,
|
|
180049
|
-
endSegIdx: newEndSegIdx,
|
|
180050
|
-
endOffset: newEndOffset
|
|
180051
|
-
}
|
|
180052
|
-
};
|
|
180053
|
-
}
|
|
180054
|
-
function splitSingle(seg, startOffset, endOffset, updates, result) {
|
|
180055
|
-
if (startOffset === 0 && endOffset >= seg.text.length) {
|
|
180056
|
-
result.push({ ...seg, style: { ...seg.style, ...updates } });
|
|
180057
|
-
return;
|
|
180058
|
-
}
|
|
180059
|
-
if (startOffset > 0) {
|
|
180060
|
-
const beforeSeg = {
|
|
180061
|
-
text: seg.text.slice(0, startOffset),
|
|
180062
|
-
style: { ...seg.style }
|
|
180063
|
-
};
|
|
180064
|
-
if (seg.bulletInfo) {
|
|
180065
|
-
beforeSeg.bulletInfo = seg.bulletInfo;
|
|
180066
|
-
}
|
|
180067
|
-
result.push(beforeSeg);
|
|
180068
|
-
}
|
|
180069
|
-
result.push({
|
|
180070
|
-
text: seg.text.slice(startOffset, endOffset),
|
|
180071
|
-
style: { ...seg.style, ...updates }
|
|
180072
|
-
});
|
|
180073
|
-
if (endOffset < seg.text.length) {
|
|
180074
|
-
result.push({
|
|
180075
|
-
text: seg.text.slice(endOffset),
|
|
180076
|
-
style: { ...seg.style }
|
|
180077
|
-
});
|
|
180078
|
-
}
|
|
180079
|
-
}
|
|
180080
|
-
function restoreSegmentSelection(editor, startSegIdx, startOffset, endSegIdx, endOffset) {
|
|
180081
|
-
const sel = window.getSelection();
|
|
180082
|
-
if (!sel) {
|
|
180083
|
-
return;
|
|
180084
|
-
}
|
|
180085
|
-
const startPos = findTextPositionInSegment(editor, startSegIdx, startOffset);
|
|
180086
|
-
const endPos = findTextPositionInSegment(editor, endSegIdx, endOffset);
|
|
180087
|
-
if (!startPos || !endPos) {
|
|
180088
|
-
return;
|
|
180089
|
-
}
|
|
180090
|
-
const range = document.createRange();
|
|
180091
|
-
range.setStart(startPos.node, startPos.offset);
|
|
180092
|
-
range.setEnd(endPos.node, endPos.offset);
|
|
180093
|
-
sel.removeAllRanges();
|
|
180094
|
-
sel.addRange(range);
|
|
180095
|
-
}
|
|
180096
|
-
function findTextPositionInSegment(editor, segIdx, charOffset) {
|
|
180097
|
-
const segSpan = editor.querySelector(`[data-seg-idx="${segIdx}"]`);
|
|
180098
|
-
if (!segSpan) {
|
|
180099
|
-
return null;
|
|
180100
|
-
}
|
|
180101
|
-
const walker = document.createTreeWalker(segSpan, NodeFilter.SHOW_TEXT);
|
|
180102
|
-
let charCount = 0;
|
|
180103
|
-
let node;
|
|
180104
|
-
while (node = walker.nextNode()) {
|
|
180105
|
-
const textLen = node.length;
|
|
180106
|
-
if (charCount + textLen >= charOffset) {
|
|
180107
|
-
return { node, offset: charOffset - charCount };
|
|
180108
|
-
}
|
|
180109
|
-
charCount += textLen;
|
|
180110
|
-
}
|
|
180111
|
-
const lastTextNode = segSpan.querySelector("*") ? null : segSpan.firstChild;
|
|
180112
|
-
if (lastTextNode && lastTextNode.nodeType === Node.TEXT_NODE) {
|
|
180113
|
-
return { node: lastTextNode, offset: lastTextNode.length };
|
|
180114
|
-
}
|
|
180115
|
-
return null;
|
|
180116
|
-
}
|
|
180117
180618
|
function placeCaretAtEnd(el) {
|
|
180118
180619
|
const doc = el.ownerDocument;
|
|
180119
180620
|
const win = doc.defaultView;
|
|
@@ -180540,6 +181041,100 @@ function withConnectorEndpointUpdate(connector, update) {
|
|
|
180540
181041
|
function connectorWrapperTransform(element) {
|
|
180541
181042
|
return element.rotation ? `rotate(${element.rotation}deg)` : void 0;
|
|
180542
181043
|
}
|
|
181044
|
+
function textFontSizePxToPt(fontSizePx2) {
|
|
181045
|
+
return Math.round(fontSizePx2 * (72 / 96) * 100) / 100;
|
|
181046
|
+
}
|
|
181047
|
+
function textFontSizePtToPx(fontSizePt) {
|
|
181048
|
+
return fontSizePt * (96 / 72);
|
|
181049
|
+
}
|
|
181050
|
+
var COMMON_FONT_FAMILIES = [
|
|
181051
|
+
"Abadi",
|
|
181052
|
+
"Aptos",
|
|
181053
|
+
"Aptos Display",
|
|
181054
|
+
"Arial",
|
|
181055
|
+
"Arial Black",
|
|
181056
|
+
"Arial Narrow",
|
|
181057
|
+
"Bahnschrift",
|
|
181058
|
+
"Book Antiqua",
|
|
181059
|
+
"Bookman Old Style",
|
|
181060
|
+
"Calibri",
|
|
181061
|
+
"Calibri Light",
|
|
181062
|
+
"Cambria",
|
|
181063
|
+
"Candara",
|
|
181064
|
+
"Century Gothic",
|
|
181065
|
+
"Comic Sans MS",
|
|
181066
|
+
"Consolas",
|
|
181067
|
+
"Corbel",
|
|
181068
|
+
"Courier New",
|
|
181069
|
+
"Franklin Gothic Book",
|
|
181070
|
+
"Franklin Gothic Medium",
|
|
181071
|
+
"Garamond",
|
|
181072
|
+
"Georgia",
|
|
181073
|
+
"Gill Sans MT",
|
|
181074
|
+
"Helvetica",
|
|
181075
|
+
"Impact",
|
|
181076
|
+
"Inter",
|
|
181077
|
+
"Lucida Console",
|
|
181078
|
+
"Lucida Sans Unicode",
|
|
181079
|
+
"Microsoft Sans Serif",
|
|
181080
|
+
"Montserrat",
|
|
181081
|
+
"Noto Sans",
|
|
181082
|
+
"Open Sans",
|
|
181083
|
+
"Palatino Linotype",
|
|
181084
|
+
"Poppins",
|
|
181085
|
+
"Roboto",
|
|
181086
|
+
"Rockwell",
|
|
181087
|
+
"Segoe UI",
|
|
181088
|
+
"Source Sans Pro",
|
|
181089
|
+
"Tahoma",
|
|
181090
|
+
"Times New Roman",
|
|
181091
|
+
"Trebuchet MS",
|
|
181092
|
+
"Tw Cen MT",
|
|
181093
|
+
"Verdana"
|
|
181094
|
+
];
|
|
181095
|
+
var COMMON_FONT_SIZES = [
|
|
181096
|
+
8,
|
|
181097
|
+
9,
|
|
181098
|
+
10,
|
|
181099
|
+
11,
|
|
181100
|
+
12,
|
|
181101
|
+
14,
|
|
181102
|
+
16,
|
|
181103
|
+
18,
|
|
181104
|
+
20,
|
|
181105
|
+
24,
|
|
181106
|
+
28,
|
|
181107
|
+
32,
|
|
181108
|
+
36,
|
|
181109
|
+
40,
|
|
181110
|
+
44,
|
|
181111
|
+
48,
|
|
181112
|
+
54,
|
|
181113
|
+
60,
|
|
181114
|
+
72,
|
|
181115
|
+
96
|
|
181116
|
+
];
|
|
181117
|
+
var CHARACTER_SPACING_OPTIONS = [
|
|
181118
|
+
{ label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
|
|
181119
|
+
{ label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
|
|
181120
|
+
{ label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
|
|
181121
|
+
{ label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
|
|
181122
|
+
{ label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
|
|
181123
|
+
];
|
|
181124
|
+
function textStylePatch(el, changes) {
|
|
181125
|
+
const base = hasTextProperties(el) ? el.textStyle ?? {} : {};
|
|
181126
|
+
return {
|
|
181127
|
+
...hasTextProperties(el) && el.textSegments?.some((segment) => segment.paragraphInsertionStyle) ? {
|
|
181128
|
+
textSegments: el.textSegments.map(
|
|
181129
|
+
(segment) => updateTextSegmentStyle(segment, changes, { updateBodyStyle: false })
|
|
181130
|
+
)
|
|
181131
|
+
} : {},
|
|
181132
|
+
textStyle: {
|
|
181133
|
+
...base,
|
|
181134
|
+
...changes
|
|
181135
|
+
}
|
|
181136
|
+
};
|
|
181137
|
+
}
|
|
180543
181138
|
function copyFormatFromElement(element) {
|
|
180544
181139
|
const result = {};
|
|
180545
181140
|
if (hasShapeProperties(element) && element.shapeStyle) {
|
|
@@ -180614,10 +181209,7 @@ function applyFormatToElement(element, format) {
|
|
|
180614
181209
|
if (format.textStyle && hasTextProperties(updated)) {
|
|
180615
181210
|
updated = {
|
|
180616
181211
|
...updated,
|
|
180617
|
-
textStyle
|
|
180618
|
-
...updated.textStyle,
|
|
180619
|
-
...definedEntries2(format.textStyle)
|
|
180620
|
-
}
|
|
181212
|
+
...textStylePatch(updated, definedEntries2(format.textStyle))
|
|
180621
181213
|
};
|
|
180622
181214
|
}
|
|
180623
181215
|
return updated;
|
|
@@ -180628,6 +181220,24 @@ function hasCopyableFormat(element) {
|
|
|
180628
181220
|
}
|
|
180629
181221
|
return hasShapeProperties(element) || hasTextProperties(element);
|
|
180630
181222
|
}
|
|
181223
|
+
function remapEmptyParagraph(text22, segments, terminator) {
|
|
181224
|
+
const source = segments[0] ?? terminator;
|
|
181225
|
+
const insertionStyle = source?.paragraphInsertionStyle;
|
|
181226
|
+
if (!source || !insertionStyle || segments.length > 1 || segments.length > 0 && source.text !== "" && !isBulletMarkerSegment(source)) {
|
|
181227
|
+
return void 0;
|
|
181228
|
+
}
|
|
181229
|
+
if (text22.length === 0) {
|
|
181230
|
+
return segments.map((segment) => ({ ...segment }));
|
|
181231
|
+
}
|
|
181232
|
+
const first = { ...source };
|
|
181233
|
+
delete first.paragraphInsertionStyle;
|
|
181234
|
+
const bullet = first.bulletInfo;
|
|
181235
|
+
if (bullet && !bullet.none && segments.length > 0) {
|
|
181236
|
+
return [first, { text: text22, style: { ...insertionStyle } }];
|
|
181237
|
+
}
|
|
181238
|
+
delete first.isParagraphBreak;
|
|
181239
|
+
return [{ ...first, text: text22, style: { ...insertionStyle } }];
|
|
181240
|
+
}
|
|
180631
181241
|
function renumberRemappedParagraphs(segments) {
|
|
180632
181242
|
const sequence = createAutoNumberSequence();
|
|
180633
181243
|
let first = true;
|
|
@@ -180677,10 +181287,14 @@ function withoutRenderedBulletPrefix(text22, originalSegments, dedicatedMarker)
|
|
|
180677
181287
|
}
|
|
180678
181288
|
return withoutMarker;
|
|
180679
181289
|
}
|
|
180680
|
-
function
|
|
181290
|
+
function continueListParagraph(segments, donorSegments) {
|
|
180681
181291
|
const donor = donorSegments[0];
|
|
180682
181292
|
const paragraphIndex = donor?.bulletInfo?.paragraphIndex;
|
|
180683
|
-
|
|
181293
|
+
const bullet = resolveParagraphBullet(donor);
|
|
181294
|
+
if (segments.length === 0 || !bullet) {
|
|
181295
|
+
return segments;
|
|
181296
|
+
}
|
|
181297
|
+
if (bullet.isNumbered && (typeof paragraphIndex !== "number" || !Number.isFinite(paragraphIndex))) {
|
|
180684
181298
|
return segments;
|
|
180685
181299
|
}
|
|
180686
181300
|
const [first, ...rest] = segments;
|
|
@@ -180688,13 +181302,13 @@ function continueAutoNumberedParagraph(segments, donorSegments, offset) {
|
|
|
180688
181302
|
...first,
|
|
180689
181303
|
bulletInfo: {
|
|
180690
181304
|
...donor.bulletInfo,
|
|
180691
|
-
paragraphIndex: paragraphIndex +
|
|
181305
|
+
...bullet.isNumbered && typeof paragraphIndex === "number" && Number.isFinite(paragraphIndex) ? { paragraphIndex: paragraphIndex + 1 } : {}
|
|
180692
181306
|
}
|
|
180693
181307
|
};
|
|
180694
181308
|
if (donor.paragraphLevel !== void 0) {
|
|
180695
181309
|
continued.paragraphLevel = donor.paragraphLevel;
|
|
180696
181310
|
}
|
|
180697
|
-
if (isBulletMarkerSegment(donor)) {
|
|
181311
|
+
if (bullet.isNumbered && typeof paragraphIndex === "number" && Number.isFinite(paragraphIndex) && isBulletMarkerSegment(donor)) {
|
|
180698
181312
|
const resolved = resolveParagraphBullet(continued);
|
|
180699
181313
|
if (resolved) {
|
|
180700
181314
|
const trailingWhitespace = donor.text.match(/\s+$/u)?.[0] ?? "";
|
|
@@ -180703,6 +181317,29 @@ function continueAutoNumberedParagraph(segments, donorSegments, offset) {
|
|
|
180703
181317
|
}
|
|
180704
181318
|
return [continued, ...rest];
|
|
180705
181319
|
}
|
|
181320
|
+
function restoreParagraphMetadata2(from, segments) {
|
|
181321
|
+
if (segments.length === 0) {
|
|
181322
|
+
return segments;
|
|
181323
|
+
}
|
|
181324
|
+
const [first, ...rest] = segments;
|
|
181325
|
+
const restored = { ...first };
|
|
181326
|
+
delete restored.paragraphLevel;
|
|
181327
|
+
delete restored.paragraphProperties;
|
|
181328
|
+
delete restored.endParaRunProperties;
|
|
181329
|
+
if (!from) {
|
|
181330
|
+
delete restored.paragraphInsertionStyle;
|
|
181331
|
+
}
|
|
181332
|
+
if (from?.paragraphLevel !== void 0) {
|
|
181333
|
+
restored.paragraphLevel = from.paragraphLevel;
|
|
181334
|
+
}
|
|
181335
|
+
if (from?.paragraphProperties !== void 0) {
|
|
181336
|
+
restored.paragraphProperties = from.paragraphProperties;
|
|
181337
|
+
}
|
|
181338
|
+
if (from?.endParaRunProperties !== void 0) {
|
|
181339
|
+
restored.endParaRunProperties = from.endParaRunProperties;
|
|
181340
|
+
}
|
|
181341
|
+
return [restored, ...rest];
|
|
181342
|
+
}
|
|
180706
181343
|
function matches(text22, paragraph) {
|
|
180707
181344
|
const first = paragraph.segments[0];
|
|
180708
181345
|
const marker = first && isBulletMarkerSegment(first) && (!first.bulletInfo?.autoNumType || first.bulletInfo.paragraphIndex !== void 0) ? first : void 0;
|
|
@@ -180762,6 +181399,9 @@ function isAtomicOriginalSegment(seg) {
|
|
|
180762
181399
|
return seg.fieldType !== void 0 || seg.equationXml !== void 0;
|
|
180763
181400
|
}
|
|
180764
181401
|
function copySegmentMetadata(from, to) {
|
|
181402
|
+
if (!from) {
|
|
181403
|
+
return to;
|
|
181404
|
+
}
|
|
180765
181405
|
if (from.equationXml !== void 0) {
|
|
180766
181406
|
to.equationXml = from.equationXml;
|
|
180767
181407
|
}
|
|
@@ -180782,26 +181422,6 @@ function copySegmentMetadata(from, to) {
|
|
|
180782
181422
|
}
|
|
180783
181423
|
return to;
|
|
180784
181424
|
}
|
|
180785
|
-
function restoreParagraphMetadata(from, segments) {
|
|
180786
|
-
if (segments.length === 0) {
|
|
180787
|
-
return segments;
|
|
180788
|
-
}
|
|
180789
|
-
const [first, ...rest] = segments;
|
|
180790
|
-
const restored = { ...first };
|
|
180791
|
-
delete restored.paragraphLevel;
|
|
180792
|
-
delete restored.paragraphProperties;
|
|
180793
|
-
delete restored.endParaRunProperties;
|
|
180794
|
-
if (from?.paragraphLevel !== void 0) {
|
|
180795
|
-
restored.paragraphLevel = from.paragraphLevel;
|
|
180796
|
-
}
|
|
180797
|
-
if (from?.paragraphProperties !== void 0) {
|
|
180798
|
-
restored.paragraphProperties = from.paragraphProperties;
|
|
180799
|
-
}
|
|
180800
|
-
if (from?.endParaRunProperties !== void 0) {
|
|
180801
|
-
restored.endParaRunProperties = from.endParaRunProperties;
|
|
180802
|
-
}
|
|
180803
|
-
return [restored, ...rest];
|
|
180804
|
-
}
|
|
180805
181425
|
function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
180806
181426
|
const fallbackStyle = { ...elementTextStyle };
|
|
180807
181427
|
if (!originalSegments || originalSegments.length === 0) {
|
|
@@ -180822,7 +181442,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180822
181442
|
const paragraphSources = alignParagraphSources(newParagraphTexts, originalParagraphs);
|
|
180823
181443
|
const firstContentSeg = originalParagraphs.flatMap((paragraph) => paragraph.segments).find((s) => s.text.trim().length > 0);
|
|
180824
181444
|
const baseFallbackStyle = firstContentSeg?.style ? { ...firstContentSeg.style } : fallbackStyle;
|
|
180825
|
-
function remapParagraph(paraNewText, paraOrigSegments) {
|
|
181445
|
+
function remapParagraph(paraNewText, paraOrigSegments, isOriginalParagraph = true) {
|
|
180826
181446
|
if (paraOrigSegments.length === 0) {
|
|
180827
181447
|
return paraNewText.length > 0 ? [{ text: paraNewText, style: { ...baseFallbackStyle } }] : [{ text: "", style: { ...baseFallbackStyle } }];
|
|
180828
181448
|
}
|
|
@@ -180830,12 +181450,8 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180830
181450
|
const dedicatedMarker = isBulletMarkerSegment(firstSegment) && (!firstSegment.bulletInfo?.autoNumType || firstSegment.bulletInfo.paragraphIndex !== void 0) ? firstSegment : void 0;
|
|
180831
181451
|
if (dedicatedMarker) {
|
|
180832
181452
|
const contentSegments = paraOrigSegments.slice(1);
|
|
180833
|
-
const contentText = withoutRenderedBulletPrefix(
|
|
180834
|
-
|
|
180835
|
-
paraOrigSegments,
|
|
180836
|
-
dedicatedMarker
|
|
180837
|
-
);
|
|
180838
|
-
const content = contentSegments.length > 0 ? remapParagraph(contentText, contentSegments) : [{ text: contentText, style: { ...dedicatedMarker.style } }];
|
|
181453
|
+
const contentText = isOriginalParagraph ? withoutRenderedBulletPrefix(paraNewText, paraOrigSegments, dedicatedMarker) : paraNewText;
|
|
181454
|
+
const content = contentSegments.length > 0 ? remapParagraph(contentText, contentSegments, isOriginalParagraph) : [{ text: contentText, style: { ...dedicatedMarker.style } }];
|
|
180839
181455
|
return [dedicatedMarker, ...content];
|
|
180840
181456
|
}
|
|
180841
181457
|
const paragraphBulletInfo = paraOrigSegments[0].bulletInfo;
|
|
@@ -180850,7 +181466,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180850
181466
|
const totalOrigLen = paraOrigSegments.reduce((sum, s) => sum + s.text.length, 0);
|
|
180851
181467
|
if (totalOrigLen === 0) {
|
|
180852
181468
|
const result = [
|
|
180853
|
-
copySegmentMetadata(paraOrigSegments[0], {
|
|
181469
|
+
copySegmentMetadata(isOriginalParagraph ? paraOrigSegments[0] : void 0, {
|
|
180854
181470
|
text: paraNewText,
|
|
180855
181471
|
style: { ...paraOrigSegments[0].style }
|
|
180856
181472
|
})
|
|
@@ -180864,7 +181480,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180864
181480
|
let newPos = 0;
|
|
180865
181481
|
for (let i2 = 0; i2 < paraOrigSegments.length; i2++) {
|
|
180866
181482
|
const origSeg = paraOrigSegments[i2];
|
|
180867
|
-
const isLastSeg = i2 === paraOrigSegments.length - 1 && !isAtomicOriginalSegment(origSeg);
|
|
181483
|
+
const isLastSeg = i2 === paraOrigSegments.length - 1 && (!isOriginalParagraph || !isAtomicOriginalSegment(origSeg));
|
|
180868
181484
|
const origLen = origSeg.text.length;
|
|
180869
181485
|
if (newPos >= paraNewText.length) {
|
|
180870
181486
|
break;
|
|
@@ -180876,7 +181492,7 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180876
181492
|
segText = paraNewText.slice(newPos, newPos + origLen);
|
|
180877
181493
|
}
|
|
180878
181494
|
if (segText.length > 0) {
|
|
180879
|
-
const outSeg = copySegmentMetadata(origSeg, {
|
|
181495
|
+
const outSeg = copySegmentMetadata(isOriginalParagraph ? origSeg : void 0, {
|
|
180880
181496
|
text: segText,
|
|
180881
181497
|
style: { ...origSeg.style }
|
|
180882
181498
|
});
|
|
@@ -180895,10 +181511,13 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180895
181511
|
});
|
|
180896
181512
|
}
|
|
180897
181513
|
if (remapped.length === 0) {
|
|
180898
|
-
const fallback = copySegmentMetadata(
|
|
180899
|
-
|
|
180900
|
-
|
|
180901
|
-
|
|
181514
|
+
const fallback = copySegmentMetadata(
|
|
181515
|
+
isOriginalParagraph ? paraOrigSegments[0] : void 0,
|
|
181516
|
+
{
|
|
181517
|
+
text: paraNewText,
|
|
181518
|
+
style: { ...paraOrigSegments[0].style }
|
|
181519
|
+
}
|
|
181520
|
+
);
|
|
180902
181521
|
if (paragraphBulletInfo) {
|
|
180903
181522
|
fallback.bulletInfo = paragraphBulletInfo;
|
|
180904
181523
|
}
|
|
@@ -180908,31 +181527,27 @@ function remapTextToSegments(newText, originalSegments, elementTextStyle) {
|
|
|
180908
181527
|
}
|
|
180909
181528
|
const output = [];
|
|
180910
181529
|
const lastOrigPara = originalParagraphs[originalParagraphs.length - 1]?.segments;
|
|
180911
|
-
|
|
180912
|
-
const appendStart = Math.max(
|
|
180913
|
-
originalParagraphs.length,
|
|
180914
|
-
lastSourceOffset < 0 ? 0 : paragraphSources.length - lastSourceOffset
|
|
180915
|
-
);
|
|
181530
|
+
let precedingParagraph;
|
|
180916
181531
|
for (let pi = 0; pi < newParagraphTexts.length; pi++) {
|
|
180917
181532
|
if (pi > 0) {
|
|
180918
181533
|
const precedingOrigPara = originalParagraphs[paragraphSources[pi - 1] ?? -1]?.segments ?? [];
|
|
180919
181534
|
const breakStyle = precedingOrigPara[0]?.style ? { ...precedingOrigPara[0].style } : { ...baseFallbackStyle };
|
|
180920
|
-
|
|
181535
|
+
const terminator = originalParagraphs[paragraphSources[pi - 1] ?? -1]?.terminator;
|
|
181536
|
+
output.push(
|
|
181537
|
+
terminator?.paragraphInsertionStyle && newParagraphTexts[pi - 1] === "" ? { ...terminator, text: "\n", isParagraphBreak: true } : { text: "\n", style: breakStyle, isParagraphBreak: true }
|
|
181538
|
+
);
|
|
180921
181539
|
}
|
|
180922
181540
|
const originalParagraph = originalParagraphs[paragraphSources[pi] ?? -1];
|
|
180923
|
-
const origPara = originalParagraph?.segments ?? lastOrigPara ?? [];
|
|
180924
|
-
let paraSegments =
|
|
181541
|
+
const origPara = originalParagraph?.segments ?? precedingParagraph ?? lastOrigPara ?? [];
|
|
181542
|
+
let paraSegments = restoreParagraphMetadata2(
|
|
180925
181543
|
originalParagraph?.segments[0] ?? originalParagraph?.terminator,
|
|
180926
|
-
remapParagraph(newParagraphTexts[pi], origPara)
|
|
181544
|
+
(originalParagraph && remapEmptyParagraph(newParagraphTexts[pi], origPara, originalParagraph.terminator)) ?? remapParagraph(newParagraphTexts[pi], origPara, originalParagraph !== void 0)
|
|
180927
181545
|
);
|
|
180928
|
-
if (!originalParagraph &&
|
|
180929
|
-
paraSegments =
|
|
180930
|
-
paraSegments,
|
|
180931
|
-
lastOrigPara ?? [],
|
|
180932
|
-
pi - originalParagraphs.length + 1
|
|
180933
|
-
);
|
|
181546
|
+
if (!originalParagraph && precedingParagraph) {
|
|
181547
|
+
paraSegments = continueListParagraph(paraSegments, precedingParagraph);
|
|
180934
181548
|
}
|
|
180935
181549
|
output.push(...paraSegments);
|
|
181550
|
+
precedingParagraph = paraSegments;
|
|
180936
181551
|
}
|
|
180937
181552
|
if (paragraphSources.some((source, index) => source !== void 0 && source !== index)) {
|
|
180938
181553
|
return renumberRemappedParagraphs(output);
|
|
@@ -181850,6 +182465,9 @@ function buildSegmentAttrs(seg) {
|
|
|
181850
182465
|
if (seg.endParaRunProperties) {
|
|
181851
182466
|
a.pr = JSON.stringify(seg.endParaRunProperties);
|
|
181852
182467
|
}
|
|
182468
|
+
if (seg.paragraphInsertionStyle) {
|
|
182469
|
+
a.pi = JSON.stringify(seg.paragraphInsertionStyle);
|
|
182470
|
+
}
|
|
181853
182471
|
if (typeof seg.fieldType === "string") {
|
|
181854
182472
|
a.ft = seg.fieldType;
|
|
181855
182473
|
}
|
|
@@ -181956,6 +182574,12 @@ function decodeDelta(delta) {
|
|
|
181956
182574
|
} catch {
|
|
181957
182575
|
}
|
|
181958
182576
|
}
|
|
182577
|
+
if (a.pi) {
|
|
182578
|
+
try {
|
|
182579
|
+
seg.paragraphInsertionStyle = JSON.parse(a.pi);
|
|
182580
|
+
} catch {
|
|
182581
|
+
}
|
|
182582
|
+
}
|
|
181959
182583
|
if (a.ft) {
|
|
181960
182584
|
seg.fieldType = a.ft;
|
|
181961
182585
|
}
|
|
@@ -182144,6 +182768,7 @@ var COMPLEX_ELEMENT_FIELDS = {
|
|
|
182144
182768
|
children: "_ch",
|
|
182145
182769
|
paragraphIndents: "_pi",
|
|
182146
182770
|
rawXml: "_rx",
|
|
182771
|
+
inheritedTransform: "_it",
|
|
182147
182772
|
extLstXml: "_elx",
|
|
182148
182773
|
actionClick: "_ac",
|
|
182149
182774
|
actionHover: "_av",
|
|
@@ -190146,86 +190771,6 @@ function projectDrawingShapes(elementId, shapes, viewBox, palette, style) {
|
|
|
190146
190771
|
function styleShadowFilter(style) {
|
|
190147
190772
|
return styleShadow(style);
|
|
190148
190773
|
}
|
|
190149
|
-
function textFontSizePxToPt(fontSizePx2) {
|
|
190150
|
-
return Math.round(fontSizePx2 * (72 / 96) * 100) / 100;
|
|
190151
|
-
}
|
|
190152
|
-
function textFontSizePtToPx(fontSizePt) {
|
|
190153
|
-
return fontSizePt * (96 / 72);
|
|
190154
|
-
}
|
|
190155
|
-
var COMMON_FONT_FAMILIES = [
|
|
190156
|
-
"Abadi",
|
|
190157
|
-
"Aptos",
|
|
190158
|
-
"Aptos Display",
|
|
190159
|
-
"Arial",
|
|
190160
|
-
"Arial Black",
|
|
190161
|
-
"Arial Narrow",
|
|
190162
|
-
"Bahnschrift",
|
|
190163
|
-
"Book Antiqua",
|
|
190164
|
-
"Bookman Old Style",
|
|
190165
|
-
"Calibri",
|
|
190166
|
-
"Calibri Light",
|
|
190167
|
-
"Cambria",
|
|
190168
|
-
"Candara",
|
|
190169
|
-
"Century Gothic",
|
|
190170
|
-
"Comic Sans MS",
|
|
190171
|
-
"Consolas",
|
|
190172
|
-
"Corbel",
|
|
190173
|
-
"Courier New",
|
|
190174
|
-
"Franklin Gothic Book",
|
|
190175
|
-
"Franklin Gothic Medium",
|
|
190176
|
-
"Garamond",
|
|
190177
|
-
"Georgia",
|
|
190178
|
-
"Gill Sans MT",
|
|
190179
|
-
"Helvetica",
|
|
190180
|
-
"Impact",
|
|
190181
|
-
"Inter",
|
|
190182
|
-
"Lucida Console",
|
|
190183
|
-
"Lucida Sans Unicode",
|
|
190184
|
-
"Microsoft Sans Serif",
|
|
190185
|
-
"Montserrat",
|
|
190186
|
-
"Noto Sans",
|
|
190187
|
-
"Open Sans",
|
|
190188
|
-
"Palatino Linotype",
|
|
190189
|
-
"Poppins",
|
|
190190
|
-
"Roboto",
|
|
190191
|
-
"Rockwell",
|
|
190192
|
-
"Segoe UI",
|
|
190193
|
-
"Source Sans Pro",
|
|
190194
|
-
"Tahoma",
|
|
190195
|
-
"Times New Roman",
|
|
190196
|
-
"Trebuchet MS",
|
|
190197
|
-
"Tw Cen MT",
|
|
190198
|
-
"Verdana"
|
|
190199
|
-
];
|
|
190200
|
-
var COMMON_FONT_SIZES = [
|
|
190201
|
-
8,
|
|
190202
|
-
9,
|
|
190203
|
-
10,
|
|
190204
|
-
11,
|
|
190205
|
-
12,
|
|
190206
|
-
14,
|
|
190207
|
-
16,
|
|
190208
|
-
18,
|
|
190209
|
-
20,
|
|
190210
|
-
24,
|
|
190211
|
-
28,
|
|
190212
|
-
32,
|
|
190213
|
-
36,
|
|
190214
|
-
40,
|
|
190215
|
-
44,
|
|
190216
|
-
48,
|
|
190217
|
-
54,
|
|
190218
|
-
60,
|
|
190219
|
-
72,
|
|
190220
|
-
96
|
|
190221
|
-
];
|
|
190222
|
-
var CHARACTER_SPACING_OPTIONS = [
|
|
190223
|
-
{ label: "Very Tight", i18nKey: "pptx.text.characterSpacingVeryTight", value: -150 },
|
|
190224
|
-
{ label: "Tight", i18nKey: "pptx.text.characterSpacingTight", value: -75 },
|
|
190225
|
-
{ label: "Normal", i18nKey: "pptx.text.characterSpacingNormal", value: 0 },
|
|
190226
|
-
{ label: "Loose", i18nKey: "pptx.text.characterSpacingLoose", value: 75 },
|
|
190227
|
-
{ label: "Very Loose", i18nKey: "pptx.text.characterSpacingVeryLoose", value: 150 }
|
|
190228
|
-
];
|
|
190229
190774
|
var GOOGLE_FONTS_CSS2_BASE = "https://fonts.googleapis.com/css2";
|
|
190230
190775
|
var GOOGLE_WEBFONT_AXIS = "ital,wght@0,400;0,700;1,400;1,700";
|
|
190231
190776
|
var DISPLAY_PARAM = "display=swap";
|
|
@@ -192436,7 +192981,7 @@ function isBulletMarker(segment) {
|
|
|
192436
192981
|
const marker = bullet.char ? `${bullet.char} ` : bullet.imageRelId || bullet.imageDataUrl ? "\u{1F4CE} " : "\u2022 ";
|
|
192437
192982
|
return segment.text === marker;
|
|
192438
192983
|
}
|
|
192439
|
-
function
|
|
192984
|
+
function isParagraphSeparator(segment) {
|
|
192440
192985
|
return Boolean(segment.isParagraphBreak) || segment.text === "\n" && !segment.isLineBreak;
|
|
192441
192986
|
}
|
|
192442
192987
|
function groupElementParagraphs(element) {
|
|
@@ -192450,7 +192995,7 @@ function groupElementParagraphs(element) {
|
|
|
192450
192995
|
}
|
|
192451
192996
|
const groups = [{ content: [] }];
|
|
192452
192997
|
for (const segment of segments) {
|
|
192453
|
-
if (
|
|
192998
|
+
if (isParagraphSeparator(segment)) {
|
|
192454
192999
|
groups.push({ content: [] });
|
|
192455
193000
|
continue;
|
|
192456
193001
|
}
|
|
@@ -192542,8 +193087,37 @@ function buildElementClipboardPayload(element, isTemplate) {
|
|
|
192542
193087
|
function cloneElementForPaste(element, options = {}) {
|
|
192543
193088
|
const clone3 = structuredClone(element);
|
|
192544
193089
|
const intoTemplate = options.intoTemplate ?? false;
|
|
192545
|
-
|
|
192546
|
-
|
|
193090
|
+
const modelIds = /* @__PURE__ */ new Map();
|
|
193091
|
+
const nativeIds = /* @__PURE__ */ new Map();
|
|
193092
|
+
const mintId = (node) => {
|
|
193093
|
+
const id = makeCloneId(intoTemplate, element.id);
|
|
193094
|
+
modelIds.set(node.id, id);
|
|
193095
|
+
if (node.shapeId !== void 0) {
|
|
193096
|
+
nativeIds.set(node.shapeId, id);
|
|
193097
|
+
}
|
|
193098
|
+
delete node.shapeId;
|
|
193099
|
+
return id;
|
|
193100
|
+
};
|
|
193101
|
+
clone3.id = mintId(clone3);
|
|
193102
|
+
reassignDescendantIds(clone3, mintId);
|
|
193103
|
+
const remapConnections = (node) => {
|
|
193104
|
+
if (node.type === "group") {
|
|
193105
|
+
node.children.forEach(remapConnections);
|
|
193106
|
+
}
|
|
193107
|
+
if (node.type !== "connector") {
|
|
193108
|
+
return;
|
|
193109
|
+
}
|
|
193110
|
+
for (const ref of [
|
|
193111
|
+
node.shapeStyle?.connectorStartConnection,
|
|
193112
|
+
node.shapeStyle?.connectorEndConnection
|
|
193113
|
+
]) {
|
|
193114
|
+
if (!ref?.shapeId) {
|
|
193115
|
+
continue;
|
|
193116
|
+
}
|
|
193117
|
+
ref.shapeId = modelIds.get(ref.shapeId) ?? nativeIds.get(ref.shapeId) ?? ref.shapeId;
|
|
193118
|
+
}
|
|
193119
|
+
};
|
|
193120
|
+
remapConnections(clone3);
|
|
192547
193121
|
clone3.x += options.offsetX ?? PASTE_OFFSET_PX;
|
|
192548
193122
|
clone3.y += options.offsetY ?? PASTE_OFFSET_PX;
|
|
192549
193123
|
return clone3;
|
|
@@ -192784,6 +193358,7 @@ var GUARD_DEFAULTS = {
|
|
|
192784
193358
|
canEdit: true,
|
|
192785
193359
|
isPresenting: false,
|
|
192786
193360
|
hasSelection: false,
|
|
193361
|
+
canPaste: true,
|
|
192787
193362
|
isEditingText: false,
|
|
192788
193363
|
isDrawing: false,
|
|
192789
193364
|
isTextInputTarget: false
|
|
@@ -192841,6 +193416,9 @@ function mapEditorKey(input, guard = {}) {
|
|
|
192841
193416
|
if (mod && !alt) {
|
|
192842
193417
|
const chord2 = resolveChord(key2, Boolean(input.shiftKey), state.hasSelection);
|
|
192843
193418
|
if (chord2) {
|
|
193419
|
+
if (chord2.action === "paste" && state.canPaste === false) {
|
|
193420
|
+
return NO_ACTION;
|
|
193421
|
+
}
|
|
192844
193422
|
return chord2;
|
|
192845
193423
|
}
|
|
192846
193424
|
}
|
|
@@ -196151,6 +196729,12 @@ var COMMON_FONTS = [
|
|
|
196151
196729
|
"Tw Cen MT",
|
|
196152
196730
|
"Verdana"
|
|
196153
196731
|
];
|
|
196732
|
+
function prepareElementForInsertion(element, target) {
|
|
196733
|
+
if (!target.canEdit || target.mode !== "edit" || !target.hasActiveSlide || target.editTemplateMode) {
|
|
196734
|
+
return void 0;
|
|
196735
|
+
}
|
|
196736
|
+
return cloneElementForPaste(element, { offsetX: 0, offsetY: 0 });
|
|
196737
|
+
}
|
|
196154
196738
|
function isHeaderFooterDateTextVisible(draft) {
|
|
196155
196739
|
return Boolean(draft.hasDateTime) && !draft.dateTimeAuto;
|
|
196156
196740
|
}
|
|
@@ -199880,10 +200464,15 @@ function resolveSlideSizeRescaleTransform(oldSize, newSize, mode) {
|
|
|
199880
200464
|
};
|
|
199881
200465
|
}
|
|
199882
200466
|
function scaleTextSegment(segment, scale2) {
|
|
199883
|
-
|
|
200467
|
+
const insertion = segment.paragraphInsertionStyle;
|
|
200468
|
+
if (typeof segment.style.fontSize !== "number" && typeof insertion?.fontSize !== "number") {
|
|
199884
200469
|
return segment;
|
|
199885
200470
|
}
|
|
199886
|
-
return {
|
|
200471
|
+
return {
|
|
200472
|
+
...segment,
|
|
200473
|
+
...typeof segment.style.fontSize === "number" ? { style: { ...segment.style, fontSize: segment.style.fontSize * scale2 } } : {},
|
|
200474
|
+
...typeof insertion?.fontSize === "number" ? { paragraphInsertionStyle: { ...insertion, fontSize: insertion.fontSize * scale2 } } : {}
|
|
200475
|
+
};
|
|
199887
200476
|
}
|
|
199888
200477
|
function scaleFontSizesDeep(element, scale2) {
|
|
199889
200478
|
let next = element;
|
|
@@ -200696,6 +201285,50 @@ function wrapForeignObjectSvg(bodyMarkup, tile) {
|
|
|
200696
201285
|
const { viewBoxX, viewBoxY, viewBoxWidth, viewBoxHeight, outputWidth, outputHeight } = tile;
|
|
200697
201286
|
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>`;
|
|
200698
201287
|
}
|
|
201288
|
+
var DEFAULTS2 = {
|
|
201289
|
+
fitPadding: { horizontal: 0, vertical: 0 },
|
|
201290
|
+
maxFitScale: null
|
|
201291
|
+
};
|
|
201292
|
+
function validPadding(value, fallback) {
|
|
201293
|
+
return Number.isFinite(value) && value >= 0 ? value : fallback;
|
|
201294
|
+
}
|
|
201295
|
+
function resolveViewportFitOptions(options = {}, defaults = DEFAULTS2) {
|
|
201296
|
+
const base = typeof defaults.fitPadding === "number" ? { horizontal: defaults.fitPadding, vertical: defaults.fitPadding } : defaults.fitPadding;
|
|
201297
|
+
const padding = options.fitPadding ?? base;
|
|
201298
|
+
const horizontal = typeof padding === "number" ? padding : padding.horizontal;
|
|
201299
|
+
const vertical = typeof padding === "number" ? padding : padding.vertical;
|
|
201300
|
+
const cap = options.maxFitScale;
|
|
201301
|
+
return {
|
|
201302
|
+
fitPadding: {
|
|
201303
|
+
horizontal: validPadding(horizontal, base.horizontal),
|
|
201304
|
+
vertical: validPadding(vertical, base.vertical)
|
|
201305
|
+
},
|
|
201306
|
+
maxFitScale: cap === null ? null : typeof cap === "number" && Number.isFinite(cap) && cap > 0 ? cap : defaults.maxFitScale
|
|
201307
|
+
};
|
|
201308
|
+
}
|
|
201309
|
+
function calculateViewportFit(input, defaults = DEFAULTS2) {
|
|
201310
|
+
const { fitPadding, maxFitScale } = resolveViewportFitOptions(input, defaults);
|
|
201311
|
+
const availableWidth = Math.max(
|
|
201312
|
+
0,
|
|
201313
|
+
validPadding(input.viewportWidth, 0) - 2 * fitPadding.horizontal - validPadding(input.horizontalGutter ?? 0, 0)
|
|
201314
|
+
);
|
|
201315
|
+
const availableHeight = Math.max(
|
|
201316
|
+
0,
|
|
201317
|
+
validPadding(input.viewportHeight, 0) - 2 * fitPadding.vertical - validPadding(input.verticalGutter ?? 0, 0)
|
|
201318
|
+
);
|
|
201319
|
+
const fallback = typeof input.fallbackScale === "number" && Number.isFinite(input.fallbackScale) && input.fallbackScale > 0 ? input.fallbackScale : 1;
|
|
201320
|
+
const validCanvas = Number.isFinite(input.canvasWidth) && input.canvasWidth > 0 && Number.isFinite(input.canvasHeight) && input.canvasHeight > 0;
|
|
201321
|
+
const scale2 = availableWidth > 0 && availableHeight > 0 && validCanvas ? Math.min(
|
|
201322
|
+
availableWidth / input.canvasWidth,
|
|
201323
|
+
availableHeight / input.canvasHeight,
|
|
201324
|
+
maxFitScale ?? Number.POSITIVE_INFINITY
|
|
201325
|
+
) : fallback;
|
|
201326
|
+
return {
|
|
201327
|
+
scale: Number.isFinite(scale2) && scale2 > 0 ? scale2 : fallback,
|
|
201328
|
+
availableWidth,
|
|
201329
|
+
availableHeight
|
|
201330
|
+
};
|
|
201331
|
+
}
|
|
200699
201332
|
var FALLBACK_DOWNLOAD_NAME = "presentation.pptx";
|
|
200700
201333
|
var REVOKE_DELAY_MS = 200;
|
|
200701
201334
|
var OPEN_REVOKE_DELAY_MS = 6e4;
|
|
@@ -203290,6 +203923,7 @@ exports.applyFindReplacements = applyFindReplacements;
|
|
|
203290
203923
|
exports.applyFormatToElement = applyFormatToElement;
|
|
203291
203924
|
exports.applyHighlightClickStyle = applyHighlightClickStyle;
|
|
203292
203925
|
exports.applyImagePathPatches = applyImagePathPatches;
|
|
203926
|
+
exports.applyListStyleUpdate = applyListStyleUpdate;
|
|
203293
203927
|
exports.applyMasterViewCrudAction = applyMasterViewCrudAction;
|
|
203294
203928
|
exports.applyMotionPathPreset = applyMotionPathPreset;
|
|
203295
203929
|
exports.applyOleDocumentParagraphEdit = applyOleDocumentParagraphEdit;
|
|
@@ -203404,6 +204038,7 @@ exports.buildThemeColorMap = buildThemeColorMap;
|
|
|
203404
204038
|
exports.buildThemeColorSwatchGrid = buildThemeColorSwatchGrid;
|
|
203405
204039
|
exports.buildTiledSlidesPdfBytes = buildTiledSlidesPdfBytes;
|
|
203406
204040
|
exports.buildUserFontFaceStyles = buildUserFontFaceStyles;
|
|
204041
|
+
exports.calculateViewportFit = calculateViewportFit;
|
|
203407
204042
|
exports.canAddTopLevelNode = canAddTopLevelNode;
|
|
203408
204043
|
exports.canCommitActionType = canCommitActionType;
|
|
203409
204044
|
exports.canDrillDown = canDrillDown;
|
|
@@ -203536,6 +204171,7 @@ exports.downloadBlob = downloadBlob;
|
|
|
203536
204171
|
exports.downloadDataUrl = downloadDataUrl;
|
|
203537
204172
|
exports.editCommentInList = editCommentInList;
|
|
203538
204173
|
exports.elementActionToPptxAction = elementActionToPptxAction;
|
|
204174
|
+
exports.elementBulletKind = elementBulletKind;
|
|
203539
204175
|
exports.elementIdSelector = elementIdSelector;
|
|
203540
204176
|
exports.elementLockTogglePatch = elementLockTogglePatch;
|
|
203541
204177
|
exports.encodeGif = encodeGif;
|
|
@@ -203805,6 +204441,7 @@ exports.playGroup = playGroup;
|
|
|
203805
204441
|
exports.playSlideTransitionPreview = playSlideTransitionPreview;
|
|
203806
204442
|
exports.polygonsToSvgPath = polygonsToSvgPath;
|
|
203807
204443
|
exports.pptxActionToElementAction = pptxActionToElementAction;
|
|
204444
|
+
exports.prepareElementForInsertion = prepareElementForInsertion;
|
|
203808
204445
|
exports.preprocessCssForCapture = preprocessCssForCapture;
|
|
203809
204446
|
exports.presentationBaseName = presentationBaseName;
|
|
203810
204447
|
exports.presentationEntrySlideIndex = presentationEntrySlideIndex;
|
|
@@ -203928,6 +204565,7 @@ exports.resolveTransitionDurationMs = resolveTransitionDurationMs;
|
|
|
203928
204565
|
exports.resolveTransitionSoundAction = resolveTransitionSoundAction;
|
|
203929
204566
|
exports.resolveTransportForServerUrl = resolveTransportForServerUrl;
|
|
203930
204567
|
exports.resolveViewerAddinRows = resolveViewerAddinRows;
|
|
204568
|
+
exports.resolveViewportFitOptions = resolveViewportFitOptions;
|
|
203931
204569
|
exports.restoreFilteredSeries = restoreFilteredSeries;
|
|
203932
204570
|
exports.restoreSegmentSelection = restoreSegmentSelection;
|
|
203933
204571
|
exports.restoreSessionDeck = restoreSessionDeck;
|
|
@@ -203955,6 +204593,7 @@ exports.segmentsToEditorHtml = segmentsToEditorHtml;
|
|
|
203955
204593
|
exports.segmentsToParagraphs = segmentsToParagraphs;
|
|
203956
204594
|
exports.segmentsToPlainText = segmentsToPlainText;
|
|
203957
204595
|
exports.selectGoogleWebfontFamilies = selectGoogleWebfontFamilies;
|
|
204596
|
+
exports.selectedParagraphBulletKind = selectedParagraphBulletKind;
|
|
203958
204597
|
exports.sendBackward = sendBackward;
|
|
203959
204598
|
exports.sendToBack = sendToBack;
|
|
203960
204599
|
exports.seriesSecondaryAxisPatch = seriesSecondaryAxisPatch;
|
|
@@ -204063,6 +204702,7 @@ exports.updateMasterViewElement = updateMasterViewElement;
|
|
|
204063
204702
|
exports.updateMergeAttrsInRawXml = updateMergeAttrsInRawXml;
|
|
204064
204703
|
exports.updateSmartArtNodeText = updateSmartArtNodeText;
|
|
204065
204704
|
exports.updateTagInCollections = updateTagInCollections;
|
|
204705
|
+
exports.updateTextSegmentStyle = updateTextSegmentStyle;
|
|
204066
204706
|
exports.validateMediaTrimRange = validateMediaTrimRange;
|
|
204067
204707
|
exports.validateRoomId = validateRoomId;
|
|
204068
204708
|
exports.vermilionDarkColors = vermilionDarkColors;
|