@cardenelabs/cdl 0.36.0 → 0.37.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 +23 -1
- package/README.md +32 -9
- package/dist/index.cjs +8 -3
- 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 +8 -3
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +8 -3
- 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 +8 -3
- package/dist/react.js.map +1 -1
- package/dist/{render-R7v2bfyz.d.cts → render-BYdmSviQ.d.cts} +19 -8
- package/dist/{render-R7v2bfyz.d.ts → render-BYdmSviQ.d.ts} +19 -8
- package/package.json +1 -1
- package/src/kinds/chart-slope.tsx +52 -8
- package/src/types.ts +19 -8
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.37.0] - 2026-09-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **傾き図に縦の位置を順位にする見せ方を足した** (#707)
|
|
13
|
+
|
|
14
|
+
`chartSlopeForm` に `rank` を書くと、縦の位置が値ではなく順位の段 (等間隔) になる。
|
|
15
|
+
|
|
16
|
+
この図は「線の交差が順位の入れ替わり」 を読ませるが、縦の位置は値なので交差点の位置が
|
|
17
|
+
順位と噛み合わなかった。 どの交差が本当に順位を変えた交差なのかは、値を読み比べないと
|
|
18
|
+
決まらない。
|
|
19
|
+
|
|
20
|
+
段を等間隔に置くと交差が入れ替わりと 1 対 1 になり、水平線が「順位が動かなかった」 を
|
|
21
|
+
意味する。 軸の脇の字は値のままにして、量が図から消えないようにしている。
|
|
22
|
+
|
|
23
|
+
`rank` では「線の傾きが動いた量」 が成立しない (`+40` と `+30` がどちらも水平線)。
|
|
24
|
+
書いた図だけに効く割り切りで、量は字を読む。
|
|
25
|
+
|
|
26
|
+
同じ値の系列は同じ段に重なる。 系列が 1 本の図は縦の中央に置く。
|
|
27
|
+
前の時点を持たない図と型の外の値は今までどおり `values` として描く。
|
|
28
|
+
|
|
8
29
|
## [0.36.0] - 2026-09-07
|
|
9
30
|
|
|
10
31
|
### Added
|
|
@@ -1696,7 +1717,8 @@ Initial OSS release.
|
|
|
1696
1717
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
1697
1718
|
行き止まりになる。
|
|
1698
1719
|
|
|
1699
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
1720
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.37.0...HEAD
|
|
1721
|
+
[0.37.0]: https://github.com/cardene777/cdl/compare/v0.36.0...v0.37.0
|
|
1700
1722
|
[0.36.0]: https://github.com/cardene777/cdl/compare/v0.35.0...v0.36.0
|
|
1701
1723
|
[0.35.0]: https://github.com/cardene777/cdl/compare/v0.34.0...v0.35.0
|
|
1702
1724
|
[0.34.0]: https://github.com/cardene777/cdl/compare/v0.33.0...v0.34.0
|
package/README.md
CHANGED
|
@@ -297,28 +297,51 @@ phase 切替に連動して `status: idle` → `status: running` のように描
|
|
|
297
297
|
値だけに字体を当てられるようにするため。
|
|
298
298
|
系列の名前はその線と同じ色で描く。 線を目で辿らずに名前と線の対応が取れる。
|
|
299
299
|
|
|
300
|
-
###
|
|
300
|
+
### 傾き図の見せ方
|
|
301
301
|
|
|
302
|
-
`chart-slope` は `chartSlopeForm`
|
|
302
|
+
`chart-slope` は `chartSlopeForm` で見せ方を選ぶ。 欄を書かない図は `values` と同じ。
|
|
303
303
|
|
|
304
|
-
| 値 | 右の列 | 向くもの |
|
|
305
|
-
|
|
306
|
-
| `values` (既定) | 今の値 | 2 時点の水準をそれぞれ読ませたい図 |
|
|
307
|
-
| `delta` | 増減 (`+40` / `-90`) | どれがどれだけ動いたかを読ませたい図 |
|
|
304
|
+
| 値 | 縦の位置 | 右の列 | 向くもの |
|
|
305
|
+
|---|---|---|---|
|
|
306
|
+
| `values` (既定) | 値 | 今の値 | 2 時点の水準をそれぞれ読ませたい図 |
|
|
307
|
+
| `delta` | 値 | 増減 (`+40` / `-90`) | どれがどれだけ動いたかを読ませたい図 |
|
|
308
|
+
| `rank` | 順位の段 (等間隔) | 今の値 | 順位の入れ替わりを読ませたい図 |
|
|
308
309
|
|
|
309
310
|
```ts
|
|
310
311
|
.node("move", { lane: "l", stack: 0, kind: "chart-slope", chartSlopeForm: "delta", chartData: [...] })
|
|
311
312
|
```
|
|
312
313
|
|
|
313
|
-
|
|
314
|
+
左の列はどれでも前の値。
|
|
315
|
+
|
|
316
|
+
#### `delta` は右の列だけを変える
|
|
317
|
+
|
|
318
|
+
`前 + 増減 = 今` なので `delta` でも今の値は足せば戻る。
|
|
314
319
|
3 つ目の数を足さないので、 名札の高さも線を引く幅も変わらない。
|
|
315
320
|
|
|
316
|
-
|
|
321
|
+
増減は `chart-slope-delta` で出す。 今の値とは意味が違い、 消費側が増減だけに色を
|
|
317
322
|
当てられるようにするため。 engine 側では色を分けない = 系列の色を名前に当てているので、
|
|
318
323
|
増減にも色を当てると 1 つの図に 2 つの色の体系が混ざる。 向きは符号が持つ。
|
|
319
324
|
|
|
325
|
+
#### `rank` は縦の位置を変える
|
|
326
|
+
|
|
327
|
+
段を等間隔に置くので、 **線の交差が順位の入れ替わりと 1 対 1** になり、 水平線が
|
|
328
|
+
「順位が動かなかった」 を意味する。 既定 (値の尺) では交差点の位置が順位と噛み合わず、
|
|
329
|
+
どの交差が本当に順位を変えた交差なのかは値を読み比べないと決まらない。
|
|
330
|
+
|
|
331
|
+
軸の脇の字は値のまま。 字も順位にすると `380 → 420` と `60 → 90` がどちらも同じ水平線に
|
|
332
|
+
なり、 量が図から完全に消える。 位置が順位を、 字が量を担う。
|
|
333
|
+
|
|
334
|
+
**`rank` では「線の傾きが動いた量」 が成立しない**。 `+40` と `+30` がどちらも水平線に
|
|
335
|
+
なるので、 量は字を読む。
|
|
336
|
+
|
|
337
|
+
同じ値の系列は同じ段に重なる = 無理に 1 つずつずらすと、 書いていない差を絵が主張する。
|
|
338
|
+
系列が 1 本の図は段が 1 つしか無いので縦の中央に置く。
|
|
339
|
+
|
|
340
|
+
#### どの形でも同じ扱い
|
|
341
|
+
|
|
320
342
|
型の外の値を書いた図は `values` として描く。
|
|
321
|
-
前の時点を持たない図も `values` として描く =
|
|
343
|
+
前の時点を持たない図も `values` として描く = `delta` は引く相手がいないため、
|
|
344
|
+
`rank` は軸が 1 本で並べ替える相手がいないため。
|
|
322
345
|
|
|
323
346
|
## 円グラフの見せ方
|
|
324
347
|
|
package/dist/index.cjs
CHANGED
|
@@ -25527,7 +25527,12 @@ function ChartSlopeNode({
|
|
|
25527
25527
|
const \u4E0A\u7AEF = PAD + (\u524D\u3042\u308A ? \u6642\u70B9\u306E\u7D1A + 12 : 0) + 6;
|
|
25528
25528
|
const \u4E0B\u7AEF = Math.max(\u4E0A\u7AEF + 10, node.h - PAD - 6);
|
|
25529
25529
|
const y\u3092\u53D6\u308B = (v) => \u5C3A\u306E\u5E45 > 0 ? \u4E0B\u7AEF - (v - \u6700\u5C0F) / \u5C3A\u306E\u5E45 * (\u4E0B\u7AEF - \u4E0A\u7AEF) : (\u4E0A\u7AEF + \u4E0B\u7AEF) / 2;
|
|
25530
|
-
const \
|
|
25530
|
+
const \u66F8\u3044\u305F\u5F62 = node.chartSlopeForm;
|
|
25531
|
+
const \u5F62 = \u524D\u3042\u308A && (\u66F8\u3044\u305F\u5F62 === "delta" || \u66F8\u3044\u305F\u5F62 === "rank") ? \u66F8\u3044\u305F\u5F62 : "values";
|
|
25532
|
+
const \u9806\u4F4D\u3092\u53D6\u308B = (v, \u5168\u90E8) => \u5168\u90E8.filter((x) => x > v).length + 1;
|
|
25533
|
+
const \u524D\u306E\u9806\u4F4D = \u7CFB\u5217\u305F\u3061.map((s) => \u9806\u4F4D\u3092\u53D6\u308B(s.\u524D, \u7CFB\u5217\u305F\u3061.map((x) => x.\u524D)));
|
|
25534
|
+
const \u4ECA\u306E\u9806\u4F4D = \u7CFB\u5217\u305F\u3061.map((s) => \u9806\u4F4D\u3092\u53D6\u308B(s.\u4ECA, \u7CFB\u5217\u305F\u3061.map((x) => x.\u4ECA)));
|
|
25535
|
+
const \u6BB5\u306Ey\u3092\u53D6\u308B = (\u9806\u4F4D) => \u7CFB\u5217\u305F\u3061.length > 1 ? \u4E0A\u7AEF + (\u9806\u4F4D - 1) / (\u7CFB\u5217\u305F\u3061.length - 1) * (\u4E0B\u7AEF - \u4E0A\u7AEF) : (\u4E0A\u7AEF + \u4E0B\u7AEF) / 2;
|
|
25531
25536
|
const \u5897\u6E1B\u8868\u8A18 = (\u524D, \u4ECA) => {
|
|
25532
25537
|
const \u5DEE = \u4ECA - \u524D;
|
|
25533
25538
|
return \u5DEE > 0 ? `+${\u5B9F\u5024\u8868\u8A18(\u5DEE)}` : \u5B9F\u5024\u8868\u8A18(\u5DEE);
|
|
@@ -25610,8 +25615,8 @@ function ChartSlopeNode({
|
|
|
25610
25615
|
)
|
|
25611
25616
|
] }),
|
|
25612
25617
|
\u7CFB\u5217\u305F\u3061.map((s, i) => {
|
|
25613
|
-
const \u5DE6y = y\u3092\u53D6\u308B(s.\u524D);
|
|
25614
|
-
const \u53F3y = y\u3092\u53D6\u308B(s.\u4ECA);
|
|
25618
|
+
const \u5DE6y = \u5F62 === "rank" ? \u6BB5\u306Ey\u3092\u53D6\u308B(\u524D\u306E\u9806\u4F4D[i]) : y\u3092\u53D6\u308B(s.\u524D);
|
|
25619
|
+
const \u53F3y = \u5F62 === "rank" ? \u6BB5\u306Ey\u3092\u53D6\u308B(\u4ECA\u306E\u9806\u4F4D[i]) : y\u3092\u53D6\u308B(s.\u4ECA);
|
|
25615
25620
|
const \u672A\u89E3\u6C7A = s.\u672A\u89E3\u6C7A ? "true" : void 0;
|
|
25616
25621
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
25617
25622
|
\u524D\u3042\u308A && /* @__PURE__ */ jsxRuntime.jsx(
|