pptx-react-viewer 4.74.0 → 4.75.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 +16 -0
- package/README.md +1 -1
- package/dist/{AiChatPanel-PLQ3NBTK.js → AiChatPanel-4V7QB5Z3.js} +19 -19
- package/dist/AiChatPanel-4V7QB5Z3.js.br +0 -0
- package/dist/AiChatPanel-4V7QB5Z3.js.gz +0 -0
- package/dist/{AiChatPanel-E7CJSTW7.mjs → AiChatPanel-6ML3VLIX.mjs} +1 -1
- package/dist/AiChatPanel-6ML3VLIX.mjs.br +0 -0
- package/dist/AiChatPanel-6ML3VLIX.mjs.gz +0 -0
- package/dist/ai.js +2 -2
- package/dist/ai.js.br +0 -0
- package/dist/ai.js.gz +0 -0
- package/dist/ai.mjs +1 -1
- package/dist/ai.mjs.br +0 -0
- package/dist/ai.mjs.gz +0 -0
- package/dist/{chunk-XG4WSJ4O.js → chunk-3AZ6ESJU.js} +203 -203
- package/dist/chunk-3AZ6ESJU.js.br +0 -0
- package/dist/chunk-3AZ6ESJU.js.gz +0 -0
- package/dist/{chunk-P2COO2QO.js → chunk-6GFSF2ML.js} +65 -13
- package/dist/chunk-6GFSF2ML.js.br +0 -0
- package/dist/chunk-6GFSF2ML.js.gz +0 -0
- package/dist/{chunk-CRC3V4UG.mjs → chunk-AZLOOFU2.mjs} +1 -1
- package/dist/chunk-AZLOOFU2.mjs.br +0 -0
- package/dist/chunk-AZLOOFU2.mjs.gz +0 -0
- package/dist/{chunk-SQ7OASDY.mjs → chunk-DE4Y5F4T.mjs} +40 -44
- package/dist/chunk-DE4Y5F4T.mjs.br +0 -0
- package/dist/chunk-DE4Y5F4T.mjs.gz +0 -0
- package/dist/chunk-FFTZYNL4.mjs +2 -0
- package/dist/chunk-FFTZYNL4.mjs.br +6 -0
- package/dist/chunk-FFTZYNL4.mjs.gz +0 -0
- package/dist/chunk-LWGPHJHC.js +151 -0
- package/dist/chunk-LWGPHJHC.js.br +0 -0
- package/dist/chunk-LWGPHJHC.js.gz +0 -0
- package/dist/{chunk-LVEFHZ76.js → chunk-MU3BIZ2U.js} +1 -1
- package/dist/chunk-MU3BIZ2U.js.br +0 -0
- package/dist/chunk-MU3BIZ2U.js.gz +0 -0
- package/dist/{chunk-FBSPQYRE.mjs → chunk-N3YK2BCA.mjs} +61 -14
- package/dist/chunk-N3YK2BCA.mjs.br +0 -0
- package/dist/chunk-N3YK2BCA.mjs.gz +0 -0
- package/dist/chunk-P2IEKYVG.js +29 -0
- package/dist/chunk-P2IEKYVG.js.br +0 -0
- package/dist/chunk-P2IEKYVG.js.gz +0 -0
- package/dist/{chunk-D4WC35PL.js → chunk-RJRDE3C2.js} +594 -599
- package/dist/chunk-RJRDE3C2.js.br +0 -0
- package/dist/chunk-RJRDE3C2.js.gz +0 -0
- package/dist/{chunk-JZE6BORE.mjs → chunk-RMEWSJZU.mjs} +1 -1
- package/dist/chunk-RMEWSJZU.mjs.br +0 -0
- package/dist/chunk-RMEWSJZU.mjs.gz +0 -0
- package/dist/chunk-Y53EC3JU.mjs +27 -0
- package/dist/chunk-Y53EC3JU.mjs.br +0 -0
- package/dist/chunk-Y53EC3JU.mjs.gz +0 -0
- package/dist/index.d.ts +24 -18
- package/dist/index.js +126 -126
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.js +82 -81
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -2
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/no-i18next.d.ts +1299 -0
- package/dist/no-i18next.js +251 -0
- package/dist/no-i18next.js.br +0 -0
- package/dist/no-i18next.js.gz +0 -0
- package/dist/no-i18next.mjs +6 -0
- package/dist/no-i18next.mjs.br +0 -0
- package/dist/no-i18next.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +24 -18
- package/dist/viewer/index.js +25 -24
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -4
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +9 -4
- package/dist/AiChatPanel-E7CJSTW7.mjs.br +0 -0
- package/dist/AiChatPanel-E7CJSTW7.mjs.gz +0 -0
- package/dist/AiChatPanel-PLQ3NBTK.js.br +0 -0
- package/dist/AiChatPanel-PLQ3NBTK.js.gz +0 -0
- package/dist/chunk-CRC3V4UG.mjs.br +0 -0
- package/dist/chunk-CRC3V4UG.mjs.gz +0 -0
- package/dist/chunk-D4WC35PL.js.br +0 -0
- package/dist/chunk-D4WC35PL.js.gz +0 -0
- package/dist/chunk-FBSPQYRE.mjs.br +0 -0
- package/dist/chunk-FBSPQYRE.mjs.gz +0 -0
- package/dist/chunk-JZE6BORE.mjs.br +0 -0
- package/dist/chunk-JZE6BORE.mjs.gz +0 -0
- package/dist/chunk-LVEFHZ76.js.br +0 -0
- package/dist/chunk-LVEFHZ76.js.gz +0 -0
- package/dist/chunk-P2COO2QO.js.br +0 -0
- package/dist/chunk-P2COO2QO.js.gz +0 -0
- package/dist/chunk-SQ7OASDY.mjs.br +0 -0
- package/dist/chunk-SQ7OASDY.mjs.gz +0 -0
- package/dist/chunk-XG4WSJ4O.js.br +0 -0
- package/dist/chunk-XG4WSJ4O.js.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk6GFSF2ML_js = require('./chunk-6GFSF2ML.js');
|
|
4
4
|
var pptx = require('ooxml-ui/pptx');
|
|
5
5
|
var React17 = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -604,9 +604,9 @@ function differsOnlyInMasterSet(previous, next) {
|
|
|
604
604
|
}
|
|
605
605
|
function recordExplicitSlideUpdate(history, previous, before, label) {
|
|
606
606
|
if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
|
|
607
|
-
history.record(
|
|
607
|
+
history.record(chunk6GFSF2ML_js.cloneHistorySnapshot(previous), previous.actionLabel);
|
|
608
608
|
}
|
|
609
|
-
history.record({ ...
|
|
609
|
+
history.record({ ...chunk6GFSF2ML_js.cloneHistorySnapshot(before), actionLabel: label }, label);
|
|
610
610
|
}
|
|
611
611
|
var POLL_INTERVAL_MS = 16;
|
|
612
612
|
function usePointerReleaseWakeup(hasActivePointerInteraction) {
|
|
@@ -688,8 +688,8 @@ function useEditorHistory(input) {
|
|
|
688
688
|
width: canvasSize.width,
|
|
689
689
|
height: canvasSize.height,
|
|
690
690
|
activeSlideIndex,
|
|
691
|
-
slides: slides.map(
|
|
692
|
-
templateElementsBySlideId:
|
|
691
|
+
slides: slides.map(chunk6GFSF2ML_js.cloneSlide),
|
|
692
|
+
templateElementsBySlideId: chunk6GFSF2ML_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
|
|
693
693
|
...recordedTheme ? { theme: recordedTheme } : {},
|
|
694
694
|
...actionLabel ? { actionLabel } : {}
|
|
695
695
|
};
|
|
@@ -703,9 +703,9 @@ function useEditorHistory(input) {
|
|
|
703
703
|
width: snapshot.width,
|
|
704
704
|
height: snapshot.height
|
|
705
705
|
});
|
|
706
|
-
setSlides(snapshot.slides.map(
|
|
706
|
+
setSlides(snapshot.slides.map(chunk6GFSF2ML_js.cloneSlide));
|
|
707
707
|
setTemplateElementsBySlideId(
|
|
708
|
-
|
|
708
|
+
chunk6GFSF2ML_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
|
|
709
709
|
);
|
|
710
710
|
setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
|
|
711
711
|
setSelectedElementIds([]);
|
|
@@ -771,8 +771,8 @@ function useEditorHistory(input) {
|
|
|
771
771
|
return;
|
|
772
772
|
}
|
|
773
773
|
isApplyingHistoryRef.current = true;
|
|
774
|
-
const nextSnapshot =
|
|
775
|
-
lastHistorySnapshotRef.current =
|
|
774
|
+
const nextSnapshot = chunk6GFSF2ML_js.cloneHistorySnapshot(result.snapshot);
|
|
775
|
+
lastHistorySnapshotRef.current = chunk6GFSF2ML_js.cloneHistorySnapshot(nextSnapshot);
|
|
776
776
|
lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
|
|
777
777
|
applyHistorySnapshot(nextSnapshot);
|
|
778
778
|
restoreTheme(currentSnapshot, nextSnapshot);
|
|
@@ -796,8 +796,8 @@ function useEditorHistory(input) {
|
|
|
796
796
|
return;
|
|
797
797
|
}
|
|
798
798
|
isApplyingHistoryRef.current = true;
|
|
799
|
-
const targetSnapshot =
|
|
800
|
-
lastHistorySnapshotRef.current =
|
|
799
|
+
const targetSnapshot = chunk6GFSF2ML_js.cloneHistorySnapshot(result.snapshot);
|
|
800
|
+
lastHistorySnapshotRef.current = chunk6GFSF2ML_js.cloneHistorySnapshot(targetSnapshot);
|
|
801
801
|
lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
|
|
802
802
|
applyHistorySnapshot(targetSnapshot);
|
|
803
803
|
restoreTheme(currentSnapshot, targetSnapshot);
|
|
@@ -815,7 +815,7 @@ function useEditorHistory(input) {
|
|
|
815
815
|
(initialSnapshot) => {
|
|
816
816
|
history.clear();
|
|
817
817
|
if (initialSnapshot) {
|
|
818
|
-
const clonedInitial =
|
|
818
|
+
const clonedInitial = chunk6GFSF2ML_js.cloneHistorySnapshot(initialSnapshot);
|
|
819
819
|
lastHistorySnapshotRef.current = clonedInitial;
|
|
820
820
|
lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
|
|
821
821
|
} else {
|
|
@@ -889,16 +889,16 @@ function useEditorHistory(input) {
|
|
|
889
889
|
slides
|
|
890
890
|
]);
|
|
891
891
|
const commitSlides = (nextSlides, label, beforeSlides = slides, nextSlideMasters) => {
|
|
892
|
-
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(
|
|
892
|
+
const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk6GFSF2ML_js.cloneSlide) };
|
|
893
893
|
const { theme: beforeTheme, ...unthemed } = before;
|
|
894
894
|
const afterTheme = nextSlideMasters ? pptx.historyTheme(theme, nextSlideMasters) : beforeTheme;
|
|
895
895
|
const after = {
|
|
896
896
|
...unthemed,
|
|
897
|
-
slides: nextSlides.map(
|
|
897
|
+
slides: nextSlides.map(chunk6GFSF2ML_js.cloneSlide),
|
|
898
898
|
...afterTheme ? { theme: afterTheme } : {}
|
|
899
899
|
};
|
|
900
900
|
recordExplicitSlideUpdate(history, lastHistorySnapshotRef.current, before, label);
|
|
901
|
-
lastHistorySnapshotRef.current =
|
|
901
|
+
lastHistorySnapshotRef.current = chunk6GFSF2ML_js.cloneHistorySnapshot(after);
|
|
902
902
|
lastHistorySerializedRef.current = serializeHistoryDocument(after);
|
|
903
903
|
isApplyingHistoryRef.current = false;
|
|
904
904
|
setSlides(nextSlides);
|
|
@@ -1092,22 +1092,22 @@ function useZoomViewport({
|
|
|
1092
1092
|
selectedElements.forEach((element) => {
|
|
1093
1093
|
minX = Math.min(minX, element.x);
|
|
1094
1094
|
minY = Math.min(minY, element.y);
|
|
1095
|
-
maxX = Math.max(maxX, element.x + Math.max(element.width,
|
|
1096
|
-
maxY = Math.max(maxY, element.y + Math.max(element.height,
|
|
1095
|
+
maxX = Math.max(maxX, element.x + Math.max(element.width, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE));
|
|
1096
|
+
maxY = Math.max(maxY, element.y + Math.max(element.height, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE));
|
|
1097
1097
|
});
|
|
1098
1098
|
if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
|
|
1099
1099
|
return;
|
|
1100
1100
|
}
|
|
1101
1101
|
const selectionBounds = { minX, minY, maxX, maxY };
|
|
1102
|
-
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX,
|
|
1103
|
-
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY,
|
|
1102
|
+
const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE);
|
|
1103
|
+
const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE);
|
|
1104
1104
|
const availableWidth = Math.max(
|
|
1105
|
-
effectiveEditorDimensions.width -
|
|
1106
|
-
|
|
1105
|
+
effectiveEditorDimensions.width - chunk6GFSF2ML_js.ZOOM_TO_SELECTION_PADDING,
|
|
1106
|
+
chunk6GFSF2ML_js.MIN_ELEMENT_SIZE
|
|
1107
1107
|
);
|
|
1108
1108
|
const availableHeight = Math.max(
|
|
1109
|
-
effectiveEditorDimensions.height -
|
|
1110
|
-
|
|
1109
|
+
effectiveEditorDimensions.height - chunk6GFSF2ML_js.ZOOM_TO_SELECTION_PADDING,
|
|
1110
|
+
chunk6GFSF2ML_js.MIN_ELEMENT_SIZE
|
|
1111
1111
|
);
|
|
1112
1112
|
const targetEditorScale = Math.min(
|
|
1113
1113
|
availableWidth / boundsWidth,
|
|
@@ -4027,8 +4027,8 @@ function useViewerCoreState(_input) {
|
|
|
4027
4027
|
const { slides, setSlides, slidesRef } = useSlideState();
|
|
4028
4028
|
const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
|
|
4029
4029
|
const [canvasSize, setCanvasSize] = React17.useState({
|
|
4030
|
-
width:
|
|
4031
|
-
height:
|
|
4030
|
+
width: chunk6GFSF2ML_js.DEFAULT_CANVAS_WIDTH,
|
|
4031
|
+
height: chunk6GFSF2ML_js.DEFAULT_CANVAS_HEIGHT
|
|
4032
4032
|
});
|
|
4033
4033
|
const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
|
|
4034
4034
|
const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
|
|
@@ -4518,7 +4518,7 @@ function useLoadContent({
|
|
|
4518
4518
|
limitsRef.current = limits;
|
|
4519
4519
|
const googleFontsRef = React17.useRef(googleFonts);
|
|
4520
4520
|
googleFontsRef.current = googleFonts;
|
|
4521
|
-
const { t } =
|
|
4521
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
4522
4522
|
const translateRef = React17.useRef(t);
|
|
4523
4523
|
translateRef.current = t;
|
|
4524
4524
|
const originalBufferRef = React17.useRef(null);
|
|
@@ -4555,7 +4555,7 @@ function useLoadContent({
|
|
|
4555
4555
|
webfonts = pptx.prepareDeckWebfonts({
|
|
4556
4556
|
document,
|
|
4557
4557
|
linkId: GOOGLE_FONTS_LINK_ID,
|
|
4558
|
-
slides:
|
|
4558
|
+
slides: chunk6GFSF2ML_js.partitionTemplateElements(deckSlides).slides,
|
|
4559
4559
|
embeddedFonts: deckEmbeddedFonts,
|
|
4560
4560
|
googleFontsBase: pptx.resolveGoogleFontsCss2Base(googleFontsRef.current),
|
|
4561
4561
|
onProgress: (progress) => {
|
|
@@ -4634,7 +4634,7 @@ function useLoadContent({
|
|
|
4634
4634
|
nextSlides,
|
|
4635
4635
|
(path) => handler.getImageData(path)
|
|
4636
4636
|
);
|
|
4637
|
-
const partition =
|
|
4637
|
+
const partition = chunk6GFSF2ML_js.partitionTemplateElements(nextSlides);
|
|
4638
4638
|
await webfonts;
|
|
4639
4639
|
if (cancelled || token !== renderTokenRef.current) {
|
|
4640
4640
|
return;
|
|
@@ -4654,8 +4654,8 @@ function useLoadContent({
|
|
|
4654
4654
|
setSlides(partition.slides);
|
|
4655
4655
|
setTemplateElementsBySlideId(partition.templateElementsBySlideId);
|
|
4656
4656
|
setCanvasSize({
|
|
4657
|
-
width: parsed.width ??
|
|
4658
|
-
height: parsed.height ??
|
|
4657
|
+
width: parsed.width ?? chunk6GFSF2ML_js.DEFAULT_CANVAS_WIDTH,
|
|
4658
|
+
height: parsed.height ?? chunk6GFSF2ML_js.DEFAULT_CANVAS_HEIGHT
|
|
4659
4659
|
});
|
|
4660
4660
|
setSlideSizeEmu(
|
|
4661
4661
|
typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
|
|
@@ -5072,7 +5072,7 @@ function useElementOperations(input) {
|
|
|
5072
5072
|
);
|
|
5073
5073
|
return;
|
|
5074
5074
|
}
|
|
5075
|
-
if (
|
|
5075
|
+
if (chunk6GFSF2ML_js.isTemplateElementId(elementId)) {
|
|
5076
5076
|
const slideId = activeSlide?.id;
|
|
5077
5077
|
if (slideId) {
|
|
5078
5078
|
setTemplateElementsBySlideId((prev) => ({
|
|
@@ -5359,8 +5359,8 @@ function createCanvasGestures(getInput, frames = animationFrames) {
|
|
|
5359
5359
|
}
|
|
5360
5360
|
function paintResize(resize, transform) {
|
|
5361
5361
|
const { x, y } = transform;
|
|
5362
|
-
const width = Math.max(transform.width,
|
|
5363
|
-
const height = Math.max(transform.height,
|
|
5362
|
+
const width = Math.max(transform.width, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE);
|
|
5363
|
+
const height = Math.max(transform.height, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE);
|
|
5364
5364
|
resize.lastX = x;
|
|
5365
5365
|
resize.lastY = y;
|
|
5366
5366
|
resize.lastWidth = transform.width;
|
|
@@ -5417,7 +5417,7 @@ function createCanvasGestures(getInput, frames = animationFrames) {
|
|
|
5417
5417
|
getGridSize: () => getInput().gridSpacingPx,
|
|
5418
5418
|
getSnapToShape: () => getInput().snapToShape,
|
|
5419
5419
|
getGuides: () => getInput().guides.map(({ axis, position }) => ({ axis, position })),
|
|
5420
|
-
getMinSize: () =>
|
|
5420
|
+
getMinSize: () => chunk6GFSF2ML_js.MIN_ELEMENT_SIZE,
|
|
5421
5421
|
getSnapExcludeIds: () => armed?.kind === "move" ? Object.keys(armed.drag.startPositionsById) : [],
|
|
5422
5422
|
getStageOrigin: () => {
|
|
5423
5423
|
const rect = getInput().canvasStageRef.current?.getBoundingClientRect();
|
|
@@ -5498,7 +5498,7 @@ function commitMove(input, drag) {
|
|
|
5498
5498
|
const start = drag.startPositionsById[el.id];
|
|
5499
5499
|
return start ? { ...el, x: start.x + dx, y: start.y + dy } : el;
|
|
5500
5500
|
});
|
|
5501
|
-
return
|
|
5501
|
+
return chunk6GFSF2ML_js.applyReroutedConnectors(moved, chunk6GFSF2ML_js.rerouteConnectorsForMovedElements(moved, movedIds));
|
|
5502
5502
|
};
|
|
5503
5503
|
if (input.editTemplateMode) {
|
|
5504
5504
|
const slideId = input.activeSlide?.id;
|
|
@@ -5529,8 +5529,8 @@ function commitResize(input, resize) {
|
|
|
5529
5529
|
if (i !== input.activeSlideIndex) {
|
|
5530
5530
|
return s;
|
|
5531
5531
|
}
|
|
5532
|
-
const rerouted =
|
|
5533
|
-
return rerouted.length === 0 ? s : { ...s, elements:
|
|
5532
|
+
const rerouted = chunk6GFSF2ML_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
|
|
5533
|
+
return rerouted.length === 0 ? s : { ...s, elements: chunk6GFSF2ML_js.applyReroutedConnectors(s.elements, rerouted) };
|
|
5534
5534
|
})
|
|
5535
5535
|
);
|
|
5536
5536
|
}
|
|
@@ -6365,7 +6365,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6365
6365
|
return;
|
|
6366
6366
|
}
|
|
6367
6367
|
const resolved = resolveHyperlinkEditResult(data);
|
|
6368
|
-
if (resolved.url && !
|
|
6368
|
+
if (resolved.url && !chunk6GFSF2ML_js.isUrlSafe(resolved.url)) {
|
|
6369
6369
|
return;
|
|
6370
6370
|
}
|
|
6371
6371
|
const actionClick = {
|
|
@@ -6411,7 +6411,7 @@ function createStructuredElementHandlers(deps) {
|
|
|
6411
6411
|
if (!activeSlide) {
|
|
6412
6412
|
return;
|
|
6413
6413
|
}
|
|
6414
|
-
const preset =
|
|
6414
|
+
const preset = chunk6GFSF2ML_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
|
|
6415
6415
|
if (!preset) {
|
|
6416
6416
|
return;
|
|
6417
6417
|
}
|
|
@@ -6498,7 +6498,7 @@ function useInsertElements(input) {
|
|
|
6498
6498
|
width: 300,
|
|
6499
6499
|
height: 60,
|
|
6500
6500
|
text: "",
|
|
6501
|
-
textStyle: { fontSize:
|
|
6501
|
+
textStyle: { fontSize: chunk6GFSF2ML_js.DEFAULT_TEXT_FONT_SIZE }
|
|
6502
6502
|
});
|
|
6503
6503
|
};
|
|
6504
6504
|
const handleAddShape = () => {
|
|
@@ -6520,7 +6520,7 @@ function useInsertElements(input) {
|
|
|
6520
6520
|
}
|
|
6521
6521
|
});
|
|
6522
6522
|
};
|
|
6523
|
-
const handleAddTable = (rows =
|
|
6523
|
+
const handleAddTable = (rows = chunk6GFSF2ML_js.DEFAULT_TABLE_ROWS, columns = chunk6GFSF2ML_js.DEFAULT_TABLE_COLUMNS) => {
|
|
6524
6524
|
if (!activeSlide) {
|
|
6525
6525
|
return;
|
|
6526
6526
|
}
|
|
@@ -6694,7 +6694,7 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6694
6694
|
history
|
|
6695
6695
|
} = input;
|
|
6696
6696
|
const updateElementsOwning = (elementId, updater) => {
|
|
6697
|
-
if (editTemplateMode && !
|
|
6697
|
+
if (editTemplateMode && !chunk6GFSF2ML_js.isTemplateElementId(elementId)) {
|
|
6698
6698
|
ops.updateSlides(
|
|
6699
6699
|
(prev) => prev.map(
|
|
6700
6700
|
(slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
|
|
@@ -6728,9 +6728,9 @@ function useGroupAlignLayerHandlers(input) {
|
|
|
6728
6728
|
return;
|
|
6729
6729
|
}
|
|
6730
6730
|
const group = selectedElement;
|
|
6731
|
-
const intoTemplate =
|
|
6731
|
+
const intoTemplate = chunk6GFSF2ML_js.isTemplateElementId(group.id);
|
|
6732
6732
|
const childIds = group.children.map(
|
|
6733
|
-
(child) => intoTemplate ?
|
|
6733
|
+
(child) => intoTemplate ? chunk6GFSF2ML_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
|
|
6734
6734
|
);
|
|
6735
6735
|
const { elements, childIds: usedIds } = pptx.ungroupElements(
|
|
6736
6736
|
ops.activeElements,
|
|
@@ -7166,7 +7166,7 @@ function createTableMergeHandlers(input) {
|
|
|
7166
7166
|
if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
|
|
7167
7167
|
return;
|
|
7168
7168
|
}
|
|
7169
|
-
const newTableData =
|
|
7169
|
+
const newTableData = chunk6GFSF2ML_js.mergeCells(
|
|
7170
7170
|
[
|
|
7171
7171
|
{ row: rowIndex, col: columnIndex },
|
|
7172
7172
|
{ row: rowIndex, col: nextColIdx }
|
|
@@ -7174,7 +7174,7 @@ function createTableMergeHandlers(input) {
|
|
|
7174
7174
|
td
|
|
7175
7175
|
);
|
|
7176
7176
|
const updates = { tableData: newTableData };
|
|
7177
|
-
const newRawXml =
|
|
7177
|
+
const newRawXml = chunk6GFSF2ML_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7178
7178
|
if (newRawXml) {
|
|
7179
7179
|
updates.rawXml = newRawXml;
|
|
7180
7180
|
}
|
|
@@ -7200,7 +7200,7 @@ function createTableMergeHandlers(input) {
|
|
|
7200
7200
|
if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
|
|
7201
7201
|
return;
|
|
7202
7202
|
}
|
|
7203
|
-
const newTableData =
|
|
7203
|
+
const newTableData = chunk6GFSF2ML_js.mergeCells(
|
|
7204
7204
|
[
|
|
7205
7205
|
{ row: rowIndex, col: columnIndex },
|
|
7206
7206
|
{ row: targetNextRowIdx, col: columnIndex }
|
|
@@ -7208,7 +7208,7 @@ function createTableMergeHandlers(input) {
|
|
|
7208
7208
|
td
|
|
7209
7209
|
);
|
|
7210
7210
|
const updates = { tableData: newTableData };
|
|
7211
|
-
const newRawXml =
|
|
7211
|
+
const newRawXml = chunk6GFSF2ML_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7212
7212
|
if (newRawXml) {
|
|
7213
7213
|
updates.rawXml = newRawXml;
|
|
7214
7214
|
}
|
|
@@ -7223,9 +7223,9 @@ function createTableMergeHandlers(input) {
|
|
|
7223
7223
|
return;
|
|
7224
7224
|
}
|
|
7225
7225
|
const td = selectedElement.tableData;
|
|
7226
|
-
const newTableData =
|
|
7226
|
+
const newTableData = chunk6GFSF2ML_js.mergeCells(ts.selectedCells, td);
|
|
7227
7227
|
const updates = { tableData: newTableData };
|
|
7228
|
-
const newRawXml =
|
|
7228
|
+
const newRawXml = chunk6GFSF2ML_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7229
7229
|
if (newRawXml) {
|
|
7230
7230
|
updates.rawXml = newRawXml;
|
|
7231
7231
|
}
|
|
@@ -7242,9 +7242,9 @@ function createTableMergeHandlers(input) {
|
|
|
7242
7242
|
}
|
|
7243
7243
|
const { rowIndex, columnIndex } = ts;
|
|
7244
7244
|
const td = selectedElement.tableData;
|
|
7245
|
-
const newTableData =
|
|
7245
|
+
const newTableData = chunk6GFSF2ML_js.splitCell(rowIndex, columnIndex, td);
|
|
7246
7246
|
const updates = { tableData: newTableData };
|
|
7247
|
-
const newRawXml =
|
|
7247
|
+
const newRawXml = chunk6GFSF2ML_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
|
|
7248
7248
|
if (newRawXml) {
|
|
7249
7249
|
updates.rawXml = newRawXml;
|
|
7250
7250
|
}
|
|
@@ -7279,7 +7279,7 @@ function createTableStructHandlers(input) {
|
|
|
7279
7279
|
updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
|
|
7280
7280
|
}
|
|
7281
7281
|
if (el.rawXml) {
|
|
7282
|
-
const newRawXml =
|
|
7282
|
+
const newRawXml = chunk6GFSF2ML_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
|
|
7283
7283
|
if (newRawXml) {
|
|
7284
7284
|
updates.rawXml = newRawXml;
|
|
7285
7285
|
}
|
|
@@ -7303,7 +7303,7 @@ function createTableStructHandlers(input) {
|
|
|
7303
7303
|
const { rowIndex, columnIndex: colIndex } = ts;
|
|
7304
7304
|
const updates = {};
|
|
7305
7305
|
if (selectedElement.rawXml) {
|
|
7306
|
-
const newRawXml =
|
|
7306
|
+
const newRawXml = chunk6GFSF2ML_js.updateCellTextStyleInRawXml(
|
|
7307
7307
|
selectedElement,
|
|
7308
7308
|
rowIndex,
|
|
7309
7309
|
colIndex,
|
|
@@ -7481,7 +7481,7 @@ function useExportSaveAs(input) {
|
|
|
7481
7481
|
const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
|
|
7482
7482
|
const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
|
|
7483
7483
|
const data = {
|
|
7484
|
-
slides:
|
|
7484
|
+
slides: chunk6GFSF2ML_js.buildSaveSlides(slides, templateElementsBySlideId),
|
|
7485
7485
|
width: canvasSize.width,
|
|
7486
7486
|
height: canvasSize.height,
|
|
7487
7487
|
widthEmu: slideSize.widthEmu,
|
|
@@ -7644,7 +7644,7 @@ async function captureSlidesAsPngDataUrls(slideStageRef, slideIndices, setActive
|
|
|
7644
7644
|
}
|
|
7645
7645
|
function tilesToPdfPage(tilesResult) {
|
|
7646
7646
|
return tilesResult.tiles.map((tile) => ({
|
|
7647
|
-
image:
|
|
7647
|
+
image: chunk6GFSF2ML_js.canvasToJpegData(tile.canvas),
|
|
7648
7648
|
placement: pptx.placeTileOnPage(
|
|
7649
7649
|
tile,
|
|
7650
7650
|
tilesResult.fullWidth,
|
|
@@ -7677,7 +7677,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
|
|
|
7677
7677
|
if (pages.length === 0) {
|
|
7678
7678
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
|
|
7679
7679
|
}
|
|
7680
|
-
const pdfBlobUrl =
|
|
7680
|
+
const pdfBlobUrl = chunk6GFSF2ML_js.buildPdfFromTiledImageData(pages);
|
|
7681
7681
|
pptx.downloadDataUrl(pdfBlobUrl, filename);
|
|
7682
7682
|
}
|
|
7683
7683
|
async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
|
|
@@ -7707,7 +7707,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
|
|
|
7707
7707
|
if (pages.length === 0) {
|
|
7708
7708
|
throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
|
|
7709
7709
|
}
|
|
7710
|
-
const pdfDataUrl =
|
|
7710
|
+
const pdfDataUrl = chunk6GFSF2ML_js.buildNotesPdf(pages);
|
|
7711
7711
|
pptx.downloadDataUrl(pdfDataUrl, filename);
|
|
7712
7712
|
}
|
|
7713
7713
|
async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
|
|
@@ -8285,13 +8285,13 @@ function usePrintHandlers(input) {
|
|
|
8285
8285
|
const { slides, activeSlideIndex, canvasStageRef, setActiveSlideIndex, canvasSize } = input;
|
|
8286
8286
|
const handoutMaster = input.handoutMaster ?? input.pptxData?.handoutMaster;
|
|
8287
8287
|
const [isPrintDialogOpen, setIsPrintDialogOpen] = React17.useState(false);
|
|
8288
|
-
const { t } =
|
|
8288
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
8289
8289
|
const viewerOptions = useViewerOptionsContext();
|
|
8290
8290
|
const printRasterScale = (viewerOptions.advanced.printHighQuality ? 4 : 3) * pptx.resolveImageResolutionScale(viewerOptions);
|
|
8291
8291
|
const handlePrint = () => {
|
|
8292
8292
|
setIsPrintDialogOpen(true);
|
|
8293
8293
|
};
|
|
8294
|
-
const deckSlides = () => input.templateElementsBySlideId ?
|
|
8294
|
+
const deckSlides = () => input.templateElementsBySlideId ? chunk6GFSF2ML_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
|
|
8295
8295
|
const plan = (settings, deck) => pptx.planPrintJob(settings, {
|
|
8296
8296
|
slides: deck,
|
|
8297
8297
|
activeSlideIndex,
|
|
@@ -8706,7 +8706,7 @@ function usePropertyHandlers(input) {
|
|
|
8706
8706
|
width: canvasSize.width,
|
|
8707
8707
|
height: canvasSize.height
|
|
8708
8708
|
};
|
|
8709
|
-
setCompareResult(
|
|
8709
|
+
setCompareResult(chunk6GFSF2ML_js.comparePresentation(cur, other));
|
|
8710
8710
|
setIsComparePanelOpen(true);
|
|
8711
8711
|
} catch (err) {
|
|
8712
8712
|
console.warn("Compare failed:", err);
|
|
@@ -8759,7 +8759,7 @@ function usePropertyHandlers(input) {
|
|
|
8759
8759
|
};
|
|
8760
8760
|
}
|
|
8761
8761
|
function useDialogCustomShows(input) {
|
|
8762
|
-
const { t } =
|
|
8762
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
8763
8763
|
const {
|
|
8764
8764
|
activeSlide,
|
|
8765
8765
|
customShows,
|
|
@@ -9084,7 +9084,7 @@ function useViewerDialogs(input) {
|
|
|
9084
9084
|
};
|
|
9085
9085
|
}
|
|
9086
9086
|
function computeGridSpacingPx(documentGridSpacing) {
|
|
9087
|
-
return pptx.computeGridSpacingPx(documentGridSpacing,
|
|
9087
|
+
return pptx.computeGridSpacingPx(documentGridSpacing, chunk6GFSF2ML_js.GRID_SIZE);
|
|
9088
9088
|
}
|
|
9089
9089
|
function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
|
|
9090
9090
|
const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
|
|
@@ -9093,7 +9093,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
|
|
|
9093
9093
|
}
|
|
9094
9094
|
function computeSlideSectionGroups(slides, sections) {
|
|
9095
9095
|
return pptx.groupSlidesBySection(sections, slides).map((group) => ({
|
|
9096
|
-
id: group.section?.id ?? (sections.length > 0 ?
|
|
9096
|
+
id: group.section?.id ?? (sections.length > 0 ? chunk6GFSF2ML_js.UNGROUPED_SECTION_ID : chunk6GFSF2ML_js.DEFAULT_SECTION_GROUP_ID),
|
|
9097
9097
|
label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
|
|
9098
9098
|
slideIndexes: group.slideIndexes,
|
|
9099
9099
|
...group.section?.color !== void 0 ? { color: group.section.color } : {},
|
|
@@ -9112,7 +9112,7 @@ function computeMasterPseudoSlide(mode, activeLayout, activeMaster) {
|
|
|
9112
9112
|
});
|
|
9113
9113
|
}
|
|
9114
9114
|
function useDerivedSlideState(input) {
|
|
9115
|
-
const { t } =
|
|
9115
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
9116
9116
|
const {
|
|
9117
9117
|
slides,
|
|
9118
9118
|
sections,
|
|
@@ -9138,10 +9138,10 @@ function useDerivedSlideState(input) {
|
|
|
9138
9138
|
);
|
|
9139
9139
|
const slideSectionGroups = React17.useMemo(
|
|
9140
9140
|
() => computeSlideSectionGroups(slides, sections).map((group) => {
|
|
9141
|
-
if (group.id ===
|
|
9141
|
+
if (group.id === chunk6GFSF2ML_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
|
|
9142
9142
|
return { ...group, label: t("pptx.slides.ungroupedSlides") };
|
|
9143
9143
|
}
|
|
9144
|
-
if (group.id ===
|
|
9144
|
+
if (group.id === chunk6GFSF2ML_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
|
|
9145
9145
|
return { ...group, label: t("pptx.sections.slides") };
|
|
9146
9146
|
}
|
|
9147
9147
|
return group;
|
|
@@ -9248,7 +9248,7 @@ function useAnnotationHandlers(input) {
|
|
|
9248
9248
|
if (nextMode === "present") {
|
|
9249
9249
|
presentation.enterPresentMode();
|
|
9250
9250
|
} else if (mode === "present" && annotations.hasAnyAnnotations) {
|
|
9251
|
-
|
|
9251
|
+
chunk6GFSF2ML_js.stopAllPersistentAudio();
|
|
9252
9252
|
if (promptKeepInkAnnotations) {
|
|
9253
9253
|
pendingModeAfterAnnotationsRef.current = nextMode;
|
|
9254
9254
|
setShowKeepAnnotationsDialog(true);
|
|
@@ -9258,7 +9258,7 @@ function useAnnotationHandlers(input) {
|
|
|
9258
9258
|
}
|
|
9259
9259
|
} else {
|
|
9260
9260
|
if (mode === "present") {
|
|
9261
|
-
|
|
9261
|
+
chunk6GFSF2ML_js.stopAllPersistentAudio();
|
|
9262
9262
|
}
|
|
9263
9263
|
setMode(nextMode);
|
|
9264
9264
|
}
|
|
@@ -9426,7 +9426,7 @@ function useSerialize(input) {
|
|
|
9426
9426
|
guides: pptxGuides.length > 0 ? pptxGuides : void 0
|
|
9427
9427
|
};
|
|
9428
9428
|
});
|
|
9429
|
-
const slidesToSave =
|
|
9429
|
+
const slidesToSave = chunk6GFSF2ML_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
|
|
9430
9430
|
const saveOptions = pptx.buildDeckSaveOptions({
|
|
9431
9431
|
// Without this the Slide Size card edited a viewer-only pixel value and
|
|
9432
9432
|
// the saved `p:sldSz` never moved: passing `slideSize` is the only way a
|
|
@@ -9571,7 +9571,7 @@ function usePresentationSetup(input) {
|
|
|
9571
9571
|
return;
|
|
9572
9572
|
}
|
|
9573
9573
|
if (mode === "present" && nextMode !== "present") {
|
|
9574
|
-
|
|
9574
|
+
chunk6GFSF2ML_js.stopAllPersistentAudio();
|
|
9575
9575
|
stopAnimationSound();
|
|
9576
9576
|
const exitHandler = exitModeHandlerRef.current;
|
|
9577
9577
|
if (exitHandler) {
|
|
@@ -9692,7 +9692,7 @@ function useCanvasImagePaste(input) {
|
|
|
9692
9692
|
);
|
|
9693
9693
|
}
|
|
9694
9694
|
function formatPatchFor(element, format) {
|
|
9695
|
-
const updated =
|
|
9695
|
+
const updated = chunk6GFSF2ML_js.applyFormatToElement(element, format);
|
|
9696
9696
|
const updates = {};
|
|
9697
9697
|
if (pptx$1.hasShapeProperties(updated)) {
|
|
9698
9698
|
updates.shapeStyle = updated.shapeStyle;
|
|
@@ -9715,7 +9715,7 @@ function useFormatPainterEditing(input) {
|
|
|
9715
9715
|
const prevFormatPainterRef = React17.useRef(false);
|
|
9716
9716
|
React17.useEffect(() => {
|
|
9717
9717
|
if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
|
|
9718
|
-
copiedFormatRef.current =
|
|
9718
|
+
copiedFormatRef.current = chunk6GFSF2ML_js.copyFormatFromElement(selectedElement);
|
|
9719
9719
|
} else if (!formatPainterActive) {
|
|
9720
9720
|
copiedFormatRef.current = null;
|
|
9721
9721
|
}
|
|
@@ -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: chunk6GFSF2ML_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: chunk6GFSF2ML_js.MIN_ZOOM_SCALE,
|
|
11748
|
+
maxScale: chunk6GFSF2ML_js.MAX_ZOOM_SCALE,
|
|
11749
11749
|
callbacks: {
|
|
11750
11750
|
onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
|
|
11751
11751
|
onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
|
|
@@ -11881,9 +11881,9 @@ function buildCanvasProps(input) {
|
|
|
11881
11881
|
}
|
|
11882
11882
|
};
|
|
11883
11883
|
const handleHyperlinkClick = (url, target) => {
|
|
11884
|
-
if (
|
|
11884
|
+
if (chunk6GFSF2ML_js.isPpactionUrl(url)) {
|
|
11885
11885
|
if (mode === "present") {
|
|
11886
|
-
const parsed =
|
|
11886
|
+
const parsed = chunk6GFSF2ML_js.parsePpactionUrl(url);
|
|
11887
11887
|
if (parsed) {
|
|
11888
11888
|
presentation.handlePresentationAction({
|
|
11889
11889
|
action: parsed.action,
|
|
@@ -12375,7 +12375,7 @@ function buildToolbarProps(input) {
|
|
|
12375
12375
|
markDirty: history.markDirty
|
|
12376
12376
|
}),
|
|
12377
12377
|
formatPainterActive: s.formatPainterActive,
|
|
12378
|
-
canActivateFormatPainter:
|
|
12378
|
+
canActivateFormatPainter: chunk6GFSF2ML_js.hasCopyableFormat(selectedElement),
|
|
12379
12379
|
onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
|
|
12380
12380
|
isSelectionPaneOpen: s.isSelectionPaneOpen,
|
|
12381
12381
|
onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
|
|
@@ -13104,7 +13104,7 @@ function useViewerBuildingBlocks(input) {
|
|
|
13104
13104
|
} = input;
|
|
13105
13105
|
const collaborationConfig = pptx.resolveCollaborationConfig(input.collaboration);
|
|
13106
13106
|
const [collaborationReadOnly, setCollaborationReadOnly] = React17.useState(Boolean(collaborationConfig));
|
|
13107
|
-
const { t } =
|
|
13107
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
13108
13108
|
const [content, setContent] = React17.useState(incomingContent ?? null);
|
|
13109
13109
|
const [loadOrigin, setLoadOrigin] = React17.useState("bootstrap");
|
|
13110
13110
|
React17.useEffect(() => {
|
|
@@ -13306,23 +13306,23 @@ function ColorChangedImage({
|
|
|
13306
13306
|
className,
|
|
13307
13307
|
alt
|
|
13308
13308
|
}) {
|
|
13309
|
-
const tolerance = tolerancePct ??
|
|
13310
|
-
const cacheKey =
|
|
13309
|
+
const tolerance = tolerancePct ?? chunk6GFSF2ML_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
|
|
13310
|
+
const cacheKey = chunk6GFSF2ML_js.buildCacheKey(
|
|
13311
13311
|
src,
|
|
13312
13312
|
clrChange.clrFrom,
|
|
13313
13313
|
clrChange.clrTo,
|
|
13314
13314
|
tolerance,
|
|
13315
13315
|
Boolean(clrChange.clrToTransparent)
|
|
13316
13316
|
);
|
|
13317
|
-
const cached =
|
|
13317
|
+
const cached = chunk6GFSF2ML_js.getCachedResult(cacheKey);
|
|
13318
13318
|
const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
|
|
13319
13319
|
React17.useEffect(() => {
|
|
13320
|
-
if (
|
|
13321
|
-
setProcessedSrc(
|
|
13320
|
+
if (chunk6GFSF2ML_js.getCachedResult(cacheKey)) {
|
|
13321
|
+
setProcessedSrc(chunk6GFSF2ML_js.getCachedResult(cacheKey) ?? null);
|
|
13322
13322
|
return;
|
|
13323
13323
|
}
|
|
13324
13324
|
let cancelled = false;
|
|
13325
|
-
|
|
13325
|
+
chunk6GFSF2ML_js.applyColorChange(
|
|
13326
13326
|
src,
|
|
13327
13327
|
clrChange.clrFrom,
|
|
13328
13328
|
clrChange.clrTo,
|
|
@@ -13330,7 +13330,7 @@ function ColorChangedImage({
|
|
|
13330
13330
|
Boolean(clrChange.clrToTransparent)
|
|
13331
13331
|
).then((result) => {
|
|
13332
13332
|
if (!cancelled) {
|
|
13333
|
-
|
|
13333
|
+
chunk6GFSF2ML_js.setCachedResult(cacheKey, result.dataUrl);
|
|
13334
13334
|
setProcessedSrc(result.dataUrl);
|
|
13335
13335
|
}
|
|
13336
13336
|
return void 0;
|
|
@@ -13422,7 +13422,7 @@ function TiledImageLayer({
|
|
|
13422
13422
|
cancelled = true;
|
|
13423
13423
|
};
|
|
13424
13424
|
}, [src]);
|
|
13425
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...
|
|
13425
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk6GFSF2ML_js.getImageTilingStyle(element, nativeSize), ...style } });
|
|
13426
13426
|
}
|
|
13427
13427
|
function renderImageEffectDefinitions(element, excludeDuotone = false) {
|
|
13428
13428
|
return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13491,7 +13491,7 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13491
13491
|
...filter ? { filter } : {},
|
|
13492
13492
|
...opacity !== void 0 ? { opacity } : {}
|
|
13493
13493
|
};
|
|
13494
|
-
if (
|
|
13494
|
+
if (chunk6GFSF2ML_js.isImageTiled(el)) {
|
|
13495
13495
|
const tileSrc = imgSrc(el);
|
|
13496
13496
|
if (!tileSrc) {
|
|
13497
13497
|
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" });
|
|
@@ -13513,9 +13513,9 @@ function renderImg(el, style, filter, alt, opacity) {
|
|
|
13513
13513
|
pptx$1.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
|
|
13514
13514
|
);
|
|
13515
13515
|
const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
|
|
13516
|
-
const duotoneColors =
|
|
13516
|
+
const duotoneColors = chunk6GFSF2ML_js.getDuotoneColors(el);
|
|
13517
13517
|
const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
|
|
13518
|
-
const filterForImg = useDuotoneCanvas ?
|
|
13518
|
+
const filterForImg = useDuotoneCanvas ? chunk6GFSF2ML_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
|
|
13519
13519
|
const canvasEffectStyles = {
|
|
13520
13520
|
...filterForImg ? { filter: filterForImg } : {},
|
|
13521
13521
|
...opacity !== void 0 ? { opacity } : {}
|
|
@@ -13591,10 +13591,10 @@ function SlideBackgroundImageLayer({
|
|
|
13591
13591
|
style: { zIndex: 0 },
|
|
13592
13592
|
children: renderImg(
|
|
13593
13593
|
backgroundElement,
|
|
13594
|
-
|
|
13595
|
-
|
|
13594
|
+
chunk6GFSF2ML_js.getImageRenderStyle(backgroundElement),
|
|
13595
|
+
chunk6GFSF2ML_js.getImageEffectsFilter(backgroundElement),
|
|
13596
13596
|
"",
|
|
13597
|
-
|
|
13597
|
+
chunk6GFSF2ML_js.getImageEffectsOpacity(backgroundElement)
|
|
13598
13598
|
)
|
|
13599
13599
|
}
|
|
13600
13600
|
);
|
|
@@ -13865,7 +13865,7 @@ function ChartElementView({
|
|
|
13865
13865
|
onUpdateElement,
|
|
13866
13866
|
animationState
|
|
13867
13867
|
}) {
|
|
13868
|
-
const { t } =
|
|
13868
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
13869
13869
|
const wrapperRef = React17.useRef(null);
|
|
13870
13870
|
const { selection, setSelection } = useChartPartSelection();
|
|
13871
13871
|
const [titleDraft, setTitleDraft] = React17.useState(null);
|
|
@@ -13880,7 +13880,7 @@ function ChartElementView({
|
|
|
13880
13880
|
pptx.getBarFacePicturePixelSampleVersion
|
|
13881
13881
|
);
|
|
13882
13882
|
const viewModel = React17.useMemo(() => {
|
|
13883
|
-
return canEdit ?
|
|
13883
|
+
return canEdit ? chunk6GFSF2ML_js.buildReactChartViewModel(element) : null;
|
|
13884
13884
|
}, [canEdit, element, barFacePictureSampleVersion]);
|
|
13885
13885
|
React17.useEffect(pptx.ensureChartInteractionStyles, []);
|
|
13886
13886
|
React17.useEffect(() => {
|
|
@@ -13985,9 +13985,9 @@ function ChartElementView({
|
|
|
13985
13985
|
textStyle: animationState?.textStyle,
|
|
13986
13986
|
onSelect: chart3D.onSelect,
|
|
13987
13987
|
onDrag: chart3D.onDrag,
|
|
13988
|
-
children:
|
|
13988
|
+
children: chunk6GFSF2ML_js.renderChartElement(renderedElement, (key) => t(key))
|
|
13989
13989
|
}
|
|
13990
|
-
) :
|
|
13990
|
+
) : chunk6GFSF2ML_js.renderChartElement(renderedElement, (key) => t(key)),
|
|
13991
13991
|
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) }),
|
|
13992
13992
|
titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13993
13993
|
"input",
|
|
@@ -14015,7 +14015,7 @@ function ChartElementView({
|
|
|
14015
14015
|
);
|
|
14016
14016
|
}
|
|
14017
14017
|
function useActionAffordance(element, canInteract) {
|
|
14018
|
-
const { t } =
|
|
14018
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
14019
14019
|
pptx.ensureActionAffordanceStyles();
|
|
14020
14020
|
return React17.useMemo(
|
|
14021
14021
|
() => pptx.resolveElementActionAffordance(element, {
|
|
@@ -14293,7 +14293,7 @@ function ResizeHandles({
|
|
|
14293
14293
|
nonRotationTransform,
|
|
14294
14294
|
onRotate
|
|
14295
14295
|
}) {
|
|
14296
|
-
const { t } =
|
|
14296
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
14297
14297
|
const rotateRef = useRotateHandlePlacement(elementId, Boolean(onRotate));
|
|
14298
14298
|
const peStyle = forcePointerEvents ? { ...HANDLE_TOUCH_ACTION, pointerEvents: "auto" } : HANDLE_TOUCH_ACTION;
|
|
14299
14299
|
const resizeStyle = { ...HANDLE_TOUCH_ACTION, pointerEvents: "none" };
|
|
@@ -14326,7 +14326,7 @@ function ResizeHandles({
|
|
|
14326
14326
|
"aria-label": t("pptx.selectionOverlay.resize", { handle }),
|
|
14327
14327
|
"data-pptx-handle-kind": "resize",
|
|
14328
14328
|
"data-pptx-compact": true,
|
|
14329
|
-
className:
|
|
14329
|
+
className: chunk6GFSF2ML_js.cn(
|
|
14330
14330
|
"absolute z-10 group border-0 bg-transparent p-0",
|
|
14331
14331
|
RESIZE_DEFAULT_CLASSES,
|
|
14332
14332
|
posClass,
|
|
@@ -14352,7 +14352,7 @@ function ResizeHandles({
|
|
|
14352
14352
|
"div",
|
|
14353
14353
|
{
|
|
14354
14354
|
"data-pptx-handle-hit": true,
|
|
14355
|
-
className:
|
|
14355
|
+
className: chunk6GFSF2ML_js.cn(
|
|
14356
14356
|
"absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
|
|
14357
14357
|
corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
|
|
14358
14358
|
),
|
|
@@ -14373,7 +14373,7 @@ function ResizeHandles({
|
|
|
14373
14373
|
"aria-label": t("pptx.selectionOverlay.rotate"),
|
|
14374
14374
|
"data-pptx-handle-kind": "rotate",
|
|
14375
14375
|
"data-pptx-compact": true,
|
|
14376
|
-
className:
|
|
14376
|
+
className: chunk6GFSF2ML_js.cn(
|
|
14377
14377
|
"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",
|
|
14378
14378
|
ROTATE_DEFAULT_CLASSES
|
|
14379
14379
|
),
|
|
@@ -14450,10 +14450,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14450
14450
|
const svgHeight = Math.max(el.height, 1);
|
|
14451
14451
|
const ss = shapeEl?.shapeStyle;
|
|
14452
14452
|
const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
|
|
14453
|
-
const strokeColor =
|
|
14454
|
-
const strokePaint =
|
|
14455
|
-
const dashType =
|
|
14456
|
-
const dashArray =
|
|
14453
|
+
const strokeColor = chunk6GFSF2ML_js.normalizeHexColor(ss?.strokeColor, chunk6GFSF2ML_js.DEFAULT_STROKE_COLOR);
|
|
14454
|
+
const strokePaint = chunk6GFSF2ML_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
|
|
14455
|
+
const dashType = chunk6GFSF2ML_js.normalizeStrokeDashType(ss?.strokeDash);
|
|
14456
|
+
const dashArray = chunk6GFSF2ML_js.getSvgStrokeDasharray(
|
|
14457
14457
|
dashType,
|
|
14458
14458
|
Math.max(strokeWidth, 1),
|
|
14459
14459
|
ss?.customDashSegments,
|
|
@@ -14465,14 +14465,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14465
14465
|
const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
|
|
14466
14466
|
const startMarkerId = `${markerSeed}-sel-start`;
|
|
14467
14467
|
const endMarkerId = `${markerSeed}-sel-end`;
|
|
14468
|
-
const compoundOffsets =
|
|
14469
|
-
const compoundWidths =
|
|
14468
|
+
const compoundOffsets = chunk6GFSF2ML_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
14469
|
+
const compoundWidths = chunk6GFSF2ML_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
14470
14470
|
const strokeCap = pptx.svgLineCap(ss?.lineCap, dashArray !== void 0);
|
|
14471
14471
|
const textEl = pptx$1.hasTextProperties(el) ? el : void 0;
|
|
14472
14472
|
const connectorText = textEl?.text?.trim() ?? "";
|
|
14473
14473
|
const connectorTextSegments = textEl?.textSegments;
|
|
14474
14474
|
const connectorTextStyle = textEl?.textStyle;
|
|
14475
|
-
const pathGeometry = shapeEl ?
|
|
14475
|
+
const pathGeometry = shapeEl ? chunk6GFSF2ML_js.getConnectorPathGeometry(shapeEl) : {
|
|
14476
14476
|
pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
|
|
14477
14477
|
startX: 0,
|
|
14478
14478
|
startY: 0,
|
|
@@ -14493,16 +14493,16 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14493
14493
|
strokeWidth
|
|
14494
14494
|
);
|
|
14495
14495
|
const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
|
|
14496
|
-
const lineShadow =
|
|
14497
|
-
const lineGlow =
|
|
14496
|
+
const lineShadow = chunk6GFSF2ML_js.buildLineShadowCss(el);
|
|
14497
|
+
const lineGlow = chunk6GFSF2ML_js.buildLineGlowFilter(el);
|
|
14498
14498
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14499
14499
|
"div",
|
|
14500
14500
|
{
|
|
14501
14501
|
"data-pptx-element": "true",
|
|
14502
14502
|
"data-element-id": el.id,
|
|
14503
|
-
role:
|
|
14504
|
-
"aria-label":
|
|
14505
|
-
"aria-roledescription":
|
|
14503
|
+
role: chunk6GFSF2ML_js.getAriaRole(el, { actionable: false }),
|
|
14504
|
+
"aria-label": chunk6GFSF2ML_js.getAriaLabel(el),
|
|
14505
|
+
"aria-roledescription": chunk6GFSF2ML_js.getAriaRoleDescription(el),
|
|
14506
14506
|
"aria-selected": isSelected ? true : void 0,
|
|
14507
14507
|
className: "absolute",
|
|
14508
14508
|
style: {
|
|
@@ -14535,14 +14535,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
|
|
|
14535
14535
|
style: { overflow: "visible", pointerEvents: "none" },
|
|
14536
14536
|
children: [
|
|
14537
14537
|
/* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
|
|
14538
|
-
|
|
14538
|
+
chunk6GFSF2ML_js.renderConnectorMarker(
|
|
14539
14539
|
startMarkerId,
|
|
14540
14540
|
startArrow,
|
|
14541
14541
|
strokePaint,
|
|
14542
14542
|
ss?.connectorStartArrowWidth,
|
|
14543
14543
|
ss?.connectorStartArrowLength
|
|
14544
14544
|
),
|
|
14545
|
-
|
|
14545
|
+
chunk6GFSF2ML_js.renderConnectorMarker(
|
|
14546
14546
|
endMarkerId,
|
|
14547
14547
|
endArrow,
|
|
14548
14548
|
strokePaint,
|
|
@@ -14752,14 +14752,14 @@ function getElementInteractionProps({
|
|
|
14752
14752
|
};
|
|
14753
14753
|
}
|
|
14754
14754
|
function renderDagDuotoneFilterForElement(el) {
|
|
14755
|
-
if (!
|
|
14755
|
+
if (!chunk6GFSF2ML_js.hasDagDuotoneEffect(el)) {
|
|
14756
14756
|
return null;
|
|
14757
14757
|
}
|
|
14758
14758
|
const duotone = el.shapeStyle?.dagDuotone;
|
|
14759
14759
|
if (!duotone) {
|
|
14760
14760
|
return null;
|
|
14761
14761
|
}
|
|
14762
|
-
return
|
|
14762
|
+
return chunk6GFSF2ML_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
|
|
14763
14763
|
}
|
|
14764
14764
|
function getContainerStyle({
|
|
14765
14765
|
el,
|
|
@@ -14787,10 +14787,10 @@ function getContainerStyle({
|
|
|
14787
14787
|
top: isFullscreenMedia ? fs.top : el.y,
|
|
14788
14788
|
width: isFullscreenMedia ? fs.width : painted.width,
|
|
14789
14789
|
...heightStyle,
|
|
14790
|
-
transform: isFullscreenMedia ? fs.transform :
|
|
14790
|
+
transform: isFullscreenMedia ? fs.transform : chunk6GFSF2ML_js.getElementTransform(el),
|
|
14791
14791
|
transformOrigin: "center",
|
|
14792
14792
|
overflow: overflowValue,
|
|
14793
|
-
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ?
|
|
14793
|
+
clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk6GFSF2ML_js.getCropShapeClipPath(el) : void 0,
|
|
14794
14794
|
zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
|
|
14795
14795
|
visibility: animationState?.visible === false ? "hidden" : "visible",
|
|
14796
14796
|
animation: animationState?.cssAnimation,
|
|
@@ -14835,9 +14835,9 @@ function getContainerStyle({
|
|
|
14835
14835
|
function shapeParams(element) {
|
|
14836
14836
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
14837
14837
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
14838
|
-
const strokeColor =
|
|
14839
|
-
const fillColor =
|
|
14840
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
14838
|
+
const strokeColor = chunk6GFSF2ML_js.normalizeHexColor(style?.strokeColor, chunk6GFSF2ML_js.DEFAULT_STROKE_COLOR);
|
|
14839
|
+
const fillColor = chunk6GFSF2ML_js.normalizeHexColor(style?.fillColor, chunk6GFSF2ML_js.DEFAULT_FILL_COLOR);
|
|
14840
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk6GFSF2ML_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
14841
14841
|
return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
|
|
14842
14842
|
}
|
|
14843
14843
|
var Extrusion3DOverlayMemo = /* @__PURE__ */ React17__default.default.memo(
|
|
@@ -14950,14 +14950,14 @@ function ShapeEffectOverlay({
|
|
|
14950
14950
|
const hollowHit = pptx.buildHollowHitOutline(element);
|
|
14951
14951
|
const fillLayer = pptx.getSilhouetteFillLayer(element);
|
|
14952
14952
|
const overlayFill = pptx.buildSubpathFillOverlay(element);
|
|
14953
|
-
const subpathFill = overlayFill?.silhouette && (
|
|
14953
|
+
const subpathFill = overlayFill?.silhouette && (chunk6GFSF2ML_js.rendersCustomVectorPath(element) || chunk6GFSF2ML_js.rendersWedgeCalloutVector(element)) ? void 0 : overlayFill;
|
|
14954
14954
|
if (!overlay && !softEdge && !bevelLightingFilter && !strokeOutline && !hollowHit && !subpathFill && !fillLayer && !reflection) {
|
|
14955
14955
|
return null;
|
|
14956
14956
|
}
|
|
14957
14957
|
const fillOverlayStyle = overlay ? {
|
|
14958
14958
|
position: "absolute",
|
|
14959
14959
|
inset: 0,
|
|
14960
|
-
...pptx$1.isImageLikeElement(element) ?
|
|
14960
|
+
...pptx$1.isImageLikeElement(element) ? chunk6GFSF2ML_js.getImageSurfaceMaskStyle(element) : {},
|
|
14961
14961
|
background: overlay.color,
|
|
14962
14962
|
mixBlendMode: overlay.blendMode,
|
|
14963
14963
|
pointerEvents: "none"
|
|
@@ -15176,10 +15176,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15176
15176
|
const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
|
|
15177
15177
|
const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
|
|
15178
15178
|
const visualAnimationState = backgroundAnimationState ?? animationState;
|
|
15179
|
-
const isTxt =
|
|
15179
|
+
const isTxt = chunk6GFSF2ML_js.isEditableTextElement(el) && allow.textEditable;
|
|
15180
15180
|
const txtSE = pptx$1.hasTextProperties(el) ? el.textStyle : void 0;
|
|
15181
15181
|
const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
|
|
15182
|
-
const ss =
|
|
15182
|
+
const ss = chunk6GFSF2ML_js.getShapeVisualStyle(
|
|
15183
15183
|
el,
|
|
15184
15184
|
hf,
|
|
15185
15185
|
fc,
|
|
@@ -15188,9 +15188,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15188
15188
|
visualAnimationState?.animatesFill,
|
|
15189
15189
|
visualAnimationState?.animatesStroke
|
|
15190
15190
|
);
|
|
15191
|
-
const ts =
|
|
15191
|
+
const ts = chunk6GFSF2ML_js.getTextStyleForElement(el, chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR);
|
|
15192
15192
|
const isImg = el.type === "picture" || el.type === "image";
|
|
15193
|
-
const vs =
|
|
15193
|
+
const vs = chunk6GFSF2ML_js.renderVectorShape(
|
|
15194
15194
|
el,
|
|
15195
15195
|
isImg ? false : hf,
|
|
15196
15196
|
fc,
|
|
@@ -15200,10 +15200,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15200
15200
|
visualAnimationState?.animatesStroke
|
|
15201
15201
|
);
|
|
15202
15202
|
const isModel3D = el.type === "model3d";
|
|
15203
|
-
const isConn =
|
|
15203
|
+
const isConn = chunk6GFSF2ML_js.isConnectorOrLineElement(el);
|
|
15204
15204
|
const shapeStyle3d = pptx$1.hasShapeProperties(el) ? el.shapeStyle : void 0;
|
|
15205
15205
|
const extrusionData = React17.useMemo(
|
|
15206
|
-
() =>
|
|
15206
|
+
() => chunk6GFSF2ML_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
|
|
15207
15207
|
[shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
|
|
15208
15208
|
);
|
|
15209
15209
|
const actionAffordance = useActionAffordance(el, canInteract);
|
|
@@ -15294,7 +15294,7 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15294
15294
|
"aria-hidden": aria.hidden ? true : void 0,
|
|
15295
15295
|
"aria-selected": isSelected ? true : void 0,
|
|
15296
15296
|
tabIndex: isFocusable ? 0 : -1,
|
|
15297
|
-
className:
|
|
15297
|
+
className: chunk6GFSF2ML_js.cn(
|
|
15298
15298
|
"absolute",
|
|
15299
15299
|
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
|
|
15300
15300
|
cur,
|
|
@@ -15374,9 +15374,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
|
|
|
15374
15374
|
txtSE,
|
|
15375
15375
|
txtS: ts,
|
|
15376
15376
|
vecShape: backgroundAnimationState && !isImg ? null : vs,
|
|
15377
|
-
imgStyle:
|
|
15378
|
-
imgFilter:
|
|
15379
|
-
imgOpacity:
|
|
15377
|
+
imgStyle: chunk6GFSF2ML_js.getImageRenderStyle(el),
|
|
15378
|
+
imgFilter: chunk6GFSF2ML_js.getImageEffectsFilter(el),
|
|
15379
|
+
imgOpacity: chunk6GFSF2ML_js.getImageEffectsOpacity(el),
|
|
15380
15380
|
imgAlt: imageAltText,
|
|
15381
15381
|
isTxtEl: isTxt,
|
|
15382
15382
|
media: mediaDataUrls,
|
|
@@ -15513,10 +15513,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
|
|
|
15513
15513
|
}
|
|
15514
15514
|
function renderInk(el, options) {
|
|
15515
15515
|
const replay = options?.replay ?? false;
|
|
15516
|
-
const strokes =
|
|
15516
|
+
const strokes = chunk6GFSF2ML_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
|
|
15517
15517
|
strokes.some((s) => s.circles || s.nibMarks);
|
|
15518
15518
|
const pressureSensitive = options?.pressureSensitive;
|
|
15519
|
-
const replayStyles = replay ?
|
|
15519
|
+
const replayStyles = replay ? chunk6GFSF2ML_js.getInkReplayStyles(el, options?.replayConfig) : null;
|
|
15520
15520
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15521
15521
|
"svg",
|
|
15522
15522
|
{
|
|
@@ -15524,7 +15524,7 @@ function renderInk(el, options) {
|
|
|
15524
15524
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15525
15525
|
preserveAspectRatio: "none",
|
|
15526
15526
|
children: [
|
|
15527
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15527
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk6GFSF2ML_js.INK_REPLAY_KEYFRAMES }),
|
|
15528
15528
|
strokes.map(
|
|
15529
15529
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
|
|
15530
15530
|
)
|
|
@@ -15535,7 +15535,7 @@ function renderInk(el, options) {
|
|
|
15535
15535
|
function renderGroup(children, parentGroupFill) {
|
|
15536
15536
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
|
|
15537
15537
|
const { hf, fc, sw, sc } = shapeParams(c);
|
|
15538
|
-
const baseSs =
|
|
15538
|
+
const baseSs = chunk6GFSF2ML_js.getShapeVisualStyle(c, hf, fc, sw, sc);
|
|
15539
15539
|
const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
|
|
15540
15540
|
const ss = inheritedFill ? {
|
|
15541
15541
|
...baseSs,
|
|
@@ -15546,9 +15546,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15546
15546
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
15547
15547
|
} : baseSs;
|
|
15548
15548
|
const isI = c.type === "picture" || c.type === "image";
|
|
15549
|
-
const vs =
|
|
15550
|
-
const ts =
|
|
15551
|
-
const isTxt =
|
|
15549
|
+
const vs = chunk6GFSF2ML_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
|
|
15550
|
+
const ts = chunk6GFSF2ML_js.getTextStyleForElement(c, chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR);
|
|
15551
|
+
const isTxt = chunk6GFSF2ML_js.isEditableTextElement(c);
|
|
15552
15552
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15553
15553
|
"div",
|
|
15554
15554
|
{
|
|
@@ -15557,9 +15557,9 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15557
15557
|
style: {
|
|
15558
15558
|
left: c.x,
|
|
15559
15559
|
top: c.y,
|
|
15560
|
-
width: Math.max(c.width,
|
|
15561
|
-
height: Math.max(c.height,
|
|
15562
|
-
transform:
|
|
15560
|
+
width: Math.max(c.width, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE),
|
|
15561
|
+
height: Math.max(c.height, chunk6GFSF2ML_js.MIN_ELEMENT_SIZE),
|
|
15562
|
+
transform: chunk6GFSF2ML_js.getElementTransform(c),
|
|
15563
15563
|
transformOrigin: "center",
|
|
15564
15564
|
...ss,
|
|
15565
15565
|
...isI ? {
|
|
@@ -15584,8 +15584,8 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15584
15584
|
// A nested group: recurse, chaining the inherited fill so a
|
|
15585
15585
|
// `grpFill` shape under a fill-less sub-group still paints.
|
|
15586
15586
|
renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
|
|
15587
|
-
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
15588
|
-
|
|
15587
|
+
) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk6GFSF2ML_js.getImageSurfaceStyle(c), children: [
|
|
15588
|
+
chunk6GFSF2ML_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15589
15589
|
TiledImageLayer,
|
|
15590
15590
|
{
|
|
15591
15591
|
element: c,
|
|
@@ -15598,7 +15598,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15598
15598
|
src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
|
|
15599
15599
|
alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
|
|
15600
15600
|
className: "pointer-events-none select-none",
|
|
15601
|
-
style:
|
|
15601
|
+
style: chunk6GFSF2ML_js.getImageRenderStyle(c),
|
|
15602
15602
|
draggable: false
|
|
15603
15603
|
}
|
|
15604
15604
|
),
|
|
@@ -15610,7 +15610,7 @@ function renderGroup(children, parentGroupFill) {
|
|
|
15610
15610
|
{
|
|
15611
15611
|
className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
|
|
15612
15612
|
style: ts,
|
|
15613
|
-
children:
|
|
15613
|
+
children: chunk6GFSF2ML_js.renderTextSegments(c, chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR)
|
|
15614
15614
|
}
|
|
15615
15615
|
) : null
|
|
15616
15616
|
] })
|
|
@@ -15624,8 +15624,8 @@ function renderContentPart(el, options) {
|
|
|
15624
15624
|
if (el.inkStrokes && el.inkStrokes.length > 0) {
|
|
15625
15625
|
const replay = options?.replay ?? false;
|
|
15626
15626
|
const pressureSensitive = options?.pressureSensitive ?? true;
|
|
15627
|
-
const strokes =
|
|
15628
|
-
const replayStyles = replay ?
|
|
15627
|
+
const strokes = chunk6GFSF2ML_js.buildContentPartStrokes(el);
|
|
15628
|
+
const replayStyles = replay ? chunk6GFSF2ML_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
|
|
15629
15629
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15630
15630
|
"svg",
|
|
15631
15631
|
{
|
|
@@ -15633,7 +15633,7 @@ function renderContentPart(el, options) {
|
|
|
15633
15633
|
viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
|
|
15634
15634
|
preserveAspectRatio: "none",
|
|
15635
15635
|
children: [
|
|
15636
|
-
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
15636
|
+
replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk6GFSF2ML_js.INK_REPLAY_KEYFRAMES }),
|
|
15637
15637
|
strokes.map(
|
|
15638
15638
|
(s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
|
|
15639
15639
|
)
|
|
@@ -15860,9 +15860,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
|
|
|
15860
15860
|
collaboration: connected,
|
|
15861
15861
|
model: pptx.createInlineListModelObserver(element),
|
|
15862
15862
|
activationSelection,
|
|
15863
|
-
children: seed && !connected ?
|
|
15863
|
+
children: seed && !connected ? chunk6GFSF2ML_js.renderTextSegments(
|
|
15864
15864
|
element,
|
|
15865
|
-
|
|
15865
|
+
chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR,
|
|
15866
15866
|
void 0,
|
|
15867
15867
|
void 0,
|
|
15868
15868
|
void 0,
|
|
@@ -16086,8 +16086,8 @@ function InlineTextEditor({
|
|
|
16086
16086
|
pending.endOffset
|
|
16087
16087
|
);
|
|
16088
16088
|
});
|
|
16089
|
-
const warpStyle =
|
|
16090
|
-
const compensationTransform =
|
|
16089
|
+
const warpStyle = chunk6GFSF2ML_js.getTextWarpStyle(textStyleRaw);
|
|
16090
|
+
const compensationTransform = chunk6GFSF2ML_js.getTextCompensationTransform(element);
|
|
16091
16091
|
const warpTransform = warpStyle?.transform;
|
|
16092
16092
|
const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
|
|
16093
16093
|
const wrapperStyle = {
|
|
@@ -16095,7 +16095,7 @@ function InlineTextEditor({
|
|
|
16095
16095
|
...textStyle,
|
|
16096
16096
|
...warpStyle,
|
|
16097
16097
|
transform: mergedTransform,
|
|
16098
|
-
transformOrigin: warpStyle?.transformOrigin || (compensationTransform ?
|
|
16098
|
+
transformOrigin: warpStyle?.transformOrigin || (compensationTransform ? chunk6GFSF2ML_js.getTextCompensationOrigin(element) : "center")
|
|
16099
16099
|
};
|
|
16100
16100
|
const nextInlineStyleValue = (property) => {
|
|
16101
16101
|
if (!pptx$1.hasTextProperties(element)) {
|
|
@@ -16170,7 +16170,7 @@ function InlineTextEditor({
|
|
|
16170
16170
|
const text = e.clipboardData.getData("text/plain");
|
|
16171
16171
|
document.execCommand("insertText", false, text);
|
|
16172
16172
|
},
|
|
16173
|
-
children: list.seed ? list.children : seed.hasRichSegments ?
|
|
16173
|
+
children: list.seed ? list.children : seed.hasRichSegments ? chunk6GFSF2ML_js.renderTextSegments(element, chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR) : seed.initialText
|
|
16174
16174
|
},
|
|
16175
16175
|
list.seed?.paragraphs[0].token ?? "plain"
|
|
16176
16176
|
);
|
|
@@ -16335,7 +16335,7 @@ function OleActionFooter({
|
|
|
16335
16335
|
info,
|
|
16336
16336
|
showActions
|
|
16337
16337
|
}) {
|
|
16338
|
-
const { t } =
|
|
16338
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
16339
16339
|
if (!showActions || !info.canDownload || !el.oleEmbeddedData) {
|
|
16340
16340
|
return null;
|
|
16341
16341
|
}
|
|
@@ -16444,7 +16444,7 @@ function SmartArtInlineNodeEditor({
|
|
|
16444
16444
|
onCommit,
|
|
16445
16445
|
onCancel
|
|
16446
16446
|
}) {
|
|
16447
|
-
const { t } =
|
|
16447
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
16448
16448
|
const ref = React17__default.default.useRef(null);
|
|
16449
16449
|
const [value, setValue] = React17__default.default.useState(initialText);
|
|
16450
16450
|
const settled = React17__default.default.useRef(false);
|
|
@@ -17072,7 +17072,7 @@ function SmartArtRendererImpl({
|
|
|
17072
17072
|
onUpdateElement,
|
|
17073
17073
|
animationState
|
|
17074
17074
|
}) {
|
|
17075
|
-
const { t } =
|
|
17075
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
17076
17076
|
if (element.type !== "smartArt" || !element.smartArtData) {
|
|
17077
17077
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17078
17078
|
"div",
|
|
@@ -17318,7 +17318,7 @@ function groupIntoParagraphs(element, fieldContext) {
|
|
|
17318
17318
|
element,
|
|
17319
17319
|
fieldContext ? (seg) => {
|
|
17320
17320
|
if (seg.fieldType) {
|
|
17321
|
-
const substituted =
|
|
17321
|
+
const substituted = chunk6GFSF2ML_js.substituteFieldText(
|
|
17322
17322
|
seg.text,
|
|
17323
17323
|
seg.fieldType,
|
|
17324
17324
|
fieldContext,
|
|
@@ -17349,7 +17349,7 @@ function getSegmentTspanProps(segment, element, fallbackColor, fitScale = 1) {
|
|
|
17349
17349
|
segment,
|
|
17350
17350
|
element.textStyle,
|
|
17351
17351
|
fallbackColor,
|
|
17352
|
-
|
|
17352
|
+
chunk6GFSF2ML_js.DEFAULT_TEXT_FONT_SIZE
|
|
17353
17353
|
);
|
|
17354
17354
|
return {
|
|
17355
17355
|
fill: paint.fill,
|
|
@@ -17364,8 +17364,8 @@ function resolveSegmentFont(segment, element) {
|
|
|
17364
17364
|
const s = segment.style || {};
|
|
17365
17365
|
const family = s.fontFamily || element.textStyle?.fontFamily;
|
|
17366
17366
|
return {
|
|
17367
|
-
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) :
|
|
17368
|
-
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ??
|
|
17367
|
+
fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunk6GFSF2ML_js.DEFAULT_FONT_FAMILY,
|
|
17368
|
+
fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk6GFSF2ML_js.DEFAULT_TEXT_FONT_SIZE,
|
|
17369
17369
|
bold: s.bold ?? element.textStyle?.bold,
|
|
17370
17370
|
italic: s.italic ?? element.textStyle?.italic
|
|
17371
17371
|
};
|
|
@@ -17453,9 +17453,9 @@ function WarpedText({
|
|
|
17453
17453
|
const warpAdj2 = textEl.textStyle?.textWarpAdj2;
|
|
17454
17454
|
const align = textEl.textStyle?.align ?? "center";
|
|
17455
17455
|
const { startOffset, textAnchor } = getAlignmentProps(align);
|
|
17456
|
-
const baseFontSize = textEl.textStyle?.fontSize ??
|
|
17457
|
-
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) :
|
|
17458
|
-
const baseFill =
|
|
17456
|
+
const baseFontSize = textEl.textStyle?.fontSize ?? chunk6GFSF2ML_js.DEFAULT_TEXT_FONT_SIZE;
|
|
17457
|
+
const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunk6GFSF2ML_js.DEFAULT_FONT_FAMILY;
|
|
17458
|
+
const baseFill = chunk6GFSF2ML_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
|
|
17459
17459
|
if (pptx.hasGlyphEnvelope(preset)) {
|
|
17460
17460
|
const perLine = pptx.buildGlyphEnvelopeBlock(
|
|
17461
17461
|
preset,
|
|
@@ -17618,7 +17618,7 @@ function renderEquationBox(el, interactive) {
|
|
|
17618
17618
|
}
|
|
17619
17619
|
const style = pptx.buildEquationBlockStyle(
|
|
17620
17620
|
pptx.buildTextBlockStyle(el, {
|
|
17621
|
-
fallbackColor:
|
|
17621
|
+
fallbackColor: chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR,
|
|
17622
17622
|
bodyLayout: true,
|
|
17623
17623
|
pxLengths: true
|
|
17624
17624
|
})
|
|
@@ -17626,7 +17626,7 @@ function renderEquationBox(el, interactive) {
|
|
|
17626
17626
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17627
17627
|
"div",
|
|
17628
17628
|
{
|
|
17629
|
-
className:
|
|
17629
|
+
className: chunk6GFSF2ML_js.cn("relative z-10 w-full h-full", interactive ? "" : "pointer-events-none"),
|
|
17630
17630
|
style,
|
|
17631
17631
|
children: equations
|
|
17632
17632
|
}
|
|
@@ -17652,7 +17652,7 @@ function renderTextElementBody(options) {
|
|
|
17652
17652
|
const useSvgWarp = pptx.shouldUseSvgWarp(
|
|
17653
17653
|
pptx$1.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
|
|
17654
17654
|
);
|
|
17655
|
-
const scene3dStyle = pptx$1.hasTextProperties(el) ?
|
|
17655
|
+
const scene3dStyle = pptx$1.hasTextProperties(el) ? chunk6GFSF2ML_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
|
|
17656
17656
|
const rotationTransform = pptx.getTextBodyRotationTransform(el);
|
|
17657
17657
|
const compensation = pptx.getTextCompensationStyle(el);
|
|
17658
17658
|
const composedTransform = [rotationTransform, compensation?.transform, scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
|
|
@@ -17685,18 +17685,18 @@ function renderTextElementBody(options) {
|
|
|
17685
17685
|
shouldRenderText && !equationBox && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
17686
17686
|
"div",
|
|
17687
17687
|
{
|
|
17688
|
-
className:
|
|
17688
|
+
className: chunk6GFSF2ML_js.cn(
|
|
17689
17689
|
"relative z-10 w-full h-full",
|
|
17690
17690
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17691
17691
|
),
|
|
17692
|
-
style: { ...
|
|
17692
|
+
style: { ...chunk6GFSF2ML_js.getTextLayoutStyle(el), ...transformStyle },
|
|
17693
17693
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17694
17694
|
WarpedText,
|
|
17695
17695
|
{
|
|
17696
17696
|
element: el,
|
|
17697
17697
|
width: el.width,
|
|
17698
17698
|
height: el.height,
|
|
17699
|
-
fallbackColor:
|
|
17699
|
+
fallbackColor: chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR,
|
|
17700
17700
|
findHighlights: findHl,
|
|
17701
17701
|
fieldContext
|
|
17702
17702
|
}
|
|
@@ -17705,19 +17705,19 @@ function renderTextElementBody(options) {
|
|
|
17705
17705
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
17706
17706
|
"div",
|
|
17707
17707
|
{
|
|
17708
|
-
className:
|
|
17708
|
+
className: chunk6GFSF2ML_js.cn(
|
|
17709
17709
|
"relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
|
|
17710
17710
|
onHyperlinkClick ? "" : "pointer-events-none"
|
|
17711
17711
|
),
|
|
17712
17712
|
style: {
|
|
17713
|
-
...
|
|
17713
|
+
...chunk6GFSF2ML_js.getTextLayoutStyle(el),
|
|
17714
17714
|
...txtS,
|
|
17715
|
-
...
|
|
17715
|
+
...chunk6GFSF2ML_js.getTextWarpStyle(txtSE),
|
|
17716
17716
|
...transformStyle
|
|
17717
17717
|
},
|
|
17718
|
-
children:
|
|
17718
|
+
children: chunk6GFSF2ML_js.renderTextSegments(
|
|
17719
17719
|
el,
|
|
17720
|
-
|
|
17720
|
+
chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR,
|
|
17721
17721
|
void 0,
|
|
17722
17722
|
findHl,
|
|
17723
17723
|
onHyperlinkClick,
|
|
@@ -17738,7 +17738,7 @@ function ZoomElementRenderer({
|
|
|
17738
17738
|
onZoomClick,
|
|
17739
17739
|
sourceSlideIndex
|
|
17740
17740
|
}) {
|
|
17741
|
-
const { t } =
|
|
17741
|
+
const { t } = chunk6GFSF2ML_js.useTranslation();
|
|
17742
17742
|
const summaryView = pptx.buildSummaryZoomView(
|
|
17743
17743
|
element,
|
|
17744
17744
|
(index) => {
|
|
@@ -18036,7 +18036,7 @@ function renderBody(options) {
|
|
|
18036
18036
|
);
|
|
18037
18037
|
}
|
|
18038
18038
|
if (isImg) {
|
|
18039
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style:
|
|
18039
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk6GFSF2ML_js.getImageSurfaceStyle(el), children: [
|
|
18040
18040
|
renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
|
|
18041
18041
|
vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
|
|
18042
18042
|
] });
|
|
@@ -18053,7 +18053,7 @@ function renderBody(options) {
|
|
|
18053
18053
|
textDirection: txtSE?.textDirection,
|
|
18054
18054
|
textStyle: txtS,
|
|
18055
18055
|
textStyleRaw: txtSE,
|
|
18056
|
-
layoutStyle:
|
|
18056
|
+
layoutStyle: chunk6GFSF2ML_js.getTextLayoutStyle(el),
|
|
18057
18057
|
element: el,
|
|
18058
18058
|
onCommit,
|
|
18059
18059
|
onCancel,
|
|
@@ -18064,7 +18064,7 @@ function renderBody(options) {
|
|
|
18064
18064
|
] });
|
|
18065
18065
|
}
|
|
18066
18066
|
if (el.type === "table") {
|
|
18067
|
-
return
|
|
18067
|
+
return chunk6GFSF2ML_js.renderTableElement(el, txtS, {
|
|
18068
18068
|
editable: isSel,
|
|
18069
18069
|
selectedCell: isSel ? tableSt : null,
|
|
18070
18070
|
onSelectCell: onCellSel,
|
|
@@ -18097,7 +18097,7 @@ function renderBody(options) {
|
|
|
18097
18097
|
);
|
|
18098
18098
|
}
|
|
18099
18099
|
if (el.type === "media") {
|
|
18100
|
-
return
|
|
18100
|
+
return chunk6GFSF2ML_js.renderMediaElement(el, media, {
|
|
18101
18101
|
// Present mode autoplays every media element on the active slide,
|
|
18102
18102
|
// not only ones persisted with their own `autoPlay` flag (matching
|
|
18103
18103
|
// the other four bindings' unconditional `presenting`-gated
|
|
@@ -18153,27 +18153,27 @@ function renderBody(options) {
|
|
|
18153
18153
|
}
|
|
18154
18154
|
return renderGroup(el.children, pptx.getGroupChildParentFill(el));
|
|
18155
18155
|
}
|
|
18156
|
-
if (
|
|
18157
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
18156
|
+
if (chunk6GFSF2ML_js.shouldRenderFallbackLabel(el, isTxtEl)) {
|
|
18157
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk6GFSF2ML_js.getElementLabel(el) });
|
|
18158
18158
|
}
|
|
18159
18159
|
return renderTextElementBody(options);
|
|
18160
18160
|
}
|
|
18161
18161
|
function defaultTextColorForFill(fillColor) {
|
|
18162
18162
|
const hex = String(fillColor ?? "").replace(/^#/u, "");
|
|
18163
18163
|
if (!/^[0-9a-f]{6}$/iu.test(hex)) {
|
|
18164
|
-
return
|
|
18164
|
+
return chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR;
|
|
18165
18165
|
}
|
|
18166
18166
|
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);
|
|
18167
18167
|
const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
|
|
18168
|
-
return luminance > 0.179 ?
|
|
18168
|
+
return luminance > 0.179 ? chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR : "#ffffff";
|
|
18169
18169
|
}
|
|
18170
18170
|
function getStaticElementVisualState(element, parentGroupFill) {
|
|
18171
18171
|
const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
|
|
18172
|
-
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(
|
|
18173
|
-
const fill =
|
|
18172
|
+
const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk6GFSF2ML_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
|
|
18173
|
+
const fill = chunk6GFSF2ML_js.normalizeHexColor(style?.fillColor, chunk6GFSF2ML_js.DEFAULT_FILL_COLOR);
|
|
18174
18174
|
const strokeWidth = pptx.paintedStrokeWidth(style);
|
|
18175
|
-
const stroke =
|
|
18176
|
-
const baseVisualStyle =
|
|
18175
|
+
const stroke = chunk6GFSF2ML_js.normalizeHexColor(style?.strokeColor, chunk6GFSF2ML_js.DEFAULT_STROKE_COLOR);
|
|
18176
|
+
const baseVisualStyle = chunk6GFSF2ML_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
|
|
18177
18177
|
const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
|
|
18178
18178
|
const visualStyle = inheritedFill ? {
|
|
18179
18179
|
...baseVisualStyle,
|
|
@@ -18183,9 +18183,9 @@ function getStaticElementVisualState(element, parentGroupFill) {
|
|
|
18183
18183
|
backgroundSize: inheritedFill.backgroundSize,
|
|
18184
18184
|
backgroundPosition: inheritedFill.backgroundPosition
|
|
18185
18185
|
} : baseVisualStyle;
|
|
18186
|
-
const textStyle =
|
|
18186
|
+
const textStyle = chunk6GFSF2ML_js.getTextStyleForElement(
|
|
18187
18187
|
element,
|
|
18188
|
-
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) :
|
|
18188
|
+
element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk6GFSF2ML_js.DEFAULT_TEXT_COLOR
|
|
18189
18189
|
);
|
|
18190
18190
|
const isImage = element.type === "picture" || element.type === "image";
|
|
18191
18191
|
const letsTextOverflow = pptx$1.hasTextProperties(element) && Boolean(element.text?.trim());
|
|
@@ -18210,7 +18210,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
|
|
|
18210
18210
|
return { action, isActionable, contractRole };
|
|
18211
18211
|
}
|
|
18212
18212
|
function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
|
|
18213
|
-
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" ||
|
|
18213
|
+
const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunk6GFSF2ML_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
|
|
18214
18214
|
const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
|
|
18215
18215
|
return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
|
|
18216
18216
|
}
|
|
@@ -18293,7 +18293,7 @@ function StaticElementRendererImpl({
|
|
|
18293
18293
|
top: positioned ? element.y : void 0,
|
|
18294
18294
|
width: positioned ? Math.max(element.width, 1) : "100%",
|
|
18295
18295
|
height: positioned ? Math.max(element.height, 1) : "100%",
|
|
18296
|
-
transform: positioned ?
|
|
18296
|
+
transform: positioned ? chunk6GFSF2ML_js.getElementTransform(element) : void 0,
|
|
18297
18297
|
transformOrigin: "center",
|
|
18298
18298
|
zIndex,
|
|
18299
18299
|
...visualStyle,
|
|
@@ -18336,18 +18336,18 @@ function StaticElementRendererImpl({
|
|
|
18336
18336
|
spellCheck: false,
|
|
18337
18337
|
txtSE: pptx$1.hasTextProperties(element) ? element.textStyle : void 0,
|
|
18338
18338
|
txtS: textStyle,
|
|
18339
|
-
vecShape:
|
|
18339
|
+
vecShape: chunk6GFSF2ML_js.renderVectorShape(
|
|
18340
18340
|
element,
|
|
18341
18341
|
isImage ? false : hasFill,
|
|
18342
18342
|
fill,
|
|
18343
18343
|
strokeWidth,
|
|
18344
18344
|
stroke
|
|
18345
18345
|
),
|
|
18346
|
-
imgStyle: imageAnimation ? { ...
|
|
18347
|
-
imgFilter:
|
|
18348
|
-
imgOpacity:
|
|
18346
|
+
imgStyle: imageAnimation ? { ...chunk6GFSF2ML_js.getImageRenderStyle(element), animation: imageAnimation } : chunk6GFSF2ML_js.getImageRenderStyle(element),
|
|
18347
|
+
imgFilter: chunk6GFSF2ML_js.getImageEffectsFilter(element),
|
|
18348
|
+
imgOpacity: chunk6GFSF2ML_js.getImageEffectsOpacity(element),
|
|
18349
18349
|
imgAlt: "",
|
|
18350
|
-
isTxtEl:
|
|
18350
|
+
isTxtEl: chunk6GFSF2ML_js.isEditableTextElement(element),
|
|
18351
18351
|
media: mediaDataUrls,
|
|
18352
18352
|
tableSt: null,
|
|
18353
18353
|
isSel: false,
|
|
@@ -18395,7 +18395,7 @@ function SlideLayer({
|
|
|
18395
18395
|
style: {
|
|
18396
18396
|
width: safeWidth,
|
|
18397
18397
|
height: safeHeight,
|
|
18398
|
-
backgroundColor: slide.backgroundColor ?
|
|
18398
|
+
backgroundColor: slide.backgroundColor ? chunk6GFSF2ML_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
|
|
18399
18399
|
backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
|
|
18400
18400
|
backgroundSize: slide.backgroundImage ? "cover" : void 0,
|
|
18401
18401
|
backgroundPosition: slide.backgroundImage ? "center" : void 0
|