pptx-react-viewer 2.16.0 → 2.16.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-VKGWK23E.js → AiChatPanel-OHB6CVLY.js} +22 -22
- package/dist/AiChatPanel-OHB6CVLY.js.br +0 -0
- package/dist/AiChatPanel-OHB6CVLY.js.gz +0 -0
- package/dist/{AiChatPanel-TYU52HDW.mjs → AiChatPanel-UPNVIENY.mjs} +3 -3
- package/dist/AiChatPanel-UPNVIENY.mjs.br +0 -0
- package/dist/AiChatPanel-UPNVIENY.mjs.gz +0 -0
- package/dist/{Model3DScene-TG7OSR6V.js → Model3DScene-7FKWPESH.js} +2 -2
- package/dist/{Model3DScene-TG7OSR6V.js.br → Model3DScene-7FKWPESH.js.br} +0 -0
- package/dist/Model3DScene-7FKWPESH.js.gz +0 -0
- package/dist/{Model3DScene-267BHD5T.mjs → Model3DScene-KEUY3M7X.mjs} +1 -1
- package/dist/{Model3DScene-267BHD5T.mjs.br → Model3DScene-KEUY3M7X.mjs.br} +0 -0
- package/dist/Model3DScene-KEUY3M7X.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-RPRVXRQZ.mjs → SurfaceChart3DScene-2MLBPJ63.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-RPRVXRQZ.mjs.br → SurfaceChart3DScene-2MLBPJ63.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-2MLBPJ63.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-GK4JHZAC.js → SurfaceChart3DScene-NPJQXIGW.js} +2 -2
- package/dist/SurfaceChart3DScene-NPJQXIGW.js.br +0 -0
- package/dist/SurfaceChart3DScene-NPJQXIGW.js.gz +0 -0
- package/dist/{chunk-P3Y3OMAD.js → chunk-3NDRTC7T.js} +303 -40
- package/dist/chunk-3NDRTC7T.js.br +0 -0
- package/dist/{chunk-P3Y3OMAD.js.gz → chunk-3NDRTC7T.js.gz} +0 -0
- package/dist/{chunk-VNVURLZM.mjs → chunk-6ROCCY4M.mjs} +14 -9
- package/dist/chunk-6ROCCY4M.mjs.br +0 -0
- package/dist/chunk-6ROCCY4M.mjs.gz +0 -0
- package/dist/{chunk-PILJZ5OE.js → chunk-7UBDMCI7.js} +3 -3
- package/dist/chunk-7UBDMCI7.js.br +0 -0
- package/dist/chunk-7UBDMCI7.js.gz +0 -0
- package/dist/{chunk-GOPIG4VW.js → chunk-DQTTI6D4.js} +348 -344
- package/dist/chunk-DQTTI6D4.js.br +0 -0
- package/dist/chunk-DQTTI6D4.js.gz +0 -0
- package/dist/{chunk-OIITLGKQ.mjs → chunk-ENOHLGJ2.mjs} +298 -40
- package/dist/chunk-ENOHLGJ2.mjs.br +0 -0
- package/dist/{chunk-OIITLGKQ.mjs.gz → chunk-ENOHLGJ2.mjs.gz} +0 -0
- package/dist/{chunk-AX75ONFY.js → chunk-IN7D2T4R.js} +373 -375
- package/dist/chunk-IN7D2T4R.js.br +0 -0
- package/dist/chunk-IN7D2T4R.js.gz +0 -0
- package/dist/{chunk-ULB35HMJ.mjs → chunk-LJZFG6YP.mjs} +1 -1
- package/dist/chunk-LJZFG6YP.mjs.br +0 -0
- package/dist/chunk-LJZFG6YP.mjs.gz +0 -0
- package/dist/{chunk-7W5MCYBN.js → chunk-N6IE34HX.js} +1060 -1055
- package/dist/chunk-N6IE34HX.js.br +0 -0
- package/dist/chunk-N6IE34HX.js.gz +0 -0
- package/dist/{chunk-TWPZJXLC.mjs → chunk-RUK5XZGO.mjs} +11 -7
- package/dist/chunk-RUK5XZGO.mjs.br +0 -0
- package/dist/chunk-RUK5XZGO.mjs.gz +0 -0
- package/dist/{chunk-FFBY2TKD.mjs → chunk-ZOOGEDYG.mjs} +131 -133
- package/dist/chunk-ZOOGEDYG.mjs.br +0 -0
- package/dist/chunk-ZOOGEDYG.mjs.gz +0 -0
- package/dist/index.js +39 -39
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +16 -0
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-TYU52HDW.mjs.br +0 -0
- package/dist/AiChatPanel-TYU52HDW.mjs.gz +0 -0
- package/dist/AiChatPanel-VKGWK23E.js.br +0 -0
- package/dist/AiChatPanel-VKGWK23E.js.gz +0 -0
- package/dist/Model3DScene-267BHD5T.mjs.gz +0 -0
- package/dist/Model3DScene-TG7OSR6V.js.gz +0 -0
- package/dist/SurfaceChart3DScene-GK4JHZAC.js.br +0 -0
- package/dist/SurfaceChart3DScene-GK4JHZAC.js.gz +0 -0
- package/dist/SurfaceChart3DScene-RPRVXRQZ.mjs.gz +0 -0
- package/dist/chunk-7W5MCYBN.js.br +0 -0
- package/dist/chunk-7W5MCYBN.js.gz +0 -0
- package/dist/chunk-AX75ONFY.js.br +0 -0
- package/dist/chunk-AX75ONFY.js.gz +0 -0
- package/dist/chunk-FFBY2TKD.mjs.br +0 -0
- package/dist/chunk-FFBY2TKD.mjs.gz +0 -0
- package/dist/chunk-GOPIG4VW.js.br +0 -0
- package/dist/chunk-GOPIG4VW.js.gz +0 -0
- package/dist/chunk-OIITLGKQ.mjs.br +0 -0
- package/dist/chunk-P3Y3OMAD.js.br +0 -0
- package/dist/chunk-PILJZ5OE.js.br +0 -0
- package/dist/chunk-PILJZ5OE.js.gz +0 -0
- package/dist/chunk-TWPZJXLC.mjs.br +0 -0
- package/dist/chunk-TWPZJXLC.mjs.gz +0 -0
- package/dist/chunk-ULB35HMJ.mjs.br +0 -0
- package/dist/chunk-ULB35HMJ.mjs.gz +0 -0
- package/dist/chunk-VNVURLZM.mjs.br +0 -0
- package/dist/chunk-VNVURLZM.mjs.gz +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunk3ISYPBSX_js = require('./chunk-3ISYPBSX.js');
|
|
4
|
-
var
|
|
4
|
+
var chunk3NDRTC7T_js = require('./chunk-3NDRTC7T.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React6 = require('react');
|
|
8
8
|
var lu = require('react-icons/lu');
|
|
9
|
-
var reactI18next = require('react-i18next');
|
|
10
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
var reactI18next = require('react-i18next');
|
|
11
11
|
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
|
|
@@ -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 chunk3NDRTC7T_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 chunk3NDRTC7T_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 = chunk3NDRTC7T_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 = chunk3NDRTC7T_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 (!chunk3NDRTC7T_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) => chunk3NDRTC7T_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) => !chunk3NDRTC7T_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 (!chunk3NDRTC7T_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 = chunk3NDRTC7T_js.getRoundRectRadiusPx2(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 = chunk3NDRTC7T_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
|
+
...chunk3NDRTC7T_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 (!chunk3NDRTC7T_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 (!chunk3NDRTC7T_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 (!chunk3NDRTC7T_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
413
413
|
return void 0;
|
|
414
414
|
}
|
|
415
415
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -550,36 +550,6 @@ function CaptionTrackRenderer({
|
|
|
550
550
|
);
|
|
551
551
|
}) });
|
|
552
552
|
}
|
|
553
|
-
function MediaNotFoundPlaceholder({
|
|
554
|
-
mediaType
|
|
555
|
-
}) {
|
|
556
|
-
const { t } = reactI18next.useTranslation();
|
|
557
|
-
const isVideo = mediaType === "video";
|
|
558
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-col items-center justify-center gap-2 pointer-events-none bg-black/30 rounded border border-dashed border-white/20", children: [
|
|
559
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
560
|
-
"svg",
|
|
561
|
-
{
|
|
562
|
-
width: "36",
|
|
563
|
-
height: "36",
|
|
564
|
-
viewBox: "0 0 24 24",
|
|
565
|
-
fill: "none",
|
|
566
|
-
stroke: "currentColor",
|
|
567
|
-
strokeWidth: "1.5",
|
|
568
|
-
className: "text-white/50",
|
|
569
|
-
children: isVideo ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
570
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2" }),
|
|
571
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "2", y1: "4", x2: "22", y2: "20" })
|
|
572
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
573
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
574
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "4", y1: "4", x2: "20", y2: "20" })
|
|
575
|
-
] })
|
|
576
|
-
}
|
|
577
|
-
),
|
|
578
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/50", children: t("pptx.media.typeNotFound", {
|
|
579
|
-
type: isVideo ? t("pptx.file.video") : t("pptx.file.audio")
|
|
580
|
-
}) })
|
|
581
|
-
] });
|
|
582
|
-
}
|
|
583
553
|
function VideoWithMetadata({
|
|
584
554
|
element,
|
|
585
555
|
mediaRef,
|
|
@@ -659,9 +629,9 @@ function registerMediaElement(elementId, el) {
|
|
|
659
629
|
};
|
|
660
630
|
}
|
|
661
631
|
function executeMediaCommand(command, frameRoot) {
|
|
662
|
-
return
|
|
632
|
+
return chunk3NDRTC7T_js.runMediaCommand(
|
|
663
633
|
command,
|
|
664
|
-
(targetId) => registry.get(targetId) ??
|
|
634
|
+
(targetId) => registry.get(targetId) ?? chunk3NDRTC7T_js.findMediaElementByElementId(targetId, frameRoot?.())
|
|
665
635
|
);
|
|
666
636
|
}
|
|
667
637
|
function PresentationMediaController({
|
|
@@ -705,7 +675,7 @@ function PresentationMediaController({
|
|
|
705
675
|
loop: shouldLoop,
|
|
706
676
|
volume: playbackVolume,
|
|
707
677
|
playbackRate
|
|
708
|
-
} =
|
|
678
|
+
} = chunk3NDRTC7T_js.mediaPlaybackAttributes({
|
|
709
679
|
loop: element.loop,
|
|
710
680
|
volume: element.volume,
|
|
711
681
|
playbackSpeed: element.playbackSpeed
|
|
@@ -841,7 +811,7 @@ function PresentationMediaController({
|
|
|
841
811
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
842
812
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
843
813
|
if (dataUrl) {
|
|
844
|
-
|
|
814
|
+
chunk3NDRTC7T_js.registerPersistentAudio(
|
|
845
815
|
element.id,
|
|
846
816
|
dataUrl,
|
|
847
817
|
element.mediaMimeType,
|
|
@@ -902,6 +872,109 @@ function PresentationMediaController({
|
|
|
902
872
|
)
|
|
903
873
|
] });
|
|
904
874
|
}
|
|
875
|
+
function label(key) {
|
|
876
|
+
return key === void 0 ? void 0 : chunk3ISYPBSX_js.translationsEn[key];
|
|
877
|
+
}
|
|
878
|
+
function FallbackIcon({
|
|
879
|
+
paths,
|
|
880
|
+
size,
|
|
881
|
+
className
|
|
882
|
+
}) {
|
|
883
|
+
if (paths.length === 0) {
|
|
884
|
+
return null;
|
|
885
|
+
}
|
|
886
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
887
|
+
"svg",
|
|
888
|
+
{
|
|
889
|
+
width: size,
|
|
890
|
+
height: size,
|
|
891
|
+
viewBox: "0 0 24 24",
|
|
892
|
+
fill: "none",
|
|
893
|
+
stroke: "currentColor",
|
|
894
|
+
strokeWidth: "1.5",
|
|
895
|
+
className,
|
|
896
|
+
children: paths.map((d) => /* @__PURE__ */ jsxRuntime.jsx("path", { d }, d))
|
|
897
|
+
}
|
|
898
|
+
);
|
|
899
|
+
}
|
|
900
|
+
function Badge({
|
|
901
|
+
visual,
|
|
902
|
+
element
|
|
903
|
+
}) {
|
|
904
|
+
if (visual.badge === "none") {
|
|
905
|
+
return null;
|
|
906
|
+
}
|
|
907
|
+
const isMissing = visual.badge === "missing";
|
|
908
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
909
|
+
"div",
|
|
910
|
+
{
|
|
911
|
+
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
912
|
+
...{ [chunk3NDRTC7T_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
913
|
+
children: [
|
|
914
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
915
|
+
FallbackIcon,
|
|
916
|
+
{
|
|
917
|
+
paths: chunk3NDRTC7T_js.mediaFallbackIcon(visual, element.mediaType),
|
|
918
|
+
size: isMissing ? 32 : 48,
|
|
919
|
+
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
920
|
+
}
|
|
921
|
+
),
|
|
922
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunk3NDRTC7T_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
923
|
+
]
|
|
924
|
+
}
|
|
925
|
+
);
|
|
926
|
+
}
|
|
927
|
+
function Placeholder({
|
|
928
|
+
visual,
|
|
929
|
+
element
|
|
930
|
+
}) {
|
|
931
|
+
if (visual.placeholder === "none") {
|
|
932
|
+
return null;
|
|
933
|
+
}
|
|
934
|
+
const isMissing = visual.placeholder === "missing";
|
|
935
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
936
|
+
"div",
|
|
937
|
+
{
|
|
938
|
+
className: `w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none rounded ${isMissing ? "bg-black/30 border border-dashed border-white/20" : element.mediaType === "audio" ? "bg-black/10" : "bg-black/20"}`,
|
|
939
|
+
...{ [chunk3NDRTC7T_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
940
|
+
children: [
|
|
941
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
942
|
+
FallbackIcon,
|
|
943
|
+
{
|
|
944
|
+
paths: chunk3NDRTC7T_js.mediaFallbackIcon(visual, element.mediaType),
|
|
945
|
+
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
946
|
+
className: isMissing ? "text-white/50" : "text-white/70"
|
|
947
|
+
}
|
|
948
|
+
),
|
|
949
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunk3NDRTC7T_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
950
|
+
]
|
|
951
|
+
}
|
|
952
|
+
);
|
|
953
|
+
}
|
|
954
|
+
function renderMediaFallback({
|
|
955
|
+
element,
|
|
956
|
+
posterUrl,
|
|
957
|
+
surface
|
|
958
|
+
}) {
|
|
959
|
+
const visual = chunk3NDRTC7T_js.mediaFallbackVisual(surface, {
|
|
960
|
+
hasPoster: Boolean(posterUrl),
|
|
961
|
+
missing: element.mediaMissing === true
|
|
962
|
+
});
|
|
963
|
+
if (visual.poster && posterUrl) {
|
|
964
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full relative pointer-events-none", children: [
|
|
965
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
966
|
+
"img",
|
|
967
|
+
{
|
|
968
|
+
src: posterUrl,
|
|
969
|
+
alt: visual.dimPoster ? chunk3ISYPBSX_js.translationsEn["pptx.media.posterAlt"] : chunk3ISYPBSX_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
970
|
+
className: `w-full h-full object-contain${visual.dimPoster ? " opacity-50" : ""}`
|
|
971
|
+
}
|
|
972
|
+
),
|
|
973
|
+
/* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
|
|
974
|
+
] });
|
|
975
|
+
}
|
|
976
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Placeholder, { visual, element });
|
|
977
|
+
}
|
|
905
978
|
function renderMediaElement(element, mediaDataUrls, options) {
|
|
906
979
|
if (element.type !== "media") {
|
|
907
980
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3ISYPBSX_js.translationsEn["pptx.media.title"] });
|
|
@@ -912,44 +985,17 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
912
985
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
913
986
|
const trimFragment = buildTrimFragment(element);
|
|
914
987
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
915
|
-
const shouldLoop =
|
|
988
|
+
const shouldLoop = chunk3NDRTC7T_js.mediaPlaybackAttributes(element).loop;
|
|
916
989
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
917
990
|
const isFullScreen = options?.fullScreen === true;
|
|
918
991
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
919
992
|
const showTransport = options?.showTransport ?? !isPresentationMode;
|
|
993
|
+
const surface = {
|
|
994
|
+
presenting: isPresentationMode,
|
|
995
|
+
preview: options?.preview === true
|
|
996
|
+
};
|
|
920
997
|
if (element.mediaMissing) {
|
|
921
|
-
|
|
922
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full relative pointer-events-none", children: [
|
|
923
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
924
|
-
"img",
|
|
925
|
-
{
|
|
926
|
-
src: posterUrl,
|
|
927
|
-
alt: chunk3ISYPBSX_js.translationsEn["pptx.media.posterAlt"],
|
|
928
|
-
className: "w-full h-full object-contain opacity-50"
|
|
929
|
-
}
|
|
930
|
-
),
|
|
931
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 flex flex-col items-center justify-center gap-1", children: [
|
|
932
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
933
|
-
"svg",
|
|
934
|
-
{
|
|
935
|
-
width: "32",
|
|
936
|
-
height: "32",
|
|
937
|
-
viewBox: "0 0 24 24",
|
|
938
|
-
fill: "none",
|
|
939
|
-
stroke: "currentColor",
|
|
940
|
-
strokeWidth: "1.5",
|
|
941
|
-
className: "text-white/60",
|
|
942
|
-
children: [
|
|
943
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
944
|
-
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "4", y1: "4", x2: "20", y2: "20" })
|
|
945
|
-
]
|
|
946
|
-
}
|
|
947
|
-
),
|
|
948
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: chunk3ISYPBSX_js.translationsEn["pptx.media.notFound"] })
|
|
949
|
-
] })
|
|
950
|
-
] });
|
|
951
|
-
}
|
|
952
|
-
return /* @__PURE__ */ jsxRuntime.jsx(MediaNotFoundPlaceholder, { mediaType: mediaType ?? "video" });
|
|
998
|
+
return renderMediaFallback({ element, posterUrl, surface });
|
|
953
999
|
}
|
|
954
1000
|
if (mediaType === "video") {
|
|
955
1001
|
if (dataUrl) {
|
|
@@ -982,47 +1028,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
982
1028
|
}
|
|
983
1029
|
);
|
|
984
1030
|
}
|
|
985
|
-
|
|
986
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full relative pointer-events-none", children: [
|
|
987
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
988
|
-
"img",
|
|
989
|
-
{
|
|
990
|
-
src: posterUrl,
|
|
991
|
-
alt: chunk3ISYPBSX_js.translationsEn["pptx.media.videoPosterAlt"],
|
|
992
|
-
className: "w-full h-full object-contain"
|
|
993
|
-
}
|
|
994
|
-
),
|
|
995
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
996
|
-
"svg",
|
|
997
|
-
{
|
|
998
|
-
width: "48",
|
|
999
|
-
height: "48",
|
|
1000
|
-
viewBox: "0 0 24 24",
|
|
1001
|
-
fill: "none",
|
|
1002
|
-
stroke: "currentColor",
|
|
1003
|
-
strokeWidth: "1.5",
|
|
1004
|
-
className: "text-white/80 drop-shadow-md",
|
|
1005
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "5 3 19 12 5 21 5 3" })
|
|
1006
|
-
}
|
|
1007
|
-
) })
|
|
1008
|
-
] });
|
|
1009
|
-
}
|
|
1010
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none bg-black/20 rounded", children: [
|
|
1011
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1012
|
-
"svg",
|
|
1013
|
-
{
|
|
1014
|
-
width: "32",
|
|
1015
|
-
height: "32",
|
|
1016
|
-
viewBox: "0 0 24 24",
|
|
1017
|
-
fill: "none",
|
|
1018
|
-
stroke: "currentColor",
|
|
1019
|
-
strokeWidth: "1.5",
|
|
1020
|
-
className: "text-white/70",
|
|
1021
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "5 3 19 12 5 21 5 3" })
|
|
1022
|
-
}
|
|
1023
|
-
),
|
|
1024
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/70", children: "Video" })
|
|
1025
|
-
] });
|
|
1031
|
+
return renderMediaFallback({ element, posterUrl, surface });
|
|
1026
1032
|
}
|
|
1027
1033
|
if (mediaType === "audio") {
|
|
1028
1034
|
if (dataUrl) {
|
|
@@ -1052,33 +1058,17 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1052
1058
|
}
|
|
1053
1059
|
);
|
|
1054
1060
|
}
|
|
1055
|
-
return
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
width: "24",
|
|
1060
|
-
height: "24",
|
|
1061
|
-
viewBox: "0 0 24 24",
|
|
1062
|
-
fill: "none",
|
|
1063
|
-
stroke: "currentColor",
|
|
1064
|
-
strokeWidth: "1.5",
|
|
1065
|
-
className: "text-white/70",
|
|
1066
|
-
children: [
|
|
1067
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 18V5l12-2v13" }),
|
|
1068
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "6", cy: "18", r: "3" }),
|
|
1069
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "16", r: "3" })
|
|
1070
|
-
]
|
|
1071
|
-
}
|
|
1072
|
-
),
|
|
1073
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/70", children: "Audio" })
|
|
1074
|
-
] });
|
|
1061
|
+
return renderMediaFallback({ element, posterUrl, surface });
|
|
1062
|
+
}
|
|
1063
|
+
if (surface.presenting || surface.preview) {
|
|
1064
|
+
return null;
|
|
1075
1065
|
}
|
|
1076
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: "
|
|
1066
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3ISYPBSX_js.translationsEn["pptx.media.title"] });
|
|
1077
1067
|
}
|
|
1078
1068
|
|
|
1079
1069
|
// src/viewer/utils/text-utils.tsx
|
|
1080
1070
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1081
|
-
return
|
|
1071
|
+
return chunk3NDRTC7T_js.buildTextBlockStyle(element, { fallbackColor });
|
|
1082
1072
|
}
|
|
1083
1073
|
|
|
1084
1074
|
// src/viewer/utils/text-layout.tsx
|
|
@@ -1103,13 +1093,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1103
1093
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1104
1094
|
}
|
|
1105
1095
|
function getTextLayoutStyle(element) {
|
|
1106
|
-
if (!
|
|
1096
|
+
if (!chunk3NDRTC7T_js.hasTextProperties(element)) {
|
|
1107
1097
|
return {};
|
|
1108
1098
|
}
|
|
1109
1099
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1110
|
-
const writingMode =
|
|
1111
|
-
const textOrientation =
|
|
1112
|
-
const verticalDirection =
|
|
1100
|
+
const writingMode = chunk3NDRTC7T_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1101
|
+
const textOrientation = chunk3NDRTC7T_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1102
|
+
const verticalDirection = chunk3NDRTC7T_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1113
1103
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1114
1104
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1115
1105
|
const hasColumns = columnCount > 1;
|
|
@@ -1117,7 +1107,7 @@ function getTextLayoutStyle(element) {
|
|
|
1117
1107
|
const tabStops = element.textStyle?.tabStops;
|
|
1118
1108
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1119
1109
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1120
|
-
const hasParagraphIndents =
|
|
1110
|
+
const hasParagraphIndents = chunk3NDRTC7T_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1121
1111
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1122
1112
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1123
1113
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1126,7 +1116,7 @@ function getTextLayoutStyle(element) {
|
|
|
1126
1116
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1127
1117
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1128
1118
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1129
|
-
const kinsokuStyles =
|
|
1119
|
+
const kinsokuStyles = chunk3NDRTC7T_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1130
1120
|
if (hasColumns) {
|
|
1131
1121
|
return {
|
|
1132
1122
|
display: "block",
|
|
@@ -1173,10 +1163,10 @@ function getTextLayoutStyle(element) {
|
|
|
1173
1163
|
|
|
1174
1164
|
// src/viewer/utils/text-effects.tsx
|
|
1175
1165
|
function buildTextFillCss2(style) {
|
|
1176
|
-
return
|
|
1166
|
+
return chunk3NDRTC7T_js.buildTextFillCss(style);
|
|
1177
1167
|
}
|
|
1178
1168
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1179
|
-
return
|
|
1169
|
+
return chunk3NDRTC7T_js.buildTextBody3DSceneStyle(textStyle);
|
|
1180
1170
|
}
|
|
1181
1171
|
|
|
1182
1172
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1361,13 +1351,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1361
1351
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1362
1352
|
return renderedSegments;
|
|
1363
1353
|
}
|
|
1364
|
-
const paraKey = `${elementId}${
|
|
1354
|
+
const paraKey = `${elementId}${chunk3NDRTC7T_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1365
1355
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1366
1356
|
if (paraState) {
|
|
1367
1357
|
const style = buildAnimStyle(paraState);
|
|
1368
1358
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1369
1359
|
}
|
|
1370
|
-
const spec =
|
|
1360
|
+
const spec = chunk3NDRTC7T_js.buildTextBuildSpec(
|
|
1371
1361
|
elementId,
|
|
1372
1362
|
paraIndex,
|
|
1373
1363
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1385,7 +1375,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1385
1375
|
"span",
|
|
1386
1376
|
{
|
|
1387
1377
|
"data-anim-id": span.animId,
|
|
1388
|
-
style:
|
|
1378
|
+
style: chunk3NDRTC7T_js.textBuildSpanStyle(span),
|
|
1389
1379
|
children: content
|
|
1390
1380
|
},
|
|
1391
1381
|
span.animId
|
|
@@ -1529,10 +1519,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1529
1519
|
if (!needsScriptFonts || !text) {
|
|
1530
1520
|
return text;
|
|
1531
1521
|
}
|
|
1532
|
-
const runs =
|
|
1522
|
+
const runs = chunk3NDRTC7T_js.segmentByScript(text);
|
|
1533
1523
|
if (runs.length <= 1) {
|
|
1534
1524
|
if (runs.length === 1) {
|
|
1535
|
-
const font =
|
|
1525
|
+
const font = chunk3NDRTC7T_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1536
1526
|
if (font && font !== baseFontFamily) {
|
|
1537
1527
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1538
1528
|
}
|
|
@@ -1540,7 +1530,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1540
1530
|
return text;
|
|
1541
1531
|
}
|
|
1542
1532
|
return runs.map((run, i) => {
|
|
1543
|
-
const font =
|
|
1533
|
+
const font = chunk3NDRTC7T_js.resolveFontForScript(run.script, scriptFonts);
|
|
1544
1534
|
if (!font || font === baseFontFamily) {
|
|
1545
1535
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1546
1536
|
}
|
|
@@ -1612,8 +1602,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1612
1602
|
);
|
|
1613
1603
|
}
|
|
1614
1604
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1615
|
-
const mathml =
|
|
1616
|
-
const safeMathml = mathml ?
|
|
1605
|
+
const mathml = chunk3NDRTC7T_js.convertOmmlToMathMl(equationXml);
|
|
1606
|
+
const safeMathml = mathml ? chunk3NDRTC7T_js.sanitizeMathMl(mathml) : "";
|
|
1617
1607
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1618
1608
|
"span",
|
|
1619
1609
|
{
|
|
@@ -1663,7 +1653,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1663
1653
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1664
1654
|
}
|
|
1665
1655
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1666
|
-
const picture =
|
|
1656
|
+
const picture = chunk3NDRTC7T_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1667
1657
|
sizePx: baseFontSize,
|
|
1668
1658
|
fallbackMarker: "\u2022",
|
|
1669
1659
|
accessibleLabel: "Bullet"
|
|
@@ -1714,7 +1704,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1714
1704
|
}
|
|
1715
1705
|
const segmentStyle = segment.style || {};
|
|
1716
1706
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1717
|
-
const textValue =
|
|
1707
|
+
const textValue = chunk3NDRTC7T_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1718
1708
|
const lines = textValue.split("\n");
|
|
1719
1709
|
const textDecorationTokens = [];
|
|
1720
1710
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1724,28 +1714,28 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1724
1714
|
textDecorationTokens.push("line-through");
|
|
1725
1715
|
}
|
|
1726
1716
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1727
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1728
|
-
const underlineDecoration =
|
|
1717
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunk3NDRTC7T_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunk3NDRTC7T_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1718
|
+
const underlineDecoration = chunk3NDRTC7T_js.resolveUnderlineDecorationStyle(
|
|
1729
1719
|
Boolean(isDoubleStrike),
|
|
1730
1720
|
segmentStyle.underlineStyle
|
|
1731
1721
|
);
|
|
1732
1722
|
const rawBaseline = typeof segmentStyle.baseline === "number" ? segmentStyle.baseline : 0;
|
|
1733
1723
|
const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
|
|
1734
1724
|
const baselineFontScale = baselineFraction !== 0 ? 0.65 : 1;
|
|
1735
|
-
const
|
|
1725
|
+
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1736
1726
|
const textFillStyles = buildTextFillCss2(segmentStyle);
|
|
1737
1727
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1738
|
-
const autoFitScale =
|
|
1728
|
+
const autoFitScale = chunk3NDRTC7T_js.resolveAutoFitFontScale(element.textStyle);
|
|
1739
1729
|
const baseFontSize = rawFontSize * autoFitScale;
|
|
1740
1730
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1741
1731
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1742
1732
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1743
1733
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1744
|
-
const baseFontFamily = rawFontFamily ?
|
|
1734
|
+
const baseFontFamily = rawFontFamily ? chunk3NDRTC7T_js.getSubstituteFontFamily(
|
|
1745
1735
|
rawFontFamily,
|
|
1746
|
-
|
|
1736
|
+
chunk3NDRTC7T_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1747
1737
|
) : DEFAULT_FONT_FAMILY2;
|
|
1748
|
-
const scriptFont = (name, panose) => name ?
|
|
1738
|
+
const scriptFont = (name, panose) => name ? chunk3NDRTC7T_js.getSubstituteFontFamily(name, chunk3NDRTC7T_js.parsePanoseString(panose)) : baseFontFamily;
|
|
1749
1739
|
const scriptFonts = {
|
|
1750
1740
|
latin: baseFontFamily,
|
|
1751
1741
|
eastAsia: scriptFont(
|
|
@@ -1761,7 +1751,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1761
1751
|
segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
|
|
1762
1752
|
)
|
|
1763
1753
|
};
|
|
1764
|
-
const needsScriptFonts =
|
|
1754
|
+
const needsScriptFonts = chunk3NDRTC7T_js.hasDistinctScriptFonts(scriptFonts);
|
|
1755
|
+
const metricTracking = chunk3NDRTC7T_js.resolveMetricTrackingPx(textValue, {
|
|
1756
|
+
fontFamily: baseFontFamily,
|
|
1757
|
+
fontSizePx: baseFontSize * baselineFontScale,
|
|
1758
|
+
bold: Boolean(segmentStyle.bold),
|
|
1759
|
+
italic: Boolean(segmentStyle.italic)
|
|
1760
|
+
});
|
|
1761
|
+
const totalLetterSpacing = authoredLetterSpacing + metricTracking;
|
|
1762
|
+
const letterSpacing = totalLetterSpacing === 0 ? void 0 : `${totalLetterSpacing}px`;
|
|
1765
1763
|
const spanStyle = {
|
|
1766
1764
|
color: resolvedSegmentColor,
|
|
1767
1765
|
fontSize: baseFontSize * baselineFontScale,
|
|
@@ -1779,15 +1777,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1779
1777
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1780
1778
|
letterSpacing,
|
|
1781
1779
|
fontKerning,
|
|
1782
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1780
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunk3NDRTC7T_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1783
1781
|
...textFillStyles,
|
|
1784
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1785
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1782
|
+
textDecorationColor: segmentStyle.underlineColor ? chunk3NDRTC7T_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1783
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunk3NDRTC7T_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1786
1784
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1787
|
-
textShadow:
|
|
1788
|
-
filter:
|
|
1789
|
-
opacity:
|
|
1790
|
-
WebkitBoxReflect:
|
|
1785
|
+
textShadow: chunk3NDRTC7T_js.buildTextShadowCss(segmentStyle),
|
|
1786
|
+
filter: chunk3NDRTC7T_js.buildTextRunFilterChain(segmentStyle),
|
|
1787
|
+
opacity: chunk3NDRTC7T_js.getTextAlphaOpacity(segmentStyle),
|
|
1788
|
+
WebkitBoxReflect: chunk3NDRTC7T_js.buildTextReflectionCss(segmentStyle)
|
|
1791
1789
|
};
|
|
1792
1790
|
const runRtl = segmentStyle.rtl;
|
|
1793
1791
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1807,7 +1805,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1807
1805
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1808
1806
|
}
|
|
1809
1807
|
if (bulletInfo.color) {
|
|
1810
|
-
spanStyle.color =
|
|
1808
|
+
spanStyle.color = chunk3NDRTC7T_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1811
1809
|
}
|
|
1812
1810
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1813
1811
|
spanStyle.display = "inline-block";
|
|
@@ -1852,7 +1850,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1852
1850
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
1853
1851
|
};
|
|
1854
1852
|
if (segment.rubyStyle?.color) {
|
|
1855
|
-
rubyStyle.color =
|
|
1853
|
+
rubyStyle.color = chunk3NDRTC7T_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
1856
1854
|
}
|
|
1857
1855
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
1858
1856
|
baseContent,
|
|
@@ -1925,7 +1923,7 @@ function resolveParagraphSpacing(input) {
|
|
|
1925
1923
|
if (typeof exactPt === "number" && exactPt > 0) {
|
|
1926
1924
|
result.lineHeight = `${exactPt * PT_TO_PX}px`;
|
|
1927
1925
|
} else if (typeof multiplier === "number" && multiplier > 0) {
|
|
1928
|
-
result.lineHeight =
|
|
1926
|
+
result.lineHeight = chunk3NDRTC7T_js.proportionalLineHeight(multiplier);
|
|
1929
1927
|
}
|
|
1930
1928
|
return result;
|
|
1931
1929
|
}
|
|
@@ -1947,7 +1945,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
1947
1945
|
return paragraphs;
|
|
1948
1946
|
}
|
|
1949
1947
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
1950
|
-
if (!
|
|
1948
|
+
if (!chunk3NDRTC7T_js.hasTextProperties(element)) {
|
|
1951
1949
|
return emptyFallback || null;
|
|
1952
1950
|
}
|
|
1953
1951
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -1968,10 +1966,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1968
1966
|
return element.text || emptyFallback || "";
|
|
1969
1967
|
}
|
|
1970
1968
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
1971
|
-
const paragraphIndents =
|
|
1972
|
-
const elementRtl =
|
|
1973
|
-
const elementAlign =
|
|
1974
|
-
const bodyStyle =
|
|
1969
|
+
const paragraphIndents = chunk3NDRTC7T_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
1970
|
+
const elementRtl = chunk3NDRTC7T_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
1971
|
+
const elementAlign = chunk3NDRTC7T_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
1972
|
+
const bodyStyle = chunk3NDRTC7T_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
1975
1973
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
1976
1974
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
1977
1975
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -1986,14 +1984,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1986
1984
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
1987
1985
|
});
|
|
1988
1986
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
1989
|
-
const paraRtl =
|
|
1987
|
+
const paraRtl = chunk3NDRTC7T_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
1990
1988
|
const isRtlParagraph = paraRtl === true;
|
|
1991
|
-
const paraAlign =
|
|
1992
|
-
const cssTextAlign =
|
|
1989
|
+
const paraAlign = chunk3NDRTC7T_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
1990
|
+
const cssTextAlign = chunk3NDRTC7T_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
1993
1991
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
1994
1992
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
1995
1993
|
const paraTextIndent = rawTextIndent;
|
|
1996
|
-
const paraKinsokuStyle =
|
|
1994
|
+
const paraKinsokuStyle = chunk3NDRTC7T_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
1997
1995
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
1998
1996
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
1999
1997
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2003,7 +2001,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2003
2001
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2004
2002
|
spaceFirstLast
|
|
2005
2003
|
});
|
|
2006
|
-
const strutFontSize =
|
|
2004
|
+
const strutFontSize = chunk3NDRTC7T_js.resolveParagraphStrutFontSize(
|
|
2007
2005
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2008
2006
|
bodyStyle?.fontSize
|
|
2009
2007
|
);
|
|
@@ -2107,13 +2105,13 @@ function hexToRgbUnit(hex) {
|
|
|
2107
2105
|
};
|
|
2108
2106
|
}
|
|
2109
2107
|
function getDuotoneColors(element) {
|
|
2110
|
-
if (!
|
|
2108
|
+
if (!chunk3NDRTC7T_js.isImageLikeElement(element)) {
|
|
2111
2109
|
return void 0;
|
|
2112
2110
|
}
|
|
2113
2111
|
return element.imageEffects?.duotone;
|
|
2114
2112
|
}
|
|
2115
2113
|
function buildLineShadowCss(element) {
|
|
2116
|
-
if (!
|
|
2114
|
+
if (!chunk3NDRTC7T_js.hasShapeProperties(element)) {
|
|
2117
2115
|
return void 0;
|
|
2118
2116
|
}
|
|
2119
2117
|
const ss = element.shapeStyle;
|
|
@@ -2124,13 +2122,13 @@ function buildLineShadowCss(element) {
|
|
|
2124
2122
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2125
2123
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2126
2124
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2127
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2128
|
-
|
|
2125
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk3NDRTC7T_js.colorWithOpacity(
|
|
2126
|
+
chunk3NDRTC7T_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2129
2127
|
opacity
|
|
2130
2128
|
)}`;
|
|
2131
2129
|
}
|
|
2132
2130
|
function buildLineGlowFilter(element) {
|
|
2133
|
-
if (!
|
|
2131
|
+
if (!chunk3NDRTC7T_js.hasShapeProperties(element)) {
|
|
2134
2132
|
return void 0;
|
|
2135
2133
|
}
|
|
2136
2134
|
const ss = element.shapeStyle;
|
|
@@ -2139,7 +2137,7 @@ function buildLineGlowFilter(element) {
|
|
|
2139
2137
|
}
|
|
2140
2138
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2141
2139
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2142
|
-
const glowCol =
|
|
2140
|
+
const glowCol = chunk3NDRTC7T_js.colorWithOpacity(chunk3NDRTC7T_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2143
2141
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2144
2142
|
}
|
|
2145
2143
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2163,7 +2161,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2163
2161
|
return `dag-duotone-${elementId}`;
|
|
2164
2162
|
}
|
|
2165
2163
|
function hasDagDuotoneEffect(element) {
|
|
2166
|
-
if (!
|
|
2164
|
+
if (!chunk3NDRTC7T_js.hasShapeProperties(element)) {
|
|
2167
2165
|
return false;
|
|
2168
2166
|
}
|
|
2169
2167
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2226,7 +2224,7 @@ function getRoundRectRadiusPx(element) {
|
|
|
2226
2224
|
|
|
2227
2225
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2228
2226
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2229
|
-
return
|
|
2227
|
+
return chunk3NDRTC7T_js.build3DExtrusionData(
|
|
2230
2228
|
shape3d,
|
|
2231
2229
|
scene3d,
|
|
2232
2230
|
fillColor,
|
|
@@ -2235,7 +2233,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2235
2233
|
);
|
|
2236
2234
|
}
|
|
2237
2235
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2238
|
-
|
|
2236
|
+
chunk3NDRTC7T_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2239
2237
|
}
|
|
2240
2238
|
|
|
2241
2239
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -2243,43 +2241,43 @@ function getGradientTilingCss(style) {
|
|
|
2243
2241
|
if (!style || style.fillMode !== "gradient") {
|
|
2244
2242
|
return void 0;
|
|
2245
2243
|
}
|
|
2246
|
-
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" &&
|
|
2244
|
+
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunk3NDRTC7T_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
|
|
2247
2245
|
if (isStructuredLinear) {
|
|
2248
|
-
const flip =
|
|
2246
|
+
const flip = chunk3NDRTC7T_js.getGradientTileFlipCss(style.fillGradientFlip);
|
|
2249
2247
|
if (flip) {
|
|
2250
2248
|
return flip;
|
|
2251
2249
|
}
|
|
2252
2250
|
}
|
|
2253
|
-
return
|
|
2251
|
+
return chunk3NDRTC7T_js.getGradientTileRectCss(style.fillGradientTileRect);
|
|
2254
2252
|
}
|
|
2255
2253
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2256
|
-
if (!
|
|
2254
|
+
if (!chunk3NDRTC7T_js.hasShapeProperties(element)) {
|
|
2257
2255
|
return {};
|
|
2258
2256
|
}
|
|
2259
2257
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2260
|
-
const clipPath =
|
|
2258
|
+
const clipPath = chunk3NDRTC7T_js.isIdentityRectClip(element) ? void 0 : chunk3NDRTC7T_js.getResolvedShapeClipPath(element);
|
|
2261
2259
|
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;
|
|
2262
|
-
const rendersStrokeOnlyPreset =
|
|
2260
|
+
const rendersStrokeOnlyPreset = chunk3NDRTC7T_js.isStrokeOnlyPresetElement(element);
|
|
2263
2261
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2264
2262
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2265
|
-
const strokeDash =
|
|
2266
|
-
const fillGradient =
|
|
2263
|
+
const strokeDash = chunk3NDRTC7T_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2264
|
+
const fillGradient = chunk3NDRTC7T_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
|
|
2267
2265
|
rotation: element.rotation,
|
|
2268
2266
|
width: element.width,
|
|
2269
2267
|
height: element.height
|
|
2270
2268
|
}) || element.shapeStyle?.fillGradient;
|
|
2271
|
-
const shadowCss =
|
|
2272
|
-
const innerShadowCss =
|
|
2273
|
-
const resolvedFillColor =
|
|
2274
|
-
const resolvedStrokeColor =
|
|
2269
|
+
const shadowCss = chunk3NDRTC7T_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2270
|
+
const innerShadowCss = chunk3NDRTC7T_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2271
|
+
const resolvedFillColor = chunk3NDRTC7T_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2272
|
+
const resolvedStrokeColor = chunk3NDRTC7T_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2275
2273
|
const ss = element.shapeStyle;
|
|
2276
2274
|
const gradientTiling = getGradientTilingCss(ss);
|
|
2277
|
-
const paintsGradientOutline =
|
|
2275
|
+
const paintsGradientOutline = chunk3NDRTC7T_js.suppressesCssBorder(element);
|
|
2278
2276
|
const hasFillOverlayColor = Boolean(
|
|
2279
2277
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2280
2278
|
);
|
|
2281
2279
|
const combinedShadowParts = [];
|
|
2282
|
-
const multiLayerShadow =
|
|
2280
|
+
const multiLayerShadow = chunk3NDRTC7T_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2283
2281
|
if (multiLayerShadow) {
|
|
2284
2282
|
combinedShadowParts.push(multiLayerShadow);
|
|
2285
2283
|
} else if (shadowCss) {
|
|
@@ -2288,7 +2286,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2288
2286
|
if (innerShadowCss) {
|
|
2289
2287
|
combinedShadowParts.push(innerShadowCss);
|
|
2290
2288
|
}
|
|
2291
|
-
const glowBoxShadow =
|
|
2289
|
+
const glowBoxShadow = chunk3NDRTC7T_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2292
2290
|
if (glowBoxShadow) {
|
|
2293
2291
|
combinedShadowParts.push(glowBoxShadow);
|
|
2294
2292
|
}
|
|
@@ -2296,7 +2294,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2296
2294
|
if (lineShadow) {
|
|
2297
2295
|
combinedShadowParts.push(lineShadow);
|
|
2298
2296
|
}
|
|
2299
|
-
const compoundLineShadow =
|
|
2297
|
+
const compoundLineShadow = chunk3NDRTC7T_js.getCompoundLineBoxShadow(
|
|
2300
2298
|
element.shapeStyle?.compoundLine,
|
|
2301
2299
|
strokeWidth,
|
|
2302
2300
|
resolvedStrokeColor
|
|
@@ -2309,11 +2307,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2309
2307
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2310
2308
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2311
2309
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2312
|
-
const glowCol =
|
|
2310
|
+
const glowCol = chunk3NDRTC7T_js.colorWithOpacity(chunk3NDRTC7T_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2313
2311
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2314
2312
|
}
|
|
2315
2313
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2316
|
-
filterParts.push(`url(#${
|
|
2314
|
+
filterParts.push(`url(#${chunk3NDRTC7T_js.getSoftEdgeFilterId(element.id)})`);
|
|
2317
2315
|
}
|
|
2318
2316
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2319
2317
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2322,13 +2320,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2322
2320
|
if (lineGlowCss) {
|
|
2323
2321
|
filterParts.push(lineGlowCss);
|
|
2324
2322
|
}
|
|
2325
|
-
const dagFilter =
|
|
2323
|
+
const dagFilter = chunk3NDRTC7T_js.getEffectDagFilter(ss, element.id);
|
|
2326
2324
|
if (dagFilter) {
|
|
2327
2325
|
filterParts.push(dagFilter);
|
|
2328
2326
|
}
|
|
2329
2327
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2330
2328
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2331
|
-
const patternFill =
|
|
2329
|
+
const patternFill = chunk3NDRTC7T_js.buildPatternFillCss(element.shapeStyle);
|
|
2332
2330
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2333
2331
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2334
2332
|
let reflectCss;
|
|
@@ -2340,7 +2338,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2340
2338
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2341
2339
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2342
2340
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2343
|
-
reflectCss =
|
|
2341
|
+
reflectCss = chunk3NDRTC7T_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2344
2342
|
}
|
|
2345
2343
|
}
|
|
2346
2344
|
const base = {
|
|
@@ -2386,9 +2384,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2386
2384
|
// path following the shape's geometry, because a CSS border can only take
|
|
2387
2385
|
// one colour. Keeping the border too would draw the parser's averaged
|
|
2388
2386
|
// solid underneath the gradient.
|
|
2389
|
-
borderWidth: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2387
|
+
borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunk3NDRTC7T_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2390
2388
|
borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
|
|
2391
|
-
borderStyle: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2389
|
+
borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunk3NDRTC7T_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2392
2390
|
strokeLinejoin: lineJoinCss,
|
|
2393
2391
|
strokeMiterlimit: miterLimitCss,
|
|
2394
2392
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2448,7 +2446,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2448
2446
|
borderWidth: 0,
|
|
2449
2447
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2450
2448
|
borderTopColor: resolvedStrokeColor,
|
|
2451
|
-
borderTopStyle:
|
|
2449
|
+
borderTopStyle: chunk3NDRTC7T_js.getCssBorderDashStyle(strokeDash)
|
|
2452
2450
|
};
|
|
2453
2451
|
}
|
|
2454
2452
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2462,13 +2460,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2462
2460
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2463
2461
|
const direct = element.shapeAdjustments?.[key];
|
|
2464
2462
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2465
|
-
return
|
|
2463
|
+
return chunk3NDRTC7T_js.clampUnitInterval(direct / 1e5);
|
|
2466
2464
|
}
|
|
2467
2465
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2468
2466
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2469
|
-
return
|
|
2467
|
+
return chunk3NDRTC7T_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2470
2468
|
}
|
|
2471
|
-
return
|
|
2469
|
+
return chunk3NDRTC7T_js.clampUnitInterval(fallback);
|
|
2472
2470
|
}
|
|
2473
2471
|
function getConnectorPathGeometry(element) {
|
|
2474
2472
|
const width = Math.max(element.width, 0);
|
|
@@ -2601,7 +2599,7 @@ function toHexByte(value) {
|
|
|
2601
2599
|
return clamped.toString(16).padStart(2, "0");
|
|
2602
2600
|
}
|
|
2603
2601
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2604
|
-
const channels =
|
|
2602
|
+
const channels = chunk3NDRTC7T_js.hexToRgbChannels(hex);
|
|
2605
2603
|
if (!channels) {
|
|
2606
2604
|
return hex;
|
|
2607
2605
|
}
|
|
@@ -2627,7 +2625,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2627
2625
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2628
2626
|
return {
|
|
2629
2627
|
d: subpath.d,
|
|
2630
|
-
fill: fillOff ? "none" :
|
|
2628
|
+
fill: fillOff ? "none" : chunk3NDRTC7T_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2631
2629
|
stroked: subpath.stroke !== false
|
|
2632
2630
|
};
|
|
2633
2631
|
});
|
|
@@ -2643,11 +2641,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2643
2641
|
strokePaint,
|
|
2644
2642
|
strokeWidth,
|
|
2645
2643
|
dashArray,
|
|
2646
|
-
lineCap:
|
|
2644
|
+
lineCap: chunk3NDRTC7T_js.svgLineCap(shapeStyle?.lineCap),
|
|
2647
2645
|
lineJoin,
|
|
2648
2646
|
miterLimit,
|
|
2649
|
-
offsets:
|
|
2650
|
-
widths:
|
|
2647
|
+
offsets: chunk3NDRTC7T_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2648
|
+
widths: chunk3NDRTC7T_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2651
2649
|
};
|
|
2652
2650
|
}
|
|
2653
2651
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2695,9 +2693,9 @@ function gradientDefs(gradient) {
|
|
|
2695
2693
|
}
|
|
2696
2694
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2697
2695
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2698
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2696
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk3NDRTC7T_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2699
2697
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2700
|
-
const gradientPaint = gradient ?
|
|
2698
|
+
const gradientPaint = gradient ? chunk3NDRTC7T_js.svgGradientFillRef(gradient) : void 0;
|
|
2701
2699
|
const nodes = [];
|
|
2702
2700
|
if (subpaths && needsPerSubpath) {
|
|
2703
2701
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
@@ -2729,7 +2727,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2729
2727
|
"path",
|
|
2730
2728
|
{
|
|
2731
2729
|
d: pathData,
|
|
2732
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2730
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunk3NDRTC7T_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2733
2731
|
stroke: "none",
|
|
2734
2732
|
vectorEffect: "non-scaling-stroke"
|
|
2735
2733
|
},
|
|
@@ -2755,14 +2753,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2755
2753
|
);
|
|
2756
2754
|
}
|
|
2757
2755
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2758
|
-
if (!
|
|
2756
|
+
if (!chunk3NDRTC7T_js.hasShapeProperties(element)) {
|
|
2759
2757
|
return null;
|
|
2760
2758
|
}
|
|
2761
2759
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2762
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2763
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2764
|
-
const dashType =
|
|
2765
|
-
const dashArray =
|
|
2760
|
+
const fillPaint = animatesFill ? "inherit" : chunk3NDRTC7T_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2761
|
+
const strokePaint = animatesStroke ? "inherit" : chunk3NDRTC7T_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2762
|
+
const dashType = chunk3NDRTC7T_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2763
|
+
const dashArray = chunk3NDRTC7T_js.getSvgStrokeDasharray(
|
|
2766
2764
|
dashType,
|
|
2767
2765
|
Math.max(strokeWidth, 1),
|
|
2768
2766
|
element.shapeStyle?.customDashSegments
|
|
@@ -2843,21 +2841,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2843
2841
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2844
2842
|
// without this the shape fell back to the parser's representative solid
|
|
2845
2843
|
// and lost every fade (issue #132).
|
|
2846
|
-
|
|
2844
|
+
chunk3NDRTC7T_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2847
2845
|
);
|
|
2848
2846
|
}
|
|
2849
|
-
if (
|
|
2847
|
+
if (chunk3NDRTC7T_js.isCalloutShape(normalizedType)) {
|
|
2850
2848
|
const width = Math.max(element.width, 1);
|
|
2851
2849
|
const height = Math.max(element.height, 1);
|
|
2852
|
-
const geometry =
|
|
2850
|
+
const geometry = chunk3NDRTC7T_js.getCalloutLeaderLineGeometry(
|
|
2853
2851
|
normalizedType,
|
|
2854
2852
|
width,
|
|
2855
2853
|
height,
|
|
2856
2854
|
element.shapeAdjustments
|
|
2857
2855
|
);
|
|
2858
2856
|
if (geometry && geometry.points.length >= 2) {
|
|
2859
|
-
const leaderPath =
|
|
2860
|
-
const bounds =
|
|
2857
|
+
const leaderPath = chunk3NDRTC7T_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2858
|
+
const bounds = chunk3NDRTC7T_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2861
2859
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2862
2860
|
const offsetLeft = bounds.minX;
|
|
2863
2861
|
const offsetTop = bounds.minY;
|
|
@@ -2920,10 +2918,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2920
2918
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2921
2919
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2922
2920
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2923
|
-
const connectorLineCap =
|
|
2921
|
+
const connectorLineCap = chunk3NDRTC7T_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2924
2922
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2925
|
-
const offsets =
|
|
2926
|
-
const widths =
|
|
2923
|
+
const offsets = chunk3NDRTC7T_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2924
|
+
const widths = chunk3NDRTC7T_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2927
2925
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2928
2926
|
"svg",
|
|
2929
2927
|
{
|
|
@@ -2990,15 +2988,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
2990
2988
|
}
|
|
2991
2989
|
const parsed = stops.map((gs) => {
|
|
2992
2990
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
2993
|
-
const color =
|
|
2994
|
-
const opacity =
|
|
2995
|
-
return { pos, color:
|
|
2991
|
+
const color = chunk3NDRTC7T_js.parseDrawingColor(gs) ?? "#888888";
|
|
2992
|
+
const opacity = chunk3NDRTC7T_js.parseDrawingColorOpacity(gs);
|
|
2993
|
+
return { pos, color: chunk3NDRTC7T_js.colorWithOpacity(color, opacity) };
|
|
2996
2994
|
}).sort((a, b) => a.pos - b.pos);
|
|
2997
2995
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
2998
2996
|
const lin = gradFill["a:lin"];
|
|
2999
2997
|
if (lin) {
|
|
3000
2998
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3001
|
-
const angleDeg = Math.round(
|
|
2999
|
+
const angleDeg = Math.round(chunk3NDRTC7T_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3002
3000
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3003
3001
|
}
|
|
3004
3002
|
const path = gradFill["a:path"];
|
|
@@ -3033,8 +3031,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3033
3031
|
if (!pattFill) {
|
|
3034
3032
|
return void 0;
|
|
3035
3033
|
}
|
|
3036
|
-
const fgColor =
|
|
3037
|
-
const bgColor =
|
|
3034
|
+
const fgColor = chunk3NDRTC7T_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3035
|
+
const bgColor = chunk3NDRTC7T_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3038
3036
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3039
3037
|
switch (preset) {
|
|
3040
3038
|
case "ltHorz":
|
|
@@ -3145,11 +3143,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3145
3143
|
const prstDash = ln["a:prstDash"];
|
|
3146
3144
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3147
3145
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3148
|
-
const color =
|
|
3146
|
+
const color = chunk3NDRTC7T_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3149
3147
|
if (color) {
|
|
3150
|
-
const opacity =
|
|
3148
|
+
const opacity = chunk3NDRTC7T_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3151
3149
|
const key = `${edge.prefix}`;
|
|
3152
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3150
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk3NDRTC7T_js.colorWithOpacity(color, opacity)}`;
|
|
3153
3151
|
}
|
|
3154
3152
|
}
|
|
3155
3153
|
return borderStyle;
|
|
@@ -3162,7 +3160,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3162
3160
|
const textShadowParts = [];
|
|
3163
3161
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3164
3162
|
if (outerShdw) {
|
|
3165
|
-
const shdwColor =
|
|
3163
|
+
const shdwColor = chunk3NDRTC7T_js.parseDrawingColor(outerShdw);
|
|
3166
3164
|
if (shdwColor) {
|
|
3167
3165
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3168
3166
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3180,7 +3178,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3180
3178
|
}
|
|
3181
3179
|
const glow = effectLst["a:glow"];
|
|
3182
3180
|
if (glow) {
|
|
3183
|
-
const glowColor =
|
|
3181
|
+
const glowColor = chunk3NDRTC7T_js.parseDrawingColor(glow);
|
|
3184
3182
|
if (glowColor) {
|
|
3185
3183
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3186
3184
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3259,10 +3257,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3259
3257
|
if (runProps?.["@_u"] !== void 0) {
|
|
3260
3258
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3261
3259
|
}
|
|
3262
|
-
const runColor =
|
|
3260
|
+
const runColor = chunk3NDRTC7T_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk3NDRTC7T_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3263
3261
|
if (runColor) {
|
|
3264
|
-
const opacity =
|
|
3265
|
-
cellStyle.color =
|
|
3262
|
+
const opacity = chunk3NDRTC7T_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3263
|
+
cellStyle.color = chunk3NDRTC7T_js.colorWithOpacity(runColor, opacity);
|
|
3266
3264
|
}
|
|
3267
3265
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3268
3266
|
if (fontFamily) {
|
|
@@ -3272,15 +3270,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3272
3270
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3273
3271
|
}
|
|
3274
3272
|
const cellProperties = cellXml["a:tcPr"];
|
|
3275
|
-
const cellFill =
|
|
3273
|
+
const cellFill = chunk3NDRTC7T_js.parseDrawingColor(
|
|
3276
3274
|
cellProperties?.["a:solidFill"],
|
|
3277
3275
|
schemeColorOverrides
|
|
3278
3276
|
);
|
|
3279
3277
|
if (cellFill) {
|
|
3280
|
-
const opacity =
|
|
3278
|
+
const opacity = chunk3NDRTC7T_js.parseDrawingColorOpacity(
|
|
3281
3279
|
cellProperties?.["a:solidFill"]
|
|
3282
3280
|
);
|
|
3283
|
-
cellStyle.backgroundColor =
|
|
3281
|
+
cellStyle.backgroundColor = chunk3NDRTC7T_js.colorWithOpacity(cellFill, opacity);
|
|
3284
3282
|
} else {
|
|
3285
3283
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3286
3284
|
if (gradCss) {
|
|
@@ -3295,16 +3293,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3295
3293
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3296
3294
|
Object.assign(cellStyle, edgeBorders);
|
|
3297
3295
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3298
|
-
const borderColor =
|
|
3296
|
+
const borderColor = chunk3NDRTC7T_js.parseDrawingColor(
|
|
3299
3297
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3300
3298
|
schemeColorOverrides
|
|
3301
|
-
) ||
|
|
3299
|
+
) || chunk3NDRTC7T_js.parseDrawingColor(
|
|
3302
3300
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3303
3301
|
schemeColorOverrides
|
|
3304
|
-
) ||
|
|
3302
|
+
) || chunk3NDRTC7T_js.parseDrawingColor(
|
|
3305
3303
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3306
3304
|
schemeColorOverrides
|
|
3307
|
-
) ||
|
|
3305
|
+
) || chunk3NDRTC7T_js.parseDrawingColor(
|
|
3308
3306
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3309
3307
|
schemeColorOverrides
|
|
3310
3308
|
);
|
|
@@ -3383,10 +3381,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3383
3381
|
}
|
|
3384
3382
|
let color = base;
|
|
3385
3383
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3386
|
-
color =
|
|
3384
|
+
color = chunk3NDRTC7T_js.tintColor2(color, fill.tint / 1e5);
|
|
3387
3385
|
}
|
|
3388
3386
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3389
|
-
color =
|
|
3387
|
+
color = chunk3NDRTC7T_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3390
3388
|
}
|
|
3391
3389
|
return color;
|
|
3392
3390
|
}
|
|
@@ -3411,7 +3409,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3411
3409
|
style.fontFamily = text.fontFace;
|
|
3412
3410
|
applied = true;
|
|
3413
3411
|
} else {
|
|
3414
|
-
const refFont =
|
|
3412
|
+
const refFont = chunk3NDRTC7T_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3415
3413
|
if (refFont) {
|
|
3416
3414
|
style.fontFamily = refFont;
|
|
3417
3415
|
applied = true;
|
|
@@ -3422,10 +3420,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3422
3420
|
if (base) {
|
|
3423
3421
|
let color = base;
|
|
3424
3422
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3425
|
-
color =
|
|
3423
|
+
color = chunk3NDRTC7T_js.tintColor2(color, text.fontTint / 1e5);
|
|
3426
3424
|
}
|
|
3427
3425
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3428
|
-
color =
|
|
3426
|
+
color = chunk3NDRTC7T_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3429
3427
|
}
|
|
3430
3428
|
style.color = color;
|
|
3431
3429
|
applied = true;
|
|
@@ -3614,7 +3612,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3614
3612
|
};
|
|
3615
3613
|
}
|
|
3616
3614
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3617
|
-
return
|
|
3615
|
+
return chunk3NDRTC7T_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3618
3616
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3619
3617
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3620
3618
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3762,9 +3760,9 @@ function cellStyleToCss(style) {
|
|
|
3762
3760
|
if (style.gradientFillCss) {
|
|
3763
3761
|
css.background = style.gradientFillCss;
|
|
3764
3762
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3765
|
-
const fg =
|
|
3766
|
-
const bg =
|
|
3767
|
-
const svgPattern =
|
|
3763
|
+
const fg = chunk3NDRTC7T_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3764
|
+
const bg = chunk3NDRTC7T_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3765
|
+
const svgPattern = chunk3NDRTC7T_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3768
3766
|
if (svgPattern) {
|
|
3769
3767
|
const encoded = encodeURIComponent(svgPattern);
|
|
3770
3768
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3840,7 +3838,7 @@ function cellStyleToCss(style) {
|
|
|
3840
3838
|
if (edge.width || edge.color) {
|
|
3841
3839
|
const w = edge.width ?? 1;
|
|
3842
3840
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3843
|
-
const s =
|
|
3841
|
+
const s = chunk3NDRTC7T_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3844
3842
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3845
3843
|
}
|
|
3846
3844
|
}
|
|
@@ -3871,7 +3869,7 @@ function cellStyleToCss(style) {
|
|
|
3871
3869
|
css.textShadow = textShadowParts.join(", ");
|
|
3872
3870
|
}
|
|
3873
3871
|
if (style.cell3D) {
|
|
3874
|
-
Object.assign(css,
|
|
3872
|
+
Object.assign(css, chunk3NDRTC7T_js.cell3DBevelCss(style.cell3D));
|
|
3875
3873
|
}
|
|
3876
3874
|
return css;
|
|
3877
3875
|
}
|
|
@@ -3885,7 +3883,7 @@ function TableResizeOverlay({
|
|
|
3885
3883
|
const containerRef = React6.useRef(null);
|
|
3886
3884
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3887
3885
|
const dragRef = React6.useRef(null);
|
|
3888
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3886
|
+
const colBoundaries = React6.useMemo(() => chunk3NDRTC7T_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3889
3887
|
const measureRows = React6.useCallback(() => {
|
|
3890
3888
|
const container = containerRef.current;
|
|
3891
3889
|
if (!container) {
|
|
@@ -3932,11 +3930,11 @@ function TableResizeOverlay({
|
|
|
3932
3930
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3933
3931
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3934
3932
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3935
|
-
onResizeColumns(
|
|
3933
|
+
onResizeColumns(chunk3NDRTC7T_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3936
3934
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3937
3935
|
const deltaY = e.clientY - drag.startPos;
|
|
3938
|
-
const newHeight =
|
|
3939
|
-
drag.initialRowHeight ??
|
|
3936
|
+
const newHeight = chunk3NDRTC7T_js.computeResizedRowHeight(
|
|
3937
|
+
drag.initialRowHeight ?? chunk3NDRTC7T_js.DEFAULT_ROW_HEIGHT,
|
|
3940
3938
|
deltaY
|
|
3941
3939
|
);
|
|
3942
3940
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3974,7 +3972,7 @@ function TableResizeOverlay({
|
|
|
3974
3972
|
e.stopPropagation();
|
|
3975
3973
|
const table = containerRef.current?.querySelector("table");
|
|
3976
3974
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3977
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3975
|
+
const actualHeight = tr?.offsetHeight ?? chunk3NDRTC7T_js.DEFAULT_ROW_HEIGHT;
|
|
3978
3976
|
document.body.style.cursor = "row-resize";
|
|
3979
3977
|
document.body.style.userSelect = "none";
|
|
3980
3978
|
dragRef.current = {
|
|
@@ -4022,7 +4020,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4022
4020
|
}
|
|
4023
4021
|
const first = selectedCell.selectedCells[0];
|
|
4024
4022
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4025
|
-
return
|
|
4023
|
+
return chunk3NDRTC7T_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4026
4024
|
})();
|
|
4027
4025
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4028
4026
|
TableResizeOverlay,
|
|
@@ -4042,7 +4040,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4042
4040
|
"table",
|
|
4043
4041
|
{
|
|
4044
4042
|
className: "w-full h-full border-collapse table-fixed",
|
|
4045
|
-
style: { fontFamily:
|
|
4043
|
+
style: { fontFamily: chunk3NDRTC7T_js.DEFAULT_FONT_FAMILY },
|
|
4046
4044
|
children: [
|
|
4047
4045
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4048
4046
|
"col",
|
|
@@ -4060,7 +4058,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4060
4058
|
return null;
|
|
4061
4059
|
}
|
|
4062
4060
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4063
|
-
const isInMultiSelection =
|
|
4061
|
+
const isInMultiSelection = chunk3NDRTC7T_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4064
4062
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4065
4063
|
const diag = getCellDiagonalBorders2(
|
|
4066
4064
|
cell.style,
|
|
@@ -4090,7 +4088,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4090
4088
|
}
|
|
4091
4089
|
event.stopPropagation();
|
|
4092
4090
|
if (event.shiftKey && selectedCell) {
|
|
4093
|
-
const rect =
|
|
4091
|
+
const rect = chunk3NDRTC7T_js.computeSelectionRect(
|
|
4094
4092
|
selectedCell.rowIndex,
|
|
4095
4093
|
selectedCell.columnIndex,
|
|
4096
4094
|
rowIndex,
|
|
@@ -4100,7 +4098,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4100
4098
|
options?.onSelectCell?.({
|
|
4101
4099
|
rowIndex: selectedCell.rowIndex,
|
|
4102
4100
|
columnIndex: selectedCell.columnIndex,
|
|
4103
|
-
selectedCells:
|
|
4101
|
+
selectedCells: chunk3NDRTC7T_js.rectToCells(rect)
|
|
4104
4102
|
});
|
|
4105
4103
|
} else {
|
|
4106
4104
|
options?.onSelectCell?.({
|
|
@@ -4179,7 +4177,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4179
4177
|
}
|
|
4180
4178
|
const first = selectedCell.selectedCells[0];
|
|
4181
4179
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4182
|
-
return
|
|
4180
|
+
return chunk3NDRTC7T_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4183
4181
|
})();
|
|
4184
4182
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4185
4183
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4200,7 +4198,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4200
4198
|
"table",
|
|
4201
4199
|
{
|
|
4202
4200
|
className: "w-full h-full border-collapse table-fixed",
|
|
4203
|
-
style: { fontFamily:
|
|
4201
|
+
style: { fontFamily: chunk3NDRTC7T_js.DEFAULT_FONT_FAMILY },
|
|
4204
4202
|
children: [
|
|
4205
4203
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4206
4204
|
"col",
|
|
@@ -4261,7 +4259,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4261
4259
|
"border px-1 py-0.5 align-top",
|
|
4262
4260
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4263
4261
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4264
|
-
|
|
4262
|
+
chunk3NDRTC7T_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4265
4263
|
),
|
|
4266
4264
|
colSpan,
|
|
4267
4265
|
rowSpan: rSpan,
|
|
@@ -4272,7 +4270,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4272
4270
|
}
|
|
4273
4271
|
event.stopPropagation();
|
|
4274
4272
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4275
|
-
const rect =
|
|
4273
|
+
const rect = chunk3NDRTC7T_js.computeSelectionRect(
|
|
4276
4274
|
selectedCell.rowIndex,
|
|
4277
4275
|
selectedCell.columnIndex,
|
|
4278
4276
|
rowIndex,
|
|
@@ -4282,7 +4280,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4282
4280
|
options?.onSelectCell?.({
|
|
4283
4281
|
rowIndex: selectedCell.rowIndex,
|
|
4284
4282
|
columnIndex: selectedCell.columnIndex,
|
|
4285
|
-
selectedCells:
|
|
4283
|
+
selectedCells: chunk3NDRTC7T_js.rectToCells(rect)
|
|
4286
4284
|
});
|
|
4287
4285
|
} else {
|
|
4288
4286
|
options?.onSelectCell?.({
|
|
@@ -4339,24 +4337,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4339
4337
|
}
|
|
4340
4338
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4341
4339
|
function partAttrs(part) {
|
|
4342
|
-
return part ?
|
|
4340
|
+
return part ? chunk3NDRTC7T_js.chartPartToAttrs(part) : void 0;
|
|
4343
4341
|
}
|
|
4344
4342
|
function resolveReactPalette(chartData) {
|
|
4345
4343
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4346
4344
|
return chartData.colorPalette;
|
|
4347
4345
|
}
|
|
4348
|
-
return [...
|
|
4346
|
+
return [...chunk3NDRTC7T_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4349
4347
|
}
|
|
4350
4348
|
function buildReactChartViewModel(element) {
|
|
4351
4349
|
if (element.type !== "chart" || !element.chartData) {
|
|
4352
|
-
return
|
|
4350
|
+
return chunk3NDRTC7T_js.buildChartViewModel(element);
|
|
4353
4351
|
}
|
|
4354
4352
|
const palette = resolveReactPalette(element.chartData);
|
|
4355
4353
|
const themedElement = {
|
|
4356
4354
|
...element,
|
|
4357
4355
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4358
4356
|
};
|
|
4359
|
-
return
|
|
4357
|
+
return chunk3NDRTC7T_js.buildChartViewModel(themedElement);
|
|
4360
4358
|
}
|
|
4361
4359
|
function renderPrimitive(prim, key) {
|
|
4362
4360
|
switch (prim.kind) {
|
|
@@ -4745,7 +4743,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4745
4743
|
const unmatchedRows = [];
|
|
4746
4744
|
categories.forEach((cat, i) => {
|
|
4747
4745
|
const value = values[i] ?? 0;
|
|
4748
|
-
const code =
|
|
4746
|
+
const code = chunk3NDRTC7T_js.resolveRegionCode(cat);
|
|
4749
4747
|
if (code) {
|
|
4750
4748
|
regionValueMap.set(code, { value, label: cat });
|
|
4751
4749
|
} else {
|
|
@@ -4783,8 +4781,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4783
4781
|
let fill = "#e2e8f0";
|
|
4784
4782
|
let dataLabel = null;
|
|
4785
4783
|
if (entry) {
|
|
4786
|
-
const t =
|
|
4787
|
-
fill =
|
|
4784
|
+
const t = chunk3NDRTC7T_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4785
|
+
fill = chunk3NDRTC7T_js.sequentialColorScale(t);
|
|
4788
4786
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4789
4787
|
"text",
|
|
4790
4788
|
{
|
|
@@ -4795,7 +4793,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4795
4793
|
fontWeight: 600,
|
|
4796
4794
|
fill: "#1e293b",
|
|
4797
4795
|
style: { pointerEvents: "none" },
|
|
4798
|
-
children:
|
|
4796
|
+
children: chunk3NDRTC7T_js.formatAxisValue(entry.value)
|
|
4799
4797
|
},
|
|
4800
4798
|
`${element.id}-map-dl-${region.code}`
|
|
4801
4799
|
);
|
|
@@ -4813,7 +4811,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4813
4811
|
opacity: 0.9,
|
|
4814
4812
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4815
4813
|
region.name,
|
|
4816
|
-
entry ? `: ${
|
|
4814
|
+
entry ? `: ${chunk3NDRTC7T_js.formatAxisValue(entry.value)}` : ""
|
|
4817
4815
|
] })
|
|
4818
4816
|
}
|
|
4819
4817
|
),
|
|
@@ -4851,7 +4849,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4851
4849
|
fontSize: 7,
|
|
4852
4850
|
fill: "#64748b",
|
|
4853
4851
|
textAnchor: "middle",
|
|
4854
|
-
children:
|
|
4852
|
+
children: chunk3NDRTC7T_js.formatAxisValue(minVal)
|
|
4855
4853
|
},
|
|
4856
4854
|
`${element.id}-map-legend-min`
|
|
4857
4855
|
),
|
|
@@ -4863,7 +4861,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4863
4861
|
fontSize: 7,
|
|
4864
4862
|
fill: "#64748b",
|
|
4865
4863
|
textAnchor: "middle",
|
|
4866
|
-
children:
|
|
4864
|
+
children: chunk3NDRTC7T_js.formatAxisValue(maxVal)
|
|
4867
4865
|
},
|
|
4868
4866
|
`${element.id}-map-legend-max`
|
|
4869
4867
|
)
|
|
@@ -4929,7 +4927,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4929
4927
|
y,
|
|
4930
4928
|
fontSize,
|
|
4931
4929
|
fill: "#475569",
|
|
4932
|
-
children:
|
|
4930
|
+
children: chunk3NDRTC7T_js.formatAxisValue(row.value)
|
|
4933
4931
|
},
|
|
4934
4932
|
`${element.id}-map-ft-val-${i}`
|
|
4935
4933
|
)
|
|
@@ -5000,7 +4998,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5000
4998
|
|
|
5001
4999
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5002
5000
|
function sColor(series, idx) {
|
|
5003
|
-
return
|
|
5001
|
+
return chunk3NDRTC7T_js.seriesColor(series, idx);
|
|
5004
5002
|
}
|
|
5005
5003
|
function valToY(val, range, topY, bottomY) {
|
|
5006
5004
|
const usable = bottomY - topY;
|
|
@@ -5539,7 +5537,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5539
5537
|
width: 10,
|
|
5540
5538
|
height: 10,
|
|
5541
5539
|
rx: 2,
|
|
5542
|
-
fill:
|
|
5540
|
+
fill: chunk3NDRTC7T_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5543
5541
|
},
|
|
5544
5542
|
`${id}-leg-r-${i}`
|
|
5545
5543
|
)
|
|
@@ -5563,7 +5561,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5563
5561
|
width: 10,
|
|
5564
5562
|
height: 10,
|
|
5565
5563
|
rx: 2,
|
|
5566
|
-
fill:
|
|
5564
|
+
fill: chunk3NDRTC7T_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5567
5565
|
}
|
|
5568
5566
|
),
|
|
5569
5567
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5576,9 +5574,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5576
5574
|
}
|
|
5577
5575
|
const lines = [];
|
|
5578
5576
|
if (range.logScale && range.logBase) {
|
|
5579
|
-
const ticks =
|
|
5577
|
+
const ticks = chunk3NDRTC7T_js.generateLogTicks(range);
|
|
5580
5578
|
ticks.forEach((tickVal, i) => {
|
|
5581
|
-
const y =
|
|
5579
|
+
const y = chunk3NDRTC7T_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5582
5580
|
lines.push(
|
|
5583
5581
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5584
5582
|
"line",
|
|
@@ -5599,7 +5597,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5599
5597
|
const steps = 4;
|
|
5600
5598
|
for (let i = 0; i <= steps; i++) {
|
|
5601
5599
|
const val = range.min + range.span * i / steps;
|
|
5602
|
-
const y =
|
|
5600
|
+
const y = chunk3NDRTC7T_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5603
5601
|
lines.push(
|
|
5604
5602
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5605
5603
|
"line",
|
|
@@ -5623,9 +5621,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5623
5621
|
const labels = [];
|
|
5624
5622
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5625
5623
|
if (range.logScale && range.logBase) {
|
|
5626
|
-
const ticks =
|
|
5624
|
+
const ticks = chunk3NDRTC7T_js.generateLogTicks(range);
|
|
5627
5625
|
ticks.forEach((tickVal, i) => {
|
|
5628
|
-
const y =
|
|
5626
|
+
const y = chunk3NDRTC7T_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5629
5627
|
labels.push(
|
|
5630
5628
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5631
5629
|
"text",
|
|
@@ -5635,7 +5633,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5635
5633
|
textAnchor: "end",
|
|
5636
5634
|
fontSize: 8,
|
|
5637
5635
|
fill: "#64748b",
|
|
5638
|
-
children: hasDisplayUnits ?
|
|
5636
|
+
children: hasDisplayUnits ? chunk3NDRTC7T_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunk3NDRTC7T_js.formatAxisValue(tickVal)
|
|
5639
5637
|
},
|
|
5640
5638
|
`${id}-vaxis-log-${i}`
|
|
5641
5639
|
)
|
|
@@ -5645,7 +5643,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5645
5643
|
const steps = 4;
|
|
5646
5644
|
for (let i = 0; i <= steps; i++) {
|
|
5647
5645
|
const val = range.min + range.span * i / steps;
|
|
5648
|
-
const y =
|
|
5646
|
+
const y = chunk3NDRTC7T_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5649
5647
|
labels.push(
|
|
5650
5648
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5651
5649
|
"text",
|
|
@@ -5655,7 +5653,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5655
5653
|
textAnchor: "end",
|
|
5656
5654
|
fontSize: 8,
|
|
5657
5655
|
fill: "#64748b",
|
|
5658
|
-
children: hasDisplayUnits ?
|
|
5656
|
+
children: hasDisplayUnits ? chunk3NDRTC7T_js.formatAxisValueWithUnits(val, axisFormatting) : chunk3NDRTC7T_js.formatAxisValue(val)
|
|
5659
5657
|
},
|
|
5660
5658
|
`${id}-vaxis-${i}`
|
|
5661
5659
|
)
|
|
@@ -5663,7 +5661,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5663
5661
|
}
|
|
5664
5662
|
}
|
|
5665
5663
|
if (hasDisplayUnits) {
|
|
5666
|
-
const unitLabel =
|
|
5664
|
+
const unitLabel = chunk3NDRTC7T_js.getDisplayUnitLabel(
|
|
5667
5665
|
axisFormatting.displayUnits,
|
|
5668
5666
|
axisFormatting.displayUnitsLabel
|
|
5669
5667
|
);
|
|
@@ -5738,7 +5736,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5738
5736
|
if (range.min >= 0) {
|
|
5739
5737
|
return null;
|
|
5740
5738
|
}
|
|
5741
|
-
const y =
|
|
5739
|
+
const y = chunk3NDRTC7T_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5742
5740
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5743
5741
|
"line",
|
|
5744
5742
|
{
|
|
@@ -5762,7 +5760,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5762
5760
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5763
5761
|
for (let i = 0; i <= steps; i++) {
|
|
5764
5762
|
const val = range.min + range.span * i / steps;
|
|
5765
|
-
const y =
|
|
5763
|
+
const y = chunk3NDRTC7T_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5766
5764
|
labels.push(
|
|
5767
5765
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5768
5766
|
"text",
|
|
@@ -5774,7 +5772,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5774
5772
|
fontFamily,
|
|
5775
5773
|
fontWeight,
|
|
5776
5774
|
fill: fontColor,
|
|
5777
|
-
children: hasDisplayUnits ?
|
|
5775
|
+
children: hasDisplayUnits ? chunk3NDRTC7T_js.formatAxisValueWithUnits(val, axisFormatting) : chunk3NDRTC7T_js.formatAxisValue(val)
|
|
5778
5776
|
},
|
|
5779
5777
|
`${id}-sec-vaxis-${i}`
|
|
5780
5778
|
)
|
|
@@ -5798,7 +5796,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5798
5796
|
);
|
|
5799
5797
|
}
|
|
5800
5798
|
if (hasDisplayUnits) {
|
|
5801
|
-
const unitLabel =
|
|
5799
|
+
const unitLabel = chunk3NDRTC7T_js.getDisplayUnitLabel(
|
|
5802
5800
|
axisFormatting.displayUnits,
|
|
5803
5801
|
axisFormatting.displayUnitsLabel
|
|
5804
5802
|
);
|
|
@@ -5829,7 +5827,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5829
5827
|
const ticks = [];
|
|
5830
5828
|
for (let i = 0; i <= steps; i++) {
|
|
5831
5829
|
const val = range.min + range.span * i / steps;
|
|
5832
|
-
const y =
|
|
5830
|
+
const y = chunk3NDRTC7T_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5833
5831
|
ticks.push(
|
|
5834
5832
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5835
5833
|
"line",
|
|
@@ -5856,7 +5854,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5856
5854
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5857
5855
|
for (let i = 0; i <= steps; i++) {
|
|
5858
5856
|
const val = range.min + range.span * i / steps;
|
|
5859
|
-
const y =
|
|
5857
|
+
const y = chunk3NDRTC7T_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5860
5858
|
lines.push(
|
|
5861
5859
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5862
5860
|
"line",
|
|
@@ -6018,7 +6016,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6018
6016
|
width: 8,
|
|
6019
6017
|
height: 8,
|
|
6020
6018
|
borderRadius: 2,
|
|
6021
|
-
backgroundColor:
|
|
6019
|
+
backgroundColor: chunk3NDRTC7T_js.seriesColor(
|
|
6022
6020
|
s,
|
|
6023
6021
|
si,
|
|
6024
6022
|
chartData.style?.styleId,
|
|
@@ -6056,10 +6054,10 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6056
6054
|
}
|
|
6057
6055
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6058
6056
|
const style = chartData.style;
|
|
6059
|
-
const areaFill =
|
|
6057
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6060
6058
|
const legendPos = style?.legendPosition || "b";
|
|
6061
|
-
const range =
|
|
6062
|
-
const layout =
|
|
6059
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6060
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6063
6061
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6064
6062
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6065
6063
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6080,10 +6078,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6080
6078
|
const close = closeSeries.values[ci] ?? high;
|
|
6081
6079
|
const isUp = close >= open;
|
|
6082
6080
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6083
|
-
const highY =
|
|
6084
|
-
const lowY =
|
|
6085
|
-
const openY =
|
|
6086
|
-
const closeY =
|
|
6081
|
+
const highY = chunk3NDRTC7T_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6082
|
+
const lowY = chunk3NDRTC7T_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6083
|
+
const openY = chunk3NDRTC7T_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6084
|
+
const closeY = chunk3NDRTC7T_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6087
6085
|
elements.push(
|
|
6088
6086
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6089
6087
|
"line",
|
|
@@ -6126,7 +6124,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6126
6124
|
textAnchor: "middle",
|
|
6127
6125
|
fontSize: 7,
|
|
6128
6126
|
fill: "#334155",
|
|
6129
|
-
children:
|
|
6127
|
+
children: chunk3NDRTC7T_js.formatAxisValue(close)
|
|
6130
6128
|
},
|
|
6131
6129
|
`${element.id}-stock-dl-${ci}`
|
|
6132
6130
|
)
|
|
@@ -6168,7 +6166,7 @@ function FailedToLoad() {
|
|
|
6168
6166
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6169
6167
|
async () => {
|
|
6170
6168
|
try {
|
|
6171
|
-
return await import('./SurfaceChart3DScene-
|
|
6169
|
+
return await import('./SurfaceChart3DScene-NPJQXIGW.js');
|
|
6172
6170
|
} catch {
|
|
6173
6171
|
return { default: FailedToLoad };
|
|
6174
6172
|
}
|
|
@@ -6192,7 +6190,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6192
6190
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6193
6191
|
const rows = chartData.series.length;
|
|
6194
6192
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6195
|
-
const range =
|
|
6193
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6196
6194
|
const heightMap = new Float32Array(rows * cols);
|
|
6197
6195
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6198
6196
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6311,10 +6309,10 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6311
6309
|
}
|
|
6312
6310
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6313
6311
|
const style = chartData.style;
|
|
6314
|
-
const areaFill =
|
|
6312
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6315
6313
|
const legendPos = style?.legendPosition || "b";
|
|
6316
|
-
const layout =
|
|
6317
|
-
const range =
|
|
6314
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6315
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6318
6316
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6319
6317
|
const seriesCount = chartData.series.length;
|
|
6320
6318
|
const cols = catCount - 1;
|
|
@@ -6403,10 +6401,10 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6403
6401
|
}
|
|
6404
6402
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6405
6403
|
const style = chartData.style;
|
|
6406
|
-
const areaFill =
|
|
6404
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6407
6405
|
const legendPos = style?.legendPosition || "b";
|
|
6408
|
-
const layout =
|
|
6409
|
-
const range =
|
|
6406
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6407
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6410
6408
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6411
6409
|
const seriesCount = chartData.series.length;
|
|
6412
6410
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6468,9 +6466,9 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6468
6466
|
}
|
|
6469
6467
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6470
6468
|
const style = chartData.style;
|
|
6471
|
-
const areaFill =
|
|
6469
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6472
6470
|
const legendPos = style?.legendPosition || "b";
|
|
6473
|
-
const layout =
|
|
6471
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6474
6472
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6475
6473
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6476
6474
|
const rects = [];
|
|
@@ -6493,14 +6491,14 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6493
6491
|
y: curY,
|
|
6494
6492
|
width: Math.max(w - 1, 1),
|
|
6495
6493
|
height: Math.max(h - 1, 1),
|
|
6496
|
-
fill:
|
|
6494
|
+
fill: chunk3NDRTC7T_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6497
6495
|
rx: 2,
|
|
6498
6496
|
opacity: 0.85
|
|
6499
6497
|
},
|
|
6500
6498
|
`${element.id}-tm-${item.index}`
|
|
6501
6499
|
)
|
|
6502
6500
|
);
|
|
6503
|
-
const
|
|
6501
|
+
const label2 = categoryLabels[item.index] ?? `${item.index + 1}`;
|
|
6504
6502
|
if (w > 30 && h > 14) {
|
|
6505
6503
|
rects.push(
|
|
6506
6504
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6512,7 +6510,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6512
6510
|
fontSize: Math.min(10, h * 0.3),
|
|
6513
6511
|
fill: "#fff",
|
|
6514
6512
|
fontWeight: 600,
|
|
6515
|
-
children:
|
|
6513
|
+
children: label2
|
|
6516
6514
|
},
|
|
6517
6515
|
`${element.id}-tm-lbl-${item.index}`
|
|
6518
6516
|
)
|
|
@@ -6544,11 +6542,11 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6544
6542
|
}
|
|
6545
6543
|
function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
6546
6544
|
const style = chartData.style;
|
|
6547
|
-
const areaFill =
|
|
6545
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6548
6546
|
const legendPos = style?.legendPosition || "b";
|
|
6549
6547
|
const values = chartData.series[0]?.values ?? [];
|
|
6550
|
-
const range =
|
|
6551
|
-
const layout =
|
|
6548
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6549
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6552
6550
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6553
6551
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6554
6552
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6559,8 +6557,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6559
6557
|
const isLast = i === values.length - 1;
|
|
6560
6558
|
const startVal = isLast ? 0 : runningTotal;
|
|
6561
6559
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6562
|
-
const barStartY =
|
|
6563
|
-
const barEndY =
|
|
6560
|
+
const barStartY = chunk3NDRTC7T_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6561
|
+
const barEndY = chunk3NDRTC7T_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6564
6562
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6565
6563
|
const y = Math.min(barStartY, barEndY);
|
|
6566
6564
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6589,7 +6587,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6589
6587
|
textAnchor: "middle",
|
|
6590
6588
|
fontSize: 7,
|
|
6591
6589
|
fill: "#334155",
|
|
6592
|
-
children:
|
|
6590
|
+
children: chunk3NDRTC7T_js.formatAxisValue(isLast ? endVal : val)
|
|
6593
6591
|
},
|
|
6594
6592
|
`${element.id}-wf-dl-${i}`
|
|
6595
6593
|
)
|
|
@@ -6636,20 +6634,20 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6636
6634
|
}
|
|
6637
6635
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6638
6636
|
const style = chartData.style;
|
|
6639
|
-
const areaFill =
|
|
6637
|
+
const areaFill = chunk3NDRTC7T_js.chartAreaFill(chartData);
|
|
6640
6638
|
const legendPos = style?.legendPosition || "b";
|
|
6641
|
-
const layoutOpts =
|
|
6639
|
+
const layoutOpts = chunk3NDRTC7T_js.computeLayoutOptions(
|
|
6642
6640
|
chartData.axes,
|
|
6643
6641
|
chartData.dataTable,
|
|
6644
6642
|
chartData.series.length
|
|
6645
6643
|
);
|
|
6646
|
-
const layout =
|
|
6647
|
-
const { primary, secondary } =
|
|
6644
|
+
const layout = chunk3NDRTC7T_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6645
|
+
const { primary, secondary } = chunk3NDRTC7T_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6648
6646
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6649
6647
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6650
|
-
const range =
|
|
6651
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6652
|
-
const secondaryAxisFmt =
|
|
6648
|
+
const range = chunk3NDRTC7T_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6649
|
+
const secondaryRange = secondarySeries.length > 0 ? chunk3NDRTC7T_js.computeValueRange(secondarySeries) : void 0;
|
|
6650
|
+
const secondaryAxisFmt = chunk3NDRTC7T_js.getSecondaryValueAxis(chartData.axes);
|
|
6653
6651
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6654
6652
|
const barSeriesCount = 1;
|
|
6655
6653
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6665,8 +6663,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6665
6663
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6666
6664
|
barSeries.values.forEach((val, vi) => {
|
|
6667
6665
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6668
|
-
const zeroY =
|
|
6669
|
-
const valY =
|
|
6666
|
+
const zeroY = chunk3NDRTC7T_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6667
|
+
const valY = chunk3NDRTC7T_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6670
6668
|
const y = Math.min(zeroY, valY);
|
|
6671
6669
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6672
6670
|
barElements.push(
|
|
@@ -6677,7 +6675,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6677
6675
|
y,
|
|
6678
6676
|
width: barWidth,
|
|
6679
6677
|
height: h,
|
|
6680
|
-
fill:
|
|
6678
|
+
fill: chunk3NDRTC7T_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6681
6679
|
rx: 1
|
|
6682
6680
|
},
|
|
6683
6681
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6693,7 +6691,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6693
6691
|
textAnchor: "middle",
|
|
6694
6692
|
fontSize: 7,
|
|
6695
6693
|
fill: "#334155",
|
|
6696
|
-
children:
|
|
6694
|
+
children: chunk3NDRTC7T_js.formatAxisValue(val)
|
|
6697
6695
|
},
|
|
6698
6696
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6699
6697
|
)
|
|
@@ -6710,10 +6708,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6710
6708
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6711
6709
|
const points = series.values.map((val, vi) => {
|
|
6712
6710
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6713
|
-
const y =
|
|
6711
|
+
const y = chunk3NDRTC7T_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6714
6712
|
return { x, y, val };
|
|
6715
6713
|
});
|
|
6716
|
-
const c =
|
|
6714
|
+
const c = chunk3NDRTC7T_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6717
6715
|
lineElements.push(
|
|
6718
6716
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6719
6717
|
"polyline",
|
|
@@ -6740,7 +6738,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6740
6738
|
textAnchor: "middle",
|
|
6741
6739
|
fontSize: 7,
|
|
6742
6740
|
fill: "#334155",
|
|
6743
|
-
children:
|
|
6741
|
+
children: chunk3NDRTC7T_js.formatAxisValue(p.val)
|
|
6744
6742
|
},
|
|
6745
6743
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6746
6744
|
)
|
|
@@ -6979,14 +6977,14 @@ function layoutToCategory(layout) {
|
|
|
6979
6977
|
};
|
|
6980
6978
|
return map[layout] ?? "list";
|
|
6981
6979
|
}
|
|
6982
|
-
function smartArtNodeGroupProps(nodeId, shadow,
|
|
6980
|
+
function smartArtNodeGroupProps(nodeId, shadow, label2) {
|
|
6983
6981
|
const props = {
|
|
6984
6982
|
"data-smartart-node-id": nodeId,
|
|
6985
6983
|
style: { filter: shadow, pointerEvents: "auto" }
|
|
6986
6984
|
};
|
|
6987
|
-
if (
|
|
6985
|
+
if (label2) {
|
|
6988
6986
|
props.role = "img";
|
|
6989
|
-
props["aria-label"] =
|
|
6987
|
+
props["aria-label"] = label2;
|
|
6990
6988
|
}
|
|
6991
6989
|
return props;
|
|
6992
6990
|
}
|
|
@@ -7886,14 +7884,14 @@ function buildNotesPdf(pages) {
|
|
|
7886
7884
|
notes: page.notes,
|
|
7887
7885
|
slideNumber: page.slideNumber
|
|
7888
7886
|
}));
|
|
7889
|
-
const bytes =
|
|
7887
|
+
const bytes = chunk3NDRTC7T_js.buildNotesPdfBytes(images, meta);
|
|
7890
7888
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7891
7889
|
return URL.createObjectURL(blob);
|
|
7892
7890
|
}
|
|
7893
7891
|
|
|
7894
7892
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
7895
7893
|
function buildPdfFromImageData(images) {
|
|
7896
|
-
const bytes =
|
|
7894
|
+
const bytes = chunk3NDRTC7T_js.buildSlidesPdfBytes(images);
|
|
7897
7895
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7898
7896
|
return URL.createObjectURL(blob);
|
|
7899
7897
|
}
|
|
@@ -7902,7 +7900,7 @@ function buildPdfFromImageData(images) {
|
|
|
7902
7900
|
var activePreview = null;
|
|
7903
7901
|
function startPreviewAnimation(elementId, preset, options) {
|
|
7904
7902
|
stopPreviewAnimation();
|
|
7905
|
-
const descriptor =
|
|
7903
|
+
const descriptor = chunk3NDRTC7T_js.buildPreviewAnimation(preset, options);
|
|
7906
7904
|
if (!descriptor) {
|
|
7907
7905
|
return;
|
|
7908
7906
|
}
|
|
@@ -7915,7 +7913,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
7915
7913
|
return;
|
|
7916
7914
|
}
|
|
7917
7915
|
const stage = domEl.offsetParent;
|
|
7918
|
-
const descriptor =
|
|
7916
|
+
const descriptor = chunk3NDRTC7T_js.buildMotionPathPreview({
|
|
7919
7917
|
path,
|
|
7920
7918
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
7921
7919
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|