pptx-react-viewer 4.6.0 → 4.7.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 +18 -0
- package/dist/{AiChatPanel-3C7GM6ZF.js → AiChatPanel-3YILWCBX.js} +28 -28
- package/dist/AiChatPanel-3YILWCBX.js.br +0 -0
- package/dist/AiChatPanel-3YILWCBX.js.gz +0 -0
- package/dist/{AiChatPanel-L7DBCWE3.mjs → AiChatPanel-X2MVL5UP.mjs} +4 -4
- package/dist/AiChatPanel-X2MVL5UP.mjs.br +0 -0
- package/dist/AiChatPanel-X2MVL5UP.mjs.gz +0 -0
- package/dist/{Model3DScene-USKNPWWH.js → Model3DScene-G7P6ZAIO.js} +2 -2
- package/dist/{Model3DScene-USKNPWWH.js.br → Model3DScene-G7P6ZAIO.js.br} +0 -0
- package/dist/Model3DScene-G7P6ZAIO.js.gz +0 -0
- package/dist/{Model3DScene-IJ7YYTYU.mjs → Model3DScene-QFWI5CEE.mjs} +1 -1
- package/dist/Model3DScene-QFWI5CEE.mjs.br +0 -0
- package/dist/Model3DScene-QFWI5CEE.mjs.gz +0 -0
- package/dist/{chunk-5V5SMT5A.js → chunk-2BM4GBFZ.js} +5 -5
- package/dist/chunk-2BM4GBFZ.js.br +0 -0
- package/dist/chunk-2BM4GBFZ.js.gz +0 -0
- package/dist/{chunk-K6QHGABT.mjs → chunk-5J6NW3YS.mjs} +55 -28
- package/dist/chunk-5J6NW3YS.mjs.br +0 -0
- package/dist/chunk-5J6NW3YS.mjs.gz +0 -0
- package/dist/{chunk-FZSYLXJT.js → chunk-AQIXKTAT.js} +13118 -8704
- package/dist/chunk-AQIXKTAT.js.br +0 -0
- package/dist/chunk-AQIXKTAT.js.gz +0 -0
- package/dist/{chunk-VCAQSSGD.mjs → chunk-E5OIDWHO.mjs} +1 -1
- package/dist/chunk-E5OIDWHO.mjs.br +0 -0
- package/dist/chunk-E5OIDWHO.mjs.gz +0 -0
- package/dist/{chunk-Y4QUVWZC.js → chunk-FYAOOACZ.js} +241 -214
- package/dist/chunk-FYAOOACZ.js.br +0 -0
- package/dist/chunk-FYAOOACZ.js.gz +0 -0
- package/dist/{chunk-INX3E37P.mjs → chunk-OECUSL2B.mjs} +80 -283
- package/dist/chunk-OECUSL2B.mjs.br +0 -0
- package/dist/chunk-OECUSL2B.mjs.gz +0 -0
- package/dist/{chunk-ICEZL4TM.mjs → chunk-QLDHUKH2.mjs} +13074 -8701
- package/dist/chunk-QLDHUKH2.mjs.br +0 -0
- package/dist/chunk-QLDHUKH2.mjs.gz +0 -0
- package/dist/{chunk-IBHIXBC5.js → chunk-SR7ETIBF.js} +889 -1091
- package/dist/chunk-SR7ETIBF.js.br +0 -0
- package/dist/chunk-SR7ETIBF.js.gz +0 -0
- package/dist/{chunk-ZAQFTO4P.mjs → chunk-UBYFLXAU.mjs} +1174 -148
- package/dist/chunk-UBYFLXAU.mjs.br +0 -0
- package/dist/chunk-UBYFLXAU.mjs.gz +0 -0
- package/dist/{chunk-3JUZOKFI.js → chunk-UIAU3NR2.js} +44 -0
- package/dist/chunk-UIAU3NR2.js.br +0 -0
- package/dist/chunk-UIAU3NR2.js.gz +0 -0
- package/dist/{chunk-DFSWCVRW.js → chunk-VF4RA27Q.js} +3082 -2056
- package/dist/chunk-VF4RA27Q.js.br +0 -0
- package/dist/chunk-VF4RA27Q.js.gz +0 -0
- package/dist/{chunk-OOO4JL2N.mjs → chunk-WIEBQGQI.mjs} +44 -0
- package/dist/chunk-WIEBQGQI.mjs.br +0 -0
- package/dist/chunk-WIEBQGQI.mjs.gz +0 -0
- package/dist/i18n/de.cjs +70 -21
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +70 -21
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +70 -21
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +70 -21
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +70 -21
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +70 -21
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +48 -4
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +48 -4
- 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 +177 -15
- package/dist/index.js +63 -63
- 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 +230 -15
- 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 +149 -13
- 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 -3
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-3C7GM6ZF.js.br +0 -0
- package/dist/AiChatPanel-3C7GM6ZF.js.gz +0 -0
- package/dist/AiChatPanel-L7DBCWE3.mjs.br +0 -0
- package/dist/AiChatPanel-L7DBCWE3.mjs.gz +0 -0
- package/dist/Model3DScene-IJ7YYTYU.mjs.br +0 -0
- package/dist/Model3DScene-IJ7YYTYU.mjs.gz +0 -0
- package/dist/Model3DScene-USKNPWWH.js.gz +0 -0
- package/dist/chunk-3JUZOKFI.js.br +0 -0
- package/dist/chunk-3JUZOKFI.js.gz +0 -0
- package/dist/chunk-5V5SMT5A.js.br +0 -0
- package/dist/chunk-5V5SMT5A.js.gz +0 -0
- package/dist/chunk-DFSWCVRW.js.br +0 -0
- package/dist/chunk-DFSWCVRW.js.gz +0 -0
- package/dist/chunk-FZSYLXJT.js.br +0 -0
- package/dist/chunk-FZSYLXJT.js.gz +0 -0
- package/dist/chunk-IBHIXBC5.js.br +0 -0
- package/dist/chunk-IBHIXBC5.js.gz +0 -0
- package/dist/chunk-ICEZL4TM.mjs.br +0 -0
- package/dist/chunk-ICEZL4TM.mjs.gz +0 -0
- package/dist/chunk-INX3E37P.mjs.br +0 -0
- package/dist/chunk-INX3E37P.mjs.gz +0 -0
- package/dist/chunk-K6QHGABT.mjs.br +0 -0
- package/dist/chunk-K6QHGABT.mjs.gz +0 -0
- package/dist/chunk-OOO4JL2N.mjs.br +0 -0
- package/dist/chunk-OOO4JL2N.mjs.gz +0 -0
- package/dist/chunk-VCAQSSGD.mjs.br +0 -0
- package/dist/chunk-VCAQSSGD.mjs.gz +0 -0
- package/dist/chunk-Y4QUVWZC.js.br +0 -0
- package/dist/chunk-Y4QUVWZC.js.gz +0 -0
- package/dist/chunk-ZAQFTO4P.mjs.br +0 -0
- package/dist/chunk-ZAQFTO4P.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkAQIXKTAT_js = require('./chunk-AQIXKTAT.js');
|
|
4
|
+
var chunkUIAU3NR2_js = require('./chunk-UIAU3NR2.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 chunkAQIXKTAT_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 chunkAQIXKTAT_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 (!chunkAQIXKTAT_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 (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunkAQIXKTAT_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 = chunkAQIXKTAT_js.getImageFitStyle(element);
|
|
246
|
+
const counterTransform = chunkAQIXKTAT_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 = chunkAQIXKTAT_js.hasShapeProperties(element) ? chunkAQIXKTAT_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 (!chunkAQIXKTAT_js.isImageLikeElement(element)) {
|
|
279
279
|
return void 0;
|
|
280
280
|
}
|
|
281
|
-
return
|
|
281
|
+
return chunkAQIXKTAT_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
282
282
|
}
|
|
283
283
|
function getImageTilingStyle2(element, nativeSize) {
|
|
284
|
-
return
|
|
284
|
+
return chunkAQIXKTAT_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" } : chunkAQIXKTAT_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 } = chunkAQIXKTAT_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 chunkAQIXKTAT_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 (chunkAQIXKTAT_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
|
+
chunkAQIXKTAT_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 : chunkUIAU3NR2_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
|
+
...{ [chunkAQIXKTAT_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
628
628
|
children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
630
630
|
FallbackIcon,
|
|
631
631
|
{
|
|
632
|
-
paths:
|
|
632
|
+
paths: chunkAQIXKTAT_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(chunkAQIXKTAT_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
|
+
...{ [chunkAQIXKTAT_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
655
655
|
children: [
|
|
656
656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
657
657
|
FallbackIcon,
|
|
658
658
|
{
|
|
659
|
-
paths:
|
|
659
|
+
paths: chunkAQIXKTAT_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(chunkAQIXKTAT_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 = chunkAQIXKTAT_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 ? chunkUIAU3NR2_js.translationsEn["pptx.media.posterAlt"] : chunkUIAU3NR2_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
685
685
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
686
|
-
style:
|
|
686
|
+
style: chunkAQIXKTAT_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: chunkUIAU3NR2_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_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: chunkUIAU3NR2_js.translationsEn["pptx.media.onlineVideoTitle"],
|
|
724
724
|
className: "w-full h-full border-0 pointer-events-auto",
|
|
725
|
-
allow:
|
|
725
|
+
allow: chunkAQIXKTAT_js.ONLINE_VIDEO_IFRAME_ALLOW,
|
|
726
726
|
allowFullScreen: true,
|
|
727
|
-
sandbox:
|
|
727
|
+
sandbox: chunkAQIXKTAT_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: chunkUIAU3NR2_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 chunkAQIXKTAT_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 (!chunkAQIXKTAT_js.hasTextProperties(element)) {
|
|
807
807
|
return {};
|
|
808
808
|
}
|
|
809
|
-
const writingMode =
|
|
810
|
-
const textOrientation =
|
|
811
|
-
const verticalDirection =
|
|
809
|
+
const writingMode = chunkAQIXKTAT_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
810
|
+
const textOrientation = chunkAQIXKTAT_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
811
|
+
const verticalDirection = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 chunkAQIXKTAT_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}${chunkAQIXKTAT_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 = chunkAQIXKTAT_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: chunkAQIXKTAT_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 = chunkAQIXKTAT_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 ? chunkAQIXKTAT_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] = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_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: chunkAQIXKTAT_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 = chunkAQIXKTAT_js.convertOmmlToMathMl(equationXml);
|
|
1232
|
+
const safeMathml = mathml ? chunkAQIXKTAT_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: chunkUIAU3NR2_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_js.scaleFontSizeForAutoFit(
|
|
1381
1381
|
rawFontSize,
|
|
1382
|
-
|
|
1382
|
+
chunkAQIXKTAT_js.resolveAutoFitFontScale(element.textStyle)
|
|
1383
1383
|
);
|
|
1384
1384
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1385
|
-
const fontKerning =
|
|
1385
|
+
const fontKerning = chunkAQIXKTAT_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 ? chunkAQIXKTAT_js.getSubstituteFontFamily(segmentStyle.scriptFallbackFont) : rawFontFamily ? chunkAQIXKTAT_js.getSubstituteFontFamily(
|
|
1391
1391
|
rawFontFamily,
|
|
1392
|
-
|
|
1392
|
+
chunkAQIXKTAT_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1393
1393
|
) : DEFAULT_FONT_FAMILY2;
|
|
1394
|
-
const scriptFonts =
|
|
1395
|
-
const needsScriptFonts =
|
|
1394
|
+
const scriptFonts = chunkAQIXKTAT_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1395
|
+
const needsScriptFonts = chunkAQIXKTAT_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 = chunkAQIXKTAT_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 = chunkAQIXKTAT_js.pieceLetterSpacing(
|
|
1412
1412
|
authoredLetterSpacing,
|
|
1413
|
-
|
|
1413
|
+
chunkAQIXKTAT_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1414
1414
|
);
|
|
1415
|
-
const hollow =
|
|
1415
|
+
const hollow = chunkAQIXKTAT_js.hollowTextFillStyle(segmentStyle, {
|
|
1416
1416
|
color: resolvedSegmentColor,
|
|
1417
1417
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1418
1418
|
});
|
|
@@ -1424,10 +1424,10 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1424
1424
|
spanStyle.direction = runRtl ? "rtl" : "ltr";
|
|
1425
1425
|
spanStyle.unicodeBidi = runRtl !== ctx.paragraphRtl ? "bidi-override" : "embed";
|
|
1426
1426
|
}
|
|
1427
|
-
const isUnderlineWords =
|
|
1427
|
+
const isUnderlineWords = chunkAQIXKTAT_js.splitsUnderlineIntoWords(segmentStyle);
|
|
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 = chunkAQIXKTAT_js.stripUnderlineDecoration(spanStyle);
|
|
1431
1431
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1432
1432
|
delete spanStyle.textDecorationStyle;
|
|
1433
1433
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1443,13 +1443,14 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1443
1443
|
scriptFonts,
|
|
1444
1444
|
baseFontFamily,
|
|
1445
1445
|
findHighlights,
|
|
1446
|
-
|
|
1446
|
+
chunkAQIXKTAT_js.buildTabContext(
|
|
1447
1447
|
element.textStyle?.tabStops,
|
|
1448
1448
|
element.textStyle?.defaultTabSize,
|
|
1449
1449
|
baseFontSize,
|
|
1450
1450
|
baseFontFamily,
|
|
1451
1451
|
Boolean(segmentStyle.bold),
|
|
1452
|
-
Boolean(segmentStyle.italic)
|
|
1452
|
+
Boolean(segmentStyle.italic),
|
|
1453
|
+
{ language: segmentStyle.language, rtl: ctx.paragraphRtl === true }
|
|
1453
1454
|
),
|
|
1454
1455
|
metricContext,
|
|
1455
1456
|
isUnderlineWords,
|
|
@@ -1475,14 +1476,14 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1475
1476
|
const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
|
|
1476
1477
|
const resolvedSegment = {
|
|
1477
1478
|
...segment,
|
|
1478
|
-
style:
|
|
1479
|
+
style: chunkAQIXKTAT_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
|
|
1479
1480
|
};
|
|
1480
|
-
const decorationCss =
|
|
1481
|
+
const decorationCss = chunkAQIXKTAT_js.segmentStyleToCss(
|
|
1481
1482
|
resolvedSegment,
|
|
1482
|
-
|
|
1483
|
+
chunkAQIXKTAT_js.resolveAutoFitFontScale(context.element.textStyle)
|
|
1483
1484
|
);
|
|
1484
|
-
|
|
1485
|
-
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...
|
|
1485
|
+
chunkAQIXKTAT_js.applyUnderlineVariant(decorationCss, resolvedSegment);
|
|
1486
|
+
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkAQIXKTAT_js.nestedTextDecorationStyle(decorationCss) } } : {
|
|
1486
1487
|
text: seed.text,
|
|
1487
1488
|
style: decorationCss,
|
|
1488
1489
|
segmentIndex: seed.segmentIndex
|
|
@@ -1497,7 +1498,7 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1497
1498
|
});
|
|
1498
1499
|
}
|
|
1499
1500
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
|
|
1500
|
-
if (!
|
|
1501
|
+
if (!chunkAQIXKTAT_js.hasTextProperties(element)) {
|
|
1501
1502
|
return emptyFallback || null;
|
|
1502
1503
|
}
|
|
1503
1504
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1507,7 +1508,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1507
1508
|
}
|
|
1508
1509
|
return element.text || emptyFallback || "";
|
|
1509
1510
|
}
|
|
1510
|
-
const paragraphs =
|
|
1511
|
+
const paragraphs = chunkAQIXKTAT_js.buildParagraphs(
|
|
1511
1512
|
element,
|
|
1512
1513
|
fieldContext,
|
|
1513
1514
|
segmentOverrides,
|
|
@@ -1653,13 +1654,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1653
1654
|
);
|
|
1654
1655
|
}
|
|
1655
1656
|
function getDuotoneColors(element) {
|
|
1656
|
-
if (!
|
|
1657
|
+
if (!chunkAQIXKTAT_js.isImageLikeElement(element)) {
|
|
1657
1658
|
return void 0;
|
|
1658
1659
|
}
|
|
1659
1660
|
return element.imageEffects?.duotone;
|
|
1660
1661
|
}
|
|
1661
1662
|
function buildLineShadowCss(element) {
|
|
1662
|
-
if (!
|
|
1663
|
+
if (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
1663
1664
|
return void 0;
|
|
1664
1665
|
}
|
|
1665
1666
|
const ss = element.shapeStyle;
|
|
@@ -1670,13 +1671,13 @@ function buildLineShadowCss(element) {
|
|
|
1670
1671
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1671
1672
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1672
1673
|
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
|
-
|
|
1674
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkAQIXKTAT_js.colorWithOpacity(
|
|
1675
|
+
chunkAQIXKTAT_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1675
1676
|
opacity
|
|
1676
1677
|
)}`;
|
|
1677
1678
|
}
|
|
1678
1679
|
function buildLineGlowFilter(element) {
|
|
1679
|
-
if (!
|
|
1680
|
+
if (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
1680
1681
|
return void 0;
|
|
1681
1682
|
}
|
|
1682
1683
|
const ss = element.shapeStyle;
|
|
@@ -1685,22 +1686,22 @@ function buildLineGlowFilter(element) {
|
|
|
1685
1686
|
}
|
|
1686
1687
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1687
1688
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1688
|
-
const glowCol =
|
|
1689
|
+
const glowCol = chunkAQIXKTAT_js.colorWithOpacity(chunkAQIXKTAT_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1689
1690
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1690
1691
|
}
|
|
1691
1692
|
function getDagDuotoneFilterId(elementId) {
|
|
1692
1693
|
return `dag-duotone-${elementId}`;
|
|
1693
1694
|
}
|
|
1694
1695
|
function hasDagDuotoneEffect(element) {
|
|
1695
|
-
if (!
|
|
1696
|
+
if (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
1696
1697
|
return false;
|
|
1697
1698
|
}
|
|
1698
1699
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1699
1700
|
}
|
|
1700
1701
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1701
1702
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1702
|
-
const c1 =
|
|
1703
|
-
const c2 =
|
|
1703
|
+
const c1 = chunkAQIXKTAT_js.hexToRgbUnit(color1);
|
|
1704
|
+
const c2 = chunkAQIXKTAT_js.hexToRgbUnit(color2);
|
|
1704
1705
|
const grayscaleMatrix = [
|
|
1705
1706
|
0.2126,
|
|
1706
1707
|
0.7152,
|
|
@@ -1744,7 +1745,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1744
1745
|
|
|
1745
1746
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1746
1747
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1747
|
-
return
|
|
1748
|
+
return chunkAQIXKTAT_js.build3DExtrusionData(
|
|
1748
1749
|
shape3d,
|
|
1749
1750
|
scene3d,
|
|
1750
1751
|
fillColor,
|
|
@@ -1753,7 +1754,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1753
1754
|
);
|
|
1754
1755
|
}
|
|
1755
1756
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
|
|
1756
|
-
|
|
1757
|
+
chunkAQIXKTAT_js.apply3dEffects(
|
|
1757
1758
|
base,
|
|
1758
1759
|
scene3d,
|
|
1759
1760
|
shape3d,
|
|
@@ -1768,11 +1769,11 @@ function rendersCustomVectorPath(element) {
|
|
|
1768
1769
|
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
1770
|
}
|
|
1770
1771
|
function rendersWedgeCalloutVector(element) {
|
|
1771
|
-
return element.type === "shape" &&
|
|
1772
|
+
return element.type === "shape" && chunkAQIXKTAT_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1772
1773
|
}
|
|
1773
1774
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1774
1775
|
if (element.type === "group") {
|
|
1775
|
-
const fx2 =
|
|
1776
|
+
const fx2 = chunkAQIXKTAT_js.getComputedEffectStyle(element);
|
|
1776
1777
|
const groupStyle = {};
|
|
1777
1778
|
if (fx2.filter) {
|
|
1778
1779
|
groupStyle.filter = fx2.filter;
|
|
@@ -1782,13 +1783,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1782
1783
|
}
|
|
1783
1784
|
return groupStyle;
|
|
1784
1785
|
}
|
|
1785
|
-
if (!
|
|
1786
|
+
if (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
1786
1787
|
return {};
|
|
1787
1788
|
}
|
|
1788
1789
|
const ss = element.shapeStyle;
|
|
1789
|
-
const fill = animatesFill ? void 0 :
|
|
1790
|
-
const fx =
|
|
1791
|
-
const stroke =
|
|
1790
|
+
const fill = animatesFill ? void 0 : chunkAQIXKTAT_js.getComputedFillStyle(element, parentGroupFill);
|
|
1791
|
+
const fx = chunkAQIXKTAT_js.getComputedEffectStyle(element);
|
|
1792
|
+
const stroke = chunkAQIXKTAT_js.getComputedStrokeStyle(element);
|
|
1792
1793
|
const base = {
|
|
1793
1794
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1794
1795
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1827,7 +1828,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1827
1828
|
};
|
|
1828
1829
|
Object.assign(
|
|
1829
1830
|
base,
|
|
1830
|
-
|
|
1831
|
+
chunkAQIXKTAT_js.getAnimationColorBaseStyle(element, {
|
|
1831
1832
|
animatesFill,
|
|
1832
1833
|
animatesStroke,
|
|
1833
1834
|
parentGroupFill
|
|
@@ -1849,7 +1850,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1849
1850
|
},
|
|
1850
1851
|
element.id
|
|
1851
1852
|
);
|
|
1852
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1853
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkAQIXKTAT_js.isStrokeOnlyPresetElement(element)) {
|
|
1853
1854
|
base.backgroundColor = "transparent";
|
|
1854
1855
|
base.backgroundImage = void 0;
|
|
1855
1856
|
base.borderWidth = void 0;
|
|
@@ -1863,7 +1864,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1863
1864
|
if (rendersWedgeCalloutVector(element)) {
|
|
1864
1865
|
return base;
|
|
1865
1866
|
}
|
|
1866
|
-
const geometry =
|
|
1867
|
+
const geometry = chunkAQIXKTAT_js.resolveShapeGeometry(element);
|
|
1867
1868
|
switch (geometry.kind) {
|
|
1868
1869
|
case "bare":
|
|
1869
1870
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1887,7 +1888,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1887
1888
|
}
|
|
1888
1889
|
}
|
|
1889
1890
|
function getConnectorPathGeometry2(element) {
|
|
1890
|
-
return
|
|
1891
|
+
return chunkAQIXKTAT_js.getConnectorPathGeometry(element);
|
|
1891
1892
|
}
|
|
1892
1893
|
var ARROW_SIZE_SCALE = {
|
|
1893
1894
|
sm: 0.6,
|
|
@@ -1956,11 +1957,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1956
1957
|
strokePaint,
|
|
1957
1958
|
strokeWidth,
|
|
1958
1959
|
dashArray,
|
|
1959
|
-
lineCap:
|
|
1960
|
+
lineCap: chunkAQIXKTAT_js.svgLineCap(shapeStyle?.lineCap),
|
|
1960
1961
|
lineJoin,
|
|
1961
1962
|
miterLimit,
|
|
1962
|
-
offsets:
|
|
1963
|
-
widths:
|
|
1963
|
+
offsets: chunkAQIXKTAT_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1964
|
+
widths: chunkAQIXKTAT_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1964
1965
|
};
|
|
1965
1966
|
}
|
|
1966
1967
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1983,12 +1984,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1983
1984
|
}
|
|
1984
1985
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1985
1986
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1986
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1987
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkAQIXKTAT_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1987
1988
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1988
|
-
const gradientPaint = gradient ?
|
|
1989
|
+
const gradientPaint = gradient ? chunkAQIXKTAT_js.svgGradientFillRef(gradient) : void 0;
|
|
1989
1990
|
const nodes = [];
|
|
1990
1991
|
if (subpaths && needsPerSubpath) {
|
|
1991
|
-
const paints =
|
|
1992
|
+
const paints = chunkAQIXKTAT_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1992
1993
|
paints.forEach((paint, idx) => {
|
|
1993
1994
|
if (paint.fill !== "none") {
|
|
1994
1995
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2017,7 +2018,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2017
2018
|
"path",
|
|
2018
2019
|
{
|
|
2019
2020
|
d: pathData,
|
|
2020
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2021
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkAQIXKTAT_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2021
2022
|
stroke: "none",
|
|
2022
2023
|
vectorEffect: "non-scaling-stroke"
|
|
2023
2024
|
},
|
|
@@ -2033,7 +2034,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2033
2034
|
"svg",
|
|
2034
2035
|
{
|
|
2035
2036
|
viewBox: `0 0 ${pathWidth} ${pathHeight}`,
|
|
2036
|
-
className: "w-full h-full pointer-events-none",
|
|
2037
|
+
className: "absolute inset-0 w-full h-full pointer-events-none",
|
|
2037
2038
|
preserveAspectRatio: "none",
|
|
2038
2039
|
children: [
|
|
2039
2040
|
animatesFill ? null : renderSvgGradientDefs(gradient),
|
|
@@ -2043,14 +2044,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2043
2044
|
);
|
|
2044
2045
|
}
|
|
2045
2046
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2046
|
-
if (!
|
|
2047
|
+
if (!chunkAQIXKTAT_js.hasShapeProperties(element)) {
|
|
2047
2048
|
return null;
|
|
2048
2049
|
}
|
|
2049
2050
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2050
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2051
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2052
|
-
const dashType =
|
|
2053
|
-
const dashArray =
|
|
2051
|
+
const fillPaint = animatesFill ? "inherit" : chunkAQIXKTAT_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2052
|
+
const strokePaint = animatesStroke ? "inherit" : chunkAQIXKTAT_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2053
|
+
const dashType = chunkAQIXKTAT_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2054
|
+
const dashArray = chunkAQIXKTAT_js.getSvgStrokeDasharray(
|
|
2054
2055
|
dashType,
|
|
2055
2056
|
Math.max(strokeWidth, 1),
|
|
2056
2057
|
element.shapeStyle?.customDashSegments
|
|
@@ -2131,13 +2132,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2131
2132
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2132
2133
|
// without this the shape fell back to the parser's representative solid
|
|
2133
2134
|
// and lost every fade (issue #132).
|
|
2134
|
-
|
|
2135
|
+
chunkAQIXKTAT_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2135
2136
|
);
|
|
2136
2137
|
}
|
|
2137
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2138
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkAQIXKTAT_js.buildStrokeOutline(element)) {
|
|
2138
2139
|
const width = Math.max(element.width, 1);
|
|
2139
2140
|
const height = Math.max(element.height, 1);
|
|
2140
|
-
const geometry =
|
|
2141
|
+
const geometry = chunkAQIXKTAT_js.getPresetShapeVectorGeometry(
|
|
2141
2142
|
element.shapeType || "rect",
|
|
2142
2143
|
width,
|
|
2143
2144
|
height,
|
|
@@ -2165,18 +2166,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2165
2166
|
);
|
|
2166
2167
|
}
|
|
2167
2168
|
}
|
|
2168
|
-
if (element.type === "shape" &&
|
|
2169
|
+
if (element.type === "shape" && chunkAQIXKTAT_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2169
2170
|
const width = Math.max(element.width, 1);
|
|
2170
2171
|
const height = Math.max(element.height, 1);
|
|
2171
|
-
const geometry =
|
|
2172
|
+
const geometry = chunkAQIXKTAT_js.getPresetShapeVectorGeometry(
|
|
2172
2173
|
element.shapeType,
|
|
2173
2174
|
width,
|
|
2174
2175
|
height,
|
|
2175
2176
|
element.shapeAdjustments
|
|
2176
2177
|
);
|
|
2177
2178
|
if (geometry) {
|
|
2178
|
-
const gradient =
|
|
2179
|
-
const gradientPaint = gradient ?
|
|
2179
|
+
const gradient = chunkAQIXKTAT_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2180
|
+
const gradientPaint = gradient ? chunkAQIXKTAT_js.svgGradientFillRef(gradient) : void 0;
|
|
2180
2181
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2181
2182
|
"svg",
|
|
2182
2183
|
{
|
|
@@ -2209,18 +2210,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2209
2210
|
);
|
|
2210
2211
|
}
|
|
2211
2212
|
}
|
|
2212
|
-
if (
|
|
2213
|
+
if (chunkAQIXKTAT_js.isCalloutShape(normalizedType)) {
|
|
2213
2214
|
const width = Math.max(element.width, 1);
|
|
2214
2215
|
const height = Math.max(element.height, 1);
|
|
2215
|
-
const geometry =
|
|
2216
|
+
const geometry = chunkAQIXKTAT_js.getCalloutLeaderLineGeometry(
|
|
2216
2217
|
normalizedType,
|
|
2217
2218
|
width,
|
|
2218
2219
|
height,
|
|
2219
2220
|
element.shapeAdjustments
|
|
2220
2221
|
);
|
|
2221
2222
|
if (geometry && geometry.points.length >= 2) {
|
|
2222
|
-
const leaderPath =
|
|
2223
|
-
const bounds =
|
|
2223
|
+
const leaderPath = chunkAQIXKTAT_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2224
|
+
const bounds = chunkAQIXKTAT_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2224
2225
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2225
2226
|
const offsetLeft = bounds.minX;
|
|
2226
2227
|
const offsetTop = bounds.minY;
|
|
@@ -2283,10 +2284,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2283
2284
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2284
2285
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2285
2286
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2286
|
-
const connectorLineCap =
|
|
2287
|
+
const connectorLineCap = chunkAQIXKTAT_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2287
2288
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2288
|
-
const offsets =
|
|
2289
|
-
const widths =
|
|
2289
|
+
const offsets = chunkAQIXKTAT_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2290
|
+
const widths = chunkAQIXKTAT_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2290
2291
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2291
2292
|
"svg",
|
|
2292
2293
|
{
|
|
@@ -2353,15 +2354,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2353
2354
|
}
|
|
2354
2355
|
const rawStops = stops.map((gs) => {
|
|
2355
2356
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2356
|
-
const color =
|
|
2357
|
-
const opacity =
|
|
2357
|
+
const color = chunkAQIXKTAT_js.parseDrawingColor(gs) ?? "#888888";
|
|
2358
|
+
const opacity = chunkAQIXKTAT_js.parseDrawingColorOpacity(gs);
|
|
2358
2359
|
return { position: pos, color, opacity };
|
|
2359
2360
|
}).sort((a, b) => a.position - b.position);
|
|
2360
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2361
|
+
const stopStrings = rawStops.map((s) => `${chunkAQIXKTAT_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2361
2362
|
const lin = gradFill["a:lin"];
|
|
2362
2363
|
if (lin) {
|
|
2363
2364
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2364
|
-
const angleDeg = Math.round(
|
|
2365
|
+
const angleDeg = Math.round(chunkAQIXKTAT_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2365
2366
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2366
2367
|
}
|
|
2367
2368
|
const path = gradFill["a:path"];
|
|
@@ -2375,7 +2376,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2375
2376
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2376
2377
|
} : void 0;
|
|
2377
2378
|
if (pathType === "rect") {
|
|
2378
|
-
return
|
|
2379
|
+
return chunkAQIXKTAT_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2379
2380
|
}
|
|
2380
2381
|
let cx = 50;
|
|
2381
2382
|
let cy = 50;
|
|
@@ -2397,8 +2398,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2397
2398
|
if (!pattFill) {
|
|
2398
2399
|
return void 0;
|
|
2399
2400
|
}
|
|
2400
|
-
const fgColor =
|
|
2401
|
-
const bgColor =
|
|
2401
|
+
const fgColor = chunkAQIXKTAT_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2402
|
+
const bgColor = chunkAQIXKTAT_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2402
2403
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2403
2404
|
switch (preset) {
|
|
2404
2405
|
case "ltHorz":
|
|
@@ -2509,11 +2510,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2509
2510
|
const prstDash = ln["a:prstDash"];
|
|
2510
2511
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2511
2512
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2512
|
-
const color =
|
|
2513
|
+
const color = chunkAQIXKTAT_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2513
2514
|
if (color) {
|
|
2514
|
-
const opacity =
|
|
2515
|
+
const opacity = chunkAQIXKTAT_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2515
2516
|
const key = `${edge.prefix}`;
|
|
2516
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2517
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkAQIXKTAT_js.colorWithOpacity(color, opacity)}`;
|
|
2517
2518
|
}
|
|
2518
2519
|
}
|
|
2519
2520
|
return borderStyle;
|
|
@@ -2526,7 +2527,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2526
2527
|
const textShadowParts = [];
|
|
2527
2528
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2528
2529
|
if (outerShdw) {
|
|
2529
|
-
const shdwColor =
|
|
2530
|
+
const shdwColor = chunkAQIXKTAT_js.parseDrawingColor(outerShdw);
|
|
2530
2531
|
if (shdwColor) {
|
|
2531
2532
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2532
2533
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2544,7 +2545,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2544
2545
|
}
|
|
2545
2546
|
const glow = effectLst["a:glow"];
|
|
2546
2547
|
if (glow) {
|
|
2547
|
-
const glowColor =
|
|
2548
|
+
const glowColor = chunkAQIXKTAT_js.parseDrawingColor(glow);
|
|
2548
2549
|
if (glowColor) {
|
|
2549
2550
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2550
2551
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2566,11 +2567,11 @@ function extractCellText(cellXml) {
|
|
|
2566
2567
|
const textParts = [];
|
|
2567
2568
|
const runs = ensureArrayValue(paragraph["a:r"]);
|
|
2568
2569
|
runs.forEach((run) => {
|
|
2569
|
-
textParts.push(
|
|
2570
|
+
textParts.push(chunkAQIXKTAT_js.xmlText(run["a:t"]) ?? "");
|
|
2570
2571
|
});
|
|
2571
2572
|
const fields = ensureArrayValue(paragraph["a:fld"]);
|
|
2572
2573
|
fields.forEach((field) => {
|
|
2573
|
-
textParts.push(
|
|
2574
|
+
textParts.push(chunkAQIXKTAT_js.xmlText(field["a:t"]) ?? "");
|
|
2574
2575
|
});
|
|
2575
2576
|
paragraphTexts.push(textParts.join(""));
|
|
2576
2577
|
});
|
|
@@ -2614,10 +2615,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2614
2615
|
if (runProps?.["@_u"] !== void 0) {
|
|
2615
2616
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2616
2617
|
}
|
|
2617
|
-
const runColor =
|
|
2618
|
+
const runColor = chunkAQIXKTAT_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkAQIXKTAT_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2618
2619
|
if (runColor) {
|
|
2619
|
-
const opacity =
|
|
2620
|
-
cellStyle.color =
|
|
2620
|
+
const opacity = chunkAQIXKTAT_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2621
|
+
cellStyle.color = chunkAQIXKTAT_js.colorWithOpacity(runColor, opacity);
|
|
2621
2622
|
}
|
|
2622
2623
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2623
2624
|
if (fontFamily) {
|
|
@@ -2627,15 +2628,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2627
2628
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2628
2629
|
}
|
|
2629
2630
|
const cellProperties = cellXml["a:tcPr"];
|
|
2630
|
-
const cellFill =
|
|
2631
|
+
const cellFill = chunkAQIXKTAT_js.parseDrawingColor(
|
|
2631
2632
|
cellProperties?.["a:solidFill"],
|
|
2632
2633
|
schemeColorOverrides
|
|
2633
2634
|
);
|
|
2634
2635
|
if (cellFill) {
|
|
2635
|
-
const opacity =
|
|
2636
|
+
const opacity = chunkAQIXKTAT_js.parseDrawingColorOpacity(
|
|
2636
2637
|
cellProperties?.["a:solidFill"]
|
|
2637
2638
|
);
|
|
2638
|
-
cellStyle.backgroundColor =
|
|
2639
|
+
cellStyle.backgroundColor = chunkAQIXKTAT_js.colorWithOpacity(cellFill, opacity);
|
|
2639
2640
|
} else {
|
|
2640
2641
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2641
2642
|
if (gradCss) {
|
|
@@ -2650,16 +2651,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2650
2651
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2651
2652
|
Object.assign(cellStyle, edgeBorders);
|
|
2652
2653
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2653
|
-
const borderColor =
|
|
2654
|
+
const borderColor = chunkAQIXKTAT_js.parseDrawingColor(
|
|
2654
2655
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2655
2656
|
schemeColorOverrides
|
|
2656
|
-
) ||
|
|
2657
|
+
) || chunkAQIXKTAT_js.parseDrawingColor(
|
|
2657
2658
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2658
2659
|
schemeColorOverrides
|
|
2659
|
-
) ||
|
|
2660
|
+
) || chunkAQIXKTAT_js.parseDrawingColor(
|
|
2660
2661
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2661
2662
|
schemeColorOverrides
|
|
2662
|
-
) ||
|
|
2663
|
+
) || chunkAQIXKTAT_js.parseDrawingColor(
|
|
2663
2664
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2664
2665
|
schemeColorOverrides
|
|
2665
2666
|
);
|
|
@@ -2731,7 +2732,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2731
2732
|
if (element.type !== "table") {
|
|
2732
2733
|
return void 0;
|
|
2733
2734
|
}
|
|
2734
|
-
return
|
|
2735
|
+
return chunkAQIXKTAT_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2735
2736
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2736
2737
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2737
2738
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2811,7 +2812,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2811
2812
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2812
2813
|
"span",
|
|
2813
2814
|
{
|
|
2814
|
-
style: { position: "relative", ...
|
|
2815
|
+
style: { position: "relative", ...chunkAQIXKTAT_js.cellRunStyle(run) },
|
|
2815
2816
|
children: run.text
|
|
2816
2817
|
},
|
|
2817
2818
|
`r-${index}`
|
|
@@ -2819,7 +2820,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2819
2820
|
});
|
|
2820
2821
|
}
|
|
2821
2822
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2822
|
-
return
|
|
2823
|
+
return chunkAQIXKTAT_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2823
2824
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2824
2825
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2825
2826
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2952,7 +2953,7 @@ function TableResizeOverlay({
|
|
|
2952
2953
|
const containerRef = React7.useRef(null);
|
|
2953
2954
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2954
2955
|
const dragRef = React7.useRef(null);
|
|
2955
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2956
|
+
const colBoundaries = React7.useMemo(() => chunkAQIXKTAT_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2956
2957
|
const measureRows = React7.useCallback(() => {
|
|
2957
2958
|
const container = containerRef.current;
|
|
2958
2959
|
if (!container) {
|
|
@@ -2999,11 +3000,11 @@ function TableResizeOverlay({
|
|
|
2999
3000
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3000
3001
|
if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3001
3002
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3002
|
-
onResizeColumns(
|
|
3003
|
+
onResizeColumns(chunkAQIXKTAT_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3003
3004
|
} else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
|
|
3004
3005
|
const deltaY = e.clientY - drag.startPos;
|
|
3005
|
-
const newHeight =
|
|
3006
|
-
drag.initialRowHeight ??
|
|
3006
|
+
const newHeight = chunkAQIXKTAT_js.computeResizedRowHeight(
|
|
3007
|
+
drag.initialRowHeight ?? chunkAQIXKTAT_js.DEFAULT_ROW_HEIGHT,
|
|
3007
3008
|
deltaY
|
|
3008
3009
|
);
|
|
3009
3010
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3041,7 +3042,7 @@ function TableResizeOverlay({
|
|
|
3041
3042
|
e.stopPropagation();
|
|
3042
3043
|
const table = containerRef.current?.querySelector("table");
|
|
3043
3044
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3044
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3045
|
+
const actualHeight = tr?.offsetHeight ?? chunkAQIXKTAT_js.DEFAULT_ROW_HEIGHT;
|
|
3045
3046
|
document.body.style.cursor = "row-resize";
|
|
3046
3047
|
document.body.style.userSelect = "none";
|
|
3047
3048
|
dragRef.current = {
|
|
@@ -3081,14 +3082,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3081
3082
|
const rowCount = tableData.rows.length;
|
|
3082
3083
|
const columnCount = tableData.columnWidths.length;
|
|
3083
3084
|
const selectedCell = options?.selectedCell || null;
|
|
3084
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3085
|
+
const isEditable = Boolean(options?.editable) && chunkAQIXKTAT_js.canDrillDown(element);
|
|
3085
3086
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3086
3087
|
const sharedCtx = {
|
|
3087
3088
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3088
3089
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3089
3090
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3090
3091
|
};
|
|
3091
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3092
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkAQIXKTAT_js.tableCellCss(
|
|
3092
3093
|
tableData,
|
|
3093
3094
|
cell,
|
|
3094
3095
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3101,7 +3102,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3101
3102
|
}
|
|
3102
3103
|
const first = selectedCell.selectedCells[0];
|
|
3103
3104
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3104
|
-
return
|
|
3105
|
+
return chunkAQIXKTAT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3105
3106
|
})();
|
|
3106
3107
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3107
3108
|
TableResizeOverlay,
|
|
@@ -3122,9 +3123,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3122
3123
|
{
|
|
3123
3124
|
className: "w-full h-full border-collapse table-fixed",
|
|
3124
3125
|
style: {
|
|
3125
|
-
fontFamily:
|
|
3126
|
+
fontFamily: chunkAQIXKTAT_js.DEFAULT_FONT_FAMILY,
|
|
3126
3127
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3127
|
-
...
|
|
3128
|
+
...chunkAQIXKTAT_js.tableContainerCss(tableData)
|
|
3128
3129
|
},
|
|
3129
3130
|
children: [
|
|
3130
3131
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3143,7 +3144,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3143
3144
|
return null;
|
|
3144
3145
|
}
|
|
3145
3146
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3146
|
-
const isInMultiSelection =
|
|
3147
|
+
const isInMultiSelection = chunkAQIXKTAT_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3147
3148
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3148
3149
|
const diag = getCellDiagonalBorders2(
|
|
3149
3150
|
cell.style,
|
|
@@ -3172,7 +3173,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3172
3173
|
}
|
|
3173
3174
|
event.stopPropagation();
|
|
3174
3175
|
if (event.shiftKey && selectedCell) {
|
|
3175
|
-
const rect =
|
|
3176
|
+
const rect = chunkAQIXKTAT_js.computeSelectionRect(
|
|
3176
3177
|
selectedCell.rowIndex,
|
|
3177
3178
|
selectedCell.columnIndex,
|
|
3178
3179
|
rowIndex,
|
|
@@ -3182,7 +3183,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3182
3183
|
options?.onSelectCell?.({
|
|
3183
3184
|
rowIndex: selectedCell.rowIndex,
|
|
3184
3185
|
columnIndex: selectedCell.columnIndex,
|
|
3185
|
-
selectedCells:
|
|
3186
|
+
selectedCells: chunkAQIXKTAT_js.rectToCells(rect)
|
|
3186
3187
|
});
|
|
3187
3188
|
} else {
|
|
3188
3189
|
options?.onSelectCell?.({
|
|
@@ -3243,10 +3244,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3243
3244
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3244
3245
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3245
3246
|
}
|
|
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:
|
|
3247
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUIAU3NR2_js.translationsEn["pptx.table.title"] });
|
|
3247
3248
|
}
|
|
3248
3249
|
const selectedCell = options?.selectedCell || null;
|
|
3249
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3250
|
+
const isEditable = Boolean(options?.editable) && chunkAQIXKTAT_js.canDrillDown(element);
|
|
3250
3251
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3251
3252
|
const tableEl = element;
|
|
3252
3253
|
const xmlSelectionRect = (() => {
|
|
@@ -3258,7 +3259,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3258
3259
|
}
|
|
3259
3260
|
const first = selectedCell.selectedCells[0];
|
|
3260
3261
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3261
|
-
return
|
|
3262
|
+
return chunkAQIXKTAT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3262
3263
|
})();
|
|
3263
3264
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3264
3265
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3280,9 +3281,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3280
3281
|
{
|
|
3281
3282
|
className: "w-full h-full border-collapse table-fixed",
|
|
3282
3283
|
style: {
|
|
3283
|
-
fontFamily:
|
|
3284
|
+
fontFamily: chunkAQIXKTAT_js.DEFAULT_FONT_FAMILY,
|
|
3284
3285
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3285
|
-
...
|
|
3286
|
+
...chunkAQIXKTAT_js.tableContainerCss(tableEl.tableData)
|
|
3286
3287
|
},
|
|
3287
3288
|
children: [
|
|
3288
3289
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3339,7 +3340,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3339
3340
|
color: textStyle.color,
|
|
3340
3341
|
...bandStyle,
|
|
3341
3342
|
...xmlCellStyle,
|
|
3342
|
-
...tdCellOverride ?
|
|
3343
|
+
...tdCellOverride ? chunkAQIXKTAT_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3343
3344
|
...diag ? { position: "relative" } : void 0
|
|
3344
3345
|
};
|
|
3345
3346
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3349,7 +3350,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3349
3350
|
"border px-1 py-0.5 align-top",
|
|
3350
3351
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3351
3352
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3352
|
-
|
|
3353
|
+
chunkAQIXKTAT_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
3354
|
),
|
|
3354
3355
|
colSpan,
|
|
3355
3356
|
rowSpan: rSpan,
|
|
@@ -3360,7 +3361,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3360
3361
|
}
|
|
3361
3362
|
event.stopPropagation();
|
|
3362
3363
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3363
|
-
const rect =
|
|
3364
|
+
const rect = chunkAQIXKTAT_js.computeSelectionRect(
|
|
3364
3365
|
selectedCell.rowIndex,
|
|
3365
3366
|
selectedCell.columnIndex,
|
|
3366
3367
|
rowIndex,
|
|
@@ -3370,7 +3371,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3370
3371
|
options?.onSelectCell?.({
|
|
3371
3372
|
rowIndex: selectedCell.rowIndex,
|
|
3372
3373
|
columnIndex: selectedCell.columnIndex,
|
|
3373
|
-
selectedCells:
|
|
3374
|
+
selectedCells: chunkAQIXKTAT_js.rectToCells(rect)
|
|
3374
3375
|
});
|
|
3375
3376
|
} else {
|
|
3376
3377
|
options?.onSelectCell?.({
|
|
@@ -3428,24 +3429,27 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3428
3429
|
}
|
|
3429
3430
|
);
|
|
3430
3431
|
}
|
|
3432
|
+
function renderGradientStops(stops) {
|
|
3433
|
+
return stops.map((stop, i) => /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: stop.offset, stopColor: stop.color, stopOpacity: stop.opacity }, i));
|
|
3434
|
+
}
|
|
3431
3435
|
function partAttrs(part) {
|
|
3432
|
-
return part ?
|
|
3436
|
+
return part ? chunkAQIXKTAT_js.chartPartToAttrs(part) : void 0;
|
|
3433
3437
|
}
|
|
3434
3438
|
function resolveReactPalette(chartData) {
|
|
3435
3439
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3436
3440
|
return chartData.colorPalette;
|
|
3437
3441
|
}
|
|
3438
|
-
return [...
|
|
3442
|
+
return [...chunkAQIXKTAT_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3439
3443
|
}
|
|
3440
3444
|
function buildReactChartViewModel(element) {
|
|
3441
3445
|
if (element.type !== "chart" || !element.chartData) {
|
|
3442
|
-
return
|
|
3446
|
+
return chunkAQIXKTAT_js.buildChartViewModel(element);
|
|
3443
3447
|
}
|
|
3444
3448
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3445
3449
|
...element,
|
|
3446
3450
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3447
3451
|
};
|
|
3448
|
-
return
|
|
3452
|
+
return chunkAQIXKTAT_js.buildChartViewModel(themedElement);
|
|
3449
3453
|
}
|
|
3450
3454
|
function renderPrimitive(prim, key) {
|
|
3451
3455
|
switch (prim.kind) {
|
|
@@ -3597,7 +3601,7 @@ function renderText(t, key) {
|
|
|
3597
3601
|
);
|
|
3598
3602
|
}
|
|
3599
3603
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3600
|
-
const legendItems =
|
|
3604
|
+
const legendItems = chunkAQIXKTAT_js.computeChartLegendLayout(vm);
|
|
3601
3605
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3602
3606
|
"svg",
|
|
3603
3607
|
{
|
|
@@ -3605,29 +3609,52 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3605
3609
|
viewBox: `0 0 ${vm.svgWidth} ${vm.svgHeight}`,
|
|
3606
3610
|
preserveAspectRatio,
|
|
3607
3611
|
children: [
|
|
3608
|
-
vm.defs && vm.defs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: vm.defs.map(
|
|
3609
|
-
"
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3612
|
+
vm.defs && vm.defs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: vm.defs.map(
|
|
3613
|
+
(def, i) => def.kind === "linearGradient" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3614
|
+
"linearGradient",
|
|
3615
|
+
{
|
|
3616
|
+
id: def.id,
|
|
3617
|
+
x1: def.x1,
|
|
3618
|
+
y1: def.y1,
|
|
3619
|
+
x2: def.x2,
|
|
3620
|
+
y2: def.y2,
|
|
3621
|
+
children: renderGradientStops(def.stops)
|
|
3622
|
+
},
|
|
3623
|
+
`${elementId}-def-${i}`
|
|
3624
|
+
) : def.kind === "radialGradient" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3625
|
+
"radialGradient",
|
|
3626
|
+
{
|
|
3627
|
+
id: def.id,
|
|
3628
|
+
cx: def.cx,
|
|
3629
|
+
cy: def.cy,
|
|
3630
|
+
r: def.r,
|
|
3631
|
+
children: renderGradientStops(def.stops)
|
|
3632
|
+
},
|
|
3633
|
+
`${elementId}-def-${i}`
|
|
3634
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
3635
|
+
"pattern",
|
|
3636
|
+
{
|
|
3637
|
+
id: def.id,
|
|
3638
|
+
patternUnits: def.patternUnits,
|
|
3639
|
+
x: def.x,
|
|
3640
|
+
y: def.y,
|
|
3641
|
+
width: def.width,
|
|
3642
|
+
height: def.height,
|
|
3643
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3644
|
+
"image",
|
|
3645
|
+
{
|
|
3646
|
+
href: def.href,
|
|
3647
|
+
x: 0,
|
|
3648
|
+
y: 0,
|
|
3649
|
+
width: def.width,
|
|
3650
|
+
height: def.height,
|
|
3651
|
+
preserveAspectRatio: def.preserveAspectRatio
|
|
3652
|
+
}
|
|
3653
|
+
)
|
|
3654
|
+
},
|
|
3655
|
+
`${elementId}-def-${i}`
|
|
3656
|
+
)
|
|
3657
|
+
) }),
|
|
3631
3658
|
vm.areaFill && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3632
3659
|
"rect",
|
|
3633
3660
|
{
|
|
@@ -3737,17 +3764,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3737
3764
|
}
|
|
3738
3765
|
function renderChartElement(element) {
|
|
3739
3766
|
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:
|
|
3767
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUIAU3NR2_js.translationsEn["pptx.chart.heading"] });
|
|
3741
3768
|
}
|
|
3742
3769
|
const chartData = element.chartData;
|
|
3743
3770
|
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:
|
|
3771
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUIAU3NR2_js.translationsEn["pptx.chart.heading"] });
|
|
3745
3772
|
}
|
|
3746
|
-
const kind =
|
|
3773
|
+
const kind = chunkAQIXKTAT_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3747
3774
|
return renderChartViewModel(
|
|
3748
3775
|
element.id,
|
|
3749
3776
|
buildReactChartViewModel(element),
|
|
3750
|
-
|
|
3777
|
+
chunkAQIXKTAT_js.chartPreserveAspectRatio(kind)
|
|
3751
3778
|
);
|
|
3752
3779
|
}
|
|
3753
3780
|
|
|
@@ -3767,14 +3794,14 @@ function buildNotesPdf(pages) {
|
|
|
3767
3794
|
notes: page.notes,
|
|
3768
3795
|
slideNumber: page.slideNumber
|
|
3769
3796
|
}));
|
|
3770
|
-
const bytes =
|
|
3797
|
+
const bytes = chunkAQIXKTAT_js.buildNotesPdfBytes(images, meta);
|
|
3771
3798
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3772
3799
|
return URL.createObjectURL(blob);
|
|
3773
3800
|
}
|
|
3774
3801
|
|
|
3775
3802
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3776
3803
|
function buildPdfFromTiledImageData(pages) {
|
|
3777
|
-
const bytes =
|
|
3804
|
+
const bytes = chunkAQIXKTAT_js.buildTiledSlidesPdfBytes(pages);
|
|
3778
3805
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3779
3806
|
return URL.createObjectURL(blob);
|
|
3780
3807
|
}
|
|
@@ -3783,7 +3810,7 @@ function buildPdfFromTiledImageData(pages) {
|
|
|
3783
3810
|
var activePreview = null;
|
|
3784
3811
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3785
3812
|
stopPreviewAnimation();
|
|
3786
|
-
const descriptor =
|
|
3813
|
+
const descriptor = chunkAQIXKTAT_js.buildPreviewAnimation(preset, options);
|
|
3787
3814
|
if (!descriptor) {
|
|
3788
3815
|
return;
|
|
3789
3816
|
}
|
|
@@ -3796,7 +3823,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3796
3823
|
return;
|
|
3797
3824
|
}
|
|
3798
3825
|
const stage = domEl.offsetParent;
|
|
3799
|
-
const descriptor =
|
|
3826
|
+
const descriptor = chunkAQIXKTAT_js.buildMotionPathPreview({
|
|
3800
3827
|
path,
|
|
3801
3828
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3802
3829
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|