@cardenelabs/cdl 0.9.0 → 0.11.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 +65 -1
- package/SPEC.md +22 -1
- package/dist/index.cjs +162 -64
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +163 -65
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +155 -63
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +156 -64
- package/dist/react.js.map +1 -1
- package/dist/{render-hmFRAabt.d.cts → render-DwH8v5Mb.d.cts} +21 -0
- package/dist/{render-hmFRAabt.d.ts → render-DwH8v5Mb.d.ts} +21 -0
- package/package.json +1 -1
- package/src/builder.ts +13 -1
- package/src/kinds/chart-bar.tsx +49 -12
- package/src/kinds/chart-line.tsx +94 -25
- package/src/kinds/chart-pie.tsx +80 -15
- package/src/render/nodes.tsx +33 -3
- package/src/render/stage.tsx +4 -0
- package/src/types.ts +21 -0
- package/src/validate.ts +34 -4
package/dist/react.cjs
CHANGED
|
@@ -4886,6 +4886,7 @@ function nodeTemplateTexts(node) {
|
|
|
4886
4886
|
|
|
4887
4887
|
// src/validate.ts
|
|
4888
4888
|
var TONES2 = new Set(TONES);
|
|
4889
|
+
var DRAW_KINDS = /* @__PURE__ */ new Set(["chart-line", "chart-bar", "chart-pie"]);
|
|
4889
4890
|
var KINDS = new Set(NODE_KINDS);
|
|
4890
4891
|
var ENG_BANNED = /\b(FUNCTION|STORAGE|EVENT LOG|BALANCES MAPPING|READ|WRITE|EMIT|CALL)\b/;
|
|
4891
4892
|
function validate(diag) {
|
|
@@ -4949,7 +4950,7 @@ function validate(diag) {
|
|
|
4949
4950
|
...(diag.formulas ?? []).map((f) => f.id),
|
|
4950
4951
|
...(diag.scrollTriggers ?? []).map((t) => t.id)
|
|
4951
4952
|
]);
|
|
4952
|
-
const suggest = (target, candidates) => {
|
|
4953
|
+
const suggest = (target, candidates, candidateKind = "lane") => {
|
|
4953
4954
|
const list = [...candidates];
|
|
4954
4955
|
if (list.length === 0) return "";
|
|
4955
4956
|
let best = "";
|
|
@@ -4961,7 +4962,7 @@ function validate(diag) {
|
|
|
4961
4962
|
best = c;
|
|
4962
4963
|
}
|
|
4963
4964
|
}
|
|
4964
|
-
return bestD <= 2 ? ` (\u3082\u3057\u304B\u3057\u3066 "${best}"?)` : ` (\u5B9A\u7FA9\u6E08
|
|
4965
|
+
return bestD <= 2 ? ` (\u3082\u3057\u304B\u3057\u3066 "${best}"?)` : ` (\u5B9A\u7FA9\u6E08 ${candidateKind}: ${list.slice(0, 5).join(", ")}${list.length > 5 ? "..." : ""})`;
|
|
4965
4966
|
};
|
|
4966
4967
|
for (const n of diag.nodes) {
|
|
4967
4968
|
if (!laneIds.has(n.lane)) {
|
|
@@ -4974,13 +4975,13 @@ function validate(diag) {
|
|
|
4974
4975
|
for (const e of diag.edges) {
|
|
4975
4976
|
if (!nodeIds.has(e.from)) {
|
|
4976
4977
|
errors.push(
|
|
4977
|
-
`[cdl] unknown-ref: edge "${e.id}" \u306E from "${e.from}" \u304C node \u306B\u5B58\u5728\u3057\u307E\u305B\u3093${suggest(e.from, nodeIds)}
|
|
4978
|
+
`[cdl] unknown-ref: edge "${e.id}" \u306E from "${e.from}" \u304C node \u306B\u5B58\u5728\u3057\u307E\u305B\u3093${suggest(e.from, nodeIds, "node")}
|
|
4978
4979
|
\u2192 \u4FEE\u6B63\u4F8B: .node("${e.from}", { lane: "...", stack: 0, kind: "actor", title: "..." }) \u3092 edge \u5BA3\u8A00\u524D\u306B\u8FFD\u52A0`
|
|
4979
4980
|
);
|
|
4980
4981
|
}
|
|
4981
4982
|
if (!nodeIds.has(e.to)) {
|
|
4982
4983
|
errors.push(
|
|
4983
|
-
`[cdl] unknown-ref: edge "${e.id}" \u306E to "${e.to}" \u304C node \u306B\u5B58\u5728\u3057\u307E\u305B\u3093${suggest(e.to, nodeIds)}
|
|
4984
|
+
`[cdl] unknown-ref: edge "${e.id}" \u306E to "${e.to}" \u304C node \u306B\u5B58\u5728\u3057\u307E\u305B\u3093${suggest(e.to, nodeIds, "node")}
|
|
4984
4985
|
\u2192 \u4FEE\u6B63\u4F8B: .node("${e.to}", { lane: "...", stack: 0, kind: "...", title: "..." }) \u3092 edge \u5BA3\u8A00\u524D\u306B\u8FFD\u52A0`
|
|
4985
4986
|
);
|
|
4986
4987
|
}
|
|
@@ -4997,6 +4998,18 @@ function validate(diag) {
|
|
|
4997
4998
|
errors.push(`[cdl] unknown-ref: phase "${p.id}" \u306E activate "${id}" \u306F node \u3067\u3082 edge \u3067\u3082\u306A\u3044 (typo \u306E\u53EF\u80FD\u6027)`);
|
|
4998
4999
|
}
|
|
4999
5000
|
}
|
|
5001
|
+
for (const id of p.draw ?? []) {
|
|
5002
|
+
if (!nodeIds.has(id)) {
|
|
5003
|
+
errors.push(`[cdl] unknown-ref: phase "${p.id}" \u306E draw "${id}" \u306F node \u3067\u306F\u306A\u3044 (typo \u306E\u53EF\u80FD\u6027)${suggest(id, nodeIds, "node")}`);
|
|
5004
|
+
continue;
|
|
5005
|
+
}
|
|
5006
|
+
const kind = diag.nodes.find((n) => n.id === id)?.kind;
|
|
5007
|
+
if (!DRAW_KINDS.has(String(kind))) {
|
|
5008
|
+
warnings.push(
|
|
5009
|
+
`phase "${p.id}" \u306E draw "${id}" \u306F kind "${kind}" \u3067\u3001 \u8D77\u70B9\u304B\u3089\u63CF\u304F\u52D5\u304D\u3092\u6301\u305F\u306A\u3044 (\u5BFE\u8C61\u306F ${[...DRAW_KINDS].join(" / ")})`
|
|
5010
|
+
);
|
|
5011
|
+
}
|
|
5012
|
+
}
|
|
5000
5013
|
for (const t of p.tweens) {
|
|
5001
5014
|
if (!stateIds.has(t.stateId)) {
|
|
5002
5015
|
errors.push(`[cdl] unknown-ref: phase "${p.id}" tween \u5BFE\u8C61 state "${t.stateId}" \u672A\u5B9A\u7FA9`);
|
|
@@ -6574,7 +6587,9 @@ function resolveMindData(data, values) {
|
|
|
6574
6587
|
function ChartLineNode({
|
|
6575
6588
|
node,
|
|
6576
6589
|
active,
|
|
6577
|
-
stateValues = {}
|
|
6590
|
+
stateValues = {},
|
|
6591
|
+
drawing = false,
|
|
6592
|
+
progress = 1
|
|
6578
6593
|
}) {
|
|
6579
6594
|
const x0 = node.cx - node.w / 2;
|
|
6580
6595
|
const y0 = node.cy - node.h / 2;
|
|
@@ -6595,6 +6610,24 @@ function ChartLineNode({
|
|
|
6595
6610
|
const xAt = (idx) => PAD_LEFT + (data.length <= 1 ? canvasW / 2 : canvasW * idx / (data.length - 1));
|
|
6596
6611
|
const yAt = (v) => plotTop + plotH - (v - vMin) / vRange * plotH;
|
|
6597
6612
|
const points = data.map((d, idx) => `${xAt(idx)},${yAt(d.value)}`).join(" ");
|
|
6613
|
+
const \u70B9\u307E\u3067\u306E\u9577\u3055 = [];
|
|
6614
|
+
let \u7DDA\u306E\u5168\u9577 = 0;
|
|
6615
|
+
let \u524D\u306E\u70B9;
|
|
6616
|
+
for (const [idx, datum] of data.entries()) {
|
|
6617
|
+
const \u4ECA\u306E\u70B9 = { x: xAt(idx), y: yAt(datum.value) };
|
|
6618
|
+
if (\u524D\u306E\u70B9) {
|
|
6619
|
+
\u7DDA\u306E\u5168\u9577 += Math.hypot(\u4ECA\u306E\u70B9.x - \u524D\u306E\u70B9.x, \u4ECA\u306E\u70B9.y - \u524D\u306E\u70B9.y);
|
|
6620
|
+
}
|
|
6621
|
+
\u70B9\u307E\u3067\u306E\u9577\u3055.push(\u7DDA\u306E\u5168\u9577);
|
|
6622
|
+
\u524D\u306E\u70B9 = \u4ECA\u306E\u70B9;
|
|
6623
|
+
}
|
|
6624
|
+
const \u4F38\u3073 = drawing ? Math.min(1, Math.max(0, Number.isFinite(progress) ? progress : 1)) : 1;
|
|
6625
|
+
const \u7DDA\u306E\u5148\u304C\u5C4A\u3044\u305F = (idx) => {
|
|
6626
|
+
if (!drawing) return true;
|
|
6627
|
+
if (data.length <= 1) return true;
|
|
6628
|
+
if (\u7DDA\u306E\u5168\u9577 === 0) return true;
|
|
6629
|
+
return \u4F38\u3073 >= (\u70B9\u307E\u3067\u306E\u9577\u3055[idx] ?? 0) / \u7DDA\u306E\u5168\u9577;
|
|
6630
|
+
};
|
|
6598
6631
|
const gridCount = 4;
|
|
6599
6632
|
const gridTicks = Array.from({ length: gridCount + 1 }, (_, i) => {
|
|
6600
6633
|
const v = vMin + vRange * i / gridCount;
|
|
@@ -6672,7 +6705,8 @@ function ChartLineNode({
|
|
|
6672
6705
|
stroke: "var(--cdl-tone-accent, #2d6a8f)",
|
|
6673
6706
|
strokeWidth: 2.5,
|
|
6674
6707
|
strokeLinejoin: "round",
|
|
6675
|
-
strokeLinecap: "round"
|
|
6708
|
+
strokeLinecap: "round",
|
|
6709
|
+
...drawing ? { pathLength: 1, strokeDasharray: 1, strokeDashoffset: 1 - \u4F38\u3073 } : {}
|
|
6676
6710
|
}
|
|
6677
6711
|
),
|
|
6678
6712
|
data.map((d, idx) => {
|
|
@@ -6683,40 +6717,43 @@ function ChartLineNode({
|
|
|
6683
6717
|
const isValley = (prev === void 0 || d.value <= prev) && (next === void 0 || d.value <= next);
|
|
6684
6718
|
const labelAbove = !isValley;
|
|
6685
6719
|
const labelY = labelAbove ? cy - 12 : cy + 18;
|
|
6720
|
+
const \u51FA\u3059 = \u7DDA\u306E\u5148\u304C\u5C4A\u3044\u305F(idx);
|
|
6686
6721
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-unresolved": d.unresolved ? "true" : void 0, children: [
|
|
6687
|
-
/* @__PURE__ */ jsxRuntime.
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6722
|
+
\u51FA\u3059 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6723
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6724
|
+
"circle",
|
|
6725
|
+
{
|
|
6726
|
+
cx,
|
|
6727
|
+
cy,
|
|
6728
|
+
r: 5,
|
|
6729
|
+
fill: "var(--cdl-node-fill, #ffffff)",
|
|
6730
|
+
stroke: "var(--cdl-tone-accent, #2d6a8f)",
|
|
6731
|
+
strokeWidth: 2.5
|
|
6732
|
+
}
|
|
6733
|
+
),
|
|
6734
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6735
|
+
"circle",
|
|
6736
|
+
{
|
|
6737
|
+
cx,
|
|
6738
|
+
cy,
|
|
6739
|
+
r: 2.5,
|
|
6740
|
+
fill: "var(--cdl-tone-accent, #2d6a8f)"
|
|
6741
|
+
}
|
|
6742
|
+
),
|
|
6743
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6744
|
+
"text",
|
|
6745
|
+
{
|
|
6746
|
+
"data-cdl-role": "chart-line-value",
|
|
6747
|
+
x: cx,
|
|
6748
|
+
y: labelY,
|
|
6749
|
+
fontSize: 11,
|
|
6750
|
+
fontWeight: 600,
|
|
6751
|
+
textAnchor: "middle",
|
|
6752
|
+
fill: "var(--cdl-text, #1a1f2a)",
|
|
6753
|
+
children: d.value.toLocaleString()
|
|
6754
|
+
}
|
|
6755
|
+
)
|
|
6756
|
+
] }),
|
|
6720
6757
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6721
6758
|
"text",
|
|
6722
6759
|
{
|
|
@@ -6735,8 +6772,11 @@ function ChartLineNode({
|
|
|
6735
6772
|
function ChartPieNode({
|
|
6736
6773
|
node,
|
|
6737
6774
|
active,
|
|
6738
|
-
stateValues = {}
|
|
6775
|
+
stateValues = {},
|
|
6776
|
+
drawing = false,
|
|
6777
|
+
progress = 1
|
|
6739
6778
|
}) {
|
|
6779
|
+
const instanceId = react.useId().replace(/[^A-Za-z0-9_-]/g, "");
|
|
6740
6780
|
const x0 = node.cx - node.w / 2;
|
|
6741
6781
|
const y0 = node.cy - node.h / 2;
|
|
6742
6782
|
const data = resolveChartData(node.chartData ?? [], stateValues);
|
|
@@ -6749,20 +6789,26 @@ function ChartPieNode({
|
|
|
6749
6789
|
const cx = pieAreaW / 2;
|
|
6750
6790
|
const cy = PAD_TOP + chartAreaH / 2;
|
|
6751
6791
|
let cumAngle = -Math.PI / 2;
|
|
6792
|
+
let cumFrac = 0;
|
|
6752
6793
|
const slices = data.map((d) => {
|
|
6753
6794
|
const frac = d.value / total;
|
|
6754
6795
|
const angle = frac * Math.PI * 2;
|
|
6755
6796
|
const a0 = cumAngle;
|
|
6756
6797
|
const a1 = cumAngle + angle;
|
|
6757
6798
|
cumAngle = a1;
|
|
6799
|
+
const startFrac = cumFrac;
|
|
6800
|
+
cumFrac += frac;
|
|
6758
6801
|
const x1 = cx + radius * Math.cos(a0);
|
|
6759
6802
|
const y1 = cy + radius * Math.sin(a0);
|
|
6760
6803
|
const x2 = cx + radius * Math.cos(a1);
|
|
6761
6804
|
const y2 = cy + radius * Math.sin(a1);
|
|
6762
6805
|
const large = angle > Math.PI ? 1 : 0;
|
|
6763
6806
|
const path = `M ${cx} ${cy} L ${x1} ${y1} A ${radius} ${radius} 0 ${large} 1 ${x2} ${y2} Z`;
|
|
6764
|
-
return { d, frac, path };
|
|
6807
|
+
return { d, frac, path, startFrac };
|
|
6765
6808
|
});
|
|
6809
|
+
const \u958B\u304D = drawing ? Math.min(1, Math.max(0, Number.isFinite(progress) ? progress : 1)) : 1;
|
|
6810
|
+
const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
|
|
6811
|
+
const \u958B\u304D\u59CB\u3081\u305F = (startFrac) => !drawing || \u958B\u304D > startFrac;
|
|
6766
6812
|
const legendX = pieAreaW + 8;
|
|
6767
6813
|
const legendGap = Math.min(28, chartAreaH / Math.max(data.length, 1));
|
|
6768
6814
|
const legendStartY = PAD_TOP + (chartAreaH - legendGap * data.length) / 2 + legendGap / 2;
|
|
@@ -6781,7 +6827,8 @@ function ChartPieNode({
|
|
|
6781
6827
|
strokeWidth: active ? 3 : 1.25
|
|
6782
6828
|
}
|
|
6783
6829
|
),
|
|
6784
|
-
|
|
6830
|
+
drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, radius + 2, \u958B\u304D) }) }),
|
|
6831
|
+
/* @__PURE__ */ jsxRuntime.jsx("g", { ...drawing ? { clipPath: `url(#${\u5207\u308A\u629C\u304Did})` } : {}, children: slices.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6785
6832
|
"path",
|
|
6786
6833
|
{
|
|
6787
6834
|
"data-cdl-role": "chart-pie-slice",
|
|
@@ -6793,8 +6840,8 @@ function ChartPieNode({
|
|
|
6793
6840
|
strokeWidth: 1.5
|
|
6794
6841
|
},
|
|
6795
6842
|
`slice-${idx}`
|
|
6796
|
-
)),
|
|
6797
|
-
slices.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${legendX} ${legendStartY + idx * legendGap})`, children: [
|
|
6843
|
+
)) }),
|
|
6844
|
+
slices.map((s, idx) => !\u958B\u304D\u59CB\u3081\u305F(s.startFrac) ? null : /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${legendX} ${legendStartY + idx * legendGap})`, children: [
|
|
6798
6845
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6799
6846
|
"rect",
|
|
6800
6847
|
{
|
|
@@ -6832,6 +6879,15 @@ function ChartPieNode({
|
|
|
6832
6879
|
] }, `legend-${idx}`))
|
|
6833
6880
|
] });
|
|
6834
6881
|
}
|
|
6882
|
+
function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D) {
|
|
6883
|
+
if (\u958B\u304D <= 0) return null;
|
|
6884
|
+
if (\u958B\u304D >= 1) return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r });
|
|
6885
|
+
const a0 = -Math.PI / 2;
|
|
6886
|
+
const a1 = a0 + \u958B\u304D * Math.PI * 2;
|
|
6887
|
+
const large = \u958B\u304D > 0.5 ? 1 : 0;
|
|
6888
|
+
const d = `M ${cx} ${cy} L ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} A ${r} ${r} 0 ${large} 1 ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} Z`;
|
|
6889
|
+
return /* @__PURE__ */ jsxRuntime.jsx("path", { d });
|
|
6890
|
+
}
|
|
6835
6891
|
var FALLBACK_ORDER = ["accent", "teal", "warning", "success", "info", "error"];
|
|
6836
6892
|
function sliceColor(tone, idx) {
|
|
6837
6893
|
if (tone) return TONE[tone];
|
|
@@ -6840,7 +6896,9 @@ function sliceColor(tone, idx) {
|
|
|
6840
6896
|
function ChartBarNode({
|
|
6841
6897
|
node,
|
|
6842
6898
|
active,
|
|
6843
|
-
stateValues = {}
|
|
6899
|
+
stateValues = {},
|
|
6900
|
+
drawing = false,
|
|
6901
|
+
progress = 1
|
|
6844
6902
|
}) {
|
|
6845
6903
|
const x0 = node.cx - node.w / 2;
|
|
6846
6904
|
const y0 = node.cy - node.h / 2;
|
|
@@ -6863,6 +6921,8 @@ function ChartBarNode({
|
|
|
6863
6921
|
const v = vMax * i / gridCount;
|
|
6864
6922
|
return { y: yAt(v), value: v };
|
|
6865
6923
|
});
|
|
6924
|
+
const \u4F38\u3073 = drawing ? Math.min(1, Math.max(0, Number.isFinite(progress) ? progress : 1)) : 1;
|
|
6925
|
+
const \u6A2A\u8EF8\u306Ey = PAD_TOP + canvasH;
|
|
6866
6926
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
6867
6927
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6868
6928
|
"rect",
|
|
@@ -6919,26 +6979,28 @@ function ChartBarNode({
|
|
|
6919
6979
|
const bx = xAt(idx);
|
|
6920
6980
|
const by = yAt(d.value);
|
|
6921
6981
|
const bh = PAD_TOP + canvasH - by;
|
|
6982
|
+
const \u898B\u3048\u3066\u3044\u308B\u982D = \u6A2A\u8EF8\u306Ey - (\u6A2A\u8EF8\u306Ey - by) * \u4F38\u3073;
|
|
6983
|
+
const \u68D2 = /* @__PURE__ */ jsxRuntime.jsx(
|
|
6984
|
+
"rect",
|
|
6985
|
+
{
|
|
6986
|
+
"data-cdl-role": "chart-bar",
|
|
6987
|
+
"data-cdl-unresolved": d.unresolved ? "true" : void 0,
|
|
6988
|
+
x: bx,
|
|
6989
|
+
y: by,
|
|
6990
|
+
width: barW,
|
|
6991
|
+
height: bh,
|
|
6992
|
+
rx: 2,
|
|
6993
|
+
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
6994
|
+
fillOpacity: 0.9
|
|
6995
|
+
}
|
|
6996
|
+
);
|
|
6922
6997
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
6923
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6924
|
-
"rect",
|
|
6925
|
-
{
|
|
6926
|
-
"data-cdl-role": "chart-bar",
|
|
6927
|
-
"data-cdl-unresolved": d.unresolved ? "true" : void 0,
|
|
6928
|
-
x: bx,
|
|
6929
|
-
y: by,
|
|
6930
|
-
width: barW,
|
|
6931
|
-
height: bh,
|
|
6932
|
-
rx: 2,
|
|
6933
|
-
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
6934
|
-
fillOpacity: 0.9
|
|
6935
|
-
}
|
|
6936
|
-
),
|
|
6998
|
+
drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { transform: `translate(0 ${\u6A2A\u8EF8\u306Ey}) scale(1 ${\u4F38\u3073}) translate(0 ${-\u6A2A\u8EF8\u306Ey})`, children: \u68D2 }) : \u68D2,
|
|
6937
6999
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6938
7000
|
"text",
|
|
6939
7001
|
{
|
|
6940
7002
|
x: bx + barW / 2,
|
|
6941
|
-
y:
|
|
7003
|
+
y: \u898B\u3048\u3066\u3044\u308B\u982D - 6,
|
|
6942
7004
|
fontSize: 11,
|
|
6943
7005
|
textAnchor: "middle",
|
|
6944
7006
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
@@ -12192,6 +12254,7 @@ function ShapeCustomerServiceNode({ node, active }) {
|
|
|
12192
12254
|
function CdlNodeView({
|
|
12193
12255
|
node,
|
|
12194
12256
|
active,
|
|
12257
|
+
drawing = false,
|
|
12195
12258
|
progress,
|
|
12196
12259
|
stateValues,
|
|
12197
12260
|
currentPhaseId
|
|
@@ -12241,11 +12304,38 @@ function CdlNodeView({
|
|
|
12241
12304
|
// 数と語を取る 7 種に対し、mind-map / tree-hierarchy は **名前だけ** を取る (#467)。
|
|
12242
12305
|
// 親子の繋がりと、描かれない欄 (補足) は解決しない。
|
|
12243
12306
|
case "chart-line":
|
|
12244
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12307
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12308
|
+
ChartLineNode,
|
|
12309
|
+
{
|
|
12310
|
+
node: resolvedNode,
|
|
12311
|
+
active,
|
|
12312
|
+
stateValues,
|
|
12313
|
+
drawing,
|
|
12314
|
+
progress
|
|
12315
|
+
}
|
|
12316
|
+
);
|
|
12245
12317
|
case "chart-pie":
|
|
12246
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12318
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12319
|
+
ChartPieNode,
|
|
12320
|
+
{
|
|
12321
|
+
node: resolvedNode,
|
|
12322
|
+
active,
|
|
12323
|
+
stateValues,
|
|
12324
|
+
drawing,
|
|
12325
|
+
progress
|
|
12326
|
+
}
|
|
12327
|
+
);
|
|
12247
12328
|
case "chart-bar":
|
|
12248
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12329
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12330
|
+
ChartBarNode,
|
|
12331
|
+
{
|
|
12332
|
+
node: resolvedNode,
|
|
12333
|
+
active,
|
|
12334
|
+
stateValues,
|
|
12335
|
+
drawing,
|
|
12336
|
+
progress
|
|
12337
|
+
}
|
|
12338
|
+
);
|
|
12249
12339
|
case "gantt-timeline":
|
|
12250
12340
|
return /* @__PURE__ */ jsxRuntime.jsx(GanttNode, { node: resolvedNode, active, stateValues });
|
|
12251
12341
|
case "mind-map":
|
|
@@ -12435,6 +12525,7 @@ function CdlStage({
|
|
|
12435
12525
|
svgRef
|
|
12436
12526
|
}) {
|
|
12437
12527
|
const activeSet = new Set(currentPhase?.activate ?? []);
|
|
12528
|
+
const drawSet = new Set(currentPhase?.draw ?? []);
|
|
12438
12529
|
const { lifelineStarts, uniformFooterTop } = react.useMemo(() => {
|
|
12439
12530
|
const starts = lifelineStartYs(laid.nodes);
|
|
12440
12531
|
return {
|
|
@@ -12571,6 +12662,7 @@ function CdlStage({
|
|
|
12571
12662
|
{
|
|
12572
12663
|
node,
|
|
12573
12664
|
active: activeSet.has(node.id),
|
|
12665
|
+
drawing: drawSet.has(node.id),
|
|
12574
12666
|
progress,
|
|
12575
12667
|
stateValues,
|
|
12576
12668
|
currentPhaseId: currentPhase?.id
|