pptx-react-viewer 3.9.0 → 3.10.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 +8 -0
- package/dist/{AiChatPanel-II6VOOAL.mjs → AiChatPanel-BQSUE2OO.mjs} +4 -4
- package/dist/AiChatPanel-BQSUE2OO.mjs.br +0 -0
- package/dist/AiChatPanel-BQSUE2OO.mjs.gz +0 -0
- package/dist/{AiChatPanel-3A42W7RW.js → AiChatPanel-NSVSBJC7.js} +25 -25
- package/dist/AiChatPanel-NSVSBJC7.js.br +0 -0
- package/dist/AiChatPanel-NSVSBJC7.js.gz +0 -0
- package/dist/{Area3DChartScene-JM3CQ3WQ.mjs → Area3DChartScene-2FQHPGNE.mjs} +1 -1
- package/dist/{Area3DChartScene-JM3CQ3WQ.mjs.br → Area3DChartScene-2FQHPGNE.mjs.br} +0 -0
- package/dist/Area3DChartScene-2FQHPGNE.mjs.gz +0 -0
- package/dist/{Area3DChartScene-XJK4ZA4R.js → Area3DChartScene-V3W2V7N5.js} +2 -2
- package/dist/{Area3DChartScene-XJK4ZA4R.js.br → Area3DChartScene-V3W2V7N5.js.br} +0 -0
- package/dist/Area3DChartScene-V3W2V7N5.js.gz +0 -0
- package/dist/{Bar3DChartScene-RGRZY5P6.js → Bar3DChartScene-55XMAUC7.js} +2 -2
- package/dist/Bar3DChartScene-55XMAUC7.js.br +0 -0
- package/dist/Bar3DChartScene-55XMAUC7.js.gz +0 -0
- package/dist/{Bar3DChartScene-VNFWI2QG.mjs → Bar3DChartScene-PSJEVANA.mjs} +1 -1
- package/dist/{Bar3DChartScene-VNFWI2QG.mjs.br → Bar3DChartScene-PSJEVANA.mjs.br} +0 -0
- package/dist/Bar3DChartScene-PSJEVANA.mjs.gz +0 -0
- package/dist/{Line3DChartScene-MEY42DBF.js → Line3DChartScene-5KACYRSQ.js} +2 -2
- package/dist/{Line3DChartScene-MEY42DBF.js.br → Line3DChartScene-5KACYRSQ.js.br} +0 -0
- package/dist/Line3DChartScene-5KACYRSQ.js.gz +0 -0
- package/dist/{Line3DChartScene-GXOWGIFJ.mjs → Line3DChartScene-BUVNUFNO.mjs} +1 -1
- package/dist/{Line3DChartScene-GXOWGIFJ.mjs.br → Line3DChartScene-BUVNUFNO.mjs.br} +0 -0
- package/dist/Line3DChartScene-BUVNUFNO.mjs.gz +0 -0
- package/dist/{Model3DScene-MWXTGHDM.js → Model3DScene-6U6TN36M.js} +2 -2
- package/dist/Model3DScene-6U6TN36M.js.br +0 -0
- package/dist/Model3DScene-6U6TN36M.js.gz +0 -0
- package/dist/{Model3DScene-WJ3MMIZH.mjs → Model3DScene-REKMR2L6.mjs} +1 -1
- package/dist/Model3DScene-REKMR2L6.mjs.br +0 -0
- package/dist/Model3DScene-REKMR2L6.mjs.gz +0 -0
- package/dist/{PieChart3DScene-WXJEDYMK.mjs → PieChart3DScene-4L2VVIUJ.mjs} +1 -1
- package/dist/{PieChart3DScene-WXJEDYMK.mjs.br → PieChart3DScene-4L2VVIUJ.mjs.br} +0 -0
- package/dist/PieChart3DScene-4L2VVIUJ.mjs.gz +0 -0
- package/dist/{PieChart3DScene-FJJGOQIS.js → PieChart3DScene-MV3JF7EM.js} +2 -2
- package/dist/{PieChart3DScene-FJJGOQIS.js.br → PieChart3DScene-MV3JF7EM.js.br} +0 -0
- package/dist/PieChart3DScene-MV3JF7EM.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-IKPE2SVE.mjs → SurfaceChart3DScene-ARE7OBFI.mjs} +1 -1
- package/dist/SurfaceChart3DScene-ARE7OBFI.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-ARE7OBFI.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-VDK3F224.js → SurfaceChart3DScene-SFIOK3G3.js} +2 -2
- package/dist/{SurfaceChart3DScene-VDK3F224.js.br → SurfaceChart3DScene-SFIOK3G3.js.br} +0 -0
- package/dist/SurfaceChart3DScene-SFIOK3G3.js.gz +0 -0
- package/dist/{chunk-G3JPCRKN.js → chunk-2Q2NFPXA.js} +70189 -52226
- package/dist/chunk-2Q2NFPXA.js.br +0 -0
- package/dist/chunk-2Q2NFPXA.js.gz +0 -0
- package/dist/{chunk-3NIJ5HIZ.js → chunk-DZ3HWACD.js} +1818 -1279
- package/dist/chunk-DZ3HWACD.js.br +0 -0
- package/dist/chunk-DZ3HWACD.js.gz +0 -0
- package/dist/{chunk-5CPGDXD6.js → chunk-FHOUTYMB.js} +457 -445
- package/dist/chunk-FHOUTYMB.js.br +0 -0
- package/dist/chunk-FHOUTYMB.js.gz +0 -0
- package/dist/{chunk-PCCM7NVY.mjs → chunk-HJZA3O3S.mjs} +21 -10
- package/dist/chunk-HJZA3O3S.mjs.br +0 -0
- package/dist/chunk-HJZA3O3S.mjs.gz +0 -0
- package/dist/{chunk-K6Q6KLA6.js → chunk-HYUPPQJW.js} +6168 -1929
- package/dist/chunk-HYUPPQJW.js.br +0 -0
- package/dist/chunk-HYUPPQJW.js.gz +0 -0
- package/dist/{chunk-76Z3X6JX.mjs → chunk-KWHURCVT.mjs} +599 -60
- package/dist/chunk-KWHURCVT.mjs.br +0 -0
- package/dist/chunk-KWHURCVT.mjs.gz +0 -0
- package/dist/{chunk-NTWFXLZX.mjs → chunk-M6GIPAY4.mjs} +2 -2
- package/dist/chunk-M6GIPAY4.mjs.br +0 -0
- package/dist/chunk-M6GIPAY4.mjs.gz +0 -0
- package/dist/{chunk-3Y63XPIN.mjs → chunk-T4ZRSRQZ.mjs} +6164 -1925
- package/dist/chunk-T4ZRSRQZ.mjs.br +0 -0
- package/dist/chunk-T4ZRSRQZ.mjs.gz +0 -0
- package/dist/{chunk-JBSAKP4Z.mjs → chunk-TAGG5YNA.mjs} +61 -1
- package/dist/chunk-TAGG5YNA.mjs.br +0 -0
- package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
- package/dist/{chunk-VQX7G75Z.mjs → chunk-UKPGYJ7G.mjs} +70151 -52196
- package/dist/chunk-UKPGYJ7G.mjs.br +0 -0
- package/dist/chunk-UKPGYJ7G.mjs.gz +0 -0
- package/dist/{chunk-LBJAVP3H.js → chunk-XW46A7DN.js} +176 -176
- package/dist/chunk-XW46A7DN.js.br +0 -0
- package/dist/chunk-XW46A7DN.js.gz +0 -0
- package/dist/{chunk-TEVGDXVW.js → chunk-Y6GG2OOW.js} +61 -1
- package/dist/chunk-Y6GG2OOW.js.br +0 -0
- package/dist/chunk-Y6GG2OOW.js.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-CGKutKk1.d.ts.map +1 -1
- package/dist/index.d.ts +228 -19
- package/dist/index.d.ts.map +1 -1
- 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 +217 -10
- 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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-C8F_4Pzb.d.ts → useViewerBuildingBlocks-FbK-4ORi.d.ts} +2 -1
- package/dist/useViewerBuildingBlocks-FbK-4ORi.d.ts.map +1 -0
- package/dist/viewer/index.d.ts +207 -5
- package/dist/viewer/index.d.ts.map +1 -1
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +9 -9
- package/dist/AiChatPanel-3A42W7RW.js.br +0 -0
- package/dist/AiChatPanel-3A42W7RW.js.gz +0 -0
- package/dist/AiChatPanel-II6VOOAL.mjs.br +0 -0
- package/dist/AiChatPanel-II6VOOAL.mjs.gz +0 -0
- package/dist/Area3DChartScene-JM3CQ3WQ.mjs.gz +0 -0
- package/dist/Area3DChartScene-XJK4ZA4R.js.gz +0 -0
- package/dist/Bar3DChartScene-RGRZY5P6.js.br +0 -0
- package/dist/Bar3DChartScene-RGRZY5P6.js.gz +0 -0
- package/dist/Bar3DChartScene-VNFWI2QG.mjs.gz +0 -0
- package/dist/Line3DChartScene-GXOWGIFJ.mjs.gz +0 -0
- package/dist/Line3DChartScene-MEY42DBF.js.gz +0 -0
- package/dist/Model3DScene-MWXTGHDM.js.br +0 -0
- package/dist/Model3DScene-MWXTGHDM.js.gz +0 -0
- package/dist/Model3DScene-WJ3MMIZH.mjs.br +0 -0
- package/dist/Model3DScene-WJ3MMIZH.mjs.gz +0 -0
- package/dist/PieChart3DScene-FJJGOQIS.js.gz +0 -0
- package/dist/PieChart3DScene-WXJEDYMK.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-VDK3F224.js.gz +0 -0
- package/dist/chunk-3NIJ5HIZ.js.br +0 -0
- package/dist/chunk-3NIJ5HIZ.js.gz +0 -0
- package/dist/chunk-3Y63XPIN.mjs.br +0 -0
- package/dist/chunk-3Y63XPIN.mjs.gz +0 -0
- package/dist/chunk-5CPGDXD6.js.br +0 -0
- package/dist/chunk-5CPGDXD6.js.gz +0 -0
- package/dist/chunk-76Z3X6JX.mjs.br +0 -0
- package/dist/chunk-76Z3X6JX.mjs.gz +0 -0
- package/dist/chunk-G3JPCRKN.js.br +0 -0
- package/dist/chunk-G3JPCRKN.js.gz +0 -0
- package/dist/chunk-JBSAKP4Z.mjs.br +0 -0
- package/dist/chunk-JBSAKP4Z.mjs.gz +0 -0
- package/dist/chunk-K6Q6KLA6.js.br +0 -0
- package/dist/chunk-K6Q6KLA6.js.gz +0 -0
- package/dist/chunk-LBJAVP3H.js.br +0 -0
- package/dist/chunk-LBJAVP3H.js.gz +0 -0
- package/dist/chunk-NTWFXLZX.mjs.br +0 -0
- package/dist/chunk-NTWFXLZX.mjs.gz +0 -0
- package/dist/chunk-PCCM7NVY.mjs.br +0 -0
- package/dist/chunk-PCCM7NVY.mjs.gz +0 -0
- package/dist/chunk-TEVGDXVW.js.br +0 -0
- package/dist/chunk-TEVGDXVW.js.gz +0 -0
- package/dist/chunk-VQX7G75Z.mjs.br +0 -0
- package/dist/chunk-VQX7G75Z.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-C8F_4Pzb.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk2Q2NFPXA_js = require('./chunk-2Q2NFPXA.js');
|
|
4
|
+
var chunkY6GG2OOW_js = require('./chunk-Y6GG2OOW.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 chunk2Q2NFPXA_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 chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_js.hasShapeProperties(element)) {
|
|
236
236
|
return void 0;
|
|
237
237
|
}
|
|
238
|
-
const geometry =
|
|
238
|
+
const geometry = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_js.hasShapeProperties(element) ? chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_js.isImageLikeElement(element)) {
|
|
276
276
|
return void 0;
|
|
277
277
|
}
|
|
278
|
-
return
|
|
278
|
+
return chunk2Q2NFPXA_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
|
|
279
279
|
}
|
|
280
280
|
function getImageTilingStyle2(element) {
|
|
281
|
-
return
|
|
281
|
+
return chunk2Q2NFPXA_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" } : chunk2Q2NFPXA_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 } = chunk2Q2NFPXA_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 chunk2Q2NFPXA_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 (chunk2Q2NFPXA_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 : chunkY6GG2OOW_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
|
+
...{ [chunk2Q2NFPXA_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
621
621
|
children: [
|
|
622
622
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
623
623
|
FallbackIcon,
|
|
624
624
|
{
|
|
625
|
-
paths:
|
|
625
|
+
paths: chunk2Q2NFPXA_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(chunk2Q2NFPXA_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
|
+
...{ [chunk2Q2NFPXA_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
648
648
|
children: [
|
|
649
649
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
650
650
|
FallbackIcon,
|
|
651
651
|
{
|
|
652
|
-
paths:
|
|
652
|
+
paths: chunk2Q2NFPXA_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(chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 ? chunkY6GG2OOW_js.translationsEn["pptx.media.posterAlt"] : chunkY6GG2OOW_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
678
678
|
className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
|
|
679
|
-
style:
|
|
679
|
+
style: chunk2Q2NFPXA_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: chunkY6GG2OOW_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 = chunk2Q2NFPXA_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: chunkY6GG2OOW_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 chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_js.hasTextProperties(element)) {
|
|
786
786
|
return {};
|
|
787
787
|
}
|
|
788
|
-
const writingMode =
|
|
789
|
-
const textOrientation =
|
|
790
|
-
const verticalDirection =
|
|
788
|
+
const writingMode = chunk2Q2NFPXA_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
789
|
+
const textOrientation = chunk2Q2NFPXA_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
790
|
+
const verticalDirection = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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
|
+
...chunk2Q2NFPXA_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, elementSize) {
|
|
830
|
-
return
|
|
830
|
+
return chunk2Q2NFPXA_js.buildTextBody3DSceneStyle(textStyle, elementSize);
|
|
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}${chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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: chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 ? chunk2Q2NFPXA_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] = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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: chunk2Q2NFPXA_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 = chunk2Q2NFPXA_js.convertOmmlToMathMl(equationXml);
|
|
1211
|
+
const safeMathml = mathml ? chunk2Q2NFPXA_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: chunkY6GG2OOW_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 = chunk2Q2NFPXA_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 * chunk2Q2NFPXA_js.resolveAutoFitFontScale(element.textStyle);
|
|
1349
1349
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1350
|
-
const fontKerning =
|
|
1350
|
+
const fontKerning = chunk2Q2NFPXA_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
|
|
1351
1351
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1352
|
-
const baseFontFamily = rawFontFamily ?
|
|
1352
|
+
const baseFontFamily = rawFontFamily ? chunk2Q2NFPXA_js.getSubstituteFontFamily(
|
|
1353
1353
|
rawFontFamily,
|
|
1354
|
-
|
|
1354
|
+
chunk2Q2NFPXA_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1355
1355
|
) : DEFAULT_FONT_FAMILY2;
|
|
1356
|
-
const scriptFonts =
|
|
1357
|
-
const needsScriptFonts =
|
|
1356
|
+
const scriptFonts = chunk2Q2NFPXA_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
|
|
1357
|
+
const needsScriptFonts = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_js.pieceLetterSpacing(
|
|
1374
1374
|
authoredLetterSpacing,
|
|
1375
|
-
|
|
1375
|
+
chunk2Q2NFPXA_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1376
1376
|
);
|
|
1377
|
-
const hollow =
|
|
1377
|
+
const hollow = chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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
|
+
chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_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 = chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_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 ${chunk2Q2NFPXA_js.colorWithOpacity(
|
|
1590
|
+
chunk2Q2NFPXA_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
1591
1591
|
opacity
|
|
1592
1592
|
)}`;
|
|
1593
1593
|
}
|
|
1594
1594
|
function buildLineGlowFilter(element) {
|
|
1595
|
-
if (!
|
|
1595
|
+
if (!chunk2Q2NFPXA_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 = chunk2Q2NFPXA_js.colorWithOpacity(chunk2Q2NFPXA_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 (!chunk2Q2NFPXA_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 = chunk2Q2NFPXA_js.hexToRgbUnit(color1);
|
|
1619
|
+
const c2 = chunk2Q2NFPXA_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 chunk2Q2NFPXA_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, elementSize) {
|
|
1672
|
-
|
|
1672
|
+
chunk2Q2NFPXA_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback, elementSize);
|
|
1673
1673
|
}
|
|
1674
1674
|
|
|
1675
1675
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -1677,11 +1677,11 @@ 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" && chunk2Q2NFPXA_js.isWedgeCalloutPresetShape(element.shapeType);
|
|
1681
1681
|
}
|
|
1682
1682
|
function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
|
|
1683
1683
|
if (element.type === "group") {
|
|
1684
|
-
const fx2 =
|
|
1684
|
+
const fx2 = chunk2Q2NFPXA_js.getComputedEffectStyle(element);
|
|
1685
1685
|
const groupStyle = {};
|
|
1686
1686
|
if (fx2.filter) {
|
|
1687
1687
|
groupStyle.filter = fx2.filter;
|
|
@@ -1691,13 +1691,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1691
1691
|
}
|
|
1692
1692
|
return groupStyle;
|
|
1693
1693
|
}
|
|
1694
|
-
if (!
|
|
1694
|
+
if (!chunk2Q2NFPXA_js.hasShapeProperties(element)) {
|
|
1695
1695
|
return {};
|
|
1696
1696
|
}
|
|
1697
1697
|
const ss = element.shapeStyle;
|
|
1698
|
-
const fill = animatesFill ? void 0 :
|
|
1699
|
-
const fx =
|
|
1700
|
-
const stroke =
|
|
1698
|
+
const fill = animatesFill ? void 0 : chunk2Q2NFPXA_js.getComputedFillStyle(element, parentGroupFill);
|
|
1699
|
+
const fx = chunk2Q2NFPXA_js.getComputedEffectStyle(element);
|
|
1700
|
+
const stroke = chunk2Q2NFPXA_js.getComputedStrokeStyle(element);
|
|
1701
1701
|
const base = {
|
|
1702
1702
|
// A gradient fill REPLACES the solid fill, it does not sit on top of it;
|
|
1703
1703
|
// the whole precedence lives in shared's `getComputedFillStyle`.
|
|
@@ -1736,7 +1736,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1736
1736
|
};
|
|
1737
1737
|
Object.assign(
|
|
1738
1738
|
base,
|
|
1739
|
-
|
|
1739
|
+
chunk2Q2NFPXA_js.getAnimationColorBaseStyle(element, {
|
|
1740
1740
|
animatesFill,
|
|
1741
1741
|
animatesStroke,
|
|
1742
1742
|
parentGroupFill
|
|
@@ -1751,7 +1751,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1751
1751
|
width: element.width,
|
|
1752
1752
|
height: element.height
|
|
1753
1753
|
});
|
|
1754
|
-
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) ||
|
|
1754
|
+
if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunk2Q2NFPXA_js.isStrokeOnlyPresetElement(element)) {
|
|
1755
1755
|
base.backgroundColor = "transparent";
|
|
1756
1756
|
base.backgroundImage = void 0;
|
|
1757
1757
|
base.borderWidth = void 0;
|
|
@@ -1765,7 +1765,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1765
1765
|
if (rendersWedgeCalloutVector(element)) {
|
|
1766
1766
|
return base;
|
|
1767
1767
|
}
|
|
1768
|
-
const geometry =
|
|
1768
|
+
const geometry = chunk2Q2NFPXA_js.resolveShapeGeometry(element);
|
|
1769
1769
|
switch (geometry.kind) {
|
|
1770
1770
|
case "bare":
|
|
1771
1771
|
return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
|
|
@@ -1791,13 +1791,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
|
|
|
1791
1791
|
function getConnectorAdjustment(element, key, fallback) {
|
|
1792
1792
|
const direct = element.shapeAdjustments?.[key];
|
|
1793
1793
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
1794
|
-
return
|
|
1794
|
+
return chunk2Q2NFPXA_js.clampUnitInterval(direct / 1e5);
|
|
1795
1795
|
}
|
|
1796
1796
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
1797
1797
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
1798
|
-
return
|
|
1798
|
+
return chunk2Q2NFPXA_js.clampUnitInterval(fallbackKey / 1e5);
|
|
1799
1799
|
}
|
|
1800
|
-
return
|
|
1800
|
+
return chunk2Q2NFPXA_js.clampUnitInterval(fallback);
|
|
1801
1801
|
}
|
|
1802
1802
|
function getConnectorPathGeometry(element) {
|
|
1803
1803
|
const width = Math.max(element.width, 0);
|
|
@@ -1962,11 +1962,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
1962
1962
|
strokePaint,
|
|
1963
1963
|
strokeWidth,
|
|
1964
1964
|
dashArray,
|
|
1965
|
-
lineCap:
|
|
1965
|
+
lineCap: chunk2Q2NFPXA_js.svgLineCap(shapeStyle?.lineCap),
|
|
1966
1966
|
lineJoin,
|
|
1967
1967
|
miterLimit,
|
|
1968
|
-
offsets:
|
|
1969
|
-
widths:
|
|
1968
|
+
offsets: chunk2Q2NFPXA_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
1969
|
+
widths: chunk2Q2NFPXA_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
1970
1970
|
};
|
|
1971
1971
|
}
|
|
1972
1972
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -1989,12 +1989,12 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
1989
1989
|
}
|
|
1990
1990
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
1991
1991
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
1992
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
1992
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk2Q2NFPXA_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
1993
1993
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
1994
|
-
const gradientPaint = gradient ?
|
|
1994
|
+
const gradientPaint = gradient ? chunk2Q2NFPXA_js.svgGradientFillRef(gradient) : void 0;
|
|
1995
1995
|
const nodes = [];
|
|
1996
1996
|
if (subpaths && needsPerSubpath) {
|
|
1997
|
-
const paints =
|
|
1997
|
+
const paints = chunk2Q2NFPXA_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
1998
1998
|
paints.forEach((paint, idx) => {
|
|
1999
1999
|
if (paint.fill !== "none") {
|
|
2000
2000
|
const mode = subpaths[idx]?.fillMode;
|
|
@@ -2023,7 +2023,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2023
2023
|
"path",
|
|
2024
2024
|
{
|
|
2025
2025
|
d: pathData,
|
|
2026
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2026
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunk2Q2NFPXA_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2027
2027
|
stroke: "none",
|
|
2028
2028
|
vectorEffect: "non-scaling-stroke"
|
|
2029
2029
|
},
|
|
@@ -2049,14 +2049,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2049
2049
|
);
|
|
2050
2050
|
}
|
|
2051
2051
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2052
|
-
if (!
|
|
2052
|
+
if (!chunk2Q2NFPXA_js.hasShapeProperties(element)) {
|
|
2053
2053
|
return null;
|
|
2054
2054
|
}
|
|
2055
2055
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2056
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2057
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2058
|
-
const dashType =
|
|
2059
|
-
const dashArray =
|
|
2056
|
+
const fillPaint = animatesFill ? "inherit" : chunk2Q2NFPXA_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2057
|
+
const strokePaint = animatesStroke ? "inherit" : chunk2Q2NFPXA_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2058
|
+
const dashType = chunk2Q2NFPXA_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2059
|
+
const dashArray = chunk2Q2NFPXA_js.getSvgStrokeDasharray(
|
|
2060
2060
|
dashType,
|
|
2061
2061
|
Math.max(strokeWidth, 1),
|
|
2062
2062
|
element.shapeStyle?.customDashSegments
|
|
@@ -2137,13 +2137,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2137
2137
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2138
2138
|
// without this the shape fell back to the parser's representative solid
|
|
2139
2139
|
// and lost every fade (issue #132).
|
|
2140
|
-
|
|
2140
|
+
chunk2Q2NFPXA_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2141
2141
|
);
|
|
2142
2142
|
}
|
|
2143
|
-
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !
|
|
2143
|
+
if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunk2Q2NFPXA_js.buildStrokeOutline(element)) {
|
|
2144
2144
|
const width = Math.max(element.width, 1);
|
|
2145
2145
|
const height = Math.max(element.height, 1);
|
|
2146
|
-
const geometry =
|
|
2146
|
+
const geometry = chunk2Q2NFPXA_js.getPresetShapeVectorGeometry(
|
|
2147
2147
|
element.shapeType || "rect",
|
|
2148
2148
|
width,
|
|
2149
2149
|
height,
|
|
@@ -2171,18 +2171,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2171
2171
|
);
|
|
2172
2172
|
}
|
|
2173
2173
|
}
|
|
2174
|
-
if (element.type === "shape" &&
|
|
2174
|
+
if (element.type === "shape" && chunk2Q2NFPXA_js.isWedgeCalloutPresetShape(element.shapeType)) {
|
|
2175
2175
|
const width = Math.max(element.width, 1);
|
|
2176
2176
|
const height = Math.max(element.height, 1);
|
|
2177
|
-
const geometry =
|
|
2177
|
+
const geometry = chunk2Q2NFPXA_js.getPresetShapeVectorGeometry(
|
|
2178
2178
|
element.shapeType,
|
|
2179
2179
|
width,
|
|
2180
2180
|
height,
|
|
2181
2181
|
element.shapeAdjustments
|
|
2182
2182
|
);
|
|
2183
2183
|
if (geometry) {
|
|
2184
|
-
const gradient =
|
|
2185
|
-
const gradientPaint = gradient ?
|
|
2184
|
+
const gradient = chunk2Q2NFPXA_js.buildSvgGradientDef(element.shapeStyle, element.id);
|
|
2185
|
+
const gradientPaint = gradient ? chunk2Q2NFPXA_js.svgGradientFillRef(gradient) : void 0;
|
|
2186
2186
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2187
2187
|
"svg",
|
|
2188
2188
|
{
|
|
@@ -2215,18 +2215,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2215
2215
|
);
|
|
2216
2216
|
}
|
|
2217
2217
|
}
|
|
2218
|
-
if (
|
|
2218
|
+
if (chunk2Q2NFPXA_js.isCalloutShape(normalizedType)) {
|
|
2219
2219
|
const width = Math.max(element.width, 1);
|
|
2220
2220
|
const height = Math.max(element.height, 1);
|
|
2221
|
-
const geometry =
|
|
2221
|
+
const geometry = chunk2Q2NFPXA_js.getCalloutLeaderLineGeometry(
|
|
2222
2222
|
normalizedType,
|
|
2223
2223
|
width,
|
|
2224
2224
|
height,
|
|
2225
2225
|
element.shapeAdjustments
|
|
2226
2226
|
);
|
|
2227
2227
|
if (geometry && geometry.points.length >= 2) {
|
|
2228
|
-
const leaderPath =
|
|
2229
|
-
const bounds =
|
|
2228
|
+
const leaderPath = chunk2Q2NFPXA_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2229
|
+
const bounds = chunk2Q2NFPXA_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2230
2230
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2231
2231
|
const offsetLeft = bounds.minX;
|
|
2232
2232
|
const offsetTop = bounds.minY;
|
|
@@ -2289,10 +2289,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2289
2289
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2290
2290
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2291
2291
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2292
|
-
const connectorLineCap =
|
|
2292
|
+
const connectorLineCap = chunk2Q2NFPXA_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2293
2293
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2294
|
-
const offsets =
|
|
2295
|
-
const widths =
|
|
2294
|
+
const offsets = chunk2Q2NFPXA_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2295
|
+
const widths = chunk2Q2NFPXA_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2296
2296
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2297
2297
|
"svg",
|
|
2298
2298
|
{
|
|
@@ -2359,15 +2359,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2359
2359
|
}
|
|
2360
2360
|
const rawStops = stops.map((gs) => {
|
|
2361
2361
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2362
|
-
const color =
|
|
2363
|
-
const opacity =
|
|
2362
|
+
const color = chunk2Q2NFPXA_js.parseDrawingColor(gs) ?? "#888888";
|
|
2363
|
+
const opacity = chunk2Q2NFPXA_js.parseDrawingColorOpacity(gs);
|
|
2364
2364
|
return { position: pos, color, opacity };
|
|
2365
2365
|
}).sort((a, b) => a.position - b.position);
|
|
2366
|
-
const stopStrings = rawStops.map((s) => `${
|
|
2366
|
+
const stopStrings = rawStops.map((s) => `${chunk2Q2NFPXA_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
|
|
2367
2367
|
const lin = gradFill["a:lin"];
|
|
2368
2368
|
if (lin) {
|
|
2369
2369
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
2370
|
-
const angleDeg = Math.round(
|
|
2370
|
+
const angleDeg = Math.round(chunk2Q2NFPXA_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
2371
2371
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
2372
2372
|
}
|
|
2373
2373
|
const path = gradFill["a:path"];
|
|
@@ -2381,7 +2381,7 @@ function parseGradientFillCss(gradFill) {
|
|
|
2381
2381
|
b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
|
|
2382
2382
|
} : void 0;
|
|
2383
2383
|
if (pathType === "rect") {
|
|
2384
|
-
return
|
|
2384
|
+
return chunk2Q2NFPXA_js.buildRectPathGradient(rawStops, void 0, fillToRect);
|
|
2385
2385
|
}
|
|
2386
2386
|
let cx = 50;
|
|
2387
2387
|
let cy = 50;
|
|
@@ -2403,8 +2403,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
2403
2403
|
if (!pattFill) {
|
|
2404
2404
|
return void 0;
|
|
2405
2405
|
}
|
|
2406
|
-
const fgColor =
|
|
2407
|
-
const bgColor =
|
|
2406
|
+
const fgColor = chunk2Q2NFPXA_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
2407
|
+
const bgColor = chunk2Q2NFPXA_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
2408
2408
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
2409
2409
|
switch (preset) {
|
|
2410
2410
|
case "ltHorz":
|
|
@@ -2515,11 +2515,11 @@ function parseCellBorders(cellProperties) {
|
|
|
2515
2515
|
const prstDash = ln["a:prstDash"];
|
|
2516
2516
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
2517
2517
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
2518
|
-
const color =
|
|
2518
|
+
const color = chunk2Q2NFPXA_js.parseDrawingColor(ln["a:solidFill"]);
|
|
2519
2519
|
if (color) {
|
|
2520
|
-
const opacity =
|
|
2520
|
+
const opacity = chunk2Q2NFPXA_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
2521
2521
|
const key = `${edge.prefix}`;
|
|
2522
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
2522
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk2Q2NFPXA_js.colorWithOpacity(color, opacity)}`;
|
|
2523
2523
|
}
|
|
2524
2524
|
}
|
|
2525
2525
|
return borderStyle;
|
|
@@ -2532,7 +2532,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2532
2532
|
const textShadowParts = [];
|
|
2533
2533
|
const outerShdw = effectLst["a:outerShdw"];
|
|
2534
2534
|
if (outerShdw) {
|
|
2535
|
-
const shdwColor =
|
|
2535
|
+
const shdwColor = chunk2Q2NFPXA_js.parseDrawingColor(outerShdw);
|
|
2536
2536
|
if (shdwColor) {
|
|
2537
2537
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
2538
2538
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -2550,7 +2550,7 @@ function parseCellTextEffects(runProps) {
|
|
|
2550
2550
|
}
|
|
2551
2551
|
const glow = effectLst["a:glow"];
|
|
2552
2552
|
if (glow) {
|
|
2553
|
-
const glowColor =
|
|
2553
|
+
const glowColor = chunk2Q2NFPXA_js.parseDrawingColor(glow);
|
|
2554
2554
|
if (glowColor) {
|
|
2555
2555
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
2556
2556
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -2630,10 +2630,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2630
2630
|
if (runProps?.["@_u"] !== void 0) {
|
|
2631
2631
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
2632
2632
|
}
|
|
2633
|
-
const runColor =
|
|
2633
|
+
const runColor = chunk2Q2NFPXA_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk2Q2NFPXA_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
2634
2634
|
if (runColor) {
|
|
2635
|
-
const opacity =
|
|
2636
|
-
cellStyle.color =
|
|
2635
|
+
const opacity = chunk2Q2NFPXA_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
2636
|
+
cellStyle.color = chunk2Q2NFPXA_js.colorWithOpacity(runColor, opacity);
|
|
2637
2637
|
}
|
|
2638
2638
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
2639
2639
|
if (fontFamily) {
|
|
@@ -2643,15 +2643,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2643
2643
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
2644
2644
|
}
|
|
2645
2645
|
const cellProperties = cellXml["a:tcPr"];
|
|
2646
|
-
const cellFill =
|
|
2646
|
+
const cellFill = chunk2Q2NFPXA_js.parseDrawingColor(
|
|
2647
2647
|
cellProperties?.["a:solidFill"],
|
|
2648
2648
|
schemeColorOverrides
|
|
2649
2649
|
);
|
|
2650
2650
|
if (cellFill) {
|
|
2651
|
-
const opacity =
|
|
2651
|
+
const opacity = chunk2Q2NFPXA_js.parseDrawingColorOpacity(
|
|
2652
2652
|
cellProperties?.["a:solidFill"]
|
|
2653
2653
|
);
|
|
2654
|
-
cellStyle.backgroundColor =
|
|
2654
|
+
cellStyle.backgroundColor = chunk2Q2NFPXA_js.colorWithOpacity(cellFill, opacity);
|
|
2655
2655
|
} else {
|
|
2656
2656
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
2657
2657
|
if (gradCss) {
|
|
@@ -2666,16 +2666,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
2666
2666
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
2667
2667
|
Object.assign(cellStyle, edgeBorders);
|
|
2668
2668
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
2669
|
-
const borderColor =
|
|
2669
|
+
const borderColor = chunk2Q2NFPXA_js.parseDrawingColor(
|
|
2670
2670
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
2671
2671
|
schemeColorOverrides
|
|
2672
|
-
) ||
|
|
2672
|
+
) || chunk2Q2NFPXA_js.parseDrawingColor(
|
|
2673
2673
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
2674
2674
|
schemeColorOverrides
|
|
2675
|
-
) ||
|
|
2675
|
+
) || chunk2Q2NFPXA_js.parseDrawingColor(
|
|
2676
2676
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
2677
2677
|
schemeColorOverrides
|
|
2678
|
-
) ||
|
|
2678
|
+
) || chunk2Q2NFPXA_js.parseDrawingColor(
|
|
2679
2679
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
2680
2680
|
schemeColorOverrides
|
|
2681
2681
|
);
|
|
@@ -2747,7 +2747,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
|
|
|
2747
2747
|
if (element.type !== "table") {
|
|
2748
2748
|
return void 0;
|
|
2749
2749
|
}
|
|
2750
|
-
return
|
|
2750
|
+
return chunk2Q2NFPXA_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
2751
2751
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2752
2752
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2753
2753
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2823,7 +2823,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2823
2823
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2824
2824
|
"span",
|
|
2825
2825
|
{
|
|
2826
|
-
style: { position: "relative", ...
|
|
2826
|
+
style: { position: "relative", ...chunk2Q2NFPXA_js.cellRunStyle(run) },
|
|
2827
2827
|
children: run.text
|
|
2828
2828
|
},
|
|
2829
2829
|
`r-${index}`
|
|
@@ -2831,7 +2831,7 @@ function renderTableCellContent(cell, fallbackText) {
|
|
|
2831
2831
|
});
|
|
2832
2832
|
}
|
|
2833
2833
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
2834
|
-
return
|
|
2834
|
+
return chunk2Q2NFPXA_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
2835
2835
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
2836
2836
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
2837
2837
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -2964,7 +2964,7 @@ function TableResizeOverlay({
|
|
|
2964
2964
|
const containerRef = React7.useRef(null);
|
|
2965
2965
|
const [rowBounds, setRowBounds] = React7.useState([]);
|
|
2966
2966
|
const dragRef = React7.useRef(null);
|
|
2967
|
-
const colBoundaries = React7.useMemo(() =>
|
|
2967
|
+
const colBoundaries = React7.useMemo(() => chunk2Q2NFPXA_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
2968
2968
|
const measureRows = React7.useCallback(() => {
|
|
2969
2969
|
const container = containerRef.current;
|
|
2970
2970
|
if (!container) {
|
|
@@ -3011,11 +3011,11 @@ function TableResizeOverlay({
|
|
|
3011
3011
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3012
3012
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3013
3013
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3014
|
-
onResizeColumns(
|
|
3014
|
+
onResizeColumns(chunk2Q2NFPXA_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3015
3015
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3016
3016
|
const deltaY = e.clientY - drag.startPos;
|
|
3017
|
-
const newHeight =
|
|
3018
|
-
drag.initialRowHeight ??
|
|
3017
|
+
const newHeight = chunk2Q2NFPXA_js.computeResizedRowHeight(
|
|
3018
|
+
drag.initialRowHeight ?? chunk2Q2NFPXA_js.DEFAULT_ROW_HEIGHT,
|
|
3019
3019
|
deltaY
|
|
3020
3020
|
);
|
|
3021
3021
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3053,7 +3053,7 @@ function TableResizeOverlay({
|
|
|
3053
3053
|
e.stopPropagation();
|
|
3054
3054
|
const table = containerRef.current?.querySelector("table");
|
|
3055
3055
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3056
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3056
|
+
const actualHeight = tr?.offsetHeight ?? chunk2Q2NFPXA_js.DEFAULT_ROW_HEIGHT;
|
|
3057
3057
|
document.body.style.cursor = "row-resize";
|
|
3058
3058
|
document.body.style.userSelect = "none";
|
|
3059
3059
|
dragRef.current = {
|
|
@@ -3093,14 +3093,14 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3093
3093
|
const rowCount = tableData.rows.length;
|
|
3094
3094
|
const columnCount = tableData.columnWidths.length;
|
|
3095
3095
|
const selectedCell = options?.selectedCell || null;
|
|
3096
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3096
|
+
const isEditable = Boolean(options?.editable) && chunk2Q2NFPXA_js.canDrillDown(element);
|
|
3097
3097
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3098
3098
|
const sharedCtx = {
|
|
3099
3099
|
tableStyleMap: options?.styleCtx?.tableStyleMap,
|
|
3100
3100
|
colorScheme: options?.styleCtx?.theme?.colorScheme,
|
|
3101
3101
|
fontScheme: options?.styleCtx?.theme?.fontScheme
|
|
3102
3102
|
};
|
|
3103
|
-
const cellCss = (cell, rowIndex, cellIndex) =>
|
|
3103
|
+
const cellCss = (cell, rowIndex, cellIndex) => chunk2Q2NFPXA_js.tableCellCss(
|
|
3104
3104
|
tableData,
|
|
3105
3105
|
cell,
|
|
3106
3106
|
{ rowIndex, cellIndex, rowCount, columnCount },
|
|
@@ -3113,7 +3113,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3113
3113
|
}
|
|
3114
3114
|
const first = selectedCell.selectedCells[0];
|
|
3115
3115
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3116
|
-
return
|
|
3116
|
+
return chunk2Q2NFPXA_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
3117
3117
|
})();
|
|
3118
3118
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3119
3119
|
TableResizeOverlay,
|
|
@@ -3134,9 +3134,9 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3134
3134
|
{
|
|
3135
3135
|
className: "w-full h-full border-collapse table-fixed",
|
|
3136
3136
|
style: {
|
|
3137
|
-
fontFamily:
|
|
3137
|
+
fontFamily: chunk2Q2NFPXA_js.DEFAULT_FONT_FAMILY,
|
|
3138
3138
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3139
|
-
...
|
|
3139
|
+
...chunk2Q2NFPXA_js.tableContainerCss(tableData)
|
|
3140
3140
|
},
|
|
3141
3141
|
children: [
|
|
3142
3142
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3155,7 +3155,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3155
3155
|
return null;
|
|
3156
3156
|
}
|
|
3157
3157
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
3158
|
-
const isInMultiSelection =
|
|
3158
|
+
const isInMultiSelection = chunk2Q2NFPXA_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
3159
3159
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
3160
3160
|
const diag = getCellDiagonalBorders2(
|
|
3161
3161
|
cell.style,
|
|
@@ -3184,7 +3184,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3184
3184
|
}
|
|
3185
3185
|
event.stopPropagation();
|
|
3186
3186
|
if (event.shiftKey && selectedCell) {
|
|
3187
|
-
const rect =
|
|
3187
|
+
const rect = chunk2Q2NFPXA_js.computeSelectionRect(
|
|
3188
3188
|
selectedCell.rowIndex,
|
|
3189
3189
|
selectedCell.columnIndex,
|
|
3190
3190
|
rowIndex,
|
|
@@ -3194,7 +3194,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
3194
3194
|
options?.onSelectCell?.({
|
|
3195
3195
|
rowIndex: selectedCell.rowIndex,
|
|
3196
3196
|
columnIndex: selectedCell.columnIndex,
|
|
3197
|
-
selectedCells:
|
|
3197
|
+
selectedCells: chunk2Q2NFPXA_js.rectToCells(rect)
|
|
3198
3198
|
});
|
|
3199
3199
|
} else {
|
|
3200
3200
|
options?.onSelectCell?.({
|
|
@@ -3255,10 +3255,10 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3255
3255
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
3256
3256
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
3257
3257
|
}
|
|
3258
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3258
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.table.title"] });
|
|
3259
3259
|
}
|
|
3260
3260
|
const selectedCell = options?.selectedCell || null;
|
|
3261
|
-
const isEditable = Boolean(options?.editable) &&
|
|
3261
|
+
const isEditable = Boolean(options?.editable) && chunk2Q2NFPXA_js.canDrillDown(element);
|
|
3262
3262
|
const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
|
|
3263
3263
|
const tableEl = element;
|
|
3264
3264
|
const xmlSelectionRect = (() => {
|
|
@@ -3270,7 +3270,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3270
3270
|
}
|
|
3271
3271
|
const first = selectedCell.selectedCells[0];
|
|
3272
3272
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
3273
|
-
return
|
|
3273
|
+
return chunk2Q2NFPXA_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
3274
3274
|
})();
|
|
3275
3275
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
3276
3276
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3292,9 +3292,9 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3292
3292
|
{
|
|
3293
3293
|
className: "w-full h-full border-collapse table-fixed",
|
|
3294
3294
|
style: {
|
|
3295
|
-
fontFamily:
|
|
3295
|
+
fontFamily: chunk2Q2NFPXA_js.DEFAULT_FONT_FAMILY,
|
|
3296
3296
|
// `a:tblPr@rtl` mirrors the column order for RTL decks.
|
|
3297
|
-
...
|
|
3297
|
+
...chunk2Q2NFPXA_js.tableContainerCss(tableEl.tableData)
|
|
3298
3298
|
},
|
|
3299
3299
|
children: [
|
|
3300
3300
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3351,7 +3351,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3351
3351
|
color: textStyle.color,
|
|
3352
3352
|
...bandStyle,
|
|
3353
3353
|
...xmlCellStyle,
|
|
3354
|
-
...tdCellOverride ?
|
|
3354
|
+
...tdCellOverride ? chunk2Q2NFPXA_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
3355
3355
|
...diag ? { position: "relative" } : void 0
|
|
3356
3356
|
};
|
|
3357
3357
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3361,7 +3361,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3361
3361
|
"border px-1 py-0.5 align-top",
|
|
3362
3362
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
3363
3363
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
3364
|
-
|
|
3364
|
+
chunk2Q2NFPXA_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
3365
3365
|
),
|
|
3366
3366
|
colSpan,
|
|
3367
3367
|
rowSpan: rSpan,
|
|
@@ -3372,7 +3372,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3372
3372
|
}
|
|
3373
3373
|
event.stopPropagation();
|
|
3374
3374
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
3375
|
-
const rect =
|
|
3375
|
+
const rect = chunk2Q2NFPXA_js.computeSelectionRect(
|
|
3376
3376
|
selectedCell.rowIndex,
|
|
3377
3377
|
selectedCell.columnIndex,
|
|
3378
3378
|
rowIndex,
|
|
@@ -3382,7 +3382,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3382
3382
|
options?.onSelectCell?.({
|
|
3383
3383
|
rowIndex: selectedCell.rowIndex,
|
|
3384
3384
|
columnIndex: selectedCell.columnIndex,
|
|
3385
|
-
selectedCells:
|
|
3385
|
+
selectedCells: chunk2Q2NFPXA_js.rectToCells(rect)
|
|
3386
3386
|
});
|
|
3387
3387
|
} else {
|
|
3388
3388
|
options?.onSelectCell?.({
|
|
@@ -3441,23 +3441,23 @@ function renderTableElement(element, textStyle, options) {
|
|
|
3441
3441
|
);
|
|
3442
3442
|
}
|
|
3443
3443
|
function partAttrs(part) {
|
|
3444
|
-
return part ?
|
|
3444
|
+
return part ? chunk2Q2NFPXA_js.chartPartToAttrs(part) : void 0;
|
|
3445
3445
|
}
|
|
3446
3446
|
function resolveReactPalette(chartData) {
|
|
3447
3447
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
3448
3448
|
return chartData.colorPalette;
|
|
3449
3449
|
}
|
|
3450
|
-
return [...
|
|
3450
|
+
return [...chunk2Q2NFPXA_js.getChartStylePalette(chartData.style?.styleId)];
|
|
3451
3451
|
}
|
|
3452
3452
|
function buildReactChartViewModel(element) {
|
|
3453
3453
|
if (element.type !== "chart" || !element.chartData) {
|
|
3454
|
-
return
|
|
3454
|
+
return chunk2Q2NFPXA_js.buildChartViewModel(element);
|
|
3455
3455
|
}
|
|
3456
3456
|
const palette = resolveReactPalette(element.chartData), themedElement = {
|
|
3457
3457
|
...element,
|
|
3458
3458
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
3459
3459
|
};
|
|
3460
|
-
return
|
|
3460
|
+
return chunk2Q2NFPXA_js.buildChartViewModel(themedElement);
|
|
3461
3461
|
}
|
|
3462
3462
|
function renderPrimitive(prim, key) {
|
|
3463
3463
|
switch (prim.kind) {
|
|
@@ -3608,7 +3608,7 @@ function renderText(t, key) {
|
|
|
3608
3608
|
);
|
|
3609
3609
|
}
|
|
3610
3610
|
function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
3611
|
-
const legendItems =
|
|
3611
|
+
const legendItems = chunk2Q2NFPXA_js.computeChartLegendLayout(vm);
|
|
3612
3612
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3613
3613
|
"svg",
|
|
3614
3614
|
{
|
|
@@ -3746,17 +3746,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
|
|
|
3746
3746
|
}
|
|
3747
3747
|
function renderChartElement(element) {
|
|
3748
3748
|
if (element.type !== "chart") {
|
|
3749
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3749
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.chart.heading"] });
|
|
3750
3750
|
}
|
|
3751
3751
|
const chartData = element.chartData;
|
|
3752
3752
|
if (!chartData || chartData.series.length === 0) {
|
|
3753
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
3753
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.chart.heading"] });
|
|
3754
3754
|
}
|
|
3755
|
-
const kind =
|
|
3755
|
+
const kind = chunk2Q2NFPXA_js.resolveChartKind(chartData.chartType ?? "bar");
|
|
3756
3756
|
return renderChartViewModel(
|
|
3757
3757
|
element.id,
|
|
3758
3758
|
buildReactChartViewModel(element),
|
|
3759
|
-
|
|
3759
|
+
chunk2Q2NFPXA_js.chartPreserveAspectRatio(kind)
|
|
3760
3760
|
);
|
|
3761
3761
|
}
|
|
3762
3762
|
|
|
@@ -3776,14 +3776,14 @@ function buildNotesPdf(pages) {
|
|
|
3776
3776
|
notes: page.notes,
|
|
3777
3777
|
slideNumber: page.slideNumber
|
|
3778
3778
|
}));
|
|
3779
|
-
const bytes =
|
|
3779
|
+
const bytes = chunk2Q2NFPXA_js.buildNotesPdfBytes(images, meta);
|
|
3780
3780
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3781
3781
|
return URL.createObjectURL(blob);
|
|
3782
3782
|
}
|
|
3783
3783
|
|
|
3784
3784
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
3785
3785
|
function buildPdfFromImageData(images) {
|
|
3786
|
-
const bytes =
|
|
3786
|
+
const bytes = chunk2Q2NFPXA_js.buildSlidesPdfBytes(images);
|
|
3787
3787
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
3788
3788
|
return URL.createObjectURL(blob);
|
|
3789
3789
|
}
|
|
@@ -3792,7 +3792,7 @@ function buildPdfFromImageData(images) {
|
|
|
3792
3792
|
var activePreview = null;
|
|
3793
3793
|
function startPreviewAnimation(elementId, preset, options) {
|
|
3794
3794
|
stopPreviewAnimation();
|
|
3795
|
-
const descriptor =
|
|
3795
|
+
const descriptor = chunk2Q2NFPXA_js.buildPreviewAnimation(preset, options);
|
|
3796
3796
|
if (!descriptor) {
|
|
3797
3797
|
return;
|
|
3798
3798
|
}
|
|
@@ -3805,7 +3805,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
3805
3805
|
return;
|
|
3806
3806
|
}
|
|
3807
3807
|
const stage = domEl.offsetParent;
|
|
3808
|
-
const descriptor =
|
|
3808
|
+
const descriptor = chunk2Q2NFPXA_js.buildMotionPathPreview({
|
|
3809
3809
|
path,
|
|
3810
3810
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
3811
3811
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|