pptx-react-viewer 2.16.5 → 2.16.6
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-6B26AZGA.mjs → AiChatPanel-NQFSMKIJ.mjs} +3 -3
- package/dist/AiChatPanel-NQFSMKIJ.mjs.br +0 -0
- package/dist/AiChatPanel-NQFSMKIJ.mjs.gz +0 -0
- package/dist/{AiChatPanel-FGEIZQCD.js → AiChatPanel-T6UN6LME.js} +22 -22
- package/dist/AiChatPanel-T6UN6LME.js.br +0 -0
- package/dist/AiChatPanel-T6UN6LME.js.gz +0 -0
- package/dist/{Model3DScene-NKYNKUPP.mjs → Model3DScene-4D4GSRIB.mjs} +1 -1
- package/dist/Model3DScene-4D4GSRIB.mjs.br +0 -0
- package/dist/Model3DScene-4D4GSRIB.mjs.gz +0 -0
- package/dist/{Model3DScene-2JX5CUPK.js → Model3DScene-SIST7CIH.js} +2 -2
- package/dist/Model3DScene-SIST7CIH.js.br +0 -0
- package/dist/Model3DScene-SIST7CIH.js.gz +0 -0
- package/dist/PowerPointViewer-Du7u4INi.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-AE5SKG7U.js → SurfaceChart3DScene-GRM24VBC.js} +2 -2
- package/dist/SurfaceChart3DScene-GRM24VBC.js.br +0 -0
- package/dist/SurfaceChart3DScene-GRM24VBC.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs → SurfaceChart3DScene-ZT7L27U4.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs.br → SurfaceChart3DScene-ZT7L27U4.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-ZT7L27U4.mjs.gz +0 -0
- package/dist/{chunk-5YGTUHNO.mjs → chunk-6F76GHPE.mjs} +14 -7
- package/dist/chunk-6F76GHPE.mjs.br +0 -0
- package/dist/chunk-6F76GHPE.mjs.gz +0 -0
- package/dist/{chunk-LCWZ4TD4.js → chunk-DYGKE2LY.js} +1086 -1056
- package/dist/chunk-DYGKE2LY.js.br +0 -0
- package/dist/chunk-DYGKE2LY.js.gz +0 -0
- package/dist/{chunk-UNWU6D2M.js → chunk-GUDJDY4J.js} +348 -342
- package/dist/chunk-GUDJDY4J.js.br +0 -0
- package/dist/chunk-GUDJDY4J.js.gz +0 -0
- package/dist/{chunk-P65VL2I6.js → chunk-H36QL5T5.js} +267 -260
- package/dist/chunk-H36QL5T5.js.br +0 -0
- package/dist/chunk-H36QL5T5.js.gz +0 -0
- package/dist/{chunk-Y6W5LGTR.mjs → chunk-NI5GSVZU.mjs} +10 -4
- package/dist/chunk-NI5GSVZU.mjs.br +0 -0
- package/dist/chunk-NI5GSVZU.mjs.gz +0 -0
- package/dist/{chunk-247XH4EN.mjs → chunk-PUBYHZYJ.mjs} +83 -48
- package/dist/chunk-PUBYHZYJ.mjs.br +0 -0
- package/dist/{chunk-247XH4EN.mjs.gz → chunk-PUBYHZYJ.mjs.gz} +0 -0
- package/dist/{chunk-6QGTRYSC.js → chunk-RZYOOWZN.js} +84 -47
- package/dist/chunk-RZYOOWZN.js.br +0 -0
- package/dist/{chunk-6QGTRYSC.js.gz → chunk-RZYOOWZN.js.gz} +0 -0
- package/dist/{chunk-MZN2UIYT.mjs → chunk-VDQD3ZOU.mjs} +1 -1
- package/dist/chunk-VDQD3ZOU.mjs.br +0 -0
- package/dist/chunk-VDQD3ZOU.mjs.gz +0 -0
- package/dist/{chunk-VZI35LEF.js → chunk-YDYAOW6D.js} +3 -3
- package/dist/chunk-YDYAOW6D.js.br +0 -0
- package/dist/chunk-YDYAOW6D.js.gz +0 -0
- package/dist/{chunk-EFZ4K6V5.mjs → chunk-YZHBUMVU.mjs} +41 -11
- package/dist/chunk-YZHBUMVU.mjs.br +0 -0
- package/dist/chunk-YZHBUMVU.mjs.gz +0 -0
- package/dist/index.d.ts +2 -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 +10 -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/{useViewerBuildingBlocks-CBZrHhxl.d.ts → useViewerBuildingBlocks-DpzU8NZ_.d.ts} +3 -1
- package/dist/useViewerBuildingBlocks-DpzU8NZ_.d.ts.map +1 -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-6B26AZGA.mjs.br +0 -0
- package/dist/AiChatPanel-6B26AZGA.mjs.gz +0 -0
- package/dist/AiChatPanel-FGEIZQCD.js.br +0 -0
- package/dist/AiChatPanel-FGEIZQCD.js.gz +0 -0
- package/dist/Model3DScene-2JX5CUPK.js.br +0 -0
- package/dist/Model3DScene-2JX5CUPK.js.gz +0 -0
- package/dist/Model3DScene-NKYNKUPP.mjs.br +0 -0
- package/dist/Model3DScene-NKYNKUPP.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-AE5SKG7U.js.br +0 -0
- package/dist/SurfaceChart3DScene-AE5SKG7U.js.gz +0 -0
- package/dist/SurfaceChart3DScene-TTL2FTEG.mjs.gz +0 -0
- package/dist/chunk-247XH4EN.mjs.br +0 -0
- package/dist/chunk-5YGTUHNO.mjs.br +0 -0
- package/dist/chunk-5YGTUHNO.mjs.gz +0 -0
- package/dist/chunk-6QGTRYSC.js.br +0 -0
- package/dist/chunk-EFZ4K6V5.mjs.br +0 -0
- package/dist/chunk-EFZ4K6V5.mjs.gz +0 -0
- package/dist/chunk-LCWZ4TD4.js.br +0 -0
- package/dist/chunk-LCWZ4TD4.js.gz +0 -0
- package/dist/chunk-MZN2UIYT.mjs.br +0 -0
- package/dist/chunk-MZN2UIYT.mjs.gz +0 -0
- package/dist/chunk-P65VL2I6.js.br +0 -0
- package/dist/chunk-P65VL2I6.js.gz +0 -0
- package/dist/chunk-UNWU6D2M.js.br +0 -0
- package/dist/chunk-UNWU6D2M.js.gz +0 -0
- package/dist/chunk-VZI35LEF.js.br +0 -0
- package/dist/chunk-VZI35LEF.js.gz +0 -0
- package/dist/chunk-Y6W5LGTR.mjs.br +0 -0
- package/dist/chunk-Y6W5LGTR.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-CBZrHhxl.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkDVZF4ARG_js = require('./chunk-DVZF4ARG.js');
|
|
4
|
-
var
|
|
4
|
+
var chunkRZYOOWZN_js = require('./chunk-RZYOOWZN.js');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var React6 = require('react');
|
|
@@ -15,7 +15,7 @@ var React6__default = /*#__PURE__*/_interopDefault(React6);
|
|
|
15
15
|
|
|
16
16
|
// src/viewer/utils/animation-effects.ts
|
|
17
17
|
function getAnimationInitialStyle2(preset, nativeAnimation) {
|
|
18
|
-
return
|
|
18
|
+
return chunkRZYOOWZN_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 chunkRZYOOWZN_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 = chunkRZYOOWZN_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 = chunkRZYOOWZN_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 (!chunkRZYOOWZN_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) => chunkRZYOOWZN_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) => !chunkRZYOOWZN_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 (!chunkRZYOOWZN_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 = chunkRZYOOWZN_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 = chunkRZYOOWZN_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
|
+
...chunkRZYOOWZN_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 (!chunkRZYOOWZN_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 (!chunkRZYOOWZN_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 (!chunkRZYOOWZN_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
413
413
|
return void 0;
|
|
414
414
|
}
|
|
415
415
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -629,9 +629,9 @@ function registerMediaElement(elementId, el) {
|
|
|
629
629
|
};
|
|
630
630
|
}
|
|
631
631
|
function executeMediaCommand(command, frameRoot) {
|
|
632
|
-
return
|
|
632
|
+
return chunkRZYOOWZN_js.runMediaCommand(
|
|
633
633
|
command,
|
|
634
|
-
(targetId) => registry.get(targetId) ??
|
|
634
|
+
(targetId) => registry.get(targetId) ?? chunkRZYOOWZN_js.findMediaElementByElementId(targetId, frameRoot?.())
|
|
635
635
|
);
|
|
636
636
|
}
|
|
637
637
|
function PresentationMediaController({
|
|
@@ -675,7 +675,7 @@ function PresentationMediaController({
|
|
|
675
675
|
loop: shouldLoop,
|
|
676
676
|
volume: playbackVolume,
|
|
677
677
|
playbackRate
|
|
678
|
-
} =
|
|
678
|
+
} = chunkRZYOOWZN_js.mediaPlaybackAttributes({
|
|
679
679
|
loop: element.loop,
|
|
680
680
|
volume: element.volume,
|
|
681
681
|
playbackSpeed: element.playbackSpeed
|
|
@@ -811,7 +811,7 @@ function PresentationMediaController({
|
|
|
811
811
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
812
812
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
813
813
|
if (dataUrl) {
|
|
814
|
-
|
|
814
|
+
chunkRZYOOWZN_js.registerPersistentAudio(
|
|
815
815
|
element.id,
|
|
816
816
|
dataUrl,
|
|
817
817
|
element.mediaMimeType,
|
|
@@ -909,17 +909,17 @@ function Badge({
|
|
|
909
909
|
"div",
|
|
910
910
|
{
|
|
911
911
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
912
|
-
...{ [
|
|
912
|
+
...{ [chunkRZYOOWZN_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
913
913
|
children: [
|
|
914
914
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
915
915
|
FallbackIcon,
|
|
916
916
|
{
|
|
917
|
-
paths:
|
|
917
|
+
paths: chunkRZYOOWZN_js.mediaFallbackIcon(visual, element.mediaType),
|
|
918
918
|
size: isMissing ? 32 : 48,
|
|
919
919
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
920
920
|
}
|
|
921
921
|
),
|
|
922
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
922
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkRZYOOWZN_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
923
923
|
]
|
|
924
924
|
}
|
|
925
925
|
);
|
|
@@ -936,17 +936,17 @@ function Placeholder({
|
|
|
936
936
|
"div",
|
|
937
937
|
{
|
|
938
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
|
-
...{ [
|
|
939
|
+
...{ [chunkRZYOOWZN_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
940
940
|
children: [
|
|
941
941
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
942
942
|
FallbackIcon,
|
|
943
943
|
{
|
|
944
|
-
paths:
|
|
944
|
+
paths: chunkRZYOOWZN_js.mediaFallbackIcon(visual, element.mediaType),
|
|
945
945
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
946
946
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
947
947
|
}
|
|
948
948
|
),
|
|
949
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
949
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkRZYOOWZN_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
950
950
|
]
|
|
951
951
|
}
|
|
952
952
|
);
|
|
@@ -956,7 +956,7 @@ function renderMediaFallback({
|
|
|
956
956
|
posterUrl,
|
|
957
957
|
surface
|
|
958
958
|
}) {
|
|
959
|
-
const visual =
|
|
959
|
+
const visual = chunkRZYOOWZN_js.mediaFallbackVisual(surface, {
|
|
960
960
|
hasPoster: Boolean(posterUrl),
|
|
961
961
|
missing: element.mediaMissing === true
|
|
962
962
|
});
|
|
@@ -985,7 +985,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
985
985
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
986
986
|
const trimFragment = buildTrimFragment(element);
|
|
987
987
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
988
|
-
const shouldLoop =
|
|
988
|
+
const shouldLoop = chunkRZYOOWZN_js.mediaPlaybackAttributes(element).loop;
|
|
989
989
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
990
990
|
const isFullScreen = options?.fullScreen === true;
|
|
991
991
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -1068,7 +1068,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1068
1068
|
|
|
1069
1069
|
// src/viewer/utils/text-utils.tsx
|
|
1070
1070
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1071
|
-
return
|
|
1071
|
+
return chunkRZYOOWZN_js.buildTextBlockStyle(element, { fallbackColor });
|
|
1072
1072
|
}
|
|
1073
1073
|
|
|
1074
1074
|
// src/viewer/utils/text-layout.tsx
|
|
@@ -1093,13 +1093,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1093
1093
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1094
1094
|
}
|
|
1095
1095
|
function getTextLayoutStyle(element) {
|
|
1096
|
-
if (!
|
|
1096
|
+
if (!chunkRZYOOWZN_js.hasTextProperties(element)) {
|
|
1097
1097
|
return {};
|
|
1098
1098
|
}
|
|
1099
1099
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1100
|
-
const writingMode =
|
|
1101
|
-
const textOrientation =
|
|
1102
|
-
const verticalDirection =
|
|
1100
|
+
const writingMode = chunkRZYOOWZN_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1101
|
+
const textOrientation = chunkRZYOOWZN_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1102
|
+
const verticalDirection = chunkRZYOOWZN_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1103
1103
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1104
1104
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1105
1105
|
const hasColumns = columnCount > 1;
|
|
@@ -1107,7 +1107,7 @@ function getTextLayoutStyle(element) {
|
|
|
1107
1107
|
const tabStops = element.textStyle?.tabStops;
|
|
1108
1108
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1109
1109
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1110
|
-
const hasParagraphIndents =
|
|
1110
|
+
const hasParagraphIndents = chunkRZYOOWZN_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1111
1111
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1112
1112
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1113
1113
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1116,7 +1116,7 @@ function getTextLayoutStyle(element) {
|
|
|
1116
1116
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1117
1117
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1118
1118
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1119
|
-
const kinsokuStyles =
|
|
1119
|
+
const kinsokuStyles = chunkRZYOOWZN_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1120
1120
|
if (hasColumns) {
|
|
1121
1121
|
return {
|
|
1122
1122
|
display: "block",
|
|
@@ -1163,10 +1163,10 @@ function getTextLayoutStyle(element) {
|
|
|
1163
1163
|
|
|
1164
1164
|
// src/viewer/utils/text-effects.tsx
|
|
1165
1165
|
function buildTextFillCss2(style) {
|
|
1166
|
-
return
|
|
1166
|
+
return chunkRZYOOWZN_js.buildTextFillCss(style);
|
|
1167
1167
|
}
|
|
1168
1168
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1169
|
-
return
|
|
1169
|
+
return chunkRZYOOWZN_js.buildTextBody3DSceneStyle(textStyle);
|
|
1170
1170
|
}
|
|
1171
1171
|
|
|
1172
1172
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1351,13 +1351,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1351
1351
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1352
1352
|
return renderedSegments;
|
|
1353
1353
|
}
|
|
1354
|
-
const paraKey = `${elementId}${
|
|
1354
|
+
const paraKey = `${elementId}${chunkRZYOOWZN_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1355
1355
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1356
1356
|
if (paraState) {
|
|
1357
1357
|
const style = buildAnimStyle(paraState);
|
|
1358
1358
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1359
1359
|
}
|
|
1360
|
-
const spec =
|
|
1360
|
+
const spec = chunkRZYOOWZN_js.buildTextBuildSpec(
|
|
1361
1361
|
elementId,
|
|
1362
1362
|
paraIndex,
|
|
1363
1363
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1375,7 +1375,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1375
1375
|
"span",
|
|
1376
1376
|
{
|
|
1377
1377
|
"data-anim-id": span.animId,
|
|
1378
|
-
style:
|
|
1378
|
+
style: chunkRZYOOWZN_js.textBuildSpanStyle(span),
|
|
1379
1379
|
children: content
|
|
1380
1380
|
},
|
|
1381
1381
|
span.animId
|
|
@@ -1519,10 +1519,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1519
1519
|
if (!needsScriptFonts || !text) {
|
|
1520
1520
|
return text;
|
|
1521
1521
|
}
|
|
1522
|
-
const runs =
|
|
1522
|
+
const runs = chunkRZYOOWZN_js.segmentByScript(text);
|
|
1523
1523
|
if (runs.length <= 1) {
|
|
1524
1524
|
if (runs.length === 1) {
|
|
1525
|
-
const font =
|
|
1525
|
+
const font = chunkRZYOOWZN_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1526
1526
|
if (font && font !== baseFontFamily) {
|
|
1527
1527
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1528
1528
|
}
|
|
@@ -1530,7 +1530,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1530
1530
|
return text;
|
|
1531
1531
|
}
|
|
1532
1532
|
return runs.map((run, i) => {
|
|
1533
|
-
const font =
|
|
1533
|
+
const font = chunkRZYOOWZN_js.resolveFontForScript(run.script, scriptFonts);
|
|
1534
1534
|
if (!font || font === baseFontFamily) {
|
|
1535
1535
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1536
1536
|
}
|
|
@@ -1541,14 +1541,14 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1541
1541
|
if (!metric || !text) {
|
|
1542
1542
|
return inner(text, keyPrefix);
|
|
1543
1543
|
}
|
|
1544
|
-
const pieces =
|
|
1544
|
+
const pieces = chunkRZYOOWZN_js.splitRunForMetrics(text, metric.font);
|
|
1545
1545
|
if (pieces.length <= 1) {
|
|
1546
1546
|
return inner(text, keyPrefix);
|
|
1547
1547
|
}
|
|
1548
1548
|
return pieces.map((piece, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1549
1549
|
"span",
|
|
1550
1550
|
{
|
|
1551
|
-
style: { letterSpacing:
|
|
1551
|
+
style: { letterSpacing: chunkRZYOOWZN_js.pieceLetterSpacing(metric.authoredPx, piece.tracking) },
|
|
1552
1552
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1553
1553
|
},
|
|
1554
1554
|
`${keyPrefix}-w${i}`
|
|
@@ -1619,8 +1619,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1619
1619
|
});
|
|
1620
1620
|
}
|
|
1621
1621
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1622
|
-
const mathml =
|
|
1623
|
-
const safeMathml = mathml ?
|
|
1622
|
+
const mathml = chunkRZYOOWZN_js.convertOmmlToMathMl(equationXml);
|
|
1623
|
+
const safeMathml = mathml ? chunkRZYOOWZN_js.sanitizeMathMl(mathml) : "";
|
|
1624
1624
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1625
1625
|
"span",
|
|
1626
1626
|
{
|
|
@@ -1670,7 +1670,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1670
1670
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1671
1671
|
}
|
|
1672
1672
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1673
|
-
const picture =
|
|
1673
|
+
const picture = chunkRZYOOWZN_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1674
1674
|
sizePx: baseFontSize,
|
|
1675
1675
|
fallbackMarker: "\u2022",
|
|
1676
1676
|
accessibleLabel: "Bullet"
|
|
@@ -1721,7 +1721,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1721
1721
|
}
|
|
1722
1722
|
const segmentStyle = segment.style || {};
|
|
1723
1723
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1724
|
-
const textValue =
|
|
1724
|
+
const textValue = chunkRZYOOWZN_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1725
1725
|
const lines = textValue.split("\n");
|
|
1726
1726
|
const textDecorationTokens = [];
|
|
1727
1727
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1731,8 +1731,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1731
1731
|
textDecorationTokens.push("line-through");
|
|
1732
1732
|
}
|
|
1733
1733
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1734
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1735
|
-
const underlineDecoration =
|
|
1734
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunkRZYOOWZN_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkRZYOOWZN_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1735
|
+
const underlineDecoration = chunkRZYOOWZN_js.resolveUnderlineDecorationStyle(
|
|
1736
1736
|
Boolean(isDoubleStrike),
|
|
1737
1737
|
segmentStyle.underlineStyle
|
|
1738
1738
|
);
|
|
@@ -1742,17 +1742,17 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1742
1742
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1743
1743
|
const textFillStyles = buildTextFillCss2(segmentStyle);
|
|
1744
1744
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1745
|
-
const autoFitScale =
|
|
1745
|
+
const autoFitScale = chunkRZYOOWZN_js.resolveAutoFitFontScale(element.textStyle);
|
|
1746
1746
|
const baseFontSize = rawFontSize * autoFitScale;
|
|
1747
1747
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1748
1748
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1749
1749
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1750
1750
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1751
|
-
const baseFontFamily = rawFontFamily ?
|
|
1751
|
+
const baseFontFamily = rawFontFamily ? chunkRZYOOWZN_js.getSubstituteFontFamily(
|
|
1752
1752
|
rawFontFamily,
|
|
1753
|
-
|
|
1753
|
+
chunkRZYOOWZN_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1754
1754
|
) : DEFAULT_FONT_FAMILY2;
|
|
1755
|
-
const scriptFont = (name, panose) => name ?
|
|
1755
|
+
const scriptFont = (name, panose) => name ? chunkRZYOOWZN_js.getSubstituteFontFamily(name, chunkRZYOOWZN_js.parsePanoseString(panose)) : baseFontFamily;
|
|
1756
1756
|
const scriptFonts = {
|
|
1757
1757
|
latin: baseFontFamily,
|
|
1758
1758
|
eastAsia: scriptFont(
|
|
@@ -1768,7 +1768,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1768
1768
|
segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
|
|
1769
1769
|
)
|
|
1770
1770
|
};
|
|
1771
|
-
const needsScriptFonts =
|
|
1771
|
+
const needsScriptFonts = chunkRZYOOWZN_js.hasDistinctScriptFonts(scriptFonts);
|
|
1772
1772
|
const metricFont = {
|
|
1773
1773
|
fontFamily: baseFontFamily,
|
|
1774
1774
|
fontSizePx: baseFontSize * baselineFontScale,
|
|
@@ -1776,9 +1776,9 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1776
1776
|
italic: Boolean(segmentStyle.italic)
|
|
1777
1777
|
};
|
|
1778
1778
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing };
|
|
1779
|
-
const letterSpacing =
|
|
1779
|
+
const letterSpacing = chunkRZYOOWZN_js.pieceLetterSpacing(
|
|
1780
1780
|
authoredLetterSpacing,
|
|
1781
|
-
|
|
1781
|
+
chunkRZYOOWZN_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1782
1782
|
);
|
|
1783
1783
|
const spanStyle = {
|
|
1784
1784
|
color: resolvedSegmentColor,
|
|
@@ -1797,15 +1797,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1797
1797
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1798
1798
|
letterSpacing,
|
|
1799
1799
|
fontKerning,
|
|
1800
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1800
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkRZYOOWZN_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1801
1801
|
...textFillStyles,
|
|
1802
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1803
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1802
|
+
textDecorationColor: segmentStyle.underlineColor ? chunkRZYOOWZN_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1803
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkRZYOOWZN_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1804
1804
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1805
|
-
textShadow:
|
|
1806
|
-
filter:
|
|
1807
|
-
opacity:
|
|
1808
|
-
WebkitBoxReflect:
|
|
1805
|
+
textShadow: chunkRZYOOWZN_js.buildTextShadowCss(segmentStyle),
|
|
1806
|
+
filter: chunkRZYOOWZN_js.buildTextRunFilterChain(segmentStyle),
|
|
1807
|
+
opacity: chunkRZYOOWZN_js.getTextAlphaOpacity(segmentStyle),
|
|
1808
|
+
WebkitBoxReflect: chunkRZYOOWZN_js.buildTextReflectionCss(segmentStyle)
|
|
1809
1809
|
};
|
|
1810
1810
|
const runRtl = segmentStyle.rtl;
|
|
1811
1811
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1825,7 +1825,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1825
1825
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1826
1826
|
}
|
|
1827
1827
|
if (bulletInfo.color) {
|
|
1828
|
-
spanStyle.color =
|
|
1828
|
+
spanStyle.color = chunkRZYOOWZN_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1829
1829
|
}
|
|
1830
1830
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1831
1831
|
spanStyle.display = "inline-block";
|
|
@@ -1871,7 +1871,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1871
1871
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
1872
1872
|
};
|
|
1873
1873
|
if (segment.rubyStyle?.color) {
|
|
1874
|
-
rubyStyle.color =
|
|
1874
|
+
rubyStyle.color = chunkRZYOOWZN_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
1875
1875
|
}
|
|
1876
1876
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
1877
1877
|
baseContent,
|
|
@@ -1944,7 +1944,7 @@ function resolveParagraphSpacing(input) {
|
|
|
1944
1944
|
if (typeof exactPt === "number" && exactPt > 0) {
|
|
1945
1945
|
result.lineHeight = `${exactPt * PT_TO_PX}px`;
|
|
1946
1946
|
} else if (typeof multiplier === "number" && multiplier > 0) {
|
|
1947
|
-
result.lineHeight =
|
|
1947
|
+
result.lineHeight = chunkRZYOOWZN_js.proportionalLineHeight(multiplier);
|
|
1948
1948
|
}
|
|
1949
1949
|
return result;
|
|
1950
1950
|
}
|
|
@@ -1966,7 +1966,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
1966
1966
|
return paragraphs;
|
|
1967
1967
|
}
|
|
1968
1968
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
1969
|
-
if (!
|
|
1969
|
+
if (!chunkRZYOOWZN_js.hasTextProperties(element)) {
|
|
1970
1970
|
return emptyFallback || null;
|
|
1971
1971
|
}
|
|
1972
1972
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -1987,10 +1987,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1987
1987
|
return element.text || emptyFallback || "";
|
|
1988
1988
|
}
|
|
1989
1989
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
1990
|
-
const paragraphIndents =
|
|
1991
|
-
const elementRtl =
|
|
1992
|
-
const elementAlign =
|
|
1993
|
-
const bodyStyle =
|
|
1990
|
+
const paragraphIndents = chunkRZYOOWZN_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
1991
|
+
const elementRtl = chunkRZYOOWZN_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
1992
|
+
const elementAlign = chunkRZYOOWZN_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
1993
|
+
const bodyStyle = chunkRZYOOWZN_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
1994
1994
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
1995
1995
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
1996
1996
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2005,14 +2005,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2005
2005
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2006
2006
|
});
|
|
2007
2007
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2008
|
-
const paraRtl =
|
|
2008
|
+
const paraRtl = chunkRZYOOWZN_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2009
2009
|
const isRtlParagraph = paraRtl === true;
|
|
2010
|
-
const paraAlign =
|
|
2011
|
-
const cssTextAlign =
|
|
2010
|
+
const paraAlign = chunkRZYOOWZN_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
2011
|
+
const cssTextAlign = chunkRZYOOWZN_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2012
2012
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2013
2013
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2014
2014
|
const paraTextIndent = rawTextIndent;
|
|
2015
|
-
const paraKinsokuStyle =
|
|
2015
|
+
const paraKinsokuStyle = chunkRZYOOWZN_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2016
2016
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2017
2017
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
2018
2018
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2022,7 +2022,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2022
2022
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2023
2023
|
spaceFirstLast
|
|
2024
2024
|
});
|
|
2025
|
-
const strutFontSize =
|
|
2025
|
+
const strutFontSize = chunkRZYOOWZN_js.resolveParagraphStrutFontSize(
|
|
2026
2026
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2027
2027
|
bodyStyle?.fontSize
|
|
2028
2028
|
);
|
|
@@ -2126,13 +2126,13 @@ function hexToRgbUnit(hex) {
|
|
|
2126
2126
|
};
|
|
2127
2127
|
}
|
|
2128
2128
|
function getDuotoneColors(element) {
|
|
2129
|
-
if (!
|
|
2129
|
+
if (!chunkRZYOOWZN_js.isImageLikeElement(element)) {
|
|
2130
2130
|
return void 0;
|
|
2131
2131
|
}
|
|
2132
2132
|
return element.imageEffects?.duotone;
|
|
2133
2133
|
}
|
|
2134
2134
|
function buildLineShadowCss(element) {
|
|
2135
|
-
if (!
|
|
2135
|
+
if (!chunkRZYOOWZN_js.hasShapeProperties(element)) {
|
|
2136
2136
|
return void 0;
|
|
2137
2137
|
}
|
|
2138
2138
|
const ss = element.shapeStyle;
|
|
@@ -2143,13 +2143,13 @@ function buildLineShadowCss(element) {
|
|
|
2143
2143
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2144
2144
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2145
2145
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2146
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2147
|
-
|
|
2146
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkRZYOOWZN_js.colorWithOpacity(
|
|
2147
|
+
chunkRZYOOWZN_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2148
2148
|
opacity
|
|
2149
2149
|
)}`;
|
|
2150
2150
|
}
|
|
2151
2151
|
function buildLineGlowFilter(element) {
|
|
2152
|
-
if (!
|
|
2152
|
+
if (!chunkRZYOOWZN_js.hasShapeProperties(element)) {
|
|
2153
2153
|
return void 0;
|
|
2154
2154
|
}
|
|
2155
2155
|
const ss = element.shapeStyle;
|
|
@@ -2158,7 +2158,7 @@ function buildLineGlowFilter(element) {
|
|
|
2158
2158
|
}
|
|
2159
2159
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2160
2160
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2161
|
-
const glowCol =
|
|
2161
|
+
const glowCol = chunkRZYOOWZN_js.colorWithOpacity(chunkRZYOOWZN_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2162
2162
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2163
2163
|
}
|
|
2164
2164
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2182,7 +2182,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2182
2182
|
return `dag-duotone-${elementId}`;
|
|
2183
2183
|
}
|
|
2184
2184
|
function hasDagDuotoneEffect(element) {
|
|
2185
|
-
if (!
|
|
2185
|
+
if (!chunkRZYOOWZN_js.hasShapeProperties(element)) {
|
|
2186
2186
|
return false;
|
|
2187
2187
|
}
|
|
2188
2188
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2245,7 +2245,7 @@ function getRoundRectRadiusPx(element) {
|
|
|
2245
2245
|
|
|
2246
2246
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2247
2247
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2248
|
-
return
|
|
2248
|
+
return chunkRZYOOWZN_js.build3DExtrusionData(
|
|
2249
2249
|
shape3d,
|
|
2250
2250
|
scene3d,
|
|
2251
2251
|
fillColor,
|
|
@@ -2254,7 +2254,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2254
2254
|
);
|
|
2255
2255
|
}
|
|
2256
2256
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2257
|
-
|
|
2257
|
+
chunkRZYOOWZN_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2258
2258
|
}
|
|
2259
2259
|
|
|
2260
2260
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -2262,43 +2262,43 @@ function getGradientTilingCss(style) {
|
|
|
2262
2262
|
if (!style || style.fillMode !== "gradient") {
|
|
2263
2263
|
return void 0;
|
|
2264
2264
|
}
|
|
2265
|
-
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" &&
|
|
2265
|
+
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunkRZYOOWZN_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
|
|
2266
2266
|
if (isStructuredLinear) {
|
|
2267
|
-
const flip =
|
|
2267
|
+
const flip = chunkRZYOOWZN_js.getGradientTileFlipCss(style.fillGradientFlip);
|
|
2268
2268
|
if (flip) {
|
|
2269
2269
|
return flip;
|
|
2270
2270
|
}
|
|
2271
2271
|
}
|
|
2272
|
-
return
|
|
2272
|
+
return chunkRZYOOWZN_js.getGradientTileRectCss(style.fillGradientTileRect);
|
|
2273
2273
|
}
|
|
2274
2274
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2275
|
-
if (!
|
|
2275
|
+
if (!chunkRZYOOWZN_js.hasShapeProperties(element)) {
|
|
2276
2276
|
return {};
|
|
2277
2277
|
}
|
|
2278
2278
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2279
|
-
const clipPath =
|
|
2279
|
+
const clipPath = chunkRZYOOWZN_js.isIdentityRectClip(element) ? void 0 : chunkRZYOOWZN_js.getResolvedShapeClipPath(element);
|
|
2280
2280
|
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;
|
|
2281
|
-
const rendersStrokeOnlyPreset =
|
|
2281
|
+
const rendersStrokeOnlyPreset = chunkRZYOOWZN_js.isStrokeOnlyPresetElement(element);
|
|
2282
2282
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2283
2283
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2284
|
-
const strokeDash =
|
|
2285
|
-
const fillGradient =
|
|
2284
|
+
const strokeDash = chunkRZYOOWZN_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2285
|
+
const fillGradient = chunkRZYOOWZN_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
|
|
2286
2286
|
rotation: element.rotation,
|
|
2287
2287
|
width: element.width,
|
|
2288
2288
|
height: element.height
|
|
2289
2289
|
}) || element.shapeStyle?.fillGradient;
|
|
2290
|
-
const shadowCss =
|
|
2291
|
-
const innerShadowCss =
|
|
2292
|
-
const resolvedFillColor =
|
|
2293
|
-
const resolvedStrokeColor =
|
|
2290
|
+
const shadowCss = chunkRZYOOWZN_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2291
|
+
const innerShadowCss = chunkRZYOOWZN_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2292
|
+
const resolvedFillColor = chunkRZYOOWZN_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2293
|
+
const resolvedStrokeColor = chunkRZYOOWZN_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2294
2294
|
const ss = element.shapeStyle;
|
|
2295
2295
|
const gradientTiling = getGradientTilingCss(ss);
|
|
2296
|
-
const paintsGradientOutline =
|
|
2296
|
+
const paintsGradientOutline = chunkRZYOOWZN_js.suppressesCssBorder(element);
|
|
2297
2297
|
const hasFillOverlayColor = Boolean(
|
|
2298
2298
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2299
2299
|
);
|
|
2300
2300
|
const combinedShadowParts = [];
|
|
2301
|
-
const multiLayerShadow =
|
|
2301
|
+
const multiLayerShadow = chunkRZYOOWZN_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2302
2302
|
if (multiLayerShadow) {
|
|
2303
2303
|
combinedShadowParts.push(multiLayerShadow);
|
|
2304
2304
|
} else if (shadowCss) {
|
|
@@ -2307,7 +2307,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2307
2307
|
if (innerShadowCss) {
|
|
2308
2308
|
combinedShadowParts.push(innerShadowCss);
|
|
2309
2309
|
}
|
|
2310
|
-
const glowBoxShadow =
|
|
2310
|
+
const glowBoxShadow = chunkRZYOOWZN_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2311
2311
|
if (glowBoxShadow) {
|
|
2312
2312
|
combinedShadowParts.push(glowBoxShadow);
|
|
2313
2313
|
}
|
|
@@ -2315,7 +2315,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2315
2315
|
if (lineShadow) {
|
|
2316
2316
|
combinedShadowParts.push(lineShadow);
|
|
2317
2317
|
}
|
|
2318
|
-
const compoundLineShadow =
|
|
2318
|
+
const compoundLineShadow = chunkRZYOOWZN_js.getCompoundLineBoxShadow(
|
|
2319
2319
|
element.shapeStyle?.compoundLine,
|
|
2320
2320
|
strokeWidth,
|
|
2321
2321
|
resolvedStrokeColor
|
|
@@ -2328,11 +2328,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2328
2328
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2329
2329
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2330
2330
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2331
|
-
const glowCol =
|
|
2331
|
+
const glowCol = chunkRZYOOWZN_js.colorWithOpacity(chunkRZYOOWZN_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2332
2332
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2333
2333
|
}
|
|
2334
2334
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2335
|
-
filterParts.push(`url(#${
|
|
2335
|
+
filterParts.push(`url(#${chunkRZYOOWZN_js.getSoftEdgeFilterId(element.id)})`);
|
|
2336
2336
|
}
|
|
2337
2337
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2338
2338
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2341,13 +2341,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2341
2341
|
if (lineGlowCss) {
|
|
2342
2342
|
filterParts.push(lineGlowCss);
|
|
2343
2343
|
}
|
|
2344
|
-
const dagFilter =
|
|
2344
|
+
const dagFilter = chunkRZYOOWZN_js.getEffectDagFilter(ss, element.id);
|
|
2345
2345
|
if (dagFilter) {
|
|
2346
2346
|
filterParts.push(dagFilter);
|
|
2347
2347
|
}
|
|
2348
2348
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2349
2349
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2350
|
-
const patternFill =
|
|
2350
|
+
const patternFill = chunkRZYOOWZN_js.buildPatternFillCss(element.shapeStyle);
|
|
2351
2351
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2352
2352
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2353
2353
|
let reflectCss;
|
|
@@ -2359,7 +2359,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2359
2359
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2360
2360
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2361
2361
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2362
|
-
reflectCss =
|
|
2362
|
+
reflectCss = chunkRZYOOWZN_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2363
2363
|
}
|
|
2364
2364
|
}
|
|
2365
2365
|
const base = {
|
|
@@ -2405,9 +2405,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2405
2405
|
// path following the shape's geometry, because a CSS border can only take
|
|
2406
2406
|
// one colour. Keeping the border too would draw the parser's averaged
|
|
2407
2407
|
// solid underneath the gradient.
|
|
2408
|
-
borderWidth: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2408
|
+
borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunkRZYOOWZN_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2409
2409
|
borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
|
|
2410
|
-
borderStyle: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2410
|
+
borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunkRZYOOWZN_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2411
2411
|
strokeLinejoin: lineJoinCss,
|
|
2412
2412
|
strokeMiterlimit: miterLimitCss,
|
|
2413
2413
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2467,7 +2467,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2467
2467
|
borderWidth: 0,
|
|
2468
2468
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2469
2469
|
borderTopColor: resolvedStrokeColor,
|
|
2470
|
-
borderTopStyle:
|
|
2470
|
+
borderTopStyle: chunkRZYOOWZN_js.getCssBorderDashStyle(strokeDash)
|
|
2471
2471
|
};
|
|
2472
2472
|
}
|
|
2473
2473
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2481,13 +2481,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2481
2481
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2482
2482
|
const direct = element.shapeAdjustments?.[key];
|
|
2483
2483
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2484
|
-
return
|
|
2484
|
+
return chunkRZYOOWZN_js.clampUnitInterval(direct / 1e5);
|
|
2485
2485
|
}
|
|
2486
2486
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2487
2487
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2488
|
-
return
|
|
2488
|
+
return chunkRZYOOWZN_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2489
2489
|
}
|
|
2490
|
-
return
|
|
2490
|
+
return chunkRZYOOWZN_js.clampUnitInterval(fallback);
|
|
2491
2491
|
}
|
|
2492
2492
|
function getConnectorPathGeometry(element) {
|
|
2493
2493
|
const width = Math.max(element.width, 0);
|
|
@@ -2620,7 +2620,7 @@ function toHexByte(value) {
|
|
|
2620
2620
|
return clamped.toString(16).padStart(2, "0");
|
|
2621
2621
|
}
|
|
2622
2622
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2623
|
-
const channels =
|
|
2623
|
+
const channels = chunkRZYOOWZN_js.hexToRgbChannels(hex);
|
|
2624
2624
|
if (!channels) {
|
|
2625
2625
|
return hex;
|
|
2626
2626
|
}
|
|
@@ -2646,7 +2646,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2646
2646
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2647
2647
|
return {
|
|
2648
2648
|
d: subpath.d,
|
|
2649
|
-
fill: fillOff ? "none" :
|
|
2649
|
+
fill: fillOff ? "none" : chunkRZYOOWZN_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2650
2650
|
stroked: subpath.stroke !== false
|
|
2651
2651
|
};
|
|
2652
2652
|
});
|
|
@@ -2662,11 +2662,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2662
2662
|
strokePaint,
|
|
2663
2663
|
strokeWidth,
|
|
2664
2664
|
dashArray,
|
|
2665
|
-
lineCap:
|
|
2665
|
+
lineCap: chunkRZYOOWZN_js.svgLineCap(shapeStyle?.lineCap),
|
|
2666
2666
|
lineJoin,
|
|
2667
2667
|
miterLimit,
|
|
2668
|
-
offsets:
|
|
2669
|
-
widths:
|
|
2668
|
+
offsets: chunkRZYOOWZN_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2669
|
+
widths: chunkRZYOOWZN_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2670
2670
|
};
|
|
2671
2671
|
}
|
|
2672
2672
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2714,9 +2714,9 @@ function gradientDefs(gradient) {
|
|
|
2714
2714
|
}
|
|
2715
2715
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2716
2716
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2717
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2717
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkRZYOOWZN_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2718
2718
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2719
|
-
const gradientPaint = gradient ?
|
|
2719
|
+
const gradientPaint = gradient ? chunkRZYOOWZN_js.svgGradientFillRef(gradient) : void 0;
|
|
2720
2720
|
const nodes = [];
|
|
2721
2721
|
if (subpaths && needsPerSubpath) {
|
|
2722
2722
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
@@ -2748,7 +2748,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2748
2748
|
"path",
|
|
2749
2749
|
{
|
|
2750
2750
|
d: pathData,
|
|
2751
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2751
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkRZYOOWZN_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2752
2752
|
stroke: "none",
|
|
2753
2753
|
vectorEffect: "non-scaling-stroke"
|
|
2754
2754
|
},
|
|
@@ -2774,14 +2774,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2774
2774
|
);
|
|
2775
2775
|
}
|
|
2776
2776
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2777
|
-
if (!
|
|
2777
|
+
if (!chunkRZYOOWZN_js.hasShapeProperties(element)) {
|
|
2778
2778
|
return null;
|
|
2779
2779
|
}
|
|
2780
2780
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2781
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2782
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2783
|
-
const dashType =
|
|
2784
|
-
const dashArray =
|
|
2781
|
+
const fillPaint = animatesFill ? "inherit" : chunkRZYOOWZN_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2782
|
+
const strokePaint = animatesStroke ? "inherit" : chunkRZYOOWZN_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2783
|
+
const dashType = chunkRZYOOWZN_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2784
|
+
const dashArray = chunkRZYOOWZN_js.getSvgStrokeDasharray(
|
|
2785
2785
|
dashType,
|
|
2786
2786
|
Math.max(strokeWidth, 1),
|
|
2787
2787
|
element.shapeStyle?.customDashSegments
|
|
@@ -2862,21 +2862,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2862
2862
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2863
2863
|
// without this the shape fell back to the parser's representative solid
|
|
2864
2864
|
// and lost every fade (issue #132).
|
|
2865
|
-
|
|
2865
|
+
chunkRZYOOWZN_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2866
2866
|
);
|
|
2867
2867
|
}
|
|
2868
|
-
if (
|
|
2868
|
+
if (chunkRZYOOWZN_js.isCalloutShape(normalizedType)) {
|
|
2869
2869
|
const width = Math.max(element.width, 1);
|
|
2870
2870
|
const height = Math.max(element.height, 1);
|
|
2871
|
-
const geometry =
|
|
2871
|
+
const geometry = chunkRZYOOWZN_js.getCalloutLeaderLineGeometry(
|
|
2872
2872
|
normalizedType,
|
|
2873
2873
|
width,
|
|
2874
2874
|
height,
|
|
2875
2875
|
element.shapeAdjustments
|
|
2876
2876
|
);
|
|
2877
2877
|
if (geometry && geometry.points.length >= 2) {
|
|
2878
|
-
const leaderPath =
|
|
2879
|
-
const bounds =
|
|
2878
|
+
const leaderPath = chunkRZYOOWZN_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2879
|
+
const bounds = chunkRZYOOWZN_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2880
2880
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2881
2881
|
const offsetLeft = bounds.minX;
|
|
2882
2882
|
const offsetTop = bounds.minY;
|
|
@@ -2939,10 +2939,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2939
2939
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2940
2940
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2941
2941
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2942
|
-
const connectorLineCap =
|
|
2942
|
+
const connectorLineCap = chunkRZYOOWZN_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2943
2943
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2944
|
-
const offsets =
|
|
2945
|
-
const widths =
|
|
2944
|
+
const offsets = chunkRZYOOWZN_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2945
|
+
const widths = chunkRZYOOWZN_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2946
2946
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2947
2947
|
"svg",
|
|
2948
2948
|
{
|
|
@@ -3009,15 +3009,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3009
3009
|
}
|
|
3010
3010
|
const parsed = stops.map((gs) => {
|
|
3011
3011
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3012
|
-
const color =
|
|
3013
|
-
const opacity =
|
|
3014
|
-
return { pos, color:
|
|
3012
|
+
const color = chunkRZYOOWZN_js.parseDrawingColor(gs) ?? "#888888";
|
|
3013
|
+
const opacity = chunkRZYOOWZN_js.parseDrawingColorOpacity(gs);
|
|
3014
|
+
return { pos, color: chunkRZYOOWZN_js.colorWithOpacity(color, opacity) };
|
|
3015
3015
|
}).sort((a, b) => a.pos - b.pos);
|
|
3016
3016
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3017
3017
|
const lin = gradFill["a:lin"];
|
|
3018
3018
|
if (lin) {
|
|
3019
3019
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3020
|
-
const angleDeg = Math.round(
|
|
3020
|
+
const angleDeg = Math.round(chunkRZYOOWZN_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3021
3021
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3022
3022
|
}
|
|
3023
3023
|
const path = gradFill["a:path"];
|
|
@@ -3052,8 +3052,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3052
3052
|
if (!pattFill) {
|
|
3053
3053
|
return void 0;
|
|
3054
3054
|
}
|
|
3055
|
-
const fgColor =
|
|
3056
|
-
const bgColor =
|
|
3055
|
+
const fgColor = chunkRZYOOWZN_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3056
|
+
const bgColor = chunkRZYOOWZN_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3057
3057
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3058
3058
|
switch (preset) {
|
|
3059
3059
|
case "ltHorz":
|
|
@@ -3164,11 +3164,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3164
3164
|
const prstDash = ln["a:prstDash"];
|
|
3165
3165
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3166
3166
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3167
|
-
const color =
|
|
3167
|
+
const color = chunkRZYOOWZN_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3168
3168
|
if (color) {
|
|
3169
|
-
const opacity =
|
|
3169
|
+
const opacity = chunkRZYOOWZN_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3170
3170
|
const key = `${edge.prefix}`;
|
|
3171
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3171
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkRZYOOWZN_js.colorWithOpacity(color, opacity)}`;
|
|
3172
3172
|
}
|
|
3173
3173
|
}
|
|
3174
3174
|
return borderStyle;
|
|
@@ -3181,7 +3181,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3181
3181
|
const textShadowParts = [];
|
|
3182
3182
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3183
3183
|
if (outerShdw) {
|
|
3184
|
-
const shdwColor =
|
|
3184
|
+
const shdwColor = chunkRZYOOWZN_js.parseDrawingColor(outerShdw);
|
|
3185
3185
|
if (shdwColor) {
|
|
3186
3186
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3187
3187
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3199,7 +3199,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3199
3199
|
}
|
|
3200
3200
|
const glow = effectLst["a:glow"];
|
|
3201
3201
|
if (glow) {
|
|
3202
|
-
const glowColor =
|
|
3202
|
+
const glowColor = chunkRZYOOWZN_js.parseDrawingColor(glow);
|
|
3203
3203
|
if (glowColor) {
|
|
3204
3204
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3205
3205
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3278,10 +3278,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3278
3278
|
if (runProps?.["@_u"] !== void 0) {
|
|
3279
3279
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3280
3280
|
}
|
|
3281
|
-
const runColor =
|
|
3281
|
+
const runColor = chunkRZYOOWZN_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkRZYOOWZN_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3282
3282
|
if (runColor) {
|
|
3283
|
-
const opacity =
|
|
3284
|
-
cellStyle.color =
|
|
3283
|
+
const opacity = chunkRZYOOWZN_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3284
|
+
cellStyle.color = chunkRZYOOWZN_js.colorWithOpacity(runColor, opacity);
|
|
3285
3285
|
}
|
|
3286
3286
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3287
3287
|
if (fontFamily) {
|
|
@@ -3291,15 +3291,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3291
3291
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3292
3292
|
}
|
|
3293
3293
|
const cellProperties = cellXml["a:tcPr"];
|
|
3294
|
-
const cellFill =
|
|
3294
|
+
const cellFill = chunkRZYOOWZN_js.parseDrawingColor(
|
|
3295
3295
|
cellProperties?.["a:solidFill"],
|
|
3296
3296
|
schemeColorOverrides
|
|
3297
3297
|
);
|
|
3298
3298
|
if (cellFill) {
|
|
3299
|
-
const opacity =
|
|
3299
|
+
const opacity = chunkRZYOOWZN_js.parseDrawingColorOpacity(
|
|
3300
3300
|
cellProperties?.["a:solidFill"]
|
|
3301
3301
|
);
|
|
3302
|
-
cellStyle.backgroundColor =
|
|
3302
|
+
cellStyle.backgroundColor = chunkRZYOOWZN_js.colorWithOpacity(cellFill, opacity);
|
|
3303
3303
|
} else {
|
|
3304
3304
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3305
3305
|
if (gradCss) {
|
|
@@ -3314,16 +3314,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3314
3314
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3315
3315
|
Object.assign(cellStyle, edgeBorders);
|
|
3316
3316
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3317
|
-
const borderColor =
|
|
3317
|
+
const borderColor = chunkRZYOOWZN_js.parseDrawingColor(
|
|
3318
3318
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3319
3319
|
schemeColorOverrides
|
|
3320
|
-
) ||
|
|
3320
|
+
) || chunkRZYOOWZN_js.parseDrawingColor(
|
|
3321
3321
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3322
3322
|
schemeColorOverrides
|
|
3323
|
-
) ||
|
|
3323
|
+
) || chunkRZYOOWZN_js.parseDrawingColor(
|
|
3324
3324
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3325
3325
|
schemeColorOverrides
|
|
3326
|
-
) ||
|
|
3326
|
+
) || chunkRZYOOWZN_js.parseDrawingColor(
|
|
3327
3327
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3328
3328
|
schemeColorOverrides
|
|
3329
3329
|
);
|
|
@@ -3402,10 +3402,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3402
3402
|
}
|
|
3403
3403
|
let color = base;
|
|
3404
3404
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3405
|
-
color =
|
|
3405
|
+
color = chunkRZYOOWZN_js.tintColor2(color, fill.tint / 1e5);
|
|
3406
3406
|
}
|
|
3407
3407
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3408
|
-
color =
|
|
3408
|
+
color = chunkRZYOOWZN_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3409
3409
|
}
|
|
3410
3410
|
return color;
|
|
3411
3411
|
}
|
|
@@ -3430,7 +3430,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3430
3430
|
style.fontFamily = text.fontFace;
|
|
3431
3431
|
applied = true;
|
|
3432
3432
|
} else {
|
|
3433
|
-
const refFont =
|
|
3433
|
+
const refFont = chunkRZYOOWZN_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3434
3434
|
if (refFont) {
|
|
3435
3435
|
style.fontFamily = refFont;
|
|
3436
3436
|
applied = true;
|
|
@@ -3441,10 +3441,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3441
3441
|
if (base) {
|
|
3442
3442
|
let color = base;
|
|
3443
3443
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3444
|
-
color =
|
|
3444
|
+
color = chunkRZYOOWZN_js.tintColor2(color, text.fontTint / 1e5);
|
|
3445
3445
|
}
|
|
3446
3446
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3447
|
-
color =
|
|
3447
|
+
color = chunkRZYOOWZN_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3448
3448
|
}
|
|
3449
3449
|
style.color = color;
|
|
3450
3450
|
applied = true;
|
|
@@ -3533,9 +3533,12 @@ function getTableCellBandStyle(element, rowIndex, cellIndex, rowCount, columnCou
|
|
|
3533
3533
|
}
|
|
3534
3534
|
if (td.firstRowHeader && rowIndex === 0) {
|
|
3535
3535
|
style.fontWeight = 700;
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3536
|
+
if (styleEntry?.firstRowFill?.noFill) {
|
|
3537
|
+
style.backgroundColor = "transparent";
|
|
3538
|
+
} else {
|
|
3539
|
+
style.backgroundColor = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.85)");
|
|
3540
|
+
style.color = "#ffffff";
|
|
3541
|
+
}
|
|
3539
3542
|
applyTableStyleText(styleEntry?.firstRowText, colorScheme, style, fontScheme);
|
|
3540
3543
|
applied = true;
|
|
3541
3544
|
}
|
|
@@ -3633,7 +3636,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3633
3636
|
};
|
|
3634
3637
|
}
|
|
3635
3638
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3636
|
-
return
|
|
3639
|
+
return chunkRZYOOWZN_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3637
3640
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3638
3641
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3639
3642
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3781,9 +3784,9 @@ function cellStyleToCss(style) {
|
|
|
3781
3784
|
if (style.gradientFillCss) {
|
|
3782
3785
|
css.background = style.gradientFillCss;
|
|
3783
3786
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3784
|
-
const fg =
|
|
3785
|
-
const bg =
|
|
3786
|
-
const svgPattern =
|
|
3787
|
+
const fg = chunkRZYOOWZN_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3788
|
+
const bg = chunkRZYOOWZN_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3789
|
+
const svgPattern = chunkRZYOOWZN_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3787
3790
|
if (svgPattern) {
|
|
3788
3791
|
const encoded = encodeURIComponent(svgPattern);
|
|
3789
3792
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3859,7 +3862,7 @@ function cellStyleToCss(style) {
|
|
|
3859
3862
|
if (edge.width || edge.color) {
|
|
3860
3863
|
const w = edge.width ?? 1;
|
|
3861
3864
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3862
|
-
const s =
|
|
3865
|
+
const s = chunkRZYOOWZN_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3863
3866
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3864
3867
|
}
|
|
3865
3868
|
}
|
|
@@ -3890,7 +3893,7 @@ function cellStyleToCss(style) {
|
|
|
3890
3893
|
css.textShadow = textShadowParts.join(", ");
|
|
3891
3894
|
}
|
|
3892
3895
|
if (style.cell3D) {
|
|
3893
|
-
Object.assign(css,
|
|
3896
|
+
Object.assign(css, chunkRZYOOWZN_js.cell3DBevelCss(style.cell3D));
|
|
3894
3897
|
}
|
|
3895
3898
|
return css;
|
|
3896
3899
|
}
|
|
@@ -3904,7 +3907,7 @@ function TableResizeOverlay({
|
|
|
3904
3907
|
const containerRef = React6.useRef(null);
|
|
3905
3908
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3906
3909
|
const dragRef = React6.useRef(null);
|
|
3907
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3910
|
+
const colBoundaries = React6.useMemo(() => chunkRZYOOWZN_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3908
3911
|
const measureRows = React6.useCallback(() => {
|
|
3909
3912
|
const container = containerRef.current;
|
|
3910
3913
|
if (!container) {
|
|
@@ -3951,11 +3954,11 @@ function TableResizeOverlay({
|
|
|
3951
3954
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3952
3955
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3953
3956
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3954
|
-
onResizeColumns(
|
|
3957
|
+
onResizeColumns(chunkRZYOOWZN_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3955
3958
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3956
3959
|
const deltaY = e.clientY - drag.startPos;
|
|
3957
|
-
const newHeight =
|
|
3958
|
-
drag.initialRowHeight ??
|
|
3960
|
+
const newHeight = chunkRZYOOWZN_js.computeResizedRowHeight(
|
|
3961
|
+
drag.initialRowHeight ?? chunkRZYOOWZN_js.DEFAULT_ROW_HEIGHT,
|
|
3959
3962
|
deltaY
|
|
3960
3963
|
);
|
|
3961
3964
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3993,7 +3996,7 @@ function TableResizeOverlay({
|
|
|
3993
3996
|
e.stopPropagation();
|
|
3994
3997
|
const table = containerRef.current?.querySelector("table");
|
|
3995
3998
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3996
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3999
|
+
const actualHeight = tr?.offsetHeight ?? chunkRZYOOWZN_js.DEFAULT_ROW_HEIGHT;
|
|
3997
4000
|
document.body.style.cursor = "row-resize";
|
|
3998
4001
|
document.body.style.userSelect = "none";
|
|
3999
4002
|
dragRef.current = {
|
|
@@ -4041,7 +4044,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4041
4044
|
}
|
|
4042
4045
|
const first = selectedCell.selectedCells[0];
|
|
4043
4046
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4044
|
-
return
|
|
4047
|
+
return chunkRZYOOWZN_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4045
4048
|
})();
|
|
4046
4049
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4047
4050
|
TableResizeOverlay,
|
|
@@ -4061,7 +4064,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4061
4064
|
"table",
|
|
4062
4065
|
{
|
|
4063
4066
|
className: "w-full h-full border-collapse table-fixed",
|
|
4064
|
-
style: { fontFamily:
|
|
4067
|
+
style: { fontFamily: chunkRZYOOWZN_js.DEFAULT_FONT_FAMILY },
|
|
4065
4068
|
children: [
|
|
4066
4069
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4067
4070
|
"col",
|
|
@@ -4079,7 +4082,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4079
4082
|
return null;
|
|
4080
4083
|
}
|
|
4081
4084
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4082
|
-
const isInMultiSelection =
|
|
4085
|
+
const isInMultiSelection = chunkRZYOOWZN_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4083
4086
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4084
4087
|
const diag = getCellDiagonalBorders2(
|
|
4085
4088
|
cell.style,
|
|
@@ -4109,7 +4112,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4109
4112
|
}
|
|
4110
4113
|
event.stopPropagation();
|
|
4111
4114
|
if (event.shiftKey && selectedCell) {
|
|
4112
|
-
const rect =
|
|
4115
|
+
const rect = chunkRZYOOWZN_js.computeSelectionRect(
|
|
4113
4116
|
selectedCell.rowIndex,
|
|
4114
4117
|
selectedCell.columnIndex,
|
|
4115
4118
|
rowIndex,
|
|
@@ -4119,7 +4122,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4119
4122
|
options?.onSelectCell?.({
|
|
4120
4123
|
rowIndex: selectedCell.rowIndex,
|
|
4121
4124
|
columnIndex: selectedCell.columnIndex,
|
|
4122
|
-
selectedCells:
|
|
4125
|
+
selectedCells: chunkRZYOOWZN_js.rectToCells(rect)
|
|
4123
4126
|
});
|
|
4124
4127
|
} else {
|
|
4125
4128
|
options?.onSelectCell?.({
|
|
@@ -4198,7 +4201,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4198
4201
|
}
|
|
4199
4202
|
const first = selectedCell.selectedCells[0];
|
|
4200
4203
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4201
|
-
return
|
|
4204
|
+
return chunkRZYOOWZN_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4202
4205
|
})();
|
|
4203
4206
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4204
4207
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4219,7 +4222,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4219
4222
|
"table",
|
|
4220
4223
|
{
|
|
4221
4224
|
className: "w-full h-full border-collapse table-fixed",
|
|
4222
|
-
style: { fontFamily:
|
|
4225
|
+
style: { fontFamily: chunkRZYOOWZN_js.DEFAULT_FONT_FAMILY },
|
|
4223
4226
|
children: [
|
|
4224
4227
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4225
4228
|
"col",
|
|
@@ -4280,7 +4283,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4280
4283
|
"border px-1 py-0.5 align-top",
|
|
4281
4284
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4282
4285
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4283
|
-
|
|
4286
|
+
chunkRZYOOWZN_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4284
4287
|
),
|
|
4285
4288
|
colSpan,
|
|
4286
4289
|
rowSpan: rSpan,
|
|
@@ -4291,7 +4294,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4291
4294
|
}
|
|
4292
4295
|
event.stopPropagation();
|
|
4293
4296
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4294
|
-
const rect =
|
|
4297
|
+
const rect = chunkRZYOOWZN_js.computeSelectionRect(
|
|
4295
4298
|
selectedCell.rowIndex,
|
|
4296
4299
|
selectedCell.columnIndex,
|
|
4297
4300
|
rowIndex,
|
|
@@ -4301,7 +4304,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4301
4304
|
options?.onSelectCell?.({
|
|
4302
4305
|
rowIndex: selectedCell.rowIndex,
|
|
4303
4306
|
columnIndex: selectedCell.columnIndex,
|
|
4304
|
-
selectedCells:
|
|
4307
|
+
selectedCells: chunkRZYOOWZN_js.rectToCells(rect)
|
|
4305
4308
|
});
|
|
4306
4309
|
} else {
|
|
4307
4310
|
options?.onSelectCell?.({
|
|
@@ -4358,24 +4361,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4358
4361
|
}
|
|
4359
4362
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4360
4363
|
function partAttrs(part) {
|
|
4361
|
-
return part ?
|
|
4364
|
+
return part ? chunkRZYOOWZN_js.chartPartToAttrs(part) : void 0;
|
|
4362
4365
|
}
|
|
4363
4366
|
function resolveReactPalette(chartData) {
|
|
4364
4367
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4365
4368
|
return chartData.colorPalette;
|
|
4366
4369
|
}
|
|
4367
|
-
return [...
|
|
4370
|
+
return [...chunkRZYOOWZN_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4368
4371
|
}
|
|
4369
4372
|
function buildReactChartViewModel(element) {
|
|
4370
4373
|
if (element.type !== "chart" || !element.chartData) {
|
|
4371
|
-
return
|
|
4374
|
+
return chunkRZYOOWZN_js.buildChartViewModel(element);
|
|
4372
4375
|
}
|
|
4373
4376
|
const palette = resolveReactPalette(element.chartData);
|
|
4374
4377
|
const themedElement = {
|
|
4375
4378
|
...element,
|
|
4376
4379
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4377
4380
|
};
|
|
4378
|
-
return
|
|
4381
|
+
return chunkRZYOOWZN_js.buildChartViewModel(themedElement);
|
|
4379
4382
|
}
|
|
4380
4383
|
function renderPrimitive(prim, key) {
|
|
4381
4384
|
switch (prim.kind) {
|
|
@@ -4764,7 +4767,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4764
4767
|
const unmatchedRows = [];
|
|
4765
4768
|
categories.forEach((cat, i) => {
|
|
4766
4769
|
const value = values[i] ?? 0;
|
|
4767
|
-
const code =
|
|
4770
|
+
const code = chunkRZYOOWZN_js.resolveRegionCode(cat);
|
|
4768
4771
|
if (code) {
|
|
4769
4772
|
regionValueMap.set(code, { value, label: cat });
|
|
4770
4773
|
} else {
|
|
@@ -4802,8 +4805,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4802
4805
|
let fill = "#e2e8f0";
|
|
4803
4806
|
let dataLabel = null;
|
|
4804
4807
|
if (entry) {
|
|
4805
|
-
const t =
|
|
4806
|
-
fill =
|
|
4808
|
+
const t = chunkRZYOOWZN_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4809
|
+
fill = chunkRZYOOWZN_js.sequentialColorScale(t);
|
|
4807
4810
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4808
4811
|
"text",
|
|
4809
4812
|
{
|
|
@@ -4814,7 +4817,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4814
4817
|
fontWeight: 600,
|
|
4815
4818
|
fill: "#1e293b",
|
|
4816
4819
|
style: { pointerEvents: "none" },
|
|
4817
|
-
children:
|
|
4820
|
+
children: chunkRZYOOWZN_js.formatAxisValue(entry.value)
|
|
4818
4821
|
},
|
|
4819
4822
|
`${element.id}-map-dl-${region.code}`
|
|
4820
4823
|
);
|
|
@@ -4832,7 +4835,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4832
4835
|
opacity: 0.9,
|
|
4833
4836
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4834
4837
|
region.name,
|
|
4835
|
-
entry ? `: ${
|
|
4838
|
+
entry ? `: ${chunkRZYOOWZN_js.formatAxisValue(entry.value)}` : ""
|
|
4836
4839
|
] })
|
|
4837
4840
|
}
|
|
4838
4841
|
),
|
|
@@ -4870,7 +4873,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4870
4873
|
fontSize: 7,
|
|
4871
4874
|
fill: "#64748b",
|
|
4872
4875
|
textAnchor: "middle",
|
|
4873
|
-
children:
|
|
4876
|
+
children: chunkRZYOOWZN_js.formatAxisValue(minVal)
|
|
4874
4877
|
},
|
|
4875
4878
|
`${element.id}-map-legend-min`
|
|
4876
4879
|
),
|
|
@@ -4882,7 +4885,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4882
4885
|
fontSize: 7,
|
|
4883
4886
|
fill: "#64748b",
|
|
4884
4887
|
textAnchor: "middle",
|
|
4885
|
-
children:
|
|
4888
|
+
children: chunkRZYOOWZN_js.formatAxisValue(maxVal)
|
|
4886
4889
|
},
|
|
4887
4890
|
`${element.id}-map-legend-max`
|
|
4888
4891
|
)
|
|
@@ -4948,7 +4951,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4948
4951
|
y,
|
|
4949
4952
|
fontSize,
|
|
4950
4953
|
fill: "#475569",
|
|
4951
|
-
children:
|
|
4954
|
+
children: chunkRZYOOWZN_js.formatAxisValue(row.value)
|
|
4952
4955
|
},
|
|
4953
4956
|
`${element.id}-map-ft-val-${i}`
|
|
4954
4957
|
)
|
|
@@ -5019,7 +5022,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5019
5022
|
|
|
5020
5023
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5021
5024
|
function sColor(series, idx) {
|
|
5022
|
-
return
|
|
5025
|
+
return chunkRZYOOWZN_js.seriesColor(series, idx);
|
|
5023
5026
|
}
|
|
5024
5027
|
function valToY(val, range, topY, bottomY) {
|
|
5025
5028
|
const usable = bottomY - topY;
|
|
@@ -5558,7 +5561,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5558
5561
|
width: 10,
|
|
5559
5562
|
height: 10,
|
|
5560
5563
|
rx: 2,
|
|
5561
|
-
fill:
|
|
5564
|
+
fill: chunkRZYOOWZN_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5562
5565
|
},
|
|
5563
5566
|
`${id}-leg-r-${i}`
|
|
5564
5567
|
)
|
|
@@ -5582,7 +5585,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5582
5585
|
width: 10,
|
|
5583
5586
|
height: 10,
|
|
5584
5587
|
rx: 2,
|
|
5585
|
-
fill:
|
|
5588
|
+
fill: chunkRZYOOWZN_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5586
5589
|
}
|
|
5587
5590
|
),
|
|
5588
5591
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5595,9 +5598,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5595
5598
|
}
|
|
5596
5599
|
const lines = [];
|
|
5597
5600
|
if (range.logScale && range.logBase) {
|
|
5598
|
-
const ticks =
|
|
5601
|
+
const ticks = chunkRZYOOWZN_js.generateLogTicks(range);
|
|
5599
5602
|
ticks.forEach((tickVal, i) => {
|
|
5600
|
-
const y =
|
|
5603
|
+
const y = chunkRZYOOWZN_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5601
5604
|
lines.push(
|
|
5602
5605
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5603
5606
|
"line",
|
|
@@ -5618,7 +5621,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5618
5621
|
const steps = 4;
|
|
5619
5622
|
for (let i = 0; i <= steps; i++) {
|
|
5620
5623
|
const val = range.min + range.span * i / steps;
|
|
5621
|
-
const y =
|
|
5624
|
+
const y = chunkRZYOOWZN_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5622
5625
|
lines.push(
|
|
5623
5626
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5624
5627
|
"line",
|
|
@@ -5642,9 +5645,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5642
5645
|
const labels = [];
|
|
5643
5646
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5644
5647
|
if (range.logScale && range.logBase) {
|
|
5645
|
-
const ticks =
|
|
5648
|
+
const ticks = chunkRZYOOWZN_js.generateLogTicks(range);
|
|
5646
5649
|
ticks.forEach((tickVal, i) => {
|
|
5647
|
-
const y =
|
|
5650
|
+
const y = chunkRZYOOWZN_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5648
5651
|
labels.push(
|
|
5649
5652
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5650
5653
|
"text",
|
|
@@ -5654,7 +5657,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5654
5657
|
textAnchor: "end",
|
|
5655
5658
|
fontSize: 8,
|
|
5656
5659
|
fill: "#64748b",
|
|
5657
|
-
children: hasDisplayUnits ?
|
|
5660
|
+
children: hasDisplayUnits ? chunkRZYOOWZN_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkRZYOOWZN_js.formatAxisValue(tickVal)
|
|
5658
5661
|
},
|
|
5659
5662
|
`${id}-vaxis-log-${i}`
|
|
5660
5663
|
)
|
|
@@ -5664,7 +5667,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5664
5667
|
const steps = 4;
|
|
5665
5668
|
for (let i = 0; i <= steps; i++) {
|
|
5666
5669
|
const val = range.min + range.span * i / steps;
|
|
5667
|
-
const y =
|
|
5670
|
+
const y = chunkRZYOOWZN_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5668
5671
|
labels.push(
|
|
5669
5672
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5670
5673
|
"text",
|
|
@@ -5674,7 +5677,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5674
5677
|
textAnchor: "end",
|
|
5675
5678
|
fontSize: 8,
|
|
5676
5679
|
fill: "#64748b",
|
|
5677
|
-
children: hasDisplayUnits ?
|
|
5680
|
+
children: hasDisplayUnits ? chunkRZYOOWZN_js.formatAxisValueWithUnits(val, axisFormatting) : chunkRZYOOWZN_js.formatAxisValue(val)
|
|
5678
5681
|
},
|
|
5679
5682
|
`${id}-vaxis-${i}`
|
|
5680
5683
|
)
|
|
@@ -5682,7 +5685,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5682
5685
|
}
|
|
5683
5686
|
}
|
|
5684
5687
|
if (hasDisplayUnits) {
|
|
5685
|
-
const unitLabel =
|
|
5688
|
+
const unitLabel = chunkRZYOOWZN_js.getDisplayUnitLabel(
|
|
5686
5689
|
axisFormatting.displayUnits,
|
|
5687
5690
|
axisFormatting.displayUnitsLabel
|
|
5688
5691
|
);
|
|
@@ -5757,7 +5760,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5757
5760
|
if (range.min >= 0) {
|
|
5758
5761
|
return null;
|
|
5759
5762
|
}
|
|
5760
|
-
const y =
|
|
5763
|
+
const y = chunkRZYOOWZN_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5761
5764
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5762
5765
|
"line",
|
|
5763
5766
|
{
|
|
@@ -5781,7 +5784,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5781
5784
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5782
5785
|
for (let i = 0; i <= steps; i++) {
|
|
5783
5786
|
const val = range.min + range.span * i / steps;
|
|
5784
|
-
const y =
|
|
5787
|
+
const y = chunkRZYOOWZN_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5785
5788
|
labels.push(
|
|
5786
5789
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5787
5790
|
"text",
|
|
@@ -5793,7 +5796,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5793
5796
|
fontFamily,
|
|
5794
5797
|
fontWeight,
|
|
5795
5798
|
fill: fontColor,
|
|
5796
|
-
children: hasDisplayUnits ?
|
|
5799
|
+
children: hasDisplayUnits ? chunkRZYOOWZN_js.formatAxisValueWithUnits(val, axisFormatting) : chunkRZYOOWZN_js.formatAxisValue(val)
|
|
5797
5800
|
},
|
|
5798
5801
|
`${id}-sec-vaxis-${i}`
|
|
5799
5802
|
)
|
|
@@ -5817,7 +5820,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5817
5820
|
);
|
|
5818
5821
|
}
|
|
5819
5822
|
if (hasDisplayUnits) {
|
|
5820
|
-
const unitLabel =
|
|
5823
|
+
const unitLabel = chunkRZYOOWZN_js.getDisplayUnitLabel(
|
|
5821
5824
|
axisFormatting.displayUnits,
|
|
5822
5825
|
axisFormatting.displayUnitsLabel
|
|
5823
5826
|
);
|
|
@@ -5848,7 +5851,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5848
5851
|
const ticks = [];
|
|
5849
5852
|
for (let i = 0; i <= steps; i++) {
|
|
5850
5853
|
const val = range.min + range.span * i / steps;
|
|
5851
|
-
const y =
|
|
5854
|
+
const y = chunkRZYOOWZN_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5852
5855
|
ticks.push(
|
|
5853
5856
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5854
5857
|
"line",
|
|
@@ -5875,7 +5878,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5875
5878
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5876
5879
|
for (let i = 0; i <= steps; i++) {
|
|
5877
5880
|
const val = range.min + range.span * i / steps;
|
|
5878
|
-
const y =
|
|
5881
|
+
const y = chunkRZYOOWZN_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5879
5882
|
lines.push(
|
|
5880
5883
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5881
5884
|
"line",
|
|
@@ -6037,7 +6040,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6037
6040
|
width: 8,
|
|
6038
6041
|
height: 8,
|
|
6039
6042
|
borderRadius: 2,
|
|
6040
|
-
backgroundColor:
|
|
6043
|
+
backgroundColor: chunkRZYOOWZN_js.seriesColor(
|
|
6041
6044
|
s,
|
|
6042
6045
|
si,
|
|
6043
6046
|
chartData.style?.styleId,
|
|
@@ -6075,10 +6078,10 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6075
6078
|
}
|
|
6076
6079
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6077
6080
|
const style = chartData.style;
|
|
6078
|
-
const areaFill =
|
|
6081
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6079
6082
|
const legendPos = style?.legendPosition || "b";
|
|
6080
|
-
const range =
|
|
6081
|
-
const layout =
|
|
6083
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6084
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6082
6085
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6083
6086
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6084
6087
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6099,10 +6102,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6099
6102
|
const close = closeSeries.values[ci] ?? high;
|
|
6100
6103
|
const isUp = close >= open;
|
|
6101
6104
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6102
|
-
const highY =
|
|
6103
|
-
const lowY =
|
|
6104
|
-
const openY =
|
|
6105
|
-
const closeY =
|
|
6105
|
+
const highY = chunkRZYOOWZN_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6106
|
+
const lowY = chunkRZYOOWZN_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6107
|
+
const openY = chunkRZYOOWZN_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6108
|
+
const closeY = chunkRZYOOWZN_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6106
6109
|
elements.push(
|
|
6107
6110
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6108
6111
|
"line",
|
|
@@ -6145,7 +6148,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6145
6148
|
textAnchor: "middle",
|
|
6146
6149
|
fontSize: 7,
|
|
6147
6150
|
fill: "#334155",
|
|
6148
|
-
children:
|
|
6151
|
+
children: chunkRZYOOWZN_js.formatAxisValue(close)
|
|
6149
6152
|
},
|
|
6150
6153
|
`${element.id}-stock-dl-${ci}`
|
|
6151
6154
|
)
|
|
@@ -6187,7 +6190,7 @@ function FailedToLoad() {
|
|
|
6187
6190
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6188
6191
|
async () => {
|
|
6189
6192
|
try {
|
|
6190
|
-
return await import('./SurfaceChart3DScene-
|
|
6193
|
+
return await import('./SurfaceChart3DScene-GRM24VBC.js');
|
|
6191
6194
|
} catch {
|
|
6192
6195
|
return { default: FailedToLoad };
|
|
6193
6196
|
}
|
|
@@ -6211,7 +6214,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6211
6214
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6212
6215
|
const rows = chartData.series.length;
|
|
6213
6216
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6214
|
-
const range =
|
|
6217
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6215
6218
|
const heightMap = new Float32Array(rows * cols);
|
|
6216
6219
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6217
6220
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6330,10 +6333,10 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6330
6333
|
}
|
|
6331
6334
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6332
6335
|
const style = chartData.style;
|
|
6333
|
-
const areaFill =
|
|
6336
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6334
6337
|
const legendPos = style?.legendPosition || "b";
|
|
6335
|
-
const layout =
|
|
6336
|
-
const range =
|
|
6338
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6339
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6337
6340
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6338
6341
|
const seriesCount = chartData.series.length;
|
|
6339
6342
|
const cols = catCount - 1;
|
|
@@ -6422,10 +6425,10 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6422
6425
|
}
|
|
6423
6426
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6424
6427
|
const style = chartData.style;
|
|
6425
|
-
const areaFill =
|
|
6428
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6426
6429
|
const legendPos = style?.legendPosition || "b";
|
|
6427
|
-
const layout =
|
|
6428
|
-
const range =
|
|
6430
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6431
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6429
6432
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6430
6433
|
const seriesCount = chartData.series.length;
|
|
6431
6434
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6487,9 +6490,9 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6487
6490
|
}
|
|
6488
6491
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6489
6492
|
const style = chartData.style;
|
|
6490
|
-
const areaFill =
|
|
6493
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6491
6494
|
const legendPos = style?.legendPosition || "b";
|
|
6492
|
-
const layout =
|
|
6495
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6493
6496
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6494
6497
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6495
6498
|
const rects = [];
|
|
@@ -6512,7 +6515,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6512
6515
|
y: curY,
|
|
6513
6516
|
width: Math.max(w - 1, 1),
|
|
6514
6517
|
height: Math.max(h - 1, 1),
|
|
6515
|
-
fill:
|
|
6518
|
+
fill: chunkRZYOOWZN_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6516
6519
|
rx: 2,
|
|
6517
6520
|
opacity: 0.85
|
|
6518
6521
|
},
|
|
@@ -6563,11 +6566,11 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6563
6566
|
}
|
|
6564
6567
|
function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
6565
6568
|
const style = chartData.style;
|
|
6566
|
-
const areaFill =
|
|
6569
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6567
6570
|
const legendPos = style?.legendPosition || "b";
|
|
6568
6571
|
const values = chartData.series[0]?.values ?? [];
|
|
6569
|
-
const range =
|
|
6570
|
-
const layout =
|
|
6572
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6573
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6571
6574
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6572
6575
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6573
6576
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6578,8 +6581,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6578
6581
|
const isLast = i === values.length - 1;
|
|
6579
6582
|
const startVal = isLast ? 0 : runningTotal;
|
|
6580
6583
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6581
|
-
const barStartY =
|
|
6582
|
-
const barEndY =
|
|
6584
|
+
const barStartY = chunkRZYOOWZN_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6585
|
+
const barEndY = chunkRZYOOWZN_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6583
6586
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6584
6587
|
const y = Math.min(barStartY, barEndY);
|
|
6585
6588
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6608,7 +6611,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6608
6611
|
textAnchor: "middle",
|
|
6609
6612
|
fontSize: 7,
|
|
6610
6613
|
fill: "#334155",
|
|
6611
|
-
children:
|
|
6614
|
+
children: chunkRZYOOWZN_js.formatAxisValue(isLast ? endVal : val)
|
|
6612
6615
|
},
|
|
6613
6616
|
`${element.id}-wf-dl-${i}`
|
|
6614
6617
|
)
|
|
@@ -6655,20 +6658,20 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6655
6658
|
}
|
|
6656
6659
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6657
6660
|
const style = chartData.style;
|
|
6658
|
-
const areaFill =
|
|
6661
|
+
const areaFill = chunkRZYOOWZN_js.chartAreaFill(chartData);
|
|
6659
6662
|
const legendPos = style?.legendPosition || "b";
|
|
6660
|
-
const layoutOpts =
|
|
6663
|
+
const layoutOpts = chunkRZYOOWZN_js.computeLayoutOptions(
|
|
6661
6664
|
chartData.axes,
|
|
6662
6665
|
chartData.dataTable,
|
|
6663
6666
|
chartData.series.length
|
|
6664
6667
|
);
|
|
6665
|
-
const layout =
|
|
6666
|
-
const { primary, secondary } =
|
|
6668
|
+
const layout = chunkRZYOOWZN_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6669
|
+
const { primary, secondary } = chunkRZYOOWZN_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6667
6670
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6668
6671
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6669
|
-
const range =
|
|
6670
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6671
|
-
const secondaryAxisFmt =
|
|
6672
|
+
const range = chunkRZYOOWZN_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6673
|
+
const secondaryRange = secondarySeries.length > 0 ? chunkRZYOOWZN_js.computeValueRange(secondarySeries) : void 0;
|
|
6674
|
+
const secondaryAxisFmt = chunkRZYOOWZN_js.getSecondaryValueAxis(chartData.axes);
|
|
6672
6675
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6673
6676
|
const barSeriesCount = 1;
|
|
6674
6677
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6684,8 +6687,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6684
6687
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6685
6688
|
barSeries.values.forEach((val, vi) => {
|
|
6686
6689
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6687
|
-
const zeroY =
|
|
6688
|
-
const valY =
|
|
6690
|
+
const zeroY = chunkRZYOOWZN_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6691
|
+
const valY = chunkRZYOOWZN_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6689
6692
|
const y = Math.min(zeroY, valY);
|
|
6690
6693
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6691
6694
|
barElements.push(
|
|
@@ -6696,7 +6699,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6696
6699
|
y,
|
|
6697
6700
|
width: barWidth,
|
|
6698
6701
|
height: h,
|
|
6699
|
-
fill:
|
|
6702
|
+
fill: chunkRZYOOWZN_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6700
6703
|
rx: 1
|
|
6701
6704
|
},
|
|
6702
6705
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6712,7 +6715,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6712
6715
|
textAnchor: "middle",
|
|
6713
6716
|
fontSize: 7,
|
|
6714
6717
|
fill: "#334155",
|
|
6715
|
-
children:
|
|
6718
|
+
children: chunkRZYOOWZN_js.formatAxisValue(val)
|
|
6716
6719
|
},
|
|
6717
6720
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6718
6721
|
)
|
|
@@ -6729,10 +6732,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6729
6732
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6730
6733
|
const points = series.values.map((val, vi) => {
|
|
6731
6734
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6732
|
-
const y =
|
|
6735
|
+
const y = chunkRZYOOWZN_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6733
6736
|
return { x, y, val };
|
|
6734
6737
|
});
|
|
6735
|
-
const c =
|
|
6738
|
+
const c = chunkRZYOOWZN_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6736
6739
|
lineElements.push(
|
|
6737
6740
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6738
6741
|
"polyline",
|
|
@@ -6759,7 +6762,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6759
6762
|
textAnchor: "middle",
|
|
6760
6763
|
fontSize: 7,
|
|
6761
6764
|
fill: "#334155",
|
|
6762
|
-
children:
|
|
6765
|
+
children: chunkRZYOOWZN_js.formatAxisValue(p.val)
|
|
6763
6766
|
},
|
|
6764
6767
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6765
6768
|
)
|
|
@@ -6998,6 +7001,7 @@ function layoutToCategory(layout) {
|
|
|
6998
7001
|
};
|
|
6999
7002
|
return map[layout] ?? "list";
|
|
7000
7003
|
}
|
|
7004
|
+
var LABEL_WIDTH_FRACTION = 0.82;
|
|
7001
7005
|
function smartArtNodeGroupProps(nodeId, shadow, label2) {
|
|
7002
7006
|
const props = {
|
|
7003
7007
|
"data-smartart-node-id": nodeId,
|
|
@@ -7048,9 +7052,12 @@ function SmartArtNodeText({
|
|
|
7048
7052
|
fontWeight,
|
|
7049
7053
|
fontStyle,
|
|
7050
7054
|
className,
|
|
7051
|
-
anchor = "middle"
|
|
7055
|
+
anchor = "middle",
|
|
7056
|
+
maxWidth
|
|
7052
7057
|
}) {
|
|
7053
|
-
const lines =
|
|
7058
|
+
const lines = maxWidth !== void 0 ? chunkRZYOOWZN_js.centeredSvgTextLines(text, fontSize, { maxWidth: maxWidth * LABEL_WIDTH_FRACTION }).map(
|
|
7059
|
+
(line) => line.text
|
|
7060
|
+
) : text.split("\n").filter((l) => l.length > 0);
|
|
7054
7061
|
const lineHeight = fontSize * 1.2;
|
|
7055
7062
|
let startY;
|
|
7056
7063
|
let dominantBaseline;
|
|
@@ -7905,14 +7912,14 @@ function buildNotesPdf(pages) {
|
|
|
7905
7912
|
notes: page.notes,
|
|
7906
7913
|
slideNumber: page.slideNumber
|
|
7907
7914
|
}));
|
|
7908
|
-
const bytes =
|
|
7915
|
+
const bytes = chunkRZYOOWZN_js.buildNotesPdfBytes(images, meta);
|
|
7909
7916
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7910
7917
|
return URL.createObjectURL(blob);
|
|
7911
7918
|
}
|
|
7912
7919
|
|
|
7913
7920
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
7914
7921
|
function buildPdfFromImageData(images) {
|
|
7915
|
-
const bytes =
|
|
7922
|
+
const bytes = chunkRZYOOWZN_js.buildSlidesPdfBytes(images);
|
|
7916
7923
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7917
7924
|
return URL.createObjectURL(blob);
|
|
7918
7925
|
}
|
|
@@ -7921,7 +7928,7 @@ function buildPdfFromImageData(images) {
|
|
|
7921
7928
|
var activePreview = null;
|
|
7922
7929
|
function startPreviewAnimation(elementId, preset, options) {
|
|
7923
7930
|
stopPreviewAnimation();
|
|
7924
|
-
const descriptor =
|
|
7931
|
+
const descriptor = chunkRZYOOWZN_js.buildPreviewAnimation(preset, options);
|
|
7925
7932
|
if (!descriptor) {
|
|
7926
7933
|
return;
|
|
7927
7934
|
}
|
|
@@ -7934,7 +7941,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
7934
7941
|
return;
|
|
7935
7942
|
}
|
|
7936
7943
|
const stage = domEl.offsetParent;
|
|
7937
|
-
const descriptor =
|
|
7944
|
+
const descriptor = chunkRZYOOWZN_js.buildMotionPathPreview({
|
|
7938
7945
|
path,
|
|
7939
7946
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
7940
7947
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|