@cardenelabs/cdl 0.68.0 → 0.70.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 +70 -1
- package/dist/index.cjs +29 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +29 -6
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +29 -6
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +29 -6
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/dyn-shape.tsx +15 -3
- package/src/kinds/gantt.tsx +65 -14
- package/src/presets.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,74 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.70.0] - 2026-09-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **箱の読み取り値を右端へ寄せ、縦の矢印が数字を割らないようにした** (#870)
|
|
13
|
+
|
|
14
|
+
箱に読み取り値 (`10 / 10` のような現在値と上限) を書くと、値は箱の上端の中央に出る。
|
|
15
|
+
同じ帯の上下に置いた箱を矢印で繋ぐと、道筋は受け手の上端の中央へ真下から入る。
|
|
16
|
+
置き場所が同じなので **必ず交わり**、矢印の先が区切りに刺さって `10 ⯆ 10` に見えていた。
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
直す前の実測 (図の座標)
|
|
20
|
+
読み取り値 `8 / 10` x 88.5 - 121.5
|
|
21
|
+
矢印の道筋 M 105 278 L 105 341 ← x=105 が読み取り値の真ん中
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
指摘は 1 件も出ない。 `validate` も `visualValidateAll` も 0 件を返し、板の大きさも変わらない。
|
|
25
|
+
画面で見た時にだけ分かる。
|
|
26
|
+
|
|
27
|
+
**読み取り値を箱の右端へ揃えた** (`textAnchor="end"`)。 中央の縦の通り道が空く。
|
|
28
|
+
|
|
29
|
+
矢印の側ではなく数字の側を動かしたのは、矢印の取り付き点が 2 本並んだ時の振り分けを
|
|
30
|
+
既に持っており、そこへ別の理由でずらす条件を足すと、両方が効いた時の位置が読めなくなるため。
|
|
31
|
+
揃える先を右にしたのは、箱の右上が空いている図が多いから (左上には枠の題が来る)。
|
|
32
|
+
|
|
33
|
+
利用側 (`cardene777/dragon`) の割れていた 4 枚を実測で確かめた。
|
|
34
|
+
|
|
35
|
+
| 部品 | 矢印の x | 読み取り値の範囲 (変更後) |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `parts-batch-collector` | 105 | 147 - 180 |
|
|
38
|
+
| `parts-backpressure` | 483 | 514 - 558 |
|
|
39
|
+
| `parts-funnel-3` | 205 | 241 - 285 |
|
|
40
|
+
| `parts-split-box` | 483 | 519.5 - 563.5 |
|
|
41
|
+
|
|
42
|
+
4 枚とも交わらなくなった。
|
|
43
|
+
|
|
44
|
+
## [0.69.0] - 2026-09-26
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- **ガントチャートの依存の線を根元から伸ばし、届いてから次の帯を伸ばすようにした** (#877)
|
|
49
|
+
|
|
50
|
+
線は両端の行が伸び切った瞬間に丸ごと現れていた。 帯は根元から先へ伸びるのに、線だけが一度に出る。
|
|
51
|
+
|
|
52
|
+
さらに出る順序が図の読み方と逆だった。 図は「前の工程が終わってから次が始まる」 を示すのに、
|
|
53
|
+
動きは「次の工程の帯が伸び切ってから、その帯へ向かう線が出る」 という順になる。
|
|
54
|
+
線が届いたから次が始まった、という因果が動きから読めない。
|
|
55
|
+
|
|
56
|
+
**行の持ち時間を 2 つに割る**。 先に入ってくる線を引き (`線の取り分` = 0.35)、残りで帯を伸ばす。
|
|
57
|
+
行の持ち時間そのものは変えないので、図全体の長さは変わらない。
|
|
58
|
+
|
|
59
|
+
| 何が | 変更前 | 変更後 |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| 線の出方 | 両端が伸び切った瞬間に丸ごと | 根元から先へ伸びる (`stroke-dashoffset`) |
|
|
62
|
+
| 矢じり | 線と同時 | 線が届いてから |
|
|
63
|
+
| 順序 | 帯 → 帯 → 線 | 帯 → 線 → 帯 |
|
|
64
|
+
|
|
65
|
+
**親が下にある依存だけは今までどおり一度に出す**。 上から下へ読む図で、下から戻る線を先に
|
|
66
|
+
引くと順序が逆に見えるため。
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- **図の日本語名を `工程表` から `ガントチャート` に変えた** (#877)
|
|
71
|
+
|
|
72
|
+
mermaid の呼び方に揃える。 記法の図種名 (`gantt`) は変えていない。
|
|
73
|
+
変えたのはコメントと検査の名前で、`packages/cdl/src` と `packages/cdl/test` の 20 箇所。
|
|
74
|
+
変更履歴の過去の entry は当時の呼び方の記録なので直していない。
|
|
75
|
+
|
|
8
76
|
## [0.68.0] - 2026-09-26
|
|
9
77
|
|
|
10
78
|
### Fixed
|
|
@@ -2900,7 +2968,8 @@ Initial OSS release.
|
|
|
2900
2968
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
2901
2969
|
行き止まりになる。
|
|
2902
2970
|
|
|
2903
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
2971
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.69.0...HEAD
|
|
2972
|
+
[0.69.0]: https://github.com/cardene777/cdl/compare/v0.68.0...v0.69.0
|
|
2904
2973
|
[0.68.0]: https://github.com/cardene777/cdl/compare/v0.67.0...v0.68.0
|
|
2905
2974
|
[0.67.0]: https://github.com/cardene777/cdl/compare/v0.66.0...v0.67.0
|
|
2906
2975
|
[0.66.0]: https://github.com/cardene777/cdl/compare/v0.65.0...v0.66.0
|
package/dist/index.cjs
CHANGED
|
@@ -24991,9 +24991,9 @@ function renderRect(shape, x, y, w, h, stateValues, fillColor, strokeColor, opac
|
|
|
24991
24991
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
24992
24992
|
"text",
|
|
24993
24993
|
{
|
|
24994
|
-
x: x + w
|
|
24994
|
+
x: x + w,
|
|
24995
24995
|
y: y - 6,
|
|
24996
|
-
textAnchor: "
|
|
24996
|
+
textAnchor: "end",
|
|
24997
24997
|
fontSize: 11,
|
|
24998
24998
|
fontFamily: "monospace",
|
|
24999
24999
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
@@ -27034,6 +27034,27 @@ function GanttNode({
|
|
|
27034
27034
|
const \u884C\u306E\u4F38\u3073 = (row) => \u6BB5\u306E\u4F38\u3073(\u4F38\u3073, row + 1, rowCount);
|
|
27035
27035
|
const taskById = new Map(\u6574\u3048\u305F.map((t) => [t.id, t]));
|
|
27036
27036
|
const rowOf = new Map(\u6574\u3048\u305F.map((t, i) => [t.id, i]));
|
|
27037
|
+
const \u7DDA\u306E\u53D6\u308A\u5206 = 0.35;
|
|
27038
|
+
const \u533A\u5207\u308B = (v) => Math.min(1, Math.max(0, v));
|
|
27039
|
+
const \u4E0A\u304B\u3089\u6765\u308B\u7DDA = (row) => {
|
|
27040
|
+
const t = \u6574\u3048\u305F[row];
|
|
27041
|
+
if (t === void 0 || t.dependsOn === void 0) return false;
|
|
27042
|
+
const \u89AA = taskById.get(t.dependsOn);
|
|
27043
|
+
if (\u89AA === void 0) return false;
|
|
27044
|
+
const \u89AA\u306E\u884C = rowOf.get(\u89AA.id);
|
|
27045
|
+
return \u89AA\u306E\u884C !== void 0 && \u89AA\u306E\u884C < row;
|
|
27046
|
+
};
|
|
27047
|
+
const \u5E2F\u306E\u4F38\u3073 = (row) => {
|
|
27048
|
+
const r = \u884C\u306E\u4F38\u3073(row);
|
|
27049
|
+
return \u4E0A\u304B\u3089\u6765\u308B\u7DDA(row) ? \u533A\u5207\u308B((r - \u7DDA\u306E\u53D6\u308A\u5206) / (1 - \u7DDA\u306E\u53D6\u308A\u5206)) : r;
|
|
27050
|
+
};
|
|
27051
|
+
const \u7DDA\u306E\u4F38\u3073 = (\u89AA\u306E\u884C, \u5B50\u306E\u884C) => {
|
|
27052
|
+
if (!drawing) return 1;
|
|
27053
|
+
if (\u89AA\u306E\u884C >= \u5B50\u306E\u884C) {
|
|
27054
|
+
return \u884C\u306E\u4F38\u3073(\u89AA\u306E\u884C) >= 1 && \u884C\u306E\u4F38\u3073(\u5B50\u306E\u884C) >= 1 ? 1 : 0;
|
|
27055
|
+
}
|
|
27056
|
+
return \u533A\u5207\u308B(\u884C\u306E\u4F38\u3073(\u5B50\u306E\u884C) / \u7DDA\u306E\u53D6\u308A\u5206);
|
|
27057
|
+
};
|
|
27037
27058
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
27038
27059
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27039
27060
|
"rect",
|
|
@@ -27142,7 +27163,7 @@ function GanttNode({
|
|
|
27142
27163
|
const bx = \u5E2F\u306E\u5DE6(t.startIdx);
|
|
27143
27164
|
const by = \u5E2F\u306E\u4E0A(row);
|
|
27144
27165
|
const bw = Math.max(0, \u5E2F\u306E\u53F3(t.endIdx) - bx);
|
|
27145
|
-
const \u3053\u306E\u884C = \
|
|
27166
|
+
const \u3053\u306E\u884C = \u5E2F\u306E\u4F38\u3073(row);
|
|
27146
27167
|
const \u4ECA\u306E\u5E45 = drawing ? bw * \u3053\u306E\u884C : bw;
|
|
27147
27168
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
27148
27169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -27196,7 +27217,8 @@ function GanttNode({
|
|
|
27196
27217
|
const \u624B = Math.max(6, (\u7E26\u306E\u7D42\u308F\u308AY - \u51FA\u767AY) * 0.55);
|
|
27197
27218
|
const path = `M ${\u51FA\u767AX} ${\u51FA\u767AY} C ${\u51FA\u767AX} ${\u51FA\u767AY + \u624B}, ${\u7740\u5730X} ${\u7E26\u306E\u7D42\u308F\u308AY - \u624B}, ${\u7740\u5730X} ${\u7E26\u306E\u7D42\u308F\u308AY}`;
|
|
27198
27219
|
const arrowHeadPath = `M ${\u7740\u5730X} ${\u7740\u5730Y} L ${\u7740\u5730X - \u77E2\u3058\u308A\u306E\u5E45 / 2} ${\u7E26\u306E\u7D42\u308F\u308AY} L ${\u7740\u5730X + \u77E2\u3058\u308A\u306E\u5E45 / 2} ${\u7E26\u306E\u7D42\u308F\u308AY} Z`;
|
|
27199
|
-
|
|
27220
|
+
const \u5F15\u3051\u305F = \u7DDA\u306E\u4F38\u3073(parentRow, childRow);
|
|
27221
|
+
return \u5F15\u3051\u305F <= 0 ? null : /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "gantt-arrow", children: [
|
|
27200
27222
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27201
27223
|
"path",
|
|
27202
27224
|
{
|
|
@@ -27205,10 +27227,11 @@ function GanttNode({
|
|
|
27205
27227
|
stroke: "var(--cdl-text-mute, #8a8678)",
|
|
27206
27228
|
strokeWidth: 2.4,
|
|
27207
27229
|
strokeLinejoin: "round",
|
|
27208
|
-
strokeLinecap: "round"
|
|
27230
|
+
strokeLinecap: "round",
|
|
27231
|
+
...\u4F38\u3070\u3059dash(drawing, \u5F15\u3051\u305F)
|
|
27209
27232
|
}
|
|
27210
27233
|
),
|
|
27211
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27234
|
+
\u5F15\u3051\u305F < 1 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27212
27235
|
"path",
|
|
27213
27236
|
{
|
|
27214
27237
|
d: arrowHeadPath,
|