@cardenelabs/cdl 0.68.0 → 0.69.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 CHANGED
@@ -5,6 +5,38 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.69.0] - 2026-09-26
9
+
10
+ ### Fixed
11
+
12
+ - **ガントチャートの依存の線を根元から伸ばし、届いてから次の帯を伸ばすようにした** (#877)
13
+
14
+ 線は両端の行が伸び切った瞬間に丸ごと現れていた。 帯は根元から先へ伸びるのに、線だけが一度に出る。
15
+
16
+ さらに出る順序が図の読み方と逆だった。 図は「前の工程が終わってから次が始まる」 を示すのに、
17
+ 動きは「次の工程の帯が伸び切ってから、その帯へ向かう線が出る」 という順になる。
18
+ 線が届いたから次が始まった、という因果が動きから読めない。
19
+
20
+ **行の持ち時間を 2 つに割る**。 先に入ってくる線を引き (`線の取り分` = 0.35)、残りで帯を伸ばす。
21
+ 行の持ち時間そのものは変えないので、図全体の長さは変わらない。
22
+
23
+ | 何が | 変更前 | 変更後 |
24
+ |---|---|---|
25
+ | 線の出方 | 両端が伸び切った瞬間に丸ごと | 根元から先へ伸びる (`stroke-dashoffset`) |
26
+ | 矢じり | 線と同時 | 線が届いてから |
27
+ | 順序 | 帯 → 帯 → 線 | 帯 → 線 → 帯 |
28
+
29
+ **親が下にある依存だけは今までどおり一度に出す**。 上から下へ読む図で、下から戻る線を先に
30
+ 引くと順序が逆に見えるため。
31
+
32
+ ### Changed
33
+
34
+ - **図の日本語名を `工程表` から `ガントチャート` に変えた** (#877)
35
+
36
+ mermaid の呼び方に揃える。 記法の図種名 (`gantt`) は変えていない。
37
+ 変えたのはコメントと検査の名前で、`packages/cdl/src` と `packages/cdl/test` の 20 箇所。
38
+ 変更履歴の過去の entry は当時の呼び方の記録なので直していない。
39
+
8
40
  ## [0.68.0] - 2026-09-26
9
41
 
10
42
  ### Fixed
@@ -2900,7 +2932,8 @@ Initial OSS release.
2900
2932
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
2901
2933
  行き止まりになる。
2902
2934
 
2903
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.68.0...HEAD
2935
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.69.0...HEAD
2936
+ [0.69.0]: https://github.com/cardene777/cdl/compare/v0.68.0...v0.69.0
2904
2937
  [0.68.0]: https://github.com/cardene777/cdl/compare/v0.67.0...v0.68.0
2905
2938
  [0.67.0]: https://github.com/cardene777/cdl/compare/v0.66.0...v0.67.0
2906
2939
  [0.66.0]: https://github.com/cardene777/cdl/compare/v0.65.0...v0.66.0
package/dist/index.cjs CHANGED
@@ -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 = \u884C\u306E\u4F38\u3073(row);
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
- return drawing && !(\u884C\u306E\u4F38\u3073(parentRow) >= 1 && \u884C\u306E\u4F38\u3073(childRow) >= 1) ? null : /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "gantt-arrow", children: [
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,