pptx-react-viewer 2.5.2 → 2.5.3
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 +6 -0
- package/dist/{AiChatPanel-OHSLJNYG.js → AiChatPanel-DPMHPOWF.js} +22 -22
- package/dist/AiChatPanel-DPMHPOWF.js.br +0 -0
- package/dist/AiChatPanel-DPMHPOWF.js.gz +0 -0
- package/dist/{AiChatPanel-EMF3UYCE.mjs → AiChatPanel-OFOOWR4U.mjs} +3 -3
- package/dist/AiChatPanel-OFOOWR4U.mjs.br +0 -0
- package/dist/AiChatPanel-OFOOWR4U.mjs.gz +0 -0
- package/dist/{Model3DScene-X6QJTWHV.mjs → Model3DScene-P4OKVQBF.mjs} +1 -1
- package/dist/Model3DScene-P4OKVQBF.mjs.br +0 -0
- package/dist/Model3DScene-P4OKVQBF.mjs.gz +0 -0
- package/dist/{Model3DScene-ULHIJPMU.js → Model3DScene-PD2MDBIE.js} +2 -2
- package/dist/Model3DScene-PD2MDBIE.js.br +0 -0
- package/dist/Model3DScene-PD2MDBIE.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-K7Q5NYZ4.js → SurfaceChart3DScene-FECS3THE.js} +2 -2
- package/dist/SurfaceChart3DScene-FECS3THE.js.br +0 -0
- package/dist/SurfaceChart3DScene-FECS3THE.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-PRCKQJQQ.mjs → SurfaceChart3DScene-TL4ZIOI4.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-PRCKQJQQ.mjs.br → SurfaceChart3DScene-TL4ZIOI4.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-TL4ZIOI4.mjs.gz +0 -0
- package/dist/{chunk-LTEDT475.js → chunk-23Q3I2LM.js} +17 -13
- package/dist/chunk-23Q3I2LM.js.br +0 -0
- package/dist/chunk-23Q3I2LM.js.gz +0 -0
- package/dist/{chunk-VOV2N3NY.mjs → chunk-6KOM27PS.mjs} +17 -13
- package/dist/chunk-6KOM27PS.mjs.br +0 -0
- package/dist/chunk-6KOM27PS.mjs.gz +0 -0
- package/dist/{chunk-HDKHZKSW.mjs → chunk-F3JUUSC4.mjs} +7 -7
- package/dist/chunk-F3JUUSC4.mjs.br +0 -0
- package/dist/chunk-F3JUUSC4.mjs.gz +0 -0
- package/dist/{chunk-NVH3RIN7.js → chunk-FFLUALX5.js} +235 -235
- package/dist/chunk-FFLUALX5.js.br +0 -0
- package/dist/chunk-FFLUALX5.js.gz +0 -0
- package/dist/{chunk-MJAEB43A.js → chunk-H2FZ2NJ7.js} +3 -3
- package/dist/chunk-H2FZ2NJ7.js.br +0 -0
- package/dist/chunk-H2FZ2NJ7.js.gz +0 -0
- package/dist/{chunk-TGVID6BB.mjs → chunk-QDIF3ZXF.mjs} +2 -2
- package/dist/chunk-QDIF3ZXF.mjs.br +0 -0
- package/dist/chunk-QDIF3ZXF.mjs.gz +0 -0
- package/dist/{chunk-WJKMTDXS.mjs → chunk-SAXG53MO.mjs} +1 -1
- package/dist/chunk-SAXG53MO.mjs.br +0 -0
- package/dist/chunk-SAXG53MO.mjs.gz +0 -0
- package/dist/{chunk-OSSVKJGF.js → chunk-USHZUHHG.js} +843 -843
- package/dist/chunk-USHZUHHG.js.br +0 -0
- package/dist/chunk-USHZUHHG.js.gz +0 -0
- package/dist/{chunk-7Q7AEPO7.js → chunk-UUS7QT22.js} +313 -313
- package/dist/chunk-UUS7QT22.js.br +0 -0
- package/dist/chunk-UUS7QT22.js.gz +0 -0
- package/dist/{chunk-LIQGO45T.mjs → chunk-ZZA62IND.mjs} +2 -2
- package/dist/chunk-ZZA62IND.mjs.br +0 -0
- package/dist/chunk-ZZA62IND.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 +3 -3
- package/dist/AiChatPanel-EMF3UYCE.mjs.br +0 -0
- package/dist/AiChatPanel-EMF3UYCE.mjs.gz +0 -0
- package/dist/AiChatPanel-OHSLJNYG.js.br +0 -0
- package/dist/AiChatPanel-OHSLJNYG.js.gz +0 -0
- package/dist/Model3DScene-ULHIJPMU.js.br +0 -0
- package/dist/Model3DScene-ULHIJPMU.js.gz +0 -0
- package/dist/Model3DScene-X6QJTWHV.mjs.br +0 -0
- package/dist/Model3DScene-X6QJTWHV.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-K7Q5NYZ4.js.br +0 -0
- package/dist/SurfaceChart3DScene-K7Q5NYZ4.js.gz +0 -0
- package/dist/SurfaceChart3DScene-PRCKQJQQ.mjs.gz +0 -0
- package/dist/chunk-7Q7AEPO7.js.br +0 -0
- package/dist/chunk-7Q7AEPO7.js.gz +0 -0
- package/dist/chunk-HDKHZKSW.mjs.br +0 -0
- package/dist/chunk-HDKHZKSW.mjs.gz +0 -0
- package/dist/chunk-LIQGO45T.mjs.br +0 -0
- package/dist/chunk-LIQGO45T.mjs.gz +0 -0
- package/dist/chunk-LTEDT475.js.br +0 -0
- package/dist/chunk-LTEDT475.js.gz +0 -0
- package/dist/chunk-MJAEB43A.js.br +0 -0
- package/dist/chunk-MJAEB43A.js.gz +0 -0
- package/dist/chunk-NVH3RIN7.js.br +0 -0
- package/dist/chunk-NVH3RIN7.js.gz +0 -0
- package/dist/chunk-OSSVKJGF.js.br +0 -0
- package/dist/chunk-OSSVKJGF.js.gz +0 -0
- package/dist/chunk-TGVID6BB.mjs.br +0 -0
- package/dist/chunk-TGVID6BB.mjs.gz +0 -0
- package/dist/chunk-VOV2N3NY.mjs.br +0 -0
- package/dist/chunk-VOV2N3NY.mjs.gz +0 -0
- package/dist/chunk-WJKMTDXS.mjs.br +0 -0
- package/dist/chunk-WJKMTDXS.mjs.gz +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 chunk23Q3I2LM_js = require('./chunk-23Q3I2LM.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 chunk23Q3I2LM_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 chunk23Q3I2LM_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 = chunk23Q3I2LM_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 (!chunk23Q3I2LM_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) => chunk23Q3I2LM_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) => !chunk23Q3I2LM_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 (!chunk23Q3I2LM_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 = chunk23Q3I2LM_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 = chunk23Q3I2LM_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 (!chunk23Q3I2LM_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 = chunk23Q3I2LM_js.clampCropValue(element.cropLeft);
|
|
324
|
+
const cropTop = chunk23Q3I2LM_js.clampCropValue(element.cropTop);
|
|
325
|
+
const cropRight = chunk23Q3I2LM_js.clampCropValue(element.cropRight);
|
|
326
|
+
const cropBottom = chunk23Q3I2LM_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 = chunk23Q3I2LM_js.clampCropValue(cropLeft * safeHorizontalScale);
|
|
339
|
+
const normalizedRight = chunk23Q3I2LM_js.clampCropValue(cropRight * safeHorizontalScale);
|
|
340
|
+
const normalizedTop = chunk23Q3I2LM_js.clampCropValue(cropTop * safeVerticalScale);
|
|
341
|
+
const normalizedBottom = chunk23Q3I2LM_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 (!chunk23Q3I2LM_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 (!chunk23Q3I2LM_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 (!chunk23Q3I2LM_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 = chunk23Q3I2LM_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 (!chunk23Q3I2LM_js.hasTextProperties(element)) {
|
|
1175
1175
|
return { color: fallbackColor };
|
|
1176
1176
|
}
|
|
1177
1177
|
const textDecorationTokens = [];
|
|
@@ -1185,20 +1185,20 @@ 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 ? chunk23Q3I2LM_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunk23Q3I2LM_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;
|
|
1192
1192
|
const bodyRight = element.textStyle?.bodyInsetRight ?? DEFAULT_BODY_INSET_LR_PX;
|
|
1193
|
-
const writingMode =
|
|
1194
|
-
const textOrientation =
|
|
1195
|
-
const verticalDirection =
|
|
1193
|
+
const writingMode = chunk23Q3I2LM_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1194
|
+
const textOrientation = chunk23Q3I2LM_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1195
|
+
const verticalDirection = chunk23Q3I2LM_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1196
1196
|
const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
|
|
1197
1197
|
const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
|
|
1198
1198
|
const hasSegments = (element.textSegments?.length ?? 0) > 0;
|
|
1199
1199
|
return {
|
|
1200
1200
|
color: resolvedTextColor,
|
|
1201
|
-
backgroundColor: !hasSegments && element.textStyle?.highlightColor ?
|
|
1201
|
+
backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunk23Q3I2LM_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
|
|
1202
1202
|
textAlign: (() => {
|
|
1203
1203
|
const a = element.textStyle?.align;
|
|
1204
1204
|
if (a === "justLow" || a === "dist" || a === "thaiDist") {
|
|
@@ -1214,7 +1214,7 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1214
1214
|
textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
|
|
1215
1215
|
textDecorationStyle,
|
|
1216
1216
|
fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
|
|
1217
|
-
lineHeight:
|
|
1217
|
+
lineHeight: chunk23Q3I2LM_js.resolveLineHeight(element.textStyle, hasItalicRuns),
|
|
1218
1218
|
paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
|
|
1219
1219
|
paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
|
|
1220
1220
|
paddingLeft: bodyLeft + (element.textStyle?.paragraphMarginLeft || 0),
|
|
@@ -1227,7 +1227,7 @@ function getTextStyleForElement(element, fallbackColor) {
|
|
|
1227
1227
|
// Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
|
|
1228
1228
|
// otherwise fall back to heuristic estimation. The pure font-scale maths
|
|
1229
1229
|
// now lives in pptx-viewer-shared (computeAutoFitTextStyle).
|
|
1230
|
-
...
|
|
1230
|
+
...chunk23Q3I2LM_js.computeAutoFitTextStyle({
|
|
1231
1231
|
textStyle: element.textStyle,
|
|
1232
1232
|
text: element.text ?? "",
|
|
1233
1233
|
width: element.width,
|
|
@@ -1261,13 +1261,13 @@ function computeTabSize(tabStops, defaultTabSize) {
|
|
|
1261
1261
|
return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
|
|
1262
1262
|
}
|
|
1263
1263
|
function getTextLayoutStyle(element) {
|
|
1264
|
-
if (!
|
|
1264
|
+
if (!chunk23Q3I2LM_js.hasTextProperties(element)) {
|
|
1265
1265
|
return {};
|
|
1266
1266
|
}
|
|
1267
1267
|
const verticalAlign = element.textStyle?.vAlign || "top";
|
|
1268
|
-
const writingMode =
|
|
1269
|
-
const textOrientation =
|
|
1270
|
-
const verticalDirection =
|
|
1268
|
+
const writingMode = chunk23Q3I2LM_js.toCssWritingMode(element.textStyle?.textDirection);
|
|
1269
|
+
const textOrientation = chunk23Q3I2LM_js.toCssTextOrientation(element.textStyle?.textDirection);
|
|
1270
|
+
const verticalDirection = chunk23Q3I2LM_js.toCssVerticalDirection(element.textStyle?.textDirection);
|
|
1271
1271
|
const parsedColumnCount = Number(element.textStyle?.columnCount);
|
|
1272
1272
|
const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
|
|
1273
1273
|
const hasColumns = columnCount > 1;
|
|
@@ -1275,7 +1275,7 @@ function getTextLayoutStyle(element) {
|
|
|
1275
1275
|
const tabStops = element.textStyle?.tabStops;
|
|
1276
1276
|
const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
|
|
1277
1277
|
const textWrapNone = element.textStyle?.textWrap === "none";
|
|
1278
|
-
const hasParagraphIndents =
|
|
1278
|
+
const hasParagraphIndents = chunk23Q3I2LM_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
|
|
1279
1279
|
const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
|
|
1280
1280
|
const paragraphIndent = element.textStyle?.paragraphIndent;
|
|
1281
1281
|
const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
|
|
@@ -1284,7 +1284,7 @@ function getTextLayoutStyle(element) {
|
|
|
1284
1284
|
const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
|
|
1285
1285
|
const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
|
|
1286
1286
|
const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
|
|
1287
|
-
const kinsokuStyles =
|
|
1287
|
+
const kinsokuStyles = chunk23Q3I2LM_js.getKinsokuLineBreakStyles(element.textStyle);
|
|
1288
1288
|
if (hasColumns) {
|
|
1289
1289
|
return {
|
|
1290
1290
|
display: "block",
|
|
@@ -1331,10 +1331,10 @@ function getTextLayoutStyle(element) {
|
|
|
1331
1331
|
|
|
1332
1332
|
// src/viewer/utils/text-effects.tsx
|
|
1333
1333
|
function buildTextFillCss2(style) {
|
|
1334
|
-
return
|
|
1334
|
+
return chunk23Q3I2LM_js.buildTextFillCss(style);
|
|
1335
1335
|
}
|
|
1336
1336
|
function buildTextBody3DSceneStyle2(textStyle) {
|
|
1337
|
-
return
|
|
1337
|
+
return chunk23Q3I2LM_js.buildTextBody3DSceneStyle(textStyle);
|
|
1338
1338
|
}
|
|
1339
1339
|
|
|
1340
1340
|
// src/viewer/utils/text-warp-css.tsx
|
|
@@ -1519,13 +1519,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1519
1519
|
if (!subElementAnimStates || subElementAnimStates.size === 0) {
|
|
1520
1520
|
return renderedSegments;
|
|
1521
1521
|
}
|
|
1522
|
-
const paraKey = `${elementId}${
|
|
1522
|
+
const paraKey = `${elementId}${chunk23Q3I2LM_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
|
|
1523
1523
|
const paraState = subElementAnimStates.get(paraKey);
|
|
1524
1524
|
if (paraState) {
|
|
1525
1525
|
const style = buildAnimStyle(paraState);
|
|
1526
1526
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
|
|
1527
1527
|
}
|
|
1528
|
-
const spec =
|
|
1528
|
+
const spec = chunk23Q3I2LM_js.buildTextBuildSpec(
|
|
1529
1529
|
elementId,
|
|
1530
1530
|
paraIndex,
|
|
1531
1531
|
paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
|
|
@@ -1543,7 +1543,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
|
|
|
1543
1543
|
"span",
|
|
1544
1544
|
{
|
|
1545
1545
|
"data-anim-id": span.animId,
|
|
1546
|
-
style:
|
|
1546
|
+
style: chunk23Q3I2LM_js.textBuildSpanStyle(span),
|
|
1547
1547
|
children: content
|
|
1548
1548
|
},
|
|
1549
1549
|
span.animId
|
|
@@ -1687,10 +1687,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1687
1687
|
if (!needsScriptFonts || !text) {
|
|
1688
1688
|
return text;
|
|
1689
1689
|
}
|
|
1690
|
-
const runs =
|
|
1690
|
+
const runs = chunk23Q3I2LM_js.segmentByScript(text);
|
|
1691
1691
|
if (runs.length <= 1) {
|
|
1692
1692
|
if (runs.length === 1) {
|
|
1693
|
-
const font =
|
|
1693
|
+
const font = chunk23Q3I2LM_js.resolveFontForScript(runs[0].script, scriptFonts);
|
|
1694
1694
|
if (font && font !== baseFontFamily) {
|
|
1695
1695
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
|
|
1696
1696
|
}
|
|
@@ -1698,7 +1698,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
|
|
|
1698
1698
|
return text;
|
|
1699
1699
|
}
|
|
1700
1700
|
return runs.map((run, i) => {
|
|
1701
|
-
const font =
|
|
1701
|
+
const font = chunk23Q3I2LM_js.resolveFontForScript(run.script, scriptFonts);
|
|
1702
1702
|
if (!font || font === baseFontFamily) {
|
|
1703
1703
|
return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
|
|
1704
1704
|
}
|
|
@@ -1770,8 +1770,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
|
|
|
1770
1770
|
);
|
|
1771
1771
|
}
|
|
1772
1772
|
function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
|
|
1773
|
-
const mathml =
|
|
1774
|
-
const safeMathml = mathml ?
|
|
1773
|
+
const mathml = chunk23Q3I2LM_js.convertOmmlToMathMl(equationXml);
|
|
1774
|
+
const safeMathml = mathml ? chunk23Q3I2LM_js.sanitizeMathMl(mathml) : "";
|
|
1775
1775
|
const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1776
1776
|
"span",
|
|
1777
1777
|
{
|
|
@@ -1821,7 +1821,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
|
|
|
1821
1821
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
|
|
1822
1822
|
}
|
|
1823
1823
|
function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
|
|
1824
|
-
const picture =
|
|
1824
|
+
const picture = chunk23Q3I2LM_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
|
|
1825
1825
|
sizePx: baseFontSize,
|
|
1826
1826
|
fallbackMarker: "\u2022",
|
|
1827
1827
|
accessibleLabel: "Bullet"
|
|
@@ -1871,7 +1871,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1871
1871
|
);
|
|
1872
1872
|
}
|
|
1873
1873
|
const segmentStyle = segment.style || {};
|
|
1874
|
-
const textValue =
|
|
1874
|
+
const textValue = chunk23Q3I2LM_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
|
|
1875
1875
|
const lines = textValue.split("\n");
|
|
1876
1876
|
const textDecorationTokens = [];
|
|
1877
1877
|
if (segmentStyle.underline || segmentStyle.hyperlink) {
|
|
@@ -1881,8 +1881,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1881
1881
|
textDecorationTokens.push("line-through");
|
|
1882
1882
|
}
|
|
1883
1883
|
const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
|
|
1884
|
-
const resolvedSegmentColor = segmentStyle.hyperlink ?
|
|
1885
|
-
const underlineDecoration =
|
|
1884
|
+
const resolvedSegmentColor = segmentStyle.hyperlink ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
|
|
1885
|
+
const underlineDecoration = chunk23Q3I2LM_js.resolveUnderlineDecorationStyle(
|
|
1886
1886
|
Boolean(isDoubleStrike),
|
|
1887
1887
|
segmentStyle.underlineStyle
|
|
1888
1888
|
);
|
|
@@ -1898,14 +1898,14 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1898
1898
|
const baseFontSizePt = baseFontSize * (72 / 96);
|
|
1899
1899
|
const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
|
|
1900
1900
|
const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
|
|
1901
|
-
const baseFontFamily = rawFontFamily ?
|
|
1901
|
+
const baseFontFamily = rawFontFamily ? chunk23Q3I2LM_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
|
|
1902
1902
|
const scriptFonts = {
|
|
1903
1903
|
latin: baseFontFamily,
|
|
1904
1904
|
eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
|
|
1905
1905
|
complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
|
|
1906
1906
|
symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
|
|
1907
1907
|
};
|
|
1908
|
-
const needsScriptFonts =
|
|
1908
|
+
const needsScriptFonts = chunk23Q3I2LM_js.hasDistinctScriptFonts(scriptFonts);
|
|
1909
1909
|
const spanStyle = {
|
|
1910
1910
|
color: resolvedSegmentColor,
|
|
1911
1911
|
fontSize: baseFontSize * baselineFontScale,
|
|
@@ -1923,15 +1923,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1923
1923
|
fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
|
|
1924
1924
|
letterSpacing,
|
|
1925
1925
|
fontKerning,
|
|
1926
|
-
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ?
|
|
1926
|
+
backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
|
|
1927
1927
|
...textFillStyles,
|
|
1928
|
-
textDecorationColor: segmentStyle.underlineColor ?
|
|
1929
|
-
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${
|
|
1928
|
+
textDecorationColor: segmentStyle.underlineColor ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
|
|
1929
|
+
WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
|
|
1930
1930
|
paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
|
|
1931
|
-
textShadow:
|
|
1932
|
-
filter:
|
|
1933
|
-
opacity:
|
|
1934
|
-
WebkitBoxReflect:
|
|
1931
|
+
textShadow: chunk23Q3I2LM_js.buildTextShadowCss(segmentStyle),
|
|
1932
|
+
filter: chunk23Q3I2LM_js.buildTextRunFilterChain(segmentStyle),
|
|
1933
|
+
opacity: chunk23Q3I2LM_js.getTextAlphaOpacity(segmentStyle),
|
|
1934
|
+
WebkitBoxReflect: chunk23Q3I2LM_js.buildTextReflectionCss(segmentStyle)
|
|
1935
1935
|
};
|
|
1936
1936
|
const runRtl = segmentStyle.rtl;
|
|
1937
1937
|
if (runRtl !== void 0 && runRtl !== paragraphRtl) {
|
|
@@ -1951,7 +1951,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1951
1951
|
spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
|
|
1952
1952
|
}
|
|
1953
1953
|
if (bulletInfo.color) {
|
|
1954
|
-
spanStyle.color =
|
|
1954
|
+
spanStyle.color = chunk23Q3I2LM_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
|
|
1955
1955
|
}
|
|
1956
1956
|
}
|
|
1957
1957
|
if (bulletInfo?.imageDataUrl || bulletInfo?.imageRelId) {
|
|
@@ -1991,7 +1991,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
|
|
|
1991
1991
|
textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
|
|
1992
1992
|
};
|
|
1993
1993
|
if (segment.rubyStyle?.color) {
|
|
1994
|
-
rubyStyle.color =
|
|
1994
|
+
rubyStyle.color = chunk23Q3I2LM_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
|
|
1995
1995
|
}
|
|
1996
1996
|
innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
|
|
1997
1997
|
baseContent,
|
|
@@ -2086,7 +2086,7 @@ function groupSegmentsIntoParagraphs(segments) {
|
|
|
2086
2086
|
return paragraphs;
|
|
2087
2087
|
}
|
|
2088
2088
|
function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
|
|
2089
|
-
if (!
|
|
2089
|
+
if (!chunk23Q3I2LM_js.hasTextProperties(element)) {
|
|
2090
2090
|
return emptyFallback || null;
|
|
2091
2091
|
}
|
|
2092
2092
|
const effectiveSegments = segmentOverrides ?? element.textSegments;
|
|
@@ -2107,10 +2107,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2107
2107
|
return element.text || emptyFallback || "";
|
|
2108
2108
|
}
|
|
2109
2109
|
const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
|
|
2110
|
-
const paragraphIndents =
|
|
2111
|
-
const elementRtl =
|
|
2112
|
-
const elementAlign =
|
|
2113
|
-
const bodyStyle =
|
|
2110
|
+
const paragraphIndents = chunk23Q3I2LM_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
|
|
2111
|
+
const elementRtl = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
|
|
2112
|
+
const elementAlign = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
|
|
2113
|
+
const bodyStyle = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle : void 0;
|
|
2114
2114
|
const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
|
|
2115
2115
|
return paragraphs.map((paraSegments, paraIndex) => {
|
|
2116
2116
|
const paraIndent = paragraphIndents?.[paraIndex];
|
|
@@ -2125,14 +2125,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
|
|
|
2125
2125
|
return Boolean(segment.text) && segment.text.trim().length > 0;
|
|
2126
2126
|
});
|
|
2127
2127
|
const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
|
|
2128
|
-
const paraRtl =
|
|
2128
|
+
const paraRtl = chunk23Q3I2LM_js.resolveParagraphRtl(paraSegments, elementRtl);
|
|
2129
2129
|
const isRtlParagraph = paraRtl === true;
|
|
2130
|
-
const paraAlign =
|
|
2131
|
-
const cssTextAlign =
|
|
2130
|
+
const paraAlign = chunk23Q3I2LM_js.resolveParagraphAlign(paraSegments, elementAlign);
|
|
2131
|
+
const cssTextAlign = chunk23Q3I2LM_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
|
|
2132
2132
|
const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
|
|
2133
2133
|
const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
|
|
2134
2134
|
const paraTextIndent = rawTextIndent;
|
|
2135
|
-
const paraKinsokuStyle =
|
|
2135
|
+
const paraKinsokuStyle = chunk23Q3I2LM_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
|
|
2136
2136
|
const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
|
|
2137
2137
|
const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties;
|
|
2138
2138
|
const spacing = resolveParagraphSpacing({
|
|
@@ -2234,13 +2234,13 @@ function hexToRgbUnit(hex) {
|
|
|
2234
2234
|
};
|
|
2235
2235
|
}
|
|
2236
2236
|
function getDuotoneColors(element) {
|
|
2237
|
-
if (!
|
|
2237
|
+
if (!chunk23Q3I2LM_js.isImageLikeElement(element)) {
|
|
2238
2238
|
return void 0;
|
|
2239
2239
|
}
|
|
2240
2240
|
return element.imageEffects?.duotone;
|
|
2241
2241
|
}
|
|
2242
2242
|
function buildLineShadowCss(element) {
|
|
2243
|
-
if (!
|
|
2243
|
+
if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2244
2244
|
return void 0;
|
|
2245
2245
|
}
|
|
2246
2246
|
const ss = element.shapeStyle;
|
|
@@ -2251,13 +2251,13 @@ function buildLineShadowCss(element) {
|
|
|
2251
2251
|
const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
|
|
2252
2252
|
const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
|
|
2253
2253
|
const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
|
|
2254
|
-
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${
|
|
2255
|
-
|
|
2254
|
+
return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk23Q3I2LM_js.colorWithOpacity(
|
|
2255
|
+
chunk23Q3I2LM_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
|
|
2256
2256
|
opacity
|
|
2257
2257
|
)}`;
|
|
2258
2258
|
}
|
|
2259
2259
|
function buildLineGlowFilter(element) {
|
|
2260
|
-
if (!
|
|
2260
|
+
if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2261
2261
|
return void 0;
|
|
2262
2262
|
}
|
|
2263
2263
|
const ss = element.shapeStyle;
|
|
@@ -2266,7 +2266,7 @@ function buildLineGlowFilter(element) {
|
|
|
2266
2266
|
}
|
|
2267
2267
|
const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
|
|
2268
2268
|
const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
|
|
2269
|
-
const glowCol =
|
|
2269
|
+
const glowCol = chunk23Q3I2LM_js.colorWithOpacity(chunk23Q3I2LM_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
|
|
2270
2270
|
return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
|
|
2271
2271
|
}
|
|
2272
2272
|
function mapDagBlendModeToCss(blend) {
|
|
@@ -2290,7 +2290,7 @@ function getDagDuotoneFilterId(elementId) {
|
|
|
2290
2290
|
return `dag-duotone-${elementId}`;
|
|
2291
2291
|
}
|
|
2292
2292
|
function hasDagDuotoneEffect(element) {
|
|
2293
|
-
if (!
|
|
2293
|
+
if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2294
2294
|
return false;
|
|
2295
2295
|
}
|
|
2296
2296
|
return Boolean(element.shapeStyle?.dagDuotone);
|
|
@@ -2353,7 +2353,7 @@ function getRoundRectRadiusPx2(element) {
|
|
|
2353
2353
|
|
|
2354
2354
|
// src/viewer/utils/shape-visual-3d.ts
|
|
2355
2355
|
function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
|
|
2356
|
-
return
|
|
2356
|
+
return chunk23Q3I2LM_js.build3DExtrusionData(
|
|
2357
2357
|
shape3d,
|
|
2358
2358
|
scene3d,
|
|
2359
2359
|
fillColor,
|
|
@@ -2362,7 +2362,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
|
|
|
2362
2362
|
);
|
|
2363
2363
|
}
|
|
2364
2364
|
function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
|
|
2365
|
-
|
|
2365
|
+
chunk23Q3I2LM_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
|
|
2366
2366
|
}
|
|
2367
2367
|
|
|
2368
2368
|
// src/viewer/utils/vector-subpath-paint.ts
|
|
@@ -2371,7 +2371,7 @@ function toHexByte(value) {
|
|
|
2371
2371
|
return clamped.toString(16).padStart(2, "0");
|
|
2372
2372
|
}
|
|
2373
2373
|
function shiftHex(hex, factor, towardsWhite) {
|
|
2374
|
-
const channels =
|
|
2374
|
+
const channels = chunk23Q3I2LM_js.hexToRgbChannels(hex);
|
|
2375
2375
|
if (!channels) {
|
|
2376
2376
|
return hex;
|
|
2377
2377
|
}
|
|
@@ -2397,13 +2397,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
|
|
|
2397
2397
|
const fillOff = subpath.fillMode === "none" || !hasFill;
|
|
2398
2398
|
return {
|
|
2399
2399
|
d: subpath.d,
|
|
2400
|
-
fill: fillOff ? "none" :
|
|
2400
|
+
fill: fillOff ? "none" : chunk23Q3I2LM_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
|
|
2401
2401
|
stroked: subpath.stroke !== false
|
|
2402
2402
|
};
|
|
2403
2403
|
});
|
|
2404
2404
|
}
|
|
2405
2405
|
function getStrokeOnlyPresetPaths(element) {
|
|
2406
|
-
if (element.type !== "shape" || !
|
|
2406
|
+
if (element.type !== "shape" || !chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2407
2407
|
return void 0;
|
|
2408
2408
|
}
|
|
2409
2409
|
const shapeType = element.shapeType;
|
|
@@ -2413,7 +2413,7 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2413
2413
|
if (element.pathData) {
|
|
2414
2414
|
return void 0;
|
|
2415
2415
|
}
|
|
2416
|
-
const result =
|
|
2416
|
+
const result = chunk23Q3I2LM_js.evaluatePresetShape(
|
|
2417
2417
|
shapeType,
|
|
2418
2418
|
Math.max(element.width, 1),
|
|
2419
2419
|
Math.max(element.height, 1),
|
|
@@ -2428,27 +2428,27 @@ function getStrokeOnlyPresetPaths(element) {
|
|
|
2428
2428
|
|
|
2429
2429
|
// src/viewer/utils/shape-visual-style.ts
|
|
2430
2430
|
function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2431
|
-
if (!
|
|
2431
|
+
if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2432
2432
|
return {};
|
|
2433
2433
|
}
|
|
2434
2434
|
const normalizedShapeType = getShapeType(element.shapeType);
|
|
2435
|
-
const clipPath =
|
|
2435
|
+
const clipPath = chunk23Q3I2LM_js.getResolvedShapeClipPath(element);
|
|
2436
2436
|
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;
|
|
2437
2437
|
const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
|
|
2438
2438
|
const fillOpacity = element.shapeStyle?.fillOpacity;
|
|
2439
2439
|
const strokeOpacity = element.shapeStyle?.strokeOpacity;
|
|
2440
|
-
const strokeDash =
|
|
2441
|
-
const fillGradient =
|
|
2442
|
-
const shadowCss =
|
|
2443
|
-
const innerShadowCss =
|
|
2444
|
-
const resolvedFillColor =
|
|
2445
|
-
const resolvedStrokeColor =
|
|
2440
|
+
const strokeDash = chunk23Q3I2LM_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2441
|
+
const fillGradient = chunk23Q3I2LM_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
|
|
2442
|
+
const shadowCss = chunk23Q3I2LM_js.buildShadowCssFromShapeStyle(element.shapeStyle);
|
|
2443
|
+
const innerShadowCss = chunk23Q3I2LM_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
|
|
2444
|
+
const resolvedFillColor = chunk23Q3I2LM_js.colorWithOpacity(fillColor, fillOpacity);
|
|
2445
|
+
const resolvedStrokeColor = chunk23Q3I2LM_js.colorWithOpacity(strokeColor, strokeOpacity);
|
|
2446
2446
|
const ss = element.shapeStyle;
|
|
2447
2447
|
const hasFillOverlayColor = Boolean(
|
|
2448
2448
|
ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
|
|
2449
2449
|
);
|
|
2450
2450
|
const combinedShadowParts = [];
|
|
2451
|
-
const multiLayerShadow =
|
|
2451
|
+
const multiLayerShadow = chunk23Q3I2LM_js.buildMultiLayerShadowCss(element.shapeStyle);
|
|
2452
2452
|
if (multiLayerShadow) {
|
|
2453
2453
|
combinedShadowParts.push(multiLayerShadow);
|
|
2454
2454
|
} else if (shadowCss) {
|
|
@@ -2457,7 +2457,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2457
2457
|
if (innerShadowCss) {
|
|
2458
2458
|
combinedShadowParts.push(innerShadowCss);
|
|
2459
2459
|
}
|
|
2460
|
-
const glowBoxShadow =
|
|
2460
|
+
const glowBoxShadow = chunk23Q3I2LM_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
|
|
2461
2461
|
if (glowBoxShadow) {
|
|
2462
2462
|
combinedShadowParts.push(glowBoxShadow);
|
|
2463
2463
|
}
|
|
@@ -2465,7 +2465,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2465
2465
|
if (lineShadow) {
|
|
2466
2466
|
combinedShadowParts.push(lineShadow);
|
|
2467
2467
|
}
|
|
2468
|
-
const compoundLineShadow =
|
|
2468
|
+
const compoundLineShadow = chunk23Q3I2LM_js.getCompoundLineBoxShadow(
|
|
2469
2469
|
element.shapeStyle?.compoundLine,
|
|
2470
2470
|
strokeWidth,
|
|
2471
2471
|
resolvedStrokeColor
|
|
@@ -2478,11 +2478,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2478
2478
|
if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
|
|
2479
2479
|
const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
|
|
2480
2480
|
const glowRad = Math.round(Math.max(0, ss.glowRadius));
|
|
2481
|
-
const glowCol =
|
|
2481
|
+
const glowCol = chunk23Q3I2LM_js.colorWithOpacity(chunk23Q3I2LM_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
|
|
2482
2482
|
filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
|
|
2483
2483
|
}
|
|
2484
2484
|
if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
|
|
2485
|
-
filterParts.push(`url(#${
|
|
2485
|
+
filterParts.push(`url(#${chunk23Q3I2LM_js.getSoftEdgeFilterId(element.id)})`);
|
|
2486
2486
|
}
|
|
2487
2487
|
if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
|
|
2488
2488
|
filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
|
|
@@ -2491,13 +2491,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2491
2491
|
if (lineGlowCss) {
|
|
2492
2492
|
filterParts.push(lineGlowCss);
|
|
2493
2493
|
}
|
|
2494
|
-
const dagFilter =
|
|
2494
|
+
const dagFilter = chunk23Q3I2LM_js.getEffectDagFilter(ss, element.id);
|
|
2495
2495
|
if (dagFilter) {
|
|
2496
2496
|
filterParts.push(dagFilter);
|
|
2497
2497
|
}
|
|
2498
2498
|
const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
|
|
2499
2499
|
const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
|
|
2500
|
-
const patternFill =
|
|
2500
|
+
const patternFill = chunk23Q3I2LM_js.buildPatternFillCss(element.shapeStyle);
|
|
2501
2501
|
const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
|
|
2502
2502
|
const imageFillMode = ss?.fillImageMode || "stretch";
|
|
2503
2503
|
let reflectCss;
|
|
@@ -2509,7 +2509,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2509
2509
|
const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
|
|
2510
2510
|
const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
|
|
2511
2511
|
const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
|
|
2512
|
-
reflectCss =
|
|
2512
|
+
reflectCss = chunk23Q3I2LM_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
|
|
2513
2513
|
}
|
|
2514
2514
|
}
|
|
2515
2515
|
const base = {
|
|
@@ -2543,9 +2543,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2543
2543
|
// is present, `ShapeEffectOverlay` paints a separate blended tint layer so
|
|
2544
2544
|
// the colour is actually rendered (and text/children are not tinted).
|
|
2545
2545
|
mixBlendMode: hasFillOverlayColor ? void 0 : mapDagBlendModeToCss(ss?.dagFillOverlayBlend),
|
|
2546
|
-
borderWidth: strokeWidth > 0 ?
|
|
2546
|
+
borderWidth: strokeWidth > 0 ? chunk23Q3I2LM_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : void 0,
|
|
2547
2547
|
borderColor: strokeWidth > 0 ? resolvedStrokeColor : void 0,
|
|
2548
|
-
borderStyle: strokeWidth > 0 ?
|
|
2548
|
+
borderStyle: strokeWidth > 0 ? chunk23Q3I2LM_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
|
|
2549
2549
|
strokeLinejoin: lineJoinCss,
|
|
2550
2550
|
strokeMiterlimit: miterLimitCss,
|
|
2551
2551
|
strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
|
|
@@ -2601,7 +2601,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2601
2601
|
borderWidth: 0,
|
|
2602
2602
|
borderTopWidth: Math.max(strokeWidth, 2),
|
|
2603
2603
|
borderTopColor: resolvedStrokeColor,
|
|
2604
|
-
borderTopStyle:
|
|
2604
|
+
borderTopStyle: chunk23Q3I2LM_js.getCssBorderDashStyle(strokeDash)
|
|
2605
2605
|
};
|
|
2606
2606
|
}
|
|
2607
2607
|
if (normalizedShapeType === "cylinder") {
|
|
@@ -2615,13 +2615,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
|
|
|
2615
2615
|
function getConnectorAdjustment(element, key, fallback) {
|
|
2616
2616
|
const direct = element.shapeAdjustments?.[key];
|
|
2617
2617
|
if (typeof direct === "number" && Number.isFinite(direct)) {
|
|
2618
|
-
return
|
|
2618
|
+
return chunk23Q3I2LM_js.clampUnitInterval(direct / 1e5);
|
|
2619
2619
|
}
|
|
2620
2620
|
const fallbackKey = element.shapeAdjustments?.adj;
|
|
2621
2621
|
if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
|
|
2622
|
-
return
|
|
2622
|
+
return chunk23Q3I2LM_js.clampUnitInterval(fallbackKey / 1e5);
|
|
2623
2623
|
}
|
|
2624
|
-
return
|
|
2624
|
+
return chunk23Q3I2LM_js.clampUnitInterval(fallback);
|
|
2625
2625
|
}
|
|
2626
2626
|
function getConnectorPathGeometry(element) {
|
|
2627
2627
|
const width = Math.max(element.width, 1);
|
|
@@ -2758,11 +2758,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
|
|
|
2758
2758
|
strokePaint,
|
|
2759
2759
|
strokeWidth,
|
|
2760
2760
|
dashArray,
|
|
2761
|
-
lineCap:
|
|
2761
|
+
lineCap: chunk23Q3I2LM_js.svgLineCap(shapeStyle?.lineCap),
|
|
2762
2762
|
lineJoin,
|
|
2763
2763
|
miterLimit,
|
|
2764
|
-
offsets:
|
|
2765
|
-
widths:
|
|
2764
|
+
offsets: chunk23Q3I2LM_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
|
|
2765
|
+
widths: chunk23Q3I2LM_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
|
|
2766
2766
|
};
|
|
2767
2767
|
}
|
|
2768
2768
|
function strokeStrands(d, keyBase, ctx) {
|
|
@@ -2785,7 +2785,7 @@ function strokeStrands(d, keyBase, ctx) {
|
|
|
2785
2785
|
}
|
|
2786
2786
|
function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false) {
|
|
2787
2787
|
const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
|
|
2788
|
-
const subpaths = structuredPaths && structuredPaths.length > 0 ?
|
|
2788
|
+
const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk23Q3I2LM_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
|
|
2789
2789
|
const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
|
|
2790
2790
|
const nodes = [];
|
|
2791
2791
|
if (subpaths && needsPerSubpath) {
|
|
@@ -2816,7 +2816,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
|
|
|
2816
2816
|
"path",
|
|
2817
2817
|
{
|
|
2818
2818
|
d: pathData,
|
|
2819
|
-
fill: animatesFill ? "inherit" :
|
|
2819
|
+
fill: animatesFill ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(fillColor, fillOpacity),
|
|
2820
2820
|
stroke: "none",
|
|
2821
2821
|
vectorEffect: "non-scaling-stroke"
|
|
2822
2822
|
},
|
|
@@ -2858,14 +2858,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
|
|
|
2858
2858
|
);
|
|
2859
2859
|
}
|
|
2860
2860
|
function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
|
|
2861
|
-
if (!
|
|
2861
|
+
if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
|
|
2862
2862
|
return null;
|
|
2863
2863
|
}
|
|
2864
2864
|
const normalizedType = (element.shapeType || "").toLowerCase();
|
|
2865
|
-
const fillPaint = animatesFill ? "inherit" :
|
|
2866
|
-
const strokePaint = animatesStroke ? "inherit" :
|
|
2867
|
-
const dashType =
|
|
2868
|
-
const dashArray =
|
|
2865
|
+
const fillPaint = animatesFill ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
|
|
2866
|
+
const strokePaint = animatesStroke ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
|
|
2867
|
+
const dashType = chunk23Q3I2LM_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
|
|
2868
|
+
const dashArray = chunk23Q3I2LM_js.getSvgStrokeDasharray(
|
|
2869
2869
|
dashType,
|
|
2870
2870
|
Math.max(strokeWidth, 1),
|
|
2871
2871
|
element.shapeStyle?.customDashSegments
|
|
@@ -2944,18 +2944,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
2944
2944
|
Boolean(animatesFill)
|
|
2945
2945
|
);
|
|
2946
2946
|
}
|
|
2947
|
-
if (
|
|
2947
|
+
if (chunk23Q3I2LM_js.isCalloutShape(normalizedType)) {
|
|
2948
2948
|
const width = Math.max(element.width, 1);
|
|
2949
2949
|
const height = Math.max(element.height, 1);
|
|
2950
|
-
const geometry =
|
|
2950
|
+
const geometry = chunk23Q3I2LM_js.getCalloutLeaderLineGeometry(
|
|
2951
2951
|
normalizedType,
|
|
2952
2952
|
width,
|
|
2953
2953
|
height,
|
|
2954
2954
|
element.shapeAdjustments
|
|
2955
2955
|
);
|
|
2956
2956
|
if (geometry && geometry.points.length >= 2) {
|
|
2957
|
-
const leaderPath =
|
|
2958
|
-
const bounds =
|
|
2957
|
+
const leaderPath = chunk23Q3I2LM_js.buildCalloutLeaderLineSvgPath(geometry);
|
|
2958
|
+
const bounds = chunk23Q3I2LM_js.getCalloutViewBoxBounds(width, height, geometry);
|
|
2959
2959
|
const lineStroke = Math.max(strokeWidth, 1);
|
|
2960
2960
|
const offsetLeft = bounds.minX;
|
|
2961
2961
|
const offsetTop = bounds.minY;
|
|
@@ -3018,10 +3018,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
|
|
|
3018
3018
|
const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
|
|
3019
3019
|
const endArrowL = element.shapeStyle?.connectorEndArrowLength;
|
|
3020
3020
|
const compoundLine = element.shapeStyle?.compoundLine;
|
|
3021
|
-
const connectorLineCap =
|
|
3021
|
+
const connectorLineCap = chunk23Q3I2LM_js.svgLineCap(element.shapeStyle?.lineCap);
|
|
3022
3022
|
const hitTargetWidth = Math.max(strokeWidth * 3, 12);
|
|
3023
|
-
const offsets =
|
|
3024
|
-
const widths =
|
|
3023
|
+
const offsets = chunk23Q3I2LM_js.getCompoundLineOffsets(compoundLine, strokeWidth);
|
|
3024
|
+
const widths = chunk23Q3I2LM_js.getCompoundLineWidths(compoundLine, strokeWidth);
|
|
3025
3025
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3026
3026
|
"svg",
|
|
3027
3027
|
{
|
|
@@ -3100,15 +3100,15 @@ function parseGradientFillCss(gradFill) {
|
|
|
3100
3100
|
}
|
|
3101
3101
|
const parsed = stops.map((gs) => {
|
|
3102
3102
|
const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
|
|
3103
|
-
const color =
|
|
3104
|
-
const opacity =
|
|
3105
|
-
return { pos, color:
|
|
3103
|
+
const color = chunk23Q3I2LM_js.parseDrawingColor(gs) ?? "#888888";
|
|
3104
|
+
const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(gs);
|
|
3105
|
+
return { pos, color: chunk23Q3I2LM_js.colorWithOpacity(color, opacity) };
|
|
3106
3106
|
}).sort((a, b) => a.pos - b.pos);
|
|
3107
3107
|
const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
|
|
3108
3108
|
const lin = gradFill["a:lin"];
|
|
3109
3109
|
if (lin) {
|
|
3110
3110
|
const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
|
|
3111
|
-
const angleDeg = Math.round(
|
|
3111
|
+
const angleDeg = Math.round(chunk23Q3I2LM_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
|
|
3112
3112
|
return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
|
|
3113
3113
|
}
|
|
3114
3114
|
const path = gradFill["a:path"];
|
|
@@ -3143,8 +3143,8 @@ function parsePatternFillCss(pattFill) {
|
|
|
3143
3143
|
if (!pattFill) {
|
|
3144
3144
|
return void 0;
|
|
3145
3145
|
}
|
|
3146
|
-
const fgColor =
|
|
3147
|
-
const bgColor =
|
|
3146
|
+
const fgColor = chunk23Q3I2LM_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
|
|
3147
|
+
const bgColor = chunk23Q3I2LM_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
|
|
3148
3148
|
const preset = String(pattFill["@_prst"] || "ltDnDiag");
|
|
3149
3149
|
switch (preset) {
|
|
3150
3150
|
case "ltHorz":
|
|
@@ -3255,11 +3255,11 @@ function parseCellBorders(cellProperties) {
|
|
|
3255
3255
|
const prstDash = ln["a:prstDash"];
|
|
3256
3256
|
const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
|
|
3257
3257
|
const cssBorderStyle = ooxmlDashToCss(dashVal);
|
|
3258
|
-
const color =
|
|
3258
|
+
const color = chunk23Q3I2LM_js.parseDrawingColor(ln["a:solidFill"]);
|
|
3259
3259
|
if (color) {
|
|
3260
|
-
const opacity =
|
|
3260
|
+
const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(ln["a:solidFill"]);
|
|
3261
3261
|
const key = `${edge.prefix}`;
|
|
3262
|
-
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${
|
|
3262
|
+
borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk23Q3I2LM_js.colorWithOpacity(color, opacity)}`;
|
|
3263
3263
|
}
|
|
3264
3264
|
}
|
|
3265
3265
|
return borderStyle;
|
|
@@ -3272,7 +3272,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3272
3272
|
const textShadowParts = [];
|
|
3273
3273
|
const outerShdw = effectLst["a:outerShdw"];
|
|
3274
3274
|
if (outerShdw) {
|
|
3275
|
-
const shdwColor =
|
|
3275
|
+
const shdwColor = chunk23Q3I2LM_js.parseDrawingColor(outerShdw);
|
|
3276
3276
|
if (shdwColor) {
|
|
3277
3277
|
const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
|
|
3278
3278
|
const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
|
|
@@ -3290,7 +3290,7 @@ function parseCellTextEffects(runProps) {
|
|
|
3290
3290
|
}
|
|
3291
3291
|
const glow = effectLst["a:glow"];
|
|
3292
3292
|
if (glow) {
|
|
3293
|
-
const glowColor =
|
|
3293
|
+
const glowColor = chunk23Q3I2LM_js.parseDrawingColor(glow);
|
|
3294
3294
|
if (glowColor) {
|
|
3295
3295
|
const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
|
|
3296
3296
|
const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
|
|
@@ -3369,10 +3369,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3369
3369
|
if (runProps?.["@_u"] !== void 0) {
|
|
3370
3370
|
cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
|
|
3371
3371
|
}
|
|
3372
|
-
const runColor =
|
|
3372
|
+
const runColor = chunk23Q3I2LM_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk23Q3I2LM_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
|
|
3373
3373
|
if (runColor) {
|
|
3374
|
-
const opacity =
|
|
3375
|
-
cellStyle.color =
|
|
3374
|
+
const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
|
|
3375
|
+
cellStyle.color = chunk23Q3I2LM_js.colorWithOpacity(runColor, opacity);
|
|
3376
3376
|
}
|
|
3377
3377
|
const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
|
|
3378
3378
|
if (fontFamily) {
|
|
@@ -3382,15 +3382,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3382
3382
|
cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
|
|
3383
3383
|
}
|
|
3384
3384
|
const cellProperties = cellXml["a:tcPr"];
|
|
3385
|
-
const cellFill =
|
|
3385
|
+
const cellFill = chunk23Q3I2LM_js.parseDrawingColor(
|
|
3386
3386
|
cellProperties?.["a:solidFill"],
|
|
3387
3387
|
schemeColorOverrides
|
|
3388
3388
|
);
|
|
3389
3389
|
if (cellFill) {
|
|
3390
|
-
const opacity =
|
|
3390
|
+
const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(
|
|
3391
3391
|
cellProperties?.["a:solidFill"]
|
|
3392
3392
|
);
|
|
3393
|
-
cellStyle.backgroundColor =
|
|
3393
|
+
cellStyle.backgroundColor = chunk23Q3I2LM_js.colorWithOpacity(cellFill, opacity);
|
|
3394
3394
|
} else {
|
|
3395
3395
|
const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
|
|
3396
3396
|
if (gradCss) {
|
|
@@ -3405,16 +3405,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
|
|
|
3405
3405
|
const edgeBorders = parseCellBorders(cellProperties);
|
|
3406
3406
|
Object.assign(cellStyle, edgeBorders);
|
|
3407
3407
|
if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
|
|
3408
|
-
const borderColor =
|
|
3408
|
+
const borderColor = chunk23Q3I2LM_js.parseDrawingColor(
|
|
3409
3409
|
cellProperties?.["a:lnL"]?.["a:solidFill"],
|
|
3410
3410
|
schemeColorOverrides
|
|
3411
|
-
) ||
|
|
3411
|
+
) || chunk23Q3I2LM_js.parseDrawingColor(
|
|
3412
3412
|
cellProperties?.["a:lnR"]?.["a:solidFill"],
|
|
3413
3413
|
schemeColorOverrides
|
|
3414
|
-
) ||
|
|
3414
|
+
) || chunk23Q3I2LM_js.parseDrawingColor(
|
|
3415
3415
|
cellProperties?.["a:lnT"]?.["a:solidFill"],
|
|
3416
3416
|
schemeColorOverrides
|
|
3417
|
-
) ||
|
|
3417
|
+
) || chunk23Q3I2LM_js.parseDrawingColor(
|
|
3418
3418
|
cellProperties?.["a:lnB"]?.["a:solidFill"],
|
|
3419
3419
|
schemeColorOverrides
|
|
3420
3420
|
);
|
|
@@ -3493,10 +3493,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
|
|
|
3493
3493
|
}
|
|
3494
3494
|
let color = base;
|
|
3495
3495
|
if (fill.tint !== void 0 && fill.tint > 0) {
|
|
3496
|
-
color =
|
|
3496
|
+
color = chunk23Q3I2LM_js.tintColor2(color, fill.tint / 1e5);
|
|
3497
3497
|
}
|
|
3498
3498
|
if (fill.shade !== void 0 && fill.shade > 0) {
|
|
3499
|
-
color =
|
|
3499
|
+
color = chunk23Q3I2LM_js.shadeColor2(color, 1 - fill.shade / 1e5);
|
|
3500
3500
|
}
|
|
3501
3501
|
return color;
|
|
3502
3502
|
}
|
|
@@ -3521,7 +3521,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3521
3521
|
style.fontFamily = text.fontFace;
|
|
3522
3522
|
applied = true;
|
|
3523
3523
|
} else {
|
|
3524
|
-
const refFont =
|
|
3524
|
+
const refFont = chunk23Q3I2LM_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
|
|
3525
3525
|
if (refFont) {
|
|
3526
3526
|
style.fontFamily = refFont;
|
|
3527
3527
|
applied = true;
|
|
@@ -3532,10 +3532,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
|
|
|
3532
3532
|
if (base) {
|
|
3533
3533
|
let color = base;
|
|
3534
3534
|
if (text.fontTint !== void 0 && text.fontTint > 0) {
|
|
3535
|
-
color =
|
|
3535
|
+
color = chunk23Q3I2LM_js.tintColor2(color, text.fontTint / 1e5);
|
|
3536
3536
|
}
|
|
3537
3537
|
if (text.fontShade !== void 0 && text.fontShade > 0) {
|
|
3538
|
-
color =
|
|
3538
|
+
color = chunk23Q3I2LM_js.shadeColor2(color, 1 - text.fontShade / 1e5);
|
|
3539
3539
|
}
|
|
3540
3540
|
style.color = color;
|
|
3541
3541
|
applied = true;
|
|
@@ -3724,7 +3724,7 @@ function parseTableElementData(element, fallbackTextStyle) {
|
|
|
3724
3724
|
};
|
|
3725
3725
|
}
|
|
3726
3726
|
function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
|
|
3727
|
-
return
|
|
3727
|
+
return chunk23Q3I2LM_js.getCellDiagonalBorders(style, tableData, pos, {
|
|
3728
3728
|
tableStyleMap: styleCtx?.tableStyleMap,
|
|
3729
3729
|
colorScheme: styleCtx?.theme?.colorScheme,
|
|
3730
3730
|
fontScheme: styleCtx?.theme?.fontScheme
|
|
@@ -3872,9 +3872,9 @@ function cellStyleToCss(style) {
|
|
|
3872
3872
|
if (style.gradientFillCss) {
|
|
3873
3873
|
css.background = style.gradientFillCss;
|
|
3874
3874
|
} else if (style.fillMode === "pattern" && style.patternFillPreset) {
|
|
3875
|
-
const fg =
|
|
3876
|
-
const bg =
|
|
3877
|
-
const svgPattern =
|
|
3875
|
+
const fg = chunk23Q3I2LM_js.normalizeHexColor(style.patternFillForeground, "#000000");
|
|
3876
|
+
const bg = chunk23Q3I2LM_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
|
|
3877
|
+
const svgPattern = chunk23Q3I2LM_js.getPatternSvg(style.patternFillPreset, fg, bg);
|
|
3878
3878
|
if (svgPattern) {
|
|
3879
3879
|
const encoded = encodeURIComponent(svgPattern);
|
|
3880
3880
|
css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
|
|
@@ -3950,7 +3950,7 @@ function cellStyleToCss(style) {
|
|
|
3950
3950
|
if (edge.width || edge.color) {
|
|
3951
3951
|
const w = edge.width ?? 1;
|
|
3952
3952
|
const c = edge.color ?? style.borderColor ?? "#000000";
|
|
3953
|
-
const s =
|
|
3953
|
+
const s = chunk23Q3I2LM_js.ooxmlDashToCssBorderStyle(edge.dash);
|
|
3954
3954
|
css[edge.prefix] = `${w}px ${s} ${c}`;
|
|
3955
3955
|
}
|
|
3956
3956
|
}
|
|
@@ -3981,7 +3981,7 @@ function cellStyleToCss(style) {
|
|
|
3981
3981
|
css.textShadow = textShadowParts.join(", ");
|
|
3982
3982
|
}
|
|
3983
3983
|
if (style.cell3D) {
|
|
3984
|
-
Object.assign(css,
|
|
3984
|
+
Object.assign(css, chunk23Q3I2LM_js.cell3DBevelCss(style.cell3D));
|
|
3985
3985
|
}
|
|
3986
3986
|
return css;
|
|
3987
3987
|
}
|
|
@@ -3995,7 +3995,7 @@ function TableResizeOverlay({
|
|
|
3995
3995
|
const containerRef = React6.useRef(null);
|
|
3996
3996
|
const [rowBounds, setRowBounds] = React6.useState([]);
|
|
3997
3997
|
const dragRef = React6.useRef(null);
|
|
3998
|
-
const colBoundaries = React6.useMemo(() =>
|
|
3998
|
+
const colBoundaries = React6.useMemo(() => chunk23Q3I2LM_js.computeColumnBoundaries(columnWidths), [columnWidths]);
|
|
3999
3999
|
const measureRows = React6.useCallback(() => {
|
|
4000
4000
|
const container = containerRef.current;
|
|
4001
4001
|
if (!container) {
|
|
@@ -4042,11 +4042,11 @@ function TableResizeOverlay({
|
|
|
4042
4042
|
const rect = containerRef.current.getBoundingClientRect();
|
|
4043
4043
|
if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
|
|
4044
4044
|
const deltaProp = (e.clientX - drag.startPos) / rect.width;
|
|
4045
|
-
onResizeColumns(
|
|
4045
|
+
onResizeColumns(chunk23Q3I2LM_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
|
|
4046
4046
|
} else if (drag.type === "row" && onResizeRow) {
|
|
4047
4047
|
const deltaY = e.clientY - drag.startPos;
|
|
4048
|
-
const newHeight =
|
|
4049
|
-
drag.initialRowHeight ??
|
|
4048
|
+
const newHeight = chunk23Q3I2LM_js.computeResizedRowHeight(
|
|
4049
|
+
drag.initialRowHeight ?? chunk23Q3I2LM_js.DEFAULT_ROW_HEIGHT,
|
|
4050
4050
|
deltaY
|
|
4051
4051
|
);
|
|
4052
4052
|
onResizeRow(drag.index, newHeight);
|
|
@@ -4084,7 +4084,7 @@ function TableResizeOverlay({
|
|
|
4084
4084
|
e.stopPropagation();
|
|
4085
4085
|
const table = containerRef.current?.querySelector("table");
|
|
4086
4086
|
const tr = table?.querySelectorAll("tbody > tr")[index];
|
|
4087
|
-
const actualHeight = tr?.offsetHeight ??
|
|
4087
|
+
const actualHeight = tr?.offsetHeight ?? chunk23Q3I2LM_js.DEFAULT_ROW_HEIGHT;
|
|
4088
4088
|
document.body.style.cursor = "row-resize";
|
|
4089
4089
|
document.body.style.userSelect = "none";
|
|
4090
4090
|
dragRef.current = {
|
|
@@ -4132,7 +4132,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4132
4132
|
}
|
|
4133
4133
|
const first = selectedCell.selectedCells[0];
|
|
4134
4134
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4135
|
-
return
|
|
4135
|
+
return chunk23Q3I2LM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
|
|
4136
4136
|
})();
|
|
4137
4137
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4138
4138
|
TableResizeOverlay,
|
|
@@ -4165,7 +4165,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4165
4165
|
return null;
|
|
4166
4166
|
}
|
|
4167
4167
|
const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
|
|
4168
|
-
const isInMultiSelection =
|
|
4168
|
+
const isInMultiSelection = chunk23Q3I2LM_js.isCellInRect(rowIndex, cellIndex, selectionRect);
|
|
4169
4169
|
const isCellEditing = isCellSelected && selectedCell?.isEditing;
|
|
4170
4170
|
const diag = getCellDiagonalBorders2(
|
|
4171
4171
|
cell.style,
|
|
@@ -4195,7 +4195,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4195
4195
|
}
|
|
4196
4196
|
event.stopPropagation();
|
|
4197
4197
|
if (event.shiftKey && selectedCell) {
|
|
4198
|
-
const rect =
|
|
4198
|
+
const rect = chunk23Q3I2LM_js.computeSelectionRect(
|
|
4199
4199
|
selectedCell.rowIndex,
|
|
4200
4200
|
selectedCell.columnIndex,
|
|
4201
4201
|
rowIndex,
|
|
@@ -4205,7 +4205,7 @@ function renderTableFromTableData(element, textStyle, options) {
|
|
|
4205
4205
|
options?.onSelectCell?.({
|
|
4206
4206
|
rowIndex: selectedCell.rowIndex,
|
|
4207
4207
|
columnIndex: selectedCell.columnIndex,
|
|
4208
|
-
selectedCells:
|
|
4208
|
+
selectedCells: chunk23Q3I2LM_js.rectToCells(rect)
|
|
4209
4209
|
});
|
|
4210
4210
|
} else {
|
|
4211
4211
|
options?.onSelectCell?.({
|
|
@@ -4282,7 +4282,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4282
4282
|
}
|
|
4283
4283
|
const first = selectedCell.selectedCells[0];
|
|
4284
4284
|
const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
|
|
4285
|
-
return
|
|
4285
|
+
return chunk23Q3I2LM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
|
|
4286
4286
|
})();
|
|
4287
4287
|
const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
|
|
4288
4288
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4359,7 +4359,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4359
4359
|
"border px-1 py-0.5 align-top",
|
|
4360
4360
|
isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
|
|
4361
4361
|
selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
|
|
4362
|
-
|
|
4362
|
+
chunk23Q3I2LM_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
|
|
4363
4363
|
),
|
|
4364
4364
|
colSpan,
|
|
4365
4365
|
rowSpan: rSpan,
|
|
@@ -4370,7 +4370,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4370
4370
|
}
|
|
4371
4371
|
event.stopPropagation();
|
|
4372
4372
|
if (event.shiftKey && selectedCell && tableEl.tableData) {
|
|
4373
|
-
const rect =
|
|
4373
|
+
const rect = chunk23Q3I2LM_js.computeSelectionRect(
|
|
4374
4374
|
selectedCell.rowIndex,
|
|
4375
4375
|
selectedCell.columnIndex,
|
|
4376
4376
|
rowIndex,
|
|
@@ -4380,7 +4380,7 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4380
4380
|
options?.onSelectCell?.({
|
|
4381
4381
|
rowIndex: selectedCell.rowIndex,
|
|
4382
4382
|
columnIndex: selectedCell.columnIndex,
|
|
4383
|
-
selectedCells:
|
|
4383
|
+
selectedCells: chunk23Q3I2LM_js.rectToCells(rect)
|
|
4384
4384
|
});
|
|
4385
4385
|
} else {
|
|
4386
4386
|
options?.onSelectCell?.({
|
|
@@ -4435,24 +4435,24 @@ function renderTableElement(element, textStyle, options) {
|
|
|
4435
4435
|
}
|
|
4436
4436
|
var LEGEND_ITEM_WIDTH = 80;
|
|
4437
4437
|
function partAttrs(part) {
|
|
4438
|
-
return part ?
|
|
4438
|
+
return part ? chunk23Q3I2LM_js.chartPartToAttrs(part) : void 0;
|
|
4439
4439
|
}
|
|
4440
4440
|
function resolveReactPalette(chartData) {
|
|
4441
4441
|
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
4442
4442
|
return chartData.colorPalette;
|
|
4443
4443
|
}
|
|
4444
|
-
return [...
|
|
4444
|
+
return [...chunk23Q3I2LM_js.getChartStylePalette(chartData.style?.styleId)];
|
|
4445
4445
|
}
|
|
4446
4446
|
function buildReactChartViewModel(element) {
|
|
4447
4447
|
if (element.type !== "chart" || !element.chartData) {
|
|
4448
|
-
return
|
|
4448
|
+
return chunk23Q3I2LM_js.buildChartViewModel(element);
|
|
4449
4449
|
}
|
|
4450
4450
|
const palette = resolveReactPalette(element.chartData);
|
|
4451
4451
|
const themedElement = {
|
|
4452
4452
|
...element,
|
|
4453
4453
|
chartData: { ...element.chartData, colorPalette: palette }
|
|
4454
4454
|
};
|
|
4455
|
-
return
|
|
4455
|
+
return chunk23Q3I2LM_js.buildChartViewModel(themedElement);
|
|
4456
4456
|
}
|
|
4457
4457
|
function renderPrimitive(prim, key) {
|
|
4458
4458
|
switch (prim.kind) {
|
|
@@ -4841,7 +4841,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4841
4841
|
const unmatchedRows = [];
|
|
4842
4842
|
categories.forEach((cat, i) => {
|
|
4843
4843
|
const value = values[i] ?? 0;
|
|
4844
|
-
const code =
|
|
4844
|
+
const code = chunk23Q3I2LM_js.resolveRegionCode(cat);
|
|
4845
4845
|
if (code) {
|
|
4846
4846
|
regionValueMap.set(code, { value, label: cat });
|
|
4847
4847
|
} else {
|
|
@@ -4879,8 +4879,8 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4879
4879
|
let fill = "#e2e8f0";
|
|
4880
4880
|
let dataLabel = null;
|
|
4881
4881
|
if (entry) {
|
|
4882
|
-
const t =
|
|
4883
|
-
fill =
|
|
4882
|
+
const t = chunk23Q3I2LM_js.normalizeValue(entry.value, minVal, maxVal);
|
|
4883
|
+
fill = chunk23Q3I2LM_js.sequentialColorScale(t);
|
|
4884
4884
|
dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4885
4885
|
"text",
|
|
4886
4886
|
{
|
|
@@ -4891,7 +4891,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4891
4891
|
fontWeight: 600,
|
|
4892
4892
|
fill: "#1e293b",
|
|
4893
4893
|
style: { pointerEvents: "none" },
|
|
4894
|
-
children:
|
|
4894
|
+
children: chunk23Q3I2LM_js.formatAxisValue(entry.value)
|
|
4895
4895
|
},
|
|
4896
4896
|
`${element.id}-map-dl-${region.code}`
|
|
4897
4897
|
);
|
|
@@ -4909,7 +4909,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4909
4909
|
opacity: 0.9,
|
|
4910
4910
|
children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
|
|
4911
4911
|
region.name,
|
|
4912
|
-
entry ? `: ${
|
|
4912
|
+
entry ? `: ${chunk23Q3I2LM_js.formatAxisValue(entry.value)}` : ""
|
|
4913
4913
|
] })
|
|
4914
4914
|
}
|
|
4915
4915
|
),
|
|
@@ -4947,7 +4947,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4947
4947
|
fontSize: 7,
|
|
4948
4948
|
fill: "#64748b",
|
|
4949
4949
|
textAnchor: "middle",
|
|
4950
|
-
children:
|
|
4950
|
+
children: chunk23Q3I2LM_js.formatAxisValue(minVal)
|
|
4951
4951
|
},
|
|
4952
4952
|
`${element.id}-map-legend-min`
|
|
4953
4953
|
),
|
|
@@ -4959,7 +4959,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
4959
4959
|
fontSize: 7,
|
|
4960
4960
|
fill: "#64748b",
|
|
4961
4961
|
textAnchor: "middle",
|
|
4962
|
-
children:
|
|
4962
|
+
children: chunk23Q3I2LM_js.formatAxisValue(maxVal)
|
|
4963
4963
|
},
|
|
4964
4964
|
`${element.id}-map-legend-max`
|
|
4965
4965
|
)
|
|
@@ -5025,7 +5025,7 @@ function renderMapChart(element, chartData, categoryLabels) {
|
|
|
5025
5025
|
y,
|
|
5026
5026
|
fontSize,
|
|
5027
5027
|
fill: "#475569",
|
|
5028
|
-
children:
|
|
5028
|
+
children: chunk23Q3I2LM_js.formatAxisValue(row.value)
|
|
5029
5029
|
},
|
|
5030
5030
|
`${element.id}-map-ft-val-${i}`
|
|
5031
5031
|
)
|
|
@@ -5096,7 +5096,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
|
|
|
5096
5096
|
|
|
5097
5097
|
// src/viewer/utils/chart-overlay-utils.ts
|
|
5098
5098
|
function sColor(series, idx) {
|
|
5099
|
-
return
|
|
5099
|
+
return chunk23Q3I2LM_js.seriesColor(series, idx);
|
|
5100
5100
|
}
|
|
5101
5101
|
function valToY(val, range, topY, bottomY) {
|
|
5102
5102
|
const usable = bottomY - topY;
|
|
@@ -5635,7 +5635,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5635
5635
|
width: 10,
|
|
5636
5636
|
height: 10,
|
|
5637
5637
|
rx: 2,
|
|
5638
|
-
fill:
|
|
5638
|
+
fill: chunk23Q3I2LM_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5639
5639
|
},
|
|
5640
5640
|
`${id}-leg-r-${i}`
|
|
5641
5641
|
)
|
|
@@ -5659,7 +5659,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
|
|
|
5659
5659
|
width: 10,
|
|
5660
5660
|
height: 10,
|
|
5661
5661
|
rx: 2,
|
|
5662
|
-
fill:
|
|
5662
|
+
fill: chunk23Q3I2LM_js.seriesColor(s, i, style?.styleId, colorPalette)
|
|
5663
5663
|
}
|
|
5664
5664
|
),
|
|
5665
5665
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
|
|
@@ -5672,9 +5672,9 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5672
5672
|
}
|
|
5673
5673
|
const lines = [];
|
|
5674
5674
|
if (range.logScale && range.logBase) {
|
|
5675
|
-
const ticks =
|
|
5675
|
+
const ticks = chunk23Q3I2LM_js.generateLogTicks(range);
|
|
5676
5676
|
ticks.forEach((tickVal, i) => {
|
|
5677
|
-
const y =
|
|
5677
|
+
const y = chunk23Q3I2LM_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5678
5678
|
lines.push(
|
|
5679
5679
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5680
5680
|
"line",
|
|
@@ -5695,7 +5695,7 @@ function renderGridlines(id, style, range, layout) {
|
|
|
5695
5695
|
const steps = 4;
|
|
5696
5696
|
for (let i = 0; i <= steps; i++) {
|
|
5697
5697
|
const val = range.min + range.span * i / steps;
|
|
5698
|
-
const y =
|
|
5698
|
+
const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5699
5699
|
lines.push(
|
|
5700
5700
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5701
5701
|
"line",
|
|
@@ -5719,9 +5719,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5719
5719
|
const labels = [];
|
|
5720
5720
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5721
5721
|
if (range.logScale && range.logBase) {
|
|
5722
|
-
const ticks =
|
|
5722
|
+
const ticks = chunk23Q3I2LM_js.generateLogTicks(range);
|
|
5723
5723
|
ticks.forEach((tickVal, i) => {
|
|
5724
|
-
const y =
|
|
5724
|
+
const y = chunk23Q3I2LM_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
|
|
5725
5725
|
labels.push(
|
|
5726
5726
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5727
5727
|
"text",
|
|
@@ -5731,7 +5731,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5731
5731
|
textAnchor: "end",
|
|
5732
5732
|
fontSize: 8,
|
|
5733
5733
|
fill: "#64748b",
|
|
5734
|
-
children: hasDisplayUnits ?
|
|
5734
|
+
children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(tickVal)
|
|
5735
5735
|
},
|
|
5736
5736
|
`${id}-vaxis-log-${i}`
|
|
5737
5737
|
)
|
|
@@ -5741,7 +5741,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5741
5741
|
const steps = 4;
|
|
5742
5742
|
for (let i = 0; i <= steps; i++) {
|
|
5743
5743
|
const val = range.min + range.span * i / steps;
|
|
5744
|
-
const y =
|
|
5744
|
+
const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5745
5745
|
labels.push(
|
|
5746
5746
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5747
5747
|
"text",
|
|
@@ -5751,7 +5751,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5751
5751
|
textAnchor: "end",
|
|
5752
5752
|
fontSize: 8,
|
|
5753
5753
|
fill: "#64748b",
|
|
5754
|
-
children: hasDisplayUnits ?
|
|
5754
|
+
children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(val, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(val)
|
|
5755
5755
|
},
|
|
5756
5756
|
`${id}-vaxis-${i}`
|
|
5757
5757
|
)
|
|
@@ -5759,7 +5759,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
|
|
|
5759
5759
|
}
|
|
5760
5760
|
}
|
|
5761
5761
|
if (hasDisplayUnits) {
|
|
5762
|
-
const unitLabel =
|
|
5762
|
+
const unitLabel = chunk23Q3I2LM_js.getDisplayUnitLabel(
|
|
5763
5763
|
axisFormatting.displayUnits,
|
|
5764
5764
|
axisFormatting.displayUnitsLabel
|
|
5765
5765
|
);
|
|
@@ -5834,7 +5834,7 @@ function renderZeroLine(id, range, layout) {
|
|
|
5834
5834
|
if (range.min >= 0) {
|
|
5835
5835
|
return null;
|
|
5836
5836
|
}
|
|
5837
|
-
const y =
|
|
5837
|
+
const y = chunk23Q3I2LM_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
|
|
5838
5838
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5839
5839
|
"line",
|
|
5840
5840
|
{
|
|
@@ -5858,7 +5858,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5858
5858
|
const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
|
|
5859
5859
|
for (let i = 0; i <= steps; i++) {
|
|
5860
5860
|
const val = range.min + range.span * i / steps;
|
|
5861
|
-
const y =
|
|
5861
|
+
const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5862
5862
|
labels.push(
|
|
5863
5863
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5864
5864
|
"text",
|
|
@@ -5870,7 +5870,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5870
5870
|
fontFamily,
|
|
5871
5871
|
fontWeight,
|
|
5872
5872
|
fill: fontColor,
|
|
5873
|
-
children: hasDisplayUnits ?
|
|
5873
|
+
children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(val, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(val)
|
|
5874
5874
|
},
|
|
5875
5875
|
`${id}-sec-vaxis-${i}`
|
|
5876
5876
|
)
|
|
@@ -5894,7 +5894,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
|
|
|
5894
5894
|
);
|
|
5895
5895
|
}
|
|
5896
5896
|
if (hasDisplayUnits) {
|
|
5897
|
-
const unitLabel =
|
|
5897
|
+
const unitLabel = chunk23Q3I2LM_js.getDisplayUnitLabel(
|
|
5898
5898
|
axisFormatting.displayUnits,
|
|
5899
5899
|
axisFormatting.displayUnitsLabel
|
|
5900
5900
|
);
|
|
@@ -5925,7 +5925,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
|
|
|
5925
5925
|
const ticks = [];
|
|
5926
5926
|
for (let i = 0; i <= steps; i++) {
|
|
5927
5927
|
const val = range.min + range.span * i / steps;
|
|
5928
|
-
const y =
|
|
5928
|
+
const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5929
5929
|
ticks.push(
|
|
5930
5930
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5931
5931
|
"line",
|
|
@@ -5952,7 +5952,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
|
|
|
5952
5952
|
const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
|
|
5953
5953
|
for (let i = 0; i <= steps; i++) {
|
|
5954
5954
|
const val = range.min + range.span * i / steps;
|
|
5955
|
-
const y =
|
|
5955
|
+
const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
|
|
5956
5956
|
lines.push(
|
|
5957
5957
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5958
5958
|
"line",
|
|
@@ -6114,7 +6114,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6114
6114
|
width: 8,
|
|
6115
6115
|
height: 8,
|
|
6116
6116
|
borderRadius: 2,
|
|
6117
|
-
backgroundColor:
|
|
6117
|
+
backgroundColor: chunk23Q3I2LM_js.seriesColor(
|
|
6118
6118
|
s,
|
|
6119
6119
|
si,
|
|
6120
6120
|
chartData.style?.styleId,
|
|
@@ -6153,8 +6153,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
|
|
|
6153
6153
|
function renderStockChart(element, chartData, categoryLabels) {
|
|
6154
6154
|
const style = chartData.style;
|
|
6155
6155
|
const legendPos = style?.legendPosition || "b";
|
|
6156
|
-
const range =
|
|
6157
|
-
const layout =
|
|
6156
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6157
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6158
6158
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6159
6159
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
6160
6160
|
const candleWidth = barGroupWidth * 0.5;
|
|
@@ -6175,10 +6175,10 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6175
6175
|
const close = closeSeries.values[ci] ?? high;
|
|
6176
6176
|
const isUp = close >= open;
|
|
6177
6177
|
const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
|
|
6178
|
-
const highY =
|
|
6179
|
-
const lowY =
|
|
6180
|
-
const openY =
|
|
6181
|
-
const closeY =
|
|
6178
|
+
const highY = chunk23Q3I2LM_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
|
|
6179
|
+
const lowY = chunk23Q3I2LM_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
|
|
6180
|
+
const openY = chunk23Q3I2LM_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
|
|
6181
|
+
const closeY = chunk23Q3I2LM_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
|
|
6182
6182
|
elements.push(
|
|
6183
6183
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6184
6184
|
"line",
|
|
@@ -6221,7 +6221,7 @@ function renderStockChart(element, chartData, categoryLabels) {
|
|
|
6221
6221
|
textAnchor: "middle",
|
|
6222
6222
|
fontSize: 7,
|
|
6223
6223
|
fill: "#334155",
|
|
6224
|
-
children:
|
|
6224
|
+
children: chunk23Q3I2LM_js.formatAxisValue(close)
|
|
6225
6225
|
},
|
|
6226
6226
|
`${element.id}-stock-dl-${ci}`
|
|
6227
6227
|
)
|
|
@@ -6263,7 +6263,7 @@ function FailedToLoad() {
|
|
|
6263
6263
|
var LazySurfaceChart3DScene = React6__default.default.lazy(
|
|
6264
6264
|
async () => {
|
|
6265
6265
|
try {
|
|
6266
|
-
return await import('./SurfaceChart3DScene-
|
|
6266
|
+
return await import('./SurfaceChart3DScene-FECS3THE.js');
|
|
6267
6267
|
} catch {
|
|
6268
6268
|
return { default: FailedToLoad };
|
|
6269
6269
|
}
|
|
@@ -6287,7 +6287,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
|
|
|
6287
6287
|
function buildSurfaceData(chartData, categoryLabels) {
|
|
6288
6288
|
const rows = chartData.series.length;
|
|
6289
6289
|
const cols = Math.max(categoryLabels.length, 1);
|
|
6290
|
-
const range =
|
|
6290
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6291
6291
|
const heightMap = new Float32Array(rows * cols);
|
|
6292
6292
|
const colorMap = new Float32Array(rows * cols * 3);
|
|
6293
6293
|
for (let r = 0; r < rows; r++) {
|
|
@@ -6407,8 +6407,8 @@ function darkenRgb(r, g, b, factor) {
|
|
|
6407
6407
|
function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
6408
6408
|
const style = chartData.style;
|
|
6409
6409
|
const legendPos = style?.legendPosition || "b";
|
|
6410
|
-
const layout =
|
|
6411
|
-
const range =
|
|
6410
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6411
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6412
6412
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6413
6413
|
const seriesCount = chartData.series.length;
|
|
6414
6414
|
const cols = catCount - 1;
|
|
@@ -6498,8 +6498,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6498
6498
|
function renderFlatSurfaceChart(element, chartData, categoryLabels) {
|
|
6499
6499
|
const style = chartData.style;
|
|
6500
6500
|
const legendPos = style?.legendPosition || "b";
|
|
6501
|
-
const layout =
|
|
6502
|
-
const range =
|
|
6501
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6502
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6503
6503
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6504
6504
|
const seriesCount = chartData.series.length;
|
|
6505
6505
|
const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
|
|
@@ -6562,7 +6562,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
|
|
|
6562
6562
|
function renderTreemapChart(element, chartData, categoryLabels) {
|
|
6563
6563
|
const style = chartData.style;
|
|
6564
6564
|
const legendPos = style?.legendPosition || "b";
|
|
6565
|
-
const layout =
|
|
6565
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, false, legendPos);
|
|
6566
6566
|
const allValues = chartData.series.flatMap((s) => s.values);
|
|
6567
6567
|
const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
|
|
6568
6568
|
const rects = [];
|
|
@@ -6585,7 +6585,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
|
|
|
6585
6585
|
y: curY,
|
|
6586
6586
|
width: Math.max(w - 1, 1),
|
|
6587
6587
|
height: Math.max(h - 1, 1),
|
|
6588
|
-
fill:
|
|
6588
|
+
fill: chunk23Q3I2LM_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
|
|
6589
6589
|
rx: 2,
|
|
6590
6590
|
opacity: 0.85
|
|
6591
6591
|
},
|
|
@@ -6638,8 +6638,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6638
6638
|
const style = chartData.style;
|
|
6639
6639
|
const legendPos = style?.legendPosition || "b";
|
|
6640
6640
|
const values = chartData.series[0]?.values ?? [];
|
|
6641
|
-
const range =
|
|
6642
|
-
const layout =
|
|
6641
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
|
|
6642
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
|
|
6643
6643
|
const catCount = Math.max(categoryLabels.length, values.length, 1);
|
|
6644
6644
|
const barWidth = layout.plotWidth / catCount * 0.6;
|
|
6645
6645
|
const gap = layout.plotWidth / catCount * 0.2;
|
|
@@ -6650,8 +6650,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6650
6650
|
const isLast = i === values.length - 1;
|
|
6651
6651
|
const startVal = isLast ? 0 : runningTotal;
|
|
6652
6652
|
const endVal = isLast ? runningTotal + val : runningTotal + val;
|
|
6653
|
-
const barStartY =
|
|
6654
|
-
const barEndY =
|
|
6653
|
+
const barStartY = chunk23Q3I2LM_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
|
|
6654
|
+
const barEndY = chunk23Q3I2LM_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
|
|
6655
6655
|
const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
|
|
6656
6656
|
const y = Math.min(barStartY, barEndY);
|
|
6657
6657
|
const h = Math.max(Math.abs(barEndY - barStartY), 1);
|
|
@@ -6680,7 +6680,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6680
6680
|
textAnchor: "middle",
|
|
6681
6681
|
fontSize: 7,
|
|
6682
6682
|
fill: "#334155",
|
|
6683
|
-
children:
|
|
6683
|
+
children: chunk23Q3I2LM_js.formatAxisValue(isLast ? endVal : val)
|
|
6684
6684
|
},
|
|
6685
6685
|
`${element.id}-wf-dl-${i}`
|
|
6686
6686
|
)
|
|
@@ -6728,18 +6728,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
|
|
|
6728
6728
|
function renderComboChart(element, chartData, categoryLabels) {
|
|
6729
6729
|
const style = chartData.style;
|
|
6730
6730
|
const legendPos = style?.legendPosition || "b";
|
|
6731
|
-
const layoutOpts =
|
|
6731
|
+
const layoutOpts = chunk23Q3I2LM_js.computeLayoutOptions(
|
|
6732
6732
|
chartData.axes,
|
|
6733
6733
|
chartData.dataTable,
|
|
6734
6734
|
chartData.series.length
|
|
6735
6735
|
);
|
|
6736
|
-
const layout =
|
|
6737
|
-
const { primary, secondary } =
|
|
6736
|
+
const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
|
|
6737
|
+
const { primary, secondary } = chunk23Q3I2LM_js.splitSeriesByAxis(chartData.series, chartData.axes);
|
|
6738
6738
|
const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
|
|
6739
6739
|
const secondarySeries = secondary.map((e) => e.series);
|
|
6740
|
-
const range =
|
|
6741
|
-
const secondaryRange = secondarySeries.length > 0 ?
|
|
6742
|
-
const secondaryAxisFmt =
|
|
6740
|
+
const range = chunk23Q3I2LM_js.computeValueRangeForChart(primarySeries, chartData.axes);
|
|
6741
|
+
const secondaryRange = secondarySeries.length > 0 ? chunk23Q3I2LM_js.computeValueRange(secondarySeries) : void 0;
|
|
6742
|
+
const secondaryAxisFmt = chunk23Q3I2LM_js.getSecondaryValueAxis(chartData.axes);
|
|
6743
6743
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
6744
6744
|
const barSeriesCount = 1;
|
|
6745
6745
|
const barGroupWidth = layout.plotWidth / catCount;
|
|
@@ -6755,8 +6755,8 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6755
6755
|
const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
|
|
6756
6756
|
barSeries.values.forEach((val, vi) => {
|
|
6757
6757
|
const x = layout.plotLeft + barGroupWidth * vi + barOffset;
|
|
6758
|
-
const zeroY =
|
|
6759
|
-
const valY =
|
|
6758
|
+
const zeroY = chunk23Q3I2LM_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
|
|
6759
|
+
const valY = chunk23Q3I2LM_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
|
|
6760
6760
|
const y = Math.min(zeroY, valY);
|
|
6761
6761
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
6762
6762
|
barElements.push(
|
|
@@ -6767,7 +6767,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6767
6767
|
y,
|
|
6768
6768
|
width: barWidth,
|
|
6769
6769
|
height: h,
|
|
6770
|
-
fill:
|
|
6770
|
+
fill: chunk23Q3I2LM_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
|
|
6771
6771
|
rx: 1
|
|
6772
6772
|
},
|
|
6773
6773
|
`${element.id}-combo-bar-${vi}`
|
|
@@ -6783,7 +6783,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6783
6783
|
textAnchor: "middle",
|
|
6784
6784
|
fontSize: 7,
|
|
6785
6785
|
fill: "#334155",
|
|
6786
|
-
children:
|
|
6786
|
+
children: chunk23Q3I2LM_js.formatAxisValue(val)
|
|
6787
6787
|
},
|
|
6788
6788
|
`${element.id}-combo-bar-dl-${vi}`
|
|
6789
6789
|
)
|
|
@@ -6800,10 +6800,10 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6800
6800
|
const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
|
|
6801
6801
|
const points = series.values.map((val, vi) => {
|
|
6802
6802
|
const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
|
|
6803
|
-
const y =
|
|
6803
|
+
const y = chunk23Q3I2LM_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
|
|
6804
6804
|
return { x, y, val };
|
|
6805
6805
|
});
|
|
6806
|
-
const c =
|
|
6806
|
+
const c = chunk23Q3I2LM_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
|
|
6807
6807
|
lineElements.push(
|
|
6808
6808
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6809
6809
|
"polyline",
|
|
@@ -6830,7 +6830,7 @@ function renderComboChart(element, chartData, categoryLabels) {
|
|
|
6830
6830
|
textAnchor: "middle",
|
|
6831
6831
|
fontSize: 7,
|
|
6832
6832
|
fill: "#334155",
|
|
6833
|
-
children:
|
|
6833
|
+
children: chunk23Q3I2LM_js.formatAxisValue(p.val)
|
|
6834
6834
|
},
|
|
6835
6835
|
`${element.id}-combo-line-dl-${si}-${vi}`
|
|
6836
6836
|
)
|
|
@@ -7976,14 +7976,14 @@ function buildNotesPdf(pages) {
|
|
|
7976
7976
|
notes: page.notes,
|
|
7977
7977
|
slideNumber: page.slideNumber
|
|
7978
7978
|
}));
|
|
7979
|
-
const bytes =
|
|
7979
|
+
const bytes = chunk23Q3I2LM_js.buildNotesPdfBytes(images, meta);
|
|
7980
7980
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7981
7981
|
return URL.createObjectURL(blob);
|
|
7982
7982
|
}
|
|
7983
7983
|
|
|
7984
7984
|
// src/viewer/utils/pdf-builder-slides.ts
|
|
7985
7985
|
function buildPdfFromImageData(images) {
|
|
7986
|
-
const bytes =
|
|
7986
|
+
const bytes = chunk23Q3I2LM_js.buildSlidesPdfBytes(images);
|
|
7987
7987
|
const blob = new Blob([bytes], { type: "application/pdf" });
|
|
7988
7988
|
return URL.createObjectURL(blob);
|
|
7989
7989
|
}
|
|
@@ -7992,7 +7992,7 @@ function buildPdfFromImageData(images) {
|
|
|
7992
7992
|
var activePreview = null;
|
|
7993
7993
|
function startPreviewAnimation(elementId, preset, options) {
|
|
7994
7994
|
stopPreviewAnimation();
|
|
7995
|
-
const descriptor =
|
|
7995
|
+
const descriptor = chunk23Q3I2LM_js.buildPreviewAnimation(preset, options);
|
|
7996
7996
|
if (!descriptor) {
|
|
7997
7997
|
return;
|
|
7998
7998
|
}
|