pptx-react-viewer 4.47.0 → 4.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/{AiChatPanel-6S4LWXGM.mjs → AiChatPanel-NKTBHT5B.mjs} +1 -1
- package/dist/AiChatPanel-NKTBHT5B.mjs.br +0 -0
- package/dist/AiChatPanel-NKTBHT5B.mjs.gz +0 -0
- package/dist/{AiChatPanel-IEM43TTZ.js → AiChatPanel-S4WNQCY4.js} +9 -9
- package/dist/AiChatPanel-S4WNQCY4.js.br +0 -0
- package/dist/AiChatPanel-S4WNQCY4.js.gz +0 -0
- package/dist/{chunk-SSANGQ35.js → chunk-5FAX7F3O.js} +1349 -1347
- package/dist/chunk-5FAX7F3O.js.br +0 -0
- package/dist/chunk-5FAX7F3O.js.gz +0 -0
- package/dist/{chunk-OWZSRPAH.mjs → chunk-H7JRMKYC.mjs} +85 -83
- package/dist/chunk-H7JRMKYC.mjs.br +0 -0
- package/dist/chunk-H7JRMKYC.mjs.gz +0 -0
- package/dist/{chunk-MA2BI7LX.js → chunk-JAI42EXQ.js} +0 -4
- package/dist/chunk-JAI42EXQ.js.br +0 -0
- package/dist/{chunk-MA2BI7LX.js.gz → chunk-JAI42EXQ.js.gz} +0 -0
- package/dist/{chunk-HDOR67HF.mjs → chunk-JHQHAO43.mjs} +53 -50
- package/dist/chunk-JHQHAO43.mjs.br +0 -0
- package/dist/chunk-JHQHAO43.mjs.gz +0 -0
- package/dist/{chunk-MRSGNERC.js → chunk-JKZNL6HP.js} +245 -242
- package/dist/chunk-JKZNL6HP.js.br +0 -0
- package/dist/chunk-JKZNL6HP.js.gz +0 -0
- package/dist/{chunk-BVQSH5SS.mjs → chunk-PFV626ED.mjs} +1 -1
- package/dist/chunk-PFV626ED.mjs.br +0 -0
- package/dist/chunk-PFV626ED.mjs.gz +0 -0
- package/dist/index.js +24 -24
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +8 -1
- package/dist/internals.js +81 -81
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +2 -2
- 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/viewer/index.js +19 -19
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +3 -3
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -3
- package/dist/AiChatPanel-6S4LWXGM.mjs.br +0 -0
- package/dist/AiChatPanel-6S4LWXGM.mjs.gz +0 -0
- package/dist/AiChatPanel-IEM43TTZ.js.br +0 -0
- package/dist/AiChatPanel-IEM43TTZ.js.gz +0 -0
- package/dist/chunk-BVQSH5SS.mjs.br +0 -0
- package/dist/chunk-BVQSH5SS.mjs.gz +0 -0
- package/dist/chunk-HDOR67HF.mjs.br +0 -0
- package/dist/chunk-HDOR67HF.mjs.gz +0 -0
- package/dist/chunk-MA2BI7LX.js.br +0 -0
- package/dist/chunk-MRSGNERC.js.br +0 -0
- package/dist/chunk-MRSGNERC.js.gz +0 -0
- package/dist/chunk-OWZSRPAH.mjs.br +0 -0
- package/dist/chunk-OWZSRPAH.mjs.gz +0 -0
- package/dist/chunk-SSANGQ35.js.br +0 -0
- package/dist/chunk-SSANGQ35.js.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJAI42EXQ_js = require('./chunk-JAI42EXQ.js');
|
|
4
4
|
var pptx = require('ooxml-ui/pptx');
|
|
5
5
|
var React17 = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -764,9 +764,9 @@ function serializeHistoryDocument(snapshot) {
|
|
|
764
764
|
}
|
|
765
765
|
function recordExplicitSlideUpdate(past, future, previous, before, label, maxDepth) {
|
|
766
766
|
if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
|
|
767
|
-
past.push(
|
|
767
|
+
past.push(chunkJAI42EXQ_js.cloneHistorySnapshot(previous));
|
|
768
768
|
}
|
|
769
|
-
past.push({ ...
|
|
769
|
+
past.push({ ...chunkJAI42EXQ_js.cloneHistorySnapshot(before), actionLabel: label });
|
|
770
770
|
while (past.length > Math.max(1, maxDepth)) {
|
|
771
771
|
past.shift();
|
|
772
772
|
}
|
|
@@ -856,8 +856,8 @@ function useEditorHistory(input) {
|
|
|
856
856
|
width: canvasSize.width,
|
|
857
857
|
height: canvasSize.height,
|
|
858
858
|
activeSlideIndex,
|
|
859
|
-
slides: slides.map(
|
|
860
|
-
templateElementsBySlideId:
|
|
859
|
+
slides: slides.map(chunkJAI42EXQ_js.cloneSlide),
|
|
860
|
+
templateElementsBySlideId: chunkJAI42EXQ_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
|
|
861
861
|
...actionLabel ? { actionLabel } : {}
|
|
862
862
|
};
|
|
863
863
|
},
|
|
@@ -870,9 +870,9 @@ function useEditorHistory(input) {
|
|
|
870
870
|
width: snapshot.width,
|
|
871
871
|
height: snapshot.height
|
|
872
872
|
});
|
|
873
|
-
setSlides(snapshot.slides.map(
|
|
873
|
+
setSlides(snapshot.slides.map(chunkJAI42EXQ_js.cloneSlide));
|
|
874
874
|
setTemplateElementsBySlideId(
|
|
875
|
-
|
|
875
|
+
chunkJAI42EXQ_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
|
|
876
876
|
);
|
|
877
877
|
setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
|
|
878
878
|
setSelectedElementIds([]);
|
|
@@ -911,8 +911,8 @@ function useEditorHistory(input) {
|
|
|
911
911
|
const currentSnapshot = buildHistorySnapshot(previousSnapshot.actionLabel);
|
|
912
912
|
historyFutureRef.current.push(currentSnapshot);
|
|
913
913
|
isApplyingHistoryRef.current = true;
|
|
914
|
-
const nextSnapshot =
|
|
915
|
-
lastHistorySnapshotRef.current =
|
|
914
|
+
const nextSnapshot = chunkJAI42EXQ_js.cloneHistorySnapshot(previousSnapshot);
|
|
915
|
+
lastHistorySnapshotRef.current = chunkJAI42EXQ_js.cloneHistorySnapshot(nextSnapshot);
|
|
916
916
|
lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
|
|
917
917
|
applyHistorySnapshot(nextSnapshot);
|
|
918
918
|
updateHistoryAvailability();
|
|
@@ -933,8 +933,8 @@ function useEditorHistory(input) {
|
|
|
933
933
|
const currentSnapshot = buildHistorySnapshot(nextSnapshot.actionLabel);
|
|
934
934
|
historyPastRef.current.push(currentSnapshot);
|
|
935
935
|
isApplyingHistoryRef.current = true;
|
|
936
|
-
const targetSnapshot =
|
|
937
|
-
lastHistorySnapshotRef.current =
|
|
936
|
+
const targetSnapshot = chunkJAI42EXQ_js.cloneHistorySnapshot(nextSnapshot);
|
|
937
|
+
lastHistorySnapshotRef.current = chunkJAI42EXQ_js.cloneHistorySnapshot(targetSnapshot);
|
|
938
938
|
lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
|
|
939
939
|
applyHistorySnapshot(targetSnapshot);
|
|
940
940
|
updateHistoryAvailability();
|
|
@@ -952,7 +952,7 @@ function useEditorHistory(input) {
|
|
|
952
952
|
historyPastRef.current = [];
|
|
953
953
|
historyFutureRef.current = [];
|
|
954
954
|
if (initialSnapshot) {
|
|
955
|
-
const clonedInitial =
|
|
955
|
+
const clonedInitial = chunkJAI42EXQ_js.cloneHistorySnapshot(initialSnapshot);
|
|
956
956
|
lastHistorySnapshotRef.current = clonedInitial;
|
|
957
957
|
lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
|
|
958
958
|
} else {
|
|
@@ -1034,8 +1034,8 @@ function useEditorHistory(input) {
|
|
|
1034
1034
|
updateHistoryAvailability
|
|
1035
1035
|
]);
|
|
1036
1036
|
const commitSlides = (nextSlides, label, beforeSlides = slides) => {
|
|
1037
|
-
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(
|
|
1038
|
-
const after = { ...before, slides: nextSlides.map(
|
|
1037
|
+
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunkJAI42EXQ_js.cloneSlide) };
|
|
1038
|
+
const after = { ...before, slides: nextSlides.map(chunkJAI42EXQ_js.cloneSlide) };
|
|
1039
1039
|
recordExplicitSlideUpdate(
|
|
1040
1040
|
historyPastRef.current,
|
|
1041
1041
|
historyFutureRef.current,
|
|
@@ -1044,7 +1044,7 @@ function useEditorHistory(input) {
|
|
|
1044
1044
|
label,
|
|
1045
1045
|
maxHistoryEntries
|
|
1046
1046
|
);
|
|
1047
|
-
lastHistorySnapshotRef.current =
|
|
1047
|
+
lastHistorySnapshotRef.current = chunkJAI42EXQ_js.cloneHistorySnapshot(after);
|
|
1048
1048
|
lastHistorySerializedRef.current = serializeHistoryDocument(after);
|
|
1049
1049
|
isApplyingHistoryRef.current = false;
|
|
1050
1050
|
setSlides(nextSlides);
|
|
@@ -1104,18 +1104,18 @@ function useViewportFit(canvasSize, viewportRef, options, viewportNode) {
|
|
|
1104
1104
|
if (viewportNode === null) {
|
|
1105
1105
|
return;
|
|
1106
1106
|
}
|
|
1107
|
-
let
|
|
1107
|
+
let stopObserving = null;
|
|
1108
1108
|
let raf = 0;
|
|
1109
|
-
const measure = (
|
|
1109
|
+
const measure = (client) => {
|
|
1110
1110
|
const { availableWidth: width, availableHeight: height } = pptx.calculateViewportFit({
|
|
1111
|
-
viewportWidth:
|
|
1112
|
-
viewportHeight:
|
|
1111
|
+
viewportWidth: client.width,
|
|
1112
|
+
viewportHeight: client.height,
|
|
1113
1113
|
canvasWidth: canvasSize.width,
|
|
1114
1114
|
canvasHeight: canvasSize.height,
|
|
1115
1115
|
// The host's padding when it gave one, else the width-aware editor default.
|
|
1116
1116
|
...pptx.resolveViewportFitOptions(
|
|
1117
1117
|
{ fitPadding: hostPadding },
|
|
1118
|
-
pptx.editorViewportFitFor(
|
|
1118
|
+
pptx.editorViewportFitFor(client.width)
|
|
1119
1119
|
)
|
|
1120
1120
|
});
|
|
1121
1121
|
if (width > 0 && height > 0) {
|
|
@@ -1128,14 +1128,12 @@ function useViewportFit(canvasSize, viewportRef, options, viewportNode) {
|
|
|
1128
1128
|
raf = requestAnimationFrame(attach);
|
|
1129
1129
|
return;
|
|
1130
1130
|
}
|
|
1131
|
-
|
|
1132
|
-
observer.observe(element);
|
|
1133
|
-
measure(element);
|
|
1131
|
+
stopObserving = pptx.observeViewportClientSize(element, measure);
|
|
1134
1132
|
};
|
|
1135
1133
|
attach();
|
|
1136
1134
|
return () => {
|
|
1137
1135
|
cancelAnimationFrame(raf);
|
|
1138
|
-
|
|
1136
|
+
stopObserving?.();
|
|
1139
1137
|
};
|
|
1140
1138
|
}, [viewportRef, viewportNode, canvasSize.width, canvasSize.height, hostPadding]);
|
|
1141
1139
|
return { editorDimensions, setEditorDimensions, effectiveEditorDimensions, fitScale };
|
|
@@ -1232,22 +1230,22 @@ function useZoomViewport({
|
|
|
1232
1230
|
selectedElements.forEach((element) => {
|
|
1233
1231
|
minX = Math.min(minX, element.x);
|
|
1234
1232
|
minY = Math.min(minY, element.y);
|
|
1235
|
-
maxX = Math.max(maxX, element.x + Math.max(element.width,
|
|
1236
|
-
maxY = Math.max(maxY, element.y + Math.max(element.height,
|
|
1233
|
+
maxX = Math.max(maxX, element.x + Math.max(element.width, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE));
|
|
1234
|
+
maxY = Math.max(maxY, element.y + Math.max(element.height, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE));
|
|
1237
1235
|
});
|
|
1238
1236
|
if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
|
|
1239
1237
|
return;
|
|
1240
1238
|
}
|
|
1241
1239
|
const selectionBounds = { minX, minY, maxX, maxY };
|
|
1242
|
-
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX,
|
|
1243
|
-
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY,
|
|
1240
|
+
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
1241
|
+
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
1244
1242
|
const availableWidth = Math.max(
|
|
1245
|
-
effectiveEditorDimensions.width -
|
|
1246
|
-
|
|
1243
|
+
effectiveEditorDimensions.width - chunkJAI42EXQ_js.ZOOM_TO_SELECTION_PADDING,
|
|
1244
|
+
chunkJAI42EXQ_js.MIN_ELEMENT_SIZE
|
|
1247
1245
|
);
|
|
1248
1246
|
const availableHeight = Math.max(
|
|
1249
|
-
effectiveEditorDimensions.height -
|
|
1250
|
-
|
|
1247
|
+
effectiveEditorDimensions.height - chunkJAI42EXQ_js.ZOOM_TO_SELECTION_PADDING,
|
|
1248
|
+
chunkJAI42EXQ_js.MIN_ELEMENT_SIZE
|
|
1251
1249
|
);
|
|
1252
1250
|
const targetEditorScale = Math.min(
|
|
1253
1251
|
availableWidth / boundsWidth,
|
|
@@ -4214,8 +4212,8 @@ function useViewerCoreState(_input) {
|
|
|
4214
4212
|
const { slides, setSlides, slidesRef } = useSlideState();
|
|
4215
4213
|
const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
|
|
4216
4214
|
const [canvasSize, setCanvasSize] = React17.useState({
|
|
4217
|
-
width:
|
|
4218
|
-
height:
|
|
4215
|
+
width: chunkJAI42EXQ_js.DEFAULT_CANVAS_WIDTH,
|
|
4216
|
+
height: chunkJAI42EXQ_js.DEFAULT_CANVAS_HEIGHT
|
|
4219
4217
|
});
|
|
4220
4218
|
const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
|
|
4221
4219
|
const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
|
|
@@ -4688,12 +4686,12 @@ function useLoadContent({
|
|
|
4688
4686
|
}
|
|
4689
4687
|
resources.commit();
|
|
4690
4688
|
handlerRef.current = handler;
|
|
4691
|
-
const partition =
|
|
4689
|
+
const partition = chunkJAI42EXQ_js.partitionTemplateElements(nextSlides);
|
|
4692
4690
|
setSlides(partition.slides);
|
|
4693
4691
|
setTemplateElementsBySlideId(partition.templateElementsBySlideId);
|
|
4694
4692
|
setCanvasSize({
|
|
4695
|
-
width: parsed.width ??
|
|
4696
|
-
height: parsed.height ??
|
|
4693
|
+
width: parsed.width ?? chunkJAI42EXQ_js.DEFAULT_CANVAS_WIDTH,
|
|
4694
|
+
height: parsed.height ?? chunkJAI42EXQ_js.DEFAULT_CANVAS_HEIGHT
|
|
4697
4695
|
});
|
|
4698
4696
|
setSlideSizeEmu(
|
|
4699
4697
|
typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
|
|
@@ -5152,7 +5150,7 @@ function useElementOperations(input) {
|
|
|
5152
5150
|
);
|
|
5153
5151
|
return;
|
|
5154
5152
|
}
|
|
5155
|
-
if (
|
|
5153
|
+
if (chunkJAI42EXQ_js.isTemplateElementId(elementId)) {
|
|
5156
5154
|
const slideId = activeSlide?.id;
|
|
5157
5155
|
if (slideId) {
|
|
5158
5156
|
setTemplateElementsBySlideId((prev) => ({
|
|
@@ -5392,15 +5390,15 @@ function syncSelectionHandleOverlay(elementNode, elementId, geometry) {
|
|
|
5392
5390
|
// src/viewer/hooks/pointer-move-handlers.ts
|
|
5393
5391
|
function computeResizeGeometry(handle, startX, startY, startWidth, startHeight, dx, dy, snapToGrid, gridSpacingPx, lockAspect = false) {
|
|
5394
5392
|
const startBox = { x: startX, y: startY, width: startWidth, height: startHeight };
|
|
5395
|
-
let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize:
|
|
5393
|
+
let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize: chunkJAI42EXQ_js.MIN_ELEMENT_SIZE });
|
|
5396
5394
|
if (lockAspect) {
|
|
5397
|
-
resized = pptx.lockResizeAspect(resized, startBox, handle,
|
|
5395
|
+
resized = pptx.lockResizeAspect(resized, startBox, handle, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
5398
5396
|
}
|
|
5399
5397
|
const box = { x: resized.x, y: resized.y, width: resized.width, height: resized.height };
|
|
5400
5398
|
if (!snapToGrid) {
|
|
5401
5399
|
return box;
|
|
5402
5400
|
}
|
|
5403
|
-
return pptx.snapBoxToGrid(box, handle, gridSpacingPx,
|
|
5401
|
+
return pptx.snapBoxToGrid(box, handle, gridSpacingPx, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
5404
5402
|
}
|
|
5405
5403
|
function resolveLiveTarget(input) {
|
|
5406
5404
|
const { livePatcher, editTemplateMode, activeSlide } = input;
|
|
@@ -5513,7 +5511,7 @@ function processDragMove(e, drag, editorScale, snapToGrid, snapToShape, gridSpac
|
|
|
5513
5511
|
width: el.width,
|
|
5514
5512
|
height: el.height
|
|
5515
5513
|
}));
|
|
5516
|
-
const snapResult =
|
|
5514
|
+
const snapResult = chunkJAI42EXQ_js.computeSnapToShape(
|
|
5517
5515
|
targetX,
|
|
5518
5516
|
targetY,
|
|
5519
5517
|
primaryEl.width,
|
|
@@ -5587,8 +5585,8 @@ function processResizeMove(e, rs, editorScale, snapToGrid, gridSpacingPx, live)
|
|
|
5587
5585
|
rs.lastY = geo.y;
|
|
5588
5586
|
rs.lastWidth = geo.width;
|
|
5589
5587
|
rs.lastHeight = geo.height;
|
|
5590
|
-
const width = Math.max(geo.width,
|
|
5591
|
-
const height = Math.max(geo.height,
|
|
5588
|
+
const width = Math.max(geo.width, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
5589
|
+
const height = Math.max(geo.height, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE);
|
|
5592
5590
|
if (rs.domEl) {
|
|
5593
5591
|
rs.domEl.style.left = `${geo.x}px`;
|
|
5594
5592
|
rs.domEl.style.top = `${geo.y}px`;
|
|
@@ -5681,13 +5679,13 @@ function processPointerUp(input) {
|
|
|
5681
5679
|
if (i !== activeSlideIndex) {
|
|
5682
5680
|
return s;
|
|
5683
5681
|
}
|
|
5684
|
-
const rerouted =
|
|
5682
|
+
const rerouted = chunkJAI42EXQ_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
|
|
5685
5683
|
if (rerouted.length === 0) {
|
|
5686
5684
|
return s;
|
|
5687
5685
|
}
|
|
5688
5686
|
return {
|
|
5689
5687
|
...s,
|
|
5690
|
-
elements:
|
|
5688
|
+
elements: chunkJAI42EXQ_js.applyReroutedConnectors(s.elements, rerouted)
|
|
5691
5689
|
};
|
|
5692
5690
|
})
|
|
5693
5691
|
);
|
|
@@ -5739,8 +5737,8 @@ function commitDrag(drag, editTemplateMode, activeSlide, activeSlideIndex, setTe
|
|
|
5739
5737
|
}
|
|
5740
5738
|
return { ...el, x: start.x + dx, y: start.y + dy };
|
|
5741
5739
|
});
|
|
5742
|
-
const rerouted =
|
|
5743
|
-
return
|
|
5740
|
+
const rerouted = chunkJAI42EXQ_js.rerouteConnectorsForMovedElements(movedElements, movedIds);
|
|
5741
|
+
return chunkJAI42EXQ_js.applyReroutedConnectors(movedElements, rerouted);
|
|
5744
5742
|
};
|
|
5745
5743
|
if (editTemplateMode) {
|
|
5746
5744
|
const slideId = activeSlide?.id;
|
|
@@ -6499,7 +6497,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6499
6497
|
return;
|
|
6500
6498
|
}
|
|
6501
6499
|
const resolved = resolveHyperlinkEditResult(data);
|
|
6502
|
-
if (resolved.url && !
|
|
6500
|
+
if (resolved.url && !chunkJAI42EXQ_js.isUrlSafe(resolved.url)) {
|
|
6503
6501
|
return;
|
|
6504
6502
|
}
|
|
6505
6503
|
const actionClick = {
|
|
@@ -6545,7 +6543,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6545
6543
|
if (!activeSlide) {
|
|
6546
6544
|
return;
|
|
6547
6545
|
}
|
|
6548
|
-
const preset =
|
|
6546
|
+
const preset = chunkJAI42EXQ_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
|
|
6549
6547
|
if (!preset) {
|
|
6550
6548
|
return;
|
|
6551
6549
|
}
|
|
@@ -6632,7 +6630,7 @@ function useInsertElements(input) {
|
|
|
6632
6630
|
width: 300,
|
|
6633
6631
|
height: 60,
|
|
6634
6632
|
text: "",
|
|
6635
|
-
textStyle: { fontSize:
|
|
6633
|
+
textStyle: { fontSize: chunkJAI42EXQ_js.DEFAULT_TEXT_FONT_SIZE }
|
|
6636
6634
|
});
|
|
6637
6635
|
};
|
|
6638
6636
|
const handleAddShape = () => {
|
|
@@ -6654,7 +6652,7 @@ function useInsertElements(input) {
|
|
|
6654
6652
|
}
|
|
6655
6653
|
});
|
|
6656
6654
|
};
|
|
6657
|
-
const handleAddTable = (rows =
|
|
6655
|
+
const handleAddTable = (rows = chunkJAI42EXQ_js.DEFAULT_TABLE_ROWS, columns = chunkJAI42EXQ_js.DEFAULT_TABLE_COLUMNS) => {
|
|
6658
6656
|
if (!activeSlide) {
|
|
6659
6657
|
return;
|
|
6660
6658
|
}
|
|
@@ -6828,7 +6826,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6828
6826
|
history
|
|
6829
6827
|
} = input;
|
|
6830
6828
|
const updateElementsOwning = (elementId, updater) => {
|
|
6831
|
-
if (editTemplateMode && !
|
|
6829
|
+
if (editTemplateMode && !chunkJAI42EXQ_js.isTemplateElementId(elementId)) {
|
|
6832
6830
|
ops.updateSlides(
|
|
6833
6831
|
(prev) => prev.map(
|
|
6834
6832
|
(slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
|
|
@@ -6862,9 +6860,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6862
6860
|
return;
|
|
6863
6861
|
}
|
|
6864
6862
|
const group = selectedElement;
|
|
6865
|
-
const intoTemplate =
|
|
6863
|
+
const intoTemplate = chunkJAI42EXQ_js.isTemplateElementId(group.id);
|
|
6866
6864
|
const childIds = group.children.map(
|
|
6867
|
-
(child) => intoTemplate ?
|
|
6865
|
+
(child) => intoTemplate ? chunkJAI42EXQ_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
|
|
6868
6866
|
);
|
|
6869
6867
|
const { elements, childIds: usedIds } = pptx.ungroupElements(
|
|
6870
6868
|
ops.activeElements,
|
|
@@ -7300,7 +7298,7 @@ function createTableMergeHandlers(input) {
|
|
|
7300
7298
|
if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
|
|
7301
7299
|
return;
|
|
7302
7300
|
}
|
|
7303
|
-
const newTableData =
|
|
7301
|
+
const newTableData = chunkJAI42EXQ_js.mergeCells(
|
|
7304
7302
|
[
|
|
7305
7303
|
{ row: rowIndex, col: columnIndex },
|
|
7306
7304
|
{ row: rowIndex, col: nextColIdx }
|
|
@@ -7308,7 +7306,7 @@ function createTableMergeHandlers(input) {
|
|
|
7308
7306
|
td
|
|
7309
7307
|
);
|
|
7310
7308
|
const updates = { tableData: newTableData };
|
|
7311
|
-
const newRawXml =
|
|
7309
|
+
const newRawXml = chunkJAI42EXQ_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7312
7310
|
if (newRawXml) {
|
|
7313
7311
|
updates.rawXml = newRawXml;
|
|
7314
7312
|
}
|
|
@@ -7334,7 +7332,7 @@ function createTableMergeHandlers(input) {
|
|
|
7334
7332
|
if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
|
|
7335
7333
|
return;
|
|
7336
7334
|
}
|
|
7337
|
-
const newTableData =
|
|
7335
|
+
const newTableData = chunkJAI42EXQ_js.mergeCells(
|
|
7338
7336
|
[
|
|
7339
7337
|
{ row: rowIndex, col: columnIndex },
|
|
7340
7338
|
{ row: targetNextRowIdx, col: columnIndex }
|
|
@@ -7342,7 +7340,7 @@ function createTableMergeHandlers(input) {
|
|
|
7342
7340
|
td
|
|
7343
7341
|
);
|
|
7344
7342
|
const updates = { tableData: newTableData };
|
|
7345
|
-
const newRawXml =
|
|
7343
|
+
const newRawXml = chunkJAI42EXQ_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7346
7344
|
if (newRawXml) {
|
|
7347
7345
|
updates.rawXml = newRawXml;
|
|
7348
7346
|
}
|
|
@@ -7357,9 +7355,9 @@ function createTableMergeHandlers(input) {
|
|
|
7357
7355
|
return;
|
|
7358
7356
|
}
|
|
7359
7357
|
const td = selectedElement.tableData;
|
|
7360
|
-
const newTableData =
|
|
7358
|
+
const newTableData = chunkJAI42EXQ_js.mergeCells(ts.selectedCells, td);
|
|
7361
7359
|
const updates = { tableData: newTableData };
|
|
7362
|
-
const newRawXml =
|
|
7360
|
+
const newRawXml = chunkJAI42EXQ_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7363
7361
|
if (newRawXml) {
|
|
7364
7362
|
updates.rawXml = newRawXml;
|
|
7365
7363
|
}
|
|
@@ -7376,9 +7374,9 @@ function createTableMergeHandlers(input) {
|
|
|
7376
7374
|
}
|
|
7377
7375
|
const { rowIndex, columnIndex } = ts;
|
|
7378
7376
|
const td = selectedElement.tableData;
|
|
7379
|
-
const newTableData =
|
|
7377
|
+
const newTableData = chunkJAI42EXQ_js.splitCell(rowIndex, columnIndex, td);
|
|
7380
7378
|
const updates = { tableData: newTableData };
|
|
7381
|
-
const newRawXml =
|
|
7379
|
+
const newRawXml = chunkJAI42EXQ_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7382
7380
|
if (newRawXml) {
|
|
7383
7381
|
updates.rawXml = newRawXml;
|
|
7384
7382
|
}
|
|
@@ -7413,7 +7411,7 @@ function createTableStructHandlers(input) {
|
|
|
7413
7411
|
updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
|
|
7414
7412
|
}
|
|
7415
7413
|
if (el.rawXml) {
|
|
7416
|
-
const newRawXml =
|
|
7414
|
+
const newRawXml = chunkJAI42EXQ_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
|
|
7417
7415
|
if (newRawXml) {
|
|
7418
7416
|
updates.rawXml = newRawXml;
|
|
7419
7417
|
}
|
|
@@ -7437,7 +7435,7 @@ function createTableStructHandlers(input) {
|
|
|
7437
7435
|
const { rowIndex, columnIndex: colIndex } = ts;
|
|
7438
7436
|
const updates = {};
|
|
7439
7437
|
if (selectedElement.rawXml) {
|
|
7440
|
-
const newRawXml =
|
|
7438
|
+
const newRawXml = chunkJAI42EXQ_js.updateCellTextStyleInRawXml(
|
|
7441
7439
|
selectedElement,
|
|
7442
7440
|
rowIndex,
|
|
7443
7441
|
colIndex,
|
|
@@ -7613,7 +7611,7 @@ function useExportSaveAs(input) {
|
|
|
7613
7611
|
const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
|
|
7614
7612
|
const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
|
|
7615
7613
|
const data = {
|
|
7616
|
-
slides:
|
|
7614
|
+
slides: chunkJAI42EXQ_js.buildSaveSlides(slides, templateElementsBySlideId),
|
|
7617
7615
|
width: canvasSize.width,
|
|
7618
7616
|
height: canvasSize.height,
|
|
7619
7617
|
widthEmu: slideSize.widthEmu,
|
|
@@ -7775,7 +7773,7 @@ async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActi
|
|
|
7775
7773
|
}
|
|
7776
7774
|
function tilesToPdfPage(tilesResult) {
|
|
7777
7775
|
return tilesResult.tiles.map((tile) => ({
|
|
7778
|
-
image:
|
|
7776
|
+
image: chunkJAI42EXQ_js.canvasToJpegData(tile.canvas),
|
|
7779
7777
|
placement: pptx.placeTileOnPage(
|
|
7780
7778
|
tile,
|
|
7781
7779
|
tilesResult.fullWidth,
|
|
@@ -7808,7 +7806,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7808
7806
|
if (pages.length === 0) {
|
|
7809
7807
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7810
7808
|
}
|
|
7811
|
-
const pdfBlobUrl =
|
|
7809
|
+
const pdfBlobUrl = chunkJAI42EXQ_js.buildPdfFromTiledImageData(pages);
|
|
7812
7810
|
pptx.downloadDataUrl(pdfBlobUrl, filename);
|
|
7813
7811
|
}
|
|
7814
7812
|
async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
|
|
@@ -7838,7 +7836,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
|
|
|
7838
7836
|
if (pages.length === 0) {
|
|
7839
7837
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
|
|
7840
7838
|
}
|
|
7841
|
-
const pdfDataUrl =
|
|
7839
|
+
const pdfDataUrl = chunkJAI42EXQ_js.buildNotesPdf(pages);
|
|
7842
7840
|
pptx.downloadDataUrl(pdfDataUrl, filename);
|
|
7843
7841
|
}
|
|
7844
7842
|
async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
|
|
@@ -8941,7 +8939,7 @@ function usePropertyHandlers(input) {
|
|
|
8941
8939
|
width: canvasSize.width,
|
|
8942
8940
|
height: canvasSize.height
|
|
8943
8941
|
};
|
|
8944
|
-
setCompareResult(
|
|
8942
|
+
setCompareResult(chunkJAI42EXQ_js.comparePresentation(cur, other));
|
|
8945
8943
|
setIsComparePanelOpen(true);
|
|
8946
8944
|
} catch (err) {
|
|
8947
8945
|
console.warn("Compare failed:", err);
|
|
@@ -9294,7 +9292,7 @@ function useViewerDialogs(input) {
|
|
|
9294
9292
|
};
|
|
9295
9293
|
}
|
|
9296
9294
|
function computeGridSpacingPx(documentGridSpacing) {
|
|
9297
|
-
return pptx.computeGridSpacingPx(documentGridSpacing,
|
|
9295
|
+
return pptx.computeGridSpacingPx(documentGridSpacing, chunkJAI42EXQ_js.GRID_SIZE);
|
|
9298
9296
|
}
|
|
9299
9297
|
function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
|
|
9300
9298
|
const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
|
|
@@ -9303,7 +9301,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
|
|
|
9303
9301
|
}
|
|
9304
9302
|
function computeSlideSectionGroups(slides, sections) {
|
|
9305
9303
|
return pptx.groupSlidesBySection(sections, slides).map((group) => ({
|
|
9306
|
-
id: group.section?.id ?? (sections.length > 0 ?
|
|
9304
|
+
id: group.section?.id ?? (sections.length > 0 ? chunkJAI42EXQ_js.UNGROUPED_SECTION_ID : chunkJAI42EXQ_js.DEFAULT_SECTION_GROUP_ID),
|
|
9307
9305
|
label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
|
|
9308
9306
|
slideIndexes: group.slideIndexes,
|
|
9309
9307
|
...group.section?.color !== void 0 ? { color: group.section.color } : {},
|
|
@@ -9348,10 +9346,10 @@ function useDerivedSlideState(input) {
|
|
|
9348
9346
|
);
|
|
9349
9347
|
const slideSectionGroups = React17.useMemo(
|
|
9350
9348
|
() => computeSlideSectionGroups(slides, sections).map((group) => {
|
|
9351
|
-
if (group.id ===
|
|
9349
|
+
if (group.id === chunkJAI42EXQ_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
|
|
9352
9350
|
return { ...group, label: t("pptx.slides.ungroupedSlides") };
|
|
9353
9351
|
}
|
|
9354
|
-
if (group.id ===
|
|
9352
|
+
if (group.id === chunkJAI42EXQ_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
|
|
9355
9353
|
return { ...group, label: t("pptx.sections.slides") };
|
|
9356
9354
|
}
|
|
9357
9355
|
return group;
|
|
@@ -9458,7 +9456,7 @@ function useAnnotationHandlers(input) {
|
|
|
9458
9456
|
if (nextMode === "present") {
|
|
9459
9457
|
presentation.enterPresentMode();
|
|
9460
9458
|
} else if (mode === "present" && annotations.hasAnyAnnotations) {
|
|
9461
|
-
|
|
9459
|
+
chunkJAI42EXQ_js.stopAllPersistentAudio();
|
|
9462
9460
|
if (promptKeepInkAnnotations) {
|
|
9463
9461
|
pendingModeAfterAnnotationsRef.current = nextMode;
|
|
9464
9462
|
setShowKeepAnnotationsDialog(true);
|
|
@@ -9468,7 +9466,7 @@ function useAnnotationHandlers(input) {
|
|
|
9468
9466
|
}
|
|
9469
9467
|
} else {
|
|
9470
9468
|
if (mode === "present") {
|
|
9471
|
-
|
|
9469
|
+
chunkJAI42EXQ_js.stopAllPersistentAudio();
|
|
9472
9470
|
}
|
|
9473
9471
|
setMode(nextMode);
|
|
9474
9472
|
}
|
|
@@ -9635,7 +9633,7 @@ function useSerialize(input) {
|
|
|
9635
9633
|
guides: pptxGuides.length > 0 ? pptxGuides : void 0
|
|
9636
9634
|
};
|
|
9637
9635
|
});
|
|
9638
|
-
const slidesToSave =
|
|
9636
|
+
const slidesToSave = chunkJAI42EXQ_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
|
|
9639
9637
|
const saveOptions = pptx.buildDeckSaveOptions({
|
|
9640
9638
|
// Without this the Slide Size card edited a viewer-only pixel value and
|
|
9641
9639
|
// the saved `p:sldSz` never moved: passing `slideSize` is the only way a
|
|
@@ -9828,7 +9826,7 @@ function usePresentationSetup(input) {
|
|
|
9828
9826
|
return;
|
|
9829
9827
|
}
|
|
9830
9828
|
if (mode === "present" && nextMode !== "present") {
|
|
9831
|
-
|
|
9829
|
+
chunkJAI42EXQ_js.stopAllPersistentAudio();
|
|
9832
9830
|
stopAnimationSound();
|
|
9833
9831
|
const exitHandler = exitModeHandlerRef.current;
|
|
9834
9832
|
if (exitHandler) {
|
|
@@ -9949,7 +9947,7 @@ function useCanvasImagePaste(input) {
|
|
|
9949
9947
|
);
|
|
9950
9948
|
}
|
|
9951
9949
|
function formatPatchFor(element, format) {
|
|
9952
|
-
const updated =
|
|
9950
|
+
const updated = chunkJAI42EXQ_js.applyFormatToElement(element, format);
|
|
9953
9951
|
const updates = {};
|
|
9954
9952
|
if (pptx$1.hasShapeProperties(updated)) {
|
|
9955
9953
|
updates.shapeStyle = updated.shapeStyle;
|
|
@@ -9972,7 +9970,7 @@ function useFormatPainterEditing(input) {
|
|
|
9972
9970
|
const prevFormatPainterRef = React17.useRef(false);
|
|
9973
9971
|
React17.useEffect(() => {
|
|
9974
9972
|
if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
|
|
9975
|
-
copiedFormatRef.current =
|
|
9973
|
+
copiedFormatRef.current = chunkJAI42EXQ_js.copyFormatFromElement(selectedElement);
|
|
9976
9974
|
} else if (!formatPainterActive) {
|
|
9977
9975
|
copiedFormatRef.current = null;
|
|
9978
9976
|
}
|
|
@@ -11664,7 +11662,7 @@ function useCollaborationWriteBack(input) {
|
|
|
11664
11662
|
getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
|
|
11665
11663
|
getSaveOptions: () => latest.current.getSaveOptions?.(),
|
|
11666
11664
|
getTemplateElements: () => latest.current.templateElementsBySlideId,
|
|
11667
|
-
mergeTemplateElements:
|
|
11665
|
+
mergeTemplateElements: chunkJAI42EXQ_js.buildSaveSlides,
|
|
11668
11666
|
onWriteBackStatus: () => latest.current.onWriteBackStatus?.(
|
|
11669
11667
|
pptx.writeBackReport(latest.current.config, created.getState())
|
|
11670
11668
|
)
|
|
@@ -12223,8 +12221,8 @@ function useTouchGestures(input) {
|
|
|
12223
12221
|
}
|
|
12224
12222
|
const recognizer = pptx.createTouchGestureRecognizer({
|
|
12225
12223
|
getScale: () => scaleRef.current,
|
|
12226
|
-
minScale:
|
|
12227
|
-
maxScale:
|
|
12224
|
+
minScale: chunkJAI42EXQ_js.MIN_ZOOM_SCALE,
|
|
12225
|
+
maxScale: chunkJAI42EXQ_js.MAX_ZOOM_SCALE,
|
|
12228
12226
|
callbacks: {
|
|
12229
12227
|
onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
|
|
12230
12228
|
onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
|
|
@@ -12348,7 +12346,7 @@ function buildCanvasProps(input) {
|
|
|
12348
12346
|
if (pptx.shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
|
|
12349
12347
|
return;
|
|
12350
12348
|
}
|
|
12351
|
-
|
|
12349
|
+
chunkJAI42EXQ_js.safeOpenUrl(url, target);
|
|
12352
12350
|
};
|
|
12353
12351
|
const handleActionClick = (elementId, action) => {
|
|
12354
12352
|
if (mode === "present") {
|
|
@@ -12363,9 +12361,9 @@ function buildCanvasProps(input) {
|
|
|
12363
12361
|
}
|
|
12364
12362
|
};
|
|
12365
12363
|
const handleHyperlinkClick = (url, target) => {
|
|
12366
|
-
if (
|
|
12364
|
+
if (chunkJAI42EXQ_js.isPpactionUrl(url)) {
|
|
12367
12365
|
if (mode === "present") {
|
|
12368
|
-
const parsed =
|
|
12366
|
+
const parsed = chunkJAI42EXQ_js.parsePpactionUrl(url);
|
|
12369
12367
|
if (parsed) {
|
|
12370
12368
|
presentation.handlePresentationAction({
|
|
12371
12369
|
action: parsed.action,
|
|
@@ -12792,7 +12790,7 @@ function buildToolbarProps(input) {
|
|
|
12792
12790
|
markDirty: history.markDirty
|
|
12793
12791
|
}),
|
|
12794
12792
|
formatPainterActive: s.formatPainterActive,
|
|
12795
|
-
canActivateFormatPainter:
|
|
12793
|
+
canActivateFormatPainter: chunkJAI42EXQ_js.hasCopyableFormat(selectedElement),
|
|
12796
12794
|
onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
|
|
12797
12795
|
isSelectionPaneOpen: s.isSelectionPaneOpen,
|
|
12798
12796
|
onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
|
|
@@ -13696,23 +13694,23 @@ function ColorChangedImage({
|
|
|
13696
13694
|
className,
|
|
13697
13695
|
alt
|
|
13698
13696
|
}) {
|
|
13699
|
-
const tolerance = tolerancePct ??
|
|
13700
|
-
const cacheKey =
|
|
13697
|
+
const tolerance = tolerancePct ?? chunkJAI42EXQ_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
|
|
13698
|
+
const cacheKey = chunkJAI42EXQ_js.buildCacheKey(
|
|
13701
13699
|
src,
|
|
13702
13700
|
clrChange.clrFrom,
|
|
13703
13701
|
clrChange.clrTo,
|
|
13704
13702
|
tolerance,
|
|
13705
13703
|
Boolean(clrChange.clrToTransparent)
|
|
13706
13704
|
);
|
|
13707
|
-
const cached =
|
|
13705
|
+
const cached = chunkJAI42EXQ_js.getCachedResult(cacheKey);
|
|
13708
13706
|
const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
|
|
13709
13707
|
React17.useEffect(() => {
|
|
13710
|
-
if (
|
|
13711
|
-
setProcessedSrc(
|
|
13708
|
+
if (chunkJAI42EXQ_js.getCachedResult(cacheKey)) {
|
|
13709
|
+
setProcessedSrc(chunkJAI42EXQ_js.getCachedResult(cacheKey) ?? null);
|
|
13712
13710
|
return;
|
|
13713
13711
|
}
|
|
13714
13712
|
let cancelled = false;
|
|
13715
|
-
|
|
13713
|
+
chunkJAI42EXQ_js.applyColorChange(
|
|
13716
13714
|
src,
|
|
13717
13715
|
clrChange.clrFrom,
|
|
13718
13716
|
clrChange.clrTo,
|
|
@@ -13720,7 +13718,7 @@ function ColorChangedImage({
|
|
|
13720
13718
|
Boolean(clrChange.clrToTransparent)
|
|
13721
13719
|
).then((result) => {
|
|
13722
13720
|
if (!cancelled) {
|
|
13723
|
-
|
|
13721
|
+
chunkJAI42EXQ_js.setCachedResult(cacheKey, result.dataUrl);
|
|
13724
13722
|
setProcessedSrc(result.dataUrl);
|
|
13725
13723
|
}
|
|
13726
13724
|
return void 0;
|
|
@@ -13812,7 +13810,7 @@ function TiledImageLayer({
|
|
|
13812
13810
|
cancelled = true;
|
|
13813
13811
|
};
|
|
13814
13812
|
}, [src]);
|
|
13815
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...
|
|
13813
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunkJAI42EXQ_js.getImageTilingStyle(element, nativeSize), ...style } });
|
|
13816
13814
|
}
|
|
13817
13815
|
function renderImageEffectDefinitions(element, excludeDuotone = false) {
|
|
13818
13816
|
return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13881,7 +13879,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13881
13879
|
...filter ? { filter } : {},
|
|
13882
13880
|
...opacity !== void 0 ? { opacity } : {}
|
|
13883
13881
|
};
|
|
13884
|
-
if (
|
|
13882
|
+
if (chunkJAI42EXQ_js.isImageTiled(el)) {
|
|
13885
13883
|
const tileSrc = imgSrc(el);
|
|
13886
13884
|
if (!tileSrc) {
|
|
13887
13885
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-gray-500 bg-gray-100", children: "Image" });
|
|
@@ -13903,9 +13901,9 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13903
13901
|
pptx$1.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
|
|
13904
13902
|
);
|
|
13905
13903
|
const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
|
|
13906
|
-
const duotoneColors =
|
|
13904
|
+
const duotoneColors = chunkJAI42EXQ_js.getDuotoneColors(el);
|
|
13907
13905
|
const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
|
|
13908
|
-
const filterForImg = useDuotoneCanvas ?
|
|
13906
|
+
const filterForImg = useDuotoneCanvas ? chunkJAI42EXQ_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
|
|
13909
13907
|
const canvasEffectStyles = {
|
|
13910
13908
|
...filterForImg ? { filter: filterForImg } : {},
|
|
13911
13909
|
...opacity !== void 0 ? { opacity } : {}
|
|
@@ -13981,10 +13979,10 @@ function SlideBackgroundImageLayer({
|
|
|
13981
13979
|
style: { zIndex: 0 },
|
|
13982
13980
|
children: renderImg(
|
|
13983
13981
|
backgroundElement,
|
|
13984
|
-
|
|
13985
|
-
|
|
13982
|
+
chunkJAI42EXQ_js.getImageRenderStyle(backgroundElement),
|
|
13983
|
+
chunkJAI42EXQ_js.getImageEffectsFilter(backgroundElement),
|
|
13986
13984
|
"",
|
|
13987
|
-
|
|
13985
|
+
chunkJAI42EXQ_js.getImageEffectsOpacity(backgroundElement)
|
|
13988
13986
|
)
|
|
13989
13987
|
}
|
|
13990
13988
|
);
|
|
@@ -14270,7 +14268,7 @@ function ChartElementView({
|
|
|
14270
14268
|
pptx.getBarFacePicturePixelSampleVersion
|
|
14271
14269
|
);
|
|
14272
14270
|
const viewModel = React17.useMemo(() => {
|
|
14273
|
-
return canEdit ?
|
|
14271
|
+
return canEdit ? chunkJAI42EXQ_js.buildReactChartViewModel(element) : null;
|
|
14274
14272
|
}, [canEdit, element, barFacePictureSampleVersion]);
|
|
14275
14273
|
React17.useEffect(pptx.ensureChartInteractionStyles, []);
|
|
14276
14274
|
React17.useEffect(() => {
|
|
@@ -14375,9 +14373,9 @@ function ChartElementView({
|
|
|
14375
14373
|
textStyle: animationState?.textStyle,
|
|
14376
14374
|
onSelect: chart3D.onSelect,
|
|
14377
14375
|
onDrag: chart3D.onDrag,
|
|
14378
|
-
children:
|
|
14376
|
+
children: chunkJAI42EXQ_js.renderChartElement(renderedElement, (key) => t(key))
|
|
14379
14377
|
}
|
|
14380
|
-
) :
|
|
14378
|
+
) : chunkJAI42EXQ_js.renderChartElement(renderedElement, (key) => t(key)),
|
|
14381
14379
|
dragValue !== null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1 z-10 rounded bg-primary/90 px-1.5 py-0.5 text-[10px] font-medium text-white pointer-events-none", children: pptx.formatAxisValue(dragValue) }),
|
|
14382
14380
|
titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14383
14381
|
"input",
|
|
@@ -14707,7 +14705,7 @@ function ResizeHandles({
|
|
|
14707
14705
|
"aria-label": t("pptx.selectionOverlay.resize", { handle }),
|
|
14708
14706
|
"data-pptx-handle-kind": "resize",
|
|
14709
14707
|
"data-pptx-compact": true,
|
|
14710
|
-
className:
|
|
14708
|
+
className: chunkJAI42EXQ_js.cn(
|
|
14711
14709
|
"absolute z-10 group border-0 bg-transparent p-0",
|
|
14712
14710
|
RESIZE_DEFAULT_CLASSES,
|
|
14713
14711
|
posClass,
|
|
@@ -14733,7 +14731,7 @@ function ResizeHandles({
|
|
|
14733
14731
|
"div",
|
|
14734
14732
|
{
|
|
14735
14733
|
"data-pptx-handle-hit": true,
|
|
14736
|
-
className:
|
|
14734
|
+
className: chunkJAI42EXQ_js.cn(
|
|
14737
14735
|
"absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
|
|
14738
14736
|
corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
|
|
14739
14737
|
),
|
|
@@ -14754,7 +14752,7 @@ function ResizeHandles({
|
|
|
14754
14752
|
"aria-label": t("pptx.selectionOverlay.rotate"),
|
|
14755
14753
|
"data-pptx-handle-kind": "rotate",
|
|
14756
14754
|
"data-pptx-compact": true,
|
|
14757
|
-
className:
|
|
14755
|
+
className: chunkJAI42EXQ_js.cn(
|
|
14758
14756
|
"absolute left-1/2 top-0 -translate-x-1/2 -translate-y-1/2 z-20 border-0 bg-transparent p-0 cursor-grab active:cursor-grabbing",
|
|
14759
14757
|
ROTATE_DEFAULT_CLASSES
|
|
14760
14758
|
),
|
|
@@ -14831,10 +14829,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14831
14829
|
const svgHeight = Math.max(el.height, 1);
|
|
14832
14830
|
const ss = shapeEl?.shapeStyle;
|
|
14833
14831
|
const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
|
|
14834
|
-
const strokeColor =
|
|
14835
|
-
const strokePaint =
|
|
14836
|
-
const dashType =
|
|
14837
|
-
const dashArray =
|
|
14832
|
+
const strokeColor = chunkJAI42EXQ_js.normalizeHexColor(ss?.strokeColor, chunkJAI42EXQ_js.DEFAULT_STROKE_COLOR);
|
|
14833
|
+
const strokePaint = chunkJAI42EXQ_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
|
|
14834
|
+
const dashType = chunkJAI42EXQ_js.normalizeStrokeDashType(ss?.strokeDash);
|
|
14835
|
+
const dashArray = chunkJAI42EXQ_js.getSvgStrokeDasharray(
|
|
14838
14836
|
dashType,
|
|
14839
14837
|
Math.max(strokeWidth, 1),
|
|
14840
14838
|
ss?.customDashSegments
|
|
@@ -14845,14 +14843,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14845
14843
|
const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
|
|
14846
14844
|
const startMarkerId = `${markerSeed}-sel-start`;
|
|
14847
14845
|
const endMarkerId = `${markerSeed}-sel-end`;
|
|
14848
|
-
const compoundOffsets =
|
|
14849
|
-
const compoundWidths =
|
|
14846
|
+
const compoundOffsets = chunkJAI42EXQ_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
14847
|
+
const compoundWidths = chunkJAI42EXQ_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
14850
14848
|
const strokeCap = pptx.svgLineCap(ss?.lineCap);
|
|
14851
14849
|
const textEl = pptx$1.hasTextProperties(el) ? el : void 0;
|
|
14852
14850
|
const connectorText = textEl?.text?.trim() ?? "";
|
|
14853
14851
|
const connectorTextSegments = textEl?.textSegments;
|
|
14854
14852
|
const connectorTextStyle = textEl?.textStyle;
|
|
14855
|
-
const pathGeometry = shapeEl ?
|
|
14853
|
+
const pathGeometry = shapeEl ? chunkJAI42EXQ_js.getConnectorPathGeometry(shapeEl) : {
|
|
14856
14854
|
pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
|
|
14857
14855
|
startX: 0,
|
|
14858
14856
|
startY: 0,
|
|
@@ -14861,16 +14859,16 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14861
14859
|
};
|
|
14862
14860
|
const hitTargetWidth = Math.max(strokeWidth * 3, 14);
|
|
14863
14861
|
const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
|
|
14864
|
-
const lineShadow =
|
|
14865
|
-
const lineGlow =
|
|
14862
|
+
const lineShadow = chunkJAI42EXQ_js.buildLineShadowCss(el);
|
|
14863
|
+
const lineGlow = chunkJAI42EXQ_js.buildLineGlowFilter(el);
|
|
14866
14864
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14867
14865
|
"div",
|
|
14868
14866
|
{
|
|
14869
14867
|
"data-pptx-element": "true",
|
|
14870
14868
|
"data-element-id": el.id,
|
|
14871
|
-
role:
|
|
14872
|
-
"aria-label":
|
|
14873
|
-
"aria-roledescription":
|
|
14869
|
+
role: chunkJAI42EXQ_js.getAriaRole(el, { actionable: false }),
|
|
14870
|
+
"aria-label": chunkJAI42EXQ_js.getAriaLabel(el),
|
|
14871
|
+
"aria-roledescription": chunkJAI42EXQ_js.getAriaRoleDescription(el),
|
|
14874
14872
|
"aria-selected": isSelected ? true : void 0,
|
|
14875
14873
|
className: "absolute",
|
|
14876
14874
|
style: {
|
|
@@ -14903,14 +14901,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14903
14901
|
style: { overflow: "visible", pointerEvents: "none" },
|
|
14904
14902
|
children: [
|
|
14905
14903
|
/* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
|
|
14906
|
-
|
|
14904
|
+
chunkJAI42EXQ_js.renderConnectorMarker(
|
|
14907
14905
|
startMarkerId,
|
|
14908
14906
|
startArrow,
|
|
14909
14907
|
strokePaint,
|
|
14910
14908
|
ss?.connectorStartArrowWidth,
|
|
14911
14909
|
ss?.connectorStartArrowLength
|
|
14912
14910
|
),
|
|
14913
|
-
|
|
14911
|
+
chunkJAI42EXQ_js.renderConnectorMarker(
|
|
14914
14912
|
endMarkerId,
|
|
14915
14913
|
endArrow,
|
|
14916
14914
|
strokePaint,
|
|
@@ -15119,14 +15117,14 @@ function getElementInteractionProps({
|
|
|
15119
15117
|
};
|
|
15120
15118
|
}
|
|
15121
15119
|
function renderDagDuotoneFilterForElement(el) {
|
|
15122
|
-
if (!
|
|
15120
|
+
if (!chunkJAI42EXQ_js.hasDagDuotoneEffect(el)) {
|
|
15123
15121
|
return null;
|
|
15124
15122
|
}
|
|
15125
15123
|
const duotone = el.shapeStyle?.dagDuotone;
|
|
15126
15124
|
if (!duotone) {
|
|
15127
15125
|
return null;
|
|
15128
15126
|
}
|
|
15129
|
-
return
|
|
15127
|
+
return chunkJAI42EXQ_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
|
|
15130
15128
|
}
|
|
15131
15129
|
function getContainerStyle({
|
|
15132
15130
|
el,
|
|
@@ -15153,10 +15151,10 @@ function getContainerStyle({
|
|
|
15153
15151
|
top: isFullscreenMedia ? fs.top : el.y,
|
|
15154
15152
|
width: isFullscreenMedia ? fs.width : painted.width,
|
|
15155
15153
|
...heightStyle,
|
|
15156
|
-
transform: isFullscreenMedia ? fs.transform :
|
|
15154
|
+
transform: isFullscreenMedia ? fs.transform : chunkJAI42EXQ_js.getElementTransform(el),
|
|
15157
15155
|
transformOrigin: "center",
|
|
15158
15156
|
overflow: overflowValue,
|
|
15159
|
-
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ?
|
|
15157
|
+
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunkJAI42EXQ_js.getCropShapeClipPath(el) : void 0,
|
|
15160
15158
|
zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
|
|
15161
15159
|
visibility: animationState?.visible === false ? "hidden" : "visible",
|
|
15162
15160
|
animation: animationState?.cssAnimation,
|
|
@@ -15193,9 +15191,9 @@ function getContainerStyle({
|
|
|
15193
15191
|
function shapeParams(element) {
|
|
15194
15192
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
15195
15193
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
15196
|
-
const strokeColor =
|
|
15197
|
-
const fillColor =
|
|
15198
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
15194
|
+
const strokeColor = chunkJAI42EXQ_js.normalizeHexColor(style?.strokeColor, chunkJAI42EXQ_js.DEFAULT_STROKE_COLOR);
|
|
15195
|
+
const fillColor = chunkJAI42EXQ_js.normalizeHexColor(style?.fillColor, chunkJAI42EXQ_js.DEFAULT_FILL_COLOR);
|
|
15196
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkJAI42EXQ_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
15199
15197
|
return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
|
|
15200
15198
|
}
|
|
15201
15199
|
var Extrusion3DOverlayMemo = /* @__PURE__ */ React17__default.default.memo(
|
|
@@ -15303,7 +15301,7 @@ function ShapeEffectOverlay({
|
|
|
15303
15301
|
const fillOverlayStyle = overlay ? {
|
|
15304
15302
|
position: "absolute",
|
|
15305
15303
|
inset: 0,
|
|
15306
|
-
...pptx$1.isImageLikeElement(element) ?
|
|
15304
|
+
...pptx$1.isImageLikeElement(element) ? chunkJAI42EXQ_js.getImageSurfaceMaskStyle(element) : {},
|
|
15307
15305
|
background: overlay.color,
|
|
15308
15306
|
mixBlendMode: overlay.blendMode,
|
|
15309
15307
|
pointerEvents: "none"
|
|
@@ -15510,10 +15508,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15510
15508
|
const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
|
|
15511
15509
|
const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
|
|
15512
15510
|
const visualAnimationState = backgroundAnimationState ?? animationState;
|
|
15513
|
-
const isTxt =
|
|
15511
|
+
const isTxt = chunkJAI42EXQ_js.isEditableTextElement(el) && allow.textEditable;
|
|
15514
15512
|
const txtSE = pptx$1.hasTextProperties(el) ? el.textStyle : void 0;
|
|
15515
15513
|
const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
|
|
15516
|
-
const ss =
|
|
15514
|
+
const ss = chunkJAI42EXQ_js.getShapeVisualStyle(
|
|
15517
15515
|
el,
|
|
15518
15516
|
hf,
|
|
15519
15517
|
fc,
|
|
@@ -15522,9 +15520,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15522
15520
|
visualAnimationState?.animatesFill,
|
|
15523
15521
|
visualAnimationState?.animatesStroke
|
|
15524
15522
|
);
|
|
15525
|
-
const ts =
|
|
15523
|
+
const ts = chunkJAI42EXQ_js.getTextStyleForElement(el, chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR);
|
|
15526
15524
|
const isImg = el.type === "picture" || el.type === "image";
|
|
15527
|
-
const vs =
|
|
15525
|
+
const vs = chunkJAI42EXQ_js.renderVectorShape(
|
|
15528
15526
|
el,
|
|
15529
15527
|
isImg ? false : hf,
|
|
15530
15528
|
fc,
|
|
@@ -15534,10 +15532,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15534
15532
|
visualAnimationState?.animatesStroke
|
|
15535
15533
|
);
|
|
15536
15534
|
const isModel3D = el.type === "model3d";
|
|
15537
|
-
const isConn =
|
|
15535
|
+
const isConn = chunkJAI42EXQ_js.isConnectorOrLineElement(el);
|
|
15538
15536
|
const shapeStyle3d = pptx$1.hasShapeProperties(el) ? el.shapeStyle : void 0;
|
|
15539
15537
|
const extrusionData = React17.useMemo(
|
|
15540
|
-
() =>
|
|
15538
|
+
() => chunkJAI42EXQ_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
|
|
15541
15539
|
[shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
|
|
15542
15540
|
);
|
|
15543
15541
|
const actionAffordance = useActionAffordance(el, canInteract);
|
|
@@ -15627,7 +15625,7 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15627
15625
|
"aria-hidden": aria.hidden ? true : void 0,
|
|
15628
15626
|
"aria-selected": isSelected ? true : void 0,
|
|
15629
15627
|
tabIndex: isFocusable ? 0 : -1,
|
|
15630
|
-
className:
|
|
15628
|
+
className: chunkJAI42EXQ_js.cn(
|
|
15631
15629
|
"absolute",
|
|
15632
15630
|
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
|
|
15633
15631
|
cur,
|
|
@@ -15700,9 +15698,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15700
15698
|
txtSE,
|
|
15701
15699
|
txtS: ts,
|
|
15702
15700
|
vecShape: backgroundAnimationState && !isImg ? null : vs,
|
|
15703
|
-
imgStyle:
|
|
15704
|
-
imgFilter:
|
|
15705
|
-
imgOpacity:
|
|
15701
|
+
imgStyle: chunkJAI42EXQ_js.getImageRenderStyle(el),
|
|
15702
|
+
imgFilter: chunkJAI42EXQ_js.getImageEffectsFilter(el),
|
|
15703
|
+
imgOpacity: chunkJAI42EXQ_js.getImageEffectsOpacity(el),
|
|
15706
15704
|
imgAlt: imageAltText,
|
|
15707
15705
|
isTxtEl: isTxt,
|
|
15708
15706
|
media: mediaDataUrls,
|
|
@@ -15839,10 +15837,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
|
|
|
15839
15837
|
}
|
|
15840
15838
|
function renderInk(el, options) {
|
|
15841
15839
|
const replay = options?.replay ?? false;
|
|
15842
|
-
const strokes =
|
|
15840
|
+
const strokes = chunkJAI42EXQ_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
|
|
15843
15841
|
strokes.some((s) => s.circles || s.nibMarks);
|
|
15844
15842
|
const pressureSensitive = options?.pressureSensitive;
|
|
15845
|
-
const replayStyles = replay ?
|
|
15843
|
+
const replayStyles = replay ? chunkJAI42EXQ_js.getInkReplayStyles(el, options?.replayConfig) : null;
|
|
15846
15844
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15847
15845
|
"svg",
|
|
15848
15846
|
{
|
|
@@ -15850,7 +15848,7 @@ function renderInk(el, options) {
|
|
|
15850
15848
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15851
15849
|
preserveAspectRatio: "none",
|
|
15852
15850
|
children: [
|
|
15853
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15851
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkJAI42EXQ_js.INK_REPLAY_KEYFRAMES }),
|
|
15854
15852
|
strokes.map(
|
|
15855
15853
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
|
|
15856
15854
|
)
|
|
@@ -15861,7 +15859,7 @@ function renderInk(el, options) {
|
|
|
15861
15859
|
function renderGroup(children, parentGroupFill) {
|
|
15862
15860
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
|
|
15863
15861
|
const { hf, fc, sw, sc } = shapeParams(c);
|
|
15864
|
-
const baseSs =
|
|
15862
|
+
const baseSs = chunkJAI42EXQ_js.getShapeVisualStyle(c, hf, fc, sw, sc);
|
|
15865
15863
|
const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
|
|
15866
15864
|
const ss = inheritedFill ? {
|
|
15867
15865
|
...baseSs,
|
|
@@ -15872,9 +15870,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15872
15870
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
15873
15871
|
} : baseSs;
|
|
15874
15872
|
const isI = c.type === "picture" || c.type === "image";
|
|
15875
|
-
const vs =
|
|
15876
|
-
const ts =
|
|
15877
|
-
const isTxt =
|
|
15873
|
+
const vs = chunkJAI42EXQ_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
|
|
15874
|
+
const ts = chunkJAI42EXQ_js.getTextStyleForElement(c, chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR);
|
|
15875
|
+
const isTxt = chunkJAI42EXQ_js.isEditableTextElement(c);
|
|
15878
15876
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15879
15877
|
"div",
|
|
15880
15878
|
{
|
|
@@ -15883,9 +15881,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15883
15881
|
style: {
|
|
15884
15882
|
left: c.x,
|
|
15885
15883
|
top: c.y,
|
|
15886
|
-
width: Math.max(c.width,
|
|
15887
|
-
height: Math.max(c.height,
|
|
15888
|
-
transform:
|
|
15884
|
+
width: Math.max(c.width, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE),
|
|
15885
|
+
height: Math.max(c.height, chunkJAI42EXQ_js.MIN_ELEMENT_SIZE),
|
|
15886
|
+
transform: chunkJAI42EXQ_js.getElementTransform(c),
|
|
15889
15887
|
transformOrigin: "center",
|
|
15890
15888
|
...ss,
|
|
15891
15889
|
...isI ? {
|
|
@@ -15910,8 +15908,8 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15910
15908
|
// A nested group: recurse, chaining the inherited fill so a
|
|
15911
15909
|
// `grpFill` shape under a fill-less sub-group still paints.
|
|
15912
15910
|
renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
|
|
15913
|
-
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
15914
|
-
|
|
15911
|
+
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkJAI42EXQ_js.getImageSurfaceStyle(c), children: [
|
|
15912
|
+
chunkJAI42EXQ_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15915
15913
|
TiledImageLayer,
|
|
15916
15914
|
{
|
|
15917
15915
|
element: c,
|
|
@@ -15924,7 +15922,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15924
15922
|
src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
|
|
15925
15923
|
alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
|
|
15926
15924
|
className: "pointer-events-none select-none",
|
|
15927
|
-
style:
|
|
15925
|
+
style: chunkJAI42EXQ_js.getImageRenderStyle(c),
|
|
15928
15926
|
draggable: false
|
|
15929
15927
|
}
|
|
15930
15928
|
),
|
|
@@ -15936,7 +15934,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15936
15934
|
{
|
|
15937
15935
|
className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
|
|
15938
15936
|
style: ts,
|
|
15939
|
-
children:
|
|
15937
|
+
children: chunkJAI42EXQ_js.renderTextSegments(c, chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR)
|
|
15940
15938
|
}
|
|
15941
15939
|
) : null
|
|
15942
15940
|
] })
|
|
@@ -15950,8 +15948,8 @@ function renderContentPart(el, options) {
|
|
|
15950
15948
|
if (el.inkStrokes && el.inkStrokes.length > 0) {
|
|
15951
15949
|
const replay = options?.replay ?? false;
|
|
15952
15950
|
const pressureSensitive = options?.pressureSensitive ?? true;
|
|
15953
|
-
const strokes =
|
|
15954
|
-
const replayStyles = replay ?
|
|
15951
|
+
const strokes = chunkJAI42EXQ_js.buildContentPartStrokes(el);
|
|
15952
|
+
const replayStyles = replay ? chunkJAI42EXQ_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
|
|
15955
15953
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15956
15954
|
"svg",
|
|
15957
15955
|
{
|
|
@@ -15959,7 +15957,7 @@ function renderContentPart(el, options) {
|
|
|
15959
15957
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15960
15958
|
preserveAspectRatio: "none",
|
|
15961
15959
|
children: [
|
|
15962
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15960
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkJAI42EXQ_js.INK_REPLAY_KEYFRAMES }),
|
|
15963
15961
|
strokes.map(
|
|
15964
15962
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
|
|
15965
15963
|
)
|
|
@@ -16186,9 +16184,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
|
|
|
16186
16184
|
collaboration: connected,
|
|
16187
16185
|
model: pptx.createInlineListModelObserver(element),
|
|
16188
16186
|
activationSelection,
|
|
16189
|
-
children: seed && !connected ?
|
|
16187
|
+
children: seed && !connected ? chunkJAI42EXQ_js.renderTextSegments(
|
|
16190
16188
|
element,
|
|
16191
|
-
|
|
16189
|
+
chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR,
|
|
16192
16190
|
void 0,
|
|
16193
16191
|
void 0,
|
|
16194
16192
|
void 0,
|
|
@@ -16424,8 +16422,8 @@ function InlineTextEditor({
|
|
|
16424
16422
|
pending.endOffset
|
|
16425
16423
|
);
|
|
16426
16424
|
});
|
|
16427
|
-
const warpStyle =
|
|
16428
|
-
const compensationTransform =
|
|
16425
|
+
const warpStyle = chunkJAI42EXQ_js.getTextWarpStyle(textStyleRaw);
|
|
16426
|
+
const compensationTransform = chunkJAI42EXQ_js.getTextCompensationTransform(element);
|
|
16429
16427
|
const warpTransform = warpStyle?.transform;
|
|
16430
16428
|
const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
|
|
16431
16429
|
const wrapperStyle = {
|
|
@@ -16513,7 +16511,7 @@ function InlineTextEditor({
|
|
|
16513
16511
|
const text = e.clipboardData.getData("text/plain");
|
|
16514
16512
|
document.execCommand("insertText", false, text);
|
|
16515
16513
|
},
|
|
16516
|
-
children: list.seed ? list.children : seed.hasRichSegments ?
|
|
16514
|
+
children: list.seed ? list.children : seed.hasRichSegments ? chunkJAI42EXQ_js.renderTextSegments(element, chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR) : seed.initialText
|
|
16517
16515
|
},
|
|
16518
16516
|
list.seed?.paragraphs[0].token ?? "plain"
|
|
16519
16517
|
);
|
|
@@ -17660,7 +17658,7 @@ function groupIntoParagraphs(element, fieldContext) {
|
|
|
17660
17658
|
element,
|
|
17661
17659
|
fieldContext ? (seg) => {
|
|
17662
17660
|
if (seg.fieldType) {
|
|
17663
|
-
const substituted =
|
|
17661
|
+
const substituted = chunkJAI42EXQ_js.substituteFieldText(
|
|
17664
17662
|
seg.text,
|
|
17665
17663
|
seg.fieldType,
|
|
17666
17664
|
fieldContext,
|
|
@@ -17695,13 +17693,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
|
|
|
17695
17693
|
if (s.strikethrough) {
|
|
17696
17694
|
decos.push("line-through");
|
|
17697
17695
|
}
|
|
17698
|
-
const fill = s.hyperlink ?
|
|
17696
|
+
const fill = s.hyperlink ? chunkJAI42EXQ_js.normalizeHexColor(s.color || element.textStyle?.color, chunkJAI42EXQ_js.HYPERLINK_COLOR) : chunkJAI42EXQ_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
|
|
17699
17697
|
return {
|
|
17700
17698
|
fill,
|
|
17701
|
-
fontSize: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17699
|
+
fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunkJAI42EXQ_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17702
17700
|
fontWeight: pptx.resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
|
|
17703
17701
|
fontStyle: pptx.resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
|
|
17704
|
-
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") :
|
|
17702
|
+
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunkJAI42EXQ_js.DEFAULT_FONT_FAMILY,
|
|
17705
17703
|
textDecoration: decos.length > 0 ? decos.join(" ") : void 0
|
|
17706
17704
|
};
|
|
17707
17705
|
}
|
|
@@ -17709,8 +17707,8 @@ function resolveSegmentFont(segment, element) {
|
|
|
17709
17707
|
const s = segment.style || {};
|
|
17710
17708
|
const family = s.fontFamily || element.textStyle?.fontFamily;
|
|
17711
17709
|
return {
|
|
17712
|
-
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) :
|
|
17713
|
-
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17710
|
+
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunkJAI42EXQ_js.DEFAULT_FONT_FAMILY,
|
|
17711
|
+
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunkJAI42EXQ_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17714
17712
|
bold: s.bold ?? element.textStyle?.bold,
|
|
17715
17713
|
italic: s.italic ?? element.textStyle?.italic
|
|
17716
17714
|
};
|
|
@@ -17794,9 +17792,9 @@ function WarpedText({
|
|
|
17794
17792
|
const warpAdj2 = textEl.textStyle?.textWarpAdj2;
|
|
17795
17793
|
const align = textEl.textStyle?.align ?? "center";
|
|
17796
17794
|
const { startOffset, textAnchor } = getAlignmentProps(align);
|
|
17797
|
-
const baseFontSize = textEl.textStyle?.fontSize ??
|
|
17798
|
-
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) :
|
|
17799
|
-
const baseFill =
|
|
17795
|
+
const baseFontSize = textEl.textStyle?.fontSize ?? chunkJAI42EXQ_js.DEFAULT_TEXT_FONT_SIZE;
|
|
17796
|
+
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunkJAI42EXQ_js.DEFAULT_FONT_FAMILY;
|
|
17797
|
+
const baseFill = chunkJAI42EXQ_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
|
|
17800
17798
|
if (pptx.hasGlyphEnvelope(preset)) {
|
|
17801
17799
|
const perLine = pptx.buildGlyphEnvelopeBlock(
|
|
17802
17800
|
preset,
|
|
@@ -17898,7 +17896,7 @@ function WarpedText({
|
|
|
17898
17896
|
var GLYPH_BY_SHAPE = /* @__PURE__ */ buildGlyphByShape();
|
|
17899
17897
|
function buildGlyphByShape() {
|
|
17900
17898
|
const glyphs = Object.fromEntries(
|
|
17901
|
-
|
|
17899
|
+
chunkJAI42EXQ_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
|
|
17902
17900
|
);
|
|
17903
17901
|
glyphs["actionButtonForwardOrNext"] = glyphs["actionButtonForwardNext"];
|
|
17904
17902
|
glyphs["actionButtonBackOrPrevious"] = glyphs["actionButtonBackPrevious"];
|
|
@@ -17972,9 +17970,9 @@ function renderTextElementBody(options) {
|
|
|
17972
17970
|
const useSvgWarp = pptx.shouldUseSvgWarp(
|
|
17973
17971
|
pptx$1.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
|
|
17974
17972
|
);
|
|
17975
|
-
const scene3dStyle = pptx$1.hasTextProperties(el) ?
|
|
17973
|
+
const scene3dStyle = pptx$1.hasTextProperties(el) ? chunkJAI42EXQ_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
|
|
17976
17974
|
const rotationTransform = pptx.getTextBodyRotationTransform(el);
|
|
17977
|
-
const composedTransform = [rotationTransform,
|
|
17975
|
+
const composedTransform = [rotationTransform, chunkJAI42EXQ_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
17978
17976
|
const transformStyle = {
|
|
17979
17977
|
transform: composedTransform,
|
|
17980
17978
|
// A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
|
|
@@ -18004,18 +18002,18 @@ function renderTextElementBody(options) {
|
|
|
18004
18002
|
shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
18005
18003
|
"div",
|
|
18006
18004
|
{
|
|
18007
|
-
className:
|
|
18005
|
+
className: chunkJAI42EXQ_js.cn(
|
|
18008
18006
|
"relative z-10 w-full h-full",
|
|
18009
18007
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
18010
18008
|
),
|
|
18011
|
-
style: { ...
|
|
18009
|
+
style: { ...chunkJAI42EXQ_js.getTextLayoutStyle(el), ...transformStyle },
|
|
18012
18010
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
18013
18011
|
WarpedText,
|
|
18014
18012
|
{
|
|
18015
18013
|
element: el,
|
|
18016
18014
|
width: el.width,
|
|
18017
18015
|
height: el.height,
|
|
18018
|
-
fallbackColor:
|
|
18016
|
+
fallbackColor: chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR,
|
|
18019
18017
|
findHighlights: findHl,
|
|
18020
18018
|
fieldContext
|
|
18021
18019
|
}
|
|
@@ -18024,19 +18022,19 @@ function renderTextElementBody(options) {
|
|
|
18024
18022
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
18025
18023
|
"div",
|
|
18026
18024
|
{
|
|
18027
|
-
className:
|
|
18025
|
+
className: chunkJAI42EXQ_js.cn(
|
|
18028
18026
|
"relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
|
|
18029
18027
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
18030
18028
|
),
|
|
18031
18029
|
style: {
|
|
18032
|
-
...
|
|
18030
|
+
...chunkJAI42EXQ_js.getTextLayoutStyle(el),
|
|
18033
18031
|
...txtS,
|
|
18034
|
-
...
|
|
18032
|
+
...chunkJAI42EXQ_js.getTextWarpStyle(txtSE),
|
|
18035
18033
|
...transformStyle
|
|
18036
18034
|
},
|
|
18037
|
-
children:
|
|
18035
|
+
children: chunkJAI42EXQ_js.renderTextSegments(
|
|
18038
18036
|
el,
|
|
18039
|
-
|
|
18037
|
+
chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR,
|
|
18040
18038
|
void 0,
|
|
18041
18039
|
findHl,
|
|
18042
18040
|
onHyperlinkClick,
|
|
@@ -18355,7 +18353,7 @@ function renderBody(options) {
|
|
|
18355
18353
|
);
|
|
18356
18354
|
}
|
|
18357
18355
|
if (isImg) {
|
|
18358
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
18356
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkJAI42EXQ_js.getImageSurfaceStyle(el), children: [
|
|
18359
18357
|
renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
|
|
18360
18358
|
vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
|
|
18361
18359
|
] });
|
|
@@ -18372,7 +18370,7 @@ function renderBody(options) {
|
|
|
18372
18370
|
textDirection: txtSE?.textDirection,
|
|
18373
18371
|
textStyle: txtS,
|
|
18374
18372
|
textStyleRaw: txtSE,
|
|
18375
|
-
layoutStyle:
|
|
18373
|
+
layoutStyle: chunkJAI42EXQ_js.getTextLayoutStyle(el),
|
|
18376
18374
|
element: el,
|
|
18377
18375
|
onCommit,
|
|
18378
18376
|
onCancel,
|
|
@@ -18383,7 +18381,7 @@ function renderBody(options) {
|
|
|
18383
18381
|
] });
|
|
18384
18382
|
}
|
|
18385
18383
|
if (el.type === "table") {
|
|
18386
|
-
return
|
|
18384
|
+
return chunkJAI42EXQ_js.renderTableElement(el, txtS, {
|
|
18387
18385
|
editable: isSel,
|
|
18388
18386
|
selectedCell: isSel ? tableSt : null,
|
|
18389
18387
|
onSelectCell: onCellSel,
|
|
@@ -18416,7 +18414,7 @@ function renderBody(options) {
|
|
|
18416
18414
|
);
|
|
18417
18415
|
}
|
|
18418
18416
|
if (el.type === "media") {
|
|
18419
|
-
return
|
|
18417
|
+
return chunkJAI42EXQ_js.renderMediaElement(el, media, {
|
|
18420
18418
|
// Present mode autoplays every media element on the active slide,
|
|
18421
18419
|
// not only ones persisted with their own `autoPlay` flag (matching
|
|
18422
18420
|
// the other four bindings' unconditional `presenting`-gated
|
|
@@ -18468,27 +18466,27 @@ function renderBody(options) {
|
|
|
18468
18466
|
}
|
|
18469
18467
|
return renderGroup(el.children, pptx.getGroupChildParentFill(el));
|
|
18470
18468
|
}
|
|
18471
|
-
if (
|
|
18472
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
18469
|
+
if (chunkJAI42EXQ_js.shouldRenderFallbackLabel(el, isTxtEl)) {
|
|
18470
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkJAI42EXQ_js.getElementLabel(el) });
|
|
18473
18471
|
}
|
|
18474
18472
|
return renderTextElementBody(options);
|
|
18475
18473
|
}
|
|
18476
18474
|
function defaultTextColorForFill(fillColor) {
|
|
18477
18475
|
const hex = String(fillColor ?? "").replace(/^#/u, "");
|
|
18478
18476
|
if (!/^[0-9a-f]{6}$/iu.test(hex)) {
|
|
18479
|
-
return
|
|
18477
|
+
return chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR;
|
|
18480
18478
|
}
|
|
18481
18479
|
const channels = [0, 2, 4].map((offset) => Number.parseInt(hex.slice(offset, offset + 2), 16) / 255).map((channel) => channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4);
|
|
18482
18480
|
const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
|
|
18483
|
-
return luminance > 0.179 ?
|
|
18481
|
+
return luminance > 0.179 ? chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR : "#ffffff";
|
|
18484
18482
|
}
|
|
18485
18483
|
function getStaticElementVisualState(element, parentGroupFill) {
|
|
18486
18484
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
18487
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
18488
|
-
const fill =
|
|
18485
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkJAI42EXQ_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
18486
|
+
const fill = chunkJAI42EXQ_js.normalizeHexColor(style?.fillColor, chunkJAI42EXQ_js.DEFAULT_FILL_COLOR);
|
|
18489
18487
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
18490
|
-
const stroke =
|
|
18491
|
-
const baseVisualStyle =
|
|
18488
|
+
const stroke = chunkJAI42EXQ_js.normalizeHexColor(style?.strokeColor, chunkJAI42EXQ_js.DEFAULT_STROKE_COLOR);
|
|
18489
|
+
const baseVisualStyle = chunkJAI42EXQ_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
|
|
18492
18490
|
const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
|
|
18493
18491
|
const visualStyle = inheritedFill ? {
|
|
18494
18492
|
...baseVisualStyle,
|
|
@@ -18498,9 +18496,9 @@ function getStaticElementVisualState(element, parentGroupFill) {
|
|
|
18498
18496
|
backgroundSize: inheritedFill.backgroundSize,
|
|
18499
18497
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
18500
18498
|
} : baseVisualStyle;
|
|
18501
|
-
const textStyle =
|
|
18499
|
+
const textStyle = chunkJAI42EXQ_js.getTextStyleForElement(
|
|
18502
18500
|
element,
|
|
18503
|
-
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) :
|
|
18501
|
+
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunkJAI42EXQ_js.DEFAULT_TEXT_COLOR
|
|
18504
18502
|
);
|
|
18505
18503
|
const isImage = element.type === "picture" || element.type === "image";
|
|
18506
18504
|
const letsTextOverflow = pptx$1.hasTextProperties(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
@@ -18525,7 +18523,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
|
|
|
18525
18523
|
return { action, isActionable, contractRole };
|
|
18526
18524
|
}
|
|
18527
18525
|
function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
|
|
18528
|
-
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" ||
|
|
18526
|
+
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunkJAI42EXQ_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
|
|
18529
18527
|
const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
|
|
18530
18528
|
return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
|
|
18531
18529
|
}
|
|
@@ -18608,7 +18606,7 @@ function StaticElementRendererImpl({
|
|
|
18608
18606
|
top: positioned ? element.y : void 0,
|
|
18609
18607
|
width: positioned ? Math.max(element.width, 1) : "100%",
|
|
18610
18608
|
height: positioned ? Math.max(element.height, 1) : "100%",
|
|
18611
|
-
transform: positioned ?
|
|
18609
|
+
transform: positioned ? chunkJAI42EXQ_js.getElementTransform(element) : void 0,
|
|
18612
18610
|
transformOrigin: "center",
|
|
18613
18611
|
zIndex,
|
|
18614
18612
|
...visualStyle,
|
|
@@ -18651,18 +18649,18 @@ function StaticElementRendererImpl({
|
|
|
18651
18649
|
spellCheck: false,
|
|
18652
18650
|
txtSE: pptx$1.hasTextProperties(element) ? element.textStyle : void 0,
|
|
18653
18651
|
txtS: textStyle,
|
|
18654
|
-
vecShape:
|
|
18652
|
+
vecShape: chunkJAI42EXQ_js.renderVectorShape(
|
|
18655
18653
|
element,
|
|
18656
18654
|
isImage ? false : hasFill,
|
|
18657
18655
|
fill,
|
|
18658
18656
|
strokeWidth,
|
|
18659
18657
|
stroke
|
|
18660
18658
|
),
|
|
18661
|
-
imgStyle: imageAnimation ? { ...
|
|
18662
|
-
imgFilter:
|
|
18663
|
-
imgOpacity:
|
|
18659
|
+
imgStyle: imageAnimation ? { ...chunkJAI42EXQ_js.getImageRenderStyle(element), animation: imageAnimation } : chunkJAI42EXQ_js.getImageRenderStyle(element),
|
|
18660
|
+
imgFilter: chunkJAI42EXQ_js.getImageEffectsFilter(element),
|
|
18661
|
+
imgOpacity: chunkJAI42EXQ_js.getImageEffectsOpacity(element),
|
|
18664
18662
|
imgAlt: "",
|
|
18665
|
-
isTxtEl:
|
|
18663
|
+
isTxtEl: chunkJAI42EXQ_js.isEditableTextElement(element),
|
|
18666
18664
|
media: mediaDataUrls,
|
|
18667
18665
|
tableSt: null,
|
|
18668
18666
|
isSel: false,
|
|
@@ -18710,7 +18708,7 @@ function SlideLayer({
|
|
|
18710
18708
|
style: {
|
|
18711
18709
|
width: safeWidth,
|
|
18712
18710
|
height: safeHeight,
|
|
18713
|
-
backgroundColor: slide.backgroundColor ?
|
|
18711
|
+
backgroundColor: slide.backgroundColor ? chunkJAI42EXQ_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
|
|
18714
18712
|
backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
|
|
18715
18713
|
backgroundSize: slide.backgroundImage ? "cover" : void 0,
|
|
18716
18714
|
backgroundPosition: slide.backgroundImage ? "center" : void 0
|
|
@@ -18783,6 +18781,9 @@ function FragmentedTransitionLayer({
|
|
|
18783
18781
|
}
|
|
18784
18782
|
);
|
|
18785
18783
|
}
|
|
18784
|
+
function overlayEntries(plan, incomingSlide) {
|
|
18785
|
+
return plan.overlayLayers.filter((layer) => layer.side === "outgoing" || incomingSlide !== void 0).flatMap((layer) => layer.elements.map((element) => ({ element, side: layer.side }))).map((entry, zIndex) => ({ ...entry, zIndex }));
|
|
18786
|
+
}
|
|
18786
18787
|
function MorphTransitionOverlay({
|
|
18787
18788
|
canvasSize,
|
|
18788
18789
|
scale,
|
|
@@ -18822,43 +18823,44 @@ function MorphTransitionOverlay({
|
|
|
18822
18823
|
position: "relative"
|
|
18823
18824
|
},
|
|
18824
18825
|
children: [
|
|
18825
|
-
morphPlan
|
|
18826
|
-
"
|
|
18827
|
-
|
|
18828
|
-
|
|
18829
|
-
|
|
18830
|
-
|
|
18831
|
-
|
|
18832
|
-
|
|
18833
|
-
|
|
18834
|
-
|
|
18835
|
-
|
|
18836
|
-
|
|
18837
|
-
|
|
18838
|
-
|
|
18839
|
-
|
|
18840
|
-
|
|
18841
|
-
|
|
18842
|
-
|
|
18843
|
-
|
|
18844
|
-
|
|
18845
|
-
|
|
18846
|
-
|
|
18847
|
-
|
|
18848
|
-
|
|
18849
|
-
|
|
18850
|
-
|
|
18851
|
-
|
|
18852
|
-
|
|
18853
|
-
|
|
18854
|
-
|
|
18855
|
-
|
|
18856
|
-
|
|
18857
|
-
|
|
18858
|
-
|
|
18859
|
-
|
|
18860
|
-
|
|
18861
|
-
|
|
18826
|
+
overlayEntries(morphPlan, incomingSlide).map(
|
|
18827
|
+
({ element, side, zIndex }) => side === "outgoing" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
18828
|
+
"div",
|
|
18829
|
+
{
|
|
18830
|
+
"data-pptx-morph-outgoing": element.id,
|
|
18831
|
+
style: { position: "absolute", inset: 0 },
|
|
18832
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
18833
|
+
StaticElementRenderer,
|
|
18834
|
+
{
|
|
18835
|
+
element,
|
|
18836
|
+
activeSlide: outgoingSlide,
|
|
18837
|
+
allSlides: [outgoingSlide],
|
|
18838
|
+
zIndex,
|
|
18839
|
+
animation: morphPlan.outgoingAnimations.get(element.id),
|
|
18840
|
+
imageAnimation: morphPlan.outgoingImageAnimations.get(element.id)
|
|
18841
|
+
}
|
|
18842
|
+
)
|
|
18843
|
+
},
|
|
18844
|
+
element.id
|
|
18845
|
+
) : incomingSlide && /* @__PURE__ */ jsxRuntime.jsx(
|
|
18846
|
+
"div",
|
|
18847
|
+
{
|
|
18848
|
+
"data-pptx-morph-lifted": element.id,
|
|
18849
|
+
style: { position: "absolute", inset: 0 },
|
|
18850
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
18851
|
+
StaticElementRenderer,
|
|
18852
|
+
{
|
|
18853
|
+
element,
|
|
18854
|
+
activeSlide: incomingSlide,
|
|
18855
|
+
allSlides: [incomingSlide],
|
|
18856
|
+
zIndex,
|
|
18857
|
+
animation: morphPlan.overlayIncomingAnimations.get(element.id)
|
|
18858
|
+
}
|
|
18859
|
+
)
|
|
18860
|
+
},
|
|
18861
|
+
element.id
|
|
18862
|
+
)
|
|
18863
|
+
),
|
|
18862
18864
|
incomingSlide && morphPlan.crossfadeGroups.map((group, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18863
18865
|
"div",
|
|
18864
18866
|
{
|
|
@@ -18923,6 +18925,7 @@ function PresentationTransitionOverlay({
|
|
|
18923
18925
|
scale: stageScale,
|
|
18924
18926
|
morphPlan,
|
|
18925
18927
|
incomingSlide,
|
|
18928
|
+
incomingTemplateElements = templateElements,
|
|
18926
18929
|
onComplete
|
|
18927
18930
|
}) {
|
|
18928
18931
|
const containerRef = React17.useRef(null);
|
|
@@ -19012,7 +19015,7 @@ function PresentationTransitionOverlay({
|
|
|
19012
19015
|
{
|
|
19013
19016
|
layer: fragmented.incoming,
|
|
19014
19017
|
slide: incomingSlide,
|
|
19015
|
-
templateElements,
|
|
19018
|
+
templateElements: incomingTemplateElements,
|
|
19016
19019
|
canvasSize,
|
|
19017
19020
|
scale,
|
|
19018
19021
|
zIndex: animations.outgoingOnTop ? 0 : 10,
|
|
@@ -19042,7 +19045,7 @@ function PresentationTransitionOverlay({
|
|
|
19042
19045
|
SlideLayer,
|
|
19043
19046
|
{
|
|
19044
19047
|
slide: incomingSlide,
|
|
19045
|
-
templateElements,
|
|
19048
|
+
templateElements: incomingTemplateElements,
|
|
19046
19049
|
canvasSize
|
|
19047
19050
|
}
|
|
19048
19051
|
)
|