pptx-react-viewer 2.12.0 → 2.12.1
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 +2 -0
- package/dist/{AiChatPanel-CS4CONUO.mjs → AiChatPanel-CGGUPVQX.mjs} +4 -4
- package/dist/AiChatPanel-CGGUPVQX.mjs.br +0 -0
- package/dist/AiChatPanel-CGGUPVQX.mjs.gz +0 -0
- package/dist/{AiChatPanel-JIXSOZXN.js → AiChatPanel-UEFYTUJN.js} +23 -23
- package/dist/AiChatPanel-UEFYTUJN.js.br +0 -0
- package/dist/AiChatPanel-UEFYTUJN.js.gz +0 -0
- package/dist/{Model3DScene-5KMJ4JL6.js → Model3DScene-QYXJNALP.js} +2 -2
- package/dist/{Model3DScene-5KMJ4JL6.js.br → Model3DScene-QYXJNALP.js.br} +0 -0
- package/dist/Model3DScene-QYXJNALP.js.gz +0 -0
- package/dist/{Model3DScene-RWFPSN6B.mjs → Model3DScene-TU4NTHRM.mjs} +1 -1
- package/dist/Model3DScene-TU4NTHRM.mjs.br +0 -0
- package/dist/Model3DScene-TU4NTHRM.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-BIOKIETC.js → SurfaceChart3DScene-4VCO3DRP.js} +2 -2
- package/dist/SurfaceChart3DScene-4VCO3DRP.js.br +0 -0
- package/dist/SurfaceChart3DScene-4VCO3DRP.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-2GZQM3LN.mjs → SurfaceChart3DScene-VTJBKUQY.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-2GZQM3LN.mjs.br → SurfaceChart3DScene-VTJBKUQY.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-VTJBKUQY.mjs.gz +0 -0
- package/dist/{chunk-AOED5MFM.mjs → chunk-4GYNTY2G.mjs} +13 -12
- package/dist/chunk-4GYNTY2G.mjs.br +0 -0
- package/dist/chunk-4GYNTY2G.mjs.gz +0 -0
- package/dist/{chunk-BJQSHVYH.mjs → chunk-4SGXEGVL.mjs} +261 -203
- package/dist/chunk-4SGXEGVL.mjs.br +0 -0
- package/dist/chunk-4SGXEGVL.mjs.gz +0 -0
- package/dist/{chunk-3GNSGGY2.js → chunk-BXAK3JFM.js} +13 -0
- package/dist/chunk-BXAK3JFM.js.br +0 -0
- package/dist/chunk-BXAK3JFM.js.gz +0 -0
- package/dist/{chunk-QGHC65C4.mjs → chunk-CABQXGPI.mjs} +302 -18
- package/dist/chunk-CABQXGPI.mjs.br +0 -0
- package/dist/{chunk-QGHC65C4.mjs.gz → chunk-CABQXGPI.mjs.gz} +0 -0
- package/dist/{chunk-SP7U34QM.js → chunk-GBKIWNW6.js} +1996 -1938
- package/dist/chunk-GBKIWNW6.js.br +0 -0
- package/dist/chunk-GBKIWNW6.js.gz +0 -0
- package/dist/{chunk-2VUHJNWM.js → chunk-LE6YA5WB.js} +261 -254
- package/dist/chunk-LE6YA5WB.js.br +0 -0
- package/dist/chunk-LE6YA5WB.js.gz +0 -0
- package/dist/{chunk-EJRHYYKE.mjs → chunk-N3NKU7SC.mjs} +1 -1
- package/dist/chunk-N3NKU7SC.mjs.br +0 -0
- package/dist/chunk-N3NKU7SC.mjs.gz +0 -0
- package/dist/{chunk-PTGTFXPU.js → chunk-NUDH7TI2.js} +341 -340
- package/dist/chunk-NUDH7TI2.js.br +0 -0
- package/dist/chunk-NUDH7TI2.js.gz +0 -0
- package/dist/{chunk-PJUQQF3I.js → chunk-TDUDH7S4.js} +320 -19
- package/dist/chunk-TDUDH7S4.js.br +0 -0
- package/dist/{chunk-PJUQQF3I.js.gz → chunk-TDUDH7S4.js.gz} +0 -0
- package/dist/{chunk-ECDKYPQ2.mjs → chunk-TEXIGSA6.mjs} +13 -0
- package/dist/chunk-TEXIGSA6.mjs.br +0 -0
- package/dist/chunk-TEXIGSA6.mjs.gz +0 -0
- package/dist/{chunk-ZIXSSQAZ.js → chunk-UIWY4XJT.js} +3 -3
- package/dist/chunk-UIWY4XJT.js.br +0 -0
- package/dist/chunk-UIWY4XJT.js.gz +0 -0
- package/dist/{chunk-CEUHGUZ4.mjs → chunk-YIPR3GKG.mjs} +22 -15
- package/dist/chunk-YIPR3GKG.mjs.br +0 -0
- package/dist/chunk-YIPR3GKG.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.js +36 -36
- 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.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/viewer/index.js +22 -22
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-CS4CONUO.mjs.br +0 -0
- package/dist/AiChatPanel-CS4CONUO.mjs.gz +0 -0
- package/dist/AiChatPanel-JIXSOZXN.js.br +0 -0
- package/dist/AiChatPanel-JIXSOZXN.js.gz +0 -0
- package/dist/Model3DScene-5KMJ4JL6.js.gz +0 -0
- package/dist/Model3DScene-RWFPSN6B.mjs.br +0 -0
- package/dist/Model3DScene-RWFPSN6B.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-2GZQM3LN.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-BIOKIETC.js.br +0 -0
- package/dist/SurfaceChart3DScene-BIOKIETC.js.gz +0 -0
- package/dist/chunk-2VUHJNWM.js.br +0 -0
- package/dist/chunk-2VUHJNWM.js.gz +0 -0
- package/dist/chunk-3GNSGGY2.js.br +0 -0
- package/dist/chunk-3GNSGGY2.js.gz +0 -0
- package/dist/chunk-AOED5MFM.mjs.br +0 -0
- package/dist/chunk-AOED5MFM.mjs.gz +0 -0
- package/dist/chunk-BJQSHVYH.mjs.br +0 -0
- package/dist/chunk-BJQSHVYH.mjs.gz +0 -0
- package/dist/chunk-CEUHGUZ4.mjs.br +0 -0
- package/dist/chunk-CEUHGUZ4.mjs.gz +0 -0
- package/dist/chunk-ECDKYPQ2.mjs.br +0 -0
- package/dist/chunk-ECDKYPQ2.mjs.gz +0 -0
- package/dist/chunk-EJRHYYKE.mjs.br +0 -0
- package/dist/chunk-EJRHYYKE.mjs.gz +0 -0
- package/dist/chunk-PJUQQF3I.js.br +0 -0
- package/dist/chunk-PTGTFXPU.js.br +0 -0
- package/dist/chunk-PTGTFXPU.js.gz +0 -0
- package/dist/chunk-QGHC65C4.mjs.br +0 -0
- package/dist/chunk-SP7U34QM.js.br +0 -0
- package/dist/chunk-SP7U34QM.js.gz +0 -0
- package/dist/chunk-ZIXSSQAZ.js.br +0 -0
- package/dist/chunk-ZIXSSQAZ.js.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkBXAK3JFM_js = require('./chunk-BXAK3JFM.js');
|
|
4
|
+
var chunkTDUDH7S4_js = require('./chunk-TDUDH7S4.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React6 = require('react');
|
|
@@ -15,7 +15,7 @@ var React6__default = /*#__PURE__*/_interopDefault(React6);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkTDUDH7S4_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 chunkTDUDH7S4_js.cloneHistorySnapshot(snapshot);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/viewer/constants/scalar.ts
|
|
@@ -63,7 +63,7 @@ var TOOLBAR_SECTIONS = [
|
|
|
63
63
|
{ id: "view", labelKey: "pptx.ribbon.tab.view" },
|
|
64
64
|
{ id: "help", labelKey: "pptx.ribbon.tab.help" }
|
|
65
65
|
];
|
|
66
|
-
var SHORTCUT_REFERENCE_ITEMS =
|
|
66
|
+
var SHORTCUT_REFERENCE_ITEMS = chunkTDUDH7S4_js.VIEWER_SHORTCUT_REFERENCE;
|
|
67
67
|
|
|
68
68
|
// src/viewer/constants/theme.ts
|
|
69
69
|
var THEME_COLOR_SWATCHES = [
|
|
@@ -107,7 +107,7 @@ var GLYPH_COMPONENTS = {
|
|
|
107
107
|
plus: lu.LuPlus,
|
|
108
108
|
triangle: lu.LuTriangle
|
|
109
109
|
};
|
|
110
|
-
var SHAPE_PRESETS =
|
|
110
|
+
var SHAPE_PRESETS = chunkTDUDH7S4_js.SHAPE_PRESET_DEFS.map(
|
|
111
111
|
(def) => ({
|
|
112
112
|
type: def.type,
|
|
113
113
|
label: def.label,
|
|
@@ -266,7 +266,7 @@ function isConnectorOrLineElement(element) {
|
|
|
266
266
|
if (element.type === "connector") {
|
|
267
267
|
return true;
|
|
268
268
|
}
|
|
269
|
-
if (!
|
|
269
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
270
270
|
return false;
|
|
271
271
|
}
|
|
272
272
|
const st = getShapeType(element.shapeType);
|
|
@@ -277,12 +277,12 @@ function isConnectorOrLineElement(element) {
|
|
|
277
277
|
function partitionTemplateElements(slides) {
|
|
278
278
|
const templateElementsBySlideId = {};
|
|
279
279
|
const nextSlides = slides.map((slide) => {
|
|
280
|
-
const template = slide.elements.filter((el) =>
|
|
280
|
+
const template = slide.elements.filter((el) => chunkTDUDH7S4_js.isTemplateElement(el));
|
|
281
281
|
if (template.length === 0) {
|
|
282
282
|
return slide;
|
|
283
283
|
}
|
|
284
284
|
templateElementsBySlideId[slide.id] = template;
|
|
285
|
-
return { ...slide, elements: slide.elements.filter((el) => !
|
|
285
|
+
return { ...slide, elements: slide.elements.filter((el) => !chunkTDUDH7S4_js.isTemplateElement(el)) };
|
|
286
286
|
});
|
|
287
287
|
return { slides: nextSlides, templateElementsBySlideId };
|
|
288
288
|
}
|
|
@@ -298,7 +298,7 @@ function buildSaveSlides(slides, templateElementsBySlideId) {
|
|
|
298
298
|
|
|
299
299
|
// src/viewer/utils/image-style.ts
|
|
300
300
|
function getImageMaskStyle(element) {
|
|
301
|
-
if (!
|
|
301
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
302
302
|
return void 0;
|
|
303
303
|
}
|
|
304
304
|
const shapeType = element.shapeType;
|
|
@@ -307,7 +307,7 @@ function getImageMaskStyle(element) {
|
|
|
307
307
|
}
|
|
308
308
|
const normalized = shapeType.toLowerCase();
|
|
309
309
|
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
310
|
-
const radiusPx =
|
|
310
|
+
const radiusPx = chunkTDUDH7S4_js.getRoundRectRadiusPx(element);
|
|
311
311
|
if (radiusPx <= 0.01) {
|
|
312
312
|
return void 0;
|
|
313
313
|
}
|
|
@@ -319,7 +319,7 @@ function getImageMaskStyle(element) {
|
|
|
319
319
|
if (normalized === "can" || normalized === "cylinder") {
|
|
320
320
|
return { borderRadius: "48% / 12%" };
|
|
321
321
|
}
|
|
322
|
-
const clipPath =
|
|
322
|
+
const clipPath = chunkTDUDH7S4_js.getResolvedShapeClipPath(element);
|
|
323
323
|
if (!clipPath) {
|
|
324
324
|
return void 0;
|
|
325
325
|
}
|
|
@@ -328,7 +328,7 @@ function getImageMaskStyle(element) {
|
|
|
328
328
|
function getImageRenderStyle(element) {
|
|
329
329
|
return {
|
|
330
330
|
...getImageMaskStyle(element) || {},
|
|
331
|
-
...
|
|
331
|
+
...chunkTDUDH7S4_js.getImageFitStyle(element)
|
|
332
332
|
};
|
|
333
333
|
}
|
|
334
334
|
var CROP_SHAPE_CLIP_PATHS = {
|
|
@@ -341,7 +341,7 @@ var CROP_SHAPE_CLIP_PATHS = {
|
|
|
341
341
|
star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
|
|
342
342
|
};
|
|
343
343
|
function getCropShapeClipPath(element) {
|
|
344
|
-
if (!
|
|
344
|
+
if (!chunkTDUDH7S4_js.isImageLikeElement(element)) {
|
|
345
345
|
return void 0;
|
|
346
346
|
}
|
|
347
347
|
const shape = element.cropShape;
|
|
@@ -351,7 +351,7 @@ function getCropShapeClipPath(element) {
|
|
|
351
351
|
return CROP_SHAPE_CLIP_PATHS[shape];
|
|
352
352
|
}
|
|
353
353
|
function isImageTiled(element) {
|
|
354
|
-
if (!
|
|
354
|
+
if (!chunkTDUDH7S4_js.isImageLikeElement(element)) {
|
|
355
355
|
return false;
|
|
356
356
|
}
|
|
357
357
|
return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
|
|
@@ -409,7 +409,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
|
|
|
409
409
|
};
|
|
410
410
|
}
|
|
411
411
|
function getImageTilingStyle(element) {
|
|
412
|
-
if (!
|
|
412
|
+
if (!chunkTDUDH7S4_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
413
413
|
return void 0;
|
|
414
414
|
}
|
|
415
415
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -622,7 +622,8 @@ function VideoWithMetadata({
|
|
|
622
622
|
shouldLoop,
|
|
623
623
|
shouldAutoPlay,
|
|
624
624
|
isFullScreen,
|
|
625
|
-
isPresentationMode
|
|
625
|
+
isPresentationMode,
|
|
626
|
+
showTransport
|
|
626
627
|
}) {
|
|
627
628
|
useMediaMetadataExtraction(mediaRef, element);
|
|
628
629
|
const captionTracks = element.captionTracks ?? [];
|
|
@@ -631,7 +632,7 @@ function VideoWithMetadata({
|
|
|
631
632
|
{
|
|
632
633
|
ref: mediaRef,
|
|
633
634
|
className: `w-full h-full pointer-events-auto ${isFullScreen ? "object-cover" : "object-contain"}`,
|
|
634
|
-
controls:
|
|
635
|
+
controls: showTransport,
|
|
635
636
|
preload: "metadata",
|
|
636
637
|
playsInline: true,
|
|
637
638
|
autoPlay: shouldAutoPlay,
|
|
@@ -656,7 +657,7 @@ function AudioWithMetadata({
|
|
|
656
657
|
mediaMimeType,
|
|
657
658
|
shouldLoop,
|
|
658
659
|
shouldAutoPlay,
|
|
659
|
-
|
|
660
|
+
showTransport
|
|
660
661
|
}) {
|
|
661
662
|
useMediaMetadataExtraction(mediaRef, element);
|
|
662
663
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center p-2 pointer-events-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -664,7 +665,7 @@ function AudioWithMetadata({
|
|
|
664
665
|
{
|
|
665
666
|
ref: mediaRef,
|
|
666
667
|
className: "w-full",
|
|
667
|
-
controls:
|
|
668
|
+
controls: showTransport,
|
|
668
669
|
preload: "metadata",
|
|
669
670
|
autoPlay: shouldAutoPlay,
|
|
670
671
|
loop: shouldLoop,
|
|
@@ -689,9 +690,9 @@ function registerMediaElement(elementId, el) {
|
|
|
689
690
|
};
|
|
690
691
|
}
|
|
691
692
|
function executeMediaCommand(command, frameRoot) {
|
|
692
|
-
return
|
|
693
|
+
return chunkTDUDH7S4_js.runMediaCommand(
|
|
693
694
|
command,
|
|
694
|
-
(targetId) => registry.get(targetId) ??
|
|
695
|
+
(targetId) => registry.get(targetId) ?? chunkTDUDH7S4_js.findMediaElementByElementId(targetId, frameRoot?.())
|
|
695
696
|
);
|
|
696
697
|
}
|
|
697
698
|
function PresentationMediaController({
|
|
@@ -730,19 +731,23 @@ function PresentationMediaController({
|
|
|
730
731
|
}
|
|
731
732
|
return registerMediaElement(element.id, el);
|
|
732
733
|
}, [element.id]);
|
|
734
|
+
const { volume: playbackVolume, playbackRate } = chunkTDUDH7S4_js.mediaPlaybackAttributes({
|
|
735
|
+
loop: element.loop,
|
|
736
|
+
volume: element.volume,
|
|
737
|
+
playbackSpeed: element.playbackSpeed
|
|
738
|
+
});
|
|
733
739
|
React6.useEffect(() => {
|
|
734
740
|
const el = mediaRef.current;
|
|
735
741
|
if (el) {
|
|
736
|
-
el.volume =
|
|
742
|
+
el.volume = playbackVolume;
|
|
737
743
|
}
|
|
738
|
-
}, [
|
|
739
|
-
const playbackSpeed = element.playbackSpeed ?? 1;
|
|
744
|
+
}, [playbackVolume]);
|
|
740
745
|
React6.useEffect(() => {
|
|
741
746
|
const el = mediaRef.current;
|
|
742
747
|
if (el) {
|
|
743
|
-
el.playbackRate =
|
|
748
|
+
el.playbackRate = playbackRate;
|
|
744
749
|
}
|
|
745
|
-
}, [
|
|
750
|
+
}, [playbackRate]);
|
|
746
751
|
React6.useEffect(() => {
|
|
747
752
|
const el = mediaRef.current;
|
|
748
753
|
if (!el) {
|
|
@@ -925,7 +930,7 @@ function PresentationMediaController({
|
|
|
925
930
|
}
|
|
926
931
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
927
932
|
if (element.type !== "media") {
|
|
928
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
933
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBXAK3JFM_js.translationsEn["pptx.media.title"] });
|
|
929
934
|
}
|
|
930
935
|
const mediaType = element.mediaType;
|
|
931
936
|
const mediaPath = element.mediaPath;
|
|
@@ -933,10 +938,11 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
933
938
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
934
939
|
const trimFragment = buildTrimFragment(element);
|
|
935
940
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
936
|
-
const shouldLoop = element.loop
|
|
941
|
+
const shouldLoop = chunkTDUDH7S4_js.mediaPlaybackAttributes(element).loop;
|
|
937
942
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
938
943
|
const isFullScreen = options?.fullScreen === true;
|
|
939
944
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
945
|
+
const showTransport = options?.showTransport ?? !isPresentationMode;
|
|
940
946
|
if (isPresentationMode && shouldAutoPlay && element.playAcrossSlides && element.mediaType === "audio" && dataUrl && !element.mediaData) {
|
|
941
947
|
const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
|
|
942
948
|
registerPersistentAudio(
|
|
@@ -955,7 +961,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
955
961
|
"img",
|
|
956
962
|
{
|
|
957
963
|
src: posterUrl,
|
|
958
|
-
alt:
|
|
964
|
+
alt: chunkBXAK3JFM_js.translationsEn["pptx.media.posterAlt"],
|
|
959
965
|
className: "w-full h-full object-contain opacity-50"
|
|
960
966
|
}
|
|
961
967
|
),
|
|
@@ -976,7 +982,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
976
982
|
]
|
|
977
983
|
}
|
|
978
984
|
),
|
|
979
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children:
|
|
985
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: chunkBXAK3JFM_js.translationsEn["pptx.media.notFound"] })
|
|
980
986
|
] })
|
|
981
987
|
] });
|
|
982
988
|
}
|
|
@@ -1005,7 +1011,8 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1005
1011
|
shouldLoop,
|
|
1006
1012
|
shouldAutoPlay,
|
|
1007
1013
|
isFullScreen,
|
|
1008
|
-
isPresentationMode
|
|
1014
|
+
isPresentationMode,
|
|
1015
|
+
showTransport
|
|
1009
1016
|
}
|
|
1010
1017
|
)
|
|
1011
1018
|
}
|
|
@@ -1017,7 +1024,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1017
1024
|
"img",
|
|
1018
1025
|
{
|
|
1019
1026
|
src: posterUrl,
|
|
1020
|
-
alt:
|
|
1027
|
+
alt: chunkBXAK3JFM_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
1021
1028
|
className: "w-full h-full object-contain"
|
|
1022
1029
|
}
|
|
1023
1030
|
),
|
|
@@ -1074,7 +1081,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1074
1081
|
mediaMimeType,
|
|
1075
1082
|
shouldLoop,
|
|
1076
1083
|
shouldAutoPlay,
|
|
1077
|
-
|
|
1084
|
+
showTransport
|
|
1078
1085
|
}
|
|
1079
1086
|
)
|
|
1080
1087
|
}
|
|
@@ -1106,7 +1113,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1106
1113
|
|
|
1107
1114
|
// src/viewer/utils/text-utils.tsx
|
|
1108
1115
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1109
|
-
return
|
|
1116
|
+
return chunkTDUDH7S4_js.buildTextBlockStyle(element, { fallbackColor });
|
|
1110
1117
|
}
|
|
1111
1118
|
|
|
1112
1119
|
// src/viewer/utils/text-layout.tsx
|
|
@@ -1131,13 +1138,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1131
1138
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1132
1139
|
}
|
|
1133
1140
|
function getTextLayoutStyle(element) {
|
|
1134
|
-
if (!
|
|
1141
|
+
if (!chunkTDUDH7S4_js.hasTextProperties(element)) {
|
|
1135
1142
|
return {};
|
|
1136
1143
|
}
|
|
1137
1144
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1138
|
-
const writingMode =
|
|
1139
|
-
const textOrientation =
|
|
1140
|
-
const verticalDirection =
|
|
1145
|
+
const writingMode = chunkTDUDH7S4_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1146
|
+
const textOrientation = chunkTDUDH7S4_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1147
|
+
const verticalDirection = chunkTDUDH7S4_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1141
1148
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1142
1149
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1143
1150
|
const hasColumns = columnCount > 1;
|
|
@@ -1145,7 +1152,7 @@ function getTextLayoutStyle(element) {
|
|
|
1145
1152
|
const tabStops = element.textStyle?.tabStops;
|
|
1146
1153
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1147
1154
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1148
|
-
const hasParagraphIndents =
|
|
1155
|
+
const hasParagraphIndents = chunkTDUDH7S4_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1149
1156
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1150
1157
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1151
1158
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1154,7 +1161,7 @@ function getTextLayoutStyle(element) {
|
|
|
1154
1161
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1155
1162
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1156
1163
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1157
|
-
const kinsokuStyles =
|
|
1164
|
+
const kinsokuStyles = chunkTDUDH7S4_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1158
1165
|
if (hasColumns) {
|
|
1159
1166
|
return {
|
|
1160
1167
|
display: "block",
|
|
@@ -1201,10 +1208,10 @@ function getTextLayoutStyle(element) {
|
|
|
1201
1208
|
|
|
1202
1209
|
// src/viewer/utils/text-effects.tsx
|
|
1203
1210
|
function buildTextFillCss2(style) {
|
|
1204
|
-
return
|
|
1211
|
+
return chunkTDUDH7S4_js.buildTextFillCss(style);
|
|
1205
1212
|
}
|
|
1206
1213
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1207
|
-
return
|
|
1214
|
+
return chunkTDUDH7S4_js.buildTextBody3DSceneStyle(textStyle);
|
|
1208
1215
|
}
|
|
1209
1216
|
|
|
1210
1217
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1389,13 +1396,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1389
1396
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1390
1397
|
return renderedSegments;
|
|
1391
1398
|
}
|
|
1392
|
-
const paraKey = `${elementId}${
|
|
1399
|
+
const paraKey = `${elementId}${chunkTDUDH7S4_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1393
1400
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1394
1401
|
if (paraState) {
|
|
1395
1402
|
const style = buildAnimStyle(paraState);
|
|
1396
1403
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1397
1404
|
}
|
|
1398
|
-
const spec =
|
|
1405
|
+
const spec = chunkTDUDH7S4_js.buildTextBuildSpec(
|
|
1399
1406
|
elementId,
|
|
1400
1407
|
paraIndex,
|
|
1401
1408
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1413,7 +1420,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1413
1420
|
"span",
|
|
1414
1421
|
{
|
|
1415
1422
|
"data-anim-id": span.animId,
|
|
1416
|
-
style:
|
|
1423
|
+
style: chunkTDUDH7S4_js.textBuildSpanStyle(span),
|
|
1417
1424
|
children: content
|
|
1418
1425
|
},
|
|
1419
1426
|
span.animId
|
|
@@ -1557,10 +1564,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1557
1564
|
if (!needsScriptFonts || !text) {
|
|
1558
1565
|
return text;
|
|
1559
1566
|
}
|
|
1560
|
-
const runs =
|
|
1567
|
+
const runs = chunkTDUDH7S4_js.segmentByScript(text);
|
|
1561
1568
|
if (runs.length <= 1) {
|
|
1562
1569
|
if (runs.length === 1) {
|
|
1563
|
-
const font =
|
|
1570
|
+
const font = chunkTDUDH7S4_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1564
1571
|
if (font && font !== baseFontFamily) {
|
|
1565
1572
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1566
1573
|
}
|
|
@@ -1568,7 +1575,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1568
1575
|
return text;
|
|
1569
1576
|
}
|
|
1570
1577
|
return runs.map((run, i) => {
|
|
1571
|
-
const font =
|
|
1578
|
+
const font = chunkTDUDH7S4_js.resolveFontForScript(run.script, scriptFonts);
|
|
1572
1579
|
if (!font || font === baseFontFamily) {
|
|
1573
1580
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1574
1581
|
}
|
|
@@ -1640,8 +1647,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1640
1647
|
);
|
|
1641
1648
|
}
|
|
1642
1649
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1643
|
-
const mathml =
|
|
1644
|
-
const safeMathml = mathml ?
|
|
1650
|
+
const mathml = chunkTDUDH7S4_js.convertOmmlToMathMl(equationXml);
|
|
1651
|
+
const safeMathml = mathml ? chunkTDUDH7S4_js.sanitizeMathMl(mathml) : "";
|
|
1645
1652
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1646
1653
|
"span",
|
|
1647
1654
|
{
|
|
@@ -1651,7 +1658,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1651
1658
|
},
|
|
1652
1659
|
dangerouslySetInnerHTML: { __html: safeMathml }
|
|
1653
1660
|
}
|
|
1654
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children:
|
|
1661
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkBXAK3JFM_js.translationsEn["pptx.textSegment.equationFallback"] });
|
|
1655
1662
|
if (equationNumber) {
|
|
1656
1663
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1657
1664
|
"span",
|
|
@@ -1691,7 +1698,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1691
1698
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1692
1699
|
}
|
|
1693
1700
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1694
|
-
const picture =
|
|
1701
|
+
const picture = chunkTDUDH7S4_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1695
1702
|
sizePx: baseFontSize,
|
|
1696
1703
|
fallbackMarker: "\u2022",
|
|
1697
1704
|
accessibleLabel: "Bullet"
|
|
@@ -1742,7 +1749,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1742
1749
|
}
|
|
1743
1750
|
const segmentStyle = segment.style || {};
|
|
1744
1751
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1745
|
-
const textValue =
|
|
1752
|
+
const textValue = chunkTDUDH7S4_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1746
1753
|
const lines = textValue.split("\n");
|
|
1747
1754
|
const textDecorationTokens = [];
|
|
1748
1755
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1752,8 +1759,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1752
1759
|
textDecorationTokens.push("line-through");
|
|
1753
1760
|
}
|
|
1754
1761
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1755
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1756
|
-
const underlineDecoration =
|
|
1762
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunkTDUDH7S4_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkTDUDH7S4_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1763
|
+
const underlineDecoration = chunkTDUDH7S4_js.resolveUnderlineDecorationStyle(
|
|
1757
1764
|
Boolean(isDoubleStrike),
|
|
1758
1765
|
segmentStyle.underlineStyle
|
|
1759
1766
|
);
|
|
@@ -1763,20 +1770,20 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1763
1770
|
const letterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? `${segmentStyle.characterSpacing / 100 * (96 / 72)}px` : void 0;
|
|
1764
1771
|
const textFillStyles = buildTextFillCss2(segmentStyle);
|
|
1765
1772
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1766
|
-
const autoFitScale =
|
|
1773
|
+
const autoFitScale = chunkTDUDH7S4_js.resolveAutoFitFontScale(element.textStyle);
|
|
1767
1774
|
const baseFontSize = rawFontSize * autoFitScale;
|
|
1768
1775
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1769
1776
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1770
1777
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1771
1778
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1772
|
-
const baseFontFamily = rawFontFamily ?
|
|
1779
|
+
const baseFontFamily = rawFontFamily ? chunkTDUDH7S4_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
|
|
1773
1780
|
const scriptFonts = {
|
|
1774
1781
|
latin: baseFontFamily,
|
|
1775
1782
|
eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
|
|
1776
1783
|
complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
|
|
1777
1784
|
symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
|
|
1778
1785
|
};
|
|
1779
|
-
const needsScriptFonts =
|
|
1786
|
+
const needsScriptFonts = chunkTDUDH7S4_js.hasDistinctScriptFonts(scriptFonts);
|
|
1780
1787
|
const spanStyle = {
|
|
1781
1788
|
color: resolvedSegmentColor,
|
|
1782
1789
|
fontSize: baseFontSize * baselineFontScale,
|
|
@@ -1794,15 +1801,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1794
1801
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1795
1802
|
letterSpacing,
|
|
1796
1803
|
fontKerning,
|
|
1797
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1804
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkTDUDH7S4_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1798
1805
|
...textFillStyles,
|
|
1799
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1800
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1806
|
+
textDecorationColor: segmentStyle.underlineColor ? chunkTDUDH7S4_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1807
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkTDUDH7S4_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1801
1808
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1802
|
-
textShadow:
|
|
1803
|
-
filter:
|
|
1804
|
-
opacity:
|
|
1805
|
-
WebkitBoxReflect:
|
|
1809
|
+
textShadow: chunkTDUDH7S4_js.buildTextShadowCss(segmentStyle),
|
|
1810
|
+
filter: chunkTDUDH7S4_js.buildTextRunFilterChain(segmentStyle),
|
|
1811
|
+
opacity: chunkTDUDH7S4_js.getTextAlphaOpacity(segmentStyle),
|
|
1812
|
+
WebkitBoxReflect: chunkTDUDH7S4_js.buildTextReflectionCss(segmentStyle)
|
|
1806
1813
|
};
|
|
1807
1814
|
const runRtl = segmentStyle.rtl;
|
|
1808
1815
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1822,7 +1829,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1822
1829
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1823
1830
|
}
|
|
1824
1831
|
if (bulletInfo.color) {
|
|
1825
|
-
spanStyle.color =
|
|
1832
|
+
spanStyle.color = chunkTDUDH7S4_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1826
1833
|
}
|
|
1827
1834
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1828
1835
|
spanStyle.display = "inline-block";
|
|
@@ -1867,7 +1874,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1867
1874
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
1868
1875
|
};
|
|
1869
1876
|
if (segment.rubyStyle?.color) {
|
|
1870
|
-
rubyStyle.color =
|
|
1877
|
+
rubyStyle.color = chunkTDUDH7S4_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
1871
1878
|
}
|
|
1872
1879
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
1873
1880
|
baseContent,
|
|
@@ -1962,7 +1969,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
1962
1969
|
return paragraphs;
|
|
1963
1970
|
}
|
|
1964
1971
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
1965
|
-
if (!
|
|
1972
|
+
if (!chunkTDUDH7S4_js.hasTextProperties(element)) {
|
|
1966
1973
|
return emptyFallback || null;
|
|
1967
1974
|
}
|
|
1968
1975
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -1983,10 +1990,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1983
1990
|
return element.text || emptyFallback || "";
|
|
1984
1991
|
}
|
|
1985
1992
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
1986
|
-
const paragraphIndents =
|
|
1987
|
-
const elementRtl =
|
|
1988
|
-
const elementAlign =
|
|
1989
|
-
const bodyStyle =
|
|
1993
|
+
const paragraphIndents = chunkTDUDH7S4_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
1994
|
+
const elementRtl = chunkTDUDH7S4_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
1995
|
+
const elementAlign = chunkTDUDH7S4_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
1996
|
+
const bodyStyle = chunkTDUDH7S4_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
1990
1997
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
1991
1998
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
1992
1999
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2001,14 +2008,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2001
2008
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2002
2009
|
});
|
|
2003
2010
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2004
|
-
const paraRtl =
|
|
2011
|
+
const paraRtl = chunkTDUDH7S4_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2005
2012
|
const isRtlParagraph = paraRtl === true;
|
|
2006
|
-
const paraAlign =
|
|
2007
|
-
const cssTextAlign =
|
|
2013
|
+
const paraAlign = chunkTDUDH7S4_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
2014
|
+
const cssTextAlign = chunkTDUDH7S4_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2008
2015
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2009
2016
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2010
2017
|
const paraTextIndent = rawTextIndent;
|
|
2011
|
-
const paraKinsokuStyle =
|
|
2018
|
+
const paraKinsokuStyle = chunkTDUDH7S4_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2012
2019
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2013
2020
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
2014
2021
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2018,7 +2025,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2018
2025
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2019
2026
|
spaceFirstLast
|
|
2020
2027
|
});
|
|
2021
|
-
const strutFontSize =
|
|
2028
|
+
const strutFontSize = chunkTDUDH7S4_js.resolveParagraphStrutFontSize(
|
|
2022
2029
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2023
2030
|
bodyStyle?.fontSize
|
|
2024
2031
|
);
|
|
@@ -2122,13 +2129,13 @@ function hexToRgbUnit(hex) {
|
|
|
2122
2129
|
};
|
|
2123
2130
|
}
|
|
2124
2131
|
function getDuotoneColors(element) {
|
|
2125
|
-
if (!
|
|
2132
|
+
if (!chunkTDUDH7S4_js.isImageLikeElement(element)) {
|
|
2126
2133
|
return void 0;
|
|
2127
2134
|
}
|
|
2128
2135
|
return element.imageEffects?.duotone;
|
|
2129
2136
|
}
|
|
2130
2137
|
function buildLineShadowCss(element) {
|
|
2131
|
-
if (!
|
|
2138
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2132
2139
|
return void 0;
|
|
2133
2140
|
}
|
|
2134
2141
|
const ss = element.shapeStyle;
|
|
@@ -2139,13 +2146,13 @@ function buildLineShadowCss(element) {
|
|
|
2139
2146
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2140
2147
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2141
2148
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2142
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2143
|
-
|
|
2149
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkTDUDH7S4_js.colorWithOpacity(
|
|
2150
|
+
chunkTDUDH7S4_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2144
2151
|
opacity
|
|
2145
2152
|
)}`;
|
|
2146
2153
|
}
|
|
2147
2154
|
function buildLineGlowFilter(element) {
|
|
2148
|
-
if (!
|
|
2155
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2149
2156
|
return void 0;
|
|
2150
2157
|
}
|
|
2151
2158
|
const ss = element.shapeStyle;
|
|
@@ -2154,7 +2161,7 @@ function buildLineGlowFilter(element) {
|
|
|
2154
2161
|
}
|
|
2155
2162
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2156
2163
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2157
|
-
const glowCol =
|
|
2164
|
+
const glowCol = chunkTDUDH7S4_js.colorWithOpacity(chunkTDUDH7S4_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2158
2165
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2159
2166
|
}
|
|
2160
2167
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2178,7 +2185,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2178
2185
|
return `dag-duotone-${elementId}`;
|
|
2179
2186
|
}
|
|
2180
2187
|
function hasDagDuotoneEffect(element) {
|
|
2181
|
-
if (!
|
|
2188
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2182
2189
|
return false;
|
|
2183
2190
|
}
|
|
2184
2191
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2241,7 +2248,7 @@ function getRoundRectRadiusPx2(element) {
|
|
|
2241
2248
|
|
|
2242
2249
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2243
2250
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2244
|
-
return
|
|
2251
|
+
return chunkTDUDH7S4_js.build3DExtrusionData(
|
|
2245
2252
|
shape3d,
|
|
2246
2253
|
scene3d,
|
|
2247
2254
|
fillColor,
|
|
@@ -2250,7 +2257,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2250
2257
|
);
|
|
2251
2258
|
}
|
|
2252
2259
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2253
|
-
|
|
2260
|
+
chunkTDUDH7S4_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2254
2261
|
}
|
|
2255
2262
|
|
|
2256
2263
|
// src/viewer/utils/vector-subpath-paint.ts
|
|
@@ -2259,7 +2266,7 @@ function toHexByte(value) {
|
|
|
2259
2266
|
return clamped.toString(16).padStart(2, "0");
|
|
2260
2267
|
}
|
|
2261
2268
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2262
|
-
const channels =
|
|
2269
|
+
const channels = chunkTDUDH7S4_js.hexToRgbChannels(hex);
|
|
2263
2270
|
if (!channels) {
|
|
2264
2271
|
return hex;
|
|
2265
2272
|
}
|
|
@@ -2285,13 +2292,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2285
2292
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2286
2293
|
return {
|
|
2287
2294
|
d: subpath.d,
|
|
2288
|
-
fill: fillOff ? "none" :
|
|
2295
|
+
fill: fillOff ? "none" : chunkTDUDH7S4_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2289
2296
|
stroked: subpath.stroke !== false
|
|
2290
2297
|
};
|
|
2291
2298
|
});
|
|
2292
2299
|
}
|
|
2293
2300
|
function getStrokeOnlyPresetPaths(element) {
|
|
2294
|
-
if (element.type !== "shape" || !
|
|
2301
|
+
if (element.type !== "shape" || !chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2295
2302
|
return void 0;
|
|
2296
2303
|
}
|
|
2297
2304
|
const shapeType = element.shapeType;
|
|
@@ -2301,7 +2308,7 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2301
2308
|
if (element.pathData) {
|
|
2302
2309
|
return void 0;
|
|
2303
2310
|
}
|
|
2304
|
-
const result =
|
|
2311
|
+
const result = chunkTDUDH7S4_js.evaluatePresetShape(
|
|
2305
2312
|
shapeType,
|
|
2306
2313
|
Math.max(element.width, 1),
|
|
2307
2314
|
Math.max(element.height, 1),
|
|
@@ -2319,43 +2326,43 @@ function getGradientTilingCss(style) {
|
|
|
2319
2326
|
if (!style || style.fillMode !== "gradient") {
|
|
2320
2327
|
return void 0;
|
|
2321
2328
|
}
|
|
2322
|
-
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" &&
|
|
2329
|
+
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunkTDUDH7S4_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
|
|
2323
2330
|
if (isStructuredLinear) {
|
|
2324
|
-
const flip =
|
|
2331
|
+
const flip = chunkTDUDH7S4_js.getGradientTileFlipCss(style.fillGradientFlip);
|
|
2325
2332
|
if (flip) {
|
|
2326
2333
|
return flip;
|
|
2327
2334
|
}
|
|
2328
2335
|
}
|
|
2329
|
-
return
|
|
2336
|
+
return chunkTDUDH7S4_js.getGradientTileRectCss(style.fillGradientTileRect);
|
|
2330
2337
|
}
|
|
2331
2338
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2332
|
-
if (!
|
|
2339
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2333
2340
|
return {};
|
|
2334
2341
|
}
|
|
2335
2342
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2336
|
-
const clipPath =
|
|
2343
|
+
const clipPath = chunkTDUDH7S4_js.getResolvedShapeClipPath(element);
|
|
2337
2344
|
const rendersCustomVectorPath = (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;
|
|
2338
2345
|
const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
|
|
2339
2346
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2340
2347
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2341
|
-
const strokeDash =
|
|
2342
|
-
const fillGradient =
|
|
2348
|
+
const strokeDash = chunkTDUDH7S4_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2349
|
+
const fillGradient = chunkTDUDH7S4_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
|
|
2343
2350
|
rotation: element.rotation,
|
|
2344
2351
|
width: element.width,
|
|
2345
2352
|
height: element.height
|
|
2346
2353
|
}) || element.shapeStyle?.fillGradient;
|
|
2347
|
-
const shadowCss =
|
|
2348
|
-
const innerShadowCss =
|
|
2349
|
-
const resolvedFillColor =
|
|
2350
|
-
const resolvedStrokeColor =
|
|
2354
|
+
const shadowCss = chunkTDUDH7S4_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2355
|
+
const innerShadowCss = chunkTDUDH7S4_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2356
|
+
const resolvedFillColor = chunkTDUDH7S4_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2357
|
+
const resolvedStrokeColor = chunkTDUDH7S4_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2351
2358
|
const ss = element.shapeStyle;
|
|
2352
2359
|
const gradientTiling = getGradientTilingCss(ss);
|
|
2353
|
-
const paintsGradientOutline =
|
|
2360
|
+
const paintsGradientOutline = chunkTDUDH7S4_js.suppressesCssBorder(element);
|
|
2354
2361
|
const hasFillOverlayColor = Boolean(
|
|
2355
2362
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2356
2363
|
);
|
|
2357
2364
|
const combinedShadowParts = [];
|
|
2358
|
-
const multiLayerShadow =
|
|
2365
|
+
const multiLayerShadow = chunkTDUDH7S4_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2359
2366
|
if (multiLayerShadow) {
|
|
2360
2367
|
combinedShadowParts.push(multiLayerShadow);
|
|
2361
2368
|
} else if (shadowCss) {
|
|
@@ -2364,7 +2371,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2364
2371
|
if (innerShadowCss) {
|
|
2365
2372
|
combinedShadowParts.push(innerShadowCss);
|
|
2366
2373
|
}
|
|
2367
|
-
const glowBoxShadow =
|
|
2374
|
+
const glowBoxShadow = chunkTDUDH7S4_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2368
2375
|
if (glowBoxShadow) {
|
|
2369
2376
|
combinedShadowParts.push(glowBoxShadow);
|
|
2370
2377
|
}
|
|
@@ -2372,7 +2379,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2372
2379
|
if (lineShadow) {
|
|
2373
2380
|
combinedShadowParts.push(lineShadow);
|
|
2374
2381
|
}
|
|
2375
|
-
const compoundLineShadow =
|
|
2382
|
+
const compoundLineShadow = chunkTDUDH7S4_js.getCompoundLineBoxShadow(
|
|
2376
2383
|
element.shapeStyle?.compoundLine,
|
|
2377
2384
|
strokeWidth,
|
|
2378
2385
|
resolvedStrokeColor
|
|
@@ -2385,11 +2392,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2385
2392
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2386
2393
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2387
2394
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2388
|
-
const glowCol =
|
|
2395
|
+
const glowCol = chunkTDUDH7S4_js.colorWithOpacity(chunkTDUDH7S4_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2389
2396
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2390
2397
|
}
|
|
2391
2398
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2392
|
-
filterParts.push(`url(#${
|
|
2399
|
+
filterParts.push(`url(#${chunkTDUDH7S4_js.getSoftEdgeFilterId(element.id)})`);
|
|
2393
2400
|
}
|
|
2394
2401
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2395
2402
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2398,13 +2405,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2398
2405
|
if (lineGlowCss) {
|
|
2399
2406
|
filterParts.push(lineGlowCss);
|
|
2400
2407
|
}
|
|
2401
|
-
const dagFilter =
|
|
2408
|
+
const dagFilter = chunkTDUDH7S4_js.getEffectDagFilter(ss, element.id);
|
|
2402
2409
|
if (dagFilter) {
|
|
2403
2410
|
filterParts.push(dagFilter);
|
|
2404
2411
|
}
|
|
2405
2412
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2406
2413
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2407
|
-
const patternFill =
|
|
2414
|
+
const patternFill = chunkTDUDH7S4_js.buildPatternFillCss(element.shapeStyle);
|
|
2408
2415
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2409
2416
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2410
2417
|
let reflectCss;
|
|
@@ -2416,7 +2423,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2416
2423
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2417
2424
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2418
2425
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2419
|
-
reflectCss =
|
|
2426
|
+
reflectCss = chunkTDUDH7S4_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2420
2427
|
}
|
|
2421
2428
|
}
|
|
2422
2429
|
const base = {
|
|
@@ -2462,9 +2469,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2462
2469
|
// path following the shape's geometry, because a CSS border can only take
|
|
2463
2470
|
// one colour. Keeping the border too would draw the parser's averaged
|
|
2464
2471
|
// solid underneath the gradient.
|
|
2465
|
-
borderWidth: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2472
|
+
borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunkTDUDH7S4_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2466
2473
|
borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
|
|
2467
|
-
borderStyle: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2474
|
+
borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunkTDUDH7S4_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2468
2475
|
strokeLinejoin: lineJoinCss,
|
|
2469
2476
|
strokeMiterlimit: miterLimitCss,
|
|
2470
2477
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2520,7 +2527,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2520
2527
|
borderWidth: 0,
|
|
2521
2528
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2522
2529
|
borderTopColor: resolvedStrokeColor,
|
|
2523
|
-
borderTopStyle:
|
|
2530
|
+
borderTopStyle: chunkTDUDH7S4_js.getCssBorderDashStyle(strokeDash)
|
|
2524
2531
|
};
|
|
2525
2532
|
}
|
|
2526
2533
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2534,13 +2541,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2534
2541
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2535
2542
|
const direct = element.shapeAdjustments?.[key];
|
|
2536
2543
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2537
|
-
return
|
|
2544
|
+
return chunkTDUDH7S4_js.clampUnitInterval(direct / 1e5);
|
|
2538
2545
|
}
|
|
2539
2546
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2540
2547
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2541
|
-
return
|
|
2548
|
+
return chunkTDUDH7S4_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2542
2549
|
}
|
|
2543
|
-
return
|
|
2550
|
+
return chunkTDUDH7S4_js.clampUnitInterval(fallback);
|
|
2544
2551
|
}
|
|
2545
2552
|
function getConnectorPathGeometry(element) {
|
|
2546
2553
|
const width = Math.max(element.width, 1);
|
|
@@ -2677,11 +2684,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2677
2684
|
strokePaint,
|
|
2678
2685
|
strokeWidth,
|
|
2679
2686
|
dashArray,
|
|
2680
|
-
lineCap:
|
|
2687
|
+
lineCap: chunkTDUDH7S4_js.svgLineCap(shapeStyle?.lineCap),
|
|
2681
2688
|
lineJoin,
|
|
2682
2689
|
miterLimit,
|
|
2683
|
-
offsets:
|
|
2684
|
-
widths:
|
|
2690
|
+
offsets: chunkTDUDH7S4_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2691
|
+
widths: chunkTDUDH7S4_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2685
2692
|
};
|
|
2686
2693
|
}
|
|
2687
2694
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2729,9 +2736,9 @@ function gradientDefs(gradient) {
|
|
|
2729
2736
|
}
|
|
2730
2737
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2731
2738
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2732
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2739
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkTDUDH7S4_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2733
2740
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2734
|
-
const gradientPaint = gradient ?
|
|
2741
|
+
const gradientPaint = gradient ? chunkTDUDH7S4_js.svgGradientFillRef(gradient) : void 0;
|
|
2735
2742
|
const nodes = [];
|
|
2736
2743
|
if (subpaths && needsPerSubpath) {
|
|
2737
2744
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
@@ -2763,7 +2770,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2763
2770
|
"path",
|
|
2764
2771
|
{
|
|
2765
2772
|
d: pathData,
|
|
2766
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2773
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkTDUDH7S4_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2767
2774
|
stroke: "none",
|
|
2768
2775
|
vectorEffect: "non-scaling-stroke"
|
|
2769
2776
|
},
|
|
@@ -2808,14 +2815,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
|
|
|
2808
2815
|
);
|
|
2809
2816
|
}
|
|
2810
2817
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2811
|
-
if (!
|
|
2818
|
+
if (!chunkTDUDH7S4_js.hasShapeProperties(element)) {
|
|
2812
2819
|
return null;
|
|
2813
2820
|
}
|
|
2814
2821
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2815
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2816
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2817
|
-
const dashType =
|
|
2818
|
-
const dashArray =
|
|
2822
|
+
const fillPaint = animatesFill ? "inherit" : chunkTDUDH7S4_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2823
|
+
const strokePaint = animatesStroke ? "inherit" : chunkTDUDH7S4_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2824
|
+
const dashType = chunkTDUDH7S4_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2825
|
+
const dashArray = chunkTDUDH7S4_js.getSvgStrokeDasharray(
|
|
2819
2826
|
dashType,
|
|
2820
2827
|
Math.max(strokeWidth, 1),
|
|
2821
2828
|
element.shapeStyle?.customDashSegments
|
|
@@ -2896,21 +2903,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2896
2903
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2897
2904
|
// without this the shape fell back to the parser's representative solid
|
|
2898
2905
|
// and lost every fade (issue #132).
|
|
2899
|
-
|
|
2906
|
+
chunkTDUDH7S4_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2900
2907
|
);
|
|
2901
2908
|
}
|
|
2902
|
-
if (
|
|
2909
|
+
if (chunkTDUDH7S4_js.isCalloutShape(normalizedType)) {
|
|
2903
2910
|
const width = Math.max(element.width, 1);
|
|
2904
2911
|
const height = Math.max(element.height, 1);
|
|
2905
|
-
const geometry =
|
|
2912
|
+
const geometry = chunkTDUDH7S4_js.getCalloutLeaderLineGeometry(
|
|
2906
2913
|
normalizedType,
|
|
2907
2914
|
width,
|
|
2908
2915
|
height,
|
|
2909
2916
|
element.shapeAdjustments
|
|
2910
2917
|
);
|
|
2911
2918
|
if (geometry && geometry.points.length >= 2) {
|
|
2912
|
-
const leaderPath =
|
|
2913
|
-
const bounds =
|
|
2919
|
+
const leaderPath = chunkTDUDH7S4_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2920
|
+
const bounds = chunkTDUDH7S4_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2914
2921
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2915
2922
|
const offsetLeft = bounds.minX;
|
|
2916
2923
|
const offsetTop = bounds.minY;
|
|
@@ -2973,10 +2980,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2973
2980
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2974
2981
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2975
2982
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2976
|
-
const connectorLineCap =
|
|
2983
|
+
const connectorLineCap = chunkTDUDH7S4_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2977
2984
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2978
|
-
const offsets =
|
|
2979
|
-
const widths =
|
|
2985
|
+
const offsets = chunkTDUDH7S4_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2986
|
+
const widths = chunkTDUDH7S4_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2980
2987
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2981
2988
|
"svg",
|
|
2982
2989
|
{
|
|
@@ -3055,15 +3062,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3055
3062
|
}
|
|
3056
3063
|
const parsed = stops.map((gs) => {
|
|
3057
3064
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3058
|
-
const color =
|
|
3059
|
-
const opacity =
|
|
3060
|
-
return { pos, color:
|
|
3065
|
+
const color = chunkTDUDH7S4_js.parseDrawingColor(gs) ?? "#888888";
|
|
3066
|
+
const opacity = chunkTDUDH7S4_js.parseDrawingColorOpacity(gs);
|
|
3067
|
+
return { pos, color: chunkTDUDH7S4_js.colorWithOpacity(color, opacity) };
|
|
3061
3068
|
}).sort((a, b) => a.pos - b.pos);
|
|
3062
3069
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3063
3070
|
const lin = gradFill["a:lin"];
|
|
3064
3071
|
if (lin) {
|
|
3065
3072
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3066
|
-
const angleDeg = Math.round(
|
|
3073
|
+
const angleDeg = Math.round(chunkTDUDH7S4_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3067
3074
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3068
3075
|
}
|
|
3069
3076
|
const path = gradFill["a:path"];
|
|
@@ -3098,8 +3105,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3098
3105
|
if (!pattFill) {
|
|
3099
3106
|
return void 0;
|
|
3100
3107
|
}
|
|
3101
|
-
const fgColor =
|
|
3102
|
-
const bgColor =
|
|
3108
|
+
const fgColor = chunkTDUDH7S4_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3109
|
+
const bgColor = chunkTDUDH7S4_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3103
3110
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3104
3111
|
switch (preset) {
|
|
3105
3112
|
case "ltHorz":
|
|
@@ -3210,11 +3217,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3210
3217
|
const prstDash = ln["a:prstDash"];
|
|
3211
3218
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3212
3219
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3213
|
-
const color =
|
|
3220
|
+
const color = chunkTDUDH7S4_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3214
3221
|
if (color) {
|
|
3215
|
-
const opacity =
|
|
3222
|
+
const opacity = chunkTDUDH7S4_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3216
3223
|
const key = `${edge.prefix}`;
|
|
3217
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3224
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkTDUDH7S4_js.colorWithOpacity(color, opacity)}`;
|
|
3218
3225
|
}
|
|
3219
3226
|
}
|
|
3220
3227
|
return borderStyle;
|
|
@@ -3227,7 +3234,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3227
3234
|
const textShadowParts = [];
|
|
3228
3235
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3229
3236
|
if (outerShdw) {
|
|
3230
|
-
const shdwColor =
|
|
3237
|
+
const shdwColor = chunkTDUDH7S4_js.parseDrawingColor(outerShdw);
|
|
3231
3238
|
if (shdwColor) {
|
|
3232
3239
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3233
3240
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3245,7 +3252,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3245
3252
|
}
|
|
3246
3253
|
const glow = effectLst["a:glow"];
|
|
3247
3254
|
if (glow) {
|
|
3248
|
-
const glowColor =
|
|
3255
|
+
const glowColor = chunkTDUDH7S4_js.parseDrawingColor(glow);
|
|
3249
3256
|
if (glowColor) {
|
|
3250
3257
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3251
3258
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3324,10 +3331,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3324
3331
|
if (runProps?.["@_u"] !== void 0) {
|
|
3325
3332
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3326
3333
|
}
|
|
3327
|
-
const runColor =
|
|
3334
|
+
const runColor = chunkTDUDH7S4_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkTDUDH7S4_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3328
3335
|
if (runColor) {
|
|
3329
|
-
const opacity =
|
|
3330
|
-
cellStyle.color =
|
|
3336
|
+
const opacity = chunkTDUDH7S4_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3337
|
+
cellStyle.color = chunkTDUDH7S4_js.colorWithOpacity(runColor, opacity);
|
|
3331
3338
|
}
|
|
3332
3339
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3333
3340
|
if (fontFamily) {
|
|
@@ -3337,15 +3344,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3337
3344
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3338
3345
|
}
|
|
3339
3346
|
const cellProperties = cellXml["a:tcPr"];
|
|
3340
|
-
const cellFill =
|
|
3347
|
+
const cellFill = chunkTDUDH7S4_js.parseDrawingColor(
|
|
3341
3348
|
cellProperties?.["a:solidFill"],
|
|
3342
3349
|
schemeColorOverrides
|
|
3343
3350
|
);
|
|
3344
3351
|
if (cellFill) {
|
|
3345
|
-
const opacity =
|
|
3352
|
+
const opacity = chunkTDUDH7S4_js.parseDrawingColorOpacity(
|
|
3346
3353
|
cellProperties?.["a:solidFill"]
|
|
3347
3354
|
);
|
|
3348
|
-
cellStyle.backgroundColor =
|
|
3355
|
+
cellStyle.backgroundColor = chunkTDUDH7S4_js.colorWithOpacity(cellFill, opacity);
|
|
3349
3356
|
} else {
|
|
3350
3357
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3351
3358
|
if (gradCss) {
|
|
@@ -3360,16 +3367,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3360
3367
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3361
3368
|
Object.assign(cellStyle, edgeBorders);
|
|
3362
3369
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3363
|
-
const borderColor =
|
|
3370
|
+
const borderColor = chunkTDUDH7S4_js.parseDrawingColor(
|
|
3364
3371
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3365
3372
|
schemeColorOverrides
|
|
3366
|
-
) ||
|
|
3373
|
+
) || chunkTDUDH7S4_js.parseDrawingColor(
|
|
3367
3374
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3368
3375
|
schemeColorOverrides
|
|
3369
|
-
) ||
|
|
3376
|
+
) || chunkTDUDH7S4_js.parseDrawingColor(
|
|
3370
3377
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3371
3378
|
schemeColorOverrides
|
|
3372
|
-
) ||
|
|
3379
|
+
) || chunkTDUDH7S4_js.parseDrawingColor(
|
|
3373
3380
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3374
3381
|
schemeColorOverrides
|
|
3375
3382
|
);
|
|
@@ -3448,10 +3455,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3448
3455
|
}
|
|
3449
3456
|
let color = base;
|
|
3450
3457
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3451
|
-
color =
|
|
3458
|
+
color = chunkTDUDH7S4_js.tintColor2(color, fill.tint / 1e5);
|
|
3452
3459
|
}
|
|
3453
3460
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3454
|
-
color =
|
|
3461
|
+
color = chunkTDUDH7S4_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3455
3462
|
}
|
|
3456
3463
|
return color;
|
|
3457
3464
|
}
|
|
@@ -3476,7 +3483,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3476
3483
|
style.fontFamily = text.fontFace;
|
|
3477
3484
|
applied = true;
|
|
3478
3485
|
} else {
|
|
3479
|
-
const refFont =
|
|
3486
|
+
const refFont = chunkTDUDH7S4_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3480
3487
|
if (refFont) {
|
|
3481
3488
|
style.fontFamily = refFont;
|
|
3482
3489
|
applied = true;
|
|
@@ -3487,10 +3494,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3487
3494
|
if (base) {
|
|
3488
3495
|
let color = base;
|
|
3489
3496
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3490
|
-
color =
|
|
3497
|
+
color = chunkTDUDH7S4_js.tintColor2(color, text.fontTint / 1e5);
|
|
3491
3498
|
}
|
|
3492
3499
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3493
|
-
color =
|
|
3500
|
+
color = chunkTDUDH7S4_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3494
3501
|
}
|
|
3495
3502
|
style.color = color;
|
|
3496
3503
|
applied = true;
|
|
@@ -3679,7 +3686,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3679
3686
|
};
|
|
3680
3687
|
}
|
|
3681
3688
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3682
|
-
return
|
|
3689
|
+
return chunkTDUDH7S4_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3683
3690
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3684
3691
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3685
3692
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3827,9 +3834,9 @@ function cellStyleToCss(style) {
|
|
|
3827
3834
|
if (style.gradientFillCss) {
|
|
3828
3835
|
css.background = style.gradientFillCss;
|
|
3829
3836
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3830
|
-
const fg =
|
|
3831
|
-
const bg =
|
|
3832
|
-
const svgPattern =
|
|
3837
|
+
const fg = chunkTDUDH7S4_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3838
|
+
const bg = chunkTDUDH7S4_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3839
|
+
const svgPattern = chunkTDUDH7S4_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3833
3840
|
if (svgPattern) {
|
|
3834
3841
|
const encoded = encodeURIComponent(svgPattern);
|
|
3835
3842
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3905,7 +3912,7 @@ function cellStyleToCss(style) {
|
|
|
3905
3912
|
if (edge.width || edge.color) {
|
|
3906
3913
|
const w = edge.width ?? 1;
|
|
3907
3914
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3908
|
-
const s =
|
|
3915
|
+
const s = chunkTDUDH7S4_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3909
3916
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3910
3917
|
}
|
|
3911
3918
|
}
|
|
@@ -3936,7 +3943,7 @@ function cellStyleToCss(style) {
|
|
|
3936
3943
|
css.textShadow = textShadowParts.join(", ");
|
|
3937
3944
|
}
|
|
3938
3945
|
if (style.cell3D) {
|
|
3939
|
-
Object.assign(css,
|
|
3946
|
+
Object.assign(css, chunkTDUDH7S4_js.cell3DBevelCss(style.cell3D));
|
|
3940
3947
|
}
|
|
3941
3948
|
return css;
|
|
3942
3949
|
}
|
|
@@ -3950,7 +3957,7 @@ function TableResizeOverlay({
|
|
|
3950
3957
|
const containerRef = React6.useRef(null);
|
|
3951
3958
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3952
3959
|
const dragRef = React6.useRef(null);
|
|
3953
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3960
|
+
const colBoundaries = React6.useMemo(() => chunkTDUDH7S4_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3954
3961
|
const measureRows = React6.useCallback(() => {
|
|
3955
3962
|
const container = containerRef.current;
|
|
3956
3963
|
if (!container) {
|
|
@@ -3997,11 +4004,11 @@ function TableResizeOverlay({
|
|
|
3997
4004
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3998
4005
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3999
4006
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
4000
|
-
onResizeColumns(
|
|
4007
|
+
onResizeColumns(chunkTDUDH7S4_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
4001
4008
|
} else if (drag.type === "row" && onResizeRow) {
|
|
4002
4009
|
const deltaY = e.clientY - drag.startPos;
|
|
4003
|
-
const newHeight =
|
|
4004
|
-
drag.initialRowHeight ??
|
|
4010
|
+
const newHeight = chunkTDUDH7S4_js.computeResizedRowHeight(
|
|
4011
|
+
drag.initialRowHeight ?? chunkTDUDH7S4_js.DEFAULT_ROW_HEIGHT,
|
|
4005
4012
|
deltaY
|
|
4006
4013
|
);
|
|
4007
4014
|
onResizeRow(drag.index, newHeight);
|
|
@@ -4039,7 +4046,7 @@ function TableResizeOverlay({
|
|
|
4039
4046
|
e.stopPropagation();
|
|
4040
4047
|
const table = containerRef.current?.querySelector("table");
|
|
4041
4048
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
4042
|
-
const actualHeight = tr?.offsetHeight ??
|
|
4049
|
+
const actualHeight = tr?.offsetHeight ?? chunkTDUDH7S4_js.DEFAULT_ROW_HEIGHT;
|
|
4043
4050
|
document.body.style.cursor = "row-resize";
|
|
4044
4051
|
document.body.style.userSelect = "none";
|
|
4045
4052
|
dragRef.current = {
|
|
@@ -4087,7 +4094,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4087
4094
|
}
|
|
4088
4095
|
const first = selectedCell.selectedCells[0];
|
|
4089
4096
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4090
|
-
return
|
|
4097
|
+
return chunkTDUDH7S4_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4091
4098
|
})();
|
|
4092
4099
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4093
4100
|
TableResizeOverlay,
|
|
@@ -4120,7 +4127,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4120
4127
|
return null;
|
|
4121
4128
|
}
|
|
4122
4129
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4123
|
-
const isInMultiSelection =
|
|
4130
|
+
const isInMultiSelection = chunkTDUDH7S4_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4124
4131
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4125
4132
|
const diag = getCellDiagonalBorders2(
|
|
4126
4133
|
cell.style,
|
|
@@ -4150,7 +4157,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4150
4157
|
}
|
|
4151
4158
|
event.stopPropagation();
|
|
4152
4159
|
if (event.shiftKey && selectedCell) {
|
|
4153
|
-
const rect =
|
|
4160
|
+
const rect = chunkTDUDH7S4_js.computeSelectionRect(
|
|
4154
4161
|
selectedCell.rowIndex,
|
|
4155
4162
|
selectedCell.columnIndex,
|
|
4156
4163
|
rowIndex,
|
|
@@ -4160,7 +4167,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4160
4167
|
options?.onSelectCell?.({
|
|
4161
4168
|
rowIndex: selectedCell.rowIndex,
|
|
4162
4169
|
columnIndex: selectedCell.columnIndex,
|
|
4163
|
-
selectedCells:
|
|
4170
|
+
selectedCells: chunkTDUDH7S4_js.rectToCells(rect)
|
|
4164
4171
|
});
|
|
4165
4172
|
} else {
|
|
4166
4173
|
options?.onSelectCell?.({
|
|
@@ -4222,7 +4229,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4222
4229
|
if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
|
|
4223
4230
|
return renderTableFromTableData(tableEl2, textStyle, options);
|
|
4224
4231
|
}
|
|
4225
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
4232
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBXAK3JFM_js.translationsEn["pptx.table.title"] });
|
|
4226
4233
|
}
|
|
4227
4234
|
const selectedCell = options?.selectedCell || null;
|
|
4228
4235
|
const isEditable = Boolean(options?.editable);
|
|
@@ -4237,7 +4244,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4237
4244
|
}
|
|
4238
4245
|
const first = selectedCell.selectedCells[0];
|
|
4239
4246
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4240
|
-
return
|
|
4247
|
+
return chunkTDUDH7S4_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4241
4248
|
})();
|
|
4242
4249
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4243
4250
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4314,7 +4321,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4314
4321
|
"border px-1 py-0.5 align-top",
|
|
4315
4322
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4316
4323
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4317
|
-
|
|
4324
|
+
chunkTDUDH7S4_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4318
4325
|
),
|
|
4319
4326
|
colSpan,
|
|
4320
4327
|
rowSpan: rSpan,
|
|
@@ -4325,7 +4332,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4325
4332
|
}
|
|
4326
4333
|
event.stopPropagation();
|
|
4327
4334
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4328
|
-
const rect =
|
|
4335
|
+
const rect = chunkTDUDH7S4_js.computeSelectionRect(
|
|
4329
4336
|
selectedCell.rowIndex,
|
|
4330
4337
|
selectedCell.columnIndex,
|
|
4331
4338
|
rowIndex,
|
|
@@ -4335,7 +4342,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4335
4342
|
options?.onSelectCell?.({
|
|
4336
4343
|
rowIndex: selectedCell.rowIndex,
|
|
4337
4344
|
columnIndex: selectedCell.columnIndex,
|
|
4338
|
-
selectedCells:
|
|
4345
|
+
selectedCells: chunkTDUDH7S4_js.rectToCells(rect)
|
|
4339
4346
|
});
|
|
4340
4347
|
} else {
|
|
4341
4348
|
options?.onSelectCell?.({
|
|
@@ -4390,24 +4397,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4390
4397
|
}
|
|
4391
4398
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4392
4399
|
function partAttrs(part) {
|
|
4393
|
-
return part ?
|
|
4400
|
+
return part ? chunkTDUDH7S4_js.chartPartToAttrs(part) : void 0;
|
|
4394
4401
|
}
|
|
4395
4402
|
function resolveReactPalette(chartData) {
|
|
4396
4403
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4397
4404
|
return chartData.colorPalette;
|
|
4398
4405
|
}
|
|
4399
|
-
return [...
|
|
4406
|
+
return [...chunkTDUDH7S4_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4400
4407
|
}
|
|
4401
4408
|
function buildReactChartViewModel(element) {
|
|
4402
4409
|
if (element.type !== "chart" || !element.chartData) {
|
|
4403
|
-
return
|
|
4410
|
+
return chunkTDUDH7S4_js.buildChartViewModel(element);
|
|
4404
4411
|
}
|
|
4405
4412
|
const palette = resolveReactPalette(element.chartData);
|
|
4406
4413
|
const themedElement = {
|
|
4407
4414
|
...element,
|
|
4408
4415
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4409
4416
|
};
|
|
4410
|
-
return
|
|
4417
|
+
return chunkTDUDH7S4_js.buildChartViewModel(themedElement);
|
|
4411
4418
|
}
|
|
4412
4419
|
function renderPrimitive(prim, key) {
|
|
4413
4420
|
switch (prim.kind) {
|
|
@@ -4796,7 +4803,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4796
4803
|
const unmatchedRows = [];
|
|
4797
4804
|
categories.forEach((cat, i) => {
|
|
4798
4805
|
const value = values[i] ?? 0;
|
|
4799
|
-
const code =
|
|
4806
|
+
const code = chunkTDUDH7S4_js.resolveRegionCode(cat);
|
|
4800
4807
|
if (code) {
|
|
4801
4808
|
regionValueMap.set(code, { value, label: cat });
|
|
4802
4809
|
} else {
|
|
@@ -4834,8 +4841,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4834
4841
|
let fill = "#e2e8f0";
|
|
4835
4842
|
let dataLabel = null;
|
|
4836
4843
|
if (entry) {
|
|
4837
|
-
const t =
|
|
4838
|
-
fill =
|
|
4844
|
+
const t = chunkTDUDH7S4_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4845
|
+
fill = chunkTDUDH7S4_js.sequentialColorScale(t);
|
|
4839
4846
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4840
4847
|
"text",
|
|
4841
4848
|
{
|
|
@@ -4846,7 +4853,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4846
4853
|
fontWeight: 600,
|
|
4847
4854
|
fill: "#1e293b",
|
|
4848
4855
|
style: { pointerEvents: "none" },
|
|
4849
|
-
children:
|
|
4856
|
+
children: chunkTDUDH7S4_js.formatAxisValue(entry.value)
|
|
4850
4857
|
},
|
|
4851
4858
|
`${element.id}-map-dl-${region.code}`
|
|
4852
4859
|
);
|
|
@@ -4864,7 +4871,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4864
4871
|
opacity: 0.9,
|
|
4865
4872
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4866
4873
|
region.name,
|
|
4867
|
-
entry ? `: ${
|
|
4874
|
+
entry ? `: ${chunkTDUDH7S4_js.formatAxisValue(entry.value)}` : ""
|
|
4868
4875
|
] })
|
|
4869
4876
|
}
|
|
4870
4877
|
),
|
|
@@ -4902,7 +4909,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4902
4909
|
fontSize: 7,
|
|
4903
4910
|
fill: "#64748b",
|
|
4904
4911
|
textAnchor: "middle",
|
|
4905
|
-
children:
|
|
4912
|
+
children: chunkTDUDH7S4_js.formatAxisValue(minVal)
|
|
4906
4913
|
},
|
|
4907
4914
|
`${element.id}-map-legend-min`
|
|
4908
4915
|
),
|
|
@@ -4914,7 +4921,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4914
4921
|
fontSize: 7,
|
|
4915
4922
|
fill: "#64748b",
|
|
4916
4923
|
textAnchor: "middle",
|
|
4917
|
-
children:
|
|
4924
|
+
children: chunkTDUDH7S4_js.formatAxisValue(maxVal)
|
|
4918
4925
|
},
|
|
4919
4926
|
`${element.id}-map-legend-max`
|
|
4920
4927
|
)
|
|
@@ -4933,7 +4940,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4933
4940
|
textAnchor: "middle",
|
|
4934
4941
|
fontSize: 7,
|
|
4935
4942
|
fill: "#94a3b8",
|
|
4936
|
-
children:
|
|
4943
|
+
children: chunkBXAK3JFM_js.translationsEn["pptx.chart.additionalRegionsFallback"]
|
|
4937
4944
|
},
|
|
4938
4945
|
`${element.id}-map-ft-hdr`
|
|
4939
4946
|
)
|
|
@@ -4980,7 +4987,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4980
4987
|
y,
|
|
4981
4988
|
fontSize,
|
|
4982
4989
|
fill: "#475569",
|
|
4983
|
-
children:
|
|
4990
|
+
children: chunkTDUDH7S4_js.formatAxisValue(row.value)
|
|
4984
4991
|
},
|
|
4985
4992
|
`${element.id}-map-ft-val-${i}`
|
|
4986
4993
|
)
|
|
@@ -5051,7 +5058,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5051
5058
|
|
|
5052
5059
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5053
5060
|
function sColor(series, idx) {
|
|
5054
|
-
return
|
|
5061
|
+
return chunkTDUDH7S4_js.seriesColor(series, idx);
|
|
5055
5062
|
}
|
|
5056
5063
|
function valToY(val, range, topY, bottomY) {
|
|
5057
5064
|
const usable = bottomY - topY;
|
|
@@ -5590,7 +5597,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5590
5597
|
width: 10,
|
|
5591
5598
|
height: 10,
|
|
5592
5599
|
rx: 2,
|
|
5593
|
-
fill:
|
|
5600
|
+
fill: chunkTDUDH7S4_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5594
5601
|
},
|
|
5595
5602
|
`${id}-leg-r-${i}`
|
|
5596
5603
|
)
|
|
@@ -5614,7 +5621,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5614
5621
|
width: 10,
|
|
5615
5622
|
height: 10,
|
|
5616
5623
|
rx: 2,
|
|
5617
|
-
fill:
|
|
5624
|
+
fill: chunkTDUDH7S4_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5618
5625
|
}
|
|
5619
5626
|
),
|
|
5620
5627
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5627,9 +5634,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5627
5634
|
}
|
|
5628
5635
|
const lines = [];
|
|
5629
5636
|
if (range.logScale && range.logBase) {
|
|
5630
|
-
const ticks =
|
|
5637
|
+
const ticks = chunkTDUDH7S4_js.generateLogTicks(range);
|
|
5631
5638
|
ticks.forEach((tickVal, i) => {
|
|
5632
|
-
const y =
|
|
5639
|
+
const y = chunkTDUDH7S4_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5633
5640
|
lines.push(
|
|
5634
5641
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5635
5642
|
"line",
|
|
@@ -5650,7 +5657,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5650
5657
|
const steps = 4;
|
|
5651
5658
|
for (let i = 0; i <= steps; i++) {
|
|
5652
5659
|
const val = range.min + range.span * i / steps;
|
|
5653
|
-
const y =
|
|
5660
|
+
const y = chunkTDUDH7S4_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5654
5661
|
lines.push(
|
|
5655
5662
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5656
5663
|
"line",
|
|
@@ -5674,9 +5681,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5674
5681
|
const labels = [];
|
|
5675
5682
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5676
5683
|
if (range.logScale && range.logBase) {
|
|
5677
|
-
const ticks =
|
|
5684
|
+
const ticks = chunkTDUDH7S4_js.generateLogTicks(range);
|
|
5678
5685
|
ticks.forEach((tickVal, i) => {
|
|
5679
|
-
const y =
|
|
5686
|
+
const y = chunkTDUDH7S4_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5680
5687
|
labels.push(
|
|
5681
5688
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5682
5689
|
"text",
|
|
@@ -5686,7 +5693,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5686
5693
|
textAnchor: "end",
|
|
5687
5694
|
fontSize: 8,
|
|
5688
5695
|
fill: "#64748b",
|
|
5689
|
-
children: hasDisplayUnits ?
|
|
5696
|
+
children: hasDisplayUnits ? chunkTDUDH7S4_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkTDUDH7S4_js.formatAxisValue(tickVal)
|
|
5690
5697
|
},
|
|
5691
5698
|
`${id}-vaxis-log-${i}`
|
|
5692
5699
|
)
|
|
@@ -5696,7 +5703,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5696
5703
|
const steps = 4;
|
|
5697
5704
|
for (let i = 0; i <= steps; i++) {
|
|
5698
5705
|
const val = range.min + range.span * i / steps;
|
|
5699
|
-
const y =
|
|
5706
|
+
const y = chunkTDUDH7S4_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5700
5707
|
labels.push(
|
|
5701
5708
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5702
5709
|
"text",
|
|
@@ -5706,7 +5713,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5706
5713
|
textAnchor: "end",
|
|
5707
5714
|
fontSize: 8,
|
|
5708
5715
|
fill: "#64748b",
|
|
5709
|
-
children: hasDisplayUnits ?
|
|
5716
|
+
children: hasDisplayUnits ? chunkTDUDH7S4_js.formatAxisValueWithUnits(val, axisFormatting) : chunkTDUDH7S4_js.formatAxisValue(val)
|
|
5710
5717
|
},
|
|
5711
5718
|
`${id}-vaxis-${i}`
|
|
5712
5719
|
)
|
|
@@ -5714,7 +5721,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5714
5721
|
}
|
|
5715
5722
|
}
|
|
5716
5723
|
if (hasDisplayUnits) {
|
|
5717
|
-
const unitLabel =
|
|
5724
|
+
const unitLabel = chunkTDUDH7S4_js.getDisplayUnitLabel(
|
|
5718
5725
|
axisFormatting.displayUnits,
|
|
5719
5726
|
axisFormatting.displayUnitsLabel
|
|
5720
5727
|
);
|
|
@@ -5789,7 +5796,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5789
5796
|
if (range.min >= 0) {
|
|
5790
5797
|
return null;
|
|
5791
5798
|
}
|
|
5792
|
-
const y =
|
|
5799
|
+
const y = chunkTDUDH7S4_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5793
5800
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5794
5801
|
"line",
|
|
5795
5802
|
{
|
|
@@ -5813,7 +5820,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5813
5820
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5814
5821
|
for (let i = 0; i <= steps; i++) {
|
|
5815
5822
|
const val = range.min + range.span * i / steps;
|
|
5816
|
-
const y =
|
|
5823
|
+
const y = chunkTDUDH7S4_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5817
5824
|
labels.push(
|
|
5818
5825
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5819
5826
|
"text",
|
|
@@ -5825,7 +5832,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5825
5832
|
fontFamily,
|
|
5826
5833
|
fontWeight,
|
|
5827
5834
|
fill: fontColor,
|
|
5828
|
-
children: hasDisplayUnits ?
|
|
5835
|
+
children: hasDisplayUnits ? chunkTDUDH7S4_js.formatAxisValueWithUnits(val, axisFormatting) : chunkTDUDH7S4_js.formatAxisValue(val)
|
|
5829
5836
|
},
|
|
5830
5837
|
`${id}-sec-vaxis-${i}`
|
|
5831
5838
|
)
|
|
@@ -5849,7 +5856,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5849
5856
|
);
|
|
5850
5857
|
}
|
|
5851
5858
|
if (hasDisplayUnits) {
|
|
5852
|
-
const unitLabel =
|
|
5859
|
+
const unitLabel = chunkTDUDH7S4_js.getDisplayUnitLabel(
|
|
5853
5860
|
axisFormatting.displayUnits,
|
|
5854
5861
|
axisFormatting.displayUnitsLabel
|
|
5855
5862
|
);
|
|
@@ -5880,7 +5887,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5880
5887
|
const ticks = [];
|
|
5881
5888
|
for (let i = 0; i <= steps; i++) {
|
|
5882
5889
|
const val = range.min + range.span * i / steps;
|
|
5883
|
-
const y =
|
|
5890
|
+
const y = chunkTDUDH7S4_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5884
5891
|
ticks.push(
|
|
5885
5892
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5886
5893
|
"line",
|
|
@@ -5907,7 +5914,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5907
5914
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5908
5915
|
for (let i = 0; i <= steps; i++) {
|
|
5909
5916
|
const val = range.min + range.span * i / steps;
|
|
5910
|
-
const y =
|
|
5917
|
+
const y = chunkTDUDH7S4_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5911
5918
|
lines.push(
|
|
5912
5919
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5913
5920
|
"line",
|
|
@@ -6025,7 +6032,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6025
6032
|
showK && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6026
6033
|
"th",
|
|
6027
6034
|
{
|
|
6028
|
-
"aria-label":
|
|
6035
|
+
"aria-label": chunkBXAK3JFM_js.translationsEn["pptx.chart.rowLabelsAria"],
|
|
6029
6036
|
style: {
|
|
6030
6037
|
padding: "1px 4px",
|
|
6031
6038
|
fontWeight: 400,
|
|
@@ -6069,7 +6076,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6069
6076
|
width: 8,
|
|
6070
6077
|
height: 8,
|
|
6071
6078
|
borderRadius: 2,
|
|
6072
|
-
backgroundColor:
|
|
6079
|
+
backgroundColor: chunkTDUDH7S4_js.seriesColor(
|
|
6073
6080
|
s,
|
|
6074
6081
|
si,
|
|
6075
6082
|
chartData.style?.styleId,
|
|
@@ -6108,8 +6115,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6108
6115
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6109
6116
|
const style = chartData.style;
|
|
6110
6117
|
const legendPos = style?.legendPosition || "b";
|
|
6111
|
-
const range =
|
|
6112
|
-
const layout =
|
|
6118
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6119
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6113
6120
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6114
6121
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6115
6122
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6130,10 +6137,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6130
6137
|
const close = closeSeries.values[ci] ?? high;
|
|
6131
6138
|
const isUp = close >= open;
|
|
6132
6139
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6133
|
-
const highY =
|
|
6134
|
-
const lowY =
|
|
6135
|
-
const openY =
|
|
6136
|
-
const closeY =
|
|
6140
|
+
const highY = chunkTDUDH7S4_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6141
|
+
const lowY = chunkTDUDH7S4_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6142
|
+
const openY = chunkTDUDH7S4_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6143
|
+
const closeY = chunkTDUDH7S4_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6137
6144
|
elements.push(
|
|
6138
6145
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6139
6146
|
"line",
|
|
@@ -6176,7 +6183,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6176
6183
|
textAnchor: "middle",
|
|
6177
6184
|
fontSize: 7,
|
|
6178
6185
|
fill: "#334155",
|
|
6179
|
-
children:
|
|
6186
|
+
children: chunkTDUDH7S4_js.formatAxisValue(close)
|
|
6180
6187
|
},
|
|
6181
6188
|
`${element.id}-stock-dl-${ci}`
|
|
6182
6189
|
)
|
|
@@ -6218,7 +6225,7 @@ function FailedToLoad() {
|
|
|
6218
6225
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6219
6226
|
async () => {
|
|
6220
6227
|
try {
|
|
6221
|
-
return await import('./SurfaceChart3DScene-
|
|
6228
|
+
return await import('./SurfaceChart3DScene-4VCO3DRP.js');
|
|
6222
6229
|
} catch {
|
|
6223
6230
|
return { default: FailedToLoad };
|
|
6224
6231
|
}
|
|
@@ -6242,7 +6249,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6242
6249
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6243
6250
|
const rows = chartData.series.length;
|
|
6244
6251
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6245
|
-
const range =
|
|
6252
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6246
6253
|
const heightMap = new Float32Array(rows * cols);
|
|
6247
6254
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6248
6255
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6362,8 +6369,8 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6362
6369
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6363
6370
|
const style = chartData.style;
|
|
6364
6371
|
const legendPos = style?.legendPosition || "b";
|
|
6365
|
-
const layout =
|
|
6366
|
-
const range =
|
|
6372
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6373
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6367
6374
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6368
6375
|
const seriesCount = chartData.series.length;
|
|
6369
6376
|
const cols = catCount - 1;
|
|
@@ -6453,8 +6460,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6453
6460
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6454
6461
|
const style = chartData.style;
|
|
6455
6462
|
const legendPos = style?.legendPosition || "b";
|
|
6456
|
-
const layout =
|
|
6457
|
-
const range =
|
|
6463
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6464
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6458
6465
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6459
6466
|
const seriesCount = chartData.series.length;
|
|
6460
6467
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6517,7 +6524,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6517
6524
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6518
6525
|
const style = chartData.style;
|
|
6519
6526
|
const legendPos = style?.legendPosition || "b";
|
|
6520
|
-
const layout =
|
|
6527
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6521
6528
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6522
6529
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6523
6530
|
const rects = [];
|
|
@@ -6540,7 +6547,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6540
6547
|
y: curY,
|
|
6541
6548
|
width: Math.max(w - 1, 1),
|
|
6542
6549
|
height: Math.max(h - 1, 1),
|
|
6543
|
-
fill:
|
|
6550
|
+
fill: chunkTDUDH7S4_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6544
6551
|
rx: 2,
|
|
6545
6552
|
opacity: 0.85
|
|
6546
6553
|
},
|
|
@@ -6593,8 +6600,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6593
6600
|
const style = chartData.style;
|
|
6594
6601
|
const legendPos = style?.legendPosition || "b";
|
|
6595
6602
|
const values = chartData.series[0]?.values ?? [];
|
|
6596
|
-
const range =
|
|
6597
|
-
const layout =
|
|
6603
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6604
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6598
6605
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6599
6606
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6600
6607
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6605,8 +6612,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6605
6612
|
const isLast = i === values.length - 1;
|
|
6606
6613
|
const startVal = isLast ? 0 : runningTotal;
|
|
6607
6614
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6608
|
-
const barStartY =
|
|
6609
|
-
const barEndY =
|
|
6615
|
+
const barStartY = chunkTDUDH7S4_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6616
|
+
const barEndY = chunkTDUDH7S4_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6610
6617
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6611
6618
|
const y = Math.min(barStartY, barEndY);
|
|
6612
6619
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6635,7 +6642,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6635
6642
|
textAnchor: "middle",
|
|
6636
6643
|
fontSize: 7,
|
|
6637
6644
|
fill: "#334155",
|
|
6638
|
-
children:
|
|
6645
|
+
children: chunkTDUDH7S4_js.formatAxisValue(isLast ? endVal : val)
|
|
6639
6646
|
},
|
|
6640
6647
|
`${element.id}-wf-dl-${i}`
|
|
6641
6648
|
)
|
|
@@ -6683,18 +6690,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6683
6690
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6684
6691
|
const style = chartData.style;
|
|
6685
6692
|
const legendPos = style?.legendPosition || "b";
|
|
6686
|
-
const layoutOpts =
|
|
6693
|
+
const layoutOpts = chunkTDUDH7S4_js.computeLayoutOptions(
|
|
6687
6694
|
chartData.axes,
|
|
6688
6695
|
chartData.dataTable,
|
|
6689
6696
|
chartData.series.length
|
|
6690
6697
|
);
|
|
6691
|
-
const layout =
|
|
6692
|
-
const { primary, secondary } =
|
|
6698
|
+
const layout = chunkTDUDH7S4_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6699
|
+
const { primary, secondary } = chunkTDUDH7S4_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6693
6700
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6694
6701
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6695
|
-
const range =
|
|
6696
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6697
|
-
const secondaryAxisFmt =
|
|
6702
|
+
const range = chunkTDUDH7S4_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6703
|
+
const secondaryRange = secondarySeries.length > 0 ? chunkTDUDH7S4_js.computeValueRange(secondarySeries) : void 0;
|
|
6704
|
+
const secondaryAxisFmt = chunkTDUDH7S4_js.getSecondaryValueAxis(chartData.axes);
|
|
6698
6705
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6699
6706
|
const barSeriesCount = 1;
|
|
6700
6707
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6710,8 +6717,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6710
6717
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6711
6718
|
barSeries.values.forEach((val, vi) => {
|
|
6712
6719
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6713
|
-
const zeroY =
|
|
6714
|
-
const valY =
|
|
6720
|
+
const zeroY = chunkTDUDH7S4_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6721
|
+
const valY = chunkTDUDH7S4_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6715
6722
|
const y = Math.min(zeroY, valY);
|
|
6716
6723
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6717
6724
|
barElements.push(
|
|
@@ -6722,7 +6729,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6722
6729
|
y,
|
|
6723
6730
|
width: barWidth,
|
|
6724
6731
|
height: h,
|
|
6725
|
-
fill:
|
|
6732
|
+
fill: chunkTDUDH7S4_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6726
6733
|
rx: 1
|
|
6727
6734
|
},
|
|
6728
6735
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6738,7 +6745,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6738
6745
|
textAnchor: "middle",
|
|
6739
6746
|
fontSize: 7,
|
|
6740
6747
|
fill: "#334155",
|
|
6741
|
-
children:
|
|
6748
|
+
children: chunkTDUDH7S4_js.formatAxisValue(val)
|
|
6742
6749
|
},
|
|
6743
6750
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6744
6751
|
)
|
|
@@ -6755,10 +6762,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6755
6762
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6756
6763
|
const points = series.values.map((val, vi) => {
|
|
6757
6764
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6758
|
-
const y =
|
|
6765
|
+
const y = chunkTDUDH7S4_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6759
6766
|
return { x, y, val };
|
|
6760
6767
|
});
|
|
6761
|
-
const c =
|
|
6768
|
+
const c = chunkTDUDH7S4_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6762
6769
|
lineElements.push(
|
|
6763
6770
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6764
6771
|
"polyline",
|
|
@@ -6785,7 +6792,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6785
6792
|
textAnchor: "middle",
|
|
6786
6793
|
fontSize: 7,
|
|
6787
6794
|
fill: "#334155",
|
|
6788
|
-
children:
|
|
6795
|
+
children: chunkTDUDH7S4_js.formatAxisValue(p.val)
|
|
6789
6796
|
},
|
|
6790
6797
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6791
6798
|
)
|
|
@@ -6823,11 +6830,11 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6823
6830
|
}
|
|
6824
6831
|
function renderChartElement(element) {
|
|
6825
6832
|
if (element.type !== "chart") {
|
|
6826
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
6833
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBXAK3JFM_js.translationsEn["pptx.chart.heading"] });
|
|
6827
6834
|
}
|
|
6828
6835
|
const chartData = element.chartData;
|
|
6829
6836
|
if (!chartData || chartData.series.length === 0) {
|
|
6830
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children:
|
|
6837
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBXAK3JFM_js.translationsEn["pptx.chart.heading"] });
|
|
6831
6838
|
}
|
|
6832
6839
|
const longestSeriesLength = chartData.series.reduce(
|
|
6833
6840
|
(maxLength, series) => Math.max(maxLength, series.values.length),
|
|
@@ -7931,14 +7938,14 @@ function buildNotesPdf(pages) {
|
|
|
7931
7938
|
notes: page.notes,
|
|
7932
7939
|
slideNumber: page.slideNumber
|
|
7933
7940
|
}));
|
|
7934
|
-
const bytes =
|
|
7941
|
+
const bytes = chunkTDUDH7S4_js.buildNotesPdfBytes(images, meta);
|
|
7935
7942
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7936
7943
|
return URL.createObjectURL(blob);
|
|
7937
7944
|
}
|
|
7938
7945
|
|
|
7939
7946
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
7940
7947
|
function buildPdfFromImageData(images) {
|
|
7941
|
-
const bytes =
|
|
7948
|
+
const bytes = chunkTDUDH7S4_js.buildSlidesPdfBytes(images);
|
|
7942
7949
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7943
7950
|
return URL.createObjectURL(blob);
|
|
7944
7951
|
}
|
|
@@ -7947,7 +7954,7 @@ function buildPdfFromImageData(images) {
|
|
|
7947
7954
|
var activePreview = null;
|
|
7948
7955
|
function startPreviewAnimation(elementId, preset, options) {
|
|
7949
7956
|
stopPreviewAnimation();
|
|
7950
|
-
const descriptor =
|
|
7957
|
+
const descriptor = chunkTDUDH7S4_js.buildPreviewAnimation(preset, options);
|
|
7951
7958
|
if (!descriptor) {
|
|
7952
7959
|
return;
|
|
7953
7960
|
}
|
|
@@ -7960,7 +7967,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
7960
7967
|
return;
|
|
7961
7968
|
}
|
|
7962
7969
|
const stage = domEl.offsetParent;
|
|
7963
|
-
const descriptor =
|
|
7970
|
+
const descriptor = chunkTDUDH7S4_js.buildMotionPathPreview({
|
|
7964
7971
|
path,
|
|
7965
7972
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
7966
7973
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|