pptx-react-viewer 2.16.5 → 2.16.7
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 +4 -0
- package/dist/{AiChatPanel-6B26AZGA.mjs → AiChatPanel-2YYL6AKX.mjs} +3 -9
- package/dist/AiChatPanel-2YYL6AKX.mjs.br +0 -0
- package/dist/AiChatPanel-2YYL6AKX.mjs.gz +0 -0
- package/dist/{AiChatPanel-FGEIZQCD.js → AiChatPanel-XSXMU2Q5.js} +23 -29
- package/dist/AiChatPanel-XSXMU2Q5.js.br +0 -0
- package/dist/AiChatPanel-XSXMU2Q5.js.gz +0 -0
- package/dist/{Model3DScene-2JX5CUPK.js → Model3DScene-36UJZLCO.js} +2 -2
- package/dist/Model3DScene-36UJZLCO.js.br +0 -0
- package/dist/Model3DScene-36UJZLCO.js.gz +0 -0
- package/dist/{Model3DScene-NKYNKUPP.mjs → Model3DScene-NVFP3JBJ.mjs} +1 -1
- package/dist/Model3DScene-NVFP3JBJ.mjs.br +0 -0
- package/dist/Model3DScene-NVFP3JBJ.mjs.gz +0 -0
- package/dist/PowerPointViewer-Du7u4INi.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs → SurfaceChart3DScene-BMFEDBLF.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs.br → SurfaceChart3DScene-BMFEDBLF.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-BMFEDBLF.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-AE5SKG7U.js → SurfaceChart3DScene-W6I255VU.js} +2 -2
- package/dist/SurfaceChart3DScene-W6I255VU.js.br +0 -0
- package/dist/SurfaceChart3DScene-W6I255VU.js.gz +0 -0
- package/dist/{chunk-LCWZ4TD4.js → chunk-77TMRPDU.js} +2144 -1527
- package/dist/chunk-77TMRPDU.js.br +0 -0
- package/dist/chunk-77TMRPDU.js.gz +0 -0
- package/dist/{chunk-247XH4EN.mjs → chunk-D5TAZ5NL.mjs} +1214 -53
- package/dist/chunk-D5TAZ5NL.mjs.br +0 -0
- package/dist/chunk-D5TAZ5NL.mjs.gz +0 -0
- package/dist/{chunk-EFZ4K6V5.mjs → chunk-J56KVWI5.mjs} +1132 -515
- package/dist/chunk-J56KVWI5.mjs.br +0 -0
- package/dist/chunk-J56KVWI5.mjs.gz +0 -0
- package/dist/{chunk-5YGTUHNO.mjs → chunk-J5V7UCD2.mjs} +15 -1403
- package/dist/chunk-J5V7UCD2.mjs.br +0 -0
- package/dist/chunk-J5V7UCD2.mjs.gz +0 -0
- package/dist/{chunk-VZI35LEF.js → chunk-JSJZWA43.js} +9 -3
- package/dist/chunk-JSJZWA43.js.br +0 -0
- package/dist/chunk-JSJZWA43.js.gz +0 -0
- package/dist/{chunk-Y6W5LGTR.mjs → chunk-KVNZGR3L.mjs} +14 -93
- package/dist/chunk-KVNZGR3L.mjs.br +0 -0
- package/dist/chunk-KVNZGR3L.mjs.gz +0 -0
- package/dist/{chunk-P65VL2I6.js → chunk-NFJLF7TX.js} +258 -1676
- package/dist/chunk-NFJLF7TX.js.br +0 -0
- package/dist/chunk-NFJLF7TX.js.gz +0 -0
- package/dist/{chunk-MZN2UIYT.mjs → chunk-QNKJUUKD.mjs} +7 -2
- package/dist/chunk-QNKJUUKD.mjs.br +0 -0
- package/dist/chunk-QNKJUUKD.mjs.gz +0 -0
- package/dist/{chunk-UNWU6D2M.js → chunk-S7HPAJRX.js} +350 -429
- package/dist/chunk-S7HPAJRX.js.br +0 -0
- package/dist/chunk-S7HPAJRX.js.gz +0 -0
- package/dist/{chunk-6QGTRYSC.js → chunk-USAJMMF2.js} +1248 -59
- package/dist/chunk-USAJMMF2.js.br +0 -0
- package/dist/chunk-USAJMMF2.js.gz +0 -0
- package/dist/index.d.ts +14 -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 +37 -7
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +5 -4
- 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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-CBZrHhxl.d.ts → useViewerBuildingBlocks-Xddn6SFj.d.ts} +15 -1
- package/dist/useViewerBuildingBlocks-Xddn6SFj.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-247XH4EN.mjs.gz +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-6QGTRYSC.js.gz +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 chunkUSAJMMF2_js = require('./chunk-USAJMMF2.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 chunkUSAJMMF2_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 chunkUSAJMMF2_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 = chunkUSAJMMF2_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 = chunkUSAJMMF2_js.SHAPE_PRESET_DEFS.map(
|
|
111
111
|
(def) => ({
|
|
112
112
|
type: def.type,
|
|
113
113
|
label: def.label,
|
|
@@ -266,39 +266,16 @@ function isConnectorOrLineElement(element) {
|
|
|
266
266
|
if (element.type === "connector") {
|
|
267
267
|
return true;
|
|
268
268
|
}
|
|
269
|
-
if (!
|
|
269
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
270
270
|
return false;
|
|
271
271
|
}
|
|
272
272
|
const st = getShapeType(element.shapeType);
|
|
273
273
|
return st === "connector" || st === "line" || element.shapeType === "line";
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
// src/viewer/utils/template-editing.ts
|
|
277
|
-
function partitionTemplateElements(slides) {
|
|
278
|
-
const templateElementsBySlideId = {};
|
|
279
|
-
const nextSlides = slides.map((slide) => {
|
|
280
|
-
const template = slide.elements.filter((el) => chunk6QGTRYSC_js.isTemplateElement(el));
|
|
281
|
-
if (template.length === 0) {
|
|
282
|
-
return slide;
|
|
283
|
-
}
|
|
284
|
-
templateElementsBySlideId[slide.id] = template;
|
|
285
|
-
return { ...slide, elements: slide.elements.filter((el) => !chunk6QGTRYSC_js.isTemplateElement(el)) };
|
|
286
|
-
});
|
|
287
|
-
return { slides: nextSlides, templateElementsBySlideId };
|
|
288
|
-
}
|
|
289
|
-
function buildSaveSlides(slides, templateElementsBySlideId) {
|
|
290
|
-
return slides.map((slide) => {
|
|
291
|
-
const template = templateElementsBySlideId[slide.id];
|
|
292
|
-
if (!template || template.length === 0) {
|
|
293
|
-
return slide;
|
|
294
|
-
}
|
|
295
|
-
return { ...slide, elements: [...template, ...slide.elements] };
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
|
|
299
276
|
// src/viewer/utils/image-style.ts
|
|
300
277
|
function getImageMaskStyle(element) {
|
|
301
|
-
if (!
|
|
278
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
302
279
|
return void 0;
|
|
303
280
|
}
|
|
304
281
|
const shapeType = element.shapeType;
|
|
@@ -307,7 +284,7 @@ function getImageMaskStyle(element) {
|
|
|
307
284
|
}
|
|
308
285
|
const normalized = shapeType.toLowerCase();
|
|
309
286
|
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
310
|
-
const radiusPx =
|
|
287
|
+
const radiusPx = chunkUSAJMMF2_js.getRoundRectRadiusPx2(element);
|
|
311
288
|
if (radiusPx <= 0.01) {
|
|
312
289
|
return void 0;
|
|
313
290
|
}
|
|
@@ -319,7 +296,7 @@ function getImageMaskStyle(element) {
|
|
|
319
296
|
if (normalized === "can" || normalized === "cylinder") {
|
|
320
297
|
return { borderRadius: "48% / 12%" };
|
|
321
298
|
}
|
|
322
|
-
const clipPath =
|
|
299
|
+
const clipPath = chunkUSAJMMF2_js.getResolvedShapeClipPath(element);
|
|
323
300
|
if (!clipPath) {
|
|
324
301
|
return void 0;
|
|
325
302
|
}
|
|
@@ -328,7 +305,7 @@ function getImageMaskStyle(element) {
|
|
|
328
305
|
function getImageRenderStyle(element) {
|
|
329
306
|
return {
|
|
330
307
|
...getImageMaskStyle(element) || {},
|
|
331
|
-
...
|
|
308
|
+
...chunkUSAJMMF2_js.getImageFitStyle(element)
|
|
332
309
|
};
|
|
333
310
|
}
|
|
334
311
|
var CROP_SHAPE_CLIP_PATHS = {
|
|
@@ -341,7 +318,7 @@ var CROP_SHAPE_CLIP_PATHS = {
|
|
|
341
318
|
star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
|
|
342
319
|
};
|
|
343
320
|
function getCropShapeClipPath(element) {
|
|
344
|
-
if (!
|
|
321
|
+
if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
|
|
345
322
|
return void 0;
|
|
346
323
|
}
|
|
347
324
|
const shape = element.cropShape;
|
|
@@ -351,7 +328,7 @@ function getCropShapeClipPath(element) {
|
|
|
351
328
|
return CROP_SHAPE_CLIP_PATHS[shape];
|
|
352
329
|
}
|
|
353
330
|
function isImageTiled(element) {
|
|
354
|
-
if (!
|
|
331
|
+
if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
|
|
355
332
|
return false;
|
|
356
333
|
}
|
|
357
334
|
return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
|
|
@@ -409,7 +386,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
|
|
|
409
386
|
};
|
|
410
387
|
}
|
|
411
388
|
function getImageTilingStyle(element) {
|
|
412
|
-
if (!
|
|
389
|
+
if (!chunkUSAJMMF2_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
413
390
|
return void 0;
|
|
414
391
|
}
|
|
415
392
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -629,9 +606,9 @@ function registerMediaElement(elementId, el) {
|
|
|
629
606
|
};
|
|
630
607
|
}
|
|
631
608
|
function executeMediaCommand(command, frameRoot) {
|
|
632
|
-
return
|
|
609
|
+
return chunkUSAJMMF2_js.runMediaCommand(
|
|
633
610
|
command,
|
|
634
|
-
(targetId) => registry.get(targetId) ??
|
|
611
|
+
(targetId) => registry.get(targetId) ?? chunkUSAJMMF2_js.findMediaElementByElementId(targetId, frameRoot?.())
|
|
635
612
|
);
|
|
636
613
|
}
|
|
637
614
|
function PresentationMediaController({
|
|
@@ -675,7 +652,7 @@ function PresentationMediaController({
|
|
|
675
652
|
loop: shouldLoop,
|
|
676
653
|
volume: playbackVolume,
|
|
677
654
|
playbackRate
|
|
678
|
-
} =
|
|
655
|
+
} = chunkUSAJMMF2_js.mediaPlaybackAttributes({
|
|
679
656
|
loop: element.loop,
|
|
680
657
|
volume: element.volume,
|
|
681
658
|
playbackSpeed: element.playbackSpeed
|
|
@@ -811,7 +788,7 @@ function PresentationMediaController({
|
|
|
811
788
|
if (element.playAcrossSlides && element.mediaType === "audio") {
|
|
812
789
|
const dataUrl = element.mediaData ?? resolvedDataUrl;
|
|
813
790
|
if (dataUrl) {
|
|
814
|
-
|
|
791
|
+
chunkUSAJMMF2_js.registerPersistentAudio(
|
|
815
792
|
element.id,
|
|
816
793
|
dataUrl,
|
|
817
794
|
element.mediaMimeType,
|
|
@@ -909,17 +886,17 @@ function Badge({
|
|
|
909
886
|
"div",
|
|
910
887
|
{
|
|
911
888
|
className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
|
|
912
|
-
...{ [
|
|
889
|
+
...{ [chunkUSAJMMF2_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
|
|
913
890
|
children: [
|
|
914
891
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
915
892
|
FallbackIcon,
|
|
916
893
|
{
|
|
917
|
-
paths:
|
|
894
|
+
paths: chunkUSAJMMF2_js.mediaFallbackIcon(visual, element.mediaType),
|
|
918
895
|
size: isMissing ? 32 : 48,
|
|
919
896
|
className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
|
|
920
897
|
}
|
|
921
898
|
),
|
|
922
|
-
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(
|
|
899
|
+
isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkUSAJMMF2_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
923
900
|
]
|
|
924
901
|
}
|
|
925
902
|
);
|
|
@@ -936,17 +913,17 @@ function Placeholder({
|
|
|
936
913
|
"div",
|
|
937
914
|
{
|
|
938
915
|
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
|
-
...{ [
|
|
916
|
+
...{ [chunkUSAJMMF2_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
|
|
940
917
|
children: [
|
|
941
918
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
942
919
|
FallbackIcon,
|
|
943
920
|
{
|
|
944
|
-
paths:
|
|
921
|
+
paths: chunkUSAJMMF2_js.mediaFallbackIcon(visual, element.mediaType),
|
|
945
922
|
size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
|
|
946
923
|
className: isMissing ? "text-white/50" : "text-white/70"
|
|
947
924
|
}
|
|
948
925
|
),
|
|
949
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(
|
|
926
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkUSAJMMF2_js.mediaFallbackLabelKey(visual, element.mediaType)) })
|
|
950
927
|
]
|
|
951
928
|
}
|
|
952
929
|
);
|
|
@@ -956,7 +933,7 @@ function renderMediaFallback({
|
|
|
956
933
|
posterUrl,
|
|
957
934
|
surface
|
|
958
935
|
}) {
|
|
959
|
-
const visual =
|
|
936
|
+
const visual = chunkUSAJMMF2_js.mediaFallbackVisual(surface, {
|
|
960
937
|
hasPoster: Boolean(posterUrl),
|
|
961
938
|
missing: element.mediaMissing === true
|
|
962
939
|
});
|
|
@@ -985,7 +962,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
985
962
|
const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
|
|
986
963
|
const trimFragment = buildTrimFragment(element);
|
|
987
964
|
const posterUrl = element.posterFrameData ?? void 0;
|
|
988
|
-
const shouldLoop =
|
|
965
|
+
const shouldLoop = chunkUSAJMMF2_js.mediaPlaybackAttributes(element).loop;
|
|
989
966
|
const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
|
|
990
967
|
const isFullScreen = options?.fullScreen === true;
|
|
991
968
|
const isPresentationMode = options?.isPresentationMode === true;
|
|
@@ -1068,7 +1045,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1068
1045
|
|
|
1069
1046
|
// src/viewer/utils/text-utils.tsx
|
|
1070
1047
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1071
|
-
return
|
|
1048
|
+
return chunkUSAJMMF2_js.buildTextBlockStyle(element, { fallbackColor });
|
|
1072
1049
|
}
|
|
1073
1050
|
|
|
1074
1051
|
// src/viewer/utils/text-layout.tsx
|
|
@@ -1093,13 +1070,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1093
1070
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1094
1071
|
}
|
|
1095
1072
|
function getTextLayoutStyle(element) {
|
|
1096
|
-
if (!
|
|
1073
|
+
if (!chunkUSAJMMF2_js.hasTextProperties(element)) {
|
|
1097
1074
|
return {};
|
|
1098
1075
|
}
|
|
1099
1076
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1100
|
-
const writingMode =
|
|
1101
|
-
const textOrientation =
|
|
1102
|
-
const verticalDirection =
|
|
1077
|
+
const writingMode = chunkUSAJMMF2_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1078
|
+
const textOrientation = chunkUSAJMMF2_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1079
|
+
const verticalDirection = chunkUSAJMMF2_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1103
1080
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1104
1081
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1105
1082
|
const hasColumns = columnCount > 1;
|
|
@@ -1107,7 +1084,7 @@ function getTextLayoutStyle(element) {
|
|
|
1107
1084
|
const tabStops = element.textStyle?.tabStops;
|
|
1108
1085
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1109
1086
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1110
|
-
const hasParagraphIndents =
|
|
1087
|
+
const hasParagraphIndents = chunkUSAJMMF2_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1111
1088
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1112
1089
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1113
1090
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1116,7 +1093,7 @@ function getTextLayoutStyle(element) {
|
|
|
1116
1093
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1117
1094
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1118
1095
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1119
|
-
const kinsokuStyles =
|
|
1096
|
+
const kinsokuStyles = chunkUSAJMMF2_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1120
1097
|
if (hasColumns) {
|
|
1121
1098
|
return {
|
|
1122
1099
|
display: "block",
|
|
@@ -1163,10 +1140,10 @@ function getTextLayoutStyle(element) {
|
|
|
1163
1140
|
|
|
1164
1141
|
// src/viewer/utils/text-effects.tsx
|
|
1165
1142
|
function buildTextFillCss2(style) {
|
|
1166
|
-
return
|
|
1143
|
+
return chunkUSAJMMF2_js.buildTextFillCss(style);
|
|
1167
1144
|
}
|
|
1168
1145
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1169
|
-
return
|
|
1146
|
+
return chunkUSAJMMF2_js.buildTextBody3DSceneStyle(textStyle);
|
|
1170
1147
|
}
|
|
1171
1148
|
|
|
1172
1149
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1351,13 +1328,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1351
1328
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1352
1329
|
return renderedSegments;
|
|
1353
1330
|
}
|
|
1354
|
-
const paraKey = `${elementId}${
|
|
1331
|
+
const paraKey = `${elementId}${chunkUSAJMMF2_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1355
1332
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1356
1333
|
if (paraState) {
|
|
1357
1334
|
const style = buildAnimStyle(paraState);
|
|
1358
1335
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1359
1336
|
}
|
|
1360
|
-
const spec =
|
|
1337
|
+
const spec = chunkUSAJMMF2_js.buildTextBuildSpec(
|
|
1361
1338
|
elementId,
|
|
1362
1339
|
paraIndex,
|
|
1363
1340
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1375,7 +1352,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1375
1352
|
"span",
|
|
1376
1353
|
{
|
|
1377
1354
|
"data-anim-id": span.animId,
|
|
1378
|
-
style:
|
|
1355
|
+
style: chunkUSAJMMF2_js.textBuildSpanStyle(span),
|
|
1379
1356
|
children: content
|
|
1380
1357
|
},
|
|
1381
1358
|
span.animId
|
|
@@ -1519,10 +1496,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1519
1496
|
if (!needsScriptFonts || !text) {
|
|
1520
1497
|
return text;
|
|
1521
1498
|
}
|
|
1522
|
-
const runs =
|
|
1499
|
+
const runs = chunkUSAJMMF2_js.segmentByScript(text);
|
|
1523
1500
|
if (runs.length <= 1) {
|
|
1524
1501
|
if (runs.length === 1) {
|
|
1525
|
-
const font =
|
|
1502
|
+
const font = chunkUSAJMMF2_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1526
1503
|
if (font && font !== baseFontFamily) {
|
|
1527
1504
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1528
1505
|
}
|
|
@@ -1530,7 +1507,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1530
1507
|
return text;
|
|
1531
1508
|
}
|
|
1532
1509
|
return runs.map((run, i) => {
|
|
1533
|
-
const font =
|
|
1510
|
+
const font = chunkUSAJMMF2_js.resolveFontForScript(run.script, scriptFonts);
|
|
1534
1511
|
if (!font || font === baseFontFamily) {
|
|
1535
1512
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1536
1513
|
}
|
|
@@ -1541,14 +1518,14 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
|
|
|
1541
1518
|
if (!metric || !text) {
|
|
1542
1519
|
return inner(text, keyPrefix);
|
|
1543
1520
|
}
|
|
1544
|
-
const pieces =
|
|
1521
|
+
const pieces = chunkUSAJMMF2_js.splitRunForMetrics(text, metric.font);
|
|
1545
1522
|
if (pieces.length <= 1) {
|
|
1546
1523
|
return inner(text, keyPrefix);
|
|
1547
1524
|
}
|
|
1548
1525
|
return pieces.map((piece, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1549
1526
|
"span",
|
|
1550
1527
|
{
|
|
1551
|
-
style: { letterSpacing:
|
|
1528
|
+
style: { letterSpacing: chunkUSAJMMF2_js.pieceLetterSpacing(metric.authoredPx, piece.tracking) },
|
|
1552
1529
|
children: inner(piece.text, `${keyPrefix}-w${i}`)
|
|
1553
1530
|
},
|
|
1554
1531
|
`${keyPrefix}-w${i}`
|
|
@@ -1619,8 +1596,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1619
1596
|
});
|
|
1620
1597
|
}
|
|
1621
1598
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1622
|
-
const mathml =
|
|
1623
|
-
const safeMathml = mathml ?
|
|
1599
|
+
const mathml = chunkUSAJMMF2_js.convertOmmlToMathMl(equationXml);
|
|
1600
|
+
const safeMathml = mathml ? chunkUSAJMMF2_js.sanitizeMathMl(mathml) : "";
|
|
1624
1601
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1625
1602
|
"span",
|
|
1626
1603
|
{
|
|
@@ -1670,7 +1647,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1670
1647
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1671
1648
|
}
|
|
1672
1649
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1673
|
-
const picture =
|
|
1650
|
+
const picture = chunkUSAJMMF2_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1674
1651
|
sizePx: baseFontSize,
|
|
1675
1652
|
fallbackMarker: "\u2022",
|
|
1676
1653
|
accessibleLabel: "Bullet"
|
|
@@ -1721,7 +1698,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1721
1698
|
}
|
|
1722
1699
|
const segmentStyle = segment.style || {};
|
|
1723
1700
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1724
|
-
const textValue =
|
|
1701
|
+
const textValue = chunkUSAJMMF2_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1725
1702
|
const lines = textValue.split("\n");
|
|
1726
1703
|
const textDecorationTokens = [];
|
|
1727
1704
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1731,8 +1708,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1731
1708
|
textDecorationTokens.push("line-through");
|
|
1732
1709
|
}
|
|
1733
1710
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1734
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1735
|
-
const underlineDecoration =
|
|
1711
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1712
|
+
const underlineDecoration = chunkUSAJMMF2_js.resolveUnderlineDecorationStyle(
|
|
1736
1713
|
Boolean(isDoubleStrike),
|
|
1737
1714
|
segmentStyle.underlineStyle
|
|
1738
1715
|
);
|
|
@@ -1742,17 +1719,17 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1742
1719
|
const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
|
|
1743
1720
|
const textFillStyles = buildTextFillCss2(segmentStyle);
|
|
1744
1721
|
const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
|
|
1745
|
-
const autoFitScale =
|
|
1722
|
+
const autoFitScale = chunkUSAJMMF2_js.resolveAutoFitFontScale(element.textStyle);
|
|
1746
1723
|
const baseFontSize = rawFontSize * autoFitScale;
|
|
1747
1724
|
const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
|
|
1748
1725
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1749
1726
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1750
1727
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1751
|
-
const baseFontFamily = rawFontFamily ?
|
|
1728
|
+
const baseFontFamily = rawFontFamily ? chunkUSAJMMF2_js.getSubstituteFontFamily(
|
|
1752
1729
|
rawFontFamily,
|
|
1753
|
-
|
|
1730
|
+
chunkUSAJMMF2_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
|
|
1754
1731
|
) : DEFAULT_FONT_FAMILY2;
|
|
1755
|
-
const scriptFont = (name, panose) => name ?
|
|
1732
|
+
const scriptFont = (name, panose) => name ? chunkUSAJMMF2_js.getSubstituteFontFamily(name, chunkUSAJMMF2_js.parsePanoseString(panose)) : baseFontFamily;
|
|
1756
1733
|
const scriptFonts = {
|
|
1757
1734
|
latin: baseFontFamily,
|
|
1758
1735
|
eastAsia: scriptFont(
|
|
@@ -1768,7 +1745,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1768
1745
|
segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
|
|
1769
1746
|
)
|
|
1770
1747
|
};
|
|
1771
|
-
const needsScriptFonts =
|
|
1748
|
+
const needsScriptFonts = chunkUSAJMMF2_js.hasDistinctScriptFonts(scriptFonts);
|
|
1772
1749
|
const metricFont = {
|
|
1773
1750
|
fontFamily: baseFontFamily,
|
|
1774
1751
|
fontSizePx: baseFontSize * baselineFontScale,
|
|
@@ -1776,9 +1753,9 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1776
1753
|
italic: Boolean(segmentStyle.italic)
|
|
1777
1754
|
};
|
|
1778
1755
|
const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing };
|
|
1779
|
-
const letterSpacing =
|
|
1756
|
+
const letterSpacing = chunkUSAJMMF2_js.pieceLetterSpacing(
|
|
1780
1757
|
authoredLetterSpacing,
|
|
1781
|
-
|
|
1758
|
+
chunkUSAJMMF2_js.resolveMetricTrackingPx(textValue, metricFont)
|
|
1782
1759
|
);
|
|
1783
1760
|
const spanStyle = {
|
|
1784
1761
|
color: resolvedSegmentColor,
|
|
@@ -1797,15 +1774,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1797
1774
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1798
1775
|
letterSpacing,
|
|
1799
1776
|
fontKerning,
|
|
1800
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1777
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1801
1778
|
...textFillStyles,
|
|
1802
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1803
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1779
|
+
textDecorationColor: segmentStyle.underlineColor ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1780
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1804
1781
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1805
|
-
textShadow:
|
|
1806
|
-
filter:
|
|
1807
|
-
opacity:
|
|
1808
|
-
WebkitBoxReflect:
|
|
1782
|
+
textShadow: chunkUSAJMMF2_js.buildTextShadowCss(segmentStyle),
|
|
1783
|
+
filter: chunkUSAJMMF2_js.buildTextRunFilterChain(segmentStyle),
|
|
1784
|
+
opacity: chunkUSAJMMF2_js.getTextAlphaOpacity(segmentStyle),
|
|
1785
|
+
WebkitBoxReflect: chunkUSAJMMF2_js.buildTextReflectionCss(segmentStyle)
|
|
1809
1786
|
};
|
|
1810
1787
|
const runRtl = segmentStyle.rtl;
|
|
1811
1788
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1825,7 +1802,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1825
1802
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1826
1803
|
}
|
|
1827
1804
|
if (bulletInfo.color) {
|
|
1828
|
-
spanStyle.color =
|
|
1805
|
+
spanStyle.color = chunkUSAJMMF2_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1829
1806
|
}
|
|
1830
1807
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1831
1808
|
spanStyle.display = "inline-block";
|
|
@@ -1871,7 +1848,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1871
1848
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
1872
1849
|
};
|
|
1873
1850
|
if (segment.rubyStyle?.color) {
|
|
1874
|
-
rubyStyle.color =
|
|
1851
|
+
rubyStyle.color = chunkUSAJMMF2_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
1875
1852
|
}
|
|
1876
1853
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
1877
1854
|
baseContent,
|
|
@@ -1923,31 +1900,6 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1923
1900
|
}
|
|
1924
1901
|
return spanNode;
|
|
1925
1902
|
}
|
|
1926
|
-
|
|
1927
|
-
// src/viewer/utils/text-paragraph-spacing.ts
|
|
1928
|
-
var PT_TO_PX = 96 / 72;
|
|
1929
|
-
function resolveParagraphSpacing(input) {
|
|
1930
|
-
const { paraProps, bodyStyle, isFirst, isLast, spaceFirstLast } = input;
|
|
1931
|
-
const result = {};
|
|
1932
|
-
const before = paraProps?.paragraphSpacingBefore ?? bodyStyle?.paragraphSpacingBefore;
|
|
1933
|
-
if (typeof before === "number" && before > 0 && (!isFirst || spaceFirstLast)) {
|
|
1934
|
-
result.marginTop = before;
|
|
1935
|
-
}
|
|
1936
|
-
const after = paraProps?.paragraphSpacingAfter ?? bodyStyle?.paragraphSpacingAfter;
|
|
1937
|
-
if (typeof after === "number" && after > 0 && (!isLast || spaceFirstLast)) {
|
|
1938
|
-
result.marginBottom = after;
|
|
1939
|
-
}
|
|
1940
|
-
const hasOwnLine = paraProps?.lineSpacing !== void 0 || paraProps?.lineSpacingExactPt !== void 0;
|
|
1941
|
-
const lineSrc = hasOwnLine ? paraProps : bodyStyle;
|
|
1942
|
-
const exactPt = lineSrc?.lineSpacingExactPt;
|
|
1943
|
-
const multiplier = lineSrc?.lineSpacing;
|
|
1944
|
-
if (typeof exactPt === "number" && exactPt > 0) {
|
|
1945
|
-
result.lineHeight = `${exactPt * PT_TO_PX}px`;
|
|
1946
|
-
} else if (typeof multiplier === "number" && multiplier > 0) {
|
|
1947
|
-
result.lineHeight = chunk6QGTRYSC_js.proportionalLineHeight(multiplier);
|
|
1948
|
-
}
|
|
1949
|
-
return result;
|
|
1950
|
-
}
|
|
1951
1903
|
function groupSegmentsIntoParagraphs(segments) {
|
|
1952
1904
|
const paragraphs = [];
|
|
1953
1905
|
let current = [];
|
|
@@ -1966,7 +1918,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
1966
1918
|
return paragraphs;
|
|
1967
1919
|
}
|
|
1968
1920
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
1969
|
-
if (!
|
|
1921
|
+
if (!chunkUSAJMMF2_js.hasTextProperties(element)) {
|
|
1970
1922
|
return emptyFallback || null;
|
|
1971
1923
|
}
|
|
1972
1924
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -1987,10 +1939,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
1987
1939
|
return element.text || emptyFallback || "";
|
|
1988
1940
|
}
|
|
1989
1941
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
1990
|
-
const paragraphIndents =
|
|
1991
|
-
const elementRtl =
|
|
1992
|
-
const elementAlign =
|
|
1993
|
-
const bodyStyle =
|
|
1942
|
+
const paragraphIndents = chunkUSAJMMF2_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
1943
|
+
const elementRtl = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
1944
|
+
const elementAlign = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
1945
|
+
const bodyStyle = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
1994
1946
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
1995
1947
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
1996
1948
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2005,39 +1957,39 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2005
1957
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2006
1958
|
});
|
|
2007
1959
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2008
|
-
const paraRtl =
|
|
1960
|
+
const paraRtl = chunkUSAJMMF2_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2009
1961
|
const isRtlParagraph = paraRtl === true;
|
|
2010
|
-
const paraAlign =
|
|
2011
|
-
const cssTextAlign =
|
|
1962
|
+
const paraAlign = chunkUSAJMMF2_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
1963
|
+
const cssTextAlign = chunkUSAJMMF2_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2012
1964
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2013
1965
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2014
1966
|
const paraTextIndent = rawTextIndent;
|
|
2015
|
-
const paraKinsokuStyle =
|
|
1967
|
+
const paraKinsokuStyle = chunkUSAJMMF2_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2016
1968
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2017
1969
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
2018
|
-
const spacing = resolveParagraphSpacing({
|
|
1970
|
+
const spacing = chunkUSAJMMF2_js.resolveParagraphSpacing({
|
|
2019
1971
|
paraProps,
|
|
2020
1972
|
bodyStyle,
|
|
2021
1973
|
isFirst: paraIndex === 0,
|
|
2022
1974
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2023
1975
|
spaceFirstLast
|
|
2024
1976
|
});
|
|
2025
|
-
const strutFontSize =
|
|
1977
|
+
const strutFontSize = chunkUSAJMMF2_js.resolveParagraphStrutFontSize(
|
|
2026
1978
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2027
1979
|
bodyStyle?.fontSize
|
|
2028
1980
|
);
|
|
2029
|
-
const hasParaSpacing = spacing.
|
|
1981
|
+
const hasParaSpacing = spacing.spaceBeforePx !== void 0 || spacing.spaceAfterPx !== void 0 || spacing.lineHeight !== void 0;
|
|
2030
1982
|
const paraStyle = {
|
|
2031
1983
|
...paraKinsokuStyle
|
|
2032
1984
|
};
|
|
2033
1985
|
if (strutFontSize !== void 0) {
|
|
2034
1986
|
paraStyle.fontSize = strutFontSize;
|
|
2035
1987
|
}
|
|
2036
|
-
if (spacing.
|
|
2037
|
-
paraStyle.marginTop = spacing.
|
|
1988
|
+
if (spacing.spaceBeforePx !== void 0) {
|
|
1989
|
+
paraStyle.marginTop = spacing.spaceBeforePx;
|
|
2038
1990
|
}
|
|
2039
|
-
if (spacing.
|
|
2040
|
-
paraStyle.marginBottom = spacing.
|
|
1991
|
+
if (spacing.spaceAfterPx !== void 0) {
|
|
1992
|
+
paraStyle.marginBottom = spacing.spaceAfterPx;
|
|
2041
1993
|
}
|
|
2042
1994
|
if (spacing.lineHeight !== void 0) {
|
|
2043
1995
|
paraStyle.lineHeight = spacing.lineHeight;
|
|
@@ -2126,13 +2078,13 @@ function hexToRgbUnit(hex) {
|
|
|
2126
2078
|
};
|
|
2127
2079
|
}
|
|
2128
2080
|
function getDuotoneColors(element) {
|
|
2129
|
-
if (!
|
|
2081
|
+
if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
|
|
2130
2082
|
return void 0;
|
|
2131
2083
|
}
|
|
2132
2084
|
return element.imageEffects?.duotone;
|
|
2133
2085
|
}
|
|
2134
2086
|
function buildLineShadowCss(element) {
|
|
2135
|
-
if (!
|
|
2087
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
2136
2088
|
return void 0;
|
|
2137
2089
|
}
|
|
2138
2090
|
const ss = element.shapeStyle;
|
|
@@ -2143,13 +2095,13 @@ function buildLineShadowCss(element) {
|
|
|
2143
2095
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2144
2096
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2145
2097
|
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
|
-
|
|
2098
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkUSAJMMF2_js.colorWithOpacity(
|
|
2099
|
+
chunkUSAJMMF2_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2148
2100
|
opacity
|
|
2149
2101
|
)}`;
|
|
2150
2102
|
}
|
|
2151
2103
|
function buildLineGlowFilter(element) {
|
|
2152
|
-
if (!
|
|
2104
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
2153
2105
|
return void 0;
|
|
2154
2106
|
}
|
|
2155
2107
|
const ss = element.shapeStyle;
|
|
@@ -2158,7 +2110,7 @@ function buildLineGlowFilter(element) {
|
|
|
2158
2110
|
}
|
|
2159
2111
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2160
2112
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2161
|
-
const glowCol =
|
|
2113
|
+
const glowCol = chunkUSAJMMF2_js.colorWithOpacity(chunkUSAJMMF2_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2162
2114
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2163
2115
|
}
|
|
2164
2116
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2182,7 +2134,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2182
2134
|
return `dag-duotone-${elementId}`;
|
|
2183
2135
|
}
|
|
2184
2136
|
function hasDagDuotoneEffect(element) {
|
|
2185
|
-
if (!
|
|
2137
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
2186
2138
|
return false;
|
|
2187
2139
|
}
|
|
2188
2140
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2245,7 +2197,7 @@ function getRoundRectRadiusPx(element) {
|
|
|
2245
2197
|
|
|
2246
2198
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2247
2199
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2248
|
-
return
|
|
2200
|
+
return chunkUSAJMMF2_js.build3DExtrusionData(
|
|
2249
2201
|
shape3d,
|
|
2250
2202
|
scene3d,
|
|
2251
2203
|
fillColor,
|
|
@@ -2254,7 +2206,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2254
2206
|
);
|
|
2255
2207
|
}
|
|
2256
2208
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2257
|
-
|
|
2209
|
+
chunkUSAJMMF2_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2258
2210
|
}
|
|
2259
2211
|
|
|
2260
2212
|
// src/viewer/utils/shape-visual-style.ts
|
|
@@ -2262,43 +2214,43 @@ function getGradientTilingCss(style) {
|
|
|
2262
2214
|
if (!style || style.fillMode !== "gradient") {
|
|
2263
2215
|
return void 0;
|
|
2264
2216
|
}
|
|
2265
|
-
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" &&
|
|
2217
|
+
const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunkUSAJMMF2_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
|
|
2266
2218
|
if (isStructuredLinear) {
|
|
2267
|
-
const flip =
|
|
2219
|
+
const flip = chunkUSAJMMF2_js.getGradientTileFlipCss(style.fillGradientFlip);
|
|
2268
2220
|
if (flip) {
|
|
2269
2221
|
return flip;
|
|
2270
2222
|
}
|
|
2271
2223
|
}
|
|
2272
|
-
return
|
|
2224
|
+
return chunkUSAJMMF2_js.getGradientTileRectCss(style.fillGradientTileRect);
|
|
2273
2225
|
}
|
|
2274
2226
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2275
|
-
if (!
|
|
2227
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
2276
2228
|
return {};
|
|
2277
2229
|
}
|
|
2278
2230
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2279
|
-
const clipPath =
|
|
2231
|
+
const clipPath = chunkUSAJMMF2_js.isIdentityRectClip(element) ? void 0 : chunkUSAJMMF2_js.getResolvedShapeClipPath(element);
|
|
2280
2232
|
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 =
|
|
2233
|
+
const rendersStrokeOnlyPreset = chunkUSAJMMF2_js.isStrokeOnlyPresetElement(element);
|
|
2282
2234
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2283
2235
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2284
|
-
const strokeDash =
|
|
2285
|
-
const fillGradient =
|
|
2236
|
+
const strokeDash = chunkUSAJMMF2_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2237
|
+
const fillGradient = chunkUSAJMMF2_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
|
|
2286
2238
|
rotation: element.rotation,
|
|
2287
2239
|
width: element.width,
|
|
2288
2240
|
height: element.height
|
|
2289
2241
|
}) || element.shapeStyle?.fillGradient;
|
|
2290
|
-
const shadowCss =
|
|
2291
|
-
const innerShadowCss =
|
|
2292
|
-
const resolvedFillColor =
|
|
2293
|
-
const resolvedStrokeColor =
|
|
2242
|
+
const shadowCss = chunkUSAJMMF2_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2243
|
+
const innerShadowCss = chunkUSAJMMF2_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2244
|
+
const resolvedFillColor = chunkUSAJMMF2_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2245
|
+
const resolvedStrokeColor = chunkUSAJMMF2_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2294
2246
|
const ss = element.shapeStyle;
|
|
2295
2247
|
const gradientTiling = getGradientTilingCss(ss);
|
|
2296
|
-
const paintsGradientOutline =
|
|
2248
|
+
const paintsGradientOutline = chunkUSAJMMF2_js.suppressesCssBorder(element);
|
|
2297
2249
|
const hasFillOverlayColor = Boolean(
|
|
2298
2250
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2299
2251
|
);
|
|
2300
2252
|
const combinedShadowParts = [];
|
|
2301
|
-
const multiLayerShadow =
|
|
2253
|
+
const multiLayerShadow = chunkUSAJMMF2_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2302
2254
|
if (multiLayerShadow) {
|
|
2303
2255
|
combinedShadowParts.push(multiLayerShadow);
|
|
2304
2256
|
} else if (shadowCss) {
|
|
@@ -2307,7 +2259,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2307
2259
|
if (innerShadowCss) {
|
|
2308
2260
|
combinedShadowParts.push(innerShadowCss);
|
|
2309
2261
|
}
|
|
2310
|
-
const glowBoxShadow =
|
|
2262
|
+
const glowBoxShadow = chunkUSAJMMF2_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2311
2263
|
if (glowBoxShadow) {
|
|
2312
2264
|
combinedShadowParts.push(glowBoxShadow);
|
|
2313
2265
|
}
|
|
@@ -2315,7 +2267,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2315
2267
|
if (lineShadow) {
|
|
2316
2268
|
combinedShadowParts.push(lineShadow);
|
|
2317
2269
|
}
|
|
2318
|
-
const compoundLineShadow =
|
|
2270
|
+
const compoundLineShadow = chunkUSAJMMF2_js.getCompoundLineBoxShadow(
|
|
2319
2271
|
element.shapeStyle?.compoundLine,
|
|
2320
2272
|
strokeWidth,
|
|
2321
2273
|
resolvedStrokeColor
|
|
@@ -2328,11 +2280,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2328
2280
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2329
2281
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2330
2282
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2331
|
-
const glowCol =
|
|
2283
|
+
const glowCol = chunkUSAJMMF2_js.colorWithOpacity(chunkUSAJMMF2_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2332
2284
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2333
2285
|
}
|
|
2334
2286
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2335
|
-
filterParts.push(`url(#${
|
|
2287
|
+
filterParts.push(`url(#${chunkUSAJMMF2_js.getSoftEdgeFilterId(element.id)})`);
|
|
2336
2288
|
}
|
|
2337
2289
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2338
2290
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2341,13 +2293,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2341
2293
|
if (lineGlowCss) {
|
|
2342
2294
|
filterParts.push(lineGlowCss);
|
|
2343
2295
|
}
|
|
2344
|
-
const dagFilter =
|
|
2296
|
+
const dagFilter = chunkUSAJMMF2_js.getEffectDagFilter(ss, element.id);
|
|
2345
2297
|
if (dagFilter) {
|
|
2346
2298
|
filterParts.push(dagFilter);
|
|
2347
2299
|
}
|
|
2348
2300
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2349
2301
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2350
|
-
const patternFill =
|
|
2302
|
+
const patternFill = chunkUSAJMMF2_js.buildPatternFillCss(element.shapeStyle);
|
|
2351
2303
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2352
2304
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2353
2305
|
let reflectCss;
|
|
@@ -2359,7 +2311,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2359
2311
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2360
2312
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2361
2313
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2362
|
-
reflectCss =
|
|
2314
|
+
reflectCss = chunkUSAJMMF2_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2363
2315
|
}
|
|
2364
2316
|
}
|
|
2365
2317
|
const base = {
|
|
@@ -2405,9 +2357,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2405
2357
|
// path following the shape's geometry, because a CSS border can only take
|
|
2406
2358
|
// one colour. Keeping the border too would draw the parser's averaged
|
|
2407
2359
|
// solid underneath the gradient.
|
|
2408
|
-
borderWidth: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2360
|
+
borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunkUSAJMMF2_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2409
2361
|
borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
|
|
2410
|
-
borderStyle: strokeWidth > 0 && !paintsGradientOutline ?
|
|
2362
|
+
borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunkUSAJMMF2_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2411
2363
|
strokeLinejoin: lineJoinCss,
|
|
2412
2364
|
strokeMiterlimit: miterLimitCss,
|
|
2413
2365
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2467,7 +2419,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2467
2419
|
borderWidth: 0,
|
|
2468
2420
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2469
2421
|
borderTopColor: resolvedStrokeColor,
|
|
2470
|
-
borderTopStyle:
|
|
2422
|
+
borderTopStyle: chunkUSAJMMF2_js.getCssBorderDashStyle(strokeDash)
|
|
2471
2423
|
};
|
|
2472
2424
|
}
|
|
2473
2425
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2481,13 +2433,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2481
2433
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2482
2434
|
const direct = element.shapeAdjustments?.[key];
|
|
2483
2435
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2484
|
-
return
|
|
2436
|
+
return chunkUSAJMMF2_js.clampUnitInterval(direct / 1e5);
|
|
2485
2437
|
}
|
|
2486
2438
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2487
2439
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2488
|
-
return
|
|
2440
|
+
return chunkUSAJMMF2_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2489
2441
|
}
|
|
2490
|
-
return
|
|
2442
|
+
return chunkUSAJMMF2_js.clampUnitInterval(fallback);
|
|
2491
2443
|
}
|
|
2492
2444
|
function getConnectorPathGeometry(element) {
|
|
2493
2445
|
const width = Math.max(element.width, 0);
|
|
@@ -2620,7 +2572,7 @@ function toHexByte(value) {
|
|
|
2620
2572
|
return clamped.toString(16).padStart(2, "0");
|
|
2621
2573
|
}
|
|
2622
2574
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2623
|
-
const channels =
|
|
2575
|
+
const channels = chunkUSAJMMF2_js.hexToRgbChannels(hex);
|
|
2624
2576
|
if (!channels) {
|
|
2625
2577
|
return hex;
|
|
2626
2578
|
}
|
|
@@ -2646,7 +2598,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2646
2598
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2647
2599
|
return {
|
|
2648
2600
|
d: subpath.d,
|
|
2649
|
-
fill: fillOff ? "none" :
|
|
2601
|
+
fill: fillOff ? "none" : chunkUSAJMMF2_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2650
2602
|
stroked: subpath.stroke !== false
|
|
2651
2603
|
};
|
|
2652
2604
|
});
|
|
@@ -2662,11 +2614,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2662
2614
|
strokePaint,
|
|
2663
2615
|
strokeWidth,
|
|
2664
2616
|
dashArray,
|
|
2665
|
-
lineCap:
|
|
2617
|
+
lineCap: chunkUSAJMMF2_js.svgLineCap(shapeStyle?.lineCap),
|
|
2666
2618
|
lineJoin,
|
|
2667
2619
|
miterLimit,
|
|
2668
|
-
offsets:
|
|
2669
|
-
widths:
|
|
2620
|
+
offsets: chunkUSAJMMF2_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2621
|
+
widths: chunkUSAJMMF2_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2670
2622
|
};
|
|
2671
2623
|
}
|
|
2672
2624
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2714,9 +2666,9 @@ function gradientDefs(gradient) {
|
|
|
2714
2666
|
}
|
|
2715
2667
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
|
|
2716
2668
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2717
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2669
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkUSAJMMF2_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2718
2670
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2719
|
-
const gradientPaint = gradient ?
|
|
2671
|
+
const gradientPaint = gradient ? chunkUSAJMMF2_js.svgGradientFillRef(gradient) : void 0;
|
|
2720
2672
|
const nodes = [];
|
|
2721
2673
|
if (subpaths && needsPerSubpath) {
|
|
2722
2674
|
const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
|
|
@@ -2748,7 +2700,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2748
2700
|
"path",
|
|
2749
2701
|
{
|
|
2750
2702
|
d: pathData,
|
|
2751
|
-
fill: animatesFill ? "inherit" : gradientPaint ??
|
|
2703
|
+
fill: animatesFill ? "inherit" : gradientPaint ?? chunkUSAJMMF2_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2752
2704
|
stroke: "none",
|
|
2753
2705
|
vectorEffect: "non-scaling-stroke"
|
|
2754
2706
|
},
|
|
@@ -2774,14 +2726,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2774
2726
|
);
|
|
2775
2727
|
}
|
|
2776
2728
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2777
|
-
if (!
|
|
2729
|
+
if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
|
|
2778
2730
|
return null;
|
|
2779
2731
|
}
|
|
2780
2732
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2781
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2782
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2783
|
-
const dashType =
|
|
2784
|
-
const dashArray =
|
|
2733
|
+
const fillPaint = animatesFill ? "inherit" : chunkUSAJMMF2_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2734
|
+
const strokePaint = animatesStroke ? "inherit" : chunkUSAJMMF2_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2735
|
+
const dashType = chunkUSAJMMF2_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2736
|
+
const dashArray = chunkUSAJMMF2_js.getSvgStrokeDasharray(
|
|
2785
2737
|
dashType,
|
|
2786
2738
|
Math.max(strokeWidth, 1),
|
|
2787
2739
|
element.shapeStyle?.customDashSegments
|
|
@@ -2862,21 +2814,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2862
2814
|
// container's `background-image` is suppressed for custom geometry, so
|
|
2863
2815
|
// without this the shape fell back to the parser's representative solid
|
|
2864
2816
|
// and lost every fade (issue #132).
|
|
2865
|
-
|
|
2817
|
+
chunkUSAJMMF2_js.buildSvgGradientDef(element.shapeStyle, element.id)
|
|
2866
2818
|
);
|
|
2867
2819
|
}
|
|
2868
|
-
if (
|
|
2820
|
+
if (chunkUSAJMMF2_js.isCalloutShape(normalizedType)) {
|
|
2869
2821
|
const width = Math.max(element.width, 1);
|
|
2870
2822
|
const height = Math.max(element.height, 1);
|
|
2871
|
-
const geometry =
|
|
2823
|
+
const geometry = chunkUSAJMMF2_js.getCalloutLeaderLineGeometry(
|
|
2872
2824
|
normalizedType,
|
|
2873
2825
|
width,
|
|
2874
2826
|
height,
|
|
2875
2827
|
element.shapeAdjustments
|
|
2876
2828
|
);
|
|
2877
2829
|
if (geometry && geometry.points.length >= 2) {
|
|
2878
|
-
const leaderPath =
|
|
2879
|
-
const bounds =
|
|
2830
|
+
const leaderPath = chunkUSAJMMF2_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2831
|
+
const bounds = chunkUSAJMMF2_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2880
2832
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2881
2833
|
const offsetLeft = bounds.minX;
|
|
2882
2834
|
const offsetTop = bounds.minY;
|
|
@@ -2939,10 +2891,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2939
2891
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
2940
2892
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
2941
2893
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
2942
|
-
const connectorLineCap =
|
|
2894
|
+
const connectorLineCap = chunkUSAJMMF2_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
2943
2895
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
2944
|
-
const offsets =
|
|
2945
|
-
const widths =
|
|
2896
|
+
const offsets = chunkUSAJMMF2_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
2897
|
+
const widths = chunkUSAJMMF2_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
2946
2898
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2947
2899
|
"svg",
|
|
2948
2900
|
{
|
|
@@ -3009,15 +2961,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3009
2961
|
}
|
|
3010
2962
|
const parsed = stops.map((gs) => {
|
|
3011
2963
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3012
|
-
const color =
|
|
3013
|
-
const opacity =
|
|
3014
|
-
return { pos, color:
|
|
2964
|
+
const color = chunkUSAJMMF2_js.parseDrawingColor(gs) ?? "#888888";
|
|
2965
|
+
const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(gs);
|
|
2966
|
+
return { pos, color: chunkUSAJMMF2_js.colorWithOpacity(color, opacity) };
|
|
3015
2967
|
}).sort((a, b) => a.pos - b.pos);
|
|
3016
2968
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3017
2969
|
const lin = gradFill["a:lin"];
|
|
3018
2970
|
if (lin) {
|
|
3019
2971
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3020
|
-
const angleDeg = Math.round(
|
|
2972
|
+
const angleDeg = Math.round(chunkUSAJMMF2_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3021
2973
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3022
2974
|
}
|
|
3023
2975
|
const path = gradFill["a:path"];
|
|
@@ -3052,8 +3004,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3052
3004
|
if (!pattFill) {
|
|
3053
3005
|
return void 0;
|
|
3054
3006
|
}
|
|
3055
|
-
const fgColor =
|
|
3056
|
-
const bgColor =
|
|
3007
|
+
const fgColor = chunkUSAJMMF2_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3008
|
+
const bgColor = chunkUSAJMMF2_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3057
3009
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3058
3010
|
switch (preset) {
|
|
3059
3011
|
case "ltHorz":
|
|
@@ -3164,11 +3116,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3164
3116
|
const prstDash = ln["a:prstDash"];
|
|
3165
3117
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3166
3118
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3167
|
-
const color =
|
|
3119
|
+
const color = chunkUSAJMMF2_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3168
3120
|
if (color) {
|
|
3169
|
-
const opacity =
|
|
3121
|
+
const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3170
3122
|
const key = `${edge.prefix}`;
|
|
3171
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3123
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkUSAJMMF2_js.colorWithOpacity(color, opacity)}`;
|
|
3172
3124
|
}
|
|
3173
3125
|
}
|
|
3174
3126
|
return borderStyle;
|
|
@@ -3181,7 +3133,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3181
3133
|
const textShadowParts = [];
|
|
3182
3134
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3183
3135
|
if (outerShdw) {
|
|
3184
|
-
const shdwColor =
|
|
3136
|
+
const shdwColor = chunkUSAJMMF2_js.parseDrawingColor(outerShdw);
|
|
3185
3137
|
if (shdwColor) {
|
|
3186
3138
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3187
3139
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3199,7 +3151,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3199
3151
|
}
|
|
3200
3152
|
const glow = effectLst["a:glow"];
|
|
3201
3153
|
if (glow) {
|
|
3202
|
-
const glowColor =
|
|
3154
|
+
const glowColor = chunkUSAJMMF2_js.parseDrawingColor(glow);
|
|
3203
3155
|
if (glowColor) {
|
|
3204
3156
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3205
3157
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3278,10 +3230,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3278
3230
|
if (runProps?.["@_u"] !== void 0) {
|
|
3279
3231
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3280
3232
|
}
|
|
3281
|
-
const runColor =
|
|
3233
|
+
const runColor = chunkUSAJMMF2_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkUSAJMMF2_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3282
3234
|
if (runColor) {
|
|
3283
|
-
const opacity =
|
|
3284
|
-
cellStyle.color =
|
|
3235
|
+
const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3236
|
+
cellStyle.color = chunkUSAJMMF2_js.colorWithOpacity(runColor, opacity);
|
|
3285
3237
|
}
|
|
3286
3238
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3287
3239
|
if (fontFamily) {
|
|
@@ -3291,15 +3243,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3291
3243
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3292
3244
|
}
|
|
3293
3245
|
const cellProperties = cellXml["a:tcPr"];
|
|
3294
|
-
const cellFill =
|
|
3246
|
+
const cellFill = chunkUSAJMMF2_js.parseDrawingColor(
|
|
3295
3247
|
cellProperties?.["a:solidFill"],
|
|
3296
3248
|
schemeColorOverrides
|
|
3297
3249
|
);
|
|
3298
3250
|
if (cellFill) {
|
|
3299
|
-
const opacity =
|
|
3251
|
+
const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(
|
|
3300
3252
|
cellProperties?.["a:solidFill"]
|
|
3301
3253
|
);
|
|
3302
|
-
cellStyle.backgroundColor =
|
|
3254
|
+
cellStyle.backgroundColor = chunkUSAJMMF2_js.colorWithOpacity(cellFill, opacity);
|
|
3303
3255
|
} else {
|
|
3304
3256
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3305
3257
|
if (gradCss) {
|
|
@@ -3314,16 +3266,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3314
3266
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3315
3267
|
Object.assign(cellStyle, edgeBorders);
|
|
3316
3268
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3317
|
-
const borderColor =
|
|
3269
|
+
const borderColor = chunkUSAJMMF2_js.parseDrawingColor(
|
|
3318
3270
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3319
3271
|
schemeColorOverrides
|
|
3320
|
-
) ||
|
|
3272
|
+
) || chunkUSAJMMF2_js.parseDrawingColor(
|
|
3321
3273
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3322
3274
|
schemeColorOverrides
|
|
3323
|
-
) ||
|
|
3275
|
+
) || chunkUSAJMMF2_js.parseDrawingColor(
|
|
3324
3276
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3325
3277
|
schemeColorOverrides
|
|
3326
|
-
) ||
|
|
3278
|
+
) || chunkUSAJMMF2_js.parseDrawingColor(
|
|
3327
3279
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3328
3280
|
schemeColorOverrides
|
|
3329
3281
|
);
|
|
@@ -3391,191 +3343,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3391
3343
|
}
|
|
3392
3344
|
|
|
3393
3345
|
// src/viewer/utils/table-band-style.tsx
|
|
3394
|
-
function
|
|
3395
|
-
if (!fill) {
|
|
3396
|
-
return void 0;
|
|
3397
|
-
}
|
|
3398
|
-
const key = fill.schemeColor;
|
|
3399
|
-
const base = colorScheme ? colorScheme[key] : void 0;
|
|
3400
|
-
if (!base) {
|
|
3401
|
-
return void 0;
|
|
3402
|
-
}
|
|
3403
|
-
let color = base;
|
|
3404
|
-
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3405
|
-
color = chunk6QGTRYSC_js.tintColor2(color, fill.tint / 1e5);
|
|
3406
|
-
}
|
|
3407
|
-
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3408
|
-
color = chunk6QGTRYSC_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3409
|
-
}
|
|
3410
|
-
return color;
|
|
3411
|
-
}
|
|
3412
|
-
function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
3413
|
-
if (!text) {
|
|
3414
|
-
return false;
|
|
3415
|
-
}
|
|
3416
|
-
let applied = false;
|
|
3417
|
-
if (text.bold) {
|
|
3418
|
-
style.fontWeight = 700;
|
|
3419
|
-
applied = true;
|
|
3420
|
-
}
|
|
3421
|
-
if (text.italic) {
|
|
3422
|
-
style.fontStyle = "italic";
|
|
3423
|
-
applied = true;
|
|
3424
|
-
}
|
|
3425
|
-
if (text.underline) {
|
|
3426
|
-
style.textDecorationLine = "underline";
|
|
3427
|
-
applied = true;
|
|
3428
|
-
}
|
|
3429
|
-
if (text.fontFace) {
|
|
3430
|
-
style.fontFamily = text.fontFace;
|
|
3431
|
-
applied = true;
|
|
3432
|
-
} else {
|
|
3433
|
-
const refFont = chunk6QGTRYSC_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3434
|
-
if (refFont) {
|
|
3435
|
-
style.fontFamily = refFont;
|
|
3436
|
-
applied = true;
|
|
3437
|
-
}
|
|
3438
|
-
}
|
|
3439
|
-
if (text.fontSchemeColor && colorScheme) {
|
|
3440
|
-
const base = colorScheme[text.fontSchemeColor];
|
|
3441
|
-
if (base) {
|
|
3442
|
-
let color = base;
|
|
3443
|
-
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3444
|
-
color = chunk6QGTRYSC_js.tintColor2(color, text.fontTint / 1e5);
|
|
3445
|
-
}
|
|
3446
|
-
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3447
|
-
color = chunk6QGTRYSC_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3448
|
-
}
|
|
3449
|
-
style.color = color;
|
|
3450
|
-
applied = true;
|
|
3451
|
-
}
|
|
3452
|
-
}
|
|
3453
|
-
return applied;
|
|
3454
|
-
}
|
|
3455
|
-
function resolveTableStyleEntry(tableStyleId, tableStyleMap) {
|
|
3456
|
-
if (!tableStyleId || !tableStyleMap) {
|
|
3457
|
-
return void 0;
|
|
3458
|
-
}
|
|
3459
|
-
const direct = tableStyleMap[tableStyleId];
|
|
3460
|
-
if (direct) {
|
|
3461
|
-
return direct;
|
|
3462
|
-
}
|
|
3463
|
-
const normalised = tableStyleId.trim().toUpperCase();
|
|
3464
|
-
const withBraces = normalised.startsWith("{") ? normalised : `{${normalised}}`;
|
|
3465
|
-
return tableStyleMap[withBraces];
|
|
3466
|
-
}
|
|
3467
|
-
function getTableCellBandStyle(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
|
|
3346
|
+
function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
|
|
3468
3347
|
if (element.type !== "table") {
|
|
3469
3348
|
return void 0;
|
|
3470
3349
|
}
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
const colorScheme = styleCtx?.theme?.colorScheme;
|
|
3477
|
-
const fontScheme = styleCtx?.theme?.fontScheme;
|
|
3478
|
-
const resolveFill = (fill, fallback) => resolveTableStyleFillColor(fill, colorScheme) ?? fallback;
|
|
3479
|
-
const style = {};
|
|
3480
|
-
let applied = false;
|
|
3481
|
-
if (styleEntry?.wholeTblFill) {
|
|
3482
|
-
const wholeBg = resolveFill(styleEntry.wholeTblFill, "");
|
|
3483
|
-
if (wholeBg) {
|
|
3484
|
-
style.backgroundColor = wholeBg;
|
|
3485
|
-
applied = true;
|
|
3486
|
-
}
|
|
3487
|
-
}
|
|
3488
|
-
if (applyTableStyleText(styleEntry?.wholeTblText, colorScheme, style, fontScheme)) {
|
|
3489
|
-
applied = true;
|
|
3490
|
-
}
|
|
3491
|
-
const bandStartRow = td.firstRowHeader ? 1 : 0;
|
|
3492
|
-
const bandEndRow = td.lastRow ? rowCount - 1 : rowCount;
|
|
3493
|
-
if (td.bandedRows && rowIndex >= bandStartRow && rowIndex < bandEndRow) {
|
|
3494
|
-
const bandIndex = rowIndex - bandStartRow;
|
|
3495
|
-
const rowCycle = Math.max(td.bandRowCycle ?? 1, 1);
|
|
3496
|
-
const bandGroup = Math.floor(bandIndex / rowCycle) % 2;
|
|
3497
|
-
if (bandGroup === 0) {
|
|
3498
|
-
const band1Bg = resolveFill(styleEntry?.band1HFill, "rgba(217, 226, 243, 0.5)");
|
|
3499
|
-
style.backgroundColor = band1Bg;
|
|
3500
|
-
applied = true;
|
|
3501
|
-
} else if (styleEntry?.band2HFill) {
|
|
3502
|
-
const band2Bg = resolveFill(styleEntry.band2HFill, "");
|
|
3503
|
-
if (band2Bg) {
|
|
3504
|
-
style.backgroundColor = band2Bg;
|
|
3505
|
-
applied = true;
|
|
3506
|
-
}
|
|
3507
|
-
}
|
|
3508
|
-
}
|
|
3509
|
-
if (td.bandedColumns) {
|
|
3510
|
-
const isFirstCol = td.firstCol;
|
|
3511
|
-
const isLastCol = td.lastCol;
|
|
3512
|
-
const colBandIndex = isFirstCol && cellIndex > 0 ? cellIndex - 1 : cellIndex;
|
|
3513
|
-
const skipCol = isFirstCol && cellIndex === 0 || isLastCol && cellIndex === columnCount - 1;
|
|
3514
|
-
if (!skipCol) {
|
|
3515
|
-
const colCycle = Math.max(td.bandColCycle ?? 1, 1);
|
|
3516
|
-
const colBandGroup = Math.floor(colBandIndex / colCycle) % 2;
|
|
3517
|
-
if (colBandGroup === 0) {
|
|
3518
|
-
if (!style.backgroundColor || !td.bandedRows) {
|
|
3519
|
-
const band1Bg = resolveFill(styleEntry?.band1VFill, "rgba(217, 226, 243, 0.35)");
|
|
3520
|
-
style.backgroundColor = band1Bg;
|
|
3521
|
-
applied = true;
|
|
3522
|
-
}
|
|
3523
|
-
} else if (styleEntry?.band2VFill) {
|
|
3524
|
-
if (!style.backgroundColor || !td.bandedRows) {
|
|
3525
|
-
const band2Bg = resolveFill(styleEntry.band2VFill, "");
|
|
3526
|
-
if (band2Bg) {
|
|
3527
|
-
style.backgroundColor = band2Bg;
|
|
3528
|
-
applied = true;
|
|
3529
|
-
}
|
|
3530
|
-
}
|
|
3531
|
-
}
|
|
3532
|
-
}
|
|
3533
|
-
}
|
|
3534
|
-
if (td.firstRowHeader && rowIndex === 0) {
|
|
3535
|
-
style.fontWeight = 700;
|
|
3536
|
-
const headerBg = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.85)");
|
|
3537
|
-
style.backgroundColor = headerBg;
|
|
3538
|
-
style.color = "#ffffff";
|
|
3539
|
-
applyTableStyleText(styleEntry?.firstRowText, colorScheme, style, fontScheme);
|
|
3540
|
-
applied = true;
|
|
3541
|
-
}
|
|
3542
|
-
if (td.lastRow && rowIndex === rowCount - 1) {
|
|
3543
|
-
style.fontWeight = 700;
|
|
3544
|
-
if (styleEntry?.lastRowFill) {
|
|
3545
|
-
const lastRowBg = resolveFill(styleEntry.lastRowFill, "");
|
|
3546
|
-
if (lastRowBg) {
|
|
3547
|
-
style.backgroundColor = lastRowBg;
|
|
3548
|
-
}
|
|
3549
|
-
}
|
|
3550
|
-
style.borderTopWidth = 2;
|
|
3551
|
-
style.borderTopColor = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.7)");
|
|
3552
|
-
style.borderTopStyle = "solid";
|
|
3553
|
-
applyTableStyleText(styleEntry?.lastRowText, colorScheme, style, fontScheme);
|
|
3554
|
-
applied = true;
|
|
3555
|
-
}
|
|
3556
|
-
if (td.firstCol && cellIndex === 0) {
|
|
3557
|
-
style.fontWeight = 700;
|
|
3558
|
-
if (styleEntry?.firstColFill) {
|
|
3559
|
-
const firstColBg = resolveFill(styleEntry.firstColFill, "");
|
|
3560
|
-
if (firstColBg) {
|
|
3561
|
-
style.backgroundColor = firstColBg;
|
|
3562
|
-
}
|
|
3563
|
-
}
|
|
3564
|
-
applyTableStyleText(styleEntry?.firstColText, colorScheme, style, fontScheme);
|
|
3565
|
-
applied = true;
|
|
3566
|
-
}
|
|
3567
|
-
if (td.lastCol && cellIndex === columnCount - 1) {
|
|
3568
|
-
style.fontWeight = 700;
|
|
3569
|
-
if (styleEntry?.lastColFill) {
|
|
3570
|
-
const lastColBg = resolveFill(styleEntry.lastColFill, "");
|
|
3571
|
-
if (lastColBg) {
|
|
3572
|
-
style.backgroundColor = lastColBg;
|
|
3573
|
-
}
|
|
3574
|
-
}
|
|
3575
|
-
applyTableStyleText(styleEntry?.lastColText, colorScheme, style, fontScheme);
|
|
3576
|
-
applied = true;
|
|
3577
|
-
}
|
|
3578
|
-
return applied ? style : void 0;
|
|
3350
|
+
return chunkUSAJMMF2_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
|
|
3351
|
+
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3352
|
+
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3353
|
+
fontScheme: styleCtx?.theme?.fontScheme
|
|
3354
|
+
});
|
|
3579
3355
|
}
|
|
3580
3356
|
|
|
3581
3357
|
// src/viewer/utils/table-data-parse.tsx
|
|
@@ -3633,7 +3409,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3633
3409
|
};
|
|
3634
3410
|
}
|
|
3635
3411
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3636
|
-
return
|
|
3412
|
+
return chunkUSAJMMF2_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3637
3413
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3638
3414
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3639
3415
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3756,144 +3532,6 @@ function TableCellInput({
|
|
|
3756
3532
|
}
|
|
3757
3533
|
);
|
|
3758
3534
|
}
|
|
3759
|
-
|
|
3760
|
-
// src/viewer/utils/table-render-helpers.ts
|
|
3761
|
-
function cellStyleToCss(style) {
|
|
3762
|
-
if (!style) {
|
|
3763
|
-
return {};
|
|
3764
|
-
}
|
|
3765
|
-
const css = {};
|
|
3766
|
-
if (style.fontSize) {
|
|
3767
|
-
css.fontSize = style.fontSize;
|
|
3768
|
-
}
|
|
3769
|
-
if (style.bold) {
|
|
3770
|
-
css.fontWeight = "bold";
|
|
3771
|
-
}
|
|
3772
|
-
if (style.italic) {
|
|
3773
|
-
css.fontStyle = "italic";
|
|
3774
|
-
}
|
|
3775
|
-
if (style.underline) {
|
|
3776
|
-
css.textDecorationLine = "underline";
|
|
3777
|
-
}
|
|
3778
|
-
if (style.color) {
|
|
3779
|
-
css.color = style.color;
|
|
3780
|
-
}
|
|
3781
|
-
if (style.gradientFillCss) {
|
|
3782
|
-
css.background = style.gradientFillCss;
|
|
3783
|
-
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3784
|
-
const fg = chunk6QGTRYSC_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3785
|
-
const bg = chunk6QGTRYSC_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3786
|
-
const svgPattern = chunk6QGTRYSC_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3787
|
-
if (svgPattern) {
|
|
3788
|
-
const encoded = encodeURIComponent(svgPattern);
|
|
3789
|
-
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
3790
|
-
css.backgroundColor = bg;
|
|
3791
|
-
} else if (style.backgroundColor) {
|
|
3792
|
-
css.backgroundColor = style.backgroundColor;
|
|
3793
|
-
}
|
|
3794
|
-
} else if (style.backgroundColor) {
|
|
3795
|
-
css.backgroundColor = style.backgroundColor;
|
|
3796
|
-
}
|
|
3797
|
-
if (style.align) {
|
|
3798
|
-
css.textAlign = style.align;
|
|
3799
|
-
} else if (style.anchorCtr) {
|
|
3800
|
-
css.textAlign = "center";
|
|
3801
|
-
}
|
|
3802
|
-
if (style.vAlign) {
|
|
3803
|
-
css.verticalAlign = style.vAlign;
|
|
3804
|
-
}
|
|
3805
|
-
if (style.horzOverflow === "clip") {
|
|
3806
|
-
css.overflowX = "hidden";
|
|
3807
|
-
} else if (style.horzOverflow === "overflow") {
|
|
3808
|
-
css.overflowX = "visible";
|
|
3809
|
-
}
|
|
3810
|
-
if (style.textDirection) {
|
|
3811
|
-
switch (style.textDirection) {
|
|
3812
|
-
case "vert":
|
|
3813
|
-
case "eaVert":
|
|
3814
|
-
case "wordArtVert":
|
|
3815
|
-
case "wordArtVertRtl":
|
|
3816
|
-
css.writingMode = "vertical-rl";
|
|
3817
|
-
break;
|
|
3818
|
-
case "vert270":
|
|
3819
|
-
case "mongolianVert":
|
|
3820
|
-
css.writingMode = "vertical-lr";
|
|
3821
|
-
break;
|
|
3822
|
-
}
|
|
3823
|
-
if (style.textDirection === "wordArtVert") {
|
|
3824
|
-
css.textOrientation = "upright";
|
|
3825
|
-
} else if (css.writingMode) {
|
|
3826
|
-
css.textOrientation = "mixed";
|
|
3827
|
-
}
|
|
3828
|
-
if (style.textDirection === "wordArtVertRtl") {
|
|
3829
|
-
css.direction = "rtl";
|
|
3830
|
-
}
|
|
3831
|
-
}
|
|
3832
|
-
const borderEdges = [
|
|
3833
|
-
{
|
|
3834
|
-
prefix: "borderTop",
|
|
3835
|
-
width: style.borderTopWidth,
|
|
3836
|
-
color: style.borderTopColor,
|
|
3837
|
-
dash: style.borderTopDash
|
|
3838
|
-
},
|
|
3839
|
-
{
|
|
3840
|
-
prefix: "borderBottom",
|
|
3841
|
-
width: style.borderBottomWidth,
|
|
3842
|
-
color: style.borderBottomColor,
|
|
3843
|
-
dash: style.borderBottomDash
|
|
3844
|
-
},
|
|
3845
|
-
{
|
|
3846
|
-
prefix: "borderLeft",
|
|
3847
|
-
width: style.borderLeftWidth,
|
|
3848
|
-
color: style.borderLeftColor,
|
|
3849
|
-
dash: style.borderLeftDash
|
|
3850
|
-
},
|
|
3851
|
-
{
|
|
3852
|
-
prefix: "borderRight",
|
|
3853
|
-
width: style.borderRightWidth,
|
|
3854
|
-
color: style.borderRightColor,
|
|
3855
|
-
dash: style.borderRightDash
|
|
3856
|
-
}
|
|
3857
|
-
];
|
|
3858
|
-
for (const edge of borderEdges) {
|
|
3859
|
-
if (edge.width || edge.color) {
|
|
3860
|
-
const w = edge.width ?? 1;
|
|
3861
|
-
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3862
|
-
const s = chunk6QGTRYSC_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3863
|
-
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3864
|
-
}
|
|
3865
|
-
}
|
|
3866
|
-
if (style.marginLeft) {
|
|
3867
|
-
css.paddingLeft = style.marginLeft;
|
|
3868
|
-
}
|
|
3869
|
-
if (style.marginRight) {
|
|
3870
|
-
css.paddingRight = style.marginRight;
|
|
3871
|
-
}
|
|
3872
|
-
if (style.marginTop) {
|
|
3873
|
-
css.paddingTop = style.marginTop;
|
|
3874
|
-
}
|
|
3875
|
-
if (style.marginBottom) {
|
|
3876
|
-
css.paddingBottom = style.marginBottom;
|
|
3877
|
-
}
|
|
3878
|
-
const textShadowParts = [];
|
|
3879
|
-
if (style.textShadowColor) {
|
|
3880
|
-
const offX = style.textShadowOffsetX ?? 1;
|
|
3881
|
-
const offY = style.textShadowOffsetY ?? 1;
|
|
3882
|
-
const blur = style.textShadowBlur ?? 0;
|
|
3883
|
-
textShadowParts.push(`${offX}px ${offY}px ${blur}px ${style.textShadowColor}`);
|
|
3884
|
-
}
|
|
3885
|
-
if (style.textGlowColor) {
|
|
3886
|
-
const radius = style.textGlowRadius ?? 2;
|
|
3887
|
-
textShadowParts.push(`0px 0px ${radius}px ${style.textGlowColor}`);
|
|
3888
|
-
}
|
|
3889
|
-
if (textShadowParts.length > 0) {
|
|
3890
|
-
css.textShadow = textShadowParts.join(", ");
|
|
3891
|
-
}
|
|
3892
|
-
if (style.cell3D) {
|
|
3893
|
-
Object.assign(css, chunk6QGTRYSC_js.cell3DBevelCss(style.cell3D));
|
|
3894
|
-
}
|
|
3895
|
-
return css;
|
|
3896
|
-
}
|
|
3897
3535
|
function TableResizeOverlay({
|
|
3898
3536
|
children,
|
|
3899
3537
|
columnWidths,
|
|
@@ -3904,7 +3542,7 @@ function TableResizeOverlay({
|
|
|
3904
3542
|
const containerRef = React6.useRef(null);
|
|
3905
3543
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3906
3544
|
const dragRef = React6.useRef(null);
|
|
3907
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3545
|
+
const colBoundaries = React6.useMemo(() => chunkUSAJMMF2_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3908
3546
|
const measureRows = React6.useCallback(() => {
|
|
3909
3547
|
const container = containerRef.current;
|
|
3910
3548
|
if (!container) {
|
|
@@ -3951,11 +3589,11 @@ function TableResizeOverlay({
|
|
|
3951
3589
|
const rect = containerRef.current.getBoundingClientRect();
|
|
3952
3590
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
3953
3591
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
3954
|
-
onResizeColumns(
|
|
3592
|
+
onResizeColumns(chunkUSAJMMF2_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
3955
3593
|
} else if (drag.type === "row" && onResizeRow) {
|
|
3956
3594
|
const deltaY = e.clientY - drag.startPos;
|
|
3957
|
-
const newHeight =
|
|
3958
|
-
drag.initialRowHeight ??
|
|
3595
|
+
const newHeight = chunkUSAJMMF2_js.computeResizedRowHeight(
|
|
3596
|
+
drag.initialRowHeight ?? chunkUSAJMMF2_js.DEFAULT_ROW_HEIGHT,
|
|
3959
3597
|
deltaY
|
|
3960
3598
|
);
|
|
3961
3599
|
onResizeRow(drag.index, newHeight);
|
|
@@ -3993,7 +3631,7 @@ function TableResizeOverlay({
|
|
|
3993
3631
|
e.stopPropagation();
|
|
3994
3632
|
const table = containerRef.current?.querySelector("table");
|
|
3995
3633
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
3996
|
-
const actualHeight = tr?.offsetHeight ??
|
|
3634
|
+
const actualHeight = tr?.offsetHeight ?? chunkUSAJMMF2_js.DEFAULT_ROW_HEIGHT;
|
|
3997
3635
|
document.body.style.cursor = "row-resize";
|
|
3998
3636
|
document.body.style.userSelect = "none";
|
|
3999
3637
|
dragRef.current = {
|
|
@@ -4041,7 +3679,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4041
3679
|
}
|
|
4042
3680
|
const first = selectedCell.selectedCells[0];
|
|
4043
3681
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4044
|
-
return
|
|
3682
|
+
return chunkUSAJMMF2_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4045
3683
|
})();
|
|
4046
3684
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4047
3685
|
TableResizeOverlay,
|
|
@@ -4061,7 +3699,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4061
3699
|
"table",
|
|
4062
3700
|
{
|
|
4063
3701
|
className: "w-full h-full border-collapse table-fixed",
|
|
4064
|
-
style: { fontFamily:
|
|
3702
|
+
style: { fontFamily: chunkUSAJMMF2_js.DEFAULT_FONT_FAMILY },
|
|
4065
3703
|
children: [
|
|
4066
3704
|
tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4067
3705
|
"col",
|
|
@@ -4079,7 +3717,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4079
3717
|
return null;
|
|
4080
3718
|
}
|
|
4081
3719
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4082
|
-
const isInMultiSelection =
|
|
3720
|
+
const isInMultiSelection = chunkUSAJMMF2_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4083
3721
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4084
3722
|
const diag = getCellDiagonalBorders2(
|
|
4085
3723
|
cell.style,
|
|
@@ -4100,7 +3738,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4100
3738
|
rowSpan: cell.rowSpan && cell.rowSpan > 1 ? cell.rowSpan : void 0,
|
|
4101
3739
|
style: {
|
|
4102
3740
|
...textStyle,
|
|
4103
|
-
...cellStyleToCss(cell.style),
|
|
3741
|
+
...chunkUSAJMMF2_js.cellStyleToCss(cell.style),
|
|
4104
3742
|
...diag ? { position: "relative" } : void 0
|
|
4105
3743
|
},
|
|
4106
3744
|
onClick: (event) => {
|
|
@@ -4109,7 +3747,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4109
3747
|
}
|
|
4110
3748
|
event.stopPropagation();
|
|
4111
3749
|
if (event.shiftKey && selectedCell) {
|
|
4112
|
-
const rect =
|
|
3750
|
+
const rect = chunkUSAJMMF2_js.computeSelectionRect(
|
|
4113
3751
|
selectedCell.rowIndex,
|
|
4114
3752
|
selectedCell.columnIndex,
|
|
4115
3753
|
rowIndex,
|
|
@@ -4119,7 +3757,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4119
3757
|
options?.onSelectCell?.({
|
|
4120
3758
|
rowIndex: selectedCell.rowIndex,
|
|
4121
3759
|
columnIndex: selectedCell.columnIndex,
|
|
4122
|
-
selectedCells:
|
|
3760
|
+
selectedCells: chunkUSAJMMF2_js.rectToCells(rect)
|
|
4123
3761
|
});
|
|
4124
3762
|
} else {
|
|
4125
3763
|
options?.onSelectCell?.({
|
|
@@ -4147,7 +3785,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4147
3785
|
initialText: cell.text ?? "",
|
|
4148
3786
|
style: {
|
|
4149
3787
|
...textStyle,
|
|
4150
|
-
...cellStyleToCss(cell.style)
|
|
3788
|
+
...chunkUSAJMMF2_js.cellStyleToCss(cell.style)
|
|
4151
3789
|
},
|
|
4152
3790
|
onCommit: (text) => {
|
|
4153
3791
|
options?.onCommitCellEdit?.(rowIndex, cellIndex, text);
|
|
@@ -4198,7 +3836,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4198
3836
|
}
|
|
4199
3837
|
const first = selectedCell.selectedCells[0];
|
|
4200
3838
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4201
|
-
return
|
|
3839
|
+
return chunkUSAJMMF2_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4202
3840
|
})();
|
|
4203
3841
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4204
3842
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4219,7 +3857,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4219
3857
|
"table",
|
|
4220
3858
|
{
|
|
4221
3859
|
className: "w-full h-full border-collapse table-fixed",
|
|
4222
|
-
style: { fontFamily:
|
|
3860
|
+
style: { fontFamily: chunkUSAJMMF2_js.DEFAULT_FONT_FAMILY },
|
|
4223
3861
|
children: [
|
|
4224
3862
|
parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4225
3863
|
"col",
|
|
@@ -4246,7 +3884,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4246
3884
|
const colSpan = Number.isFinite(gridSpanRaw) && gridSpanRaw > 1 ? gridSpanRaw : void 0;
|
|
4247
3885
|
const rowSpanRaw = Number.parseInt(String(cell["@_rowSpan"] || ""), 10);
|
|
4248
3886
|
const rSpan = Number.isFinite(rowSpanRaw) && rowSpanRaw > 1 ? rowSpanRaw : void 0;
|
|
4249
|
-
const bandStyle =
|
|
3887
|
+
const bandStyle = getTableCellBandStyle2(
|
|
4250
3888
|
element,
|
|
4251
3889
|
rowIndex,
|
|
4252
3890
|
cellIndex,
|
|
@@ -4270,7 +3908,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4270
3908
|
const mergedStyle = {
|
|
4271
3909
|
...bandStyle,
|
|
4272
3910
|
...xmlCellStyle,
|
|
4273
|
-
...tdCellOverride ? cellStyleToCss(tdCellOverride) : void 0,
|
|
3911
|
+
...tdCellOverride ? chunkUSAJMMF2_js.cellStyleToCss(tdCellOverride) : void 0,
|
|
4274
3912
|
...diag ? { position: "relative" } : void 0
|
|
4275
3913
|
};
|
|
4276
3914
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -4280,7 +3918,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4280
3918
|
"border px-1 py-0.5 align-top",
|
|
4281
3919
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4282
3920
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4283
|
-
|
|
3921
|
+
chunkUSAJMMF2_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
3922
|
),
|
|
4285
3923
|
colSpan,
|
|
4286
3924
|
rowSpan: rSpan,
|
|
@@ -4291,7 +3929,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4291
3929
|
}
|
|
4292
3930
|
event.stopPropagation();
|
|
4293
3931
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4294
|
-
const rect =
|
|
3932
|
+
const rect = chunkUSAJMMF2_js.computeSelectionRect(
|
|
4295
3933
|
selectedCell.rowIndex,
|
|
4296
3934
|
selectedCell.columnIndex,
|
|
4297
3935
|
rowIndex,
|
|
@@ -4301,7 +3939,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4301
3939
|
options?.onSelectCell?.({
|
|
4302
3940
|
rowIndex: selectedCell.rowIndex,
|
|
4303
3941
|
columnIndex: selectedCell.columnIndex,
|
|
4304
|
-
selectedCells:
|
|
3942
|
+
selectedCells: chunkUSAJMMF2_js.rectToCells(rect)
|
|
4305
3943
|
});
|
|
4306
3944
|
} else {
|
|
4307
3945
|
options?.onSelectCell?.({
|
|
@@ -4358,24 +3996,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4358
3996
|
}
|
|
4359
3997
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4360
3998
|
function partAttrs(part) {
|
|
4361
|
-
return part ?
|
|
3999
|
+
return part ? chunkUSAJMMF2_js.chartPartToAttrs(part) : void 0;
|
|
4362
4000
|
}
|
|
4363
4001
|
function resolveReactPalette(chartData) {
|
|
4364
4002
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4365
4003
|
return chartData.colorPalette;
|
|
4366
4004
|
}
|
|
4367
|
-
return [...
|
|
4005
|
+
return [...chunkUSAJMMF2_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4368
4006
|
}
|
|
4369
4007
|
function buildReactChartViewModel(element) {
|
|
4370
4008
|
if (element.type !== "chart" || !element.chartData) {
|
|
4371
|
-
return
|
|
4009
|
+
return chunkUSAJMMF2_js.buildChartViewModel(element);
|
|
4372
4010
|
}
|
|
4373
4011
|
const palette = resolveReactPalette(element.chartData);
|
|
4374
4012
|
const themedElement = {
|
|
4375
4013
|
...element,
|
|
4376
4014
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4377
4015
|
};
|
|
4378
|
-
return
|
|
4016
|
+
return chunkUSAJMMF2_js.buildChartViewModel(themedElement);
|
|
4379
4017
|
}
|
|
4380
4018
|
function renderPrimitive(prim, key) {
|
|
4381
4019
|
switch (prim.kind) {
|
|
@@ -4764,7 +4402,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4764
4402
|
const unmatchedRows = [];
|
|
4765
4403
|
categories.forEach((cat, i) => {
|
|
4766
4404
|
const value = values[i] ?? 0;
|
|
4767
|
-
const code =
|
|
4405
|
+
const code = chunkUSAJMMF2_js.resolveRegionCode(cat);
|
|
4768
4406
|
if (code) {
|
|
4769
4407
|
regionValueMap.set(code, { value, label: cat });
|
|
4770
4408
|
} else {
|
|
@@ -4802,8 +4440,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4802
4440
|
let fill = "#e2e8f0";
|
|
4803
4441
|
let dataLabel = null;
|
|
4804
4442
|
if (entry) {
|
|
4805
|
-
const t =
|
|
4806
|
-
fill =
|
|
4443
|
+
const t = chunkUSAJMMF2_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4444
|
+
fill = chunkUSAJMMF2_js.sequentialColorScale(t);
|
|
4807
4445
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4808
4446
|
"text",
|
|
4809
4447
|
{
|
|
@@ -4814,7 +4452,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4814
4452
|
fontWeight: 600,
|
|
4815
4453
|
fill: "#1e293b",
|
|
4816
4454
|
style: { pointerEvents: "none" },
|
|
4817
|
-
children:
|
|
4455
|
+
children: chunkUSAJMMF2_js.formatAxisValue(entry.value)
|
|
4818
4456
|
},
|
|
4819
4457
|
`${element.id}-map-dl-${region.code}`
|
|
4820
4458
|
);
|
|
@@ -4832,7 +4470,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4832
4470
|
opacity: 0.9,
|
|
4833
4471
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4834
4472
|
region.name,
|
|
4835
|
-
entry ? `: ${
|
|
4473
|
+
entry ? `: ${chunkUSAJMMF2_js.formatAxisValue(entry.value)}` : ""
|
|
4836
4474
|
] })
|
|
4837
4475
|
}
|
|
4838
4476
|
),
|
|
@@ -4870,7 +4508,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4870
4508
|
fontSize: 7,
|
|
4871
4509
|
fill: "#64748b",
|
|
4872
4510
|
textAnchor: "middle",
|
|
4873
|
-
children:
|
|
4511
|
+
children: chunkUSAJMMF2_js.formatAxisValue(minVal)
|
|
4874
4512
|
},
|
|
4875
4513
|
`${element.id}-map-legend-min`
|
|
4876
4514
|
),
|
|
@@ -4882,7 +4520,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4882
4520
|
fontSize: 7,
|
|
4883
4521
|
fill: "#64748b",
|
|
4884
4522
|
textAnchor: "middle",
|
|
4885
|
-
children:
|
|
4523
|
+
children: chunkUSAJMMF2_js.formatAxisValue(maxVal)
|
|
4886
4524
|
},
|
|
4887
4525
|
`${element.id}-map-legend-max`
|
|
4888
4526
|
)
|
|
@@ -4948,7 +4586,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4948
4586
|
y,
|
|
4949
4587
|
fontSize,
|
|
4950
4588
|
fill: "#475569",
|
|
4951
|
-
children:
|
|
4589
|
+
children: chunkUSAJMMF2_js.formatAxisValue(row.value)
|
|
4952
4590
|
},
|
|
4953
4591
|
`${element.id}-map-ft-val-${i}`
|
|
4954
4592
|
)
|
|
@@ -5019,7 +4657,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5019
4657
|
|
|
5020
4658
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5021
4659
|
function sColor(series, idx) {
|
|
5022
|
-
return
|
|
4660
|
+
return chunkUSAJMMF2_js.seriesColor(series, idx);
|
|
5023
4661
|
}
|
|
5024
4662
|
function valToY(val, range, topY, bottomY) {
|
|
5025
4663
|
const usable = bottomY - topY;
|
|
@@ -5558,7 +5196,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5558
5196
|
width: 10,
|
|
5559
5197
|
height: 10,
|
|
5560
5198
|
rx: 2,
|
|
5561
|
-
fill:
|
|
5199
|
+
fill: chunkUSAJMMF2_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5562
5200
|
},
|
|
5563
5201
|
`${id}-leg-r-${i}`
|
|
5564
5202
|
)
|
|
@@ -5582,7 +5220,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5582
5220
|
width: 10,
|
|
5583
5221
|
height: 10,
|
|
5584
5222
|
rx: 2,
|
|
5585
|
-
fill:
|
|
5223
|
+
fill: chunkUSAJMMF2_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5586
5224
|
}
|
|
5587
5225
|
),
|
|
5588
5226
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5595,9 +5233,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5595
5233
|
}
|
|
5596
5234
|
const lines = [];
|
|
5597
5235
|
if (range.logScale && range.logBase) {
|
|
5598
|
-
const ticks =
|
|
5236
|
+
const ticks = chunkUSAJMMF2_js.generateLogTicks(range);
|
|
5599
5237
|
ticks.forEach((tickVal, i) => {
|
|
5600
|
-
const y =
|
|
5238
|
+
const y = chunkUSAJMMF2_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5601
5239
|
lines.push(
|
|
5602
5240
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5603
5241
|
"line",
|
|
@@ -5618,7 +5256,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5618
5256
|
const steps = 4;
|
|
5619
5257
|
for (let i = 0; i <= steps; i++) {
|
|
5620
5258
|
const val = range.min + range.span * i / steps;
|
|
5621
|
-
const y =
|
|
5259
|
+
const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5622
5260
|
lines.push(
|
|
5623
5261
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5624
5262
|
"line",
|
|
@@ -5642,9 +5280,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5642
5280
|
const labels = [];
|
|
5643
5281
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5644
5282
|
if (range.logScale && range.logBase) {
|
|
5645
|
-
const ticks =
|
|
5283
|
+
const ticks = chunkUSAJMMF2_js.generateLogTicks(range);
|
|
5646
5284
|
ticks.forEach((tickVal, i) => {
|
|
5647
|
-
const y =
|
|
5285
|
+
const y = chunkUSAJMMF2_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5648
5286
|
labels.push(
|
|
5649
5287
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5650
5288
|
"text",
|
|
@@ -5654,7 +5292,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5654
5292
|
textAnchor: "end",
|
|
5655
5293
|
fontSize: 8,
|
|
5656
5294
|
fill: "#64748b",
|
|
5657
|
-
children: hasDisplayUnits ?
|
|
5295
|
+
children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(tickVal)
|
|
5658
5296
|
},
|
|
5659
5297
|
`${id}-vaxis-log-${i}`
|
|
5660
5298
|
)
|
|
@@ -5664,7 +5302,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5664
5302
|
const steps = 4;
|
|
5665
5303
|
for (let i = 0; i <= steps; i++) {
|
|
5666
5304
|
const val = range.min + range.span * i / steps;
|
|
5667
|
-
const y =
|
|
5305
|
+
const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5668
5306
|
labels.push(
|
|
5669
5307
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5670
5308
|
"text",
|
|
@@ -5674,7 +5312,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5674
5312
|
textAnchor: "end",
|
|
5675
5313
|
fontSize: 8,
|
|
5676
5314
|
fill: "#64748b",
|
|
5677
|
-
children: hasDisplayUnits ?
|
|
5315
|
+
children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(val)
|
|
5678
5316
|
},
|
|
5679
5317
|
`${id}-vaxis-${i}`
|
|
5680
5318
|
)
|
|
@@ -5682,7 +5320,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5682
5320
|
}
|
|
5683
5321
|
}
|
|
5684
5322
|
if (hasDisplayUnits) {
|
|
5685
|
-
const unitLabel =
|
|
5323
|
+
const unitLabel = chunkUSAJMMF2_js.getDisplayUnitLabel(
|
|
5686
5324
|
axisFormatting.displayUnits,
|
|
5687
5325
|
axisFormatting.displayUnitsLabel
|
|
5688
5326
|
);
|
|
@@ -5757,7 +5395,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5757
5395
|
if (range.min >= 0) {
|
|
5758
5396
|
return null;
|
|
5759
5397
|
}
|
|
5760
|
-
const y =
|
|
5398
|
+
const y = chunkUSAJMMF2_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5761
5399
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5762
5400
|
"line",
|
|
5763
5401
|
{
|
|
@@ -5781,7 +5419,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5781
5419
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5782
5420
|
for (let i = 0; i <= steps; i++) {
|
|
5783
5421
|
const val = range.min + range.span * i / steps;
|
|
5784
|
-
const y =
|
|
5422
|
+
const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5785
5423
|
labels.push(
|
|
5786
5424
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5787
5425
|
"text",
|
|
@@ -5793,7 +5431,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5793
5431
|
fontFamily,
|
|
5794
5432
|
fontWeight,
|
|
5795
5433
|
fill: fontColor,
|
|
5796
|
-
children: hasDisplayUnits ?
|
|
5434
|
+
children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(val)
|
|
5797
5435
|
},
|
|
5798
5436
|
`${id}-sec-vaxis-${i}`
|
|
5799
5437
|
)
|
|
@@ -5817,7 +5455,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5817
5455
|
);
|
|
5818
5456
|
}
|
|
5819
5457
|
if (hasDisplayUnits) {
|
|
5820
|
-
const unitLabel =
|
|
5458
|
+
const unitLabel = chunkUSAJMMF2_js.getDisplayUnitLabel(
|
|
5821
5459
|
axisFormatting.displayUnits,
|
|
5822
5460
|
axisFormatting.displayUnitsLabel
|
|
5823
5461
|
);
|
|
@@ -5848,7 +5486,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5848
5486
|
const ticks = [];
|
|
5849
5487
|
for (let i = 0; i <= steps; i++) {
|
|
5850
5488
|
const val = range.min + range.span * i / steps;
|
|
5851
|
-
const y =
|
|
5489
|
+
const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5852
5490
|
ticks.push(
|
|
5853
5491
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5854
5492
|
"line",
|
|
@@ -5875,7 +5513,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5875
5513
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5876
5514
|
for (let i = 0; i <= steps; i++) {
|
|
5877
5515
|
const val = range.min + range.span * i / steps;
|
|
5878
|
-
const y =
|
|
5516
|
+
const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5879
5517
|
lines.push(
|
|
5880
5518
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5881
5519
|
"line",
|
|
@@ -6037,7 +5675,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6037
5675
|
width: 8,
|
|
6038
5676
|
height: 8,
|
|
6039
5677
|
borderRadius: 2,
|
|
6040
|
-
backgroundColor:
|
|
5678
|
+
backgroundColor: chunkUSAJMMF2_js.seriesColor(
|
|
6041
5679
|
s,
|
|
6042
5680
|
si,
|
|
6043
5681
|
chartData.style?.styleId,
|
|
@@ -6075,10 +5713,10 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6075
5713
|
}
|
|
6076
5714
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6077
5715
|
const style = chartData.style;
|
|
6078
|
-
const areaFill =
|
|
5716
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6079
5717
|
const legendPos = style?.legendPosition || "b";
|
|
6080
|
-
const range =
|
|
6081
|
-
const layout =
|
|
5718
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
5719
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6082
5720
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6083
5721
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6084
5722
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6099,10 +5737,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6099
5737
|
const close = closeSeries.values[ci] ?? high;
|
|
6100
5738
|
const isUp = close >= open;
|
|
6101
5739
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6102
|
-
const highY =
|
|
6103
|
-
const lowY =
|
|
6104
|
-
const openY =
|
|
6105
|
-
const closeY =
|
|
5740
|
+
const highY = chunkUSAJMMF2_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
5741
|
+
const lowY = chunkUSAJMMF2_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
5742
|
+
const openY = chunkUSAJMMF2_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
5743
|
+
const closeY = chunkUSAJMMF2_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6106
5744
|
elements.push(
|
|
6107
5745
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6108
5746
|
"line",
|
|
@@ -6145,7 +5783,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6145
5783
|
textAnchor: "middle",
|
|
6146
5784
|
fontSize: 7,
|
|
6147
5785
|
fill: "#334155",
|
|
6148
|
-
children:
|
|
5786
|
+
children: chunkUSAJMMF2_js.formatAxisValue(close)
|
|
6149
5787
|
},
|
|
6150
5788
|
`${element.id}-stock-dl-${ci}`
|
|
6151
5789
|
)
|
|
@@ -6187,7 +5825,7 @@ function FailedToLoad() {
|
|
|
6187
5825
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6188
5826
|
async () => {
|
|
6189
5827
|
try {
|
|
6190
|
-
return await import('./SurfaceChart3DScene-
|
|
5828
|
+
return await import('./SurfaceChart3DScene-W6I255VU.js');
|
|
6191
5829
|
} catch {
|
|
6192
5830
|
return { default: FailedToLoad };
|
|
6193
5831
|
}
|
|
@@ -6211,7 +5849,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6211
5849
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6212
5850
|
const rows = chartData.series.length;
|
|
6213
5851
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6214
|
-
const range =
|
|
5852
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6215
5853
|
const heightMap = new Float32Array(rows * cols);
|
|
6216
5854
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6217
5855
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6330,10 +5968,10 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6330
5968
|
}
|
|
6331
5969
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6332
5970
|
const style = chartData.style;
|
|
6333
|
-
const areaFill =
|
|
5971
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6334
5972
|
const legendPos = style?.legendPosition || "b";
|
|
6335
|
-
const layout =
|
|
6336
|
-
const range =
|
|
5973
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
5974
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6337
5975
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6338
5976
|
const seriesCount = chartData.series.length;
|
|
6339
5977
|
const cols = catCount - 1;
|
|
@@ -6422,10 +6060,10 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6422
6060
|
}
|
|
6423
6061
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6424
6062
|
const style = chartData.style;
|
|
6425
|
-
const areaFill =
|
|
6063
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6426
6064
|
const legendPos = style?.legendPosition || "b";
|
|
6427
|
-
const layout =
|
|
6428
|
-
const range =
|
|
6065
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6066
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6429
6067
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6430
6068
|
const seriesCount = chartData.series.length;
|
|
6431
6069
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6487,9 +6125,9 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6487
6125
|
}
|
|
6488
6126
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6489
6127
|
const style = chartData.style;
|
|
6490
|
-
const areaFill =
|
|
6128
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6491
6129
|
const legendPos = style?.legendPosition || "b";
|
|
6492
|
-
const layout =
|
|
6130
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6493
6131
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6494
6132
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6495
6133
|
const rects = [];
|
|
@@ -6512,7 +6150,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6512
6150
|
y: curY,
|
|
6513
6151
|
width: Math.max(w - 1, 1),
|
|
6514
6152
|
height: Math.max(h - 1, 1),
|
|
6515
|
-
fill:
|
|
6153
|
+
fill: chunkUSAJMMF2_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6516
6154
|
rx: 2,
|
|
6517
6155
|
opacity: 0.85
|
|
6518
6156
|
},
|
|
@@ -6563,11 +6201,11 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6563
6201
|
}
|
|
6564
6202
|
function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
6565
6203
|
const style = chartData.style;
|
|
6566
|
-
const areaFill =
|
|
6204
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6567
6205
|
const legendPos = style?.legendPosition || "b";
|
|
6568
6206
|
const values = chartData.series[0]?.values ?? [];
|
|
6569
|
-
const range =
|
|
6570
|
-
const layout =
|
|
6207
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6208
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6571
6209
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6572
6210
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6573
6211
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6578,8 +6216,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6578
6216
|
const isLast = i === values.length - 1;
|
|
6579
6217
|
const startVal = isLast ? 0 : runningTotal;
|
|
6580
6218
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6581
|
-
const barStartY =
|
|
6582
|
-
const barEndY =
|
|
6219
|
+
const barStartY = chunkUSAJMMF2_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6220
|
+
const barEndY = chunkUSAJMMF2_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6583
6221
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6584
6222
|
const y = Math.min(barStartY, barEndY);
|
|
6585
6223
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6608,7 +6246,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6608
6246
|
textAnchor: "middle",
|
|
6609
6247
|
fontSize: 7,
|
|
6610
6248
|
fill: "#334155",
|
|
6611
|
-
children:
|
|
6249
|
+
children: chunkUSAJMMF2_js.formatAxisValue(isLast ? endVal : val)
|
|
6612
6250
|
},
|
|
6613
6251
|
`${element.id}-wf-dl-${i}`
|
|
6614
6252
|
)
|
|
@@ -6655,20 +6293,20 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6655
6293
|
}
|
|
6656
6294
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6657
6295
|
const style = chartData.style;
|
|
6658
|
-
const areaFill =
|
|
6296
|
+
const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
|
|
6659
6297
|
const legendPos = style?.legendPosition || "b";
|
|
6660
|
-
const layoutOpts =
|
|
6298
|
+
const layoutOpts = chunkUSAJMMF2_js.computeLayoutOptions(
|
|
6661
6299
|
chartData.axes,
|
|
6662
6300
|
chartData.dataTable,
|
|
6663
6301
|
chartData.series.length
|
|
6664
6302
|
);
|
|
6665
|
-
const layout =
|
|
6666
|
-
const { primary, secondary } =
|
|
6303
|
+
const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6304
|
+
const { primary, secondary } = chunkUSAJMMF2_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6667
6305
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6668
6306
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6669
|
-
const range =
|
|
6670
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6671
|
-
const secondaryAxisFmt =
|
|
6307
|
+
const range = chunkUSAJMMF2_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6308
|
+
const secondaryRange = secondarySeries.length > 0 ? chunkUSAJMMF2_js.computeValueRange(secondarySeries) : void 0;
|
|
6309
|
+
const secondaryAxisFmt = chunkUSAJMMF2_js.getSecondaryValueAxis(chartData.axes);
|
|
6672
6310
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6673
6311
|
const barSeriesCount = 1;
|
|
6674
6312
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6684,8 +6322,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6684
6322
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6685
6323
|
barSeries.values.forEach((val, vi) => {
|
|
6686
6324
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6687
|
-
const zeroY =
|
|
6688
|
-
const valY =
|
|
6325
|
+
const zeroY = chunkUSAJMMF2_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6326
|
+
const valY = chunkUSAJMMF2_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6689
6327
|
const y = Math.min(zeroY, valY);
|
|
6690
6328
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6691
6329
|
barElements.push(
|
|
@@ -6696,7 +6334,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6696
6334
|
y,
|
|
6697
6335
|
width: barWidth,
|
|
6698
6336
|
height: h,
|
|
6699
|
-
fill:
|
|
6337
|
+
fill: chunkUSAJMMF2_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6700
6338
|
rx: 1
|
|
6701
6339
|
},
|
|
6702
6340
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6712,7 +6350,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6712
6350
|
textAnchor: "middle",
|
|
6713
6351
|
fontSize: 7,
|
|
6714
6352
|
fill: "#334155",
|
|
6715
|
-
children:
|
|
6353
|
+
children: chunkUSAJMMF2_js.formatAxisValue(val)
|
|
6716
6354
|
},
|
|
6717
6355
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6718
6356
|
)
|
|
@@ -6729,10 +6367,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6729
6367
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6730
6368
|
const points = series.values.map((val, vi) => {
|
|
6731
6369
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6732
|
-
const y =
|
|
6370
|
+
const y = chunkUSAJMMF2_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6733
6371
|
return { x, y, val };
|
|
6734
6372
|
});
|
|
6735
|
-
const c =
|
|
6373
|
+
const c = chunkUSAJMMF2_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6736
6374
|
lineElements.push(
|
|
6737
6375
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6738
6376
|
"polyline",
|
|
@@ -6759,7 +6397,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6759
6397
|
textAnchor: "middle",
|
|
6760
6398
|
fontSize: 7,
|
|
6761
6399
|
fill: "#334155",
|
|
6762
|
-
children:
|
|
6400
|
+
children: chunkUSAJMMF2_js.formatAxisValue(p.val)
|
|
6763
6401
|
},
|
|
6764
6402
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6765
6403
|
)
|
|
@@ -6862,1032 +6500,6 @@ function renderChartElement(element) {
|
|
|
6862
6500
|
}
|
|
6863
6501
|
return renderDefaultBarChart(element);
|
|
6864
6502
|
}
|
|
6865
|
-
var PALETTES = {
|
|
6866
|
-
colorful1: ["#3b82f6", "#22c55e", "#f97316", "#eab308", "#a855f7", "#ec4899"],
|
|
6867
|
-
colorful2: ["#6366f1", "#14b8a6", "#f59e0b", "#ef4444", "#8b5cf6", "#06b6d4"],
|
|
6868
|
-
colorful3: ["#0ea5e9", "#84cc16", "#f43e5e", "#a855f7", "#f97316", "#10b981"],
|
|
6869
|
-
monochromatic1: ["#3b82f6", "#60a5fa", "#93c5fd", "#bfdbfe", "#2563eb", "#1d4ed8"],
|
|
6870
|
-
monochromatic2: ["#6366f1", "#818cf8", "#a5b4fc", "#c7d2fe", "#4f46e5", "#4338ca"]
|
|
6871
|
-
};
|
|
6872
|
-
var DEFAULT_PALETTE = PALETTES.colorful1;
|
|
6873
|
-
function colour(index, palette = DEFAULT_PALETTE) {
|
|
6874
|
-
return palette[index % palette.length];
|
|
6875
|
-
}
|
|
6876
|
-
function nodeOpacity(index, total, style) {
|
|
6877
|
-
const base = style === "intense" ? 1 : style === "moderate" ? 0.92 : 0.85;
|
|
6878
|
-
if (total <= 1) {
|
|
6879
|
-
return base;
|
|
6880
|
-
}
|
|
6881
|
-
return base - index / (total - 1) * 0.15;
|
|
6882
|
-
}
|
|
6883
|
-
function styleShadow(style) {
|
|
6884
|
-
if (style === "intense") {
|
|
6885
|
-
return "drop-shadow(0 2px 6px rgba(0,0,0,0.35))";
|
|
6886
|
-
}
|
|
6887
|
-
if (style === "moderate") {
|
|
6888
|
-
return "drop-shadow(0 1px 3px rgba(0,0,0,0.2))";
|
|
6889
|
-
}
|
|
6890
|
-
return void 0;
|
|
6891
|
-
}
|
|
6892
|
-
function styleStroke(style) {
|
|
6893
|
-
if (style === "intense") {
|
|
6894
|
-
return 2;
|
|
6895
|
-
}
|
|
6896
|
-
if (style === "moderate") {
|
|
6897
|
-
return 1.5;
|
|
6898
|
-
}
|
|
6899
|
-
return 0;
|
|
6900
|
-
}
|
|
6901
|
-
function truncate(text, max) {
|
|
6902
|
-
if (text.length <= max) {
|
|
6903
|
-
return text;
|
|
6904
|
-
}
|
|
6905
|
-
return `${text.slice(0, max - 1)}\u2026`;
|
|
6906
|
-
}
|
|
6907
|
-
function resolvePalette(el) {
|
|
6908
|
-
if (el.type !== "smartArt" || !el.smartArtData) {
|
|
6909
|
-
return DEFAULT_PALETTE;
|
|
6910
|
-
}
|
|
6911
|
-
const ctFills = el.smartArtData.colorTransform?.fillColors;
|
|
6912
|
-
if (ctFills && ctFills.length > 0) {
|
|
6913
|
-
return ctFills;
|
|
6914
|
-
}
|
|
6915
|
-
return PALETTES[el.smartArtData.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
|
|
6916
|
-
}
|
|
6917
|
-
function resolveStyle(el) {
|
|
6918
|
-
if (el.type !== "smartArt" || !el.smartArtData) {
|
|
6919
|
-
return "flat";
|
|
6920
|
-
}
|
|
6921
|
-
return el.smartArtData.style ?? "flat";
|
|
6922
|
-
}
|
|
6923
|
-
function resolveSmartArtDataPalette(data) {
|
|
6924
|
-
const ctFills = data.colorTransform?.fillColors;
|
|
6925
|
-
if (ctFills && ctFills.length > 0) {
|
|
6926
|
-
return ctFills;
|
|
6927
|
-
}
|
|
6928
|
-
return PALETTES[data.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
|
|
6929
|
-
}
|
|
6930
|
-
function buildTree(nodes) {
|
|
6931
|
-
const map = /* @__PURE__ */ new Map();
|
|
6932
|
-
for (const n of nodes) {
|
|
6933
|
-
map.set(n.id, { node: n, children: [] });
|
|
6934
|
-
}
|
|
6935
|
-
const roots = [];
|
|
6936
|
-
for (const n of nodes) {
|
|
6937
|
-
const treeNode = map.get(n.id);
|
|
6938
|
-
if (n.parentId && map.has(n.parentId)) {
|
|
6939
|
-
map.get(n.parentId).children.push(treeNode);
|
|
6940
|
-
} else {
|
|
6941
|
-
roots.push(treeNode);
|
|
6942
|
-
}
|
|
6943
|
-
}
|
|
6944
|
-
return roots;
|
|
6945
|
-
}
|
|
6946
|
-
function treeWidth(t) {
|
|
6947
|
-
if (t.children.length === 0) {
|
|
6948
|
-
return 1;
|
|
6949
|
-
}
|
|
6950
|
-
return t.children.reduce((sum, c) => sum + treeWidth(c), 0);
|
|
6951
|
-
}
|
|
6952
|
-
function treeDepth(t) {
|
|
6953
|
-
if (t.children.length === 0) {
|
|
6954
|
-
return 1;
|
|
6955
|
-
}
|
|
6956
|
-
return 1 + Math.max(...t.children.map(treeDepth));
|
|
6957
|
-
}
|
|
6958
|
-
function layoutToCategory(layout) {
|
|
6959
|
-
if (!layout) {
|
|
6960
|
-
return "list";
|
|
6961
|
-
}
|
|
6962
|
-
const map = {
|
|
6963
|
-
basicBlockList: "list",
|
|
6964
|
-
alternatingHexagons: "list",
|
|
6965
|
-
basicChevronProcess: "process",
|
|
6966
|
-
basicCycle: "cycle",
|
|
6967
|
-
basicPie: "cycle",
|
|
6968
|
-
basicRadial: "radial",
|
|
6969
|
-
basicVenn: "venn",
|
|
6970
|
-
continuousBlockProcess: "process",
|
|
6971
|
-
convergingRadial: "radial",
|
|
6972
|
-
hierarchy: "hierarchy",
|
|
6973
|
-
horizontalBulletList: "list",
|
|
6974
|
-
linearVenn: "venn",
|
|
6975
|
-
segmentedProcess: "process",
|
|
6976
|
-
stackedList: "list",
|
|
6977
|
-
tableList: "list",
|
|
6978
|
-
trapezoidList: "list",
|
|
6979
|
-
upwardArrow: "process",
|
|
6980
|
-
basicFunnel: "funnel",
|
|
6981
|
-
basicTarget: "radial",
|
|
6982
|
-
interlockingGears: "radial",
|
|
6983
|
-
basicTimeline: "process",
|
|
6984
|
-
basicMatrix: "matrix",
|
|
6985
|
-
basicPyramid: "pyramid",
|
|
6986
|
-
invertedPyramid: "pyramid",
|
|
6987
|
-
bendingProcess: "process",
|
|
6988
|
-
stepDownProcess: "stepdown",
|
|
6989
|
-
alternatingFlow: "alternatingflow",
|
|
6990
|
-
descendingProcess: "descending",
|
|
6991
|
-
pictureAccentList: "pictureaccent",
|
|
6992
|
-
verticalBlockList: "verticalblock",
|
|
6993
|
-
groupedList: "grouped",
|
|
6994
|
-
pyramidList: "pyramidlist",
|
|
6995
|
-
horizontalPictureList: "horizontalpicture",
|
|
6996
|
-
accentProcess: "accentprocess",
|
|
6997
|
-
verticalChevronList: "verticalchevron"
|
|
6998
|
-
};
|
|
6999
|
-
return map[layout] ?? "list";
|
|
7000
|
-
}
|
|
7001
|
-
function smartArtNodeGroupProps(nodeId, shadow, label2) {
|
|
7002
|
-
const props = {
|
|
7003
|
-
"data-smartart-node-id": nodeId,
|
|
7004
|
-
style: { filter: shadow, pointerEvents: "auto" }
|
|
7005
|
-
};
|
|
7006
|
-
if (label2) {
|
|
7007
|
-
props.role = "img";
|
|
7008
|
-
props["aria-label"] = label2;
|
|
7009
|
-
}
|
|
7010
|
-
return props;
|
|
7011
|
-
}
|
|
7012
|
-
function fitFontSize(text, maxWidth, maxHeight, baseSize) {
|
|
7013
|
-
const charWidthRatio = 0.6;
|
|
7014
|
-
const maxByWidth = maxWidth / (text.length * charWidthRatio);
|
|
7015
|
-
const maxByHeight = maxHeight * 0.5;
|
|
7016
|
-
return Math.max(6, Math.min(baseSize, maxByWidth, maxByHeight));
|
|
7017
|
-
}
|
|
7018
|
-
function chevronPoints(x, y, w, h) {
|
|
7019
|
-
const depth = Math.min(w * 0.2, h * 0.4);
|
|
7020
|
-
return [
|
|
7021
|
-
`${x},${y}`,
|
|
7022
|
-
`${x + w - depth},${y}`,
|
|
7023
|
-
`${x + w},${y + h / 2}`,
|
|
7024
|
-
`${x + w - depth},${y + h}`,
|
|
7025
|
-
`${x},${y + h}`,
|
|
7026
|
-
`${x + depth},${y + h / 2}`
|
|
7027
|
-
].join(" ");
|
|
7028
|
-
}
|
|
7029
|
-
function gearPath(cx, cy, outerR, innerR, teeth) {
|
|
7030
|
-
const segments = [];
|
|
7031
|
-
const step = Math.PI * 2 / (teeth * 2);
|
|
7032
|
-
for (let i = 0; i < teeth * 2; i++) {
|
|
7033
|
-
const angle = i * step - Math.PI / 2;
|
|
7034
|
-
const r = i % 2 === 0 ? outerR : innerR;
|
|
7035
|
-
const x = cx + r * Math.cos(angle);
|
|
7036
|
-
const y = cy + r * Math.sin(angle);
|
|
7037
|
-
segments.push(i === 0 ? `M${x},${y}` : `L${x},${y}`);
|
|
7038
|
-
}
|
|
7039
|
-
segments.push("Z");
|
|
7040
|
-
return segments.join(" ");
|
|
7041
|
-
}
|
|
7042
|
-
function SmartArtNodeText({
|
|
7043
|
-
text,
|
|
7044
|
-
x,
|
|
7045
|
-
y,
|
|
7046
|
-
fill,
|
|
7047
|
-
fontSize,
|
|
7048
|
-
fontWeight,
|
|
7049
|
-
fontStyle,
|
|
7050
|
-
className,
|
|
7051
|
-
anchor = "middle"
|
|
7052
|
-
}) {
|
|
7053
|
-
const lines = text.split("\n").filter((l) => l.length > 0);
|
|
7054
|
-
const lineHeight = fontSize * 1.2;
|
|
7055
|
-
let startY;
|
|
7056
|
-
let dominantBaseline;
|
|
7057
|
-
if (anchor === "bottom") {
|
|
7058
|
-
startY = lines.length > 0 ? y - (lines.length - 1) * lineHeight : y;
|
|
7059
|
-
dominantBaseline = "auto";
|
|
7060
|
-
} else if (anchor === "top") {
|
|
7061
|
-
startY = y;
|
|
7062
|
-
dominantBaseline = "hanging";
|
|
7063
|
-
} else {
|
|
7064
|
-
const totalHeight = lines.length * lineHeight;
|
|
7065
|
-
startY = lines.length > 0 ? y - totalHeight / 2 + lineHeight / 2 : y;
|
|
7066
|
-
dominantBaseline = "central";
|
|
7067
|
-
}
|
|
7068
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7069
|
-
"text",
|
|
7070
|
-
{
|
|
7071
|
-
x,
|
|
7072
|
-
textAnchor: "middle",
|
|
7073
|
-
dominantBaseline,
|
|
7074
|
-
fill,
|
|
7075
|
-
fontSize,
|
|
7076
|
-
fontWeight,
|
|
7077
|
-
fontStyle,
|
|
7078
|
-
className,
|
|
7079
|
-
children: lines.map((line, i) => /* @__PURE__ */ jsxRuntime.jsx("tspan", { x, y: startY + i * lineHeight, children: line }, i))
|
|
7080
|
-
}
|
|
7081
|
-
);
|
|
7082
|
-
}
|
|
7083
|
-
function wrapChrome(chrome, content, className, a11y) {
|
|
7084
|
-
const wrapperStyle = {};
|
|
7085
|
-
if (chrome?.backgroundColor) {
|
|
7086
|
-
wrapperStyle.backgroundColor = chrome.backgroundColor;
|
|
7087
|
-
}
|
|
7088
|
-
if (chrome?.outlineColor) {
|
|
7089
|
-
wrapperStyle.border = `${chrome.outlineWidth ?? 1}px solid ${chrome.outlineColor}`;
|
|
7090
|
-
}
|
|
7091
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7092
|
-
"div",
|
|
7093
|
-
{
|
|
7094
|
-
className: `w-full h-full ${className}`,
|
|
7095
|
-
style: wrapperStyle,
|
|
7096
|
-
role: a11y?.role,
|
|
7097
|
-
"aria-label": a11y?.label,
|
|
7098
|
-
children: content
|
|
7099
|
-
}
|
|
7100
|
-
);
|
|
7101
|
-
}
|
|
7102
|
-
function renderStepDownProcess(element, nodes, palette, style) {
|
|
7103
|
-
const w = element.width;
|
|
7104
|
-
const h = element.height;
|
|
7105
|
-
const pad = 8;
|
|
7106
|
-
const usableW = w - pad * 2;
|
|
7107
|
-
const usableH = h - pad * 2;
|
|
7108
|
-
const stepW = usableW / nodes.length;
|
|
7109
|
-
const stepH = usableH / nodes.length;
|
|
7110
|
-
const boxW = stepW * 0.85;
|
|
7111
|
-
const boxH = stepH * 0.6;
|
|
7112
|
-
const shadow = styleShadow(style);
|
|
7113
|
-
const sw = styleStroke(style);
|
|
7114
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7115
|
-
"svg",
|
|
7116
|
-
{
|
|
7117
|
-
className: "w-full h-full pointer-events-none",
|
|
7118
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7119
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7120
|
-
style: { filter: shadow },
|
|
7121
|
-
children: nodes.map((node, i) => {
|
|
7122
|
-
const x = pad + i * stepW;
|
|
7123
|
-
const y = pad + i * stepH;
|
|
7124
|
-
const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
|
|
7125
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7126
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7127
|
-
"line",
|
|
7128
|
-
{
|
|
7129
|
-
x1: x + boxW,
|
|
7130
|
-
y1: y + boxH / 2,
|
|
7131
|
-
x2: x + stepW,
|
|
7132
|
-
y2: y + stepH + boxH / 2,
|
|
7133
|
-
stroke: "#94a3b8",
|
|
7134
|
-
strokeWidth: 1.5,
|
|
7135
|
-
opacity: 0.5
|
|
7136
|
-
}
|
|
7137
|
-
),
|
|
7138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7139
|
-
"rect",
|
|
7140
|
-
{
|
|
7141
|
-
x,
|
|
7142
|
-
y,
|
|
7143
|
-
width: boxW,
|
|
7144
|
-
height: boxH,
|
|
7145
|
-
rx: 5,
|
|
7146
|
-
fill: colour(i, palette),
|
|
7147
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7148
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7149
|
-
strokeWidth: sw
|
|
7150
|
-
}
|
|
7151
|
-
),
|
|
7152
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7153
|
-
SmartArtNodeText,
|
|
7154
|
-
{
|
|
7155
|
-
x: x + boxW / 2,
|
|
7156
|
-
y: y + boxH / 2,
|
|
7157
|
-
text: truncate(node.text, 20),
|
|
7158
|
-
fill: "white",
|
|
7159
|
-
fontSize,
|
|
7160
|
-
className: "pointer-events-none"
|
|
7161
|
-
}
|
|
7162
|
-
)
|
|
7163
|
-
] }, `${element.id}-stepdown-${node.id}-${i}`);
|
|
7164
|
-
})
|
|
7165
|
-
}
|
|
7166
|
-
);
|
|
7167
|
-
}
|
|
7168
|
-
function renderAlternatingFlow(element, nodes, palette, style) {
|
|
7169
|
-
const w = element.width;
|
|
7170
|
-
const h = element.height;
|
|
7171
|
-
const pad = 8;
|
|
7172
|
-
const usableH = h - pad * 2;
|
|
7173
|
-
const rowH = usableH / nodes.length;
|
|
7174
|
-
const halfW = (w - pad * 2) / 2;
|
|
7175
|
-
const boxW = halfW * 0.8;
|
|
7176
|
-
const boxH = Math.min(rowH * 0.7, 40);
|
|
7177
|
-
const centerX = w / 2;
|
|
7178
|
-
const shadow = styleShadow(style);
|
|
7179
|
-
const sw = styleStroke(style);
|
|
7180
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7181
|
-
"svg",
|
|
7182
|
-
{
|
|
7183
|
-
className: "w-full h-full pointer-events-none",
|
|
7184
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7185
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7186
|
-
style: { filter: shadow },
|
|
7187
|
-
children: [
|
|
7188
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7189
|
-
"line",
|
|
7190
|
-
{
|
|
7191
|
-
x1: centerX,
|
|
7192
|
-
y1: pad,
|
|
7193
|
-
x2: centerX,
|
|
7194
|
-
y2: h - pad,
|
|
7195
|
-
stroke: "#94a3b8",
|
|
7196
|
-
strokeWidth: 2,
|
|
7197
|
-
opacity: 0.3
|
|
7198
|
-
}
|
|
7199
|
-
),
|
|
7200
|
-
nodes.map((node, i) => {
|
|
7201
|
-
const isLeft = i % 2 === 0;
|
|
7202
|
-
const y = pad + i * rowH + (rowH - boxH) / 2;
|
|
7203
|
-
const x = isLeft ? centerX - boxW - 12 : centerX + 12;
|
|
7204
|
-
const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
|
|
7205
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7206
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7207
|
-
"line",
|
|
7208
|
-
{
|
|
7209
|
-
x1: isLeft ? x + boxW : x,
|
|
7210
|
-
y1: y + boxH / 2,
|
|
7211
|
-
x2: centerX,
|
|
7212
|
-
y2: y + boxH / 2,
|
|
7213
|
-
stroke: colour(i, palette),
|
|
7214
|
-
strokeWidth: 1.5,
|
|
7215
|
-
opacity: 0.5
|
|
7216
|
-
}
|
|
7217
|
-
),
|
|
7218
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: centerX, cy: y + boxH / 2, r: 3, fill: colour(i, palette), opacity: 0.8 }),
|
|
7219
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7220
|
-
"rect",
|
|
7221
|
-
{
|
|
7222
|
-
x,
|
|
7223
|
-
y,
|
|
7224
|
-
width: boxW,
|
|
7225
|
-
height: boxH,
|
|
7226
|
-
rx: 5,
|
|
7227
|
-
fill: colour(i, palette),
|
|
7228
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7229
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7230
|
-
strokeWidth: sw
|
|
7231
|
-
}
|
|
7232
|
-
),
|
|
7233
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7234
|
-
SmartArtNodeText,
|
|
7235
|
-
{
|
|
7236
|
-
x: x + boxW / 2,
|
|
7237
|
-
y: y + boxH / 2,
|
|
7238
|
-
text: truncate(node.text, 20),
|
|
7239
|
-
fill: "white",
|
|
7240
|
-
fontSize,
|
|
7241
|
-
className: "pointer-events-none"
|
|
7242
|
-
}
|
|
7243
|
-
)
|
|
7244
|
-
] }, `${element.id}-altflow-${node.id}-${i}`);
|
|
7245
|
-
})
|
|
7246
|
-
]
|
|
7247
|
-
}
|
|
7248
|
-
);
|
|
7249
|
-
}
|
|
7250
|
-
function renderDescendingProcess(element, nodes, palette, style) {
|
|
7251
|
-
const w = element.width;
|
|
7252
|
-
const h = element.height;
|
|
7253
|
-
const pad = 8;
|
|
7254
|
-
const gap = 4;
|
|
7255
|
-
const usableH = h - pad * 2;
|
|
7256
|
-
const maxW = w - pad * 2;
|
|
7257
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7258
|
-
const shadow = styleShadow(style);
|
|
7259
|
-
const sw = styleStroke(style);
|
|
7260
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7261
|
-
"svg",
|
|
7262
|
-
{
|
|
7263
|
-
className: "w-full h-full pointer-events-none",
|
|
7264
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7265
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7266
|
-
style: { filter: shadow },
|
|
7267
|
-
children: nodes.map((node, i) => {
|
|
7268
|
-
const widthFraction = 1 - i / Math.max(nodes.length, 1) * 0.5;
|
|
7269
|
-
const bw = maxW * widthFraction;
|
|
7270
|
-
const x = (w - bw) / 2;
|
|
7271
|
-
const y = pad + i * (itemH + gap);
|
|
7272
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
|
|
7273
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7274
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7275
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7276
|
-
"line",
|
|
7277
|
-
{
|
|
7278
|
-
x1: w / 2,
|
|
7279
|
-
y1: y + itemH,
|
|
7280
|
-
x2: w / 2,
|
|
7281
|
-
y2: y + itemH + gap,
|
|
7282
|
-
stroke: "#94a3b8",
|
|
7283
|
-
strokeWidth: 1.5,
|
|
7284
|
-
opacity: 0.5
|
|
7285
|
-
}
|
|
7286
|
-
),
|
|
7287
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7288
|
-
"polygon",
|
|
7289
|
-
{
|
|
7290
|
-
points: `${w / 2 - 3},${y + itemH + gap - 4} ${w / 2},${y + itemH + gap} ${w / 2 + 3},${y + itemH + gap - 4}`,
|
|
7291
|
-
fill: "#94a3b8",
|
|
7292
|
-
opacity: 0.5
|
|
7293
|
-
}
|
|
7294
|
-
)
|
|
7295
|
-
] }),
|
|
7296
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7297
|
-
"rect",
|
|
7298
|
-
{
|
|
7299
|
-
x,
|
|
7300
|
-
y,
|
|
7301
|
-
width: bw,
|
|
7302
|
-
height: itemH,
|
|
7303
|
-
rx: 5,
|
|
7304
|
-
fill: colour(i, palette),
|
|
7305
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7306
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7307
|
-
strokeWidth: sw
|
|
7308
|
-
}
|
|
7309
|
-
),
|
|
7310
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7311
|
-
SmartArtNodeText,
|
|
7312
|
-
{
|
|
7313
|
-
x: w / 2,
|
|
7314
|
-
y: y + itemH / 2,
|
|
7315
|
-
text: truncate(node.text, 30),
|
|
7316
|
-
fill: "white",
|
|
7317
|
-
fontSize,
|
|
7318
|
-
className: "pointer-events-none"
|
|
7319
|
-
}
|
|
7320
|
-
)
|
|
7321
|
-
] }, `${element.id}-desc-${node.id}-${i}`);
|
|
7322
|
-
})
|
|
7323
|
-
}
|
|
7324
|
-
);
|
|
7325
|
-
}
|
|
7326
|
-
function renderPictureAccentList(element, nodes, palette, style) {
|
|
7327
|
-
const w = element.width;
|
|
7328
|
-
const h = element.height;
|
|
7329
|
-
const pad = 8;
|
|
7330
|
-
const gap = 6;
|
|
7331
|
-
const usableH = h - pad * 2;
|
|
7332
|
-
const usableW = w - pad * 2;
|
|
7333
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7334
|
-
const circleR = Math.min(itemH * 0.38, 18);
|
|
7335
|
-
const textX = pad + circleR * 2 + 12;
|
|
7336
|
-
const textW = usableW - circleR * 2 - 16;
|
|
7337
|
-
const shadow = styleShadow(style);
|
|
7338
|
-
const sw = styleStroke(style);
|
|
7339
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7340
|
-
"svg",
|
|
7341
|
-
{
|
|
7342
|
-
className: "w-full h-full pointer-events-none",
|
|
7343
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7344
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7345
|
-
style: { filter: shadow },
|
|
7346
|
-
children: nodes.map((node, i) => {
|
|
7347
|
-
const y = pad + i * (itemH + gap);
|
|
7348
|
-
const cy = y + itemH / 2;
|
|
7349
|
-
const col = colour(i, palette);
|
|
7350
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
|
|
7351
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7352
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7353
|
-
"circle",
|
|
7354
|
-
{
|
|
7355
|
-
cx: pad + circleR,
|
|
7356
|
-
cy,
|
|
7357
|
-
r: circleR,
|
|
7358
|
-
fill: col,
|
|
7359
|
-
opacity: nodeOpacity(i, nodes.length, style)
|
|
7360
|
-
}
|
|
7361
|
-
),
|
|
7362
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7363
|
-
"text",
|
|
7364
|
-
{
|
|
7365
|
-
x: pad + circleR,
|
|
7366
|
-
y: cy,
|
|
7367
|
-
textAnchor: "middle",
|
|
7368
|
-
dominantBaseline: "central",
|
|
7369
|
-
fill: "white",
|
|
7370
|
-
fontSize: Math.max(7, circleR * 0.7),
|
|
7371
|
-
fontWeight: "bold",
|
|
7372
|
-
className: "pointer-events-none",
|
|
7373
|
-
children: i + 1
|
|
7374
|
-
}
|
|
7375
|
-
),
|
|
7376
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7377
|
-
"rect",
|
|
7378
|
-
{
|
|
7379
|
-
x: textX,
|
|
7380
|
-
y: y + 2,
|
|
7381
|
-
width: textW,
|
|
7382
|
-
height: itemH - 4,
|
|
7383
|
-
rx: 4,
|
|
7384
|
-
fill: col,
|
|
7385
|
-
opacity: 0.12,
|
|
7386
|
-
stroke: col,
|
|
7387
|
-
strokeWidth: sw > 0 ? sw : 1,
|
|
7388
|
-
strokeOpacity: 0.3
|
|
7389
|
-
}
|
|
7390
|
-
),
|
|
7391
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7392
|
-
"text",
|
|
7393
|
-
{
|
|
7394
|
-
x: textX + 8,
|
|
7395
|
-
y: cy,
|
|
7396
|
-
textAnchor: "start",
|
|
7397
|
-
dominantBaseline: "central",
|
|
7398
|
-
fill: col,
|
|
7399
|
-
fontSize,
|
|
7400
|
-
className: "pointer-events-none",
|
|
7401
|
-
children: truncate(node.text, 40)
|
|
7402
|
-
}
|
|
7403
|
-
)
|
|
7404
|
-
] }, `${element.id}-picacc-${node.id}-${i}`);
|
|
7405
|
-
})
|
|
7406
|
-
}
|
|
7407
|
-
);
|
|
7408
|
-
}
|
|
7409
|
-
function renderVerticalBlockList(element, nodes, palette, style) {
|
|
7410
|
-
const w = element.width;
|
|
7411
|
-
const h = element.height;
|
|
7412
|
-
const pad = 8;
|
|
7413
|
-
const gap = 4;
|
|
7414
|
-
const usableH = h - pad * 2;
|
|
7415
|
-
const usableW = w - pad * 2;
|
|
7416
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7417
|
-
const headerW = usableW * 0.22;
|
|
7418
|
-
const bodyW = usableW - headerW - 4;
|
|
7419
|
-
const shadow = styleShadow(style);
|
|
7420
|
-
const sw = styleStroke(style);
|
|
7421
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7422
|
-
"svg",
|
|
7423
|
-
{
|
|
7424
|
-
className: "w-full h-full pointer-events-none",
|
|
7425
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7426
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7427
|
-
style: { filter: shadow },
|
|
7428
|
-
children: nodes.map((node, i) => {
|
|
7429
|
-
const y = pad + i * (itemH + gap);
|
|
7430
|
-
const col = colour(i, palette);
|
|
7431
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
|
|
7432
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7433
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7434
|
-
"rect",
|
|
7435
|
-
{
|
|
7436
|
-
x: pad,
|
|
7437
|
-
y,
|
|
7438
|
-
width: headerW,
|
|
7439
|
-
height: itemH,
|
|
7440
|
-
rx: 3,
|
|
7441
|
-
fill: col,
|
|
7442
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7443
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7444
|
-
strokeWidth: sw
|
|
7445
|
-
}
|
|
7446
|
-
),
|
|
7447
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7448
|
-
"text",
|
|
7449
|
-
{
|
|
7450
|
-
x: pad + headerW / 2,
|
|
7451
|
-
y: y + itemH / 2,
|
|
7452
|
-
textAnchor: "middle",
|
|
7453
|
-
dominantBaseline: "central",
|
|
7454
|
-
fill: "white",
|
|
7455
|
-
fontSize: Math.max(8, itemH * 0.4),
|
|
7456
|
-
fontWeight: "bold",
|
|
7457
|
-
className: "pointer-events-none",
|
|
7458
|
-
children: i + 1
|
|
7459
|
-
}
|
|
7460
|
-
),
|
|
7461
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7462
|
-
"rect",
|
|
7463
|
-
{
|
|
7464
|
-
x: pad + headerW + 4,
|
|
7465
|
-
y,
|
|
7466
|
-
width: bodyW,
|
|
7467
|
-
height: itemH,
|
|
7468
|
-
rx: 3,
|
|
7469
|
-
fill: col,
|
|
7470
|
-
opacity: 0.1,
|
|
7471
|
-
stroke: col,
|
|
7472
|
-
strokeWidth: 1,
|
|
7473
|
-
strokeOpacity: 0.3
|
|
7474
|
-
}
|
|
7475
|
-
),
|
|
7476
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7477
|
-
"text",
|
|
7478
|
-
{
|
|
7479
|
-
x: pad + headerW + 12,
|
|
7480
|
-
y: y + itemH / 2,
|
|
7481
|
-
textAnchor: "start",
|
|
7482
|
-
dominantBaseline: "central",
|
|
7483
|
-
fill: col,
|
|
7484
|
-
fontSize,
|
|
7485
|
-
className: "pointer-events-none",
|
|
7486
|
-
children: truncate(node.text, 40)
|
|
7487
|
-
}
|
|
7488
|
-
)
|
|
7489
|
-
] }, `${element.id}-vblk-${node.id}-${i}`);
|
|
7490
|
-
})
|
|
7491
|
-
}
|
|
7492
|
-
);
|
|
7493
|
-
}
|
|
7494
|
-
function renderGroupedList(element, nodes, palette, style) {
|
|
7495
|
-
const w = element.width;
|
|
7496
|
-
const h = element.height;
|
|
7497
|
-
const pad = 8;
|
|
7498
|
-
const gap = 8;
|
|
7499
|
-
const shadow = styleShadow(style);
|
|
7500
|
-
const sw = styleStroke(style);
|
|
7501
|
-
const groupSize = nodes.length <= 4 ? 2 : 3;
|
|
7502
|
-
const groups = [];
|
|
7503
|
-
for (let i = 0; i < nodes.length; i += groupSize) {
|
|
7504
|
-
groups.push(nodes.slice(i, i + groupSize));
|
|
7505
|
-
}
|
|
7506
|
-
const usableW = w - pad * 2;
|
|
7507
|
-
const groupW = (usableW - gap * (groups.length - 1)) / groups.length;
|
|
7508
|
-
const usableH = h - pad * 2;
|
|
7509
|
-
const headerH = usableH * 0.18;
|
|
7510
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7511
|
-
"svg",
|
|
7512
|
-
{
|
|
7513
|
-
className: "w-full h-full pointer-events-none",
|
|
7514
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7515
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7516
|
-
style: { filter: shadow },
|
|
7517
|
-
children: groups.map((group, gi) => {
|
|
7518
|
-
const gx = pad + gi * (groupW + gap);
|
|
7519
|
-
const col = colour(gi, palette);
|
|
7520
|
-
const subItemGap = 3;
|
|
7521
|
-
const subItemH = (usableH - headerH - 4 - subItemGap * (group.length - 1)) / group.length;
|
|
7522
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7523
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7524
|
-
"rect",
|
|
7525
|
-
{
|
|
7526
|
-
x: gx,
|
|
7527
|
-
y: pad,
|
|
7528
|
-
width: groupW,
|
|
7529
|
-
height: headerH,
|
|
7530
|
-
rx: 4,
|
|
7531
|
-
fill: col,
|
|
7532
|
-
opacity: nodeOpacity(gi, groups.length, style),
|
|
7533
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7534
|
-
strokeWidth: sw
|
|
7535
|
-
}
|
|
7536
|
-
),
|
|
7537
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7538
|
-
"text",
|
|
7539
|
-
{
|
|
7540
|
-
x: gx + groupW / 2,
|
|
7541
|
-
y: pad + headerH / 2,
|
|
7542
|
-
textAnchor: "middle",
|
|
7543
|
-
dominantBaseline: "central",
|
|
7544
|
-
fill: "white",
|
|
7545
|
-
fontSize: Math.max(7, Math.min(10, groupW * 0.08)),
|
|
7546
|
-
fontWeight: "bold",
|
|
7547
|
-
className: "pointer-events-none",
|
|
7548
|
-
children: `Group ${gi + 1}`
|
|
7549
|
-
}
|
|
7550
|
-
),
|
|
7551
|
-
group.map((node, si) => {
|
|
7552
|
-
const sy = pad + headerH + 4 + si * (subItemH + subItemGap);
|
|
7553
|
-
const fontSize = Math.max(7, Math.min(10, subItemH * 0.35));
|
|
7554
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7555
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7556
|
-
"rect",
|
|
7557
|
-
{
|
|
7558
|
-
x: gx + 4,
|
|
7559
|
-
y: sy,
|
|
7560
|
-
width: groupW - 8,
|
|
7561
|
-
height: subItemH,
|
|
7562
|
-
rx: 3,
|
|
7563
|
-
fill: col,
|
|
7564
|
-
opacity: 0.15,
|
|
7565
|
-
stroke: col,
|
|
7566
|
-
strokeWidth: 1,
|
|
7567
|
-
strokeOpacity: 0.3
|
|
7568
|
-
}
|
|
7569
|
-
),
|
|
7570
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7571
|
-
SmartArtNodeText,
|
|
7572
|
-
{
|
|
7573
|
-
x: gx + groupW / 2,
|
|
7574
|
-
y: sy + subItemH / 2,
|
|
7575
|
-
text: truncate(node.text, 20),
|
|
7576
|
-
fill: col,
|
|
7577
|
-
fontSize,
|
|
7578
|
-
className: "pointer-events-none"
|
|
7579
|
-
}
|
|
7580
|
-
)
|
|
7581
|
-
] }, `${element.id}-grp-${gi}-item-${node.id}-${si}`);
|
|
7582
|
-
})
|
|
7583
|
-
] }, `${element.id}-grp-${gi}`);
|
|
7584
|
-
})
|
|
7585
|
-
}
|
|
7586
|
-
);
|
|
7587
|
-
}
|
|
7588
|
-
function renderPyramidList(element, nodes, palette, style) {
|
|
7589
|
-
const w = element.width;
|
|
7590
|
-
const h = element.height;
|
|
7591
|
-
const pad = 8;
|
|
7592
|
-
const gap = 4;
|
|
7593
|
-
const usableH = h - pad * 2;
|
|
7594
|
-
const pyramidW = w * 0.35;
|
|
7595
|
-
const labelStartX = pyramidW + pad + 16;
|
|
7596
|
-
const labelW = w - labelStartX - pad;
|
|
7597
|
-
const bandH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7598
|
-
const shadow = styleShadow(style);
|
|
7599
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7600
|
-
"svg",
|
|
7601
|
-
{
|
|
7602
|
-
className: "w-full h-full pointer-events-none",
|
|
7603
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7604
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7605
|
-
style: { filter: shadow },
|
|
7606
|
-
children: nodes.map((node, i) => {
|
|
7607
|
-
const y = pad + i * (bandH + gap);
|
|
7608
|
-
const col = colour(i, palette);
|
|
7609
|
-
const topFrac = 0.3 + i / Math.max(nodes.length - 1, 1) * 0.7;
|
|
7610
|
-
const segW = pyramidW * topFrac;
|
|
7611
|
-
const segX = pad + (pyramidW - segW) / 2;
|
|
7612
|
-
const fontSize = Math.max(7, Math.min(11, bandH * 0.35));
|
|
7613
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7614
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7615
|
-
"rect",
|
|
7616
|
-
{
|
|
7617
|
-
x: segX,
|
|
7618
|
-
y,
|
|
7619
|
-
width: segW,
|
|
7620
|
-
height: bandH,
|
|
7621
|
-
rx: 2,
|
|
7622
|
-
fill: col,
|
|
7623
|
-
opacity: nodeOpacity(i, nodes.length, style)
|
|
7624
|
-
}
|
|
7625
|
-
),
|
|
7626
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7627
|
-
"line",
|
|
7628
|
-
{
|
|
7629
|
-
x1: segX + segW,
|
|
7630
|
-
y1: y + bandH / 2,
|
|
7631
|
-
x2: labelStartX - 4,
|
|
7632
|
-
y2: y + bandH / 2,
|
|
7633
|
-
stroke: col,
|
|
7634
|
-
strokeWidth: 1,
|
|
7635
|
-
opacity: 0.5,
|
|
7636
|
-
strokeDasharray: "3,2"
|
|
7637
|
-
}
|
|
7638
|
-
),
|
|
7639
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7640
|
-
"rect",
|
|
7641
|
-
{
|
|
7642
|
-
x: labelStartX,
|
|
7643
|
-
y: y + 2,
|
|
7644
|
-
width: labelW,
|
|
7645
|
-
height: bandH - 4,
|
|
7646
|
-
rx: 3,
|
|
7647
|
-
fill: col,
|
|
7648
|
-
opacity: 0.1,
|
|
7649
|
-
stroke: col,
|
|
7650
|
-
strokeWidth: 1,
|
|
7651
|
-
strokeOpacity: 0.25
|
|
7652
|
-
}
|
|
7653
|
-
),
|
|
7654
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7655
|
-
"text",
|
|
7656
|
-
{
|
|
7657
|
-
x: labelStartX + 8,
|
|
7658
|
-
y: y + bandH / 2,
|
|
7659
|
-
textAnchor: "start",
|
|
7660
|
-
dominantBaseline: "central",
|
|
7661
|
-
fill: col,
|
|
7662
|
-
fontSize,
|
|
7663
|
-
className: "pointer-events-none",
|
|
7664
|
-
children: truncate(node.text, 30)
|
|
7665
|
-
}
|
|
7666
|
-
)
|
|
7667
|
-
] }, `${element.id}-pyrlist-${node.id}-${i}`);
|
|
7668
|
-
})
|
|
7669
|
-
}
|
|
7670
|
-
);
|
|
7671
|
-
}
|
|
7672
|
-
function renderHorizontalPictureList(element, nodes, palette, style) {
|
|
7673
|
-
const w = element.width;
|
|
7674
|
-
const h = element.height;
|
|
7675
|
-
const pad = 8;
|
|
7676
|
-
const gap = 8;
|
|
7677
|
-
const usableW = w - pad * 2;
|
|
7678
|
-
const colW = (usableW - gap * (nodes.length - 1)) / nodes.length;
|
|
7679
|
-
const usableH = h - pad * 2;
|
|
7680
|
-
const circleR = Math.min(colW * 0.38, usableH * 0.28);
|
|
7681
|
-
const shadow = styleShadow(style);
|
|
7682
|
-
const sw = styleStroke(style);
|
|
7683
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7684
|
-
"svg",
|
|
7685
|
-
{
|
|
7686
|
-
className: "w-full h-full pointer-events-none",
|
|
7687
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7688
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7689
|
-
style: { filter: shadow },
|
|
7690
|
-
children: nodes.map((node, i) => {
|
|
7691
|
-
const cx = pad + i * (colW + gap) + colW / 2;
|
|
7692
|
-
const cy = pad + circleR + 4;
|
|
7693
|
-
const col = colour(i, palette);
|
|
7694
|
-
const labelY = cy + circleR + 10;
|
|
7695
|
-
const fontSize = Math.max(7, Math.min(10, colW * 0.1));
|
|
7696
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7697
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7698
|
-
"circle",
|
|
7699
|
-
{
|
|
7700
|
-
cx,
|
|
7701
|
-
cy,
|
|
7702
|
-
r: circleR,
|
|
7703
|
-
fill: col,
|
|
7704
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7705
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7706
|
-
strokeWidth: sw
|
|
7707
|
-
}
|
|
7708
|
-
),
|
|
7709
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7710
|
-
"text",
|
|
7711
|
-
{
|
|
7712
|
-
x: cx,
|
|
7713
|
-
y: cy,
|
|
7714
|
-
textAnchor: "middle",
|
|
7715
|
-
dominantBaseline: "central",
|
|
7716
|
-
fill: "white",
|
|
7717
|
-
fontSize: Math.max(8, circleR * 0.5),
|
|
7718
|
-
fontWeight: "bold",
|
|
7719
|
-
className: "pointer-events-none",
|
|
7720
|
-
children: i + 1
|
|
7721
|
-
}
|
|
7722
|
-
),
|
|
7723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7724
|
-
"text",
|
|
7725
|
-
{
|
|
7726
|
-
x: cx,
|
|
7727
|
-
y: labelY,
|
|
7728
|
-
textAnchor: "middle",
|
|
7729
|
-
dominantBaseline: "hanging",
|
|
7730
|
-
fill: col,
|
|
7731
|
-
fontSize,
|
|
7732
|
-
className: "pointer-events-none",
|
|
7733
|
-
children: truncate(node.text, 15)
|
|
7734
|
-
}
|
|
7735
|
-
)
|
|
7736
|
-
] }, `${element.id}-hpic-${node.id}-${i}`);
|
|
7737
|
-
})
|
|
7738
|
-
}
|
|
7739
|
-
);
|
|
7740
|
-
}
|
|
7741
|
-
function renderAccentProcess(element, nodes, palette, style) {
|
|
7742
|
-
const w = element.width;
|
|
7743
|
-
const h = element.height;
|
|
7744
|
-
const pad = 8;
|
|
7745
|
-
const arrowGap = 16;
|
|
7746
|
-
const usableW = w - pad * 2;
|
|
7747
|
-
const nodeW = (usableW - arrowGap * (nodes.length - 1)) / nodes.length;
|
|
7748
|
-
const nodeH = h * 0.45;
|
|
7749
|
-
const yMid = h / 2;
|
|
7750
|
-
const circleR = Math.min(nodeW, nodeH) * 0.55;
|
|
7751
|
-
const shadow = styleShadow(style);
|
|
7752
|
-
const sw = styleStroke(style);
|
|
7753
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7754
|
-
"svg",
|
|
7755
|
-
{
|
|
7756
|
-
className: "w-full h-full pointer-events-none",
|
|
7757
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7758
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7759
|
-
style: { filter: shadow },
|
|
7760
|
-
children: nodes.map((node, i) => {
|
|
7761
|
-
const x = pad + i * (nodeW + arrowGap);
|
|
7762
|
-
const cx = x + nodeW / 2;
|
|
7763
|
-
const col = colour(i, palette);
|
|
7764
|
-
const fontSize = Math.max(7, Math.min(11, nodeW * 0.1));
|
|
7765
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7766
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: yMid, r: circleR, fill: col, opacity: 0.15 }),
|
|
7767
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7768
|
-
"rect",
|
|
7769
|
-
{
|
|
7770
|
-
x,
|
|
7771
|
-
y: yMid - nodeH / 2,
|
|
7772
|
-
width: nodeW,
|
|
7773
|
-
height: nodeH,
|
|
7774
|
-
rx: 5,
|
|
7775
|
-
fill: col,
|
|
7776
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7777
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7778
|
-
strokeWidth: sw
|
|
7779
|
-
}
|
|
7780
|
-
),
|
|
7781
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7782
|
-
SmartArtNodeText,
|
|
7783
|
-
{
|
|
7784
|
-
x: cx,
|
|
7785
|
-
y: yMid,
|
|
7786
|
-
text: truncate(node.text, 20),
|
|
7787
|
-
fill: "white",
|
|
7788
|
-
fontSize,
|
|
7789
|
-
className: "pointer-events-none"
|
|
7790
|
-
}
|
|
7791
|
-
),
|
|
7792
|
-
i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7793
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7794
|
-
"line",
|
|
7795
|
-
{
|
|
7796
|
-
x1: x + nodeW + 2,
|
|
7797
|
-
y1: yMid,
|
|
7798
|
-
x2: x + nodeW + arrowGap - 2,
|
|
7799
|
-
y2: yMid,
|
|
7800
|
-
stroke: "#94a3b8",
|
|
7801
|
-
strokeWidth: 1.5,
|
|
7802
|
-
opacity: 0.5
|
|
7803
|
-
}
|
|
7804
|
-
),
|
|
7805
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7806
|
-
"polygon",
|
|
7807
|
-
{
|
|
7808
|
-
points: `${x + nodeW + arrowGap - 6},${yMid - 3} ${x + nodeW + arrowGap - 2},${yMid} ${x + nodeW + arrowGap - 6},${yMid + 3}`,
|
|
7809
|
-
fill: "#94a3b8",
|
|
7810
|
-
opacity: 0.5
|
|
7811
|
-
}
|
|
7812
|
-
)
|
|
7813
|
-
] })
|
|
7814
|
-
] }, `${element.id}-accproc-${node.id}-${i}`);
|
|
7815
|
-
})
|
|
7816
|
-
}
|
|
7817
|
-
);
|
|
7818
|
-
}
|
|
7819
|
-
function renderVerticalChevronList(element, nodes, palette, style) {
|
|
7820
|
-
const w = element.width;
|
|
7821
|
-
const h = element.height;
|
|
7822
|
-
const pad = 8;
|
|
7823
|
-
const gap = 2;
|
|
7824
|
-
const usableW = w - pad * 2;
|
|
7825
|
-
const usableH = h - pad * 2;
|
|
7826
|
-
const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
|
|
7827
|
-
const chevDepth = Math.min(12, itemH * 0.3);
|
|
7828
|
-
const shadow = styleShadow(style);
|
|
7829
|
-
const sw = styleStroke(style);
|
|
7830
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7831
|
-
"svg",
|
|
7832
|
-
{
|
|
7833
|
-
className: "w-full h-full pointer-events-none",
|
|
7834
|
-
viewBox: `0 0 ${w} ${h}`,
|
|
7835
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
7836
|
-
style: { filter: shadow },
|
|
7837
|
-
children: nodes.map((node, i) => {
|
|
7838
|
-
const x = pad;
|
|
7839
|
-
const y = pad + i * (itemH + gap);
|
|
7840
|
-
const col = colour(i, palette);
|
|
7841
|
-
const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
|
|
7842
|
-
const isFirst = i === 0;
|
|
7843
|
-
const isLast = i === nodes.length - 1;
|
|
7844
|
-
const points = isFirst ? [
|
|
7845
|
-
`${x},${y}`,
|
|
7846
|
-
`${x + usableW},${y}`,
|
|
7847
|
-
`${x + usableW},${y + itemH - chevDepth}`,
|
|
7848
|
-
`${x + usableW / 2},${y + itemH}`,
|
|
7849
|
-
`${x},${y + itemH - chevDepth}`
|
|
7850
|
-
].join(" ") : isLast ? [
|
|
7851
|
-
`${x},${y + chevDepth}`,
|
|
7852
|
-
`${x + usableW / 2},${y}`,
|
|
7853
|
-
`${x + usableW},${y + chevDepth}`,
|
|
7854
|
-
`${x + usableW},${y + itemH}`,
|
|
7855
|
-
`${x},${y + itemH}`
|
|
7856
|
-
].join(" ") : [
|
|
7857
|
-
`${x},${y + chevDepth}`,
|
|
7858
|
-
`${x + usableW / 2},${y}`,
|
|
7859
|
-
`${x + usableW},${y + chevDepth}`,
|
|
7860
|
-
`${x + usableW},${y + itemH - chevDepth}`,
|
|
7861
|
-
`${x + usableW / 2},${y + itemH}`,
|
|
7862
|
-
`${x},${y + itemH - chevDepth}`
|
|
7863
|
-
].join(" ");
|
|
7864
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
7865
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7866
|
-
"polygon",
|
|
7867
|
-
{
|
|
7868
|
-
points,
|
|
7869
|
-
fill: col,
|
|
7870
|
-
opacity: nodeOpacity(i, nodes.length, style),
|
|
7871
|
-
stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
|
|
7872
|
-
strokeWidth: sw
|
|
7873
|
-
}
|
|
7874
|
-
),
|
|
7875
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7876
|
-
SmartArtNodeText,
|
|
7877
|
-
{
|
|
7878
|
-
x: x + usableW / 2,
|
|
7879
|
-
y: y + itemH / 2,
|
|
7880
|
-
text: truncate(node.text, 30),
|
|
7881
|
-
fill: "white",
|
|
7882
|
-
fontSize,
|
|
7883
|
-
className: "pointer-events-none"
|
|
7884
|
-
}
|
|
7885
|
-
)
|
|
7886
|
-
] }, `${element.id}-vchev-${node.id}-${i}`);
|
|
7887
|
-
})
|
|
7888
|
-
}
|
|
7889
|
-
);
|
|
7890
|
-
}
|
|
7891
6503
|
|
|
7892
6504
|
// src/viewer/utils/pdf-builder-notes-builder.ts
|
|
7893
6505
|
function buildNotesPdf(pages) {
|
|
@@ -7905,14 +6517,14 @@ function buildNotesPdf(pages) {
|
|
|
7905
6517
|
notes: page.notes,
|
|
7906
6518
|
slideNumber: page.slideNumber
|
|
7907
6519
|
}));
|
|
7908
|
-
const bytes =
|
|
6520
|
+
const bytes = chunkUSAJMMF2_js.buildNotesPdfBytes(images, meta);
|
|
7909
6521
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7910
6522
|
return URL.createObjectURL(blob);
|
|
7911
6523
|
}
|
|
7912
6524
|
|
|
7913
6525
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
7914
6526
|
function buildPdfFromImageData(images) {
|
|
7915
|
-
const bytes =
|
|
6527
|
+
const bytes = chunkUSAJMMF2_js.buildSlidesPdfBytes(images);
|
|
7916
6528
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7917
6529
|
return URL.createObjectURL(blob);
|
|
7918
6530
|
}
|
|
@@ -7921,7 +6533,7 @@ function buildPdfFromImageData(images) {
|
|
|
7921
6533
|
var activePreview = null;
|
|
7922
6534
|
function startPreviewAnimation(elementId, preset, options) {
|
|
7923
6535
|
stopPreviewAnimation();
|
|
7924
|
-
const descriptor =
|
|
6536
|
+
const descriptor = chunkUSAJMMF2_js.buildPreviewAnimation(preset, options);
|
|
7925
6537
|
if (!descriptor) {
|
|
7926
6538
|
return;
|
|
7927
6539
|
}
|
|
@@ -7934,7 +6546,7 @@ function startMotionPathPreview(elementId, path, options) {
|
|
|
7934
6546
|
return;
|
|
7935
6547
|
}
|
|
7936
6548
|
const stage = domEl.offsetParent;
|
|
7937
|
-
const descriptor =
|
|
6549
|
+
const descriptor = chunkUSAJMMF2_js.buildMotionPathPreview({
|
|
7938
6550
|
path,
|
|
7939
6551
|
slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
|
|
7940
6552
|
slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
|
|
@@ -8013,7 +6625,6 @@ exports.SHAPE_PRESETS = SHAPE_PRESETS;
|
|
|
8013
6625
|
exports.SHORTCUT_REFERENCE_ITEMS = SHORTCUT_REFERENCE_ITEMS;
|
|
8014
6626
|
exports.SLIDE_NAV_THUMBNAIL_WIDTH = SLIDE_NAV_THUMBNAIL_WIDTH;
|
|
8015
6627
|
exports.STROKE_DASH_OPTIONS = STROKE_DASH_OPTIONS;
|
|
8016
|
-
exports.SmartArtNodeText = SmartArtNodeText;
|
|
8017
6628
|
exports.THEME_COLOR_SWATCHES = THEME_COLOR_SWATCHES;
|
|
8018
6629
|
exports.TOOLBAR_SECTIONS = TOOLBAR_SECTIONS;
|
|
8019
6630
|
exports.UNGROUPED_SECTION_ID = UNGROUPED_SECTION_ID;
|
|
@@ -8024,16 +6635,10 @@ exports.buildLineShadowCss = buildLineShadowCss;
|
|
|
8024
6635
|
exports.buildNotesPdf = buildNotesPdf;
|
|
8025
6636
|
exports.buildPdfFromImageData = buildPdfFromImageData;
|
|
8026
6637
|
exports.buildReactChartViewModel = buildReactChartViewModel;
|
|
8027
|
-
exports.buildSaveSlides = buildSaveSlides;
|
|
8028
6638
|
exports.buildTextBody3DSceneStyle = buildTextBody3DSceneStyle2;
|
|
8029
|
-
exports.buildTree = buildTree;
|
|
8030
|
-
exports.chevronPoints = chevronPoints;
|
|
8031
6639
|
exports.cloneHistorySnapshot = cloneHistorySnapshot2;
|
|
8032
6640
|
exports.cn = cn;
|
|
8033
|
-
exports.colour = colour;
|
|
8034
6641
|
exports.executeMediaCommand = executeMediaCommand;
|
|
8035
|
-
exports.fitFontSize = fitFontSize;
|
|
8036
|
-
exports.gearPath = gearPath;
|
|
8037
6642
|
exports.getAnimationInitialStyle = getAnimationInitialStyle2;
|
|
8038
6643
|
exports.getConnectorPathGeometry = getConnectorPathGeometry;
|
|
8039
6644
|
exports.getCropShapeClipPath = getCropShapeClipPath;
|
|
@@ -8047,37 +6652,14 @@ exports.getTextWarpStyle = getTextWarpStyle;
|
|
|
8047
6652
|
exports.hasDagDuotoneEffect = hasDagDuotoneEffect;
|
|
8048
6653
|
exports.isConnectorOrLineElement = isConnectorOrLineElement;
|
|
8049
6654
|
exports.isImageTiled = isImageTiled;
|
|
8050
|
-
exports.layoutToCategory = layoutToCategory;
|
|
8051
|
-
exports.nodeOpacity = nodeOpacity;
|
|
8052
|
-
exports.partitionTemplateElements = partitionTemplateElements;
|
|
8053
|
-
exports.renderAccentProcess = renderAccentProcess;
|
|
8054
|
-
exports.renderAlternatingFlow = renderAlternatingFlow;
|
|
8055
6655
|
exports.renderChartElement = renderChartElement;
|
|
8056
6656
|
exports.renderConnectorMarker = renderConnectorMarker;
|
|
8057
6657
|
exports.renderDagDuotoneSvgFilter = renderDagDuotoneSvgFilter;
|
|
8058
|
-
exports.renderDescendingProcess = renderDescendingProcess;
|
|
8059
|
-
exports.renderGroupedList = renderGroupedList;
|
|
8060
|
-
exports.renderHorizontalPictureList = renderHorizontalPictureList;
|
|
8061
6658
|
exports.renderMediaElement = renderMediaElement;
|
|
8062
|
-
exports.renderPictureAccentList = renderPictureAccentList;
|
|
8063
|
-
exports.renderPyramidList = renderPyramidList;
|
|
8064
|
-
exports.renderStepDownProcess = renderStepDownProcess;
|
|
8065
6659
|
exports.renderTableElement = renderTableElement;
|
|
8066
6660
|
exports.renderTextSegments = renderTextSegments;
|
|
8067
6661
|
exports.renderVectorShape = renderVectorShape;
|
|
8068
|
-
exports.renderVerticalBlockList = renderVerticalBlockList;
|
|
8069
|
-
exports.renderVerticalChevronList = renderVerticalChevronList;
|
|
8070
|
-
exports.resolvePalette = resolvePalette;
|
|
8071
|
-
exports.resolveSmartArtDataPalette = resolveSmartArtDataPalette;
|
|
8072
|
-
exports.resolveStyle = resolveStyle;
|
|
8073
6662
|
exports.shouldRenderFallbackLabel = shouldRenderFallbackLabel;
|
|
8074
|
-
exports.smartArtNodeGroupProps = smartArtNodeGroupProps;
|
|
8075
6663
|
exports.startMotionPathPreview = startMotionPathPreview;
|
|
8076
6664
|
exports.startPreviewAnimation = startPreviewAnimation;
|
|
8077
6665
|
exports.stopPreviewAnimation = stopPreviewAnimation;
|
|
8078
|
-
exports.styleShadow = styleShadow;
|
|
8079
|
-
exports.styleStroke = styleStroke;
|
|
8080
|
-
exports.treeDepth = treeDepth;
|
|
8081
|
-
exports.treeWidth = treeWidth;
|
|
8082
|
-
exports.truncate = truncate;
|
|
8083
|
-
exports.wrapChrome = wrapChrome;
|