pptx-react-viewer 4.43.0 → 4.44.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 +35 -0
- package/dist/{AiChatPanel-VI2IQ7XU.js → AiChatPanel-TGZQBH3L.js} +9 -9
- package/dist/AiChatPanel-TGZQBH3L.js.br +0 -0
- package/dist/AiChatPanel-TGZQBH3L.js.gz +0 -0
- package/dist/{AiChatPanel-R5UTSMXU.mjs → AiChatPanel-Z5VHI4WA.mjs} +1 -1
- package/dist/AiChatPanel-Z5VHI4WA.mjs.br +0 -0
- package/dist/AiChatPanel-Z5VHI4WA.mjs.gz +0 -0
- package/dist/{chunk-3LIHPZKS.mjs → chunk-FBN7UFW2.mjs} +15 -9
- package/dist/chunk-FBN7UFW2.mjs.br +0 -0
- package/dist/chunk-FBN7UFW2.mjs.gz +0 -0
- package/dist/{chunk-UACDKMXF.mjs → chunk-NXOETWSO.mjs} +18 -17
- package/dist/chunk-NXOETWSO.mjs.br +0 -0
- package/dist/chunk-NXOETWSO.mjs.gz +0 -0
- package/dist/{chunk-GLWV52C6.js → chunk-OYK6O2UM.js} +260 -259
- package/dist/chunk-OYK6O2UM.js.br +0 -0
- package/dist/chunk-OYK6O2UM.js.gz +0 -0
- package/dist/{chunk-FKY33ZKL.js → chunk-VJZJESNT.js} +14 -8
- package/dist/chunk-VJZJESNT.js.br +0 -0
- package/dist/chunk-VJZJESNT.js.gz +0 -0
- package/dist/{chunk-ITV63NJ5.mjs → chunk-W6PDVBAF.mjs} +113 -127
- package/dist/chunk-W6PDVBAF.mjs.br +0 -0
- package/dist/chunk-W6PDVBAF.mjs.gz +0 -0
- package/dist/{chunk-CHPELGQD.js → chunk-YIYIJB3X.js} +1420 -1434
- package/dist/chunk-YIYIJB3X.js.br +0 -0
- package/dist/chunk-YIYIJB3X.js.gz +0 -0
- package/dist/index.d.ts +3 -3
- 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 +2 -2
- 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/viewer/index.d.ts +2 -2
- 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-R5UTSMXU.mjs.br +0 -0
- package/dist/AiChatPanel-R5UTSMXU.mjs.gz +0 -0
- package/dist/AiChatPanel-VI2IQ7XU.js.br +0 -0
- package/dist/AiChatPanel-VI2IQ7XU.js.gz +0 -0
- package/dist/chunk-3LIHPZKS.mjs.br +0 -0
- package/dist/chunk-3LIHPZKS.mjs.gz +0 -0
- package/dist/chunk-CHPELGQD.js.br +0 -0
- package/dist/chunk-CHPELGQD.js.gz +0 -0
- package/dist/chunk-FKY33ZKL.js.br +0 -0
- package/dist/chunk-FKY33ZKL.js.gz +0 -0
- package/dist/chunk-GLWV52C6.js.br +0 -0
- package/dist/chunk-GLWV52C6.js.gz +0 -0
- package/dist/chunk-ITV63NJ5.mjs.br +0 -0
- package/dist/chunk-ITV63NJ5.mjs.gz +0 -0
- package/dist/chunk-UACDKMXF.mjs.br +0 -0
- package/dist/chunk-UACDKMXF.mjs.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkVJZJESNT_js = require('./chunk-VJZJESNT.js');
|
|
4
4
|
var pptx = require('ooxml-ui/pptx');
|
|
5
5
|
var React17 = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -684,9 +684,9 @@ function serializeHistoryDocument(snapshot) {
|
|
|
684
684
|
}
|
|
685
685
|
function recordExplicitSlideUpdate(past, future, previous, before, label, maxDepth) {
|
|
686
686
|
if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
|
|
687
|
-
past.push(
|
|
687
|
+
past.push(chunkVJZJESNT_js.cloneHistorySnapshot(previous));
|
|
688
688
|
}
|
|
689
|
-
past.push({ ...
|
|
689
|
+
past.push({ ...chunkVJZJESNT_js.cloneHistorySnapshot(before), actionLabel: label });
|
|
690
690
|
while (past.length > Math.max(1, maxDepth)) {
|
|
691
691
|
past.shift();
|
|
692
692
|
}
|
|
@@ -776,8 +776,8 @@ function useEditorHistory(input) {
|
|
|
776
776
|
width: canvasSize.width,
|
|
777
777
|
height: canvasSize.height,
|
|
778
778
|
activeSlideIndex,
|
|
779
|
-
slides: slides.map(
|
|
780
|
-
templateElementsBySlideId:
|
|
779
|
+
slides: slides.map(chunkVJZJESNT_js.cloneSlide),
|
|
780
|
+
templateElementsBySlideId: chunkVJZJESNT_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
|
|
781
781
|
...actionLabel ? { actionLabel } : {}
|
|
782
782
|
};
|
|
783
783
|
},
|
|
@@ -790,9 +790,9 @@ function useEditorHistory(input) {
|
|
|
790
790
|
width: snapshot.width,
|
|
791
791
|
height: snapshot.height
|
|
792
792
|
});
|
|
793
|
-
setSlides(snapshot.slides.map(
|
|
793
|
+
setSlides(snapshot.slides.map(chunkVJZJESNT_js.cloneSlide));
|
|
794
794
|
setTemplateElementsBySlideId(
|
|
795
|
-
|
|
795
|
+
chunkVJZJESNT_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
|
|
796
796
|
);
|
|
797
797
|
setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
|
|
798
798
|
setSelectedElementIds([]);
|
|
@@ -831,8 +831,8 @@ function useEditorHistory(input) {
|
|
|
831
831
|
const currentSnapshot = buildHistorySnapshot(previousSnapshot.actionLabel);
|
|
832
832
|
historyFutureRef.current.push(currentSnapshot);
|
|
833
833
|
isApplyingHistoryRef.current = true;
|
|
834
|
-
const nextSnapshot =
|
|
835
|
-
lastHistorySnapshotRef.current =
|
|
834
|
+
const nextSnapshot = chunkVJZJESNT_js.cloneHistorySnapshot(previousSnapshot);
|
|
835
|
+
lastHistorySnapshotRef.current = chunkVJZJESNT_js.cloneHistorySnapshot(nextSnapshot);
|
|
836
836
|
lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
|
|
837
837
|
applyHistorySnapshot(nextSnapshot);
|
|
838
838
|
updateHistoryAvailability();
|
|
@@ -853,8 +853,8 @@ function useEditorHistory(input) {
|
|
|
853
853
|
const currentSnapshot = buildHistorySnapshot(nextSnapshot.actionLabel);
|
|
854
854
|
historyPastRef.current.push(currentSnapshot);
|
|
855
855
|
isApplyingHistoryRef.current = true;
|
|
856
|
-
const targetSnapshot =
|
|
857
|
-
lastHistorySnapshotRef.current =
|
|
856
|
+
const targetSnapshot = chunkVJZJESNT_js.cloneHistorySnapshot(nextSnapshot);
|
|
857
|
+
lastHistorySnapshotRef.current = chunkVJZJESNT_js.cloneHistorySnapshot(targetSnapshot);
|
|
858
858
|
lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
|
|
859
859
|
applyHistorySnapshot(targetSnapshot);
|
|
860
860
|
updateHistoryAvailability();
|
|
@@ -872,7 +872,7 @@ function useEditorHistory(input) {
|
|
|
872
872
|
historyPastRef.current = [];
|
|
873
873
|
historyFutureRef.current = [];
|
|
874
874
|
if (initialSnapshot) {
|
|
875
|
-
const clonedInitial =
|
|
875
|
+
const clonedInitial = chunkVJZJESNT_js.cloneHistorySnapshot(initialSnapshot);
|
|
876
876
|
lastHistorySnapshotRef.current = clonedInitial;
|
|
877
877
|
lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
|
|
878
878
|
} else {
|
|
@@ -954,8 +954,8 @@ function useEditorHistory(input) {
|
|
|
954
954
|
updateHistoryAvailability
|
|
955
955
|
]);
|
|
956
956
|
const commitSlides = (nextSlides, label, beforeSlides = slides) => {
|
|
957
|
-
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(
|
|
958
|
-
const after = { ...before, slides: nextSlides.map(
|
|
957
|
+
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunkVJZJESNT_js.cloneSlide) };
|
|
958
|
+
const after = { ...before, slides: nextSlides.map(chunkVJZJESNT_js.cloneSlide) };
|
|
959
959
|
recordExplicitSlideUpdate(
|
|
960
960
|
historyPastRef.current,
|
|
961
961
|
historyFutureRef.current,
|
|
@@ -964,7 +964,7 @@ function useEditorHistory(input) {
|
|
|
964
964
|
label,
|
|
965
965
|
maxHistoryEntries
|
|
966
966
|
);
|
|
967
|
-
lastHistorySnapshotRef.current =
|
|
967
|
+
lastHistorySnapshotRef.current = chunkVJZJESNT_js.cloneHistorySnapshot(after);
|
|
968
968
|
lastHistorySerializedRef.current = serializeHistoryDocument(after);
|
|
969
969
|
isApplyingHistoryRef.current = false;
|
|
970
970
|
setSlides(nextSlides);
|
|
@@ -1151,22 +1151,22 @@ function useZoomViewport({
|
|
|
1151
1151
|
selectedElements.forEach((element) => {
|
|
1152
1152
|
minX = Math.min(minX, element.x);
|
|
1153
1153
|
minY = Math.min(minY, element.y);
|
|
1154
|
-
maxX = Math.max(maxX, element.x + Math.max(element.width,
|
|
1155
|
-
maxY = Math.max(maxY, element.y + Math.max(element.height,
|
|
1154
|
+
maxX = Math.max(maxX, element.x + Math.max(element.width, chunkVJZJESNT_js.MIN_ELEMENT_SIZE));
|
|
1155
|
+
maxY = Math.max(maxY, element.y + Math.max(element.height, chunkVJZJESNT_js.MIN_ELEMENT_SIZE));
|
|
1156
1156
|
});
|
|
1157
1157
|
if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
|
|
1158
1158
|
return;
|
|
1159
1159
|
}
|
|
1160
1160
|
const selectionBounds = { minX, minY, maxX, maxY };
|
|
1161
|
-
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX,
|
|
1162
|
-
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY,
|
|
1161
|
+
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
1162
|
+
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
1163
1163
|
const availableWidth = Math.max(
|
|
1164
|
-
effectiveEditorDimensions.width -
|
|
1165
|
-
|
|
1164
|
+
effectiveEditorDimensions.width - chunkVJZJESNT_js.ZOOM_TO_SELECTION_PADDING,
|
|
1165
|
+
chunkVJZJESNT_js.MIN_ELEMENT_SIZE
|
|
1166
1166
|
);
|
|
1167
1167
|
const availableHeight = Math.max(
|
|
1168
|
-
effectiveEditorDimensions.height -
|
|
1169
|
-
|
|
1168
|
+
effectiveEditorDimensions.height - chunkVJZJESNT_js.ZOOM_TO_SELECTION_PADDING,
|
|
1169
|
+
chunkVJZJESNT_js.MIN_ELEMENT_SIZE
|
|
1170
1170
|
);
|
|
1171
1171
|
const targetEditorScale = Math.min(
|
|
1172
1172
|
availableWidth / boundsWidth,
|
|
@@ -4133,8 +4133,8 @@ function useViewerCoreState(_input) {
|
|
|
4133
4133
|
const { slides, setSlides, slidesRef } = useSlideState();
|
|
4134
4134
|
const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
|
|
4135
4135
|
const [canvasSize, setCanvasSize] = React17.useState({
|
|
4136
|
-
width:
|
|
4137
|
-
height:
|
|
4136
|
+
width: chunkVJZJESNT_js.DEFAULT_CANVAS_WIDTH,
|
|
4137
|
+
height: chunkVJZJESNT_js.DEFAULT_CANVAS_HEIGHT
|
|
4138
4138
|
});
|
|
4139
4139
|
const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
|
|
4140
4140
|
const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
|
|
@@ -4522,7 +4522,7 @@ function useLoadContent({
|
|
|
4522
4522
|
}
|
|
4523
4523
|
let cancelled = false;
|
|
4524
4524
|
const token = ++renderTokenRef.current;
|
|
4525
|
-
const handler = new
|
|
4525
|
+
const handler = new chunkVJZJESNT_js.dist_exports.PptxHandler();
|
|
4526
4526
|
const resources = pptx.createPresentationLoadResources(handler);
|
|
4527
4527
|
const loadBlobUrls = resources.blobUrls;
|
|
4528
4528
|
(async () => {
|
|
@@ -4607,12 +4607,12 @@ function useLoadContent({
|
|
|
4607
4607
|
}
|
|
4608
4608
|
resources.commit();
|
|
4609
4609
|
handlerRef.current = handler;
|
|
4610
|
-
const partition =
|
|
4610
|
+
const partition = chunkVJZJESNT_js.partitionTemplateElements(nextSlides);
|
|
4611
4611
|
setSlides(partition.slides);
|
|
4612
4612
|
setTemplateElementsBySlideId(partition.templateElementsBySlideId);
|
|
4613
4613
|
setCanvasSize({
|
|
4614
|
-
width: parsed.width ??
|
|
4615
|
-
height: parsed.height ??
|
|
4614
|
+
width: parsed.width ?? chunkVJZJESNT_js.DEFAULT_CANVAS_WIDTH,
|
|
4615
|
+
height: parsed.height ?? chunkVJZJESNT_js.DEFAULT_CANVAS_HEIGHT
|
|
4616
4616
|
});
|
|
4617
4617
|
setSlideSizeEmu(
|
|
4618
4618
|
typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
|
|
@@ -4676,7 +4676,7 @@ function useLoadContent({
|
|
|
4676
4676
|
onContentApplied?.();
|
|
4677
4677
|
} catch (err) {
|
|
4678
4678
|
if (!cancelled && token === renderTokenRef.current) {
|
|
4679
|
-
if (err instanceof
|
|
4679
|
+
if (err instanceof chunkVJZJESNT_js.dist_exports.EncryptedFileError) {
|
|
4680
4680
|
setIsEncrypted(true);
|
|
4681
4681
|
} else {
|
|
4682
4682
|
console.error("[pptx] Failed to load presentation content:", err);
|
|
@@ -4801,7 +4801,7 @@ function useTextElementOperations(input) {
|
|
|
4801
4801
|
updateSelectedElement
|
|
4802
4802
|
} = input;
|
|
4803
4803
|
const liveTextSegments = React17.useCallback(() => {
|
|
4804
|
-
if (!selectedElement || !(0,
|
|
4804
|
+
if (!selectedElement || !(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(selectedElement)) {
|
|
4805
4805
|
return void 0;
|
|
4806
4806
|
}
|
|
4807
4807
|
if (selectedElement.id !== inlineEditingElementId) {
|
|
@@ -4819,7 +4819,7 @@ function useTextElementOperations(input) {
|
|
|
4819
4819
|
}, [selectedElement, inlineEditingElementId, inlineEditingText, inlineEditingSnapshotRef]);
|
|
4820
4820
|
const updateSelectedTextStyle = React17.useCallback(
|
|
4821
4821
|
(updates) => {
|
|
4822
|
-
if (!selectedElement || !(0,
|
|
4822
|
+
if (!selectedElement || !(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(selectedElement)) {
|
|
4823
4823
|
return;
|
|
4824
4824
|
}
|
|
4825
4825
|
const isLiveEditing = selectedElement.id === inlineEditingElementId;
|
|
@@ -4897,7 +4897,7 @@ function useTextElementOperations(input) {
|
|
|
4897
4897
|
);
|
|
4898
4898
|
const toggleSelectedBullets = React17.useCallback(
|
|
4899
4899
|
(kind) => {
|
|
4900
|
-
if (!selectedElement || !(0,
|
|
4900
|
+
if (!selectedElement || !(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(selectedElement)) {
|
|
4901
4901
|
return;
|
|
4902
4902
|
}
|
|
4903
4903
|
const currentSegments = liveTextSegments();
|
|
@@ -4948,7 +4948,7 @@ function useTextElementOperations(input) {
|
|
|
4948
4948
|
);
|
|
4949
4949
|
const updateSelectedTextCase = React17.useCallback(
|
|
4950
4950
|
(mode) => {
|
|
4951
|
-
if (!selectedElement || !(0,
|
|
4951
|
+
if (!selectedElement || !(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(selectedElement)) {
|
|
4952
4952
|
return;
|
|
4953
4953
|
}
|
|
4954
4954
|
const isLiveEditing = selectedElement.id === inlineEditingElementId;
|
|
@@ -5064,7 +5064,7 @@ function useElementOperations(input) {
|
|
|
5064
5064
|
);
|
|
5065
5065
|
return;
|
|
5066
5066
|
}
|
|
5067
|
-
if (
|
|
5067
|
+
if (chunkVJZJESNT_js.isTemplateElementId(elementId)) {
|
|
5068
5068
|
const slideId = activeSlide?.id;
|
|
5069
5069
|
if (slideId) {
|
|
5070
5070
|
setTemplateElementsBySlideId((prev) => ({
|
|
@@ -5100,7 +5100,7 @@ function useElementOperations(input) {
|
|
|
5100
5100
|
);
|
|
5101
5101
|
const updateSelectedShapeStyle = React17.useCallback(
|
|
5102
5102
|
(updates) => {
|
|
5103
|
-
if (!selectedElement || !(0,
|
|
5103
|
+
if (!selectedElement || !(0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(selectedElement)) {
|
|
5104
5104
|
return;
|
|
5105
5105
|
}
|
|
5106
5106
|
updateSelectedElement({
|
|
@@ -5304,15 +5304,15 @@ function syncSelectionHandleOverlay(elementNode, elementId, geometry) {
|
|
|
5304
5304
|
// src/viewer/hooks/pointer-move-handlers.ts
|
|
5305
5305
|
function computeResizeGeometry(handle, startX, startY, startWidth, startHeight, dx, dy, snapToGrid, gridSpacingPx, lockAspect = false) {
|
|
5306
5306
|
const startBox = { x: startX, y: startY, width: startWidth, height: startHeight };
|
|
5307
|
-
let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize:
|
|
5307
|
+
let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize: chunkVJZJESNT_js.MIN_ELEMENT_SIZE });
|
|
5308
5308
|
if (lockAspect) {
|
|
5309
|
-
resized = pptx.lockResizeAspect(resized, startBox, handle,
|
|
5309
|
+
resized = pptx.lockResizeAspect(resized, startBox, handle, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
5310
5310
|
}
|
|
5311
5311
|
const box = { x: resized.x, y: resized.y, width: resized.width, height: resized.height };
|
|
5312
5312
|
if (!snapToGrid) {
|
|
5313
5313
|
return box;
|
|
5314
5314
|
}
|
|
5315
|
-
return pptx.snapBoxToGrid(box, handle, gridSpacingPx,
|
|
5315
|
+
return pptx.snapBoxToGrid(box, handle, gridSpacingPx, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
5316
5316
|
}
|
|
5317
5317
|
function resolveLiveTarget(input) {
|
|
5318
5318
|
const { livePatcher, editTemplateMode, activeSlide } = input;
|
|
@@ -5425,7 +5425,7 @@ function processDragMove(e, drag, editorScale, snapToGrid, snapToShape, gridSpac
|
|
|
5425
5425
|
width: el.width,
|
|
5426
5426
|
height: el.height
|
|
5427
5427
|
}));
|
|
5428
|
-
const snapResult =
|
|
5428
|
+
const snapResult = chunkVJZJESNT_js.computeSnapToShape(
|
|
5429
5429
|
targetX,
|
|
5430
5430
|
targetY,
|
|
5431
5431
|
primaryEl.width,
|
|
@@ -5499,8 +5499,8 @@ function processResizeMove(e, rs, editorScale, snapToGrid, gridSpacingPx, live)
|
|
|
5499
5499
|
rs.lastY = geo.y;
|
|
5500
5500
|
rs.lastWidth = geo.width;
|
|
5501
5501
|
rs.lastHeight = geo.height;
|
|
5502
|
-
const width = Math.max(geo.width,
|
|
5503
|
-
const height = Math.max(geo.height,
|
|
5502
|
+
const width = Math.max(geo.width, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
5503
|
+
const height = Math.max(geo.height, chunkVJZJESNT_js.MIN_ELEMENT_SIZE);
|
|
5504
5504
|
if (rs.domEl) {
|
|
5505
5505
|
rs.domEl.style.left = `${geo.x}px`;
|
|
5506
5506
|
rs.domEl.style.top = `${geo.y}px`;
|
|
@@ -5593,13 +5593,13 @@ function processPointerUp(input) {
|
|
|
5593
5593
|
if (i !== activeSlideIndex) {
|
|
5594
5594
|
return s;
|
|
5595
5595
|
}
|
|
5596
|
-
const rerouted =
|
|
5596
|
+
const rerouted = chunkVJZJESNT_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
|
|
5597
5597
|
if (rerouted.length === 0) {
|
|
5598
5598
|
return s;
|
|
5599
5599
|
}
|
|
5600
5600
|
return {
|
|
5601
5601
|
...s,
|
|
5602
|
-
elements:
|
|
5602
|
+
elements: chunkVJZJESNT_js.applyReroutedConnectors(s.elements, rerouted)
|
|
5603
5603
|
};
|
|
5604
5604
|
})
|
|
5605
5605
|
);
|
|
@@ -5651,8 +5651,8 @@ function commitDrag(drag, editTemplateMode, activeSlide, activeSlideIndex, setTe
|
|
|
5651
5651
|
}
|
|
5652
5652
|
return { ...el, x: start.x + dx, y: start.y + dy };
|
|
5653
5653
|
});
|
|
5654
|
-
const rerouted =
|
|
5655
|
-
return
|
|
5654
|
+
const rerouted = chunkVJZJESNT_js.rerouteConnectorsForMovedElements(movedElements, movedIds);
|
|
5655
|
+
return chunkVJZJESNT_js.applyReroutedConnectors(movedElements, rerouted);
|
|
5656
5656
|
};
|
|
5657
5657
|
if (editTemplateMode) {
|
|
5658
5658
|
const slideId = activeSlide?.id;
|
|
@@ -5840,7 +5840,7 @@ function useCanvasInteractions(input) {
|
|
|
5840
5840
|
return;
|
|
5841
5841
|
}
|
|
5842
5842
|
const el = elementLookup.get(editId);
|
|
5843
|
-
if (el && (0,
|
|
5843
|
+
if (el && (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el)) {
|
|
5844
5844
|
const reader = inlineEditingReaderRef?.current;
|
|
5845
5845
|
const read = reader?.elementId === editId ? reader.read() : void 0;
|
|
5846
5846
|
if (read?.kind === "unsupported") {
|
|
@@ -5887,7 +5887,7 @@ function useCanvasInteractions(input) {
|
|
|
5887
5887
|
wasEditable.current = canEdit;
|
|
5888
5888
|
}, [canEdit]);
|
|
5889
5889
|
const openEquationEditorForElement = (el) => {
|
|
5890
|
-
if (!(0,
|
|
5890
|
+
if (!(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el)) {
|
|
5891
5891
|
return false;
|
|
5892
5892
|
}
|
|
5893
5893
|
const eqSeg = el.textSegments?.find((seg) => seg.equationXml);
|
|
@@ -5920,7 +5920,7 @@ function useCanvasInteractions(input) {
|
|
|
5920
5920
|
justInteractedRef.current = false;
|
|
5921
5921
|
} else {
|
|
5922
5922
|
const el = elementLookup.get(elementId);
|
|
5923
|
-
if (el && (0,
|
|
5923
|
+
if (el && (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
|
|
5924
5924
|
if (!openEquationEditorForElement(el)) {
|
|
5925
5925
|
pptx.setPendingCaretPoint(e);
|
|
5926
5926
|
setInlineEditingElementId(elementId);
|
|
@@ -5946,7 +5946,7 @@ function useCanvasInteractions(input) {
|
|
|
5946
5946
|
if (openEquationEditorForElement(el)) {
|
|
5947
5947
|
return;
|
|
5948
5948
|
}
|
|
5949
|
-
if ((0,
|
|
5949
|
+
if ((0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
|
|
5950
5950
|
setInlineEditingElementId(elementId);
|
|
5951
5951
|
setInlineEditingText(el.text ?? "");
|
|
5952
5952
|
}
|
|
@@ -6411,7 +6411,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6411
6411
|
return;
|
|
6412
6412
|
}
|
|
6413
6413
|
const resolved = resolveHyperlinkEditResult(data);
|
|
6414
|
-
if (resolved.url && !
|
|
6414
|
+
if (resolved.url && !chunkVJZJESNT_js.isUrlSafe(resolved.url)) {
|
|
6415
6415
|
return;
|
|
6416
6416
|
}
|
|
6417
6417
|
const actionClick = {
|
|
@@ -6457,11 +6457,11 @@ function createStructuredElementHandlers(deps) {
|
|
|
6457
6457
|
if (!activeSlide) {
|
|
6458
6458
|
return;
|
|
6459
6459
|
}
|
|
6460
|
-
const preset =
|
|
6460
|
+
const preset = chunkVJZJESNT_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
|
|
6461
6461
|
if (!preset) {
|
|
6462
6462
|
return;
|
|
6463
6463
|
}
|
|
6464
|
-
const defaultPptxAction = (0,
|
|
6464
|
+
const defaultPptxAction = (0, chunkVJZJESNT_js.dist_exports.elementActionToPptxAction)({
|
|
6465
6465
|
trigger: "click",
|
|
6466
6466
|
type: preset.defaultAction
|
|
6467
6467
|
});
|
|
@@ -6544,7 +6544,7 @@ function useInsertElements(input) {
|
|
|
6544
6544
|
width: 300,
|
|
6545
6545
|
height: 60,
|
|
6546
6546
|
text: "",
|
|
6547
|
-
textStyle: { fontSize:
|
|
6547
|
+
textStyle: { fontSize: chunkVJZJESNT_js.DEFAULT_TEXT_FONT_SIZE }
|
|
6548
6548
|
});
|
|
6549
6549
|
};
|
|
6550
6550
|
const handleAddShape = () => {
|
|
@@ -6566,7 +6566,7 @@ function useInsertElements(input) {
|
|
|
6566
6566
|
}
|
|
6567
6567
|
});
|
|
6568
6568
|
};
|
|
6569
|
-
const handleAddTable = (rows =
|
|
6569
|
+
const handleAddTable = (rows = chunkVJZJESNT_js.DEFAULT_TABLE_ROWS, columns = chunkVJZJESNT_js.DEFAULT_TABLE_COLUMNS) => {
|
|
6570
6570
|
if (!activeSlide) {
|
|
6571
6571
|
return;
|
|
6572
6572
|
}
|
|
@@ -6740,7 +6740,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6740
6740
|
history
|
|
6741
6741
|
} = input;
|
|
6742
6742
|
const updateElementsOwning = (elementId, updater) => {
|
|
6743
|
-
if (editTemplateMode && !
|
|
6743
|
+
if (editTemplateMode && !chunkVJZJESNT_js.isTemplateElementId(elementId)) {
|
|
6744
6744
|
ops.updateSlides(
|
|
6745
6745
|
(prev) => prev.map(
|
|
6746
6746
|
(slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
|
|
@@ -6774,9 +6774,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6774
6774
|
return;
|
|
6775
6775
|
}
|
|
6776
6776
|
const group = selectedElement;
|
|
6777
|
-
const intoTemplate =
|
|
6777
|
+
const intoTemplate = chunkVJZJESNT_js.isTemplateElementId(group.id);
|
|
6778
6778
|
const childIds = group.children.map(
|
|
6779
|
-
(child) => intoTemplate ?
|
|
6779
|
+
(child) => intoTemplate ? chunkVJZJESNT_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
|
|
6780
6780
|
);
|
|
6781
6781
|
const { elements, childIds: usedIds } = pptx.ungroupElements(
|
|
6782
6782
|
ops.activeElements,
|
|
@@ -7108,7 +7108,7 @@ function useSlideManagement(input) {
|
|
|
7108
7108
|
if (!src) {
|
|
7109
7109
|
continue;
|
|
7110
7110
|
}
|
|
7111
|
-
const clone = { ...(0,
|
|
7111
|
+
const clone = { ...(0, chunkVJZJESNT_js.dist_exports.duplicateSlide)(src, next.length + 1), id: pptx.makeSlideId() };
|
|
7112
7112
|
next.splice(i + offset + 1, 0, clone);
|
|
7113
7113
|
offset++;
|
|
7114
7114
|
}
|
|
@@ -7212,7 +7212,7 @@ function createTableMergeHandlers(input) {
|
|
|
7212
7212
|
if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
|
|
7213
7213
|
return;
|
|
7214
7214
|
}
|
|
7215
|
-
const newTableData =
|
|
7215
|
+
const newTableData = chunkVJZJESNT_js.mergeCells(
|
|
7216
7216
|
[
|
|
7217
7217
|
{ row: rowIndex, col: columnIndex },
|
|
7218
7218
|
{ row: rowIndex, col: nextColIdx }
|
|
@@ -7220,7 +7220,7 @@ function createTableMergeHandlers(input) {
|
|
|
7220
7220
|
td
|
|
7221
7221
|
);
|
|
7222
7222
|
const updates = { tableData: newTableData };
|
|
7223
|
-
const newRawXml = (0,
|
|
7223
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
|
|
7224
7224
|
if (newRawXml) {
|
|
7225
7225
|
updates.rawXml = newRawXml;
|
|
7226
7226
|
}
|
|
@@ -7246,7 +7246,7 @@ function createTableMergeHandlers(input) {
|
|
|
7246
7246
|
if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
|
|
7247
7247
|
return;
|
|
7248
7248
|
}
|
|
7249
|
-
const newTableData =
|
|
7249
|
+
const newTableData = chunkVJZJESNT_js.mergeCells(
|
|
7250
7250
|
[
|
|
7251
7251
|
{ row: rowIndex, col: columnIndex },
|
|
7252
7252
|
{ row: targetNextRowIdx, col: columnIndex }
|
|
@@ -7254,7 +7254,7 @@ function createTableMergeHandlers(input) {
|
|
|
7254
7254
|
td
|
|
7255
7255
|
);
|
|
7256
7256
|
const updates = { tableData: newTableData };
|
|
7257
|
-
const newRawXml = (0,
|
|
7257
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
|
|
7258
7258
|
if (newRawXml) {
|
|
7259
7259
|
updates.rawXml = newRawXml;
|
|
7260
7260
|
}
|
|
@@ -7269,9 +7269,9 @@ function createTableMergeHandlers(input) {
|
|
|
7269
7269
|
return;
|
|
7270
7270
|
}
|
|
7271
7271
|
const td = selectedElement.tableData;
|
|
7272
|
-
const newTableData =
|
|
7272
|
+
const newTableData = chunkVJZJESNT_js.mergeCells(ts.selectedCells, td);
|
|
7273
7273
|
const updates = { tableData: newTableData };
|
|
7274
|
-
const newRawXml = (0,
|
|
7274
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
|
|
7275
7275
|
if (newRawXml) {
|
|
7276
7276
|
updates.rawXml = newRawXml;
|
|
7277
7277
|
}
|
|
@@ -7288,9 +7288,9 @@ function createTableMergeHandlers(input) {
|
|
|
7288
7288
|
}
|
|
7289
7289
|
const { rowIndex, columnIndex } = ts;
|
|
7290
7290
|
const td = selectedElement.tableData;
|
|
7291
|
-
const newTableData =
|
|
7291
|
+
const newTableData = chunkVJZJESNT_js.splitCell(rowIndex, columnIndex, td);
|
|
7292
7292
|
const updates = { tableData: newTableData };
|
|
7293
|
-
const newRawXml = (0,
|
|
7293
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
|
|
7294
7294
|
if (newRawXml) {
|
|
7295
7295
|
updates.rawXml = newRawXml;
|
|
7296
7296
|
}
|
|
@@ -7325,7 +7325,7 @@ function createTableStructHandlers(input) {
|
|
|
7325
7325
|
updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
|
|
7326
7326
|
}
|
|
7327
7327
|
if (el.rawXml) {
|
|
7328
|
-
const newRawXml = (0,
|
|
7328
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateCellTextInRawXml)(el, rowIndex, colIndex, text);
|
|
7329
7329
|
if (newRawXml) {
|
|
7330
7330
|
updates.rawXml = newRawXml;
|
|
7331
7331
|
}
|
|
@@ -7349,7 +7349,7 @@ function createTableStructHandlers(input) {
|
|
|
7349
7349
|
const { rowIndex, columnIndex: colIndex } = ts;
|
|
7350
7350
|
const updates = {};
|
|
7351
7351
|
if (selectedElement.rawXml) {
|
|
7352
|
-
const newRawXml = (0,
|
|
7352
|
+
const newRawXml = (0, chunkVJZJESNT_js.dist_exports.updateCellTextStyleInRawXml)(
|
|
7353
7353
|
selectedElement,
|
|
7354
7354
|
rowIndex,
|
|
7355
7355
|
colIndex,
|
|
@@ -7516,7 +7516,7 @@ function useExportSaveAs(input) {
|
|
|
7516
7516
|
const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
|
|
7517
7517
|
const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
|
|
7518
7518
|
const data = {
|
|
7519
|
-
slides:
|
|
7519
|
+
slides: chunkVJZJESNT_js.buildSaveSlides(slides, templateElementsBySlideId),
|
|
7520
7520
|
width: canvasSize.width,
|
|
7521
7521
|
height: canvasSize.height,
|
|
7522
7522
|
widthEmu: slideSize.widthEmu,
|
|
@@ -7674,7 +7674,7 @@ async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActi
|
|
|
7674
7674
|
}
|
|
7675
7675
|
function tilesToPdfPage(tilesResult) {
|
|
7676
7676
|
return tilesResult.tiles.map((tile) => ({
|
|
7677
|
-
image:
|
|
7677
|
+
image: chunkVJZJESNT_js.canvasToJpegData(tile.canvas),
|
|
7678
7678
|
placement: pptx.placeTileOnPage(
|
|
7679
7679
|
tile,
|
|
7680
7680
|
tilesResult.fullWidth,
|
|
@@ -7707,7 +7707,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7707
7707
|
if (pages.length === 0) {
|
|
7708
7708
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7709
7709
|
}
|
|
7710
|
-
const pdfBlobUrl =
|
|
7710
|
+
const pdfBlobUrl = chunkVJZJESNT_js.buildPdfFromTiledImageData(pages);
|
|
7711
7711
|
pptx.downloadDataUrl(pdfBlobUrl, filename);
|
|
7712
7712
|
}
|
|
7713
7713
|
async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
|
|
@@ -7737,7 +7737,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
|
|
|
7737
7737
|
if (pages.length === 0) {
|
|
7738
7738
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
|
|
7739
7739
|
}
|
|
7740
|
-
const pdfDataUrl =
|
|
7740
|
+
const pdfDataUrl = chunkVJZJESNT_js.buildNotesPdf(pages);
|
|
7741
7741
|
pptx.downloadDataUrl(pdfDataUrl, filename);
|
|
7742
7742
|
}
|
|
7743
7743
|
async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
|
|
@@ -7932,7 +7932,7 @@ function exportAllSlidesToSvg(data, options = {}) {
|
|
|
7932
7932
|
continue;
|
|
7933
7933
|
}
|
|
7934
7934
|
onProgress?.(processedCount, data.slides.length);
|
|
7935
|
-
let svg =
|
|
7935
|
+
let svg = chunkVJZJESNT_js.dist_exports.SvgExporter.exportSlide(slide, data.width, data.height, svgOptions);
|
|
7936
7936
|
if (embedFonts && fontFaces?.length) {
|
|
7937
7937
|
svg = injectFontFaces(svg, fontFaces);
|
|
7938
7938
|
}
|
|
@@ -8521,10 +8521,10 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
|
|
|
8521
8521
|
return;
|
|
8522
8522
|
}
|
|
8523
8523
|
await handler.applyTheme(colorScheme, fontScheme, name);
|
|
8524
|
-
const previousMap = theme?.colorScheme ? (0,
|
|
8524
|
+
const previousMap = theme?.colorScheme ? (0, chunkVJZJESNT_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
|
|
8525
8525
|
bumpHistory();
|
|
8526
8526
|
setSlides(
|
|
8527
|
-
(slides) => (0,
|
|
8527
|
+
(slides) => (0, chunkVJZJESNT_js.dist_exports.applyThemeToData)(
|
|
8528
8528
|
{ slides, theme, themeColorMap: previousMap },
|
|
8529
8529
|
colorScheme,
|
|
8530
8530
|
fontScheme,
|
|
@@ -8535,8 +8535,8 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
|
|
|
8535
8535
|
(prev) => Object.fromEntries(
|
|
8536
8536
|
Object.entries(prev).map(([id, elements]) => [
|
|
8537
8537
|
id,
|
|
8538
|
-
(0,
|
|
8539
|
-
(0,
|
|
8538
|
+
(0, chunkVJZJESNT_js.dist_exports.reResolveElementFonts)(
|
|
8539
|
+
(0, chunkVJZJESNT_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme),
|
|
8540
8540
|
theme?.fontScheme,
|
|
8541
8541
|
fontScheme
|
|
8542
8542
|
)
|
|
@@ -8594,13 +8594,13 @@ function useThemeHandlers(input) {
|
|
|
8594
8594
|
return;
|
|
8595
8595
|
}
|
|
8596
8596
|
await handler.updateThemeColorScheme(colorScheme);
|
|
8597
|
-
const previousMap = theme?.colorScheme ? (0,
|
|
8598
|
-
setSlides((prev) => (0,
|
|
8597
|
+
const previousMap = theme?.colorScheme ? (0, chunkVJZJESNT_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
|
|
8598
|
+
setSlides((prev) => (0, chunkVJZJESNT_js.dist_exports.reResolveSlideColors)(prev, previousMap, colorScheme));
|
|
8599
8599
|
if (Object.keys(templateElementsBySlideId).length > 0) {
|
|
8600
8600
|
setTemplateElementsBySlideId((prev) => {
|
|
8601
8601
|
const next = {};
|
|
8602
8602
|
for (const [slideId, elements] of Object.entries(prev)) {
|
|
8603
|
-
next[slideId] = (0,
|
|
8603
|
+
next[slideId] = (0, chunkVJZJESNT_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme);
|
|
8604
8604
|
}
|
|
8605
8605
|
return next;
|
|
8606
8606
|
});
|
|
@@ -8711,7 +8711,7 @@ function useThemeSwitching(input) {
|
|
|
8711
8711
|
}
|
|
8712
8712
|
try {
|
|
8713
8713
|
await handler.applyTheme(preset.colorScheme, preset.fontScheme, preset.name);
|
|
8714
|
-
const newData = (0,
|
|
8714
|
+
const newData = (0, chunkVJZJESNT_js.dist_exports.applyThemeToData)(data, preset.colorScheme, preset.fontScheme, preset.name);
|
|
8715
8715
|
onDataChange(newData);
|
|
8716
8716
|
onThemeChanged?.(preset);
|
|
8717
8717
|
} catch (error) {
|
|
@@ -8728,7 +8728,7 @@ function useThemeSwitching(input) {
|
|
|
8728
8728
|
}
|
|
8729
8729
|
try {
|
|
8730
8730
|
await handler.applyTheme(colorScheme, fontScheme ?? {}, themeName);
|
|
8731
|
-
const newData = (0,
|
|
8731
|
+
const newData = (0, chunkVJZJESNT_js.dist_exports.applyThemeToData)(data, colorScheme, fontScheme, themeName);
|
|
8732
8732
|
onDataChange(newData);
|
|
8733
8733
|
} catch (error) {
|
|
8734
8734
|
console.error("Failed to switch to custom theme:", error);
|
|
@@ -8740,12 +8740,12 @@ function useThemeSwitching(input) {
|
|
|
8740
8740
|
if (!data?.theme?.colorScheme) {
|
|
8741
8741
|
return void 0;
|
|
8742
8742
|
}
|
|
8743
|
-
return
|
|
8744
|
-
(p) => (0,
|
|
8743
|
+
return chunkVJZJESNT_js.dist_exports.THEME_PRESETS.find(
|
|
8744
|
+
(p) => (0, chunkVJZJESNT_js.dist_exports.themeColorSchemesEqual)(data.theme?.colorScheme, p.colorScheme)
|
|
8745
8745
|
);
|
|
8746
8746
|
}, [data?.theme?.colorScheme]);
|
|
8747
8747
|
return {
|
|
8748
|
-
presets:
|
|
8748
|
+
presets: chunkVJZJESNT_js.dist_exports.THEME_PRESETS,
|
|
8749
8749
|
switchToPreset,
|
|
8750
8750
|
switchToCustom,
|
|
8751
8751
|
currentPreset
|
|
@@ -8822,7 +8822,7 @@ function usePropertyHandlers(input) {
|
|
|
8822
8822
|
}
|
|
8823
8823
|
try {
|
|
8824
8824
|
const ab = await file.arrayBuffer();
|
|
8825
|
-
const h = new
|
|
8825
|
+
const h = new chunkVJZJESNT_js.dist_exports.PptxHandler();
|
|
8826
8826
|
const other = await h.load(ab);
|
|
8827
8827
|
if (!other) {
|
|
8828
8828
|
return;
|
|
@@ -8832,7 +8832,7 @@ function usePropertyHandlers(input) {
|
|
|
8832
8832
|
width: canvasSize.width,
|
|
8833
8833
|
height: canvasSize.height
|
|
8834
8834
|
};
|
|
8835
|
-
setCompareResult(
|
|
8835
|
+
setCompareResult(chunkVJZJESNT_js.comparePresentation(cur, other));
|
|
8836
8836
|
setIsComparePanelOpen(true);
|
|
8837
8837
|
} catch (err) {
|
|
8838
8838
|
console.warn("Compare failed:", err);
|
|
@@ -9185,7 +9185,7 @@ function useViewerDialogs(input) {
|
|
|
9185
9185
|
};
|
|
9186
9186
|
}
|
|
9187
9187
|
function computeGridSpacingPx(documentGridSpacing) {
|
|
9188
|
-
return pptx.computeGridSpacingPx(documentGridSpacing,
|
|
9188
|
+
return pptx.computeGridSpacingPx(documentGridSpacing, chunkVJZJESNT_js.GRID_SIZE);
|
|
9189
9189
|
}
|
|
9190
9190
|
function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
|
|
9191
9191
|
const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
|
|
@@ -9194,7 +9194,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
|
|
|
9194
9194
|
}
|
|
9195
9195
|
function computeSlideSectionGroups(slides, sections) {
|
|
9196
9196
|
return pptx.groupSlidesBySection(sections, slides).map((group) => ({
|
|
9197
|
-
id: group.section?.id ?? (sections.length > 0 ?
|
|
9197
|
+
id: group.section?.id ?? (sections.length > 0 ? chunkVJZJESNT_js.UNGROUPED_SECTION_ID : chunkVJZJESNT_js.DEFAULT_SECTION_GROUP_ID),
|
|
9198
9198
|
label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
|
|
9199
9199
|
slideIndexes: group.slideIndexes,
|
|
9200
9200
|
...group.section?.color !== void 0 ? { color: group.section.color } : {},
|
|
@@ -9239,10 +9239,10 @@ function useDerivedSlideState(input) {
|
|
|
9239
9239
|
);
|
|
9240
9240
|
const slideSectionGroups = React17.useMemo(
|
|
9241
9241
|
() => computeSlideSectionGroups(slides, sections).map((group) => {
|
|
9242
|
-
if (group.id ===
|
|
9242
|
+
if (group.id === chunkVJZJESNT_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
|
|
9243
9243
|
return { ...group, label: t("pptx.slides.ungroupedSlides") };
|
|
9244
9244
|
}
|
|
9245
|
-
if (group.id ===
|
|
9245
|
+
if (group.id === chunkVJZJESNT_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
|
|
9246
9246
|
return { ...group, label: t("pptx.sections.slides") };
|
|
9247
9247
|
}
|
|
9248
9248
|
return group;
|
|
@@ -9349,7 +9349,7 @@ function useAnnotationHandlers(input) {
|
|
|
9349
9349
|
if (nextMode === "present") {
|
|
9350
9350
|
presentation.enterPresentMode();
|
|
9351
9351
|
} else if (mode === "present" && annotations.hasAnyAnnotations) {
|
|
9352
|
-
|
|
9352
|
+
chunkVJZJESNT_js.stopAllPersistentAudio();
|
|
9353
9353
|
if (promptKeepInkAnnotations) {
|
|
9354
9354
|
pendingModeAfterAnnotationsRef.current = nextMode;
|
|
9355
9355
|
setShowKeepAnnotationsDialog(true);
|
|
@@ -9359,7 +9359,7 @@ function useAnnotationHandlers(input) {
|
|
|
9359
9359
|
}
|
|
9360
9360
|
} else {
|
|
9361
9361
|
if (mode === "present") {
|
|
9362
|
-
|
|
9362
|
+
chunkVJZJESNT_js.stopAllPersistentAudio();
|
|
9363
9363
|
}
|
|
9364
9364
|
setMode(nextMode);
|
|
9365
9365
|
}
|
|
@@ -9430,7 +9430,7 @@ function overlayPendingInlineEdit(document2, elementId, text, snapshot, transfor
|
|
|
9430
9430
|
(slide) => !elementId ? slide : {
|
|
9431
9431
|
...slide,
|
|
9432
9432
|
elements: slide.elements.map(
|
|
9433
|
-
(element) => element.id === elementId && (0,
|
|
9433
|
+
(element) => element.id === elementId && (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element) ? {
|
|
9434
9434
|
...element,
|
|
9435
9435
|
text,
|
|
9436
9436
|
textSegments: pptx.remapTextToSegments(
|
|
@@ -9519,14 +9519,14 @@ function useSerialize(input) {
|
|
|
9519
9519
|
const pptxGuides = guides.map((g) => ({
|
|
9520
9520
|
id: g.id,
|
|
9521
9521
|
orientation: g.axis === "h" ? "horz" : "vert",
|
|
9522
|
-
positionEmu: (0,
|
|
9522
|
+
positionEmu: (0, chunkVJZJESNT_js.dist_exports.guidePxToEmu)(g.position)
|
|
9523
9523
|
}));
|
|
9524
9524
|
return {
|
|
9525
9525
|
...slide,
|
|
9526
9526
|
guides: pptxGuides.length > 0 ? pptxGuides : void 0
|
|
9527
9527
|
};
|
|
9528
9528
|
});
|
|
9529
|
-
const slidesToSave =
|
|
9529
|
+
const slidesToSave = chunkVJZJESNT_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
|
|
9530
9530
|
const saveOptions = pptx.buildDeckSaveOptions({
|
|
9531
9531
|
// Without this the Slide Size card edited a viewer-only pixel value and
|
|
9532
9532
|
// the saved `p:sldSz` never moved: passing `slideSize` is the only way a
|
|
@@ -9707,7 +9707,7 @@ function usePresentationSetup(input) {
|
|
|
9707
9707
|
return;
|
|
9708
9708
|
}
|
|
9709
9709
|
if (mode === "present" && nextMode !== "present") {
|
|
9710
|
-
|
|
9710
|
+
chunkVJZJESNT_js.stopAllPersistentAudio();
|
|
9711
9711
|
stopAnimationSound();
|
|
9712
9712
|
const exitHandler = exitModeHandlerRef.current;
|
|
9713
9713
|
if (exitHandler) {
|
|
@@ -9828,12 +9828,12 @@ function useCanvasImagePaste(input) {
|
|
|
9828
9828
|
);
|
|
9829
9829
|
}
|
|
9830
9830
|
function formatPatchFor(element, format) {
|
|
9831
|
-
const updated =
|
|
9831
|
+
const updated = chunkVJZJESNT_js.applyFormatToElement(element, format);
|
|
9832
9832
|
const updates = {};
|
|
9833
|
-
if ((0,
|
|
9833
|
+
if ((0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(updated)) {
|
|
9834
9834
|
updates.shapeStyle = updated.shapeStyle;
|
|
9835
9835
|
}
|
|
9836
|
-
if ((0,
|
|
9836
|
+
if ((0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(updated)) {
|
|
9837
9837
|
updates.textStyle = updated.textStyle;
|
|
9838
9838
|
}
|
|
9839
9839
|
return updates;
|
|
@@ -9851,7 +9851,7 @@ function useFormatPainterEditing(input) {
|
|
|
9851
9851
|
const prevFormatPainterRef = React17.useRef(false);
|
|
9852
9852
|
React17.useEffect(() => {
|
|
9853
9853
|
if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
|
|
9854
|
-
copiedFormatRef.current =
|
|
9854
|
+
copiedFormatRef.current = chunkVJZJESNT_js.copyFormatFromElement(selectedElement);
|
|
9855
9855
|
} else if (!formatPainterActive) {
|
|
9856
9856
|
copiedFormatRef.current = null;
|
|
9857
9857
|
}
|
|
@@ -10404,7 +10404,7 @@ function useFontInjection({ embeddedFonts, slides }) {
|
|
|
10404
10404
|
}
|
|
10405
10405
|
const styleEl = document.createElement("style");
|
|
10406
10406
|
styleEl.id = EMBEDDED_FONTS_STYLE_ID;
|
|
10407
|
-
const cssRules = embeddedFonts.flatMap((font) => {
|
|
10407
|
+
const cssRules = pptx.selectTrustedEmbeddedFonts(embeddedFonts).flatMap((font) => {
|
|
10408
10408
|
if (typeof font.name !== "string" || font.name.length === 0 || FONT_NAME_UNSAFE_CHARS.test(font.name)) {
|
|
10409
10409
|
return [];
|
|
10410
10410
|
}
|
|
@@ -10415,8 +10415,8 @@ function useFontInjection({ embeddedFonts, slides }) {
|
|
|
10415
10415
|
if (!FONT_FORMAT_ALLOWED.has(fontFormat)) {
|
|
10416
10416
|
return [];
|
|
10417
10417
|
}
|
|
10418
|
-
const fontWeight = font.bold
|
|
10419
|
-
const fontStyleCss = font.italic ? "italic" : "normal";
|
|
10418
|
+
const fontWeight = String(pptx.resolveFontWeight(font.name, font.bold));
|
|
10419
|
+
const fontStyleCss = pptx.resolveFontItalic(font.name, font.italic) ? "italic" : "normal";
|
|
10420
10420
|
return [
|
|
10421
10421
|
`@font-face {
|
|
10422
10422
|
font-family: "${font.name}";
|
|
@@ -10457,7 +10457,7 @@ function useFontInjection({ embeddedFonts, slides }) {
|
|
|
10457
10457
|
const referenced = pptx.collectReferencedFontFamilies(slides);
|
|
10458
10458
|
const candidates = pptx.selectGoogleWebfontFamilies(
|
|
10459
10459
|
referenced,
|
|
10460
|
-
embeddedFonts.map((font) => font.name)
|
|
10460
|
+
pptx.selectTrustedEmbeddedFonts(embeddedFonts).map((font) => font.name)
|
|
10461
10461
|
);
|
|
10462
10462
|
if (candidates.length === 0) {
|
|
10463
10463
|
return;
|
|
@@ -10942,7 +10942,7 @@ function useKeyboardShortcutWiring(input) {
|
|
|
10942
10942
|
}
|
|
10943
10943
|
function stepSelectedFontSize(state, ops, direction) {
|
|
10944
10944
|
const selected = state.selectedElement;
|
|
10945
|
-
const currentPx = (selected && (0,
|
|
10945
|
+
const currentPx = (selected && (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(selected) ? selected.textStyle?.fontSize : void 0) ?? pptx.textFontSizePtToPx(18);
|
|
10946
10946
|
const nextPt = pptx.stepFontSizePt(pptx.textFontSizePxToPt(currentPx), direction);
|
|
10947
10947
|
ops.updateSelectedTextStyle({ fontSize: pptx.textFontSizePtToPx(nextPt) });
|
|
10948
10948
|
}
|
|
@@ -11499,7 +11499,7 @@ function useCollaborationWriteBack(input) {
|
|
|
11499
11499
|
getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
|
|
11500
11500
|
getSaveOptions: () => latest.current.getSaveOptions?.(),
|
|
11501
11501
|
getTemplateElements: () => latest.current.templateElementsBySlideId,
|
|
11502
|
-
mergeTemplateElements:
|
|
11502
|
+
mergeTemplateElements: chunkVJZJESNT_js.buildSaveSlides
|
|
11503
11503
|
}),
|
|
11504
11504
|
[latest]
|
|
11505
11505
|
);
|
|
@@ -12052,8 +12052,8 @@ function useTouchGestures(input) {
|
|
|
12052
12052
|
}
|
|
12053
12053
|
const recognizer = pptx.createTouchGestureRecognizer({
|
|
12054
12054
|
getScale: () => scaleRef.current,
|
|
12055
|
-
minScale:
|
|
12056
|
-
maxScale:
|
|
12055
|
+
minScale: chunkVJZJESNT_js.MIN_ZOOM_SCALE,
|
|
12056
|
+
maxScale: chunkVJZJESNT_js.MAX_ZOOM_SCALE,
|
|
12057
12057
|
callbacks: {
|
|
12058
12058
|
onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
|
|
12059
12059
|
onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
|
|
@@ -12177,7 +12177,7 @@ function buildCanvasProps(input) {
|
|
|
12177
12177
|
if (pptx.shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
|
|
12178
12178
|
return;
|
|
12179
12179
|
}
|
|
12180
|
-
|
|
12180
|
+
chunkVJZJESNT_js.safeOpenUrl(url, target);
|
|
12181
12181
|
};
|
|
12182
12182
|
const handleActionClick = (elementId, action) => {
|
|
12183
12183
|
if (mode === "present") {
|
|
@@ -12192,9 +12192,9 @@ function buildCanvasProps(input) {
|
|
|
12192
12192
|
}
|
|
12193
12193
|
};
|
|
12194
12194
|
const handleHyperlinkClick = (url, target) => {
|
|
12195
|
-
if (
|
|
12195
|
+
if (chunkVJZJESNT_js.isPpactionUrl(url)) {
|
|
12196
12196
|
if (mode === "present") {
|
|
12197
|
-
const parsed =
|
|
12197
|
+
const parsed = chunkVJZJESNT_js.parsePpactionUrl(url);
|
|
12198
12198
|
if (parsed) {
|
|
12199
12199
|
presentation.handlePresentationAction({
|
|
12200
12200
|
action: parsed.action,
|
|
@@ -12620,7 +12620,7 @@ function buildToolbarProps(input) {
|
|
|
12620
12620
|
markDirty: history.markDirty
|
|
12621
12621
|
}),
|
|
12622
12622
|
formatPainterActive: s.formatPainterActive,
|
|
12623
|
-
canActivateFormatPainter:
|
|
12623
|
+
canActivateFormatPainter: chunkVJZJESNT_js.hasCopyableFormat(selectedElement),
|
|
12624
12624
|
onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
|
|
12625
12625
|
isSelectionPaneOpen: s.isSelectionPaneOpen,
|
|
12626
12626
|
onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
|
|
@@ -12943,7 +12943,7 @@ function useViewerBuildingBlocksCore(input) {
|
|
|
12943
12943
|
documentGridSpacing: state.viewProperties?.gridSpacing
|
|
12944
12944
|
});
|
|
12945
12945
|
const themeColorMap = React17.useMemo(
|
|
12946
|
-
() => state.theme?.colorScheme ? (0,
|
|
12946
|
+
() => state.theme?.colorScheme ? (0, chunkVJZJESNT_js.dist_exports.buildThemeColorMap)(state.theme.colorScheme) : void 0,
|
|
12947
12947
|
[state.theme?.colorScheme]
|
|
12948
12948
|
);
|
|
12949
12949
|
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
|
|
@@ -13331,7 +13331,8 @@ function useViewerBuildingBlocks(input) {
|
|
|
13331
13331
|
onOpenHeaderFooter,
|
|
13332
13332
|
onOpenShareDialog
|
|
13333
13333
|
} = input;
|
|
13334
|
-
const
|
|
13334
|
+
const collaborationConfig = pptx.resolveCollaborationConfig(input.collaboration);
|
|
13335
|
+
const [collaborationReadOnly, setCollaborationReadOnly] = React17.useState(Boolean(collaborationConfig));
|
|
13335
13336
|
const { t } = reactI18next.useTranslation();
|
|
13336
13337
|
const [content, setContent] = React17.useState(incomingContent ?? null);
|
|
13337
13338
|
const [loadOrigin, setLoadOrigin] = React17.useState("bootstrap");
|
|
@@ -13380,7 +13381,7 @@ function useViewerBuildingBlocks(input) {
|
|
|
13380
13381
|
} = core;
|
|
13381
13382
|
const canEdit = pptx.resolveCollaborationShellEditability({
|
|
13382
13383
|
authorizedCanEdit: requestedCanEdit,
|
|
13383
|
-
configured: Boolean(
|
|
13384
|
+
configured: Boolean(collaborationConfig),
|
|
13384
13385
|
readOnly: collaborationReadOnly,
|
|
13385
13386
|
sourcePending: Boolean(content) && loading,
|
|
13386
13387
|
sourceError: Boolean(error)
|
|
@@ -13416,7 +13417,7 @@ function useViewerBuildingBlocks(input) {
|
|
|
13416
13417
|
});
|
|
13417
13418
|
const { collaboration, overlay } = useViewerBuildingBlocksCollaboration({
|
|
13418
13419
|
core,
|
|
13419
|
-
config:
|
|
13420
|
+
config: collaborationConfig,
|
|
13420
13421
|
content,
|
|
13421
13422
|
loadOrigin,
|
|
13422
13423
|
loadVersion,
|
|
@@ -13481,7 +13482,7 @@ ${url}`
|
|
|
13481
13482
|
const shellState = React17.useMemo(
|
|
13482
13483
|
() => pptx.resolveCollaborationShellState({
|
|
13483
13484
|
authorizedCanEdit: requestedCanEdit,
|
|
13484
|
-
configured: Boolean(
|
|
13485
|
+
configured: Boolean(collaborationConfig),
|
|
13485
13486
|
readOnly: collaborationReadOnly,
|
|
13486
13487
|
sourcePending: Boolean(content) && loading,
|
|
13487
13488
|
sourceError: Boolean(error),
|
|
@@ -13490,7 +13491,7 @@ ${url}`
|
|
|
13490
13491
|
}),
|
|
13491
13492
|
[
|
|
13492
13493
|
requestedCanEdit,
|
|
13493
|
-
|
|
13494
|
+
collaborationConfig,
|
|
13494
13495
|
collaborationReadOnly,
|
|
13495
13496
|
content,
|
|
13496
13497
|
loading,
|
|
@@ -13518,23 +13519,23 @@ function ColorChangedImage({
|
|
|
13518
13519
|
className,
|
|
13519
13520
|
alt
|
|
13520
13521
|
}) {
|
|
13521
|
-
const tolerance = tolerancePct ??
|
|
13522
|
-
const cacheKey =
|
|
13522
|
+
const tolerance = tolerancePct ?? chunkVJZJESNT_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
|
|
13523
|
+
const cacheKey = chunkVJZJESNT_js.buildCacheKey(
|
|
13523
13524
|
src,
|
|
13524
13525
|
clrChange.clrFrom,
|
|
13525
13526
|
clrChange.clrTo,
|
|
13526
13527
|
tolerance,
|
|
13527
13528
|
Boolean(clrChange.clrToTransparent)
|
|
13528
13529
|
);
|
|
13529
|
-
const cached =
|
|
13530
|
+
const cached = chunkVJZJESNT_js.getCachedResult(cacheKey);
|
|
13530
13531
|
const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
|
|
13531
13532
|
React17.useEffect(() => {
|
|
13532
|
-
if (
|
|
13533
|
-
setProcessedSrc(
|
|
13533
|
+
if (chunkVJZJESNT_js.getCachedResult(cacheKey)) {
|
|
13534
|
+
setProcessedSrc(chunkVJZJESNT_js.getCachedResult(cacheKey) ?? null);
|
|
13534
13535
|
return;
|
|
13535
13536
|
}
|
|
13536
13537
|
let cancelled = false;
|
|
13537
|
-
|
|
13538
|
+
chunkVJZJESNT_js.applyColorChange(
|
|
13538
13539
|
src,
|
|
13539
13540
|
clrChange.clrFrom,
|
|
13540
13541
|
clrChange.clrTo,
|
|
@@ -13542,7 +13543,7 @@ function ColorChangedImage({
|
|
|
13542
13543
|
Boolean(clrChange.clrToTransparent)
|
|
13543
13544
|
).then((result) => {
|
|
13544
13545
|
if (!cancelled) {
|
|
13545
|
-
|
|
13546
|
+
chunkVJZJESNT_js.setCachedResult(cacheKey, result.dataUrl);
|
|
13546
13547
|
setProcessedSrc(result.dataUrl);
|
|
13547
13548
|
}
|
|
13548
13549
|
return void 0;
|
|
@@ -13634,7 +13635,7 @@ function TiledImageLayer({
|
|
|
13634
13635
|
cancelled = true;
|
|
13635
13636
|
};
|
|
13636
13637
|
}, [src]);
|
|
13637
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...
|
|
13638
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunkVJZJESNT_js.getImageTilingStyle(element, nativeSize), ...style } });
|
|
13638
13639
|
}
|
|
13639
13640
|
function renderImageEffectDefinitions(element, excludeDuotone = false) {
|
|
13640
13641
|
return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13703,7 +13704,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13703
13704
|
...filter ? { filter } : {},
|
|
13704
13705
|
...opacity !== void 0 ? { opacity } : {}
|
|
13705
13706
|
};
|
|
13706
|
-
if (
|
|
13707
|
+
if (chunkVJZJESNT_js.isImageTiled(el)) {
|
|
13707
13708
|
const tileSrc = imgSrc(el);
|
|
13708
13709
|
if (!tileSrc) {
|
|
13709
13710
|
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" });
|
|
@@ -13722,12 +13723,12 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13722
13723
|
] });
|
|
13723
13724
|
}
|
|
13724
13725
|
const colorWash = pptx.getImageColorWashStyle(
|
|
13725
|
-
(0,
|
|
13726
|
+
(0, chunkVJZJESNT_js.dist_exports.isImageLikeElement)(el) ? el.imageEffects?.colorWash : void 0
|
|
13726
13727
|
);
|
|
13727
13728
|
const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
|
|
13728
|
-
const duotoneColors =
|
|
13729
|
+
const duotoneColors = chunkVJZJESNT_js.getDuotoneColors(el);
|
|
13729
13730
|
const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
|
|
13730
|
-
const filterForImg = useDuotoneCanvas ?
|
|
13731
|
+
const filterForImg = useDuotoneCanvas ? chunkVJZJESNT_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
|
|
13731
13732
|
const canvasEffectStyles = {
|
|
13732
13733
|
...filterForImg ? { filter: filterForImg } : {},
|
|
13733
13734
|
...opacity !== void 0 ? { opacity } : {}
|
|
@@ -13803,10 +13804,10 @@ function SlideBackgroundImageLayer({
|
|
|
13803
13804
|
style: { zIndex: 0 },
|
|
13804
13805
|
children: renderImg(
|
|
13805
13806
|
backgroundElement,
|
|
13806
|
-
|
|
13807
|
-
|
|
13807
|
+
chunkVJZJESNT_js.getImageRenderStyle(backgroundElement),
|
|
13808
|
+
chunkVJZJESNT_js.getImageEffectsFilter(backgroundElement),
|
|
13808
13809
|
"",
|
|
13809
|
-
|
|
13810
|
+
chunkVJZJESNT_js.getImageEffectsOpacity(backgroundElement)
|
|
13810
13811
|
)
|
|
13811
13812
|
}
|
|
13812
13813
|
);
|
|
@@ -14084,7 +14085,7 @@ function ChartElementView({
|
|
|
14084
14085
|
pptx.getBarFacePicturePixelSampleVersion
|
|
14085
14086
|
);
|
|
14086
14087
|
const viewModel = React17.useMemo(() => {
|
|
14087
|
-
return canEdit ?
|
|
14088
|
+
return canEdit ? chunkVJZJESNT_js.buildReactChartViewModel(element) : null;
|
|
14088
14089
|
}, [canEdit, element, barFacePictureSampleVersion]);
|
|
14089
14090
|
React17.useEffect(pptx.ensureChartInteractionStyles, []);
|
|
14090
14091
|
React17.useEffect(() => {
|
|
@@ -14189,9 +14190,9 @@ function ChartElementView({
|
|
|
14189
14190
|
textStyle: animationState?.textStyle,
|
|
14190
14191
|
onSelect: chart3D.onSelect,
|
|
14191
14192
|
onDrag: chart3D.onDrag,
|
|
14192
|
-
children:
|
|
14193
|
+
children: chunkVJZJESNT_js.renderChartElement(renderedElement, (key) => t(key))
|
|
14193
14194
|
}
|
|
14194
|
-
) :
|
|
14195
|
+
) : chunkVJZJESNT_js.renderChartElement(renderedElement, (key) => t(key)),
|
|
14195
14196
|
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) }),
|
|
14196
14197
|
titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14197
14198
|
"input",
|
|
@@ -14521,7 +14522,7 @@ function ResizeHandles({
|
|
|
14521
14522
|
"aria-label": t("pptx.selectionOverlay.resize", { handle }),
|
|
14522
14523
|
"data-pptx-handle-kind": "resize",
|
|
14523
14524
|
"data-pptx-compact": true,
|
|
14524
|
-
className:
|
|
14525
|
+
className: chunkVJZJESNT_js.cn(
|
|
14525
14526
|
"absolute z-10 group border-0 bg-transparent p-0",
|
|
14526
14527
|
RESIZE_DEFAULT_CLASSES,
|
|
14527
14528
|
posClass,
|
|
@@ -14547,7 +14548,7 @@ function ResizeHandles({
|
|
|
14547
14548
|
"div",
|
|
14548
14549
|
{
|
|
14549
14550
|
"data-pptx-handle-hit": true,
|
|
14550
|
-
className:
|
|
14551
|
+
className: chunkVJZJESNT_js.cn(
|
|
14551
14552
|
"absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
|
|
14552
14553
|
corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
|
|
14553
14554
|
),
|
|
@@ -14568,7 +14569,7 @@ function ResizeHandles({
|
|
|
14568
14569
|
"aria-label": t("pptx.selectionOverlay.rotate"),
|
|
14569
14570
|
"data-pptx-handle-kind": "rotate",
|
|
14570
14571
|
"data-pptx-compact": true,
|
|
14571
|
-
className:
|
|
14572
|
+
className: chunkVJZJESNT_js.cn(
|
|
14572
14573
|
"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",
|
|
14573
14574
|
ROTATE_DEFAULT_CLASSES
|
|
14574
14575
|
),
|
|
@@ -14638,17 +14639,17 @@ var ConnectorElementRenderer = React17__default.default.memo(
|
|
|
14638
14639
|
animationState,
|
|
14639
14640
|
textStyleOverrideCss
|
|
14640
14641
|
}) {
|
|
14641
|
-
const shapeEl = (0,
|
|
14642
|
+
const shapeEl = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(el) ? el : void 0;
|
|
14642
14643
|
const viewWidth = Math.max(el.width, 0);
|
|
14643
14644
|
const viewHeight = Math.max(el.height, 0);
|
|
14644
14645
|
const svgWidth = Math.max(el.width, 1);
|
|
14645
14646
|
const svgHeight = Math.max(el.height, 1);
|
|
14646
14647
|
const ss = shapeEl?.shapeStyle;
|
|
14647
14648
|
const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
|
|
14648
|
-
const strokeColor =
|
|
14649
|
-
const strokePaint =
|
|
14650
|
-
const dashType =
|
|
14651
|
-
const dashArray =
|
|
14649
|
+
const strokeColor = chunkVJZJESNT_js.normalizeHexColor(ss?.strokeColor, chunkVJZJESNT_js.DEFAULT_STROKE_COLOR);
|
|
14650
|
+
const strokePaint = chunkVJZJESNT_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
|
|
14651
|
+
const dashType = chunkVJZJESNT_js.normalizeStrokeDashType(ss?.strokeDash);
|
|
14652
|
+
const dashArray = chunkVJZJESNT_js.getSvgStrokeDasharray(
|
|
14652
14653
|
dashType,
|
|
14653
14654
|
Math.max(strokeWidth, 1),
|
|
14654
14655
|
ss?.customDashSegments
|
|
@@ -14659,14 +14660,14 @@ var ConnectorElementRenderer = React17__default.default.memo(
|
|
|
14659
14660
|
const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
|
|
14660
14661
|
const startMarkerId = `${markerSeed}-sel-start`;
|
|
14661
14662
|
const endMarkerId = `${markerSeed}-sel-end`;
|
|
14662
|
-
const compoundOffsets =
|
|
14663
|
-
const compoundWidths =
|
|
14663
|
+
const compoundOffsets = chunkVJZJESNT_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
14664
|
+
const compoundWidths = chunkVJZJESNT_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
14664
14665
|
const strokeCap = pptx.svgLineCap(ss?.lineCap);
|
|
14665
|
-
const textEl = (0,
|
|
14666
|
+
const textEl = (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) ? el : void 0;
|
|
14666
14667
|
const connectorText = textEl?.text?.trim() ?? "";
|
|
14667
14668
|
const connectorTextSegments = textEl?.textSegments;
|
|
14668
14669
|
const connectorTextStyle = textEl?.textStyle;
|
|
14669
|
-
const pathGeometry = shapeEl ?
|
|
14670
|
+
const pathGeometry = shapeEl ? chunkVJZJESNT_js.getConnectorPathGeometry(shapeEl) : {
|
|
14670
14671
|
pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
|
|
14671
14672
|
startX: 0,
|
|
14672
14673
|
startY: 0,
|
|
@@ -14675,16 +14676,16 @@ var ConnectorElementRenderer = React17__default.default.memo(
|
|
|
14675
14676
|
};
|
|
14676
14677
|
const hitTargetWidth = Math.max(strokeWidth * 3, 14);
|
|
14677
14678
|
const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
|
|
14678
|
-
const lineShadow =
|
|
14679
|
-
const lineGlow =
|
|
14679
|
+
const lineShadow = chunkVJZJESNT_js.buildLineShadowCss(el);
|
|
14680
|
+
const lineGlow = chunkVJZJESNT_js.buildLineGlowFilter(el);
|
|
14680
14681
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14681
14682
|
"div",
|
|
14682
14683
|
{
|
|
14683
14684
|
"data-pptx-element": "true",
|
|
14684
14685
|
"data-element-id": el.id,
|
|
14685
|
-
role:
|
|
14686
|
-
"aria-label":
|
|
14687
|
-
"aria-roledescription":
|
|
14686
|
+
role: chunkVJZJESNT_js.getAriaRole(el, { actionable: false }),
|
|
14687
|
+
"aria-label": chunkVJZJESNT_js.getAriaLabel(el),
|
|
14688
|
+
"aria-roledescription": chunkVJZJESNT_js.getAriaRoleDescription(el),
|
|
14688
14689
|
"aria-selected": isSelected ? true : void 0,
|
|
14689
14690
|
className: "absolute",
|
|
14690
14691
|
style: {
|
|
@@ -14717,14 +14718,14 @@ var ConnectorElementRenderer = React17__default.default.memo(
|
|
|
14717
14718
|
style: { overflow: "visible", pointerEvents: "none" },
|
|
14718
14719
|
children: [
|
|
14719
14720
|
/* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
|
|
14720
|
-
|
|
14721
|
+
chunkVJZJESNT_js.renderConnectorMarker(
|
|
14721
14722
|
startMarkerId,
|
|
14722
14723
|
startArrow,
|
|
14723
14724
|
strokePaint,
|
|
14724
14725
|
ss?.connectorStartArrowWidth,
|
|
14725
14726
|
ss?.connectorStartArrowLength
|
|
14726
14727
|
),
|
|
14727
|
-
|
|
14728
|
+
chunkVJZJESNT_js.renderConnectorMarker(
|
|
14728
14729
|
endMarkerId,
|
|
14729
14730
|
endArrow,
|
|
14730
14731
|
strokePaint,
|
|
@@ -14930,14 +14931,14 @@ function getElementInteractionProps({
|
|
|
14930
14931
|
};
|
|
14931
14932
|
}
|
|
14932
14933
|
function renderDagDuotoneFilterForElement(el) {
|
|
14933
|
-
if (!
|
|
14934
|
+
if (!chunkVJZJESNT_js.hasDagDuotoneEffect(el)) {
|
|
14934
14935
|
return null;
|
|
14935
14936
|
}
|
|
14936
14937
|
const duotone = el.shapeStyle?.dagDuotone;
|
|
14937
14938
|
if (!duotone) {
|
|
14938
14939
|
return null;
|
|
14939
14940
|
}
|
|
14940
|
-
return
|
|
14941
|
+
return chunkVJZJESNT_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
|
|
14941
14942
|
}
|
|
14942
14943
|
function getContainerStyle({
|
|
14943
14944
|
el,
|
|
@@ -14950,7 +14951,7 @@ function getContainerStyle({
|
|
|
14950
14951
|
has3DExtrusion,
|
|
14951
14952
|
templateEditing
|
|
14952
14953
|
}) {
|
|
14953
|
-
const ss = (0,
|
|
14954
|
+
const ss = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
|
|
14954
14955
|
const isPicture = el.type === "picture" || el.type === "image";
|
|
14955
14956
|
const blurGrowVisible = Boolean(
|
|
14956
14957
|
ss?.blurGrow && typeof ss.blurRadius === "number" && ss.blurRadius > 0
|
|
@@ -14964,10 +14965,10 @@ function getContainerStyle({
|
|
|
14964
14965
|
top: isFullscreenMedia ? fs.top : el.y,
|
|
14965
14966
|
width: isFullscreenMedia ? fs.width : painted.width,
|
|
14966
14967
|
...heightStyle,
|
|
14967
|
-
transform: isFullscreenMedia ? fs.transform :
|
|
14968
|
+
transform: isFullscreenMedia ? fs.transform : chunkVJZJESNT_js.getElementTransform(el),
|
|
14968
14969
|
transformOrigin: "center",
|
|
14969
14970
|
overflow: overflowValue,
|
|
14970
|
-
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ?
|
|
14971
|
+
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunkVJZJESNT_js.getCropShapeClipPath(el) : void 0,
|
|
14971
14972
|
zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
|
|
14972
14973
|
visibility: animationState?.visible === false ? "hidden" : "visible",
|
|
14973
14974
|
animation: animationState?.cssAnimation,
|
|
@@ -15002,11 +15003,11 @@ function getContainerStyle({
|
|
|
15002
15003
|
};
|
|
15003
15004
|
}
|
|
15004
15005
|
function shapeParams(element) {
|
|
15005
|
-
const style = (0,
|
|
15006
|
+
const style = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
|
|
15006
15007
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
15007
|
-
const strokeColor =
|
|
15008
|
-
const fillColor =
|
|
15009
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
15008
|
+
const strokeColor = chunkVJZJESNT_js.normalizeHexColor(style?.strokeColor, chunkVJZJESNT_js.DEFAULT_STROKE_COLOR);
|
|
15009
|
+
const fillColor = chunkVJZJESNT_js.normalizeHexColor(style?.fillColor, chunkVJZJESNT_js.DEFAULT_FILL_COLOR);
|
|
15010
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkVJZJESNT_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
15010
15011
|
return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
|
|
15011
15012
|
}
|
|
15012
15013
|
var Extrusion3DOverlay = React17__default.default.memo(
|
|
@@ -15111,7 +15112,7 @@ function ShapeEffectOverlay({
|
|
|
15111
15112
|
const fillOverlayStyle = overlay ? {
|
|
15112
15113
|
position: "absolute",
|
|
15113
15114
|
inset: 0,
|
|
15114
|
-
...(0,
|
|
15115
|
+
...(0, chunkVJZJESNT_js.dist_exports.isImageLikeElement)(element) ? chunkVJZJESNT_js.getImageSurfaceMaskStyle(element) : {},
|
|
15115
15116
|
background: overlay.color,
|
|
15116
15117
|
mixBlendMode: overlay.blendMode,
|
|
15117
15118
|
pointerEvents: "none"
|
|
@@ -15318,10 +15319,10 @@ var ElementRenderer = React17__default.default.memo(
|
|
|
15318
15319
|
const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
|
|
15319
15320
|
const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
|
|
15320
15321
|
const visualAnimationState = backgroundAnimationState ?? animationState;
|
|
15321
|
-
const isTxt =
|
|
15322
|
-
const txtSE = (0,
|
|
15322
|
+
const isTxt = chunkVJZJESNT_js.isEditableTextElement(el) && allow.textEditable;
|
|
15323
|
+
const txtSE = (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) ? el.textStyle : void 0;
|
|
15323
15324
|
const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
|
|
15324
|
-
const ss =
|
|
15325
|
+
const ss = chunkVJZJESNT_js.getShapeVisualStyle(
|
|
15325
15326
|
el,
|
|
15326
15327
|
hf,
|
|
15327
15328
|
fc,
|
|
@@ -15330,9 +15331,9 @@ var ElementRenderer = React17__default.default.memo(
|
|
|
15330
15331
|
visualAnimationState?.animatesFill,
|
|
15331
15332
|
visualAnimationState?.animatesStroke
|
|
15332
15333
|
);
|
|
15333
|
-
const ts =
|
|
15334
|
+
const ts = chunkVJZJESNT_js.getTextStyleForElement(el, chunkVJZJESNT_js.DEFAULT_TEXT_COLOR);
|
|
15334
15335
|
const isImg = el.type === "picture" || el.type === "image";
|
|
15335
|
-
const vs =
|
|
15336
|
+
const vs = chunkVJZJESNT_js.renderVectorShape(
|
|
15336
15337
|
el,
|
|
15337
15338
|
isImg ? false : hf,
|
|
15338
15339
|
fc,
|
|
@@ -15342,10 +15343,10 @@ var ElementRenderer = React17__default.default.memo(
|
|
|
15342
15343
|
visualAnimationState?.animatesStroke
|
|
15343
15344
|
);
|
|
15344
15345
|
const isModel3D = el.type === "model3d";
|
|
15345
|
-
const isConn =
|
|
15346
|
-
const shapeStyle3d = (0,
|
|
15346
|
+
const isConn = chunkVJZJESNT_js.isConnectorOrLineElement(el);
|
|
15347
|
+
const shapeStyle3d = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
|
|
15347
15348
|
const extrusionData = React17.useMemo(
|
|
15348
|
-
() =>
|
|
15349
|
+
() => chunkVJZJESNT_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
|
|
15349
15350
|
[shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
|
|
15350
15351
|
);
|
|
15351
15352
|
const actionAffordance = useActionAffordance(el, canInteract);
|
|
@@ -15435,7 +15436,7 @@ var ElementRenderer = React17__default.default.memo(
|
|
|
15435
15436
|
"aria-hidden": aria.hidden ? true : void 0,
|
|
15436
15437
|
"aria-selected": isSelected ? true : void 0,
|
|
15437
15438
|
tabIndex: isFocusable ? 0 : -1,
|
|
15438
|
-
className:
|
|
15439
|
+
className: chunkVJZJESNT_js.cn(
|
|
15439
15440
|
"absolute",
|
|
15440
15441
|
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
|
|
15441
15442
|
cur,
|
|
@@ -15508,9 +15509,9 @@ var ElementRenderer = React17__default.default.memo(
|
|
|
15508
15509
|
txtSE,
|
|
15509
15510
|
txtS: ts,
|
|
15510
15511
|
vecShape: backgroundAnimationState && !isImg ? null : vs,
|
|
15511
|
-
imgStyle:
|
|
15512
|
-
imgFilter:
|
|
15513
|
-
imgOpacity:
|
|
15512
|
+
imgStyle: chunkVJZJESNT_js.getImageRenderStyle(el),
|
|
15513
|
+
imgFilter: chunkVJZJESNT_js.getImageEffectsFilter(el),
|
|
15514
|
+
imgOpacity: chunkVJZJESNT_js.getImageEffectsOpacity(el),
|
|
15514
15515
|
imgAlt: imageAltText,
|
|
15515
15516
|
isTxtEl: isTxt,
|
|
15516
15517
|
media: mediaDataUrls,
|
|
@@ -15647,10 +15648,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
|
|
|
15647
15648
|
}
|
|
15648
15649
|
function renderInk(el, options) {
|
|
15649
15650
|
const replay = options?.replay ?? false;
|
|
15650
|
-
const strokes =
|
|
15651
|
+
const strokes = chunkVJZJESNT_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
|
|
15651
15652
|
strokes.some((s) => s.circles || s.nibMarks);
|
|
15652
15653
|
const pressureSensitive = options?.pressureSensitive;
|
|
15653
|
-
const replayStyles = replay ?
|
|
15654
|
+
const replayStyles = replay ? chunkVJZJESNT_js.getInkReplayStyles(el, options?.replayConfig) : null;
|
|
15654
15655
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15655
15656
|
"svg",
|
|
15656
15657
|
{
|
|
@@ -15658,7 +15659,7 @@ function renderInk(el, options) {
|
|
|
15658
15659
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15659
15660
|
preserveAspectRatio: "none",
|
|
15660
15661
|
children: [
|
|
15661
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15662
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkVJZJESNT_js.INK_REPLAY_KEYFRAMES }),
|
|
15662
15663
|
strokes.map(
|
|
15663
15664
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
|
|
15664
15665
|
)
|
|
@@ -15669,7 +15670,7 @@ function renderInk(el, options) {
|
|
|
15669
15670
|
function renderGroup(children, parentGroupFill) {
|
|
15670
15671
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
|
|
15671
15672
|
const { hf, fc, sw, sc } = shapeParams(c);
|
|
15672
|
-
const baseSs =
|
|
15673
|
+
const baseSs = chunkVJZJESNT_js.getShapeVisualStyle(c, hf, fc, sw, sc);
|
|
15673
15674
|
const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
|
|
15674
15675
|
const ss = inheritedFill ? {
|
|
15675
15676
|
...baseSs,
|
|
@@ -15680,9 +15681,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15680
15681
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
15681
15682
|
} : baseSs;
|
|
15682
15683
|
const isI = c.type === "picture" || c.type === "image";
|
|
15683
|
-
const vs =
|
|
15684
|
-
const ts =
|
|
15685
|
-
const isTxt =
|
|
15684
|
+
const vs = chunkVJZJESNT_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
|
|
15685
|
+
const ts = chunkVJZJESNT_js.getTextStyleForElement(c, chunkVJZJESNT_js.DEFAULT_TEXT_COLOR);
|
|
15686
|
+
const isTxt = chunkVJZJESNT_js.isEditableTextElement(c);
|
|
15686
15687
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15687
15688
|
"div",
|
|
15688
15689
|
{
|
|
@@ -15691,9 +15692,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15691
15692
|
style: {
|
|
15692
15693
|
left: c.x,
|
|
15693
15694
|
top: c.y,
|
|
15694
|
-
width: Math.max(c.width,
|
|
15695
|
-
height: Math.max(c.height,
|
|
15696
|
-
transform:
|
|
15695
|
+
width: Math.max(c.width, chunkVJZJESNT_js.MIN_ELEMENT_SIZE),
|
|
15696
|
+
height: Math.max(c.height, chunkVJZJESNT_js.MIN_ELEMENT_SIZE),
|
|
15697
|
+
transform: chunkVJZJESNT_js.getElementTransform(c),
|
|
15697
15698
|
transformOrigin: "center",
|
|
15698
15699
|
...ss,
|
|
15699
15700
|
...isI ? {
|
|
@@ -15718,8 +15719,8 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15718
15719
|
// A nested group: recurse, chaining the inherited fill so a
|
|
15719
15720
|
// `grpFill` shape under a fill-less sub-group still paints.
|
|
15720
15721
|
renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
|
|
15721
|
-
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
15722
|
-
|
|
15722
|
+
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkVJZJESNT_js.getImageSurfaceStyle(c), children: [
|
|
15723
|
+
chunkVJZJESNT_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15723
15724
|
TiledImageLayer,
|
|
15724
15725
|
{
|
|
15725
15726
|
element: c,
|
|
@@ -15732,7 +15733,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15732
15733
|
src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
|
|
15733
15734
|
alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
|
|
15734
15735
|
className: "pointer-events-none select-none",
|
|
15735
|
-
style:
|
|
15736
|
+
style: chunkVJZJESNT_js.getImageRenderStyle(c),
|
|
15736
15737
|
draggable: false
|
|
15737
15738
|
}
|
|
15738
15739
|
),
|
|
@@ -15744,7 +15745,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15744
15745
|
{
|
|
15745
15746
|
className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
|
|
15746
15747
|
style: ts,
|
|
15747
|
-
children:
|
|
15748
|
+
children: chunkVJZJESNT_js.renderTextSegments(c, chunkVJZJESNT_js.DEFAULT_TEXT_COLOR)
|
|
15748
15749
|
}
|
|
15749
15750
|
) : null
|
|
15750
15751
|
] })
|
|
@@ -15758,8 +15759,8 @@ function renderContentPart(el, options) {
|
|
|
15758
15759
|
if (el.inkStrokes && el.inkStrokes.length > 0) {
|
|
15759
15760
|
const replay = options?.replay ?? false;
|
|
15760
15761
|
const pressureSensitive = options?.pressureSensitive ?? true;
|
|
15761
|
-
const strokes =
|
|
15762
|
-
const replayStyles = replay ?
|
|
15762
|
+
const strokes = chunkVJZJESNT_js.buildContentPartStrokes(el);
|
|
15763
|
+
const replayStyles = replay ? chunkVJZJESNT_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
|
|
15763
15764
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15764
15765
|
"svg",
|
|
15765
15766
|
{
|
|
@@ -15767,7 +15768,7 @@ function renderContentPart(el, options) {
|
|
|
15767
15768
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15768
15769
|
preserveAspectRatio: "none",
|
|
15769
15770
|
children: [
|
|
15770
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15771
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkVJZJESNT_js.INK_REPLAY_KEYFRAMES }),
|
|
15771
15772
|
strokes.map(
|
|
15772
15773
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
|
|
15773
15774
|
)
|
|
@@ -15994,9 +15995,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
|
|
|
15994
15995
|
collaboration: connected,
|
|
15995
15996
|
model: pptx.createInlineListModelObserver(element),
|
|
15996
15997
|
activationSelection,
|
|
15997
|
-
children: seed && !connected ?
|
|
15998
|
+
children: seed && !connected ? chunkVJZJESNT_js.renderTextSegments(
|
|
15998
15999
|
element,
|
|
15999
|
-
|
|
16000
|
+
chunkVJZJESNT_js.DEFAULT_TEXT_COLOR,
|
|
16000
16001
|
void 0,
|
|
16001
16002
|
void 0,
|
|
16002
16003
|
void 0,
|
|
@@ -16166,7 +16167,7 @@ function InlineTextEditor({
|
|
|
16166
16167
|
seedRef.current = {
|
|
16167
16168
|
initialText,
|
|
16168
16169
|
hasRichSegments: Boolean(
|
|
16169
|
-
(0,
|
|
16170
|
+
(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element) && element.textSegments && element.textSegments.length > 0
|
|
16170
16171
|
)
|
|
16171
16172
|
};
|
|
16172
16173
|
}
|
|
@@ -16232,8 +16233,8 @@ function InlineTextEditor({
|
|
|
16232
16233
|
pending.endOffset
|
|
16233
16234
|
);
|
|
16234
16235
|
});
|
|
16235
|
-
const warpStyle =
|
|
16236
|
-
const compensationTransform =
|
|
16236
|
+
const warpStyle = chunkVJZJESNT_js.getTextWarpStyle(textStyleRaw);
|
|
16237
|
+
const compensationTransform = chunkVJZJESNT_js.getTextCompensationTransform(element);
|
|
16237
16238
|
const warpTransform = warpStyle?.transform;
|
|
16238
16239
|
const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
|
|
16239
16240
|
const wrapperStyle = {
|
|
@@ -16244,7 +16245,7 @@ function InlineTextEditor({
|
|
|
16244
16245
|
transformOrigin: warpStyle?.transformOrigin || "center"
|
|
16245
16246
|
};
|
|
16246
16247
|
const nextInlineStyleValue = (property) => {
|
|
16247
|
-
if (!(0,
|
|
16248
|
+
if (!(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element)) {
|
|
16248
16249
|
return true;
|
|
16249
16250
|
}
|
|
16250
16251
|
const result = pptx.getInlineEditorSelectionResult(element.textSegments);
|
|
@@ -16321,7 +16322,7 @@ function InlineTextEditor({
|
|
|
16321
16322
|
const text = e.clipboardData.getData("text/plain");
|
|
16322
16323
|
document.execCommand("insertText", false, text);
|
|
16323
16324
|
},
|
|
16324
|
-
children: list.seed ? list.children : seed.hasRichSegments ?
|
|
16325
|
+
children: list.seed ? list.children : seed.hasRichSegments ? chunkVJZJESNT_js.renderTextSegments(element, chunkVJZJESNT_js.DEFAULT_TEXT_COLOR) : seed.initialText
|
|
16325
16326
|
},
|
|
16326
16327
|
list.seed?.paragraphs[0].token ?? "plain"
|
|
16327
16328
|
);
|
|
@@ -17258,7 +17259,7 @@ function SmartArtRendererImpl({
|
|
|
17258
17259
|
if (!onUpdateElement || !pptx.shouldCommitSmartArtNodeText(smartArtData, nodeId, text)) {
|
|
17259
17260
|
return;
|
|
17260
17261
|
}
|
|
17261
|
-
const updated = (0,
|
|
17262
|
+
const updated = (0, chunkVJZJESNT_js.dist_exports.updateSmartArtNodeText)(smartArtData, nodeId, text);
|
|
17262
17263
|
const box = { width: element.width, height: element.height };
|
|
17263
17264
|
const reflowed = pptx.rebuildDrawingShapesIfCleared(
|
|
17264
17265
|
updated,
|
|
@@ -17274,7 +17275,7 @@ function SmartArtRendererImpl({
|
|
|
17274
17275
|
if (!onUpdateElement) {
|
|
17275
17276
|
return;
|
|
17276
17277
|
}
|
|
17277
|
-
const next = (0,
|
|
17278
|
+
const next = (0, chunkVJZJESNT_js.dist_exports.setSmartArtNodeStyle)(smartArtData, nodeId, { fillColor: fill });
|
|
17278
17279
|
if (next !== smartArtData) {
|
|
17279
17280
|
const box = { width: element.width, height: element.height };
|
|
17280
17281
|
const reflowed = pptx.rebuildDrawingShapesIfCleared(
|
|
@@ -17468,7 +17469,7 @@ function groupIntoParagraphs(element, fieldContext) {
|
|
|
17468
17469
|
element,
|
|
17469
17470
|
fieldContext ? (seg) => {
|
|
17470
17471
|
if (seg.fieldType) {
|
|
17471
|
-
const substituted =
|
|
17472
|
+
const substituted = chunkVJZJESNT_js.substituteFieldText(
|
|
17472
17473
|
seg.text,
|
|
17473
17474
|
seg.fieldType,
|
|
17474
17475
|
fieldContext,
|
|
@@ -17503,13 +17504,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
|
|
|
17503
17504
|
if (s.strikethrough) {
|
|
17504
17505
|
decos.push("line-through");
|
|
17505
17506
|
}
|
|
17506
|
-
const fill = s.hyperlink ?
|
|
17507
|
+
const fill = s.hyperlink ? chunkVJZJESNT_js.normalizeHexColor(s.color || element.textStyle?.color, chunkVJZJESNT_js.HYPERLINK_COLOR) : chunkVJZJESNT_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
|
|
17507
17508
|
return {
|
|
17508
17509
|
fill,
|
|
17509
|
-
fontSize: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17510
|
-
fontWeight: s.
|
|
17511
|
-
fontStyle: s.italic ? "italic" : void 0,
|
|
17512
|
-
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? (0,
|
|
17510
|
+
fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunkVJZJESNT_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17511
|
+
fontWeight: pptx.resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
|
|
17512
|
+
fontStyle: pptx.resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
|
|
17513
|
+
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? (0, chunkVJZJESNT_js.dist_exports.getSubstituteFontFamily)(s.fontFamily || element.textStyle?.fontFamily || "") : chunkVJZJESNT_js.DEFAULT_FONT_FAMILY,
|
|
17513
17514
|
textDecoration: decos.length > 0 ? decos.join(" ") : void 0
|
|
17514
17515
|
};
|
|
17515
17516
|
}
|
|
@@ -17517,8 +17518,8 @@ function resolveSegmentFont(segment, element) {
|
|
|
17517
17518
|
const s = segment.style || {};
|
|
17518
17519
|
const family = s.fontFamily || element.textStyle?.fontFamily;
|
|
17519
17520
|
return {
|
|
17520
|
-
fontFamily: family ? (0,
|
|
17521
|
-
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17521
|
+
fontFamily: family ? (0, chunkVJZJESNT_js.dist_exports.getSubstituteFontFamily)(family) : chunkVJZJESNT_js.DEFAULT_FONT_FAMILY,
|
|
17522
|
+
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunkVJZJESNT_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17522
17523
|
bold: s.bold ?? element.textStyle?.bold,
|
|
17523
17524
|
italic: s.italic ?? element.textStyle?.italic
|
|
17524
17525
|
};
|
|
@@ -17584,7 +17585,7 @@ function WarpedText({
|
|
|
17584
17585
|
fallbackColor,
|
|
17585
17586
|
fieldContext
|
|
17586
17587
|
}) {
|
|
17587
|
-
if (!(0,
|
|
17588
|
+
if (!(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element)) {
|
|
17588
17589
|
return null;
|
|
17589
17590
|
}
|
|
17590
17591
|
const textEl = element;
|
|
@@ -17602,9 +17603,9 @@ function WarpedText({
|
|
|
17602
17603
|
const warpAdj2 = textEl.textStyle?.textWarpAdj2;
|
|
17603
17604
|
const align = textEl.textStyle?.align ?? "center";
|
|
17604
17605
|
const { startOffset, textAnchor } = getAlignmentProps(align);
|
|
17605
|
-
const baseFontSize = textEl.textStyle?.fontSize ??
|
|
17606
|
-
const baseFontFamily = textEl.textStyle?.fontFamily ? (0,
|
|
17607
|
-
const baseFill =
|
|
17606
|
+
const baseFontSize = textEl.textStyle?.fontSize ?? chunkVJZJESNT_js.DEFAULT_TEXT_FONT_SIZE;
|
|
17607
|
+
const baseFontFamily = textEl.textStyle?.fontFamily ? (0, chunkVJZJESNT_js.dist_exports.getSubstituteFontFamily)(textEl.textStyle.fontFamily) : chunkVJZJESNT_js.DEFAULT_FONT_FAMILY;
|
|
17608
|
+
const baseFill = chunkVJZJESNT_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
|
|
17608
17609
|
if (pptx.hasGlyphEnvelope(preset)) {
|
|
17609
17610
|
const perLine = pptx.buildGlyphEnvelopeBlock(
|
|
17610
17611
|
preset,
|
|
@@ -17678,8 +17679,8 @@ function WarpedText({
|
|
|
17678
17679
|
fontSize: baseFontSize,
|
|
17679
17680
|
fontFamily: baseFontFamily,
|
|
17680
17681
|
fill: baseFill,
|
|
17681
|
-
fontWeight: textEl.textStyle?.bold
|
|
17682
|
-
fontStyle: textEl.textStyle?.italic ? "italic" : "normal",
|
|
17682
|
+
fontWeight: pptx.resolveFontWeight(textEl.textStyle?.fontFamily, textEl.textStyle?.bold),
|
|
17683
|
+
fontStyle: pptx.resolveFontItalic(textEl.textStyle?.fontFamily, textEl.textStyle?.italic) ? "italic" : "normal",
|
|
17683
17684
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17684
17685
|
"textPath",
|
|
17685
17686
|
{
|
|
@@ -17704,7 +17705,7 @@ function WarpedText({
|
|
|
17704
17705
|
);
|
|
17705
17706
|
}
|
|
17706
17707
|
var GLYPH_BY_SHAPE = Object.fromEntries(
|
|
17707
|
-
|
|
17708
|
+
chunkVJZJESNT_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
|
|
17708
17709
|
);
|
|
17709
17710
|
GLYPH_BY_SHAPE["actionButtonForwardOrNext"] = GLYPH_BY_SHAPE["actionButtonForwardNext"];
|
|
17710
17711
|
GLYPH_BY_SHAPE["actionButtonBackOrPrevious"] = GLYPH_BY_SHAPE["actionButtonBackPrevious"];
|
|
@@ -17774,11 +17775,11 @@ function renderTextElementBody(options) {
|
|
|
17774
17775
|
const isLinkedTextBox = pptx.isLinkedTextBox(el);
|
|
17775
17776
|
const linkedSegments = pptx.getOverflowSegments(el, slideElements);
|
|
17776
17777
|
const useSvgWarp = pptx.shouldUseSvgWarp(
|
|
17777
|
-
(0,
|
|
17778
|
+
(0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) ? el.textStyle?.textWarpPreset : void 0
|
|
17778
17779
|
);
|
|
17779
|
-
const scene3dStyle = (0,
|
|
17780
|
+
const scene3dStyle = (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(el) ? chunkVJZJESNT_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
|
|
17780
17781
|
const rotationTransform = pptx.getTextBodyRotationTransform(el);
|
|
17781
|
-
const composedTransform = [rotationTransform,
|
|
17782
|
+
const composedTransform = [rotationTransform, chunkVJZJESNT_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
17782
17783
|
const transformStyle = {
|
|
17783
17784
|
transform: composedTransform,
|
|
17784
17785
|
// A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
|
|
@@ -17808,18 +17809,18 @@ function renderTextElementBody(options) {
|
|
|
17808
17809
|
shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
17809
17810
|
"div",
|
|
17810
17811
|
{
|
|
17811
|
-
className:
|
|
17812
|
+
className: chunkVJZJESNT_js.cn(
|
|
17812
17813
|
"relative z-10 w-full h-full",
|
|
17813
17814
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17814
17815
|
),
|
|
17815
|
-
style: { ...
|
|
17816
|
+
style: { ...chunkVJZJESNT_js.getTextLayoutStyle(el), ...transformStyle },
|
|
17816
17817
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17817
17818
|
WarpedText,
|
|
17818
17819
|
{
|
|
17819
17820
|
element: el,
|
|
17820
17821
|
width: el.width,
|
|
17821
17822
|
height: el.height,
|
|
17822
|
-
fallbackColor:
|
|
17823
|
+
fallbackColor: chunkVJZJESNT_js.DEFAULT_TEXT_COLOR,
|
|
17823
17824
|
findHighlights: findHl,
|
|
17824
17825
|
fieldContext
|
|
17825
17826
|
}
|
|
@@ -17828,19 +17829,19 @@ function renderTextElementBody(options) {
|
|
|
17828
17829
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
17829
17830
|
"div",
|
|
17830
17831
|
{
|
|
17831
|
-
className:
|
|
17832
|
+
className: chunkVJZJESNT_js.cn(
|
|
17832
17833
|
"relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
|
|
17833
17834
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17834
17835
|
),
|
|
17835
17836
|
style: {
|
|
17836
|
-
...
|
|
17837
|
+
...chunkVJZJESNT_js.getTextLayoutStyle(el),
|
|
17837
17838
|
...txtS,
|
|
17838
|
-
...
|
|
17839
|
+
...chunkVJZJESNT_js.getTextWarpStyle(txtSE),
|
|
17839
17840
|
...transformStyle
|
|
17840
17841
|
},
|
|
17841
|
-
children:
|
|
17842
|
+
children: chunkVJZJESNT_js.renderTextSegments(
|
|
17842
17843
|
el,
|
|
17843
|
-
|
|
17844
|
+
chunkVJZJESNT_js.DEFAULT_TEXT_COLOR,
|
|
17844
17845
|
void 0,
|
|
17845
17846
|
findHl,
|
|
17846
17847
|
onHyperlinkClick,
|
|
@@ -18159,7 +18160,7 @@ function renderBody(options) {
|
|
|
18159
18160
|
);
|
|
18160
18161
|
}
|
|
18161
18162
|
if (isImg) {
|
|
18162
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
18163
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkVJZJESNT_js.getImageSurfaceStyle(el), children: [
|
|
18163
18164
|
renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
|
|
18164
18165
|
vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
|
|
18165
18166
|
] });
|
|
@@ -18176,7 +18177,7 @@ function renderBody(options) {
|
|
|
18176
18177
|
textDirection: txtSE?.textDirection,
|
|
18177
18178
|
textStyle: txtS,
|
|
18178
18179
|
textStyleRaw: txtSE,
|
|
18179
|
-
layoutStyle:
|
|
18180
|
+
layoutStyle: chunkVJZJESNT_js.getTextLayoutStyle(el),
|
|
18180
18181
|
element: el,
|
|
18181
18182
|
onCommit,
|
|
18182
18183
|
onCancel,
|
|
@@ -18187,7 +18188,7 @@ function renderBody(options) {
|
|
|
18187
18188
|
] });
|
|
18188
18189
|
}
|
|
18189
18190
|
if (el.type === "table") {
|
|
18190
|
-
return
|
|
18191
|
+
return chunkVJZJESNT_js.renderTableElement(el, txtS, {
|
|
18191
18192
|
editable: isSel,
|
|
18192
18193
|
selectedCell: isSel ? tableSt : null,
|
|
18193
18194
|
onSelectCell: onCellSel,
|
|
@@ -18220,7 +18221,7 @@ function renderBody(options) {
|
|
|
18220
18221
|
);
|
|
18221
18222
|
}
|
|
18222
18223
|
if (el.type === "media") {
|
|
18223
|
-
return
|
|
18224
|
+
return chunkVJZJESNT_js.renderMediaElement(el, media, {
|
|
18224
18225
|
// Present mode autoplays every media element on the active slide,
|
|
18225
18226
|
// not only ones persisted with their own `autoPlay` flag (matching
|
|
18226
18227
|
// the other four bindings' unconditional `presenting`-gated
|
|
@@ -18243,7 +18244,7 @@ function renderBody(options) {
|
|
|
18243
18244
|
onPlayStateChange: handleMediaPlayStateChange
|
|
18244
18245
|
});
|
|
18245
18246
|
}
|
|
18246
|
-
if (doInk && (0,
|
|
18247
|
+
if (doInk && (0, chunkVJZJESNT_js.dist_exports.isInkElement)(el)) {
|
|
18247
18248
|
return renderInk(el, {
|
|
18248
18249
|
replay: isPresentationPassive,
|
|
18249
18250
|
pressureSensitive: true
|
|
@@ -18272,27 +18273,27 @@ function renderBody(options) {
|
|
|
18272
18273
|
}
|
|
18273
18274
|
return renderGroup(el.children, pptx.getGroupChildParentFill(el));
|
|
18274
18275
|
}
|
|
18275
|
-
if (
|
|
18276
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
18276
|
+
if (chunkVJZJESNT_js.shouldRenderFallbackLabel(el, isTxtEl)) {
|
|
18277
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkVJZJESNT_js.getElementLabel(el) });
|
|
18277
18278
|
}
|
|
18278
18279
|
return renderTextElementBody(options);
|
|
18279
18280
|
}
|
|
18280
18281
|
function defaultTextColorForFill(fillColor) {
|
|
18281
18282
|
const hex = String(fillColor ?? "").replace(/^#/u, "");
|
|
18282
18283
|
if (!/^[0-9a-f]{6}$/iu.test(hex)) {
|
|
18283
|
-
return
|
|
18284
|
+
return chunkVJZJESNT_js.DEFAULT_TEXT_COLOR;
|
|
18284
18285
|
}
|
|
18285
18286
|
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);
|
|
18286
18287
|
const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
|
|
18287
|
-
return luminance > 0.179 ?
|
|
18288
|
+
return luminance > 0.179 ? chunkVJZJESNT_js.DEFAULT_TEXT_COLOR : "#ffffff";
|
|
18288
18289
|
}
|
|
18289
18290
|
function getStaticElementVisualState(element, parentGroupFill) {
|
|
18290
|
-
const style = (0,
|
|
18291
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
18292
|
-
const fill =
|
|
18291
|
+
const style = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
|
|
18292
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkVJZJESNT_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
18293
|
+
const fill = chunkVJZJESNT_js.normalizeHexColor(style?.fillColor, chunkVJZJESNT_js.DEFAULT_FILL_COLOR);
|
|
18293
18294
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
18294
|
-
const stroke =
|
|
18295
|
-
const baseVisualStyle =
|
|
18295
|
+
const stroke = chunkVJZJESNT_js.normalizeHexColor(style?.strokeColor, chunkVJZJESNT_js.DEFAULT_STROKE_COLOR);
|
|
18296
|
+
const baseVisualStyle = chunkVJZJESNT_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
|
|
18296
18297
|
const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
|
|
18297
18298
|
const visualStyle = inheritedFill ? {
|
|
18298
18299
|
...baseVisualStyle,
|
|
@@ -18302,13 +18303,13 @@ function getStaticElementVisualState(element, parentGroupFill) {
|
|
|
18302
18303
|
backgroundSize: inheritedFill.backgroundSize,
|
|
18303
18304
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
18304
18305
|
} : baseVisualStyle;
|
|
18305
|
-
const textStyle =
|
|
18306
|
+
const textStyle = chunkVJZJESNT_js.getTextStyleForElement(
|
|
18306
18307
|
element,
|
|
18307
|
-
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) :
|
|
18308
|
+
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunkVJZJESNT_js.DEFAULT_TEXT_COLOR
|
|
18308
18309
|
);
|
|
18309
18310
|
const isImage = element.type === "picture" || element.type === "image";
|
|
18310
|
-
const letsTextOverflow = (0,
|
|
18311
|
-
const shapeType = (0,
|
|
18311
|
+
const letsTextOverflow = (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
18312
|
+
const shapeType = (0, chunkVJZJESNT_js.dist_exports.hasShapeProperties)(element) ? element.shapeType : void 0;
|
|
18312
18313
|
const isCallout = pptx.isWedgeCalloutPresetShape(shapeType) || String(shapeType ?? "").toLowerCase().includes("callout");
|
|
18313
18314
|
return {
|
|
18314
18315
|
hasFill,
|
|
@@ -18329,7 +18330,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
|
|
|
18329
18330
|
return { action, isActionable, contractRole };
|
|
18330
18331
|
}
|
|
18331
18332
|
function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
|
|
18332
|
-
const overflowClass = visual.isImage || element.type === "group" ||
|
|
18333
|
+
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunkVJZJESNT_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
|
|
18333
18334
|
const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
|
|
18334
18335
|
return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
|
|
18335
18336
|
}
|
|
@@ -18382,7 +18383,7 @@ function StaticElementRendererImpl({
|
|
|
18382
18383
|
"data-pptx-action": isActionable ? "click" : void 0,
|
|
18383
18384
|
className: getStaticElementWrapperClassName(
|
|
18384
18385
|
element,
|
|
18385
|
-
{ isImage, letsTextOverflow, isCallout },
|
|
18386
|
+
{ isImage, letsTextOverflow, isCallout, strokeWidth },
|
|
18386
18387
|
positioned,
|
|
18387
18388
|
isActionable
|
|
18388
18389
|
),
|
|
@@ -18412,7 +18413,7 @@ function StaticElementRendererImpl({
|
|
|
18412
18413
|
top: positioned ? element.y : void 0,
|
|
18413
18414
|
width: positioned ? Math.max(element.width, 1) : "100%",
|
|
18414
18415
|
height: positioned ? Math.max(element.height, 1) : "100%",
|
|
18415
|
-
transform: positioned ?
|
|
18416
|
+
transform: positioned ? chunkVJZJESNT_js.getElementTransform(element) : void 0,
|
|
18416
18417
|
transformOrigin: "center",
|
|
18417
18418
|
zIndex,
|
|
18418
18419
|
...visualStyle,
|
|
@@ -18453,20 +18454,20 @@ function StaticElementRendererImpl({
|
|
|
18453
18454
|
isEditing: false,
|
|
18454
18455
|
editText: "",
|
|
18455
18456
|
spellCheck: false,
|
|
18456
|
-
txtSE: (0,
|
|
18457
|
+
txtSE: (0, chunkVJZJESNT_js.dist_exports.hasTextProperties)(element) ? element.textStyle : void 0,
|
|
18457
18458
|
txtS: textStyle,
|
|
18458
|
-
vecShape:
|
|
18459
|
+
vecShape: chunkVJZJESNT_js.renderVectorShape(
|
|
18459
18460
|
element,
|
|
18460
18461
|
isImage ? false : hasFill,
|
|
18461
18462
|
fill,
|
|
18462
18463
|
strokeWidth,
|
|
18463
18464
|
stroke
|
|
18464
18465
|
),
|
|
18465
|
-
imgStyle: imageAnimation ? { ...
|
|
18466
|
-
imgFilter:
|
|
18467
|
-
imgOpacity:
|
|
18466
|
+
imgStyle: imageAnimation ? { ...chunkVJZJESNT_js.getImageRenderStyle(element), animation: imageAnimation } : chunkVJZJESNT_js.getImageRenderStyle(element),
|
|
18467
|
+
imgFilter: chunkVJZJESNT_js.getImageEffectsFilter(element),
|
|
18468
|
+
imgOpacity: chunkVJZJESNT_js.getImageEffectsOpacity(element),
|
|
18468
18469
|
imgAlt: "",
|
|
18469
|
-
isTxtEl:
|
|
18470
|
+
isTxtEl: chunkVJZJESNT_js.isEditableTextElement(element),
|
|
18470
18471
|
media: mediaDataUrls,
|
|
18471
18472
|
tableSt: null,
|
|
18472
18473
|
isSel: false,
|
|
@@ -18512,7 +18513,7 @@ function SlideLayer({
|
|
|
18512
18513
|
style: {
|
|
18513
18514
|
width: safeWidth,
|
|
18514
18515
|
height: safeHeight,
|
|
18515
|
-
backgroundColor: slide.backgroundColor ?
|
|
18516
|
+
backgroundColor: slide.backgroundColor ? chunkVJZJESNT_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
|
|
18516
18517
|
backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
|
|
18517
18518
|
backgroundSize: slide.backgroundImage ? "cover" : void 0,
|
|
18518
18519
|
backgroundPosition: slide.backgroundImage ? "center" : void 0
|