pptx-react-viewer 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/{AiChatPanel-G6DKXSM3.js → AiChatPanel-SRKOMEW6.js} +22 -22
- package/dist/AiChatPanel-SRKOMEW6.js.br +0 -0
- package/dist/AiChatPanel-SRKOMEW6.js.gz +0 -0
- package/dist/{AiChatPanel-J5IGSCYA.mjs → AiChatPanel-YAYQ5KUT.mjs} +3 -3
- package/dist/AiChatPanel-YAYQ5KUT.mjs.br +0 -0
- package/dist/AiChatPanel-YAYQ5KUT.mjs.gz +0 -0
- package/dist/{Model3DScene-ID6CQKEJ.mjs → Model3DScene-HYMOPMAM.mjs} +1 -1
- package/dist/Model3DScene-HYMOPMAM.mjs.br +0 -0
- package/dist/Model3DScene-HYMOPMAM.mjs.gz +0 -0
- package/dist/{Model3DScene-S7LKZ6IA.js → Model3DScene-ONKC5Z6A.js} +2 -2
- package/dist/Model3DScene-ONKC5Z6A.js.br +0 -0
- package/dist/Model3DScene-ONKC5Z6A.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-V5H6MXYW.mjs → SurfaceChart3DScene-B3FK4Q2U.mjs} +1 -1
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-XSJXJM6H.js → SurfaceChart3DScene-YJFWGG5L.js} +2 -2
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.br +0 -0
- package/dist/SurfaceChart3DScene-YJFWGG5L.js.gz +0 -0
- package/dist/{chunk-Y4EB65WB.mjs → chunk-2UCJYJUS.mjs} +7 -7
- package/dist/chunk-2UCJYJUS.mjs.br +0 -0
- package/dist/chunk-2UCJYJUS.mjs.gz +0 -0
- package/dist/{chunk-GLQFRVAN.js → chunk-BVK7K74O.js} +843 -843
- package/dist/chunk-BVK7K74O.js.br +0 -0
- package/dist/chunk-BVK7K74O.js.gz +0 -0
- package/dist/{chunk-B4XJTZR4.js → chunk-GRW7HM6X.js} +236 -236
- package/dist/chunk-GRW7HM6X.js.br +0 -0
- package/dist/chunk-GRW7HM6X.js.gz +0 -0
- package/dist/{chunk-WH46JCNF.mjs → chunk-HEAJOHLJ.mjs} +125 -66
- package/dist/chunk-HEAJOHLJ.mjs.br +0 -0
- package/dist/chunk-HEAJOHLJ.mjs.gz +0 -0
- package/dist/{chunk-IGKLB7NQ.mjs → chunk-HQGLKAIY.mjs} +2 -2
- package/dist/chunk-HQGLKAIY.mjs.br +0 -0
- package/dist/chunk-HQGLKAIY.mjs.gz +0 -0
- package/dist/{chunk-YUHEJWUN.mjs → chunk-IDK6XECR.mjs} +2 -2
- package/dist/chunk-IDK6XECR.mjs.br +0 -0
- package/dist/{chunk-YUHEJWUN.mjs.gz → chunk-IDK6XECR.mjs.gz} +0 -0
- package/dist/{chunk-4KMTZLNS.js → chunk-JEIMWRKF.js} +315 -315
- package/dist/chunk-JEIMWRKF.js.br +0 -0
- package/dist/chunk-JEIMWRKF.js.gz +0 -0
- package/dist/{chunk-6C4UY7GX.js → chunk-JVE7BZ25.js} +3 -3
- package/dist/chunk-JVE7BZ25.js.br +0 -0
- package/dist/chunk-JVE7BZ25.js.gz +0 -0
- package/dist/{chunk-2LOBDOTK.js → chunk-LYS44KMG.js} +125 -66
- package/dist/chunk-LYS44KMG.js.br +0 -0
- package/dist/chunk-LYS44KMG.js.gz +0 -0
- package/dist/{chunk-SOLHDKNK.mjs → chunk-N7EZIKF4.mjs} +1 -1
- package/dist/chunk-N7EZIKF4.mjs.br +0 -0
- package/dist/chunk-N7EZIKF4.mjs.gz +0 -0
- package/dist/index.js +34 -34
- 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.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +21 -21
- 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-G6DKXSM3.js.br +0 -0
- package/dist/AiChatPanel-G6DKXSM3.js.gz +0 -0
- package/dist/AiChatPanel-J5IGSCYA.mjs.br +0 -0
- package/dist/AiChatPanel-J5IGSCYA.mjs.gz +0 -0
- package/dist/Model3DScene-ID6CQKEJ.mjs.br +0 -0
- package/dist/Model3DScene-ID6CQKEJ.mjs.gz +0 -0
- package/dist/Model3DScene-S7LKZ6IA.js.br +0 -0
- package/dist/Model3DScene-S7LKZ6IA.js.gz +0 -0
- package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-XSJXJM6H.js.br +0 -0
- package/dist/SurfaceChart3DScene-XSJXJM6H.js.gz +0 -0
- package/dist/chunk-2LOBDOTK.js.br +0 -0
- package/dist/chunk-2LOBDOTK.js.gz +0 -0
- package/dist/chunk-4KMTZLNS.js.br +0 -0
- package/dist/chunk-4KMTZLNS.js.gz +0 -0
- package/dist/chunk-6C4UY7GX.js.br +0 -0
- package/dist/chunk-6C4UY7GX.js.gz +0 -0
- package/dist/chunk-B4XJTZR4.js.br +0 -0
- package/dist/chunk-B4XJTZR4.js.gz +0 -0
- package/dist/chunk-GLQFRVAN.js.br +0 -0
- package/dist/chunk-GLQFRVAN.js.gz +0 -0
- package/dist/chunk-IGKLB7NQ.mjs.br +0 -0
- package/dist/chunk-IGKLB7NQ.mjs.gz +0 -0
- package/dist/chunk-SOLHDKNK.mjs.br +0 -0
- package/dist/chunk-SOLHDKNK.mjs.gz +0 -0
- package/dist/chunk-WH46JCNF.mjs.br +0 -0
- package/dist/chunk-WH46JCNF.mjs.gz +0 -0
- package/dist/chunk-Y4EB65WB.mjs.br +0 -0
- package/dist/chunk-Y4EB65WB.mjs.gz +0 -0
- package/dist/chunk-YUHEJWUN.mjs.br +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunk25VSL2BB_js = require('./chunk-25VSL2BB.js');
|
|
4
|
-
var
|
|
4
|
+
var chunkLYS44KMG_js = require('./chunk-LYS44KMG.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 chunkLYS44KMG_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 chunkLYS44KMG_js.cloneHistorySnapshot(snapshot);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/viewer/constants/scalar.ts
|
|
@@ -133,7 +133,7 @@ var GLYPH_COMPONENTS = {
|
|
|
133
133
|
plus: lu.LuPlus,
|
|
134
134
|
triangle: lu.LuTriangle
|
|
135
135
|
};
|
|
136
|
-
var SHAPE_PRESETS =
|
|
136
|
+
var SHAPE_PRESETS = chunkLYS44KMG_js.SHAPE_PRESET_DEFS.map(
|
|
137
137
|
(def) => ({
|
|
138
138
|
type: def.type,
|
|
139
139
|
label: def.label,
|
|
@@ -251,7 +251,7 @@ function isConnectorOrLineElement(element) {
|
|
|
251
251
|
if (element.type === "connector") {
|
|
252
252
|
return true;
|
|
253
253
|
}
|
|
254
|
-
if (!
|
|
254
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
255
255
|
return false;
|
|
256
256
|
}
|
|
257
257
|
const st = getShapeType(element.shapeType);
|
|
@@ -262,12 +262,12 @@ function isConnectorOrLineElement(element) {
|
|
|
262
262
|
function partitionTemplateElements(slides) {
|
|
263
263
|
const templateElementsBySlideId = {};
|
|
264
264
|
const nextSlides = slides.map((slide) => {
|
|
265
|
-
const template = slide.elements.filter((el) =>
|
|
265
|
+
const template = slide.elements.filter((el) => chunkLYS44KMG_js.isTemplateElement(el));
|
|
266
266
|
if (template.length === 0) {
|
|
267
267
|
return slide;
|
|
268
268
|
}
|
|
269
269
|
templateElementsBySlideId[slide.id] = template;
|
|
270
|
-
return { ...slide, elements: slide.elements.filter((el) => !
|
|
270
|
+
return { ...slide, elements: slide.elements.filter((el) => !chunkLYS44KMG_js.isTemplateElement(el)) };
|
|
271
271
|
});
|
|
272
272
|
return { slides: nextSlides, templateElementsBySlideId };
|
|
273
273
|
}
|
|
@@ -283,7 +283,7 @@ function buildSaveSlides(slides, templateElementsBySlideId) {
|
|
|
283
283
|
|
|
284
284
|
// src/viewer/utils/image-style.ts
|
|
285
285
|
function getImageMaskStyle(element) {
|
|
286
|
-
if (!
|
|
286
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
287
287
|
return void 0;
|
|
288
288
|
}
|
|
289
289
|
const shapeType = element.shapeType;
|
|
@@ -292,7 +292,7 @@ function getImageMaskStyle(element) {
|
|
|
292
292
|
}
|
|
293
293
|
const normalized = shapeType.toLowerCase();
|
|
294
294
|
if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
|
|
295
|
-
const radiusPx =
|
|
295
|
+
const radiusPx = chunkLYS44KMG_js.getRoundRectRadiusPx(element);
|
|
296
296
|
if (radiusPx <= 0.01) {
|
|
297
297
|
return void 0;
|
|
298
298
|
}
|
|
@@ -304,7 +304,7 @@ function getImageMaskStyle(element) {
|
|
|
304
304
|
if (normalized === "can" || normalized === "cylinder") {
|
|
305
305
|
return { borderRadius: "48% / 12%" };
|
|
306
306
|
}
|
|
307
|
-
const clipPath =
|
|
307
|
+
const clipPath = chunkLYS44KMG_js.getResolvedShapeClipPath(element);
|
|
308
308
|
if (!clipPath) {
|
|
309
309
|
return void 0;
|
|
310
310
|
}
|
|
@@ -312,7 +312,7 @@ function getImageMaskStyle(element) {
|
|
|
312
312
|
}
|
|
313
313
|
function getImageRenderStyle(element) {
|
|
314
314
|
const maskStyle = getImageMaskStyle(element) || {};
|
|
315
|
-
if (!
|
|
315
|
+
if (!chunkLYS44KMG_js.isImageLikeElement(element)) {
|
|
316
316
|
return {
|
|
317
317
|
...maskStyle,
|
|
318
318
|
width: "100%",
|
|
@@ -320,10 +320,10 @@ function getImageRenderStyle(element) {
|
|
|
320
320
|
objectFit: "cover"
|
|
321
321
|
};
|
|
322
322
|
}
|
|
323
|
-
const cropLeft =
|
|
324
|
-
const cropTop =
|
|
325
|
-
const cropRight =
|
|
326
|
-
const cropBottom =
|
|
323
|
+
const cropLeft = chunkLYS44KMG_js.clampCropValue(element.cropLeft);
|
|
324
|
+
const cropTop = chunkLYS44KMG_js.clampCropValue(element.cropTop);
|
|
325
|
+
const cropRight = chunkLYS44KMG_js.clampCropValue(element.cropRight);
|
|
326
|
+
const cropBottom = chunkLYS44KMG_js.clampCropValue(element.cropBottom);
|
|
327
327
|
const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
|
|
328
328
|
if (!hasCrop) {
|
|
329
329
|
return {
|
|
@@ -335,10 +335,10 @@ function getImageRenderStyle(element) {
|
|
|
335
335
|
}
|
|
336
336
|
const safeHorizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
|
|
337
337
|
const safeVerticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
|
|
338
|
-
const normalizedLeft =
|
|
339
|
-
const normalizedRight =
|
|
340
|
-
const normalizedTop =
|
|
341
|
-
const normalizedBottom =
|
|
338
|
+
const normalizedLeft = chunkLYS44KMG_js.clampCropValue(cropLeft * safeHorizontalScale);
|
|
339
|
+
const normalizedRight = chunkLYS44KMG_js.clampCropValue(cropRight * safeHorizontalScale);
|
|
340
|
+
const normalizedTop = chunkLYS44KMG_js.clampCropValue(cropTop * safeVerticalScale);
|
|
341
|
+
const normalizedBottom = chunkLYS44KMG_js.clampCropValue(cropBottom * safeVerticalScale);
|
|
342
342
|
const remainingWidth = Math.max(0.01, 1 - normalizedLeft - normalizedRight);
|
|
343
343
|
const remainingHeight = Math.max(0.01, 1 - normalizedTop - normalizedBottom);
|
|
344
344
|
const tx = Math.round(-normalizedLeft / remainingWidth * 1e4) / 100;
|
|
@@ -367,7 +367,7 @@ var CROP_SHAPE_CLIP_PATHS = {
|
|
|
367
367
|
star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
|
|
368
368
|
};
|
|
369
369
|
function getCropShapeClipPath(element) {
|
|
370
|
-
if (!
|
|
370
|
+
if (!chunkLYS44KMG_js.isImageLikeElement(element)) {
|
|
371
371
|
return void 0;
|
|
372
372
|
}
|
|
373
373
|
const shape = element.cropShape;
|
|
@@ -377,7 +377,7 @@ function getCropShapeClipPath(element) {
|
|
|
377
377
|
return CROP_SHAPE_CLIP_PATHS[shape];
|
|
378
378
|
}
|
|
379
379
|
function isImageTiled(element) {
|
|
380
|
-
if (!
|
|
380
|
+
if (!chunkLYS44KMG_js.isImageLikeElement(element)) {
|
|
381
381
|
return false;
|
|
382
382
|
}
|
|
383
383
|
return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
|
|
@@ -435,7 +435,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
|
|
|
435
435
|
};
|
|
436
436
|
}
|
|
437
437
|
function getImageTilingStyle(element) {
|
|
438
|
-
if (!
|
|
438
|
+
if (!chunkLYS44KMG_js.isImageLikeElement(element) || !isImageTiled(element)) {
|
|
439
439
|
return void 0;
|
|
440
440
|
}
|
|
441
441
|
const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
|
|
@@ -719,7 +719,7 @@ function executeMediaCommand(command) {
|
|
|
719
719
|
if (!el) {
|
|
720
720
|
return false;
|
|
721
721
|
}
|
|
722
|
-
const parsed =
|
|
722
|
+
const parsed = chunkLYS44KMG_js.parseMediaCommand(command.command);
|
|
723
723
|
if (!parsed) {
|
|
724
724
|
return false;
|
|
725
725
|
}
|
|
@@ -1171,7 +1171,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
|
|
|
1171
1171
|
|
|
1172
1172
|
// src/viewer/utils/text-utils.tsx
|
|
1173
1173
|
function getTextStyleForElement(element, fallbackColor) {
|
|
1174
|
-
if (!
|
|
1174
|
+
if (!chunkLYS44KMG_js.hasTextProperties(element)) {
|
|
1175
1175
|
return { color: fallbackColor };
|
|
1176
1176
|
}
|
|
1177
1177
|
const textDecorationTokens = [];
|
|
@@ -1185,7 +1185,7 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1185
1185
|
const textDecorationStyle = isDoubleStrike ? "double" : void 0;
|
|
1186
1186
|
const hasItalicRuns = element.textStyle?.italic || Boolean(element.textSegments?.some((segment) => segment.style?.italic));
|
|
1187
1187
|
const isRtl = element.textStyle?.rtl === true;
|
|
1188
|
-
const resolvedTextColor = element.textStyle?.hyperlink ?
|
|
1188
|
+
const resolvedTextColor = element.textStyle?.hyperlink ? chunkLYS44KMG_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkLYS44KMG_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
|
|
1189
1189
|
const bodyTop = element.textStyle?.bodyInsetTop ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1190
1190
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1191
1191
|
const bodyLeft = element.textStyle?.bodyInsetLeft ?? DEFAULT_BODY_INSET_LR_PX;
|
|
@@ -1194,15 +1194,15 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1194
1194
|
const bodyIndent = hasParagraphIndents ? 0 : element.textStyle?.paragraphIndent || 0;
|
|
1195
1195
|
const bodyMarginLeft = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginLeft || 0;
|
|
1196
1196
|
const bodyMarginRight = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginRight || 0;
|
|
1197
|
-
const writingMode =
|
|
1198
|
-
const textOrientation =
|
|
1199
|
-
const verticalDirection =
|
|
1197
|
+
const writingMode = chunkLYS44KMG_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1198
|
+
const textOrientation = chunkLYS44KMG_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1199
|
+
const verticalDirection = chunkLYS44KMG_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1200
1200
|
const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
|
|
1201
1201
|
const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
|
|
1202
1202
|
const hasSegments = (element.textSegments?.length ?? 0) > 0;
|
|
1203
1203
|
return {
|
|
1204
1204
|
color: resolvedTextColor,
|
|
1205
|
-
backgroundColor: !hasSegments && element.textStyle?.highlightColor ?
|
|
1205
|
+
backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkLYS44KMG_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
|
|
1206
1206
|
textAlign: (() => {
|
|
1207
1207
|
const a = element.textStyle?.align;
|
|
1208
1208
|
if (a === "justLow" || a === "dist" || a === "thaiDist") {
|
|
@@ -1218,7 +1218,7 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1218
1218
|
textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
|
|
1219
1219
|
textDecorationStyle,
|
|
1220
1220
|
fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
|
|
1221
|
-
lineHeight:
|
|
1221
|
+
lineHeight: chunkLYS44KMG_js.resolveLineHeight(element.textStyle, hasItalicRuns),
|
|
1222
1222
|
paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
|
|
1223
1223
|
paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
|
|
1224
1224
|
paddingLeft: bodyLeft + bodyMarginLeft,
|
|
@@ -1231,7 +1231,7 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1231
1231
|
// Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
|
|
1232
1232
|
// otherwise fall back to heuristic estimation. The pure font-scale maths
|
|
1233
1233
|
// now lives in pptx-viewer-shared (computeAutoFitTextStyle).
|
|
1234
|
-
...
|
|
1234
|
+
...chunkLYS44KMG_js.computeAutoFitTextStyle({
|
|
1235
1235
|
textStyle: element.textStyle,
|
|
1236
1236
|
text: element.text ?? "",
|
|
1237
1237
|
width: element.width,
|
|
@@ -1265,13 +1265,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1265
1265
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1266
1266
|
}
|
|
1267
1267
|
function getTextLayoutStyle(element) {
|
|
1268
|
-
if (!
|
|
1268
|
+
if (!chunkLYS44KMG_js.hasTextProperties(element)) {
|
|
1269
1269
|
return {};
|
|
1270
1270
|
}
|
|
1271
1271
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1272
|
-
const writingMode =
|
|
1273
|
-
const textOrientation =
|
|
1274
|
-
const verticalDirection =
|
|
1272
|
+
const writingMode = chunkLYS44KMG_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1273
|
+
const textOrientation = chunkLYS44KMG_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1274
|
+
const verticalDirection = chunkLYS44KMG_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1275
1275
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1276
1276
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1277
1277
|
const hasColumns = columnCount > 1;
|
|
@@ -1279,7 +1279,7 @@ function getTextLayoutStyle(element) {
|
|
|
1279
1279
|
const tabStops = element.textStyle?.tabStops;
|
|
1280
1280
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1281
1281
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1282
|
-
const hasParagraphIndents =
|
|
1282
|
+
const hasParagraphIndents = chunkLYS44KMG_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1283
1283
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1284
1284
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1285
1285
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1288,7 +1288,7 @@ function getTextLayoutStyle(element) {
|
|
|
1288
1288
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1289
1289
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1290
1290
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1291
|
-
const kinsokuStyles =
|
|
1291
|
+
const kinsokuStyles = chunkLYS44KMG_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1292
1292
|
if (hasColumns) {
|
|
1293
1293
|
return {
|
|
1294
1294
|
display: "block",
|
|
@@ -1335,10 +1335,10 @@ function getTextLayoutStyle(element) {
|
|
|
1335
1335
|
|
|
1336
1336
|
// src/viewer/utils/text-effects.tsx
|
|
1337
1337
|
function buildTextFillCss2(style) {
|
|
1338
|
-
return
|
|
1338
|
+
return chunkLYS44KMG_js.buildTextFillCss(style);
|
|
1339
1339
|
}
|
|
1340
1340
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1341
|
-
return
|
|
1341
|
+
return chunkLYS44KMG_js.buildTextBody3DSceneStyle(textStyle);
|
|
1342
1342
|
}
|
|
1343
1343
|
|
|
1344
1344
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1523,13 +1523,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1523
1523
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1524
1524
|
return renderedSegments;
|
|
1525
1525
|
}
|
|
1526
|
-
const paraKey = `${elementId}${
|
|
1526
|
+
const paraKey = `${elementId}${chunkLYS44KMG_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1527
1527
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1528
1528
|
if (paraState) {
|
|
1529
1529
|
const style = buildAnimStyle(paraState);
|
|
1530
1530
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1531
1531
|
}
|
|
1532
|
-
const spec =
|
|
1532
|
+
const spec = chunkLYS44KMG_js.buildTextBuildSpec(
|
|
1533
1533
|
elementId,
|
|
1534
1534
|
paraIndex,
|
|
1535
1535
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1547,7 +1547,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1547
1547
|
"span",
|
|
1548
1548
|
{
|
|
1549
1549
|
"data-anim-id": span.animId,
|
|
1550
|
-
style:
|
|
1550
|
+
style: chunkLYS44KMG_js.textBuildSpanStyle(span),
|
|
1551
1551
|
children: content
|
|
1552
1552
|
},
|
|
1553
1553
|
span.animId
|
|
@@ -1691,10 +1691,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1691
1691
|
if (!needsScriptFonts || !text) {
|
|
1692
1692
|
return text;
|
|
1693
1693
|
}
|
|
1694
|
-
const runs =
|
|
1694
|
+
const runs = chunkLYS44KMG_js.segmentByScript(text);
|
|
1695
1695
|
if (runs.length <= 1) {
|
|
1696
1696
|
if (runs.length === 1) {
|
|
1697
|
-
const font =
|
|
1697
|
+
const font = chunkLYS44KMG_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1698
1698
|
if (font && font !== baseFontFamily) {
|
|
1699
1699
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1700
1700
|
}
|
|
@@ -1702,7 +1702,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1702
1702
|
return text;
|
|
1703
1703
|
}
|
|
1704
1704
|
return runs.map((run, i) => {
|
|
1705
|
-
const font =
|
|
1705
|
+
const font = chunkLYS44KMG_js.resolveFontForScript(run.script, scriptFonts);
|
|
1706
1706
|
if (!font || font === baseFontFamily) {
|
|
1707
1707
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1708
1708
|
}
|
|
@@ -1774,8 +1774,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1774
1774
|
);
|
|
1775
1775
|
}
|
|
1776
1776
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1777
|
-
const mathml =
|
|
1778
|
-
const safeMathml = mathml ?
|
|
1777
|
+
const mathml = chunkLYS44KMG_js.convertOmmlToMathMl(equationXml);
|
|
1778
|
+
const safeMathml = mathml ? chunkLYS44KMG_js.sanitizeMathMl(mathml) : "";
|
|
1779
1779
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1780
1780
|
"span",
|
|
1781
1781
|
{
|
|
@@ -1825,7 +1825,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1825
1825
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1826
1826
|
}
|
|
1827
1827
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1828
|
-
const picture =
|
|
1828
|
+
const picture = chunkLYS44KMG_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1829
1829
|
sizePx: baseFontSize,
|
|
1830
1830
|
fallbackMarker: "\u2022",
|
|
1831
1831
|
accessibleLabel: "Bullet"
|
|
@@ -1876,7 +1876,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1876
1876
|
}
|
|
1877
1877
|
const segmentStyle = segment.style || {};
|
|
1878
1878
|
const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
|
|
1879
|
-
const textValue =
|
|
1879
|
+
const textValue = chunkLYS44KMG_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
|
|
1880
1880
|
const lines = textValue.split("\n");
|
|
1881
1881
|
const textDecorationTokens = [];
|
|
1882
1882
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1886,8 +1886,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1886
1886
|
textDecorationTokens.push("line-through");
|
|
1887
1887
|
}
|
|
1888
1888
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1889
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1890
|
-
const underlineDecoration =
|
|
1889
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunkLYS44KMG_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkLYS44KMG_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1890
|
+
const underlineDecoration = chunkLYS44KMG_js.resolveUnderlineDecorationStyle(
|
|
1891
1891
|
Boolean(isDoubleStrike),
|
|
1892
1892
|
segmentStyle.underlineStyle
|
|
1893
1893
|
);
|
|
@@ -1903,14 +1903,14 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1903
1903
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1904
1904
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1905
1905
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1906
|
-
const baseFontFamily = rawFontFamily ?
|
|
1906
|
+
const baseFontFamily = rawFontFamily ? chunkLYS44KMG_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
|
|
1907
1907
|
const scriptFonts = {
|
|
1908
1908
|
latin: baseFontFamily,
|
|
1909
1909
|
eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
|
|
1910
1910
|
complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
|
|
1911
1911
|
symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
|
|
1912
1912
|
};
|
|
1913
|
-
const needsScriptFonts =
|
|
1913
|
+
const needsScriptFonts = chunkLYS44KMG_js.hasDistinctScriptFonts(scriptFonts);
|
|
1914
1914
|
const spanStyle = {
|
|
1915
1915
|
color: resolvedSegmentColor,
|
|
1916
1916
|
fontSize: baseFontSize * baselineFontScale,
|
|
@@ -1928,15 +1928,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1928
1928
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1929
1929
|
letterSpacing,
|
|
1930
1930
|
fontKerning,
|
|
1931
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1931
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkLYS44KMG_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1932
1932
|
...textFillStyles,
|
|
1933
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1934
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1933
|
+
textDecorationColor: segmentStyle.underlineColor ? chunkLYS44KMG_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1934
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkLYS44KMG_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1935
1935
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1936
|
-
textShadow:
|
|
1937
|
-
filter:
|
|
1938
|
-
opacity:
|
|
1939
|
-
WebkitBoxReflect:
|
|
1936
|
+
textShadow: chunkLYS44KMG_js.buildTextShadowCss(segmentStyle),
|
|
1937
|
+
filter: chunkLYS44KMG_js.buildTextRunFilterChain(segmentStyle),
|
|
1938
|
+
opacity: chunkLYS44KMG_js.getTextAlphaOpacity(segmentStyle),
|
|
1939
|
+
WebkitBoxReflect: chunkLYS44KMG_js.buildTextReflectionCss(segmentStyle)
|
|
1940
1940
|
};
|
|
1941
1941
|
const runRtl = segmentStyle.rtl;
|
|
1942
1942
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1956,7 +1956,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1956
1956
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1957
1957
|
}
|
|
1958
1958
|
if (bulletInfo.color) {
|
|
1959
|
-
spanStyle.color =
|
|
1959
|
+
spanStyle.color = chunkLYS44KMG_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1960
1960
|
}
|
|
1961
1961
|
if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
|
|
1962
1962
|
spanStyle.display = "inline-block";
|
|
@@ -2001,7 +2001,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
2001
2001
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
2002
2002
|
};
|
|
2003
2003
|
if (segment.rubyStyle?.color) {
|
|
2004
|
-
rubyStyle.color =
|
|
2004
|
+
rubyStyle.color = chunkLYS44KMG_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
2005
2005
|
}
|
|
2006
2006
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
2007
2007
|
baseContent,
|
|
@@ -2096,7 +2096,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
2096
2096
|
return paragraphs;
|
|
2097
2097
|
}
|
|
2098
2098
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
2099
|
-
if (!
|
|
2099
|
+
if (!chunkLYS44KMG_js.hasTextProperties(element)) {
|
|
2100
2100
|
return emptyFallback || null;
|
|
2101
2101
|
}
|
|
2102
2102
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -2117,10 +2117,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2117
2117
|
return element.text || emptyFallback || "";
|
|
2118
2118
|
}
|
|
2119
2119
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
2120
|
-
const paragraphIndents =
|
|
2121
|
-
const elementRtl =
|
|
2122
|
-
const elementAlign =
|
|
2123
|
-
const bodyStyle =
|
|
2120
|
+
const paragraphIndents = chunkLYS44KMG_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
2121
|
+
const elementRtl = chunkLYS44KMG_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
2122
|
+
const elementAlign = chunkLYS44KMG_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
2123
|
+
const bodyStyle = chunkLYS44KMG_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
2124
2124
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
2125
2125
|
return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
|
|
2126
2126
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2135,14 +2135,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2135
2135
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2136
2136
|
});
|
|
2137
2137
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2138
|
-
const paraRtl =
|
|
2138
|
+
const paraRtl = chunkLYS44KMG_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2139
2139
|
const isRtlParagraph = paraRtl === true;
|
|
2140
|
-
const paraAlign =
|
|
2141
|
-
const cssTextAlign =
|
|
2140
|
+
const paraAlign = chunkLYS44KMG_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
2141
|
+
const cssTextAlign = chunkLYS44KMG_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2142
2142
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2143
2143
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2144
2144
|
const paraTextIndent = rawTextIndent;
|
|
2145
|
-
const paraKinsokuStyle =
|
|
2145
|
+
const paraKinsokuStyle = chunkLYS44KMG_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2146
2146
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2147
2147
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
|
|
2148
2148
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2152,7 +2152,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2152
2152
|
isLast: paraIndex === paragraphs.length - 1,
|
|
2153
2153
|
spaceFirstLast
|
|
2154
2154
|
});
|
|
2155
|
-
const strutFontSize =
|
|
2155
|
+
const strutFontSize = chunkLYS44KMG_js.resolveParagraphStrutFontSize(
|
|
2156
2156
|
paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
|
|
2157
2157
|
bodyStyle?.fontSize
|
|
2158
2158
|
);
|
|
@@ -2256,13 +2256,13 @@ function hexToRgbUnit(hex) {
|
|
|
2256
2256
|
};
|
|
2257
2257
|
}
|
|
2258
2258
|
function getDuotoneColors(element) {
|
|
2259
|
-
if (!
|
|
2259
|
+
if (!chunkLYS44KMG_js.isImageLikeElement(element)) {
|
|
2260
2260
|
return void 0;
|
|
2261
2261
|
}
|
|
2262
2262
|
return element.imageEffects?.duotone;
|
|
2263
2263
|
}
|
|
2264
2264
|
function buildLineShadowCss(element) {
|
|
2265
|
-
if (!
|
|
2265
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2266
2266
|
return void 0;
|
|
2267
2267
|
}
|
|
2268
2268
|
const ss = element.shapeStyle;
|
|
@@ -2273,13 +2273,13 @@ function buildLineShadowCss(element) {
|
|
|
2273
2273
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2274
2274
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2275
2275
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2276
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2277
|
-
|
|
2276
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkLYS44KMG_js.colorWithOpacity(
|
|
2277
|
+
chunkLYS44KMG_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2278
2278
|
opacity
|
|
2279
2279
|
)}`;
|
|
2280
2280
|
}
|
|
2281
2281
|
function buildLineGlowFilter(element) {
|
|
2282
|
-
if (!
|
|
2282
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2283
2283
|
return void 0;
|
|
2284
2284
|
}
|
|
2285
2285
|
const ss = element.shapeStyle;
|
|
@@ -2288,7 +2288,7 @@ function buildLineGlowFilter(element) {
|
|
|
2288
2288
|
}
|
|
2289
2289
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2290
2290
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2291
|
-
const glowCol =
|
|
2291
|
+
const glowCol = chunkLYS44KMG_js.colorWithOpacity(chunkLYS44KMG_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2292
2292
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2293
2293
|
}
|
|
2294
2294
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2312,7 +2312,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2312
2312
|
return `dag-duotone-${elementId}`;
|
|
2313
2313
|
}
|
|
2314
2314
|
function hasDagDuotoneEffect(element) {
|
|
2315
|
-
if (!
|
|
2315
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2316
2316
|
return false;
|
|
2317
2317
|
}
|
|
2318
2318
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2375,7 +2375,7 @@ function getRoundRectRadiusPx2(element) {
|
|
|
2375
2375
|
|
|
2376
2376
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2377
2377
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2378
|
-
return
|
|
2378
|
+
return chunkLYS44KMG_js.build3DExtrusionData(
|
|
2379
2379
|
shape3d,
|
|
2380
2380
|
scene3d,
|
|
2381
2381
|
fillColor,
|
|
@@ -2384,7 +2384,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2384
2384
|
);
|
|
2385
2385
|
}
|
|
2386
2386
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2387
|
-
|
|
2387
|
+
chunkLYS44KMG_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2388
2388
|
}
|
|
2389
2389
|
|
|
2390
2390
|
// src/viewer/utils/vector-subpath-paint.ts
|
|
@@ -2393,7 +2393,7 @@ function toHexByte(value) {
|
|
|
2393
2393
|
return clamped.toString(16).padStart(2, "0");
|
|
2394
2394
|
}
|
|
2395
2395
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2396
|
-
const channels =
|
|
2396
|
+
const channels = chunkLYS44KMG_js.hexToRgbChannels(hex);
|
|
2397
2397
|
if (!channels) {
|
|
2398
2398
|
return hex;
|
|
2399
2399
|
}
|
|
@@ -2419,13 +2419,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2419
2419
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2420
2420
|
return {
|
|
2421
2421
|
d: subpath.d,
|
|
2422
|
-
fill: fillOff ? "none" :
|
|
2422
|
+
fill: fillOff ? "none" : chunkLYS44KMG_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2423
2423
|
stroked: subpath.stroke !== false
|
|
2424
2424
|
};
|
|
2425
2425
|
});
|
|
2426
2426
|
}
|
|
2427
2427
|
function getStrokeOnlyPresetPaths(element) {
|
|
2428
|
-
if (element.type !== "shape" || !
|
|
2428
|
+
if (element.type !== "shape" || !chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2429
2429
|
return void 0;
|
|
2430
2430
|
}
|
|
2431
2431
|
const shapeType = element.shapeType;
|
|
@@ -2435,7 +2435,7 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2435
2435
|
if (element.pathData) {
|
|
2436
2436
|
return void 0;
|
|
2437
2437
|
}
|
|
2438
|
-
const result =
|
|
2438
|
+
const result = chunkLYS44KMG_js.evaluatePresetShape(
|
|
2439
2439
|
shapeType,
|
|
2440
2440
|
Math.max(element.width, 1),
|
|
2441
2441
|
Math.max(element.height, 1),
|
|
@@ -2450,27 +2450,27 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2450
2450
|
|
|
2451
2451
|
// src/viewer/utils/shape-visual-style.ts
|
|
2452
2452
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2453
|
-
if (!
|
|
2453
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2454
2454
|
return {};
|
|
2455
2455
|
}
|
|
2456
2456
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2457
|
-
const clipPath =
|
|
2457
|
+
const clipPath = chunkLYS44KMG_js.getResolvedShapeClipPath(element);
|
|
2458
2458
|
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;
|
|
2459
2459
|
const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
|
|
2460
2460
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2461
2461
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2462
|
-
const strokeDash =
|
|
2463
|
-
const fillGradient =
|
|
2464
|
-
const shadowCss =
|
|
2465
|
-
const innerShadowCss =
|
|
2466
|
-
const resolvedFillColor =
|
|
2467
|
-
const resolvedStrokeColor =
|
|
2462
|
+
const strokeDash = chunkLYS44KMG_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2463
|
+
const fillGradient = chunkLYS44KMG_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
|
|
2464
|
+
const shadowCss = chunkLYS44KMG_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2465
|
+
const innerShadowCss = chunkLYS44KMG_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2466
|
+
const resolvedFillColor = chunkLYS44KMG_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2467
|
+
const resolvedStrokeColor = chunkLYS44KMG_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2468
2468
|
const ss = element.shapeStyle;
|
|
2469
2469
|
const hasFillOverlayColor = Boolean(
|
|
2470
2470
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2471
2471
|
);
|
|
2472
2472
|
const combinedShadowParts = [];
|
|
2473
|
-
const multiLayerShadow =
|
|
2473
|
+
const multiLayerShadow = chunkLYS44KMG_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2474
2474
|
if (multiLayerShadow) {
|
|
2475
2475
|
combinedShadowParts.push(multiLayerShadow);
|
|
2476
2476
|
} else if (shadowCss) {
|
|
@@ -2479,7 +2479,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2479
2479
|
if (innerShadowCss) {
|
|
2480
2480
|
combinedShadowParts.push(innerShadowCss);
|
|
2481
2481
|
}
|
|
2482
|
-
const glowBoxShadow =
|
|
2482
|
+
const glowBoxShadow = chunkLYS44KMG_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2483
2483
|
if (glowBoxShadow) {
|
|
2484
2484
|
combinedShadowParts.push(glowBoxShadow);
|
|
2485
2485
|
}
|
|
@@ -2487,7 +2487,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2487
2487
|
if (lineShadow) {
|
|
2488
2488
|
combinedShadowParts.push(lineShadow);
|
|
2489
2489
|
}
|
|
2490
|
-
const compoundLineShadow =
|
|
2490
|
+
const compoundLineShadow = chunkLYS44KMG_js.getCompoundLineBoxShadow(
|
|
2491
2491
|
element.shapeStyle?.compoundLine,
|
|
2492
2492
|
strokeWidth,
|
|
2493
2493
|
resolvedStrokeColor
|
|
@@ -2500,11 +2500,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2500
2500
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2501
2501
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2502
2502
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2503
|
-
const glowCol =
|
|
2503
|
+
const glowCol = chunkLYS44KMG_js.colorWithOpacity(chunkLYS44KMG_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2504
2504
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2505
2505
|
}
|
|
2506
2506
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2507
|
-
filterParts.push(`url(#${
|
|
2507
|
+
filterParts.push(`url(#${chunkLYS44KMG_js.getSoftEdgeFilterId(element.id)})`);
|
|
2508
2508
|
}
|
|
2509
2509
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2510
2510
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2513,13 +2513,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2513
2513
|
if (lineGlowCss) {
|
|
2514
2514
|
filterParts.push(lineGlowCss);
|
|
2515
2515
|
}
|
|
2516
|
-
const dagFilter =
|
|
2516
|
+
const dagFilter = chunkLYS44KMG_js.getEffectDagFilter(ss, element.id);
|
|
2517
2517
|
if (dagFilter) {
|
|
2518
2518
|
filterParts.push(dagFilter);
|
|
2519
2519
|
}
|
|
2520
2520
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2521
2521
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2522
|
-
const patternFill =
|
|
2522
|
+
const patternFill = chunkLYS44KMG_js.buildPatternFillCss(element.shapeStyle);
|
|
2523
2523
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2524
2524
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2525
2525
|
let reflectCss;
|
|
@@ -2531,7 +2531,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2531
2531
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2532
2532
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2533
2533
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2534
|
-
reflectCss =
|
|
2534
|
+
reflectCss = chunkLYS44KMG_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2535
2535
|
}
|
|
2536
2536
|
}
|
|
2537
2537
|
const base = {
|
|
@@ -2573,9 +2573,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2573
2573
|
// two adjacent 40px buttons rendered with a 2px gap PowerPoint does not
|
|
2574
2574
|
// draw. The affordance is an `outline` instead (see `ElementRenderer`),
|
|
2575
2575
|
// which paints in the same place without taking part in layout.
|
|
2576
|
-
borderWidth: strokeWidth > 0 ?
|
|
2576
|
+
borderWidth: strokeWidth > 0 ? chunkLYS44KMG_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
|
|
2577
2577
|
borderColor: strokeWidth > 0 ? resolvedStrokeColor : void 0,
|
|
2578
|
-
borderStyle: strokeWidth > 0 ?
|
|
2578
|
+
borderStyle: strokeWidth > 0 ? chunkLYS44KMG_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2579
2579
|
strokeLinejoin: lineJoinCss,
|
|
2580
2580
|
strokeMiterlimit: miterLimitCss,
|
|
2581
2581
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2631,7 +2631,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2631
2631
|
borderWidth: 0,
|
|
2632
2632
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2633
2633
|
borderTopColor: resolvedStrokeColor,
|
|
2634
|
-
borderTopStyle:
|
|
2634
|
+
borderTopStyle: chunkLYS44KMG_js.getCssBorderDashStyle(strokeDash)
|
|
2635
2635
|
};
|
|
2636
2636
|
}
|
|
2637
2637
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2645,13 +2645,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2645
2645
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2646
2646
|
const direct = element.shapeAdjustments?.[key];
|
|
2647
2647
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2648
|
-
return
|
|
2648
|
+
return chunkLYS44KMG_js.clampUnitInterval(direct / 1e5);
|
|
2649
2649
|
}
|
|
2650
2650
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2651
2651
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2652
|
-
return
|
|
2652
|
+
return chunkLYS44KMG_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2653
2653
|
}
|
|
2654
|
-
return
|
|
2654
|
+
return chunkLYS44KMG_js.clampUnitInterval(fallback);
|
|
2655
2655
|
}
|
|
2656
2656
|
function getConnectorPathGeometry(element) {
|
|
2657
2657
|
const width = Math.max(element.width, 1);
|
|
@@ -2788,11 +2788,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2788
2788
|
strokePaint,
|
|
2789
2789
|
strokeWidth,
|
|
2790
2790
|
dashArray,
|
|
2791
|
-
lineCap:
|
|
2791
|
+
lineCap: chunkLYS44KMG_js.svgLineCap(shapeStyle?.lineCap),
|
|
2792
2792
|
lineJoin,
|
|
2793
2793
|
miterLimit,
|
|
2794
|
-
offsets:
|
|
2795
|
-
widths:
|
|
2794
|
+
offsets: chunkLYS44KMG_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2795
|
+
widths: chunkLYS44KMG_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2796
2796
|
};
|
|
2797
2797
|
}
|
|
2798
2798
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2815,7 +2815,7 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
2815
2815
|
}
|
|
2816
2816
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false) {
|
|
2817
2817
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2818
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2818
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkLYS44KMG_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2819
2819
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2820
2820
|
const nodes = [];
|
|
2821
2821
|
if (subpaths && needsPerSubpath) {
|
|
@@ -2846,7 +2846,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2846
2846
|
"path",
|
|
2847
2847
|
{
|
|
2848
2848
|
d: pathData,
|
|
2849
|
-
fill: animatesFill ? "inherit" :
|
|
2849
|
+
fill: animatesFill ? "inherit" : chunkLYS44KMG_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2850
2850
|
stroke: "none",
|
|
2851
2851
|
vectorEffect: "non-scaling-stroke"
|
|
2852
2852
|
},
|
|
@@ -2888,14 +2888,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
|
|
|
2888
2888
|
);
|
|
2889
2889
|
}
|
|
2890
2890
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2891
|
-
if (!
|
|
2891
|
+
if (!chunkLYS44KMG_js.hasShapeProperties(element)) {
|
|
2892
2892
|
return null;
|
|
2893
2893
|
}
|
|
2894
2894
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2895
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2896
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2897
|
-
const dashType =
|
|
2898
|
-
const dashArray =
|
|
2895
|
+
const fillPaint = animatesFill ? "inherit" : chunkLYS44KMG_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2896
|
+
const strokePaint = animatesStroke ? "inherit" : chunkLYS44KMG_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2897
|
+
const dashType = chunkLYS44KMG_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2898
|
+
const dashArray = chunkLYS44KMG_js.getSvgStrokeDasharray(
|
|
2899
2899
|
dashType,
|
|
2900
2900
|
Math.max(strokeWidth, 1),
|
|
2901
2901
|
element.shapeStyle?.customDashSegments
|
|
@@ -2974,18 +2974,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2974
2974
|
Boolean(animatesFill)
|
|
2975
2975
|
);
|
|
2976
2976
|
}
|
|
2977
|
-
if (
|
|
2977
|
+
if (chunkLYS44KMG_js.isCalloutShape(normalizedType)) {
|
|
2978
2978
|
const width = Math.max(element.width, 1);
|
|
2979
2979
|
const height = Math.max(element.height, 1);
|
|
2980
|
-
const geometry =
|
|
2980
|
+
const geometry = chunkLYS44KMG_js.getCalloutLeaderLineGeometry(
|
|
2981
2981
|
normalizedType,
|
|
2982
2982
|
width,
|
|
2983
2983
|
height,
|
|
2984
2984
|
element.shapeAdjustments
|
|
2985
2985
|
);
|
|
2986
2986
|
if (geometry && geometry.points.length >= 2) {
|
|
2987
|
-
const leaderPath =
|
|
2988
|
-
const bounds =
|
|
2987
|
+
const leaderPath = chunkLYS44KMG_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2988
|
+
const bounds = chunkLYS44KMG_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2989
2989
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2990
2990
|
const offsetLeft = bounds.minX;
|
|
2991
2991
|
const offsetTop = bounds.minY;
|
|
@@ -3048,10 +3048,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
3048
3048
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
3049
3049
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
3050
3050
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
3051
|
-
const connectorLineCap =
|
|
3051
|
+
const connectorLineCap = chunkLYS44KMG_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
3052
3052
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
3053
|
-
const offsets =
|
|
3054
|
-
const widths =
|
|
3053
|
+
const offsets = chunkLYS44KMG_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
3054
|
+
const widths = chunkLYS44KMG_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
3055
3055
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3056
3056
|
"svg",
|
|
3057
3057
|
{
|
|
@@ -3130,15 +3130,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3130
3130
|
}
|
|
3131
3131
|
const parsed = stops.map((gs) => {
|
|
3132
3132
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3133
|
-
const color =
|
|
3134
|
-
const opacity =
|
|
3135
|
-
return { pos, color:
|
|
3133
|
+
const color = chunkLYS44KMG_js.parseDrawingColor(gs) ?? "#888888";
|
|
3134
|
+
const opacity = chunkLYS44KMG_js.parseDrawingColorOpacity(gs);
|
|
3135
|
+
return { pos, color: chunkLYS44KMG_js.colorWithOpacity(color, opacity) };
|
|
3136
3136
|
}).sort((a, b) => a.pos - b.pos);
|
|
3137
3137
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3138
3138
|
const lin = gradFill["a:lin"];
|
|
3139
3139
|
if (lin) {
|
|
3140
3140
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3141
|
-
const angleDeg = Math.round(
|
|
3141
|
+
const angleDeg = Math.round(chunkLYS44KMG_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3142
3142
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3143
3143
|
}
|
|
3144
3144
|
const path = gradFill["a:path"];
|
|
@@ -3173,8 +3173,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3173
3173
|
if (!pattFill) {
|
|
3174
3174
|
return void 0;
|
|
3175
3175
|
}
|
|
3176
|
-
const fgColor =
|
|
3177
|
-
const bgColor =
|
|
3176
|
+
const fgColor = chunkLYS44KMG_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3177
|
+
const bgColor = chunkLYS44KMG_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3178
3178
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3179
3179
|
switch (preset) {
|
|
3180
3180
|
case "ltHorz":
|
|
@@ -3285,11 +3285,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3285
3285
|
const prstDash = ln["a:prstDash"];
|
|
3286
3286
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3287
3287
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3288
|
-
const color =
|
|
3288
|
+
const color = chunkLYS44KMG_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3289
3289
|
if (color) {
|
|
3290
|
-
const opacity =
|
|
3290
|
+
const opacity = chunkLYS44KMG_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3291
3291
|
const key = `${edge.prefix}`;
|
|
3292
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3292
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkLYS44KMG_js.colorWithOpacity(color, opacity)}`;
|
|
3293
3293
|
}
|
|
3294
3294
|
}
|
|
3295
3295
|
return borderStyle;
|
|
@@ -3302,7 +3302,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3302
3302
|
const textShadowParts = [];
|
|
3303
3303
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3304
3304
|
if (outerShdw) {
|
|
3305
|
-
const shdwColor =
|
|
3305
|
+
const shdwColor = chunkLYS44KMG_js.parseDrawingColor(outerShdw);
|
|
3306
3306
|
if (shdwColor) {
|
|
3307
3307
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3308
3308
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3320,7 +3320,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3320
3320
|
}
|
|
3321
3321
|
const glow = effectLst["a:glow"];
|
|
3322
3322
|
if (glow) {
|
|
3323
|
-
const glowColor =
|
|
3323
|
+
const glowColor = chunkLYS44KMG_js.parseDrawingColor(glow);
|
|
3324
3324
|
if (glowColor) {
|
|
3325
3325
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3326
3326
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3399,10 +3399,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3399
3399
|
if (runProps?.["@_u"] !== void 0) {
|
|
3400
3400
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3401
3401
|
}
|
|
3402
|
-
const runColor =
|
|
3402
|
+
const runColor = chunkLYS44KMG_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkLYS44KMG_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3403
3403
|
if (runColor) {
|
|
3404
|
-
const opacity =
|
|
3405
|
-
cellStyle.color =
|
|
3404
|
+
const opacity = chunkLYS44KMG_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3405
|
+
cellStyle.color = chunkLYS44KMG_js.colorWithOpacity(runColor, opacity);
|
|
3406
3406
|
}
|
|
3407
3407
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3408
3408
|
if (fontFamily) {
|
|
@@ -3412,15 +3412,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3412
3412
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3413
3413
|
}
|
|
3414
3414
|
const cellProperties = cellXml["a:tcPr"];
|
|
3415
|
-
const cellFill =
|
|
3415
|
+
const cellFill = chunkLYS44KMG_js.parseDrawingColor(
|
|
3416
3416
|
cellProperties?.["a:solidFill"],
|
|
3417
3417
|
schemeColorOverrides
|
|
3418
3418
|
);
|
|
3419
3419
|
if (cellFill) {
|
|
3420
|
-
const opacity =
|
|
3420
|
+
const opacity = chunkLYS44KMG_js.parseDrawingColorOpacity(
|
|
3421
3421
|
cellProperties?.["a:solidFill"]
|
|
3422
3422
|
);
|
|
3423
|
-
cellStyle.backgroundColor =
|
|
3423
|
+
cellStyle.backgroundColor = chunkLYS44KMG_js.colorWithOpacity(cellFill, opacity);
|
|
3424
3424
|
} else {
|
|
3425
3425
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3426
3426
|
if (gradCss) {
|
|
@@ -3435,16 +3435,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3435
3435
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3436
3436
|
Object.assign(cellStyle, edgeBorders);
|
|
3437
3437
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3438
|
-
const borderColor =
|
|
3438
|
+
const borderColor = chunkLYS44KMG_js.parseDrawingColor(
|
|
3439
3439
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3440
3440
|
schemeColorOverrides
|
|
3441
|
-
) ||
|
|
3441
|
+
) || chunkLYS44KMG_js.parseDrawingColor(
|
|
3442
3442
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3443
3443
|
schemeColorOverrides
|
|
3444
|
-
) ||
|
|
3444
|
+
) || chunkLYS44KMG_js.parseDrawingColor(
|
|
3445
3445
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3446
3446
|
schemeColorOverrides
|
|
3447
|
-
) ||
|
|
3447
|
+
) || chunkLYS44KMG_js.parseDrawingColor(
|
|
3448
3448
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3449
3449
|
schemeColorOverrides
|
|
3450
3450
|
);
|
|
@@ -3523,10 +3523,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3523
3523
|
}
|
|
3524
3524
|
let color = base;
|
|
3525
3525
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3526
|
-
color =
|
|
3526
|
+
color = chunkLYS44KMG_js.tintColor2(color, fill.tint / 1e5);
|
|
3527
3527
|
}
|
|
3528
3528
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3529
|
-
color =
|
|
3529
|
+
color = chunkLYS44KMG_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3530
3530
|
}
|
|
3531
3531
|
return color;
|
|
3532
3532
|
}
|
|
@@ -3551,7 +3551,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3551
3551
|
style.fontFamily = text.fontFace;
|
|
3552
3552
|
applied = true;
|
|
3553
3553
|
} else {
|
|
3554
|
-
const refFont =
|
|
3554
|
+
const refFont = chunkLYS44KMG_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3555
3555
|
if (refFont) {
|
|
3556
3556
|
style.fontFamily = refFont;
|
|
3557
3557
|
applied = true;
|
|
@@ -3562,10 +3562,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3562
3562
|
if (base) {
|
|
3563
3563
|
let color = base;
|
|
3564
3564
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3565
|
-
color =
|
|
3565
|
+
color = chunkLYS44KMG_js.tintColor2(color, text.fontTint / 1e5);
|
|
3566
3566
|
}
|
|
3567
3567
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3568
|
-
color =
|
|
3568
|
+
color = chunkLYS44KMG_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3569
3569
|
}
|
|
3570
3570
|
style.color = color;
|
|
3571
3571
|
applied = true;
|
|
@@ -3754,7 +3754,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3754
3754
|
};
|
|
3755
3755
|
}
|
|
3756
3756
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3757
|
-
return
|
|
3757
|
+
return chunkLYS44KMG_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3758
3758
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3759
3759
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3760
3760
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3902,9 +3902,9 @@ function cellStyleToCss(style) {
|
|
|
3902
3902
|
if (style.gradientFillCss) {
|
|
3903
3903
|
css.background = style.gradientFillCss;
|
|
3904
3904
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3905
|
-
const fg =
|
|
3906
|
-
const bg =
|
|
3907
|
-
const svgPattern =
|
|
3905
|
+
const fg = chunkLYS44KMG_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3906
|
+
const bg = chunkLYS44KMG_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3907
|
+
const svgPattern = chunkLYS44KMG_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3908
3908
|
if (svgPattern) {
|
|
3909
3909
|
const encoded = encodeURIComponent(svgPattern);
|
|
3910
3910
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3980,7 +3980,7 @@ function cellStyleToCss(style) {
|
|
|
3980
3980
|
if (edge.width || edge.color) {
|
|
3981
3981
|
const w = edge.width ?? 1;
|
|
3982
3982
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3983
|
-
const s =
|
|
3983
|
+
const s = chunkLYS44KMG_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3984
3984
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3985
3985
|
}
|
|
3986
3986
|
}
|
|
@@ -4011,7 +4011,7 @@ function cellStyleToCss(style) {
|
|
|
4011
4011
|
css.textShadow = textShadowParts.join(", ");
|
|
4012
4012
|
}
|
|
4013
4013
|
if (style.cell3D) {
|
|
4014
|
-
Object.assign(css,
|
|
4014
|
+
Object.assign(css, chunkLYS44KMG_js.cell3DBevelCss(style.cell3D));
|
|
4015
4015
|
}
|
|
4016
4016
|
return css;
|
|
4017
4017
|
}
|
|
@@ -4025,7 +4025,7 @@ function TableResizeOverlay({
|
|
|
4025
4025
|
const containerRef = React6.useRef(null);
|
|
4026
4026
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
4027
4027
|
const dragRef = React6.useRef(null);
|
|
4028
|
-
const colBoundaries = React6.useMemo(() =>
|
|
4028
|
+
const colBoundaries = React6.useMemo(() => chunkLYS44KMG_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
4029
4029
|
const measureRows = React6.useCallback(() => {
|
|
4030
4030
|
const container = containerRef.current;
|
|
4031
4031
|
if (!container) {
|
|
@@ -4072,11 +4072,11 @@ function TableResizeOverlay({
|
|
|
4072
4072
|
const rect = containerRef.current.getBoundingClientRect();
|
|
4073
4073
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
4074
4074
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
4075
|
-
onResizeColumns(
|
|
4075
|
+
onResizeColumns(chunkLYS44KMG_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
4076
4076
|
} else if (drag.type === "row" && onResizeRow) {
|
|
4077
4077
|
const deltaY = e.clientY - drag.startPos;
|
|
4078
|
-
const newHeight =
|
|
4079
|
-
drag.initialRowHeight ??
|
|
4078
|
+
const newHeight = chunkLYS44KMG_js.computeResizedRowHeight(
|
|
4079
|
+
drag.initialRowHeight ?? chunkLYS44KMG_js.DEFAULT_ROW_HEIGHT,
|
|
4080
4080
|
deltaY
|
|
4081
4081
|
);
|
|
4082
4082
|
onResizeRow(drag.index, newHeight);
|
|
@@ -4114,7 +4114,7 @@ function TableResizeOverlay({
|
|
|
4114
4114
|
e.stopPropagation();
|
|
4115
4115
|
const table = containerRef.current?.querySelector("table");
|
|
4116
4116
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
4117
|
-
const actualHeight = tr?.offsetHeight ??
|
|
4117
|
+
const actualHeight = tr?.offsetHeight ?? chunkLYS44KMG_js.DEFAULT_ROW_HEIGHT;
|
|
4118
4118
|
document.body.style.cursor = "row-resize";
|
|
4119
4119
|
document.body.style.userSelect = "none";
|
|
4120
4120
|
dragRef.current = {
|
|
@@ -4162,7 +4162,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4162
4162
|
}
|
|
4163
4163
|
const first = selectedCell.selectedCells[0];
|
|
4164
4164
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4165
|
-
return
|
|
4165
|
+
return chunkLYS44KMG_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4166
4166
|
})();
|
|
4167
4167
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4168
4168
|
TableResizeOverlay,
|
|
@@ -4195,7 +4195,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4195
4195
|
return null;
|
|
4196
4196
|
}
|
|
4197
4197
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4198
|
-
const isInMultiSelection =
|
|
4198
|
+
const isInMultiSelection = chunkLYS44KMG_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4199
4199
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4200
4200
|
const diag = getCellDiagonalBorders2(
|
|
4201
4201
|
cell.style,
|
|
@@ -4225,7 +4225,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4225
4225
|
}
|
|
4226
4226
|
event.stopPropagation();
|
|
4227
4227
|
if (event.shiftKey && selectedCell) {
|
|
4228
|
-
const rect =
|
|
4228
|
+
const rect = chunkLYS44KMG_js.computeSelectionRect(
|
|
4229
4229
|
selectedCell.rowIndex,
|
|
4230
4230
|
selectedCell.columnIndex,
|
|
4231
4231
|
rowIndex,
|
|
@@ -4235,7 +4235,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4235
4235
|
options?.onSelectCell?.({
|
|
4236
4236
|
rowIndex: selectedCell.rowIndex,
|
|
4237
4237
|
columnIndex: selectedCell.columnIndex,
|
|
4238
|
-
selectedCells:
|
|
4238
|
+
selectedCells: chunkLYS44KMG_js.rectToCells(rect)
|
|
4239
4239
|
});
|
|
4240
4240
|
} else {
|
|
4241
4241
|
options?.onSelectCell?.({
|
|
@@ -4312,7 +4312,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4312
4312
|
}
|
|
4313
4313
|
const first = selectedCell.selectedCells[0];
|
|
4314
4314
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4315
|
-
return
|
|
4315
|
+
return chunkLYS44KMG_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4316
4316
|
})();
|
|
4317
4317
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4318
4318
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4389,7 +4389,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4389
4389
|
"border px-1 py-0.5 align-top",
|
|
4390
4390
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4391
4391
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4392
|
-
|
|
4392
|
+
chunkLYS44KMG_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4393
4393
|
),
|
|
4394
4394
|
colSpan,
|
|
4395
4395
|
rowSpan: rSpan,
|
|
@@ -4400,7 +4400,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4400
4400
|
}
|
|
4401
4401
|
event.stopPropagation();
|
|
4402
4402
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4403
|
-
const rect =
|
|
4403
|
+
const rect = chunkLYS44KMG_js.computeSelectionRect(
|
|
4404
4404
|
selectedCell.rowIndex,
|
|
4405
4405
|
selectedCell.columnIndex,
|
|
4406
4406
|
rowIndex,
|
|
@@ -4410,7 +4410,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4410
4410
|
options?.onSelectCell?.({
|
|
4411
4411
|
rowIndex: selectedCell.rowIndex,
|
|
4412
4412
|
columnIndex: selectedCell.columnIndex,
|
|
4413
|
-
selectedCells:
|
|
4413
|
+
selectedCells: chunkLYS44KMG_js.rectToCells(rect)
|
|
4414
4414
|
});
|
|
4415
4415
|
} else {
|
|
4416
4416
|
options?.onSelectCell?.({
|
|
@@ -4465,24 +4465,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4465
4465
|
}
|
|
4466
4466
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4467
4467
|
function partAttrs(part) {
|
|
4468
|
-
return part ?
|
|
4468
|
+
return part ? chunkLYS44KMG_js.chartPartToAttrs(part) : void 0;
|
|
4469
4469
|
}
|
|
4470
4470
|
function resolveReactPalette(chartData) {
|
|
4471
4471
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4472
4472
|
return chartData.colorPalette;
|
|
4473
4473
|
}
|
|
4474
|
-
return [...
|
|
4474
|
+
return [...chunkLYS44KMG_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4475
4475
|
}
|
|
4476
4476
|
function buildReactChartViewModel(element) {
|
|
4477
4477
|
if (element.type !== "chart" || !element.chartData) {
|
|
4478
|
-
return
|
|
4478
|
+
return chunkLYS44KMG_js.buildChartViewModel(element);
|
|
4479
4479
|
}
|
|
4480
4480
|
const palette = resolveReactPalette(element.chartData);
|
|
4481
4481
|
const themedElement = {
|
|
4482
4482
|
...element,
|
|
4483
4483
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4484
4484
|
};
|
|
4485
|
-
return
|
|
4485
|
+
return chunkLYS44KMG_js.buildChartViewModel(themedElement);
|
|
4486
4486
|
}
|
|
4487
4487
|
function renderPrimitive(prim, key) {
|
|
4488
4488
|
switch (prim.kind) {
|
|
@@ -4871,7 +4871,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4871
4871
|
const unmatchedRows = [];
|
|
4872
4872
|
categories.forEach((cat, i) => {
|
|
4873
4873
|
const value = values[i] ?? 0;
|
|
4874
|
-
const code =
|
|
4874
|
+
const code = chunkLYS44KMG_js.resolveRegionCode(cat);
|
|
4875
4875
|
if (code) {
|
|
4876
4876
|
regionValueMap.set(code, { value, label: cat });
|
|
4877
4877
|
} else {
|
|
@@ -4909,8 +4909,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4909
4909
|
let fill = "#e2e8f0";
|
|
4910
4910
|
let dataLabel = null;
|
|
4911
4911
|
if (entry) {
|
|
4912
|
-
const t =
|
|
4913
|
-
fill =
|
|
4912
|
+
const t = chunkLYS44KMG_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4913
|
+
fill = chunkLYS44KMG_js.sequentialColorScale(t);
|
|
4914
4914
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4915
4915
|
"text",
|
|
4916
4916
|
{
|
|
@@ -4921,7 +4921,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4921
4921
|
fontWeight: 600,
|
|
4922
4922
|
fill: "#1e293b",
|
|
4923
4923
|
style: { pointerEvents: "none" },
|
|
4924
|
-
children:
|
|
4924
|
+
children: chunkLYS44KMG_js.formatAxisValue(entry.value)
|
|
4925
4925
|
},
|
|
4926
4926
|
`${element.id}-map-dl-${region.code}`
|
|
4927
4927
|
);
|
|
@@ -4939,7 +4939,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4939
4939
|
opacity: 0.9,
|
|
4940
4940
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4941
4941
|
region.name,
|
|
4942
|
-
entry ? `: ${
|
|
4942
|
+
entry ? `: ${chunkLYS44KMG_js.formatAxisValue(entry.value)}` : ""
|
|
4943
4943
|
] })
|
|
4944
4944
|
}
|
|
4945
4945
|
),
|
|
@@ -4977,7 +4977,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4977
4977
|
fontSize: 7,
|
|
4978
4978
|
fill: "#64748b",
|
|
4979
4979
|
textAnchor: "middle",
|
|
4980
|
-
children:
|
|
4980
|
+
children: chunkLYS44KMG_js.formatAxisValue(minVal)
|
|
4981
4981
|
},
|
|
4982
4982
|
`${element.id}-map-legend-min`
|
|
4983
4983
|
),
|
|
@@ -4989,7 +4989,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4989
4989
|
fontSize: 7,
|
|
4990
4990
|
fill: "#64748b",
|
|
4991
4991
|
textAnchor: "middle",
|
|
4992
|
-
children:
|
|
4992
|
+
children: chunkLYS44KMG_js.formatAxisValue(maxVal)
|
|
4993
4993
|
},
|
|
4994
4994
|
`${element.id}-map-legend-max`
|
|
4995
4995
|
)
|
|
@@ -5055,7 +5055,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
5055
5055
|
y,
|
|
5056
5056
|
fontSize,
|
|
5057
5057
|
fill: "#475569",
|
|
5058
|
-
children:
|
|
5058
|
+
children: chunkLYS44KMG_js.formatAxisValue(row.value)
|
|
5059
5059
|
},
|
|
5060
5060
|
`${element.id}-map-ft-val-${i}`
|
|
5061
5061
|
)
|
|
@@ -5126,7 +5126,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5126
5126
|
|
|
5127
5127
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5128
5128
|
function sColor(series, idx) {
|
|
5129
|
-
return
|
|
5129
|
+
return chunkLYS44KMG_js.seriesColor(series, idx);
|
|
5130
5130
|
}
|
|
5131
5131
|
function valToY(val, range, topY, bottomY) {
|
|
5132
5132
|
const usable = bottomY - topY;
|
|
@@ -5665,7 +5665,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5665
5665
|
width: 10,
|
|
5666
5666
|
height: 10,
|
|
5667
5667
|
rx: 2,
|
|
5668
|
-
fill:
|
|
5668
|
+
fill: chunkLYS44KMG_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5669
5669
|
},
|
|
5670
5670
|
`${id}-leg-r-${i}`
|
|
5671
5671
|
)
|
|
@@ -5689,7 +5689,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5689
5689
|
width: 10,
|
|
5690
5690
|
height: 10,
|
|
5691
5691
|
rx: 2,
|
|
5692
|
-
fill:
|
|
5692
|
+
fill: chunkLYS44KMG_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5693
5693
|
}
|
|
5694
5694
|
),
|
|
5695
5695
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5702,9 +5702,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5702
5702
|
}
|
|
5703
5703
|
const lines = [];
|
|
5704
5704
|
if (range.logScale && range.logBase) {
|
|
5705
|
-
const ticks =
|
|
5705
|
+
const ticks = chunkLYS44KMG_js.generateLogTicks(range);
|
|
5706
5706
|
ticks.forEach((tickVal, i) => {
|
|
5707
|
-
const y =
|
|
5707
|
+
const y = chunkLYS44KMG_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5708
5708
|
lines.push(
|
|
5709
5709
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5710
5710
|
"line",
|
|
@@ -5725,7 +5725,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5725
5725
|
const steps = 4;
|
|
5726
5726
|
for (let i = 0; i <= steps; i++) {
|
|
5727
5727
|
const val = range.min + range.span * i / steps;
|
|
5728
|
-
const y =
|
|
5728
|
+
const y = chunkLYS44KMG_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5729
5729
|
lines.push(
|
|
5730
5730
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5731
5731
|
"line",
|
|
@@ -5749,9 +5749,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5749
5749
|
const labels = [];
|
|
5750
5750
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5751
5751
|
if (range.logScale && range.logBase) {
|
|
5752
|
-
const ticks =
|
|
5752
|
+
const ticks = chunkLYS44KMG_js.generateLogTicks(range);
|
|
5753
5753
|
ticks.forEach((tickVal, i) => {
|
|
5754
|
-
const y =
|
|
5754
|
+
const y = chunkLYS44KMG_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5755
5755
|
labels.push(
|
|
5756
5756
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5757
5757
|
"text",
|
|
@@ -5761,7 +5761,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5761
5761
|
textAnchor: "end",
|
|
5762
5762
|
fontSize: 8,
|
|
5763
5763
|
fill: "#64748b",
|
|
5764
|
-
children: hasDisplayUnits ?
|
|
5764
|
+
children: hasDisplayUnits ? chunkLYS44KMG_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkLYS44KMG_js.formatAxisValue(tickVal)
|
|
5765
5765
|
},
|
|
5766
5766
|
`${id}-vaxis-log-${i}`
|
|
5767
5767
|
)
|
|
@@ -5771,7 +5771,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5771
5771
|
const steps = 4;
|
|
5772
5772
|
for (let i = 0; i <= steps; i++) {
|
|
5773
5773
|
const val = range.min + range.span * i / steps;
|
|
5774
|
-
const y =
|
|
5774
|
+
const y = chunkLYS44KMG_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5775
5775
|
labels.push(
|
|
5776
5776
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5777
5777
|
"text",
|
|
@@ -5781,7 +5781,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5781
5781
|
textAnchor: "end",
|
|
5782
5782
|
fontSize: 8,
|
|
5783
5783
|
fill: "#64748b",
|
|
5784
|
-
children: hasDisplayUnits ?
|
|
5784
|
+
children: hasDisplayUnits ? chunkLYS44KMG_js.formatAxisValueWithUnits(val, axisFormatting) : chunkLYS44KMG_js.formatAxisValue(val)
|
|
5785
5785
|
},
|
|
5786
5786
|
`${id}-vaxis-${i}`
|
|
5787
5787
|
)
|
|
@@ -5789,7 +5789,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5789
5789
|
}
|
|
5790
5790
|
}
|
|
5791
5791
|
if (hasDisplayUnits) {
|
|
5792
|
-
const unitLabel =
|
|
5792
|
+
const unitLabel = chunkLYS44KMG_js.getDisplayUnitLabel(
|
|
5793
5793
|
axisFormatting.displayUnits,
|
|
5794
5794
|
axisFormatting.displayUnitsLabel
|
|
5795
5795
|
);
|
|
@@ -5864,7 +5864,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5864
5864
|
if (range.min >= 0) {
|
|
5865
5865
|
return null;
|
|
5866
5866
|
}
|
|
5867
|
-
const y =
|
|
5867
|
+
const y = chunkLYS44KMG_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5868
5868
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5869
5869
|
"line",
|
|
5870
5870
|
{
|
|
@@ -5888,7 +5888,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5888
5888
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5889
5889
|
for (let i = 0; i <= steps; i++) {
|
|
5890
5890
|
const val = range.min + range.span * i / steps;
|
|
5891
|
-
const y =
|
|
5891
|
+
const y = chunkLYS44KMG_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5892
5892
|
labels.push(
|
|
5893
5893
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5894
5894
|
"text",
|
|
@@ -5900,7 +5900,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5900
5900
|
fontFamily,
|
|
5901
5901
|
fontWeight,
|
|
5902
5902
|
fill: fontColor,
|
|
5903
|
-
children: hasDisplayUnits ?
|
|
5903
|
+
children: hasDisplayUnits ? chunkLYS44KMG_js.formatAxisValueWithUnits(val, axisFormatting) : chunkLYS44KMG_js.formatAxisValue(val)
|
|
5904
5904
|
},
|
|
5905
5905
|
`${id}-sec-vaxis-${i}`
|
|
5906
5906
|
)
|
|
@@ -5924,7 +5924,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5924
5924
|
);
|
|
5925
5925
|
}
|
|
5926
5926
|
if (hasDisplayUnits) {
|
|
5927
|
-
const unitLabel =
|
|
5927
|
+
const unitLabel = chunkLYS44KMG_js.getDisplayUnitLabel(
|
|
5928
5928
|
axisFormatting.displayUnits,
|
|
5929
5929
|
axisFormatting.displayUnitsLabel
|
|
5930
5930
|
);
|
|
@@ -5955,7 +5955,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5955
5955
|
const ticks = [];
|
|
5956
5956
|
for (let i = 0; i <= steps; i++) {
|
|
5957
5957
|
const val = range.min + range.span * i / steps;
|
|
5958
|
-
const y =
|
|
5958
|
+
const y = chunkLYS44KMG_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5959
5959
|
ticks.push(
|
|
5960
5960
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5961
5961
|
"line",
|
|
@@ -5982,7 +5982,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5982
5982
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5983
5983
|
for (let i = 0; i <= steps; i++) {
|
|
5984
5984
|
const val = range.min + range.span * i / steps;
|
|
5985
|
-
const y =
|
|
5985
|
+
const y = chunkLYS44KMG_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5986
5986
|
lines.push(
|
|
5987
5987
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5988
5988
|
"line",
|
|
@@ -6144,7 +6144,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6144
6144
|
width: 8,
|
|
6145
6145
|
height: 8,
|
|
6146
6146
|
borderRadius: 2,
|
|
6147
|
-
backgroundColor:
|
|
6147
|
+
backgroundColor: chunkLYS44KMG_js.seriesColor(
|
|
6148
6148
|
s,
|
|
6149
6149
|
si,
|
|
6150
6150
|
chartData.style?.styleId,
|
|
@@ -6183,8 +6183,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6183
6183
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6184
6184
|
const style = chartData.style;
|
|
6185
6185
|
const legendPos = style?.legendPosition || "b";
|
|
6186
|
-
const range =
|
|
6187
|
-
const layout =
|
|
6186
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6187
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6188
6188
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6189
6189
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6190
6190
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6205,10 +6205,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6205
6205
|
const close = closeSeries.values[ci] ?? high;
|
|
6206
6206
|
const isUp = close >= open;
|
|
6207
6207
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6208
|
-
const highY =
|
|
6209
|
-
const lowY =
|
|
6210
|
-
const openY =
|
|
6211
|
-
const closeY =
|
|
6208
|
+
const highY = chunkLYS44KMG_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6209
|
+
const lowY = chunkLYS44KMG_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6210
|
+
const openY = chunkLYS44KMG_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6211
|
+
const closeY = chunkLYS44KMG_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6212
6212
|
elements.push(
|
|
6213
6213
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6214
6214
|
"line",
|
|
@@ -6251,7 +6251,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6251
6251
|
textAnchor: "middle",
|
|
6252
6252
|
fontSize: 7,
|
|
6253
6253
|
fill: "#334155",
|
|
6254
|
-
children:
|
|
6254
|
+
children: chunkLYS44KMG_js.formatAxisValue(close)
|
|
6255
6255
|
},
|
|
6256
6256
|
`${element.id}-stock-dl-${ci}`
|
|
6257
6257
|
)
|
|
@@ -6293,7 +6293,7 @@ function FailedToLoad() {
|
|
|
6293
6293
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6294
6294
|
async () => {
|
|
6295
6295
|
try {
|
|
6296
|
-
return await import('./SurfaceChart3DScene-
|
|
6296
|
+
return await import('./SurfaceChart3DScene-YJFWGG5L.js');
|
|
6297
6297
|
} catch {
|
|
6298
6298
|
return { default: FailedToLoad };
|
|
6299
6299
|
}
|
|
@@ -6317,7 +6317,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6317
6317
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6318
6318
|
const rows = chartData.series.length;
|
|
6319
6319
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6320
|
-
const range =
|
|
6320
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6321
6321
|
const heightMap = new Float32Array(rows * cols);
|
|
6322
6322
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6323
6323
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6437,8 +6437,8 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6437
6437
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6438
6438
|
const style = chartData.style;
|
|
6439
6439
|
const legendPos = style?.legendPosition || "b";
|
|
6440
|
-
const layout =
|
|
6441
|
-
const range =
|
|
6440
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6441
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6442
6442
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6443
6443
|
const seriesCount = chartData.series.length;
|
|
6444
6444
|
const cols = catCount - 1;
|
|
@@ -6528,8 +6528,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6528
6528
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6529
6529
|
const style = chartData.style;
|
|
6530
6530
|
const legendPos = style?.legendPosition || "b";
|
|
6531
|
-
const layout =
|
|
6532
|
-
const range =
|
|
6531
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6532
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6533
6533
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6534
6534
|
const seriesCount = chartData.series.length;
|
|
6535
6535
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6592,7 +6592,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6592
6592
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6593
6593
|
const style = chartData.style;
|
|
6594
6594
|
const legendPos = style?.legendPosition || "b";
|
|
6595
|
-
const layout =
|
|
6595
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6596
6596
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6597
6597
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6598
6598
|
const rects = [];
|
|
@@ -6615,7 +6615,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6615
6615
|
y: curY,
|
|
6616
6616
|
width: Math.max(w - 1, 1),
|
|
6617
6617
|
height: Math.max(h - 1, 1),
|
|
6618
|
-
fill:
|
|
6618
|
+
fill: chunkLYS44KMG_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6619
6619
|
rx: 2,
|
|
6620
6620
|
opacity: 0.85
|
|
6621
6621
|
},
|
|
@@ -6668,8 +6668,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6668
6668
|
const style = chartData.style;
|
|
6669
6669
|
const legendPos = style?.legendPosition || "b";
|
|
6670
6670
|
const values = chartData.series[0]?.values ?? [];
|
|
6671
|
-
const range =
|
|
6672
|
-
const layout =
|
|
6671
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6672
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6673
6673
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6674
6674
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6675
6675
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6680,8 +6680,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6680
6680
|
const isLast = i === values.length - 1;
|
|
6681
6681
|
const startVal = isLast ? 0 : runningTotal;
|
|
6682
6682
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6683
|
-
const barStartY =
|
|
6684
|
-
const barEndY =
|
|
6683
|
+
const barStartY = chunkLYS44KMG_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6684
|
+
const barEndY = chunkLYS44KMG_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6685
6685
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6686
6686
|
const y = Math.min(barStartY, barEndY);
|
|
6687
6687
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6710,7 +6710,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6710
6710
|
textAnchor: "middle",
|
|
6711
6711
|
fontSize: 7,
|
|
6712
6712
|
fill: "#334155",
|
|
6713
|
-
children:
|
|
6713
|
+
children: chunkLYS44KMG_js.formatAxisValue(isLast ? endVal : val)
|
|
6714
6714
|
},
|
|
6715
6715
|
`${element.id}-wf-dl-${i}`
|
|
6716
6716
|
)
|
|
@@ -6758,18 +6758,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6758
6758
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6759
6759
|
const style = chartData.style;
|
|
6760
6760
|
const legendPos = style?.legendPosition || "b";
|
|
6761
|
-
const layoutOpts =
|
|
6761
|
+
const layoutOpts = chunkLYS44KMG_js.computeLayoutOptions(
|
|
6762
6762
|
chartData.axes,
|
|
6763
6763
|
chartData.dataTable,
|
|
6764
6764
|
chartData.series.length
|
|
6765
6765
|
);
|
|
6766
|
-
const layout =
|
|
6767
|
-
const { primary, secondary } =
|
|
6766
|
+
const layout = chunkLYS44KMG_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6767
|
+
const { primary, secondary } = chunkLYS44KMG_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6768
6768
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6769
6769
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6770
|
-
const range =
|
|
6771
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6772
|
-
const secondaryAxisFmt =
|
|
6770
|
+
const range = chunkLYS44KMG_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6771
|
+
const secondaryRange = secondarySeries.length > 0 ? chunkLYS44KMG_js.computeValueRange(secondarySeries) : void 0;
|
|
6772
|
+
const secondaryAxisFmt = chunkLYS44KMG_js.getSecondaryValueAxis(chartData.axes);
|
|
6773
6773
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6774
6774
|
const barSeriesCount = 1;
|
|
6775
6775
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6785,8 +6785,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6785
6785
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6786
6786
|
barSeries.values.forEach((val, vi) => {
|
|
6787
6787
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6788
|
-
const zeroY =
|
|
6789
|
-
const valY =
|
|
6788
|
+
const zeroY = chunkLYS44KMG_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6789
|
+
const valY = chunkLYS44KMG_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6790
6790
|
const y = Math.min(zeroY, valY);
|
|
6791
6791
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6792
6792
|
barElements.push(
|
|
@@ -6797,7 +6797,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6797
6797
|
y,
|
|
6798
6798
|
width: barWidth,
|
|
6799
6799
|
height: h,
|
|
6800
|
-
fill:
|
|
6800
|
+
fill: chunkLYS44KMG_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6801
6801
|
rx: 1
|
|
6802
6802
|
},
|
|
6803
6803
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6813,7 +6813,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6813
6813
|
textAnchor: "middle",
|
|
6814
6814
|
fontSize: 7,
|
|
6815
6815
|
fill: "#334155",
|
|
6816
|
-
children:
|
|
6816
|
+
children: chunkLYS44KMG_js.formatAxisValue(val)
|
|
6817
6817
|
},
|
|
6818
6818
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6819
6819
|
)
|
|
@@ -6830,10 +6830,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6830
6830
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6831
6831
|
const points = series.values.map((val, vi) => {
|
|
6832
6832
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6833
|
-
const y =
|
|
6833
|
+
const y = chunkLYS44KMG_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6834
6834
|
return { x, y, val };
|
|
6835
6835
|
});
|
|
6836
|
-
const c =
|
|
6836
|
+
const c = chunkLYS44KMG_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6837
6837
|
lineElements.push(
|
|
6838
6838
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6839
6839
|
"polyline",
|
|
@@ -6860,7 +6860,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6860
6860
|
textAnchor: "middle",
|
|
6861
6861
|
fontSize: 7,
|
|
6862
6862
|
fill: "#334155",
|
|
6863
|
-
children:
|
|
6863
|
+
children: chunkLYS44KMG_js.formatAxisValue(p.val)
|
|
6864
6864
|
},
|
|
6865
6865
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6866
6866
|
)
|
|
@@ -8006,14 +8006,14 @@ function buildNotesPdf(pages) {
|
|
|
8006
8006
|
notes: page.notes,
|
|
8007
8007
|
slideNumber: page.slideNumber
|
|
8008
8008
|
}));
|
|
8009
|
-
const bytes =
|
|
8009
|
+
const bytes = chunkLYS44KMG_js.buildNotesPdfBytes(images, meta);
|
|
8010
8010
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
8011
8011
|
return URL.createObjectURL(blob);
|
|
8012
8012
|
}
|
|
8013
8013
|
|
|
8014
8014
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
8015
8015
|
function buildPdfFromImageData(images) {
|
|
8016
|
-
const bytes =
|
|
8016
|
+
const bytes = chunkLYS44KMG_js.buildSlidesPdfBytes(images);
|
|
8017
8017
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
8018
8018
|
return URL.createObjectURL(blob);
|
|
8019
8019
|
}
|
|
@@ -8022,7 +8022,7 @@ function buildPdfFromImageData(images) {
|
|
|
8022
8022
|
var activePreview = null;
|
|
8023
8023
|
function startPreviewAnimation(elementId, preset, options) {
|
|
8024
8024
|
stopPreviewAnimation();
|
|
8025
|
-
const descriptor =
|
|
8025
|
+
const descriptor = chunkLYS44KMG_js.buildPreviewAnimation(preset, options);
|
|
8026
8026
|
if (!descriptor) {
|
|
8027
8027
|
return;
|
|
8028
8028
|
}
|