@cardenelabs/cdl 0.19.0 → 0.20.0
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 +44 -1
- package/dist/index.cjs +99 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +99 -24
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +99 -24
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +99 -24
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/actor.tsx +8 -4
- package/src/kinds/card.tsx +5 -2
- package/src/kinds/event.tsx +5 -2
- package/src/kinds/function.tsx +5 -2
- package/src/kinds/generic.tsx +6 -2
- package/src/kinds/storage.tsx +6 -2
- package/src/layout/edges.ts +27 -5
- package/src/layout/nodes.ts +52 -5
- package/src/layout/spec.ts +128 -0
package/dist/react.js
CHANGED
|
@@ -798,6 +798,54 @@ function buildDiagramAltText(topic, phase) {
|
|
|
798
798
|
else if (body) parts.push(body);
|
|
799
799
|
return parts.join(" ");
|
|
800
800
|
}
|
|
801
|
+
var \u6BB5\u306E\u4F4D\u7F6E = {
|
|
802
|
+
actor: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 32 }, \u8AAC\u660E: { y: 140, size: 20 } },
|
|
803
|
+
function: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 24 }, \u8AAC\u660E: { y: 126, size: 20 } },
|
|
804
|
+
event: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 88, size: 26 }, \u8AAC\u660E: { y: 128, size: 21 } },
|
|
805
|
+
card: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 24 }, \u8AAC\u660E: { y: 124, size: 21 } },
|
|
806
|
+
storage: {
|
|
807
|
+
\u76EE\u5370: { y: 38, size: 18 },
|
|
808
|
+
\u540D\u524D: { y: STORAGE_TITLE_BASELINE, size: STORAGE_TITLE_FONT },
|
|
809
|
+
\u8AAC\u660E: { y: 118, size: 20 }
|
|
810
|
+
}
|
|
811
|
+
};
|
|
812
|
+
var \u6C4E\u7528\u306E\u6BB5 = {
|
|
813
|
+
\u76EE\u5370: { y: 32, size: 17 },
|
|
814
|
+
\u540D\u524D: { y: GENERIC_TITLE_TOP, size: GENERIC_TITLE_FONT },
|
|
815
|
+
\u8AAC\u660E: { y: 96, size: 17 }
|
|
816
|
+
};
|
|
817
|
+
function \u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows) {
|
|
818
|
+
if (hasRows) return false;
|
|
819
|
+
if (kind === void 0) return false;
|
|
820
|
+
if (genericTextCentered(kind, false)) return false;
|
|
821
|
+
return kind in \u6BB5\u306E\u4F4D\u7F6E || rendersRows(kind);
|
|
822
|
+
}
|
|
823
|
+
function \u6BB5\u3092\u5F15\u304F(kind) {
|
|
824
|
+
const \u56FA\u6709 = \u6BB5\u306E\u4F4D\u7F6E[kind];
|
|
825
|
+
if (\u56FA\u6709) return \u56FA\u6709;
|
|
826
|
+
if (rendersRows(kind)) return \u6C4E\u7528\u306E\u6BB5;
|
|
827
|
+
return null;
|
|
828
|
+
}
|
|
829
|
+
function \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(kind, hasRows = false) {
|
|
830
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows)) return 0;
|
|
831
|
+
const \u6BB5 = \u6BB5\u3092\u5F15\u304F(kind);
|
|
832
|
+
if (!\u6BB5) return 0;
|
|
833
|
+
const \u4E0A\u3052\u308B = \u6BB5.\u540D\u524D.y - \u6BB5.\u76EE\u5370.y + (\u6BB5.\u76EE\u5370.size - \u6BB5.\u540D\u524D.size) * GLYPH_CAP_RATIO;
|
|
834
|
+
return Math.max(0, Math.round(\u4E0A\u3052\u308B));
|
|
835
|
+
}
|
|
836
|
+
function \u8AAC\u660E\u306A\u3057\u3067\u7E2E\u3080\u91CF(kind, hasRows = false) {
|
|
837
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows)) return 0;
|
|
838
|
+
const \u6BB5 = \u6BB5\u3092\u5F15\u304F(kind);
|
|
839
|
+
if (!\u6BB5) return 0;
|
|
840
|
+
return Math.max(0, \u6BB5.\u8AAC\u660E.y - \u6BB5.\u540D\u524D.y);
|
|
841
|
+
}
|
|
842
|
+
function \u4E2D\u8EAB\u304B\u3089\u51FA\u3059\u9AD8\u3055(kind, \u6E80\u8F09h, \u4E2D\u8EAB) {
|
|
843
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, \u4E2D\u8EAB.hasRows)) return \u6E80\u8F09h;
|
|
844
|
+
if (\u4E2D\u8EAB.hasValue) return \u6E80\u8F09h;
|
|
845
|
+
const \u5F15\u304F = (\u4E2D\u8EAB.hasEyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(kind)) + (\u4E2D\u8EAB.hasSubtitle ? 0 : \u8AAC\u660E\u306A\u3057\u3067\u7E2E\u3080\u91CF(kind));
|
|
846
|
+
return Math.max(MIN_BOX_H, \u6E80\u8F09h - \u5F15\u304F);
|
|
847
|
+
}
|
|
848
|
+
var MIN_BOX_H = 44;
|
|
801
849
|
|
|
802
850
|
// src/layout/footer-shape.ts
|
|
803
851
|
var SHAPE_DRAW_UP_EXTENT = {
|
|
@@ -2267,7 +2315,7 @@ function layoutEdges(diag, nodes, lanes = []) {
|
|
|
2267
2315
|
for (const p of list) parallelGroupedIds.add(p.e.id);
|
|
2268
2316
|
}
|
|
2269
2317
|
const distributedInParallel = /* @__PURE__ */ new Set();
|
|
2270
|
-
const FAN_LABEL_GAP =
|
|
2318
|
+
const FAN_LABEL_GAP = CLEARANCE_LABEL_LABEL;
|
|
2271
2319
|
const computeEffectiveSides = (p) => {
|
|
2272
2320
|
if (p.e.routing === "back-detour") {
|
|
2273
2321
|
return { effFromSide: "top", effToSide: "top" };
|
|
@@ -2657,7 +2705,17 @@ function layoutEdges(diag, nodes, lanes = []) {
|
|
|
2657
2705
|
const applyFanDispersion = (list, tracked) => {
|
|
2658
2706
|
if (list.length < 2) return;
|
|
2659
2707
|
const obstaclePatterns = new Set(list.map((r) => detectsBlockingObstacle(r.p)));
|
|
2660
|
-
if (obstaclePatterns.size > 1)
|
|
2708
|
+
if (obstaclePatterns.size > 1) {
|
|
2709
|
+
const \u5F62\u3054\u3068 = /* @__PURE__ */ new Map();
|
|
2710
|
+
for (const r of list) {
|
|
2711
|
+
const \u5F62 = detectsBlockingObstacle(r.p);
|
|
2712
|
+
\u5F62\u3054\u3068.set(\u5F62, [...\u5F62\u3054\u3068.get(\u5F62) ?? [], r]);
|
|
2713
|
+
}
|
|
2714
|
+
for (const \u540C\u3058\u5F62 of \u5F62\u3054\u3068.values()) {
|
|
2715
|
+
if (\u540C\u3058\u5F62.length < list.length) applyFanDispersion(\u540C\u3058\u5F62, tracked);
|
|
2716
|
+
}
|
|
2717
|
+
return;
|
|
2718
|
+
}
|
|
2661
2719
|
if (list.some((r) => r.e.overlay)) return;
|
|
2662
2720
|
const items = list.map((r) => ({
|
|
2663
2721
|
r,
|
|
@@ -3750,7 +3808,8 @@ function autoStorageHeight(n, defaultH) {
|
|
|
3750
3808
|
if (n.h != null) return n.h;
|
|
3751
3809
|
const \u5370\u3042\u308A = n.rowMarks !== void 0;
|
|
3752
3810
|
const \u547C\u3073\u540D\u306E\u5206 = \u5370\u3042\u308A && n.subtitle ? SUBTITLE_ROW_SHIFT : 0;
|
|
3753
|
-
|
|
3811
|
+
const \u7E70\u308A\u4E0A\u3052 = n.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("storage");
|
|
3812
|
+
if (!n.rows || n.rows.length === 0) return 115 + \u547C\u3073\u540D\u306E\u5206 - \u7E70\u308A\u4E0A\u3052;
|
|
3754
3813
|
const \u5FC5\u8981 = requiredRowsHeight("storage", n.rows.length) ?? defaultH;
|
|
3755
3814
|
if (\u5370\u3042\u308A) return \u5FC5\u8981 + \u547C\u3073\u540D\u306E\u5206;
|
|
3756
3815
|
return Math.max(defaultH, \u5FC5\u8981);
|
|
@@ -3761,6 +3820,16 @@ function autoRowsWidth(n, defaultW) {
|
|
|
3761
3820
|
const required = requiredRowsWidth(n.rows, n.kind);
|
|
3762
3821
|
return Math.max(defaultW, required);
|
|
3763
3822
|
}
|
|
3823
|
+
function \u7BB1\u306E\u9AD8\u3055(n, \u65E2\u5B9Ah) {
|
|
3824
|
+
if (n.h != null) return n.h;
|
|
3825
|
+
if (n.kind === "storage") return autoStorageHeight(n, \u65E2\u5B9Ah);
|
|
3826
|
+
return \u4E2D\u8EAB\u304B\u3089\u51FA\u3059\u9AD8\u3055(n.kind, \u65E2\u5B9Ah, {
|
|
3827
|
+
hasEyebrow: Boolean(n.eyebrow),
|
|
3828
|
+
hasSubtitle: Boolean(n.subtitle),
|
|
3829
|
+
hasValue: Boolean(n.value),
|
|
3830
|
+
hasRows: (n.rows?.length ?? 0) > 0
|
|
3831
|
+
});
|
|
3832
|
+
}
|
|
3764
3833
|
function requiredStackGapForEdgeLabels(diag, allStacks) {
|
|
3765
3834
|
const byId = new Map(diag.nodes.map((n) => [n.id, n]));
|
|
3766
3835
|
const rankOf = new Map(allStacks.map((stack, i) => [stack, i]));
|
|
@@ -3790,7 +3859,7 @@ function layoutNodes(diag, lanes) {
|
|
|
3790
3859
|
const rowH = /* @__PURE__ */ new Map();
|
|
3791
3860
|
for (const stack of allStacks) {
|
|
3792
3861
|
const nodesAtStack = diag.nodes.filter((n) => n.stack === stack);
|
|
3793
|
-
const h = Math.max(...nodesAtStack.map((n) =>
|
|
3862
|
+
const h = Math.max(...nodesAtStack.map((n) => \u7BB1\u306E\u9AD8\u3055(n, NODE_SIZE[n.kind].h)));
|
|
3794
3863
|
rowH.set(stack, h);
|
|
3795
3864
|
}
|
|
3796
3865
|
const rowCy = /* @__PURE__ */ new Map();
|
|
@@ -3843,8 +3912,8 @@ function layoutNodes(diag, lanes) {
|
|
|
3843
3912
|
const cx = lane.x + lane.width / 2;
|
|
3844
3913
|
const \u6BB5\u306E\u82AF = rowCy.get(n.stack);
|
|
3845
3914
|
const \u6BB5\u306E\u9AD8\u3055 = rowH.get(n.stack);
|
|
3846
|
-
const \u81EA\u524D\u306E\u9AD8\u3055 = n.rowMarks !== void 0;
|
|
3847
|
-
const h = n.h ?? (\u81EA\u524D\u306E\u9AD8\u3055 ?
|
|
3915
|
+
const \u81EA\u524D\u306E\u9AD8\u3055 = n.rowMarks !== void 0 || \u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(n.kind, (n.rows?.length ?? 0) > 0);
|
|
3916
|
+
const h = n.h ?? (\u81EA\u524D\u306E\u9AD8\u3055 ? \u7BB1\u306E\u9AD8\u3055(n, size.h) : \u6BB5\u306E\u9AD8\u3055);
|
|
3848
3917
|
const cy = \u6BB5\u306E\u82AF;
|
|
3849
3918
|
const w = autoRowsWidth(n, size.w);
|
|
3850
3919
|
out.push({
|
|
@@ -5885,7 +5954,8 @@ function ActorNode({ node, active, value }) {
|
|
|
5885
5954
|
const accent = nodeAccent(node, "var(--cdl-tone-accent, #2d6a8f)");
|
|
5886
5955
|
const x = node.cx - node.w / 2;
|
|
5887
5956
|
const y = node.cy - node.h / 2;
|
|
5888
|
-
const \
|
|
5957
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("actor");
|
|
5958
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 86 - \u7E70\u308A\u4E0A\u3052, size: 32 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
5889
5959
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x} ${y})`, children: [
|
|
5890
5960
|
/* @__PURE__ */ jsx(
|
|
5891
5961
|
"rect",
|
|
@@ -5920,13 +5990,13 @@ function ActorNode({ node, active, value }) {
|
|
|
5920
5990
|
{
|
|
5921
5991
|
"data-cdl-role": "node-row-divider",
|
|
5922
5992
|
x1: 26,
|
|
5923
|
-
y1: 110,
|
|
5993
|
+
y1: 110 - \u7E70\u308A\u4E0A\u3052,
|
|
5924
5994
|
x2: node.w - 26,
|
|
5925
|
-
y2: 110,
|
|
5995
|
+
y2: 110 - \u7E70\u308A\u4E0A\u3052,
|
|
5926
5996
|
stroke: "var(--cdl-row-divider, #7e848e)"
|
|
5927
5997
|
}
|
|
5928
5998
|
),
|
|
5929
|
-
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 140, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
5999
|
+
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 140 - \u7E70\u308A\u4E0A\u3052, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
5930
6000
|
value && /* @__PURE__ */ jsx(
|
|
5931
6001
|
"text",
|
|
5932
6002
|
{
|
|
@@ -5951,7 +6021,8 @@ function CardNode({ node, active }) {
|
|
|
5951
6021
|
}
|
|
5952
6022
|
const compact = isCompactBox(node.h);
|
|
5953
6023
|
const \u5C0F\u578B\u306B\u547C\u3073\u540D = compact && Boolean(node.subtitle);
|
|
5954
|
-
const
|
|
6024
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("card");
|
|
6025
|
+
const titleY = compact ? \u5C0F\u578B\u306B\u547C\u3073\u540D ? node.h / 2 - 2 : node.h / 2 + 8 : 86 - \u7E70\u308A\u4E0A\u3052;
|
|
5955
6026
|
const titleX = compact ? node.w / 2 : 26;
|
|
5956
6027
|
const paddingX = compact ? 16 : 52;
|
|
5957
6028
|
const availableW = node.w - paddingX;
|
|
@@ -5988,7 +6059,7 @@ function CardNode({ node, active }) {
|
|
|
5988
6059
|
children: node.title
|
|
5989
6060
|
}
|
|
5990
6061
|
),
|
|
5991
|
-
!compact && node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 124, fontSize: subtitleSize, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
6062
|
+
!compact && node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 124 - \u7E70\u308A\u4E0A\u3052, fontSize: subtitleSize, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
5992
6063
|
\u5C0F\u578B\u306B\u547C\u3073\u540D && /* @__PURE__ */ jsx(
|
|
5993
6064
|
"text",
|
|
5994
6065
|
{
|
|
@@ -6249,7 +6320,8 @@ function EventNode({
|
|
|
6249
6320
|
const accent = nodeAccent(node, "var(--cdl-tone-success, #4ea36a)");
|
|
6250
6321
|
const x = node.cx - node.w / 2;
|
|
6251
6322
|
const y = node.cy - node.h / 2;
|
|
6252
|
-
const \
|
|
6323
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("event");
|
|
6324
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 88 - \u7E70\u308A\u4E0A\u3052, size: 26 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
6253
6325
|
const scale = active ? 0.78 + 0.22 * progress : 0.92;
|
|
6254
6326
|
const opacity = active ? 0.5 + 0.5 * progress : 0.65;
|
|
6255
6327
|
return /* @__PURE__ */ jsx(
|
|
@@ -6291,7 +6363,7 @@ function EventNode({
|
|
|
6291
6363
|
"text",
|
|
6292
6364
|
{
|
|
6293
6365
|
x: 26,
|
|
6294
|
-
y: 128,
|
|
6366
|
+
y: 128 - \u7E70\u308A\u4E0A\u3052,
|
|
6295
6367
|
fontSize: 21,
|
|
6296
6368
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
6297
6369
|
style: { fontFamily: "'JetBrains Mono', monospace" },
|
|
@@ -6307,7 +6379,8 @@ function FunctionNode({ node, active }) {
|
|
|
6307
6379
|
const stroke = nodeAccent(node, active ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-tone-teal, #2f8770)");
|
|
6308
6380
|
const x = node.cx - node.w / 2;
|
|
6309
6381
|
const y = node.cy - node.h / 2;
|
|
6310
|
-
const \
|
|
6382
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("function");
|
|
6383
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 86 - \u7E70\u308A\u4E0A\u3052, size: 24 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
6311
6384
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x} ${y})`, children: [
|
|
6312
6385
|
/* @__PURE__ */ jsx(
|
|
6313
6386
|
"rect",
|
|
@@ -6339,7 +6412,7 @@ function FunctionNode({ node, active }) {
|
|
|
6339
6412
|
children: node.title
|
|
6340
6413
|
}
|
|
6341
6414
|
),
|
|
6342
|
-
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 126, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle })
|
|
6415
|
+
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 126 - \u7E70\u308A\u4E0A\u3052, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle })
|
|
6343
6416
|
] });
|
|
6344
6417
|
}
|
|
6345
6418
|
var ROW_GLYPH_HALF = 7;
|
|
@@ -6374,7 +6447,8 @@ function StorageNode({
|
|
|
6374
6447
|
const accent = nodeAccent(node, "var(--cdl-tone-accent, #2d6a8f)");
|
|
6375
6448
|
const x = node.cx - node.w / 2;
|
|
6376
6449
|
const y = node.cy - node.h / 2;
|
|
6377
|
-
const \
|
|
6450
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow || rows.length > 0 ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("storage");
|
|
6451
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: STORAGE_TITLE_BASELINE - \u7E70\u308A\u4E0A\u3052, size: STORAGE_TITLE_FONT }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
6378
6452
|
const splits = rows.map((r) => splitRow(r));
|
|
6379
6453
|
const leftMaxWidth = splits.reduce((m, s) => Math.max(m, displayWidth(s.left)), 0);
|
|
6380
6454
|
const rightColX = ROW_PAD_X_PX + leftMaxWidth * STORAGE_CHAR_ADVANCE_PX + STORAGE_COL_GAP_PX;
|
|
@@ -6411,7 +6485,7 @@ function StorageNode({
|
|
|
6411
6485
|
{
|
|
6412
6486
|
"data-cdl-role": "node-subtitle",
|
|
6413
6487
|
x: ROW_PAD_X_PX,
|
|
6414
|
-
y: SUBTITLE_BASELINE,
|
|
6488
|
+
y: SUBTITLE_BASELINE - \u7E70\u308A\u4E0A\u3052,
|
|
6415
6489
|
fontSize: SUBTITLE_FONT,
|
|
6416
6490
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
6417
6491
|
children: node.subtitle
|
|
@@ -6729,9 +6803,10 @@ function GenericNode({
|
|
|
6729
6803
|
const textAnchor = centered ? "middle" : "start";
|
|
6730
6804
|
const textX = centered ? w / 2 : 20;
|
|
6731
6805
|
const cylinderShift = genericTextShift(node.kind);
|
|
6806
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow || centered ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(node.kind, hasRows);
|
|
6732
6807
|
const eyebrowY = centered ? h / 2 - 26 : 32 + cylinderShift;
|
|
6733
|
-
const titleY = genericTitleBaselineY(node.kind, h, hasRows);
|
|
6734
|
-
const subtitleY = centered ? h / 2 + 28 : 96 + cylinderShift;
|
|
6808
|
+
const titleY = genericTitleBaselineY(node.kind, h, hasRows) - \u7E70\u308A\u4E0A\u3052;
|
|
6809
|
+
const subtitleY = centered ? h / 2 + 28 : 96 + cylinderShift - \u7E70\u308A\u4E0A\u3052;
|
|
6735
6810
|
const iconX = centered ? w / 2 + 40 : w - 48;
|
|
6736
6811
|
const iconY = centered ? h / 2 - 44 : 18 + cylinderShift;
|
|
6737
6812
|
const dominantBaseline = centered ? "middle" : void 0;
|
|
@@ -8768,10 +8843,10 @@ function \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text) {
|
|
|
8768
8843
|
if (typeof \u533A\u5207\u308A !== "function") return [...text];
|
|
8769
8844
|
return [...new \u533A\u5207\u308A(void 0, { granularity: "grapheme" }).segment(text)].map((g) => g.segment);
|
|
8770
8845
|
}
|
|
8771
|
-
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\
|
|
8846
|
+
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\u30552) {
|
|
8772
8847
|
const \u5019\u88DC = \u884C.filter((r, i) => i === 0 || r.text.trim() !== "");
|
|
8773
8848
|
if (\u5019\u88DC.length === 0) return [];
|
|
8774
|
-
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\
|
|
8849
|
+
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\u30552 - \u4E0A\u4E0B\u306E\u4F59\u767D * 2;
|
|
8775
8850
|
const \u9AD8\u3055 = (rs) => rs.reduce((a, r) => a + r.fontSize * \u884C\u9001\u308A\u306E\u6BD4, 0);
|
|
8776
8851
|
const \u6B8B\u3059 = [...\u5019\u88DC];
|
|
8777
8852
|
while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
|
|
@@ -9398,7 +9473,7 @@ function QuadrantNode({
|
|
|
9398
9473
|
function \u7BB1\u306E\u6587\u5B57({
|
|
9399
9474
|
\u884C,
|
|
9400
9475
|
x,
|
|
9401
|
-
\u7BB1\u306E\u9AD8\u3055,
|
|
9476
|
+
\u7BB1\u306E\u9AD8\u3055: \u7BB1\u306E\u9AD8\u30552,
|
|
9402
9477
|
fill,
|
|
9403
9478
|
\u540D\u524D\u306E\u592A\u3055
|
|
9404
9479
|
}) {
|
|
@@ -9407,7 +9482,7 @@ function \u7BB1\u306E\u6587\u5B57({
|
|
|
9407
9482
|
{
|
|
9408
9483
|
"data-cdl-role": r.\u5F79\u5272 === "subtitle" ? "tree-node-subtitle" : void 0,
|
|
9409
9484
|
x,
|
|
9410
|
-
y: \u7BB1\u306E\u9AD8\
|
|
9485
|
+
y: \u7BB1\u306E\u9AD8\u30552 / 2 + r.dy,
|
|
9411
9486
|
fontSize: r.fontSize,
|
|
9412
9487
|
fontWeight: r.\u5F79\u5272 === "title" ? \u540D\u524D\u306E\u592A\u3055 : 500,
|
|
9413
9488
|
textAnchor: "middle",
|