@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 +34 -1
- package/dist/index.cjs +27 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +27 -4
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +27 -4
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +27 -4
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/gantt.tsx +65 -14
- package/src/presets.ts +1 -1
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.
|
|
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 = \
|
|
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,
|