@cardenelabs/cdl 0.67.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 +84 -1
- package/dist/index.cjs +105 -47
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +105 -47
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +105 -47
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +105 -47
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/gantt.tsx +183 -80
- package/src/presets.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,87 @@ 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
|
+
|
|
40
|
+
## [0.68.0] - 2026-09-26
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- **工程表の帯が伸びる途中で角ばるのと、依存の線が帯から離れるのを直した** (#875)
|
|
45
|
+
|
|
46
|
+
動いている途中を撮って測ったところ、3 つの問題が出た。
|
|
47
|
+
|
|
48
|
+
| 何が起きていたか | 実測 |
|
|
49
|
+
|---|---|
|
|
50
|
+
| 帯の丸い両端が伸びている間だけ潰れる | 進み 0.31 で丸みの横幅が 15 から 4.65 |
|
|
51
|
+
| 依存の矢じりが帯に届かず宙に浮く | 前の工程の直後に次が始まる並びで隙間 6 に対し、矢じりと曲がりに 18 要る |
|
|
52
|
+
| 線の出る所が帯の外に出る | 位置 85 の幅 3 の帯で、出発点 172.5 に対し右端 160.5 |
|
|
53
|
+
|
|
54
|
+
1 つ目は伸ばし方。 帯を包む `g` に横倍率 (`scale(N 1)`) をかけていたため、丸い両端も一緒に潰れていた。
|
|
55
|
+
**`rect` の `width` そのものを変える形に替えた**。 丸みは円のまま残り、短い帯は縦長の楕円へ素直に縮む。
|
|
56
|
+
包みが要らなくなったので、図の中に `scale(` を持つ `transform` は 1 つも無くなった
|
|
57
|
+
(担当者の字だけを包みの外へ出していた #873 の形も、これで不要になる)。
|
|
58
|
+
|
|
59
|
+
2 つ目は線の形。 折れ線で右へ出てから下りて左へ戻る Z 字だったため、隙間の狭い並びで矢じりが帯に
|
|
60
|
+
届かなかった。 **前の帯の下端から出て次の帯の上端へ入る曲線 1 本** に替えた。 行と行の間は必ず
|
|
61
|
+
`rowGap` ぶん空いているので、どんな並びでも同じ形で引ける。
|
|
62
|
+
|
|
63
|
+
3 つ目は出入りの点。 丸みぶん内側へ寄せていたが、目盛りが細かい図では帯が丸み 2 つぶんより狭くなる。
|
|
64
|
+
**寄せ幅を帯の半分で頭打ちにした**。 狭い帯では帯の真ん中から線が出る。
|
|
65
|
+
|
|
66
|
+
矢じりは幅 11 / 高さ 7 の平たい三角、線は太さ 2.4 にした。 細く尖った矢じりだと、高さ 30 の丸帯の
|
|
67
|
+
そばで線だけが浮いて見える。
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- **工程表の見た目を作り直した** (#875)
|
|
72
|
+
|
|
73
|
+
| 部位 | 変更前 | 変更後 |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| 期間の見出し | 図の下 | 図の上 (罫を 1 本引く) |
|
|
76
|
+
| 行の地 | 無し | 1 行おきに薄く敷く (`data-cdl-role="gantt-row"`) |
|
|
77
|
+
| 名前の列と図の境 | 無し | 縦罫を 1 本引く |
|
|
78
|
+
| 目盛りの縦線 | 破線 0.75 / 不透明度 0.5 | 実線 1 / 不透明度 0.45 |
|
|
79
|
+
| 帯の高さ | 行いっぱい | 30 で頭打ちにして行の中で中央に置く |
|
|
80
|
+
| 帯の角 | 6 | 高さの半分 (丸帯) |
|
|
81
|
+
|
|
82
|
+
期間の見出しを上へ動かしたのは、工程表が上から下へ読む図だから。 下にあると、最後の行まで読んでから
|
|
83
|
+
目盛りを確かめに戻ることになる。
|
|
84
|
+
|
|
85
|
+
行の地を 1 行おきに敷くのは、名前の列と帯が横に離れているため。 名前がどの帯のものかを目で追える。
|
|
86
|
+
|
|
87
|
+
帯を行いっぱいに塗ると塊に見えるので、高さを 30 で頭打ちにして行の中で中央に置く。
|
|
88
|
+
|
|
8
89
|
## [0.67.0] - 2026-09-25
|
|
9
90
|
|
|
10
91
|
### Fixed
|
|
@@ -2851,7 +2932,9 @@ Initial OSS release.
|
|
|
2851
2932
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
2852
2933
|
行き止まりになる。
|
|
2853
2934
|
|
|
2854
|
-
[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
|
|
2937
|
+
[0.68.0]: https://github.com/cardene777/cdl/compare/v0.67.0...v0.68.0
|
|
2855
2938
|
[0.67.0]: https://github.com/cardene777/cdl/compare/v0.66.0...v0.67.0
|
|
2856
2939
|
[0.66.0]: https://github.com/cardene777/cdl/compare/v0.65.0...v0.66.0
|
|
2857
2940
|
[0.65.0]: https://github.com/cardene777/cdl/compare/v0.64.1...v0.65.0
|
package/dist/index.cjs
CHANGED
|
@@ -26974,15 +26974,16 @@ function GanttNode({
|
|
|
26974
26974
|
const x0 = node.cx - node.w / 2;
|
|
26975
26975
|
const y0 = node.cy - node.h / 2;
|
|
26976
26976
|
const tasks = resolveGanttData(node.ganttData ?? [], stateValues);
|
|
26977
|
-
const PAD_TOP2 =
|
|
26977
|
+
const PAD_TOP2 = 46;
|
|
26978
26978
|
const PAD_RIGHT2 = 48;
|
|
26979
|
-
const PAD_BOTTOM2 =
|
|
26979
|
+
const PAD_BOTTOM2 = 26;
|
|
26980
26980
|
const PAD_LEFT2 = 156;
|
|
26981
26981
|
const canvasW = node.w - PAD_LEFT2 - PAD_RIGHT2;
|
|
26982
26982
|
const canvasH = node.h - PAD_TOP2 - PAD_BOTTOM2;
|
|
26983
26983
|
const rowGap = 20;
|
|
26984
26984
|
const rowCount = tasks.length || 1;
|
|
26985
26985
|
const rowH = Math.max(28, (canvasH - rowGap * (rowCount + 1)) / rowCount);
|
|
26986
|
+
const \u5E2F\u306E\u9AD8\u3055 = Math.min(rowH, 30);
|
|
26986
26987
|
const \u4F4D\u7F6E\u306E\u4E0A\u9650 = 1e6;
|
|
26987
26988
|
const \u53CE\u3081\u305F = tasks.map((t) => {
|
|
26988
26989
|
const \u59CB = Math.min(\u4F4D\u7F6E\u306E\u4E0A\u9650, Math.max(0, Number.isFinite(t.startIdx) ? t.startIdx : 0));
|
|
@@ -27008,6 +27009,7 @@ function GanttNode({
|
|
|
27008
27009
|
const \u76EE\u76DB\u308A\u306E\u672C\u6570 = Math.ceil(maxIdx / \u76EE\u76DB\u308A\u306E\u9593\u9694);
|
|
27009
27010
|
const xAt = (idx) => PAD_LEFT2 + idx * cellW;
|
|
27010
27011
|
const yAt = (row) => PAD_TOP2 + rowGap + row * (rowH + rowGap);
|
|
27012
|
+
const \u5E2F\u306E\u4E0A = (row) => yAt(row) + (rowH - \u5E2F\u306E\u9AD8\u3055) / 2;
|
|
27011
27013
|
const \u540D\u524D = { \u6574\u6570\u306E\u958B\u59CB: /* @__PURE__ */ new Map(), \u6574\u6570\u306E\u7D42\u4E86: /* @__PURE__ */ new Map(), \u7AEF\u6570\u306E\u958B\u59CB: /* @__PURE__ */ new Map(), \u7AEF\u6570\u306E\u7D42\u4E86: /* @__PURE__ */ new Map() };
|
|
27012
27014
|
const \u7F6E\u304F = (\u8868, \u4F4D\u7F6E, label) => {
|
|
27013
27015
|
if (label !== "" && Number.isFinite(\u4F4D\u7F6E) && !\u8868.has(\u4F4D\u7F6E)) \u8868.set(\u4F4D\u7F6E, label);
|
|
@@ -27032,6 +27034,27 @@ function GanttNode({
|
|
|
27032
27034
|
const \u884C\u306E\u4F38\u3073 = (row) => \u6BB5\u306E\u4F38\u3073(\u4F38\u3073, row + 1, rowCount);
|
|
27033
27035
|
const taskById = new Map(\u6574\u3048\u305F.map((t) => [t.id, t]));
|
|
27034
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
|
+
};
|
|
27035
27058
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
27036
27059
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27037
27060
|
"rect",
|
|
@@ -27047,6 +27070,43 @@ function GanttNode({
|
|
|
27047
27070
|
strokeWidth: active ? 3 : 1.25
|
|
27048
27071
|
}
|
|
27049
27072
|
),
|
|
27073
|
+
\u6574\u3048\u305F.map(
|
|
27074
|
+
(t, row) => row % 2 === 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27075
|
+
"rect",
|
|
27076
|
+
{
|
|
27077
|
+
"data-cdl-role": "gantt-row",
|
|
27078
|
+
x: PAD_LEFT2,
|
|
27079
|
+
y: yAt(row) - rowGap / 2,
|
|
27080
|
+
width: canvasW,
|
|
27081
|
+
height: rowH + rowGap,
|
|
27082
|
+
fill: "var(--cdl-surface-sunken, #f4f2ed)",
|
|
27083
|
+
opacity: 0.55
|
|
27084
|
+
},
|
|
27085
|
+
`band-${t.id}`
|
|
27086
|
+
)
|
|
27087
|
+
),
|
|
27088
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27089
|
+
"line",
|
|
27090
|
+
{
|
|
27091
|
+
x1: PAD_LEFT2,
|
|
27092
|
+
y1: PAD_TOP2,
|
|
27093
|
+
x2: PAD_LEFT2 + canvasW,
|
|
27094
|
+
y2: PAD_TOP2,
|
|
27095
|
+
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27096
|
+
strokeWidth: 1
|
|
27097
|
+
}
|
|
27098
|
+
),
|
|
27099
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27100
|
+
"line",
|
|
27101
|
+
{
|
|
27102
|
+
x1: PAD_LEFT2,
|
|
27103
|
+
y1: PAD_TOP2,
|
|
27104
|
+
x2: PAD_LEFT2,
|
|
27105
|
+
y2: PAD_TOP2 + canvasH,
|
|
27106
|
+
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27107
|
+
strokeWidth: 1
|
|
27108
|
+
}
|
|
27109
|
+
),
|
|
27050
27110
|
gridLabels.map(({ \u4F4D\u7F6E: i, label }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
27051
27111
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27052
27112
|
"line",
|
|
@@ -27057,9 +27117,8 @@ function GanttNode({
|
|
|
27057
27117
|
x2: xAt(i),
|
|
27058
27118
|
y2: PAD_TOP2 + canvasH,
|
|
27059
27119
|
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27060
|
-
strokeWidth:
|
|
27061
|
-
|
|
27062
|
-
opacity: 0.5
|
|
27120
|
+
strokeWidth: 1,
|
|
27121
|
+
opacity: 0.45
|
|
27063
27122
|
}
|
|
27064
27123
|
),
|
|
27065
27124
|
label === "" ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -27067,7 +27126,7 @@ function GanttNode({
|
|
|
27067
27126
|
{
|
|
27068
27127
|
"data-cdl-role": "gantt-tick",
|
|
27069
27128
|
x: xAt(i) + cellW / 2,
|
|
27070
|
-
y: PAD_TOP2
|
|
27129
|
+
y: PAD_TOP2 - 16,
|
|
27071
27130
|
fontSize: 11,
|
|
27072
27131
|
textAnchor: "middle",
|
|
27073
27132
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
@@ -27083,14 +27142,14 @@ function GanttNode({
|
|
|
27083
27142
|
x2: xAt(maxIdx),
|
|
27084
27143
|
y2: PAD_TOP2 + canvasH,
|
|
27085
27144
|
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27086
|
-
strokeWidth:
|
|
27087
|
-
opacity: 0.
|
|
27145
|
+
strokeWidth: 1,
|
|
27146
|
+
opacity: 0.45
|
|
27088
27147
|
}
|
|
27089
27148
|
),
|
|
27090
27149
|
\u6574\u3048\u305F.map((t, row) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
27091
27150
|
"text",
|
|
27092
27151
|
{
|
|
27093
|
-
x: PAD_LEFT2 -
|
|
27152
|
+
x: PAD_LEFT2 - 16,
|
|
27094
27153
|
y: yAt(row) + rowH / 2 + 4,
|
|
27095
27154
|
fontSize: 12,
|
|
27096
27155
|
textAnchor: "end",
|
|
@@ -27102,37 +27161,33 @@ function GanttNode({
|
|
|
27102
27161
|
)),
|
|
27103
27162
|
\u6574\u3048\u305F.map((t, row) => {
|
|
27104
27163
|
const bx = \u5E2F\u306E\u5DE6(t.startIdx);
|
|
27105
|
-
const by =
|
|
27164
|
+
const by = \u5E2F\u306E\u4E0A(row);
|
|
27106
27165
|
const bw = Math.max(0, \u5E2F\u306E\u53F3(t.endIdx) - bx);
|
|
27107
|
-
const \u3053\u306E\u884C = \
|
|
27166
|
+
const \u3053\u306E\u884C = \u5E2F\u306E\u4F38\u3073(row);
|
|
27167
|
+
const \u4ECA\u306E\u5E45 = drawing ? bw * \u3053\u306E\u884C : bw;
|
|
27108
27168
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
27109
27169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27110
|
-
"
|
|
27170
|
+
"rect",
|
|
27111
27171
|
{
|
|
27112
|
-
|
|
27113
|
-
|
|
27114
|
-
|
|
27115
|
-
|
|
27116
|
-
|
|
27117
|
-
|
|
27118
|
-
|
|
27119
|
-
|
|
27120
|
-
|
|
27121
|
-
|
|
27122
|
-
|
|
27123
|
-
rx: 4,
|
|
27124
|
-
fill: toneColor4(t.tone),
|
|
27125
|
-
fillOpacity: 0.9
|
|
27126
|
-
}
|
|
27127
|
-
)
|
|
27172
|
+
"data-cdl-role": "gantt-bar",
|
|
27173
|
+
"data-cdl-unresolved": t.unresolved ? "true" : void 0,
|
|
27174
|
+
"data-cdl-clipped": "clipped" in t && t.clipped ? "true" : void 0,
|
|
27175
|
+
x: bx,
|
|
27176
|
+
y: by,
|
|
27177
|
+
width: \u4ECA\u306E\u5E45,
|
|
27178
|
+
height: \u5E2F\u306E\u9AD8\u3055,
|
|
27179
|
+
rx: \u5E2F\u306E\u9AD8\u3055 / 2,
|
|
27180
|
+
ry: \u5E2F\u306E\u9AD8\u3055 / 2,
|
|
27181
|
+
fill: toneColor4(t.tone),
|
|
27182
|
+
fillOpacity: 0.9
|
|
27128
27183
|
}
|
|
27129
27184
|
),
|
|
27130
|
-
t.owner &&
|
|
27185
|
+
t.owner && \u5E2F\u306E\u9AD8\u3055 >= 22 && \u3053\u306E\u884C >= 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27131
27186
|
"text",
|
|
27132
27187
|
{
|
|
27133
27188
|
"data-cdl-role": "gantt-owner",
|
|
27134
27189
|
x: bx + bw / 2,
|
|
27135
|
-
y: by +
|
|
27190
|
+
y: by + \u5E2F\u306E\u9AD8\u3055 / 2 + 4,
|
|
27136
27191
|
fontSize: 11,
|
|
27137
27192
|
textAnchor: "middle",
|
|
27138
27193
|
fill: "var(--cdl-node-fill, #ffffff)",
|
|
@@ -27147,33 +27202,36 @@ function GanttNode({
|
|
|
27147
27202
|
const parentRow = rowOf.get(parent.id);
|
|
27148
27203
|
const childRow = rowOf.get(t.id);
|
|
27149
27204
|
const parentBarRight = \u5E2F\u306E\u53F3(parent.endIdx);
|
|
27150
|
-
const parentMidY = yAt(parentRow) + rowH / 2;
|
|
27151
27205
|
const childBarLeft = \u5E2F\u306E\u5DE6(t.startIdx);
|
|
27152
|
-
const
|
|
27153
|
-
const
|
|
27154
|
-
const
|
|
27155
|
-
const
|
|
27156
|
-
const
|
|
27157
|
-
const
|
|
27158
|
-
const
|
|
27159
|
-
const
|
|
27160
|
-
const
|
|
27161
|
-
const
|
|
27162
|
-
const
|
|
27163
|
-
const \
|
|
27164
|
-
|
|
27206
|
+
const \u77E2\u3058\u308A\u306E\u5E45 = 11;
|
|
27207
|
+
const \u77E2\u3058\u308A\u306E\u9AD8\u3055 = 7;
|
|
27208
|
+
const \u4E38\u307F = \u5E2F\u306E\u9AD8\u3055 / 2;
|
|
27209
|
+
const \u89AA\u306E\u5DE6 = \u5E2F\u306E\u5DE6(parent.startIdx);
|
|
27210
|
+
const \u5B50\u306E\u53F3 = \u5E2F\u306E\u53F3(t.endIdx);
|
|
27211
|
+
const \u5BC4\u305B = (\u5DE6, \u53F3) => Math.min(\u4E38\u307F, (\u53F3 - \u5DE6) / 2);
|
|
27212
|
+
const \u51FA\u767AX = parentBarRight - \u5BC4\u305B(\u89AA\u306E\u5DE6, parentBarRight);
|
|
27213
|
+
const \u51FA\u767AY = \u5E2F\u306E\u4E0A(parentRow) + \u5E2F\u306E\u9AD8\u3055;
|
|
27214
|
+
const \u7740\u5730X = childBarLeft + \u5BC4\u305B(childBarLeft, \u5B50\u306E\u53F3);
|
|
27215
|
+
const \u7740\u5730Y = \u5E2F\u306E\u4E0A(childRow);
|
|
27216
|
+
const \u7E26\u306E\u7D42\u308F\u308AY = \u7740\u5730Y - \u77E2\u3058\u308A\u306E\u9AD8\u3055;
|
|
27217
|
+
const \u624B = Math.max(6, (\u7E26\u306E\u7D42\u308F\u308AY - \u51FA\u767AY) * 0.55);
|
|
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}`;
|
|
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`;
|
|
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: [
|
|
27165
27222
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27166
27223
|
"path",
|
|
27167
27224
|
{
|
|
27168
27225
|
d: path,
|
|
27169
27226
|
fill: "none",
|
|
27170
27227
|
stroke: "var(--cdl-text-mute, #8a8678)",
|
|
27171
|
-
strokeWidth:
|
|
27228
|
+
strokeWidth: 2.4,
|
|
27172
27229
|
strokeLinejoin: "round",
|
|
27173
|
-
strokeLinecap: "round"
|
|
27230
|
+
strokeLinecap: "round",
|
|
27231
|
+
...\u4F38\u3070\u3059dash(drawing, \u5F15\u3051\u305F)
|
|
27174
27232
|
}
|
|
27175
27233
|
),
|
|
27176
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27234
|
+
\u5F15\u3051\u305F < 1 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27177
27235
|
"path",
|
|
27178
27236
|
{
|
|
27179
27237
|
d: arrowHeadPath,
|