stickyflow 0.9.0 → 0.9.2
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 +16 -0
- package/dist/binding/index.cjs +9 -9
- package/dist/binding/index.js +3 -3
- package/dist/{chunk-B3YRZVMR.cjs → chunk-2GKXPZRL.cjs} +23 -23
- package/dist/{chunk-B3YRZVMR.cjs.map → chunk-2GKXPZRL.cjs.map} +1 -1
- package/dist/{chunk-SQBF2BKT.cjs → chunk-3EOG34QN.cjs} +48 -44
- package/dist/chunk-3EOG34QN.cjs.map +1 -0
- package/dist/{chunk-CM35H45Z.js → chunk-AAP24GBG.js} +3 -3
- package/dist/{chunk-CM35H45Z.js.map → chunk-AAP24GBG.js.map} +1 -1
- package/dist/{chunk-QL7MNEMT.cjs → chunk-C25NWWIH.cjs} +48 -3
- package/dist/chunk-C25NWWIH.cjs.map +1 -0
- package/dist/{chunk-ZCGZJBAT.js → chunk-C3LVKPWQ.js} +19 -15
- package/dist/chunk-C3LVKPWQ.js.map +1 -0
- package/dist/{chunk-YSXD5IVZ.cjs → chunk-EURX7QT3.cjs} +672 -657
- package/dist/chunk-EURX7QT3.cjs.map +1 -0
- package/dist/{chunk-FS6L462E.js → chunk-G2N3KJYJ.js} +22 -7
- package/dist/chunk-G2N3KJYJ.js.map +1 -0
- package/dist/{chunk-OUWGWDJ2.cjs → chunk-MR32IJQO.cjs} +15 -15
- package/dist/{chunk-OUWGWDJ2.cjs.map → chunk-MR32IJQO.cjs.map} +1 -1
- package/dist/{chunk-D2266VBZ.js → chunk-Q6FBISNP.js} +48 -3
- package/dist/chunk-Q6FBISNP.js.map +1 -0
- package/dist/{chunk-BUVUJMWT.js → chunk-XNNNIOJU.js} +4 -4
- package/dist/{chunk-BUVUJMWT.js.map → chunk-XNNNIOJU.js.map} +1 -1
- package/dist/index.cjs +36 -36
- package/dist/index.js +5 -5
- package/dist/interaction/index.cjs +230 -230
- package/dist/interaction/index.js +2 -2
- package/dist/stickyflow-diagram.global.js +37 -37
- package/dist/stickyflow-diagram.global.js.map +1 -1
- package/dist/viewer/index.cjs +9 -9
- package/dist/viewer/index.js +4 -4
- package/dist/web-component/index.cjs +6 -6
- package/dist/web-component/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-D2266VBZ.js.map +0 -1
- package/dist/chunk-FS6L462E.js.map +0 -1
- package/dist/chunk-QL7MNEMT.cjs.map +0 -1
- package/dist/chunk-SQBF2BKT.cjs.map +0 -1
- package/dist/chunk-YSXD5IVZ.cjs.map +0 -1
- package/dist/chunk-ZCGZJBAT.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkC25NWWIH_cjs = require('./chunk-C25NWWIH.cjs');
|
|
4
4
|
|
|
5
5
|
// src/renderInput/styleDecoding/colorToken.ts
|
|
6
6
|
var COLOR_TOKEN_PATTERN = String.raw`rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z][\w-]*`;
|
|
@@ -660,7 +660,7 @@ function readComponentValue(descriptor, raw) {
|
|
|
660
660
|
return raw;
|
|
661
661
|
}
|
|
662
662
|
function genericComponentObject(canvasObject) {
|
|
663
|
-
const descriptor =
|
|
663
|
+
const descriptor = chunkC25NWWIH_cjs.getComponentDescriptor(canvasObject.component.type);
|
|
664
664
|
return {
|
|
665
665
|
id: canvasObject.id,
|
|
666
666
|
type: canvasObject.component.type,
|
|
@@ -849,7 +849,7 @@ var BUILT_IN_OBJECTS = {
|
|
|
849
849
|
};
|
|
850
850
|
function componentObject(canvasObject) {
|
|
851
851
|
const type = canvasObject.component.type;
|
|
852
|
-
return
|
|
852
|
+
return chunkC25NWWIH_cjs.isBuiltInComponentType(type) ? BUILT_IN_OBJECTS[type](canvasObject) : genericComponentObject(canvasObject);
|
|
853
853
|
}
|
|
854
854
|
|
|
855
855
|
// src/renderInput/fromSfl/canvasObjects/connection.ts
|
|
@@ -1094,9 +1094,9 @@ function collectCanvasObjects(state) {
|
|
|
1094
1094
|
shapes: canvasObjects.filter((canvasObject) => canvasObject.objectType === "shape").map((shape) => shapeObject(shape, shaders)),
|
|
1095
1095
|
frames: canvasObjects.filter((canvasObject) => canvasObject.objectType === "frame").map(frameObject),
|
|
1096
1096
|
swimlanes: canvasObjects.filter((canvasObject) => canvasObject.objectType === "swimlane").map(swimlaneObject),
|
|
1097
|
-
isometricObjects: canvasObjects.filter(
|
|
1097
|
+
isometricObjects: canvasObjects.filter(chunkC25NWWIH_cjs.isIsometricObject).map(isometricObject),
|
|
1098
1098
|
paths: canvasObjects.filter((canvasObject) => canvasObject.objectType === "path").map(pathObject),
|
|
1099
|
-
dimensions: canvasObjects.filter(
|
|
1099
|
+
dimensions: canvasObjects.filter(chunkC25NWWIH_cjs.isDimensionObject).map(dimensionObject),
|
|
1100
1100
|
charts: canvasObjects.filter((canvasObject) => canvasObject.objectType === "chart").map(chartObject),
|
|
1101
1101
|
components: canvasObjects.filter(
|
|
1102
1102
|
(canvasObject) => canvasObject.objectType === "component" && canvasObject.component !== void 0
|
|
@@ -1123,9 +1123,9 @@ function sidePoint(canvasObject, endpoint) {
|
|
|
1123
1123
|
function namedPortPoint(canvasObject, endpoint) {
|
|
1124
1124
|
const port = canvasObject.symbol?.ports?.find((candidate) => candidate.name === endpoint.port);
|
|
1125
1125
|
if (!port) {
|
|
1126
|
-
return
|
|
1126
|
+
return chunkC25NWWIH_cjs.elementCenter(canvasObject);
|
|
1127
1127
|
}
|
|
1128
|
-
return
|
|
1128
|
+
return chunkC25NWWIH_cjs.pointAtNormalizedPort(
|
|
1129
1129
|
{
|
|
1130
1130
|
x: canvasObject.x,
|
|
1131
1131
|
y: canvasObject.y,
|
|
@@ -1171,7 +1171,7 @@ function explicitAnchorPoint(canvasObject, endpoint) {
|
|
|
1171
1171
|
return null;
|
|
1172
1172
|
}
|
|
1173
1173
|
function automaticEndpointPoint(canvasObject, opposite) {
|
|
1174
|
-
return opposite ?
|
|
1174
|
+
return opposite ? chunkC25NWWIH_cjs.edgePointToward(canvasObject, opposite) : chunkC25NWWIH_cjs.elementCenter(canvasObject);
|
|
1175
1175
|
}
|
|
1176
1176
|
function findPositionedCanvasObject(canvasObjects, id) {
|
|
1177
1177
|
return canvasObjects.find((candidate) => candidate.id === id);
|
|
@@ -1189,7 +1189,7 @@ function positionedCanvasObjects(canvasObjects) {
|
|
|
1189
1189
|
];
|
|
1190
1190
|
}
|
|
1191
1191
|
function connectionEndpointPoint(object, face) {
|
|
1192
|
-
return object ?
|
|
1192
|
+
return object ? chunkC25NWWIH_cjs.isometricFaceCenter(object, face) : { x: 0, y: 0 };
|
|
1193
1193
|
}
|
|
1194
1194
|
function isometricStackPosition(isometricObjects, id) {
|
|
1195
1195
|
const index = isometricObjects.findIndex((object2) => object2.id === id);
|
|
@@ -1204,8 +1204,8 @@ function connectionStack(isometricObjects, connection) {
|
|
|
1204
1204
|
return { order: connection.order, sourceIndex: connection.sourceIndex };
|
|
1205
1205
|
}
|
|
1206
1206
|
const behind = [
|
|
1207
|
-
|
|
1208
|
-
|
|
1207
|
+
chunkC25NWWIH_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.fromFace) ? void 0 : isometricStackPosition(isometricObjects, connection.fromId),
|
|
1208
|
+
chunkC25NWWIH_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.toFace) ? void 0 : isometricStackPosition(isometricObjects, connection.toId)
|
|
1209
1209
|
].filter((position) => position !== void 0);
|
|
1210
1210
|
if (!behind.length) {
|
|
1211
1211
|
return { sourceIndex: connection.sourceIndex };
|
|
@@ -1247,7 +1247,7 @@ function createRenderInputLinks(canvasObjects) {
|
|
|
1247
1247
|
|
|
1248
1248
|
// src/renderInput/fromSfl/index.ts
|
|
1249
1249
|
function sflToRenderInput(sfl) {
|
|
1250
|
-
const state =
|
|
1250
|
+
const state = chunkC25NWWIH_cjs.sflToCanvasState(sfl);
|
|
1251
1251
|
const canvasObjects = collectCanvasObjects(state);
|
|
1252
1252
|
return {
|
|
1253
1253
|
shapes: canvasObjects.shapes,
|
|
@@ -1266,13 +1266,13 @@ function sflToRenderInput(sfl) {
|
|
|
1266
1266
|
// src/renderScene/artifacts/component/placeholder.ts
|
|
1267
1267
|
var STROKE = "#94a3b8";
|
|
1268
1268
|
function buildPlaceholder(component, index) {
|
|
1269
|
-
const x =
|
|
1270
|
-
const y =
|
|
1271
|
-
const width = Math.max(0,
|
|
1272
|
-
const height = Math.max(0,
|
|
1273
|
-
const rotation =
|
|
1269
|
+
const x = chunkC25NWWIH_cjs.finite(component.x, 0);
|
|
1270
|
+
const y = chunkC25NWWIH_cjs.finite(component.y, 0);
|
|
1271
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 120));
|
|
1272
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 60));
|
|
1273
|
+
const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
|
|
1274
1274
|
const order = 1e4 + index;
|
|
1275
|
-
const bounds =
|
|
1275
|
+
const bounds = chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2);
|
|
1276
1276
|
return [
|
|
1277
1277
|
{
|
|
1278
1278
|
id: `widget-${component.id}`,
|
|
@@ -1297,7 +1297,7 @@ function buildPlaceholder(component, index) {
|
|
|
1297
1297
|
width,
|
|
1298
1298
|
height,
|
|
1299
1299
|
lines: [component.type],
|
|
1300
|
-
fontFamily:
|
|
1300
|
+
fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
1301
1301
|
fontSize: 12,
|
|
1302
1302
|
fontWeight: "normal",
|
|
1303
1303
|
color: STROKE,
|
|
@@ -1311,44 +1311,44 @@ function buildPlaceholder(component, index) {
|
|
|
1311
1311
|
|
|
1312
1312
|
// src/renderScene/artifacts/component/builtIn.ts
|
|
1313
1313
|
function buildRollingNumber(component, index) {
|
|
1314
|
-
const x =
|
|
1315
|
-
const y =
|
|
1316
|
-
const width = Math.max(0,
|
|
1317
|
-
const height = Math.max(0,
|
|
1318
|
-
const rotation =
|
|
1314
|
+
const x = chunkC25NWWIH_cjs.finite(component.x, 0);
|
|
1315
|
+
const y = chunkC25NWWIH_cjs.finite(component.y, 0);
|
|
1316
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 160));
|
|
1317
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 90));
|
|
1318
|
+
const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
|
|
1319
1319
|
return [
|
|
1320
1320
|
{
|
|
1321
1321
|
id: `widget-${component.id}`,
|
|
1322
1322
|
type: "rolling-number",
|
|
1323
1323
|
order: 1e4 + index,
|
|
1324
|
-
bounds:
|
|
1324
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
|
|
1325
1325
|
x,
|
|
1326
1326
|
y,
|
|
1327
1327
|
width,
|
|
1328
1328
|
height,
|
|
1329
1329
|
rotation,
|
|
1330
|
-
value:
|
|
1330
|
+
value: chunkC25NWWIH_cjs.formatRollingNumber(component.value, component.digits),
|
|
1331
1331
|
digits: component.digits,
|
|
1332
|
-
duration: Math.max(0,
|
|
1332
|
+
duration: Math.max(0, chunkC25NWWIH_cjs.finite(component.duration, 420)),
|
|
1333
1333
|
label: component.label,
|
|
1334
|
-
componentStyle:
|
|
1334
|
+
componentStyle: chunkC25NWWIH_cjs.resolveRollingNumberStyle(component.style)
|
|
1335
1335
|
}
|
|
1336
1336
|
];
|
|
1337
1337
|
}
|
|
1338
1338
|
function buildTickScale(component, index) {
|
|
1339
|
-
const x =
|
|
1340
|
-
const y =
|
|
1341
|
-
const width = Math.max(0,
|
|
1342
|
-
const height = Math.max(0,
|
|
1343
|
-
const rotation =
|
|
1344
|
-
const max =
|
|
1345
|
-
const progress = Math.min(1, Math.max(0,
|
|
1339
|
+
const x = chunkC25NWWIH_cjs.finite(component.x, 0);
|
|
1340
|
+
const y = chunkC25NWWIH_cjs.finite(component.y, 0);
|
|
1341
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 200));
|
|
1342
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 200));
|
|
1343
|
+
const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
|
|
1344
|
+
const max = chunkC25NWWIH_cjs.finite(component.max, 100) || 100;
|
|
1345
|
+
const progress = Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(Number(component.value), 0) / max));
|
|
1346
1346
|
const nodes = [
|
|
1347
1347
|
{
|
|
1348
1348
|
id: `widget-${component.id}`,
|
|
1349
1349
|
type: "shader-surface",
|
|
1350
1350
|
order: 1e4 + index,
|
|
1351
|
-
bounds:
|
|
1351
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
|
|
1352
1352
|
x,
|
|
1353
1353
|
y,
|
|
1354
1354
|
width,
|
|
@@ -1365,12 +1365,12 @@ function buildTickScale(component, index) {
|
|
|
1365
1365
|
}
|
|
1366
1366
|
function buildTickLabels(component, box) {
|
|
1367
1367
|
const labels = component.labels ?? {};
|
|
1368
|
-
const ticks2 = Math.max(1,
|
|
1369
|
-
const major = Math.max(1,
|
|
1370
|
-
const start =
|
|
1371
|
-
const sweep =
|
|
1372
|
-
const radius =
|
|
1373
|
-
const fontSize =
|
|
1368
|
+
const ticks2 = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.ticks), 48));
|
|
1369
|
+
const major = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.major), 5));
|
|
1370
|
+
const start = chunkC25NWWIH_cjs.finite(Number(component.parameters.start), 225) * Math.PI / 180;
|
|
1371
|
+
const sweep = chunkC25NWWIH_cjs.finite(Number(component.parameters.sweep), 270) * Math.PI / 180;
|
|
1372
|
+
const radius = chunkC25NWWIH_cjs.finite(Number(component.parameters.radius), 0.9) + chunkC25NWWIH_cjs.finite(labels.offset, 0.08);
|
|
1373
|
+
const fontSize = chunkC25NWWIH_cjs.finite(labels.size, 12);
|
|
1374
1374
|
const centerX = box.x + box.width / 2;
|
|
1375
1375
|
const centerY = box.y + box.height / 2;
|
|
1376
1376
|
const count = Math.floor(ticks2 / major);
|
|
@@ -1385,10 +1385,10 @@ function buildTickLabels(component, box) {
|
|
|
1385
1385
|
id: `widget-${component.id}-label-${step}`,
|
|
1386
1386
|
type: "text",
|
|
1387
1387
|
order: box.order + 0.1,
|
|
1388
|
-
bounds:
|
|
1388
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(labelBox, 0, 2),
|
|
1389
1389
|
...labelBox,
|
|
1390
1390
|
lines: [String(Math.round(box.max * fraction * 10) / 10)],
|
|
1391
|
-
fontFamily: labels.fontFamily ||
|
|
1391
|
+
fontFamily: labels.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
1392
1392
|
fontSize,
|
|
1393
1393
|
fontWeight: labels.weight ?? "normal",
|
|
1394
1394
|
color: labels.color || "#8f95c4",
|
|
@@ -1400,20 +1400,20 @@ function buildTickLabels(component, box) {
|
|
|
1400
1400
|
return nodes;
|
|
1401
1401
|
}
|
|
1402
1402
|
function buildRuler(component, index) {
|
|
1403
|
-
const x =
|
|
1404
|
-
const y =
|
|
1405
|
-
const width = Math.max(0,
|
|
1406
|
-
const height = Math.max(0,
|
|
1407
|
-
const rotation =
|
|
1408
|
-
const min =
|
|
1409
|
-
const max =
|
|
1410
|
-
const progress = max === min ? 0 : Math.min(1, Math.max(0, (
|
|
1403
|
+
const x = chunkC25NWWIH_cjs.finite(component.x, 0);
|
|
1404
|
+
const y = chunkC25NWWIH_cjs.finite(component.y, 0);
|
|
1405
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 120));
|
|
1406
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 360));
|
|
1407
|
+
const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
|
|
1408
|
+
const min = chunkC25NWWIH_cjs.finite(component.min, 0);
|
|
1409
|
+
const max = chunkC25NWWIH_cjs.finite(component.max, 100);
|
|
1410
|
+
const progress = max === min ? 0 : Math.min(1, Math.max(0, (chunkC25NWWIH_cjs.finite(Number(component.value), min) - min) / (max - min)));
|
|
1411
1411
|
const nodes = [
|
|
1412
1412
|
{
|
|
1413
1413
|
id: `widget-${component.id}`,
|
|
1414
1414
|
type: "shader-surface",
|
|
1415
1415
|
order: 1e4 + index,
|
|
1416
|
-
bounds:
|
|
1416
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
|
|
1417
1417
|
x,
|
|
1418
1418
|
y,
|
|
1419
1419
|
width,
|
|
@@ -1431,14 +1431,14 @@ function buildRuler(component, index) {
|
|
|
1431
1431
|
function buildRulerLabels(component, box) {
|
|
1432
1432
|
const labels = component.labels ?? {};
|
|
1433
1433
|
const horizontal = component.parameters.axis === "horizontal";
|
|
1434
|
-
const ticks2 = Math.max(1,
|
|
1435
|
-
const major = Math.max(1,
|
|
1436
|
-
const inset =
|
|
1437
|
-
const line =
|
|
1434
|
+
const ticks2 = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.ticks), 50));
|
|
1435
|
+
const major = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.major), 5));
|
|
1436
|
+
const inset = chunkC25NWWIH_cjs.finite(Number(component.parameters.inset), 0.05) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.inset), 0.05) : 0.05;
|
|
1437
|
+
const line = chunkC25NWWIH_cjs.finite(Number(component.parameters.line), 0.7) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.line), 0.7) : 0.7;
|
|
1438
1438
|
const across = horizontal ? box.height : box.width;
|
|
1439
|
-
const tickLength = (
|
|
1440
|
-
const edge = line * across - 0.12 * across - tickLength -
|
|
1441
|
-
const fontSize =
|
|
1439
|
+
const tickLength = (chunkC25NWWIH_cjs.finite(Number(component.parameters.length), 0.1) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.length), 0.1) : 0.1) * across * 1.9;
|
|
1440
|
+
const edge = line * across - 0.12 * across - tickLength - chunkC25NWWIH_cjs.finite(labels.offset, 0.04) * across;
|
|
1441
|
+
const fontSize = chunkC25NWWIH_cjs.finite(labels.size, 12);
|
|
1442
1442
|
const count = Math.floor(ticks2 / major);
|
|
1443
1443
|
const nodes = [];
|
|
1444
1444
|
for (let step = 0; step <= count; step += 1) {
|
|
@@ -1449,10 +1449,10 @@ function buildRulerLabels(component, box) {
|
|
|
1449
1449
|
id: `widget-${component.id}-label-${step}`,
|
|
1450
1450
|
type: "text",
|
|
1451
1451
|
order: box.order + 0.1,
|
|
1452
|
-
bounds:
|
|
1452
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(labelBox, 0, 2),
|
|
1453
1453
|
...labelBox,
|
|
1454
1454
|
lines: [String(Math.round((box.min + (box.max - box.min) * fraction) * 10) / 10)],
|
|
1455
|
-
fontFamily: labels.fontFamily ||
|
|
1455
|
+
fontFamily: labels.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
1456
1456
|
fontSize,
|
|
1457
1457
|
fontWeight: labels.weight ?? "normal",
|
|
1458
1458
|
color: labels.color || "#8f95c4",
|
|
@@ -1468,10 +1468,10 @@ function buildRulerLabels(component, box) {
|
|
|
1468
1468
|
var DISABLED_INK = "#94a3b8";
|
|
1469
1469
|
function controlBox(component, index, fallback) {
|
|
1470
1470
|
return {
|
|
1471
|
-
x:
|
|
1472
|
-
y:
|
|
1473
|
-
width: Math.max(1,
|
|
1474
|
-
height: Math.max(1,
|
|
1471
|
+
x: chunkC25NWWIH_cjs.finite(component.x, 0),
|
|
1472
|
+
y: chunkC25NWWIH_cjs.finite(component.y, 0),
|
|
1473
|
+
width: Math.max(1, chunkC25NWWIH_cjs.finite(component.width, fallback.width)),
|
|
1474
|
+
height: Math.max(1, chunkC25NWWIH_cjs.finite(component.height, fallback.height)),
|
|
1475
1475
|
order: 1e4 + index
|
|
1476
1476
|
};
|
|
1477
1477
|
}
|
|
@@ -1489,7 +1489,7 @@ function hitArea(component, box) {
|
|
|
1489
1489
|
id: `widget-${component.id}`,
|
|
1490
1490
|
type: "rect",
|
|
1491
1491
|
order: box.order,
|
|
1492
|
-
bounds:
|
|
1492
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
|
|
1493
1493
|
x: box.x,
|
|
1494
1494
|
y: box.y,
|
|
1495
1495
|
width: box.width,
|
|
@@ -1502,13 +1502,13 @@ function labelText(component, part, area, label, order) {
|
|
|
1502
1502
|
id: `widget-${component.id}-${part}`,
|
|
1503
1503
|
type: "text",
|
|
1504
1504
|
order,
|
|
1505
|
-
bounds:
|
|
1505
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(area, 0, 0),
|
|
1506
1506
|
x: area.x,
|
|
1507
1507
|
y: area.y,
|
|
1508
1508
|
width: area.width,
|
|
1509
1509
|
height: area.height,
|
|
1510
1510
|
lines: [label.text],
|
|
1511
|
-
fontFamily:
|
|
1511
|
+
fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
1512
1512
|
fontSize: label.fontSize,
|
|
1513
1513
|
fontWeight: "600",
|
|
1514
1514
|
color: label.color,
|
|
@@ -1527,7 +1527,7 @@ function buildButton(component, index) {
|
|
|
1527
1527
|
id: `widget-${component.id}-face`,
|
|
1528
1528
|
type: "rect",
|
|
1529
1529
|
order: box.order + 0.1,
|
|
1530
|
-
bounds:
|
|
1530
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
|
|
1531
1531
|
x: box.x,
|
|
1532
1532
|
y: box.y,
|
|
1533
1533
|
width: box.width,
|
|
@@ -1566,7 +1566,7 @@ function boxNode(component, box, square) {
|
|
|
1566
1566
|
id: `widget-${component.id}-box`,
|
|
1567
1567
|
type: "rect",
|
|
1568
1568
|
order: box.order + 0.1,
|
|
1569
|
-
bounds:
|
|
1569
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(square, 0, 2),
|
|
1570
1570
|
...square,
|
|
1571
1571
|
rx: square.width * CORNER_RATIO,
|
|
1572
1572
|
style: fade(component, {
|
|
@@ -1581,7 +1581,7 @@ function checkNode(component, box, square) {
|
|
|
1581
1581
|
id: `widget-${component.id}-check`,
|
|
1582
1582
|
type: "path",
|
|
1583
1583
|
order: box.order + 0.2,
|
|
1584
|
-
bounds:
|
|
1584
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(square, 0, 0),
|
|
1585
1585
|
d: checkPath(square),
|
|
1586
1586
|
style: fade(component, {
|
|
1587
1587
|
fill: { kind: "none" },
|
|
@@ -1645,7 +1645,7 @@ function buildKnob(component, index) {
|
|
|
1645
1645
|
id: `widget-${component.id}-${part}`,
|
|
1646
1646
|
type: "ellipse",
|
|
1647
1647
|
order: box.order + order,
|
|
1648
|
-
bounds:
|
|
1648
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
|
|
1649
1649
|
cx,
|
|
1650
1650
|
cy,
|
|
1651
1651
|
rx: radius,
|
|
@@ -1672,7 +1672,7 @@ function buildKnob(component, index) {
|
|
|
1672
1672
|
id: `widget-${component.id}-face`,
|
|
1673
1673
|
type: "ellipse",
|
|
1674
1674
|
order: box.order + 0.3,
|
|
1675
|
-
bounds:
|
|
1675
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(
|
|
1676
1676
|
{ x: cx - faceRadius, y: cy - faceRadius, width: faceRadius * 2, height: faceRadius * 2 },
|
|
1677
1677
|
0,
|
|
1678
1678
|
0
|
|
@@ -1687,7 +1687,7 @@ function buildKnob(component, index) {
|
|
|
1687
1687
|
id: `widget-${component.id}-dot`,
|
|
1688
1688
|
type: "ellipse",
|
|
1689
1689
|
order: box.order + 0.4,
|
|
1690
|
-
bounds:
|
|
1690
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(
|
|
1691
1691
|
{
|
|
1692
1692
|
x: cx + radius * Math.cos(angle) - dotRadius,
|
|
1693
1693
|
y: cy - radius * Math.sin(angle) - dotRadius,
|
|
@@ -1750,7 +1750,7 @@ function buildProgress(component, index) {
|
|
|
1750
1750
|
id: `widget-${component.id}-${part}`,
|
|
1751
1751
|
type: "ellipse",
|
|
1752
1752
|
order: box.order + order,
|
|
1753
|
-
bounds:
|
|
1753
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
|
|
1754
1754
|
cx,
|
|
1755
1755
|
cy,
|
|
1756
1756
|
rx: radius,
|
|
@@ -1775,7 +1775,7 @@ function buildProgress(component, index) {
|
|
|
1775
1775
|
id: `widget-${component.id}-${part}`,
|
|
1776
1776
|
type: "rect",
|
|
1777
1777
|
order: box.order + order,
|
|
1778
|
-
bounds:
|
|
1778
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(shape, 0, 0),
|
|
1779
1779
|
...shape,
|
|
1780
1780
|
rx: radius,
|
|
1781
1781
|
style: fade(component, {
|
|
@@ -1818,7 +1818,7 @@ function buildSegmented(component, index) {
|
|
|
1818
1818
|
id: `widget-${component.id}-track`,
|
|
1819
1819
|
type: "rect",
|
|
1820
1820
|
order: box.order + 0.1,
|
|
1821
|
-
bounds:
|
|
1821
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
|
|
1822
1822
|
x: box.x,
|
|
1823
1823
|
y: box.y,
|
|
1824
1824
|
width: box.width,
|
|
@@ -1830,7 +1830,7 @@ function buildSegmented(component, index) {
|
|
|
1830
1830
|
id: `widget-${component.id}-active`,
|
|
1831
1831
|
type: "rect",
|
|
1832
1832
|
order: box.order + 0.2,
|
|
1833
|
-
bounds:
|
|
1833
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: box.x + inset + active * cellWidth, width: cellWidth, ...cell }, 0, 0),
|
|
1834
1834
|
x: box.x + inset + active * cellWidth,
|
|
1835
1835
|
y: cell.y,
|
|
1836
1836
|
width: cellWidth,
|
|
@@ -1882,7 +1882,7 @@ var rect = (component, box, part, order, shape, color, extra = {}) => ({
|
|
|
1882
1882
|
id: `widget-${component.id}-${part}`,
|
|
1883
1883
|
type: "rect",
|
|
1884
1884
|
order: box.order + order,
|
|
1885
|
-
bounds:
|
|
1885
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(shape, 0, 0),
|
|
1886
1886
|
...shape,
|
|
1887
1887
|
style: fade(component, { fill: solid(color), stroke: { kind: "none" }, ...extra })
|
|
1888
1888
|
});
|
|
@@ -1935,7 +1935,7 @@ function buildLine(component, box, thumbs, vertical) {
|
|
|
1935
1935
|
id: `widget-${component.id}-${part}`,
|
|
1936
1936
|
type: "ellipse",
|
|
1937
1937
|
order: box.order + order,
|
|
1938
|
-
bounds:
|
|
1938
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, 0),
|
|
1939
1939
|
cx,
|
|
1940
1940
|
cy,
|
|
1941
1941
|
rx: radius,
|
|
@@ -2087,7 +2087,7 @@ function buildSwitch(component, index) {
|
|
|
2087
2087
|
id: `widget-${component.id}-track`,
|
|
2088
2088
|
type: "rect",
|
|
2089
2089
|
order: box.order + 0.1,
|
|
2090
|
-
bounds:
|
|
2090
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
|
|
2091
2091
|
x: box.x,
|
|
2092
2092
|
y: box.y,
|
|
2093
2093
|
width: box.width,
|
|
@@ -2102,7 +2102,7 @@ function buildSwitch(component, index) {
|
|
|
2102
2102
|
id: `widget-${component.id}-thumb`,
|
|
2103
2103
|
type: "ellipse",
|
|
2104
2104
|
order: box.order + 0.2,
|
|
2105
|
-
bounds:
|
|
2105
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(thumb, 0, 0),
|
|
2106
2106
|
cx: centerX,
|
|
2107
2107
|
cy: box.y + box.height / 2,
|
|
2108
2108
|
rx: radius,
|
|
@@ -2126,7 +2126,7 @@ function buildToggleButton(component, index) {
|
|
|
2126
2126
|
id: `widget-${component.id}-face`,
|
|
2127
2127
|
type: "rect",
|
|
2128
2128
|
order: box.order + 0.1,
|
|
2129
|
-
bounds:
|
|
2129
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 2),
|
|
2130
2130
|
x: box.x,
|
|
2131
2131
|
y: box.y,
|
|
2132
2132
|
width: box.width,
|
|
@@ -2181,8 +2181,8 @@ function getComponentBuilder(type) {
|
|
|
2181
2181
|
|
|
2182
2182
|
// src/renderScene/artifacts/component/build.ts
|
|
2183
2183
|
function ariaOf(component) {
|
|
2184
|
-
const role =
|
|
2185
|
-
if (!role || !
|
|
2184
|
+
const role = chunkC25NWWIH_cjs.getComponentDescriptor(component.type)?.role;
|
|
2185
|
+
if (!role || !chunkC25NWWIH_cjs.isGenericComponent(component)) {
|
|
2186
2186
|
return void 0;
|
|
2187
2187
|
}
|
|
2188
2188
|
const flag = typeof component.value === "boolean" ? component.value : void 0;
|
|
@@ -2193,12 +2193,12 @@ function ariaOf(component) {
|
|
|
2193
2193
|
};
|
|
2194
2194
|
}
|
|
2195
2195
|
function labelOf(component) {
|
|
2196
|
-
return component.label ?? (
|
|
2196
|
+
return component.label ?? (chunkC25NWWIH_cjs.isGenericComponent(component) ? component.id : String(component.value));
|
|
2197
2197
|
}
|
|
2198
2198
|
function buildComponents(components) {
|
|
2199
2199
|
return components.flatMap((component, index) => {
|
|
2200
2200
|
const build = getComponentBuilder(component.type) ?? buildPlaceholder;
|
|
2201
|
-
const nodes =
|
|
2201
|
+
const nodes = chunkC25NWWIH_cjs.tag(
|
|
2202
2202
|
build(component, index),
|
|
2203
2203
|
"widget",
|
|
2204
2204
|
component.id,
|
|
@@ -2238,13 +2238,13 @@ function tabBox(input, thickness, length) {
|
|
|
2238
2238
|
y,
|
|
2239
2239
|
width: length,
|
|
2240
2240
|
height: thickness,
|
|
2241
|
-
path:
|
|
2241
|
+
path: chunkC25NWWIH_cjs.bottomRoundedRectPath(x, y, length, thickness, TAB_RADIUS)
|
|
2242
2242
|
};
|
|
2243
2243
|
}
|
|
2244
2244
|
case "left": {
|
|
2245
2245
|
const x = input.x - thickness;
|
|
2246
2246
|
const y = input.y - inset;
|
|
2247
|
-
return { x, y, width: thickness, height: length, path:
|
|
2247
|
+
return { x, y, width: thickness, height: length, path: chunkC25NWWIH_cjs.leftRoundedRectPath(x, y, thickness, length, TAB_RADIUS) };
|
|
2248
2248
|
}
|
|
2249
2249
|
case "right": {
|
|
2250
2250
|
const x = input.x + input.width;
|
|
@@ -2254,13 +2254,13 @@ function tabBox(input, thickness, length) {
|
|
|
2254
2254
|
y,
|
|
2255
2255
|
width: thickness,
|
|
2256
2256
|
height: length,
|
|
2257
|
-
path:
|
|
2257
|
+
path: chunkC25NWWIH_cjs.rightRoundedRectPath(x, y, thickness, length, TAB_RADIUS)
|
|
2258
2258
|
};
|
|
2259
2259
|
}
|
|
2260
2260
|
default: {
|
|
2261
2261
|
const x = input.x - inset;
|
|
2262
2262
|
const y = input.y - thickness;
|
|
2263
|
-
return { x, y, width: length, height: thickness, path:
|
|
2263
|
+
return { x, y, width: length, height: thickness, path: chunkC25NWWIH_cjs.topRoundedRectPath(x, y, length, thickness, TAB_RADIUS) };
|
|
2264
2264
|
}
|
|
2265
2265
|
}
|
|
2266
2266
|
}
|
|
@@ -2269,7 +2269,7 @@ function renderTitleTab(input) {
|
|
|
2269
2269
|
const padding = 16;
|
|
2270
2270
|
const length = Math.max(120, input.title.length * input.fontSize * 0.62 + padding * 2);
|
|
2271
2271
|
const box = tabBox(input, thickness, length);
|
|
2272
|
-
const bounds =
|
|
2272
|
+
const bounds = chunkC25NWWIH_cjs.boxBounds(box, 6);
|
|
2273
2273
|
const vertical = input.labelPosition === "left" || input.labelPosition === "right";
|
|
2274
2274
|
return [
|
|
2275
2275
|
{
|
|
@@ -2297,7 +2297,7 @@ function horizontalTitleText(input, box, padding, bounds) {
|
|
|
2297
2297
|
width: Math.max(0, box.width - padding * 2),
|
|
2298
2298
|
height: box.height,
|
|
2299
2299
|
lines: [input.title],
|
|
2300
|
-
fontFamily: input.fontFamily ??
|
|
2300
|
+
fontFamily: input.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
2301
2301
|
fontSize: input.fontSize,
|
|
2302
2302
|
fontWeight: input.fontWeight,
|
|
2303
2303
|
color: input.textColor,
|
|
@@ -2321,7 +2321,7 @@ function verticalTitleText(input, box, padding, bounds) {
|
|
|
2321
2321
|
width: textLength,
|
|
2322
2322
|
height: textThickness,
|
|
2323
2323
|
lines: [input.title],
|
|
2324
|
-
fontFamily: input.fontFamily ??
|
|
2324
|
+
fontFamily: input.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
2325
2325
|
fontSize: input.fontSize,
|
|
2326
2326
|
fontWeight: input.fontWeight,
|
|
2327
2327
|
color: input.textColor,
|
|
@@ -2342,7 +2342,7 @@ var SQUARED_CORNER_BY_LABEL_POSITION = {
|
|
|
2342
2342
|
};
|
|
2343
2343
|
function frameBoundaryNode(frame, order, hasTab) {
|
|
2344
2344
|
const shadow = frame.shadow ?? true;
|
|
2345
|
-
const bounds =
|
|
2345
|
+
const bounds = chunkC25NWWIH_cjs.boxBounds(
|
|
2346
2346
|
{ x: frame.x, y: frame.y, width: frame.width, height: frame.height },
|
|
2347
2347
|
frame.strokeWidth + (shadow ? 20 : 4)
|
|
2348
2348
|
);
|
|
@@ -2377,7 +2377,7 @@ function frameBoundaryNode(frame, order, hasTab) {
|
|
|
2377
2377
|
id: `frame-${frame.id}`,
|
|
2378
2378
|
order,
|
|
2379
2379
|
bounds,
|
|
2380
|
-
d:
|
|
2380
|
+
d: chunkC25NWWIH_cjs.cornersRoundedRectPath(frame.x, frame.y, frame.width, frame.height, radii),
|
|
2381
2381
|
detail: { of: "frameBoundary", cornerRadius: frame.cornerRadius, squareCorner: squared },
|
|
2382
2382
|
style
|
|
2383
2383
|
};
|
|
@@ -2466,7 +2466,7 @@ function labelBase(context, lane, index) {
|
|
|
2466
2466
|
id: `swimlane-label-${context.swimlane.id}-${lane.id}`,
|
|
2467
2467
|
order: context.order + 0.5 + index / 100,
|
|
2468
2468
|
lines: [lane.label],
|
|
2469
|
-
fontFamily: context.swimlane.fontFamily ??
|
|
2469
|
+
fontFamily: context.swimlane.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
2470
2470
|
fontSize: context.swimlane.fontSize,
|
|
2471
2471
|
fontWeight: context.swimlane.fontWeight,
|
|
2472
2472
|
color: context.swimlane.textColor,
|
|
@@ -2482,7 +2482,7 @@ function horizontalLabel(context, lane, index) {
|
|
|
2482
2482
|
const y = centerY - thickness / 2;
|
|
2483
2483
|
return {
|
|
2484
2484
|
...labelBase(context, lane, index),
|
|
2485
|
-
bounds:
|
|
2485
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height: thickness }, -90, 12),
|
|
2486
2486
|
x,
|
|
2487
2487
|
y,
|
|
2488
2488
|
width,
|
|
@@ -2534,7 +2534,7 @@ function createSwimlaneRenderContext(swimlane, index) {
|
|
|
2534
2534
|
return {
|
|
2535
2535
|
swimlane,
|
|
2536
2536
|
order: 5e3 + index,
|
|
2537
|
-
bounds:
|
|
2537
|
+
bounds: chunkC25NWWIH_cjs.boxBounds(
|
|
2538
2538
|
{ x: swimlane.x, y: swimlane.y, width: swimlane.width, height: swimlane.height },
|
|
2539
2539
|
swimlane.strokeWidth + 4
|
|
2540
2540
|
),
|
|
@@ -2573,9 +2573,9 @@ function buildSwimlane(swimlane, index) {
|
|
|
2573
2573
|
function buildContainers(input) {
|
|
2574
2574
|
return [
|
|
2575
2575
|
...input.frames.flatMap(
|
|
2576
|
-
(frame, index) =>
|
|
2576
|
+
(frame, index) => chunkC25NWWIH_cjs.tag(buildFrame(frame, index), "frame", frame.id, void 0, frame.title ?? void 0)
|
|
2577
2577
|
),
|
|
2578
|
-
...input.swimlanes.flatMap((swimlane, index) =>
|
|
2578
|
+
...input.swimlanes.flatMap((swimlane, index) => chunkC25NWWIH_cjs.tag(buildSwimlane(swimlane, index), "swimlane", swimlane.id))
|
|
2579
2579
|
];
|
|
2580
2580
|
}
|
|
2581
2581
|
|
|
@@ -2625,7 +2625,7 @@ var DEFAULT_COLOR = "#475569";
|
|
|
2625
2625
|
var CHAR_WIDTH = 0.6;
|
|
2626
2626
|
var pathData = (segments) => segments.map(([from, to]) => `M ${from.x} ${from.y} L ${to.x} ${to.y}`).join(" ");
|
|
2627
2627
|
function pathNode(dimension, name, order, segments) {
|
|
2628
|
-
const strokeWidth = Math.max(0,
|
|
2628
|
+
const strokeWidth = Math.max(0, chunkC25NWWIH_cjs.finite(dimension.strokeWidth, 1));
|
|
2629
2629
|
const points = segments.flat();
|
|
2630
2630
|
return {
|
|
2631
2631
|
type: "path",
|
|
@@ -2647,7 +2647,7 @@ function pathNode(dimension, name, order, segments) {
|
|
|
2647
2647
|
};
|
|
2648
2648
|
}
|
|
2649
2649
|
function labelNode2(dimension, order, text, center, angle) {
|
|
2650
|
-
const fontSize =
|
|
2650
|
+
const fontSize = chunkC25NWWIH_cjs.finite(dimension.fontSize, 11);
|
|
2651
2651
|
const width = Math.max(24, text.length * fontSize * CHAR_WIDTH + 8);
|
|
2652
2652
|
const height = fontSize * 1.3;
|
|
2653
2653
|
return {
|
|
@@ -2665,7 +2665,7 @@ function labelNode2(dimension, order, text, center, angle) {
|
|
|
2665
2665
|
width,
|
|
2666
2666
|
height,
|
|
2667
2667
|
lines: [text],
|
|
2668
|
-
fontFamily:
|
|
2668
|
+
fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
2669
2669
|
fontSize,
|
|
2670
2670
|
fontWeight: "normal",
|
|
2671
2671
|
color: dimension.textColor ?? dimension.strokeColor ?? DEFAULT_COLOR,
|
|
@@ -2690,7 +2690,7 @@ function buildDimension(dimension, index) {
|
|
|
2690
2690
|
}
|
|
2691
2691
|
function buildDimensions(dimensions) {
|
|
2692
2692
|
return dimensions.flatMap(
|
|
2693
|
-
(dimension, index) =>
|
|
2693
|
+
(dimension, index) => chunkC25NWWIH_cjs.tag(
|
|
2694
2694
|
buildDimension(dimension, index),
|
|
2695
2695
|
"dimension",
|
|
2696
2696
|
dimension.id,
|
|
@@ -2704,9 +2704,9 @@ function buildDimensions(dimensions) {
|
|
|
2704
2704
|
// src/renderScene/artifacts/isometric/context.ts
|
|
2705
2705
|
var FILL_PROP = { prop: "style.fill", propKind: "color", propSolidOnly: true };
|
|
2706
2706
|
function isometricContext(object, index) {
|
|
2707
|
-
const strokeWidth = Math.max(0,
|
|
2708
|
-
const rotation =
|
|
2709
|
-
const box =
|
|
2707
|
+
const strokeWidth = Math.max(0, chunkC25NWWIH_cjs.finite(object.strokeWidth, 1));
|
|
2708
|
+
const rotation = chunkC25NWWIH_cjs.finite(object.rotation, 0);
|
|
2709
|
+
const box = chunkC25NWWIH_cjs.isometricBounds(object);
|
|
2710
2710
|
const rotationCenter = { x: box.x + box.width / 2, y: box.y + box.height / 2 };
|
|
2711
2711
|
return {
|
|
2712
2712
|
object,
|
|
@@ -2718,7 +2718,7 @@ function isometricContext(object, index) {
|
|
|
2718
2718
|
strokeWidth,
|
|
2719
2719
|
common: {
|
|
2720
2720
|
type: "path",
|
|
2721
|
-
bounds:
|
|
2721
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(box, rotation, strokeWidth + 2),
|
|
2722
2722
|
rotation,
|
|
2723
2723
|
rotationCenter,
|
|
2724
2724
|
style: {
|
|
@@ -2734,13 +2734,13 @@ function faceNode(context, name, offset, points, style) {
|
|
|
2734
2734
|
...context.common,
|
|
2735
2735
|
id: `isometric-${context.object.id}-${name}`,
|
|
2736
2736
|
order: context.order + offset,
|
|
2737
|
-
d:
|
|
2737
|
+
d: chunkC25NWWIH_cjs.roundedPolygonPath([...points], 0),
|
|
2738
2738
|
style,
|
|
2739
2739
|
...FILL_PROP
|
|
2740
2740
|
};
|
|
2741
2741
|
}
|
|
2742
2742
|
function silhouette(object) {
|
|
2743
|
-
const faces =
|
|
2743
|
+
const faces = chunkC25NWWIH_cjs.isometricFaces(object);
|
|
2744
2744
|
return [faces.top[0], faces.top[1], faces.right[2], faces.front[2], faces.front[3], faces.top[3]];
|
|
2745
2745
|
}
|
|
2746
2746
|
function hullNode(context, hullPath, cornerRadius) {
|
|
@@ -2757,15 +2757,15 @@ function hullNode(context, hullPath, cornerRadius) {
|
|
|
2757
2757
|
depth: Math.max(0, object.depth),
|
|
2758
2758
|
cornerRadius,
|
|
2759
2759
|
bounds: box,
|
|
2760
|
-
labelOffsetX:
|
|
2761
|
-
labelOffsetY:
|
|
2760
|
+
labelOffsetX: chunkC25NWWIH_cjs.finite(object.labelOffsetX, 0),
|
|
2761
|
+
labelOffsetY: chunkC25NWWIH_cjs.finite(object.labelOffsetY, 0)
|
|
2762
2762
|
},
|
|
2763
2763
|
style: { ...common.style, fill: { kind: "none" } }
|
|
2764
2764
|
};
|
|
2765
2765
|
}
|
|
2766
2766
|
function unseenHullNode(context) {
|
|
2767
2767
|
return {
|
|
2768
|
-
...hullNode(context,
|
|
2768
|
+
...hullNode(context, chunkC25NWWIH_cjs.roundedPolygonPath(silhouette(context.object), 0), 0),
|
|
2769
2769
|
style: { ...context.common.style, fill: { kind: "none" }, stroke: { kind: "none" } }
|
|
2770
2770
|
};
|
|
2771
2771
|
}
|
|
@@ -2778,9 +2778,9 @@ var LABEL_PADDING_Y = 3;
|
|
|
2778
2778
|
var LABEL_CHAR_WIDTH = 6.5;
|
|
2779
2779
|
function labelPlacement(context) {
|
|
2780
2780
|
const { object } = context;
|
|
2781
|
-
const anchor =
|
|
2782
|
-
const bottomY = anchor.y - LABEL_GAP +
|
|
2783
|
-
return { anchor, centerX: anchor.x +
|
|
2781
|
+
const anchor = chunkC25NWWIH_cjs.isometricTopFaceCenter(object);
|
|
2782
|
+
const bottomY = anchor.y - LABEL_GAP + chunkC25NWWIH_cjs.finite(object.labelOffsetY, 0);
|
|
2783
|
+
return { anchor, centerX: anchor.x + chunkC25NWWIH_cjs.finite(object.labelOffsetX, 0), topY: bottomY - LABEL_HEIGHT, bottomY };
|
|
2784
2784
|
}
|
|
2785
2785
|
function labelTextNode(context, placement, text) {
|
|
2786
2786
|
const { object, order, rotation, rotationCenter, box } = context;
|
|
@@ -2795,7 +2795,7 @@ function labelTextNode(context, placement, text) {
|
|
|
2795
2795
|
width: box.width,
|
|
2796
2796
|
height: LABEL_HEIGHT,
|
|
2797
2797
|
lines: [text],
|
|
2798
|
-
fontFamily:
|
|
2798
|
+
fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
2799
2799
|
fontSize: 12,
|
|
2800
2800
|
fontWeight: "normal",
|
|
2801
2801
|
color: "#111827",
|
|
@@ -2875,7 +2875,7 @@ function groundShadowNode(context, topOutline) {
|
|
|
2875
2875
|
}
|
|
2876
2876
|
const height = Math.max(0, object.height);
|
|
2877
2877
|
const heightFactor = 0.6 + Math.min(1, height / 150) * 0.7;
|
|
2878
|
-
const shadowDrop = height +
|
|
2878
|
+
const shadowDrop = height + chunkC25NWWIH_cjs.finite(object.shadowStyle?.distance, 0);
|
|
2879
2879
|
const contactFootprint = topOutline.map((point) => ({ x: point.x, y: point.y + shadowDrop }));
|
|
2880
2880
|
const footprintCenter = {
|
|
2881
2881
|
x: contactFootprint.reduce((sum, point) => sum + point.x, 0) / contactFootprint.length,
|
|
@@ -2898,14 +2898,14 @@ function groundShadowNode(context, topOutline) {
|
|
|
2898
2898
|
maxX: Math.max(...footprintXs),
|
|
2899
2899
|
maxY: Math.max(...footprintYs)
|
|
2900
2900
|
},
|
|
2901
|
-
d:
|
|
2901
|
+
d: chunkC25NWWIH_cjs.roundedPolygonPath(footprint, 0),
|
|
2902
2902
|
rotation,
|
|
2903
2903
|
rotationCenter,
|
|
2904
2904
|
style: {
|
|
2905
2905
|
fill: { kind: "solid", color: object.shadowStyle?.color ?? "#000000" },
|
|
2906
2906
|
stroke: { kind: "none" },
|
|
2907
2907
|
opacity: Math.min(1, (object.shadowStyle?.opacity ?? 0.18) * heightFactor),
|
|
2908
|
-
blur:
|
|
2908
|
+
blur: chunkC25NWWIH_cjs.finite(object.shadowStyle?.blur, 8),
|
|
2909
2909
|
pointerEvents: "none"
|
|
2910
2910
|
}
|
|
2911
2911
|
};
|
|
@@ -2919,7 +2919,7 @@ function sphereShadowNode(context, radius) {
|
|
|
2919
2919
|
const depth = Math.max(0, object.depth);
|
|
2920
2920
|
const center = {
|
|
2921
2921
|
x: box.x + box.width / 2,
|
|
2922
|
-
y: object.y + Math.max(0, object.height) + (width + depth) *
|
|
2922
|
+
y: object.y + Math.max(0, object.height) + (width + depth) * chunkC25NWWIH_cjs.AXIS_SIN / 2
|
|
2923
2923
|
};
|
|
2924
2924
|
return {
|
|
2925
2925
|
type: "ellipse",
|
|
@@ -2939,7 +2939,7 @@ function sphereShadowNode(context, radius) {
|
|
|
2939
2939
|
fill: { kind: "solid", color: object.shadowStyle?.color ?? "#000000" },
|
|
2940
2940
|
stroke: { kind: "none" },
|
|
2941
2941
|
opacity: object.shadowStyle?.opacity ?? 0.2,
|
|
2942
|
-
blur:
|
|
2942
|
+
blur: chunkC25NWWIH_cjs.finite(object.shadowStyle?.blur, 8),
|
|
2943
2943
|
pointerEvents: "none"
|
|
2944
2944
|
}
|
|
2945
2945
|
};
|
|
@@ -2949,7 +2949,7 @@ function sphereShadowNode(context, radius) {
|
|
|
2949
2949
|
function faceNodes(context, faces, hullClip) {
|
|
2950
2950
|
const { object, common } = context;
|
|
2951
2951
|
const noStroke = { ...common.style, stroke: { kind: "none" } };
|
|
2952
|
-
const fills =
|
|
2952
|
+
const fills = chunkC25NWWIH_cjs.deriveFaceFills(object.fill ?? "#f8fafc");
|
|
2953
2953
|
const face = (name, offset, points, color) => faceNode(context, name, offset, points, { ...noStroke, fill: { kind: "solid", color }, clip: hullClip });
|
|
2954
2954
|
return [
|
|
2955
2955
|
face("top", 0, faces.top, fills.topFill),
|
|
@@ -2975,9 +2975,9 @@ function seamsNode(context, faces, hullClip) {
|
|
|
2975
2975
|
}
|
|
2976
2976
|
function buildBox(object, index) {
|
|
2977
2977
|
const context = isometricContext(object, index);
|
|
2978
|
-
const faces =
|
|
2979
|
-
const cornerRadius = Math.max(0,
|
|
2980
|
-
const hullPath =
|
|
2978
|
+
const faces = chunkC25NWWIH_cjs.isometricFaces(object);
|
|
2979
|
+
const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(object.cornerRadius, 8));
|
|
2980
|
+
const hullPath = chunkC25NWWIH_cjs.roundedPolygonPath(silhouette(object), cornerRadius);
|
|
2981
2981
|
const hullClip = { type: "path", d: hullPath };
|
|
2982
2982
|
const groundShadow = groundShadowNode(context, faces.top);
|
|
2983
2983
|
const seams = object.seams === false ? void 0 : seamsNode(context, faces, hullClip);
|
|
@@ -2989,7 +2989,7 @@ function buildBox(object, index) {
|
|
|
2989
2989
|
|
|
2990
2990
|
// src/renderScene/artifacts/isometric/extruded.ts
|
|
2991
2991
|
function wallNode(context, side, index, fill2) {
|
|
2992
|
-
const color =
|
|
2992
|
+
const color = chunkC25NWWIH_cjs.shadeFill(fill2, side.light);
|
|
2993
2993
|
return faceNode(context, `side-${index}`, 0.05 + index * 1e-3, side.points, {
|
|
2994
2994
|
...context.common.style,
|
|
2995
2995
|
stroke: { kind: "solid", color },
|
|
@@ -3014,7 +3014,7 @@ function wallEdgesNode(context, side, index) {
|
|
|
3014
3014
|
}
|
|
3015
3015
|
function buildExtruded(object, index, footprint) {
|
|
3016
3016
|
const context = isometricContext(object, index);
|
|
3017
|
-
const { top, sides } =
|
|
3017
|
+
const { top, sides } = chunkC25NWWIH_cjs.extrudeFootprint(object, footprint, Math.max(0, chunkC25NWWIH_cjs.finite(object.cornerRadius, 0)));
|
|
3018
3018
|
const fill2 = object.fill ?? "#f8fafc";
|
|
3019
3019
|
const groundShadow = groundShadowNode(context, top);
|
|
3020
3020
|
const topFace = faceNode(context, "top", 0.2, top, { ...context.common.style, fill: { kind: "solid", color: fill2 } });
|
|
@@ -3051,9 +3051,9 @@ function buildSphere(object, index) {
|
|
|
3051
3051
|
kind: "linear-gradient",
|
|
3052
3052
|
angle: 135,
|
|
3053
3053
|
stops: [
|
|
3054
|
-
{ offset: 0, color:
|
|
3054
|
+
{ offset: 0, color: chunkC25NWWIH_cjs.shadeFill(fill2, 1.22) },
|
|
3055
3055
|
{ offset: 0.5, color: fill2 },
|
|
3056
|
-
{ offset: 1, color:
|
|
3056
|
+
{ offset: 1, color: chunkC25NWWIH_cjs.shadeFill(fill2, 0.82) }
|
|
3057
3057
|
]
|
|
3058
3058
|
}
|
|
3059
3059
|
},
|
|
@@ -3089,12 +3089,12 @@ function buildIsometricObject(object, index) {
|
|
|
3089
3089
|
if (object.form === "sphere") {
|
|
3090
3090
|
return buildSphere(object, index);
|
|
3091
3091
|
}
|
|
3092
|
-
const footprint =
|
|
3092
|
+
const footprint = chunkC25NWWIH_cjs.cleanFootprint(object.footprint);
|
|
3093
3093
|
return footprint.length > 0 ? buildExtruded(object, index, footprint) : buildBox(object, index);
|
|
3094
3094
|
}
|
|
3095
3095
|
function buildIsometricObjects(objects) {
|
|
3096
3096
|
return objects.flatMap(
|
|
3097
|
-
(object, index) =>
|
|
3097
|
+
(object, index) => chunkC25NWWIH_cjs.tag(
|
|
3098
3098
|
buildIsometricObject(object, index),
|
|
3099
3099
|
"isometric",
|
|
3100
3100
|
object.id,
|
|
@@ -3123,7 +3123,7 @@ function renderEndpointLabel(context, end, labelIndex) {
|
|
|
3123
3123
|
if (!label) {
|
|
3124
3124
|
return [];
|
|
3125
3125
|
}
|
|
3126
|
-
const fontSize =
|
|
3126
|
+
const fontSize = chunkC25NWWIH_cjs.finite(context.link.style?.fontSize, 10);
|
|
3127
3127
|
const position = endpointLabelPosition(context.points, end);
|
|
3128
3128
|
const width = 90;
|
|
3129
3129
|
return [
|
|
@@ -3137,7 +3137,7 @@ function renderEndpointLabel(context, end, labelIndex) {
|
|
|
3137
3137
|
width,
|
|
3138
3138
|
height: fontSize * 2,
|
|
3139
3139
|
lines: [label],
|
|
3140
|
-
fontFamily: context.link.style?.fontFamily ??
|
|
3140
|
+
fontFamily: context.link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
3141
3141
|
fontSize,
|
|
3142
3142
|
fontWeight: "normal",
|
|
3143
3143
|
color: context.color,
|
|
@@ -3167,7 +3167,7 @@ function renderMainLabel(context) {
|
|
|
3167
3167
|
width: context.label.width,
|
|
3168
3168
|
height: context.label.fontSize * 2,
|
|
3169
3169
|
lines: context.label.lines,
|
|
3170
|
-
fontFamily: context.link.style?.fontFamily ??
|
|
3170
|
+
fontFamily: context.link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
3171
3171
|
fontSize: context.label.fontSize,
|
|
3172
3172
|
fontWeight: "normal",
|
|
3173
3173
|
color: context.color,
|
|
@@ -3221,10 +3221,10 @@ function linkBounds(points, padding) {
|
|
|
3221
3221
|
}
|
|
3222
3222
|
function labelLayout(link, measureText) {
|
|
3223
3223
|
const visible = Boolean(link.showText && link.text);
|
|
3224
|
-
const fontSize =
|
|
3224
|
+
const fontSize = chunkC25NWWIH_cjs.finite(link.style?.fontSize, 10);
|
|
3225
3225
|
const width = Math.min(250, Math.max(fontSize * 2, (link.text?.length ?? 0) * fontSize * 0.65 + 10));
|
|
3226
|
-
const metrics = measureText?.(link.style?.fontFamily ??
|
|
3227
|
-
const lines = visible ?
|
|
3226
|
+
const metrics = measureText?.(link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT, fontSize);
|
|
3227
|
+
const lines = visible ? chunkC25NWWIH_cjs.wrapText(link.text ?? "", width, fontSize, metrics) : [];
|
|
3228
3228
|
return { visible, fontSize, width, height: lines.length * fontSize * 1.4, lines };
|
|
3229
3229
|
}
|
|
3230
3230
|
function linkStyle(item, strokeWidth, color, dash) {
|
|
@@ -3241,26 +3241,26 @@ function linkStyle(item, strokeWidth, color, dash) {
|
|
|
3241
3241
|
dash,
|
|
3242
3242
|
lineCap: "round",
|
|
3243
3243
|
lineJoin: "round",
|
|
3244
|
-
opacity:
|
|
3244
|
+
opacity: chunkC25NWWIH_cjs.finite(link.style?.opacity, 1),
|
|
3245
3245
|
shadow: resolveShadow(link.style?.shadow)
|
|
3246
3246
|
};
|
|
3247
3247
|
}
|
|
3248
3248
|
function createLinkRenderContext(item, index, measureText) {
|
|
3249
3249
|
const { link, from, to } = item;
|
|
3250
3250
|
const pathType = link.style?.pathType ?? "orthogonal";
|
|
3251
|
-
const { points, segments } =
|
|
3252
|
-
const strokeWidth =
|
|
3251
|
+
const { points, segments } = chunkC25NWWIH_cjs.calculateLinkRoute(link, from, to, pathType);
|
|
3252
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(link.style?.strokeWidth, 2);
|
|
3253
3253
|
const color = getLinkStrokeColor(link.style?.color) || "#64748b";
|
|
3254
3254
|
const label = labelLayout(link, measureText);
|
|
3255
3255
|
const contentDash = getDashArray(strokeWidth, link.style?.strokeStyle ?? "solid");
|
|
3256
|
-
const gap = label.visible && !contentDash ?
|
|
3256
|
+
const gap = label.visible && !contentDash ? chunkC25NWWIH_cjs.labelGapDash(points, pathType, label.width, label.height) : null;
|
|
3257
3257
|
const dash = gap ? [gap.dashBefore, gap.gapLength, 1e6] : contentDash;
|
|
3258
3258
|
return {
|
|
3259
3259
|
link,
|
|
3260
3260
|
pathType,
|
|
3261
3261
|
points,
|
|
3262
3262
|
segments,
|
|
3263
|
-
midpoint:
|
|
3263
|
+
midpoint: chunkC25NWWIH_cjs.getLineMidpoint(points, pathType, from, to),
|
|
3264
3264
|
strokeWidth,
|
|
3265
3265
|
bounds: linkBounds(points, strokeWidth + 14),
|
|
3266
3266
|
color,
|
|
@@ -3306,7 +3306,7 @@ function pathData2(points, pathType, segments, strokeWidth) {
|
|
|
3306
3306
|
return `M ${points[0]} ${points[1]} C ${points[2]} ${points[3]} ${points[4]} ${points[5]} ${points[6]} ${points[7]}`;
|
|
3307
3307
|
}
|
|
3308
3308
|
if (pathType === "orthogonal" && segments.length > 0) {
|
|
3309
|
-
return
|
|
3309
|
+
return chunkC25NWWIH_cjs.roundedOrthogonalPathData(segments, Math.max(16, strokeWidth * 4));
|
|
3310
3310
|
}
|
|
3311
3311
|
return polylinePathData(points);
|
|
3312
3312
|
}
|
|
@@ -3410,7 +3410,7 @@ function buildLink(item, index, measureText) {
|
|
|
3410
3410
|
}
|
|
3411
3411
|
function buildLinks(links, measureText) {
|
|
3412
3412
|
return links.flatMap(
|
|
3413
|
-
(item, index) =>
|
|
3413
|
+
(item, index) => chunkC25NWWIH_cjs.tag(
|
|
3414
3414
|
buildLink(item, index, measureText),
|
|
3415
3415
|
"link",
|
|
3416
3416
|
item.link.id,
|
|
@@ -3425,7 +3425,7 @@ function buildFreeformPath(path, index) {
|
|
|
3425
3425
|
if (path.isVisible === false || path.points.length < 2) {
|
|
3426
3426
|
return [];
|
|
3427
3427
|
}
|
|
3428
|
-
const strokeWidth =
|
|
3428
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(path.strokeWidth, 2);
|
|
3429
3429
|
const extra = strokeWidth + 12;
|
|
3430
3430
|
const bounds = {
|
|
3431
3431
|
minX: Math.min(...path.points.map((point) => point.x)) - extra,
|
|
@@ -3433,7 +3433,7 @@ function buildFreeformPath(path, index) {
|
|
|
3433
3433
|
maxX: Math.max(...path.points.map((point) => point.x)) + extra,
|
|
3434
3434
|
maxY: Math.max(...path.points.map((point) => point.y)) + extra
|
|
3435
3435
|
};
|
|
3436
|
-
const tension =
|
|
3436
|
+
const tension = chunkC25NWWIH_cjs.finite(path.tension, 0);
|
|
3437
3437
|
const closed = path.closed === true;
|
|
3438
3438
|
return [
|
|
3439
3439
|
{
|
|
@@ -3441,7 +3441,7 @@ function buildFreeformPath(path, index) {
|
|
|
3441
3441
|
id: `path-${path.id}`,
|
|
3442
3442
|
order: 3e4 + index,
|
|
3443
3443
|
bounds,
|
|
3444
|
-
d:
|
|
3444
|
+
d: chunkC25NWWIH_cjs.freeformPathData({ points: path.points, tension, closed }),
|
|
3445
3445
|
markerStart: path.startMarker,
|
|
3446
3446
|
markerEnd: path.endMarker,
|
|
3447
3447
|
detail: {
|
|
@@ -3457,13 +3457,13 @@ function buildFreeformPath(path, index) {
|
|
|
3457
3457
|
dash: path.dash?.length ? path.dash : void 0,
|
|
3458
3458
|
lineCap: "round",
|
|
3459
3459
|
lineJoin: "round",
|
|
3460
|
-
opacity:
|
|
3460
|
+
opacity: chunkC25NWWIH_cjs.finite(path.opacity, 1)
|
|
3461
3461
|
}
|
|
3462
3462
|
}
|
|
3463
3463
|
];
|
|
3464
3464
|
}
|
|
3465
3465
|
function buildFreeformPaths(paths) {
|
|
3466
|
-
return paths.flatMap((path, index) =>
|
|
3466
|
+
return paths.flatMap((path, index) => chunkC25NWWIH_cjs.tag(buildFreeformPath(path, index), "path", path.id, "path", "Path"));
|
|
3467
3467
|
}
|
|
3468
3468
|
|
|
3469
3469
|
// src/renderScene/artifacts/shape/geometry/base.ts
|
|
@@ -3479,7 +3479,7 @@ function shapeNodeBase(context) {
|
|
|
3479
3479
|
|
|
3480
3480
|
// src/renderScene/artifacts/shape/geometry/simple.ts
|
|
3481
3481
|
function renderPath(context) {
|
|
3482
|
-
const path =
|
|
3482
|
+
const path = chunkC25NWWIH_cjs.localShapePath(context.shape.shapeType, context.x, context.y, context.width, context.height);
|
|
3483
3483
|
if (!path) {
|
|
3484
3484
|
return [];
|
|
3485
3485
|
}
|
|
@@ -3495,7 +3495,7 @@ function renderBoundedPath(context) {
|
|
|
3495
3495
|
}));
|
|
3496
3496
|
}
|
|
3497
3497
|
function renderRectangle(context) {
|
|
3498
|
-
const rx = context.shape.shapeType === "pill" ?
|
|
3498
|
+
const rx = context.shape.shapeType === "pill" ? chunkC25NWWIH_cjs.pillCornerRadius(context.width, context.height) : context.shape.shapeType === "rounded_rectangle" ? chunkC25NWWIH_cjs.finite(context.shape.cornerRadius, 8) : 0;
|
|
3499
3499
|
return [
|
|
3500
3500
|
{
|
|
3501
3501
|
...shapeNodeBase(context),
|
|
@@ -3524,7 +3524,7 @@ function renderSymbol(context) {
|
|
|
3524
3524
|
if (!context.shape.symbol || context.shape.symbol.points.length < 2) {
|
|
3525
3525
|
return renderRectangle(context);
|
|
3526
3526
|
}
|
|
3527
|
-
const tension =
|
|
3527
|
+
const tension = chunkC25NWWIH_cjs.finite(context.shape.symbol.tension, 0);
|
|
3528
3528
|
const points = context.shape.symbol.points.map(([x, y]) => ({
|
|
3529
3529
|
x: context.x + x * context.width,
|
|
3530
3530
|
y: context.y + y * context.height
|
|
@@ -3533,7 +3533,7 @@ function renderSymbol(context) {
|
|
|
3533
3533
|
{
|
|
3534
3534
|
...shapeNodeBase(context),
|
|
3535
3535
|
type: "path",
|
|
3536
|
-
d:
|
|
3536
|
+
d: chunkC25NWWIH_cjs.freeformPathData({ points, tension, closed: true }),
|
|
3537
3537
|
rotationCenter: context.rotationCenter,
|
|
3538
3538
|
detail: {
|
|
3539
3539
|
of: "symbolGeometry",
|
|
@@ -3608,7 +3608,7 @@ function renderShapeShaderSurface(context) {
|
|
|
3608
3608
|
id: `${context.id}-shader`,
|
|
3609
3609
|
type: "shader-surface",
|
|
3610
3610
|
order: context.order,
|
|
3611
|
-
bounds:
|
|
3611
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds(surfaceBounds, context.rotation, 0),
|
|
3612
3612
|
...surfaceBounds,
|
|
3613
3613
|
rotation: context.rotation,
|
|
3614
3614
|
shader: context.shape.shader,
|
|
@@ -3678,24 +3678,24 @@ function shapeDash(shape, strokeWidth) {
|
|
|
3678
3678
|
}
|
|
3679
3679
|
function shapeStyle(shape, diagnostics) {
|
|
3680
3680
|
const defaults = shapeDefaults(shape, diagnostics);
|
|
3681
|
-
const strokeWidth =
|
|
3681
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(shape.strokeWidth, defaults.strokeWidth);
|
|
3682
3682
|
const shadow = shape.shadowStyle ?? (shape.hasShadow ? { enabled: true, color: "#000000", opacity: 0.25, blur: 10, angle: 45, distance: 5 } : void 0);
|
|
3683
|
-
const angle =
|
|
3683
|
+
const angle = chunkC25NWWIH_cjs.finite(shadow?.angle, 45) * Math.PI / 180;
|
|
3684
3684
|
return {
|
|
3685
|
-
fill:
|
|
3686
|
-
stroke:
|
|
3685
|
+
fill: chunkC25NWWIH_cjs.paint(shape.fillColor, diagnostics, shape.id),
|
|
3686
|
+
stroke: chunkC25NWWIH_cjs.paint(shape.strokeColor, diagnostics, shape.id),
|
|
3687
3687
|
strokeWidth,
|
|
3688
3688
|
dash: shapeDash(shape, strokeWidth),
|
|
3689
3689
|
lineCap: shape.strokeStyle === "dotted" ? "round" : "butt",
|
|
3690
|
-
opacity:
|
|
3690
|
+
opacity: chunkC25NWWIH_cjs.finite(shape.opacity, defaults.opacity),
|
|
3691
3691
|
blur: shape.blur !== void 0 && shape.blur > 0 ? shape.blur : void 0,
|
|
3692
3692
|
blend: shape.blend,
|
|
3693
3693
|
shadow: shadow?.enabled ? {
|
|
3694
3694
|
color: shadow.color ?? "#000000",
|
|
3695
|
-
opacity:
|
|
3696
|
-
blur:
|
|
3697
|
-
dx: Math.cos(angle) *
|
|
3698
|
-
dy: Math.sin(angle) *
|
|
3695
|
+
opacity: chunkC25NWWIH_cjs.finite(shadow.opacity, 0.25),
|
|
3696
|
+
blur: chunkC25NWWIH_cjs.finite(shadow.blur, 10),
|
|
3697
|
+
dx: Math.cos(angle) * chunkC25NWWIH_cjs.finite(shadow.distance, 5),
|
|
3698
|
+
dy: Math.sin(angle) * chunkC25NWWIH_cjs.finite(shadow.distance, 5)
|
|
3699
3699
|
} : void 0
|
|
3700
3700
|
};
|
|
3701
3701
|
}
|
|
@@ -3771,11 +3771,11 @@ function renderShapeText(context, strokeWidth, measureText) {
|
|
|
3771
3771
|
if (!shape.text) {
|
|
3772
3772
|
return null;
|
|
3773
3773
|
}
|
|
3774
|
-
const fontSize =
|
|
3774
|
+
const fontSize = chunkC25NWWIH_cjs.finite(shape.fontSize, shapeDefaults(shape, []).fontSize);
|
|
3775
3775
|
const padding = shape.isText ? 0 : Math.max(8, strokeWidth * 2);
|
|
3776
|
-
const area = shape.shapeType === "person" ?
|
|
3776
|
+
const area = shape.shapeType === "person" ? chunkC25NWWIH_cjs.personLabelArea(x, y, width, height) : { x, y, width, height };
|
|
3777
3777
|
const textWidth = Math.max(0, area.width - padding * 2);
|
|
3778
|
-
const fontFamily2 = shape.fontFamily ||
|
|
3778
|
+
const fontFamily2 = shape.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT;
|
|
3779
3779
|
const metrics = measureText?.(fontFamily2, fontSize);
|
|
3780
3780
|
const textNode = {
|
|
3781
3781
|
type: "text",
|
|
@@ -3786,7 +3786,7 @@ function renderShapeText(context, strokeWidth, measureText) {
|
|
|
3786
3786
|
y: area.y + padding,
|
|
3787
3787
|
width: textWidth,
|
|
3788
3788
|
height: Math.max(0, area.height - padding * 2),
|
|
3789
|
-
lines:
|
|
3789
|
+
lines: chunkC25NWWIH_cjs.wrapText(shape.text, textWidth, fontSize, metrics),
|
|
3790
3790
|
fontFamily: fontFamily2,
|
|
3791
3791
|
fontSize,
|
|
3792
3792
|
fontWeight: shape.fontWeight ?? "normal",
|
|
@@ -3794,12 +3794,12 @@ function renderShapeText(context, strokeWidth, measureText) {
|
|
|
3794
3794
|
color: shape.textColor || "#111827",
|
|
3795
3795
|
align: shape.textAlign ?? "center",
|
|
3796
3796
|
verticalAlign: shape.textVerticalAlign ?? "middle",
|
|
3797
|
-
lineHeight:
|
|
3797
|
+
lineHeight: chunkC25NWWIH_cjs.finite(shape.lineHeight, 1.3),
|
|
3798
3798
|
rotation,
|
|
3799
3799
|
rotationCenter
|
|
3800
3800
|
};
|
|
3801
3801
|
if (hasBoldMarkup(shape.text)) {
|
|
3802
|
-
const { measure, spaceWidth } = metrics ??
|
|
3802
|
+
const { measure, spaceWidth } = metrics ?? chunkC25NWWIH_cjs.heuristicRichMeasure(fontSize);
|
|
3803
3803
|
textNode.richLines = wrapRichText(shape.text, textWidth, measure, spaceWidth);
|
|
3804
3804
|
}
|
|
3805
3805
|
return textNode;
|
|
@@ -3838,19 +3838,19 @@ function renderDoubleStroke(context, strokeWidth) {
|
|
|
3838
3838
|
return nodes;
|
|
3839
3839
|
}
|
|
3840
3840
|
function createRenderContext(shape, index, diagnostics) {
|
|
3841
|
-
const x =
|
|
3842
|
-
const y =
|
|
3843
|
-
const width = Math.max(0,
|
|
3844
|
-
const height = Math.max(0,
|
|
3845
|
-
const rotation =
|
|
3846
|
-
const strokeWidth =
|
|
3841
|
+
const x = chunkC25NWWIH_cjs.finite(shape.x, 0);
|
|
3842
|
+
const y = chunkC25NWWIH_cjs.finite(shape.y, 0);
|
|
3843
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.finite(shape.width, 100));
|
|
3844
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.finite(shape.height, 100));
|
|
3845
|
+
const rotation = chunkC25NWWIH_cjs.finite(shape.rotation, 0);
|
|
3846
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(shape.strokeWidth, 2);
|
|
3847
3847
|
return {
|
|
3848
3848
|
strokeWidth,
|
|
3849
3849
|
context: {
|
|
3850
3850
|
shape,
|
|
3851
3851
|
id: `shape-${shape.id}`,
|
|
3852
3852
|
order: 1e4 + index,
|
|
3853
|
-
bounds:
|
|
3853
|
+
bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, strokeWidth + (shape.hasShadow ? 20 : 2)),
|
|
3854
3854
|
rotation,
|
|
3855
3855
|
rotationCenter: { x: x + width / 2, y: y + height / 2 },
|
|
3856
3856
|
style: shapeStyle(shape, diagnostics),
|
|
@@ -3884,7 +3884,7 @@ function buildShape(shape, index, diagnostics, measureText) {
|
|
|
3884
3884
|
}
|
|
3885
3885
|
function buildShapes(shapes, diagnostics, measureText) {
|
|
3886
3886
|
return shapes.flatMap(
|
|
3887
|
-
(shape, index) =>
|
|
3887
|
+
(shape, index) => chunkC25NWWIH_cjs.tag(
|
|
3888
3888
|
buildShape(shape, index, diagnostics, measureText),
|
|
3889
3889
|
"shape",
|
|
3890
3890
|
shape.id,
|
|
@@ -3901,7 +3901,7 @@ function buildXAxisLabel(chart, layout, order) {
|
|
|
3901
3901
|
return null;
|
|
3902
3902
|
}
|
|
3903
3903
|
return {
|
|
3904
|
-
...
|
|
3904
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
3905
3905
|
role: "axis",
|
|
3906
3906
|
id: `chart-x-label-${chart.id}`,
|
|
3907
3907
|
order,
|
|
@@ -3911,7 +3911,7 @@ function buildXAxisLabel(chart, layout, order) {
|
|
|
3911
3911
|
chart,
|
|
3912
3912
|
align: "center"
|
|
3913
3913
|
}),
|
|
3914
|
-
prop:
|
|
3914
|
+
prop: chunkC25NWWIH_cjs.axisLabelProp("x")
|
|
3915
3915
|
};
|
|
3916
3916
|
}
|
|
3917
3917
|
function buildYAxisLabel(chart, layout, order) {
|
|
@@ -3919,7 +3919,7 @@ function buildYAxisLabel(chart, layout, order) {
|
|
|
3919
3919
|
return null;
|
|
3920
3920
|
}
|
|
3921
3921
|
return {
|
|
3922
|
-
...
|
|
3922
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
3923
3923
|
role: "axis",
|
|
3924
3924
|
id: `chart-y-label-${chart.id}`,
|
|
3925
3925
|
order,
|
|
@@ -3935,7 +3935,7 @@ function buildYAxisLabel(chart, layout, order) {
|
|
|
3935
3935
|
align: "center",
|
|
3936
3936
|
rotation: -90
|
|
3937
3937
|
}),
|
|
3938
|
-
prop:
|
|
3938
|
+
prop: chunkC25NWWIH_cjs.axisLabelProp("y")
|
|
3939
3939
|
};
|
|
3940
3940
|
}
|
|
3941
3941
|
function buildAxisLabels(chart, layout, order) {
|
|
@@ -3958,7 +3958,7 @@ function buildBoxplotSeriesYAxisTicks(chart, layout, order) {
|
|
|
3958
3958
|
return chart.series.map((series, index) => {
|
|
3959
3959
|
const centerY = layout.plot.y + (index + 0.5) * slotWidth;
|
|
3960
3960
|
return {
|
|
3961
|
-
...
|
|
3961
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
3962
3962
|
role: "axis",
|
|
3963
3963
|
id: `chart-y-tick-${chart.id}-${index}`,
|
|
3964
3964
|
order: order + index,
|
|
@@ -3968,7 +3968,7 @@ function buildBoxplotSeriesYAxisTicks(chart, layout, order) {
|
|
|
3968
3968
|
chart,
|
|
3969
3969
|
align: "right"
|
|
3970
3970
|
}),
|
|
3971
|
-
prop:
|
|
3971
|
+
prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
|
|
3972
3972
|
};
|
|
3973
3973
|
});
|
|
3974
3974
|
}
|
|
@@ -3994,7 +3994,7 @@ function isStackedLegendPosition(position) {
|
|
|
3994
3994
|
return position === "bottomLeft" || position === "bottomRight";
|
|
3995
3995
|
}
|
|
3996
3996
|
function legendItemWidths(chart) {
|
|
3997
|
-
return legendSeries(chart).map((item) => Math.max(42, item.label.length *
|
|
3997
|
+
return legendSeries(chart).map((item) => Math.max(42, item.label.length * chunkC25NWWIH_cjs.finite(chart.fontSize, 12) * 0.58 + 22));
|
|
3998
3998
|
}
|
|
3999
3999
|
function stackedLegendColumnWidth(chart) {
|
|
4000
4000
|
const widths = legendItemWidths(chart);
|
|
@@ -4047,9 +4047,9 @@ function renderLegendItem(render2, item) {
|
|
|
4047
4047
|
}
|
|
4048
4048
|
function createLegendSwatch(render2, item) {
|
|
4049
4049
|
const { chart, bounds, diagnostics } = render2;
|
|
4050
|
-
const fallback =
|
|
4050
|
+
const fallback = chunkC25NWWIH_cjs.CHART_COLORS[item.seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
4051
4051
|
const solidOnly = chart.chartType === "line";
|
|
4052
|
-
const color = solidOnly ?
|
|
4052
|
+
const color = solidOnly ? chunkC25NWWIH_cjs.representativeColor(item.series.color, fallback) : item.series.color ?? fallback;
|
|
4053
4053
|
return {
|
|
4054
4054
|
type: "rect",
|
|
4055
4055
|
id: `chart-legend-swatch-${chart.id}-${item.series.id}`,
|
|
@@ -4060,16 +4060,16 @@ function createLegendSwatch(render2, item) {
|
|
|
4060
4060
|
width: 10,
|
|
4061
4061
|
height: 10,
|
|
4062
4062
|
rx: 3,
|
|
4063
|
-
prop:
|
|
4063
|
+
prop: chunkC25NWWIH_cjs.seriesColorProp(item.series.id),
|
|
4064
4064
|
propKind: "color",
|
|
4065
4065
|
propSolidOnly: solidOnly,
|
|
4066
|
-
style: { fill:
|
|
4066
|
+
style: { fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id) }
|
|
4067
4067
|
};
|
|
4068
4068
|
}
|
|
4069
4069
|
function createLegendLabel(render2, item) {
|
|
4070
4070
|
const { chart, bounds } = render2;
|
|
4071
4071
|
return {
|
|
4072
|
-
...
|
|
4072
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4073
4073
|
role: "legend",
|
|
4074
4074
|
id: `chart-legend-${chart.id}-${item.series.id}`,
|
|
4075
4075
|
order: item.order + 1,
|
|
@@ -4078,7 +4078,7 @@ function createLegendLabel(render2, item) {
|
|
|
4078
4078
|
text: item.series.label,
|
|
4079
4079
|
chart
|
|
4080
4080
|
}),
|
|
4081
|
-
prop:
|
|
4081
|
+
prop: chunkC25NWWIH_cjs.seriesLabelProp(item.series.id)
|
|
4082
4082
|
};
|
|
4083
4083
|
}
|
|
4084
4084
|
|
|
@@ -4097,19 +4097,19 @@ function hasCartesianDecorations(chart) {
|
|
|
4097
4097
|
return !CHARTS_WITHOUT_CARTESIAN_DECORATIONS.has(chart.chartType);
|
|
4098
4098
|
}
|
|
4099
4099
|
function tickOffset(chart) {
|
|
4100
|
-
return hasCartesianDecorations(chart) ? Math.max(0,
|
|
4100
|
+
return hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.tickLength, 0)) : 0;
|
|
4101
4101
|
}
|
|
4102
4102
|
function xLabelOffset(chart) {
|
|
4103
|
-
return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0,
|
|
4103
|
+
return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.xLabelGap, 0)) : 0);
|
|
4104
4104
|
}
|
|
4105
4105
|
function yLabelOffset(chart) {
|
|
4106
|
-
return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0,
|
|
4106
|
+
return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.yLabelGap, 0)) : 0);
|
|
4107
4107
|
}
|
|
4108
4108
|
function isHorizontalBoxplot(chart) {
|
|
4109
4109
|
return chart.chartType === "boxplot" && chart.config?.orientation === "horizontal";
|
|
4110
4110
|
}
|
|
4111
4111
|
function boxplotCategoryLabelWidth(chart) {
|
|
4112
|
-
const fontSize =
|
|
4112
|
+
const fontSize = chunkC25NWWIH_cjs.finite(chart.fontSize, 12);
|
|
4113
4113
|
const longest = Math.max(0, ...chart.series.map((series) => (series.label || series.id).length));
|
|
4114
4114
|
return longest * fontSize * 0.58 + 16;
|
|
4115
4115
|
}
|
|
@@ -4121,18 +4121,18 @@ function treemapSideLegendSide(chart, showLegend) {
|
|
|
4121
4121
|
return chart.legendPosition === "left" ? "left" : chart.legendPosition === "right" ? "right" : null;
|
|
4122
4122
|
}
|
|
4123
4123
|
function barCategoryLabelWidth(chart) {
|
|
4124
|
-
const fontSize =
|
|
4124
|
+
const fontSize = chunkC25NWWIH_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12);
|
|
4125
4125
|
const categories = chart.config?.categories ?? [];
|
|
4126
4126
|
return Math.max(0, ...categories.map((category) => category.length)) * fontSize * 0.58 + 16;
|
|
4127
4127
|
}
|
|
4128
4128
|
function leftLabelWidth(chart) {
|
|
4129
|
-
if (chart.axisLabelSpace && chart.axisLabelSpace > 0 && (isHorizontalBoxplot(chart) ||
|
|
4129
|
+
if (chart.axisLabelSpace && chart.axisLabelSpace > 0 && (isHorizontalBoxplot(chart) || chunkC25NWWIH_cjs.isHorizontalBar(chart))) {
|
|
4130
4130
|
return chart.axisLabelSpace;
|
|
4131
4131
|
}
|
|
4132
4132
|
if (isHorizontalBoxplot(chart)) {
|
|
4133
4133
|
return boxplotCategoryLabelWidth(chart);
|
|
4134
4134
|
}
|
|
4135
|
-
if (
|
|
4135
|
+
if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
|
|
4136
4136
|
return chart.categoryAlign === "left" || chart.categoryAlign === "inside" ? 20 : barCategoryLabelWidth(chart);
|
|
4137
4137
|
}
|
|
4138
4138
|
if (chart.showValueAxis === false) {
|
|
@@ -4141,12 +4141,12 @@ function leftLabelWidth(chart) {
|
|
|
4141
4141
|
return chart.axisY.label ? 60 : 46;
|
|
4142
4142
|
}
|
|
4143
4143
|
function tiltedBottomRoom(chart) {
|
|
4144
|
-
const tilt =
|
|
4144
|
+
const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
|
|
4145
4145
|
if (tilt <= 0) {
|
|
4146
4146
|
return 0;
|
|
4147
4147
|
}
|
|
4148
|
-
const labels = chart.chartType === "bar" && !
|
|
4149
|
-
return labels.length > 0 ? Math.max(0,
|
|
4148
|
+
const labels = chart.chartType === "bar" && !chunkC25NWWIH_cjs.isHorizontalBar(chart) ? chart.config?.categories ?? [] : chart.chartType === "boxplot" && !isHorizontalBoxplot(chart) ? chart.series.map((series) => series.label || series.id) : [];
|
|
4149
|
+
return labels.length > 0 ? Math.max(0, chunkC25NWWIH_cjs.tiltedLabelRoom(chart, labels, tilt) - 18) : 0;
|
|
4150
4150
|
}
|
|
4151
4151
|
function decorations(chart) {
|
|
4152
4152
|
const showLabels = chart.showAxisLabels !== false;
|
|
@@ -4162,17 +4162,17 @@ function decorations(chart) {
|
|
|
4162
4162
|
const padLeft = tickY + (showLabels ? leftLabelWidth(chart) : 12) + (legendPosition === "bottomLeft" ? sideColumnWidth : 0) + (treemapSide === "left" ? TREEMAP_SIDE_LEGEND_WIDTH : 0);
|
|
4163
4163
|
const padRight = 24 + (legendPosition === "bottomRight" ? sideColumnWidth : 0) + (treemapSide === "right" ? TREEMAP_SIDE_LEGEND_WIDTH : 0);
|
|
4164
4164
|
const valueRow = chart.chartType === "bar" && chart.config?.showBarLabels === true && chart.config.barLabelPosition === "axis";
|
|
4165
|
-
const horizontalValueAxis =
|
|
4166
|
-
const basePadBottom = showLabels ?
|
|
4165
|
+
const horizontalValueAxis = chunkC25NWWIH_cjs.isHorizontalBar(chart) && chart.showValueAxis !== false;
|
|
4166
|
+
const basePadBottom = showLabels ? chunkC25NWWIH_cjs.isHorizontalBar(chart) ? horizontalValueAxis ? 34 : 12 : (chart.axisX.label ? 52 : 34) + (valueRow ? 18 : 0) : 12;
|
|
4167
4167
|
const hasColorBar = chart.chartType === "field" && showLegend && Boolean(chart.config?.scale?.stops.length);
|
|
4168
4168
|
const legendAtBottomRow = hasLegendItems && !legendAtTop && !legendStacked;
|
|
4169
4169
|
const padBottom = tickX + basePadBottom + (showLabels ? tiltedBottomRoom(chart) : 0) + (hasColorBar ? 44 : 0) + (legendAtBottomRow ? 16 + LEGEND_ROW_HEIGHT : 0);
|
|
4170
|
-
const titleHeight = chart.title ? Math.max(44, 20 +
|
|
4170
|
+
const titleHeight = chart.title ? Math.max(44, 20 + chunkC25NWWIH_cjs.finite(chart.titleSize, 14) * 1.6) : 0;
|
|
4171
4171
|
const padTop = titleHeight || (legendAtTop && hasLegendItems ? 44 : 24);
|
|
4172
4172
|
return {
|
|
4173
|
-
bounds:
|
|
4173
|
+
bounds: chunkC25NWWIH_cjs.boxBounds(
|
|
4174
4174
|
{ x: chart.x, y: chart.y, width: chart.width, height: chart.height },
|
|
4175
|
-
|
|
4175
|
+
chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1) + 2
|
|
4176
4176
|
),
|
|
4177
4177
|
plot: {
|
|
4178
4178
|
x: chart.x + padLeft,
|
|
@@ -4194,26 +4194,26 @@ function categoryLabels(chart, count) {
|
|
|
4194
4194
|
return Array.from({ length: count }, (_value, index) => String(index + 1));
|
|
4195
4195
|
}
|
|
4196
4196
|
function buildCategoricalXAxisTicks(chart, layout, order) {
|
|
4197
|
-
const count =
|
|
4197
|
+
const count = chunkC25NWWIH_cjs.barCategoryCount(chart);
|
|
4198
4198
|
const slotWidth = layout.plot.width / count;
|
|
4199
4199
|
const labels = categoryLabels(chart, count);
|
|
4200
4200
|
const editable = Boolean(chart.config?.categories?.length);
|
|
4201
|
-
const tilt =
|
|
4201
|
+
const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
|
|
4202
4202
|
const left = chart.categoryAlign === "left";
|
|
4203
4203
|
const groupGap = left ? Math.min(
|
|
4204
|
-
Math.max(0,
|
|
4204
|
+
Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)),
|
|
4205
4205
|
Math.max(0, slotWidth - 1)
|
|
4206
4206
|
) : 0;
|
|
4207
4207
|
return Array.from({ length: count }, (_value, index) => {
|
|
4208
4208
|
const centerX = layout.plot.x + (index + 0.5) * slotWidth;
|
|
4209
4209
|
if (tilt > 0) {
|
|
4210
4210
|
const text = labels[index] ?? String(index + 1);
|
|
4211
|
-
const { frame, rotation } =
|
|
4211
|
+
const { frame, rotation } = chunkC25NWWIH_cjs.labelBelowFrame(chart, text, tilt, {
|
|
4212
4212
|
x: centerX,
|
|
4213
4213
|
y: layout.plot.y + layout.plot.height + 4 + xLabelOffset(chart)
|
|
4214
4214
|
});
|
|
4215
4215
|
return {
|
|
4216
|
-
...
|
|
4216
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4217
4217
|
role: "axis",
|
|
4218
4218
|
id: `chart-x-tick-${chart.id}-${index}`,
|
|
4219
4219
|
order: order + index,
|
|
@@ -4224,11 +4224,11 @@ function buildCategoricalXAxisTicks(chart, layout, order) {
|
|
|
4224
4224
|
align: "right",
|
|
4225
4225
|
rotation
|
|
4226
4226
|
}),
|
|
4227
|
-
prop: editable ?
|
|
4227
|
+
prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
|
|
4228
4228
|
};
|
|
4229
4229
|
}
|
|
4230
4230
|
return {
|
|
4231
|
-
...
|
|
4231
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4232
4232
|
role: "axis",
|
|
4233
4233
|
id: `chart-x-tick-${chart.id}-${index}`,
|
|
4234
4234
|
order: order + index,
|
|
@@ -4243,24 +4243,24 @@ function buildCategoricalXAxisTicks(chart, layout, order) {
|
|
|
4243
4243
|
chart,
|
|
4244
4244
|
align: left ? "left" : "center"
|
|
4245
4245
|
}),
|
|
4246
|
-
prop: editable ?
|
|
4246
|
+
prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
|
|
4247
4247
|
};
|
|
4248
4248
|
});
|
|
4249
4249
|
}
|
|
4250
4250
|
function buildSeriesXAxisTicks(chart, layout, order) {
|
|
4251
4251
|
const count = Math.max(1, chart.series.length);
|
|
4252
4252
|
const slotWidth = layout.plot.width / count;
|
|
4253
|
-
const tilt =
|
|
4253
|
+
const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
|
|
4254
4254
|
return chart.series.map((series, index) => {
|
|
4255
4255
|
const centerX = layout.plot.x + (index + 0.5) * slotWidth;
|
|
4256
4256
|
if (tilt > 0) {
|
|
4257
4257
|
const text = series.label || series.id;
|
|
4258
|
-
const { frame, rotation } =
|
|
4258
|
+
const { frame, rotation } = chunkC25NWWIH_cjs.labelBelowFrame(chart, text, tilt, {
|
|
4259
4259
|
x: centerX,
|
|
4260
4260
|
y: layout.plot.y + layout.plot.height + 4 + xLabelOffset(chart)
|
|
4261
4261
|
});
|
|
4262
4262
|
return {
|
|
4263
|
-
...
|
|
4263
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4264
4264
|
role: "axis",
|
|
4265
4265
|
id: `chart-x-tick-${chart.id}-${index}`,
|
|
4266
4266
|
order: order + index,
|
|
@@ -4271,11 +4271,11 @@ function buildSeriesXAxisTicks(chart, layout, order) {
|
|
|
4271
4271
|
align: "right",
|
|
4272
4272
|
rotation
|
|
4273
4273
|
}),
|
|
4274
|
-
prop:
|
|
4274
|
+
prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
|
|
4275
4275
|
};
|
|
4276
4276
|
}
|
|
4277
4277
|
return {
|
|
4278
|
-
...
|
|
4278
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4279
4279
|
role: "axis",
|
|
4280
4280
|
id: `chart-x-tick-${chart.id}-${index}`,
|
|
4281
4281
|
order: order + index,
|
|
@@ -4290,16 +4290,16 @@ function buildSeriesXAxisTicks(chart, layout, order) {
|
|
|
4290
4290
|
chart,
|
|
4291
4291
|
align: "center"
|
|
4292
4292
|
}),
|
|
4293
|
-
prop:
|
|
4293
|
+
prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
|
|
4294
4294
|
};
|
|
4295
4295
|
});
|
|
4296
4296
|
}
|
|
4297
4297
|
|
|
4298
4298
|
// src/renderScene/charts/decorations/numericXAxis.ts
|
|
4299
4299
|
function buildNumericXAxisTicks(chart, layout, order) {
|
|
4300
|
-
return
|
|
4301
|
-
const x = layout.plot.x +
|
|
4302
|
-
return
|
|
4300
|
+
return chunkC25NWWIH_cjs.chartTicks(chart.axisX).map((tick, index) => {
|
|
4301
|
+
const x = layout.plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, layout.plot.width);
|
|
4302
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
4303
4303
|
role: "axis",
|
|
4304
4304
|
id: `chart-x-tick-${chart.id}-${tick}`,
|
|
4305
4305
|
order: order + index,
|
|
@@ -4314,9 +4314,9 @@ function buildNumericXAxisTicks(chart, layout, order) {
|
|
|
4314
4314
|
|
|
4315
4315
|
// src/renderScene/charts/decorations/numericYAxis.ts
|
|
4316
4316
|
function buildNumericYAxisTicks(chart, layout, order) {
|
|
4317
|
-
return
|
|
4318
|
-
const y = layout.plot.y + layout.plot.height -
|
|
4319
|
-
return
|
|
4317
|
+
return chunkC25NWWIH_cjs.chartTicks(chart.axisY).map((tick, index) => {
|
|
4318
|
+
const y = layout.plot.y + layout.plot.height - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, layout.plot.height);
|
|
4319
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
4320
4320
|
role: "axis",
|
|
4321
4321
|
id: `chart-y-tick-${chart.id}-${tick}`,
|
|
4322
4322
|
order: order + index,
|
|
@@ -4351,10 +4351,10 @@ function buildYAxisTicks(chart, layout, order) {
|
|
|
4351
4351
|
function xTickPositions(chart, layout) {
|
|
4352
4352
|
const { plot } = layout;
|
|
4353
4353
|
if (chart.chartType === "bar") {
|
|
4354
|
-
const count =
|
|
4354
|
+
const count = chunkC25NWWIH_cjs.barCategoryCount(chart);
|
|
4355
4355
|
return Array.from({ length: count }, (_value, index) => plot.x + (index + 0.5) * plot.width / count);
|
|
4356
4356
|
}
|
|
4357
|
-
return
|
|
4357
|
+
return chunkC25NWWIH_cjs.chartTicks(chart.axisX).map((tick) => plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, plot.width));
|
|
4358
4358
|
}
|
|
4359
4359
|
function axisLineDash(chart, width) {
|
|
4360
4360
|
if (chart.axisLineStyle === "dashed") {
|
|
@@ -4363,8 +4363,8 @@ function axisLineDash(chart, width) {
|
|
|
4363
4363
|
return chart.axisLineStyle === "dotted" ? { dash: [0.1, width * 3], lineCap: "round" } : {};
|
|
4364
4364
|
}
|
|
4365
4365
|
function buildAxisLines(chart, layout, order) {
|
|
4366
|
-
const lineWidth =
|
|
4367
|
-
const tickLength =
|
|
4366
|
+
const lineWidth = chunkC25NWWIH_cjs.finite(chart.axisLineWidth, 0);
|
|
4367
|
+
const tickLength = chunkC25NWWIH_cjs.finite(chart.tickLength, 0);
|
|
4368
4368
|
if (lineWidth <= 0 && tickLength <= 0) {
|
|
4369
4369
|
return [];
|
|
4370
4370
|
}
|
|
@@ -4385,20 +4385,20 @@ function buildAxisLines(chart, layout, order) {
|
|
|
4385
4385
|
}
|
|
4386
4386
|
add("line-x", `M ${plot.x} ${bottom} L ${plot.x + plot.width} ${bottom}`);
|
|
4387
4387
|
}
|
|
4388
|
-
if (tickLength > 0 &&
|
|
4389
|
-
|
|
4390
|
-
const x = plot.x +
|
|
4388
|
+
if (tickLength > 0 && chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
|
|
4389
|
+
chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick) => {
|
|
4390
|
+
const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
|
|
4391
4391
|
add(`tick-v-${tick}`, `M ${x} ${bottom} L ${x} ${bottom + tickLength}`);
|
|
4392
4392
|
});
|
|
4393
|
-
const rows =
|
|
4393
|
+
const rows = chunkC25NWWIH_cjs.horizontalRows(chart, plot);
|
|
4394
4394
|
for (let index = 0; index < rows.count; index++) {
|
|
4395
|
-
const y =
|
|
4395
|
+
const y = chunkC25NWWIH_cjs.rowTop(rows, plot, index) + rows.labelRow + rows.barsHeight / 2;
|
|
4396
4396
|
add(`tick-c-${index}`, `M ${plot.x - tickLength} ${y} L ${plot.x} ${y}`);
|
|
4397
4397
|
}
|
|
4398
4398
|
}
|
|
4399
|
-
if (tickLength > 0 && !isHorizontalBoxplot2(chart) && !
|
|
4400
|
-
|
|
4401
|
-
const y = bottom -
|
|
4399
|
+
if (tickLength > 0 && !isHorizontalBoxplot2(chart) && !chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
|
|
4400
|
+
chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick) => {
|
|
4401
|
+
const y = bottom - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.height);
|
|
4402
4402
|
add(`tick-y-${tick}`, `M ${plot.x - tickLength} ${y} L ${plot.x} ${y}`);
|
|
4403
4403
|
});
|
|
4404
4404
|
xTickPositions(chart, layout).forEach((x, index) => {
|
|
@@ -4413,14 +4413,14 @@ function categoryNames(chart, count) {
|
|
|
4413
4413
|
}
|
|
4414
4414
|
function buildHorizontalBarAxes(chart, layout, order) {
|
|
4415
4415
|
const { plot, bounds } = layout;
|
|
4416
|
-
const rows =
|
|
4416
|
+
const rows = chunkC25NWWIH_cjs.horizontalRows(chart, plot);
|
|
4417
4417
|
const above = chart.categoryAlign === "left";
|
|
4418
4418
|
const inside = chart.categoryAlign === "inside";
|
|
4419
4419
|
const editable = Boolean(chart.config?.categories?.length);
|
|
4420
4420
|
const nodes = categoryNames(chart, rows.count).map((name, index) => {
|
|
4421
|
-
const top =
|
|
4421
|
+
const top = chunkC25NWWIH_cjs.rowTop(rows, plot, index);
|
|
4422
4422
|
return {
|
|
4423
|
-
...
|
|
4423
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4424
4424
|
role: "axis",
|
|
4425
4425
|
id: `chart-y-category-${chart.id}-${index}`,
|
|
4426
4426
|
order: order + index,
|
|
@@ -4430,19 +4430,19 @@ function buildHorizontalBarAxes(chart, layout, order) {
|
|
|
4430
4430
|
chart,
|
|
4431
4431
|
align: above || inside ? "left" : "right"
|
|
4432
4432
|
}),
|
|
4433
|
-
prop: editable ?
|
|
4433
|
+
prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
|
|
4434
4434
|
};
|
|
4435
4435
|
});
|
|
4436
4436
|
if (chart.showValueAxis !== false) {
|
|
4437
|
-
|
|
4438
|
-
const x = plot.x +
|
|
4437
|
+
chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick, index) => {
|
|
4438
|
+
const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
|
|
4439
4439
|
nodes.push(
|
|
4440
|
-
|
|
4440
|
+
chunkC25NWWIH_cjs.chartText({
|
|
4441
4441
|
role: "axis",
|
|
4442
4442
|
id: `chart-x-tick-${chart.id}-${tick}`,
|
|
4443
4443
|
order: order + rows.count + index,
|
|
4444
4444
|
bounds,
|
|
4445
|
-
frame: { x: x - 20, y: plot.y + plot.height + 4 +
|
|
4445
|
+
frame: { x: x - 20, y: plot.y + plot.height + 4 + chunkC25NWWIH_cjs.finite(chart.tickLength, 0), width: 40, height: 18 },
|
|
4446
4446
|
text: String(tick),
|
|
4447
4447
|
chart,
|
|
4448
4448
|
align: "center"
|
|
@@ -4461,7 +4461,7 @@ function buildChartAxes(chart, layout, order) {
|
|
|
4461
4461
|
return lines;
|
|
4462
4462
|
}
|
|
4463
4463
|
order += lines.length;
|
|
4464
|
-
if (
|
|
4464
|
+
if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
|
|
4465
4465
|
return [...lines, ...buildHorizontalBarAxes(chart, layout, order)];
|
|
4466
4466
|
}
|
|
4467
4467
|
const xTicks = buildXAxisTicks(chart, layout, order);
|
|
@@ -4539,7 +4539,7 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
|
|
|
4539
4539
|
const centerX = plot.x + plot.width / 2;
|
|
4540
4540
|
const centerY = plot.y + plot.height / 2;
|
|
4541
4541
|
const radius = Math.max(0, Math.min(plot.width, plot.height) / 2);
|
|
4542
|
-
const width =
|
|
4542
|
+
const width = chunkC25NWWIH_cjs.finite(chart.gridWidth, 1);
|
|
4543
4543
|
if (chart.gridLineStyle === "dotted") {
|
|
4544
4544
|
return buildDottedCircularGrid(chart, bounds, order, centerX, centerY, radius, width);
|
|
4545
4545
|
}
|
|
@@ -4550,7 +4550,7 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
|
|
|
4550
4550
|
...gridLineDashStyle(chart, width)
|
|
4551
4551
|
};
|
|
4552
4552
|
const nodes = [];
|
|
4553
|
-
|
|
4553
|
+
chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min).forEach((tick) => {
|
|
4554
4554
|
const ringRadius = radius * ringRatio(chart, tick);
|
|
4555
4555
|
nodes.push({
|
|
4556
4556
|
type: "ellipse",
|
|
@@ -4564,8 +4564,8 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
|
|
|
4564
4564
|
style
|
|
4565
4565
|
});
|
|
4566
4566
|
});
|
|
4567
|
-
|
|
4568
|
-
const angle =
|
|
4567
|
+
chunkC25NWWIH_cjs.chartTicks(chart.axisX).forEach((tick) => {
|
|
4568
|
+
const angle = chunkC25NWWIH_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, tick);
|
|
4569
4569
|
const edgeX = centerX + Math.cos(angle) * radius;
|
|
4570
4570
|
const edgeY = centerY + Math.sin(angle) * radius;
|
|
4571
4571
|
nodes.push({
|
|
@@ -4580,13 +4580,13 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
|
|
|
4580
4580
|
return nodes;
|
|
4581
4581
|
}
|
|
4582
4582
|
function buildDottedCircularGrid(chart, bounds, order, centerX, centerY, radius, width) {
|
|
4583
|
-
const yTicks =
|
|
4584
|
-
const xTicks =
|
|
4583
|
+
const yTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min);
|
|
4584
|
+
const xTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisX);
|
|
4585
4585
|
const nodes = [];
|
|
4586
4586
|
yTicks.forEach((yTick) => {
|
|
4587
4587
|
const ringRadius = radius * ringRatio(chart, yTick);
|
|
4588
4588
|
xTicks.forEach((xTick) => {
|
|
4589
|
-
const angle =
|
|
4589
|
+
const angle = chunkC25NWWIH_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, xTick);
|
|
4590
4590
|
const x = centerX + Math.cos(angle) * ringRadius;
|
|
4591
4591
|
const y = centerY + Math.sin(angle) * ringRadius;
|
|
4592
4592
|
const id = `chart-grid-dot-${chart.id}-${xTick}-${yTick}`;
|
|
@@ -4608,8 +4608,8 @@ function buildChartGrid(chart, plot, bounds, order) {
|
|
|
4608
4608
|
if (chart.gridShape === "circle" && CIRCULAR_GRID_CHART_TYPES.has(chart.chartType)) {
|
|
4609
4609
|
return buildCircularChartGrid(chart, plot, bounds, order);
|
|
4610
4610
|
}
|
|
4611
|
-
const width =
|
|
4612
|
-
if (
|
|
4611
|
+
const width = chunkC25NWWIH_cjs.finite(chart.gridWidth, 1);
|
|
4612
|
+
if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
|
|
4613
4613
|
return buildHorizontalBarGrid(chart, plot, bounds, order, width);
|
|
4614
4614
|
}
|
|
4615
4615
|
const clip = chart.chartType === "field" ? fieldSurfaceClip(chart, plot) : void 0;
|
|
@@ -4624,8 +4624,8 @@ function buildChartGrid(chart, plot, bounds, order) {
|
|
|
4624
4624
|
clip
|
|
4625
4625
|
};
|
|
4626
4626
|
const nodes = [];
|
|
4627
|
-
(chart.gridAxes === "y" ? [] :
|
|
4628
|
-
const x = plot.x +
|
|
4627
|
+
(chart.gridAxes === "y" ? [] : chunkC25NWWIH_cjs.chartTicks(chart.axisX)).forEach((tick) => {
|
|
4628
|
+
const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, plot.width);
|
|
4629
4629
|
nodes.push({
|
|
4630
4630
|
type: "path",
|
|
4631
4631
|
id: `chart-grid-x-${chart.id}-${tick}`,
|
|
@@ -4635,8 +4635,8 @@ function buildChartGrid(chart, plot, bounds, order) {
|
|
|
4635
4635
|
style
|
|
4636
4636
|
});
|
|
4637
4637
|
});
|
|
4638
|
-
(chart.gridAxes === "x" ? [] :
|
|
4639
|
-
const y = plot.y + plot.height -
|
|
4638
|
+
(chart.gridAxes === "x" ? [] : chunkC25NWWIH_cjs.chartTicks(chart.axisY)).forEach((tick) => {
|
|
4639
|
+
const y = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.height);
|
|
4640
4640
|
nodes.push({
|
|
4641
4641
|
type: "path",
|
|
4642
4642
|
id: `chart-grid-y-${chart.id}-${tick}`,
|
|
@@ -4658,8 +4658,8 @@ function buildHorizontalBarGrid(chart, plot, bounds, order, width) {
|
|
|
4658
4658
|
strokeWidth: width,
|
|
4659
4659
|
...chart.gridLineStyle === "dotted" ? { dash: [0.1, width * 3], lineCap: "round" } : gridLineDashStyle(chart, width)
|
|
4660
4660
|
};
|
|
4661
|
-
return
|
|
4662
|
-
const x = plot.x +
|
|
4661
|
+
return chunkC25NWWIH_cjs.chartTicks(chart.axisY).map((tick, index) => {
|
|
4662
|
+
const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
|
|
4663
4663
|
return {
|
|
4664
4664
|
type: "path",
|
|
4665
4665
|
id: `chart-grid-x-${chart.id}-${tick}`,
|
|
@@ -4671,13 +4671,13 @@ function buildHorizontalBarGrid(chart, plot, bounds, order, width) {
|
|
|
4671
4671
|
});
|
|
4672
4672
|
}
|
|
4673
4673
|
function buildDottedRectGrid(chart, plot, bounds, order, width, clip) {
|
|
4674
|
-
const xTicks =
|
|
4675
|
-
const yTicks =
|
|
4674
|
+
const xTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisX);
|
|
4675
|
+
const yTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisY);
|
|
4676
4676
|
const nodes = [];
|
|
4677
4677
|
xTicks.forEach((xTick) => {
|
|
4678
|
-
const x = plot.x +
|
|
4678
|
+
const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(xTick, chart.axisX, plot.width);
|
|
4679
4679
|
yTicks.forEach((yTick) => {
|
|
4680
|
-
const y = plot.y + plot.height -
|
|
4680
|
+
const y = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(yTick, chart.axisY, plot.height);
|
|
4681
4681
|
const id = `chart-grid-dot-${chart.id}-${xTick}-${yTick}`;
|
|
4682
4682
|
nodes.push(createGridDot(chart, id, order + nodes.length, bounds, x, y, width, clip));
|
|
4683
4683
|
});
|
|
@@ -4700,7 +4700,7 @@ function createChartRuleMarks(render2) {
|
|
|
4700
4700
|
return {
|
|
4701
4701
|
rule,
|
|
4702
4702
|
color: rule.color || render2.chart.strokeColor || "#475569",
|
|
4703
|
-
y: render2.plot.y + render2.plot.height -
|
|
4703
|
+
y: render2.plot.y + render2.plot.height - chunkC25NWWIH_cjs.mapChartValue(rule.at, render2.chart.axisY, render2.plot.height),
|
|
4704
4704
|
lineOrder,
|
|
4705
4705
|
labelOrder
|
|
4706
4706
|
};
|
|
@@ -4720,7 +4720,7 @@ function createChartRuleLine(render2, mark) {
|
|
|
4720
4720
|
order: mark.lineOrder,
|
|
4721
4721
|
bounds: render2.bounds,
|
|
4722
4722
|
d: `M ${render2.plot.x} ${mark.y} L ${render2.plot.x + render2.plot.width} ${mark.y}`,
|
|
4723
|
-
prop:
|
|
4723
|
+
prop: chunkC25NWWIH_cjs.ruleAtProp(mark.rule.id),
|
|
4724
4724
|
propKind: "value",
|
|
4725
4725
|
style: {
|
|
4726
4726
|
fill: { kind: "none" },
|
|
@@ -4731,9 +4731,9 @@ function createChartRuleLine(render2, mark) {
|
|
|
4731
4731
|
};
|
|
4732
4732
|
}
|
|
4733
4733
|
function createChartRuleLabel(render2, mark) {
|
|
4734
|
-
const fontSize = Math.max(9,
|
|
4734
|
+
const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(render2.chart.fontSize, 12) - 2);
|
|
4735
4735
|
return {
|
|
4736
|
-
...
|
|
4736
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4737
4737
|
id: `chart-rule-label-${render2.chart.id}-${mark.rule.id}`,
|
|
4738
4738
|
order: mark.labelOrder ?? mark.lineOrder + 1,
|
|
4739
4739
|
bounds: render2.bounds,
|
|
@@ -4742,19 +4742,19 @@ function createChartRuleLabel(render2, mark) {
|
|
|
4742
4742
|
chart: render2.chart
|
|
4743
4743
|
}),
|
|
4744
4744
|
color: mark.color,
|
|
4745
|
-
prop:
|
|
4745
|
+
prop: chunkC25NWWIH_cjs.ruleTextProp(mark.rule.id)
|
|
4746
4746
|
};
|
|
4747
4747
|
}
|
|
4748
4748
|
|
|
4749
4749
|
// src/renderScene/charts/chartBackdrop.ts
|
|
4750
4750
|
function chartImageRect(chart) {
|
|
4751
|
-
const inset =
|
|
4751
|
+
const inset = chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1) / 2;
|
|
4752
4752
|
return {
|
|
4753
4753
|
x: chart.x + inset,
|
|
4754
4754
|
y: chart.y + inset,
|
|
4755
4755
|
width: Math.max(1, chart.width - inset * 2),
|
|
4756
4756
|
height: Math.max(1, chart.height - inset * 2),
|
|
4757
|
-
rx: Math.max(0,
|
|
4757
|
+
rx: Math.max(0, chunkC25NWWIH_cjs.finite(chart.cornerRadius, 12) - inset)
|
|
4758
4758
|
};
|
|
4759
4759
|
}
|
|
4760
4760
|
function buildChartBackdrop(chart, bounds, order) {
|
|
@@ -4796,7 +4796,7 @@ function buildChartBackdrop(chart, bounds, order) {
|
|
|
4796
4796
|
// src/renderScene/charts/renderers/bar/glass.ts
|
|
4797
4797
|
function createGlassBackdropNodes(context, id, d) {
|
|
4798
4798
|
const { chart, bounds, nextOrder } = context;
|
|
4799
|
-
const blur =
|
|
4799
|
+
const blur = chunkC25NWWIH_cjs.finite(chart.config?.barGlassBlur, 0);
|
|
4800
4800
|
if (blur <= 0 || !chart.fillImage) {
|
|
4801
4801
|
return [];
|
|
4802
4802
|
}
|
|
@@ -4814,7 +4814,7 @@ function createGlassBackdropNodes(context, id, d) {
|
|
|
4814
4814
|
href: chart.fillImage.url,
|
|
4815
4815
|
style: {
|
|
4816
4816
|
blur,
|
|
4817
|
-
saturate:
|
|
4817
|
+
saturate: chunkC25NWWIH_cjs.finite(chart.config?.barGlassSaturation, 1),
|
|
4818
4818
|
clip: { type: "path", d },
|
|
4819
4819
|
pointerEvents: "none"
|
|
4820
4820
|
}
|
|
@@ -4865,8 +4865,8 @@ function createBarGlowNode(context, id, d, color, glow, bounds = context.bounds)
|
|
|
4865
4865
|
bounds,
|
|
4866
4866
|
d,
|
|
4867
4867
|
style: {
|
|
4868
|
-
fill:
|
|
4869
|
-
shadow: { color:
|
|
4868
|
+
fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
|
|
4869
|
+
shadow: { color: chunkC25NWWIH_cjs.representativeColor(color, "#ffffff"), opacity: 0.9, blur: glow, dx: 0, dy: 0 },
|
|
4870
4870
|
pointerEvents: "none"
|
|
4871
4871
|
}
|
|
4872
4872
|
};
|
|
@@ -4877,14 +4877,14 @@ function barLabelsEnabled(context) {
|
|
|
4877
4877
|
return context.chart.config?.showBarLabels === true;
|
|
4878
4878
|
}
|
|
4879
4879
|
function resolvePlacement(target, size) {
|
|
4880
|
-
const fits = target.frame.height >= size.height +
|
|
4880
|
+
const fits = target.frame.height >= size.height + chunkC25NWWIH_cjs.BAR_LABEL.gap * 2;
|
|
4881
4881
|
return target.placement !== "outside" && !fits ? "outside" : target.placement;
|
|
4882
4882
|
}
|
|
4883
4883
|
function labelTop(placement, frame, height) {
|
|
4884
4884
|
if (placement === "outside") {
|
|
4885
|
-
return frame.y - height -
|
|
4885
|
+
return frame.y - height - chunkC25NWWIH_cjs.BAR_LABEL.gap;
|
|
4886
4886
|
}
|
|
4887
|
-
return placement === "inside" ? frame.y +
|
|
4887
|
+
return placement === "inside" ? frame.y + chunkC25NWWIH_cjs.BAR_LABEL.gap : frame.y + frame.height / 2 - height / 2;
|
|
4888
4888
|
}
|
|
4889
4889
|
function createPillNode(context, id, box, color) {
|
|
4890
4890
|
const { chart, bounds, diagnostics, nextOrder } = context;
|
|
@@ -4894,11 +4894,11 @@ function createPillNode(context, id, box, color) {
|
|
|
4894
4894
|
id: `${id}-pill`,
|
|
4895
4895
|
order: nextOrder(),
|
|
4896
4896
|
bounds,
|
|
4897
|
-
d:
|
|
4897
|
+
d: chunkC25NWWIH_cjs.pillPath(box.left, box.top, box.width, box.height),
|
|
4898
4898
|
style: {
|
|
4899
|
-
fill: config?.barLabelPillColor ?
|
|
4900
|
-
stroke:
|
|
4901
|
-
strokeWidth:
|
|
4899
|
+
fill: config?.barLabelPillColor ? chunkC25NWWIH_cjs.paint(config.barLabelPillColor, diagnostics, chart.id) : { kind: "none" },
|
|
4900
|
+
stroke: chunkC25NWWIH_cjs.paint(config?.barLabelBorderColor ?? color, diagnostics, chart.id),
|
|
4901
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(config?.barLabelBorderWidth, 1),
|
|
4902
4902
|
pointerEvents: "none"
|
|
4903
4903
|
}
|
|
4904
4904
|
};
|
|
@@ -4907,7 +4907,7 @@ function createTextNode(context, id, box, text, placement, fontSize, color) {
|
|
|
4907
4907
|
const { chart, bounds, nextOrder } = context;
|
|
4908
4908
|
const config = chart.config;
|
|
4909
4909
|
return {
|
|
4910
|
-
...
|
|
4910
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4911
4911
|
id,
|
|
4912
4912
|
order: nextOrder(),
|
|
4913
4913
|
bounds,
|
|
@@ -4928,7 +4928,7 @@ function createAxisValueNode(context, target, text, fontSize) {
|
|
|
4928
4928
|
const config = chart.config;
|
|
4929
4929
|
const top = plot.y + plot.height + 4 + 16 + Math.max(0, chart.tickLength ?? 0);
|
|
4930
4930
|
return {
|
|
4931
|
-
...
|
|
4931
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
4932
4932
|
id: target.id,
|
|
4933
4933
|
order: nextOrder(),
|
|
4934
4934
|
bounds,
|
|
@@ -4937,7 +4937,7 @@ function createAxisValueNode(context, target, text, fontSize) {
|
|
|
4937
4937
|
y: target.frame.y + target.frame.height / 2 - fontSize * 0.6,
|
|
4938
4938
|
width: plot.width - 14,
|
|
4939
4939
|
height: fontSize * 1.2
|
|
4940
|
-
} : { x: plot.x, y: target.frame.y -
|
|
4940
|
+
} : { x: plot.x, y: target.frame.y - chunkC25NWWIH_cjs.CATEGORY_LABEL_ROW, width: plot.width, height: fontSize * 1.2 } : { x: target.frame.x, y: top, width: target.frame.width, height: fontSize * 1.2 },
|
|
4941
4941
|
text,
|
|
4942
4942
|
chart,
|
|
4943
4943
|
align: target.horizontal ? "right" : chart.categoryAlign === "left" ? "left" : "center"
|
|
@@ -4951,24 +4951,24 @@ function createAxisValueNode(context, target, text, fontSize) {
|
|
|
4951
4951
|
}
|
|
4952
4952
|
function horizontalPlacement(target, size) {
|
|
4953
4953
|
const requested = target.placement === "axis" ? "outside" : target.placement;
|
|
4954
|
-
const fits = target.frame.width >= size.width +
|
|
4954
|
+
const fits = target.frame.width >= size.width + chunkC25NWWIH_cjs.BAR_LABEL.gap * 2;
|
|
4955
4955
|
return requested !== "outside" && !fits ? "outside" : requested;
|
|
4956
4956
|
}
|
|
4957
4957
|
function horizontalBox(target, size, placement) {
|
|
4958
4958
|
const { frame } = target;
|
|
4959
|
-
const left = placement === "outside" ? frame.x + frame.width +
|
|
4959
|
+
const left = placement === "outside" ? frame.x + frame.width + chunkC25NWWIH_cjs.BAR_LABEL.gap : placement === "inside" ? frame.x + frame.width - size.width - chunkC25NWWIH_cjs.BAR_LABEL.gap : frame.x + frame.width / 2 - size.width / 2;
|
|
4960
4960
|
return { ...size, left, top: frame.y + frame.height / 2 - size.height / 2 };
|
|
4961
4961
|
}
|
|
4962
4962
|
function createBarLabelNodes(context, target) {
|
|
4963
4963
|
const { chart } = context;
|
|
4964
4964
|
const config = chart.config;
|
|
4965
|
-
const fontSize = Math.max(8,
|
|
4966
|
-
const text =
|
|
4965
|
+
const fontSize = Math.max(8, chunkC25NWWIH_cjs.finite(config?.barLabelFontSize, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)));
|
|
4966
|
+
const text = chunkC25NWWIH_cjs.formatBarLabel(target.value, config?.barLabelFormat);
|
|
4967
4967
|
if (target.placement === "axis") {
|
|
4968
4968
|
return [createAxisValueNode(context, target, text, fontSize)];
|
|
4969
4969
|
}
|
|
4970
4970
|
const pill = config?.barLabelPill === true;
|
|
4971
|
-
const size =
|
|
4971
|
+
const size = chunkC25NWWIH_cjs.barLabelSize(text, fontSize, pill);
|
|
4972
4972
|
const placement = target.horizontal ? horizontalPlacement(target, size) : resolvePlacement(target, size);
|
|
4973
4973
|
const box = target.horizontal ? horizontalBox(target, size, placement) : {
|
|
4974
4974
|
...size,
|
|
@@ -5009,7 +5009,7 @@ function barTrackClip(context, frame) {
|
|
|
5009
5009
|
}
|
|
5010
5010
|
return {
|
|
5011
5011
|
type: "path",
|
|
5012
|
-
d:
|
|
5012
|
+
d: chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, context.chart.config?.barCornerRadius ?? 2)
|
|
5013
5013
|
};
|
|
5014
5014
|
}
|
|
5015
5015
|
function barTrackEnabled(context) {
|
|
@@ -5019,8 +5019,8 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
|
|
|
5019
5019
|
const { chart, bounds, diagnostics, nextOrder } = context;
|
|
5020
5020
|
const config = chart.config;
|
|
5021
5021
|
const radius = config?.barCornerRadius ?? 2;
|
|
5022
|
-
const segments =
|
|
5023
|
-
const d = segments > 0 ?
|
|
5022
|
+
const segments = chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
|
|
5023
|
+
const d = segments > 0 ? chunkC25NWWIH_cjs.segmentedBarPath(frame, orientation, segments, chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4), radius, 1, true) : chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, radius);
|
|
5024
5024
|
const nodes = [
|
|
5025
5025
|
{
|
|
5026
5026
|
type: "path",
|
|
@@ -5029,7 +5029,7 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
|
|
|
5029
5029
|
bounds,
|
|
5030
5030
|
d,
|
|
5031
5031
|
style: {
|
|
5032
|
-
fill:
|
|
5032
|
+
fill: chunkC25NWWIH_cjs.paint(config?.barTrackColor ?? chart.gridColor ?? "#e2e8f0", diagnostics, chart.id),
|
|
5033
5033
|
pointerEvents: "none"
|
|
5034
5034
|
}
|
|
5035
5035
|
}
|
|
@@ -5045,13 +5045,13 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
|
|
|
5045
5045
|
frame.y,
|
|
5046
5046
|
frame.width,
|
|
5047
5047
|
frame.height,
|
|
5048
|
-
|
|
5049
|
-
Math.max(MIN_HATCH_SPACING,
|
|
5048
|
+
chunkC25NWWIH_cjs.finite(config.barTrackHatchAngle, DEFAULT_HATCH.angle),
|
|
5049
|
+
Math.max(MIN_HATCH_SPACING, chunkC25NWWIH_cjs.finite(config.barTrackHatchSpacing, DEFAULT_HATCH.spacing))
|
|
5050
5050
|
),
|
|
5051
5051
|
style: {
|
|
5052
5052
|
fill: { kind: "none" },
|
|
5053
|
-
stroke:
|
|
5054
|
-
strokeWidth:
|
|
5053
|
+
stroke: chunkC25NWWIH_cjs.paint(config.barTrackHatchColor ?? chart.gridColor ?? "#cbd5e1", diagnostics, chart.id),
|
|
5054
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(config.barTrackHatchWidth, DEFAULT_HATCH.width),
|
|
5055
5055
|
pointerEvents: "none",
|
|
5056
5056
|
clip: { type: "path", d }
|
|
5057
5057
|
}
|
|
@@ -5098,23 +5098,23 @@ function groupedShape(context, frame) {
|
|
|
5098
5098
|
const { chart, plot } = context;
|
|
5099
5099
|
const config = chart.config;
|
|
5100
5100
|
const radius = config?.barCornerRadius ?? 2;
|
|
5101
|
-
const segments =
|
|
5101
|
+
const segments = chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
|
|
5102
5102
|
if (segments > 0) {
|
|
5103
|
-
return
|
|
5103
|
+
return chunkC25NWWIH_cjs.segmentedBarPath(
|
|
5104
5104
|
{ x: frame.x, y: plot.y, width: frame.width, height: plot.height },
|
|
5105
5105
|
"vertical",
|
|
5106
5106
|
segments,
|
|
5107
|
-
|
|
5107
|
+
chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4),
|
|
5108
5108
|
radius,
|
|
5109
5109
|
frame.height / plot.height,
|
|
5110
5110
|
config?.barSegmentSnap !== false
|
|
5111
5111
|
);
|
|
5112
5112
|
}
|
|
5113
|
-
return
|
|
5113
|
+
return chunkC25NWWIH_cjs.barPath(frame.x, frame.y, frame.width, frame.height, radius, config?.barRoundedBottom === true);
|
|
5114
5114
|
}
|
|
5115
5115
|
function createGroupedGlow(context, mark) {
|
|
5116
5116
|
const { chart } = context;
|
|
5117
|
-
const glow =
|
|
5117
|
+
const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
|
|
5118
5118
|
if (glow <= 0 || mark.frame.height <= 0) {
|
|
5119
5119
|
return [];
|
|
5120
5120
|
}
|
|
@@ -5125,10 +5125,10 @@ function createGroupedGlow(context, mark) {
|
|
|
5125
5125
|
}
|
|
5126
5126
|
function createGroupedBarLayout(context) {
|
|
5127
5127
|
const { chart, plot } = context;
|
|
5128
|
-
const valueCount =
|
|
5128
|
+
const valueCount = chunkC25NWWIH_cjs.barCategoryCount(chart);
|
|
5129
5129
|
const slotWidth = plot.width / valueCount;
|
|
5130
|
-
const groupGap = Math.min(Math.max(0,
|
|
5131
|
-
const barGap = Math.max(0,
|
|
5130
|
+
const groupGap = Math.min(Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
|
|
5131
|
+
const barGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGap, 2));
|
|
5132
5132
|
return {
|
|
5133
5133
|
slotWidth,
|
|
5134
5134
|
seriesWidth: Math.max(1, (slotWidth - groupGap) / Math.max(1, chart.series.length)),
|
|
@@ -5138,10 +5138,10 @@ function createGroupedBarLayout(context) {
|
|
|
5138
5138
|
}
|
|
5139
5139
|
function createSeriesBarMarks(context, layout, series, seriesIndex) {
|
|
5140
5140
|
const { chart, plot } = context;
|
|
5141
|
-
const seriesColor2 = series.color ??
|
|
5141
|
+
const seriesColor2 = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
5142
5142
|
return series.values.map((value, valueIndex) => {
|
|
5143
5143
|
const numericValue = Array.isArray(value) ? value[1] : value;
|
|
5144
|
-
const height = Math.max(0,
|
|
5144
|
+
const height = Math.max(0, chunkC25NWWIH_cjs.mapChartValue(numericValue, chart.axisY, plot.height));
|
|
5145
5145
|
return {
|
|
5146
5146
|
seriesId: series.id,
|
|
5147
5147
|
valueIndex,
|
|
@@ -5175,10 +5175,10 @@ function createGroupedBarNodes(context, mark) {
|
|
|
5175
5175
|
const radius = chart.config?.barCornerRadius ?? 2;
|
|
5176
5176
|
const { x, width } = mark.frame;
|
|
5177
5177
|
const path = groupedShape(context, mark.frame);
|
|
5178
|
-
const fill2 =
|
|
5179
|
-
const stroke =
|
|
5180
|
-
const strokeWidth =
|
|
5181
|
-
const shadow =
|
|
5178
|
+
const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
|
|
5179
|
+
const stroke = chunkC25NWWIH_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
|
|
5180
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 0);
|
|
5181
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
5182
5182
|
const shadowCaster = shadow ? {
|
|
5183
5183
|
type: "path",
|
|
5184
5184
|
id: `chart-bar-shadow-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
|
|
@@ -5208,10 +5208,10 @@ function createGroupedBarNodes(context, mark) {
|
|
|
5208
5208
|
valueIndex: mark.valueIndex,
|
|
5209
5209
|
mark: "bar",
|
|
5210
5210
|
radius,
|
|
5211
|
-
colorProp:
|
|
5211
|
+
colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(mark.seriesId, mark.valueIndex),
|
|
5212
5212
|
hasColorOverride: mark.hasColorOverride
|
|
5213
5213
|
},
|
|
5214
|
-
prop:
|
|
5214
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(mark.seriesId, mark.valueIndex),
|
|
5215
5215
|
style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
|
|
5216
5216
|
};
|
|
5217
5217
|
const glass = createGlassBackdropNodes(context, `${mark.seriesId}-${mark.valueIndex}`, path);
|
|
@@ -5222,15 +5222,15 @@ function createGroupedBarError(context, mark) {
|
|
|
5222
5222
|
return null;
|
|
5223
5223
|
}
|
|
5224
5224
|
const { chart, plot, bounds, nextOrder } = context;
|
|
5225
|
-
const [lower, upper] =
|
|
5226
|
-
return
|
|
5225
|
+
const [lower, upper] = chunkC25NWWIH_cjs.errorBarRange(mark.value, mark.error);
|
|
5226
|
+
return chunkC25NWWIH_cjs.createVerticalErrorWhiskerNode({
|
|
5227
5227
|
id: `chart-bar-error-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
|
|
5228
5228
|
order: nextOrder(),
|
|
5229
5229
|
bounds,
|
|
5230
5230
|
geometry: {
|
|
5231
5231
|
centerX: mark.frame.x + mark.frame.width / 2,
|
|
5232
|
-
startY: plot.y + plot.height -
|
|
5233
|
-
endY: plot.y + plot.height -
|
|
5232
|
+
startY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(lower, chart.axisY, plot.height),
|
|
5233
|
+
endY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(upper, chart.axisY, plot.height)
|
|
5234
5234
|
},
|
|
5235
5235
|
color: chart.textColor ?? "#0f172a",
|
|
5236
5236
|
valueReference: { seriesId: mark.seriesId, valueIndex: mark.valueIndex }
|
|
@@ -5240,9 +5240,9 @@ function createGroupedBarError(context, mark) {
|
|
|
5240
5240
|
// src/renderScene/charts/renderers/bar/horizontal.ts
|
|
5241
5241
|
function barFrame(context, rows, seriesIndex, valueIndex, value) {
|
|
5242
5242
|
const { chart, plot } = context;
|
|
5243
|
-
const top =
|
|
5243
|
+
const top = chunkC25NWWIH_cjs.rowTop(rows, plot, valueIndex) + rows.labelRow;
|
|
5244
5244
|
if (context.stackedMode) {
|
|
5245
|
-
const segment =
|
|
5245
|
+
const segment = chunkC25NWWIH_cjs.stackedSegment(chart, context.stackedMode, valueIndex, seriesIndex, plot.width);
|
|
5246
5246
|
const start = Math.min(segment.pixelStart, segment.pixelEnd);
|
|
5247
5247
|
return {
|
|
5248
5248
|
x: plot.x + start,
|
|
@@ -5251,27 +5251,27 @@ function barFrame(context, rows, seriesIndex, valueIndex, value) {
|
|
|
5251
5251
|
height: rows.barsHeight
|
|
5252
5252
|
};
|
|
5253
5253
|
}
|
|
5254
|
-
const barGap = Math.max(0,
|
|
5254
|
+
const barGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGap, 2));
|
|
5255
5255
|
const seriesHeight = rows.barsHeight / Math.max(1, chart.series.length);
|
|
5256
|
-
const width = Math.max(0,
|
|
5256
|
+
const width = Math.max(0, chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.width));
|
|
5257
5257
|
return { x: plot.x, y: top + seriesIndex * seriesHeight, width, height: Math.max(1, seriesHeight - barGap) };
|
|
5258
5258
|
}
|
|
5259
5259
|
function barPath2(context, frame) {
|
|
5260
5260
|
const { chart, plot } = context;
|
|
5261
5261
|
const config = chart.config;
|
|
5262
|
-
const segments = context.stackedMode && chart.series.length > 1 ? 0 :
|
|
5262
|
+
const segments = context.stackedMode && chart.series.length > 1 ? 0 : chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
|
|
5263
5263
|
if (segments > 0) {
|
|
5264
|
-
return
|
|
5264
|
+
return chunkC25NWWIH_cjs.segmentedBarPath(
|
|
5265
5265
|
{ x: plot.x, y: frame.y, width: plot.width, height: frame.height },
|
|
5266
5266
|
"horizontal",
|
|
5267
5267
|
segments,
|
|
5268
|
-
|
|
5268
|
+
chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4),
|
|
5269
5269
|
config?.barCornerRadius ?? 2,
|
|
5270
5270
|
frame.width / plot.width,
|
|
5271
5271
|
config?.barSegmentSnap !== false
|
|
5272
5272
|
);
|
|
5273
5273
|
}
|
|
5274
|
-
return
|
|
5274
|
+
return chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, config?.barCornerRadius ?? 2);
|
|
5275
5275
|
}
|
|
5276
5276
|
function markOf(context, rows, series, seriesIndex, valueIndex, value) {
|
|
5277
5277
|
const { plot } = context;
|
|
@@ -5291,16 +5291,16 @@ function markOf(context, rows, series, seriesIndex, valueIndex, value) {
|
|
|
5291
5291
|
maxY: frame.y + frame.height
|
|
5292
5292
|
},
|
|
5293
5293
|
path: barPath2(context, frame),
|
|
5294
|
-
color: series.colors?.[valueIndex] ?? series.color ??
|
|
5294
|
+
color: series.colors?.[valueIndex] ?? series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length]
|
|
5295
5295
|
};
|
|
5296
5296
|
}
|
|
5297
5297
|
function barNodes(context, mark) {
|
|
5298
5298
|
const { chart, diagnostics, nextOrder } = context;
|
|
5299
5299
|
const config = chart.config;
|
|
5300
|
-
const stroke =
|
|
5301
|
-
const strokeWidth =
|
|
5302
|
-
const shadow =
|
|
5303
|
-
const fill2 =
|
|
5300
|
+
const stroke = chunkC25NWWIH_cjs.paint(config?.barBorderColor || "#000000", diagnostics, chart.id);
|
|
5301
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(config?.barBorderWidth, 0);
|
|
5302
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
5303
|
+
const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
|
|
5304
5304
|
const nodes = [...createGlassBackdropNodes(context, mark.id, mark.path)];
|
|
5305
5305
|
if (shadow) {
|
|
5306
5306
|
nodes.push({
|
|
@@ -5324,7 +5324,7 @@ function barNodes(context, mark) {
|
|
|
5324
5324
|
valueIndex: mark.valueIndex,
|
|
5325
5325
|
mark: "bar",
|
|
5326
5326
|
radius: config?.barCornerRadius ?? 2,
|
|
5327
|
-
colorProp:
|
|
5327
|
+
colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(mark.series.id, mark.valueIndex),
|
|
5328
5328
|
hasColorOverride: mark.series.colors?.[mark.valueIndex] != null
|
|
5329
5329
|
},
|
|
5330
5330
|
style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
|
|
@@ -5354,7 +5354,7 @@ function pushBar(context, rows, layers, series, seriesIndex, valueIndex, value,
|
|
|
5354
5354
|
layers.tracks.push(...createBarTrackNodes(context, mark.id, mark.trackFrame, "horizontal"));
|
|
5355
5355
|
}
|
|
5356
5356
|
layers.bars.push(...barNodes(context, mark));
|
|
5357
|
-
const glow =
|
|
5357
|
+
const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
|
|
5358
5358
|
if (glow > 0 && mark.frame.width > 0) {
|
|
5359
5359
|
layers.glows.push(
|
|
5360
5360
|
createBarGlowNode(context, `chart-bar-glow-${chart.id}-${mark.id}`, mark.path, mark.color, glow, mark.bounds)
|
|
@@ -5363,7 +5363,7 @@ function pushBar(context, rows, layers, series, seriesIndex, valueIndex, value,
|
|
|
5363
5363
|
layers.labels.push(...labelNodes2(context, mark, highest));
|
|
5364
5364
|
}
|
|
5365
5365
|
function renderHorizontalBars(context) {
|
|
5366
|
-
const rows =
|
|
5366
|
+
const rows = chunkC25NWWIH_cjs.horizontalRows(context.chart, context.plot);
|
|
5367
5367
|
const layers = { tracks: [], bars: [], glows: [], labels: [] };
|
|
5368
5368
|
context.chart.series.forEach((series, seriesIndex) => {
|
|
5369
5369
|
const numeric = series.values.map((value) => typeof value === "number" ? value : value[1]);
|
|
@@ -5378,8 +5378,8 @@ function renderHorizontalBars(context) {
|
|
|
5378
5378
|
// src/renderScene/charts/renderers/bar/stacked.ts
|
|
5379
5379
|
function slotOf(context, mode) {
|
|
5380
5380
|
const { chart, plot } = context;
|
|
5381
|
-
const slotWidth = plot.width /
|
|
5382
|
-
const groupGap = Math.min(Math.max(0,
|
|
5381
|
+
const slotWidth = plot.width / chunkC25NWWIH_cjs.barCategoryCount(chart);
|
|
5382
|
+
const groupGap = Math.min(Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
|
|
5383
5383
|
return {
|
|
5384
5384
|
slotWidth,
|
|
5385
5385
|
groupGap,
|
|
@@ -5390,19 +5390,19 @@ function slotOf(context, mode) {
|
|
|
5390
5390
|
}
|
|
5391
5391
|
function pathOf(context, x, y, height, slot, radius) {
|
|
5392
5392
|
const { chart, plot } = context;
|
|
5393
|
-
const segments = chart.series.length === 1 ?
|
|
5393
|
+
const segments = chart.series.length === 1 ? chunkC25NWWIH_cjs.finite(chart.config?.barSegments, 0) : 0;
|
|
5394
5394
|
if (segments > 0) {
|
|
5395
|
-
return
|
|
5395
|
+
return chunkC25NWWIH_cjs.segmentedBarPath(
|
|
5396
5396
|
{ x, y: plot.y, width: slot.barWidth, height: plot.height },
|
|
5397
5397
|
"vertical",
|
|
5398
5398
|
segments,
|
|
5399
|
-
|
|
5399
|
+
chunkC25NWWIH_cjs.finite(chart.config?.barSegmentGap, 4),
|
|
5400
5400
|
radius,
|
|
5401
5401
|
height / plot.height,
|
|
5402
5402
|
chart.config?.barSegmentSnap !== false
|
|
5403
5403
|
);
|
|
5404
5404
|
}
|
|
5405
|
-
return
|
|
5405
|
+
return chunkC25NWWIH_cjs.barPath(x, y, slot.barWidth, height, radius, chart.config?.barRoundedBottom === true);
|
|
5406
5406
|
}
|
|
5407
5407
|
function pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame) {
|
|
5408
5408
|
const { chart } = context;
|
|
@@ -5424,7 +5424,7 @@ function pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame
|
|
|
5424
5424
|
}
|
|
5425
5425
|
function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
|
|
5426
5426
|
const { chart, plot } = context;
|
|
5427
|
-
const segment =
|
|
5427
|
+
const segment = chunkC25NWWIH_cjs.stackedSegment(chart, mode, valueIndex, seriesIndex, plot.height);
|
|
5428
5428
|
const radius = slot.outerSeriesIndex === null || seriesIndex === slot.outerSeriesIndex ? slot.cornerRadius : 0;
|
|
5429
5429
|
const x = plot.x + valueIndex * slot.slotWidth + slot.groupGap / 2;
|
|
5430
5430
|
const y = plot.y + plot.height - Math.max(segment.pixelStart, segment.pixelEnd);
|
|
@@ -5433,7 +5433,7 @@ function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
|
|
|
5433
5433
|
series,
|
|
5434
5434
|
valueIndex,
|
|
5435
5435
|
radius,
|
|
5436
|
-
color: series.colors?.[valueIndex] ?? series.color ??
|
|
5436
|
+
color: series.colors?.[valueIndex] ?? series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length],
|
|
5437
5437
|
x,
|
|
5438
5438
|
y,
|
|
5439
5439
|
height,
|
|
@@ -5444,10 +5444,10 @@ function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
|
|
|
5444
5444
|
function segmentNodes(context, mark) {
|
|
5445
5445
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
5446
5446
|
const { series, valueIndex, path } = mark;
|
|
5447
|
-
const fill2 =
|
|
5448
|
-
const stroke =
|
|
5449
|
-
const strokeWidth =
|
|
5450
|
-
const shadow =
|
|
5447
|
+
const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
|
|
5448
|
+
const stroke = chunkC25NWWIH_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
|
|
5449
|
+
const strokeWidth = chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 0);
|
|
5450
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
5451
5451
|
const nodes = [];
|
|
5452
5452
|
if (shadow) {
|
|
5453
5453
|
const plotClip = `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z`;
|
|
@@ -5479,10 +5479,10 @@ function segmentNodes(context, mark) {
|
|
|
5479
5479
|
valueIndex,
|
|
5480
5480
|
mark: "bar",
|
|
5481
5481
|
radius: mark.radius,
|
|
5482
|
-
colorProp:
|
|
5482
|
+
colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(series.id, valueIndex),
|
|
5483
5483
|
hasColorOverride: series.colors?.[valueIndex] != null
|
|
5484
5484
|
},
|
|
5485
|
-
prop:
|
|
5485
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, valueIndex),
|
|
5486
5486
|
style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
|
|
5487
5487
|
});
|
|
5488
5488
|
return nodes;
|
|
@@ -5496,7 +5496,7 @@ function pushSegment(context, mode, layers, slot, series, seriesIndex, valueInde
|
|
|
5496
5496
|
layers.bars.push(...segmentNodes(context, mark));
|
|
5497
5497
|
const frame = { x: mark.x, y: mark.y, width: slot.barWidth, height: mark.height };
|
|
5498
5498
|
pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame);
|
|
5499
|
-
const glow =
|
|
5499
|
+
const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
|
|
5500
5500
|
if (glow > 0) {
|
|
5501
5501
|
layers.glows.push(
|
|
5502
5502
|
createBarGlowNode(context, `chart-bar-glow-${chart.id}-${series.id}-${valueIndex}`, mark.path, mark.color, glow)
|
|
@@ -5507,7 +5507,7 @@ function renderStackedBars(context, mode) {
|
|
|
5507
5507
|
const { chart } = context;
|
|
5508
5508
|
const layers = { tracks: [], bars: [], glows: [], labels: [] };
|
|
5509
5509
|
const slot = slotOf(context, mode);
|
|
5510
|
-
const valueCount =
|
|
5510
|
+
const valueCount = chunkC25NWWIH_cjs.barCategoryCount(chart);
|
|
5511
5511
|
for (let valueIndex = 0; valueIndex < valueCount; valueIndex++) {
|
|
5512
5512
|
chart.series.forEach((series, seriesIndex) => {
|
|
5513
5513
|
pushSegment(context, mode, layers, slot, series, seriesIndex, valueIndex);
|
|
@@ -5522,7 +5522,7 @@ function isSeriesMax2(values, index) {
|
|
|
5522
5522
|
|
|
5523
5523
|
// src/renderScene/charts/renderers/bar.ts
|
|
5524
5524
|
function renderBar(context) {
|
|
5525
|
-
if (
|
|
5525
|
+
if (chunkC25NWWIH_cjs.isHorizontalBar(context.chart)) {
|
|
5526
5526
|
return renderHorizontalBars(context);
|
|
5527
5527
|
}
|
|
5528
5528
|
if (context.stackedMode) {
|
|
@@ -5537,7 +5537,7 @@ function createBoxplotLayout(context) {
|
|
|
5537
5537
|
const orientation = chart.config?.orientation ?? "vertical";
|
|
5538
5538
|
const boxCount = Math.max(1, chart.series.length);
|
|
5539
5539
|
const slotWidth = (orientation === "horizontal" ? plot.height : plot.width) / boxCount;
|
|
5540
|
-
const borderColor =
|
|
5540
|
+
const borderColor = chunkC25NWWIH_cjs.representativeColor(chart.config?.barBorderColor, "#000000");
|
|
5541
5541
|
const widthFraction = Math.min(1, Math.max(0.05, chart.config?.boxWidth ?? 0.6));
|
|
5542
5542
|
return {
|
|
5543
5543
|
orientation,
|
|
@@ -5546,15 +5546,15 @@ function createBoxplotLayout(context) {
|
|
|
5546
5546
|
cornerRadius: chart.config?.barCornerRadius ?? 2,
|
|
5547
5547
|
showPoints: chart.config?.showBoxplotPoints ?? true,
|
|
5548
5548
|
borderColor,
|
|
5549
|
-
borderWidth:
|
|
5550
|
-
whiskerWidth: Math.max(0,
|
|
5551
|
-
medianWidth: Math.max(0,
|
|
5549
|
+
borderWidth: chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 1),
|
|
5550
|
+
whiskerWidth: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxWhiskerWidth, 1)),
|
|
5551
|
+
medianWidth: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxMedianWidth, 2)),
|
|
5552
5552
|
medianColor: chart.config?.boxMedianColor ?? borderColor,
|
|
5553
5553
|
whiskerColor: chart.config?.boxWhiskerColor,
|
|
5554
|
-
capSize: Math.max(0,
|
|
5555
|
-
pointSize: Math.max(0,
|
|
5556
|
-
pointOpacity: Math.min(1, Math.max(0,
|
|
5557
|
-
jitter: Math.max(0,
|
|
5554
|
+
capSize: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxCapSize, 0.4)),
|
|
5555
|
+
pointSize: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxPointSize, 3)),
|
|
5556
|
+
pointOpacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxPointOpacity, 0.7))),
|
|
5557
|
+
jitter: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxJitter, 1))
|
|
5558
5558
|
};
|
|
5559
5559
|
}
|
|
5560
5560
|
|
|
@@ -5565,7 +5565,7 @@ function boxplotPoint(orientation, center, value) {
|
|
|
5565
5565
|
function createBoxplotGeometry(context, layout, seriesIndex, stats) {
|
|
5566
5566
|
const { chart, plot } = context;
|
|
5567
5567
|
const { orientation } = layout;
|
|
5568
|
-
const valueAt = (value) => orientation === "horizontal" ? plot.x +
|
|
5568
|
+
const valueAt = (value) => orientation === "horizontal" ? plot.x + chunkC25NWWIH_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.height);
|
|
5569
5569
|
const center = plot[orientation === "horizontal" ? "y" : "x"] + seriesIndex * layout.slotWidth + layout.slotWidth / 2;
|
|
5570
5570
|
return {
|
|
5571
5571
|
center,
|
|
@@ -5580,7 +5580,7 @@ function createBoxplotGeometry(context, layout, seriesIndex, stats) {
|
|
|
5580
5580
|
// src/renderScene/charts/renderers/boxplot/points.ts
|
|
5581
5581
|
function renderSamplePoints(context, layout, mark) {
|
|
5582
5582
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
5583
|
-
const valueAt = (value) => layout.orientation === "horizontal" ? plot.x +
|
|
5583
|
+
const valueAt = (value) => layout.orientation === "horizontal" ? plot.x + chunkC25NWWIH_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.height);
|
|
5584
5584
|
if (layout.pointSize <= 0) {
|
|
5585
5585
|
return [];
|
|
5586
5586
|
}
|
|
@@ -5596,7 +5596,7 @@ function renderSamplePoints(context, layout, mark) {
|
|
|
5596
5596
|
cy: y,
|
|
5597
5597
|
rx: layout.pointSize,
|
|
5598
5598
|
ry: layout.pointSize,
|
|
5599
|
-
style: { fill:
|
|
5599
|
+
style: { fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id), opacity: layout.pointOpacity }
|
|
5600
5600
|
};
|
|
5601
5601
|
});
|
|
5602
5602
|
}
|
|
@@ -5620,7 +5620,7 @@ function renderBoxAndWhiskers(context, layout, mark) {
|
|
|
5620
5620
|
}
|
|
5621
5621
|
function whiskerColor(layout, mark) {
|
|
5622
5622
|
if (layout.whiskerColor === "series") {
|
|
5623
|
-
return
|
|
5623
|
+
return chunkC25NWWIH_cjs.representativeColor(mark.color, layout.borderColor);
|
|
5624
5624
|
}
|
|
5625
5625
|
return layout.whiskerColor;
|
|
5626
5626
|
}
|
|
@@ -5702,7 +5702,7 @@ function createBoxNode(context, layout, mark) {
|
|
|
5702
5702
|
height,
|
|
5703
5703
|
rx: layout.cornerRadius,
|
|
5704
5704
|
style: {
|
|
5705
|
-
fill:
|
|
5705
|
+
fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
|
|
5706
5706
|
stroke: { kind: "solid", color: layout.borderColor },
|
|
5707
5707
|
strokeWidth: layout.borderWidth
|
|
5708
5708
|
}
|
|
@@ -5711,12 +5711,12 @@ function createBoxNode(context, layout, mark) {
|
|
|
5711
5711
|
|
|
5712
5712
|
// src/renderScene/charts/renderers/boxplot/series.ts
|
|
5713
5713
|
function renderBoxplotSeries(context, layout, series, seriesIndex) {
|
|
5714
|
-
const stats =
|
|
5714
|
+
const stats = chunkC25NWWIH_cjs.computeBoxplotStats(series.values);
|
|
5715
5715
|
if (!stats) {
|
|
5716
5716
|
return [];
|
|
5717
5717
|
}
|
|
5718
5718
|
const geometry = createBoxplotGeometry(context, layout, seriesIndex, stats);
|
|
5719
|
-
const color = series.color ??
|
|
5719
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
5720
5720
|
const mark = {
|
|
5721
5721
|
id: `${context.chart.id}-${series.id}`,
|
|
5722
5722
|
series,
|
|
@@ -5778,21 +5778,21 @@ function metricComponent(chart, point) {
|
|
|
5778
5778
|
}
|
|
5779
5779
|
function customPointPosition(context, value) {
|
|
5780
5780
|
return {
|
|
5781
|
-
x: context.plot.x +
|
|
5782
|
-
y: context.plot.y + context.plot.height -
|
|
5781
|
+
x: context.plot.x + chunkC25NWWIH_cjs.mapChartValue(value[0], context.chart.axisX, context.plot.width),
|
|
5782
|
+
y: context.plot.y + context.plot.height - chunkC25NWWIH_cjs.mapChartValue(value[1], context.chart.axisY, context.plot.height)
|
|
5783
5783
|
};
|
|
5784
5784
|
}
|
|
5785
5785
|
function customSeriesStyle(context, series, seriesIndex) {
|
|
5786
|
-
const color = series.color ??
|
|
5786
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
5787
5787
|
return {
|
|
5788
|
-
fill:
|
|
5788
|
+
fill: chunkC25NWWIH_cjs.paint(color, context.diagnostics, context.chart.id),
|
|
5789
5789
|
stroke: series.stroke ? { kind: "solid", color: series.stroke } : void 0,
|
|
5790
|
-
strokeWidth: series.stroke ?
|
|
5790
|
+
strokeWidth: series.stroke ? chunkC25NWWIH_cjs.finite(series.strokeWidth, 1) : void 0
|
|
5791
5791
|
};
|
|
5792
5792
|
}
|
|
5793
5793
|
function createCustomSymbolMark(context, mark) {
|
|
5794
5794
|
const symbol = mark.series.symbol;
|
|
5795
|
-
const size =
|
|
5795
|
+
const size = chunkC25NWWIH_cjs.finite(mark.series.size, 3);
|
|
5796
5796
|
const scale = symbol?.normalized ? size * 2 : 1;
|
|
5797
5797
|
const offset = symbol?.normalized ? 0.5 : 0;
|
|
5798
5798
|
const points = (symbol?.points ?? []).map(([x, y]) => ({
|
|
@@ -5804,12 +5804,12 @@ function createCustomSymbolMark(context, mark) {
|
|
|
5804
5804
|
id: customMarkId(context.chart, mark.series, mark.valueIndex),
|
|
5805
5805
|
order: context.nextOrder(),
|
|
5806
5806
|
bounds: context.bounds,
|
|
5807
|
-
d:
|
|
5807
|
+
d: chunkC25NWWIH_cjs.freeformPathData({ points, tension: chunkC25NWWIH_cjs.finite(symbol?.tension, 0), closed: true }),
|
|
5808
5808
|
style: mark.style
|
|
5809
5809
|
};
|
|
5810
5810
|
}
|
|
5811
5811
|
function createCustomPointMark(context, mark) {
|
|
5812
|
-
const radius =
|
|
5812
|
+
const radius = chunkC25NWWIH_cjs.finite(mark.series.size, 3);
|
|
5813
5813
|
return {
|
|
5814
5814
|
type: "ellipse",
|
|
5815
5815
|
id: customMarkId(context.chart, mark.series, mark.valueIndex),
|
|
@@ -5833,7 +5833,7 @@ function renderConnectedPairs(context) {
|
|
|
5833
5833
|
const zones = chart.config?.zones ?? [];
|
|
5834
5834
|
const betterColor = zones[0]?.color ?? "#10b981";
|
|
5835
5835
|
const worseColor = zones[1]?.color ?? "#ec4899";
|
|
5836
|
-
const tieColor = zones[2]?.color ??
|
|
5836
|
+
const tieColor = zones[2]?.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
|
|
5837
5837
|
const reverse = Boolean(chart.config?.reverseComparison);
|
|
5838
5838
|
const count = Math.min(beforeValues.length, afterValues.length);
|
|
5839
5839
|
const categories = chart.config?.categories ?? [];
|
|
@@ -5848,7 +5848,7 @@ function renderConnectedPairs(context) {
|
|
|
5848
5848
|
const better = reverse ? afterMetric < beforeMetric : afterMetric > beforeMetric;
|
|
5849
5849
|
const worse = reverse ? afterMetric > beforeMetric : afterMetric < beforeMetric;
|
|
5850
5850
|
const comparisonColor = better ? betterColor : worse ? worseColor : tieColor;
|
|
5851
|
-
const radius =
|
|
5851
|
+
const radius = chunkC25NWWIH_cjs.finite(afterSeries.size, 3);
|
|
5852
5852
|
nodes.push(createConnectorLine(context, index, beforePoint, afterPoint, comparisonColor));
|
|
5853
5853
|
nodes.push(
|
|
5854
5854
|
createCustomPointMark(context, {
|
|
@@ -5856,9 +5856,9 @@ function renderConnectedPairs(context) {
|
|
|
5856
5856
|
valueIndex: index,
|
|
5857
5857
|
point: beforePoint,
|
|
5858
5858
|
style: {
|
|
5859
|
-
fill:
|
|
5859
|
+
fill: chunkC25NWWIH_cjs.paint(chart.config?.customBeforeFill ?? chart.gridColor ?? "#e2e8f0", context.diagnostics, chart.id),
|
|
5860
5860
|
stroke: { kind: "solid", color: chart.config?.customBeforeStroke ?? HOLLOW_POINT_STROKE },
|
|
5861
|
-
strokeWidth:
|
|
5861
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.customBeforeStrokeWidth, 1.5)
|
|
5862
5862
|
}
|
|
5863
5863
|
})
|
|
5864
5864
|
);
|
|
@@ -5868,7 +5868,7 @@ function renderConnectedPairs(context) {
|
|
|
5868
5868
|
valueIndex: index,
|
|
5869
5869
|
point: afterPoint,
|
|
5870
5870
|
style: {
|
|
5871
|
-
fill:
|
|
5871
|
+
fill: chunkC25NWWIH_cjs.paint(comparisonColor, context.diagnostics, chart.id),
|
|
5872
5872
|
stroke: void 0,
|
|
5873
5873
|
strokeWidth: void 0
|
|
5874
5874
|
}
|
|
@@ -5895,7 +5895,7 @@ function createConnectorLine(context, index, from, to, color) {
|
|
|
5895
5895
|
style: {
|
|
5896
5896
|
fill: { kind: "none" },
|
|
5897
5897
|
stroke: { kind: "solid", color },
|
|
5898
|
-
strokeWidth:
|
|
5898
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.customConnectorWidth, 2),
|
|
5899
5899
|
opacity: chart.config?.customConnectorOpacity,
|
|
5900
5900
|
dash: connectorDash(chart.config?.customConnectorDash)
|
|
5901
5901
|
}
|
|
@@ -5916,7 +5916,7 @@ function createConnectorLabel(context, index, beforePoint, afterPoint, radius, t
|
|
|
5916
5916
|
height: 16
|
|
5917
5917
|
};
|
|
5918
5918
|
return {
|
|
5919
|
-
...
|
|
5919
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
5920
5920
|
id: `chart-custom-label-${chart.id}-${index}`,
|
|
5921
5921
|
order: nextOrder(),
|
|
5922
5922
|
bounds,
|
|
@@ -5925,7 +5925,7 @@ function createConnectorLabel(context, index, beforePoint, afterPoint, radius, t
|
|
|
5925
5925
|
chart,
|
|
5926
5926
|
align: horizontal ? "left" : "center"
|
|
5927
5927
|
}),
|
|
5928
|
-
fontSize: Math.max(6,
|
|
5928
|
+
fontSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.customLabelSize, Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) - 2)),
|
|
5929
5929
|
...chart.config?.customLabelColor ? { color: chart.config.customLabelColor } : {}
|
|
5930
5930
|
};
|
|
5931
5931
|
}
|
|
@@ -5937,8 +5937,8 @@ function classifyFieldData(context) {
|
|
|
5937
5937
|
const vectorSeries = chart.series.filter((series) => tupleSize(series.values[0]) === 4);
|
|
5938
5938
|
const scalarSamples = scalarSeries.flatMap(
|
|
5939
5939
|
(series) => series.values.map(([x, y, value]) => ({
|
|
5940
|
-
x:
|
|
5941
|
-
y: plot.height -
|
|
5940
|
+
x: chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width),
|
|
5941
|
+
y: plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height),
|
|
5942
5942
|
value
|
|
5943
5943
|
}))
|
|
5944
5944
|
);
|
|
@@ -6002,20 +6002,20 @@ function createLegendLabels(context, minimum, maximum, geometry) {
|
|
|
6002
6002
|
const { chart, bounds, nextOrder } = context;
|
|
6003
6003
|
const y = geometry.y + geometry.height + 3;
|
|
6004
6004
|
return [
|
|
6005
|
-
|
|
6005
|
+
chunkC25NWWIH_cjs.chartText({
|
|
6006
6006
|
id: `chart-field-colorbar-min-${chart.id}`,
|
|
6007
6007
|
order: nextOrder(),
|
|
6008
6008
|
bounds,
|
|
6009
6009
|
frame: { x: geometry.x, y, width: 80, height: 16 },
|
|
6010
|
-
text:
|
|
6010
|
+
text: chunkC25NWWIH_cjs.formatFieldValue(minimum),
|
|
6011
6011
|
chart
|
|
6012
6012
|
}),
|
|
6013
|
-
|
|
6013
|
+
chunkC25NWWIH_cjs.chartText({
|
|
6014
6014
|
id: `chart-field-colorbar-max-${chart.id}`,
|
|
6015
6015
|
order: nextOrder(),
|
|
6016
6016
|
bounds,
|
|
6017
6017
|
frame: { x: geometry.x + geometry.width - 80, y, width: 80, height: 16 },
|
|
6018
|
-
text:
|
|
6018
|
+
text: chunkC25NWWIH_cjs.formatFieldValue(maximum),
|
|
6019
6019
|
chart,
|
|
6020
6020
|
align: "right"
|
|
6021
6021
|
})
|
|
@@ -6028,7 +6028,7 @@ function colorAtRamp(ramp, value) {
|
|
|
6028
6028
|
if (!ramp?.stops.length) {
|
|
6029
6029
|
return RAMP_FALLBACK_COLOR;
|
|
6030
6030
|
}
|
|
6031
|
-
return
|
|
6031
|
+
return chunkC25NWWIH_cjs.interpolateHexColorStops(ramp.stops, value);
|
|
6032
6032
|
}
|
|
6033
6033
|
|
|
6034
6034
|
// src/renderScene/charts/field/isolines.ts
|
|
@@ -6238,7 +6238,7 @@ function createIsoline(context, grid, threshold, thresholdIndex) {
|
|
|
6238
6238
|
}
|
|
6239
6239
|
const chains = stitchIsolineSegments(segments);
|
|
6240
6240
|
const path = chains.map(
|
|
6241
|
-
(chain) =>
|
|
6241
|
+
(chain) => chunkC25NWWIH_cjs.linePathData(
|
|
6242
6242
|
chain.map(([x, y]) => ({ x: plot.x + x, y: plot.y + y })),
|
|
6243
6243
|
ISOLINE_TENSION
|
|
6244
6244
|
)
|
|
@@ -6262,7 +6262,7 @@ function createIsoline(context, grid, threshold, thresholdIndex) {
|
|
|
6262
6262
|
function renderVectorField(context, seriesList) {
|
|
6263
6263
|
const nodes = [];
|
|
6264
6264
|
seriesList.forEach((series, seriesIndex) => {
|
|
6265
|
-
const color = series.color ??
|
|
6265
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
6266
6266
|
series.values.forEach((vector, vectorIndex) => {
|
|
6267
6267
|
nodes.push(createVectorNode(context, series.id, vector, vectorIndex, color));
|
|
6268
6268
|
});
|
|
@@ -6272,10 +6272,10 @@ function renderVectorField(context, seriesList) {
|
|
|
6272
6272
|
function createVectorNode(context, seriesId, vector, vectorIndex, color) {
|
|
6273
6273
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
6274
6274
|
const [x, y, angle, magnitude] = vector;
|
|
6275
|
-
const startX = plot.x +
|
|
6276
|
-
const startY = plot.y + plot.height -
|
|
6277
|
-
const endX = plot.x +
|
|
6278
|
-
const endY = plot.y + plot.height -
|
|
6275
|
+
const startX = plot.x + chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width);
|
|
6276
|
+
const startY = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height);
|
|
6277
|
+
const endX = plot.x + chunkC25NWWIH_cjs.mapChartValue(x + Math.cos(angle) * magnitude, chart.axisX, plot.width);
|
|
6278
|
+
const endY = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y + Math.sin(angle) * magnitude, chart.axisY, plot.height);
|
|
6279
6279
|
return {
|
|
6280
6280
|
type: "path",
|
|
6281
6281
|
id: `chart-field-vector-${chart.id}-${seriesId}-${vectorIndex}`,
|
|
@@ -6285,7 +6285,7 @@ function createVectorNode(context, seriesId, vector, vectorIndex, color) {
|
|
|
6285
6285
|
markerEnd: "filled_arrow",
|
|
6286
6286
|
style: {
|
|
6287
6287
|
fill: { kind: "none" },
|
|
6288
|
-
stroke:
|
|
6288
|
+
stroke: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
|
|
6289
6289
|
strokeWidth: 2
|
|
6290
6290
|
}
|
|
6291
6291
|
};
|
|
@@ -6332,7 +6332,7 @@ function createHeatmapCell(layout, series, rowIndex, columnIndex) {
|
|
|
6332
6332
|
};
|
|
6333
6333
|
}
|
|
6334
6334
|
function colorForValue(value, layout) {
|
|
6335
|
-
return
|
|
6335
|
+
return chunkC25NWWIH_cjs.zoneColorAtValue(value, layout.bands, layout.zones);
|
|
6336
6336
|
}
|
|
6337
6337
|
function renderHeatmapCell(context, layout, cell) {
|
|
6338
6338
|
const background = createCellBackground(context, layout, cell);
|
|
@@ -6347,7 +6347,7 @@ function createCellBackground(context, layout, cell) {
|
|
|
6347
6347
|
const style = {
|
|
6348
6348
|
fill: { kind: "solid", color: cell.color },
|
|
6349
6349
|
stroke: { kind: "solid", color: chart.config?.cellStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
|
|
6350
|
-
strokeWidth:
|
|
6350
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.cellStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1))
|
|
6351
6351
|
};
|
|
6352
6352
|
if (chart.config?.cellShape === "circle") {
|
|
6353
6353
|
return {
|
|
@@ -6374,9 +6374,9 @@ function createCellBackground(context, layout, cell) {
|
|
|
6374
6374
|
}
|
|
6375
6375
|
function createCellValueLabel(context, layout, cell) {
|
|
6376
6376
|
const { chart, bounds, nextOrder } = context;
|
|
6377
|
-
const size = Math.max(6,
|
|
6377
|
+
const size = Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.cellValueSize, layout.fontSize));
|
|
6378
6378
|
return {
|
|
6379
|
-
...
|
|
6379
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
6380
6380
|
id: `chart-heatmap-value-${chart.id}-${cell.seriesId}-${cell.columnIndex}`,
|
|
6381
6381
|
order: nextOrder(),
|
|
6382
6382
|
bounds,
|
|
@@ -6391,7 +6391,7 @@ function createCellValueLabel(context, layout, cell) {
|
|
|
6391
6391
|
align: "center"
|
|
6392
6392
|
}),
|
|
6393
6393
|
...chart.config?.cellValueSize === void 0 ? {} : { fontSize: size },
|
|
6394
|
-
color: chart.config?.cellValueColor ??
|
|
6394
|
+
color: chart.config?.cellValueColor ?? chunkC25NWWIH_cjs.contrastTextColor(cell.color)
|
|
6395
6395
|
};
|
|
6396
6396
|
}
|
|
6397
6397
|
|
|
@@ -6404,9 +6404,9 @@ function createHeatmapLayout(context) {
|
|
|
6404
6404
|
return {
|
|
6405
6405
|
rows: chart.series,
|
|
6406
6406
|
columns,
|
|
6407
|
-
bands:
|
|
6408
|
-
zones: chart.config?.zones?.length ? chart.config.zones :
|
|
6409
|
-
fontSize: Math.max(9,
|
|
6407
|
+
bands: chunkC25NWWIH_cjs.axisBands(chart.axisY),
|
|
6408
|
+
zones: chart.config?.zones?.length ? chart.config.zones : chunkC25NWWIH_cjs.DEFAULT_HEATMAP_ZONES,
|
|
6409
|
+
fontSize: Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)),
|
|
6410
6410
|
headerFontSize: headerFontSize(chart),
|
|
6411
6411
|
legendGap: legendGap(chart),
|
|
6412
6412
|
sides,
|
|
@@ -6414,10 +6414,10 @@ function createHeatmapLayout(context) {
|
|
|
6414
6414
|
grid: createHeatmapGrid(context, reservedSpace, sides, columns.length)
|
|
6415
6415
|
};
|
|
6416
6416
|
}
|
|
6417
|
-
var headerFontSize = (chart) => Math.max(9,
|
|
6418
|
-
var rowGap = (chart) => Math.min(120, Math.max(0,
|
|
6419
|
-
var columnGap = (chart) => Math.min(120, Math.max(0,
|
|
6420
|
-
var legendGap = (chart) => Math.min(80, Math.max(0,
|
|
6417
|
+
var headerFontSize = (chart) => Math.max(9, chunkC25NWWIH_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12));
|
|
6418
|
+
var rowGap = (chart) => Math.min(120, Math.max(0, chunkC25NWWIH_cjs.finite(chart.yLabelGap, 6)));
|
|
6419
|
+
var columnGap = (chart) => Math.min(120, Math.max(0, chunkC25NWWIH_cjs.finite(chart.xLabelGap, 4)));
|
|
6420
|
+
var legendGap = (chart) => Math.min(80, Math.max(0, chunkC25NWWIH_cjs.finite(chart.legendGap, 6)));
|
|
6421
6421
|
function heatmapSides(context) {
|
|
6422
6422
|
const { chart } = context;
|
|
6423
6423
|
return {
|
|
@@ -6436,7 +6436,7 @@ function heatmapReservedSpace(context, sides) {
|
|
|
6436
6436
|
const { chart } = context;
|
|
6437
6437
|
const fontSize = headerFontSize(chart);
|
|
6438
6438
|
const longestLabel = chart.series.reduce(
|
|
6439
|
-
(max, series) => Math.max(max,
|
|
6439
|
+
(max, series) => Math.max(max, chunkC25NWWIH_cjs.estimateTextWidth(series.label ?? "", fontSize, false)),
|
|
6440
6440
|
0
|
|
6441
6441
|
);
|
|
6442
6442
|
const vertical = sides.legend === "left" || sides.legend === "right";
|
|
@@ -6452,8 +6452,8 @@ function heatmapReservedSpace(context, sides) {
|
|
|
6452
6452
|
}
|
|
6453
6453
|
function columnHeaderRoom(context) {
|
|
6454
6454
|
const { chart } = context;
|
|
6455
|
-
const tilt =
|
|
6456
|
-
return tilt > 0 ? Math.min(context.plot.height * 0.4,
|
|
6455
|
+
const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
|
|
6456
|
+
return tilt > 0 ? Math.min(context.plot.height * 0.4, chunkC25NWWIH_cjs.tiltedLabelRoom(chart, heatmapColumns(context), tilt) + columnGap(chart) + 4) : headerFontSize(chart) + 2 + columnGap(chart) + 6;
|
|
6457
6457
|
}
|
|
6458
6458
|
function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
|
|
6459
6459
|
const { chart } = context;
|
|
@@ -6464,7 +6464,7 @@ function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
|
|
|
6464
6464
|
const width = Math.max(1, context.plot.width - left - right);
|
|
6465
6465
|
const height = Math.max(1, context.plot.height - top - bottom);
|
|
6466
6466
|
const rowCount = chart.series.length;
|
|
6467
|
-
const cellGap = Math.max(0,
|
|
6467
|
+
const cellGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.cellGap, 0));
|
|
6468
6468
|
let cellWidth = columnCount ? width / columnCount : width;
|
|
6469
6469
|
let cellHeight = rowCount ? height / rowCount : height;
|
|
6470
6470
|
let gridWidth = width;
|
|
@@ -6484,7 +6484,7 @@ function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
|
|
|
6484
6484
|
cellWidth,
|
|
6485
6485
|
cellHeight,
|
|
6486
6486
|
cellGap,
|
|
6487
|
-
cellRadius: Math.max(0,
|
|
6487
|
+
cellRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barCornerRadius, cellGap))
|
|
6488
6488
|
};
|
|
6489
6489
|
}
|
|
6490
6490
|
|
|
@@ -6503,7 +6503,7 @@ function createRowHeader(context, layout, series, rowIndex) {
|
|
|
6503
6503
|
const room = layout.reservedSpace.rowHeaders;
|
|
6504
6504
|
const gap = rowGap(chart);
|
|
6505
6505
|
const x = layout.sides.rows === "left" ? layout.grid.x - room : layout.grid.x + layout.grid.width + gap;
|
|
6506
|
-
return
|
|
6506
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
6507
6507
|
id: `chart-heatmap-row-${chart.id}-${series.id}`,
|
|
6508
6508
|
order: nextOrder(),
|
|
6509
6509
|
bounds,
|
|
@@ -6529,12 +6529,12 @@ function createColumnHeader(context, layout, label, columnIndex) {
|
|
|
6529
6529
|
const { chart, bounds, nextOrder } = context;
|
|
6530
6530
|
const above = layout.sides.columns === "top";
|
|
6531
6531
|
const centerX = layout.grid.x + (columnIndex + 0.5) * layout.grid.cellWidth;
|
|
6532
|
-
const tilt =
|
|
6532
|
+
const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
|
|
6533
6533
|
const gap = columnGap(chart);
|
|
6534
6534
|
const id = `chart-heatmap-col-${chart.id}-${columnIndex}`;
|
|
6535
6535
|
if (tilt > 0) {
|
|
6536
|
-
const { frame, rotation } = above ?
|
|
6537
|
-
return
|
|
6536
|
+
const { frame, rotation } = above ? chunkC25NWWIH_cjs.labelAboveFrame(chart, label, tilt, { x: centerX, y: layout.grid.y - gap }) : chunkC25NWWIH_cjs.labelBelowFrame(chart, label, tilt, { x: centerX, y: layout.grid.y + layout.grid.height + gap });
|
|
6537
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
6538
6538
|
id,
|
|
6539
6539
|
order: nextOrder(),
|
|
6540
6540
|
bounds,
|
|
@@ -6546,7 +6546,7 @@ function createColumnHeader(context, layout, label, columnIndex) {
|
|
|
6546
6546
|
role: "axis"
|
|
6547
6547
|
});
|
|
6548
6548
|
}
|
|
6549
|
-
return
|
|
6549
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
6550
6550
|
id,
|
|
6551
6551
|
order: nextOrder(),
|
|
6552
6552
|
bounds,
|
|
@@ -6624,7 +6624,7 @@ function renderHeatmapLegend(context, layout) {
|
|
|
6624
6624
|
return [];
|
|
6625
6625
|
}
|
|
6626
6626
|
const place = barPlace(layout);
|
|
6627
|
-
const barBounds =
|
|
6627
|
+
const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: place.x, y: place.y, width: place.width, height: place.height });
|
|
6628
6628
|
return [createGradientBar(context, layout, place, barBounds), ...createBoundaryTicks(context, layout, place)];
|
|
6629
6629
|
}
|
|
6630
6630
|
function bandRatio(layout, value) {
|
|
@@ -6638,7 +6638,7 @@ function createGradientBar(context, layout, place, barBounds) {
|
|
|
6638
6638
|
const zones = layout.zones.slice(0, bandCount);
|
|
6639
6639
|
const stops = zones.map((zone, index) => ({
|
|
6640
6640
|
offset: bandRatio(layout, layout.bands[index + 1] ?? layout.bands[layout.bands.length - 1]) * 100,
|
|
6641
|
-
color: zone.color ??
|
|
6641
|
+
color: zone.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL
|
|
6642
6642
|
}));
|
|
6643
6643
|
return {
|
|
6644
6644
|
type: "rect",
|
|
@@ -6653,7 +6653,7 @@ function createGradientBar(context, layout, place, barBounds) {
|
|
|
6653
6653
|
zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
|
|
6654
6654
|
style: {
|
|
6655
6655
|
// Across the grid it runs from the lowest value on the left; beside it from the lowest at the bottom.
|
|
6656
|
-
fill: stops.length ? { kind: "linear-gradient", angle: place.vertical ? 270 : 0, stops } : { kind: "solid", color:
|
|
6656
|
+
fill: stops.length ? { kind: "linear-gradient", angle: place.vertical ? 270 : 0, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
|
|
6657
6657
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
6658
6658
|
strokeWidth: 1
|
|
6659
6659
|
}
|
|
@@ -6679,12 +6679,12 @@ function createBoundaryTicks(context, layout, place) {
|
|
|
6679
6679
|
strokeWidth: 1
|
|
6680
6680
|
}
|
|
6681
6681
|
};
|
|
6682
|
-
const label =
|
|
6682
|
+
const label = chunkC25NWWIH_cjs.chartText({
|
|
6683
6683
|
id: `chart-heatmap-legend-tick-label-${chart.id}-${index}`,
|
|
6684
6684
|
order: nextOrder(),
|
|
6685
6685
|
bounds,
|
|
6686
6686
|
...labelAt(place, at, index === 0, index === lastIndex, labelHeight),
|
|
6687
|
-
text:
|
|
6687
|
+
text: chunkC25NWWIH_cjs.formatFieldValue(value),
|
|
6688
6688
|
chart
|
|
6689
6689
|
});
|
|
6690
6690
|
return [tick, label];
|
|
@@ -7051,22 +7051,22 @@ function renderHexbin(context) {
|
|
|
7051
7051
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
7052
7052
|
const nodes = [];
|
|
7053
7053
|
const config = chart.config;
|
|
7054
|
-
const hexRadius = Math.max(1, config?.hexRadius ??
|
|
7054
|
+
const hexRadius = Math.max(1, config?.hexRadius ?? chunkC25NWWIH_cjs.DEFAULT_HEX_RADIUS);
|
|
7055
7055
|
const drawRadius = Math.max(0.5, hexRadius - Math.max(0, config?.hexGap ?? 0) * GAP_TO_RADIUS);
|
|
7056
7056
|
const strokeWidth = config?.hexStrokeWidth ?? 0;
|
|
7057
7057
|
const minOpacity = Math.min(1, Math.max(0, config?.hexMinOpacity ?? DEFAULT_MIN_OPACITY));
|
|
7058
|
-
const shadow =
|
|
7058
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
7059
7059
|
const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
|
|
7060
7060
|
chart.series.forEach((series, seriesIndex) => {
|
|
7061
7061
|
const explicit = series.values.length > 0 && Array.isArray(series.values[0]);
|
|
7062
7062
|
const pairs = explicit ? series.values : series.values.map((y, i) => [chart.axisX.min + i * chart.axisX.step, y]);
|
|
7063
7063
|
const pixelPoints2 = pairs.map(([vx, vy]) => ({
|
|
7064
|
-
x:
|
|
7065
|
-
y: plot.height -
|
|
7064
|
+
x: chunkC25NWWIH_cjs.mapChartValue(vx, chart.axisX, plot.width),
|
|
7065
|
+
y: plot.height - chunkC25NWWIH_cjs.mapChartValue(vy, chart.axisY, plot.height)
|
|
7066
7066
|
}));
|
|
7067
7067
|
const bins = computeHexBins(pixelPoints2, hexRadius);
|
|
7068
7068
|
const maxCount = Math.max(1, ...bins.map((bin) => bin.count));
|
|
7069
|
-
const color = series.color ??
|
|
7069
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
7070
7070
|
const ramp = config?.scale;
|
|
7071
7071
|
bins.forEach((bin, i) => {
|
|
7072
7072
|
const share = bin.count / maxCount;
|
|
@@ -7078,8 +7078,8 @@ function renderHexbin(context) {
|
|
|
7078
7078
|
bounds,
|
|
7079
7079
|
d: hexPath(plot.x + bin.cx, plot.y + bin.cy, drawRadius),
|
|
7080
7080
|
style: {
|
|
7081
|
-
fill:
|
|
7082
|
-
stroke: strokeWidth > 0 ?
|
|
7081
|
+
fill: chunkC25NWWIH_cjs.paint(fill2, diagnostics, chart.id),
|
|
7082
|
+
stroke: strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(config?.hexStrokeColor ?? fill2, diagnostics, chart.id) : void 0,
|
|
7083
7083
|
strokeWidth: strokeWidth > 0 ? strokeWidth : void 0,
|
|
7084
7084
|
opacity: ramp ? void 0 : Math.max(minOpacity, share),
|
|
7085
7085
|
shadow,
|
|
@@ -7101,8 +7101,8 @@ function seriesValuePairs(chart, series) {
|
|
|
7101
7101
|
function pixelPoints(context, pairs) {
|
|
7102
7102
|
const { chart, plot } = context;
|
|
7103
7103
|
return pairs.map(([x, y]) => ({
|
|
7104
|
-
x: plot.x +
|
|
7105
|
-
y: plot.y + plot.height -
|
|
7104
|
+
x: plot.x + chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width),
|
|
7105
|
+
y: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height)
|
|
7106
7106
|
}));
|
|
7107
7107
|
}
|
|
7108
7108
|
|
|
@@ -7112,7 +7112,7 @@ function createLineAreaFill(context, series, points, color, tension, areaOpacity
|
|
|
7112
7112
|
const baselineY = plot.y + plot.height;
|
|
7113
7113
|
const first = points[0];
|
|
7114
7114
|
const last = points[points.length - 1];
|
|
7115
|
-
const d = `${
|
|
7115
|
+
const d = `${chunkC25NWWIH_cjs.linePathData(points, tension)} L ${last.x} ${baselineY} L ${first.x} ${baselineY} Z`;
|
|
7116
7116
|
const top = Math.min(...points.map((point) => point.y));
|
|
7117
7117
|
const centerX = (Math.min(...points.map((point) => point.x)) + Math.max(...points.map((point) => point.x))) / 2;
|
|
7118
7118
|
const halfHeight = (baselineY - top) / 2;
|
|
@@ -7134,8 +7134,8 @@ function createLineAreaFill(context, series, points, color, tension, areaOpacity
|
|
|
7134
7134
|
kind: "linear-gradient",
|
|
7135
7135
|
angle: 90,
|
|
7136
7136
|
stops: [
|
|
7137
|
-
{ offset: 0, color:
|
|
7138
|
-
{ offset: 100, color:
|
|
7137
|
+
{ offset: 0, color: chunkC25NWWIH_cjs.colorWithAlpha(color, areaOpacity) },
|
|
7138
|
+
{ offset: 100, color: chunkC25NWWIH_cjs.colorWithAlpha(color, 0) }
|
|
7139
7139
|
]
|
|
7140
7140
|
},
|
|
7141
7141
|
stroke: { kind: "none" },
|
|
@@ -7158,7 +7158,7 @@ function guideNode(context, mark) {
|
|
|
7158
7158
|
d: `M ${mark.point.x} ${mark.point.y} V ${plot.y + plot.height}`,
|
|
7159
7159
|
style: {
|
|
7160
7160
|
fill: { kind: "none" },
|
|
7161
|
-
stroke:
|
|
7161
|
+
stroke: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
|
|
7162
7162
|
strokeWidth: 1,
|
|
7163
7163
|
dash: [3, 4],
|
|
7164
7164
|
opacity: 0.55,
|
|
@@ -7179,7 +7179,7 @@ function dotNode(context, mark) {
|
|
|
7179
7179
|
rx: mark.radius,
|
|
7180
7180
|
ry: mark.radius,
|
|
7181
7181
|
style: {
|
|
7182
|
-
fill:
|
|
7182
|
+
fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
|
|
7183
7183
|
shadow: glow ? { color: mark.color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } : void 0,
|
|
7184
7184
|
pointerEvents: "none"
|
|
7185
7185
|
}
|
|
@@ -7192,7 +7192,7 @@ function labelNode3(context, mark, value) {
|
|
|
7192
7192
|
const text = formatHighlight(config?.highlightLabelFormat, config?.categories?.[mark.index] ?? "", value);
|
|
7193
7193
|
const width = Math.max(48, text.length * fontSize * 0.62);
|
|
7194
7194
|
return {
|
|
7195
|
-
...
|
|
7195
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7196
7196
|
id: `chart-highlight-label-${mark.key}`,
|
|
7197
7197
|
order: nextOrder(),
|
|
7198
7198
|
bounds,
|
|
@@ -7272,15 +7272,15 @@ function createLineError(context, mark) {
|
|
|
7272
7272
|
return null;
|
|
7273
7273
|
}
|
|
7274
7274
|
const { chart, plot, bounds, nextOrder } = context;
|
|
7275
|
-
const [lower, upper] =
|
|
7276
|
-
return
|
|
7275
|
+
const [lower, upper] = chunkC25NWWIH_cjs.errorBarRange(mark.value, mark.error);
|
|
7276
|
+
return chunkC25NWWIH_cjs.createVerticalErrorWhiskerNode({
|
|
7277
7277
|
id: `chart-line-error-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
|
|
7278
7278
|
order: nextOrder(),
|
|
7279
7279
|
bounds,
|
|
7280
7280
|
geometry: {
|
|
7281
7281
|
centerX: mark.position.x,
|
|
7282
|
-
startY: plot.y + plot.height -
|
|
7283
|
-
endY: plot.y + plot.height -
|
|
7282
|
+
startY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(lower, chart.axisY, plot.height),
|
|
7283
|
+
endY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(upper, chart.axisY, plot.height)
|
|
7284
7284
|
},
|
|
7285
7285
|
color: mark.color,
|
|
7286
7286
|
valueReference: { seriesId: mark.seriesId, valueIndex: mark.valueIndex }
|
|
@@ -7304,8 +7304,8 @@ function createLinePoint(context, mark) {
|
|
|
7304
7304
|
ry: visible ? radius : 6,
|
|
7305
7305
|
detail: { of: "chartValue", series: mark.seriesId, valueIndex: mark.valueIndex },
|
|
7306
7306
|
style: {
|
|
7307
|
-
fill: visible ?
|
|
7308
|
-
stroke: visible && strokeWidth > 0 ?
|
|
7307
|
+
fill: visible ? chunkC25NWWIH_cjs.paint(fill2, diagnostics, chart.id) : { kind: "none" },
|
|
7308
|
+
stroke: visible && strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id) : void 0,
|
|
7309
7309
|
strokeWidth: visible && strokeWidth > 0 ? strokeWidth : void 0,
|
|
7310
7310
|
pointerEvents: visible ? void 0 : "all"
|
|
7311
7311
|
}
|
|
@@ -7325,22 +7325,22 @@ function createLinePath(context, series, points, color, tension) {
|
|
|
7325
7325
|
order: nextOrder(),
|
|
7326
7326
|
bounds: gradient ? { minX: plot.x, maxX: plot.x + plot.width, minY: plot.y, maxY: plot.y + plot.height } : bounds,
|
|
7327
7327
|
detail: { of: "chartSeries", series: series.id, lineTension: tension || void 0 },
|
|
7328
|
-
d:
|
|
7328
|
+
d: chunkC25NWWIH_cjs.linePathData(points, tension),
|
|
7329
7329
|
style: {
|
|
7330
7330
|
fill: { kind: "none" },
|
|
7331
|
-
stroke:
|
|
7331
|
+
stroke: chunkC25NWWIH_cjs.paint(gradient ?? color, diagnostics, chart.id),
|
|
7332
7332
|
strokeWidth: series.strokeWidth ?? config?.lineWidth ?? 2,
|
|
7333
7333
|
dash: series.dash,
|
|
7334
7334
|
lineCap: config?.lineWidth === void 0 ? void 0 : "round",
|
|
7335
7335
|
lineJoin: "round",
|
|
7336
|
-
shadow: glow ? { color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } :
|
|
7336
|
+
shadow: glow ? { color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } : chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
|
|
7337
7337
|
}
|
|
7338
7338
|
};
|
|
7339
7339
|
}
|
|
7340
7340
|
|
|
7341
7341
|
// src/renderScene/charts/renderers/line/series.ts
|
|
7342
7342
|
function seriesColor(series, seriesIndex) {
|
|
7343
|
-
return
|
|
7343
|
+
return chunkC25NWWIH_cjs.representativeColor(series.color, chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length]);
|
|
7344
7344
|
}
|
|
7345
7345
|
function renderLineSeriesArea(context, series, seriesIndex) {
|
|
7346
7346
|
const areaOpacity = context.chart.config?.areaOpacity;
|
|
@@ -7404,7 +7404,7 @@ function renderGridLines(context, layout) {
|
|
|
7404
7404
|
style: {
|
|
7405
7405
|
fill: { kind: "none" },
|
|
7406
7406
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
7407
|
-
strokeWidth:
|
|
7407
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
|
|
7408
7408
|
}
|
|
7409
7409
|
};
|
|
7410
7410
|
});
|
|
@@ -7412,7 +7412,7 @@ function renderGridLines(context, layout) {
|
|
|
7412
7412
|
function renderPercentageLabels(context, layout) {
|
|
7413
7413
|
const { chart, plot, bounds, nextOrder } = context;
|
|
7414
7414
|
return PERCENT_TICKS.map((percent) => ({
|
|
7415
|
-
...
|
|
7415
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7416
7416
|
id: `chart-mekko-pct-${chart.id}-${percent}`,
|
|
7417
7417
|
order: nextOrder(),
|
|
7418
7418
|
bounds,
|
|
@@ -7444,7 +7444,7 @@ function renderMekkoColumnLabels(context, layout, columnIndex, column) {
|
|
|
7444
7444
|
function createTotalLabel(context, layout, columnIndex, column) {
|
|
7445
7445
|
const { chart, plot, bounds, nextOrder } = context;
|
|
7446
7446
|
return {
|
|
7447
|
-
...
|
|
7447
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7448
7448
|
id: `chart-mekko-total-${chart.id}-${columnIndex}`,
|
|
7449
7449
|
order: nextOrder(),
|
|
7450
7450
|
bounds,
|
|
@@ -7465,7 +7465,7 @@ function createColumnLabel(context, layout, columnIndex, column) {
|
|
|
7465
7465
|
const { chart, bounds, nextOrder } = context;
|
|
7466
7466
|
const { label, width } = column;
|
|
7467
7467
|
return {
|
|
7468
|
-
...
|
|
7468
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7469
7469
|
id: `chart-mekko-col-label-${chart.id}-${columnIndex}`,
|
|
7470
7470
|
order: nextOrder(),
|
|
7471
7471
|
bounds,
|
|
@@ -7479,7 +7479,7 @@ function createColumnLabel(context, layout, columnIndex, column) {
|
|
|
7479
7479
|
chart,
|
|
7480
7480
|
align: "center"
|
|
7481
7481
|
}),
|
|
7482
|
-
lines:
|
|
7482
|
+
lines: chunkC25NWWIH_cjs.wrapText(label, width, layout.smallFontSize),
|
|
7483
7483
|
fontSize: layout.smallFontSize
|
|
7484
7484
|
};
|
|
7485
7485
|
}
|
|
@@ -7489,8 +7489,8 @@ function createMekkoLayout(context) {
|
|
|
7489
7489
|
const labels = mekkoColumnLabels(context);
|
|
7490
7490
|
const labelGutterWidth = context.showLabels ? 30 : 0;
|
|
7491
7491
|
const grid = createMekkoGrid(context, labelGutterWidth);
|
|
7492
|
-
const fontSize = Math.max(9,
|
|
7493
|
-
const columnGap2 = Math.max(0,
|
|
7492
|
+
const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(context.chart.fontSize, 12));
|
|
7493
|
+
const columnGap2 = Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoColumnGap, 4));
|
|
7494
7494
|
const smallFontSize = Math.max(8, fontSize - 1);
|
|
7495
7495
|
return {
|
|
7496
7496
|
columns: createMekkoColumns(context, grid, labels, columnGap2),
|
|
@@ -7498,8 +7498,8 @@ function createMekkoLayout(context) {
|
|
|
7498
7498
|
smallFontSize,
|
|
7499
7499
|
labelGutterWidth,
|
|
7500
7500
|
columnGap: columnGap2,
|
|
7501
|
-
labelSize: Math.max(6,
|
|
7502
|
-
valueSize: Math.max(6,
|
|
7501
|
+
labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoLabelSize, smallFontSize)),
|
|
7502
|
+
valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoValueSize, smallFontSize)),
|
|
7503
7503
|
grid
|
|
7504
7504
|
};
|
|
7505
7505
|
}
|
|
@@ -7556,12 +7556,12 @@ function createColumnBackdrop(context, layout, columnIndex) {
|
|
|
7556
7556
|
id: `chart-mekko-column-backdrop-${chart.id}-${columnIndex}`,
|
|
7557
7557
|
order: nextOrder(),
|
|
7558
7558
|
bounds,
|
|
7559
|
-
d:
|
|
7560
|
-
style: { fill:
|
|
7559
|
+
d: chunkC25NWWIH_cjs.barShapePath(column.x, layout.grid.y, column.width, layout.grid.height, cornerRadius),
|
|
7560
|
+
style: { fill: chunkC25NWWIH_cjs.paint(chart.gridColor ?? "#e2e8f0", diagnostics, chart.id), opacity: BACKDROP_OPACITY }
|
|
7561
7561
|
};
|
|
7562
7562
|
}
|
|
7563
7563
|
function mekkoCornerRadius(context) {
|
|
7564
|
-
return Math.max(0,
|
|
7564
|
+
return Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.barCornerRadius, 2));
|
|
7565
7565
|
}
|
|
7566
7566
|
function calculateColumnSegments(seriesList, layout, columnIndex) {
|
|
7567
7567
|
const segments = [];
|
|
@@ -7572,7 +7572,7 @@ function calculateColumnSegments(seriesList, layout, columnIndex) {
|
|
|
7572
7572
|
const height = (column.total > 0 ? value / column.total : 0) * column.height;
|
|
7573
7573
|
const y = column.y + cumulativeHeight;
|
|
7574
7574
|
cumulativeHeight += height;
|
|
7575
|
-
const color = series.color ??
|
|
7575
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
7576
7576
|
segments.push({
|
|
7577
7577
|
columnIndex,
|
|
7578
7578
|
seriesId: series.id,
|
|
@@ -7595,12 +7595,12 @@ function renderSegment(context, layout, segment, nextColor) {
|
|
|
7595
7595
|
}
|
|
7596
7596
|
function createSegmentNode(context, segment, nextColor) {
|
|
7597
7597
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
7598
|
-
const shadow =
|
|
7598
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
7599
7599
|
const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
|
|
7600
7600
|
const config = chart.config;
|
|
7601
7601
|
const radius = segment.isTop || config?.mekkoRoundAll ? mekkoCornerRadius(context) : 0;
|
|
7602
7602
|
const { x, y, width, height } = segment.frame;
|
|
7603
|
-
const segmentGap = Math.max(0,
|
|
7603
|
+
const segmentGap = Math.max(0, chunkC25NWWIH_cjs.finite(config?.mekkoSegmentGap, 0));
|
|
7604
7604
|
const fallback = "#94a3b8";
|
|
7605
7605
|
const gradientBounds = {
|
|
7606
7606
|
minX: x + width / 2 - height / 2,
|
|
@@ -7612,20 +7612,20 @@ function createSegmentNode(context, segment, nextColor) {
|
|
|
7612
7612
|
kind: "linear-gradient",
|
|
7613
7613
|
angle: 90,
|
|
7614
7614
|
stops: [
|
|
7615
|
-
{ offset: 0, color:
|
|
7616
|
-
{ offset: 100, color:
|
|
7615
|
+
{ offset: 0, color: chunkC25NWWIH_cjs.representativeColor(segment.color, fallback) },
|
|
7616
|
+
{ offset: 100, color: chunkC25NWWIH_cjs.representativeColor(nextColor, fallback) }
|
|
7617
7617
|
]
|
|
7618
|
-
} :
|
|
7618
|
+
} : chunkC25NWWIH_cjs.paint(segment.color, diagnostics, chart.id);
|
|
7619
7619
|
return {
|
|
7620
7620
|
type: "path",
|
|
7621
7621
|
id: `chart-mekko-seg-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
|
|
7622
7622
|
order: nextOrder(),
|
|
7623
7623
|
bounds: nextColor ? gradientBounds : bounds,
|
|
7624
|
-
d:
|
|
7624
|
+
d: chunkC25NWWIH_cjs.barPath(x, y + segmentGap / 2, width, Math.max(0, height - segmentGap), radius, Boolean(config?.mekkoRoundAll)),
|
|
7625
7625
|
style: {
|
|
7626
7626
|
fill: fill2,
|
|
7627
7627
|
stroke: { kind: "solid", color: config?.mekkoSegmentStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
|
|
7628
|
-
strokeWidth:
|
|
7628
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(config?.mekkoSegmentStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)),
|
|
7629
7629
|
shadow,
|
|
7630
7630
|
clip: clipPath ? { type: "path", d: clipPath } : void 0
|
|
7631
7631
|
}
|
|
@@ -7641,17 +7641,17 @@ function createSegmentLabel(context, layout, segment) {
|
|
|
7641
7641
|
const innerHeight = Math.max(1, height - 6);
|
|
7642
7642
|
const lineHeight = layout.labelSize * 1.2;
|
|
7643
7643
|
const valueHeight = layout.valueSize * 1.2;
|
|
7644
|
-
const labelLines =
|
|
7645
|
-
(line) =>
|
|
7644
|
+
const labelLines = chunkC25NWWIH_cjs.wrapText(segment.seriesLabel, innerWidth, layout.labelSize).map(
|
|
7645
|
+
(line) => chunkC25NWWIH_cjs.ellipsizeToWidth(line, innerWidth, layout.labelSize, true)
|
|
7646
7646
|
);
|
|
7647
7647
|
if (labelLines.length * lineHeight + valueHeight > innerHeight) {
|
|
7648
7648
|
return [];
|
|
7649
7649
|
}
|
|
7650
|
-
const textColor = chart.config?.mekkoTextColor ??
|
|
7650
|
+
const textColor = chart.config?.mekkoTextColor ?? chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(segment.color, "#ffffff"));
|
|
7651
7651
|
const columnTotal = layout.columns[segment.columnIndex]?.total ?? 0;
|
|
7652
7652
|
const valueText = chart.config?.mekkoValueFormat === "percent" ? `${columnTotal > 0 ? Math.round(segment.value / columnTotal * 100) : 0}%` : String(segment.value);
|
|
7653
7653
|
const label = {
|
|
7654
|
-
...
|
|
7654
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7655
7655
|
id: `chart-mekko-seg-label-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
|
|
7656
7656
|
order: nextOrder(),
|
|
7657
7657
|
bounds,
|
|
@@ -7665,7 +7665,7 @@ function createSegmentLabel(context, layout, segment) {
|
|
|
7665
7665
|
color: textColor
|
|
7666
7666
|
};
|
|
7667
7667
|
const valueNode = {
|
|
7668
|
-
...
|
|
7668
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
7669
7669
|
id: `chart-mekko-seg-value-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
|
|
7670
7670
|
order: nextOrder(),
|
|
7671
7671
|
bounds,
|
|
@@ -7698,7 +7698,7 @@ function renderMekko(context) {
|
|
|
7698
7698
|
|
|
7699
7699
|
// src/renderScene/charts/renderers/pie/center.ts
|
|
7700
7700
|
function fill(template, chart) {
|
|
7701
|
-
const values = chart.series.map((series) => Math.max(0,
|
|
7701
|
+
const values = chart.series.map((series) => Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0)));
|
|
7702
7702
|
const total = values.reduce((sum, value) => sum + value, 0);
|
|
7703
7703
|
const first = values[0] ?? 0;
|
|
7704
7704
|
return template.replace(/\{total\}/g, String(Math.round(total * 100) / 100)).replace(/\{percent\}/g, String(total > 0 ? Math.round(first / total * 100) : 0)).replace(/\{label\}/g, chart.series[0]?.label ?? "");
|
|
@@ -7710,7 +7710,7 @@ function renderPieCenter(context, geometry) {
|
|
|
7710
7710
|
return [];
|
|
7711
7711
|
}
|
|
7712
7712
|
const lines = fill(template, chart).split(/\\n|\n/);
|
|
7713
|
-
const fontSize =
|
|
7713
|
+
const fontSize = chunkC25NWWIH_cjs.finite(chart.config?.pieCenterSize, Math.max(14, Math.min(40, geometry.outerRadius * 0.3)));
|
|
7714
7714
|
const lineHeight = fontSize * 1.2;
|
|
7715
7715
|
const width = Math.max(40, (geometry.innerRadius > 0 ? geometry.innerRadius : geometry.outerRadius * 0.6) * 2);
|
|
7716
7716
|
const text = {
|
|
@@ -7723,7 +7723,7 @@ function renderPieCenter(context, geometry) {
|
|
|
7723
7723
|
width,
|
|
7724
7724
|
height: lineHeight * lines.length,
|
|
7725
7725
|
lines,
|
|
7726
|
-
fontFamily: chart.fontFamily ??
|
|
7726
|
+
fontFamily: chart.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
7727
7727
|
fontSize,
|
|
7728
7728
|
fontWeight: "bold",
|
|
7729
7729
|
align: "center",
|
|
@@ -7743,14 +7743,14 @@ var radians = (degrees) => degrees * Math.PI / 180;
|
|
|
7743
7743
|
function renderPieSlices(context, geometry) {
|
|
7744
7744
|
const config = context.chart.config;
|
|
7745
7745
|
const marks = createPieSliceMarks(context.chart.series, geometry.total, {
|
|
7746
|
-
start: TOP + radians(
|
|
7747
|
-
sweep: Math.min(FULL, Math.max(radians(1), radians(
|
|
7748
|
-
explode: Math.max(0,
|
|
7746
|
+
start: TOP + radians(chunkC25NWWIH_cjs.finite(config?.pieStartAngle, 0)),
|
|
7747
|
+
sweep: Math.min(FULL, Math.max(radians(1), radians(chunkC25NWWIH_cjs.finite(config?.pieSweep, 360)))),
|
|
7748
|
+
explode: Math.max(0, chunkC25NWWIH_cjs.finite(config?.pieExplode, 0))
|
|
7749
7749
|
});
|
|
7750
7750
|
const gapPx = config?.pieSliceGap ?? 0;
|
|
7751
7751
|
return [
|
|
7752
7752
|
...marks.flatMap((mark) => createSliceNodes(context, shiftGeometry(geometry, mark), mark, gapPx)),
|
|
7753
|
-
...
|
|
7753
|
+
...chunkC25NWWIH_cjs.renderPieLabels(
|
|
7754
7754
|
context,
|
|
7755
7755
|
geometry,
|
|
7756
7756
|
marks.map((mark) => ({
|
|
@@ -7782,20 +7782,20 @@ function createPieSliceMarks(seriesList, total, layout) {
|
|
|
7782
7782
|
const marks = [];
|
|
7783
7783
|
let angle = layout.start;
|
|
7784
7784
|
seriesList.forEach((series, seriesIndex) => {
|
|
7785
|
-
const value = Math.max(0,
|
|
7785
|
+
const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
|
|
7786
7786
|
const sweep = value / total * layout.sweep;
|
|
7787
7787
|
marks.push({
|
|
7788
7788
|
seriesId: series.id,
|
|
7789
7789
|
label: series.label,
|
|
7790
|
-
color: series.color ??
|
|
7790
|
+
color: series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length],
|
|
7791
7791
|
stroke: series.stroke,
|
|
7792
7792
|
strokeWidth: series.strokeWidth,
|
|
7793
7793
|
value,
|
|
7794
7794
|
share: value / total,
|
|
7795
7795
|
angles: { start: angle, end: angle + Math.min(sweep, layout.sweep >= FULL ? MAXIMUM_SWEEP : layout.sweep) },
|
|
7796
|
-
explode: Math.max(0,
|
|
7797
|
-
labelOffsetX:
|
|
7798
|
-
labelOffsetY:
|
|
7796
|
+
explode: Math.max(0, chunkC25NWWIH_cjs.finite(series.offset, layout.explode)),
|
|
7797
|
+
labelOffsetX: chunkC25NWWIH_cjs.finite(series.labelOffsetX, 0),
|
|
7798
|
+
labelOffsetY: chunkC25NWWIH_cjs.finite(series.labelOffsetY, 0)
|
|
7799
7799
|
});
|
|
7800
7800
|
angle += sweep;
|
|
7801
7801
|
});
|
|
@@ -7818,14 +7818,14 @@ function pieOuterShadow(shadow, gapPx) {
|
|
|
7818
7818
|
function sliceCornerRadius(geometry, mark, gapPx) {
|
|
7819
7819
|
const halfGap = Math.max(0, gapPx) / 2;
|
|
7820
7820
|
const rawSweep = mark.angles.end - mark.angles.start;
|
|
7821
|
-
const usesInnerArc =
|
|
7822
|
-
const gapSweep = 2 *
|
|
7821
|
+
const usesInnerArc = chunkC25NWWIH_cjs.pieUsesInnerArc(geometry, mark.angles, gapPx);
|
|
7822
|
+
const gapSweep = 2 * chunkC25NWWIH_cjs.gapInsetAngle(halfGap, geometry.outerRadius);
|
|
7823
7823
|
const availableSweep = Math.max(0, rawSweep - gapSweep);
|
|
7824
7824
|
return Math.min(
|
|
7825
7825
|
geometry.cornerRadius,
|
|
7826
|
-
usesInnerArc ?
|
|
7826
|
+
usesInnerArc ? chunkC25NWWIH_cjs.maxPieCornerRadius(geometry.outerRadius, geometry.innerRadius, availableSweep) : chunkC25NWWIH_cjs.maxApexCornerRadius(
|
|
7827
7827
|
geometry.outerRadius,
|
|
7828
|
-
|
|
7828
|
+
chunkC25NWWIH_cjs.pieApexRadius(halfGap, rawSweep, geometry.outerRadius),
|
|
7829
7829
|
availableSweep
|
|
7830
7830
|
)
|
|
7831
7831
|
);
|
|
@@ -7838,14 +7838,14 @@ function sliceStroke(context, mark) {
|
|
|
7838
7838
|
}
|
|
7839
7839
|
return {
|
|
7840
7840
|
stroke: { kind: "solid", color: strokeColor },
|
|
7841
|
-
strokeWidth:
|
|
7841
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(mark.strokeWidth, chunkC25NWWIH_cjs.finite(config?.pieStrokeWidth, 1))
|
|
7842
7842
|
};
|
|
7843
7843
|
}
|
|
7844
7844
|
function createSliceNodes(context, geometry, mark, gapPx) {
|
|
7845
7845
|
const { chart, bounds, diagnostics, nextOrder } = context;
|
|
7846
|
-
const fill2 =
|
|
7847
|
-
const slicePath =
|
|
7848
|
-
const shadow =
|
|
7846
|
+
const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
|
|
7847
|
+
const slicePath = chunkC25NWWIH_cjs.createPieSlicePath(geometry, mark.angles, sliceCornerRadius(geometry, mark, gapPx), gapPx);
|
|
7848
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
7849
7849
|
const strokeStyle = sliceStroke(context, mark);
|
|
7850
7850
|
const glow = chart.config?.pieGlow;
|
|
7851
7851
|
const shadowCaster = shadow ? {
|
|
@@ -7876,12 +7876,12 @@ function createSliceNodes(context, geometry, mark, gapPx) {
|
|
|
7876
7876
|
pieEnd: mark.angles.end,
|
|
7877
7877
|
pieValue: mark.value
|
|
7878
7878
|
},
|
|
7879
|
-
prop:
|
|
7879
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(mark.seriesId, 0),
|
|
7880
7880
|
style: {
|
|
7881
7881
|
fill: fill2,
|
|
7882
7882
|
...strokeStyle,
|
|
7883
7883
|
innerShadow: shadow,
|
|
7884
|
-
shadow: glow ? { color:
|
|
7884
|
+
shadow: glow ? { color: chunkC25NWWIH_cjs.representativeColor(mark.color, "#ffffff"), opacity: 0.85, blur: glow, dx: 0, dy: 0 } : void 0
|
|
7885
7885
|
}
|
|
7886
7886
|
};
|
|
7887
7887
|
return shadowCaster ? [shadowCaster, slice] : [slice];
|
|
@@ -7889,7 +7889,7 @@ function createSliceNodes(context, geometry, mark, gapPx) {
|
|
|
7889
7889
|
|
|
7890
7890
|
// src/renderScene/charts/renderers/pie.ts
|
|
7891
7891
|
function renderPie(context) {
|
|
7892
|
-
const geometry =
|
|
7892
|
+
const geometry = chunkC25NWWIH_cjs.createPieGeometry(context);
|
|
7893
7893
|
return [...renderPieSlices(context, geometry), ...renderPieCenter(context, geometry)];
|
|
7894
7894
|
}
|
|
7895
7895
|
|
|
@@ -7906,18 +7906,18 @@ var OUTSIDE_FALLBACK_COLOR = "#334155";
|
|
|
7906
7906
|
function layoutOf(context) {
|
|
7907
7907
|
const { chart, plot } = context;
|
|
7908
7908
|
const maxRadius = Math.max(1, Math.min(plot.width, plot.height) / 2 - 4);
|
|
7909
|
-
const axisMin =
|
|
7909
|
+
const axisMin = chunkC25NWWIH_cjs.finite(chart.axisY.min, 0);
|
|
7910
7910
|
return {
|
|
7911
7911
|
centerX: plot.x + plot.width / 2,
|
|
7912
7912
|
centerY: plot.y + plot.height / 2,
|
|
7913
7913
|
maxRadius,
|
|
7914
|
-
innerRadius: Math.max(0, Math.min(
|
|
7915
|
-
cornerRadius: Math.max(0,
|
|
7916
|
-
gapPx: Math.max(0,
|
|
7914
|
+
innerRadius: Math.max(0, Math.min(chunkC25NWWIH_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1)),
|
|
7915
|
+
cornerRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieCornerRadius, 0)),
|
|
7916
|
+
gapPx: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieSliceGap, 0)),
|
|
7917
7917
|
axisMin,
|
|
7918
|
-
range:
|
|
7918
|
+
range: chunkC25NWWIH_cjs.finite(chart.axisY.max, 100) - axisMin,
|
|
7919
7919
|
sweep: chart.series.length > 0 ? Math.PI * 2 / chart.series.length : 0,
|
|
7920
|
-
start: TOP2 +
|
|
7920
|
+
start: TOP2 + chunkC25NWWIH_cjs.finite(chart.config?.pieStartAngle, 0) * Math.PI / 180
|
|
7921
7921
|
};
|
|
7922
7922
|
}
|
|
7923
7923
|
function clampedCorner(layout, outerRadius, angles) {
|
|
@@ -7925,19 +7925,19 @@ function clampedCorner(layout, outerRadius, angles) {
|
|
|
7925
7925
|
const geometry = { centerX, centerY, outerRadius, innerRadius };
|
|
7926
7926
|
const halfGap = Math.max(0, gapPx) / 2;
|
|
7927
7927
|
const rawSweep = angles.end - angles.start;
|
|
7928
|
-
const availableSweep = Math.max(0, rawSweep - 2 *
|
|
7929
|
-
if (
|
|
7930
|
-
return Math.min(cornerRadius,
|
|
7928
|
+
const availableSweep = Math.max(0, rawSweep - 2 * chunkC25NWWIH_cjs.gapInsetAngle(halfGap, outerRadius));
|
|
7929
|
+
if (chunkC25NWWIH_cjs.pieUsesInnerArc(geometry, angles, gapPx)) {
|
|
7930
|
+
return Math.min(cornerRadius, chunkC25NWWIH_cjs.maxPieCornerRadius(outerRadius, innerRadius, availableSweep));
|
|
7931
7931
|
}
|
|
7932
|
-
const apexRadius =
|
|
7933
|
-
return Math.min(cornerRadius,
|
|
7932
|
+
const apexRadius = chunkC25NWWIH_cjs.pieApexRadius(halfGap, rawSweep, outerRadius);
|
|
7933
|
+
return Math.min(cornerRadius, chunkC25NWWIH_cjs.maxApexCornerRadius(outerRadius, apexRadius, availableSweep));
|
|
7934
7934
|
}
|
|
7935
7935
|
function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColor) {
|
|
7936
7936
|
const { chart, bounds, diagnostics, nextOrder } = context;
|
|
7937
7937
|
const { centerX, centerY, innerRadius, maxRadius, gapPx } = layout;
|
|
7938
|
-
const color =
|
|
7939
|
-
const shadow =
|
|
7940
|
-
const trackPath =
|
|
7938
|
+
const color = chunkC25NWWIH_cjs.paint(rawColor, diagnostics, chart.id);
|
|
7939
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
7940
|
+
const trackPath = chunkC25NWWIH_cjs.createPieSlicePath(
|
|
7941
7941
|
{ centerX, centerY, outerRadius: maxRadius, innerRadius },
|
|
7942
7942
|
angles,
|
|
7943
7943
|
clampedCorner(layout, maxRadius, angles),
|
|
@@ -7950,12 +7950,12 @@ function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColo
|
|
|
7950
7950
|
bounds,
|
|
7951
7951
|
d: trackPath,
|
|
7952
7952
|
style: {
|
|
7953
|
-
fill:
|
|
7953
|
+
fill: chunkC25NWWIH_cjs.paint(chart.gridColor ?? TRACK_COLOR_FALLBACK, diagnostics, chart.id),
|
|
7954
7954
|
opacity: chart.config?.polarTrackOpacity,
|
|
7955
7955
|
...trackStroke(context)
|
|
7956
7956
|
}
|
|
7957
7957
|
};
|
|
7958
|
-
const wedgePath =
|
|
7958
|
+
const wedgePath = chunkC25NWWIH_cjs.createPieSlicePath(
|
|
7959
7959
|
{ centerX, centerY, outerRadius, innerRadius },
|
|
7960
7960
|
angles,
|
|
7961
7961
|
clampedCorner(layout, outerRadius, angles),
|
|
@@ -7984,7 +7984,7 @@ function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColo
|
|
|
7984
7984
|
pieEnd: angles.end,
|
|
7985
7985
|
pieValue: value
|
|
7986
7986
|
},
|
|
7987
|
-
prop:
|
|
7987
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
|
|
7988
7988
|
style: { fill: color, innerShadow: shadow, ...wedgeStroke(context) }
|
|
7989
7989
|
};
|
|
7990
7990
|
return shadowCaster ? [track, shadowCaster, wedge] : [track, wedge];
|
|
@@ -7997,7 +7997,7 @@ function trackStroke(context) {
|
|
|
7997
7997
|
const dash = (config.polarTrackDash ?? "").split(/[ ,]+/).map(Number).filter((part) => Number.isFinite(part) && part > 0);
|
|
7998
7998
|
return {
|
|
7999
7999
|
stroke: { kind: "solid", color: config.polarTrackStroke },
|
|
8000
|
-
strokeWidth:
|
|
8000
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(config.polarTrackStrokeWidth, 1),
|
|
8001
8001
|
dash: dash.length > 0 ? dash : void 0
|
|
8002
8002
|
};
|
|
8003
8003
|
}
|
|
@@ -8008,7 +8008,7 @@ function wedgeStroke(context) {
|
|
|
8008
8008
|
}
|
|
8009
8009
|
return {
|
|
8010
8010
|
stroke: { kind: "solid", color: config.pieStroke },
|
|
8011
|
-
strokeWidth:
|
|
8011
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(config.pieStrokeWidth, 1)
|
|
8012
8012
|
};
|
|
8013
8013
|
}
|
|
8014
8014
|
function ringNodes(context, layout) {
|
|
@@ -8016,7 +8016,7 @@ function ringNodes(context, layout) {
|
|
|
8016
8016
|
if (!chart.config?.polarRings || layout.range <= 0) {
|
|
8017
8017
|
return [];
|
|
8018
8018
|
}
|
|
8019
|
-
return
|
|
8019
|
+
return chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > layout.axisMin && tick < layout.axisMin + layout.range).map((tick) => {
|
|
8020
8020
|
const radius = layout.innerRadius + (layout.maxRadius - layout.innerRadius) * (tick - layout.axisMin) / layout.range;
|
|
8021
8021
|
return {
|
|
8022
8022
|
type: "ellipse",
|
|
@@ -8030,7 +8030,7 @@ function ringNodes(context, layout) {
|
|
|
8030
8030
|
style: {
|
|
8031
8031
|
fill: { kind: "none" },
|
|
8032
8032
|
stroke: { kind: "solid", color: chart.textColor ?? "#334155" },
|
|
8033
|
-
strokeWidth:
|
|
8033
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1),
|
|
8034
8034
|
opacity: 0.25
|
|
8035
8035
|
}
|
|
8036
8036
|
};
|
|
@@ -8042,10 +8042,10 @@ function renderPolarArea(context) {
|
|
|
8042
8042
|
const showLabels = context.showLabels && sweep >= MIN_LABEL_SWEEP;
|
|
8043
8043
|
const wedges = context.chart.series.flatMap((series, index) => {
|
|
8044
8044
|
const angles = { start: start + index * sweep, end: start + (index + 1) * sweep };
|
|
8045
|
-
const value = Math.max(0,
|
|
8045
|
+
const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
|
|
8046
8046
|
const fraction = range > 0 ? Math.min(1, Math.max(0, (value - axisMin) / range)) : 0;
|
|
8047
8047
|
const outerRadius = Math.max(innerRadius + 1, innerRadius + (maxRadius - innerRadius) * fraction);
|
|
8048
|
-
const rawColor = series.color ??
|
|
8048
|
+
const rawColor = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[index % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
8049
8049
|
const nodes = wedgeNodes(context, layout, series, angles, outerRadius, value, rawColor);
|
|
8050
8050
|
if (!showLabels) {
|
|
8051
8051
|
return nodes;
|
|
@@ -8056,10 +8056,10 @@ function renderPolarArea(context) {
|
|
|
8056
8056
|
return [...wedges, ...ringNodes(context, layout)];
|
|
8057
8057
|
}
|
|
8058
8058
|
function labelSizes(chart) {
|
|
8059
|
-
const base = Math.max(9,
|
|
8059
|
+
const base = Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12));
|
|
8060
8060
|
return {
|
|
8061
|
-
nameSize: Math.max(6,
|
|
8062
|
-
valueSize: Math.max(6,
|
|
8061
|
+
nameSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.polarNameSize, base)),
|
|
8062
|
+
valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.polarValueSize, base))
|
|
8063
8063
|
};
|
|
8064
8064
|
}
|
|
8065
8065
|
function labelPlacement2(context, geometry, angles, series, fillColor) {
|
|
@@ -8067,8 +8067,8 @@ function labelPlacement2(context, geometry, angles, series, fillColor) {
|
|
|
8067
8067
|
const { nameSize, valueSize } = labelSizes(context.chart);
|
|
8068
8068
|
const lineHeight = (nameSize + valueSize) * 1.2 / 2;
|
|
8069
8069
|
const ringThickness = geometry.outerRadius - geometry.innerRadius;
|
|
8070
|
-
const labelOffsetX =
|
|
8071
|
-
const labelOffsetY =
|
|
8070
|
+
const labelOffsetX = chunkC25NWWIH_cjs.finite(series.labelOffsetX, 0);
|
|
8071
|
+
const labelOffsetY = chunkC25NWWIH_cjs.finite(series.labelOffsetY, 0);
|
|
8072
8072
|
const hasManualOffset = labelOffsetX !== 0 || labelOffsetY !== 0;
|
|
8073
8073
|
const tooThin = ringThickness < lineHeight * 2 + 6;
|
|
8074
8074
|
const chordWidth = 2 * geometry.outerRadius * Math.sin(Math.abs(angles.end - angles.start) / 2);
|
|
@@ -8078,11 +8078,11 @@ function labelPlacement2(context, geometry, angles, series, fillColor) {
|
|
|
8078
8078
|
return void 0;
|
|
8079
8079
|
}
|
|
8080
8080
|
const outside = hasManualOffset || !fitsInline;
|
|
8081
|
-
const tickStart =
|
|
8082
|
-
const point = outside ? hasManualOffset ? addOffset(
|
|
8083
|
-
const color = outside ? outsideLabels && context.chart.textColor ? context.chart.textColor :
|
|
8084
|
-
|
|
8085
|
-
|
|
8081
|
+
const tickStart = chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + LEADER_INSET);
|
|
8082
|
+
const point = outside ? hasManualOffset ? addOffset(chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius), labelOffsetX, labelOffsetY) : chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + OUTSIDE_GAP) : chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.innerRadius + ringThickness * LABEL_RADIUS_FRACTION);
|
|
8083
|
+
const color = outside ? outsideLabels && context.chart.textColor ? context.chart.textColor : chunkC25NWWIH_cjs.sameHueTint(chunkC25NWWIH_cjs.representativeColor(fillColor, OUTSIDE_FALLBACK_COLOR), OUTSIDE_TINT_LIGHTNESS) ?? OUTSIDE_FALLBACK_COLOR : chunkC25NWWIH_cjs.sameHueContrastColor(
|
|
8084
|
+
chunkC25NWWIH_cjs.representativeColor(fillColor, "#0f172a"),
|
|
8085
|
+
chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(fillColor, "#0f172a"))
|
|
8086
8086
|
);
|
|
8087
8087
|
return { point, color, outside, mid, tickStart };
|
|
8088
8088
|
}
|
|
@@ -8095,7 +8095,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
|
|
|
8095
8095
|
const { point, color, outside, mid, tickStart } = placement;
|
|
8096
8096
|
const { nameSize, valueSize } = labelSizes(chart);
|
|
8097
8097
|
const lineHeight = Math.max(nameSize, valueSize) * 1.2;
|
|
8098
|
-
const tickEnd = outside ?
|
|
8098
|
+
const tickEnd = outside ? chunkC25NWWIH_cjs.clipSegmentToRect(tickStart, point, LABEL_WIDTH2 / 2, lineHeight) : tickStart;
|
|
8099
8099
|
const tick = {
|
|
8100
8100
|
type: "path",
|
|
8101
8101
|
id: `chart-polar-area-label-tick-${chart.id}-${series.id}`,
|
|
@@ -8117,7 +8117,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
|
|
|
8117
8117
|
bounds,
|
|
8118
8118
|
x: point.x - LABEL_WIDTH2 / 2,
|
|
8119
8119
|
width: LABEL_WIDTH2,
|
|
8120
|
-
fontFamily: chart.fontFamily ??
|
|
8120
|
+
fontFamily: chart.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
|
|
8121
8121
|
align: "center",
|
|
8122
8122
|
verticalAlign: "middle",
|
|
8123
8123
|
lineHeight: 1.2,
|
|
@@ -8140,7 +8140,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
|
|
|
8140
8140
|
lines: [series.label],
|
|
8141
8141
|
fontWeight: valueFirst ? "normal" : "bold",
|
|
8142
8142
|
detail,
|
|
8143
|
-
prop:
|
|
8143
|
+
prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
|
|
8144
8144
|
};
|
|
8145
8145
|
const valueText = {
|
|
8146
8146
|
type: "text",
|
|
@@ -8150,10 +8150,10 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
|
|
|
8150
8150
|
y: valueY,
|
|
8151
8151
|
height: valueSize * 1.2,
|
|
8152
8152
|
fontSize: valueSize,
|
|
8153
|
-
lines: [
|
|
8153
|
+
lines: [chunkC25NWWIH_cjs.formatFieldValue(value)],
|
|
8154
8154
|
fontWeight: valueFirst ? "bold" : "normal",
|
|
8155
8155
|
detail,
|
|
8156
|
-
prop:
|
|
8156
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
|
|
8157
8157
|
propKind: "value"
|
|
8158
8158
|
};
|
|
8159
8159
|
return [tick, nameText, valueText];
|
|
@@ -8171,10 +8171,10 @@ function radarFrameFor(context) {
|
|
|
8171
8171
|
return {
|
|
8172
8172
|
centerX: plot.x + plot.width / 2,
|
|
8173
8173
|
centerY: plot.y + plot.height / 2,
|
|
8174
|
-
radius:
|
|
8174
|
+
radius: chunkC25NWWIH_cjs.radarRadius(plot.width, plot.height, chunkC25NWWIH_cjs.finite(chart.fontSize, 12), context.showLabels),
|
|
8175
8175
|
min: chart.axisY.min,
|
|
8176
8176
|
max: chart.axisY.max,
|
|
8177
|
-
count:
|
|
8177
|
+
count: chunkC25NWWIH_cjs.radarCategoryCount(configuredCount, dataCount),
|
|
8178
8178
|
curved: chart.chartType === "radial",
|
|
8179
8179
|
tension: chart.config?.radarTension
|
|
8180
8180
|
};
|
|
@@ -8184,7 +8184,7 @@ function createRadarGeometry(context) {
|
|
|
8184
8184
|
const configuredCategories = chart.config?.categories?.filter(Boolean) ?? [];
|
|
8185
8185
|
const frame = radarFrameFor(context);
|
|
8186
8186
|
const categories = createCategories(configuredCategories, frame.count);
|
|
8187
|
-
const pointAt = (pointRadius, pointIndex) =>
|
|
8187
|
+
const pointAt = (pointRadius, pointIndex) => chunkC25NWWIH_cjs.radarPointAt(frame, pointIndex, pointRadius);
|
|
8188
8188
|
return {
|
|
8189
8189
|
circular: frame.curved,
|
|
8190
8190
|
areaOpacity: Math.max(0, Math.min(1, chart.config?.areaOpacity ?? 0.16)),
|
|
@@ -8196,9 +8196,9 @@ function createRadarGeometry(context) {
|
|
|
8196
8196
|
centerX: frame.centerX,
|
|
8197
8197
|
centerY: frame.centerY,
|
|
8198
8198
|
radius: frame.radius,
|
|
8199
|
-
radiusForValue: (value) =>
|
|
8199
|
+
radiusForValue: (value) => chunkC25NWWIH_cjs.radarRadiusForValue(frame, value),
|
|
8200
8200
|
pointAt,
|
|
8201
|
-
polygonPath: (pointRadius) =>
|
|
8201
|
+
polygonPath: (pointRadius) => chunkC25NWWIH_cjs.radarSeriesPath(
|
|
8202
8202
|
categories.map((_, index) => pointAt(pointRadius, index)),
|
|
8203
8203
|
false
|
|
8204
8204
|
)
|
|
@@ -8219,7 +8219,7 @@ function renderRadarGrid(context, geometry) {
|
|
|
8219
8219
|
return [...renderRings(context, geometry), ...geometry.showSpokes ? renderSpokes(context, geometry) : []];
|
|
8220
8220
|
}
|
|
8221
8221
|
function renderRings(context, geometry) {
|
|
8222
|
-
return
|
|
8222
|
+
return chunkC25NWWIH_cjs.chartTicks(context.chart.axisY).filter((tick) => tick > context.chart.axisY.min).map((tick) => createRingNode(context, geometry, tick));
|
|
8223
8223
|
}
|
|
8224
8224
|
function createRingNode(context, geometry, tick) {
|
|
8225
8225
|
const { chart, bounds, nextOrder } = context;
|
|
@@ -8227,7 +8227,7 @@ function createRingNode(context, geometry, tick) {
|
|
|
8227
8227
|
const style = {
|
|
8228
8228
|
fill: { kind: "none" },
|
|
8229
8229
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
8230
|
-
strokeWidth:
|
|
8230
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
|
|
8231
8231
|
};
|
|
8232
8232
|
if (geometry.circular) {
|
|
8233
8233
|
return {
|
|
@@ -8264,7 +8264,7 @@ function renderSpokes(context, geometry) {
|
|
|
8264
8264
|
style: {
|
|
8265
8265
|
fill: { kind: "none" },
|
|
8266
8266
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
8267
|
-
strokeWidth:
|
|
8267
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
|
|
8268
8268
|
}
|
|
8269
8269
|
};
|
|
8270
8270
|
});
|
|
@@ -8284,7 +8284,7 @@ function createCategoryLabel(context, geometry, category, categoryIndex) {
|
|
|
8284
8284
|
const labelPoint = geometry.pointAt(geometry.radius + 10, categoryIndex);
|
|
8285
8285
|
const horizontalOffset = labelPoint.x - geometry.centerX;
|
|
8286
8286
|
const width = Math.max(64, Math.min(120, plot.width / 3));
|
|
8287
|
-
return
|
|
8287
|
+
return chunkC25NWWIH_cjs.chartText({
|
|
8288
8288
|
id: `chart-radar-label-${chart.id}-${categoryIndex}`,
|
|
8289
8289
|
order: nextOrder(),
|
|
8290
8290
|
bounds,
|
|
@@ -8322,9 +8322,9 @@ function renderRadarSeries(context, geometry) {
|
|
|
8322
8322
|
return nodes;
|
|
8323
8323
|
}
|
|
8324
8324
|
function renderSeries(context, geometry, series, seriesIndex) {
|
|
8325
|
-
const color = series.color ??
|
|
8325
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
8326
8326
|
const points = seriesPoints(series, context, geometry);
|
|
8327
|
-
const path =
|
|
8327
|
+
const path = chunkC25NWWIH_cjs.radarSeriesPath(points, geometry.circular, geometry.tension);
|
|
8328
8328
|
return [
|
|
8329
8329
|
createSeriesFill(context, geometry, series, path, color),
|
|
8330
8330
|
...geometry.strokeWidth > 0 ? [createSeriesStroke(context, geometry, series, path, color)] : [],
|
|
@@ -8347,7 +8347,7 @@ function createSeriesFill(context, geometry, series, path, color) {
|
|
|
8347
8347
|
d: path,
|
|
8348
8348
|
detail: { of: "chartSeries", series: series.id },
|
|
8349
8349
|
style: {
|
|
8350
|
-
fill:
|
|
8350
|
+
fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
|
|
8351
8351
|
stroke: { kind: "none" },
|
|
8352
8352
|
opacity: Math.max(0, Math.min(1, series.opacity ?? geometry.areaOpacity))
|
|
8353
8353
|
}
|
|
@@ -8364,10 +8364,10 @@ function createSeriesStroke(context, geometry, series, path, color) {
|
|
|
8364
8364
|
detail: { of: "chartSeries", series: series.id },
|
|
8365
8365
|
style: {
|
|
8366
8366
|
fill: { kind: "none" },
|
|
8367
|
-
stroke:
|
|
8367
|
+
stroke: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
|
|
8368
8368
|
strokeWidth: geometry.strokeWidth,
|
|
8369
8369
|
lineJoin: "round",
|
|
8370
|
-
shadow:
|
|
8370
|
+
shadow: chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
|
|
8371
8371
|
}
|
|
8372
8372
|
};
|
|
8373
8373
|
}
|
|
@@ -8383,8 +8383,8 @@ function createSeriesPoints(context, geometry, series, points, color) {
|
|
|
8383
8383
|
rx: geometry.pointSize,
|
|
8384
8384
|
ry: geometry.pointSize,
|
|
8385
8385
|
detail: { of: "chartValue", series: series.id, valueIndex: pointIndex, mark: "radar-vertex" },
|
|
8386
|
-
prop:
|
|
8387
|
-
style: { fill:
|
|
8386
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, pointIndex),
|
|
8387
|
+
style: { fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id) }
|
|
8388
8388
|
}));
|
|
8389
8389
|
}
|
|
8390
8390
|
|
|
@@ -8438,25 +8438,25 @@ function ringProgressPath(cx, cy, r, sweep, from) {
|
|
|
8438
8438
|
}
|
|
8439
8439
|
function layoutOf2(context) {
|
|
8440
8440
|
const { chart, plot } = context;
|
|
8441
|
-
const axisMin =
|
|
8441
|
+
const axisMin = chunkC25NWWIH_cjs.finite(chart.axisY.min, 0);
|
|
8442
8442
|
return {
|
|
8443
8443
|
centerX: plot.x + plot.width / 2,
|
|
8444
8444
|
centerY: plot.y + plot.height / 2,
|
|
8445
8445
|
outerRadius: Math.max(1, Math.min(plot.width, plot.height) / 2 - 4),
|
|
8446
|
-
ringThickness: Math.max(1,
|
|
8447
|
-
ringGap: Math.max(0,
|
|
8446
|
+
ringThickness: Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.ringThickness, DEFAULT_RING_THICKNESS)),
|
|
8447
|
+
ringGap: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.ringGap, DEFAULT_RING_GAP)),
|
|
8448
8448
|
axisMin,
|
|
8449
|
-
range:
|
|
8450
|
-
start: TOP3 +
|
|
8451
|
-
total: Math.min(360, Math.max(1,
|
|
8452
|
-
trackOpacity: Math.min(1, Math.max(0,
|
|
8449
|
+
range: chunkC25NWWIH_cjs.finite(chart.axisY.max, 100) - axisMin,
|
|
8450
|
+
start: TOP3 + chunkC25NWWIH_cjs.finite(chart.config?.ringStartAngle, 0) * Math.PI / 180,
|
|
8451
|
+
total: Math.min(360, Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.ringSweep, 360))) * Math.PI / 180,
|
|
8452
|
+
trackOpacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.ringTrackOpacity, TRACK_OPACITY))),
|
|
8453
8453
|
cap: chart.config?.ringCap ?? "round"
|
|
8454
8454
|
};
|
|
8455
8455
|
}
|
|
8456
8456
|
function ringEndShadows(context, layout, series, radius, sweep, color) {
|
|
8457
8457
|
const { chart, bounds, nextOrder } = context;
|
|
8458
8458
|
const { centerX, centerY, ringThickness, start } = layout;
|
|
8459
|
-
const shadow =
|
|
8459
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
8460
8460
|
const isFullCircle = sweep >= Math.PI * 2 - FULL_SWEEP_EPSILON;
|
|
8461
8461
|
if (!shadow || isFullCircle) {
|
|
8462
8462
|
return [];
|
|
@@ -8494,8 +8494,8 @@ function ringNodes2(context, layout, series, index) {
|
|
|
8494
8494
|
if (radius <= ringThickness / 2) {
|
|
8495
8495
|
return [];
|
|
8496
8496
|
}
|
|
8497
|
-
const color =
|
|
8498
|
-
const value = Math.max(0,
|
|
8497
|
+
const color = chunkC25NWWIH_cjs.paint(series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[index % chunkC25NWWIH_cjs.CHART_COLORS.length], diagnostics, chart.id);
|
|
8498
|
+
const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
|
|
8499
8499
|
const fraction = range > 0 ? Math.min(1, Math.max(0, (value - axisMin) / range)) : 0;
|
|
8500
8500
|
const trackStyle = {
|
|
8501
8501
|
fill: { kind: "none" },
|
|
@@ -8533,7 +8533,7 @@ function ringNodes2(context, layout, series, index) {
|
|
|
8533
8533
|
bounds,
|
|
8534
8534
|
d: ringProgressPath(centerX, centerY, radius, sweep, start),
|
|
8535
8535
|
detail: { of: "chartValue", series: series.id, valueIndex: 0, mark: "radial-bar-ring" },
|
|
8536
|
-
prop:
|
|
8536
|
+
prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
|
|
8537
8537
|
style: { fill: { kind: "none" }, stroke: color, strokeWidth: ringThickness, lineCap: cap }
|
|
8538
8538
|
};
|
|
8539
8539
|
return [track, ...casters, progress];
|
|
@@ -8545,7 +8545,7 @@ function renderRadialBar(context) {
|
|
|
8545
8545
|
|
|
8546
8546
|
// src/renderScene/charts/renderers/sankey/links.ts
|
|
8547
8547
|
function renderSankeyLinks(context, data) {
|
|
8548
|
-
const shadow =
|
|
8548
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(context.chart.shadowStyle);
|
|
8549
8549
|
const gradient = Boolean(context.chart.config?.linkGradient);
|
|
8550
8550
|
const { plot } = context;
|
|
8551
8551
|
const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
|
|
@@ -8566,8 +8566,8 @@ function createSankeyLinkRibbon(context, data, link, linkIndex, gradient) {
|
|
|
8566
8566
|
bottom: data.baseY + link.targetY1
|
|
8567
8567
|
};
|
|
8568
8568
|
const config = context.chart.config;
|
|
8569
|
-
const fromColor = link.color || data.nodeColors.get(link.source) ||
|
|
8570
|
-
const toColor = data.nodeColors.get(link.target) ||
|
|
8569
|
+
const fromColor = link.color || data.nodeColors.get(link.source) || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
|
|
8570
|
+
const toColor = data.nodeColors.get(link.target) || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
|
|
8571
8571
|
const fill2 = gradient ? {
|
|
8572
8572
|
kind: "linear-gradient",
|
|
8573
8573
|
angle: 0,
|
|
@@ -8582,9 +8582,9 @@ function createSankeyLinkRibbon(context, data, link, linkIndex, gradient) {
|
|
|
8582
8582
|
toId: link.target,
|
|
8583
8583
|
source,
|
|
8584
8584
|
target,
|
|
8585
|
-
controlX: source.x + (target.x - source.x) * Math.min(1, Math.max(0,
|
|
8585
|
+
controlX: source.x + (target.x - source.x) * Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(config?.sankeyLinkCurve, 0.5))),
|
|
8586
8586
|
fill: fill2,
|
|
8587
|
-
opacity: Math.min(1, Math.max(0,
|
|
8587
|
+
opacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(config?.sankeyLinkOpacity, link.color ? 0.85 : 0.45)))
|
|
8588
8588
|
};
|
|
8589
8589
|
}
|
|
8590
8590
|
function createSankeyRibbonNode(context, ribbon, shadow, clipPath, gradient) {
|
|
@@ -8625,7 +8625,7 @@ function sankeyRibbonPath(ribbon) {
|
|
|
8625
8625
|
var OUTSIDE_LABEL_LIGHTNESS_ON_LIGHT_BG = 0.3;
|
|
8626
8626
|
var OUTSIDE_LABEL_LIGHTNESS_ON_DARK_BG = 0.78;
|
|
8627
8627
|
function renderSankeyNodes(context, data) {
|
|
8628
|
-
const cornerRadius = Math.max(0,
|
|
8628
|
+
const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.barCornerRadius, 0));
|
|
8629
8629
|
const nodes = [];
|
|
8630
8630
|
data.nodes.forEach((node) => {
|
|
8631
8631
|
nodes.push(createNodeRect(context, data, node, cornerRadius));
|
|
@@ -8641,8 +8641,8 @@ function createNodeRect(context, data, node, cornerRadius) {
|
|
|
8641
8641
|
const x = data.baseX + node.x;
|
|
8642
8642
|
const y = data.baseY + node.y;
|
|
8643
8643
|
const style = {
|
|
8644
|
-
fill: { kind: "solid", color: node.color ||
|
|
8645
|
-
shadow:
|
|
8644
|
+
fill: { kind: "solid", color: node.color || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
|
|
8645
|
+
shadow: chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
|
|
8646
8646
|
};
|
|
8647
8647
|
const isFirstColumn = node.column === 0;
|
|
8648
8648
|
const isLastColumn = node.column === data.columnCount - 1;
|
|
@@ -8668,7 +8668,7 @@ function createNodeRect(context, data, node, cornerRadius) {
|
|
|
8668
8668
|
id: `chart-sankey-node-${chart.id}-${node.id}`,
|
|
8669
8669
|
order: nextOrder(),
|
|
8670
8670
|
bounds,
|
|
8671
|
-
d:
|
|
8671
|
+
d: chunkC25NWWIH_cjs.leftRoundedRectPath(x, y, node.width, node.height, cornerRadius),
|
|
8672
8672
|
style,
|
|
8673
8673
|
detail
|
|
8674
8674
|
};
|
|
@@ -8679,7 +8679,7 @@ function createNodeRect(context, data, node, cornerRadius) {
|
|
|
8679
8679
|
id: `chart-sankey-node-${chart.id}-${node.id}`,
|
|
8680
8680
|
order: nextOrder(),
|
|
8681
8681
|
bounds,
|
|
8682
|
-
d:
|
|
8682
|
+
d: chunkC25NWWIH_cjs.rightRoundedRectPath(x, y, node.width, node.height, cornerRadius),
|
|
8683
8683
|
style,
|
|
8684
8684
|
detail
|
|
8685
8685
|
};
|
|
@@ -8705,9 +8705,9 @@ function createNodeLabel(context, data, node) {
|
|
|
8705
8705
|
return void 0;
|
|
8706
8706
|
}
|
|
8707
8707
|
const fallback = chart.textColor ?? "#0f172a";
|
|
8708
|
-
const defaultColor = position === "inside" ?
|
|
8708
|
+
const defaultColor = position === "inside" ? chunkC25NWWIH_cjs.contrastTextColor(node.color) : chunkC25NWWIH_cjs.sameHueTint(
|
|
8709
8709
|
node.color,
|
|
8710
|
-
|
|
8710
|
+
chunkC25NWWIH_cjs.isLightColor(fallback) ? OUTSIDE_LABEL_LIGHTNESS_ON_DARK_BG : OUTSIDE_LABEL_LIGHTNESS_ON_LIGHT_BG
|
|
8711
8711
|
) ?? fallback;
|
|
8712
8712
|
const color = chart.config?.labelColor ?? defaultColor;
|
|
8713
8713
|
return { ...label, color, detail: { of: "chartSeries", series: node.id, mark: "sankey-node-label" } };
|
|
@@ -8719,7 +8719,7 @@ function createOutsideLabel(context, data, node) {
|
|
|
8719
8719
|
const y = data.baseY + node.y;
|
|
8720
8720
|
const labelX2 = isLastColumn ? x - data.labelGutter + 8 : x + node.width + 6;
|
|
8721
8721
|
return {
|
|
8722
|
-
...
|
|
8722
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
8723
8723
|
id: `chart-sankey-label-${chart.id}-${node.id}`,
|
|
8724
8724
|
order: nextOrder(),
|
|
8725
8725
|
bounds,
|
|
@@ -8744,11 +8744,11 @@ function createInsideLabel(context, data, node, orientation) {
|
|
|
8744
8744
|
if (orientation === "vertical") {
|
|
8745
8745
|
const thickness = fontSize * 1.4;
|
|
8746
8746
|
const width = Math.max(1, node.height - 8);
|
|
8747
|
-
if (
|
|
8747
|
+
if (chunkC25NWWIH_cjs.estimateTextWidth(node.label, fontSize, false) > width) {
|
|
8748
8748
|
return void 0;
|
|
8749
8749
|
}
|
|
8750
8750
|
return {
|
|
8751
|
-
...
|
|
8751
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
8752
8752
|
id,
|
|
8753
8753
|
order: nextOrder(),
|
|
8754
8754
|
bounds,
|
|
@@ -8765,7 +8765,7 @@ function createInsideLabel(context, data, node, orientation) {
|
|
|
8765
8765
|
};
|
|
8766
8766
|
}
|
|
8767
8767
|
return {
|
|
8768
|
-
...
|
|
8768
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
8769
8769
|
id,
|
|
8770
8770
|
order: nextOrder(),
|
|
8771
8771
|
bounds,
|
|
@@ -8786,18 +8786,18 @@ function createSankeyRenderData(context) {
|
|
|
8786
8786
|
const labelGutter = showLabels ? 92 : 0;
|
|
8787
8787
|
const availableWidth = Math.max(1, plot.width - labelGutter * 2);
|
|
8788
8788
|
const layout = layoutSankey(createNodeInputs(context), createLinkInputs(context), availableWidth, plot.height, {
|
|
8789
|
-
nodeWidth: Math.max(1,
|
|
8790
|
-
nodeGap: Math.max(0,
|
|
8789
|
+
nodeWidth: Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.sankeyNodeWidth, 18)),
|
|
8790
|
+
nodeGap: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.sankeyNodeGap, 8))
|
|
8791
8791
|
});
|
|
8792
8792
|
return {
|
|
8793
8793
|
...layout,
|
|
8794
8794
|
baseX: plot.x + labelGutter,
|
|
8795
8795
|
baseY: plot.y,
|
|
8796
8796
|
labelGutter,
|
|
8797
|
-
fontSize: Math.max(9,
|
|
8798
|
-
labelSize: Math.max(6,
|
|
8797
|
+
fontSize: Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)),
|
|
8798
|
+
labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.sankeyLabelSize, Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) - 2)),
|
|
8799
8799
|
columnCount: Math.max(1, ...layout.nodes.map((node) => node.column + 1)),
|
|
8800
|
-
nodeColors: new Map(layout.nodes.map((node) => [node.id, node.color ||
|
|
8800
|
+
nodeColors: new Map(layout.nodes.map((node) => [node.id, node.color || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL]))
|
|
8801
8801
|
};
|
|
8802
8802
|
}
|
|
8803
8803
|
function createNodeInputs(context) {
|
|
@@ -8819,7 +8819,7 @@ function createLinkInputs(context) {
|
|
|
8819
8819
|
source: series.source,
|
|
8820
8820
|
target: series.target,
|
|
8821
8821
|
value: series.values[0] ?? 0,
|
|
8822
|
-
color: series.color ?
|
|
8822
|
+
color: series.color ? chunkC25NWWIH_cjs.representativeColor(series.color, chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL) : void 0
|
|
8823
8823
|
});
|
|
8824
8824
|
});
|
|
8825
8825
|
return inputs;
|
|
@@ -8838,9 +8838,9 @@ function renderSankey(context) {
|
|
|
8838
8838
|
var DEFAULT_POINT_SIZE = 4;
|
|
8839
8839
|
function renderScatter(context) {
|
|
8840
8840
|
const nodes = [];
|
|
8841
|
-
const shadow =
|
|
8841
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(context.chart.shadowStyle);
|
|
8842
8842
|
context.chart.series.forEach((series, seriesIndex) => {
|
|
8843
|
-
const color = series.color ??
|
|
8843
|
+
const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
|
|
8844
8844
|
const points = pixelPoints(context, seriesValuePairs(context.chart, series));
|
|
8845
8845
|
points.forEach((point, pointIndex) => {
|
|
8846
8846
|
nodes.push(createScatterPoint(context, series, point, pointIndex, color, shadow));
|
|
@@ -8864,8 +8864,8 @@ function createScatterPoint(context, series, point, pointIndex, color, shadow) {
|
|
|
8864
8864
|
ry: radius,
|
|
8865
8865
|
detail: { of: "chartValue", series: series.id, valueIndex: pointIndex },
|
|
8866
8866
|
style: {
|
|
8867
|
-
fill:
|
|
8868
|
-
stroke: strokeWidth > 0 ?
|
|
8867
|
+
fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
|
|
8868
|
+
stroke: strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(config?.pointStrokeColor ?? color, diagnostics, chart.id) : void 0,
|
|
8869
8869
|
strokeWidth: strokeWidth > 0 ? strokeWidth : void 0,
|
|
8870
8870
|
opacity: config?.pointOpacity,
|
|
8871
8871
|
shadow
|
|
@@ -8876,14 +8876,14 @@ function createScatterPoint(context, series, point, pointIndex, color, shadow) {
|
|
|
8876
8876
|
// src/renderScene/charts/renderers/treemap/layout.ts
|
|
8877
8877
|
function createTreemapLayout(context) {
|
|
8878
8878
|
const { chart, plot, showLegend } = context;
|
|
8879
|
-
const fontSize = Math.max(9,
|
|
8879
|
+
const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12));
|
|
8880
8880
|
const legendPosition = chart.legendPosition === "left" ? "left" : chart.legendPosition === "right" ? "right" : "bottom";
|
|
8881
8881
|
const legendHeight = showLegend && legendPosition === "bottom" ? 48 : 0;
|
|
8882
|
-
const cellGap = Math.max(0,
|
|
8882
|
+
const cellGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.cellGap, 0));
|
|
8883
8883
|
return {
|
|
8884
8884
|
leaves: chart.series,
|
|
8885
|
-
bands:
|
|
8886
|
-
zones: chart.config?.zones?.length ? chart.config.zones :
|
|
8885
|
+
bands: chunkC25NWWIH_cjs.axisBands(chart.axisY),
|
|
8886
|
+
zones: chart.config?.zones?.length ? chart.config.zones : chunkC25NWWIH_cjs.DEFAULT_HEATMAP_ZONES,
|
|
8887
8887
|
fontSize,
|
|
8888
8888
|
smallFontSize: Math.max(8, fontSize - 1),
|
|
8889
8889
|
legendPosition,
|
|
@@ -8891,18 +8891,18 @@ function createTreemapLayout(context) {
|
|
|
8891
8891
|
gridWidth: Math.max(1, plot.width),
|
|
8892
8892
|
gridHeight: Math.max(1, plot.height - legendHeight),
|
|
8893
8893
|
cellGap,
|
|
8894
|
-
cellRadius: Math.max(0,
|
|
8895
|
-
headerHeight: Math.max(0,
|
|
8896
|
-
labelSize: Math.max(6,
|
|
8897
|
-
valueSize: Math.max(6,
|
|
8898
|
-
labelPadding: Math.max(0,
|
|
8894
|
+
cellRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barCornerRadius, cellGap)),
|
|
8895
|
+
headerHeight: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.headerHeight, 20)),
|
|
8896
|
+
labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.tileLabelSize, Math.max(8, fontSize - 1))),
|
|
8897
|
+
valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.tileValueSize, Math.max(8, fontSize - 1))),
|
|
8898
|
+
labelPadding: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.tileLabelPadding, 4))
|
|
8899
8899
|
};
|
|
8900
8900
|
}
|
|
8901
8901
|
function treemapLeafValue(leaf) {
|
|
8902
8902
|
return leaf.values[0] ?? 0;
|
|
8903
8903
|
}
|
|
8904
8904
|
function treemapLeafColor(leaf, layout) {
|
|
8905
|
-
return leaf.color ??
|
|
8905
|
+
return leaf.color ?? chunkC25NWWIH_cjs.zoneColorAtValue(treemapLeafValue(leaf), layout.bands, layout.zones);
|
|
8906
8906
|
}
|
|
8907
8907
|
|
|
8908
8908
|
// src/renderScene/charts/renderers/treemap/legend.ts
|
|
@@ -8927,7 +8927,7 @@ function bandStops(layout) {
|
|
|
8927
8927
|
const zones = layout.zones.slice(0, bandCount);
|
|
8928
8928
|
return zones.map((zone, index) => ({
|
|
8929
8929
|
offset: bandRatio2(layout, layout.bands[index + 1] ?? layout.bands[layout.bands.length - 1]) * 100,
|
|
8930
|
-
color: zone.color ??
|
|
8930
|
+
color: zone.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL
|
|
8931
8931
|
}));
|
|
8932
8932
|
}
|
|
8933
8933
|
function renderBottomLegend(context, layout) {
|
|
@@ -8936,7 +8936,7 @@ function renderBottomLegend(context, layout) {
|
|
|
8936
8936
|
const barWidth = layout.gridWidth;
|
|
8937
8937
|
const labelHeight = layout.fontSize + 2;
|
|
8938
8938
|
const barY = plot.y + layout.gridHeight + CHART_GAP;
|
|
8939
|
-
const barBounds =
|
|
8939
|
+
const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: barX, y: barY, width: barWidth, height: BAR_THICKNESS2 });
|
|
8940
8940
|
const stops = bandStops(layout);
|
|
8941
8941
|
const bar = {
|
|
8942
8942
|
type: "rect",
|
|
@@ -8950,7 +8950,7 @@ function renderBottomLegend(context, layout) {
|
|
|
8950
8950
|
rx: 3,
|
|
8951
8951
|
zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
|
|
8952
8952
|
style: {
|
|
8953
|
-
fill: stops.length ? { kind: "linear-gradient", angle: 0, stops } : { kind: "solid", color:
|
|
8953
|
+
fill: stops.length ? { kind: "linear-gradient", angle: 0, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
|
|
8954
8954
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
8955
8955
|
strokeWidth: 1
|
|
8956
8956
|
}
|
|
@@ -8973,12 +8973,12 @@ function renderBottomLegend(context, layout) {
|
|
|
8973
8973
|
const isLast = index === layout.bands.length - 1;
|
|
8974
8974
|
const align = isFirst ? "left" : isLast ? "right" : "center";
|
|
8975
8975
|
const frameX = isFirst ? x : isLast ? x - LABEL_SIZE : x - LABEL_SIZE / 2;
|
|
8976
|
-
const label =
|
|
8976
|
+
const label = chunkC25NWWIH_cjs.chartText({
|
|
8977
8977
|
id: `chart-treemap-legend-tick-label-${chart.id}-${index}`,
|
|
8978
8978
|
order: nextOrder(),
|
|
8979
8979
|
bounds,
|
|
8980
8980
|
frame: { x: frameX, y: barY + BAR_THICKNESS2 + TICK_LENGTH3 + ROW_GAP2, width: LABEL_SIZE, height: labelHeight },
|
|
8981
|
-
text:
|
|
8981
|
+
text: chunkC25NWWIH_cjs.formatFieldValue(value),
|
|
8982
8982
|
chart,
|
|
8983
8983
|
align
|
|
8984
8984
|
});
|
|
@@ -8992,7 +8992,7 @@ function renderSideLegend(context, layout) {
|
|
|
8992
8992
|
const barTop = plot.y;
|
|
8993
8993
|
const barHeight = layout.gridHeight;
|
|
8994
8994
|
const barX = side === "left" ? plot.x - CHART_GAP - BAR_THICKNESS2 : plot.x + layout.gridWidth + CHART_GAP;
|
|
8995
|
-
const barBounds =
|
|
8995
|
+
const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: barX, y: barTop, width: BAR_THICKNESS2, height: barHeight });
|
|
8996
8996
|
const stops = bandStops(layout);
|
|
8997
8997
|
const bar = {
|
|
8998
8998
|
type: "rect",
|
|
@@ -9006,7 +9006,7 @@ function renderSideLegend(context, layout) {
|
|
|
9006
9006
|
rx: 3,
|
|
9007
9007
|
zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
|
|
9008
9008
|
style: {
|
|
9009
|
-
fill: stops.length ? { kind: "linear-gradient", angle: 270, stops } : { kind: "solid", color:
|
|
9009
|
+
fill: stops.length ? { kind: "linear-gradient", angle: 270, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
|
|
9010
9010
|
stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
|
|
9011
9011
|
strokeWidth: 1
|
|
9012
9012
|
}
|
|
@@ -9028,12 +9028,12 @@ function renderSideLegend(context, layout) {
|
|
|
9028
9028
|
strokeWidth: 1
|
|
9029
9029
|
}
|
|
9030
9030
|
};
|
|
9031
|
-
const label =
|
|
9031
|
+
const label = chunkC25NWWIH_cjs.chartText({
|
|
9032
9032
|
id: `chart-treemap-legend-tick-label-${chart.id}-${index}`,
|
|
9033
9033
|
order: nextOrder(),
|
|
9034
9034
|
bounds,
|
|
9035
9035
|
frame: { x: labelX2, y: y - layout.fontSize / 2, width: LABEL_SIZE, height: layout.fontSize + 2 },
|
|
9036
|
-
text:
|
|
9036
|
+
text: chunkC25NWWIH_cjs.formatFieldValue(value),
|
|
9037
9037
|
chart,
|
|
9038
9038
|
align: side === "left" ? "right" : "left"
|
|
9039
9039
|
});
|
|
@@ -9121,7 +9121,7 @@ function renderTreemapHeader(context, layout, header, index) {
|
|
|
9121
9121
|
};
|
|
9122
9122
|
const smallFontSize = Math.max(8, Math.max(9, chart.fontSize ?? 12) - 1);
|
|
9123
9123
|
const label = {
|
|
9124
|
-
...
|
|
9124
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
9125
9125
|
id: `chart-treemap-header-label-${chart.id}-${index}`,
|
|
9126
9126
|
order: nextOrder(),
|
|
9127
9127
|
bounds,
|
|
@@ -9136,7 +9136,7 @@ function renderTreemapHeader(context, layout, header, index) {
|
|
|
9136
9136
|
align: "center"
|
|
9137
9137
|
}),
|
|
9138
9138
|
fontSize: smallFontSize,
|
|
9139
|
-
color:
|
|
9139
|
+
color: chunkC25NWWIH_cjs.contrastTextColor(fill2)
|
|
9140
9140
|
};
|
|
9141
9141
|
return [background, label];
|
|
9142
9142
|
}
|
|
@@ -9152,7 +9152,7 @@ function renderTile(context, layout, tile, nextTile) {
|
|
|
9152
9152
|
function createTileNode(context, layout, tile, color, nextColor) {
|
|
9153
9153
|
const { chart, plot, bounds, diagnostics, nextOrder } = context;
|
|
9154
9154
|
const gap = layout.cellGap;
|
|
9155
|
-
const shadow =
|
|
9155
|
+
const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
|
|
9156
9156
|
const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
|
|
9157
9157
|
const tileX = plot.x + tile.x + gap / 2;
|
|
9158
9158
|
const tileY = plot.y + tile.y + gap / 2;
|
|
@@ -9169,10 +9169,10 @@ function createTileNode(context, layout, tile, color, nextColor) {
|
|
|
9169
9169
|
kind: "linear-gradient",
|
|
9170
9170
|
angle: 0,
|
|
9171
9171
|
stops: [
|
|
9172
|
-
{ offset: 0, color:
|
|
9173
|
-
{ offset: 100, color:
|
|
9172
|
+
{ offset: 0, color: chunkC25NWWIH_cjs.representativeColor(color, fallback) },
|
|
9173
|
+
{ offset: 100, color: chunkC25NWWIH_cjs.representativeColor(nextColor, fallback) }
|
|
9174
9174
|
]
|
|
9175
|
-
} :
|
|
9175
|
+
} : chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id);
|
|
9176
9176
|
return {
|
|
9177
9177
|
type: "rect",
|
|
9178
9178
|
id: `chart-treemap-tile-${chart.id}-${tile.item.leaf.id}`,
|
|
@@ -9186,7 +9186,7 @@ function createTileNode(context, layout, tile, color, nextColor) {
|
|
|
9186
9186
|
style: {
|
|
9187
9187
|
fill: fill2,
|
|
9188
9188
|
stroke: { kind: "solid", color: chart.config?.tileStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
|
|
9189
|
-
strokeWidth:
|
|
9189
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.tileStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)),
|
|
9190
9190
|
shadow,
|
|
9191
9191
|
clip: clipPath ? { type: "path", d: clipPath } : void 0
|
|
9192
9192
|
}
|
|
@@ -9201,12 +9201,12 @@ function createTileLabel(context, layout, tile, color) {
|
|
|
9201
9201
|
const height = Math.max(1, tile.height - gap - pad * 1.5);
|
|
9202
9202
|
const x = plot.x + tile.x + gap / 2 + pad;
|
|
9203
9203
|
const y = plot.y + tile.y + gap / 2 + pad * 0.75;
|
|
9204
|
-
const textColor = chart.config?.tileTextColor ??
|
|
9204
|
+
const textColor = chart.config?.tileTextColor ?? chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(color, "#ffffff"));
|
|
9205
9205
|
const lineHeight = layout.labelSize * 1.2;
|
|
9206
9206
|
const maxLines = Math.max(1, Math.floor(height / lineHeight));
|
|
9207
|
-
const labelLines =
|
|
9207
|
+
const labelLines = chunkC25NWWIH_cjs.wrapText(leaf.label, width, layout.labelSize).slice(0, maxLines).map((line) => chunkC25NWWIH_cjs.ellipsizeToWidth(line, width, layout.labelSize, true));
|
|
9208
9208
|
const label = {
|
|
9209
|
-
...
|
|
9209
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
9210
9210
|
id: `chart-treemap-label-${chart.id}-${leaf.id}`,
|
|
9211
9211
|
order: nextOrder(),
|
|
9212
9212
|
bounds,
|
|
@@ -9220,12 +9220,12 @@ function createTileLabel(context, layout, tile, color) {
|
|
|
9220
9220
|
color: textColor
|
|
9221
9221
|
};
|
|
9222
9222
|
const valueText = String(value);
|
|
9223
|
-
const valueFits = labelLines.length * lineHeight + layout.valueSize * 1.2 <= height + 2 &&
|
|
9223
|
+
const valueFits = labelLines.length * lineHeight + layout.valueSize * 1.2 <= height + 2 && chunkC25NWWIH_cjs.estimateTextWidth(valueText, layout.valueSize, false) <= width;
|
|
9224
9224
|
if (chart.config?.showTileValues === false || !valueFits) {
|
|
9225
9225
|
return [label];
|
|
9226
9226
|
}
|
|
9227
9227
|
const valueNode = {
|
|
9228
|
-
...
|
|
9228
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
9229
9229
|
id: `chart-treemap-value-${chart.id}-${leaf.id}`,
|
|
9230
9230
|
order: nextOrder(),
|
|
9231
9231
|
bounds,
|
|
@@ -9302,7 +9302,7 @@ function buildCartesianChart(foundation) {
|
|
|
9302
9302
|
|
|
9303
9303
|
// src/renderScene/charts/chartFrame.ts
|
|
9304
9304
|
function scaleDetail(chart, plot) {
|
|
9305
|
-
const horizontal =
|
|
9305
|
+
const horizontal = chunkC25NWWIH_cjs.isHorizontalBar(chart);
|
|
9306
9306
|
const range = horizontal ? `${plot.x},${plot.width}` : `${plot.y},${plot.height}`;
|
|
9307
9307
|
return {
|
|
9308
9308
|
of: "chartScale",
|
|
@@ -9310,7 +9310,7 @@ function scaleDetail(chart, plot) {
|
|
|
9310
9310
|
};
|
|
9311
9311
|
}
|
|
9312
9312
|
function pieDetail(chart, plot) {
|
|
9313
|
-
const { outerRadius, innerRadius, cornerRadius } =
|
|
9313
|
+
const { outerRadius, innerRadius, cornerRadius } = chunkC25NWWIH_cjs.resolvePieRadii(
|
|
9314
9314
|
plot.width,
|
|
9315
9315
|
plot.height,
|
|
9316
9316
|
chart.config?.innerRadius,
|
|
@@ -9323,8 +9323,8 @@ function pieDetail(chart, plot) {
|
|
|
9323
9323
|
}
|
|
9324
9324
|
function polarAreaDetail(chart, plot) {
|
|
9325
9325
|
const maxRadius = Math.max(1, Math.min(plot.width, plot.height) / 2 - 4);
|
|
9326
|
-
const innerRadius = Math.max(0, Math.min(
|
|
9327
|
-
const cornerRadius = Math.max(0,
|
|
9326
|
+
const innerRadius = Math.max(0, Math.min(chunkC25NWWIH_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1));
|
|
9327
|
+
const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieCornerRadius, 0));
|
|
9328
9328
|
return {
|
|
9329
9329
|
of: "pieGeometry",
|
|
9330
9330
|
pieGeometry: `${plot.x + plot.width / 2},${plot.y + plot.height / 2},${maxRadius},${innerRadius},${cornerRadius}`
|
|
@@ -9333,8 +9333,8 @@ function polarAreaDetail(chart, plot) {
|
|
|
9333
9333
|
function radarDetail(chart, plot) {
|
|
9334
9334
|
const configuredCount = (chart.config?.categories?.filter(Boolean) ?? []).length;
|
|
9335
9335
|
const dataCount = Math.max(0, ...chart.series.map((series) => series.values.length));
|
|
9336
|
-
const count =
|
|
9337
|
-
const radius =
|
|
9336
|
+
const count = chunkC25NWWIH_cjs.radarCategoryCount(configuredCount, dataCount);
|
|
9337
|
+
const radius = chunkC25NWWIH_cjs.radarRadius(plot.width, plot.height, chunkC25NWWIH_cjs.finite(chart.fontSize, 12), chart.showAxisLabels !== false);
|
|
9338
9338
|
const centerX = plot.x + plot.width / 2;
|
|
9339
9339
|
const centerY = plot.y + plot.height / 2;
|
|
9340
9340
|
const curved = chart.chartType === "radial" ? 1 : 0;
|
|
@@ -9368,9 +9368,9 @@ function buildChartFrame(chart, bounds, plot, order) {
|
|
|
9368
9368
|
height: chart.height,
|
|
9369
9369
|
rx: chart.cornerRadius ?? 12,
|
|
9370
9370
|
style: {
|
|
9371
|
-
fill:
|
|
9371
|
+
fill: chunkC25NWWIH_cjs.paint(chart.fillColor ?? "#ffffff", [], chart.id),
|
|
9372
9372
|
stroke: { kind: "solid", color: chart.strokeColor ?? "#475569" },
|
|
9373
|
-
strokeWidth:
|
|
9373
|
+
strokeWidth: chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1)
|
|
9374
9374
|
}
|
|
9375
9375
|
};
|
|
9376
9376
|
const detail = frameDetail(chart, plot);
|
|
@@ -9430,7 +9430,7 @@ function buildChartTitle(chart, bounds, plot, renderOrder) {
|
|
|
9430
9430
|
}
|
|
9431
9431
|
return [
|
|
9432
9432
|
{
|
|
9433
|
-
...
|
|
9433
|
+
...chunkC25NWWIH_cjs.chartText({
|
|
9434
9434
|
id: `chart-title-${chart.id}`,
|
|
9435
9435
|
order: renderOrder.next(),
|
|
9436
9436
|
bounds,
|
|
@@ -9441,8 +9441,8 @@ function buildChartTitle(chart, bounds, plot, renderOrder) {
|
|
|
9441
9441
|
}),
|
|
9442
9442
|
...chart.titleColor ? { color: chart.titleColor } : {},
|
|
9443
9443
|
fontWeight: chart.titleWeight ?? "bold",
|
|
9444
|
-
fontSize:
|
|
9445
|
-
prop:
|
|
9444
|
+
fontSize: chunkC25NWWIH_cjs.finite(chart.titleSize, Math.max(10, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) + 2),
|
|
9445
|
+
prop: chunkC25NWWIH_cjs.CHART_TITLE_PROP
|
|
9446
9446
|
}
|
|
9447
9447
|
];
|
|
9448
9448
|
}
|
|
@@ -9495,7 +9495,7 @@ function buildChart(chart, index, diagnostics) {
|
|
|
9495
9495
|
// src/renderScene/charts/artifacts.ts
|
|
9496
9496
|
function buildCharts(charts, diagnostics) {
|
|
9497
9497
|
return charts.flatMap(
|
|
9498
|
-
(chart, index) =>
|
|
9498
|
+
(chart, index) => chunkC25NWWIH_cjs.tag(buildChart(chart, index, diagnostics), "chart", chart.id, chart.chartType, chart.title ?? "Chart")
|
|
9499
9499
|
);
|
|
9500
9500
|
}
|
|
9501
9501
|
|
|
@@ -9580,15 +9580,30 @@ function applyFrameClips(nodes, frames) {
|
|
|
9580
9580
|
}
|
|
9581
9581
|
|
|
9582
9582
|
// src/renderScene/scene/build.ts
|
|
9583
|
+
function visibleBounds(node) {
|
|
9584
|
+
let { minX, minY, maxX, maxY } = node.bounds;
|
|
9585
|
+
let clip = "style" in node ? node.style?.clip : void 0;
|
|
9586
|
+
while (clip) {
|
|
9587
|
+
if (clip.type === "rect") {
|
|
9588
|
+
minX = Math.max(minX, clip.x);
|
|
9589
|
+
minY = Math.max(minY, clip.y);
|
|
9590
|
+
maxX = Math.min(maxX, clip.x + clip.width);
|
|
9591
|
+
maxY = Math.min(maxY, clip.y + clip.height);
|
|
9592
|
+
}
|
|
9593
|
+
clip = clip.within;
|
|
9594
|
+
}
|
|
9595
|
+
return minX <= maxX && minY <= maxY ? { minX, minY, maxX, maxY } : node.bounds;
|
|
9596
|
+
}
|
|
9583
9597
|
function sceneBounds(nodes) {
|
|
9584
9598
|
if (!nodes.length) {
|
|
9585
|
-
return
|
|
9599
|
+
return chunkC25NWWIH_cjs.EMPTY_BOUNDS;
|
|
9586
9600
|
}
|
|
9601
|
+
const all = nodes.map(visibleBounds);
|
|
9587
9602
|
return {
|
|
9588
|
-
minX: Math.min(...
|
|
9589
|
-
minY: Math.min(...
|
|
9590
|
-
maxX: Math.max(...
|
|
9591
|
-
maxY: Math.max(...
|
|
9603
|
+
minX: Math.min(...all.map((b) => b.minX)),
|
|
9604
|
+
minY: Math.min(...all.map((b) => b.minY)),
|
|
9605
|
+
maxX: Math.max(...all.map((b) => b.maxX)),
|
|
9606
|
+
maxY: Math.max(...all.map((b) => b.maxY))
|
|
9592
9607
|
};
|
|
9593
9608
|
}
|
|
9594
9609
|
function stackingOf(input) {
|
|
@@ -9596,8 +9611,8 @@ function stackingOf(input) {
|
|
|
9596
9611
|
const add = (role, objects, legacyBase) => {
|
|
9597
9612
|
objects.forEach((object, index) => {
|
|
9598
9613
|
stacking.set(`${role}:${object.id}`, {
|
|
9599
|
-
rank:
|
|
9600
|
-
sequence:
|
|
9614
|
+
rank: chunkC25NWWIH_cjs.stackRank(object),
|
|
9615
|
+
sequence: chunkC25NWWIH_cjs.stackSequence(object, legacyBase + index)
|
|
9601
9616
|
});
|
|
9602
9617
|
});
|
|
9603
9618
|
};
|
|
@@ -10090,31 +10105,31 @@ function chartSeriesAttrs(detail) {
|
|
|
10090
10105
|
];
|
|
10091
10106
|
}
|
|
10092
10107
|
function frameBoundaryAttrs(detail) {
|
|
10093
|
-
return [`${
|
|
10108
|
+
return [`${chunkC25NWWIH_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`, `${chunkC25NWWIH_cjs.SQUARE_CORNER_ATTR}="${detail.squareCorner}"`];
|
|
10094
10109
|
}
|
|
10095
10110
|
function declaredBoundsAttr(bounds) {
|
|
10096
|
-
return `${
|
|
10111
|
+
return `${chunkC25NWWIH_cjs.SYMBOL_BOUNDS_ATTR}="${num(bounds.x)},${num(bounds.y)},${num(bounds.width)},${num(bounds.height)}"`;
|
|
10097
10112
|
}
|
|
10098
10113
|
function symbolGeometryAttrs(detail) {
|
|
10099
10114
|
return [
|
|
10100
|
-
`${
|
|
10101
|
-
`${
|
|
10115
|
+
`${chunkC25NWWIH_cjs.SYMBOL_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
|
|
10116
|
+
`${chunkC25NWWIH_cjs.SYMBOL_TENSION_ATTR}="${num(detail.tension)}"`,
|
|
10102
10117
|
declaredBoundsAttr(detail.declaredBounds)
|
|
10103
10118
|
];
|
|
10104
10119
|
}
|
|
10105
10120
|
function pathGeometryAttrs(detail) {
|
|
10106
10121
|
return [
|
|
10107
|
-
`${
|
|
10108
|
-
`${
|
|
10109
|
-
`${
|
|
10122
|
+
`${chunkC25NWWIH_cjs.PATH_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
|
|
10123
|
+
`${chunkC25NWWIH_cjs.PATH_TENSION_ATTR}="${num(detail.tension)}"`,
|
|
10124
|
+
`${chunkC25NWWIH_cjs.PATH_CLOSED_ATTR}="${detail.closed}"`
|
|
10110
10125
|
];
|
|
10111
10126
|
}
|
|
10112
10127
|
function isometricGeometryAttrs(detail) {
|
|
10113
10128
|
return [
|
|
10114
|
-
`${
|
|
10115
|
-
`${
|
|
10129
|
+
`${chunkC25NWWIH_cjs.ISOMETRIC_SIZE_ATTR}="${num(detail.width)},${num(detail.height)},${num(detail.depth)}"`,
|
|
10130
|
+
`${chunkC25NWWIH_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`,
|
|
10116
10131
|
declaredBoundsAttr(detail.bounds),
|
|
10117
|
-
`${
|
|
10132
|
+
`${chunkC25NWWIH_cjs.ISOMETRIC_LABEL_OFFSET_ATTR}="${num(detail.labelOffsetX)},${num(detail.labelOffsetY)}"`
|
|
10118
10133
|
];
|
|
10119
10134
|
}
|
|
10120
10135
|
function linkDetailAttrs(detail) {
|
|
@@ -10261,7 +10276,7 @@ function renderSvgDocument(scene, options = {}) {
|
|
|
10261
10276
|
const nodes = options.linkHitAreas ? withLinkHitAreas(scene.nodes) : scene.nodes;
|
|
10262
10277
|
const body = nodes.map((node) => nodeSvg(node, defs)).join("\n ");
|
|
10263
10278
|
const declaration = options.includeXmlDeclaration === false ? "" : '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
10264
|
-
const svg = `${declaration}<svg xmlns="http://www.w3.org/2000/svg" width="${num(width)}px" height="${num(height)}px" viewBox="${viewBox}" role="img" data-sf-contract="${
|
|
10279
|
+
const svg = `${declaration}<svg xmlns="http://www.w3.org/2000/svg" width="${num(width)}px" height="${num(height)}px" viewBox="${viewBox}" role="img" data-sf-contract="${chunkC25NWWIH_cjs.DOM_CONTRACT_VERSION}">
|
|
10265
10280
|
<defs>${defs.entries.join("")}</defs>
|
|
10266
10281
|
${body}
|
|
10267
10282
|
</svg>`;
|
|
@@ -10281,9 +10296,9 @@ function renderCanvas(input, options = {}) {
|
|
|
10281
10296
|
}
|
|
10282
10297
|
var SCENE_CACHE_LIMIT = 50;
|
|
10283
10298
|
var sceneCache = /* @__PURE__ */ new Map();
|
|
10284
|
-
var cachedForRegistry =
|
|
10299
|
+
var cachedForRegistry = chunkC25NWWIH_cjs.componentRegistryVersion();
|
|
10285
10300
|
function cachedRenderScene(source) {
|
|
10286
|
-
const registry =
|
|
10301
|
+
const registry = chunkC25NWWIH_cjs.componentRegistryVersion();
|
|
10287
10302
|
if (registry !== cachedForRegistry) {
|
|
10288
10303
|
sceneCache.clear();
|
|
10289
10304
|
cachedForRegistry = registry;
|
|
@@ -10315,7 +10330,7 @@ function render(source, options = {}) {
|
|
|
10315
10330
|
var SCENE_ORDER_BASE = 1e4;
|
|
10316
10331
|
function defineComponent(definition) {
|
|
10317
10332
|
const { scene, ...descriptor } = definition;
|
|
10318
|
-
const unregisterDescriptor =
|
|
10333
|
+
const unregisterDescriptor = chunkC25NWWIH_cjs.registerComponentDescriptor(descriptor);
|
|
10319
10334
|
const unregisterBuilder = registerComponentBuilder(
|
|
10320
10335
|
descriptor.type,
|
|
10321
10336
|
(component, index) => scene(component, { order: SCENE_ORDER_BASE + index })
|
|
@@ -10334,5 +10349,5 @@ exports.render = render;
|
|
|
10334
10349
|
exports.renderCanvas = renderCanvas;
|
|
10335
10350
|
exports.sflToRenderInput = sflToRenderInput;
|
|
10336
10351
|
exports.sliderReach = sliderReach;
|
|
10337
|
-
//# sourceMappingURL=chunk-
|
|
10338
|
-
//# sourceMappingURL=chunk-
|
|
10352
|
+
//# sourceMappingURL=chunk-EURX7QT3.cjs.map
|
|
10353
|
+
//# sourceMappingURL=chunk-EURX7QT3.cjs.map
|