pptx-react-viewer 4.2.0 → 4.4.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 +138 -0
- package/dist/{AiChatPanel-SEIRQ3XP.mjs → AiChatPanel-QJHUDIWT.mjs} +4 -4
- package/dist/AiChatPanel-QJHUDIWT.mjs.br +0 -0
- package/dist/AiChatPanel-QJHUDIWT.mjs.gz +0 -0
- package/dist/{AiChatPanel-VVTLQXQ5.js → AiChatPanel-UFMSTNCB.js} +28 -28
- package/dist/AiChatPanel-UFMSTNCB.js.br +0 -0
- package/dist/AiChatPanel-UFMSTNCB.js.gz +0 -0
- package/dist/{Model3DScene-DCTVSK2F.mjs → Model3DScene-3GOC5HUS.mjs} +1 -1
- package/dist/Model3DScene-3GOC5HUS.mjs.br +0 -0
- package/dist/Model3DScene-3GOC5HUS.mjs.gz +0 -0
- package/dist/{Model3DScene-SCWQXMEA.js → Model3DScene-KXNJBAQD.js} +2 -2
- package/dist/Model3DScene-KXNJBAQD.js.br +0 -0
- package/dist/Model3DScene-KXNJBAQD.js.gz +0 -0
- package/dist/{chunk-S65QSO6T.js → chunk-7WWINBGF.js} +17172 -8075
- package/dist/chunk-7WWINBGF.js.br +0 -0
- package/dist/chunk-7WWINBGF.js.gz +0 -0
- package/dist/{chunk-KTSDPBQZ.js → chunk-AI6K5EAE.js} +1270 -1079
- package/dist/chunk-AI6K5EAE.js.br +0 -0
- package/dist/chunk-AI6K5EAE.js.gz +0 -0
- package/dist/{chunk-3WYNGYB6.js → chunk-CSY422LU.js} +5 -5
- package/dist/chunk-CSY422LU.js.br +0 -0
- package/dist/chunk-CSY422LU.js.gz +0 -0
- package/dist/{chunk-VPJOJJ36.mjs → chunk-D3TZOCQP.mjs} +17139 -8067
- package/dist/chunk-D3TZOCQP.mjs.br +0 -0
- package/dist/chunk-D3TZOCQP.mjs.gz +0 -0
- package/dist/{chunk-NXGUR2DO.js → chunk-I4D6JQOI.js} +27 -2
- package/dist/chunk-I4D6JQOI.js.br +0 -0
- package/dist/chunk-I4D6JQOI.js.gz +0 -0
- package/dist/{chunk-PC7H3C5W.mjs → chunk-JQXN6PO7.mjs} +27 -2
- package/dist/chunk-JQXN6PO7.mjs.br +0 -0
- package/dist/chunk-JQXN6PO7.mjs.gz +0 -0
- package/dist/{chunk-ZYIJODUR.mjs → chunk-LUHUYBGW.mjs} +211 -20
- package/dist/chunk-LUHUYBGW.mjs.br +0 -0
- package/dist/chunk-LUHUYBGW.mjs.gz +0 -0
- package/dist/{chunk-5MRNT4V6.js → chunk-OWTHF5N4.js} +209 -187
- package/dist/chunk-OWTHF5N4.js.br +0 -0
- package/dist/chunk-OWTHF5N4.js.gz +0 -0
- package/dist/{chunk-4GTDG2FH.mjs → chunk-WCHKDZP6.mjs} +660 -197
- package/dist/chunk-WCHKDZP6.mjs.br +0 -0
- package/dist/chunk-WCHKDZP6.mjs.gz +0 -0
- package/dist/{chunk-B5YZABYX.mjs → chunk-WNFHFFYE.mjs} +32 -10
- package/dist/chunk-WNFHFFYE.mjs.br +0 -0
- package/dist/chunk-WNFHFFYE.mjs.gz +0 -0
- package/dist/{chunk-L4XBWL7J.mjs → chunk-XMKLY2SE.mjs} +1 -1
- package/dist/chunk-XMKLY2SE.mjs.br +0 -0
- package/dist/chunk-XMKLY2SE.mjs.gz +0 -0
- package/dist/{chunk-P2SBIMYF.js → chunk-YJKR7Z3X.js} +2161 -1698
- package/dist/chunk-YJKR7Z3X.js.br +0 -0
- package/dist/chunk-YJKR7Z3X.js.gz +0 -0
- package/dist/i18n/de.cjs +25 -2
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +25 -2
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +25 -2
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +25 -2
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +25 -2
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +25 -2
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +25 -2
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +25 -2
- 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 +311 -6
- package/dist/index.js +49 -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 +461 -42
- 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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/viewer/index.d.ts +274 -4
- 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-SEIRQ3XP.mjs.br +0 -0
- package/dist/AiChatPanel-SEIRQ3XP.mjs.gz +0 -0
- package/dist/AiChatPanel-VVTLQXQ5.js.br +0 -0
- package/dist/AiChatPanel-VVTLQXQ5.js.gz +0 -0
- package/dist/Model3DScene-DCTVSK2F.mjs.br +0 -0
- package/dist/Model3DScene-DCTVSK2F.mjs.gz +0 -0
- package/dist/Model3DScene-SCWQXMEA.js.br +0 -0
- package/dist/Model3DScene-SCWQXMEA.js.gz +0 -0
- package/dist/chunk-3WYNGYB6.js.br +0 -0
- package/dist/chunk-3WYNGYB6.js.gz +0 -0
- package/dist/chunk-4GTDG2FH.mjs.br +0 -0
- package/dist/chunk-4GTDG2FH.mjs.gz +0 -0
- package/dist/chunk-5MRNT4V6.js.br +0 -0
- package/dist/chunk-5MRNT4V6.js.gz +0 -0
- package/dist/chunk-B5YZABYX.mjs.br +0 -0
- package/dist/chunk-B5YZABYX.mjs.gz +0 -0
- package/dist/chunk-KTSDPBQZ.js.br +0 -0
- package/dist/chunk-KTSDPBQZ.js.gz +0 -0
- package/dist/chunk-L4XBWL7J.mjs.br +0 -0
- package/dist/chunk-L4XBWL7J.mjs.gz +0 -0
- package/dist/chunk-NXGUR2DO.js.br +0 -0
- package/dist/chunk-NXGUR2DO.js.gz +0 -0
- package/dist/chunk-P2SBIMYF.js.br +0 -0
- package/dist/chunk-P2SBIMYF.js.gz +0 -0
- package/dist/chunk-PC7H3C5W.mjs.br +0 -0
- package/dist/chunk-PC7H3C5W.mjs.gz +0 -0
- package/dist/chunk-S65QSO6T.js.br +0 -0
- package/dist/chunk-S65QSO6T.js.gz +0 -0
- package/dist/chunk-VPJOJJ36.mjs.br +0 -0
- package/dist/chunk-VPJOJJ36.mjs.gz +0 -0
- package/dist/chunk-ZYIJODUR.mjs.br +0 -0
- package/dist/chunk-ZYIJODUR.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk7WWINBGF_js = require('./chunk-7WWINBGF.js');
|
|
4
|
+
var chunkI4D6JQOI_js = require('./chunk-I4D6JQOI.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 chunk7WWINBGF_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 chunk7WWINBGF_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 = chunk7WWINBGF_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 = chunk7WWINBGF_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 = chunk7WWINBGF_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 (!chunk7WWINBGF_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 (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunk7WWINBGF_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 = chunk7WWINBGF_js.getImageFitStyle(element);
|
|
246
|
+
const counterTransform = chunk7WWINBGF_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 = chunk7WWINBGF_js.hasShapeProperties(element) ? chunk7WWINBGF_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 (!chunk7WWINBGF_js.isImageLikeElement(element)) {
|
|
279
279
|
return void 0;
|
|
280
280
|
}
|
|
281
|
-
return
|
|
281
|
+
return chunk7WWINBGF_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
282
282
|
}
|
|
283
|
-
function getImageTilingStyle2(element) {
|
|
284
|
-
return
|
|
283
|
+
function getImageTilingStyle2(element, nativeSize) {
|
|
284
|
+
return chunk7WWINBGF_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" } : chunk7WWINBGF_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 } = chunk7WWINBGF_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 chunk7WWINBGF_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 (chunk7WWINBGF_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
@@ -571,7 +571,11 @@ 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
|
+
chunk7WWINBGF_js.shouldShowMediaFullscreenStopButton({
|
|
575
|
+
fullScreen: isFullScreen,
|
|
576
|
+
presenting: isPresentationMode,
|
|
577
|
+
playing: isMediaPlaying
|
|
578
|
+
}) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
575
579
|
"button",
|
|
576
580
|
{
|
|
577
581
|
type: "button",
|
|
@@ -584,7 +588,7 @@ function PresentationMediaController({
|
|
|
584
588
|
] });
|
|
585
589
|
}
|
|
586
590
|
function label(key) {
|
|
587
|
-
return key === void 0 ? void 0 :
|
|
591
|
+
return key === void 0 ? void 0 : chunkI4D6JQOI_js.translationsEn[key];
|
|
588
592
|
}
|
|
589
593
|
function FallbackIcon({
|
|
590
594
|
paths,
|
|
@@ -620,17 +624,17 @@ function Badge({
|
|
|
620
624
|
"div",
|
|
621
625
|
{
|
|
622
626
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
623
|
-
...{ [
|
|
627
|
+
...{ [chunk7WWINBGF_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
624
628
|
children: [
|
|
625
629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
626
630
|
FallbackIcon,
|
|
627
631
|
{
|
|
628
|
-
paths:
|
|
632
|
+
paths: chunk7WWINBGF_js.mediaFallbackIcon(visual, element.mediaType),
|
|
629
633
|
size: isMissing ? 32 : 48,
|
|
630
634
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
631
635
|
}
|
|
632
636
|
),
|
|
633
|
-
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(chunk7WWINBGF_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
634
638
|
]
|
|
635
639
|
}
|
|
636
640
|
);
|
|
@@ -647,17 +651,17 @@ function Placeholder({
|
|
|
647
651
|
"div",
|
|
648
652
|
{
|
|
649
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"}`,
|
|
650
|
-
...{ [
|
|
654
|
+
...{ [chunk7WWINBGF_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
651
655
|
children: [
|
|
652
656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
653
657
|
FallbackIcon,
|
|
654
658
|
{
|
|
655
|
-
paths:
|
|
659
|
+
paths: chunk7WWINBGF_js.mediaFallbackIcon(visual, element.mediaType),
|
|
656
660
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
657
661
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
658
662
|
}
|
|
659
663
|
),
|
|
660
|
-
/* @__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(chunk7WWINBGF_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
661
665
|
]
|
|
662
666
|
}
|
|
663
667
|
);
|
|
@@ -667,7 +671,7 @@ function renderMediaFallback({
|
|
|
667
671
|
posterUrl,
|
|
668
672
|
surface
|
|
669
673
|
}) {
|
|
670
|
-
const visual =
|
|
674
|
+
const visual = chunk7WWINBGF_js.mediaFallbackVisual(surface, {
|
|
671
675
|
hasPoster: Boolean(posterUrl),
|
|
672
676
|
missing: element.mediaMissing === true
|
|
673
677
|
});
|
|
@@ -677,9 +681,9 @@ function renderMediaFallback({
|
|
|
677
681
|
"img",
|
|
678
682
|
{
|
|
679
683
|
src: posterUrl,
|
|
680
|
-
alt: visual.dimPoster ?
|
|
684
|
+
alt: visual.dimPoster ? chunkI4D6JQOI_js.translationsEn["pptx.media.posterAlt"] : chunkI4D6JQOI_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
681
685
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
682
|
-
style:
|
|
686
|
+
style: chunk7WWINBGF_js.getImageFitStyle(element)
|
|
683
687
|
}
|
|
684
688
|
),
|
|
685
689
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
@@ -689,7 +693,7 @@ function renderMediaFallback({
|
|
|
689
693
|
}
|
|
690
694
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
691
695
|
if (element.type !== "media") {
|
|
692
|
-
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: chunkI4D6JQOI_js.translationsEn["pptx.media.title"] });
|
|
693
697
|
}
|
|
694
698
|
const mediaType = element.mediaType;
|
|
695
699
|
const mediaPath = element.mediaPath;
|
|
@@ -697,7 +701,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
697
701
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
698
702
|
const trimFragment = buildTrimFragment(element);
|
|
699
703
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
700
|
-
const shouldLoop =
|
|
704
|
+
const shouldLoop = chunk7WWINBGF_js.mediaPlaybackAttributes(element).loop;
|
|
701
705
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
702
706
|
const isFullScreen = options?.fullScreen === true;
|
|
703
707
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -710,6 +714,20 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
710
714
|
return renderMediaFallback({ element, posterUrl, surface });
|
|
711
715
|
}
|
|
712
716
|
if (mediaType === "video") {
|
|
717
|
+
const onlineVideo = chunk7WWINBGF_js.getOnlineVideoEmbed(element);
|
|
718
|
+
if (onlineVideo) {
|
|
719
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
720
|
+
"iframe",
|
|
721
|
+
{
|
|
722
|
+
src: onlineVideo.embedUrl,
|
|
723
|
+
title: chunkI4D6JQOI_js.translationsEn["pptx.media.onlineVideoTitle"],
|
|
724
|
+
className: "w-full h-full border-0 pointer-events-auto",
|
|
725
|
+
allow: chunk7WWINBGF_js.ONLINE_VIDEO_IFRAME_ALLOW,
|
|
726
|
+
allowFullScreen: true,
|
|
727
|
+
sandbox: chunk7WWINBGF_js.ONLINE_VIDEO_IFRAME_SANDBOX
|
|
728
|
+
}
|
|
729
|
+
);
|
|
730
|
+
}
|
|
713
731
|
if (dataUrl) {
|
|
714
732
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
715
733
|
PresentationMediaController,
|
|
@@ -775,42 +793,42 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
775
793
|
if (surface.presenting || surface.preview) {
|
|
776
794
|
return null;
|
|
777
795
|
}
|
|
778
|
-
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: chunkI4D6JQOI_js.translationsEn["pptx.media.title"] });
|
|
779
797
|
}
|
|
780
798
|
|
|
781
799
|
// src/viewer/utils/text-utils.tsx
|
|
782
800
|
function getTextStyleForElement(element, fallbackColor) {
|
|
783
|
-
return
|
|
801
|
+
return chunk7WWINBGF_js.buildTextBlockStyle(element, { fallbackColor });
|
|
784
802
|
}
|
|
785
803
|
|
|
786
804
|
// src/viewer/utils/text-layout.tsx
|
|
787
805
|
function getTextLayoutStyle(element) {
|
|
788
|
-
if (!
|
|
806
|
+
if (!chunk7WWINBGF_js.hasTextProperties(element)) {
|
|
789
807
|
return {};
|
|
790
808
|
}
|
|
791
|
-
const writingMode =
|
|
792
|
-
const textOrientation =
|
|
793
|
-
const verticalDirection =
|
|
809
|
+
const writingMode = chunk7WWINBGF_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
810
|
+
const textOrientation = chunk7WWINBGF_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
811
|
+
const verticalDirection = chunk7WWINBGF_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
794
812
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
795
813
|
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
796
|
-
const hasParagraphIndents =
|
|
814
|
+
const hasParagraphIndents = chunk7WWINBGF_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
797
815
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
798
816
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
799
817
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
800
818
|
const textIndent = !hasParagraphIndents && typeof paragraphIndent === "number" && paragraphIndent !== 0 ? paragraphIndent : void 0;
|
|
801
819
|
const bodyTop = element.textStyle?.bodyInsetTop ?? DEFAULT_BODY_INSET_TB_PX;
|
|
802
820
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
821
|
+
const bodyLayoutStyle = chunk7WWINBGF_js.buildTextBodyLayoutStyle(element);
|
|
803
822
|
return {
|
|
804
|
-
|
|
805
|
-
...chunkS65QSO6T_js.buildTextBodyLayoutStyle(element),
|
|
823
|
+
...bodyLayoutStyle,
|
|
806
824
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
807
825
|
// per-paragraph by the paragraph renderer, not collapsed here.
|
|
808
826
|
paddingTop: bodyTop,
|
|
809
827
|
paddingBottom: bodyBottom,
|
|
810
828
|
writingMode,
|
|
811
829
|
textOrientation,
|
|
812
|
-
direction: verticalDirection,
|
|
813
|
-
marginLeft,
|
|
830
|
+
direction: verticalDirection ?? bodyLayoutStyle.direction,
|
|
831
|
+
marginLeft: marginLeft ?? bodyLayoutStyle.marginLeft,
|
|
814
832
|
textIndent,
|
|
815
833
|
...shapeAutoFitTextBox ? {
|
|
816
834
|
width: textWrapNone ? "max-content" : "100%",
|
|
@@ -830,7 +848,7 @@ function getTextLayoutStyle(element) {
|
|
|
830
848
|
|
|
831
849
|
// src/viewer/utils/text-effects.tsx
|
|
832
850
|
function buildTextBody3DSceneStyle2(textStyle, elementSize) {
|
|
833
|
-
return
|
|
851
|
+
return chunk7WWINBGF_js.buildTextBody3DSceneStyle(textStyle, elementSize);
|
|
834
852
|
}
|
|
835
853
|
|
|
836
854
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1015,13 +1033,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1015
1033
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1016
1034
|
return renderedSegments;
|
|
1017
1035
|
}
|
|
1018
|
-
const paraKey = `${elementId}${
|
|
1036
|
+
const paraKey = `${elementId}${chunk7WWINBGF_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1019
1037
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1020
1038
|
if (paraState) {
|
|
1021
1039
|
const style = buildAnimStyle(paraState);
|
|
1022
1040
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1023
1041
|
}
|
|
1024
|
-
const spec =
|
|
1042
|
+
const spec = chunk7WWINBGF_js.buildTextBuildSpec(
|
|
1025
1043
|
elementId,
|
|
1026
1044
|
paraIndex,
|
|
1027
1045
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1039,7 +1057,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1039
1057
|
"span",
|
|
1040
1058
|
{
|
|
1041
1059
|
"data-anim-id": span.animId,
|
|
1042
|
-
style:
|
|
1060
|
+
style: chunk7WWINBGF_js.textBuildSpanStyle(span),
|
|
1043
1061
|
children: content
|
|
1044
1062
|
},
|
|
1045
1063
|
span.animId
|
|
@@ -1050,13 +1068,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
|
|
|
1050
1068
|
if (!isUnderlineWords || !text) {
|
|
1051
1069
|
return inner(text, keyPrefix, metric);
|
|
1052
1070
|
}
|
|
1053
|
-
const pieces =
|
|
1071
|
+
const pieces = chunk7WWINBGF_js.splitWordsForUnderline(text);
|
|
1054
1072
|
if (pieces.length === 0) {
|
|
1055
1073
|
return inner(text, keyPrefix, metric);
|
|
1056
1074
|
}
|
|
1057
1075
|
const gapMetric = metric ? {
|
|
1058
1076
|
...metric,
|
|
1059
|
-
nestedStyle: metric.nestedStyle ?
|
|
1077
|
+
nestedStyle: metric.nestedStyle ? chunk7WWINBGF_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
|
|
1060
1078
|
} : void 0;
|
|
1061
1079
|
return pieces.map((piece, i) => {
|
|
1062
1080
|
const key = `${keyPrefix}-u${i}`;
|
|
@@ -1089,7 +1107,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
|
|
|
1089
1107
|
);
|
|
1090
1108
|
}
|
|
1091
1109
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
|
|
1092
|
-
const [lineLayout] =
|
|
1110
|
+
const [lineLayout] = chunk7WWINBGF_js.buildRunTabLines(
|
|
1093
1111
|
line,
|
|
1094
1112
|
ctx,
|
|
1095
1113
|
nestedStyle,
|
|
@@ -1108,7 +1126,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1108
1126
|
if (!needsScriptFonts || !text) {
|
|
1109
1127
|
return text;
|
|
1110
1128
|
}
|
|
1111
|
-
const pieces =
|
|
1129
|
+
const pieces = chunk7WWINBGF_js.splitRunByScriptFont(
|
|
1112
1130
|
text,
|
|
1113
1131
|
scriptFonts,
|
|
1114
1132
|
baseFontFamily,
|
|
@@ -1125,7 +1143,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1125
1143
|
if (!metric || !text) {
|
|
1126
1144
|
return inner(text, keyPrefix);
|
|
1127
1145
|
}
|
|
1128
|
-
const pieces =
|
|
1146
|
+
const pieces = chunk7WWINBGF_js.splitRunForMetrics(text, metric.font);
|
|
1129
1147
|
if (pieces.length <= 1) {
|
|
1130
1148
|
return inner(text, keyPrefix);
|
|
1131
1149
|
}
|
|
@@ -1134,7 +1152,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1134
1152
|
{
|
|
1135
1153
|
style: {
|
|
1136
1154
|
...metric.nestedStyle,
|
|
1137
|
-
letterSpacing:
|
|
1155
|
+
letterSpacing: chunk7WWINBGF_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1138
1156
|
},
|
|
1139
1157
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1140
1158
|
},
|
|
@@ -1210,8 +1228,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1210
1228
|
});
|
|
1211
1229
|
}
|
|
1212
1230
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1213
|
-
const mathml =
|
|
1214
|
-
const safeMathml = mathml ?
|
|
1231
|
+
const mathml = chunk7WWINBGF_js.convertOmmlToMathMl(equationXml);
|
|
1232
|
+
const safeMathml = mathml ? chunk7WWINBGF_js.sanitizeMathMl(mathml) : "";
|
|
1215
1233
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1216
1234
|
"span",
|
|
1217
1235
|
{
|
|
@@ -1221,7 +1239,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1221
1239
|
},
|
|
1222
1240
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1223
1241
|
}
|
|
1224
|
-
) : /* @__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: chunkI4D6JQOI_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1225
1243
|
if (equationNumber) {
|
|
1226
1244
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1227
1245
|
"span",
|
|
@@ -1344,7 +1362,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1344
1362
|
const segmentStyle = segment?.style ?? {};
|
|
1345
1363
|
const textValue = run.text;
|
|
1346
1364
|
const lines = textValue.split("\n");
|
|
1347
|
-
const resolvedSegmentColor =
|
|
1365
|
+
const resolvedSegmentColor = chunk7WWINBGF_js.normalizeHexColor(
|
|
1348
1366
|
segmentStyle.color || element.textStyle?.color,
|
|
1349
1367
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1350
1368
|
);
|
|
@@ -1352,16 +1370,19 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1352
1370
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1353
1371
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1354
1372
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1355
|
-
const baseFontSize = rawFontSize *
|
|
1373
|
+
const baseFontSize = rawFontSize * chunk7WWINBGF_js.resolveAutoFitFontScale(element.textStyle);
|
|
1356
1374
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1357
|
-
const fontKerning =
|
|
1375
|
+
const fontKerning = chunk7WWINBGF_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1376
|
+
const scriptFallbackWins = Boolean(
|
|
1377
|
+
segmentStyle.scriptFallbackFont && segmentStyle.fontFamilyIsCascadeDefault
|
|
1378
|
+
);
|
|
1358
1379
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1359
|
-
const baseFontFamily = rawFontFamily ?
|
|
1380
|
+
const baseFontFamily = scriptFallbackWins ? chunk7WWINBGF_js.getSubstituteFontFamily(segmentStyle.scriptFallbackFont) : rawFontFamily ? chunk7WWINBGF_js.getSubstituteFontFamily(
|
|
1360
1381
|
rawFontFamily,
|
|
1361
|
-
|
|
1382
|
+
chunk7WWINBGF_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1362
1383
|
) : DEFAULT_FONT_FAMILY2;
|
|
1363
|
-
const scriptFonts =
|
|
1364
|
-
const needsScriptFonts =
|
|
1384
|
+
const scriptFonts = chunk7WWINBGF_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1385
|
+
const needsScriptFonts = chunk7WWINBGF_js.hasDistinctScriptFonts(scriptFonts);
|
|
1365
1386
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1366
1387
|
const metricFont = {
|
|
1367
1388
|
fontFamily: baseFontFamily,
|
|
@@ -1369,7 +1390,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1369
1390
|
bold: Boolean(segmentStyle.bold),
|
|
1370
1391
|
italic: Boolean(segmentStyle.italic)
|
|
1371
1392
|
};
|
|
1372
|
-
const nestedStyle =
|
|
1393
|
+
const nestedStyle = chunk7WWINBGF_js.nestedTextDecorationStyle(run.style);
|
|
1373
1394
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1374
1395
|
const spanStyle = { ...run.style };
|
|
1375
1396
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1377,11 +1398,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1377
1398
|
spanStyle.fontFamily = baseFontFamily;
|
|
1378
1399
|
spanStyle.verticalAlign = baselineShift;
|
|
1379
1400
|
spanStyle.fontKerning = fontKerning;
|
|
1380
|
-
spanStyle.letterSpacing =
|
|
1401
|
+
spanStyle.letterSpacing = chunk7WWINBGF_js.pieceLetterSpacing(
|
|
1381
1402
|
authoredLetterSpacing,
|
|
1382
|
-
|
|
1403
|
+
chunk7WWINBGF_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1383
1404
|
);
|
|
1384
|
-
const hollow =
|
|
1405
|
+
const hollow = chunk7WWINBGF_js.hollowTextFillStyle(segmentStyle, {
|
|
1385
1406
|
color: resolvedSegmentColor,
|
|
1386
1407
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1387
1408
|
});
|
|
@@ -1396,7 +1417,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1396
1417
|
const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
|
|
1397
1418
|
const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
|
|
1398
1419
|
if (isUnderlineWords) {
|
|
1399
|
-
const stripped =
|
|
1420
|
+
const stripped = chunk7WWINBGF_js.stripUnderlineDecoration(spanStyle);
|
|
1400
1421
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1401
1422
|
delete spanStyle.textDecorationStyle;
|
|
1402
1423
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1412,7 +1433,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1412
1433
|
scriptFonts,
|
|
1413
1434
|
baseFontFamily,
|
|
1414
1435
|
findHighlights,
|
|
1415
|
-
|
|
1436
|
+
chunk7WWINBGF_js.buildTabContext(
|
|
1416
1437
|
element.textStyle?.tabStops,
|
|
1417
1438
|
element.textStyle?.defaultTabSize,
|
|
1418
1439
|
baseFontSize,
|
|
@@ -1444,14 +1465,14 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1444
1465
|
const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
|
|
1445
1466
|
const resolvedSegment = {
|
|
1446
1467
|
...segment,
|
|
1447
|
-
style:
|
|
1468
|
+
style: chunk7WWINBGF_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
|
|
1448
1469
|
};
|
|
1449
|
-
const decorationCss =
|
|
1470
|
+
const decorationCss = chunk7WWINBGF_js.segmentStyleToCss(
|
|
1450
1471
|
resolvedSegment,
|
|
1451
|
-
|
|
1472
|
+
chunk7WWINBGF_js.resolveAutoFitFontScale(context.element.textStyle)
|
|
1452
1473
|
);
|
|
1453
|
-
|
|
1454
|
-
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...
|
|
1474
|
+
chunk7WWINBGF_js.applyUnderlineVariant(decorationCss, resolvedSegment);
|
|
1475
|
+
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunk7WWINBGF_js.nestedTextDecorationStyle(decorationCss) } } : {
|
|
1455
1476
|
text: seed.text,
|
|
1456
1477
|
style: decorationCss,
|
|
1457
1478
|
segmentIndex: seed.segmentIndex
|
|
@@ -1466,7 +1487,7 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1466
1487
|
});
|
|
1467
1488
|
}
|
|
1468
1489
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
|
|
1469
|
-
if (!
|
|
1490
|
+
if (!chunk7WWINBGF_js.hasTextProperties(element)) {
|
|
1470
1491
|
return emptyFallback || null;
|
|
1471
1492
|
}
|
|
1472
1493
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1476,7 +1497,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1476
1497
|
}
|
|
1477
1498
|
return element.text || emptyFallback || "";
|
|
1478
1499
|
}
|
|
1479
|
-
const paragraphs =
|
|
1500
|
+
const paragraphs = chunk7WWINBGF_js.buildParagraphs(
|
|
1480
1501
|
element,
|
|
1481
1502
|
fieldContext,
|
|
1482
1503
|
segmentOverrides,
|
|
@@ -1622,13 +1643,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1622
1643
|
);
|
|
1623
1644
|
}
|
|
1624
1645
|
function getDuotoneColors(element) {
|
|
1625
|
-
if (!
|
|
1646
|
+
if (!chunk7WWINBGF_js.isImageLikeElement(element)) {
|
|
1626
1647
|
return void 0;
|
|
1627
1648
|
}
|
|
1628
1649
|
return element.imageEffects?.duotone;
|
|
1629
1650
|
}
|
|
1630
1651
|
function buildLineShadowCss(element) {
|
|
1631
|
-
if (!
|
|
1652
|
+
if (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
1632
1653
|
return void 0;
|
|
1633
1654
|
}
|
|
1634
1655
|
const ss = element.shapeStyle;
|
|
@@ -1639,13 +1660,13 @@ function buildLineShadowCss(element) {
|
|
|
1639
1660
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1640
1661
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1641
1662
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1642
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1643
|
-
|
|
1663
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk7WWINBGF_js.colorWithOpacity(
|
|
1664
|
+
chunk7WWINBGF_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1644
1665
|
opacity
|
|
1645
1666
|
)}`;
|
|
1646
1667
|
}
|
|
1647
1668
|
function buildLineGlowFilter(element) {
|
|
1648
|
-
if (!
|
|
1669
|
+
if (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
1649
1670
|
return void 0;
|
|
1650
1671
|
}
|
|
1651
1672
|
const ss = element.shapeStyle;
|
|
@@ -1654,22 +1675,22 @@ function buildLineGlowFilter(element) {
|
|
|
1654
1675
|
}
|
|
1655
1676
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1656
1677
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1657
|
-
const glowCol =
|
|
1678
|
+
const glowCol = chunk7WWINBGF_js.colorWithOpacity(chunk7WWINBGF_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1658
1679
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1659
1680
|
}
|
|
1660
1681
|
function getDagDuotoneFilterId(elementId) {
|
|
1661
1682
|
return `dag-duotone-${elementId}`;
|
|
1662
1683
|
}
|
|
1663
1684
|
function hasDagDuotoneEffect(element) {
|
|
1664
|
-
if (!
|
|
1685
|
+
if (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
1665
1686
|
return false;
|
|
1666
1687
|
}
|
|
1667
1688
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1668
1689
|
}
|
|
1669
1690
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1670
1691
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1671
|
-
const c1 =
|
|
1672
|
-
const c2 =
|
|
1692
|
+
const c1 = chunk7WWINBGF_js.hexToRgbUnit(color1);
|
|
1693
|
+
const c2 = chunk7WWINBGF_js.hexToRgbUnit(color2);
|
|
1673
1694
|
const grayscaleMatrix = [
|
|
1674
1695
|
0.2126,
|
|
1675
1696
|
0.7152,
|
|
@@ -1713,7 +1734,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1713
1734
|
|
|
1714
1735
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1715
1736
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1716
|
-
return
|
|
1737
|
+
return chunk7WWINBGF_js.build3DExtrusionData(
|
|
1717
1738
|
shape3d,
|
|
1718
1739
|
scene3d,
|
|
1719
1740
|
fillColor,
|
|
@@ -1722,7 +1743,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1722
1743
|
);
|
|
1723
1744
|
}
|
|
1724
1745
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
|
|
1725
|
-
|
|
1746
|
+
chunk7WWINBGF_js.apply3dEffects(
|
|
1726
1747
|
base,
|
|
1727
1748
|
scene3d,
|
|
1728
1749
|
shape3d,
|
|
@@ -1737,11 +1758,11 @@ function rendersCustomVectorPath(element) {
|
|
|
1737
1758
|
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;
|
|
1738
1759
|
}
|
|
1739
1760
|
function rendersWedgeCalloutVector(element) {
|
|
1740
|
-
return element.type === "shape" &&
|
|
1761
|
+
return element.type === "shape" && chunk7WWINBGF_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1741
1762
|
}
|
|
1742
1763
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1743
1764
|
if (element.type === "group") {
|
|
1744
|
-
const fx2 =
|
|
1765
|
+
const fx2 = chunk7WWINBGF_js.getComputedEffectStyle(element);
|
|
1745
1766
|
const groupStyle = {};
|
|
1746
1767
|
if (fx2.filter) {
|
|
1747
1768
|
groupStyle.filter = fx2.filter;
|
|
@@ -1751,13 +1772,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1751
1772
|
}
|
|
1752
1773
|
return groupStyle;
|
|
1753
1774
|
}
|
|
1754
|
-
if (!
|
|
1775
|
+
if (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
1755
1776
|
return {};
|
|
1756
1777
|
}
|
|
1757
1778
|
const ss = element.shapeStyle;
|
|
1758
|
-
const fill = animatesFill ? void 0 :
|
|
1759
|
-
const fx =
|
|
1760
|
-
const stroke =
|
|
1779
|
+
const fill = animatesFill ? void 0 : chunk7WWINBGF_js.getComputedFillStyle(element, parentGroupFill);
|
|
1780
|
+
const fx = chunk7WWINBGF_js.getComputedEffectStyle(element);
|
|
1781
|
+
const stroke = chunk7WWINBGF_js.getComputedStrokeStyle(element);
|
|
1761
1782
|
const base = {
|
|
1762
1783
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1763
1784
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1796,7 +1817,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1796
1817
|
};
|
|
1797
1818
|
Object.assign(
|
|
1798
1819
|
base,
|
|
1799
|
-
|
|
1820
|
+
chunk7WWINBGF_js.getAnimationColorBaseStyle(element, {
|
|
1800
1821
|
animatesFill,
|
|
1801
1822
|
animatesStroke,
|
|
1802
1823
|
parentGroupFill
|
|
@@ -1818,7 +1839,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1818
1839
|
},
|
|
1819
1840
|
element.id
|
|
1820
1841
|
);
|
|
1821
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1842
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunk7WWINBGF_js.isStrokeOnlyPresetElement(element)) {
|
|
1822
1843
|
base.backgroundColor = "transparent";
|
|
1823
1844
|
base.backgroundImage = void 0;
|
|
1824
1845
|
base.borderWidth = void 0;
|
|
@@ -1832,7 +1853,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1832
1853
|
if (rendersWedgeCalloutVector(element)) {
|
|
1833
1854
|
return base;
|
|
1834
1855
|
}
|
|
1835
|
-
const geometry =
|
|
1856
|
+
const geometry = chunk7WWINBGF_js.resolveShapeGeometry(element);
|
|
1836
1857
|
switch (geometry.kind) {
|
|
1837
1858
|
case "bare":
|
|
1838
1859
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1856,7 +1877,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1856
1877
|
}
|
|
1857
1878
|
}
|
|
1858
1879
|
function getConnectorPathGeometry2(element) {
|
|
1859
|
-
return
|
|
1880
|
+
return chunk7WWINBGF_js.getConnectorPathGeometry(element);
|
|
1860
1881
|
}
|
|
1861
1882
|
var ARROW_SIZE_SCALE = {
|
|
1862
1883
|
sm: 0.6,
|
|
@@ -1925,11 +1946,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1925
1946
|
strokePaint,
|
|
1926
1947
|
strokeWidth,
|
|
1927
1948
|
dashArray,
|
|
1928
|
-
lineCap:
|
|
1949
|
+
lineCap: chunk7WWINBGF_js.svgLineCap(shapeStyle?.lineCap),
|
|
1929
1950
|
lineJoin,
|
|
1930
1951
|
miterLimit,
|
|
1931
|
-
offsets:
|
|
1932
|
-
widths:
|
|
1952
|
+
offsets: chunk7WWINBGF_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1953
|
+
widths: chunk7WWINBGF_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1933
1954
|
};
|
|
1934
1955
|
}
|
|
1935
1956
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1952,12 +1973,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1952
1973
|
}
|
|
1953
1974
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1954
1975
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1955
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1976
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk7WWINBGF_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1956
1977
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1957
|
-
const gradientPaint = gradient ?
|
|
1978
|
+
const gradientPaint = gradient ? chunk7WWINBGF_js.svgGradientFillRef(gradient) : void 0;
|
|
1958
1979
|
const nodes = [];
|
|
1959
1980
|
if (subpaths && needsPerSubpath) {
|
|
1960
|
-
const paints =
|
|
1981
|
+
const paints = chunk7WWINBGF_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1961
1982
|
paints.forEach((paint, idx) => {
|
|
1962
1983
|
if (paint.fill !== "none") {
|
|
1963
1984
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -1986,7 +2007,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
1986
2007
|
"path",
|
|
1987
2008
|
{
|
|
1988
2009
|
d: pathData,
|
|
1989
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2010
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunk7WWINBGF_js.colorWithOpacity(fillColor, fillOpacity),
|
|
1990
2011
|
stroke: "none",
|
|
1991
2012
|
vectorEffect: "non-scaling-stroke"
|
|
1992
2013
|
},
|
|
@@ -2012,14 +2033,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2012
2033
|
);
|
|
2013
2034
|
}
|
|
2014
2035
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2015
|
-
if (!
|
|
2036
|
+
if (!chunk7WWINBGF_js.hasShapeProperties(element)) {
|
|
2016
2037
|
return null;
|
|
2017
2038
|
}
|
|
2018
2039
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2019
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2020
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2021
|
-
const dashType =
|
|
2022
|
-
const dashArray =
|
|
2040
|
+
const fillPaint = animatesFill ? "inherit" : chunk7WWINBGF_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2041
|
+
const strokePaint = animatesStroke ? "inherit" : chunk7WWINBGF_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2042
|
+
const dashType = chunk7WWINBGF_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2043
|
+
const dashArray = chunk7WWINBGF_js.getSvgStrokeDasharray(
|
|
2023
2044
|
dashType,
|
|
2024
2045
|
Math.max(strokeWidth, 1),
|
|
2025
2046
|
element.shapeStyle?.customDashSegments
|
|
@@ -2100,13 +2121,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2100
2121
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2101
2122
|
// without this the shape fell back to the parser's representative solid
|
|
2102
2123
|
// and lost every fade (issue #132).
|
|
2103
|
-
|
|
2124
|
+
chunk7WWINBGF_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2104
2125
|
);
|
|
2105
2126
|
}
|
|
2106
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2127
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunk7WWINBGF_js.buildStrokeOutline(element)) {
|
|
2107
2128
|
const width = Math.max(element.width, 1);
|
|
2108
2129
|
const height = Math.max(element.height, 1);
|
|
2109
|
-
const geometry =
|
|
2130
|
+
const geometry = chunk7WWINBGF_js.getPresetShapeVectorGeometry(
|
|
2110
2131
|
element.shapeType || "rect",
|
|
2111
2132
|
width,
|
|
2112
2133
|
height,
|
|
@@ -2134,18 +2155,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2134
2155
|
);
|
|
2135
2156
|
}
|
|
2136
2157
|
}
|
|
2137
|
-
if (element.type === "shape" &&
|
|
2158
|
+
if (element.type === "shape" && chunk7WWINBGF_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2138
2159
|
const width = Math.max(element.width, 1);
|
|
2139
2160
|
const height = Math.max(element.height, 1);
|
|
2140
|
-
const geometry =
|
|
2161
|
+
const geometry = chunk7WWINBGF_js.getPresetShapeVectorGeometry(
|
|
2141
2162
|
element.shapeType,
|
|
2142
2163
|
width,
|
|
2143
2164
|
height,
|
|
2144
2165
|
element.shapeAdjustments
|
|
2145
2166
|
);
|
|
2146
2167
|
if (geometry) {
|
|
2147
|
-
const gradient =
|
|
2148
|
-
const gradientPaint = gradient ?
|
|
2168
|
+
const gradient = chunk7WWINBGF_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2169
|
+
const gradientPaint = gradient ? chunk7WWINBGF_js.svgGradientFillRef(gradient) : void 0;
|
|
2149
2170
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2150
2171
|
"svg",
|
|
2151
2172
|
{
|
|
@@ -2178,18 +2199,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2178
2199
|
);
|
|
2179
2200
|
}
|
|
2180
2201
|
}
|
|
2181
|
-
if (
|
|
2202
|
+
if (chunk7WWINBGF_js.isCalloutShape(normalizedType)) {
|
|
2182
2203
|
const width = Math.max(element.width, 1);
|
|
2183
2204
|
const height = Math.max(element.height, 1);
|
|
2184
|
-
const geometry =
|
|
2205
|
+
const geometry = chunk7WWINBGF_js.getCalloutLeaderLineGeometry(
|
|
2185
2206
|
normalizedType,
|
|
2186
2207
|
width,
|
|
2187
2208
|
height,
|
|
2188
2209
|
element.shapeAdjustments
|
|
2189
2210
|
);
|
|
2190
2211
|
if (geometry && geometry.points.length >= 2) {
|
|
2191
|
-
const leaderPath =
|
|
2192
|
-
const bounds =
|
|
2212
|
+
const leaderPath = chunk7WWINBGF_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2213
|
+
const bounds = chunk7WWINBGF_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2193
2214
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2194
2215
|
const offsetLeft = bounds.minX;
|
|
2195
2216
|
const offsetTop = bounds.minY;
|
|
@@ -2252,10 +2273,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2252
2273
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2253
2274
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2254
2275
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2255
|
-
const connectorLineCap =
|
|
2276
|
+
const connectorLineCap = chunk7WWINBGF_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2256
2277
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2257
|
-
const offsets =
|
|
2258
|
-
const widths =
|
|
2278
|
+
const offsets = chunk7WWINBGF_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2279
|
+
const widths = chunk7WWINBGF_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2259
2280
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2260
2281
|
"svg",
|
|
2261
2282
|
{
|
|
@@ -2322,15 +2343,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2322
2343
|
}
|
|
2323
2344
|
const rawStops = stops.map((gs) => {
|
|
2324
2345
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2325
|
-
const color =
|
|
2326
|
-
const opacity =
|
|
2346
|
+
const color = chunk7WWINBGF_js.parseDrawingColor(gs) ?? "#888888";
|
|
2347
|
+
const opacity = chunk7WWINBGF_js.parseDrawingColorOpacity(gs);
|
|
2327
2348
|
return { position: pos, color, opacity };
|
|
2328
2349
|
}).sort((a, b) => a.position - b.position);
|
|
2329
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2350
|
+
const stopStrings = rawStops.map((s) => `${chunk7WWINBGF_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2330
2351
|
const lin = gradFill["a:lin"];
|
|
2331
2352
|
if (lin) {
|
|
2332
2353
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2333
|
-
const angleDeg = Math.round(
|
|
2354
|
+
const angleDeg = Math.round(chunk7WWINBGF_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2334
2355
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2335
2356
|
}
|
|
2336
2357
|
const path = gradFill["a:path"];
|
|
@@ -2344,7 +2365,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2344
2365
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2345
2366
|
} : void 0;
|
|
2346
2367
|
if (pathType === "rect") {
|
|
2347
|
-
return
|
|
2368
|
+
return chunk7WWINBGF_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2348
2369
|
}
|
|
2349
2370
|
let cx = 50;
|
|
2350
2371
|
let cy = 50;
|
|
@@ -2366,8 +2387,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2366
2387
|
if (!pattFill) {
|
|
2367
2388
|
return void 0;
|
|
2368
2389
|
}
|
|
2369
|
-
const fgColor =
|
|
2370
|
-
const bgColor =
|
|
2390
|
+
const fgColor = chunk7WWINBGF_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2391
|
+
const bgColor = chunk7WWINBGF_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2371
2392
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2372
2393
|
switch (preset) {
|
|
2373
2394
|
case "ltHorz":
|
|
@@ -2478,11 +2499,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2478
2499
|
const prstDash = ln["a:prstDash"];
|
|
2479
2500
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2480
2501
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2481
|
-
const color =
|
|
2502
|
+
const color = chunk7WWINBGF_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2482
2503
|
if (color) {
|
|
2483
|
-
const opacity =
|
|
2504
|
+
const opacity = chunk7WWINBGF_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2484
2505
|
const key = `${edge.prefix}`;
|
|
2485
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2506
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk7WWINBGF_js.colorWithOpacity(color, opacity)}`;
|
|
2486
2507
|
}
|
|
2487
2508
|
}
|
|
2488
2509
|
return borderStyle;
|
|
@@ -2495,7 +2516,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2495
2516
|
const textShadowParts = [];
|
|
2496
2517
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2497
2518
|
if (outerShdw) {
|
|
2498
|
-
const shdwColor =
|
|
2519
|
+
const shdwColor = chunk7WWINBGF_js.parseDrawingColor(outerShdw);
|
|
2499
2520
|
if (shdwColor) {
|
|
2500
2521
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2501
2522
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2513,7 +2534,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2513
2534
|
}
|
|
2514
2535
|
const glow = effectLst["a:glow"];
|
|
2515
2536
|
if (glow) {
|
|
2516
|
-
const glowColor =
|
|
2537
|
+
const glowColor = chunk7WWINBGF_js.parseDrawingColor(glow);
|
|
2517
2538
|
if (glowColor) {
|
|
2518
2539
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2519
2540
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2535,11 +2556,11 @@ function extractCellText(cellXml) {
|
|
|
2535
2556
|
const textParts = [];
|
|
2536
2557
|
const runs = ensureArrayValue(paragraph["a:r"]);
|
|
2537
2558
|
runs.forEach((run) => {
|
|
2538
|
-
textParts.push(
|
|
2559
|
+
textParts.push(chunk7WWINBGF_js.xmlText(run["a:t"]) ?? "");
|
|
2539
2560
|
});
|
|
2540
2561
|
const fields = ensureArrayValue(paragraph["a:fld"]);
|
|
2541
2562
|
fields.forEach((field) => {
|
|
2542
|
-
textParts.push(
|
|
2563
|
+
textParts.push(chunk7WWINBGF_js.xmlText(field["a:t"]) ?? "");
|
|
2543
2564
|
});
|
|
2544
2565
|
paragraphTexts.push(textParts.join(""));
|
|
2545
2566
|
});
|
|
@@ -2583,10 +2604,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2583
2604
|
if (runProps?.["@_u"] !== void 0) {
|
|
2584
2605
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2585
2606
|
}
|
|
2586
|
-
const runColor =
|
|
2607
|
+
const runColor = chunk7WWINBGF_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk7WWINBGF_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2587
2608
|
if (runColor) {
|
|
2588
|
-
const opacity =
|
|
2589
|
-
cellStyle.color =
|
|
2609
|
+
const opacity = chunk7WWINBGF_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2610
|
+
cellStyle.color = chunk7WWINBGF_js.colorWithOpacity(runColor, opacity);
|
|
2590
2611
|
}
|
|
2591
2612
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2592
2613
|
if (fontFamily) {
|
|
@@ -2596,15 +2617,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2596
2617
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2597
2618
|
}
|
|
2598
2619
|
const cellProperties = cellXml["a:tcPr"];
|
|
2599
|
-
const cellFill =
|
|
2620
|
+
const cellFill = chunk7WWINBGF_js.parseDrawingColor(
|
|
2600
2621
|
cellProperties?.["a:solidFill"],
|
|
2601
2622
|
schemeColorOverrides
|
|
2602
2623
|
);
|
|
2603
2624
|
if (cellFill) {
|
|
2604
|
-
const opacity =
|
|
2625
|
+
const opacity = chunk7WWINBGF_js.parseDrawingColorOpacity(
|
|
2605
2626
|
cellProperties?.["a:solidFill"]
|
|
2606
2627
|
);
|
|
2607
|
-
cellStyle.backgroundColor =
|
|
2628
|
+
cellStyle.backgroundColor = chunk7WWINBGF_js.colorWithOpacity(cellFill, opacity);
|
|
2608
2629
|
} else {
|
|
2609
2630
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2610
2631
|
if (gradCss) {
|
|
@@ -2619,16 +2640,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2619
2640
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2620
2641
|
Object.assign(cellStyle, edgeBorders);
|
|
2621
2642
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2622
|
-
const borderColor =
|
|
2643
|
+
const borderColor = chunk7WWINBGF_js.parseDrawingColor(
|
|
2623
2644
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2624
2645
|
schemeColorOverrides
|
|
2625
|
-
) ||
|
|
2646
|
+
) || chunk7WWINBGF_js.parseDrawingColor(
|
|
2626
2647
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2627
2648
|
schemeColorOverrides
|
|
2628
|
-
) ||
|
|
2649
|
+
) || chunk7WWINBGF_js.parseDrawingColor(
|
|
2629
2650
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2630
2651
|
schemeColorOverrides
|
|
2631
|
-
) ||
|
|
2652
|
+
) || chunk7WWINBGF_js.parseDrawingColor(
|
|
2632
2653
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2633
2654
|
schemeColorOverrides
|
|
2634
2655
|
);
|
|
@@ -2700,7 +2721,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2700
2721
|
if (element.type !== "table") {
|
|
2701
2722
|
return void 0;
|
|
2702
2723
|
}
|
|
2703
|
-
return
|
|
2724
|
+
return chunk7WWINBGF_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2704
2725
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2705
2726
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2706
2727
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2780,7 +2801,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2780
2801
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2781
2802
|
"span",
|
|
2782
2803
|
{
|
|
2783
|
-
style: { position: "relative", ...
|
|
2804
|
+
style: { position: "relative", ...chunk7WWINBGF_js.cellRunStyle(run) },
|
|
2784
2805
|
children: run.text
|
|
2785
2806
|
},
|
|
2786
2807
|
`r-${index}`
|
|
@@ -2788,7 +2809,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2788
2809
|
});
|
|
2789
2810
|
}
|
|
2790
2811
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2791
|
-
return
|
|
2812
|
+
return chunk7WWINBGF_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2792
2813
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2793
2814
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2794
2815
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2921,7 +2942,7 @@ function TableResizeOverlay({
|
|
|
2921
2942
|
const containerRef = React7.useRef(null);
|
|
2922
2943
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2923
2944
|
const dragRef = React7.useRef(null);
|
|
2924
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2945
|
+
const colBoundaries = React7.useMemo(() => chunk7WWINBGF_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2925
2946
|
const measureRows = React7.useCallback(() => {
|
|
2926
2947
|
const container = containerRef.current;
|
|
2927
2948
|
if (!container) {
|
|
@@ -2968,11 +2989,11 @@ function TableResizeOverlay({
|
|
|
2968
2989
|
const rect = containerRef.current.getBoundingClientRect();
|
|
2969
2990
|
if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
2970
2991
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
2971
|
-
onResizeColumns(
|
|
2992
|
+
onResizeColumns(chunk7WWINBGF_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
2972
2993
|
} else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
|
|
2973
2994
|
const deltaY = e.clientY - drag.startPos;
|
|
2974
|
-
const newHeight =
|
|
2975
|
-
drag.initialRowHeight ??
|
|
2995
|
+
const newHeight = chunk7WWINBGF_js.computeResizedRowHeight(
|
|
2996
|
+
drag.initialRowHeight ?? chunk7WWINBGF_js.DEFAULT_ROW_HEIGHT,
|
|
2976
2997
|
deltaY
|
|
2977
2998
|
);
|
|
2978
2999
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3010,7 +3031,7 @@ function TableResizeOverlay({
|
|
|
3010
3031
|
e.stopPropagation();
|
|
3011
3032
|
const table = containerRef.current?.querySelector("table");
|
|
3012
3033
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3013
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3034
|
+
const actualHeight = tr?.offsetHeight ?? chunk7WWINBGF_js.DEFAULT_ROW_HEIGHT;
|
|
3014
3035
|
document.body.style.cursor = "row-resize";
|
|
3015
3036
|
document.body.style.userSelect = "none";
|
|
3016
3037
|
dragRef.current = {
|
|
@@ -3050,14 +3071,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3050
3071
|
const rowCount = tableData.rows.length;
|
|
3051
3072
|
const columnCount = tableData.columnWidths.length;
|
|
3052
3073
|
const selectedCell = options?.selectedCell || null;
|
|
3053
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3074
|
+
const isEditable = Boolean(options?.editable) && chunk7WWINBGF_js.canDrillDown(element);
|
|
3054
3075
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3055
3076
|
const sharedCtx = {
|
|
3056
3077
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3057
3078
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3058
3079
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3059
3080
|
};
|
|
3060
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3081
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunk7WWINBGF_js.tableCellCss(
|
|
3061
3082
|
tableData,
|
|
3062
3083
|
cell,
|
|
3063
3084
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3070,7 +3091,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3070
3091
|
}
|
|
3071
3092
|
const first = selectedCell.selectedCells[0];
|
|
3072
3093
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3073
|
-
return
|
|
3094
|
+
return chunk7WWINBGF_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3074
3095
|
})();
|
|
3075
3096
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3076
3097
|
TableResizeOverlay,
|
|
@@ -3091,9 +3112,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3091
3112
|
{
|
|
3092
3113
|
className: "w-full h-full border-collapse table-fixed",
|
|
3093
3114
|
style: {
|
|
3094
|
-
fontFamily:
|
|
3115
|
+
fontFamily: chunk7WWINBGF_js.DEFAULT_FONT_FAMILY,
|
|
3095
3116
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3096
|
-
...
|
|
3117
|
+
...chunk7WWINBGF_js.tableContainerCss(tableData)
|
|
3097
3118
|
},
|
|
3098
3119
|
children: [
|
|
3099
3120
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3112,7 +3133,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3112
3133
|
return null;
|
|
3113
3134
|
}
|
|
3114
3135
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3115
|
-
const isInMultiSelection =
|
|
3136
|
+
const isInMultiSelection = chunk7WWINBGF_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3116
3137
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3117
3138
|
const diag = getCellDiagonalBorders2(
|
|
3118
3139
|
cell.style,
|
|
@@ -3141,7 +3162,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3141
3162
|
}
|
|
3142
3163
|
event.stopPropagation();
|
|
3143
3164
|
if (event.shiftKey && selectedCell) {
|
|
3144
|
-
const rect =
|
|
3165
|
+
const rect = chunk7WWINBGF_js.computeSelectionRect(
|
|
3145
3166
|
selectedCell.rowIndex,
|
|
3146
3167
|
selectedCell.columnIndex,
|
|
3147
3168
|
rowIndex,
|
|
@@ -3151,7 +3172,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3151
3172
|
options?.onSelectCell?.({
|
|
3152
3173
|
rowIndex: selectedCell.rowIndex,
|
|
3153
3174
|
columnIndex: selectedCell.columnIndex,
|
|
3154
|
-
selectedCells:
|
|
3175
|
+
selectedCells: chunk7WWINBGF_js.rectToCells(rect)
|
|
3155
3176
|
});
|
|
3156
3177
|
} else {
|
|
3157
3178
|
options?.onSelectCell?.({
|
|
@@ -3212,10 +3233,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3212
3233
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3213
3234
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3214
3235
|
}
|
|
3215
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3236
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI4D6JQOI_js.translationsEn["pptx.table.title"] });
|
|
3216
3237
|
}
|
|
3217
3238
|
const selectedCell = options?.selectedCell || null;
|
|
3218
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3239
|
+
const isEditable = Boolean(options?.editable) && chunk7WWINBGF_js.canDrillDown(element);
|
|
3219
3240
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3220
3241
|
const tableEl = element;
|
|
3221
3242
|
const xmlSelectionRect = (() => {
|
|
@@ -3227,7 +3248,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3227
3248
|
}
|
|
3228
3249
|
const first = selectedCell.selectedCells[0];
|
|
3229
3250
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3230
|
-
return
|
|
3251
|
+
return chunk7WWINBGF_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3231
3252
|
})();
|
|
3232
3253
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3233
3254
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3249,9 +3270,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3249
3270
|
{
|
|
3250
3271
|
className: "w-full h-full border-collapse table-fixed",
|
|
3251
3272
|
style: {
|
|
3252
|
-
fontFamily:
|
|
3273
|
+
fontFamily: chunk7WWINBGF_js.DEFAULT_FONT_FAMILY,
|
|
3253
3274
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3254
|
-
...
|
|
3275
|
+
...chunk7WWINBGF_js.tableContainerCss(tableEl.tableData)
|
|
3255
3276
|
},
|
|
3256
3277
|
children: [
|
|
3257
3278
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3308,7 +3329,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3308
3329
|
color: textStyle.color,
|
|
3309
3330
|
...bandStyle,
|
|
3310
3331
|
...xmlCellStyle,
|
|
3311
|
-
...tdCellOverride ?
|
|
3332
|
+
...tdCellOverride ? chunk7WWINBGF_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3312
3333
|
...diag ? { position: "relative" } : void 0
|
|
3313
3334
|
};
|
|
3314
3335
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3318,7 +3339,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3318
3339
|
"border px-1 py-0.5 align-top",
|
|
3319
3340
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3320
3341
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3321
|
-
|
|
3342
|
+
chunk7WWINBGF_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3322
3343
|
),
|
|
3323
3344
|
colSpan,
|
|
3324
3345
|
rowSpan: rSpan,
|
|
@@ -3329,7 +3350,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3329
3350
|
}
|
|
3330
3351
|
event.stopPropagation();
|
|
3331
3352
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3332
|
-
const rect =
|
|
3353
|
+
const rect = chunk7WWINBGF_js.computeSelectionRect(
|
|
3333
3354
|
selectedCell.rowIndex,
|
|
3334
3355
|
selectedCell.columnIndex,
|
|
3335
3356
|
rowIndex,
|
|
@@ -3339,7 +3360,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3339
3360
|
options?.onSelectCell?.({
|
|
3340
3361
|
rowIndex: selectedCell.rowIndex,
|
|
3341
3362
|
columnIndex: selectedCell.columnIndex,
|
|
3342
|
-
selectedCells:
|
|
3363
|
+
selectedCells: chunk7WWINBGF_js.rectToCells(rect)
|
|
3343
3364
|
});
|
|
3344
3365
|
} else {
|
|
3345
3366
|
options?.onSelectCell?.({
|
|
@@ -3398,23 +3419,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3398
3419
|
);
|
|
3399
3420
|
}
|
|
3400
3421
|
function partAttrs(part) {
|
|
3401
|
-
return part ?
|
|
3422
|
+
return part ? chunk7WWINBGF_js.chartPartToAttrs(part) : void 0;
|
|
3402
3423
|
}
|
|
3403
3424
|
function resolveReactPalette(chartData) {
|
|
3404
3425
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3405
3426
|
return chartData.colorPalette;
|
|
3406
3427
|
}
|
|
3407
|
-
return [...
|
|
3428
|
+
return [...chunk7WWINBGF_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3408
3429
|
}
|
|
3409
3430
|
function buildReactChartViewModel(element) {
|
|
3410
3431
|
if (element.type !== "chart" || !element.chartData) {
|
|
3411
|
-
return
|
|
3432
|
+
return chunk7WWINBGF_js.buildChartViewModel(element);
|
|
3412
3433
|
}
|
|
3413
3434
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3414
3435
|
...element,
|
|
3415
3436
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3416
3437
|
};
|
|
3417
|
-
return
|
|
3438
|
+
return chunk7WWINBGF_js.buildChartViewModel(themedElement);
|
|
3418
3439
|
}
|
|
3419
3440
|
function renderPrimitive(prim, key) {
|
|
3420
3441
|
switch (prim.kind) {
|
|
@@ -3445,6 +3466,7 @@ function renderPrimitive(prim, key) {
|
|
|
3445
3466
|
fill: p.fill,
|
|
3446
3467
|
stroke: p.stroke ?? "none",
|
|
3447
3468
|
strokeWidth: p.strokeWidth ?? 0,
|
|
3469
|
+
strokeDasharray: p.dashArray,
|
|
3448
3470
|
fillOpacity: p.opacity ?? 1,
|
|
3449
3471
|
...partAttrs(p.part),
|
|
3450
3472
|
children: p.title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: p.title }) : null
|
|
@@ -3565,7 +3587,7 @@ function renderText(t, key) {
|
|
|
3565
3587
|
);
|
|
3566
3588
|
}
|
|
3567
3589
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3568
|
-
const legendItems =
|
|
3590
|
+
const legendItems = chunk7WWINBGF_js.computeChartLegendLayout(vm);
|
|
3569
3591
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3570
3592
|
"svg",
|
|
3571
3593
|
{
|
|
@@ -3705,17 +3727,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3705
3727
|
}
|
|
3706
3728
|
function renderChartElement(element) {
|
|
3707
3729
|
if (element.type !== "chart") {
|
|
3708
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3730
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI4D6JQOI_js.translationsEn["pptx.chart.heading"] });
|
|
3709
3731
|
}
|
|
3710
3732
|
const chartData = element.chartData;
|
|
3711
3733
|
if (!chartData || chartData.series.length === 0) {
|
|
3712
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3734
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI4D6JQOI_js.translationsEn["pptx.chart.heading"] });
|
|
3713
3735
|
}
|
|
3714
|
-
const kind =
|
|
3736
|
+
const kind = chunk7WWINBGF_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3715
3737
|
return renderChartViewModel(
|
|
3716
3738
|
element.id,
|
|
3717
3739
|
buildReactChartViewModel(element),
|
|
3718
|
-
|
|
3740
|
+
chunk7WWINBGF_js.chartPreserveAspectRatio(kind)
|
|
3719
3741
|
);
|
|
3720
3742
|
}
|
|
3721
3743
|
|
|
@@ -3735,14 +3757,14 @@ function buildNotesPdf(pages) {
|
|
|
3735
3757
|
notes: page.notes,
|
|
3736
3758
|
slideNumber: page.slideNumber
|
|
3737
3759
|
}));
|
|
3738
|
-
const bytes =
|
|
3760
|
+
const bytes = chunk7WWINBGF_js.buildNotesPdfBytes(images, meta);
|
|
3739
3761
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3740
3762
|
return URL.createObjectURL(blob);
|
|
3741
3763
|
}
|
|
3742
3764
|
|
|
3743
3765
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3744
3766
|
function buildPdfFromTiledImageData(pages) {
|
|
3745
|
-
const bytes =
|
|
3767
|
+
const bytes = chunk7WWINBGF_js.buildTiledSlidesPdfBytes(pages);
|
|
3746
3768
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3747
3769
|
return URL.createObjectURL(blob);
|
|
3748
3770
|
}
|
|
@@ -3751,7 +3773,7 @@ function buildPdfFromTiledImageData(pages) {
|
|
|
3751
3773
|
var activePreview = null;
|
|
3752
3774
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3753
3775
|
stopPreviewAnimation();
|
|
3754
|
-
const descriptor =
|
|
3776
|
+
const descriptor = chunk7WWINBGF_js.buildPreviewAnimation(preset, options);
|
|
3755
3777
|
if (!descriptor) {
|
|
3756
3778
|
return;
|
|
3757
3779
|
}
|
|
@@ -3764,7 +3786,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3764
3786
|
return;
|
|
3765
3787
|
}
|
|
3766
3788
|
const stage = domEl.offsetParent;
|
|
3767
|
-
const descriptor =
|
|
3789
|
+
const descriptor = chunk7WWINBGF_js.buildMotionPathPreview({
|
|
3768
3790
|
path,
|
|
3769
3791
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3770
3792
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|