@cardenelabs/cdl 0.66.0 → 0.68.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 +90 -1
- package/dist/index.cjs +119 -84
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +119 -84
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +119 -84
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +119 -84
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/gantt.tsx +136 -51
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,93 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.68.0] - 2026-09-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **工程表の帯が伸びる途中で角ばるのと、依存の線が帯から離れるのを直した** (#875)
|
|
13
|
+
|
|
14
|
+
動いている途中を撮って測ったところ、3 つの問題が出た。
|
|
15
|
+
|
|
16
|
+
| 何が起きていたか | 実測 |
|
|
17
|
+
|---|---|
|
|
18
|
+
| 帯の丸い両端が伸びている間だけ潰れる | 進み 0.31 で丸みの横幅が 15 から 4.65 |
|
|
19
|
+
| 依存の矢じりが帯に届かず宙に浮く | 前の工程の直後に次が始まる並びで隙間 6 に対し、矢じりと曲がりに 18 要る |
|
|
20
|
+
| 線の出る所が帯の外に出る | 位置 85 の幅 3 の帯で、出発点 172.5 に対し右端 160.5 |
|
|
21
|
+
|
|
22
|
+
1 つ目は伸ばし方。 帯を包む `g` に横倍率 (`scale(N 1)`) をかけていたため、丸い両端も一緒に潰れていた。
|
|
23
|
+
**`rect` の `width` そのものを変える形に替えた**。 丸みは円のまま残り、短い帯は縦長の楕円へ素直に縮む。
|
|
24
|
+
包みが要らなくなったので、図の中に `scale(` を持つ `transform` は 1 つも無くなった
|
|
25
|
+
(担当者の字だけを包みの外へ出していた #873 の形も、これで不要になる)。
|
|
26
|
+
|
|
27
|
+
2 つ目は線の形。 折れ線で右へ出てから下りて左へ戻る Z 字だったため、隙間の狭い並びで矢じりが帯に
|
|
28
|
+
届かなかった。 **前の帯の下端から出て次の帯の上端へ入る曲線 1 本** に替えた。 行と行の間は必ず
|
|
29
|
+
`rowGap` ぶん空いているので、どんな並びでも同じ形で引ける。
|
|
30
|
+
|
|
31
|
+
3 つ目は出入りの点。 丸みぶん内側へ寄せていたが、目盛りが細かい図では帯が丸み 2 つぶんより狭くなる。
|
|
32
|
+
**寄せ幅を帯の半分で頭打ちにした**。 狭い帯では帯の真ん中から線が出る。
|
|
33
|
+
|
|
34
|
+
矢じりは幅 11 / 高さ 7 の平たい三角、線は太さ 2.4 にした。 細く尖った矢じりだと、高さ 30 の丸帯の
|
|
35
|
+
そばで線だけが浮いて見える。
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- **工程表の見た目を作り直した** (#875)
|
|
40
|
+
|
|
41
|
+
| 部位 | 変更前 | 変更後 |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| 期間の見出し | 図の下 | 図の上 (罫を 1 本引く) |
|
|
44
|
+
| 行の地 | 無し | 1 行おきに薄く敷く (`data-cdl-role="gantt-row"`) |
|
|
45
|
+
| 名前の列と図の境 | 無し | 縦罫を 1 本引く |
|
|
46
|
+
| 目盛りの縦線 | 破線 0.75 / 不透明度 0.5 | 実線 1 / 不透明度 0.45 |
|
|
47
|
+
| 帯の高さ | 行いっぱい | 30 で頭打ちにして行の中で中央に置く |
|
|
48
|
+
| 帯の角 | 6 | 高さの半分 (丸帯) |
|
|
49
|
+
|
|
50
|
+
期間の見出しを上へ動かしたのは、工程表が上から下へ読む図だから。 下にあると、最後の行まで読んでから
|
|
51
|
+
目盛りを確かめに戻ることになる。
|
|
52
|
+
|
|
53
|
+
行の地を 1 行おきに敷くのは、名前の列と帯が横に離れているため。 名前がどの帯のものかを目で追える。
|
|
54
|
+
|
|
55
|
+
帯を行いっぱいに塗ると塊に見えるので、高さを 30 で頭打ちにして行の中で中央に置く。
|
|
56
|
+
|
|
57
|
+
## [0.67.0] - 2026-09-25
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- **工程表の帯を上から順に伸ばし、担当者の字を伸ばさず帯の真ん中に置くようにした** (#873)
|
|
62
|
+
|
|
63
|
+
段の `draw` で帯を現す時、帯を包む `g` に横倍率をかけて伸ばしていた。 包みの中には帯の四角だけでなく
|
|
64
|
+
**担当者の字も入っていた** ため、倍率が字にもかかる。 進みが 0.6 の時点で字の横幅が 6 割に潰れ、
|
|
65
|
+
伸び切るまで字が横に引き伸ばされ続けていた。
|
|
66
|
+
|
|
67
|
+
さらに **全ての帯が同じ倍率で同時に伸びていた**。 工程表は「前の工程が終わってから次が始まる」 を示す図
|
|
68
|
+
なのに、4 本が横並びで一斉に伸びる。
|
|
69
|
+
|
|
70
|
+
直した点は 4 つ。
|
|
71
|
+
|
|
72
|
+
| 直した点 | 変更前 | 変更後 |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| 倍率のかかる範囲 | 帯の四角と担当者の字 | 帯の四角だけ |
|
|
75
|
+
| 担当者の字の位置 | 帯の左端から 8 | 帯の左端と右端の真ん中 (`text-anchor` は `middle`) |
|
|
76
|
+
| 帯の伸び方 | 全ての帯が図全体の進み | 行ごとに区切り、上の行から順に |
|
|
77
|
+
| 依存の矢印を出す条件 | 図全体の進みが 1 | 両端の行がどちらも伸び切った時 |
|
|
78
|
+
|
|
79
|
+
行ごとの区切りは発想の図と木の図が既に使っている `段の伸び` を行番号に当てる。 進みを行数で等分し、
|
|
80
|
+
その区間に入ってから出るまでを 0→1 で返す。 **行が増えるほど 1 本あたりは速くなる** = 図全体の時間は
|
|
81
|
+
段の `duration` が決めるので、本数で割る以外に配りようがない。
|
|
82
|
+
|
|
83
|
+
担当者の字は **その行が伸び切ってから出す**。 薄く出しながら伸ばす案は採らない = 中央は伸び切った後の
|
|
84
|
+
位置なので、伸びている間は帯の無い所に字が浮く。
|
|
85
|
+
|
|
86
|
+
矢印を出す条件も図全体の進みから両端の行の伸びへ変えた。 変えないと、帯が 4 本とも並んでから矢印が
|
|
87
|
+
まとめて出る。
|
|
88
|
+
|
|
89
|
+
担当者の字に `data-cdl-role="gantt-owner"` が付く (それまで役割を持っていなかった)。
|
|
90
|
+
|
|
91
|
+
描く指定の無い図は 1 要素も変わらない = 行ごとの伸びは進みが 1 の時どの行も 1 を返す。
|
|
92
|
+
|
|
93
|
+
dragon の見本帳で工程表の字が伸びて見えた原因 (dragon#2549)。
|
|
94
|
+
|
|
8
95
|
## [0.66.0] - 2026-09-15
|
|
9
96
|
|
|
10
97
|
### Fixed
|
|
@@ -2813,7 +2900,9 @@ Initial OSS release.
|
|
|
2813
2900
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
2814
2901
|
行き止まりになる。
|
|
2815
2902
|
|
|
2816
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
2903
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.68.0...HEAD
|
|
2904
|
+
[0.68.0]: https://github.com/cardene777/cdl/compare/v0.67.0...v0.68.0
|
|
2905
|
+
[0.67.0]: https://github.com/cardene777/cdl/compare/v0.66.0...v0.67.0
|
|
2817
2906
|
[0.66.0]: https://github.com/cardene777/cdl/compare/v0.65.0...v0.66.0
|
|
2818
2907
|
[0.65.0]: https://github.com/cardene777/cdl/compare/v0.64.1...v0.65.0
|
|
2819
2908
|
[0.64.1]: https://github.com/cardene777/cdl/compare/v0.64.0...v0.64.1
|
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);
|
|
@@ -27029,6 +27031,7 @@ function GanttNode({
|
|
|
27029
27031
|
const \u5E2F\u306E\u5DE6 = (idx) => xAt(idx) + \u5E2F\u306E\u4F59\u767D / 2;
|
|
27030
27032
|
const \u5E2F\u306E\u53F3 = (idx) => xAt(idx) + cellW - \u5E2F\u306E\u4F59\u767D / 2;
|
|
27031
27033
|
const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
27034
|
+
const \u884C\u306E\u4F38\u3073 = (row) => \u6BB5\u306E\u4F38\u3073(\u4F38\u3073, row + 1, rowCount);
|
|
27032
27035
|
const taskById = new Map(\u6574\u3048\u305F.map((t) => [t.id, t]));
|
|
27033
27036
|
const rowOf = new Map(\u6574\u3048\u305F.map((t, i) => [t.id, i]));
|
|
27034
27037
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
@@ -27046,6 +27049,43 @@ function GanttNode({
|
|
|
27046
27049
|
strokeWidth: active ? 3 : 1.25
|
|
27047
27050
|
}
|
|
27048
27051
|
),
|
|
27052
|
+
\u6574\u3048\u305F.map(
|
|
27053
|
+
(t, row) => row % 2 === 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27054
|
+
"rect",
|
|
27055
|
+
{
|
|
27056
|
+
"data-cdl-role": "gantt-row",
|
|
27057
|
+
x: PAD_LEFT2,
|
|
27058
|
+
y: yAt(row) - rowGap / 2,
|
|
27059
|
+
width: canvasW,
|
|
27060
|
+
height: rowH + rowGap,
|
|
27061
|
+
fill: "var(--cdl-surface-sunken, #f4f2ed)",
|
|
27062
|
+
opacity: 0.55
|
|
27063
|
+
},
|
|
27064
|
+
`band-${t.id}`
|
|
27065
|
+
)
|
|
27066
|
+
),
|
|
27067
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27068
|
+
"line",
|
|
27069
|
+
{
|
|
27070
|
+
x1: PAD_LEFT2,
|
|
27071
|
+
y1: PAD_TOP2,
|
|
27072
|
+
x2: PAD_LEFT2 + canvasW,
|
|
27073
|
+
y2: PAD_TOP2,
|
|
27074
|
+
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27075
|
+
strokeWidth: 1
|
|
27076
|
+
}
|
|
27077
|
+
),
|
|
27078
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27079
|
+
"line",
|
|
27080
|
+
{
|
|
27081
|
+
x1: PAD_LEFT2,
|
|
27082
|
+
y1: PAD_TOP2,
|
|
27083
|
+
x2: PAD_LEFT2,
|
|
27084
|
+
y2: PAD_TOP2 + canvasH,
|
|
27085
|
+
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27086
|
+
strokeWidth: 1
|
|
27087
|
+
}
|
|
27088
|
+
),
|
|
27049
27089
|
gridLabels.map(({ \u4F4D\u7F6E: i, label }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
27050
27090
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27051
27091
|
"line",
|
|
@@ -27056,9 +27096,8 @@ function GanttNode({
|
|
|
27056
27096
|
x2: xAt(i),
|
|
27057
27097
|
y2: PAD_TOP2 + canvasH,
|
|
27058
27098
|
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27059
|
-
strokeWidth:
|
|
27060
|
-
|
|
27061
|
-
opacity: 0.5
|
|
27099
|
+
strokeWidth: 1,
|
|
27100
|
+
opacity: 0.45
|
|
27062
27101
|
}
|
|
27063
27102
|
),
|
|
27064
27103
|
label === "" ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -27066,7 +27105,7 @@ function GanttNode({
|
|
|
27066
27105
|
{
|
|
27067
27106
|
"data-cdl-role": "gantt-tick",
|
|
27068
27107
|
x: xAt(i) + cellW / 2,
|
|
27069
|
-
y: PAD_TOP2
|
|
27108
|
+
y: PAD_TOP2 - 16,
|
|
27070
27109
|
fontSize: 11,
|
|
27071
27110
|
textAnchor: "middle",
|
|
27072
27111
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
@@ -27082,14 +27121,14 @@ function GanttNode({
|
|
|
27082
27121
|
x2: xAt(maxIdx),
|
|
27083
27122
|
y2: PAD_TOP2 + canvasH,
|
|
27084
27123
|
stroke: "var(--cdl-divider, #d4d4d8)",
|
|
27085
|
-
strokeWidth:
|
|
27086
|
-
opacity: 0.
|
|
27124
|
+
strokeWidth: 1,
|
|
27125
|
+
opacity: 0.45
|
|
27087
27126
|
}
|
|
27088
27127
|
),
|
|
27089
27128
|
\u6574\u3048\u305F.map((t, row) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
27090
27129
|
"text",
|
|
27091
27130
|
{
|
|
27092
|
-
x: PAD_LEFT2 -
|
|
27131
|
+
x: PAD_LEFT2 - 16,
|
|
27093
27132
|
y: yAt(row) + rowH / 2 + 4,
|
|
27094
27133
|
fontSize: 12,
|
|
27095
27134
|
textAnchor: "end",
|
|
@@ -27101,89 +27140,85 @@ function GanttNode({
|
|
|
27101
27140
|
)),
|
|
27102
27141
|
\u6574\u3048\u305F.map((t, row) => {
|
|
27103
27142
|
const bx = \u5E2F\u306E\u5DE6(t.startIdx);
|
|
27104
|
-
const by =
|
|
27143
|
+
const by = \u5E2F\u306E\u4E0A(row);
|
|
27105
27144
|
const bw = Math.max(0, \u5E2F\u306E\u53F3(t.endIdx) - bx);
|
|
27106
|
-
|
|
27107
|
-
|
|
27108
|
-
|
|
27109
|
-
|
|
27110
|
-
|
|
27111
|
-
|
|
27112
|
-
|
|
27113
|
-
|
|
27114
|
-
|
|
27115
|
-
|
|
27116
|
-
|
|
27117
|
-
|
|
27118
|
-
|
|
27119
|
-
|
|
27120
|
-
|
|
27121
|
-
|
|
27122
|
-
|
|
27123
|
-
|
|
27124
|
-
|
|
27125
|
-
|
|
27126
|
-
|
|
27127
|
-
|
|
27128
|
-
|
|
27129
|
-
|
|
27130
|
-
|
|
27131
|
-
|
|
27132
|
-
|
|
27133
|
-
|
|
27134
|
-
|
|
27135
|
-
|
|
27136
|
-
|
|
27137
|
-
|
|
27138
|
-
|
|
27139
|
-
`bar-${t.id}`
|
|
27140
|
-
);
|
|
27145
|
+
const \u3053\u306E\u884C = \u884C\u306E\u4F38\u3073(row);
|
|
27146
|
+
const \u4ECA\u306E\u5E45 = drawing ? bw * \u3053\u306E\u884C : bw;
|
|
27147
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
27148
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27149
|
+
"rect",
|
|
27150
|
+
{
|
|
27151
|
+
"data-cdl-role": "gantt-bar",
|
|
27152
|
+
"data-cdl-unresolved": t.unresolved ? "true" : void 0,
|
|
27153
|
+
"data-cdl-clipped": "clipped" in t && t.clipped ? "true" : void 0,
|
|
27154
|
+
x: bx,
|
|
27155
|
+
y: by,
|
|
27156
|
+
width: \u4ECA\u306E\u5E45,
|
|
27157
|
+
height: \u5E2F\u306E\u9AD8\u3055,
|
|
27158
|
+
rx: \u5E2F\u306E\u9AD8\u3055 / 2,
|
|
27159
|
+
ry: \u5E2F\u306E\u9AD8\u3055 / 2,
|
|
27160
|
+
fill: toneColor4(t.tone),
|
|
27161
|
+
fillOpacity: 0.9
|
|
27162
|
+
}
|
|
27163
|
+
),
|
|
27164
|
+
t.owner && \u5E2F\u306E\u9AD8\u3055 >= 22 && \u3053\u306E\u884C >= 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27165
|
+
"text",
|
|
27166
|
+
{
|
|
27167
|
+
"data-cdl-role": "gantt-owner",
|
|
27168
|
+
x: bx + bw / 2,
|
|
27169
|
+
y: by + \u5E2F\u306E\u9AD8\u3055 / 2 + 4,
|
|
27170
|
+
fontSize: 11,
|
|
27171
|
+
textAnchor: "middle",
|
|
27172
|
+
fill: "var(--cdl-node-fill, #ffffff)",
|
|
27173
|
+
fontWeight: 600,
|
|
27174
|
+
children: t.owner
|
|
27175
|
+
}
|
|
27176
|
+
)
|
|
27177
|
+
] }, `bar-${t.id}`);
|
|
27141
27178
|
}),
|
|
27142
27179
|
\u6574\u3048\u305F.filter((t) => t.dependsOn && taskById.has(t.dependsOn)).map((t) => {
|
|
27143
27180
|
const parent = taskById.get(t.dependsOn);
|
|
27144
27181
|
const parentRow = rowOf.get(parent.id);
|
|
27145
27182
|
const childRow = rowOf.get(t.id);
|
|
27146
27183
|
const parentBarRight = \u5E2F\u306E\u53F3(parent.endIdx);
|
|
27147
|
-
const parentMidY = yAt(parentRow) + rowH / 2;
|
|
27148
27184
|
const childBarLeft = \u5E2F\u306E\u5DE6(t.startIdx);
|
|
27149
|
-
const
|
|
27150
|
-
const
|
|
27151
|
-
const
|
|
27152
|
-
const
|
|
27153
|
-
const
|
|
27154
|
-
const
|
|
27155
|
-
const
|
|
27156
|
-
const
|
|
27157
|
-
const
|
|
27158
|
-
const
|
|
27159
|
-
const
|
|
27160
|
-
|
|
27161
|
-
|
|
27162
|
-
|
|
27163
|
-
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
|
|
27167
|
-
|
|
27168
|
-
|
|
27169
|
-
|
|
27170
|
-
|
|
27171
|
-
|
|
27172
|
-
|
|
27173
|
-
|
|
27174
|
-
|
|
27175
|
-
|
|
27176
|
-
|
|
27177
|
-
|
|
27178
|
-
|
|
27179
|
-
|
|
27180
|
-
|
|
27181
|
-
|
|
27182
|
-
|
|
27183
|
-
|
|
27184
|
-
|
|
27185
|
-
|
|
27186
|
-
);
|
|
27185
|
+
const \u77E2\u3058\u308A\u306E\u5E45 = 11;
|
|
27186
|
+
const \u77E2\u3058\u308A\u306E\u9AD8\u3055 = 7;
|
|
27187
|
+
const \u4E38\u307F = \u5E2F\u306E\u9AD8\u3055 / 2;
|
|
27188
|
+
const \u89AA\u306E\u5DE6 = \u5E2F\u306E\u5DE6(parent.startIdx);
|
|
27189
|
+
const \u5B50\u306E\u53F3 = \u5E2F\u306E\u53F3(t.endIdx);
|
|
27190
|
+
const \u5BC4\u305B = (\u5DE6, \u53F3) => Math.min(\u4E38\u307F, (\u53F3 - \u5DE6) / 2);
|
|
27191
|
+
const \u51FA\u767AX = parentBarRight - \u5BC4\u305B(\u89AA\u306E\u5DE6, parentBarRight);
|
|
27192
|
+
const \u51FA\u767AY = \u5E2F\u306E\u4E0A(parentRow) + \u5E2F\u306E\u9AD8\u3055;
|
|
27193
|
+
const \u7740\u5730X = childBarLeft + \u5BC4\u305B(childBarLeft, \u5B50\u306E\u53F3);
|
|
27194
|
+
const \u7740\u5730Y = \u5E2F\u306E\u4E0A(childRow);
|
|
27195
|
+
const \u7E26\u306E\u7D42\u308F\u308AY = \u7740\u5730Y - \u77E2\u3058\u308A\u306E\u9AD8\u3055;
|
|
27196
|
+
const \u624B = Math.max(6, (\u7E26\u306E\u7D42\u308F\u308AY - \u51FA\u767AY) * 0.55);
|
|
27197
|
+
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
|
+
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: [
|
|
27200
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27201
|
+
"path",
|
|
27202
|
+
{
|
|
27203
|
+
d: path,
|
|
27204
|
+
fill: "none",
|
|
27205
|
+
stroke: "var(--cdl-text-mute, #8a8678)",
|
|
27206
|
+
strokeWidth: 2.4,
|
|
27207
|
+
strokeLinejoin: "round",
|
|
27208
|
+
strokeLinecap: "round"
|
|
27209
|
+
}
|
|
27210
|
+
),
|
|
27211
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27212
|
+
"path",
|
|
27213
|
+
{
|
|
27214
|
+
d: arrowHeadPath,
|
|
27215
|
+
fill: "var(--cdl-text-mute, #8a8678)",
|
|
27216
|
+
stroke: "var(--cdl-text-mute, #8a8678)",
|
|
27217
|
+
strokeWidth: 0.5,
|
|
27218
|
+
strokeLinejoin: "round"
|
|
27219
|
+
}
|
|
27220
|
+
)
|
|
27221
|
+
] }, `dep-${parent.id}-${t.id}`);
|
|
27187
27222
|
})
|
|
27188
27223
|
] });
|
|
27189
27224
|
}
|