pptx-react-viewer 4.54.0 → 4.55.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 +66 -0
- package/dist/{AiChatPanel-7GJQ66GR.js → AiChatPanel-7DESUEAZ.js} +19 -19
- package/dist/AiChatPanel-7DESUEAZ.js.br +0 -0
- package/dist/AiChatPanel-7DESUEAZ.js.gz +0 -0
- package/dist/{AiChatPanel-AI75AT6C.mjs → AiChatPanel-GQ64SIYP.mjs} +1 -1
- package/dist/AiChatPanel-GQ64SIYP.mjs.br +0 -0
- package/dist/AiChatPanel-GQ64SIYP.mjs.gz +0 -0
- package/dist/{chunk-3TN5SUQR.js → chunk-5KFSMXI4.js} +6 -3
- package/dist/chunk-5KFSMXI4.js.br +0 -0
- package/dist/chunk-5KFSMXI4.js.gz +0 -0
- package/dist/{chunk-GJB3TWLP.mjs → chunk-64BFLDBT.mjs} +2 -7
- package/dist/chunk-64BFLDBT.mjs.br +0 -0
- package/dist/{chunk-GJB3TWLP.mjs.gz → chunk-64BFLDBT.mjs.gz} +0 -0
- package/dist/{chunk-6MMJBI4I.mjs → chunk-EXSGJHOH.mjs} +4 -4
- package/dist/chunk-EXSGJHOH.mjs.br +0 -0
- package/dist/{chunk-6MMJBI4I.mjs.gz → chunk-EXSGJHOH.mjs.gz} +0 -0
- package/dist/{chunk-ID37Y3HG.mjs → chunk-MR3ZSEHS.mjs} +7 -4
- package/dist/chunk-MR3ZSEHS.mjs.br +0 -0
- package/dist/chunk-MR3ZSEHS.mjs.gz +0 -0
- package/dist/{chunk-ISNT4VQN.js → chunk-OIQAJR57.js} +203 -208
- package/dist/chunk-OIQAJR57.js.br +0 -0
- package/dist/chunk-OIQAJR57.js.gz +0 -0
- package/dist/{chunk-RB6MRBJI.js → chunk-V7JICDSL.js} +557 -557
- package/dist/chunk-V7JICDSL.js.br +0 -0
- package/dist/chunk-V7JICDSL.js.gz +0 -0
- package/dist/i18n/de.cjs +421 -1
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +421 -1
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +421 -1
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +421 -1
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +421 -1
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +421 -1
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +421 -1
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +421 -1
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.gz +0 -0
- package/dist/index.js +25 -25
- 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.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.js +20 -20
- 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-7GJQ66GR.js.br +0 -0
- package/dist/AiChatPanel-7GJQ66GR.js.gz +0 -0
- package/dist/AiChatPanel-AI75AT6C.mjs.br +0 -0
- package/dist/AiChatPanel-AI75AT6C.mjs.gz +0 -0
- package/dist/chunk-3TN5SUQR.js.br +0 -0
- package/dist/chunk-3TN5SUQR.js.gz +0 -0
- package/dist/chunk-6MMJBI4I.mjs.br +0 -0
- package/dist/chunk-GJB3TWLP.mjs.br +0 -0
- package/dist/chunk-ID37Y3HG.mjs.br +0 -0
- package/dist/chunk-ID37Y3HG.mjs.gz +0 -0
- package/dist/chunk-ISNT4VQN.js.br +0 -0
- package/dist/chunk-ISNT4VQN.js.gz +0 -0
- package/dist/chunk-RB6MRBJI.js.br +0 -0
- package/dist/chunk-RB6MRBJI.js.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk5KFSMXI4_js = require('./chunk-5KFSMXI4.js');
|
|
4
4
|
var pptx = require('ooxml-ui/pptx');
|
|
5
5
|
var React17 = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -603,9 +603,9 @@ function differsOnlyInMasterSet(previous, next) {
|
|
|
603
603
|
}
|
|
604
604
|
function recordExplicitSlideUpdate(history, previous, before, label) {
|
|
605
605
|
if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
|
|
606
|
-
history.record(
|
|
606
|
+
history.record(chunk5KFSMXI4_js.cloneHistorySnapshot(previous), previous.actionLabel);
|
|
607
607
|
}
|
|
608
|
-
history.record({ ...
|
|
608
|
+
history.record({ ...chunk5KFSMXI4_js.cloneHistorySnapshot(before), actionLabel: label }, label);
|
|
609
609
|
}
|
|
610
610
|
var POLL_INTERVAL_MS = 16;
|
|
611
611
|
function usePointerReleaseWakeup(hasActivePointerInteraction) {
|
|
@@ -687,8 +687,8 @@ function useEditorHistory(input) {
|
|
|
687
687
|
width: canvasSize.width,
|
|
688
688
|
height: canvasSize.height,
|
|
689
689
|
activeSlideIndex,
|
|
690
|
-
slides: slides.map(
|
|
691
|
-
templateElementsBySlideId:
|
|
690
|
+
slides: slides.map(chunk5KFSMXI4_js.cloneSlide),
|
|
691
|
+
templateElementsBySlideId: chunk5KFSMXI4_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
|
|
692
692
|
...recordedTheme ? { theme: recordedTheme } : {},
|
|
693
693
|
...actionLabel ? { actionLabel } : {}
|
|
694
694
|
};
|
|
@@ -702,9 +702,9 @@ function useEditorHistory(input) {
|
|
|
702
702
|
width: snapshot.width,
|
|
703
703
|
height: snapshot.height
|
|
704
704
|
});
|
|
705
|
-
setSlides(snapshot.slides.map(
|
|
705
|
+
setSlides(snapshot.slides.map(chunk5KFSMXI4_js.cloneSlide));
|
|
706
706
|
setTemplateElementsBySlideId(
|
|
707
|
-
|
|
707
|
+
chunk5KFSMXI4_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
|
|
708
708
|
);
|
|
709
709
|
setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
|
|
710
710
|
setSelectedElementIds([]);
|
|
@@ -770,8 +770,8 @@ function useEditorHistory(input) {
|
|
|
770
770
|
return;
|
|
771
771
|
}
|
|
772
772
|
isApplyingHistoryRef.current = true;
|
|
773
|
-
const nextSnapshot =
|
|
774
|
-
lastHistorySnapshotRef.current =
|
|
773
|
+
const nextSnapshot = chunk5KFSMXI4_js.cloneHistorySnapshot(result.snapshot);
|
|
774
|
+
lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(nextSnapshot);
|
|
775
775
|
lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
|
|
776
776
|
applyHistorySnapshot(nextSnapshot);
|
|
777
777
|
restoreTheme(currentSnapshot, nextSnapshot);
|
|
@@ -795,8 +795,8 @@ function useEditorHistory(input) {
|
|
|
795
795
|
return;
|
|
796
796
|
}
|
|
797
797
|
isApplyingHistoryRef.current = true;
|
|
798
|
-
const targetSnapshot =
|
|
799
|
-
lastHistorySnapshotRef.current =
|
|
798
|
+
const targetSnapshot = chunk5KFSMXI4_js.cloneHistorySnapshot(result.snapshot);
|
|
799
|
+
lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(targetSnapshot);
|
|
800
800
|
lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
|
|
801
801
|
applyHistorySnapshot(targetSnapshot);
|
|
802
802
|
restoreTheme(currentSnapshot, targetSnapshot);
|
|
@@ -814,7 +814,7 @@ function useEditorHistory(input) {
|
|
|
814
814
|
(initialSnapshot) => {
|
|
815
815
|
history.clear();
|
|
816
816
|
if (initialSnapshot) {
|
|
817
|
-
const clonedInitial =
|
|
817
|
+
const clonedInitial = chunk5KFSMXI4_js.cloneHistorySnapshot(initialSnapshot);
|
|
818
818
|
lastHistorySnapshotRef.current = clonedInitial;
|
|
819
819
|
lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
|
|
820
820
|
} else {
|
|
@@ -888,16 +888,16 @@ function useEditorHistory(input) {
|
|
|
888
888
|
slides
|
|
889
889
|
]);
|
|
890
890
|
const commitSlides = (nextSlides, label, beforeSlides = slides, nextSlideMasters) => {
|
|
891
|
-
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(
|
|
891
|
+
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk5KFSMXI4_js.cloneSlide) };
|
|
892
892
|
const { theme: beforeTheme, ...unthemed } = before;
|
|
893
893
|
const afterTheme = nextSlideMasters ? pptx.historyTheme(theme, nextSlideMasters) : beforeTheme;
|
|
894
894
|
const after = {
|
|
895
895
|
...unthemed,
|
|
896
|
-
slides: nextSlides.map(
|
|
896
|
+
slides: nextSlides.map(chunk5KFSMXI4_js.cloneSlide),
|
|
897
897
|
...afterTheme ? { theme: afterTheme } : {}
|
|
898
898
|
};
|
|
899
899
|
recordExplicitSlideUpdate(history, lastHistorySnapshotRef.current, before, label);
|
|
900
|
-
lastHistorySnapshotRef.current =
|
|
900
|
+
lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(after);
|
|
901
901
|
lastHistorySerializedRef.current = serializeHistoryDocument(after);
|
|
902
902
|
isApplyingHistoryRef.current = false;
|
|
903
903
|
setSlides(nextSlides);
|
|
@@ -1084,22 +1084,22 @@ function useZoomViewport({
|
|
|
1084
1084
|
selectedElements.forEach((element) => {
|
|
1085
1085
|
minX = Math.min(minX, element.x);
|
|
1086
1086
|
minY = Math.min(minY, element.y);
|
|
1087
|
-
maxX = Math.max(maxX, element.x + Math.max(element.width,
|
|
1088
|
-
maxY = Math.max(maxY, element.y + Math.max(element.height,
|
|
1087
|
+
maxX = Math.max(maxX, element.x + Math.max(element.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE));
|
|
1088
|
+
maxY = Math.max(maxY, element.y + Math.max(element.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE));
|
|
1089
1089
|
});
|
|
1090
1090
|
if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
|
|
1091
1091
|
return;
|
|
1092
1092
|
}
|
|
1093
1093
|
const selectionBounds = { minX, minY, maxX, maxY };
|
|
1094
|
-
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX,
|
|
1095
|
-
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY,
|
|
1094
|
+
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
|
|
1095
|
+
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
|
|
1096
1096
|
const availableWidth = Math.max(
|
|
1097
|
-
effectiveEditorDimensions.width -
|
|
1098
|
-
|
|
1097
|
+
effectiveEditorDimensions.width - chunk5KFSMXI4_js.ZOOM_TO_SELECTION_PADDING,
|
|
1098
|
+
chunk5KFSMXI4_js.MIN_ELEMENT_SIZE
|
|
1099
1099
|
);
|
|
1100
1100
|
const availableHeight = Math.max(
|
|
1101
|
-
effectiveEditorDimensions.height -
|
|
1102
|
-
|
|
1101
|
+
effectiveEditorDimensions.height - chunk5KFSMXI4_js.ZOOM_TO_SELECTION_PADDING,
|
|
1102
|
+
chunk5KFSMXI4_js.MIN_ELEMENT_SIZE
|
|
1103
1103
|
);
|
|
1104
1104
|
const targetEditorScale = Math.min(
|
|
1105
1105
|
availableWidth / boundsWidth,
|
|
@@ -4014,8 +4014,8 @@ function useViewerCoreState(_input) {
|
|
|
4014
4014
|
const { slides, setSlides, slidesRef } = useSlideState();
|
|
4015
4015
|
const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
|
|
4016
4016
|
const [canvasSize, setCanvasSize] = React17.useState({
|
|
4017
|
-
width:
|
|
4018
|
-
height:
|
|
4017
|
+
width: chunk5KFSMXI4_js.DEFAULT_CANVAS_WIDTH,
|
|
4018
|
+
height: chunk5KFSMXI4_js.DEFAULT_CANVAS_HEIGHT
|
|
4019
4019
|
});
|
|
4020
4020
|
const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
|
|
4021
4021
|
const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
|
|
@@ -4407,7 +4407,7 @@ function useLoadContent({
|
|
|
4407
4407
|
initialSlideRef.current = initialSlide;
|
|
4408
4408
|
const limitsRef = React17.useRef(limits);
|
|
4409
4409
|
limitsRef.current = limits;
|
|
4410
|
-
const { t } =
|
|
4410
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
4411
4411
|
const translateRef = React17.useRef(t);
|
|
4412
4412
|
translateRef.current = t;
|
|
4413
4413
|
const originalBufferRef = React17.useRef(null);
|
|
@@ -4507,12 +4507,12 @@ function useLoadContent({
|
|
|
4507
4507
|
}
|
|
4508
4508
|
resources.commit();
|
|
4509
4509
|
handlerRef.current = handler;
|
|
4510
|
-
const partition =
|
|
4510
|
+
const partition = chunk5KFSMXI4_js.partitionTemplateElements(nextSlides);
|
|
4511
4511
|
setSlides(partition.slides);
|
|
4512
4512
|
setTemplateElementsBySlideId(partition.templateElementsBySlideId);
|
|
4513
4513
|
setCanvasSize({
|
|
4514
|
-
width: parsed.width ??
|
|
4515
|
-
height: parsed.height ??
|
|
4514
|
+
width: parsed.width ?? chunk5KFSMXI4_js.DEFAULT_CANVAS_WIDTH,
|
|
4515
|
+
height: parsed.height ?? chunk5KFSMXI4_js.DEFAULT_CANVAS_HEIGHT
|
|
4516
4516
|
});
|
|
4517
4517
|
setSlideSizeEmu(
|
|
4518
4518
|
typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
|
|
@@ -4921,7 +4921,7 @@ function useElementOperations(input) {
|
|
|
4921
4921
|
);
|
|
4922
4922
|
return;
|
|
4923
4923
|
}
|
|
4924
|
-
if (
|
|
4924
|
+
if (chunk5KFSMXI4_js.isTemplateElementId(elementId)) {
|
|
4925
4925
|
const slideId = activeSlide?.id;
|
|
4926
4926
|
if (slideId) {
|
|
4927
4927
|
setTemplateElementsBySlideId((prev) => ({
|
|
@@ -5207,8 +5207,8 @@ function createCanvasGestures(getInput, frames = animationFrames) {
|
|
|
5207
5207
|
}
|
|
5208
5208
|
function paintResize(resize, transform) {
|
|
5209
5209
|
const { x, y } = transform;
|
|
5210
|
-
const width = Math.max(transform.width,
|
|
5211
|
-
const height = Math.max(transform.height,
|
|
5210
|
+
const width = Math.max(transform.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
|
|
5211
|
+
const height = Math.max(transform.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
|
|
5212
5212
|
resize.lastX = x;
|
|
5213
5213
|
resize.lastY = y;
|
|
5214
5214
|
resize.lastWidth = transform.width;
|
|
@@ -5265,7 +5265,7 @@ function createCanvasGestures(getInput, frames = animationFrames) {
|
|
|
5265
5265
|
getGridSize: () => getInput().gridSpacingPx,
|
|
5266
5266
|
getSnapToShape: () => getInput().snapToShape,
|
|
5267
5267
|
getGuides: () => getInput().guides.map(({ axis, position }) => ({ axis, position })),
|
|
5268
|
-
getMinSize: () =>
|
|
5268
|
+
getMinSize: () => chunk5KFSMXI4_js.MIN_ELEMENT_SIZE,
|
|
5269
5269
|
getSnapExcludeIds: () => armed?.kind === "move" ? Object.keys(armed.drag.startPositionsById) : [],
|
|
5270
5270
|
getStageOrigin: () => {
|
|
5271
5271
|
const rect = getInput().canvasStageRef.current?.getBoundingClientRect();
|
|
@@ -5346,7 +5346,7 @@ function commitMove(input, drag) {
|
|
|
5346
5346
|
const start = drag.startPositionsById[el.id];
|
|
5347
5347
|
return start ? { ...el, x: start.x + dx, y: start.y + dy } : el;
|
|
5348
5348
|
});
|
|
5349
|
-
return
|
|
5349
|
+
return chunk5KFSMXI4_js.applyReroutedConnectors(moved, chunk5KFSMXI4_js.rerouteConnectorsForMovedElements(moved, movedIds));
|
|
5350
5350
|
};
|
|
5351
5351
|
if (input.editTemplateMode) {
|
|
5352
5352
|
const slideId = input.activeSlide?.id;
|
|
@@ -5377,8 +5377,8 @@ function commitResize(input, resize) {
|
|
|
5377
5377
|
if (i !== input.activeSlideIndex) {
|
|
5378
5378
|
return s;
|
|
5379
5379
|
}
|
|
5380
|
-
const rerouted =
|
|
5381
|
-
return rerouted.length === 0 ? s : { ...s, elements:
|
|
5380
|
+
const rerouted = chunk5KFSMXI4_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
|
|
5381
|
+
return rerouted.length === 0 ? s : { ...s, elements: chunk5KFSMXI4_js.applyReroutedConnectors(s.elements, rerouted) };
|
|
5382
5382
|
})
|
|
5383
5383
|
);
|
|
5384
5384
|
}
|
|
@@ -6213,7 +6213,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6213
6213
|
return;
|
|
6214
6214
|
}
|
|
6215
6215
|
const resolved = resolveHyperlinkEditResult(data);
|
|
6216
|
-
if (resolved.url && !
|
|
6216
|
+
if (resolved.url && !chunk5KFSMXI4_js.isUrlSafe(resolved.url)) {
|
|
6217
6217
|
return;
|
|
6218
6218
|
}
|
|
6219
6219
|
const actionClick = {
|
|
@@ -6259,7 +6259,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6259
6259
|
if (!activeSlide) {
|
|
6260
6260
|
return;
|
|
6261
6261
|
}
|
|
6262
|
-
const preset =
|
|
6262
|
+
const preset = chunk5KFSMXI4_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
|
|
6263
6263
|
if (!preset) {
|
|
6264
6264
|
return;
|
|
6265
6265
|
}
|
|
@@ -6346,7 +6346,7 @@ function useInsertElements(input) {
|
|
|
6346
6346
|
width: 300,
|
|
6347
6347
|
height: 60,
|
|
6348
6348
|
text: "",
|
|
6349
|
-
textStyle: { fontSize:
|
|
6349
|
+
textStyle: { fontSize: chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE }
|
|
6350
6350
|
});
|
|
6351
6351
|
};
|
|
6352
6352
|
const handleAddShape = () => {
|
|
@@ -6368,7 +6368,7 @@ function useInsertElements(input) {
|
|
|
6368
6368
|
}
|
|
6369
6369
|
});
|
|
6370
6370
|
};
|
|
6371
|
-
const handleAddTable = (rows =
|
|
6371
|
+
const handleAddTable = (rows = chunk5KFSMXI4_js.DEFAULT_TABLE_ROWS, columns = chunk5KFSMXI4_js.DEFAULT_TABLE_COLUMNS) => {
|
|
6372
6372
|
if (!activeSlide) {
|
|
6373
6373
|
return;
|
|
6374
6374
|
}
|
|
@@ -6542,7 +6542,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6542
6542
|
history
|
|
6543
6543
|
} = input;
|
|
6544
6544
|
const updateElementsOwning = (elementId, updater) => {
|
|
6545
|
-
if (editTemplateMode && !
|
|
6545
|
+
if (editTemplateMode && !chunk5KFSMXI4_js.isTemplateElementId(elementId)) {
|
|
6546
6546
|
ops.updateSlides(
|
|
6547
6547
|
(prev) => prev.map(
|
|
6548
6548
|
(slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
|
|
@@ -6576,9 +6576,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6576
6576
|
return;
|
|
6577
6577
|
}
|
|
6578
6578
|
const group = selectedElement;
|
|
6579
|
-
const intoTemplate =
|
|
6579
|
+
const intoTemplate = chunk5KFSMXI4_js.isTemplateElementId(group.id);
|
|
6580
6580
|
const childIds = group.children.map(
|
|
6581
|
-
(child) => intoTemplate ?
|
|
6581
|
+
(child) => intoTemplate ? chunk5KFSMXI4_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
|
|
6582
6582
|
);
|
|
6583
6583
|
const { elements, childIds: usedIds } = pptx.ungroupElements(
|
|
6584
6584
|
ops.activeElements,
|
|
@@ -7014,7 +7014,7 @@ function createTableMergeHandlers(input) {
|
|
|
7014
7014
|
if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
|
|
7015
7015
|
return;
|
|
7016
7016
|
}
|
|
7017
|
-
const newTableData =
|
|
7017
|
+
const newTableData = chunk5KFSMXI4_js.mergeCells(
|
|
7018
7018
|
[
|
|
7019
7019
|
{ row: rowIndex, col: columnIndex },
|
|
7020
7020
|
{ row: rowIndex, col: nextColIdx }
|
|
@@ -7022,7 +7022,7 @@ function createTableMergeHandlers(input) {
|
|
|
7022
7022
|
td
|
|
7023
7023
|
);
|
|
7024
7024
|
const updates = { tableData: newTableData };
|
|
7025
|
-
const newRawXml =
|
|
7025
|
+
const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7026
7026
|
if (newRawXml) {
|
|
7027
7027
|
updates.rawXml = newRawXml;
|
|
7028
7028
|
}
|
|
@@ -7048,7 +7048,7 @@ function createTableMergeHandlers(input) {
|
|
|
7048
7048
|
if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
|
|
7049
7049
|
return;
|
|
7050
7050
|
}
|
|
7051
|
-
const newTableData =
|
|
7051
|
+
const newTableData = chunk5KFSMXI4_js.mergeCells(
|
|
7052
7052
|
[
|
|
7053
7053
|
{ row: rowIndex, col: columnIndex },
|
|
7054
7054
|
{ row: targetNextRowIdx, col: columnIndex }
|
|
@@ -7056,7 +7056,7 @@ function createTableMergeHandlers(input) {
|
|
|
7056
7056
|
td
|
|
7057
7057
|
);
|
|
7058
7058
|
const updates = { tableData: newTableData };
|
|
7059
|
-
const newRawXml =
|
|
7059
|
+
const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7060
7060
|
if (newRawXml) {
|
|
7061
7061
|
updates.rawXml = newRawXml;
|
|
7062
7062
|
}
|
|
@@ -7071,9 +7071,9 @@ function createTableMergeHandlers(input) {
|
|
|
7071
7071
|
return;
|
|
7072
7072
|
}
|
|
7073
7073
|
const td = selectedElement.tableData;
|
|
7074
|
-
const newTableData =
|
|
7074
|
+
const newTableData = chunk5KFSMXI4_js.mergeCells(ts.selectedCells, td);
|
|
7075
7075
|
const updates = { tableData: newTableData };
|
|
7076
|
-
const newRawXml =
|
|
7076
|
+
const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7077
7077
|
if (newRawXml) {
|
|
7078
7078
|
updates.rawXml = newRawXml;
|
|
7079
7079
|
}
|
|
@@ -7090,9 +7090,9 @@ function createTableMergeHandlers(input) {
|
|
|
7090
7090
|
}
|
|
7091
7091
|
const { rowIndex, columnIndex } = ts;
|
|
7092
7092
|
const td = selectedElement.tableData;
|
|
7093
|
-
const newTableData =
|
|
7093
|
+
const newTableData = chunk5KFSMXI4_js.splitCell(rowIndex, columnIndex, td);
|
|
7094
7094
|
const updates = { tableData: newTableData };
|
|
7095
|
-
const newRawXml =
|
|
7095
|
+
const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7096
7096
|
if (newRawXml) {
|
|
7097
7097
|
updates.rawXml = newRawXml;
|
|
7098
7098
|
}
|
|
@@ -7127,7 +7127,7 @@ function createTableStructHandlers(input) {
|
|
|
7127
7127
|
updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
|
|
7128
7128
|
}
|
|
7129
7129
|
if (el.rawXml) {
|
|
7130
|
-
const newRawXml =
|
|
7130
|
+
const newRawXml = chunk5KFSMXI4_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
|
|
7131
7131
|
if (newRawXml) {
|
|
7132
7132
|
updates.rawXml = newRawXml;
|
|
7133
7133
|
}
|
|
@@ -7151,7 +7151,7 @@ function createTableStructHandlers(input) {
|
|
|
7151
7151
|
const { rowIndex, columnIndex: colIndex } = ts;
|
|
7152
7152
|
const updates = {};
|
|
7153
7153
|
if (selectedElement.rawXml) {
|
|
7154
|
-
const newRawXml =
|
|
7154
|
+
const newRawXml = chunk5KFSMXI4_js.updateCellTextStyleInRawXml(
|
|
7155
7155
|
selectedElement,
|
|
7156
7156
|
rowIndex,
|
|
7157
7157
|
colIndex,
|
|
@@ -7329,7 +7329,7 @@ function useExportSaveAs(input) {
|
|
|
7329
7329
|
const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
|
|
7330
7330
|
const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
|
|
7331
7331
|
const data = {
|
|
7332
|
-
slides:
|
|
7332
|
+
slides: chunk5KFSMXI4_js.buildSaveSlides(slides, templateElementsBySlideId),
|
|
7333
7333
|
width: canvasSize.width,
|
|
7334
7334
|
height: canvasSize.height,
|
|
7335
7335
|
widthEmu: slideSize.widthEmu,
|
|
@@ -7492,7 +7492,7 @@ async function captureSlidesAsPngDataUrls(slideStageRef, slideIndices, setActive
|
|
|
7492
7492
|
}
|
|
7493
7493
|
function tilesToPdfPage(tilesResult) {
|
|
7494
7494
|
return tilesResult.tiles.map((tile) => ({
|
|
7495
|
-
image:
|
|
7495
|
+
image: chunk5KFSMXI4_js.canvasToJpegData(tile.canvas),
|
|
7496
7496
|
placement: pptx.placeTileOnPage(
|
|
7497
7497
|
tile,
|
|
7498
7498
|
tilesResult.fullWidth,
|
|
@@ -7525,7 +7525,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7525
7525
|
if (pages.length === 0) {
|
|
7526
7526
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7527
7527
|
}
|
|
7528
|
-
const pdfBlobUrl =
|
|
7528
|
+
const pdfBlobUrl = chunk5KFSMXI4_js.buildPdfFromTiledImageData(pages);
|
|
7529
7529
|
pptx.downloadDataUrl(pdfBlobUrl, filename);
|
|
7530
7530
|
}
|
|
7531
7531
|
async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
|
|
@@ -7555,7 +7555,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
|
|
|
7555
7555
|
if (pages.length === 0) {
|
|
7556
7556
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
|
|
7557
7557
|
}
|
|
7558
|
-
const pdfDataUrl =
|
|
7558
|
+
const pdfDataUrl = chunk5KFSMXI4_js.buildNotesPdf(pages);
|
|
7559
7559
|
pptx.downloadDataUrl(pdfDataUrl, filename);
|
|
7560
7560
|
}
|
|
7561
7561
|
async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
|
|
@@ -8147,13 +8147,13 @@ function usePrintHandlers(input) {
|
|
|
8147
8147
|
const { slides, activeSlideIndex, canvasStageRef, setActiveSlideIndex, canvasSize } = input;
|
|
8148
8148
|
const handoutMaster = input.handoutMaster ?? input.pptxData?.handoutMaster;
|
|
8149
8149
|
const [isPrintDialogOpen, setIsPrintDialogOpen] = React17.useState(false);
|
|
8150
|
-
const { t } =
|
|
8150
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
8151
8151
|
const viewerOptions = useViewerOptionsContext();
|
|
8152
8152
|
const printRasterScale = (viewerOptions.advanced.printHighQuality ? 4 : 3) * pptx.resolveImageResolutionScale(viewerOptions);
|
|
8153
8153
|
const handlePrint = () => {
|
|
8154
8154
|
setIsPrintDialogOpen(true);
|
|
8155
8155
|
};
|
|
8156
|
-
const deckSlides = () => input.templateElementsBySlideId ?
|
|
8156
|
+
const deckSlides = () => input.templateElementsBySlideId ? chunk5KFSMXI4_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
|
|
8157
8157
|
const plan = (settings, deck) => pptx.planPrintJob(settings, {
|
|
8158
8158
|
slides: deck,
|
|
8159
8159
|
activeSlideIndex,
|
|
@@ -8568,7 +8568,7 @@ function usePropertyHandlers(input) {
|
|
|
8568
8568
|
width: canvasSize.width,
|
|
8569
8569
|
height: canvasSize.height
|
|
8570
8570
|
};
|
|
8571
|
-
setCompareResult(
|
|
8571
|
+
setCompareResult(chunk5KFSMXI4_js.comparePresentation(cur, other));
|
|
8572
8572
|
setIsComparePanelOpen(true);
|
|
8573
8573
|
} catch (err) {
|
|
8574
8574
|
console.warn("Compare failed:", err);
|
|
@@ -8924,7 +8924,7 @@ function useViewerDialogs(input) {
|
|
|
8924
8924
|
};
|
|
8925
8925
|
}
|
|
8926
8926
|
function computeGridSpacingPx(documentGridSpacing) {
|
|
8927
|
-
return pptx.computeGridSpacingPx(documentGridSpacing,
|
|
8927
|
+
return pptx.computeGridSpacingPx(documentGridSpacing, chunk5KFSMXI4_js.GRID_SIZE);
|
|
8928
8928
|
}
|
|
8929
8929
|
function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
|
|
8930
8930
|
const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
|
|
@@ -8933,7 +8933,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
|
|
|
8933
8933
|
}
|
|
8934
8934
|
function computeSlideSectionGroups(slides, sections) {
|
|
8935
8935
|
return pptx.groupSlidesBySection(sections, slides).map((group) => ({
|
|
8936
|
-
id: group.section?.id ?? (sections.length > 0 ?
|
|
8936
|
+
id: group.section?.id ?? (sections.length > 0 ? chunk5KFSMXI4_js.UNGROUPED_SECTION_ID : chunk5KFSMXI4_js.DEFAULT_SECTION_GROUP_ID),
|
|
8937
8937
|
label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
|
|
8938
8938
|
slideIndexes: group.slideIndexes,
|
|
8939
8939
|
...group.section?.color !== void 0 ? { color: group.section.color } : {},
|
|
@@ -8952,7 +8952,7 @@ function computeMasterPseudoSlide(mode, activeLayout, activeMaster) {
|
|
|
8952
8952
|
});
|
|
8953
8953
|
}
|
|
8954
8954
|
function useDerivedSlideState(input) {
|
|
8955
|
-
const { t } =
|
|
8955
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
8956
8956
|
const {
|
|
8957
8957
|
slides,
|
|
8958
8958
|
sections,
|
|
@@ -8978,10 +8978,10 @@ function useDerivedSlideState(input) {
|
|
|
8978
8978
|
);
|
|
8979
8979
|
const slideSectionGroups = React17.useMemo(
|
|
8980
8980
|
() => computeSlideSectionGroups(slides, sections).map((group) => {
|
|
8981
|
-
if (group.id ===
|
|
8981
|
+
if (group.id === chunk5KFSMXI4_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
|
|
8982
8982
|
return { ...group, label: t("pptx.slides.ungroupedSlides") };
|
|
8983
8983
|
}
|
|
8984
|
-
if (group.id ===
|
|
8984
|
+
if (group.id === chunk5KFSMXI4_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
|
|
8985
8985
|
return { ...group, label: t("pptx.sections.slides") };
|
|
8986
8986
|
}
|
|
8987
8987
|
return group;
|
|
@@ -9088,7 +9088,7 @@ function useAnnotationHandlers(input) {
|
|
|
9088
9088
|
if (nextMode === "present") {
|
|
9089
9089
|
presentation.enterPresentMode();
|
|
9090
9090
|
} else if (mode === "present" && annotations.hasAnyAnnotations) {
|
|
9091
|
-
|
|
9091
|
+
chunk5KFSMXI4_js.stopAllPersistentAudio();
|
|
9092
9092
|
if (promptKeepInkAnnotations) {
|
|
9093
9093
|
pendingModeAfterAnnotationsRef.current = nextMode;
|
|
9094
9094
|
setShowKeepAnnotationsDialog(true);
|
|
@@ -9098,7 +9098,7 @@ function useAnnotationHandlers(input) {
|
|
|
9098
9098
|
}
|
|
9099
9099
|
} else {
|
|
9100
9100
|
if (mode === "present") {
|
|
9101
|
-
|
|
9101
|
+
chunk5KFSMXI4_js.stopAllPersistentAudio();
|
|
9102
9102
|
}
|
|
9103
9103
|
setMode(nextMode);
|
|
9104
9104
|
}
|
|
@@ -9265,7 +9265,7 @@ function useSerialize(input) {
|
|
|
9265
9265
|
guides: pptxGuides.length > 0 ? pptxGuides : void 0
|
|
9266
9266
|
};
|
|
9267
9267
|
});
|
|
9268
|
-
const slidesToSave =
|
|
9268
|
+
const slidesToSave = chunk5KFSMXI4_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
|
|
9269
9269
|
const saveOptions = pptx.buildDeckSaveOptions({
|
|
9270
9270
|
// Without this the Slide Size card edited a viewer-only pixel value and
|
|
9271
9271
|
// the saved `p:sldSz` never moved: passing `slideSize` is the only way a
|
|
@@ -9409,7 +9409,7 @@ function usePresentationSetup(input) {
|
|
|
9409
9409
|
return;
|
|
9410
9410
|
}
|
|
9411
9411
|
if (mode === "present" && nextMode !== "present") {
|
|
9412
|
-
|
|
9412
|
+
chunk5KFSMXI4_js.stopAllPersistentAudio();
|
|
9413
9413
|
stopAnimationSound();
|
|
9414
9414
|
const exitHandler = exitModeHandlerRef.current;
|
|
9415
9415
|
if (exitHandler) {
|
|
@@ -9530,7 +9530,7 @@ function useCanvasImagePaste(input) {
|
|
|
9530
9530
|
);
|
|
9531
9531
|
}
|
|
9532
9532
|
function formatPatchFor(element, format) {
|
|
9533
|
-
const updated =
|
|
9533
|
+
const updated = chunk5KFSMXI4_js.applyFormatToElement(element, format);
|
|
9534
9534
|
const updates = {};
|
|
9535
9535
|
if (pptx$1.hasShapeProperties(updated)) {
|
|
9536
9536
|
updates.shapeStyle = updated.shapeStyle;
|
|
@@ -9553,7 +9553,7 @@ function useFormatPainterEditing(input) {
|
|
|
9553
9553
|
const prevFormatPainterRef = React17.useRef(false);
|
|
9554
9554
|
React17.useEffect(() => {
|
|
9555
9555
|
if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
|
|
9556
|
-
copiedFormatRef.current =
|
|
9556
|
+
copiedFormatRef.current = chunk5KFSMXI4_js.copyFormatFromElement(selectedElement);
|
|
9557
9557
|
} else if (!formatPainterActive) {
|
|
9558
9558
|
copiedFormatRef.current = null;
|
|
9559
9559
|
}
|
|
@@ -11187,7 +11187,7 @@ function useCollaborationWriteBack(input) {
|
|
|
11187
11187
|
getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
|
|
11188
11188
|
getSaveOptions: () => latest.current.getSaveOptions?.(),
|
|
11189
11189
|
getTemplateElements: () => latest.current.templateElementsBySlideId,
|
|
11190
|
-
mergeTemplateElements:
|
|
11190
|
+
mergeTemplateElements: chunk5KFSMXI4_js.buildSaveSlides,
|
|
11191
11191
|
onWriteBackStatus: () => latest.current.onWriteBackStatus?.(
|
|
11192
11192
|
pptx.writeBackReport(latest.current.config, created.getState())
|
|
11193
11193
|
)
|
|
@@ -11744,8 +11744,8 @@ function useTouchGestures(input) {
|
|
|
11744
11744
|
}
|
|
11745
11745
|
const recognizer = pptx.createTouchGestureRecognizer({
|
|
11746
11746
|
getScale: () => scaleRef.current,
|
|
11747
|
-
minScale:
|
|
11748
|
-
maxScale:
|
|
11747
|
+
minScale: chunk5KFSMXI4_js.MIN_ZOOM_SCALE,
|
|
11748
|
+
maxScale: chunk5KFSMXI4_js.MAX_ZOOM_SCALE,
|
|
11749
11749
|
callbacks: {
|
|
11750
11750
|
onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
|
|
11751
11751
|
onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
|
|
@@ -11869,7 +11869,7 @@ function buildCanvasProps(input) {
|
|
|
11869
11869
|
if (pptx.shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
|
|
11870
11870
|
return;
|
|
11871
11871
|
}
|
|
11872
|
-
|
|
11872
|
+
chunk5KFSMXI4_js.safeOpenUrl(url, target);
|
|
11873
11873
|
};
|
|
11874
11874
|
const handleActionClick = (elementId, action) => {
|
|
11875
11875
|
if (mode === "present") {
|
|
@@ -11884,9 +11884,9 @@ function buildCanvasProps(input) {
|
|
|
11884
11884
|
}
|
|
11885
11885
|
};
|
|
11886
11886
|
const handleHyperlinkClick = (url, target) => {
|
|
11887
|
-
if (
|
|
11887
|
+
if (chunk5KFSMXI4_js.isPpactionUrl(url)) {
|
|
11888
11888
|
if (mode === "present") {
|
|
11889
|
-
const parsed =
|
|
11889
|
+
const parsed = chunk5KFSMXI4_js.parsePpactionUrl(url);
|
|
11890
11890
|
if (parsed) {
|
|
11891
11891
|
presentation.handlePresentationAction({
|
|
11892
11892
|
action: parsed.action,
|
|
@@ -12314,7 +12314,7 @@ function buildToolbarProps(input) {
|
|
|
12314
12314
|
markDirty: history.markDirty
|
|
12315
12315
|
}),
|
|
12316
12316
|
formatPainterActive: s.formatPainterActive,
|
|
12317
|
-
canActivateFormatPainter:
|
|
12317
|
+
canActivateFormatPainter: chunk5KFSMXI4_js.hasCopyableFormat(selectedElement),
|
|
12318
12318
|
onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
|
|
12319
12319
|
isSelectionPaneOpen: s.isSelectionPaneOpen,
|
|
12320
12320
|
onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
|
|
@@ -13018,7 +13018,7 @@ function useViewerBuildingBlocks(input) {
|
|
|
13018
13018
|
} = input;
|
|
13019
13019
|
const collaborationConfig = pptx.resolveCollaborationConfig(input.collaboration);
|
|
13020
13020
|
const [collaborationReadOnly, setCollaborationReadOnly] = React17.useState(Boolean(collaborationConfig));
|
|
13021
|
-
const { t } =
|
|
13021
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
13022
13022
|
const [content, setContent] = React17.useState(incomingContent ?? null);
|
|
13023
13023
|
const [loadOrigin, setLoadOrigin] = React17.useState("bootstrap");
|
|
13024
13024
|
React17.useEffect(() => {
|
|
@@ -13208,23 +13208,23 @@ function ColorChangedImage({
|
|
|
13208
13208
|
className,
|
|
13209
13209
|
alt
|
|
13210
13210
|
}) {
|
|
13211
|
-
const tolerance = tolerancePct ??
|
|
13212
|
-
const cacheKey =
|
|
13211
|
+
const tolerance = tolerancePct ?? chunk5KFSMXI4_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
|
|
13212
|
+
const cacheKey = chunk5KFSMXI4_js.buildCacheKey(
|
|
13213
13213
|
src,
|
|
13214
13214
|
clrChange.clrFrom,
|
|
13215
13215
|
clrChange.clrTo,
|
|
13216
13216
|
tolerance,
|
|
13217
13217
|
Boolean(clrChange.clrToTransparent)
|
|
13218
13218
|
);
|
|
13219
|
-
const cached =
|
|
13219
|
+
const cached = chunk5KFSMXI4_js.getCachedResult(cacheKey);
|
|
13220
13220
|
const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
|
|
13221
13221
|
React17.useEffect(() => {
|
|
13222
|
-
if (
|
|
13223
|
-
setProcessedSrc(
|
|
13222
|
+
if (chunk5KFSMXI4_js.getCachedResult(cacheKey)) {
|
|
13223
|
+
setProcessedSrc(chunk5KFSMXI4_js.getCachedResult(cacheKey) ?? null);
|
|
13224
13224
|
return;
|
|
13225
13225
|
}
|
|
13226
13226
|
let cancelled = false;
|
|
13227
|
-
|
|
13227
|
+
chunk5KFSMXI4_js.applyColorChange(
|
|
13228
13228
|
src,
|
|
13229
13229
|
clrChange.clrFrom,
|
|
13230
13230
|
clrChange.clrTo,
|
|
@@ -13232,7 +13232,7 @@ function ColorChangedImage({
|
|
|
13232
13232
|
Boolean(clrChange.clrToTransparent)
|
|
13233
13233
|
).then((result) => {
|
|
13234
13234
|
if (!cancelled) {
|
|
13235
|
-
|
|
13235
|
+
chunk5KFSMXI4_js.setCachedResult(cacheKey, result.dataUrl);
|
|
13236
13236
|
setProcessedSrc(result.dataUrl);
|
|
13237
13237
|
}
|
|
13238
13238
|
return void 0;
|
|
@@ -13324,7 +13324,7 @@ function TiledImageLayer({
|
|
|
13324
13324
|
cancelled = true;
|
|
13325
13325
|
};
|
|
13326
13326
|
}, [src]);
|
|
13327
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...
|
|
13327
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk5KFSMXI4_js.getImageTilingStyle(element, nativeSize), ...style } });
|
|
13328
13328
|
}
|
|
13329
13329
|
function renderImageEffectDefinitions(element, excludeDuotone = false) {
|
|
13330
13330
|
return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13393,7 +13393,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13393
13393
|
...filter ? { filter } : {},
|
|
13394
13394
|
...opacity !== void 0 ? { opacity } : {}
|
|
13395
13395
|
};
|
|
13396
|
-
if (
|
|
13396
|
+
if (chunk5KFSMXI4_js.isImageTiled(el)) {
|
|
13397
13397
|
const tileSrc = imgSrc(el);
|
|
13398
13398
|
if (!tileSrc) {
|
|
13399
13399
|
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" });
|
|
@@ -13415,9 +13415,9 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13415
13415
|
pptx$1.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
|
|
13416
13416
|
);
|
|
13417
13417
|
const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
|
|
13418
|
-
const duotoneColors =
|
|
13418
|
+
const duotoneColors = chunk5KFSMXI4_js.getDuotoneColors(el);
|
|
13419
13419
|
const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
|
|
13420
|
-
const filterForImg = useDuotoneCanvas ?
|
|
13420
|
+
const filterForImg = useDuotoneCanvas ? chunk5KFSMXI4_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
|
|
13421
13421
|
const canvasEffectStyles = {
|
|
13422
13422
|
...filterForImg ? { filter: filterForImg } : {},
|
|
13423
13423
|
...opacity !== void 0 ? { opacity } : {}
|
|
@@ -13493,10 +13493,10 @@ function SlideBackgroundImageLayer({
|
|
|
13493
13493
|
style: { zIndex: 0 },
|
|
13494
13494
|
children: renderImg(
|
|
13495
13495
|
backgroundElement,
|
|
13496
|
-
|
|
13497
|
-
|
|
13496
|
+
chunk5KFSMXI4_js.getImageRenderStyle(backgroundElement),
|
|
13497
|
+
chunk5KFSMXI4_js.getImageEffectsFilter(backgroundElement),
|
|
13498
13498
|
"",
|
|
13499
|
-
|
|
13499
|
+
chunk5KFSMXI4_js.getImageEffectsOpacity(backgroundElement)
|
|
13500
13500
|
)
|
|
13501
13501
|
}
|
|
13502
13502
|
);
|
|
@@ -13767,7 +13767,7 @@ function ChartElementView({
|
|
|
13767
13767
|
onUpdateElement,
|
|
13768
13768
|
animationState
|
|
13769
13769
|
}) {
|
|
13770
|
-
const { t } =
|
|
13770
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
13771
13771
|
const wrapperRef = React17.useRef(null);
|
|
13772
13772
|
const { selection, setSelection } = useChartPartSelection();
|
|
13773
13773
|
const [titleDraft, setTitleDraft] = React17.useState(null);
|
|
@@ -13782,7 +13782,7 @@ function ChartElementView({
|
|
|
13782
13782
|
pptx.getBarFacePicturePixelSampleVersion
|
|
13783
13783
|
);
|
|
13784
13784
|
const viewModel = React17.useMemo(() => {
|
|
13785
|
-
return canEdit ?
|
|
13785
|
+
return canEdit ? chunk5KFSMXI4_js.buildReactChartViewModel(element) : null;
|
|
13786
13786
|
}, [canEdit, element, barFacePictureSampleVersion]);
|
|
13787
13787
|
React17.useEffect(pptx.ensureChartInteractionStyles, []);
|
|
13788
13788
|
React17.useEffect(() => {
|
|
@@ -13887,9 +13887,9 @@ function ChartElementView({
|
|
|
13887
13887
|
textStyle: animationState?.textStyle,
|
|
13888
13888
|
onSelect: chart3D.onSelect,
|
|
13889
13889
|
onDrag: chart3D.onDrag,
|
|
13890
|
-
children:
|
|
13890
|
+
children: chunk5KFSMXI4_js.renderChartElement(renderedElement, (key) => t(key))
|
|
13891
13891
|
}
|
|
13892
|
-
) :
|
|
13892
|
+
) : chunk5KFSMXI4_js.renderChartElement(renderedElement, (key) => t(key)),
|
|
13893
13893
|
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) }),
|
|
13894
13894
|
titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13895
13895
|
"input",
|
|
@@ -13917,7 +13917,7 @@ function ChartElementView({
|
|
|
13917
13917
|
);
|
|
13918
13918
|
}
|
|
13919
13919
|
function useActionAffordance(element, canInteract) {
|
|
13920
|
-
const { t } =
|
|
13920
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
13921
13921
|
pptx.ensureActionAffordanceStyles();
|
|
13922
13922
|
return React17.useMemo(
|
|
13923
13923
|
() => pptx.resolveElementActionAffordance(element, {
|
|
@@ -14195,7 +14195,7 @@ function ResizeHandles({
|
|
|
14195
14195
|
nonRotationTransform,
|
|
14196
14196
|
onRotate
|
|
14197
14197
|
}) {
|
|
14198
|
-
const { t } =
|
|
14198
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
14199
14199
|
const rotateRef = useRotateHandlePlacement(elementId, Boolean(onRotate));
|
|
14200
14200
|
const peStyle = forcePointerEvents ? { ...HANDLE_TOUCH_ACTION, pointerEvents: "auto" } : HANDLE_TOUCH_ACTION;
|
|
14201
14201
|
const resizeStyle = { ...HANDLE_TOUCH_ACTION, pointerEvents: "none" };
|
|
@@ -14228,7 +14228,7 @@ function ResizeHandles({
|
|
|
14228
14228
|
"aria-label": t("pptx.selectionOverlay.resize", { handle }),
|
|
14229
14229
|
"data-pptx-handle-kind": "resize",
|
|
14230
14230
|
"data-pptx-compact": true,
|
|
14231
|
-
className:
|
|
14231
|
+
className: chunk5KFSMXI4_js.cn(
|
|
14232
14232
|
"absolute z-10 group border-0 bg-transparent p-0",
|
|
14233
14233
|
RESIZE_DEFAULT_CLASSES,
|
|
14234
14234
|
posClass,
|
|
@@ -14254,7 +14254,7 @@ function ResizeHandles({
|
|
|
14254
14254
|
"div",
|
|
14255
14255
|
{
|
|
14256
14256
|
"data-pptx-handle-hit": true,
|
|
14257
|
-
className:
|
|
14257
|
+
className: chunk5KFSMXI4_js.cn(
|
|
14258
14258
|
"absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
|
|
14259
14259
|
corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
|
|
14260
14260
|
),
|
|
@@ -14275,7 +14275,7 @@ function ResizeHandles({
|
|
|
14275
14275
|
"aria-label": t("pptx.selectionOverlay.rotate"),
|
|
14276
14276
|
"data-pptx-handle-kind": "rotate",
|
|
14277
14277
|
"data-pptx-compact": true,
|
|
14278
|
-
className:
|
|
14278
|
+
className: chunk5KFSMXI4_js.cn(
|
|
14279
14279
|
"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",
|
|
14280
14280
|
ROTATE_DEFAULT_CLASSES
|
|
14281
14281
|
),
|
|
@@ -14352,10 +14352,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14352
14352
|
const svgHeight = Math.max(el.height, 1);
|
|
14353
14353
|
const ss = shapeEl?.shapeStyle;
|
|
14354
14354
|
const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
|
|
14355
|
-
const strokeColor =
|
|
14356
|
-
const strokePaint =
|
|
14357
|
-
const dashType =
|
|
14358
|
-
const dashArray =
|
|
14355
|
+
const strokeColor = chunk5KFSMXI4_js.normalizeHexColor(ss?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
|
|
14356
|
+
const strokePaint = chunk5KFSMXI4_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
|
|
14357
|
+
const dashType = chunk5KFSMXI4_js.normalizeStrokeDashType(ss?.strokeDash);
|
|
14358
|
+
const dashArray = chunk5KFSMXI4_js.getSvgStrokeDasharray(
|
|
14359
14359
|
dashType,
|
|
14360
14360
|
Math.max(strokeWidth, 1),
|
|
14361
14361
|
ss?.customDashSegments
|
|
@@ -14366,14 +14366,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14366
14366
|
const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
|
|
14367
14367
|
const startMarkerId = `${markerSeed}-sel-start`;
|
|
14368
14368
|
const endMarkerId = `${markerSeed}-sel-end`;
|
|
14369
|
-
const compoundOffsets =
|
|
14370
|
-
const compoundWidths =
|
|
14369
|
+
const compoundOffsets = chunk5KFSMXI4_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
14370
|
+
const compoundWidths = chunk5KFSMXI4_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
14371
14371
|
const strokeCap = pptx.svgLineCap(ss?.lineCap);
|
|
14372
14372
|
const textEl = pptx$1.hasTextProperties(el) ? el : void 0;
|
|
14373
14373
|
const connectorText = textEl?.text?.trim() ?? "";
|
|
14374
14374
|
const connectorTextSegments = textEl?.textSegments;
|
|
14375
14375
|
const connectorTextStyle = textEl?.textStyle;
|
|
14376
|
-
const pathGeometry = shapeEl ?
|
|
14376
|
+
const pathGeometry = shapeEl ? chunk5KFSMXI4_js.getConnectorPathGeometry(shapeEl) : {
|
|
14377
14377
|
pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
|
|
14378
14378
|
startX: 0,
|
|
14379
14379
|
startY: 0,
|
|
@@ -14382,16 +14382,16 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14382
14382
|
};
|
|
14383
14383
|
const hitTargetWidth = Math.max(strokeWidth * 3, 14);
|
|
14384
14384
|
const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
|
|
14385
|
-
const lineShadow =
|
|
14386
|
-
const lineGlow =
|
|
14385
|
+
const lineShadow = chunk5KFSMXI4_js.buildLineShadowCss(el);
|
|
14386
|
+
const lineGlow = chunk5KFSMXI4_js.buildLineGlowFilter(el);
|
|
14387
14387
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14388
14388
|
"div",
|
|
14389
14389
|
{
|
|
14390
14390
|
"data-pptx-element": "true",
|
|
14391
14391
|
"data-element-id": el.id,
|
|
14392
|
-
role:
|
|
14393
|
-
"aria-label":
|
|
14394
|
-
"aria-roledescription":
|
|
14392
|
+
role: chunk5KFSMXI4_js.getAriaRole(el, { actionable: false }),
|
|
14393
|
+
"aria-label": chunk5KFSMXI4_js.getAriaLabel(el),
|
|
14394
|
+
"aria-roledescription": chunk5KFSMXI4_js.getAriaRoleDescription(el),
|
|
14395
14395
|
"aria-selected": isSelected ? true : void 0,
|
|
14396
14396
|
className: "absolute",
|
|
14397
14397
|
style: {
|
|
@@ -14424,14 +14424,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14424
14424
|
style: { overflow: "visible", pointerEvents: "none" },
|
|
14425
14425
|
children: [
|
|
14426
14426
|
/* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
|
|
14427
|
-
|
|
14427
|
+
chunk5KFSMXI4_js.renderConnectorMarker(
|
|
14428
14428
|
startMarkerId,
|
|
14429
14429
|
startArrow,
|
|
14430
14430
|
strokePaint,
|
|
14431
14431
|
ss?.connectorStartArrowWidth,
|
|
14432
14432
|
ss?.connectorStartArrowLength
|
|
14433
14433
|
),
|
|
14434
|
-
|
|
14434
|
+
chunk5KFSMXI4_js.renderConnectorMarker(
|
|
14435
14435
|
endMarkerId,
|
|
14436
14436
|
endArrow,
|
|
14437
14437
|
strokePaint,
|
|
@@ -14640,14 +14640,14 @@ function getElementInteractionProps({
|
|
|
14640
14640
|
};
|
|
14641
14641
|
}
|
|
14642
14642
|
function renderDagDuotoneFilterForElement(el) {
|
|
14643
|
-
if (!
|
|
14643
|
+
if (!chunk5KFSMXI4_js.hasDagDuotoneEffect(el)) {
|
|
14644
14644
|
return null;
|
|
14645
14645
|
}
|
|
14646
14646
|
const duotone = el.shapeStyle?.dagDuotone;
|
|
14647
14647
|
if (!duotone) {
|
|
14648
14648
|
return null;
|
|
14649
14649
|
}
|
|
14650
|
-
return
|
|
14650
|
+
return chunk5KFSMXI4_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
|
|
14651
14651
|
}
|
|
14652
14652
|
function getContainerStyle({
|
|
14653
14653
|
el,
|
|
@@ -14674,10 +14674,10 @@ function getContainerStyle({
|
|
|
14674
14674
|
top: isFullscreenMedia ? fs.top : el.y,
|
|
14675
14675
|
width: isFullscreenMedia ? fs.width : painted.width,
|
|
14676
14676
|
...heightStyle,
|
|
14677
|
-
transform: isFullscreenMedia ? fs.transform :
|
|
14677
|
+
transform: isFullscreenMedia ? fs.transform : chunk5KFSMXI4_js.getElementTransform(el),
|
|
14678
14678
|
transformOrigin: "center",
|
|
14679
14679
|
overflow: overflowValue,
|
|
14680
|
-
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ?
|
|
14680
|
+
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk5KFSMXI4_js.getCropShapeClipPath(el) : void 0,
|
|
14681
14681
|
zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
|
|
14682
14682
|
visibility: animationState?.visible === false ? "hidden" : "visible",
|
|
14683
14683
|
animation: animationState?.cssAnimation,
|
|
@@ -14714,9 +14714,9 @@ function getContainerStyle({
|
|
|
14714
14714
|
function shapeParams(element) {
|
|
14715
14715
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
14716
14716
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
14717
|
-
const strokeColor =
|
|
14718
|
-
const fillColor =
|
|
14719
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
14717
|
+
const strokeColor = chunk5KFSMXI4_js.normalizeHexColor(style?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
|
|
14718
|
+
const fillColor = chunk5KFSMXI4_js.normalizeHexColor(style?.fillColor, chunk5KFSMXI4_js.DEFAULT_FILL_COLOR);
|
|
14719
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5KFSMXI4_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
14720
14720
|
return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
|
|
14721
14721
|
}
|
|
14722
14722
|
var Extrusion3DOverlayMemo = /* @__PURE__ */ React17__default.default.memo(
|
|
@@ -14824,7 +14824,7 @@ function ShapeEffectOverlay({
|
|
|
14824
14824
|
const fillOverlayStyle = overlay ? {
|
|
14825
14825
|
position: "absolute",
|
|
14826
14826
|
inset: 0,
|
|
14827
|
-
...pptx$1.isImageLikeElement(element) ?
|
|
14827
|
+
...pptx$1.isImageLikeElement(element) ? chunk5KFSMXI4_js.getImageSurfaceMaskStyle(element) : {},
|
|
14828
14828
|
background: overlay.color,
|
|
14829
14829
|
mixBlendMode: overlay.blendMode,
|
|
14830
14830
|
pointerEvents: "none"
|
|
@@ -15031,10 +15031,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15031
15031
|
const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
|
|
15032
15032
|
const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
|
|
15033
15033
|
const visualAnimationState = backgroundAnimationState ?? animationState;
|
|
15034
|
-
const isTxt =
|
|
15034
|
+
const isTxt = chunk5KFSMXI4_js.isEditableTextElement(el) && allow.textEditable;
|
|
15035
15035
|
const txtSE = pptx$1.hasTextProperties(el) ? el.textStyle : void 0;
|
|
15036
15036
|
const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
|
|
15037
|
-
const ss =
|
|
15037
|
+
const ss = chunk5KFSMXI4_js.getShapeVisualStyle(
|
|
15038
15038
|
el,
|
|
15039
15039
|
hf,
|
|
15040
15040
|
fc,
|
|
@@ -15043,9 +15043,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15043
15043
|
visualAnimationState?.animatesFill,
|
|
15044
15044
|
visualAnimationState?.animatesStroke
|
|
15045
15045
|
);
|
|
15046
|
-
const ts =
|
|
15046
|
+
const ts = chunk5KFSMXI4_js.getTextStyleForElement(el, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR);
|
|
15047
15047
|
const isImg = el.type === "picture" || el.type === "image";
|
|
15048
|
-
const vs =
|
|
15048
|
+
const vs = chunk5KFSMXI4_js.renderVectorShape(
|
|
15049
15049
|
el,
|
|
15050
15050
|
isImg ? false : hf,
|
|
15051
15051
|
fc,
|
|
@@ -15055,10 +15055,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15055
15055
|
visualAnimationState?.animatesStroke
|
|
15056
15056
|
);
|
|
15057
15057
|
const isModel3D = el.type === "model3d";
|
|
15058
|
-
const isConn =
|
|
15058
|
+
const isConn = chunk5KFSMXI4_js.isConnectorOrLineElement(el);
|
|
15059
15059
|
const shapeStyle3d = pptx$1.hasShapeProperties(el) ? el.shapeStyle : void 0;
|
|
15060
15060
|
const extrusionData = React17.useMemo(
|
|
15061
|
-
() =>
|
|
15061
|
+
() => chunk5KFSMXI4_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
|
|
15062
15062
|
[shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
|
|
15063
15063
|
);
|
|
15064
15064
|
const actionAffordance = useActionAffordance(el, canInteract);
|
|
@@ -15148,7 +15148,7 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15148
15148
|
"aria-hidden": aria.hidden ? true : void 0,
|
|
15149
15149
|
"aria-selected": isSelected ? true : void 0,
|
|
15150
15150
|
tabIndex: isFocusable ? 0 : -1,
|
|
15151
|
-
className:
|
|
15151
|
+
className: chunk5KFSMXI4_js.cn(
|
|
15152
15152
|
"absolute",
|
|
15153
15153
|
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
|
|
15154
15154
|
cur,
|
|
@@ -15221,9 +15221,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15221
15221
|
txtSE,
|
|
15222
15222
|
txtS: ts,
|
|
15223
15223
|
vecShape: backgroundAnimationState && !isImg ? null : vs,
|
|
15224
|
-
imgStyle:
|
|
15225
|
-
imgFilter:
|
|
15226
|
-
imgOpacity:
|
|
15224
|
+
imgStyle: chunk5KFSMXI4_js.getImageRenderStyle(el),
|
|
15225
|
+
imgFilter: chunk5KFSMXI4_js.getImageEffectsFilter(el),
|
|
15226
|
+
imgOpacity: chunk5KFSMXI4_js.getImageEffectsOpacity(el),
|
|
15227
15227
|
imgAlt: imageAltText,
|
|
15228
15228
|
isTxtEl: isTxt,
|
|
15229
15229
|
media: mediaDataUrls,
|
|
@@ -15360,10 +15360,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
|
|
|
15360
15360
|
}
|
|
15361
15361
|
function renderInk(el, options) {
|
|
15362
15362
|
const replay = options?.replay ?? false;
|
|
15363
|
-
const strokes =
|
|
15363
|
+
const strokes = chunk5KFSMXI4_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
|
|
15364
15364
|
strokes.some((s) => s.circles || s.nibMarks);
|
|
15365
15365
|
const pressureSensitive = options?.pressureSensitive;
|
|
15366
|
-
const replayStyles = replay ?
|
|
15366
|
+
const replayStyles = replay ? chunk5KFSMXI4_js.getInkReplayStyles(el, options?.replayConfig) : null;
|
|
15367
15367
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15368
15368
|
"svg",
|
|
15369
15369
|
{
|
|
@@ -15371,7 +15371,7 @@ function renderInk(el, options) {
|
|
|
15371
15371
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15372
15372
|
preserveAspectRatio: "none",
|
|
15373
15373
|
children: [
|
|
15374
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15374
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5KFSMXI4_js.INK_REPLAY_KEYFRAMES }),
|
|
15375
15375
|
strokes.map(
|
|
15376
15376
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
|
|
15377
15377
|
)
|
|
@@ -15382,7 +15382,7 @@ function renderInk(el, options) {
|
|
|
15382
15382
|
function renderGroup(children, parentGroupFill) {
|
|
15383
15383
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
|
|
15384
15384
|
const { hf, fc, sw, sc } = shapeParams(c);
|
|
15385
|
-
const baseSs =
|
|
15385
|
+
const baseSs = chunk5KFSMXI4_js.getShapeVisualStyle(c, hf, fc, sw, sc);
|
|
15386
15386
|
const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
|
|
15387
15387
|
const ss = inheritedFill ? {
|
|
15388
15388
|
...baseSs,
|
|
@@ -15393,9 +15393,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15393
15393
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
15394
15394
|
} : baseSs;
|
|
15395
15395
|
const isI = c.type === "picture" || c.type === "image";
|
|
15396
|
-
const vs =
|
|
15397
|
-
const ts =
|
|
15398
|
-
const isTxt =
|
|
15396
|
+
const vs = chunk5KFSMXI4_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
|
|
15397
|
+
const ts = chunk5KFSMXI4_js.getTextStyleForElement(c, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR);
|
|
15398
|
+
const isTxt = chunk5KFSMXI4_js.isEditableTextElement(c);
|
|
15399
15399
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15400
15400
|
"div",
|
|
15401
15401
|
{
|
|
@@ -15404,9 +15404,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15404
15404
|
style: {
|
|
15405
15405
|
left: c.x,
|
|
15406
15406
|
top: c.y,
|
|
15407
|
-
width: Math.max(c.width,
|
|
15408
|
-
height: Math.max(c.height,
|
|
15409
|
-
transform:
|
|
15407
|
+
width: Math.max(c.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE),
|
|
15408
|
+
height: Math.max(c.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE),
|
|
15409
|
+
transform: chunk5KFSMXI4_js.getElementTransform(c),
|
|
15410
15410
|
transformOrigin: "center",
|
|
15411
15411
|
...ss,
|
|
15412
15412
|
...isI ? {
|
|
@@ -15431,8 +15431,8 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15431
15431
|
// A nested group: recurse, chaining the inherited fill so a
|
|
15432
15432
|
// `grpFill` shape under a fill-less sub-group still paints.
|
|
15433
15433
|
renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
|
|
15434
|
-
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
15435
|
-
|
|
15434
|
+
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5KFSMXI4_js.getImageSurfaceStyle(c), children: [
|
|
15435
|
+
chunk5KFSMXI4_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15436
15436
|
TiledImageLayer,
|
|
15437
15437
|
{
|
|
15438
15438
|
element: c,
|
|
@@ -15445,7 +15445,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15445
15445
|
src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
|
|
15446
15446
|
alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
|
|
15447
15447
|
className: "pointer-events-none select-none",
|
|
15448
|
-
style:
|
|
15448
|
+
style: chunk5KFSMXI4_js.getImageRenderStyle(c),
|
|
15449
15449
|
draggable: false
|
|
15450
15450
|
}
|
|
15451
15451
|
),
|
|
@@ -15457,7 +15457,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15457
15457
|
{
|
|
15458
15458
|
className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
|
|
15459
15459
|
style: ts,
|
|
15460
|
-
children:
|
|
15460
|
+
children: chunk5KFSMXI4_js.renderTextSegments(c, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR)
|
|
15461
15461
|
}
|
|
15462
15462
|
) : null
|
|
15463
15463
|
] })
|
|
@@ -15471,8 +15471,8 @@ function renderContentPart(el, options) {
|
|
|
15471
15471
|
if (el.inkStrokes && el.inkStrokes.length > 0) {
|
|
15472
15472
|
const replay = options?.replay ?? false;
|
|
15473
15473
|
const pressureSensitive = options?.pressureSensitive ?? true;
|
|
15474
|
-
const strokes =
|
|
15475
|
-
const replayStyles = replay ?
|
|
15474
|
+
const strokes = chunk5KFSMXI4_js.buildContentPartStrokes(el);
|
|
15475
|
+
const replayStyles = replay ? chunk5KFSMXI4_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
|
|
15476
15476
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15477
15477
|
"svg",
|
|
15478
15478
|
{
|
|
@@ -15480,7 +15480,7 @@ function renderContentPart(el, options) {
|
|
|
15480
15480
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15481
15481
|
preserveAspectRatio: "none",
|
|
15482
15482
|
children: [
|
|
15483
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15483
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5KFSMXI4_js.INK_REPLAY_KEYFRAMES }),
|
|
15484
15484
|
strokes.map(
|
|
15485
15485
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
|
|
15486
15486
|
)
|
|
@@ -15707,9 +15707,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
|
|
|
15707
15707
|
collaboration: connected,
|
|
15708
15708
|
model: pptx.createInlineListModelObserver(element),
|
|
15709
15709
|
activationSelection,
|
|
15710
|
-
children: seed && !connected ?
|
|
15710
|
+
children: seed && !connected ? chunk5KFSMXI4_js.renderTextSegments(
|
|
15711
15711
|
element,
|
|
15712
|
-
|
|
15712
|
+
chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
|
|
15713
15713
|
void 0,
|
|
15714
15714
|
void 0,
|
|
15715
15715
|
void 0,
|
|
@@ -15945,8 +15945,8 @@ function InlineTextEditor({
|
|
|
15945
15945
|
pending.endOffset
|
|
15946
15946
|
);
|
|
15947
15947
|
});
|
|
15948
|
-
const warpStyle =
|
|
15949
|
-
const compensationTransform =
|
|
15948
|
+
const warpStyle = chunk5KFSMXI4_js.getTextWarpStyle(textStyleRaw);
|
|
15949
|
+
const compensationTransform = chunk5KFSMXI4_js.getTextCompensationTransform(element);
|
|
15950
15950
|
const warpTransform = warpStyle?.transform;
|
|
15951
15951
|
const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
|
|
15952
15952
|
const wrapperStyle = {
|
|
@@ -16009,15 +16009,10 @@ function InlineTextEditor({
|
|
|
16009
16009
|
}
|
|
16010
16010
|
return;
|
|
16011
16011
|
}
|
|
16012
|
-
if (e.key === "Escape") {
|
|
16013
|
-
e.preventDefault();
|
|
16014
|
-
list.retire();
|
|
16015
|
-
onCancel();
|
|
16016
|
-
return;
|
|
16017
|
-
}
|
|
16018
16012
|
const chord = pptx.mapInlineEditorChord(e.nativeEvent);
|
|
16019
16013
|
if (chord) {
|
|
16020
16014
|
e.preventDefault();
|
|
16015
|
+
e.stopPropagation();
|
|
16021
16016
|
if (chord === "suppress" || !list.canCommit()) {
|
|
16022
16017
|
return;
|
|
16023
16018
|
}
|
|
@@ -16034,7 +16029,7 @@ function InlineTextEditor({
|
|
|
16034
16029
|
const text = e.clipboardData.getData("text/plain");
|
|
16035
16030
|
document.execCommand("insertText", false, text);
|
|
16036
16031
|
},
|
|
16037
|
-
children: list.seed ? list.children : seed.hasRichSegments ?
|
|
16032
|
+
children: list.seed ? list.children : seed.hasRichSegments ? chunk5KFSMXI4_js.renderTextSegments(element, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR) : seed.initialText
|
|
16038
16033
|
},
|
|
16039
16034
|
list.seed?.paragraphs[0].token ?? "plain"
|
|
16040
16035
|
);
|
|
@@ -16199,7 +16194,7 @@ function OleActionFooter({
|
|
|
16199
16194
|
info,
|
|
16200
16195
|
showActions
|
|
16201
16196
|
}) {
|
|
16202
|
-
const { t } =
|
|
16197
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
16203
16198
|
if (!showActions || !info.canDownload || !el.oleEmbeddedData) {
|
|
16204
16199
|
return null;
|
|
16205
16200
|
}
|
|
@@ -16308,7 +16303,7 @@ function SmartArtInlineNodeEditor({
|
|
|
16308
16303
|
onCommit,
|
|
16309
16304
|
onCancel
|
|
16310
16305
|
}) {
|
|
16311
|
-
const { t } =
|
|
16306
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
16312
16307
|
const ref = React17__default.default.useRef(null);
|
|
16313
16308
|
const [value, setValue] = React17__default.default.useState(initialText);
|
|
16314
16309
|
const settled = React17__default.default.useRef(false);
|
|
@@ -16935,7 +16930,7 @@ function SmartArtRendererImpl({
|
|
|
16935
16930
|
onUpdateElement,
|
|
16936
16931
|
animationState
|
|
16937
16932
|
}) {
|
|
16938
|
-
const { t } =
|
|
16933
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
16939
16934
|
if (element.type !== "smartArt" || !element.smartArtData) {
|
|
16940
16935
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16941
16936
|
"div",
|
|
@@ -17181,7 +17176,7 @@ function groupIntoParagraphs(element, fieldContext) {
|
|
|
17181
17176
|
element,
|
|
17182
17177
|
fieldContext ? (seg) => {
|
|
17183
17178
|
if (seg.fieldType) {
|
|
17184
|
-
const substituted =
|
|
17179
|
+
const substituted = chunk5KFSMXI4_js.substituteFieldText(
|
|
17185
17180
|
seg.text,
|
|
17186
17181
|
seg.fieldType,
|
|
17187
17182
|
fieldContext,
|
|
@@ -17216,13 +17211,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
|
|
|
17216
17211
|
if (s.strikethrough) {
|
|
17217
17212
|
decos.push("line-through");
|
|
17218
17213
|
}
|
|
17219
|
-
const fill = s.hyperlink ?
|
|
17214
|
+
const fill = s.hyperlink ? chunk5KFSMXI4_js.normalizeHexColor(s.color || element.textStyle?.color, chunk5KFSMXI4_js.HYPERLINK_COLOR) : chunk5KFSMXI4_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
|
|
17220
17215
|
return {
|
|
17221
17216
|
fill,
|
|
17222
|
-
fontSize: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17217
|
+
fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17223
17218
|
fontWeight: pptx.resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
|
|
17224
17219
|
fontStyle: pptx.resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
|
|
17225
|
-
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") :
|
|
17220
|
+
fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY,
|
|
17226
17221
|
textDecoration: decos.length > 0 ? decos.join(" ") : void 0
|
|
17227
17222
|
};
|
|
17228
17223
|
}
|
|
@@ -17230,8 +17225,8 @@ function resolveSegmentFont(segment, element) {
|
|
|
17230
17225
|
const s = segment.style || {};
|
|
17231
17226
|
const family = s.fontFamily || element.textStyle?.fontFamily;
|
|
17232
17227
|
return {
|
|
17233
|
-
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) :
|
|
17234
|
-
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17228
|
+
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY,
|
|
17229
|
+
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17235
17230
|
bold: s.bold ?? element.textStyle?.bold,
|
|
17236
17231
|
italic: s.italic ?? element.textStyle?.italic
|
|
17237
17232
|
};
|
|
@@ -17320,9 +17315,9 @@ function WarpedText({
|
|
|
17320
17315
|
const warpAdj2 = textEl.textStyle?.textWarpAdj2;
|
|
17321
17316
|
const align = textEl.textStyle?.align ?? "center";
|
|
17322
17317
|
const { startOffset, textAnchor } = getAlignmentProps(align);
|
|
17323
|
-
const baseFontSize = textEl.textStyle?.fontSize ??
|
|
17324
|
-
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) :
|
|
17325
|
-
const baseFill =
|
|
17318
|
+
const baseFontSize = textEl.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE;
|
|
17319
|
+
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY;
|
|
17320
|
+
const baseFill = chunk5KFSMXI4_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
|
|
17326
17321
|
if (pptx.hasGlyphEnvelope(preset)) {
|
|
17327
17322
|
const perLine = pptx.buildGlyphEnvelopeBlock(
|
|
17328
17323
|
preset,
|
|
@@ -17424,7 +17419,7 @@ function WarpedText({
|
|
|
17424
17419
|
var GLYPH_BY_SHAPE = /* @__PURE__ */ buildGlyphByShape();
|
|
17425
17420
|
function buildGlyphByShape() {
|
|
17426
17421
|
const glyphs = Object.fromEntries(
|
|
17427
|
-
|
|
17422
|
+
chunk5KFSMXI4_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
|
|
17428
17423
|
);
|
|
17429
17424
|
glyphs["actionButtonForwardOrNext"] = glyphs["actionButtonForwardNext"];
|
|
17430
17425
|
glyphs["actionButtonBackOrPrevious"] = glyphs["actionButtonBackPrevious"];
|
|
@@ -17498,9 +17493,9 @@ function renderTextElementBody(options) {
|
|
|
17498
17493
|
const useSvgWarp = pptx.shouldUseSvgWarp(
|
|
17499
17494
|
pptx$1.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
|
|
17500
17495
|
);
|
|
17501
|
-
const scene3dStyle = pptx$1.hasTextProperties(el) ?
|
|
17496
|
+
const scene3dStyle = pptx$1.hasTextProperties(el) ? chunk5KFSMXI4_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
|
|
17502
17497
|
const rotationTransform = pptx.getTextBodyRotationTransform(el);
|
|
17503
|
-
const composedTransform = [rotationTransform,
|
|
17498
|
+
const composedTransform = [rotationTransform, chunk5KFSMXI4_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
17504
17499
|
const transformStyle = {
|
|
17505
17500
|
transform: composedTransform,
|
|
17506
17501
|
// A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
|
|
@@ -17530,18 +17525,18 @@ function renderTextElementBody(options) {
|
|
|
17530
17525
|
shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
17531
17526
|
"div",
|
|
17532
17527
|
{
|
|
17533
|
-
className:
|
|
17528
|
+
className: chunk5KFSMXI4_js.cn(
|
|
17534
17529
|
"relative z-10 w-full h-full",
|
|
17535
17530
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17536
17531
|
),
|
|
17537
|
-
style: { ...
|
|
17532
|
+
style: { ...chunk5KFSMXI4_js.getTextLayoutStyle(el), ...transformStyle },
|
|
17538
17533
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17539
17534
|
WarpedText,
|
|
17540
17535
|
{
|
|
17541
17536
|
element: el,
|
|
17542
17537
|
width: el.width,
|
|
17543
17538
|
height: el.height,
|
|
17544
|
-
fallbackColor:
|
|
17539
|
+
fallbackColor: chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
|
|
17545
17540
|
findHighlights: findHl,
|
|
17546
17541
|
fieldContext
|
|
17547
17542
|
}
|
|
@@ -17550,19 +17545,19 @@ function renderTextElementBody(options) {
|
|
|
17550
17545
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
17551
17546
|
"div",
|
|
17552
17547
|
{
|
|
17553
|
-
className:
|
|
17548
|
+
className: chunk5KFSMXI4_js.cn(
|
|
17554
17549
|
"relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
|
|
17555
17550
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17556
17551
|
),
|
|
17557
17552
|
style: {
|
|
17558
|
-
...
|
|
17553
|
+
...chunk5KFSMXI4_js.getTextLayoutStyle(el),
|
|
17559
17554
|
...txtS,
|
|
17560
|
-
...
|
|
17555
|
+
...chunk5KFSMXI4_js.getTextWarpStyle(txtSE),
|
|
17561
17556
|
...transformStyle
|
|
17562
17557
|
},
|
|
17563
|
-
children:
|
|
17558
|
+
children: chunk5KFSMXI4_js.renderTextSegments(
|
|
17564
17559
|
el,
|
|
17565
|
-
|
|
17560
|
+
chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
|
|
17566
17561
|
void 0,
|
|
17567
17562
|
findHl,
|
|
17568
17563
|
onHyperlinkClick,
|
|
@@ -17583,7 +17578,7 @@ function ZoomElementRenderer({
|
|
|
17583
17578
|
onZoomClick,
|
|
17584
17579
|
sourceSlideIndex
|
|
17585
17580
|
}) {
|
|
17586
|
-
const { t } =
|
|
17581
|
+
const { t } = chunk5KFSMXI4_js.useTranslation();
|
|
17587
17582
|
const summaryView = pptx.buildSummaryZoomView(
|
|
17588
17583
|
element,
|
|
17589
17584
|
(index) => {
|
|
@@ -17881,7 +17876,7 @@ function renderBody(options) {
|
|
|
17881
17876
|
);
|
|
17882
17877
|
}
|
|
17883
17878
|
if (isImg) {
|
|
17884
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
17879
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5KFSMXI4_js.getImageSurfaceStyle(el), children: [
|
|
17885
17880
|
renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
|
|
17886
17881
|
vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
|
|
17887
17882
|
] });
|
|
@@ -17898,7 +17893,7 @@ function renderBody(options) {
|
|
|
17898
17893
|
textDirection: txtSE?.textDirection,
|
|
17899
17894
|
textStyle: txtS,
|
|
17900
17895
|
textStyleRaw: txtSE,
|
|
17901
|
-
layoutStyle:
|
|
17896
|
+
layoutStyle: chunk5KFSMXI4_js.getTextLayoutStyle(el),
|
|
17902
17897
|
element: el,
|
|
17903
17898
|
onCommit,
|
|
17904
17899
|
onCancel,
|
|
@@ -17909,7 +17904,7 @@ function renderBody(options) {
|
|
|
17909
17904
|
] });
|
|
17910
17905
|
}
|
|
17911
17906
|
if (el.type === "table") {
|
|
17912
|
-
return
|
|
17907
|
+
return chunk5KFSMXI4_js.renderTableElement(el, txtS, {
|
|
17913
17908
|
editable: isSel,
|
|
17914
17909
|
selectedCell: isSel ? tableSt : null,
|
|
17915
17910
|
onSelectCell: onCellSel,
|
|
@@ -17942,7 +17937,7 @@ function renderBody(options) {
|
|
|
17942
17937
|
);
|
|
17943
17938
|
}
|
|
17944
17939
|
if (el.type === "media") {
|
|
17945
|
-
return
|
|
17940
|
+
return chunk5KFSMXI4_js.renderMediaElement(el, media, {
|
|
17946
17941
|
// Present mode autoplays every media element on the active slide,
|
|
17947
17942
|
// not only ones persisted with their own `autoPlay` flag (matching
|
|
17948
17943
|
// the other four bindings' unconditional `presenting`-gated
|
|
@@ -17994,27 +17989,27 @@ function renderBody(options) {
|
|
|
17994
17989
|
}
|
|
17995
17990
|
return renderGroup(el.children, pptx.getGroupChildParentFill(el));
|
|
17996
17991
|
}
|
|
17997
|
-
if (
|
|
17998
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
17992
|
+
if (chunk5KFSMXI4_js.shouldRenderFallbackLabel(el, isTxtEl)) {
|
|
17993
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk5KFSMXI4_js.getElementLabel(el) });
|
|
17999
17994
|
}
|
|
18000
17995
|
return renderTextElementBody(options);
|
|
18001
17996
|
}
|
|
18002
17997
|
function defaultTextColorForFill(fillColor) {
|
|
18003
17998
|
const hex = String(fillColor ?? "").replace(/^#/u, "");
|
|
18004
17999
|
if (!/^[0-9a-f]{6}$/iu.test(hex)) {
|
|
18005
|
-
return
|
|
18000
|
+
return chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR;
|
|
18006
18001
|
}
|
|
18007
18002
|
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);
|
|
18008
18003
|
const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
|
|
18009
|
-
return luminance > 0.179 ?
|
|
18004
|
+
return luminance > 0.179 ? chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR : "#ffffff";
|
|
18010
18005
|
}
|
|
18011
18006
|
function getStaticElementVisualState(element, parentGroupFill) {
|
|
18012
18007
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
18013
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
18014
|
-
const fill =
|
|
18008
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5KFSMXI4_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
18009
|
+
const fill = chunk5KFSMXI4_js.normalizeHexColor(style?.fillColor, chunk5KFSMXI4_js.DEFAULT_FILL_COLOR);
|
|
18015
18010
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
18016
|
-
const stroke =
|
|
18017
|
-
const baseVisualStyle =
|
|
18011
|
+
const stroke = chunk5KFSMXI4_js.normalizeHexColor(style?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
|
|
18012
|
+
const baseVisualStyle = chunk5KFSMXI4_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
|
|
18018
18013
|
const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
|
|
18019
18014
|
const visualStyle = inheritedFill ? {
|
|
18020
18015
|
...baseVisualStyle,
|
|
@@ -18024,9 +18019,9 @@ function getStaticElementVisualState(element, parentGroupFill) {
|
|
|
18024
18019
|
backgroundSize: inheritedFill.backgroundSize,
|
|
18025
18020
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
18026
18021
|
} : baseVisualStyle;
|
|
18027
|
-
const textStyle =
|
|
18022
|
+
const textStyle = chunk5KFSMXI4_js.getTextStyleForElement(
|
|
18028
18023
|
element,
|
|
18029
|
-
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) :
|
|
18024
|
+
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR
|
|
18030
18025
|
);
|
|
18031
18026
|
const isImage = element.type === "picture" || element.type === "image";
|
|
18032
18027
|
const letsTextOverflow = pptx$1.hasTextProperties(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
@@ -18051,7 +18046,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
|
|
|
18051
18046
|
return { action, isActionable, contractRole };
|
|
18052
18047
|
}
|
|
18053
18048
|
function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
|
|
18054
|
-
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" ||
|
|
18049
|
+
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunk5KFSMXI4_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
|
|
18055
18050
|
const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
|
|
18056
18051
|
return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
|
|
18057
18052
|
}
|
|
@@ -18134,7 +18129,7 @@ function StaticElementRendererImpl({
|
|
|
18134
18129
|
top: positioned ? element.y : void 0,
|
|
18135
18130
|
width: positioned ? Math.max(element.width, 1) : "100%",
|
|
18136
18131
|
height: positioned ? Math.max(element.height, 1) : "100%",
|
|
18137
|
-
transform: positioned ?
|
|
18132
|
+
transform: positioned ? chunk5KFSMXI4_js.getElementTransform(element) : void 0,
|
|
18138
18133
|
transformOrigin: "center",
|
|
18139
18134
|
zIndex,
|
|
18140
18135
|
...visualStyle,
|
|
@@ -18177,18 +18172,18 @@ function StaticElementRendererImpl({
|
|
|
18177
18172
|
spellCheck: false,
|
|
18178
18173
|
txtSE: pptx$1.hasTextProperties(element) ? element.textStyle : void 0,
|
|
18179
18174
|
txtS: textStyle,
|
|
18180
|
-
vecShape:
|
|
18175
|
+
vecShape: chunk5KFSMXI4_js.renderVectorShape(
|
|
18181
18176
|
element,
|
|
18182
18177
|
isImage ? false : hasFill,
|
|
18183
18178
|
fill,
|
|
18184
18179
|
strokeWidth,
|
|
18185
18180
|
stroke
|
|
18186
18181
|
),
|
|
18187
|
-
imgStyle: imageAnimation ? { ...
|
|
18188
|
-
imgFilter:
|
|
18189
|
-
imgOpacity:
|
|
18182
|
+
imgStyle: imageAnimation ? { ...chunk5KFSMXI4_js.getImageRenderStyle(element), animation: imageAnimation } : chunk5KFSMXI4_js.getImageRenderStyle(element),
|
|
18183
|
+
imgFilter: chunk5KFSMXI4_js.getImageEffectsFilter(element),
|
|
18184
|
+
imgOpacity: chunk5KFSMXI4_js.getImageEffectsOpacity(element),
|
|
18190
18185
|
imgAlt: "",
|
|
18191
|
-
isTxtEl:
|
|
18186
|
+
isTxtEl: chunk5KFSMXI4_js.isEditableTextElement(element),
|
|
18192
18187
|
media: mediaDataUrls,
|
|
18193
18188
|
tableSt: null,
|
|
18194
18189
|
isSel: false,
|
|
@@ -18236,7 +18231,7 @@ function SlideLayer({
|
|
|
18236
18231
|
style: {
|
|
18237
18232
|
width: safeWidth,
|
|
18238
18233
|
height: safeHeight,
|
|
18239
|
-
backgroundColor: slide.backgroundColor ?
|
|
18234
|
+
backgroundColor: slide.backgroundColor ? chunk5KFSMXI4_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
|
|
18240
18235
|
backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
|
|
18241
18236
|
backgroundSize: slide.backgroundImage ? "cover" : void 0,
|
|
18242
18237
|
backgroundPosition: slide.backgroundImage ? "center" : void 0
|