pptx-react-viewer 4.5.0 → 4.6.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 +44 -0
- package/README.md +34 -33
- package/dist/{AiChatPanel-P2N6X2KB.js → AiChatPanel-3C7GM6ZF.js} +28 -28
- package/dist/AiChatPanel-3C7GM6ZF.js.br +0 -0
- package/dist/AiChatPanel-3C7GM6ZF.js.gz +0 -0
- package/dist/{AiChatPanel-HXGCZPUX.mjs → AiChatPanel-L7DBCWE3.mjs} +4 -4
- package/dist/AiChatPanel-L7DBCWE3.mjs.br +0 -0
- package/dist/AiChatPanel-L7DBCWE3.mjs.gz +0 -0
- package/dist/{Model3DScene-QXMMJRV3.mjs → Model3DScene-IJ7YYTYU.mjs} +1 -1
- package/dist/Model3DScene-IJ7YYTYU.mjs.br +0 -0
- package/dist/Model3DScene-IJ7YYTYU.mjs.gz +0 -0
- package/dist/{Model3DScene-PIFMH2TU.js → Model3DScene-USKNPWWH.js} +2 -2
- package/dist/Model3DScene-USKNPWWH.js.br +0 -0
- package/dist/Model3DScene-USKNPWWH.js.gz +0 -0
- package/dist/{chunk-UMQV2432.js → chunk-3JUZOKFI.js} +1 -0
- package/dist/chunk-3JUZOKFI.js.br +0 -0
- package/dist/{chunk-UMQV2432.js.gz → chunk-3JUZOKFI.js.gz} +0 -0
- package/dist/{chunk-T35BGKZG.js → chunk-5V5SMT5A.js} +5 -5
- package/dist/chunk-5V5SMT5A.js.br +0 -0
- package/dist/chunk-5V5SMT5A.js.gz +0 -0
- package/dist/{chunk-UZFCFYK6.js → chunk-DFSWCVRW.js} +1278 -1129
- package/dist/chunk-DFSWCVRW.js.br +0 -0
- package/dist/chunk-DFSWCVRW.js.gz +0 -0
- package/dist/{chunk-LYZQLV7R.js → chunk-FZSYLXJT.js} +783 -38
- package/dist/chunk-FZSYLXJT.js.br +0 -0
- package/dist/chunk-FZSYLXJT.js.gz +0 -0
- package/dist/{chunk-Y4VRYQQS.js → chunk-IBHIXBC5.js} +865 -844
- package/dist/chunk-IBHIXBC5.js.br +0 -0
- package/dist/chunk-IBHIXBC5.js.gz +0 -0
- package/dist/{chunk-VZNIVS3X.mjs → chunk-ICEZL4TM.mjs} +755 -38
- package/dist/chunk-ICEZL4TM.mjs.br +0 -0
- package/dist/chunk-ICEZL4TM.mjs.gz +0 -0
- package/dist/{chunk-PRXJ3J5W.mjs → chunk-INX3E37P.mjs} +53 -32
- package/dist/chunk-INX3E37P.mjs.br +0 -0
- package/dist/chunk-INX3E37P.mjs.gz +0 -0
- package/dist/{chunk-ZF5S3HHW.mjs → chunk-K6QHGABT.mjs} +2 -2
- package/dist/chunk-K6QHGABT.mjs.br +0 -0
- package/dist/chunk-K6QHGABT.mjs.gz +0 -0
- package/dist/{chunk-APAVAD2A.mjs → chunk-OOO4JL2N.mjs} +1 -0
- package/dist/chunk-OOO4JL2N.mjs.br +0 -0
- package/dist/{chunk-APAVAD2A.mjs.gz → chunk-OOO4JL2N.mjs.gz} +0 -0
- package/dist/{chunk-DX2JCSQ4.mjs → chunk-VCAQSSGD.mjs} +1 -1
- package/dist/chunk-VCAQSSGD.mjs.br +0 -0
- package/dist/chunk-VCAQSSGD.mjs.gz +0 -0
- package/dist/{chunk-6FVYG27J.js → chunk-Y4QUVWZC.js} +188 -188
- package/dist/chunk-Y4QUVWZC.js.br +0 -0
- package/dist/chunk-Y4QUVWZC.js.gz +0 -0
- package/dist/{chunk-IDV2ITXM.mjs → chunk-ZAQFTO4P.mjs} +220 -71
- package/dist/chunk-ZAQFTO4P.mjs.br +0 -0
- package/dist/chunk-ZAQFTO4P.mjs.gz +0 -0
- package/dist/i18n/de.cjs +1 -0
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +1 -0
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +1 -0
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +1 -0
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +1 -0
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +1 -0
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +1 -0
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +1 -0
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.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.d.ts +266 -3
- package/dist/index.js +105 -49
- 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 +273 -2
- package/dist/internals.js +105 -105
- 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.d.ts +368 -1
- 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 +3 -4
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-HXGCZPUX.mjs.br +0 -0
- package/dist/AiChatPanel-HXGCZPUX.mjs.gz +0 -0
- package/dist/AiChatPanel-P2N6X2KB.js.br +0 -0
- package/dist/AiChatPanel-P2N6X2KB.js.gz +0 -0
- package/dist/Model3DScene-PIFMH2TU.js.br +0 -0
- package/dist/Model3DScene-PIFMH2TU.js.gz +0 -0
- package/dist/Model3DScene-QXMMJRV3.mjs.br +0 -0
- package/dist/Model3DScene-QXMMJRV3.mjs.gz +0 -0
- package/dist/chunk-6FVYG27J.js.br +0 -0
- package/dist/chunk-6FVYG27J.js.gz +0 -0
- package/dist/chunk-APAVAD2A.mjs.br +0 -0
- package/dist/chunk-DX2JCSQ4.mjs.br +0 -0
- package/dist/chunk-DX2JCSQ4.mjs.gz +0 -0
- package/dist/chunk-IDV2ITXM.mjs.br +0 -0
- package/dist/chunk-IDV2ITXM.mjs.gz +0 -0
- package/dist/chunk-LYZQLV7R.js.br +0 -0
- package/dist/chunk-LYZQLV7R.js.gz +0 -0
- package/dist/chunk-PRXJ3J5W.mjs.br +0 -0
- package/dist/chunk-PRXJ3J5W.mjs.gz +0 -0
- package/dist/chunk-T35BGKZG.js.br +0 -0
- package/dist/chunk-T35BGKZG.js.gz +0 -0
- package/dist/chunk-UMQV2432.js.br +0 -0
- package/dist/chunk-UZFCFYK6.js.br +0 -0
- package/dist/chunk-UZFCFYK6.js.gz +0 -0
- package/dist/chunk-VZNIVS3X.mjs.br +0 -0
- package/dist/chunk-VZNIVS3X.mjs.gz +0 -0
- package/dist/chunk-Y4VRYQQS.js.br +0 -0
- package/dist/chunk-Y4VRYQQS.js.gz +0 -0
- package/dist/chunk-ZF5S3HHW.mjs.br +0 -0
- package/dist/chunk-ZF5S3HHW.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkFZSYLXJT_js = require('./chunk-FZSYLXJT.js');
|
|
4
|
+
var chunk3JUZOKFI_js = require('./chunk-3JUZOKFI.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React7 = require('react');
|
|
@@ -15,7 +15,7 @@ var React7__default = /*#__PURE__*/_interopDefault(React7);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkFZSYLXJT_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 chunkFZSYLXJT_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 = chunkFZSYLXJT_js.VIEWER_SHORTCUT_REFERENCE;
|
|
65
65
|
|
|
66
66
|
// src/viewer/constants/transitions-animations.ts
|
|
67
67
|
var ANIMATION_PRESET_OPTIONS = [
|
|
@@ -89,7 +89,7 @@ var GLYPH_COMPONENTS = {
|
|
|
89
89
|
plus: lu.LuPlus,
|
|
90
90
|
triangle: lu.LuTriangle
|
|
91
91
|
};
|
|
92
|
-
var SHAPE_PRESETS =
|
|
92
|
+
var SHAPE_PRESETS = chunkFZSYLXJT_js.SHAPE_PRESET_DEFS.map(
|
|
93
93
|
(def) => ({
|
|
94
94
|
type: def.type,
|
|
95
95
|
label: def.label,
|
|
@@ -114,7 +114,7 @@ var ARROW_SIZE_OPTIONS = [
|
|
|
114
114
|
{ value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
|
|
115
115
|
{ value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
|
|
116
116
|
];
|
|
117
|
-
var STROKE_DASH_OPTIONS2 =
|
|
117
|
+
var STROKE_DASH_OPTIONS2 = chunkFZSYLXJT_js.STROKE_DASH_OPTIONS;
|
|
118
118
|
|
|
119
119
|
// src/viewer/utils/shape-types.tsx
|
|
120
120
|
function getShapeType(shapeType) {
|
|
@@ -223,7 +223,7 @@ function isConnectorOrLineElement(element) {
|
|
|
223
223
|
if (element.type === "connector") {
|
|
224
224
|
return true;
|
|
225
225
|
}
|
|
226
|
-
if (!
|
|
226
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
227
227
|
return false;
|
|
228
228
|
}
|
|
229
229
|
const st = getShapeType(element.shapeType);
|
|
@@ -232,18 +232,18 @@ function isConnectorOrLineElement(element) {
|
|
|
232
232
|
|
|
233
233
|
// src/viewer/utils/image-style.ts
|
|
234
234
|
function getImageMaskStyle(element) {
|
|
235
|
-
if (!
|
|
235
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunkFZSYLXJT_js.resolveShapeGeometry(element);
|
|
239
239
|
if (geometry.kind === "borderRadius") {
|
|
240
240
|
return { borderRadius: geometry.radius };
|
|
241
241
|
}
|
|
242
242
|
return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
|
|
243
243
|
}
|
|
244
244
|
function getImageRenderStyle(element) {
|
|
245
|
-
const fit =
|
|
246
|
-
const counterTransform =
|
|
245
|
+
const fit = chunkFZSYLXJT_js.getImageFitStyle(element);
|
|
246
|
+
const counterTransform = chunkFZSYLXJT_js.getImageFillCounterTransform(element, Boolean(fit.transform));
|
|
247
247
|
return {
|
|
248
248
|
// A translated/scaled crop, or a rotWithShape=false counter-transform,
|
|
249
249
|
// must be masked by the stationary wrapper, not by the moving/counter-
|
|
@@ -262,7 +262,7 @@ function getImageSurfaceMaskStyle(element) {
|
|
|
262
262
|
};
|
|
263
263
|
}
|
|
264
264
|
function getImageSurfaceStyle(element) {
|
|
265
|
-
const fill =
|
|
265
|
+
const fill = chunkFZSYLXJT_js.hasShapeProperties(element) ? chunkFZSYLXJT_js.getComputedFillStyle(element) : void 0;
|
|
266
266
|
return {
|
|
267
267
|
position: "absolute",
|
|
268
268
|
inset: 0,
|
|
@@ -275,13 +275,13 @@ function getImageSurfaceStyle(element) {
|
|
|
275
275
|
};
|
|
276
276
|
}
|
|
277
277
|
function getCropShapeClipPath2(element) {
|
|
278
|
-
if (!
|
|
278
|
+
if (!chunkFZSYLXJT_js.isImageLikeElement(element)) {
|
|
279
279
|
return void 0;
|
|
280
280
|
}
|
|
281
|
-
return
|
|
281
|
+
return chunkFZSYLXJT_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
282
282
|
}
|
|
283
283
|
function getImageTilingStyle2(element, nativeSize) {
|
|
284
|
-
return
|
|
284
|
+
return chunkFZSYLXJT_js.getImageTilingStyle(element, nativeSize);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -413,7 +413,7 @@ function VideoWithMetadata({
|
|
|
413
413
|
{
|
|
414
414
|
ref: mediaRef,
|
|
415
415
|
className: "w-full h-full pointer-events-auto",
|
|
416
|
-
style: isFullScreen ? { objectFit: "cover" } :
|
|
416
|
+
style: isFullScreen ? { objectFit: "cover" } : chunkFZSYLXJT_js.getImageFitStyle(element),
|
|
417
417
|
controls: showTransport,
|
|
418
418
|
preload: "metadata",
|
|
419
419
|
playsInline: true,
|
|
@@ -470,7 +470,7 @@ function PresentationMediaController({
|
|
|
470
470
|
const [isMediaPlaying, setIsMediaPlaying] = React7.useState(false);
|
|
471
471
|
const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
|
|
472
472
|
const hideWhenNotPlaying = isPresentationMode && element.hideWhenNotPlaying === true;
|
|
473
|
-
const { volume: playbackVolume, playbackRate } =
|
|
473
|
+
const { volume: playbackVolume, playbackRate } = chunkFZSYLXJT_js.mediaPlaybackAttributes({
|
|
474
474
|
loop: element.loop,
|
|
475
475
|
volume: element.volume,
|
|
476
476
|
playbackSpeed: element.playbackSpeed
|
|
@@ -518,7 +518,7 @@ function PresentationMediaController({
|
|
|
518
518
|
if (!el || !isPresentationMode) {
|
|
519
519
|
return;
|
|
520
520
|
}
|
|
521
|
-
return
|
|
521
|
+
return chunkFZSYLXJT_js.scheduleMediaTrimAndFade(el, {
|
|
522
522
|
trimStartMs: element.trimStartMs,
|
|
523
523
|
trimEndMs: element.trimEndMs,
|
|
524
524
|
fadeInDuration: element.fadeInDuration,
|
|
@@ -539,7 +539,7 @@ function PresentationMediaController({
|
|
|
539
539
|
}
|
|
540
540
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
541
541
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
542
|
-
if (
|
|
542
|
+
if (chunkFZSYLXJT_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
@@ -571,7 +571,7 @@ function PresentationMediaController({
|
|
|
571
571
|
}, []);
|
|
572
572
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full", style: wrapperStyle, children: [
|
|
573
573
|
children({ mediaRef, onPlay: noopOnPlay, isMediaPlaying }),
|
|
574
|
-
|
|
574
|
+
chunkFZSYLXJT_js.shouldShowMediaFullscreenStopButton({
|
|
575
575
|
fullScreen: isFullScreen,
|
|
576
576
|
presenting: isPresentationMode,
|
|
577
577
|
playing: isMediaPlaying
|
|
@@ -588,7 +588,7 @@ function PresentationMediaController({
|
|
|
588
588
|
] });
|
|
589
589
|
}
|
|
590
590
|
function label(key) {
|
|
591
|
-
return key === void 0 ? void 0 :
|
|
591
|
+
return key === void 0 ? void 0 : chunk3JUZOKFI_js.translationsEn[key];
|
|
592
592
|
}
|
|
593
593
|
function FallbackIcon({
|
|
594
594
|
paths,
|
|
@@ -624,17 +624,17 @@ function Badge({
|
|
|
624
624
|
"div",
|
|
625
625
|
{
|
|
626
626
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
627
|
-
...{ [
|
|
627
|
+
...{ [chunkFZSYLXJT_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
628
628
|
children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
630
630
|
FallbackIcon,
|
|
631
631
|
{
|
|
632
|
-
paths:
|
|
632
|
+
paths: chunkFZSYLXJT_js.mediaFallbackIcon(visual, element.mediaType),
|
|
633
633
|
size: isMissing ? 32 : 48,
|
|
634
634
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
635
635
|
}
|
|
636
636
|
),
|
|
637
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
637
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkFZSYLXJT_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
638
638
|
]
|
|
639
639
|
}
|
|
640
640
|
);
|
|
@@ -651,17 +651,17 @@ function Placeholder({
|
|
|
651
651
|
"div",
|
|
652
652
|
{
|
|
653
653
|
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"}`,
|
|
654
|
-
...{ [
|
|
654
|
+
...{ [chunkFZSYLXJT_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
655
655
|
children: [
|
|
656
656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
657
657
|
FallbackIcon,
|
|
658
658
|
{
|
|
659
|
-
paths:
|
|
659
|
+
paths: chunkFZSYLXJT_js.mediaFallbackIcon(visual, element.mediaType),
|
|
660
660
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
661
661
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
662
662
|
}
|
|
663
663
|
),
|
|
664
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
664
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkFZSYLXJT_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
665
665
|
]
|
|
666
666
|
}
|
|
667
667
|
);
|
|
@@ -671,7 +671,7 @@ function renderMediaFallback({
|
|
|
671
671
|
posterUrl,
|
|
672
672
|
surface
|
|
673
673
|
}) {
|
|
674
|
-
const visual =
|
|
674
|
+
const visual = chunkFZSYLXJT_js.mediaFallbackVisual(surface, {
|
|
675
675
|
hasPoster: Boolean(posterUrl),
|
|
676
676
|
missing: element.mediaMissing === true
|
|
677
677
|
});
|
|
@@ -681,9 +681,9 @@ function renderMediaFallback({
|
|
|
681
681
|
"img",
|
|
682
682
|
{
|
|
683
683
|
src: posterUrl,
|
|
684
|
-
alt: visual.dimPoster ?
|
|
684
|
+
alt: visual.dimPoster ? chunk3JUZOKFI_js.translationsEn["pptx.media.posterAlt"] : chunk3JUZOKFI_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
685
685
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
686
|
-
style:
|
|
686
|
+
style: chunkFZSYLXJT_js.getImageFitStyle(element)
|
|
687
687
|
}
|
|
688
688
|
),
|
|
689
689
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
@@ -693,7 +693,7 @@ function renderMediaFallback({
|
|
|
693
693
|
}
|
|
694
694
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
695
695
|
if (element.type !== "media") {
|
|
696
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
696
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3JUZOKFI_js.translationsEn["pptx.media.title"] });
|
|
697
697
|
}
|
|
698
698
|
const mediaType = element.mediaType;
|
|
699
699
|
const mediaPath = element.mediaPath;
|
|
@@ -701,7 +701,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
701
701
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
702
702
|
const trimFragment = buildTrimFragment(element);
|
|
703
703
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
704
|
-
const shouldLoop =
|
|
704
|
+
const shouldLoop = chunkFZSYLXJT_js.mediaPlaybackAttributes(element).loop;
|
|
705
705
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
706
706
|
const isFullScreen = options?.fullScreen === true;
|
|
707
707
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -714,17 +714,17 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
714
714
|
return renderMediaFallback({ element, posterUrl, surface });
|
|
715
715
|
}
|
|
716
716
|
if (mediaType === "video") {
|
|
717
|
-
const onlineVideo =
|
|
717
|
+
const onlineVideo = chunkFZSYLXJT_js.getOnlineVideoEmbed(element);
|
|
718
718
|
if (onlineVideo) {
|
|
719
719
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
720
720
|
"iframe",
|
|
721
721
|
{
|
|
722
722
|
src: onlineVideo.embedUrl,
|
|
723
|
-
title:
|
|
723
|
+
title: chunk3JUZOKFI_js.translationsEn["pptx.media.onlineVideoTitle"],
|
|
724
724
|
className: "w-full h-full border-0 pointer-events-auto",
|
|
725
|
-
allow:
|
|
725
|
+
allow: chunkFZSYLXJT_js.ONLINE_VIDEO_IFRAME_ALLOW,
|
|
726
726
|
allowFullScreen: true,
|
|
727
|
-
sandbox:
|
|
727
|
+
sandbox: chunkFZSYLXJT_js.ONLINE_VIDEO_IFRAME_SANDBOX
|
|
728
728
|
}
|
|
729
729
|
);
|
|
730
730
|
}
|
|
@@ -793,32 +793,32 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
793
793
|
if (surface.presenting || surface.preview) {
|
|
794
794
|
return null;
|
|
795
795
|
}
|
|
796
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
796
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3JUZOKFI_js.translationsEn["pptx.media.title"] });
|
|
797
797
|
}
|
|
798
798
|
|
|
799
799
|
// src/viewer/utils/text-utils.tsx
|
|
800
800
|
function getTextStyleForElement(element, fallbackColor) {
|
|
801
|
-
return
|
|
801
|
+
return chunkFZSYLXJT_js.buildTextBlockStyle(element, { fallbackColor });
|
|
802
802
|
}
|
|
803
803
|
|
|
804
804
|
// src/viewer/utils/text-layout.tsx
|
|
805
805
|
function getTextLayoutStyle(element) {
|
|
806
|
-
if (!
|
|
806
|
+
if (!chunkFZSYLXJT_js.hasTextProperties(element)) {
|
|
807
807
|
return {};
|
|
808
808
|
}
|
|
809
|
-
const writingMode =
|
|
810
|
-
const textOrientation =
|
|
811
|
-
const verticalDirection =
|
|
809
|
+
const writingMode = chunkFZSYLXJT_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
810
|
+
const textOrientation = chunkFZSYLXJT_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
811
|
+
const verticalDirection = chunkFZSYLXJT_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
812
812
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
813
813
|
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
814
|
-
const hasParagraphIndents =
|
|
814
|
+
const hasParagraphIndents = chunkFZSYLXJT_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
815
815
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
816
816
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
817
817
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
818
818
|
const textIndent = !hasParagraphIndents && typeof paragraphIndent === "number" && paragraphIndent !== 0 ? paragraphIndent : void 0;
|
|
819
819
|
const bodyTop = element.textStyle?.bodyInsetTop ?? DEFAULT_BODY_INSET_TB_PX;
|
|
820
820
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
821
|
-
const bodyLayoutStyle =
|
|
821
|
+
const bodyLayoutStyle = chunkFZSYLXJT_js.buildTextBodyLayoutStyle(element);
|
|
822
822
|
return {
|
|
823
823
|
...bodyLayoutStyle,
|
|
824
824
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
@@ -848,7 +848,7 @@ function getTextLayoutStyle(element) {
|
|
|
848
848
|
|
|
849
849
|
// src/viewer/utils/text-effects.tsx
|
|
850
850
|
function buildTextBody3DSceneStyle2(textStyle, elementSize) {
|
|
851
|
-
return
|
|
851
|
+
return chunkFZSYLXJT_js.buildTextBody3DSceneStyle(textStyle, elementSize);
|
|
852
852
|
}
|
|
853
853
|
|
|
854
854
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1033,13 +1033,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1033
1033
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1034
1034
|
return renderedSegments;
|
|
1035
1035
|
}
|
|
1036
|
-
const paraKey = `${elementId}${
|
|
1036
|
+
const paraKey = `${elementId}${chunkFZSYLXJT_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1037
1037
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1038
1038
|
if (paraState) {
|
|
1039
1039
|
const style = buildAnimStyle(paraState);
|
|
1040
1040
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1041
1041
|
}
|
|
1042
|
-
const spec =
|
|
1042
|
+
const spec = chunkFZSYLXJT_js.buildTextBuildSpec(
|
|
1043
1043
|
elementId,
|
|
1044
1044
|
paraIndex,
|
|
1045
1045
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1057,7 +1057,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1057
1057
|
"span",
|
|
1058
1058
|
{
|
|
1059
1059
|
"data-anim-id": span.animId,
|
|
1060
|
-
style:
|
|
1060
|
+
style: chunkFZSYLXJT_js.textBuildSpanStyle(span),
|
|
1061
1061
|
children: content
|
|
1062
1062
|
},
|
|
1063
1063
|
span.animId
|
|
@@ -1068,13 +1068,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
|
|
|
1068
1068
|
if (!isUnderlineWords || !text) {
|
|
1069
1069
|
return inner(text, keyPrefix, metric);
|
|
1070
1070
|
}
|
|
1071
|
-
const pieces =
|
|
1071
|
+
const pieces = chunkFZSYLXJT_js.splitWordsForUnderline(text);
|
|
1072
1072
|
if (pieces.length === 0) {
|
|
1073
1073
|
return inner(text, keyPrefix, metric);
|
|
1074
1074
|
}
|
|
1075
1075
|
const gapMetric = metric ? {
|
|
1076
1076
|
...metric,
|
|
1077
|
-
nestedStyle: metric.nestedStyle ?
|
|
1077
|
+
nestedStyle: metric.nestedStyle ? chunkFZSYLXJT_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
|
|
1078
1078
|
} : void 0;
|
|
1079
1079
|
return pieces.map((piece, i) => {
|
|
1080
1080
|
const key = `${keyPrefix}-u${i}`;
|
|
@@ -1107,7 +1107,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
|
|
|
1107
1107
|
);
|
|
1108
1108
|
}
|
|
1109
1109
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
|
|
1110
|
-
const [lineLayout] =
|
|
1110
|
+
const [lineLayout] = chunkFZSYLXJT_js.buildRunTabLines(
|
|
1111
1111
|
line,
|
|
1112
1112
|
ctx,
|
|
1113
1113
|
nestedStyle,
|
|
@@ -1126,7 +1126,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1126
1126
|
if (!needsScriptFonts || !text) {
|
|
1127
1127
|
return text;
|
|
1128
1128
|
}
|
|
1129
|
-
const pieces =
|
|
1129
|
+
const pieces = chunkFZSYLXJT_js.splitRunByScriptFont(
|
|
1130
1130
|
text,
|
|
1131
1131
|
scriptFonts,
|
|
1132
1132
|
baseFontFamily,
|
|
@@ -1143,7 +1143,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1143
1143
|
if (!metric || !text) {
|
|
1144
1144
|
return inner(text, keyPrefix);
|
|
1145
1145
|
}
|
|
1146
|
-
const pieces =
|
|
1146
|
+
const pieces = chunkFZSYLXJT_js.splitRunForMetrics(text, metric.font);
|
|
1147
1147
|
if (pieces.length <= 1) {
|
|
1148
1148
|
return inner(text, keyPrefix);
|
|
1149
1149
|
}
|
|
@@ -1152,7 +1152,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1152
1152
|
{
|
|
1153
1153
|
style: {
|
|
1154
1154
|
...metric.nestedStyle,
|
|
1155
|
-
letterSpacing:
|
|
1155
|
+
letterSpacing: chunkFZSYLXJT_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1156
1156
|
},
|
|
1157
1157
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1158
1158
|
},
|
|
@@ -1228,8 +1228,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1228
1228
|
});
|
|
1229
1229
|
}
|
|
1230
1230
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber, fontSize) {
|
|
1231
|
-
const mathml =
|
|
1232
|
-
const safeMathml = mathml ?
|
|
1231
|
+
const mathml = chunkFZSYLXJT_js.convertOmmlToMathMl(equationXml);
|
|
1232
|
+
const safeMathml = mathml ? chunkFZSYLXJT_js.sanitizeMathMl(mathml) : "";
|
|
1233
1233
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1234
1234
|
"span",
|
|
1235
1235
|
{
|
|
@@ -1239,7 +1239,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1239
1239
|
},
|
|
1240
1240
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1241
1241
|
}
|
|
1242
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1242
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunk3JUZOKFI_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1243
1243
|
if (equationNumber) {
|
|
1244
1244
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1245
1245
|
"span",
|
|
@@ -1369,7 +1369,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1369
1369
|
const segmentStyle = segment?.style ?? {};
|
|
1370
1370
|
const textValue = run.text;
|
|
1371
1371
|
const lines = textValue.split("\n");
|
|
1372
|
-
const resolvedSegmentColor =
|
|
1372
|
+
const resolvedSegmentColor = chunkFZSYLXJT_js.normalizeHexColor(
|
|
1373
1373
|
segmentStyle.color || element.textStyle?.color,
|
|
1374
1374
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1375
1375
|
);
|
|
@@ -1377,22 +1377,22 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1377
1377
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1378
1378
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1379
1379
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1380
|
-
const baseFontSize =
|
|
1380
|
+
const baseFontSize = chunkFZSYLXJT_js.scaleFontSizeForAutoFit(
|
|
1381
1381
|
rawFontSize,
|
|
1382
|
-
|
|
1382
|
+
chunkFZSYLXJT_js.resolveAutoFitFontScale(element.textStyle)
|
|
1383
1383
|
);
|
|
1384
1384
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1385
|
-
const fontKerning =
|
|
1385
|
+
const fontKerning = chunkFZSYLXJT_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1386
1386
|
const scriptFallbackWins = Boolean(
|
|
1387
1387
|
segmentStyle.scriptFallbackFont && segmentStyle.fontFamilyIsCascadeDefault
|
|
1388
1388
|
);
|
|
1389
1389
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1390
|
-
const baseFontFamily = scriptFallbackWins ?
|
|
1390
|
+
const baseFontFamily = scriptFallbackWins ? chunkFZSYLXJT_js.getSubstituteFontFamily(segmentStyle.scriptFallbackFont) : rawFontFamily ? chunkFZSYLXJT_js.getSubstituteFontFamily(
|
|
1391
1391
|
rawFontFamily,
|
|
1392
|
-
|
|
1392
|
+
chunkFZSYLXJT_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1393
1393
|
) : DEFAULT_FONT_FAMILY2;
|
|
1394
|
-
const scriptFonts =
|
|
1395
|
-
const needsScriptFonts =
|
|
1394
|
+
const scriptFonts = chunkFZSYLXJT_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1395
|
+
const needsScriptFonts = chunkFZSYLXJT_js.hasDistinctScriptFonts(scriptFonts);
|
|
1396
1396
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1397
1397
|
const metricFont = {
|
|
1398
1398
|
fontFamily: baseFontFamily,
|
|
@@ -1400,7 +1400,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1400
1400
|
bold: Boolean(segmentStyle.bold),
|
|
1401
1401
|
italic: Boolean(segmentStyle.italic)
|
|
1402
1402
|
};
|
|
1403
|
-
const nestedStyle =
|
|
1403
|
+
const nestedStyle = chunkFZSYLXJT_js.nestedTextDecorationStyle(run.style);
|
|
1404
1404
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1405
1405
|
const spanStyle = { ...run.style };
|
|
1406
1406
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1408,11 +1408,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1408
1408
|
spanStyle.fontFamily = baseFontFamily;
|
|
1409
1409
|
spanStyle.verticalAlign = baselineShift;
|
|
1410
1410
|
spanStyle.fontKerning = fontKerning;
|
|
1411
|
-
spanStyle.letterSpacing =
|
|
1411
|
+
spanStyle.letterSpacing = chunkFZSYLXJT_js.pieceLetterSpacing(
|
|
1412
1412
|
authoredLetterSpacing,
|
|
1413
|
-
|
|
1413
|
+
chunkFZSYLXJT_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1414
1414
|
);
|
|
1415
|
-
const hollow =
|
|
1415
|
+
const hollow = chunkFZSYLXJT_js.hollowTextFillStyle(segmentStyle, {
|
|
1416
1416
|
color: resolvedSegmentColor,
|
|
1417
1417
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1418
1418
|
});
|
|
@@ -1427,7 +1427,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1427
1427
|
const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
|
|
1428
1428
|
const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
|
|
1429
1429
|
if (isUnderlineWords) {
|
|
1430
|
-
const stripped =
|
|
1430
|
+
const stripped = chunkFZSYLXJT_js.stripUnderlineDecoration(spanStyle);
|
|
1431
1431
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1432
1432
|
delete spanStyle.textDecorationStyle;
|
|
1433
1433
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1443,7 +1443,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1443
1443
|
scriptFonts,
|
|
1444
1444
|
baseFontFamily,
|
|
1445
1445
|
findHighlights,
|
|
1446
|
-
|
|
1446
|
+
chunkFZSYLXJT_js.buildTabContext(
|
|
1447
1447
|
element.textStyle?.tabStops,
|
|
1448
1448
|
element.textStyle?.defaultTabSize,
|
|
1449
1449
|
baseFontSize,
|
|
@@ -1475,14 +1475,14 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1475
1475
|
const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
|
|
1476
1476
|
const resolvedSegment = {
|
|
1477
1477
|
...segment,
|
|
1478
|
-
style:
|
|
1478
|
+
style: chunkFZSYLXJT_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
|
|
1479
1479
|
};
|
|
1480
|
-
const decorationCss =
|
|
1480
|
+
const decorationCss = chunkFZSYLXJT_js.segmentStyleToCss(
|
|
1481
1481
|
resolvedSegment,
|
|
1482
|
-
|
|
1482
|
+
chunkFZSYLXJT_js.resolveAutoFitFontScale(context.element.textStyle)
|
|
1483
1483
|
);
|
|
1484
|
-
|
|
1485
|
-
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...
|
|
1484
|
+
chunkFZSYLXJT_js.applyUnderlineVariant(decorationCss, resolvedSegment);
|
|
1485
|
+
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkFZSYLXJT_js.nestedTextDecorationStyle(decorationCss) } } : {
|
|
1486
1486
|
text: seed.text,
|
|
1487
1487
|
style: decorationCss,
|
|
1488
1488
|
segmentIndex: seed.segmentIndex
|
|
@@ -1497,7 +1497,7 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1497
1497
|
});
|
|
1498
1498
|
}
|
|
1499
1499
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
|
|
1500
|
-
if (!
|
|
1500
|
+
if (!chunkFZSYLXJT_js.hasTextProperties(element)) {
|
|
1501
1501
|
return emptyFallback || null;
|
|
1502
1502
|
}
|
|
1503
1503
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1507,7 +1507,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1507
1507
|
}
|
|
1508
1508
|
return element.text || emptyFallback || "";
|
|
1509
1509
|
}
|
|
1510
|
-
const paragraphs =
|
|
1510
|
+
const paragraphs = chunkFZSYLXJT_js.buildParagraphs(
|
|
1511
1511
|
element,
|
|
1512
1512
|
fieldContext,
|
|
1513
1513
|
segmentOverrides,
|
|
@@ -1653,13 +1653,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1653
1653
|
);
|
|
1654
1654
|
}
|
|
1655
1655
|
function getDuotoneColors(element) {
|
|
1656
|
-
if (!
|
|
1656
|
+
if (!chunkFZSYLXJT_js.isImageLikeElement(element)) {
|
|
1657
1657
|
return void 0;
|
|
1658
1658
|
}
|
|
1659
1659
|
return element.imageEffects?.duotone;
|
|
1660
1660
|
}
|
|
1661
1661
|
function buildLineShadowCss(element) {
|
|
1662
|
-
if (!
|
|
1662
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
1663
1663
|
return void 0;
|
|
1664
1664
|
}
|
|
1665
1665
|
const ss = element.shapeStyle;
|
|
@@ -1670,13 +1670,13 @@ function buildLineShadowCss(element) {
|
|
|
1670
1670
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1671
1671
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1672
1672
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1673
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1674
|
-
|
|
1673
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkFZSYLXJT_js.colorWithOpacity(
|
|
1674
|
+
chunkFZSYLXJT_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1675
1675
|
opacity
|
|
1676
1676
|
)}`;
|
|
1677
1677
|
}
|
|
1678
1678
|
function buildLineGlowFilter(element) {
|
|
1679
|
-
if (!
|
|
1679
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
1680
1680
|
return void 0;
|
|
1681
1681
|
}
|
|
1682
1682
|
const ss = element.shapeStyle;
|
|
@@ -1685,22 +1685,22 @@ function buildLineGlowFilter(element) {
|
|
|
1685
1685
|
}
|
|
1686
1686
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1687
1687
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1688
|
-
const glowCol =
|
|
1688
|
+
const glowCol = chunkFZSYLXJT_js.colorWithOpacity(chunkFZSYLXJT_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1689
1689
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1690
1690
|
}
|
|
1691
1691
|
function getDagDuotoneFilterId(elementId) {
|
|
1692
1692
|
return `dag-duotone-${elementId}`;
|
|
1693
1693
|
}
|
|
1694
1694
|
function hasDagDuotoneEffect(element) {
|
|
1695
|
-
if (!
|
|
1695
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
1696
1696
|
return false;
|
|
1697
1697
|
}
|
|
1698
1698
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1699
1699
|
}
|
|
1700
1700
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1701
1701
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1702
|
-
const c1 =
|
|
1703
|
-
const c2 =
|
|
1702
|
+
const c1 = chunkFZSYLXJT_js.hexToRgbUnit(color1);
|
|
1703
|
+
const c2 = chunkFZSYLXJT_js.hexToRgbUnit(color2);
|
|
1704
1704
|
const grayscaleMatrix = [
|
|
1705
1705
|
0.2126,
|
|
1706
1706
|
0.7152,
|
|
@@ -1744,7 +1744,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1744
1744
|
|
|
1745
1745
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1746
1746
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1747
|
-
return
|
|
1747
|
+
return chunkFZSYLXJT_js.build3DExtrusionData(
|
|
1748
1748
|
shape3d,
|
|
1749
1749
|
scene3d,
|
|
1750
1750
|
fillColor,
|
|
@@ -1753,7 +1753,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1753
1753
|
);
|
|
1754
1754
|
}
|
|
1755
1755
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
|
|
1756
|
-
|
|
1756
|
+
chunkFZSYLXJT_js.apply3dEffects(
|
|
1757
1757
|
base,
|
|
1758
1758
|
scene3d,
|
|
1759
1759
|
shape3d,
|
|
@@ -1768,11 +1768,11 @@ function rendersCustomVectorPath(element) {
|
|
|
1768
1768
|
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;
|
|
1769
1769
|
}
|
|
1770
1770
|
function rendersWedgeCalloutVector(element) {
|
|
1771
|
-
return element.type === "shape" &&
|
|
1771
|
+
return element.type === "shape" && chunkFZSYLXJT_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1772
1772
|
}
|
|
1773
1773
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1774
1774
|
if (element.type === "group") {
|
|
1775
|
-
const fx2 =
|
|
1775
|
+
const fx2 = chunkFZSYLXJT_js.getComputedEffectStyle(element);
|
|
1776
1776
|
const groupStyle = {};
|
|
1777
1777
|
if (fx2.filter) {
|
|
1778
1778
|
groupStyle.filter = fx2.filter;
|
|
@@ -1782,13 +1782,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1782
1782
|
}
|
|
1783
1783
|
return groupStyle;
|
|
1784
1784
|
}
|
|
1785
|
-
if (!
|
|
1785
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
1786
1786
|
return {};
|
|
1787
1787
|
}
|
|
1788
1788
|
const ss = element.shapeStyle;
|
|
1789
|
-
const fill = animatesFill ? void 0 :
|
|
1790
|
-
const fx =
|
|
1791
|
-
const stroke =
|
|
1789
|
+
const fill = animatesFill ? void 0 : chunkFZSYLXJT_js.getComputedFillStyle(element, parentGroupFill);
|
|
1790
|
+
const fx = chunkFZSYLXJT_js.getComputedEffectStyle(element);
|
|
1791
|
+
const stroke = chunkFZSYLXJT_js.getComputedStrokeStyle(element);
|
|
1792
1792
|
const base = {
|
|
1793
1793
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1794
1794
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1827,7 +1827,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1827
1827
|
};
|
|
1828
1828
|
Object.assign(
|
|
1829
1829
|
base,
|
|
1830
|
-
|
|
1830
|
+
chunkFZSYLXJT_js.getAnimationColorBaseStyle(element, {
|
|
1831
1831
|
animatesFill,
|
|
1832
1832
|
animatesStroke,
|
|
1833
1833
|
parentGroupFill
|
|
@@ -1849,7 +1849,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1849
1849
|
},
|
|
1850
1850
|
element.id
|
|
1851
1851
|
);
|
|
1852
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1852
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkFZSYLXJT_js.isStrokeOnlyPresetElement(element)) {
|
|
1853
1853
|
base.backgroundColor = "transparent";
|
|
1854
1854
|
base.backgroundImage = void 0;
|
|
1855
1855
|
base.borderWidth = void 0;
|
|
@@ -1863,7 +1863,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1863
1863
|
if (rendersWedgeCalloutVector(element)) {
|
|
1864
1864
|
return base;
|
|
1865
1865
|
}
|
|
1866
|
-
const geometry =
|
|
1866
|
+
const geometry = chunkFZSYLXJT_js.resolveShapeGeometry(element);
|
|
1867
1867
|
switch (geometry.kind) {
|
|
1868
1868
|
case "bare":
|
|
1869
1869
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1887,7 +1887,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1887
1887
|
}
|
|
1888
1888
|
}
|
|
1889
1889
|
function getConnectorPathGeometry2(element) {
|
|
1890
|
-
return
|
|
1890
|
+
return chunkFZSYLXJT_js.getConnectorPathGeometry(element);
|
|
1891
1891
|
}
|
|
1892
1892
|
var ARROW_SIZE_SCALE = {
|
|
1893
1893
|
sm: 0.6,
|
|
@@ -1956,11 +1956,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1956
1956
|
strokePaint,
|
|
1957
1957
|
strokeWidth,
|
|
1958
1958
|
dashArray,
|
|
1959
|
-
lineCap:
|
|
1959
|
+
lineCap: chunkFZSYLXJT_js.svgLineCap(shapeStyle?.lineCap),
|
|
1960
1960
|
lineJoin,
|
|
1961
1961
|
miterLimit,
|
|
1962
|
-
offsets:
|
|
1963
|
-
widths:
|
|
1962
|
+
offsets: chunkFZSYLXJT_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1963
|
+
widths: chunkFZSYLXJT_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1964
1964
|
};
|
|
1965
1965
|
}
|
|
1966
1966
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1983,12 +1983,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1983
1983
|
}
|
|
1984
1984
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1985
1985
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1986
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1986
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkFZSYLXJT_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1987
1987
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1988
|
-
const gradientPaint = gradient ?
|
|
1988
|
+
const gradientPaint = gradient ? chunkFZSYLXJT_js.svgGradientFillRef(gradient) : void 0;
|
|
1989
1989
|
const nodes = [];
|
|
1990
1990
|
if (subpaths && needsPerSubpath) {
|
|
1991
|
-
const paints =
|
|
1991
|
+
const paints = chunkFZSYLXJT_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1992
1992
|
paints.forEach((paint, idx) => {
|
|
1993
1993
|
if (paint.fill !== "none") {
|
|
1994
1994
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2017,7 +2017,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2017
2017
|
"path",
|
|
2018
2018
|
{
|
|
2019
2019
|
d: pathData,
|
|
2020
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2020
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkFZSYLXJT_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2021
2021
|
stroke: "none",
|
|
2022
2022
|
vectorEffect: "non-scaling-stroke"
|
|
2023
2023
|
},
|
|
@@ -2043,14 +2043,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2043
2043
|
);
|
|
2044
2044
|
}
|
|
2045
2045
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2046
|
-
if (!
|
|
2046
|
+
if (!chunkFZSYLXJT_js.hasShapeProperties(element)) {
|
|
2047
2047
|
return null;
|
|
2048
2048
|
}
|
|
2049
2049
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2050
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2051
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2052
|
-
const dashType =
|
|
2053
|
-
const dashArray =
|
|
2050
|
+
const fillPaint = animatesFill ? "inherit" : chunkFZSYLXJT_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2051
|
+
const strokePaint = animatesStroke ? "inherit" : chunkFZSYLXJT_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2052
|
+
const dashType = chunkFZSYLXJT_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2053
|
+
const dashArray = chunkFZSYLXJT_js.getSvgStrokeDasharray(
|
|
2054
2054
|
dashType,
|
|
2055
2055
|
Math.max(strokeWidth, 1),
|
|
2056
2056
|
element.shapeStyle?.customDashSegments
|
|
@@ -2131,13 +2131,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2131
2131
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2132
2132
|
// without this the shape fell back to the parser's representative solid
|
|
2133
2133
|
// and lost every fade (issue #132).
|
|
2134
|
-
|
|
2134
|
+
chunkFZSYLXJT_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2135
2135
|
);
|
|
2136
2136
|
}
|
|
2137
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2137
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkFZSYLXJT_js.buildStrokeOutline(element)) {
|
|
2138
2138
|
const width = Math.max(element.width, 1);
|
|
2139
2139
|
const height = Math.max(element.height, 1);
|
|
2140
|
-
const geometry =
|
|
2140
|
+
const geometry = chunkFZSYLXJT_js.getPresetShapeVectorGeometry(
|
|
2141
2141
|
element.shapeType || "rect",
|
|
2142
2142
|
width,
|
|
2143
2143
|
height,
|
|
@@ -2165,18 +2165,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2165
2165
|
);
|
|
2166
2166
|
}
|
|
2167
2167
|
}
|
|
2168
|
-
if (element.type === "shape" &&
|
|
2168
|
+
if (element.type === "shape" && chunkFZSYLXJT_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2169
2169
|
const width = Math.max(element.width, 1);
|
|
2170
2170
|
const height = Math.max(element.height, 1);
|
|
2171
|
-
const geometry =
|
|
2171
|
+
const geometry = chunkFZSYLXJT_js.getPresetShapeVectorGeometry(
|
|
2172
2172
|
element.shapeType,
|
|
2173
2173
|
width,
|
|
2174
2174
|
height,
|
|
2175
2175
|
element.shapeAdjustments
|
|
2176
2176
|
);
|
|
2177
2177
|
if (geometry) {
|
|
2178
|
-
const gradient =
|
|
2179
|
-
const gradientPaint = gradient ?
|
|
2178
|
+
const gradient = chunkFZSYLXJT_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2179
|
+
const gradientPaint = gradient ? chunkFZSYLXJT_js.svgGradientFillRef(gradient) : void 0;
|
|
2180
2180
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2181
2181
|
"svg",
|
|
2182
2182
|
{
|
|
@@ -2209,18 +2209,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2209
2209
|
);
|
|
2210
2210
|
}
|
|
2211
2211
|
}
|
|
2212
|
-
if (
|
|
2212
|
+
if (chunkFZSYLXJT_js.isCalloutShape(normalizedType)) {
|
|
2213
2213
|
const width = Math.max(element.width, 1);
|
|
2214
2214
|
const height = Math.max(element.height, 1);
|
|
2215
|
-
const geometry =
|
|
2215
|
+
const geometry = chunkFZSYLXJT_js.getCalloutLeaderLineGeometry(
|
|
2216
2216
|
normalizedType,
|
|
2217
2217
|
width,
|
|
2218
2218
|
height,
|
|
2219
2219
|
element.shapeAdjustments
|
|
2220
2220
|
);
|
|
2221
2221
|
if (geometry && geometry.points.length >= 2) {
|
|
2222
|
-
const leaderPath =
|
|
2223
|
-
const bounds =
|
|
2222
|
+
const leaderPath = chunkFZSYLXJT_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2223
|
+
const bounds = chunkFZSYLXJT_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2224
2224
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2225
2225
|
const offsetLeft = bounds.minX;
|
|
2226
2226
|
const offsetTop = bounds.minY;
|
|
@@ -2283,10 +2283,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2283
2283
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2284
2284
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2285
2285
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2286
|
-
const connectorLineCap =
|
|
2286
|
+
const connectorLineCap = chunkFZSYLXJT_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2287
2287
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2288
|
-
const offsets =
|
|
2289
|
-
const widths =
|
|
2288
|
+
const offsets = chunkFZSYLXJT_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2289
|
+
const widths = chunkFZSYLXJT_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2290
2290
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2291
2291
|
"svg",
|
|
2292
2292
|
{
|
|
@@ -2353,15 +2353,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2353
2353
|
}
|
|
2354
2354
|
const rawStops = stops.map((gs) => {
|
|
2355
2355
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2356
|
-
const color =
|
|
2357
|
-
const opacity =
|
|
2356
|
+
const color = chunkFZSYLXJT_js.parseDrawingColor(gs) ?? "#888888";
|
|
2357
|
+
const opacity = chunkFZSYLXJT_js.parseDrawingColorOpacity(gs);
|
|
2358
2358
|
return { position: pos, color, opacity };
|
|
2359
2359
|
}).sort((a, b) => a.position - b.position);
|
|
2360
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2360
|
+
const stopStrings = rawStops.map((s) => `${chunkFZSYLXJT_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2361
2361
|
const lin = gradFill["a:lin"];
|
|
2362
2362
|
if (lin) {
|
|
2363
2363
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2364
|
-
const angleDeg = Math.round(
|
|
2364
|
+
const angleDeg = Math.round(chunkFZSYLXJT_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2365
2365
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2366
2366
|
}
|
|
2367
2367
|
const path = gradFill["a:path"];
|
|
@@ -2375,7 +2375,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2375
2375
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2376
2376
|
} : void 0;
|
|
2377
2377
|
if (pathType === "rect") {
|
|
2378
|
-
return
|
|
2378
|
+
return chunkFZSYLXJT_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2379
2379
|
}
|
|
2380
2380
|
let cx = 50;
|
|
2381
2381
|
let cy = 50;
|
|
@@ -2397,8 +2397,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2397
2397
|
if (!pattFill) {
|
|
2398
2398
|
return void 0;
|
|
2399
2399
|
}
|
|
2400
|
-
const fgColor =
|
|
2401
|
-
const bgColor =
|
|
2400
|
+
const fgColor = chunkFZSYLXJT_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2401
|
+
const bgColor = chunkFZSYLXJT_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2402
2402
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2403
2403
|
switch (preset) {
|
|
2404
2404
|
case "ltHorz":
|
|
@@ -2509,11 +2509,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2509
2509
|
const prstDash = ln["a:prstDash"];
|
|
2510
2510
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2511
2511
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2512
|
-
const color =
|
|
2512
|
+
const color = chunkFZSYLXJT_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2513
2513
|
if (color) {
|
|
2514
|
-
const opacity =
|
|
2514
|
+
const opacity = chunkFZSYLXJT_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2515
2515
|
const key = `${edge.prefix}`;
|
|
2516
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2516
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkFZSYLXJT_js.colorWithOpacity(color, opacity)}`;
|
|
2517
2517
|
}
|
|
2518
2518
|
}
|
|
2519
2519
|
return borderStyle;
|
|
@@ -2526,7 +2526,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2526
2526
|
const textShadowParts = [];
|
|
2527
2527
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2528
2528
|
if (outerShdw) {
|
|
2529
|
-
const shdwColor =
|
|
2529
|
+
const shdwColor = chunkFZSYLXJT_js.parseDrawingColor(outerShdw);
|
|
2530
2530
|
if (shdwColor) {
|
|
2531
2531
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2532
2532
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2544,7 +2544,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2544
2544
|
}
|
|
2545
2545
|
const glow = effectLst["a:glow"];
|
|
2546
2546
|
if (glow) {
|
|
2547
|
-
const glowColor =
|
|
2547
|
+
const glowColor = chunkFZSYLXJT_js.parseDrawingColor(glow);
|
|
2548
2548
|
if (glowColor) {
|
|
2549
2549
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2550
2550
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2566,11 +2566,11 @@ function extractCellText(cellXml) {
|
|
|
2566
2566
|
const textParts = [];
|
|
2567
2567
|
const runs = ensureArrayValue(paragraph["a:r"]);
|
|
2568
2568
|
runs.forEach((run) => {
|
|
2569
|
-
textParts.push(
|
|
2569
|
+
textParts.push(chunkFZSYLXJT_js.xmlText(run["a:t"]) ?? "");
|
|
2570
2570
|
});
|
|
2571
2571
|
const fields = ensureArrayValue(paragraph["a:fld"]);
|
|
2572
2572
|
fields.forEach((field) => {
|
|
2573
|
-
textParts.push(
|
|
2573
|
+
textParts.push(chunkFZSYLXJT_js.xmlText(field["a:t"]) ?? "");
|
|
2574
2574
|
});
|
|
2575
2575
|
paragraphTexts.push(textParts.join(""));
|
|
2576
2576
|
});
|
|
@@ -2614,10 +2614,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2614
2614
|
if (runProps?.["@_u"] !== void 0) {
|
|
2615
2615
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2616
2616
|
}
|
|
2617
|
-
const runColor =
|
|
2617
|
+
const runColor = chunkFZSYLXJT_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkFZSYLXJT_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2618
2618
|
if (runColor) {
|
|
2619
|
-
const opacity =
|
|
2620
|
-
cellStyle.color =
|
|
2619
|
+
const opacity = chunkFZSYLXJT_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2620
|
+
cellStyle.color = chunkFZSYLXJT_js.colorWithOpacity(runColor, opacity);
|
|
2621
2621
|
}
|
|
2622
2622
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2623
2623
|
if (fontFamily) {
|
|
@@ -2627,15 +2627,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2627
2627
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2628
2628
|
}
|
|
2629
2629
|
const cellProperties = cellXml["a:tcPr"];
|
|
2630
|
-
const cellFill =
|
|
2630
|
+
const cellFill = chunkFZSYLXJT_js.parseDrawingColor(
|
|
2631
2631
|
cellProperties?.["a:solidFill"],
|
|
2632
2632
|
schemeColorOverrides
|
|
2633
2633
|
);
|
|
2634
2634
|
if (cellFill) {
|
|
2635
|
-
const opacity =
|
|
2635
|
+
const opacity = chunkFZSYLXJT_js.parseDrawingColorOpacity(
|
|
2636
2636
|
cellProperties?.["a:solidFill"]
|
|
2637
2637
|
);
|
|
2638
|
-
cellStyle.backgroundColor =
|
|
2638
|
+
cellStyle.backgroundColor = chunkFZSYLXJT_js.colorWithOpacity(cellFill, opacity);
|
|
2639
2639
|
} else {
|
|
2640
2640
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2641
2641
|
if (gradCss) {
|
|
@@ -2650,16 +2650,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2650
2650
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2651
2651
|
Object.assign(cellStyle, edgeBorders);
|
|
2652
2652
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2653
|
-
const borderColor =
|
|
2653
|
+
const borderColor = chunkFZSYLXJT_js.parseDrawingColor(
|
|
2654
2654
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2655
2655
|
schemeColorOverrides
|
|
2656
|
-
) ||
|
|
2656
|
+
) || chunkFZSYLXJT_js.parseDrawingColor(
|
|
2657
2657
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2658
2658
|
schemeColorOverrides
|
|
2659
|
-
) ||
|
|
2659
|
+
) || chunkFZSYLXJT_js.parseDrawingColor(
|
|
2660
2660
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2661
2661
|
schemeColorOverrides
|
|
2662
|
-
) ||
|
|
2662
|
+
) || chunkFZSYLXJT_js.parseDrawingColor(
|
|
2663
2663
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2664
2664
|
schemeColorOverrides
|
|
2665
2665
|
);
|
|
@@ -2731,7 +2731,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2731
2731
|
if (element.type !== "table") {
|
|
2732
2732
|
return void 0;
|
|
2733
2733
|
}
|
|
2734
|
-
return
|
|
2734
|
+
return chunkFZSYLXJT_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2735
2735
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2736
2736
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2737
2737
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2811,7 +2811,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2811
2811
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2812
2812
|
"span",
|
|
2813
2813
|
{
|
|
2814
|
-
style: { position: "relative", ...
|
|
2814
|
+
style: { position: "relative", ...chunkFZSYLXJT_js.cellRunStyle(run) },
|
|
2815
2815
|
children: run.text
|
|
2816
2816
|
},
|
|
2817
2817
|
`r-${index}`
|
|
@@ -2819,7 +2819,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2819
2819
|
});
|
|
2820
2820
|
}
|
|
2821
2821
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2822
|
-
return
|
|
2822
|
+
return chunkFZSYLXJT_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2823
2823
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2824
2824
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2825
2825
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2952,7 +2952,7 @@ function TableResizeOverlay({
|
|
|
2952
2952
|
const containerRef = React7.useRef(null);
|
|
2953
2953
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2954
2954
|
const dragRef = React7.useRef(null);
|
|
2955
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2955
|
+
const colBoundaries = React7.useMemo(() => chunkFZSYLXJT_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2956
2956
|
const measureRows = React7.useCallback(() => {
|
|
2957
2957
|
const container = containerRef.current;
|
|
2958
2958
|
if (!container) {
|
|
@@ -2999,11 +2999,11 @@ function TableResizeOverlay({
|
|
|
2999
2999
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3000
3000
|
if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3001
3001
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3002
|
-
onResizeColumns(
|
|
3002
|
+
onResizeColumns(chunkFZSYLXJT_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3003
3003
|
} else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
|
|
3004
3004
|
const deltaY = e.clientY - drag.startPos;
|
|
3005
|
-
const newHeight =
|
|
3006
|
-
drag.initialRowHeight ??
|
|
3005
|
+
const newHeight = chunkFZSYLXJT_js.computeResizedRowHeight(
|
|
3006
|
+
drag.initialRowHeight ?? chunkFZSYLXJT_js.DEFAULT_ROW_HEIGHT,
|
|
3007
3007
|
deltaY
|
|
3008
3008
|
);
|
|
3009
3009
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3041,7 +3041,7 @@ function TableResizeOverlay({
|
|
|
3041
3041
|
e.stopPropagation();
|
|
3042
3042
|
const table = containerRef.current?.querySelector("table");
|
|
3043
3043
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3044
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3044
|
+
const actualHeight = tr?.offsetHeight ?? chunkFZSYLXJT_js.DEFAULT_ROW_HEIGHT;
|
|
3045
3045
|
document.body.style.cursor = "row-resize";
|
|
3046
3046
|
document.body.style.userSelect = "none";
|
|
3047
3047
|
dragRef.current = {
|
|
@@ -3081,14 +3081,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3081
3081
|
const rowCount = tableData.rows.length;
|
|
3082
3082
|
const columnCount = tableData.columnWidths.length;
|
|
3083
3083
|
const selectedCell = options?.selectedCell || null;
|
|
3084
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3084
|
+
const isEditable = Boolean(options?.editable) && chunkFZSYLXJT_js.canDrillDown(element);
|
|
3085
3085
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3086
3086
|
const sharedCtx = {
|
|
3087
3087
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3088
3088
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3089
3089
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3090
3090
|
};
|
|
3091
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3091
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkFZSYLXJT_js.tableCellCss(
|
|
3092
3092
|
tableData,
|
|
3093
3093
|
cell,
|
|
3094
3094
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3101,7 +3101,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3101
3101
|
}
|
|
3102
3102
|
const first = selectedCell.selectedCells[0];
|
|
3103
3103
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3104
|
-
return
|
|
3104
|
+
return chunkFZSYLXJT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3105
3105
|
})();
|
|
3106
3106
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3107
3107
|
TableResizeOverlay,
|
|
@@ -3122,9 +3122,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3122
3122
|
{
|
|
3123
3123
|
className: "w-full h-full border-collapse table-fixed",
|
|
3124
3124
|
style: {
|
|
3125
|
-
fontFamily:
|
|
3125
|
+
fontFamily: chunkFZSYLXJT_js.DEFAULT_FONT_FAMILY,
|
|
3126
3126
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3127
|
-
...
|
|
3127
|
+
...chunkFZSYLXJT_js.tableContainerCss(tableData)
|
|
3128
3128
|
},
|
|
3129
3129
|
children: [
|
|
3130
3130
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3143,7 +3143,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3143
3143
|
return null;
|
|
3144
3144
|
}
|
|
3145
3145
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3146
|
-
const isInMultiSelection =
|
|
3146
|
+
const isInMultiSelection = chunkFZSYLXJT_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3147
3147
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3148
3148
|
const diag = getCellDiagonalBorders2(
|
|
3149
3149
|
cell.style,
|
|
@@ -3172,7 +3172,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3172
3172
|
}
|
|
3173
3173
|
event.stopPropagation();
|
|
3174
3174
|
if (event.shiftKey && selectedCell) {
|
|
3175
|
-
const rect =
|
|
3175
|
+
const rect = chunkFZSYLXJT_js.computeSelectionRect(
|
|
3176
3176
|
selectedCell.rowIndex,
|
|
3177
3177
|
selectedCell.columnIndex,
|
|
3178
3178
|
rowIndex,
|
|
@@ -3182,7 +3182,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3182
3182
|
options?.onSelectCell?.({
|
|
3183
3183
|
rowIndex: selectedCell.rowIndex,
|
|
3184
3184
|
columnIndex: selectedCell.columnIndex,
|
|
3185
|
-
selectedCells:
|
|
3185
|
+
selectedCells: chunkFZSYLXJT_js.rectToCells(rect)
|
|
3186
3186
|
});
|
|
3187
3187
|
} else {
|
|
3188
3188
|
options?.onSelectCell?.({
|
|
@@ -3243,10 +3243,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3243
3243
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3244
3244
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3245
3245
|
}
|
|
3246
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3246
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3JUZOKFI_js.translationsEn["pptx.table.title"] });
|
|
3247
3247
|
}
|
|
3248
3248
|
const selectedCell = options?.selectedCell || null;
|
|
3249
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3249
|
+
const isEditable = Boolean(options?.editable) && chunkFZSYLXJT_js.canDrillDown(element);
|
|
3250
3250
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3251
3251
|
const tableEl = element;
|
|
3252
3252
|
const xmlSelectionRect = (() => {
|
|
@@ -3258,7 +3258,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3258
3258
|
}
|
|
3259
3259
|
const first = selectedCell.selectedCells[0];
|
|
3260
3260
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3261
|
-
return
|
|
3261
|
+
return chunkFZSYLXJT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3262
3262
|
})();
|
|
3263
3263
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3264
3264
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3280,9 +3280,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3280
3280
|
{
|
|
3281
3281
|
className: "w-full h-full border-collapse table-fixed",
|
|
3282
3282
|
style: {
|
|
3283
|
-
fontFamily:
|
|
3283
|
+
fontFamily: chunkFZSYLXJT_js.DEFAULT_FONT_FAMILY,
|
|
3284
3284
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3285
|
-
...
|
|
3285
|
+
...chunkFZSYLXJT_js.tableContainerCss(tableEl.tableData)
|
|
3286
3286
|
},
|
|
3287
3287
|
children: [
|
|
3288
3288
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3339,7 +3339,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3339
3339
|
color: textStyle.color,
|
|
3340
3340
|
...bandStyle,
|
|
3341
3341
|
...xmlCellStyle,
|
|
3342
|
-
...tdCellOverride ?
|
|
3342
|
+
...tdCellOverride ? chunkFZSYLXJT_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3343
3343
|
...diag ? { position: "relative" } : void 0
|
|
3344
3344
|
};
|
|
3345
3345
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3349,7 +3349,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3349
3349
|
"border px-1 py-0.5 align-top",
|
|
3350
3350
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3351
3351
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3352
|
-
|
|
3352
|
+
chunkFZSYLXJT_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3353
3353
|
),
|
|
3354
3354
|
colSpan,
|
|
3355
3355
|
rowSpan: rSpan,
|
|
@@ -3360,7 +3360,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3360
3360
|
}
|
|
3361
3361
|
event.stopPropagation();
|
|
3362
3362
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3363
|
-
const rect =
|
|
3363
|
+
const rect = chunkFZSYLXJT_js.computeSelectionRect(
|
|
3364
3364
|
selectedCell.rowIndex,
|
|
3365
3365
|
selectedCell.columnIndex,
|
|
3366
3366
|
rowIndex,
|
|
@@ -3370,7 +3370,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3370
3370
|
options?.onSelectCell?.({
|
|
3371
3371
|
rowIndex: selectedCell.rowIndex,
|
|
3372
3372
|
columnIndex: selectedCell.columnIndex,
|
|
3373
|
-
selectedCells:
|
|
3373
|
+
selectedCells: chunkFZSYLXJT_js.rectToCells(rect)
|
|
3374
3374
|
});
|
|
3375
3375
|
} else {
|
|
3376
3376
|
options?.onSelectCell?.({
|
|
@@ -3429,23 +3429,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3429
3429
|
);
|
|
3430
3430
|
}
|
|
3431
3431
|
function partAttrs(part) {
|
|
3432
|
-
return part ?
|
|
3432
|
+
return part ? chunkFZSYLXJT_js.chartPartToAttrs(part) : void 0;
|
|
3433
3433
|
}
|
|
3434
3434
|
function resolveReactPalette(chartData) {
|
|
3435
3435
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3436
3436
|
return chartData.colorPalette;
|
|
3437
3437
|
}
|
|
3438
|
-
return [...
|
|
3438
|
+
return [...chunkFZSYLXJT_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3439
3439
|
}
|
|
3440
3440
|
function buildReactChartViewModel(element) {
|
|
3441
3441
|
if (element.type !== "chart" || !element.chartData) {
|
|
3442
|
-
return
|
|
3442
|
+
return chunkFZSYLXJT_js.buildChartViewModel(element);
|
|
3443
3443
|
}
|
|
3444
3444
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3445
3445
|
...element,
|
|
3446
3446
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3447
3447
|
};
|
|
3448
|
-
return
|
|
3448
|
+
return chunkFZSYLXJT_js.buildChartViewModel(themedElement);
|
|
3449
3449
|
}
|
|
3450
3450
|
function renderPrimitive(prim, key) {
|
|
3451
3451
|
switch (prim.kind) {
|
|
@@ -3597,7 +3597,7 @@ function renderText(t, key) {
|
|
|
3597
3597
|
);
|
|
3598
3598
|
}
|
|
3599
3599
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3600
|
-
const legendItems =
|
|
3600
|
+
const legendItems = chunkFZSYLXJT_js.computeChartLegendLayout(vm);
|
|
3601
3601
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3602
3602
|
"svg",
|
|
3603
3603
|
{
|
|
@@ -3737,17 +3737,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3737
3737
|
}
|
|
3738
3738
|
function renderChartElement(element) {
|
|
3739
3739
|
if (element.type !== "chart") {
|
|
3740
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3740
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3JUZOKFI_js.translationsEn["pptx.chart.heading"] });
|
|
3741
3741
|
}
|
|
3742
3742
|
const chartData = element.chartData;
|
|
3743
3743
|
if (!chartData || chartData.series.length === 0) {
|
|
3744
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3744
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3JUZOKFI_js.translationsEn["pptx.chart.heading"] });
|
|
3745
3745
|
}
|
|
3746
|
-
const kind =
|
|
3746
|
+
const kind = chunkFZSYLXJT_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3747
3747
|
return renderChartViewModel(
|
|
3748
3748
|
element.id,
|
|
3749
3749
|
buildReactChartViewModel(element),
|
|
3750
|
-
|
|
3750
|
+
chunkFZSYLXJT_js.chartPreserveAspectRatio(kind)
|
|
3751
3751
|
);
|
|
3752
3752
|
}
|
|
3753
3753
|
|
|
@@ -3767,14 +3767,14 @@ function buildNotesPdf(pages) {
|
|
|
3767
3767
|
notes: page.notes,
|
|
3768
3768
|
slideNumber: page.slideNumber
|
|
3769
3769
|
}));
|
|
3770
|
-
const bytes =
|
|
3770
|
+
const bytes = chunkFZSYLXJT_js.buildNotesPdfBytes(images, meta);
|
|
3771
3771
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3772
3772
|
return URL.createObjectURL(blob);
|
|
3773
3773
|
}
|
|
3774
3774
|
|
|
3775
3775
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3776
3776
|
function buildPdfFromTiledImageData(pages) {
|
|
3777
|
-
const bytes =
|
|
3777
|
+
const bytes = chunkFZSYLXJT_js.buildTiledSlidesPdfBytes(pages);
|
|
3778
3778
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3779
3779
|
return URL.createObjectURL(blob);
|
|
3780
3780
|
}
|
|
@@ -3783,7 +3783,7 @@ function buildPdfFromTiledImageData(pages) {
|
|
|
3783
3783
|
var activePreview = null;
|
|
3784
3784
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3785
3785
|
stopPreviewAnimation();
|
|
3786
|
-
const descriptor =
|
|
3786
|
+
const descriptor = chunkFZSYLXJT_js.buildPreviewAnimation(preset, options);
|
|
3787
3787
|
if (!descriptor) {
|
|
3788
3788
|
return;
|
|
3789
3789
|
}
|
|
@@ -3796,7 +3796,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3796
3796
|
return;
|
|
3797
3797
|
}
|
|
3798
3798
|
const stage = domEl.offsetParent;
|
|
3799
|
-
const descriptor =
|
|
3799
|
+
const descriptor = chunkFZSYLXJT_js.buildMotionPathPreview({
|
|
3800
3800
|
path,
|
|
3801
3801
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3802
3802
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|