pptx-react-viewer 4.7.0 → 4.9.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 +146 -0
- package/dist/{AiChatPanel-3YILWCBX.js → AiChatPanel-WJ64Q6KO.js} +28 -28
- package/dist/AiChatPanel-WJ64Q6KO.js.br +0 -0
- package/dist/AiChatPanel-WJ64Q6KO.js.gz +0 -0
- package/dist/{AiChatPanel-X2MVL5UP.mjs → AiChatPanel-YRWC7C3B.mjs} +4 -4
- package/dist/AiChatPanel-YRWC7C3B.mjs.br +0 -0
- package/dist/AiChatPanel-YRWC7C3B.mjs.gz +0 -0
- package/dist/{Model3DScene-QFWI5CEE.mjs → Model3DScene-DS6AQWFV.mjs} +1 -1
- package/dist/Model3DScene-DS6AQWFV.mjs.br +0 -0
- package/dist/Model3DScene-DS6AQWFV.mjs.gz +0 -0
- package/dist/{Model3DScene-G7P6ZAIO.js → Model3DScene-VHDYCHO5.js} +2 -2
- package/dist/{Model3DScene-G7P6ZAIO.js.br → Model3DScene-VHDYCHO5.js.br} +0 -0
- package/dist/Model3DScene-VHDYCHO5.js.gz +0 -0
- package/dist/{chunk-FYAOOACZ.js → chunk-7NTNFOPT.js} +287 -255
- package/dist/chunk-7NTNFOPT.js.br +0 -0
- package/dist/chunk-7NTNFOPT.js.gz +0 -0
- package/dist/{chunk-WIEBQGQI.mjs → chunk-HDH4KFDK.mjs} +323 -96
- package/dist/chunk-HDH4KFDK.mjs.br +0 -0
- package/dist/chunk-HDH4KFDK.mjs.gz +0 -0
- package/dist/{chunk-UBYFLXAU.mjs → chunk-K5HZD63F.mjs} +2548 -1857
- package/dist/chunk-K5HZD63F.mjs.br +0 -0
- package/dist/chunk-K5HZD63F.mjs.gz +0 -0
- package/dist/{chunk-UIAU3NR2.js → chunk-KPKO2ELT.js} +323 -96
- package/dist/chunk-KPKO2ELT.js.br +0 -0
- package/dist/chunk-KPKO2ELT.js.gz +0 -0
- package/dist/{chunk-OECUSL2B.mjs → chunk-M6KW27TZ.mjs} +8 -7
- package/dist/chunk-M6KW27TZ.mjs.br +0 -0
- package/dist/chunk-M6KW27TZ.mjs.gz +0 -0
- package/dist/{chunk-VF4RA27Q.js → chunk-NMXIX7E4.js} +4565 -3874
- package/dist/chunk-NMXIX7E4.js.br +0 -0
- package/dist/chunk-NMXIX7E4.js.gz +0 -0
- package/dist/{chunk-QLDHUKH2.mjs → chunk-PJT2DTOS.mjs} +43189 -15692
- package/dist/chunk-PJT2DTOS.mjs.br +0 -0
- package/dist/chunk-PJT2DTOS.mjs.gz +0 -0
- package/dist/{chunk-2BM4GBFZ.js → chunk-PSJTZIIK.js} +5 -5
- package/dist/chunk-PSJTZIIK.js.br +0 -0
- package/dist/chunk-PSJTZIIK.js.gz +0 -0
- package/dist/{chunk-5J6NW3YS.mjs → chunk-Y7RTQOD6.mjs} +81 -49
- package/dist/chunk-Y7RTQOD6.mjs.br +0 -0
- package/dist/chunk-Y7RTQOD6.mjs.gz +0 -0
- package/dist/{chunk-AQIXKTAT.js → chunk-YWAFJZ23.js} +43214 -15695
- package/dist/chunk-YWAFJZ23.js.br +0 -0
- package/dist/chunk-YWAFJZ23.js.gz +0 -0
- package/dist/{chunk-SR7ETIBF.js → chunk-ZZ6IPWOP.js} +819 -818
- package/dist/chunk-ZZ6IPWOP.js.br +0 -0
- package/dist/chunk-ZZ6IPWOP.js.gz +0 -0
- package/dist/{chunk-E5OIDWHO.mjs → chunk-ZZY24BB7.mjs} +1 -1
- package/dist/chunk-ZZY24BB7.mjs.br +0 -0
- package/dist/chunk-ZZY24BB7.mjs.gz +0 -0
- package/dist/i18n/de.cjs +340 -105
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +340 -105
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +340 -105
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +340 -105
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +340 -105
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +340 -105
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +342 -107
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +342 -107
- 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 +762 -22
- 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 +754 -11
- 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 +739 -22
- 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 +3 -2
- package/dist/AiChatPanel-3YILWCBX.js.br +0 -0
- package/dist/AiChatPanel-3YILWCBX.js.gz +0 -0
- package/dist/AiChatPanel-X2MVL5UP.mjs.br +0 -0
- package/dist/AiChatPanel-X2MVL5UP.mjs.gz +0 -0
- package/dist/Model3DScene-G7P6ZAIO.js.gz +0 -0
- package/dist/Model3DScene-QFWI5CEE.mjs.br +0 -0
- package/dist/Model3DScene-QFWI5CEE.mjs.gz +0 -0
- package/dist/chunk-2BM4GBFZ.js.br +0 -0
- package/dist/chunk-2BM4GBFZ.js.gz +0 -0
- package/dist/chunk-5J6NW3YS.mjs.br +0 -0
- package/dist/chunk-5J6NW3YS.mjs.gz +0 -0
- package/dist/chunk-AQIXKTAT.js.br +0 -0
- package/dist/chunk-AQIXKTAT.js.gz +0 -0
- package/dist/chunk-E5OIDWHO.mjs.br +0 -0
- package/dist/chunk-E5OIDWHO.mjs.gz +0 -0
- package/dist/chunk-FYAOOACZ.js.br +0 -0
- package/dist/chunk-FYAOOACZ.js.gz +0 -0
- package/dist/chunk-OECUSL2B.mjs.br +0 -0
- package/dist/chunk-OECUSL2B.mjs.gz +0 -0
- package/dist/chunk-QLDHUKH2.mjs.br +0 -0
- package/dist/chunk-QLDHUKH2.mjs.gz +0 -0
- package/dist/chunk-SR7ETIBF.js.br +0 -0
- package/dist/chunk-SR7ETIBF.js.gz +0 -0
- package/dist/chunk-UBYFLXAU.mjs.br +0 -0
- package/dist/chunk-UBYFLXAU.mjs.gz +0 -0
- package/dist/chunk-UIAU3NR2.js.br +0 -0
- package/dist/chunk-UIAU3NR2.js.gz +0 -0
- package/dist/chunk-VF4RA27Q.js.br +0 -0
- package/dist/chunk-VF4RA27Q.js.gz +0 -0
- package/dist/chunk-WIEBQGQI.mjs.br +0 -0
- package/dist/chunk-WIEBQGQI.mjs.gz +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkYWAFJZ23_js = require('./chunk-YWAFJZ23.js');
|
|
4
|
+
var chunkKPKO2ELT_js = require('./chunk-KPKO2ELT.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
|
-
var
|
|
7
|
+
var React8 = require('react');
|
|
8
8
|
var lu = require('react-icons/lu');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
10
|
var reactI18next = require('react-i18next');
|
|
11
11
|
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var React8__default = /*#__PURE__*/_interopDefault(React8);
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkYWAFJZ23_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 chunkYWAFJZ23_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 = chunkYWAFJZ23_js.VIEWER_SHORTCUT_REFERENCE;
|
|
65
65
|
|
|
66
66
|
// src/viewer/constants/transitions-animations.ts
|
|
67
67
|
var ANIMATION_PRESET_OPTIONS = [
|
|
@@ -89,12 +89,12 @@ var GLYPH_COMPONENTS = {
|
|
|
89
89
|
plus: lu.LuPlus,
|
|
90
90
|
triangle: lu.LuTriangle
|
|
91
91
|
};
|
|
92
|
-
var SHAPE_PRESETS =
|
|
92
|
+
var SHAPE_PRESETS = chunkYWAFJZ23_js.SHAPE_PRESET_DEFS.map(
|
|
93
93
|
(def) => ({
|
|
94
94
|
type: def.type,
|
|
95
95
|
label: def.label,
|
|
96
96
|
i18nKey: def.i18nKey,
|
|
97
|
-
icon:
|
|
97
|
+
icon: React8__default.default.createElement(GLYPH_COMPONENTS[def.glyph], {
|
|
98
98
|
className: def.glyphClass ? `w-3.5 h-3.5 ${def.glyphClass}` : "w-3.5 h-3.5"
|
|
99
99
|
})
|
|
100
100
|
})
|
|
@@ -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 = chunkYWAFJZ23_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 (!chunkYWAFJZ23_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 (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunkYWAFJZ23_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 = chunkYWAFJZ23_js.getImageFitStyle(element);
|
|
246
|
+
const counterTransform = chunkYWAFJZ23_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 = chunkYWAFJZ23_js.hasShapeProperties(element) ? chunkYWAFJZ23_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 (!chunkYWAFJZ23_js.isImageLikeElement(element)) {
|
|
279
279
|
return void 0;
|
|
280
280
|
}
|
|
281
|
-
return
|
|
281
|
+
return chunkYWAFJZ23_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
282
282
|
}
|
|
283
283
|
function getImageTilingStyle2(element, nativeSize) {
|
|
284
|
-
return
|
|
284
|
+
return chunkYWAFJZ23_js.getImageTilingStyle(element, nativeSize);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -329,8 +329,8 @@ function buildTrimFragment(element) {
|
|
|
329
329
|
return `#t=${(start / 1e3).toFixed(3)}`;
|
|
330
330
|
}
|
|
331
331
|
function useMediaMetadataExtraction(mediaRef, element) {
|
|
332
|
-
const [metadata, setMetadata] =
|
|
333
|
-
|
|
332
|
+
const [metadata, setMetadata] = React8.useState(element.metadata);
|
|
333
|
+
React8.useEffect(() => {
|
|
334
334
|
const el = mediaRef.current;
|
|
335
335
|
if (!el) {
|
|
336
336
|
return;
|
|
@@ -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" } : chunkYWAFJZ23_js.getImageFitStyle(element),
|
|
417
417
|
controls: showTransport,
|
|
418
418
|
preload: "metadata",
|
|
419
419
|
playsInline: true,
|
|
@@ -466,28 +466,28 @@ function PresentationMediaController({
|
|
|
466
466
|
children
|
|
467
467
|
}) {
|
|
468
468
|
const { t } = reactI18next.useTranslation();
|
|
469
|
-
const mediaRef =
|
|
470
|
-
const [isMediaPlaying, setIsMediaPlaying] =
|
|
469
|
+
const mediaRef = React8.useRef(null);
|
|
470
|
+
const [isMediaPlaying, setIsMediaPlaying] = React8.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 } = chunkYWAFJZ23_js.mediaPlaybackAttributes({
|
|
474
474
|
loop: element.loop,
|
|
475
475
|
volume: element.volume,
|
|
476
476
|
playbackSpeed: element.playbackSpeed
|
|
477
477
|
});
|
|
478
|
-
|
|
478
|
+
React8.useEffect(() => {
|
|
479
479
|
const el = mediaRef.current;
|
|
480
480
|
if (el) {
|
|
481
481
|
el.volume = playbackVolume;
|
|
482
482
|
}
|
|
483
483
|
}, [playbackVolume]);
|
|
484
|
-
|
|
484
|
+
React8.useEffect(() => {
|
|
485
485
|
const el = mediaRef.current;
|
|
486
486
|
if (el) {
|
|
487
487
|
el.playbackRate = playbackRate;
|
|
488
488
|
}
|
|
489
489
|
}, [playbackRate]);
|
|
490
|
-
|
|
490
|
+
React8.useEffect(() => {
|
|
491
491
|
const el = mediaRef.current;
|
|
492
492
|
if (!el) {
|
|
493
493
|
return;
|
|
@@ -513,12 +513,12 @@ function PresentationMediaController({
|
|
|
513
513
|
el.removeEventListener("ended", handleEnded);
|
|
514
514
|
};
|
|
515
515
|
}, [onPlayStateChange]);
|
|
516
|
-
|
|
516
|
+
React8.useEffect(() => {
|
|
517
517
|
const el = mediaRef.current;
|
|
518
518
|
if (!el || !isPresentationMode) {
|
|
519
519
|
return;
|
|
520
520
|
}
|
|
521
|
-
return
|
|
521
|
+
return chunkYWAFJZ23_js.scheduleMediaTrimAndFade(el, {
|
|
522
522
|
trimStartMs: element.trimStartMs,
|
|
523
523
|
trimEndMs: element.trimEndMs,
|
|
524
524
|
fadeInDuration: element.fadeInDuration,
|
|
@@ -533,13 +533,13 @@ function PresentationMediaController({
|
|
|
533
533
|
element.fadeOutDuration,
|
|
534
534
|
playbackVolume
|
|
535
535
|
]);
|
|
536
|
-
|
|
536
|
+
React8.useEffect(() => {
|
|
537
537
|
if (!isPresentationMode || !shouldAutoPlay) {
|
|
538
538
|
return;
|
|
539
539
|
}
|
|
540
540
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
541
541
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
542
|
-
if (
|
|
542
|
+
if (chunkYWAFJZ23_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
@@ -561,17 +561,17 @@ function PresentationMediaController({
|
|
|
561
561
|
transition: "opacity 0.3s ease",
|
|
562
562
|
pointerEvents: isMediaPlaying ? "auto" : "none"
|
|
563
563
|
} : {};
|
|
564
|
-
const handleStopFullScreen =
|
|
564
|
+
const handleStopFullScreen = React8.useCallback(() => {
|
|
565
565
|
const el = mediaRef.current;
|
|
566
566
|
if (el && !el.paused) {
|
|
567
567
|
el.pause();
|
|
568
568
|
}
|
|
569
569
|
}, []);
|
|
570
|
-
const noopOnPlay =
|
|
570
|
+
const noopOnPlay = React8.useCallback(() => {
|
|
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
|
+
chunkYWAFJZ23_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 : chunkKPKO2ELT_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
|
+
...{ [chunkYWAFJZ23_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
628
628
|
children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
630
630
|
FallbackIcon,
|
|
631
631
|
{
|
|
632
|
-
paths:
|
|
632
|
+
paths: chunkYWAFJZ23_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(chunkYWAFJZ23_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
|
+
...{ [chunkYWAFJZ23_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
655
655
|
children: [
|
|
656
656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
657
657
|
FallbackIcon,
|
|
658
658
|
{
|
|
659
|
-
paths:
|
|
659
|
+
paths: chunkYWAFJZ23_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(chunkYWAFJZ23_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 = chunkYWAFJZ23_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 ? chunkKPKO2ELT_js.translationsEn["pptx.media.posterAlt"] : chunkKPKO2ELT_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
685
685
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
686
|
-
style:
|
|
686
|
+
style: chunkYWAFJZ23_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: chunkKPKO2ELT_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 = chunkYWAFJZ23_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 = chunkYWAFJZ23_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: chunkKPKO2ELT_js.translationsEn["pptx.media.onlineVideoTitle"],
|
|
724
724
|
className: "w-full h-full border-0 pointer-events-auto",
|
|
725
|
-
allow:
|
|
725
|
+
allow: chunkYWAFJZ23_js.ONLINE_VIDEO_IFRAME_ALLOW,
|
|
726
726
|
allowFullScreen: true,
|
|
727
|
-
sandbox:
|
|
727
|
+
sandbox: chunkYWAFJZ23_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: chunkKPKO2ELT_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 chunkYWAFJZ23_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 (!chunkYWAFJZ23_js.hasTextProperties(element)) {
|
|
807
807
|
return {};
|
|
808
808
|
}
|
|
809
|
-
const writingMode =
|
|
810
|
-
const textOrientation =
|
|
811
|
-
const verticalDirection =
|
|
809
|
+
const writingMode = chunkYWAFJZ23_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
810
|
+
const textOrientation = chunkYWAFJZ23_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
811
|
+
const verticalDirection = chunkYWAFJZ23_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 = chunkYWAFJZ23_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 = chunkYWAFJZ23_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 chunkYWAFJZ23_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}${chunkYWAFJZ23_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 = chunkYWAFJZ23_js.buildTextBuildSpec(
|
|
1043
1043
|
elementId,
|
|
1044
1044
|
paraIndex,
|
|
1045
1045
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1051,13 +1051,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1051
1051
|
return spec.spans.map((span, index) => {
|
|
1052
1052
|
const content = span.style && renderPiece ? renderPiece(span.style, span.text, String(index)) : span.text;
|
|
1053
1053
|
if (!span.animId) {
|
|
1054
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1054
|
+
return /* @__PURE__ */ jsxRuntime.jsx(React8__default.default.Fragment, { children: content }, `ws-${index}`);
|
|
1055
1055
|
}
|
|
1056
1056
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1057
1057
|
"span",
|
|
1058
1058
|
{
|
|
1059
1059
|
"data-anim-id": span.animId,
|
|
1060
|
-
style:
|
|
1060
|
+
style: chunkYWAFJZ23_js.textBuildSpanStyle(span),
|
|
1061
1061
|
children: content
|
|
1062
1062
|
},
|
|
1063
1063
|
span.animId
|
|
@@ -1068,28 +1068,29 @@ 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 = chunkYWAFJZ23_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 ? chunkYWAFJZ23_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
|
|
1078
1078
|
} : void 0;
|
|
1079
1079
|
return pieces.map((piece, i) => {
|
|
1080
1080
|
const key = `${keyPrefix}-u${i}`;
|
|
1081
|
+
const following = chunkYWAFJZ23_js.followingText(pieces, i, metric?.following);
|
|
1081
1082
|
if (!piece.underline) {
|
|
1082
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1083
|
+
return /* @__PURE__ */ jsxRuntime.jsx(React8__default.default.Fragment, { children: inner(piece.text, key, gapMetric && { ...gapMetric, following }) }, key);
|
|
1083
1084
|
}
|
|
1084
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: wordDecoration, children: inner(piece.text, key, metric) }, key);
|
|
1085
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: wordDecoration, children: inner(piece.text, key, metric && { ...metric, following }) }, key);
|
|
1085
1086
|
});
|
|
1086
1087
|
}
|
|
1087
1088
|
function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily, isUnderlineWords, wordDecoration, metric) {
|
|
1088
|
-
return (text, key) => renderUnderlineWords(
|
|
1089
|
+
return (text, key, following) => renderUnderlineWords(
|
|
1089
1090
|
text,
|
|
1090
1091
|
isUnderlineWords,
|
|
1091
1092
|
wordDecoration,
|
|
1092
|
-
metric,
|
|
1093
|
+
metric && { ...metric, following },
|
|
1093
1094
|
key,
|
|
1094
1095
|
(subText, subKey, subMetric) => renderMetricPieces(
|
|
1095
1096
|
subText,
|
|
@@ -1107,7 +1108,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
|
|
|
1107
1108
|
);
|
|
1108
1109
|
}
|
|
1109
1110
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
|
|
1110
|
-
const [lineLayout] =
|
|
1111
|
+
const [lineLayout] = chunkYWAFJZ23_js.buildRunTabLines(
|
|
1111
1112
|
line,
|
|
1112
1113
|
ctx,
|
|
1113
1114
|
nestedStyle,
|
|
@@ -1116,17 +1117,51 @@ function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underl
|
|
|
1116
1117
|
);
|
|
1117
1118
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", whiteSpace: "nowrap" }, children: lineLayout.pieces.map((piece, i) => {
|
|
1118
1119
|
const key = `${keyPrefix}-tab-${i}`;
|
|
1119
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1120
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React8__default.default.Fragment, { children: [
|
|
1120
1121
|
piece.leaderStyle ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", style: piece.leaderStyle, children: piece.leaderText }) : null,
|
|
1121
1122
|
piece.words ? piece.words.map((word, w) => /* @__PURE__ */ jsxRuntime.jsx("span", { style: word.style, children: renderPiece(word.text, `${key}-w${w}`) }, `${key}-w${w}`)) : /* @__PURE__ */ jsxRuntime.jsx("span", { style: piece.style, children: renderPiece(piece.text, key) })
|
|
1122
1123
|
] }, key);
|
|
1123
1124
|
}) });
|
|
1124
1125
|
}
|
|
1126
|
+
function renderEastAsianPieces(text, metric, keyPrefix, inner, baseStyle, following) {
|
|
1127
|
+
const parts = chunkYWAFJZ23_js.splitEastAsianBreaks(text, metric.eastAsian, metric.font, following);
|
|
1128
|
+
if (parts.length === 1 && !parts[0].style) {
|
|
1129
|
+
return inner(parts[0].text, keyPrefix);
|
|
1130
|
+
}
|
|
1131
|
+
return parts.map((part, i) => {
|
|
1132
|
+
const key = `${keyPrefix}-e${i}`;
|
|
1133
|
+
return part.style ? /* @__PURE__ */ jsxRuntime.jsx("span", { style: { ...baseStyle ?? metric.nestedStyle, ...part.style }, children: inner(part.text, key) }, key) : /* @__PURE__ */ jsxRuntime.jsx(React8__default.default.Fragment, { children: inner(part.text, key) }, key);
|
|
1134
|
+
});
|
|
1135
|
+
}
|
|
1136
|
+
function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
1137
|
+
if (!metric || !text) {
|
|
1138
|
+
return inner(text, keyPrefix);
|
|
1139
|
+
}
|
|
1140
|
+
const pieces = chunkYWAFJZ23_js.splitRunForMetrics(text, metric.font);
|
|
1141
|
+
if (pieces.length <= 1) {
|
|
1142
|
+
return renderEastAsianPieces(text, metric, keyPrefix, inner, void 0, metric.following);
|
|
1143
|
+
}
|
|
1144
|
+
return pieces.map((piece, i) => {
|
|
1145
|
+
const key = `${keyPrefix}-w${i}`;
|
|
1146
|
+
const style = {
|
|
1147
|
+
...metric.nestedStyle,
|
|
1148
|
+
letterSpacing: chunkYWAFJZ23_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1149
|
+
};
|
|
1150
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { style, children: renderEastAsianPieces(
|
|
1151
|
+
piece.text,
|
|
1152
|
+
metric,
|
|
1153
|
+
key,
|
|
1154
|
+
inner,
|
|
1155
|
+
style,
|
|
1156
|
+
chunkYWAFJZ23_js.followingText(pieces, i, metric.following)
|
|
1157
|
+
) }, key);
|
|
1158
|
+
});
|
|
1159
|
+
}
|
|
1125
1160
|
function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFamily, keyPrefix, nestedStyle) {
|
|
1126
1161
|
if (!needsScriptFonts || !text) {
|
|
1127
1162
|
return text;
|
|
1128
1163
|
}
|
|
1129
|
-
const pieces =
|
|
1164
|
+
const pieces = chunkYWAFJZ23_js.splitRunByScriptFont(
|
|
1130
1165
|
text,
|
|
1131
1166
|
scriptFonts,
|
|
1132
1167
|
baseFontFamily,
|
|
@@ -1136,29 +1171,9 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1136
1171
|
return text;
|
|
1137
1172
|
}
|
|
1138
1173
|
return pieces.map(
|
|
1139
|
-
(piece, i) => piece.style ? /* @__PURE__ */ jsxRuntime.jsx("span", { style: piece.style, children: piece.text }, `${keyPrefix}-r${i}`) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1174
|
+
(piece, i) => piece.style ? /* @__PURE__ */ jsxRuntime.jsx("span", { style: piece.style, children: piece.text }, `${keyPrefix}-r${i}`) : /* @__PURE__ */ jsxRuntime.jsx(React8__default.default.Fragment, { children: piece.text }, `${keyPrefix}-r${i}`)
|
|
1140
1175
|
);
|
|
1141
1176
|
}
|
|
1142
|
-
function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
1143
|
-
if (!metric || !text) {
|
|
1144
|
-
return inner(text, keyPrefix);
|
|
1145
|
-
}
|
|
1146
|
-
const pieces = chunkAQIXKTAT_js.splitRunForMetrics(text, metric.font);
|
|
1147
|
-
if (pieces.length <= 1) {
|
|
1148
|
-
return inner(text, keyPrefix);
|
|
1149
|
-
}
|
|
1150
|
-
return pieces.map((piece, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1151
|
-
"span",
|
|
1152
|
-
{
|
|
1153
|
-
style: {
|
|
1154
|
-
...metric.nestedStyle,
|
|
1155
|
-
letterSpacing: chunkAQIXKTAT_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1156
|
-
},
|
|
1157
|
-
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1158
|
-
},
|
|
1159
|
-
`${keyPrefix}-w${i}`
|
|
1160
|
-
));
|
|
1161
|
-
}
|
|
1162
1177
|
function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsScriptFonts, scriptFonts, baseFontFamily, findHighlights, tabContext, metric, isUnderlineWords = false, wordDecoration) {
|
|
1163
1178
|
const segHl = findHighlights?.get(segmentIndex);
|
|
1164
1179
|
const renderLeaf = makeSegmentPieceRenderer(
|
|
@@ -1172,7 +1187,7 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1172
1187
|
if (!segHl || segHl.length === 0) {
|
|
1173
1188
|
return lines.map((line, lineIndex) => {
|
|
1174
1189
|
const lineKey = `${elementId}-seg-${segmentIndex}-line-${lineIndex}`;
|
|
1175
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1190
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React8__default.default.Fragment, { children: [
|
|
1176
1191
|
tabContext && line.includes(" ") ? renderTabbedLine(
|
|
1177
1192
|
line,
|
|
1178
1193
|
tabContext,
|
|
@@ -1180,7 +1195,7 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1180
1195
|
renderLeaf,
|
|
1181
1196
|
metric?.nestedStyle,
|
|
1182
1197
|
isUnderlineWords
|
|
1183
|
-
) : renderLeaf(line, lineKey),
|
|
1198
|
+
) : renderLeaf(line, lineKey, lineIndex < lines.length - 1 ? "\n" : metric?.following),
|
|
1184
1199
|
lineIndex < lines.length - 1 ? /* @__PURE__ */ jsxRuntime.jsx("br", {}) : null
|
|
1185
1200
|
] }, lineKey);
|
|
1186
1201
|
});
|
|
@@ -1221,15 +1236,15 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1221
1236
|
color: "inherit",
|
|
1222
1237
|
borderRadius: 2
|
|
1223
1238
|
},
|
|
1224
|
-
children: renderLeaf(chunk.text, chunkKey)
|
|
1239
|
+
children: renderLeaf(chunk.text, chunkKey, chunkYWAFJZ23_js.followingText(chunks, ci, metric?.following))
|
|
1225
1240
|
},
|
|
1226
1241
|
chunkKey
|
|
1227
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1242
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(React8__default.default.Fragment, { children: renderLeaf(chunk.text, chunkKey, chunkYWAFJZ23_js.followingText(chunks, ci, metric?.following)) }, chunkKey);
|
|
1228
1243
|
});
|
|
1229
1244
|
}
|
|
1230
1245
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber, fontSize) {
|
|
1231
|
-
const mathml =
|
|
1232
|
-
const safeMathml = mathml ?
|
|
1246
|
+
const mathml = chunkYWAFJZ23_js.convertOmmlToMathMl(equationXml);
|
|
1247
|
+
const safeMathml = mathml ? chunkYWAFJZ23_js.sanitizeMathMl(mathml) : "";
|
|
1233
1248
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1234
1249
|
"span",
|
|
1235
1250
|
{
|
|
@@ -1239,7 +1254,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1239
1254
|
},
|
|
1240
1255
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1241
1256
|
}
|
|
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:
|
|
1257
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkKPKO2ELT_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1243
1258
|
if (equationNumber) {
|
|
1244
1259
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1245
1260
|
"span",
|
|
@@ -1369,7 +1384,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1369
1384
|
const segmentStyle = segment?.style ?? {};
|
|
1370
1385
|
const textValue = run.text;
|
|
1371
1386
|
const lines = textValue.split("\n");
|
|
1372
|
-
const resolvedSegmentColor =
|
|
1387
|
+
const resolvedSegmentColor = chunkYWAFJZ23_js.normalizeHexColor(
|
|
1373
1388
|
segmentStyle.color || element.textStyle?.color,
|
|
1374
1389
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1375
1390
|
);
|
|
@@ -1377,42 +1392,48 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1377
1392
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1378
1393
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1379
1394
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1380
|
-
const baseFontSize =
|
|
1395
|
+
const baseFontSize = chunkYWAFJZ23_js.scaleFontSizeForAutoFit(
|
|
1381
1396
|
rawFontSize,
|
|
1382
|
-
|
|
1397
|
+
chunkYWAFJZ23_js.resolveAutoFitFontScale(element.textStyle)
|
|
1383
1398
|
);
|
|
1384
1399
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1385
|
-
const fontKerning =
|
|
1400
|
+
const fontKerning = chunkYWAFJZ23_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1386
1401
|
const scriptFallbackWins = Boolean(
|
|
1387
1402
|
segmentStyle.scriptFallbackFont && segmentStyle.fontFamilyIsCascadeDefault
|
|
1388
1403
|
);
|
|
1389
1404
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1390
|
-
const baseFontFamily = scriptFallbackWins ?
|
|
1405
|
+
const baseFontFamily = scriptFallbackWins ? chunkYWAFJZ23_js.getSubstituteFontFamily(segmentStyle.scriptFallbackFont) : rawFontFamily ? chunkYWAFJZ23_js.getSubstituteFontFamily(
|
|
1391
1406
|
rawFontFamily,
|
|
1392
|
-
|
|
1407
|
+
chunkYWAFJZ23_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1393
1408
|
) : DEFAULT_FONT_FAMILY2;
|
|
1394
|
-
const scriptFonts =
|
|
1395
|
-
const needsScriptFonts =
|
|
1396
|
-
const authoredLetterSpacing =
|
|
1409
|
+
const scriptFonts = chunkYWAFJZ23_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1410
|
+
const needsScriptFonts = chunkYWAFJZ23_js.hasDistinctScriptFonts(scriptFonts);
|
|
1411
|
+
const authoredLetterSpacing = chunkYWAFJZ23_js.authoredLetterSpacingPx(segmentStyle);
|
|
1397
1412
|
const metricFont = {
|
|
1398
1413
|
fontFamily: baseFontFamily,
|
|
1399
1414
|
fontSizePx: baseFontSize * baselineFontScale,
|
|
1400
1415
|
bold: Boolean(segmentStyle.bold),
|
|
1401
1416
|
italic: Boolean(segmentStyle.italic)
|
|
1402
1417
|
};
|
|
1403
|
-
const nestedStyle =
|
|
1404
|
-
const metricContext = {
|
|
1418
|
+
const nestedStyle = chunkYWAFJZ23_js.nestedTextDecorationStyle(run.style);
|
|
1419
|
+
const metricContext = {
|
|
1420
|
+
font: metricFont,
|
|
1421
|
+
authoredPx: authoredLetterSpacing,
|
|
1422
|
+
nestedStyle,
|
|
1423
|
+
eastAsian: ctx.eastAsianBreaks,
|
|
1424
|
+
following: ctx.eastAsianFollowing
|
|
1425
|
+
};
|
|
1405
1426
|
const spanStyle = { ...run.style };
|
|
1406
1427
|
spanStyle.color = resolvedSegmentColor;
|
|
1407
1428
|
spanStyle.fontSize = baseFontSize * baselineFontScale;
|
|
1408
1429
|
spanStyle.fontFamily = baseFontFamily;
|
|
1409
1430
|
spanStyle.verticalAlign = baselineShift;
|
|
1410
1431
|
spanStyle.fontKerning = fontKerning;
|
|
1411
|
-
spanStyle.letterSpacing =
|
|
1432
|
+
spanStyle.letterSpacing = chunkYWAFJZ23_js.pieceLetterSpacing(
|
|
1412
1433
|
authoredLetterSpacing,
|
|
1413
|
-
|
|
1434
|
+
chunkYWAFJZ23_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1414
1435
|
);
|
|
1415
|
-
const hollow =
|
|
1436
|
+
const hollow = chunkYWAFJZ23_js.hollowTextFillStyle(segmentStyle, {
|
|
1416
1437
|
color: resolvedSegmentColor,
|
|
1417
1438
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1418
1439
|
});
|
|
@@ -1424,10 +1445,10 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1424
1445
|
spanStyle.direction = runRtl ? "rtl" : "ltr";
|
|
1425
1446
|
spanStyle.unicodeBidi = runRtl !== ctx.paragraphRtl ? "bidi-override" : "embed";
|
|
1426
1447
|
}
|
|
1427
|
-
const isUnderlineWords =
|
|
1448
|
+
const isUnderlineWords = chunkYWAFJZ23_js.splitsUnderlineIntoWords(segmentStyle);
|
|
1428
1449
|
const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
|
|
1429
1450
|
if (isUnderlineWords) {
|
|
1430
|
-
const stripped =
|
|
1451
|
+
const stripped = chunkYWAFJZ23_js.stripUnderlineDecoration(spanStyle);
|
|
1431
1452
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1432
1453
|
delete spanStyle.textDecorationStyle;
|
|
1433
1454
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1443,7 +1464,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1443
1464
|
scriptFonts,
|
|
1444
1465
|
baseFontFamily,
|
|
1445
1466
|
findHighlights,
|
|
1446
|
-
|
|
1467
|
+
chunkYWAFJZ23_js.buildTabContext(
|
|
1447
1468
|
element.textStyle?.tabStops,
|
|
1448
1469
|
element.textStyle?.defaultTabSize,
|
|
1449
1470
|
baseFontSize,
|
|
@@ -1476,29 +1497,29 @@ function renderSeededListRun(seed, runs, segments, context) {
|
|
|
1476
1497
|
const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
|
|
1477
1498
|
const resolvedSegment = {
|
|
1478
1499
|
...segment,
|
|
1479
|
-
style:
|
|
1500
|
+
style: chunkYWAFJZ23_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
|
|
1480
1501
|
};
|
|
1481
|
-
const decorationCss =
|
|
1502
|
+
const decorationCss = chunkYWAFJZ23_js.segmentStyleToCss(
|
|
1482
1503
|
resolvedSegment,
|
|
1483
|
-
|
|
1504
|
+
chunkYWAFJZ23_js.resolveAutoFitFontScale(context.element.textStyle)
|
|
1484
1505
|
);
|
|
1485
|
-
|
|
1486
|
-
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...
|
|
1506
|
+
chunkYWAFJZ23_js.applyUnderlineVariant(decorationCss, resolvedSegment);
|
|
1507
|
+
const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkYWAFJZ23_js.nestedTextDecorationStyle(decorationCss) } } : {
|
|
1487
1508
|
text: seed.text,
|
|
1488
1509
|
style: decorationCss,
|
|
1489
1510
|
segmentIndex: seed.segmentIndex
|
|
1490
1511
|
};
|
|
1491
1512
|
const rendered = renderParagraphRun(run, resolvedSegment, context);
|
|
1492
|
-
if (!
|
|
1513
|
+
if (!React8__default.default.isValidElement(rendered)) {
|
|
1493
1514
|
return rendered;
|
|
1494
1515
|
}
|
|
1495
|
-
return
|
|
1516
|
+
return React8__default.default.cloneElement(rendered, {
|
|
1496
1517
|
"data-pptx-list-run": seed.token,
|
|
1497
1518
|
...seed.text === "" ? { children: /* @__PURE__ */ jsxRuntime.jsx("br", {}) } : {}
|
|
1498
1519
|
});
|
|
1499
1520
|
}
|
|
1500
1521
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
|
|
1501
|
-
if (!
|
|
1522
|
+
if (!chunkYWAFJZ23_js.hasTextProperties(element)) {
|
|
1502
1523
|
return emptyFallback || null;
|
|
1503
1524
|
}
|
|
1504
1525
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1508,12 +1529,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1508
1529
|
}
|
|
1509
1530
|
return element.text || emptyFallback || "";
|
|
1510
1531
|
}
|
|
1511
|
-
const paragraphs =
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
inlineListSeed ? { preserveTrailingEmpty: true } : void 0
|
|
1516
|
-
);
|
|
1532
|
+
const paragraphs = chunkYWAFJZ23_js.buildParagraphs(element, fieldContext, segmentOverrides, {
|
|
1533
|
+
preserveTrailingEmpty: inlineListSeed ? true : void 0,
|
|
1534
|
+
eastAsianRunPieces: false
|
|
1535
|
+
});
|
|
1517
1536
|
const ctx = {
|
|
1518
1537
|
element,
|
|
1519
1538
|
fallbackColor,
|
|
@@ -1547,10 +1566,19 @@ function joinRunsBySegment(runs) {
|
|
|
1547
1566
|
}
|
|
1548
1567
|
function renderParagraph(para, paraIndex, paraCount, segments, ctx, subElementAnimStates, inlineListSeed) {
|
|
1549
1568
|
const element = ctx.element;
|
|
1550
|
-
const runCtx = {
|
|
1569
|
+
const runCtx = {
|
|
1570
|
+
...ctx,
|
|
1571
|
+
paragraphRtl: para.rtl,
|
|
1572
|
+
eastAsianBreaks: para.eastAsianBreaks
|
|
1573
|
+
};
|
|
1551
1574
|
const runs = joinRunsBySegment(para.runs);
|
|
1552
1575
|
const listParagraph = inlineListSeed?.paragraphs[paraIndex];
|
|
1553
|
-
const renderedRuns = listParagraph ? listParagraph.runs.map((run) => renderSeededListRun(run, runs, segments, runCtx)) : runs.map(
|
|
1576
|
+
const renderedRuns = listParagraph ? listParagraph.runs.map((run) => renderSeededListRun(run, runs, segments, runCtx)) : runs.map(
|
|
1577
|
+
(run, i) => renderParagraphRun(run, segments[run.segmentIndex ?? -1], {
|
|
1578
|
+
...runCtx,
|
|
1579
|
+
eastAsianFollowing: para.eastAsianBreaks ? chunkYWAFJZ23_js.followingText(runs, i) : void 0
|
|
1580
|
+
})
|
|
1581
|
+
);
|
|
1554
1582
|
const paraStyle = {
|
|
1555
1583
|
// `text-align`, BiDi `direction` / `unicode-bidi` and the kinsoku
|
|
1556
1584
|
// line-break rules, resolved by shared from this paragraph's own `a:pPr`.
|
|
@@ -1597,7 +1625,7 @@ function renderParagraph(para, paraIndex, paraCount, segments, ctx, subElementAn
|
|
|
1597
1625
|
);
|
|
1598
1626
|
const needsWrapper = Boolean(listParagraph) || Object.keys(paraStyle).length > 0 || marker !== null;
|
|
1599
1627
|
if (!needsWrapper) {
|
|
1600
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1628
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React8__default.default.Fragment, { children: [
|
|
1601
1629
|
wrappedContent,
|
|
1602
1630
|
paraIndex < paraCount - 1 ? /* @__PURE__ */ jsxRuntime.jsx("br", {}) : null
|
|
1603
1631
|
] }, `${element.id}-para-${paraIndex}`);
|
|
@@ -1654,13 +1682,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1654
1682
|
);
|
|
1655
1683
|
}
|
|
1656
1684
|
function getDuotoneColors(element) {
|
|
1657
|
-
if (!
|
|
1685
|
+
if (!chunkYWAFJZ23_js.isImageLikeElement(element)) {
|
|
1658
1686
|
return void 0;
|
|
1659
1687
|
}
|
|
1660
1688
|
return element.imageEffects?.duotone;
|
|
1661
1689
|
}
|
|
1662
1690
|
function buildLineShadowCss(element) {
|
|
1663
|
-
if (!
|
|
1691
|
+
if (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
1664
1692
|
return void 0;
|
|
1665
1693
|
}
|
|
1666
1694
|
const ss = element.shapeStyle;
|
|
@@ -1671,13 +1699,13 @@ function buildLineShadowCss(element) {
|
|
|
1671
1699
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1672
1700
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1673
1701
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1674
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1675
|
-
|
|
1702
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkYWAFJZ23_js.colorWithOpacity(
|
|
1703
|
+
chunkYWAFJZ23_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1676
1704
|
opacity
|
|
1677
1705
|
)}`;
|
|
1678
1706
|
}
|
|
1679
1707
|
function buildLineGlowFilter(element) {
|
|
1680
|
-
if (!
|
|
1708
|
+
if (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
1681
1709
|
return void 0;
|
|
1682
1710
|
}
|
|
1683
1711
|
const ss = element.shapeStyle;
|
|
@@ -1686,22 +1714,22 @@ function buildLineGlowFilter(element) {
|
|
|
1686
1714
|
}
|
|
1687
1715
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1688
1716
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1689
|
-
const glowCol =
|
|
1717
|
+
const glowCol = chunkYWAFJZ23_js.colorWithOpacity(chunkYWAFJZ23_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1690
1718
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1691
1719
|
}
|
|
1692
1720
|
function getDagDuotoneFilterId(elementId) {
|
|
1693
1721
|
return `dag-duotone-${elementId}`;
|
|
1694
1722
|
}
|
|
1695
1723
|
function hasDagDuotoneEffect(element) {
|
|
1696
|
-
if (!
|
|
1724
|
+
if (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
1697
1725
|
return false;
|
|
1698
1726
|
}
|
|
1699
1727
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1700
1728
|
}
|
|
1701
1729
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1702
1730
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1703
|
-
const c1 =
|
|
1704
|
-
const c2 =
|
|
1731
|
+
const c1 = chunkYWAFJZ23_js.hexToRgbUnit(color1);
|
|
1732
|
+
const c2 = chunkYWAFJZ23_js.hexToRgbUnit(color2);
|
|
1705
1733
|
const grayscaleMatrix = [
|
|
1706
1734
|
0.2126,
|
|
1707
1735
|
0.7152,
|
|
@@ -1745,7 +1773,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1745
1773
|
|
|
1746
1774
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1747
1775
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1748
|
-
return
|
|
1776
|
+
return chunkYWAFJZ23_js.build3DExtrusionData(
|
|
1749
1777
|
shape3d,
|
|
1750
1778
|
scene3d,
|
|
1751
1779
|
fillColor,
|
|
@@ -1754,7 +1782,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1754
1782
|
);
|
|
1755
1783
|
}
|
|
1756
1784
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
|
|
1757
|
-
|
|
1785
|
+
chunkYWAFJZ23_js.apply3dEffects(
|
|
1758
1786
|
base,
|
|
1759
1787
|
scene3d,
|
|
1760
1788
|
shape3d,
|
|
@@ -1769,11 +1797,11 @@ function rendersCustomVectorPath(element) {
|
|
|
1769
1797
|
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;
|
|
1770
1798
|
}
|
|
1771
1799
|
function rendersWedgeCalloutVector(element) {
|
|
1772
|
-
return element.type === "shape" &&
|
|
1800
|
+
return element.type === "shape" && chunkYWAFJZ23_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1773
1801
|
}
|
|
1774
1802
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1775
1803
|
if (element.type === "group") {
|
|
1776
|
-
const fx2 =
|
|
1804
|
+
const fx2 = chunkYWAFJZ23_js.getComputedEffectStyle(element);
|
|
1777
1805
|
const groupStyle = {};
|
|
1778
1806
|
if (fx2.filter) {
|
|
1779
1807
|
groupStyle.filter = fx2.filter;
|
|
@@ -1783,13 +1811,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1783
1811
|
}
|
|
1784
1812
|
return groupStyle;
|
|
1785
1813
|
}
|
|
1786
|
-
if (!
|
|
1814
|
+
if (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
1787
1815
|
return {};
|
|
1788
1816
|
}
|
|
1789
1817
|
const ss = element.shapeStyle;
|
|
1790
|
-
const fill = animatesFill ? void 0 :
|
|
1791
|
-
const fx =
|
|
1792
|
-
const stroke =
|
|
1818
|
+
const fill = animatesFill ? void 0 : chunkYWAFJZ23_js.getComputedFillStyle(element, parentGroupFill);
|
|
1819
|
+
const fx = chunkYWAFJZ23_js.getComputedEffectStyle(element);
|
|
1820
|
+
const stroke = chunkYWAFJZ23_js.getComputedStrokeStyle(element);
|
|
1793
1821
|
const base = {
|
|
1794
1822
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1795
1823
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1828,7 +1856,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1828
1856
|
};
|
|
1829
1857
|
Object.assign(
|
|
1830
1858
|
base,
|
|
1831
|
-
|
|
1859
|
+
chunkYWAFJZ23_js.getAnimationColorBaseStyle(element, {
|
|
1832
1860
|
animatesFill,
|
|
1833
1861
|
animatesStroke,
|
|
1834
1862
|
parentGroupFill
|
|
@@ -1850,7 +1878,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1850
1878
|
},
|
|
1851
1879
|
element.id
|
|
1852
1880
|
);
|
|
1853
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1881
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkYWAFJZ23_js.isStrokeOnlyPresetElement(element)) {
|
|
1854
1882
|
base.backgroundColor = "transparent";
|
|
1855
1883
|
base.backgroundImage = void 0;
|
|
1856
1884
|
base.borderWidth = void 0;
|
|
@@ -1864,7 +1892,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1864
1892
|
if (rendersWedgeCalloutVector(element)) {
|
|
1865
1893
|
return base;
|
|
1866
1894
|
}
|
|
1867
|
-
const geometry =
|
|
1895
|
+
const geometry = chunkYWAFJZ23_js.resolveShapeGeometry(element);
|
|
1868
1896
|
switch (geometry.kind) {
|
|
1869
1897
|
case "bare":
|
|
1870
1898
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1888,7 +1916,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1888
1916
|
}
|
|
1889
1917
|
}
|
|
1890
1918
|
function getConnectorPathGeometry2(element) {
|
|
1891
|
-
return
|
|
1919
|
+
return chunkYWAFJZ23_js.getConnectorPathGeometry(element);
|
|
1892
1920
|
}
|
|
1893
1921
|
var ARROW_SIZE_SCALE = {
|
|
1894
1922
|
sm: 0.6,
|
|
@@ -1957,11 +1985,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1957
1985
|
strokePaint,
|
|
1958
1986
|
strokeWidth,
|
|
1959
1987
|
dashArray,
|
|
1960
|
-
lineCap:
|
|
1988
|
+
lineCap: chunkYWAFJZ23_js.svgLineCap(shapeStyle?.lineCap),
|
|
1961
1989
|
lineJoin,
|
|
1962
1990
|
miterLimit,
|
|
1963
|
-
offsets:
|
|
1964
|
-
widths:
|
|
1991
|
+
offsets: chunkYWAFJZ23_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1992
|
+
widths: chunkYWAFJZ23_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1965
1993
|
};
|
|
1966
1994
|
}
|
|
1967
1995
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1984,12 +2012,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1984
2012
|
}
|
|
1985
2013
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1986
2014
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1987
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2015
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkYWAFJZ23_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1988
2016
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1989
|
-
const gradientPaint = gradient ?
|
|
2017
|
+
const gradientPaint = gradient ? chunkYWAFJZ23_js.svgGradientFillRef(gradient) : void 0;
|
|
1990
2018
|
const nodes = [];
|
|
1991
2019
|
if (subpaths && needsPerSubpath) {
|
|
1992
|
-
const paints =
|
|
2020
|
+
const paints = chunkYWAFJZ23_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1993
2021
|
paints.forEach((paint, idx) => {
|
|
1994
2022
|
if (paint.fill !== "none") {
|
|
1995
2023
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2018,7 +2046,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2018
2046
|
"path",
|
|
2019
2047
|
{
|
|
2020
2048
|
d: pathData,
|
|
2021
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2049
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkYWAFJZ23_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2022
2050
|
stroke: "none",
|
|
2023
2051
|
vectorEffect: "non-scaling-stroke"
|
|
2024
2052
|
},
|
|
@@ -2044,14 +2072,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2044
2072
|
);
|
|
2045
2073
|
}
|
|
2046
2074
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2047
|
-
if (!
|
|
2075
|
+
if (!chunkYWAFJZ23_js.hasShapeProperties(element)) {
|
|
2048
2076
|
return null;
|
|
2049
2077
|
}
|
|
2050
2078
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2051
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2052
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2053
|
-
const dashType =
|
|
2054
|
-
const dashArray =
|
|
2079
|
+
const fillPaint = animatesFill ? "inherit" : chunkYWAFJZ23_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2080
|
+
const strokePaint = animatesStroke ? "inherit" : chunkYWAFJZ23_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2081
|
+
const dashType = chunkYWAFJZ23_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2082
|
+
const dashArray = chunkYWAFJZ23_js.getSvgStrokeDasharray(
|
|
2055
2083
|
dashType,
|
|
2056
2084
|
Math.max(strokeWidth, 1),
|
|
2057
2085
|
element.shapeStyle?.customDashSegments
|
|
@@ -2132,13 +2160,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2132
2160
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2133
2161
|
// without this the shape fell back to the parser's representative solid
|
|
2134
2162
|
// and lost every fade (issue #132).
|
|
2135
|
-
|
|
2163
|
+
chunkYWAFJZ23_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2136
2164
|
);
|
|
2137
2165
|
}
|
|
2138
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2166
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkYWAFJZ23_js.buildStrokeOutline(element)) {
|
|
2139
2167
|
const width = Math.max(element.width, 1);
|
|
2140
2168
|
const height = Math.max(element.height, 1);
|
|
2141
|
-
const geometry =
|
|
2169
|
+
const geometry = chunkYWAFJZ23_js.getPresetShapeVectorGeometry(
|
|
2142
2170
|
element.shapeType || "rect",
|
|
2143
2171
|
width,
|
|
2144
2172
|
height,
|
|
@@ -2166,18 +2194,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2166
2194
|
);
|
|
2167
2195
|
}
|
|
2168
2196
|
}
|
|
2169
|
-
if (element.type === "shape" &&
|
|
2197
|
+
if (element.type === "shape" && chunkYWAFJZ23_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2170
2198
|
const width = Math.max(element.width, 1);
|
|
2171
2199
|
const height = Math.max(element.height, 1);
|
|
2172
|
-
const geometry =
|
|
2200
|
+
const geometry = chunkYWAFJZ23_js.getPresetShapeVectorGeometry(
|
|
2173
2201
|
element.shapeType,
|
|
2174
2202
|
width,
|
|
2175
2203
|
height,
|
|
2176
2204
|
element.shapeAdjustments
|
|
2177
2205
|
);
|
|
2178
2206
|
if (geometry) {
|
|
2179
|
-
const gradient =
|
|
2180
|
-
const gradientPaint = gradient ?
|
|
2207
|
+
const gradient = chunkYWAFJZ23_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2208
|
+
const gradientPaint = gradient ? chunkYWAFJZ23_js.svgGradientFillRef(gradient) : void 0;
|
|
2181
2209
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2182
2210
|
"svg",
|
|
2183
2211
|
{
|
|
@@ -2210,18 +2238,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2210
2238
|
);
|
|
2211
2239
|
}
|
|
2212
2240
|
}
|
|
2213
|
-
if (
|
|
2241
|
+
if (chunkYWAFJZ23_js.isCalloutShape(normalizedType)) {
|
|
2214
2242
|
const width = Math.max(element.width, 1);
|
|
2215
2243
|
const height = Math.max(element.height, 1);
|
|
2216
|
-
const geometry =
|
|
2244
|
+
const geometry = chunkYWAFJZ23_js.getCalloutLeaderLineGeometry(
|
|
2217
2245
|
normalizedType,
|
|
2218
2246
|
width,
|
|
2219
2247
|
height,
|
|
2220
2248
|
element.shapeAdjustments
|
|
2221
2249
|
);
|
|
2222
2250
|
if (geometry && geometry.points.length >= 2) {
|
|
2223
|
-
const leaderPath =
|
|
2224
|
-
const bounds =
|
|
2251
|
+
const leaderPath = chunkYWAFJZ23_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2252
|
+
const bounds = chunkYWAFJZ23_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2225
2253
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2226
2254
|
const offsetLeft = bounds.minX;
|
|
2227
2255
|
const offsetTop = bounds.minY;
|
|
@@ -2284,10 +2312,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2284
2312
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2285
2313
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2286
2314
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2287
|
-
const connectorLineCap =
|
|
2315
|
+
const connectorLineCap = chunkYWAFJZ23_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2288
2316
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2289
|
-
const offsets =
|
|
2290
|
-
const widths =
|
|
2317
|
+
const offsets = chunkYWAFJZ23_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2318
|
+
const widths = chunkYWAFJZ23_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2291
2319
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2292
2320
|
"svg",
|
|
2293
2321
|
{
|
|
@@ -2354,15 +2382,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2354
2382
|
}
|
|
2355
2383
|
const rawStops = stops.map((gs) => {
|
|
2356
2384
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2357
|
-
const color =
|
|
2358
|
-
const opacity =
|
|
2385
|
+
const color = chunkYWAFJZ23_js.parseDrawingColor(gs) ?? "#888888";
|
|
2386
|
+
const opacity = chunkYWAFJZ23_js.parseDrawingColorOpacity(gs);
|
|
2359
2387
|
return { position: pos, color, opacity };
|
|
2360
2388
|
}).sort((a, b) => a.position - b.position);
|
|
2361
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2389
|
+
const stopStrings = rawStops.map((s) => `${chunkYWAFJZ23_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2362
2390
|
const lin = gradFill["a:lin"];
|
|
2363
2391
|
if (lin) {
|
|
2364
2392
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2365
|
-
const angleDeg = Math.round(
|
|
2393
|
+
const angleDeg = Math.round(chunkYWAFJZ23_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2366
2394
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2367
2395
|
}
|
|
2368
2396
|
const path = gradFill["a:path"];
|
|
@@ -2376,7 +2404,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2376
2404
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2377
2405
|
} : void 0;
|
|
2378
2406
|
if (pathType === "rect") {
|
|
2379
|
-
return
|
|
2407
|
+
return chunkYWAFJZ23_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2380
2408
|
}
|
|
2381
2409
|
let cx = 50;
|
|
2382
2410
|
let cy = 50;
|
|
@@ -2398,8 +2426,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2398
2426
|
if (!pattFill) {
|
|
2399
2427
|
return void 0;
|
|
2400
2428
|
}
|
|
2401
|
-
const fgColor =
|
|
2402
|
-
const bgColor =
|
|
2429
|
+
const fgColor = chunkYWAFJZ23_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2430
|
+
const bgColor = chunkYWAFJZ23_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2403
2431
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2404
2432
|
switch (preset) {
|
|
2405
2433
|
case "ltHorz":
|
|
@@ -2510,11 +2538,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2510
2538
|
const prstDash = ln["a:prstDash"];
|
|
2511
2539
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2512
2540
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2513
|
-
const color =
|
|
2541
|
+
const color = chunkYWAFJZ23_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2514
2542
|
if (color) {
|
|
2515
|
-
const opacity =
|
|
2543
|
+
const opacity = chunkYWAFJZ23_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2516
2544
|
const key = `${edge.prefix}`;
|
|
2517
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2545
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkYWAFJZ23_js.colorWithOpacity(color, opacity)}`;
|
|
2518
2546
|
}
|
|
2519
2547
|
}
|
|
2520
2548
|
return borderStyle;
|
|
@@ -2527,7 +2555,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2527
2555
|
const textShadowParts = [];
|
|
2528
2556
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2529
2557
|
if (outerShdw) {
|
|
2530
|
-
const shdwColor =
|
|
2558
|
+
const shdwColor = chunkYWAFJZ23_js.parseDrawingColor(outerShdw);
|
|
2531
2559
|
if (shdwColor) {
|
|
2532
2560
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2533
2561
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2545,7 +2573,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2545
2573
|
}
|
|
2546
2574
|
const glow = effectLst["a:glow"];
|
|
2547
2575
|
if (glow) {
|
|
2548
|
-
const glowColor =
|
|
2576
|
+
const glowColor = chunkYWAFJZ23_js.parseDrawingColor(glow);
|
|
2549
2577
|
if (glowColor) {
|
|
2550
2578
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2551
2579
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2567,11 +2595,11 @@ function extractCellText(cellXml) {
|
|
|
2567
2595
|
const textParts = [];
|
|
2568
2596
|
const runs = ensureArrayValue(paragraph["a:r"]);
|
|
2569
2597
|
runs.forEach((run) => {
|
|
2570
|
-
textParts.push(
|
|
2598
|
+
textParts.push(chunkYWAFJZ23_js.xmlText(run["a:t"]) ?? "");
|
|
2571
2599
|
});
|
|
2572
2600
|
const fields = ensureArrayValue(paragraph["a:fld"]);
|
|
2573
2601
|
fields.forEach((field) => {
|
|
2574
|
-
textParts.push(
|
|
2602
|
+
textParts.push(chunkYWAFJZ23_js.xmlText(field["a:t"]) ?? "");
|
|
2575
2603
|
});
|
|
2576
2604
|
paragraphTexts.push(textParts.join(""));
|
|
2577
2605
|
});
|
|
@@ -2615,10 +2643,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2615
2643
|
if (runProps?.["@_u"] !== void 0) {
|
|
2616
2644
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2617
2645
|
}
|
|
2618
|
-
const runColor =
|
|
2646
|
+
const runColor = chunkYWAFJZ23_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkYWAFJZ23_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2619
2647
|
if (runColor) {
|
|
2620
|
-
const opacity =
|
|
2621
|
-
cellStyle.color =
|
|
2648
|
+
const opacity = chunkYWAFJZ23_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2649
|
+
cellStyle.color = chunkYWAFJZ23_js.colorWithOpacity(runColor, opacity);
|
|
2622
2650
|
}
|
|
2623
2651
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2624
2652
|
if (fontFamily) {
|
|
@@ -2628,15 +2656,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2628
2656
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2629
2657
|
}
|
|
2630
2658
|
const cellProperties = cellXml["a:tcPr"];
|
|
2631
|
-
const cellFill =
|
|
2659
|
+
const cellFill = chunkYWAFJZ23_js.parseDrawingColor(
|
|
2632
2660
|
cellProperties?.["a:solidFill"],
|
|
2633
2661
|
schemeColorOverrides
|
|
2634
2662
|
);
|
|
2635
2663
|
if (cellFill) {
|
|
2636
|
-
const opacity =
|
|
2664
|
+
const opacity = chunkYWAFJZ23_js.parseDrawingColorOpacity(
|
|
2637
2665
|
cellProperties?.["a:solidFill"]
|
|
2638
2666
|
);
|
|
2639
|
-
cellStyle.backgroundColor =
|
|
2667
|
+
cellStyle.backgroundColor = chunkYWAFJZ23_js.colorWithOpacity(cellFill, opacity);
|
|
2640
2668
|
} else {
|
|
2641
2669
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2642
2670
|
if (gradCss) {
|
|
@@ -2651,16 +2679,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2651
2679
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2652
2680
|
Object.assign(cellStyle, edgeBorders);
|
|
2653
2681
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2654
|
-
const borderColor =
|
|
2682
|
+
const borderColor = chunkYWAFJZ23_js.parseDrawingColor(
|
|
2655
2683
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2656
2684
|
schemeColorOverrides
|
|
2657
|
-
) ||
|
|
2685
|
+
) || chunkYWAFJZ23_js.parseDrawingColor(
|
|
2658
2686
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2659
2687
|
schemeColorOverrides
|
|
2660
|
-
) ||
|
|
2688
|
+
) || chunkYWAFJZ23_js.parseDrawingColor(
|
|
2661
2689
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2662
2690
|
schemeColorOverrides
|
|
2663
|
-
) ||
|
|
2691
|
+
) || chunkYWAFJZ23_js.parseDrawingColor(
|
|
2664
2692
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2665
2693
|
schemeColorOverrides
|
|
2666
2694
|
);
|
|
@@ -2732,7 +2760,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2732
2760
|
if (element.type !== "table") {
|
|
2733
2761
|
return void 0;
|
|
2734
2762
|
}
|
|
2735
|
-
return
|
|
2763
|
+
return chunkYWAFJZ23_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2736
2764
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2737
2765
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2738
2766
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2812,7 +2840,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2812
2840
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2813
2841
|
"span",
|
|
2814
2842
|
{
|
|
2815
|
-
style: { position: "relative", ...
|
|
2843
|
+
style: { position: "relative", ...chunkYWAFJZ23_js.cellRunStyle(run) },
|
|
2816
2844
|
children: run.text
|
|
2817
2845
|
},
|
|
2818
2846
|
`r-${index}`
|
|
@@ -2820,7 +2848,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2820
2848
|
});
|
|
2821
2849
|
}
|
|
2822
2850
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2823
|
-
return
|
|
2851
|
+
return chunkYWAFJZ23_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2824
2852
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2825
2853
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2826
2854
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2879,18 +2907,18 @@ function TableCellInput({
|
|
|
2879
2907
|
onCommit,
|
|
2880
2908
|
onCancel
|
|
2881
2909
|
}) {
|
|
2882
|
-
const inputRef =
|
|
2883
|
-
const committedRef =
|
|
2884
|
-
const onCommitRef =
|
|
2910
|
+
const inputRef = React8.useRef(null);
|
|
2911
|
+
const committedRef = React8.useRef(false);
|
|
2912
|
+
const onCommitRef = React8.useRef(onCommit);
|
|
2885
2913
|
onCommitRef.current = onCommit;
|
|
2886
|
-
|
|
2914
|
+
React8.useEffect(() => {
|
|
2887
2915
|
const el = inputRef.current;
|
|
2888
2916
|
if (el) {
|
|
2889
2917
|
el.focus();
|
|
2890
2918
|
el.select();
|
|
2891
2919
|
}
|
|
2892
2920
|
}, []);
|
|
2893
|
-
|
|
2921
|
+
React8.useEffect(() => {
|
|
2894
2922
|
const input = inputRef.current;
|
|
2895
2923
|
return () => {
|
|
2896
2924
|
if (!committedRef.current && input) {
|
|
@@ -2950,11 +2978,11 @@ function TableResizeOverlay({
|
|
|
2950
2978
|
onResizeColumns,
|
|
2951
2979
|
onResizeRow
|
|
2952
2980
|
}) {
|
|
2953
|
-
const containerRef =
|
|
2954
|
-
const [rowBounds, setRowBounds] =
|
|
2955
|
-
const dragRef =
|
|
2956
|
-
const colBoundaries =
|
|
2957
|
-
const measureRows =
|
|
2981
|
+
const containerRef = React8.useRef(null);
|
|
2982
|
+
const [rowBounds, setRowBounds] = React8.useState([]);
|
|
2983
|
+
const dragRef = React8.useRef(null);
|
|
2984
|
+
const colBoundaries = React8.useMemo(() => chunkYWAFJZ23_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2985
|
+
const measureRows = React8.useCallback(() => {
|
|
2958
2986
|
const container = containerRef.current;
|
|
2959
2987
|
if (!container) {
|
|
2960
2988
|
return;
|
|
@@ -2979,10 +3007,10 @@ function TableResizeOverlay({
|
|
|
2979
3007
|
return bounds;
|
|
2980
3008
|
});
|
|
2981
3009
|
}, []);
|
|
2982
|
-
|
|
3010
|
+
React8.useLayoutEffect(() => {
|
|
2983
3011
|
measureRows();
|
|
2984
3012
|
});
|
|
2985
|
-
|
|
3013
|
+
React8.useEffect(() => {
|
|
2986
3014
|
const handleMouseMove = (e) => {
|
|
2987
3015
|
const drag = dragRef.current;
|
|
2988
3016
|
if (!drag) {
|
|
@@ -3000,11 +3028,11 @@ function TableResizeOverlay({
|
|
|
3000
3028
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3001
3029
|
if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3002
3030
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3003
|
-
onResizeColumns(
|
|
3031
|
+
onResizeColumns(chunkYWAFJZ23_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3004
3032
|
} else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
|
|
3005
3033
|
const deltaY = e.clientY - drag.startPos;
|
|
3006
|
-
const newHeight =
|
|
3007
|
-
drag.initialRowHeight ??
|
|
3034
|
+
const newHeight = chunkYWAFJZ23_js.computeResizedRowHeight(
|
|
3035
|
+
drag.initialRowHeight ?? chunkYWAFJZ23_js.DEFAULT_ROW_HEIGHT,
|
|
3008
3036
|
deltaY
|
|
3009
3037
|
);
|
|
3010
3038
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3042,7 +3070,7 @@ function TableResizeOverlay({
|
|
|
3042
3070
|
e.stopPropagation();
|
|
3043
3071
|
const table = containerRef.current?.querySelector("table");
|
|
3044
3072
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3045
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3073
|
+
const actualHeight = tr?.offsetHeight ?? chunkYWAFJZ23_js.DEFAULT_ROW_HEIGHT;
|
|
3046
3074
|
document.body.style.cursor = "row-resize";
|
|
3047
3075
|
document.body.style.userSelect = "none";
|
|
3048
3076
|
dragRef.current = {
|
|
@@ -3082,14 +3110,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3082
3110
|
const rowCount = tableData.rows.length;
|
|
3083
3111
|
const columnCount = tableData.columnWidths.length;
|
|
3084
3112
|
const selectedCell = options?.selectedCell || null;
|
|
3085
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3113
|
+
const isEditable = Boolean(options?.editable) && chunkYWAFJZ23_js.canDrillDown(element);
|
|
3086
3114
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3087
3115
|
const sharedCtx = {
|
|
3088
3116
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3089
3117
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3090
3118
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3091
3119
|
};
|
|
3092
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3120
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkYWAFJZ23_js.tableCellCss(
|
|
3093
3121
|
tableData,
|
|
3094
3122
|
cell,
|
|
3095
3123
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3102,7 +3130,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3102
3130
|
}
|
|
3103
3131
|
const first = selectedCell.selectedCells[0];
|
|
3104
3132
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3105
|
-
return
|
|
3133
|
+
return chunkYWAFJZ23_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3106
3134
|
})();
|
|
3107
3135
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3108
3136
|
TableResizeOverlay,
|
|
@@ -3123,9 +3151,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3123
3151
|
{
|
|
3124
3152
|
className: "w-full h-full border-collapse table-fixed",
|
|
3125
3153
|
style: {
|
|
3126
|
-
fontFamily:
|
|
3154
|
+
fontFamily: chunkYWAFJZ23_js.DEFAULT_FONT_FAMILY,
|
|
3127
3155
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3128
|
-
...
|
|
3156
|
+
...chunkYWAFJZ23_js.tableContainerCss(tableData)
|
|
3129
3157
|
},
|
|
3130
3158
|
children: [
|
|
3131
3159
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3144,7 +3172,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3144
3172
|
return null;
|
|
3145
3173
|
}
|
|
3146
3174
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3147
|
-
const isInMultiSelection =
|
|
3175
|
+
const isInMultiSelection = chunkYWAFJZ23_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3148
3176
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3149
3177
|
const diag = getCellDiagonalBorders2(
|
|
3150
3178
|
cell.style,
|
|
@@ -3173,7 +3201,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3173
3201
|
}
|
|
3174
3202
|
event.stopPropagation();
|
|
3175
3203
|
if (event.shiftKey && selectedCell) {
|
|
3176
|
-
const rect =
|
|
3204
|
+
const rect = chunkYWAFJZ23_js.computeSelectionRect(
|
|
3177
3205
|
selectedCell.rowIndex,
|
|
3178
3206
|
selectedCell.columnIndex,
|
|
3179
3207
|
rowIndex,
|
|
@@ -3183,7 +3211,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3183
3211
|
options?.onSelectCell?.({
|
|
3184
3212
|
rowIndex: selectedCell.rowIndex,
|
|
3185
3213
|
columnIndex: selectedCell.columnIndex,
|
|
3186
|
-
selectedCells:
|
|
3214
|
+
selectedCells: chunkYWAFJZ23_js.rectToCells(rect)
|
|
3187
3215
|
});
|
|
3188
3216
|
} else {
|
|
3189
3217
|
options?.onSelectCell?.({
|
|
@@ -3244,10 +3272,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3244
3272
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3245
3273
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3246
3274
|
}
|
|
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:
|
|
3275
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkKPKO2ELT_js.translationsEn["pptx.table.title"] });
|
|
3248
3276
|
}
|
|
3249
3277
|
const selectedCell = options?.selectedCell || null;
|
|
3250
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3278
|
+
const isEditable = Boolean(options?.editable) && chunkYWAFJZ23_js.canDrillDown(element);
|
|
3251
3279
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3252
3280
|
const tableEl = element;
|
|
3253
3281
|
const xmlSelectionRect = (() => {
|
|
@@ -3259,7 +3287,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3259
3287
|
}
|
|
3260
3288
|
const first = selectedCell.selectedCells[0];
|
|
3261
3289
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3262
|
-
return
|
|
3290
|
+
return chunkYWAFJZ23_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3263
3291
|
})();
|
|
3264
3292
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3265
3293
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3281,9 +3309,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3281
3309
|
{
|
|
3282
3310
|
className: "w-full h-full border-collapse table-fixed",
|
|
3283
3311
|
style: {
|
|
3284
|
-
fontFamily:
|
|
3312
|
+
fontFamily: chunkYWAFJZ23_js.DEFAULT_FONT_FAMILY,
|
|
3285
3313
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3286
|
-
...
|
|
3314
|
+
...chunkYWAFJZ23_js.tableContainerCss(tableEl.tableData)
|
|
3287
3315
|
},
|
|
3288
3316
|
children: [
|
|
3289
3317
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3340,7 +3368,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3340
3368
|
color: textStyle.color,
|
|
3341
3369
|
...bandStyle,
|
|
3342
3370
|
...xmlCellStyle,
|
|
3343
|
-
...tdCellOverride ?
|
|
3371
|
+
...tdCellOverride ? chunkYWAFJZ23_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3344
3372
|
...diag ? { position: "relative" } : void 0
|
|
3345
3373
|
};
|
|
3346
3374
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3350,7 +3378,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3350
3378
|
"border px-1 py-0.5 align-top",
|
|
3351
3379
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3352
3380
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3353
|
-
|
|
3381
|
+
chunkYWAFJZ23_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3354
3382
|
),
|
|
3355
3383
|
colSpan,
|
|
3356
3384
|
rowSpan: rSpan,
|
|
@@ -3361,7 +3389,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3361
3389
|
}
|
|
3362
3390
|
event.stopPropagation();
|
|
3363
3391
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3364
|
-
const rect =
|
|
3392
|
+
const rect = chunkYWAFJZ23_js.computeSelectionRect(
|
|
3365
3393
|
selectedCell.rowIndex,
|
|
3366
3394
|
selectedCell.columnIndex,
|
|
3367
3395
|
rowIndex,
|
|
@@ -3371,7 +3399,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3371
3399
|
options?.onSelectCell?.({
|
|
3372
3400
|
rowIndex: selectedCell.rowIndex,
|
|
3373
3401
|
columnIndex: selectedCell.columnIndex,
|
|
3374
|
-
selectedCells:
|
|
3402
|
+
selectedCells: chunkYWAFJZ23_js.rectToCells(rect)
|
|
3375
3403
|
});
|
|
3376
3404
|
} else {
|
|
3377
3405
|
options?.onSelectCell?.({
|
|
@@ -3433,23 +3461,23 @@ function renderGradientStops(stops) {
|
|
|
3433
3461
|
return stops.map((stop, i) => /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: stop.offset, stopColor: stop.color, stopOpacity: stop.opacity }, i));
|
|
3434
3462
|
}
|
|
3435
3463
|
function partAttrs(part) {
|
|
3436
|
-
return part ?
|
|
3464
|
+
return part ? chunkYWAFJZ23_js.chartPartToAttrs(part) : void 0;
|
|
3437
3465
|
}
|
|
3438
3466
|
function resolveReactPalette(chartData) {
|
|
3439
3467
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3440
3468
|
return chartData.colorPalette;
|
|
3441
3469
|
}
|
|
3442
|
-
return [...
|
|
3470
|
+
return [...chunkYWAFJZ23_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3443
3471
|
}
|
|
3444
3472
|
function buildReactChartViewModel(element) {
|
|
3445
3473
|
if (element.type !== "chart" || !element.chartData) {
|
|
3446
|
-
return
|
|
3474
|
+
return chunkYWAFJZ23_js.buildChartViewModel(element);
|
|
3447
3475
|
}
|
|
3448
3476
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3449
3477
|
...element,
|
|
3450
3478
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3451
3479
|
};
|
|
3452
|
-
return
|
|
3480
|
+
return chunkYWAFJZ23_js.buildChartViewModel(themedElement);
|
|
3453
3481
|
}
|
|
3454
3482
|
function renderPrimitive(prim, key) {
|
|
3455
3483
|
switch (prim.kind) {
|
|
@@ -3601,7 +3629,7 @@ function renderText(t, key) {
|
|
|
3601
3629
|
);
|
|
3602
3630
|
}
|
|
3603
3631
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3604
|
-
const legendItems =
|
|
3632
|
+
const legendItems = chunkYWAFJZ23_js.computeChartLegendLayout(vm);
|
|
3605
3633
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3606
3634
|
"svg",
|
|
3607
3635
|
{
|
|
@@ -3764,17 +3792,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3764
3792
|
}
|
|
3765
3793
|
function renderChartElement(element) {
|
|
3766
3794
|
if (element.type !== "chart") {
|
|
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:
|
|
3795
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkKPKO2ELT_js.translationsEn["pptx.chart.heading"] });
|
|
3768
3796
|
}
|
|
3769
3797
|
const chartData = element.chartData;
|
|
3770
3798
|
if (!chartData || chartData.series.length === 0) {
|
|
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:
|
|
3799
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkKPKO2ELT_js.translationsEn["pptx.chart.heading"] });
|
|
3772
3800
|
}
|
|
3773
|
-
const kind =
|
|
3801
|
+
const kind = chunkYWAFJZ23_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3774
3802
|
return renderChartViewModel(
|
|
3775
3803
|
element.id,
|
|
3776
3804
|
buildReactChartViewModel(element),
|
|
3777
|
-
|
|
3805
|
+
chunkYWAFJZ23_js.chartPreserveAspectRatio(kind)
|
|
3778
3806
|
);
|
|
3779
3807
|
}
|
|
3780
3808
|
|
|
@@ -3794,14 +3822,14 @@ function buildNotesPdf(pages) {
|
|
|
3794
3822
|
notes: page.notes,
|
|
3795
3823
|
slideNumber: page.slideNumber
|
|
3796
3824
|
}));
|
|
3797
|
-
const bytes =
|
|
3825
|
+
const bytes = chunkYWAFJZ23_js.buildNotesPdfBytes(images, meta);
|
|
3798
3826
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3799
3827
|
return URL.createObjectURL(blob);
|
|
3800
3828
|
}
|
|
3801
3829
|
|
|
3802
3830
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3803
3831
|
function buildPdfFromTiledImageData(pages) {
|
|
3804
|
-
const bytes =
|
|
3832
|
+
const bytes = chunkYWAFJZ23_js.buildTiledSlidesPdfBytes(pages);
|
|
3805
3833
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3806
3834
|
return URL.createObjectURL(blob);
|
|
3807
3835
|
}
|
|
@@ -3810,7 +3838,11 @@ function buildPdfFromTiledImageData(pages) {
|
|
|
3810
3838
|
var activePreview = null;
|
|
3811
3839
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3812
3840
|
stopPreviewAnimation();
|
|
3813
|
-
const
|
|
3841
|
+
const domEl = document.querySelector(`[data-element-id="${elementId}"]`);
|
|
3842
|
+
const descriptor = chunkYWAFJZ23_js.buildPreviewAnimation(preset, {
|
|
3843
|
+
...options,
|
|
3844
|
+
geometry: domEl ? chunkYWAFJZ23_js.measurePreviewGeometry(domEl) : void 0
|
|
3845
|
+
});
|
|
3814
3846
|
if (!descriptor) {
|
|
3815
3847
|
return;
|
|
3816
3848
|
}
|
|
@@ -3823,7 +3855,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3823
3855
|
return;
|
|
3824
3856
|
}
|
|
3825
3857
|
const stage = domEl.offsetParent;
|
|
3826
|
-
const descriptor =
|
|
3858
|
+
const descriptor = chunkYWAFJZ23_js.buildMotionPathPreview({
|
|
3827
3859
|
path,
|
|
3828
3860
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3829
3861
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|