pptx-react-viewer 3.4.1 → 3.5.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 +7 -0
- package/dist/{AiChatPanel-AIM55U76.mjs → AiChatPanel-KZX4NZ5R.mjs} +4 -4
- package/dist/AiChatPanel-KZX4NZ5R.mjs.br +0 -0
- package/dist/AiChatPanel-KZX4NZ5R.mjs.gz +0 -0
- package/dist/{AiChatPanel-Q2ZVO4RR.js → AiChatPanel-M7RSMOZV.js} +25 -25
- package/dist/AiChatPanel-M7RSMOZV.js.br +0 -0
- package/dist/AiChatPanel-M7RSMOZV.js.gz +0 -0
- package/dist/{Area3DChartScene-W5HVINQ6.js → Area3DChartScene-7AYWOGBC.js} +2 -2
- package/dist/Area3DChartScene-7AYWOGBC.js.br +0 -0
- package/dist/Area3DChartScene-7AYWOGBC.js.gz +0 -0
- package/dist/{Area3DChartScene-DNLGOR5F.mjs → Area3DChartScene-AD6BO2VM.mjs} +1 -1
- package/dist/Area3DChartScene-AD6BO2VM.mjs.br +3 -0
- package/dist/Area3DChartScene-AD6BO2VM.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-SOO62TCP.js → Bar3DChartScene-FWKMBT4O.js} +2 -2
- package/dist/{Bar3DChartScene-SOO62TCP.js.br → Bar3DChartScene-FWKMBT4O.js.br} +0 -0
- package/dist/Bar3DChartScene-FWKMBT4O.js.gz +0 -0
- package/dist/{Bar3DChartScene-VYKQAY6X.mjs → Bar3DChartScene-JOGF3C5E.mjs} +1 -1
- package/dist/Bar3DChartScene-JOGF3C5E.mjs.br +0 -0
- package/dist/Bar3DChartScene-JOGF3C5E.mjs.gz +0 -0
- package/dist/{Line3DChartScene-ZVELPNOD.mjs → Line3DChartScene-ADORAAXV.mjs} +1 -1
- package/dist/Line3DChartScene-ADORAAXV.mjs.br +3 -0
- package/dist/Line3DChartScene-ADORAAXV.mjs.gz +0 -0
- package/dist/{Line3DChartScene-BAP3YA3R.js → Line3DChartScene-X2BJNGIK.js} +2 -2
- package/dist/Line3DChartScene-X2BJNGIK.js.br +0 -0
- package/dist/Line3DChartScene-X2BJNGIK.js.gz +0 -0
- package/dist/{Model3DScene-BWNVCCAZ.js → Model3DScene-KSZHZAVD.js} +2 -2
- package/dist/Model3DScene-KSZHZAVD.js.br +0 -0
- package/dist/Model3DScene-KSZHZAVD.js.gz +0 -0
- package/dist/{Model3DScene-ZJWU5IUY.mjs → Model3DScene-RORDMQ6Q.mjs} +1 -1
- package/dist/Model3DScene-RORDMQ6Q.mjs.br +0 -0
- package/dist/Model3DScene-RORDMQ6Q.mjs.gz +0 -0
- package/dist/{PieChart3DScene-2DJE4BM3.js → PieChart3DScene-BXMI7U2X.js} +2 -2
- package/dist/PieChart3DScene-BXMI7U2X.js.br +0 -0
- package/dist/PieChart3DScene-BXMI7U2X.js.gz +0 -0
- package/dist/{PieChart3DScene-NNLKJ6LN.mjs → PieChart3DScene-IXJHU3MI.mjs} +1 -1
- package/dist/PieChart3DScene-IXJHU3MI.mjs.br +0 -0
- package/dist/PieChart3DScene-IXJHU3MI.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-NWB4QAOI.mjs → SurfaceChart3DScene-SJ2IDLP6.mjs} +1 -1
- package/dist/SurfaceChart3DScene-SJ2IDLP6.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-SJ2IDLP6.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-WRSCQKJV.js → SurfaceChart3DScene-TTBGVNYL.js} +2 -2
- package/dist/SurfaceChart3DScene-TTBGVNYL.js.br +0 -0
- package/dist/SurfaceChart3DScene-TTBGVNYL.js.gz +0 -0
- package/dist/{chunk-4YGGPPJZ.mjs → chunk-24XC5C2B.mjs} +2 -2
- package/dist/chunk-24XC5C2B.mjs.br +0 -0
- package/dist/chunk-24XC5C2B.mjs.gz +0 -0
- package/dist/{chunk-GKRE7272.js → chunk-AEP6X24D.js} +169 -169
- package/dist/chunk-AEP6X24D.js.br +0 -0
- package/dist/chunk-AEP6X24D.js.gz +0 -0
- package/dist/{chunk-SEJEVNXW.js → chunk-AU5YFUUK.js} +54 -5
- package/dist/chunk-AU5YFUUK.js.br +0 -0
- package/dist/chunk-AU5YFUUK.js.gz +0 -0
- package/dist/{chunk-QEAU2XTI.mjs → chunk-C7ZSRYF4.mjs} +76 -26
- package/dist/chunk-C7ZSRYF4.mjs.br +0 -0
- package/dist/chunk-C7ZSRYF4.mjs.gz +0 -0
- package/dist/{chunk-EM3D67TB.mjs → chunk-DUC32SQJ.mjs} +42 -19
- package/dist/chunk-DUC32SQJ.mjs.br +0 -0
- package/dist/chunk-DUC32SQJ.mjs.gz +0 -0
- package/dist/{chunk-Y2B5EZEV.js → chunk-HCTJCUGP.js} +501 -451
- package/dist/chunk-HCTJCUGP.js.br +0 -0
- package/dist/chunk-HCTJCUGP.js.gz +0 -0
- package/dist/{chunk-XWUMM2TX.mjs → chunk-JCJ3EPG6.mjs} +1 -0
- package/dist/chunk-JCJ3EPG6.mjs.br +0 -0
- package/dist/chunk-JCJ3EPG6.mjs.gz +0 -0
- package/dist/{chunk-PDVJNNWP.js → chunk-JTS7AZYQ.js} +5 -5
- package/dist/chunk-JTS7AZYQ.js.br +0 -0
- package/dist/chunk-JTS7AZYQ.js.gz +0 -0
- package/dist/{chunk-UNIJUD5C.js → chunk-UTIMT5CZ.js} +1 -0
- package/dist/chunk-UTIMT5CZ.js.br +0 -0
- package/dist/chunk-UTIMT5CZ.js.gz +0 -0
- package/dist/{chunk-IJLTDBXT.mjs → chunk-X6OJYCTW.mjs} +1 -1
- package/dist/chunk-X6OJYCTW.mjs.br +0 -0
- package/dist/chunk-X6OJYCTW.mjs.gz +0 -0
- package/dist/{chunk-PADP3NUM.mjs → chunk-X7L3RHFQ.mjs} +52 -6
- package/dist/chunk-X7L3RHFQ.mjs.br +0 -0
- package/dist/chunk-X7L3RHFQ.mjs.gz +0 -0
- package/dist/{chunk-WXQQ43IA.js → chunk-XSHYXVPD.js} +1200 -1177
- package/dist/chunk-XSHYXVPD.js.br +0 -0
- package/dist/chunk-XSHYXVPD.js.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +22 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-AIM55U76.mjs.br +0 -0
- package/dist/AiChatPanel-AIM55U76.mjs.gz +0 -0
- package/dist/AiChatPanel-Q2ZVO4RR.js.br +0 -0
- package/dist/AiChatPanel-Q2ZVO4RR.js.gz +0 -0
- package/dist/Area3DChartScene-DNLGOR5F.mjs.br +0 -0
- package/dist/Area3DChartScene-DNLGOR5F.mjs.gz +0 -0
- package/dist/Area3DChartScene-W5HVINQ6.js.br +0 -0
- package/dist/Area3DChartScene-W5HVINQ6.js.gz +0 -0
- package/dist/Bar3DChartScene-SOO62TCP.js.gz +0 -0
- package/dist/Bar3DChartScene-VYKQAY6X.mjs.br +0 -0
- package/dist/Bar3DChartScene-VYKQAY6X.mjs.gz +0 -0
- package/dist/Line3DChartScene-BAP3YA3R.js.br +0 -0
- package/dist/Line3DChartScene-BAP3YA3R.js.gz +0 -0
- package/dist/Line3DChartScene-ZVELPNOD.mjs.br +0 -0
- package/dist/Line3DChartScene-ZVELPNOD.mjs.gz +0 -0
- package/dist/Model3DScene-BWNVCCAZ.js.br +0 -0
- package/dist/Model3DScene-BWNVCCAZ.js.gz +0 -0
- package/dist/Model3DScene-ZJWU5IUY.mjs.br +0 -0
- package/dist/Model3DScene-ZJWU5IUY.mjs.gz +0 -0
- package/dist/PieChart3DScene-2DJE4BM3.js.br +0 -0
- package/dist/PieChart3DScene-2DJE4BM3.js.gz +0 -0
- package/dist/PieChart3DScene-NNLKJ6LN.mjs.br +0 -0
- package/dist/PieChart3DScene-NNLKJ6LN.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-NWB4QAOI.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-NWB4QAOI.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-WRSCQKJV.js.br +0 -0
- package/dist/SurfaceChart3DScene-WRSCQKJV.js.gz +0 -0
- package/dist/chunk-4YGGPPJZ.mjs.br +0 -0
- package/dist/chunk-4YGGPPJZ.mjs.gz +0 -0
- package/dist/chunk-EM3D67TB.mjs.br +0 -0
- package/dist/chunk-EM3D67TB.mjs.gz +0 -0
- package/dist/chunk-GKRE7272.js.br +0 -0
- package/dist/chunk-GKRE7272.js.gz +0 -0
- package/dist/chunk-IJLTDBXT.mjs.br +0 -0
- package/dist/chunk-IJLTDBXT.mjs.gz +0 -0
- package/dist/chunk-PADP3NUM.mjs.br +0 -0
- package/dist/chunk-PADP3NUM.mjs.gz +0 -0
- package/dist/chunk-PDVJNNWP.js.br +0 -0
- package/dist/chunk-PDVJNNWP.js.gz +0 -0
- package/dist/chunk-QEAU2XTI.mjs.br +0 -0
- package/dist/chunk-QEAU2XTI.mjs.gz +0 -0
- package/dist/chunk-SEJEVNXW.js.br +0 -0
- package/dist/chunk-SEJEVNXW.js.gz +0 -0
- package/dist/chunk-UNIJUD5C.js.br +0 -0
- package/dist/chunk-UNIJUD5C.js.gz +0 -0
- package/dist/chunk-WXQQ43IA.js.br +0 -0
- package/dist/chunk-WXQQ43IA.js.gz +0 -0
- package/dist/chunk-XWUMM2TX.mjs.br +0 -0
- package/dist/chunk-XWUMM2TX.mjs.gz +0 -0
- package/dist/chunk-Y2B5EZEV.js.br +0 -0
- package/dist/chunk-Y2B5EZEV.js.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkAU5YFUUK_js = require('./chunk-AU5YFUUK.js');
|
|
4
|
+
var chunkUTIMT5CZ_js = require('./chunk-UTIMT5CZ.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React6 = require('react');
|
|
@@ -15,7 +15,7 @@ var React6__default = /*#__PURE__*/_interopDefault(React6);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkAU5YFUUK_js.getAnimationInitialStyle(preset, nativeAnimation);
|
|
19
19
|
}
|
|
20
20
|
function cn(...inputs) {
|
|
21
21
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
@@ -23,7 +23,7 @@ function cn(...inputs) {
|
|
|
23
23
|
|
|
24
24
|
// src/viewer/utils/clone.ts
|
|
25
25
|
function cloneHistorySnapshot2(snapshot) {
|
|
26
|
-
return
|
|
26
|
+
return chunkAU5YFUUK_js.cloneHistorySnapshot(snapshot);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/viewer/constants/scalar.ts
|
|
@@ -61,7 +61,7 @@ var TOOLBAR_SECTIONS = [
|
|
|
61
61
|
{ id: "view", labelKey: "pptx.ribbon.tab.view" },
|
|
62
62
|
{ id: "help", labelKey: "pptx.ribbon.tab.help" }
|
|
63
63
|
];
|
|
64
|
-
var SHORTCUT_REFERENCE_ITEMS =
|
|
64
|
+
var SHORTCUT_REFERENCE_ITEMS = chunkAU5YFUUK_js.VIEWER_SHORTCUT_REFERENCE;
|
|
65
65
|
|
|
66
66
|
// src/viewer/constants/theme.ts
|
|
67
67
|
var THEME_COLOR_SWATCHES = [
|
|
@@ -105,7 +105,7 @@ var GLYPH_COMPONENTS = {
|
|
|
105
105
|
plus: lu.LuPlus,
|
|
106
106
|
triangle: lu.LuTriangle
|
|
107
107
|
};
|
|
108
|
-
var SHAPE_PRESETS =
|
|
108
|
+
var SHAPE_PRESETS = chunkAU5YFUUK_js.SHAPE_PRESET_DEFS.map(
|
|
109
109
|
(def) => ({
|
|
110
110
|
type: def.type,
|
|
111
111
|
label: def.label,
|
|
@@ -130,7 +130,7 @@ var ARROW_SIZE_OPTIONS = [
|
|
|
130
130
|
{ value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
|
|
131
131
|
{ value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
|
|
132
132
|
];
|
|
133
|
-
var STROKE_DASH_OPTIONS2 =
|
|
133
|
+
var STROKE_DASH_OPTIONS2 = chunkAU5YFUUK_js.STROKE_DASH_OPTIONS;
|
|
134
134
|
|
|
135
135
|
// src/viewer/utils/shape-types.tsx
|
|
136
136
|
function getShapeType(shapeType) {
|
|
@@ -239,7 +239,7 @@ function isConnectorOrLineElement(element) {
|
|
|
239
239
|
if (element.type === "connector") {
|
|
240
240
|
return true;
|
|
241
241
|
}
|
|
242
|
-
if (!
|
|
242
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
243
243
|
return false;
|
|
244
244
|
}
|
|
245
245
|
const st = getShapeType(element.shapeType);
|
|
@@ -248,17 +248,17 @@ function isConnectorOrLineElement(element) {
|
|
|
248
248
|
|
|
249
249
|
// src/viewer/utils/image-style.ts
|
|
250
250
|
function getImageMaskStyle(element) {
|
|
251
|
-
if (!
|
|
251
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
252
252
|
return void 0;
|
|
253
253
|
}
|
|
254
|
-
const geometry =
|
|
254
|
+
const geometry = chunkAU5YFUUK_js.resolveShapeGeometry(element);
|
|
255
255
|
if (geometry.kind === "borderRadius") {
|
|
256
256
|
return { borderRadius: geometry.radius };
|
|
257
257
|
}
|
|
258
258
|
return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
|
|
259
259
|
}
|
|
260
260
|
function getImageRenderStyle(element) {
|
|
261
|
-
const fit =
|
|
261
|
+
const fit = chunkAU5YFUUK_js.getImageFitStyle(element);
|
|
262
262
|
return {
|
|
263
263
|
// A translated/scaled crop must be masked by its stationary wrapper, not
|
|
264
264
|
// by the moving bitmap itself.
|
|
@@ -275,7 +275,7 @@ function getImageSurfaceMaskStyle(element) {
|
|
|
275
275
|
};
|
|
276
276
|
}
|
|
277
277
|
function getImageSurfaceStyle(element) {
|
|
278
|
-
const fill =
|
|
278
|
+
const fill = chunkAU5YFUUK_js.hasShapeProperties(element) ? chunkAU5YFUUK_js.getComputedFillStyle(element) : void 0;
|
|
279
279
|
return {
|
|
280
280
|
position: "absolute",
|
|
281
281
|
inset: 0,
|
|
@@ -288,13 +288,13 @@ function getImageSurfaceStyle(element) {
|
|
|
288
288
|
};
|
|
289
289
|
}
|
|
290
290
|
function getCropShapeClipPath2(element) {
|
|
291
|
-
if (!
|
|
291
|
+
if (!chunkAU5YFUUK_js.isImageLikeElement(element)) {
|
|
292
292
|
return void 0;
|
|
293
293
|
}
|
|
294
|
-
return
|
|
294
|
+
return chunkAU5YFUUK_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
295
295
|
}
|
|
296
296
|
function getImageTilingStyle2(element) {
|
|
297
|
-
return
|
|
297
|
+
return chunkAU5YFUUK_js.getImageTilingStyle(element);
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -436,7 +436,7 @@ function VideoWithMetadata({
|
|
|
436
436
|
{
|
|
437
437
|
ref: mediaRef,
|
|
438
438
|
className: "w-full h-full pointer-events-auto",
|
|
439
|
-
style: isFullScreen ? { objectFit: "cover" } :
|
|
439
|
+
style: isFullScreen ? { objectFit: "cover" } : chunkAU5YFUUK_js.getImageFitStyle(element),
|
|
440
440
|
controls: showTransport,
|
|
441
441
|
preload: "metadata",
|
|
442
442
|
playsInline: true,
|
|
@@ -509,7 +509,7 @@ function PresentationMediaController({
|
|
|
509
509
|
}
|
|
510
510
|
};
|
|
511
511
|
}, []);
|
|
512
|
-
const { volume: playbackVolume, playbackRate } =
|
|
512
|
+
const { volume: playbackVolume, playbackRate } = chunkAU5YFUUK_js.mediaPlaybackAttributes({
|
|
513
513
|
loop: element.loop,
|
|
514
514
|
volume: element.volume,
|
|
515
515
|
playbackSpeed: element.playbackSpeed
|
|
@@ -644,7 +644,7 @@ function PresentationMediaController({
|
|
|
644
644
|
}
|
|
645
645
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
646
646
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
647
|
-
if (
|
|
647
|
+
if (chunkAU5YFUUK_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
648
648
|
return;
|
|
649
649
|
}
|
|
650
650
|
}
|
|
@@ -687,7 +687,7 @@ function PresentationMediaController({
|
|
|
687
687
|
] });
|
|
688
688
|
}
|
|
689
689
|
function label(key) {
|
|
690
|
-
return key === void 0 ? void 0 :
|
|
690
|
+
return key === void 0 ? void 0 : chunkUTIMT5CZ_js.translationsEn[key];
|
|
691
691
|
}
|
|
692
692
|
function FallbackIcon({
|
|
693
693
|
paths,
|
|
@@ -723,17 +723,17 @@ function Badge({
|
|
|
723
723
|
"div",
|
|
724
724
|
{
|
|
725
725
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
726
|
-
...{ [
|
|
726
|
+
...{ [chunkAU5YFUUK_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
727
727
|
children: [
|
|
728
728
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
729
729
|
FallbackIcon,
|
|
730
730
|
{
|
|
731
|
-
paths:
|
|
731
|
+
paths: chunkAU5YFUUK_js.mediaFallbackIcon(visual, element.mediaType),
|
|
732
732
|
size: isMissing ? 32 : 48,
|
|
733
733
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
734
734
|
}
|
|
735
735
|
),
|
|
736
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
736
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkAU5YFUUK_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
737
737
|
]
|
|
738
738
|
}
|
|
739
739
|
);
|
|
@@ -750,17 +750,17 @@ function Placeholder({
|
|
|
750
750
|
"div",
|
|
751
751
|
{
|
|
752
752
|
className: `w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none rounded ${isMissing ? "bg-black/30 border border-dashed border-white/20" : element.mediaType === "audio" ? "bg-black/10" : "bg-black/20"}`,
|
|
753
|
-
...{ [
|
|
753
|
+
...{ [chunkAU5YFUUK_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
754
754
|
children: [
|
|
755
755
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
756
756
|
FallbackIcon,
|
|
757
757
|
{
|
|
758
|
-
paths:
|
|
758
|
+
paths: chunkAU5YFUUK_js.mediaFallbackIcon(visual, element.mediaType),
|
|
759
759
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
760
760
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
761
761
|
}
|
|
762
762
|
),
|
|
763
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
763
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkAU5YFUUK_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
764
764
|
]
|
|
765
765
|
}
|
|
766
766
|
);
|
|
@@ -770,7 +770,7 @@ function renderMediaFallback({
|
|
|
770
770
|
posterUrl,
|
|
771
771
|
surface
|
|
772
772
|
}) {
|
|
773
|
-
const visual =
|
|
773
|
+
const visual = chunkAU5YFUUK_js.mediaFallbackVisual(surface, {
|
|
774
774
|
hasPoster: Boolean(posterUrl),
|
|
775
775
|
missing: element.mediaMissing === true
|
|
776
776
|
});
|
|
@@ -780,9 +780,9 @@ function renderMediaFallback({
|
|
|
780
780
|
"img",
|
|
781
781
|
{
|
|
782
782
|
src: posterUrl,
|
|
783
|
-
alt: visual.dimPoster ?
|
|
783
|
+
alt: visual.dimPoster ? chunkUTIMT5CZ_js.translationsEn["pptx.media.posterAlt"] : chunkUTIMT5CZ_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
784
784
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
785
|
-
style:
|
|
785
|
+
style: chunkAU5YFUUK_js.getImageFitStyle(element)
|
|
786
786
|
}
|
|
787
787
|
),
|
|
788
788
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
@@ -792,7 +792,7 @@ function renderMediaFallback({
|
|
|
792
792
|
}
|
|
793
793
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
794
794
|
if (element.type !== "media") {
|
|
795
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
795
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.media.title"] });
|
|
796
796
|
}
|
|
797
797
|
const mediaType = element.mediaType;
|
|
798
798
|
const mediaPath = element.mediaPath;
|
|
@@ -800,7 +800,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
800
800
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
801
801
|
const trimFragment = buildTrimFragment(element);
|
|
802
802
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
803
|
-
const shouldLoop =
|
|
803
|
+
const shouldLoop = chunkAU5YFUUK_js.mediaPlaybackAttributes(element).loop;
|
|
804
804
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
805
805
|
const isFullScreen = options?.fullScreen === true;
|
|
806
806
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -878,25 +878,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
878
878
|
if (surface.presenting || surface.preview) {
|
|
879
879
|
return null;
|
|
880
880
|
}
|
|
881
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
881
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.media.title"] });
|
|
882
882
|
}
|
|
883
883
|
|
|
884
884
|
// src/viewer/utils/text-utils.tsx
|
|
885
885
|
function getTextStyleForElement(element, fallbackColor) {
|
|
886
|
-
return
|
|
886
|
+
return chunkAU5YFUUK_js.buildTextBlockStyle(element, { fallbackColor });
|
|
887
887
|
}
|
|
888
888
|
|
|
889
889
|
// src/viewer/utils/text-layout.tsx
|
|
890
890
|
function getTextLayoutStyle(element) {
|
|
891
|
-
if (!
|
|
891
|
+
if (!chunkAU5YFUUK_js.hasTextProperties(element)) {
|
|
892
892
|
return {};
|
|
893
893
|
}
|
|
894
|
-
const writingMode =
|
|
895
|
-
const textOrientation =
|
|
896
|
-
const verticalDirection =
|
|
894
|
+
const writingMode = chunkAU5YFUUK_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
895
|
+
const textOrientation = chunkAU5YFUUK_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
896
|
+
const verticalDirection = chunkAU5YFUUK_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
897
897
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
898
898
|
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
899
|
-
const hasParagraphIndents =
|
|
899
|
+
const hasParagraphIndents = chunkAU5YFUUK_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
900
900
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
901
901
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
902
902
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -905,7 +905,7 @@ function getTextLayoutStyle(element) {
|
|
|
905
905
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
906
906
|
return {
|
|
907
907
|
// Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
|
|
908
|
-
...
|
|
908
|
+
...chunkAU5YFUUK_js.buildTextBodyLayoutStyle(element),
|
|
909
909
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
910
910
|
// per-paragraph by the paragraph renderer, not collapsed here.
|
|
911
911
|
paddingTop: bodyTop,
|
|
@@ -933,7 +933,7 @@ function getTextLayoutStyle(element) {
|
|
|
933
933
|
|
|
934
934
|
// src/viewer/utils/text-effects.tsx
|
|
935
935
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
936
|
-
return
|
|
936
|
+
return chunkAU5YFUUK_js.buildTextBody3DSceneStyle(textStyle);
|
|
937
937
|
}
|
|
938
938
|
|
|
939
939
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1118,13 +1118,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1118
1118
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1119
1119
|
return renderedSegments;
|
|
1120
1120
|
}
|
|
1121
|
-
const paraKey = `${elementId}${
|
|
1121
|
+
const paraKey = `${elementId}${chunkAU5YFUUK_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1122
1122
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1123
1123
|
if (paraState) {
|
|
1124
1124
|
const style = buildAnimStyle(paraState);
|
|
1125
1125
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1126
1126
|
}
|
|
1127
|
-
const spec =
|
|
1127
|
+
const spec = chunkAU5YFUUK_js.buildTextBuildSpec(
|
|
1128
1128
|
elementId,
|
|
1129
1129
|
paraIndex,
|
|
1130
1130
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1142,7 +1142,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1142
1142
|
"span",
|
|
1143
1143
|
{
|
|
1144
1144
|
"data-anim-id": span.animId,
|
|
1145
|
-
style:
|
|
1145
|
+
style: chunkAU5YFUUK_js.textBuildSpanStyle(span),
|
|
1146
1146
|
children: content
|
|
1147
1147
|
},
|
|
1148
1148
|
span.animId
|
|
@@ -1150,7 +1150,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1150
1150
|
});
|
|
1151
1151
|
}
|
|
1152
1152
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle) {
|
|
1153
|
-
const [lineLayout] =
|
|
1153
|
+
const [lineLayout] = chunkAU5YFUUK_js.buildRunTabLines(line, ctx, nestedStyle);
|
|
1154
1154
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", whiteSpace: "nowrap" }, children: lineLayout.pieces.map((piece, i) => {
|
|
1155
1155
|
const key = `${keyPrefix}-tab-${i}`;
|
|
1156
1156
|
return /* @__PURE__ */ jsxRuntime.jsxs(React6__default.default.Fragment, { children: [
|
|
@@ -1163,7 +1163,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1163
1163
|
if (!needsScriptFonts || !text) {
|
|
1164
1164
|
return text;
|
|
1165
1165
|
}
|
|
1166
|
-
const pieces =
|
|
1166
|
+
const pieces = chunkAU5YFUUK_js.splitRunByScriptFont(
|
|
1167
1167
|
text,
|
|
1168
1168
|
scriptFonts,
|
|
1169
1169
|
baseFontFamily,
|
|
@@ -1180,7 +1180,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1180
1180
|
if (!metric || !text) {
|
|
1181
1181
|
return inner(text, keyPrefix);
|
|
1182
1182
|
}
|
|
1183
|
-
const pieces =
|
|
1183
|
+
const pieces = chunkAU5YFUUK_js.splitRunForMetrics(text, metric.font);
|
|
1184
1184
|
if (pieces.length <= 1) {
|
|
1185
1185
|
return inner(text, keyPrefix);
|
|
1186
1186
|
}
|
|
@@ -1189,7 +1189,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1189
1189
|
{
|
|
1190
1190
|
style: {
|
|
1191
1191
|
...metric.nestedStyle,
|
|
1192
|
-
letterSpacing:
|
|
1192
|
+
letterSpacing: chunkAU5YFUUK_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1193
1193
|
},
|
|
1194
1194
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1195
1195
|
},
|
|
@@ -1276,8 +1276,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1276
1276
|
});
|
|
1277
1277
|
}
|
|
1278
1278
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1279
|
-
const mathml =
|
|
1280
|
-
const safeMathml = mathml ?
|
|
1279
|
+
const mathml = chunkAU5YFUUK_js.convertOmmlToMathMl(equationXml);
|
|
1280
|
+
const safeMathml = mathml ? chunkAU5YFUUK_js.sanitizeMathMl(mathml) : "";
|
|
1281
1281
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1282
1282
|
"span",
|
|
1283
1283
|
{
|
|
@@ -1287,7 +1287,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1287
1287
|
},
|
|
1288
1288
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1289
1289
|
}
|
|
1290
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1290
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkUTIMT5CZ_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1291
1291
|
if (equationNumber) {
|
|
1292
1292
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1293
1293
|
"span",
|
|
@@ -1405,7 +1405,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1405
1405
|
const segmentStyle = segment?.style ?? {};
|
|
1406
1406
|
const textValue = run.text;
|
|
1407
1407
|
const lines = textValue.split("\n");
|
|
1408
|
-
const resolvedSegmentColor =
|
|
1408
|
+
const resolvedSegmentColor = chunkAU5YFUUK_js.normalizeHexColor(
|
|
1409
1409
|
segmentStyle.color || element.textStyle?.color,
|
|
1410
1410
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1411
1411
|
);
|
|
@@ -1413,16 +1413,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1413
1413
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1414
1414
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1415
1415
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1416
|
-
const baseFontSize = rawFontSize *
|
|
1416
|
+
const baseFontSize = rawFontSize * chunkAU5YFUUK_js.resolveAutoFitFontScale(element.textStyle);
|
|
1417
1417
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1418
|
-
const fontKerning =
|
|
1418
|
+
const fontKerning = chunkAU5YFUUK_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1419
1419
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1420
|
-
const baseFontFamily = rawFontFamily ?
|
|
1420
|
+
const baseFontFamily = rawFontFamily ? chunkAU5YFUUK_js.getSubstituteFontFamily(
|
|
1421
1421
|
rawFontFamily,
|
|
1422
|
-
|
|
1422
|
+
chunkAU5YFUUK_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1423
1423
|
) : DEFAULT_FONT_FAMILY2;
|
|
1424
|
-
const scriptFonts =
|
|
1425
|
-
const needsScriptFonts =
|
|
1424
|
+
const scriptFonts = chunkAU5YFUUK_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1425
|
+
const needsScriptFonts = chunkAU5YFUUK_js.hasDistinctScriptFonts(scriptFonts);
|
|
1426
1426
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1427
1427
|
const metricFont = {
|
|
1428
1428
|
fontFamily: baseFontFamily,
|
|
@@ -1430,7 +1430,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1430
1430
|
bold: Boolean(segmentStyle.bold),
|
|
1431
1431
|
italic: Boolean(segmentStyle.italic)
|
|
1432
1432
|
};
|
|
1433
|
-
const nestedStyle =
|
|
1433
|
+
const nestedStyle = chunkAU5YFUUK_js.nestedTextDecorationStyle(run.style);
|
|
1434
1434
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1435
1435
|
const spanStyle = { ...run.style };
|
|
1436
1436
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1438,11 +1438,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1438
1438
|
spanStyle.fontFamily = baseFontFamily;
|
|
1439
1439
|
spanStyle.verticalAlign = baselineShift;
|
|
1440
1440
|
spanStyle.fontKerning = fontKerning;
|
|
1441
|
-
spanStyle.letterSpacing =
|
|
1441
|
+
spanStyle.letterSpacing = chunkAU5YFUUK_js.pieceLetterSpacing(
|
|
1442
1442
|
authoredLetterSpacing,
|
|
1443
|
-
|
|
1443
|
+
chunkAU5YFUUK_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1444
1444
|
);
|
|
1445
|
-
const hollow =
|
|
1445
|
+
const hollow = chunkAU5YFUUK_js.hollowTextFillStyle(segmentStyle, {
|
|
1446
1446
|
color: resolvedSegmentColor,
|
|
1447
1447
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1448
1448
|
});
|
|
@@ -1463,7 +1463,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1463
1463
|
scriptFonts,
|
|
1464
1464
|
baseFontFamily,
|
|
1465
1465
|
findHighlights,
|
|
1466
|
-
|
|
1466
|
+
chunkAU5YFUUK_js.buildTabContext(
|
|
1467
1467
|
element.textStyle?.tabStops,
|
|
1468
1468
|
element.textStyle?.defaultTabSize,
|
|
1469
1469
|
baseFontSize,
|
|
@@ -1489,7 +1489,7 @@ function renderRubyOrText(run, baseContent) {
|
|
|
1489
1489
|
] });
|
|
1490
1490
|
}
|
|
1491
1491
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt) {
|
|
1492
|
-
if (!
|
|
1492
|
+
if (!chunkAU5YFUUK_js.hasTextProperties(element)) {
|
|
1493
1493
|
return emptyFallback || null;
|
|
1494
1494
|
}
|
|
1495
1495
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1499,7 +1499,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1499
1499
|
}
|
|
1500
1500
|
return element.text || emptyFallback || "";
|
|
1501
1501
|
}
|
|
1502
|
-
const paragraphs =
|
|
1502
|
+
const paragraphs = chunkAU5YFUUK_js.buildParagraphs(element, fieldContext, segmentOverrides);
|
|
1503
1503
|
const ctx = {
|
|
1504
1504
|
element,
|
|
1505
1505
|
fallbackColor,
|
|
@@ -1621,13 +1621,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1621
1621
|
);
|
|
1622
1622
|
}
|
|
1623
1623
|
function getDuotoneColors(element) {
|
|
1624
|
-
if (!
|
|
1624
|
+
if (!chunkAU5YFUUK_js.isImageLikeElement(element)) {
|
|
1625
1625
|
return void 0;
|
|
1626
1626
|
}
|
|
1627
1627
|
return element.imageEffects?.duotone;
|
|
1628
1628
|
}
|
|
1629
1629
|
function buildLineShadowCss(element) {
|
|
1630
|
-
if (!
|
|
1630
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
1631
1631
|
return void 0;
|
|
1632
1632
|
}
|
|
1633
1633
|
const ss = element.shapeStyle;
|
|
@@ -1638,13 +1638,13 @@ function buildLineShadowCss(element) {
|
|
|
1638
1638
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1639
1639
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1640
1640
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1641
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1642
|
-
|
|
1641
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkAU5YFUUK_js.colorWithOpacity(
|
|
1642
|
+
chunkAU5YFUUK_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1643
1643
|
opacity
|
|
1644
1644
|
)}`;
|
|
1645
1645
|
}
|
|
1646
1646
|
function buildLineGlowFilter(element) {
|
|
1647
|
-
if (!
|
|
1647
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
1648
1648
|
return void 0;
|
|
1649
1649
|
}
|
|
1650
1650
|
const ss = element.shapeStyle;
|
|
@@ -1653,22 +1653,22 @@ function buildLineGlowFilter(element) {
|
|
|
1653
1653
|
}
|
|
1654
1654
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1655
1655
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1656
|
-
const glowCol =
|
|
1656
|
+
const glowCol = chunkAU5YFUUK_js.colorWithOpacity(chunkAU5YFUUK_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1657
1657
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1658
1658
|
}
|
|
1659
1659
|
function getDagDuotoneFilterId(elementId) {
|
|
1660
1660
|
return `dag-duotone-${elementId}`;
|
|
1661
1661
|
}
|
|
1662
1662
|
function hasDagDuotoneEffect(element) {
|
|
1663
|
-
if (!
|
|
1663
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
1664
1664
|
return false;
|
|
1665
1665
|
}
|
|
1666
1666
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1667
1667
|
}
|
|
1668
1668
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1669
1669
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1670
|
-
const c1 =
|
|
1671
|
-
const c2 =
|
|
1670
|
+
const c1 = chunkAU5YFUUK_js.hexToRgbUnit(color1);
|
|
1671
|
+
const c2 = chunkAU5YFUUK_js.hexToRgbUnit(color2);
|
|
1672
1672
|
const grayscaleMatrix = [
|
|
1673
1673
|
0.2126,
|
|
1674
1674
|
0.7152,
|
|
@@ -1712,7 +1712,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1712
1712
|
|
|
1713
1713
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1714
1714
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1715
|
-
return
|
|
1715
|
+
return chunkAU5YFUUK_js.build3DExtrusionData(
|
|
1716
1716
|
shape3d,
|
|
1717
1717
|
scene3d,
|
|
1718
1718
|
fillColor,
|
|
@@ -1721,7 +1721,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1721
1721
|
);
|
|
1722
1722
|
}
|
|
1723
1723
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
1724
|
-
|
|
1724
|
+
chunkAU5YFUUK_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
1725
1725
|
}
|
|
1726
1726
|
|
|
1727
1727
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -1729,16 +1729,16 @@ function rendersCustomVectorPath(element) {
|
|
|
1729
1729
|
return (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
|
|
1730
1730
|
}
|
|
1731
1731
|
function rendersWedgeCalloutVector(element) {
|
|
1732
|
-
return element.type === "shape" &&
|
|
1732
|
+
return element.type === "shape" && chunkAU5YFUUK_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1733
1733
|
}
|
|
1734
1734
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1735
|
-
if (!
|
|
1735
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
1736
1736
|
return {};
|
|
1737
1737
|
}
|
|
1738
1738
|
const ss = element.shapeStyle;
|
|
1739
|
-
const fill = animatesFill ? void 0 :
|
|
1740
|
-
const fx =
|
|
1741
|
-
const stroke =
|
|
1739
|
+
const fill = animatesFill ? void 0 : chunkAU5YFUUK_js.getComputedFillStyle(element, parentGroupFill);
|
|
1740
|
+
const fx = chunkAU5YFUUK_js.getComputedEffectStyle(element);
|
|
1741
|
+
const stroke = chunkAU5YFUUK_js.getComputedStrokeStyle(element);
|
|
1742
1742
|
const base = {
|
|
1743
1743
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1744
1744
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1777,7 +1777,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1777
1777
|
};
|
|
1778
1778
|
Object.assign(
|
|
1779
1779
|
base,
|
|
1780
|
-
|
|
1780
|
+
chunkAU5YFUUK_js.getAnimationColorBaseStyle(element, {
|
|
1781
1781
|
animatesFill,
|
|
1782
1782
|
animatesStroke,
|
|
1783
1783
|
parentGroupFill
|
|
@@ -1789,7 +1789,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1789
1789
|
base.borderStyle = void 0;
|
|
1790
1790
|
}
|
|
1791
1791
|
apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
|
|
1792
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1792
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkAU5YFUUK_js.isStrokeOnlyPresetElement(element)) {
|
|
1793
1793
|
base.backgroundColor = "transparent";
|
|
1794
1794
|
base.backgroundImage = void 0;
|
|
1795
1795
|
base.borderWidth = void 0;
|
|
@@ -1803,7 +1803,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1803
1803
|
if (rendersWedgeCalloutVector(element)) {
|
|
1804
1804
|
return base;
|
|
1805
1805
|
}
|
|
1806
|
-
const geometry =
|
|
1806
|
+
const geometry = chunkAU5YFUUK_js.resolveShapeGeometry(element);
|
|
1807
1807
|
switch (geometry.kind) {
|
|
1808
1808
|
case "bare":
|
|
1809
1809
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1829,13 +1829,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1829
1829
|
function getConnectorAdjustment(element, key, fallback) {
|
|
1830
1830
|
const direct = element.shapeAdjustments?.[key];
|
|
1831
1831
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
1832
|
-
return
|
|
1832
|
+
return chunkAU5YFUUK_js.clampUnitInterval(direct / 1e5);
|
|
1833
1833
|
}
|
|
1834
1834
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
1835
1835
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
1836
|
-
return
|
|
1836
|
+
return chunkAU5YFUUK_js.clampUnitInterval(fallbackKey / 1e5);
|
|
1837
1837
|
}
|
|
1838
|
-
return
|
|
1838
|
+
return chunkAU5YFUUK_js.clampUnitInterval(fallback);
|
|
1839
1839
|
}
|
|
1840
1840
|
function getConnectorPathGeometry(element) {
|
|
1841
1841
|
const width = Math.max(element.width, 0);
|
|
@@ -1972,11 +1972,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1972
1972
|
strokePaint,
|
|
1973
1973
|
strokeWidth,
|
|
1974
1974
|
dashArray,
|
|
1975
|
-
lineCap:
|
|
1975
|
+
lineCap: chunkAU5YFUUK_js.svgLineCap(shapeStyle?.lineCap),
|
|
1976
1976
|
lineJoin,
|
|
1977
1977
|
miterLimit,
|
|
1978
|
-
offsets:
|
|
1979
|
-
widths:
|
|
1978
|
+
offsets: chunkAU5YFUUK_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1979
|
+
widths: chunkAU5YFUUK_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1980
1980
|
};
|
|
1981
1981
|
}
|
|
1982
1982
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2024,12 +2024,12 @@ function gradientDefs(gradient) {
|
|
|
2024
2024
|
}
|
|
2025
2025
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2026
2026
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2027
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2027
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkAU5YFUUK_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2028
2028
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2029
|
-
const gradientPaint = gradient ?
|
|
2029
|
+
const gradientPaint = gradient ? chunkAU5YFUUK_js.svgGradientFillRef(gradient) : void 0;
|
|
2030
2030
|
const nodes = [];
|
|
2031
2031
|
if (subpaths && needsPerSubpath) {
|
|
2032
|
-
const paints =
|
|
2032
|
+
const paints = chunkAU5YFUUK_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
2033
2033
|
paints.forEach((paint, idx) => {
|
|
2034
2034
|
if (paint.fill !== "none") {
|
|
2035
2035
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2058,7 +2058,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2058
2058
|
"path",
|
|
2059
2059
|
{
|
|
2060
2060
|
d: pathData,
|
|
2061
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2061
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkAU5YFUUK_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2062
2062
|
stroke: "none",
|
|
2063
2063
|
vectorEffect: "non-scaling-stroke"
|
|
2064
2064
|
},
|
|
@@ -2101,14 +2101,14 @@ function renderGradientDefs(gradient) {
|
|
|
2101
2101
|
) });
|
|
2102
2102
|
}
|
|
2103
2103
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2104
|
-
if (!
|
|
2104
|
+
if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
|
|
2105
2105
|
return null;
|
|
2106
2106
|
}
|
|
2107
2107
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2108
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2109
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2110
|
-
const dashType =
|
|
2111
|
-
const dashArray =
|
|
2108
|
+
const fillPaint = animatesFill ? "inherit" : chunkAU5YFUUK_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2109
|
+
const strokePaint = animatesStroke ? "inherit" : chunkAU5YFUUK_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2110
|
+
const dashType = chunkAU5YFUUK_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2111
|
+
const dashArray = chunkAU5YFUUK_js.getSvgStrokeDasharray(
|
|
2112
2112
|
dashType,
|
|
2113
2113
|
Math.max(strokeWidth, 1),
|
|
2114
2114
|
element.shapeStyle?.customDashSegments
|
|
@@ -2189,13 +2189,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2189
2189
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2190
2190
|
// without this the shape fell back to the parser's representative solid
|
|
2191
2191
|
// and lost every fade (issue #132).
|
|
2192
|
-
|
|
2192
|
+
chunkAU5YFUUK_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2193
2193
|
);
|
|
2194
2194
|
}
|
|
2195
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2195
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkAU5YFUUK_js.buildStrokeOutline(element)) {
|
|
2196
2196
|
const width = Math.max(element.width, 1);
|
|
2197
2197
|
const height = Math.max(element.height, 1);
|
|
2198
|
-
const geometry =
|
|
2198
|
+
const geometry = chunkAU5YFUUK_js.getPresetShapeVectorGeometry(
|
|
2199
2199
|
element.shapeType || "rect",
|
|
2200
2200
|
width,
|
|
2201
2201
|
height,
|
|
@@ -2223,18 +2223,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2223
2223
|
);
|
|
2224
2224
|
}
|
|
2225
2225
|
}
|
|
2226
|
-
if (element.type === "shape" &&
|
|
2226
|
+
if (element.type === "shape" && chunkAU5YFUUK_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2227
2227
|
const width = Math.max(element.width, 1);
|
|
2228
2228
|
const height = Math.max(element.height, 1);
|
|
2229
|
-
const geometry =
|
|
2229
|
+
const geometry = chunkAU5YFUUK_js.getPresetShapeVectorGeometry(
|
|
2230
2230
|
element.shapeType,
|
|
2231
2231
|
width,
|
|
2232
2232
|
height,
|
|
2233
2233
|
element.shapeAdjustments
|
|
2234
2234
|
);
|
|
2235
2235
|
if (geometry) {
|
|
2236
|
-
const gradient =
|
|
2237
|
-
const gradientPaint = gradient ?
|
|
2236
|
+
const gradient = chunkAU5YFUUK_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2237
|
+
const gradientPaint = gradient ? chunkAU5YFUUK_js.svgGradientFillRef(gradient) : void 0;
|
|
2238
2238
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2239
2239
|
"svg",
|
|
2240
2240
|
{
|
|
@@ -2267,18 +2267,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2267
2267
|
);
|
|
2268
2268
|
}
|
|
2269
2269
|
}
|
|
2270
|
-
if (
|
|
2270
|
+
if (chunkAU5YFUUK_js.isCalloutShape(normalizedType)) {
|
|
2271
2271
|
const width = Math.max(element.width, 1);
|
|
2272
2272
|
const height = Math.max(element.height, 1);
|
|
2273
|
-
const geometry =
|
|
2273
|
+
const geometry = chunkAU5YFUUK_js.getCalloutLeaderLineGeometry(
|
|
2274
2274
|
normalizedType,
|
|
2275
2275
|
width,
|
|
2276
2276
|
height,
|
|
2277
2277
|
element.shapeAdjustments
|
|
2278
2278
|
);
|
|
2279
2279
|
if (geometry && geometry.points.length >= 2) {
|
|
2280
|
-
const leaderPath =
|
|
2281
|
-
const bounds =
|
|
2280
|
+
const leaderPath = chunkAU5YFUUK_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2281
|
+
const bounds = chunkAU5YFUUK_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2282
2282
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2283
2283
|
const offsetLeft = bounds.minX;
|
|
2284
2284
|
const offsetTop = bounds.minY;
|
|
@@ -2341,10 +2341,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2341
2341
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2342
2342
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2343
2343
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2344
|
-
const connectorLineCap =
|
|
2344
|
+
const connectorLineCap = chunkAU5YFUUK_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2345
2345
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2346
|
-
const offsets =
|
|
2347
|
-
const widths =
|
|
2346
|
+
const offsets = chunkAU5YFUUK_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2347
|
+
const widths = chunkAU5YFUUK_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2348
2348
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2349
2349
|
"svg",
|
|
2350
2350
|
{
|
|
@@ -2411,15 +2411,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2411
2411
|
}
|
|
2412
2412
|
const rawStops = stops.map((gs) => {
|
|
2413
2413
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2414
|
-
const color =
|
|
2415
|
-
const opacity =
|
|
2414
|
+
const color = chunkAU5YFUUK_js.parseDrawingColor(gs) ?? "#888888";
|
|
2415
|
+
const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(gs);
|
|
2416
2416
|
return { position: pos, color, opacity };
|
|
2417
2417
|
}).sort((a, b) => a.position - b.position);
|
|
2418
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2418
|
+
const stopStrings = rawStops.map((s) => `${chunkAU5YFUUK_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2419
2419
|
const lin = gradFill["a:lin"];
|
|
2420
2420
|
if (lin) {
|
|
2421
2421
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2422
|
-
const angleDeg = Math.round(
|
|
2422
|
+
const angleDeg = Math.round(chunkAU5YFUUK_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2423
2423
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2424
2424
|
}
|
|
2425
2425
|
const path = gradFill["a:path"];
|
|
@@ -2433,7 +2433,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2433
2433
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2434
2434
|
} : void 0;
|
|
2435
2435
|
if (pathType === "rect") {
|
|
2436
|
-
return
|
|
2436
|
+
return chunkAU5YFUUK_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2437
2437
|
}
|
|
2438
2438
|
let cx = 50;
|
|
2439
2439
|
let cy = 50;
|
|
@@ -2455,8 +2455,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2455
2455
|
if (!pattFill) {
|
|
2456
2456
|
return void 0;
|
|
2457
2457
|
}
|
|
2458
|
-
const fgColor =
|
|
2459
|
-
const bgColor =
|
|
2458
|
+
const fgColor = chunkAU5YFUUK_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2459
|
+
const bgColor = chunkAU5YFUUK_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2460
2460
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2461
2461
|
switch (preset) {
|
|
2462
2462
|
case "ltHorz":
|
|
@@ -2567,11 +2567,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2567
2567
|
const prstDash = ln["a:prstDash"];
|
|
2568
2568
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2569
2569
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2570
|
-
const color =
|
|
2570
|
+
const color = chunkAU5YFUUK_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2571
2571
|
if (color) {
|
|
2572
|
-
const opacity =
|
|
2572
|
+
const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2573
2573
|
const key = `${edge.prefix}`;
|
|
2574
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2574
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkAU5YFUUK_js.colorWithOpacity(color, opacity)}`;
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
return borderStyle;
|
|
@@ -2584,7 +2584,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2584
2584
|
const textShadowParts = [];
|
|
2585
2585
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2586
2586
|
if (outerShdw) {
|
|
2587
|
-
const shdwColor =
|
|
2587
|
+
const shdwColor = chunkAU5YFUUK_js.parseDrawingColor(outerShdw);
|
|
2588
2588
|
if (shdwColor) {
|
|
2589
2589
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2590
2590
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2602,7 +2602,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2602
2602
|
}
|
|
2603
2603
|
const glow = effectLst["a:glow"];
|
|
2604
2604
|
if (glow) {
|
|
2605
|
-
const glowColor =
|
|
2605
|
+
const glowColor = chunkAU5YFUUK_js.parseDrawingColor(glow);
|
|
2606
2606
|
if (glowColor) {
|
|
2607
2607
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2608
2608
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2682,10 +2682,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2682
2682
|
if (runProps?.["@_u"] !== void 0) {
|
|
2683
2683
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2684
2684
|
}
|
|
2685
|
-
const runColor =
|
|
2685
|
+
const runColor = chunkAU5YFUUK_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkAU5YFUUK_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2686
2686
|
if (runColor) {
|
|
2687
|
-
const opacity =
|
|
2688
|
-
cellStyle.color =
|
|
2687
|
+
const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2688
|
+
cellStyle.color = chunkAU5YFUUK_js.colorWithOpacity(runColor, opacity);
|
|
2689
2689
|
}
|
|
2690
2690
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2691
2691
|
if (fontFamily) {
|
|
@@ -2695,15 +2695,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2695
2695
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2696
2696
|
}
|
|
2697
2697
|
const cellProperties = cellXml["a:tcPr"];
|
|
2698
|
-
const cellFill =
|
|
2698
|
+
const cellFill = chunkAU5YFUUK_js.parseDrawingColor(
|
|
2699
2699
|
cellProperties?.["a:solidFill"],
|
|
2700
2700
|
schemeColorOverrides
|
|
2701
2701
|
);
|
|
2702
2702
|
if (cellFill) {
|
|
2703
|
-
const opacity =
|
|
2703
|
+
const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(
|
|
2704
2704
|
cellProperties?.["a:solidFill"]
|
|
2705
2705
|
);
|
|
2706
|
-
cellStyle.backgroundColor =
|
|
2706
|
+
cellStyle.backgroundColor = chunkAU5YFUUK_js.colorWithOpacity(cellFill, opacity);
|
|
2707
2707
|
} else {
|
|
2708
2708
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2709
2709
|
if (gradCss) {
|
|
@@ -2718,16 +2718,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2718
2718
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2719
2719
|
Object.assign(cellStyle, edgeBorders);
|
|
2720
2720
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2721
|
-
const borderColor =
|
|
2721
|
+
const borderColor = chunkAU5YFUUK_js.parseDrawingColor(
|
|
2722
2722
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2723
2723
|
schemeColorOverrides
|
|
2724
|
-
) ||
|
|
2724
|
+
) || chunkAU5YFUUK_js.parseDrawingColor(
|
|
2725
2725
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2726
2726
|
schemeColorOverrides
|
|
2727
|
-
) ||
|
|
2727
|
+
) || chunkAU5YFUUK_js.parseDrawingColor(
|
|
2728
2728
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2729
2729
|
schemeColorOverrides
|
|
2730
|
-
) ||
|
|
2730
|
+
) || chunkAU5YFUUK_js.parseDrawingColor(
|
|
2731
2731
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2732
2732
|
schemeColorOverrides
|
|
2733
2733
|
);
|
|
@@ -2799,7 +2799,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2799
2799
|
if (element.type !== "table") {
|
|
2800
2800
|
return void 0;
|
|
2801
2801
|
}
|
|
2802
|
-
return
|
|
2802
|
+
return chunkAU5YFUUK_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2803
2803
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2804
2804
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2805
2805
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2875,7 +2875,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2875
2875
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2876
2876
|
"span",
|
|
2877
2877
|
{
|
|
2878
|
-
style: { position: "relative", ...
|
|
2878
|
+
style: { position: "relative", ...chunkAU5YFUUK_js.cellRunStyle(run) },
|
|
2879
2879
|
children: run.text
|
|
2880
2880
|
},
|
|
2881
2881
|
`r-${index}`
|
|
@@ -2883,7 +2883,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2883
2883
|
});
|
|
2884
2884
|
}
|
|
2885
2885
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2886
|
-
return
|
|
2886
|
+
return chunkAU5YFUUK_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2887
2887
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2888
2888
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2889
2889
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3016,7 +3016,7 @@ function TableResizeOverlay({
|
|
|
3016
3016
|
const containerRef = React6.useRef(null);
|
|
3017
3017
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3018
3018
|
const dragRef = React6.useRef(null);
|
|
3019
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3019
|
+
const colBoundaries = React6.useMemo(() => chunkAU5YFUUK_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3020
3020
|
const measureRows = React6.useCallback(() => {
|
|
3021
3021
|
const container = containerRef.current;
|
|
3022
3022
|
if (!container) {
|
|
@@ -3063,11 +3063,11 @@ function TableResizeOverlay({
|
|
|
3063
3063
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3064
3064
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3065
3065
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3066
|
-
onResizeColumns(
|
|
3066
|
+
onResizeColumns(chunkAU5YFUUK_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3067
3067
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3068
3068
|
const deltaY = e.clientY - drag.startPos;
|
|
3069
|
-
const newHeight =
|
|
3070
|
-
drag.initialRowHeight ??
|
|
3069
|
+
const newHeight = chunkAU5YFUUK_js.computeResizedRowHeight(
|
|
3070
|
+
drag.initialRowHeight ?? chunkAU5YFUUK_js.DEFAULT_ROW_HEIGHT,
|
|
3071
3071
|
deltaY
|
|
3072
3072
|
);
|
|
3073
3073
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3105,7 +3105,7 @@ function TableResizeOverlay({
|
|
|
3105
3105
|
e.stopPropagation();
|
|
3106
3106
|
const table = containerRef.current?.querySelector("table");
|
|
3107
3107
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3108
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3108
|
+
const actualHeight = tr?.offsetHeight ?? chunkAU5YFUUK_js.DEFAULT_ROW_HEIGHT;
|
|
3109
3109
|
document.body.style.cursor = "row-resize";
|
|
3110
3110
|
document.body.style.userSelect = "none";
|
|
3111
3111
|
dragRef.current = {
|
|
@@ -3152,7 +3152,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3152
3152
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3153
3153
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3154
3154
|
};
|
|
3155
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3155
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkAU5YFUUK_js.tableCellCss(
|
|
3156
3156
|
tableData,
|
|
3157
3157
|
cell,
|
|
3158
3158
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3165,7 +3165,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3165
3165
|
}
|
|
3166
3166
|
const first = selectedCell.selectedCells[0];
|
|
3167
3167
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3168
|
-
return
|
|
3168
|
+
return chunkAU5YFUUK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3169
3169
|
})();
|
|
3170
3170
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3171
3171
|
TableResizeOverlay,
|
|
@@ -3186,9 +3186,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3186
3186
|
{
|
|
3187
3187
|
className: "w-full h-full border-collapse table-fixed",
|
|
3188
3188
|
style: {
|
|
3189
|
-
fontFamily:
|
|
3189
|
+
fontFamily: chunkAU5YFUUK_js.DEFAULT_FONT_FAMILY,
|
|
3190
3190
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3191
|
-
...
|
|
3191
|
+
...chunkAU5YFUUK_js.tableContainerCss(tableData)
|
|
3192
3192
|
},
|
|
3193
3193
|
children: [
|
|
3194
3194
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3207,7 +3207,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3207
3207
|
return null;
|
|
3208
3208
|
}
|
|
3209
3209
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3210
|
-
const isInMultiSelection =
|
|
3210
|
+
const isInMultiSelection = chunkAU5YFUUK_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3211
3211
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3212
3212
|
const diag = getCellDiagonalBorders2(
|
|
3213
3213
|
cell.style,
|
|
@@ -3236,7 +3236,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3236
3236
|
}
|
|
3237
3237
|
event.stopPropagation();
|
|
3238
3238
|
if (event.shiftKey && selectedCell) {
|
|
3239
|
-
const rect =
|
|
3239
|
+
const rect = chunkAU5YFUUK_js.computeSelectionRect(
|
|
3240
3240
|
selectedCell.rowIndex,
|
|
3241
3241
|
selectedCell.columnIndex,
|
|
3242
3242
|
rowIndex,
|
|
@@ -3246,7 +3246,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3246
3246
|
options?.onSelectCell?.({
|
|
3247
3247
|
rowIndex: selectedCell.rowIndex,
|
|
3248
3248
|
columnIndex: selectedCell.columnIndex,
|
|
3249
|
-
selectedCells:
|
|
3249
|
+
selectedCells: chunkAU5YFUUK_js.rectToCells(rect)
|
|
3250
3250
|
});
|
|
3251
3251
|
} else {
|
|
3252
3252
|
options?.onSelectCell?.({
|
|
@@ -3307,7 +3307,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3307
3307
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3308
3308
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3309
3309
|
}
|
|
3310
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3310
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.table.title"] });
|
|
3311
3311
|
}
|
|
3312
3312
|
const selectedCell = options?.selectedCell || null;
|
|
3313
3313
|
const isEditable = Boolean(options?.editable);
|
|
@@ -3322,7 +3322,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3322
3322
|
}
|
|
3323
3323
|
const first = selectedCell.selectedCells[0];
|
|
3324
3324
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3325
|
-
return
|
|
3325
|
+
return chunkAU5YFUUK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3326
3326
|
})();
|
|
3327
3327
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3328
3328
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3344,9 +3344,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3344
3344
|
{
|
|
3345
3345
|
className: "w-full h-full border-collapse table-fixed",
|
|
3346
3346
|
style: {
|
|
3347
|
-
fontFamily:
|
|
3347
|
+
fontFamily: chunkAU5YFUUK_js.DEFAULT_FONT_FAMILY,
|
|
3348
3348
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3349
|
-
...
|
|
3349
|
+
...chunkAU5YFUUK_js.tableContainerCss(tableEl.tableData)
|
|
3350
3350
|
},
|
|
3351
3351
|
children: [
|
|
3352
3352
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3403,7 +3403,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3403
3403
|
color: textStyle.color,
|
|
3404
3404
|
...bandStyle,
|
|
3405
3405
|
...xmlCellStyle,
|
|
3406
|
-
...tdCellOverride ?
|
|
3406
|
+
...tdCellOverride ? chunkAU5YFUUK_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3407
3407
|
...diag ? { position: "relative" } : void 0
|
|
3408
3408
|
};
|
|
3409
3409
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3413,7 +3413,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3413
3413
|
"border px-1 py-0.5 align-top",
|
|
3414
3414
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3415
3415
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3416
|
-
|
|
3416
|
+
chunkAU5YFUUK_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3417
3417
|
),
|
|
3418
3418
|
colSpan,
|
|
3419
3419
|
rowSpan: rSpan,
|
|
@@ -3424,7 +3424,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3424
3424
|
}
|
|
3425
3425
|
event.stopPropagation();
|
|
3426
3426
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3427
|
-
const rect =
|
|
3427
|
+
const rect = chunkAU5YFUUK_js.computeSelectionRect(
|
|
3428
3428
|
selectedCell.rowIndex,
|
|
3429
3429
|
selectedCell.columnIndex,
|
|
3430
3430
|
rowIndex,
|
|
@@ -3434,7 +3434,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3434
3434
|
options?.onSelectCell?.({
|
|
3435
3435
|
rowIndex: selectedCell.rowIndex,
|
|
3436
3436
|
columnIndex: selectedCell.columnIndex,
|
|
3437
|
-
selectedCells:
|
|
3437
|
+
selectedCells: chunkAU5YFUUK_js.rectToCells(rect)
|
|
3438
3438
|
});
|
|
3439
3439
|
} else {
|
|
3440
3440
|
options?.onSelectCell?.({
|
|
@@ -3493,23 +3493,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3493
3493
|
);
|
|
3494
3494
|
}
|
|
3495
3495
|
function partAttrs(part) {
|
|
3496
|
-
return part ?
|
|
3496
|
+
return part ? chunkAU5YFUUK_js.chartPartToAttrs(part) : void 0;
|
|
3497
3497
|
}
|
|
3498
3498
|
function resolveReactPalette(chartData) {
|
|
3499
3499
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3500
3500
|
return chartData.colorPalette;
|
|
3501
3501
|
}
|
|
3502
|
-
return [...
|
|
3502
|
+
return [...chunkAU5YFUUK_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3503
3503
|
}
|
|
3504
3504
|
function buildReactChartViewModel(element) {
|
|
3505
3505
|
if (element.type !== "chart" || !element.chartData) {
|
|
3506
|
-
return
|
|
3506
|
+
return chunkAU5YFUUK_js.buildChartViewModel(element);
|
|
3507
3507
|
}
|
|
3508
3508
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3509
3509
|
...element,
|
|
3510
3510
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3511
3511
|
};
|
|
3512
|
-
return
|
|
3512
|
+
return chunkAU5YFUUK_js.buildChartViewModel(themedElement);
|
|
3513
3513
|
}
|
|
3514
3514
|
function renderPrimitive(prim, key) {
|
|
3515
3515
|
switch (prim.kind) {
|
|
@@ -3658,7 +3658,7 @@ function renderText(t, key) {
|
|
|
3658
3658
|
);
|
|
3659
3659
|
}
|
|
3660
3660
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3661
|
-
const legendItems =
|
|
3661
|
+
const legendItems = chunkAU5YFUUK_js.computeChartLegendLayout(vm);
|
|
3662
3662
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3663
3663
|
"svg",
|
|
3664
3664
|
{
|
|
@@ -3751,17 +3751,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3751
3751
|
}
|
|
3752
3752
|
function renderChartElement(element) {
|
|
3753
3753
|
if (element.type !== "chart") {
|
|
3754
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3754
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.chart.heading"] });
|
|
3755
3755
|
}
|
|
3756
3756
|
const chartData = element.chartData;
|
|
3757
3757
|
if (!chartData || chartData.series.length === 0) {
|
|
3758
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3758
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.chart.heading"] });
|
|
3759
3759
|
}
|
|
3760
|
-
const kind =
|
|
3760
|
+
const kind = chunkAU5YFUUK_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3761
3761
|
return renderChartViewModel(
|
|
3762
3762
|
element.id,
|
|
3763
3763
|
buildReactChartViewModel(element),
|
|
3764
|
-
|
|
3764
|
+
chunkAU5YFUUK_js.chartPreserveAspectRatio(kind)
|
|
3765
3765
|
);
|
|
3766
3766
|
}
|
|
3767
3767
|
|
|
@@ -3781,14 +3781,14 @@ function buildNotesPdf(pages) {
|
|
|
3781
3781
|
notes: page.notes,
|
|
3782
3782
|
slideNumber: page.slideNumber
|
|
3783
3783
|
}));
|
|
3784
|
-
const bytes =
|
|
3784
|
+
const bytes = chunkAU5YFUUK_js.buildNotesPdfBytes(images, meta);
|
|
3785
3785
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3786
3786
|
return URL.createObjectURL(blob);
|
|
3787
3787
|
}
|
|
3788
3788
|
|
|
3789
3789
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3790
3790
|
function buildPdfFromImageData(images) {
|
|
3791
|
-
const bytes =
|
|
3791
|
+
const bytes = chunkAU5YFUUK_js.buildSlidesPdfBytes(images);
|
|
3792
3792
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3793
3793
|
return URL.createObjectURL(blob);
|
|
3794
3794
|
}
|
|
@@ -3797,7 +3797,7 @@ function buildPdfFromImageData(images) {
|
|
|
3797
3797
|
var activePreview = null;
|
|
3798
3798
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3799
3799
|
stopPreviewAnimation();
|
|
3800
|
-
const descriptor =
|
|
3800
|
+
const descriptor = chunkAU5YFUUK_js.buildPreviewAnimation(preset, options);
|
|
3801
3801
|
if (!descriptor) {
|
|
3802
3802
|
return;
|
|
3803
3803
|
}
|
|
@@ -3810,7 +3810,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3810
3810
|
return;
|
|
3811
3811
|
}
|
|
3812
3812
|
const stage = domEl.offsetParent;
|
|
3813
|
-
const descriptor =
|
|
3813
|
+
const descriptor = chunkAU5YFUUK_js.buildMotionPathPreview({
|
|
3814
3814
|
path,
|
|
3815
3815
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3816
3816
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|