@cardenelabs/cdl 0.38.0 → 0.39.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 +22 -1
- package/SPEC.md +6 -1
- package/dist/index.cjs +138 -97
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +138 -97
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +138 -97
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +138 -97
- package/dist/react.js.map +1 -1
- package/dist/{render-BYdmSviQ.d.cts → render-B1ArenZ7.d.cts} +4 -0
- package/dist/{render-BYdmSviQ.d.ts → render-B1ArenZ7.d.ts} +4 -0
- package/package.json +1 -1
- package/src/kinds/chart-gauge.tsx +49 -14
- package/src/kinds/chart-pie.tsx +1 -16
- package/src/kinds/chart-radial.tsx +45 -11
- package/src/kinds/chart-stacked-bar.tsx +96 -54
- package/src/kinds/draw-arc.tsx +42 -0
- package/src/render/nodes.tsx +31 -6
- package/src/types.ts +4 -0
- package/src/validate.ts +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.39.0] - 2026-09-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **弧と帯で量を表す 3 種も段の `draw` で起点から現れるようにした** (#715)
|
|
13
|
+
|
|
14
|
+
半円ゲージ (`chart-gauge`) は 9 時から上を通って 3 時へ弧が伸び、放射 (`chart-radial`) は
|
|
15
|
+
各輪が 12 時から時計回りに開き、積層帯 (`chart-stacked-bar`) は左から帯が伸びる。
|
|
16
|
+
|
|
17
|
+
どれも「量を長さで表す」 図なので、起点と伸びる向きが図の意味から決まる。 それまで
|
|
18
|
+
`draw` が効く種別は 9 つで、この 3 種は書いても何も起きなかった (実測で 6 秒間、
|
|
19
|
+
半円ゲージの弧の `d` が一度も変わらなかった)。 見本帳に並べると動く図と動かない図が混ざる。
|
|
20
|
+
|
|
21
|
+
**切り抜くのは量を表す形だけ**。 放射の軌道 (全周の薄い輪) は「あとどれだけで一周か」 を
|
|
22
|
+
示す枠なので最初から出す。 半円ゲージの合計の字は主役なので、左から半分ずつ現れると読めない。
|
|
23
|
+
積層帯の区画の字だけは区画と一緒に切り抜く (字は区画の上に乗っているため)。
|
|
24
|
+
|
|
25
|
+
形を表す属性は今までどおり触らない。 弧の `d` と区画の `width` は進みに関わらず実値で、
|
|
26
|
+
見える範囲だけが変わる。 `draw` を書かない図の絵は 1 文字も変わらない。
|
|
27
|
+
|
|
8
28
|
## [0.38.0] - 2026-09-07
|
|
9
29
|
|
|
10
30
|
### Fixed
|
|
@@ -1740,7 +1760,8 @@ Initial OSS release.
|
|
|
1740
1760
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
1741
1761
|
行き止まりになる。
|
|
1742
1762
|
|
|
1743
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
1763
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.39.0...HEAD
|
|
1764
|
+
[0.39.0]: https://github.com/cardene777/cdl/compare/v0.38.0...v0.39.0
|
|
1744
1765
|
[0.38.0]: https://github.com/cardene777/cdl/compare/v0.37.0...v0.38.0
|
|
1745
1766
|
[0.37.0]: https://github.com/cardene777/cdl/compare/v0.36.0...v0.37.0
|
|
1746
1767
|
[0.36.0]: https://github.com/cardene777/cdl/compare/v0.35.0...v0.36.0
|
package/SPEC.md
CHANGED
|
@@ -140,11 +140,15 @@ phase でも線を引き直すことになる。
|
|
|
140
140
|
| `chart-line` | 左端 | 線が右へ伸びる | 点と数字は線の先が届いた時 |
|
|
141
141
|
| `chart-bar` | 横軸 | 棒が上へ伸びる | 数字は棒の頭に付いて動く |
|
|
142
142
|
| `chart-pie` | 12 時 | 扇が時計回りに開く | 凡例はその扇が開き始めた時 |
|
|
143
|
+
| `chart-slope` | 左の軸 | 線が右の軸へ伸びる | 右の値は線が右の軸に着いた時 |
|
|
143
144
|
| `journey-map` | 左端 | 気持ちの線が右へ伸びる | 段はその点に線の先が届いた時 |
|
|
144
145
|
| `mind-map` | 中心 | 枝が段ごとに外へ伸びる | 箱はその枝が届いた時 |
|
|
145
146
|
| `tree-hierarchy` | 根 | 枝が段ごとに下へ伸びる | 箱はその枝が届いた時 |
|
|
146
147
|
| `gantt-timeline` | 各帯の始端 | 帯が右へ伸びる | 依存の矢印は帯が出揃った時 |
|
|
147
148
|
| `funnel-stages` | 上端 | 段が上から順に積まれる | 件数と離脱率はその段が出切った時 |
|
|
149
|
+
| `chart-gauge` | 9 時 | 弧が上を通って 3 時へ伸びる | 合計と内訳は最初から出る |
|
|
150
|
+
| `chart-radial` | 12 時 | 各輪が時計回りに開く | 軌道と一覧は最初から出る |
|
|
151
|
+
| `chart-stacked-bar` | 左端 | 帯が右へ伸びる | 区画の字はその区画が広がった時 |
|
|
148
152
|
|
|
149
153
|
対応種別の一覧は `validate.ts` の `DRAW_KINDS` が持ち、 知らせの文面もそこから組み立てる。
|
|
150
154
|
|
|
@@ -155,7 +159,8 @@ phase でも線を引き直すことになる。
|
|
|
155
159
|
|
|
156
160
|
**枝が複数ある種別は段ごとに順に伸ばす** (`mind-map` / `tree-hierarchy`)。 深さを等分し、
|
|
157
161
|
中心 / 根に近い段から順に伸ばす。 全部を同時に伸ばすと、離れた枝が宙に浮いたまま伸びる。
|
|
158
|
-
進みの畳み方と dash の当て方は `kinds/draw-progress.ts`
|
|
162
|
+
進みの畳み方と dash の当て方は `kinds/draw-progress.ts` が、 弧で量を表す図の切り抜きは
|
|
163
|
+
`kinds/draw-arc.tsx` が SSOT。
|
|
159
164
|
|
|
160
165
|
`draw` を書かない図は従来どおり全体を描き、 DOM に属性も要素も足さない。
|
|
161
166
|
|
package/dist/index.cjs
CHANGED
|
@@ -20808,7 +20808,10 @@ var DRAW_KINDS = /* @__PURE__ */ new Set([
|
|
|
20808
20808
|
"mind-map",
|
|
20809
20809
|
"tree-hierarchy",
|
|
20810
20810
|
"gantt-timeline",
|
|
20811
|
-
"funnel-stages"
|
|
20811
|
+
"funnel-stages",
|
|
20812
|
+
"chart-gauge",
|
|
20813
|
+
"chart-radial",
|
|
20814
|
+
"chart-stacked-bar"
|
|
20812
20815
|
]);
|
|
20813
20816
|
var KINDS = new Set(NODE_KINDS);
|
|
20814
20817
|
var ENG_BANNED = /\b(FUNCTION|STORAGE|EVENT LOG|BALANCES MAPPING|READ|WRITE|EMIT|CALL)\b/;
|
|
@@ -24354,6 +24357,15 @@ function interpolateColor(template, stateValues, fallback) {
|
|
|
24354
24357
|
if (!template) return fallback;
|
|
24355
24358
|
return interpolate(template, stateValues);
|
|
24356
24359
|
}
|
|
24360
|
+
function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D, \u8D77\u70B9 = -Math.PI / 2, \u5168\u5468 = Math.PI * 2) {
|
|
24361
|
+
if (\u958B\u304D <= 0) return null;
|
|
24362
|
+
if (\u958B\u304D >= 1 && \u5168\u5468 >= Math.PI * 2) return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r });
|
|
24363
|
+
const a0 = \u8D77\u70B9;
|
|
24364
|
+
const a1 = a0 + Math.min(1, \u958B\u304D) * \u5168\u5468;
|
|
24365
|
+
const large = a1 - a0 > Math.PI ? 1 : 0;
|
|
24366
|
+
const d = `M ${cx} ${cy} L ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} A ${r} ${r} 0 ${large} 1 ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} Z`;
|
|
24367
|
+
return /* @__PURE__ */ jsxRuntime.jsx("path", { d });
|
|
24368
|
+
}
|
|
24357
24369
|
|
|
24358
24370
|
// src/kinds/chart-number.ts
|
|
24359
24371
|
function \u5B9F\u5024\u8868\u8A18(v) {
|
|
@@ -24801,15 +24813,6 @@ function \u8F2A\u306E\u9053(cx, cy, R, r, a0, a1) {
|
|
|
24801
24813
|
const large = a1 - a0 > Math.PI ? 1 : 0;
|
|
24802
24814
|
return `M ${cx + R * Math.cos(a0)} ${cy + R * Math.sin(a0)} A ${R} ${R} 0 ${large} 1 ${cx + R * Math.cos(a1)} ${cy + R * Math.sin(a1)} L ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} A ${r} ${r} 0 ${large} 0 ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} Z`;
|
|
24803
24815
|
}
|
|
24804
|
-
function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D) {
|
|
24805
|
-
if (\u958B\u304D <= 0) return null;
|
|
24806
|
-
if (\u958B\u304D >= 1) return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r });
|
|
24807
|
-
const a0 = -Math.PI / 2;
|
|
24808
|
-
const a1 = a0 + \u958B\u304D * Math.PI * 2;
|
|
24809
|
-
const large = \u958B\u304D > 0.5 ? 1 : 0;
|
|
24810
|
-
const d = `M ${cx} ${cy} L ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} A ${r} ${r} 0 ${large} 1 ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} Z`;
|
|
24811
|
-
return /* @__PURE__ */ jsxRuntime.jsx("path", { d });
|
|
24812
|
-
}
|
|
24813
24816
|
function sliceColor(tone, idx) {
|
|
24814
24817
|
if (tone) return TONE[tone];
|
|
24815
24818
|
return chartSeriesColor(idx);
|
|
@@ -24817,7 +24820,9 @@ function sliceColor(tone, idx) {
|
|
|
24817
24820
|
function ChartGaugeNode({
|
|
24818
24821
|
node,
|
|
24819
24822
|
active,
|
|
24820
|
-
stateValues = {}
|
|
24823
|
+
stateValues = {},
|
|
24824
|
+
drawing = false,
|
|
24825
|
+
progress = 1
|
|
24821
24826
|
}) {
|
|
24822
24827
|
const x0 = node.cx - node.w / 2;
|
|
24823
24828
|
const y0 = node.cy - node.h / 2;
|
|
@@ -24862,6 +24867,21 @@ function ChartGaugeNode({
|
|
|
24862
24867
|
const \u898B\u51FA\u3057\u306E\u7D1A = Math.max(9, Math.round(\u5408\u8A08\u306E\u7D1A * 0.38));
|
|
24863
24868
|
const \u5185\u8A33\u306E\u5E45 = \u4F7F\u3048\u308B\u5E452 / Math.max(data.length, 1);
|
|
24864
24869
|
const \u5185\u8A33\u306Ey = cy + \u5F27\u3068\u5185\u8A33\u306E\u9593;
|
|
24870
|
+
const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
24871
|
+
const \u5207\u308A\u629C\u304Did = `cdl-gauge-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
|
|
24872
|
+
const \u5F27\u305F\u3061 = slices.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
24873
|
+
"path",
|
|
24874
|
+
{
|
|
24875
|
+
"data-cdl-role": "chart-gauge-arc",
|
|
24876
|
+
"data-cdl-unresolved": s.d.unresolved ? "true" : void 0,
|
|
24877
|
+
d: s.path,
|
|
24878
|
+
fill: arcColor(s.d.tone, idx),
|
|
24879
|
+
stroke: "var(--cdl-node-fill, #ffffff)",
|
|
24880
|
+
strokeWidth: 3,
|
|
24881
|
+
strokeLinejoin: "round"
|
|
24882
|
+
},
|
|
24883
|
+
`arc-${idx}`
|
|
24884
|
+
));
|
|
24865
24885
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
24866
24886
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24867
24887
|
"rect",
|
|
@@ -24877,19 +24897,8 @@ function ChartGaugeNode({
|
|
|
24877
24897
|
strokeWidth: active ? 3 : 1.25
|
|
24878
24898
|
}
|
|
24879
24899
|
),
|
|
24880
|
-
|
|
24881
|
-
|
|
24882
|
-
{
|
|
24883
|
-
"data-cdl-role": "chart-gauge-arc",
|
|
24884
|
-
"data-cdl-unresolved": s.d.unresolved ? "true" : void 0,
|
|
24885
|
-
d: s.path,
|
|
24886
|
-
fill: arcColor(s.d.tone, idx),
|
|
24887
|
-
stroke: "var(--cdl-node-fill, #ffffff)",
|
|
24888
|
-
strokeWidth: 3,
|
|
24889
|
-
strokeLinejoin: "round"
|
|
24890
|
-
},
|
|
24891
|
-
`arc-${idx}`
|
|
24892
|
-
)),
|
|
24900
|
+
drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, radius + 2, \u4F38\u3073, Math.PI, Math.PI) }) }),
|
|
24901
|
+
drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u5F27\u305F\u3061 }) : \u5F27\u305F\u3061,
|
|
24893
24902
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24894
24903
|
"text",
|
|
24895
24904
|
{
|
|
@@ -24954,7 +24963,9 @@ function arcColor(tone, idx) {
|
|
|
24954
24963
|
function ChartRadialNode({
|
|
24955
24964
|
node,
|
|
24956
24965
|
active,
|
|
24957
|
-
stateValues = {}
|
|
24966
|
+
stateValues = {},
|
|
24967
|
+
drawing = false,
|
|
24968
|
+
progress = 1
|
|
24958
24969
|
}) {
|
|
24959
24970
|
const x0 = node.cx - node.w / 2;
|
|
24960
24971
|
const y0 = node.cy - node.h / 2;
|
|
@@ -24993,6 +25004,20 @@ function ChartRadialNode({
|
|
|
24993
25004
|
};
|
|
24994
25005
|
});
|
|
24995
25006
|
const \u4E00\u89A7\u306E\u59CB\u307E\u308A = PAD + (\u4F7F\u3048\u308B\u9AD8\u3055 - \u884C\u306E\u9AD8\u3055 * data.length) / 2 + \u884C\u306E\u9AD8\u3055 / 2;
|
|
25007
|
+
const \u958B\u304D = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
25008
|
+
const \u5207\u308A\u629C\u304Did = `cdl-radial-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
|
|
25009
|
+
const \u53D6\u308A\u5206\u305F\u3061 = rings.map(
|
|
25010
|
+
(r, idx) => r.\u53D6\u308A\u5206 === null ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
25011
|
+
"path",
|
|
25012
|
+
{
|
|
25013
|
+
"data-cdl-role": "chart-radial-arc",
|
|
25014
|
+
"data-cdl-unresolved": r.d.unresolved ? "true" : void 0,
|
|
25015
|
+
d: r.\u53D6\u308A\u5206,
|
|
25016
|
+
fill: arcColor2(r.d.tone, idx)
|
|
25017
|
+
},
|
|
25018
|
+
`arc-${idx}`
|
|
25019
|
+
)
|
|
25020
|
+
);
|
|
24996
25021
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
24997
25022
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24998
25023
|
"rect",
|
|
@@ -25018,18 +25043,8 @@ function ChartRadialNode({
|
|
|
25018
25043
|
},
|
|
25019
25044
|
`track-${idx}`
|
|
25020
25045
|
)),
|
|
25021
|
-
|
|
25022
|
-
|
|
25023
|
-
"path",
|
|
25024
|
-
{
|
|
25025
|
-
"data-cdl-role": "chart-radial-arc",
|
|
25026
|
-
"data-cdl-unresolved": r.d.unresolved ? "true" : void 0,
|
|
25027
|
-
d: r.\u53D6\u308A\u5206,
|
|
25028
|
-
fill: arcColor2(r.d.tone, idx)
|
|
25029
|
-
},
|
|
25030
|
-
`arc-${idx}`
|
|
25031
|
-
)
|
|
25032
|
-
),
|
|
25046
|
+
drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(\u5F27\u306Ecx, cy, \u5916\u534A\u5F84 + \u5E2F\u306E\u5E45, \u958B\u304D) }) }),
|
|
25047
|
+
drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u53D6\u308A\u5206\u305F\u3061 }) : \u53D6\u308A\u5206\u305F\u3061,
|
|
25033
25048
|
data.map((d, idx) => {
|
|
25034
25049
|
const y = \u4E00\u89A7\u306E\u59CB\u307E\u308A + \u884C\u306E\u9AD8\u3055 * idx;
|
|
25035
25050
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "chart-radial-item", children: [
|
|
@@ -25352,7 +25367,9 @@ var SLICE_MIN_W_FOR_VALUE = 84;
|
|
|
25352
25367
|
function ChartStackedBarNode({
|
|
25353
25368
|
node,
|
|
25354
25369
|
active,
|
|
25355
|
-
stateValues = {}
|
|
25370
|
+
stateValues = {},
|
|
25371
|
+
drawing = false,
|
|
25372
|
+
progress = 1
|
|
25356
25373
|
}) {
|
|
25357
25374
|
const x0 = node.cx - node.w / 2;
|
|
25358
25375
|
const y0 = node.cy - node.h / 2;
|
|
@@ -25370,6 +25387,8 @@ function ChartStackedBarNode({
|
|
|
25370
25387
|
const \u4E00\u89A7\u306E\u9AD8\u3055 = 26;
|
|
25371
25388
|
const \u5168\u4F53\u306E\u9AD8\u3055 = \u5E2F\u305F\u3061.length * \u5E2F\u306E\u9AD8\u3055 + (\u5E2F\u305F\u3061.length - 1) * \u5E2F\u306E\u9593 + 16 + \u4E00\u89A7\u306E\u9AD8\u3055;
|
|
25372
25389
|
const \u4E0A\u7AEF = Math.max(PAD, (node.h - \u5168\u4F53\u306E\u9AD8\u3055) / 2);
|
|
25390
|
+
const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
25391
|
+
const \u5207\u308A\u629C\u304Did = `cdl-stacked-bar-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
|
|
25373
25392
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
25374
25393
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25375
25394
|
"rect",
|
|
@@ -25385,6 +25404,7 @@ function ChartStackedBarNode({
|
|
|
25385
25404
|
strokeWidth: active ? 3 : 1.25
|
|
25386
25405
|
}
|
|
25387
25406
|
),
|
|
25407
|
+
drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: \u5E2F\u306E\u5DE6 + \u5E2F\u306E\u5E45 * \u4F38\u3073, height: node.h }) }) }),
|
|
25388
25408
|
\u5E2F\u305F\u3061.map((\u5E2F, \u6BB5) => {
|
|
25389
25409
|
const y = \u4E0A\u7AEF + \u6BB5 * (\u5E2F\u306E\u9AD8\u3055 + \u5E2F\u306E\u9593);
|
|
25390
25410
|
let \u5DE6 = \u5E2F\u306E\u5DE6;
|
|
@@ -25401,68 +25421,62 @@ function ChartStackedBarNode({
|
|
|
25401
25421
|
children: \u5E2F.\u540D\u524D
|
|
25402
25422
|
}
|
|
25403
25423
|
),
|
|
25404
|
-
|
|
25405
|
-
const
|
|
25406
|
-
|
|
25407
|
-
|
|
25408
|
-
|
|
25409
|
-
|
|
25410
|
-
/* @__PURE__ */ jsxRuntime.
|
|
25411
|
-
|
|
25412
|
-
|
|
25413
|
-
|
|
25414
|
-
|
|
25415
|
-
|
|
25416
|
-
|
|
25417
|
-
|
|
25418
|
-
|
|
25419
|
-
|
|
25420
|
-
|
|
25421
|
-
|
|
25422
|
-
|
|
25423
|
-
|
|
25424
|
-
|
|
25425
|
-
|
|
25426
|
-
|
|
25427
|
-
|
|
25428
|
-
|
|
25429
|
-
|
|
25430
|
-
|
|
25431
|
-
|
|
25432
|
-
|
|
25433
|
-
|
|
25434
|
-
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
|
|
25439
|
-
|
|
25440
|
-
|
|
25441
|
-
|
|
25442
|
-
|
|
25443
|
-
|
|
25444
|
-
|
|
25445
|
-
|
|
25446
|
-
|
|
25447
|
-
|
|
25448
|
-
|
|
25449
|
-
|
|
25424
|
+
(() => {
|
|
25425
|
+
const \u533A\u753B\u305F\u3061 = \u5E2F.\u533A\u753B.map((s, idx) => {
|
|
25426
|
+
const w = \u5E2F\u306E\u5E45 * s.\u5272\u5408;
|
|
25427
|
+
const x = \u5DE6;
|
|
25428
|
+
\u5DE6 += w;
|
|
25429
|
+
const \u8272 = \u5370\u306E\u82723(s.tone, idx);
|
|
25430
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
25431
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25432
|
+
"rect",
|
|
25433
|
+
{
|
|
25434
|
+
"data-cdl-role": "chart-stacked-bar-slice",
|
|
25435
|
+
"data-cdl-unresolved": s.unresolved ? "true" : void 0,
|
|
25436
|
+
x,
|
|
25437
|
+
y,
|
|
25438
|
+
width: Math.max(0, w),
|
|
25439
|
+
height: \u5E2F\u306E\u9AD8\u3055,
|
|
25440
|
+
fill: \u8272
|
|
25441
|
+
}
|
|
25442
|
+
),
|
|
25443
|
+
w >= SLICE_MIN_W_FOR_TEXT && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25444
|
+
"text",
|
|
25445
|
+
{
|
|
25446
|
+
"data-cdl-role": "chart-stacked-bar-slice-text",
|
|
25447
|
+
x: x + w / 2,
|
|
25448
|
+
y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + (w >= SLICE_MIN_W_FOR_VALUE ? -2 : 4),
|
|
25449
|
+
fontSize: \u533A\u753B\u306E\u7D1A,
|
|
25450
|
+
fontWeight: 700,
|
|
25451
|
+
textAnchor: "middle",
|
|
25452
|
+
fill: "#ffffff",
|
|
25453
|
+
children: \u5272\u5408\u8868\u8A18(s.\u5272\u5408)
|
|
25454
|
+
}
|
|
25455
|
+
),
|
|
25456
|
+
w >= SLICE_MIN_W_FOR_VALUE && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25457
|
+
"text",
|
|
25458
|
+
{
|
|
25459
|
+
"data-cdl-role": "chart-stacked-bar-slice-value",
|
|
25460
|
+
x: x + w / 2,
|
|
25461
|
+
y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + 13,
|
|
25462
|
+
fontSize: \u533A\u753B\u306E\u7D1A - 1,
|
|
25463
|
+
textAnchor: "middle",
|
|
25464
|
+
fill: "#ffffff",
|
|
25465
|
+
fillOpacity: 0.85,
|
|
25466
|
+
children: \u5B9F\u5024\u8868\u8A18(s.\u5B9F\u5024)
|
|
25467
|
+
}
|
|
25468
|
+
)
|
|
25469
|
+
] }, `slice-${idx}`);
|
|
25470
|
+
});
|
|
25471
|
+
return drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u533A\u753B\u305F\u3061 }) : \u533A\u753B\u305F\u3061;
|
|
25472
|
+
})()
|
|
25450
25473
|
] }, `bar-${\u6BB5}`);
|
|
25451
25474
|
}),
|
|
25452
25475
|
\u4E00\u89A7\u306E\u4E26\u3073(data, \u5E2F\u306E\u5DE6, node.w - PAD, \u540D\u524D\u306E\u7D1A).map(({ d, idx, x, \u884C }) => {
|
|
25453
25476
|
const y = \u4E0A\u7AEF + \u5E2F\u305F\u3061.length * (\u5E2F\u306E\u9AD8\u3055 + \u5E2F\u306E\u9593) - \u5E2F\u306E\u9593 + 16 + \u4E00\u89A7\u306E\u9AD8\u3055 / 2 + \u884C * \u4E00\u89A7\u306E\u9AD8\u3055;
|
|
25454
25477
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "chart-stacked-bar-legend", children: [
|
|
25455
25478
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y - 5, width: 10, height: 10, rx: 2, fill: \u5370\u306E\u82723(d.tone, idx) }),
|
|
25456
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25457
|
-
"text",
|
|
25458
|
-
{
|
|
25459
|
-
x: x + 16,
|
|
25460
|
-
y: y + 4,
|
|
25461
|
-
fontSize: \u540D\u524D\u306E\u7D1A,
|
|
25462
|
-
fill: "var(--cdl-text, #1a1f2a)",
|
|
25463
|
-
children: d.label
|
|
25464
|
-
}
|
|
25465
|
-
)
|
|
25479
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 16, y: y + 4, fontSize: \u540D\u524D\u306E\u7D1A, fill: "var(--cdl-text, #1a1f2a)", children: d.label })
|
|
25466
25480
|
] }, `legend-${idx}`);
|
|
25467
25481
|
})
|
|
25468
25482
|
] });
|
|
@@ -30423,9 +30437,27 @@ function CdlNodeView({
|
|
|
30423
30437
|
}
|
|
30424
30438
|
);
|
|
30425
30439
|
case "chart-gauge":
|
|
30426
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30440
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30441
|
+
ChartGaugeNode,
|
|
30442
|
+
{
|
|
30443
|
+
node: resolvedNode,
|
|
30444
|
+
active,
|
|
30445
|
+
stateValues,
|
|
30446
|
+
drawing,
|
|
30447
|
+
progress
|
|
30448
|
+
}
|
|
30449
|
+
);
|
|
30427
30450
|
case "chart-stacked-bar":
|
|
30428
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30451
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30452
|
+
ChartStackedBarNode,
|
|
30453
|
+
{
|
|
30454
|
+
node: resolvedNode,
|
|
30455
|
+
active,
|
|
30456
|
+
stateValues,
|
|
30457
|
+
drawing,
|
|
30458
|
+
progress
|
|
30459
|
+
}
|
|
30460
|
+
);
|
|
30429
30461
|
case "chart-slope":
|
|
30430
30462
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30431
30463
|
ChartSlopeNode,
|
|
@@ -30442,7 +30474,16 @@ function CdlNodeView({
|
|
|
30442
30474
|
case "chart-stat":
|
|
30443
30475
|
return /* @__PURE__ */ jsxRuntime.jsx(ChartStatNode, { node: resolvedNode, active, stateValues });
|
|
30444
30476
|
case "chart-radial":
|
|
30445
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30477
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30478
|
+
ChartRadialNode,
|
|
30479
|
+
{
|
|
30480
|
+
node: resolvedNode,
|
|
30481
|
+
active,
|
|
30482
|
+
stateValues,
|
|
30483
|
+
drawing,
|
|
30484
|
+
progress
|
|
30485
|
+
}
|
|
30486
|
+
);
|
|
30446
30487
|
case "chart-bar":
|
|
30447
30488
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30448
30489
|
ChartBarNode,
|