pptx-react-viewer 3.7.0 → 3.8.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 +13 -0
- package/dist/{AiChatPanel-L5QGWVZK.mjs → AiChatPanel-A5DCEHTO.mjs} +4 -4
- package/dist/AiChatPanel-A5DCEHTO.mjs.br +0 -0
- package/dist/AiChatPanel-A5DCEHTO.mjs.gz +0 -0
- package/dist/{AiChatPanel-M3AHKYPS.js → AiChatPanel-XLQM4BQJ.js} +25 -25
- package/dist/AiChatPanel-XLQM4BQJ.js.br +0 -0
- package/dist/AiChatPanel-XLQM4BQJ.js.gz +0 -0
- package/dist/{Area3DChartScene-AE2XYKDW.mjs → Area3DChartScene-5CMEMIBI.mjs} +1 -1
- package/dist/Area3DChartScene-5CMEMIBI.mjs.br +0 -0
- package/dist/Area3DChartScene-5CMEMIBI.mjs.gz +0 -0
- package/dist/{Area3DChartScene-ZQLQK6L4.js → Area3DChartScene-RZ3V3WOR.js} +2 -2
- package/dist/Area3DChartScene-RZ3V3WOR.js.br +0 -0
- package/dist/Area3DChartScene-RZ3V3WOR.js.gz +0 -0
- package/dist/{Bar3DChartScene-FQV62XOI.mjs → Bar3DChartScene-H3MYUJKV.mjs} +1 -1
- package/dist/Bar3DChartScene-H3MYUJKV.mjs.br +0 -0
- package/dist/Bar3DChartScene-H3MYUJKV.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-TZ6ADFBS.js → Bar3DChartScene-KHCQ6TEC.js} +2 -2
- package/dist/Bar3DChartScene-KHCQ6TEC.js.br +0 -0
- package/dist/Bar3DChartScene-KHCQ6TEC.js.gz +0 -0
- package/dist/{Line3DChartScene-5CKPAX63.js → Line3DChartScene-QEACF3U3.js} +2 -2
- package/dist/Line3DChartScene-QEACF3U3.js.br +0 -0
- package/dist/Line3DChartScene-QEACF3U3.js.gz +0 -0
- package/dist/{Line3DChartScene-FEUY3PCE.mjs → Line3DChartScene-YFRPJHDX.mjs} +1 -1
- package/dist/Line3DChartScene-YFRPJHDX.mjs.br +0 -0
- package/dist/Line3DChartScene-YFRPJHDX.mjs.gz +0 -0
- package/dist/{Model3DScene-V3DHIISV.mjs → Model3DScene-O24KP723.mjs} +1 -1
- package/dist/Model3DScene-O24KP723.mjs.br +0 -0
- package/dist/Model3DScene-O24KP723.mjs.gz +0 -0
- package/dist/{Model3DScene-BLXEALM6.js → Model3DScene-QQWKGJ3T.js} +2 -2
- package/dist/{Model3DScene-BLXEALM6.js.br → Model3DScene-QQWKGJ3T.js.br} +0 -0
- package/dist/Model3DScene-QQWKGJ3T.js.gz +0 -0
- package/dist/{PieChart3DScene-VZI2VARG.mjs → PieChart3DScene-CI6CW22C.mjs} +1 -1
- package/dist/{PieChart3DScene-VZI2VARG.mjs.br → PieChart3DScene-CI6CW22C.mjs.br} +0 -0
- package/dist/PieChart3DScene-CI6CW22C.mjs.gz +0 -0
- package/dist/{PieChart3DScene-GHHT3PDV.js → PieChart3DScene-L3MHKQHW.js} +2 -2
- package/dist/{PieChart3DScene-GHHT3PDV.js.br → PieChart3DScene-L3MHKQHW.js.br} +0 -0
- package/dist/PieChart3DScene-L3MHKQHW.js.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-WWIMQ65D.js → SurfaceChart3DScene-5IER6VFW.js} +2 -2
- package/dist/{SurfaceChart3DScene-WWIMQ65D.js.br → SurfaceChart3DScene-5IER6VFW.js.br} +0 -0
- package/dist/SurfaceChart3DScene-5IER6VFW.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-T36E2HBA.mjs → SurfaceChart3DScene-JUXRC3K2.mjs} +1 -1
- package/dist/SurfaceChart3DScene-JUXRC3K2.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-JUXRC3K2.mjs.gz +0 -0
- package/dist/{audience-content-store-bR7Gs_1S.d.ts → audience-content-store-CB2WVM1K.d.ts} +12 -3
- package/dist/{audience-content-store-bR7Gs_1S.d.ts.map → audience-content-store-CB2WVM1K.d.ts.map} +1 -1
- package/dist/{chunk-TUSALM3A.js → chunk-4222CHFH.js} +1709 -1235
- package/dist/chunk-4222CHFH.js.br +0 -0
- package/dist/chunk-4222CHFH.js.gz +0 -0
- package/dist/{chunk-NV55GU5V.mjs → chunk-6IMB5DNJ.mjs} +4953 -3103
- package/dist/chunk-6IMB5DNJ.mjs.br +0 -0
- package/dist/chunk-6IMB5DNJ.mjs.gz +0 -0
- package/dist/{chunk-OBE4TB76.js → chunk-DE3S3UHX.js} +551 -574
- package/dist/chunk-DE3S3UHX.js.br +0 -0
- package/dist/chunk-DE3S3UHX.js.gz +0 -0
- package/dist/{chunk-3EJFZ7TE.js → chunk-F5NPGNMA.js} +9 -5
- package/dist/chunk-F5NPGNMA.js.br +0 -0
- package/dist/chunk-F5NPGNMA.js.gz +0 -0
- package/dist/{chunk-FGTMS7LR.mjs → chunk-FRZIBZTE.mjs} +55 -4
- package/dist/chunk-FRZIBZTE.mjs.br +0 -0
- package/dist/chunk-FRZIBZTE.mjs.gz +0 -0
- package/dist/{chunk-W24OJ7H5.js → chunk-L3ZIBQEB.js} +55 -4
- package/dist/chunk-L3ZIBQEB.js.br +0 -0
- package/dist/chunk-L3ZIBQEB.js.gz +0 -0
- package/dist/{chunk-TXY2E7VQ.mjs → chunk-PFPKBNNZ.mjs} +509 -35
- package/dist/chunk-PFPKBNNZ.mjs.br +0 -0
- package/dist/chunk-PFPKBNNZ.mjs.gz +0 -0
- package/dist/{chunk-VIFDZIVX.js → chunk-QWA5YEIZ.js} +187 -176
- package/dist/chunk-QWA5YEIZ.js.br +0 -0
- package/dist/chunk-QWA5YEIZ.js.gz +0 -0
- package/dist/{chunk-JANUSAEK.mjs → chunk-RHWQKZLB.mjs} +14 -3
- package/dist/chunk-RHWQKZLB.mjs.br +0 -0
- package/dist/chunk-RHWQKZLB.mjs.gz +0 -0
- package/dist/{chunk-WKODF5ZU.mjs → chunk-RNP5HP4L.mjs} +5 -2
- package/dist/chunk-RNP5HP4L.mjs.br +0 -0
- package/dist/chunk-RNP5HP4L.mjs.gz +0 -0
- package/dist/{chunk-DCNHUEWQ.js → chunk-SN5EUDIT.js} +4972 -3103
- package/dist/chunk-SN5EUDIT.js.br +0 -0
- package/dist/chunk-SN5EUDIT.js.gz +0 -0
- package/dist/{chunk-PC62KGU3.mjs → chunk-UPJW34YG.mjs} +124 -147
- package/dist/chunk-UPJW34YG.mjs.br +0 -0
- package/dist/chunk-UPJW34YG.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 +179 -23
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +352 -171
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/types-Bzdkiakq.d.ts.map +1 -1
- package/dist/viewer/index.d.ts +150 -23
- 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 +2 -2
- package/dist/AiChatPanel-L5QGWVZK.mjs.br +0 -0
- package/dist/AiChatPanel-L5QGWVZK.mjs.gz +0 -0
- package/dist/AiChatPanel-M3AHKYPS.js.br +0 -0
- package/dist/AiChatPanel-M3AHKYPS.js.gz +0 -0
- package/dist/Area3DChartScene-AE2XYKDW.mjs.br +0 -1
- package/dist/Area3DChartScene-AE2XYKDW.mjs.gz +0 -0
- package/dist/Area3DChartScene-ZQLQK6L4.js.br +0 -0
- package/dist/Area3DChartScene-ZQLQK6L4.js.gz +0 -0
- package/dist/Bar3DChartScene-FQV62XOI.mjs.br +0 -2
- package/dist/Bar3DChartScene-FQV62XOI.mjs.gz +0 -0
- package/dist/Bar3DChartScene-TZ6ADFBS.js.br +0 -0
- package/dist/Bar3DChartScene-TZ6ADFBS.js.gz +0 -0
- package/dist/Line3DChartScene-5CKPAX63.js.br +0 -0
- package/dist/Line3DChartScene-5CKPAX63.js.gz +0 -0
- package/dist/Line3DChartScene-FEUY3PCE.mjs.br +0 -1
- package/dist/Line3DChartScene-FEUY3PCE.mjs.gz +0 -0
- package/dist/Model3DScene-BLXEALM6.js.gz +0 -0
- package/dist/Model3DScene-V3DHIISV.mjs.br +0 -0
- package/dist/Model3DScene-V3DHIISV.mjs.gz +0 -0
- package/dist/PieChart3DScene-GHHT3PDV.js.gz +0 -0
- package/dist/PieChart3DScene-VZI2VARG.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-T36E2HBA.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-T36E2HBA.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-WWIMQ65D.js.gz +0 -0
- package/dist/chunk-3EJFZ7TE.js.br +0 -0
- package/dist/chunk-3EJFZ7TE.js.gz +0 -0
- package/dist/chunk-DCNHUEWQ.js.br +0 -0
- package/dist/chunk-DCNHUEWQ.js.gz +0 -0
- package/dist/chunk-FGTMS7LR.mjs.br +0 -0
- package/dist/chunk-FGTMS7LR.mjs.gz +0 -0
- package/dist/chunk-JANUSAEK.mjs.br +0 -0
- package/dist/chunk-JANUSAEK.mjs.gz +0 -0
- package/dist/chunk-NV55GU5V.mjs.br +0 -0
- package/dist/chunk-NV55GU5V.mjs.gz +0 -0
- package/dist/chunk-OBE4TB76.js.br +0 -0
- package/dist/chunk-OBE4TB76.js.gz +0 -0
- package/dist/chunk-PC62KGU3.mjs.br +0 -0
- package/dist/chunk-PC62KGU3.mjs.gz +0 -0
- package/dist/chunk-TUSALM3A.js.br +0 -0
- package/dist/chunk-TUSALM3A.js.gz +0 -0
- package/dist/chunk-TXY2E7VQ.mjs.br +0 -0
- package/dist/chunk-TXY2E7VQ.mjs.gz +0 -0
- package/dist/chunk-VIFDZIVX.js.br +0 -0
- package/dist/chunk-VIFDZIVX.js.gz +0 -0
- package/dist/chunk-W24OJ7H5.js.br +0 -0
- package/dist/chunk-W24OJ7H5.js.gz +0 -0
- package/dist/chunk-WKODF5ZU.mjs.br +0 -0
- package/dist/chunk-WKODF5ZU.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkSN5EUDIT_js = require('./chunk-SN5EUDIT.js');
|
|
4
|
+
var chunkL3ZIBQEB_js = require('./chunk-L3ZIBQEB.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 chunkSN5EUDIT_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 chunkSN5EUDIT_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 = chunkSN5EUDIT_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 = chunkSN5EUDIT_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 = chunkSN5EUDIT_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 (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
227
227
|
return false;
|
|
228
228
|
}
|
|
229
229
|
const st = getShapeType(element.shapeType);
|
|
@@ -232,17 +232,17 @@ function isConnectorOrLineElement(element) {
|
|
|
232
232
|
|
|
233
233
|
// src/viewer/utils/image-style.ts
|
|
234
234
|
function getImageMaskStyle(element) {
|
|
235
|
-
if (!
|
|
235
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunkSN5EUDIT_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 =
|
|
245
|
+
const fit = chunkSN5EUDIT_js.getImageFitStyle(element);
|
|
246
246
|
return {
|
|
247
247
|
// A translated/scaled crop must be masked by its stationary wrapper, not
|
|
248
248
|
// by the moving bitmap itself.
|
|
@@ -259,7 +259,7 @@ function getImageSurfaceMaskStyle(element) {
|
|
|
259
259
|
};
|
|
260
260
|
}
|
|
261
261
|
function getImageSurfaceStyle(element) {
|
|
262
|
-
const fill =
|
|
262
|
+
const fill = chunkSN5EUDIT_js.hasShapeProperties(element) ? chunkSN5EUDIT_js.getComputedFillStyle(element) : void 0;
|
|
263
263
|
return {
|
|
264
264
|
position: "absolute",
|
|
265
265
|
inset: 0,
|
|
@@ -272,13 +272,13 @@ function getImageSurfaceStyle(element) {
|
|
|
272
272
|
};
|
|
273
273
|
}
|
|
274
274
|
function getCropShapeClipPath2(element) {
|
|
275
|
-
if (!
|
|
275
|
+
if (!chunkSN5EUDIT_js.isImageLikeElement(element)) {
|
|
276
276
|
return void 0;
|
|
277
277
|
}
|
|
278
|
-
return
|
|
278
|
+
return chunkSN5EUDIT_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
279
279
|
}
|
|
280
280
|
function getImageTilingStyle2(element) {
|
|
281
|
-
return
|
|
281
|
+
return chunkSN5EUDIT_js.getImageTilingStyle(element);
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
// src/viewer/utils/geometry-image.ts
|
|
@@ -410,7 +410,7 @@ function VideoWithMetadata({
|
|
|
410
410
|
{
|
|
411
411
|
ref: mediaRef,
|
|
412
412
|
className: "w-full h-full pointer-events-auto",
|
|
413
|
-
style: isFullScreen ? { objectFit: "cover" } :
|
|
413
|
+
style: isFullScreen ? { objectFit: "cover" } : chunkSN5EUDIT_js.getImageFitStyle(element),
|
|
414
414
|
controls: showTransport,
|
|
415
415
|
preload: "metadata",
|
|
416
416
|
playsInline: true,
|
|
@@ -467,7 +467,7 @@ function PresentationMediaController({
|
|
|
467
467
|
const [isMediaPlaying, setIsMediaPlaying] = React7.useState(false);
|
|
468
468
|
const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
|
|
469
469
|
const hideWhenNotPlaying = isPresentationMode && element.hideWhenNotPlaying === true;
|
|
470
|
-
const { volume: playbackVolume, playbackRate } =
|
|
470
|
+
const { volume: playbackVolume, playbackRate } = chunkSN5EUDIT_js.mediaPlaybackAttributes({
|
|
471
471
|
loop: element.loop,
|
|
472
472
|
volume: element.volume,
|
|
473
473
|
playbackSpeed: element.playbackSpeed
|
|
@@ -515,7 +515,7 @@ function PresentationMediaController({
|
|
|
515
515
|
if (!el || !isPresentationMode) {
|
|
516
516
|
return;
|
|
517
517
|
}
|
|
518
|
-
return
|
|
518
|
+
return chunkSN5EUDIT_js.scheduleMediaTrimAndFade(el, {
|
|
519
519
|
trimStartMs: element.trimStartMs,
|
|
520
520
|
trimEndMs: element.trimEndMs,
|
|
521
521
|
fadeInDuration: element.fadeInDuration,
|
|
@@ -536,7 +536,7 @@ function PresentationMediaController({
|
|
|
536
536
|
}
|
|
537
537
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
538
538
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
539
|
-
if (
|
|
539
|
+
if (chunkSN5EUDIT_js.registerCrossSlideAudio(element, dataUrl)) {
|
|
540
540
|
return;
|
|
541
541
|
}
|
|
542
542
|
}
|
|
@@ -581,7 +581,7 @@ function PresentationMediaController({
|
|
|
581
581
|
] });
|
|
582
582
|
}
|
|
583
583
|
function label(key) {
|
|
584
|
-
return key === void 0 ? void 0 :
|
|
584
|
+
return key === void 0 ? void 0 : chunkL3ZIBQEB_js.translationsEn[key];
|
|
585
585
|
}
|
|
586
586
|
function FallbackIcon({
|
|
587
587
|
paths,
|
|
@@ -617,17 +617,17 @@ function Badge({
|
|
|
617
617
|
"div",
|
|
618
618
|
{
|
|
619
619
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
620
|
-
...{ [
|
|
620
|
+
...{ [chunkSN5EUDIT_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
621
621
|
children: [
|
|
622
622
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
623
623
|
FallbackIcon,
|
|
624
624
|
{
|
|
625
|
-
paths:
|
|
625
|
+
paths: chunkSN5EUDIT_js.mediaFallbackIcon(visual, element.mediaType),
|
|
626
626
|
size: isMissing ? 32 : 48,
|
|
627
627
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
628
628
|
}
|
|
629
629
|
),
|
|
630
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
630
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkSN5EUDIT_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
631
631
|
]
|
|
632
632
|
}
|
|
633
633
|
);
|
|
@@ -644,17 +644,17 @@ function Placeholder({
|
|
|
644
644
|
"div",
|
|
645
645
|
{
|
|
646
646
|
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"}`,
|
|
647
|
-
...{ [
|
|
647
|
+
...{ [chunkSN5EUDIT_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
648
648
|
children: [
|
|
649
649
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
650
650
|
FallbackIcon,
|
|
651
651
|
{
|
|
652
|
-
paths:
|
|
652
|
+
paths: chunkSN5EUDIT_js.mediaFallbackIcon(visual, element.mediaType),
|
|
653
653
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
654
654
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
655
655
|
}
|
|
656
656
|
),
|
|
657
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
657
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkSN5EUDIT_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
658
658
|
]
|
|
659
659
|
}
|
|
660
660
|
);
|
|
@@ -664,7 +664,7 @@ function renderMediaFallback({
|
|
|
664
664
|
posterUrl,
|
|
665
665
|
surface
|
|
666
666
|
}) {
|
|
667
|
-
const visual =
|
|
667
|
+
const visual = chunkSN5EUDIT_js.mediaFallbackVisual(surface, {
|
|
668
668
|
hasPoster: Boolean(posterUrl),
|
|
669
669
|
missing: element.mediaMissing === true
|
|
670
670
|
});
|
|
@@ -674,9 +674,9 @@ function renderMediaFallback({
|
|
|
674
674
|
"img",
|
|
675
675
|
{
|
|
676
676
|
src: posterUrl,
|
|
677
|
-
alt: visual.dimPoster ?
|
|
677
|
+
alt: visual.dimPoster ? chunkL3ZIBQEB_js.translationsEn["pptx.media.posterAlt"] : chunkL3ZIBQEB_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
678
678
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
679
|
-
style:
|
|
679
|
+
style: chunkSN5EUDIT_js.getImageFitStyle(element)
|
|
680
680
|
}
|
|
681
681
|
),
|
|
682
682
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
@@ -686,7 +686,7 @@ function renderMediaFallback({
|
|
|
686
686
|
}
|
|
687
687
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
688
688
|
if (element.type !== "media") {
|
|
689
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
689
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkL3ZIBQEB_js.translationsEn["pptx.media.title"] });
|
|
690
690
|
}
|
|
691
691
|
const mediaType = element.mediaType;
|
|
692
692
|
const mediaPath = element.mediaPath;
|
|
@@ -694,7 +694,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
694
694
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
695
695
|
const trimFragment = buildTrimFragment(element);
|
|
696
696
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
697
|
-
const shouldLoop =
|
|
697
|
+
const shouldLoop = chunkSN5EUDIT_js.mediaPlaybackAttributes(element).loop;
|
|
698
698
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
699
699
|
const isFullScreen = options?.fullScreen === true;
|
|
700
700
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -772,25 +772,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
772
772
|
if (surface.presenting || surface.preview) {
|
|
773
773
|
return null;
|
|
774
774
|
}
|
|
775
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
775
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkL3ZIBQEB_js.translationsEn["pptx.media.title"] });
|
|
776
776
|
}
|
|
777
777
|
|
|
778
778
|
// src/viewer/utils/text-utils.tsx
|
|
779
779
|
function getTextStyleForElement(element, fallbackColor) {
|
|
780
|
-
return
|
|
780
|
+
return chunkSN5EUDIT_js.buildTextBlockStyle(element, { fallbackColor });
|
|
781
781
|
}
|
|
782
782
|
|
|
783
783
|
// src/viewer/utils/text-layout.tsx
|
|
784
784
|
function getTextLayoutStyle(element) {
|
|
785
|
-
if (!
|
|
785
|
+
if (!chunkSN5EUDIT_js.hasTextProperties(element)) {
|
|
786
786
|
return {};
|
|
787
787
|
}
|
|
788
|
-
const writingMode =
|
|
789
|
-
const textOrientation =
|
|
790
|
-
const verticalDirection =
|
|
788
|
+
const writingMode = chunkSN5EUDIT_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
789
|
+
const textOrientation = chunkSN5EUDIT_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
790
|
+
const verticalDirection = chunkSN5EUDIT_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
791
791
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
792
792
|
const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
|
|
793
|
-
const hasParagraphIndents =
|
|
793
|
+
const hasParagraphIndents = chunkSN5EUDIT_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
794
794
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
795
795
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
796
796
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -799,7 +799,7 @@ function getTextLayoutStyle(element) {
|
|
|
799
799
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
800
800
|
return {
|
|
801
801
|
// Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
|
|
802
|
-
...
|
|
802
|
+
...chunkSN5EUDIT_js.buildTextBodyLayoutStyle(element),
|
|
803
803
|
// Body inset only. Paragraph spacing (spcBef/spcAft) is applied
|
|
804
804
|
// per-paragraph by the paragraph renderer, not collapsed here.
|
|
805
805
|
paddingTop: bodyTop,
|
|
@@ -827,7 +827,7 @@ function getTextLayoutStyle(element) {
|
|
|
827
827
|
|
|
828
828
|
// src/viewer/utils/text-effects.tsx
|
|
829
829
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
830
|
-
return
|
|
830
|
+
return chunkSN5EUDIT_js.buildTextBody3DSceneStyle(textStyle);
|
|
831
831
|
}
|
|
832
832
|
|
|
833
833
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1012,13 +1012,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1012
1012
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1013
1013
|
return renderedSegments;
|
|
1014
1014
|
}
|
|
1015
|
-
const paraKey = `${elementId}${
|
|
1015
|
+
const paraKey = `${elementId}${chunkSN5EUDIT_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1016
1016
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1017
1017
|
if (paraState) {
|
|
1018
1018
|
const style = buildAnimStyle(paraState);
|
|
1019
1019
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1020
1020
|
}
|
|
1021
|
-
const spec =
|
|
1021
|
+
const spec = chunkSN5EUDIT_js.buildTextBuildSpec(
|
|
1022
1022
|
elementId,
|
|
1023
1023
|
paraIndex,
|
|
1024
1024
|
paraRuns.map((run) => ({ text: run.text, style: run })),
|
|
@@ -1036,7 +1036,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1036
1036
|
"span",
|
|
1037
1037
|
{
|
|
1038
1038
|
"data-anim-id": span.animId,
|
|
1039
|
-
style:
|
|
1039
|
+
style: chunkSN5EUDIT_js.textBuildSpanStyle(span),
|
|
1040
1040
|
children: content
|
|
1041
1041
|
},
|
|
1042
1042
|
span.animId
|
|
@@ -1047,13 +1047,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
|
|
|
1047
1047
|
if (!isUnderlineWords || !text) {
|
|
1048
1048
|
return inner(text, keyPrefix, metric);
|
|
1049
1049
|
}
|
|
1050
|
-
const pieces =
|
|
1050
|
+
const pieces = chunkSN5EUDIT_js.splitWordsForUnderline(text);
|
|
1051
1051
|
if (pieces.length === 0) {
|
|
1052
1052
|
return inner(text, keyPrefix, metric);
|
|
1053
1053
|
}
|
|
1054
1054
|
const gapMetric = metric ? {
|
|
1055
1055
|
...metric,
|
|
1056
|
-
nestedStyle: metric.nestedStyle ?
|
|
1056
|
+
nestedStyle: metric.nestedStyle ? chunkSN5EUDIT_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
|
|
1057
1057
|
} : void 0;
|
|
1058
1058
|
return pieces.map((piece, i) => {
|
|
1059
1059
|
const key = `${keyPrefix}-u${i}`;
|
|
@@ -1086,7 +1086,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
|
|
|
1086
1086
|
);
|
|
1087
1087
|
}
|
|
1088
1088
|
function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
|
|
1089
|
-
const [lineLayout] =
|
|
1089
|
+
const [lineLayout] = chunkSN5EUDIT_js.buildRunTabLines(
|
|
1090
1090
|
line,
|
|
1091
1091
|
ctx,
|
|
1092
1092
|
nestedStyle,
|
|
@@ -1105,7 +1105,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1105
1105
|
if (!needsScriptFonts || !text) {
|
|
1106
1106
|
return text;
|
|
1107
1107
|
}
|
|
1108
|
-
const pieces =
|
|
1108
|
+
const pieces = chunkSN5EUDIT_js.splitRunByScriptFont(
|
|
1109
1109
|
text,
|
|
1110
1110
|
scriptFonts,
|
|
1111
1111
|
baseFontFamily,
|
|
@@ -1122,7 +1122,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1122
1122
|
if (!metric || !text) {
|
|
1123
1123
|
return inner(text, keyPrefix);
|
|
1124
1124
|
}
|
|
1125
|
-
const pieces =
|
|
1125
|
+
const pieces = chunkSN5EUDIT_js.splitRunForMetrics(text, metric.font);
|
|
1126
1126
|
if (pieces.length <= 1) {
|
|
1127
1127
|
return inner(text, keyPrefix);
|
|
1128
1128
|
}
|
|
@@ -1131,7 +1131,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1131
1131
|
{
|
|
1132
1132
|
style: {
|
|
1133
1133
|
...metric.nestedStyle,
|
|
1134
|
-
letterSpacing:
|
|
1134
|
+
letterSpacing: chunkSN5EUDIT_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
|
|
1135
1135
|
},
|
|
1136
1136
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1137
1137
|
},
|
|
@@ -1207,8 +1207,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1207
1207
|
});
|
|
1208
1208
|
}
|
|
1209
1209
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1210
|
-
const mathml =
|
|
1211
|
-
const safeMathml = mathml ?
|
|
1210
|
+
const mathml = chunkSN5EUDIT_js.convertOmmlToMathMl(equationXml);
|
|
1211
|
+
const safeMathml = mathml ? chunkSN5EUDIT_js.sanitizeMathMl(mathml) : "";
|
|
1212
1212
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1213
1213
|
"span",
|
|
1214
1214
|
{
|
|
@@ -1218,7 +1218,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1218
1218
|
},
|
|
1219
1219
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1220
1220
|
}
|
|
1221
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1221
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkL3ZIBQEB_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1222
1222
|
if (equationNumber) {
|
|
1223
1223
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1224
1224
|
"span",
|
|
@@ -1337,7 +1337,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1337
1337
|
const segmentStyle = segment?.style ?? {};
|
|
1338
1338
|
const textValue = run.text;
|
|
1339
1339
|
const lines = textValue.split("\n");
|
|
1340
|
-
const resolvedSegmentColor =
|
|
1340
|
+
const resolvedSegmentColor = chunkSN5EUDIT_js.normalizeHexColor(
|
|
1341
1341
|
segmentStyle.color || element.textStyle?.color,
|
|
1342
1342
|
run.hyperlink ? HYPERLINK_COLOR : fallbackColor
|
|
1343
1343
|
);
|
|
@@ -1345,16 +1345,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1345
1345
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1346
1346
|
const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
|
|
1347
1347
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1348
|
-
const baseFontSize = rawFontSize *
|
|
1348
|
+
const baseFontSize = rawFontSize * chunkSN5EUDIT_js.resolveAutoFitFontScale(element.textStyle);
|
|
1349
1349
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1350
|
-
const fontKerning =
|
|
1350
|
+
const fontKerning = chunkSN5EUDIT_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1351
1351
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1352
|
-
const baseFontFamily = rawFontFamily ?
|
|
1352
|
+
const baseFontFamily = rawFontFamily ? chunkSN5EUDIT_js.getSubstituteFontFamily(
|
|
1353
1353
|
rawFontFamily,
|
|
1354
|
-
|
|
1354
|
+
chunkSN5EUDIT_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1355
1355
|
) : DEFAULT_FONT_FAMILY2;
|
|
1356
|
-
const scriptFonts =
|
|
1357
|
-
const needsScriptFonts =
|
|
1356
|
+
const scriptFonts = chunkSN5EUDIT_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1357
|
+
const needsScriptFonts = chunkSN5EUDIT_js.hasDistinctScriptFonts(scriptFonts);
|
|
1358
1358
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1359
1359
|
const metricFont = {
|
|
1360
1360
|
fontFamily: baseFontFamily,
|
|
@@ -1362,7 +1362,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1362
1362
|
bold: Boolean(segmentStyle.bold),
|
|
1363
1363
|
italic: Boolean(segmentStyle.italic)
|
|
1364
1364
|
};
|
|
1365
|
-
const nestedStyle =
|
|
1365
|
+
const nestedStyle = chunkSN5EUDIT_js.nestedTextDecorationStyle(run.style);
|
|
1366
1366
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
|
|
1367
1367
|
const spanStyle = { ...run.style };
|
|
1368
1368
|
spanStyle.color = resolvedSegmentColor;
|
|
@@ -1370,11 +1370,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1370
1370
|
spanStyle.fontFamily = baseFontFamily;
|
|
1371
1371
|
spanStyle.verticalAlign = baselineShift;
|
|
1372
1372
|
spanStyle.fontKerning = fontKerning;
|
|
1373
|
-
spanStyle.letterSpacing =
|
|
1373
|
+
spanStyle.letterSpacing = chunkSN5EUDIT_js.pieceLetterSpacing(
|
|
1374
1374
|
authoredLetterSpacing,
|
|
1375
|
-
|
|
1375
|
+
chunkSN5EUDIT_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1376
1376
|
);
|
|
1377
|
-
const hollow =
|
|
1377
|
+
const hollow = chunkSN5EUDIT_js.hollowTextFillStyle(segmentStyle, {
|
|
1378
1378
|
color: resolvedSegmentColor,
|
|
1379
1379
|
textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
|
|
1380
1380
|
});
|
|
@@ -1389,7 +1389,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1389
1389
|
const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
|
|
1390
1390
|
const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
|
|
1391
1391
|
if (isUnderlineWords) {
|
|
1392
|
-
const stripped =
|
|
1392
|
+
const stripped = chunkSN5EUDIT_js.stripUnderlineDecoration(spanStyle);
|
|
1393
1393
|
spanStyle.textDecoration = stripped.textDecoration;
|
|
1394
1394
|
delete spanStyle.textDecorationStyle;
|
|
1395
1395
|
delete spanStyle.textDecorationThickness;
|
|
@@ -1405,7 +1405,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
|
|
|
1405
1405
|
scriptFonts,
|
|
1406
1406
|
baseFontFamily,
|
|
1407
1407
|
findHighlights,
|
|
1408
|
-
|
|
1408
|
+
chunkSN5EUDIT_js.buildTabContext(
|
|
1409
1409
|
element.textStyle?.tabStops,
|
|
1410
1410
|
element.textStyle?.defaultTabSize,
|
|
1411
1411
|
baseFontSize,
|
|
@@ -1433,7 +1433,7 @@ function renderRubyOrText(run, baseContent) {
|
|
|
1433
1433
|
] });
|
|
1434
1434
|
}
|
|
1435
1435
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt) {
|
|
1436
|
-
if (!
|
|
1436
|
+
if (!chunkSN5EUDIT_js.hasTextProperties(element)) {
|
|
1437
1437
|
return emptyFallback || null;
|
|
1438
1438
|
}
|
|
1439
1439
|
const segments = segmentOverrides ?? element.textSegments;
|
|
@@ -1443,7 +1443,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1443
1443
|
}
|
|
1444
1444
|
return element.text || emptyFallback || "";
|
|
1445
1445
|
}
|
|
1446
|
-
const paragraphs =
|
|
1446
|
+
const paragraphs = chunkSN5EUDIT_js.buildParagraphs(element, fieldContext, segmentOverrides);
|
|
1447
1447
|
const ctx = {
|
|
1448
1448
|
element,
|
|
1449
1449
|
fallbackColor,
|
|
@@ -1569,13 +1569,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
|
|
|
1569
1569
|
);
|
|
1570
1570
|
}
|
|
1571
1571
|
function getDuotoneColors(element) {
|
|
1572
|
-
if (!
|
|
1572
|
+
if (!chunkSN5EUDIT_js.isImageLikeElement(element)) {
|
|
1573
1573
|
return void 0;
|
|
1574
1574
|
}
|
|
1575
1575
|
return element.imageEffects?.duotone;
|
|
1576
1576
|
}
|
|
1577
1577
|
function buildLineShadowCss(element) {
|
|
1578
|
-
if (!
|
|
1578
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
1579
1579
|
return void 0;
|
|
1580
1580
|
}
|
|
1581
1581
|
const ss = element.shapeStyle;
|
|
@@ -1586,13 +1586,13 @@ function buildLineShadowCss(element) {
|
|
|
1586
1586
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
1587
1587
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
1588
1588
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
1589
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
1590
|
-
|
|
1589
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkSN5EUDIT_js.colorWithOpacity(
|
|
1590
|
+
chunkSN5EUDIT_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1591
1591
|
opacity
|
|
1592
1592
|
)}`;
|
|
1593
1593
|
}
|
|
1594
1594
|
function buildLineGlowFilter(element) {
|
|
1595
|
-
if (!
|
|
1595
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
1596
1596
|
return void 0;
|
|
1597
1597
|
}
|
|
1598
1598
|
const ss = element.shapeStyle;
|
|
@@ -1601,22 +1601,22 @@ function buildLineGlowFilter(element) {
|
|
|
1601
1601
|
}
|
|
1602
1602
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
1603
1603
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
1604
|
-
const glowCol =
|
|
1604
|
+
const glowCol = chunkSN5EUDIT_js.colorWithOpacity(chunkSN5EUDIT_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
1605
1605
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
1606
1606
|
}
|
|
1607
1607
|
function getDagDuotoneFilterId(elementId) {
|
|
1608
1608
|
return `dag-duotone-${elementId}`;
|
|
1609
1609
|
}
|
|
1610
1610
|
function hasDagDuotoneEffect(element) {
|
|
1611
|
-
if (!
|
|
1611
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
1612
1612
|
return false;
|
|
1613
1613
|
}
|
|
1614
1614
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
1615
1615
|
}
|
|
1616
1616
|
function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
1617
1617
|
const filterId = getDagDuotoneFilterId(elementId);
|
|
1618
|
-
const c1 =
|
|
1619
|
-
const c2 =
|
|
1618
|
+
const c1 = chunkSN5EUDIT_js.hexToRgbUnit(color1);
|
|
1619
|
+
const c2 = chunkSN5EUDIT_js.hexToRgbUnit(color2);
|
|
1620
1620
|
const grayscaleMatrix = [
|
|
1621
1621
|
0.2126,
|
|
1622
1622
|
0.7152,
|
|
@@ -1660,7 +1660,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
|
|
|
1660
1660
|
|
|
1661
1661
|
// src/viewer/utils/shape-visual-3d.ts
|
|
1662
1662
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
1663
|
-
return
|
|
1663
|
+
return chunkSN5EUDIT_js.build3DExtrusionData(
|
|
1664
1664
|
shape3d,
|
|
1665
1665
|
scene3d,
|
|
1666
1666
|
fillColor,
|
|
@@ -1669,7 +1669,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
1669
1669
|
);
|
|
1670
1670
|
}
|
|
1671
1671
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
1672
|
-
|
|
1672
|
+
chunkSN5EUDIT_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
1673
1673
|
}
|
|
1674
1674
|
|
|
1675
1675
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -1677,16 +1677,16 @@ function rendersCustomVectorPath(element) {
|
|
|
1677
1677
|
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;
|
|
1678
1678
|
}
|
|
1679
1679
|
function rendersWedgeCalloutVector(element) {
|
|
1680
|
-
return element.type === "shape" &&
|
|
1680
|
+
return element.type === "shape" && chunkSN5EUDIT_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1681
1681
|
}
|
|
1682
1682
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1683
|
-
if (!
|
|
1683
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
1684
1684
|
return {};
|
|
1685
1685
|
}
|
|
1686
1686
|
const ss = element.shapeStyle;
|
|
1687
|
-
const fill = animatesFill ? void 0 :
|
|
1688
|
-
const fx =
|
|
1689
|
-
const stroke =
|
|
1687
|
+
const fill = animatesFill ? void 0 : chunkSN5EUDIT_js.getComputedFillStyle(element, parentGroupFill);
|
|
1688
|
+
const fx = chunkSN5EUDIT_js.getComputedEffectStyle(element);
|
|
1689
|
+
const stroke = chunkSN5EUDIT_js.getComputedStrokeStyle(element);
|
|
1690
1690
|
const base = {
|
|
1691
1691
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1692
1692
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1725,7 +1725,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1725
1725
|
};
|
|
1726
1726
|
Object.assign(
|
|
1727
1727
|
base,
|
|
1728
|
-
|
|
1728
|
+
chunkSN5EUDIT_js.getAnimationColorBaseStyle(element, {
|
|
1729
1729
|
animatesFill,
|
|
1730
1730
|
animatesStroke,
|
|
1731
1731
|
parentGroupFill
|
|
@@ -1737,7 +1737,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1737
1737
|
base.borderStyle = void 0;
|
|
1738
1738
|
}
|
|
1739
1739
|
apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
|
|
1740
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1740
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkSN5EUDIT_js.isStrokeOnlyPresetElement(element)) {
|
|
1741
1741
|
base.backgroundColor = "transparent";
|
|
1742
1742
|
base.backgroundImage = void 0;
|
|
1743
1743
|
base.borderWidth = void 0;
|
|
@@ -1751,7 +1751,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1751
1751
|
if (rendersWedgeCalloutVector(element)) {
|
|
1752
1752
|
return base;
|
|
1753
1753
|
}
|
|
1754
|
-
const geometry =
|
|
1754
|
+
const geometry = chunkSN5EUDIT_js.resolveShapeGeometry(element);
|
|
1755
1755
|
switch (geometry.kind) {
|
|
1756
1756
|
case "bare":
|
|
1757
1757
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1777,13 +1777,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1777
1777
|
function getConnectorAdjustment(element, key, fallback) {
|
|
1778
1778
|
const direct = element.shapeAdjustments?.[key];
|
|
1779
1779
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
1780
|
-
return
|
|
1780
|
+
return chunkSN5EUDIT_js.clampUnitInterval(direct / 1e5);
|
|
1781
1781
|
}
|
|
1782
1782
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
1783
1783
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
1784
|
-
return
|
|
1784
|
+
return chunkSN5EUDIT_js.clampUnitInterval(fallbackKey / 1e5);
|
|
1785
1785
|
}
|
|
1786
|
-
return
|
|
1786
|
+
return chunkSN5EUDIT_js.clampUnitInterval(fallback);
|
|
1787
1787
|
}
|
|
1788
1788
|
function getConnectorPathGeometry(element) {
|
|
1789
1789
|
const width = Math.max(element.width, 0);
|
|
@@ -1948,11 +1948,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1948
1948
|
strokePaint,
|
|
1949
1949
|
strokeWidth,
|
|
1950
1950
|
dashArray,
|
|
1951
|
-
lineCap:
|
|
1951
|
+
lineCap: chunkSN5EUDIT_js.svgLineCap(shapeStyle?.lineCap),
|
|
1952
1952
|
lineJoin,
|
|
1953
1953
|
miterLimit,
|
|
1954
|
-
offsets:
|
|
1955
|
-
widths:
|
|
1954
|
+
offsets: chunkSN5EUDIT_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1955
|
+
widths: chunkSN5EUDIT_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1956
1956
|
};
|
|
1957
1957
|
}
|
|
1958
1958
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1975,12 +1975,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1975
1975
|
}
|
|
1976
1976
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1977
1977
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1978
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1978
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkSN5EUDIT_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1979
1979
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1980
|
-
const gradientPaint = gradient ?
|
|
1980
|
+
const gradientPaint = gradient ? chunkSN5EUDIT_js.svgGradientFillRef(gradient) : void 0;
|
|
1981
1981
|
const nodes = [];
|
|
1982
1982
|
if (subpaths && needsPerSubpath) {
|
|
1983
|
-
const paints =
|
|
1983
|
+
const paints = chunkSN5EUDIT_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1984
1984
|
paints.forEach((paint, idx) => {
|
|
1985
1985
|
if (paint.fill !== "none") {
|
|
1986
1986
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2009,7 +2009,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2009
2009
|
"path",
|
|
2010
2010
|
{
|
|
2011
2011
|
d: pathData,
|
|
2012
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2012
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkSN5EUDIT_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2013
2013
|
stroke: "none",
|
|
2014
2014
|
vectorEffect: "non-scaling-stroke"
|
|
2015
2015
|
},
|
|
@@ -2035,14 +2035,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2035
2035
|
);
|
|
2036
2036
|
}
|
|
2037
2037
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2038
|
-
if (!
|
|
2038
|
+
if (!chunkSN5EUDIT_js.hasShapeProperties(element)) {
|
|
2039
2039
|
return null;
|
|
2040
2040
|
}
|
|
2041
2041
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2042
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2043
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2044
|
-
const dashType =
|
|
2045
|
-
const dashArray =
|
|
2042
|
+
const fillPaint = animatesFill ? "inherit" : chunkSN5EUDIT_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2043
|
+
const strokePaint = animatesStroke ? "inherit" : chunkSN5EUDIT_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2044
|
+
const dashType = chunkSN5EUDIT_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2045
|
+
const dashArray = chunkSN5EUDIT_js.getSvgStrokeDasharray(
|
|
2046
2046
|
dashType,
|
|
2047
2047
|
Math.max(strokeWidth, 1),
|
|
2048
2048
|
element.shapeStyle?.customDashSegments
|
|
@@ -2123,13 +2123,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2123
2123
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2124
2124
|
// without this the shape fell back to the parser's representative solid
|
|
2125
2125
|
// and lost every fade (issue #132).
|
|
2126
|
-
|
|
2126
|
+
chunkSN5EUDIT_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2127
2127
|
);
|
|
2128
2128
|
}
|
|
2129
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2129
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkSN5EUDIT_js.buildStrokeOutline(element)) {
|
|
2130
2130
|
const width = Math.max(element.width, 1);
|
|
2131
2131
|
const height = Math.max(element.height, 1);
|
|
2132
|
-
const geometry =
|
|
2132
|
+
const geometry = chunkSN5EUDIT_js.getPresetShapeVectorGeometry(
|
|
2133
2133
|
element.shapeType || "rect",
|
|
2134
2134
|
width,
|
|
2135
2135
|
height,
|
|
@@ -2157,18 +2157,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2157
2157
|
);
|
|
2158
2158
|
}
|
|
2159
2159
|
}
|
|
2160
|
-
if (element.type === "shape" &&
|
|
2160
|
+
if (element.type === "shape" && chunkSN5EUDIT_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2161
2161
|
const width = Math.max(element.width, 1);
|
|
2162
2162
|
const height = Math.max(element.height, 1);
|
|
2163
|
-
const geometry =
|
|
2163
|
+
const geometry = chunkSN5EUDIT_js.getPresetShapeVectorGeometry(
|
|
2164
2164
|
element.shapeType,
|
|
2165
2165
|
width,
|
|
2166
2166
|
height,
|
|
2167
2167
|
element.shapeAdjustments
|
|
2168
2168
|
);
|
|
2169
2169
|
if (geometry) {
|
|
2170
|
-
const gradient =
|
|
2171
|
-
const gradientPaint = gradient ?
|
|
2170
|
+
const gradient = chunkSN5EUDIT_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2171
|
+
const gradientPaint = gradient ? chunkSN5EUDIT_js.svgGradientFillRef(gradient) : void 0;
|
|
2172
2172
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2173
2173
|
"svg",
|
|
2174
2174
|
{
|
|
@@ -2201,18 +2201,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2201
2201
|
);
|
|
2202
2202
|
}
|
|
2203
2203
|
}
|
|
2204
|
-
if (
|
|
2204
|
+
if (chunkSN5EUDIT_js.isCalloutShape(normalizedType)) {
|
|
2205
2205
|
const width = Math.max(element.width, 1);
|
|
2206
2206
|
const height = Math.max(element.height, 1);
|
|
2207
|
-
const geometry =
|
|
2207
|
+
const geometry = chunkSN5EUDIT_js.getCalloutLeaderLineGeometry(
|
|
2208
2208
|
normalizedType,
|
|
2209
2209
|
width,
|
|
2210
2210
|
height,
|
|
2211
2211
|
element.shapeAdjustments
|
|
2212
2212
|
);
|
|
2213
2213
|
if (geometry && geometry.points.length >= 2) {
|
|
2214
|
-
const leaderPath =
|
|
2215
|
-
const bounds =
|
|
2214
|
+
const leaderPath = chunkSN5EUDIT_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2215
|
+
const bounds = chunkSN5EUDIT_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2216
2216
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2217
2217
|
const offsetLeft = bounds.minX;
|
|
2218
2218
|
const offsetTop = bounds.minY;
|
|
@@ -2275,10 +2275,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2275
2275
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2276
2276
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2277
2277
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2278
|
-
const connectorLineCap =
|
|
2278
|
+
const connectorLineCap = chunkSN5EUDIT_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2279
2279
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2280
|
-
const offsets =
|
|
2281
|
-
const widths =
|
|
2280
|
+
const offsets = chunkSN5EUDIT_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2281
|
+
const widths = chunkSN5EUDIT_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2282
2282
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2283
2283
|
"svg",
|
|
2284
2284
|
{
|
|
@@ -2345,15 +2345,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2345
2345
|
}
|
|
2346
2346
|
const rawStops = stops.map((gs) => {
|
|
2347
2347
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2348
|
-
const color =
|
|
2349
|
-
const opacity =
|
|
2348
|
+
const color = chunkSN5EUDIT_js.parseDrawingColor(gs) ?? "#888888";
|
|
2349
|
+
const opacity = chunkSN5EUDIT_js.parseDrawingColorOpacity(gs);
|
|
2350
2350
|
return { position: pos, color, opacity };
|
|
2351
2351
|
}).sort((a, b) => a.position - b.position);
|
|
2352
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2352
|
+
const stopStrings = rawStops.map((s) => `${chunkSN5EUDIT_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2353
2353
|
const lin = gradFill["a:lin"];
|
|
2354
2354
|
if (lin) {
|
|
2355
2355
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2356
|
-
const angleDeg = Math.round(
|
|
2356
|
+
const angleDeg = Math.round(chunkSN5EUDIT_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2357
2357
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2358
2358
|
}
|
|
2359
2359
|
const path = gradFill["a:path"];
|
|
@@ -2367,7 +2367,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2367
2367
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2368
2368
|
} : void 0;
|
|
2369
2369
|
if (pathType === "rect") {
|
|
2370
|
-
return
|
|
2370
|
+
return chunkSN5EUDIT_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2371
2371
|
}
|
|
2372
2372
|
let cx = 50;
|
|
2373
2373
|
let cy = 50;
|
|
@@ -2389,8 +2389,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2389
2389
|
if (!pattFill) {
|
|
2390
2390
|
return void 0;
|
|
2391
2391
|
}
|
|
2392
|
-
const fgColor =
|
|
2393
|
-
const bgColor =
|
|
2392
|
+
const fgColor = chunkSN5EUDIT_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2393
|
+
const bgColor = chunkSN5EUDIT_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2394
2394
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2395
2395
|
switch (preset) {
|
|
2396
2396
|
case "ltHorz":
|
|
@@ -2501,11 +2501,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2501
2501
|
const prstDash = ln["a:prstDash"];
|
|
2502
2502
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2503
2503
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2504
|
-
const color =
|
|
2504
|
+
const color = chunkSN5EUDIT_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2505
2505
|
if (color) {
|
|
2506
|
-
const opacity =
|
|
2506
|
+
const opacity = chunkSN5EUDIT_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2507
2507
|
const key = `${edge.prefix}`;
|
|
2508
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2508
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkSN5EUDIT_js.colorWithOpacity(color, opacity)}`;
|
|
2509
2509
|
}
|
|
2510
2510
|
}
|
|
2511
2511
|
return borderStyle;
|
|
@@ -2518,7 +2518,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2518
2518
|
const textShadowParts = [];
|
|
2519
2519
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2520
2520
|
if (outerShdw) {
|
|
2521
|
-
const shdwColor =
|
|
2521
|
+
const shdwColor = chunkSN5EUDIT_js.parseDrawingColor(outerShdw);
|
|
2522
2522
|
if (shdwColor) {
|
|
2523
2523
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2524
2524
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2536,7 +2536,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2536
2536
|
}
|
|
2537
2537
|
const glow = effectLst["a:glow"];
|
|
2538
2538
|
if (glow) {
|
|
2539
|
-
const glowColor =
|
|
2539
|
+
const glowColor = chunkSN5EUDIT_js.parseDrawingColor(glow);
|
|
2540
2540
|
if (glowColor) {
|
|
2541
2541
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2542
2542
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2616,10 +2616,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2616
2616
|
if (runProps?.["@_u"] !== void 0) {
|
|
2617
2617
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2618
2618
|
}
|
|
2619
|
-
const runColor =
|
|
2619
|
+
const runColor = chunkSN5EUDIT_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkSN5EUDIT_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2620
2620
|
if (runColor) {
|
|
2621
|
-
const opacity =
|
|
2622
|
-
cellStyle.color =
|
|
2621
|
+
const opacity = chunkSN5EUDIT_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2622
|
+
cellStyle.color = chunkSN5EUDIT_js.colorWithOpacity(runColor, opacity);
|
|
2623
2623
|
}
|
|
2624
2624
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2625
2625
|
if (fontFamily) {
|
|
@@ -2629,15 +2629,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2629
2629
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2630
2630
|
}
|
|
2631
2631
|
const cellProperties = cellXml["a:tcPr"];
|
|
2632
|
-
const cellFill =
|
|
2632
|
+
const cellFill = chunkSN5EUDIT_js.parseDrawingColor(
|
|
2633
2633
|
cellProperties?.["a:solidFill"],
|
|
2634
2634
|
schemeColorOverrides
|
|
2635
2635
|
);
|
|
2636
2636
|
if (cellFill) {
|
|
2637
|
-
const opacity =
|
|
2637
|
+
const opacity = chunkSN5EUDIT_js.parseDrawingColorOpacity(
|
|
2638
2638
|
cellProperties?.["a:solidFill"]
|
|
2639
2639
|
);
|
|
2640
|
-
cellStyle.backgroundColor =
|
|
2640
|
+
cellStyle.backgroundColor = chunkSN5EUDIT_js.colorWithOpacity(cellFill, opacity);
|
|
2641
2641
|
} else {
|
|
2642
2642
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2643
2643
|
if (gradCss) {
|
|
@@ -2652,16 +2652,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2652
2652
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2653
2653
|
Object.assign(cellStyle, edgeBorders);
|
|
2654
2654
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2655
|
-
const borderColor =
|
|
2655
|
+
const borderColor = chunkSN5EUDIT_js.parseDrawingColor(
|
|
2656
2656
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2657
2657
|
schemeColorOverrides
|
|
2658
|
-
) ||
|
|
2658
|
+
) || chunkSN5EUDIT_js.parseDrawingColor(
|
|
2659
2659
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2660
2660
|
schemeColorOverrides
|
|
2661
|
-
) ||
|
|
2661
|
+
) || chunkSN5EUDIT_js.parseDrawingColor(
|
|
2662
2662
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2663
2663
|
schemeColorOverrides
|
|
2664
|
-
) ||
|
|
2664
|
+
) || chunkSN5EUDIT_js.parseDrawingColor(
|
|
2665
2665
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2666
2666
|
schemeColorOverrides
|
|
2667
2667
|
);
|
|
@@ -2733,7 +2733,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2733
2733
|
if (element.type !== "table") {
|
|
2734
2734
|
return void 0;
|
|
2735
2735
|
}
|
|
2736
|
-
return
|
|
2736
|
+
return chunkSN5EUDIT_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2737
2737
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2738
2738
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2739
2739
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2809,7 +2809,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2809
2809
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2810
2810
|
"span",
|
|
2811
2811
|
{
|
|
2812
|
-
style: { position: "relative", ...
|
|
2812
|
+
style: { position: "relative", ...chunkSN5EUDIT_js.cellRunStyle(run) },
|
|
2813
2813
|
children: run.text
|
|
2814
2814
|
},
|
|
2815
2815
|
`r-${index}`
|
|
@@ -2817,7 +2817,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2817
2817
|
});
|
|
2818
2818
|
}
|
|
2819
2819
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2820
|
-
return
|
|
2820
|
+
return chunkSN5EUDIT_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2821
2821
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2822
2822
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2823
2823
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2950,7 +2950,7 @@ function TableResizeOverlay({
|
|
|
2950
2950
|
const containerRef = React7.useRef(null);
|
|
2951
2951
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2952
2952
|
const dragRef = React7.useRef(null);
|
|
2953
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2953
|
+
const colBoundaries = React7.useMemo(() => chunkSN5EUDIT_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2954
2954
|
const measureRows = React7.useCallback(() => {
|
|
2955
2955
|
const container = containerRef.current;
|
|
2956
2956
|
if (!container) {
|
|
@@ -2997,11 +2997,11 @@ function TableResizeOverlay({
|
|
|
2997
2997
|
const rect = containerRef.current.getBoundingClientRect();
|
|
2998
2998
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
2999
2999
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3000
|
-
onResizeColumns(
|
|
3000
|
+
onResizeColumns(chunkSN5EUDIT_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3001
3001
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3002
3002
|
const deltaY = e.clientY - drag.startPos;
|
|
3003
|
-
const newHeight =
|
|
3004
|
-
drag.initialRowHeight ??
|
|
3003
|
+
const newHeight = chunkSN5EUDIT_js.computeResizedRowHeight(
|
|
3004
|
+
drag.initialRowHeight ?? chunkSN5EUDIT_js.DEFAULT_ROW_HEIGHT,
|
|
3005
3005
|
deltaY
|
|
3006
3006
|
);
|
|
3007
3007
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3039,7 +3039,7 @@ function TableResizeOverlay({
|
|
|
3039
3039
|
e.stopPropagation();
|
|
3040
3040
|
const table = containerRef.current?.querySelector("table");
|
|
3041
3041
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3042
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3042
|
+
const actualHeight = tr?.offsetHeight ?? chunkSN5EUDIT_js.DEFAULT_ROW_HEIGHT;
|
|
3043
3043
|
document.body.style.cursor = "row-resize";
|
|
3044
3044
|
document.body.style.userSelect = "none";
|
|
3045
3045
|
dragRef.current = {
|
|
@@ -3079,14 +3079,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3079
3079
|
const rowCount = tableData.rows.length;
|
|
3080
3080
|
const columnCount = tableData.columnWidths.length;
|
|
3081
3081
|
const selectedCell = options?.selectedCell || null;
|
|
3082
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3082
|
+
const isEditable = Boolean(options?.editable) && chunkSN5EUDIT_js.canDrillDown(element);
|
|
3083
3083
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3084
3084
|
const sharedCtx = {
|
|
3085
3085
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3086
3086
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3087
3087
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3088
3088
|
};
|
|
3089
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3089
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunkSN5EUDIT_js.tableCellCss(
|
|
3090
3090
|
tableData,
|
|
3091
3091
|
cell,
|
|
3092
3092
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3099,7 +3099,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3099
3099
|
}
|
|
3100
3100
|
const first = selectedCell.selectedCells[0];
|
|
3101
3101
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3102
|
-
return
|
|
3102
|
+
return chunkSN5EUDIT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3103
3103
|
})();
|
|
3104
3104
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3105
3105
|
TableResizeOverlay,
|
|
@@ -3120,9 +3120,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3120
3120
|
{
|
|
3121
3121
|
className: "w-full h-full border-collapse table-fixed",
|
|
3122
3122
|
style: {
|
|
3123
|
-
fontFamily:
|
|
3123
|
+
fontFamily: chunkSN5EUDIT_js.DEFAULT_FONT_FAMILY,
|
|
3124
3124
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3125
|
-
...
|
|
3125
|
+
...chunkSN5EUDIT_js.tableContainerCss(tableData)
|
|
3126
3126
|
},
|
|
3127
3127
|
children: [
|
|
3128
3128
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3141,7 +3141,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3141
3141
|
return null;
|
|
3142
3142
|
}
|
|
3143
3143
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3144
|
-
const isInMultiSelection =
|
|
3144
|
+
const isInMultiSelection = chunkSN5EUDIT_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3145
3145
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3146
3146
|
const diag = getCellDiagonalBorders2(
|
|
3147
3147
|
cell.style,
|
|
@@ -3170,7 +3170,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3170
3170
|
}
|
|
3171
3171
|
event.stopPropagation();
|
|
3172
3172
|
if (event.shiftKey && selectedCell) {
|
|
3173
|
-
const rect =
|
|
3173
|
+
const rect = chunkSN5EUDIT_js.computeSelectionRect(
|
|
3174
3174
|
selectedCell.rowIndex,
|
|
3175
3175
|
selectedCell.columnIndex,
|
|
3176
3176
|
rowIndex,
|
|
@@ -3180,7 +3180,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3180
3180
|
options?.onSelectCell?.({
|
|
3181
3181
|
rowIndex: selectedCell.rowIndex,
|
|
3182
3182
|
columnIndex: selectedCell.columnIndex,
|
|
3183
|
-
selectedCells:
|
|
3183
|
+
selectedCells: chunkSN5EUDIT_js.rectToCells(rect)
|
|
3184
3184
|
});
|
|
3185
3185
|
} else {
|
|
3186
3186
|
options?.onSelectCell?.({
|
|
@@ -3241,10 +3241,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3241
3241
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3242
3242
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3243
3243
|
}
|
|
3244
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3244
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkL3ZIBQEB_js.translationsEn["pptx.table.title"] });
|
|
3245
3245
|
}
|
|
3246
3246
|
const selectedCell = options?.selectedCell || null;
|
|
3247
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3247
|
+
const isEditable = Boolean(options?.editable) && chunkSN5EUDIT_js.canDrillDown(element);
|
|
3248
3248
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3249
3249
|
const tableEl = element;
|
|
3250
3250
|
const xmlSelectionRect = (() => {
|
|
@@ -3256,7 +3256,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3256
3256
|
}
|
|
3257
3257
|
const first = selectedCell.selectedCells[0];
|
|
3258
3258
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3259
|
-
return
|
|
3259
|
+
return chunkSN5EUDIT_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3260
3260
|
})();
|
|
3261
3261
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3262
3262
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3278,9 +3278,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3278
3278
|
{
|
|
3279
3279
|
className: "w-full h-full border-collapse table-fixed",
|
|
3280
3280
|
style: {
|
|
3281
|
-
fontFamily:
|
|
3281
|
+
fontFamily: chunkSN5EUDIT_js.DEFAULT_FONT_FAMILY,
|
|
3282
3282
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3283
|
-
...
|
|
3283
|
+
...chunkSN5EUDIT_js.tableContainerCss(tableEl.tableData)
|
|
3284
3284
|
},
|
|
3285
3285
|
children: [
|
|
3286
3286
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3337,7 +3337,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3337
3337
|
color: textStyle.color,
|
|
3338
3338
|
...bandStyle,
|
|
3339
3339
|
...xmlCellStyle,
|
|
3340
|
-
...tdCellOverride ?
|
|
3340
|
+
...tdCellOverride ? chunkSN5EUDIT_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3341
3341
|
...diag ? { position: "relative" } : void 0
|
|
3342
3342
|
};
|
|
3343
3343
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3347,7 +3347,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3347
3347
|
"border px-1 py-0.5 align-top",
|
|
3348
3348
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3349
3349
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3350
|
-
|
|
3350
|
+
chunkSN5EUDIT_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3351
3351
|
),
|
|
3352
3352
|
colSpan,
|
|
3353
3353
|
rowSpan: rSpan,
|
|
@@ -3358,7 +3358,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3358
3358
|
}
|
|
3359
3359
|
event.stopPropagation();
|
|
3360
3360
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3361
|
-
const rect =
|
|
3361
|
+
const rect = chunkSN5EUDIT_js.computeSelectionRect(
|
|
3362
3362
|
selectedCell.rowIndex,
|
|
3363
3363
|
selectedCell.columnIndex,
|
|
3364
3364
|
rowIndex,
|
|
@@ -3368,7 +3368,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3368
3368
|
options?.onSelectCell?.({
|
|
3369
3369
|
rowIndex: selectedCell.rowIndex,
|
|
3370
3370
|
columnIndex: selectedCell.columnIndex,
|
|
3371
|
-
selectedCells:
|
|
3371
|
+
selectedCells: chunkSN5EUDIT_js.rectToCells(rect)
|
|
3372
3372
|
});
|
|
3373
3373
|
} else {
|
|
3374
3374
|
options?.onSelectCell?.({
|
|
@@ -3427,23 +3427,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3427
3427
|
);
|
|
3428
3428
|
}
|
|
3429
3429
|
function partAttrs(part) {
|
|
3430
|
-
return part ?
|
|
3430
|
+
return part ? chunkSN5EUDIT_js.chartPartToAttrs(part) : void 0;
|
|
3431
3431
|
}
|
|
3432
3432
|
function resolveReactPalette(chartData) {
|
|
3433
3433
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3434
3434
|
return chartData.colorPalette;
|
|
3435
3435
|
}
|
|
3436
|
-
return [...
|
|
3436
|
+
return [...chunkSN5EUDIT_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3437
3437
|
}
|
|
3438
3438
|
function buildReactChartViewModel(element) {
|
|
3439
3439
|
if (element.type !== "chart" || !element.chartData) {
|
|
3440
|
-
return
|
|
3440
|
+
return chunkSN5EUDIT_js.buildChartViewModel(element);
|
|
3441
3441
|
}
|
|
3442
3442
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3443
3443
|
...element,
|
|
3444
3444
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3445
3445
|
};
|
|
3446
|
-
return
|
|
3446
|
+
return chunkSN5EUDIT_js.buildChartViewModel(themedElement);
|
|
3447
3447
|
}
|
|
3448
3448
|
function renderPrimitive(prim, key) {
|
|
3449
3449
|
switch (prim.kind) {
|
|
@@ -3592,7 +3592,7 @@ function renderText(t, key) {
|
|
|
3592
3592
|
);
|
|
3593
3593
|
}
|
|
3594
3594
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3595
|
-
const legendItems =
|
|
3595
|
+
const legendItems = chunkSN5EUDIT_js.computeChartLegendLayout(vm);
|
|
3596
3596
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3597
3597
|
"svg",
|
|
3598
3598
|
{
|
|
@@ -3645,7 +3645,18 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3645
3645
|
fontFamily: vm.titleStyle?.fontFamily,
|
|
3646
3646
|
fill: vm.titleStyle?.fill ?? "#1e293b",
|
|
3647
3647
|
"data-chart-part": "title",
|
|
3648
|
-
children: vm.
|
|
3648
|
+
children: vm.titleRunSpans && vm.titleRunSpans.length > 0 ? vm.titleRunSpans.map((run, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3649
|
+
"tspan",
|
|
3650
|
+
{
|
|
3651
|
+
fontSize: run.fontSize,
|
|
3652
|
+
fontWeight: run.fontWeight,
|
|
3653
|
+
fontStyle: run.fontStyle,
|
|
3654
|
+
fontFamily: run.fontFamily,
|
|
3655
|
+
fill: run.fill,
|
|
3656
|
+
children: run.text
|
|
3657
|
+
},
|
|
3658
|
+
`${elementId}-title-run-${i}`
|
|
3659
|
+
)) : vm.title
|
|
3649
3660
|
}
|
|
3650
3661
|
),
|
|
3651
3662
|
vm.gridlines.map((gl, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3719,17 +3730,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3719
3730
|
}
|
|
3720
3731
|
function renderChartElement(element) {
|
|
3721
3732
|
if (element.type !== "chart") {
|
|
3722
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3733
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkL3ZIBQEB_js.translationsEn["pptx.chart.heading"] });
|
|
3723
3734
|
}
|
|
3724
3735
|
const chartData = element.chartData;
|
|
3725
3736
|
if (!chartData || chartData.series.length === 0) {
|
|
3726
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3737
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkL3ZIBQEB_js.translationsEn["pptx.chart.heading"] });
|
|
3727
3738
|
}
|
|
3728
|
-
const kind =
|
|
3739
|
+
const kind = chunkSN5EUDIT_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3729
3740
|
return renderChartViewModel(
|
|
3730
3741
|
element.id,
|
|
3731
3742
|
buildReactChartViewModel(element),
|
|
3732
|
-
|
|
3743
|
+
chunkSN5EUDIT_js.chartPreserveAspectRatio(kind)
|
|
3733
3744
|
);
|
|
3734
3745
|
}
|
|
3735
3746
|
|
|
@@ -3749,14 +3760,14 @@ function buildNotesPdf(pages) {
|
|
|
3749
3760
|
notes: page.notes,
|
|
3750
3761
|
slideNumber: page.slideNumber
|
|
3751
3762
|
}));
|
|
3752
|
-
const bytes =
|
|
3763
|
+
const bytes = chunkSN5EUDIT_js.buildNotesPdfBytes(images, meta);
|
|
3753
3764
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3754
3765
|
return URL.createObjectURL(blob);
|
|
3755
3766
|
}
|
|
3756
3767
|
|
|
3757
3768
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3758
3769
|
function buildPdfFromImageData(images) {
|
|
3759
|
-
const bytes =
|
|
3770
|
+
const bytes = chunkSN5EUDIT_js.buildSlidesPdfBytes(images);
|
|
3760
3771
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3761
3772
|
return URL.createObjectURL(blob);
|
|
3762
3773
|
}
|
|
@@ -3765,7 +3776,7 @@ function buildPdfFromImageData(images) {
|
|
|
3765
3776
|
var activePreview = null;
|
|
3766
3777
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3767
3778
|
stopPreviewAnimation();
|
|
3768
|
-
const descriptor =
|
|
3779
|
+
const descriptor = chunkSN5EUDIT_js.buildPreviewAnimation(preset, options);
|
|
3769
3780
|
if (!descriptor) {
|
|
3770
3781
|
return;
|
|
3771
3782
|
}
|
|
@@ -3778,7 +3789,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3778
3789
|
return;
|
|
3779
3790
|
}
|
|
3780
3791
|
const stage = domEl.offsetParent;
|
|
3781
|
-
const descriptor =
|
|
3792
|
+
const descriptor = chunkSN5EUDIT_js.buildMotionPathPreview({
|
|
3782
3793
|
path,
|
|
3783
3794
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3784
3795
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|