@cardenelabs/dragon 0.14.0 → 0.16.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/README.md +1 -0
- package/dist/index.cjs +166 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +193 -120
- package/dist/index.d.ts +193 -120
- package/dist/index.js +166 -17
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/compile.ts +184 -20
- package/src/index.ts +11 -0
- package/src/json-parser.ts +23 -1
- package/src/schemas/diagram.json +17 -2
- package/src/types.ts +42 -1
- package/src/v05/parser.ts +56 -8
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,136 @@
|
|
|
1
1
|
import { CdlDiagram, NodeKind, Tone, EdgeStyle, LaidDiagram } from '@cardenelabs/cdl';
|
|
2
|
+
export { CdlDiagram } from '@cardenelabs/cdl';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Text DSL v0.5 parser
|
|
6
|
+
*
|
|
7
|
+
* 設計方針:
|
|
8
|
+
* - keyword は英語のみ (title / type / actors / flow / states / animation / step / focus / tween / set / badge)
|
|
9
|
+
* - 値の日本語は quote 必須 (`title: "API call"` / `step: "request" 1.5s`)
|
|
10
|
+
* - YAML 風 + 短縮 keyword + 箇条書き構造
|
|
11
|
+
* - Mermaid 知ってる人にもゼロ学習、 非エンジニアにも直感的
|
|
12
|
+
*
|
|
13
|
+
* syntax 例:
|
|
14
|
+
*
|
|
15
|
+
* title: "API call"
|
|
16
|
+
* type: sequence
|
|
17
|
+
*
|
|
18
|
+
* actors:
|
|
19
|
+
* - Client
|
|
20
|
+
* - API: function
|
|
21
|
+
* - DB
|
|
22
|
+
*
|
|
23
|
+
* flow:
|
|
24
|
+
* - Client -> API: "GET /items"
|
|
25
|
+
* - API -> DB: "SELECT" (success)
|
|
26
|
+
*
|
|
27
|
+
* states:
|
|
28
|
+
* request_count: 0
|
|
29
|
+
* row_count: 0
|
|
30
|
+
*
|
|
31
|
+
* animation:
|
|
32
|
+
* - step: "request" 1.5s
|
|
33
|
+
* focus: [Client, API]
|
|
34
|
+
* tween:
|
|
35
|
+
* request_count: 0 -> 1
|
|
36
|
+
* badge: "request"
|
|
37
|
+
*
|
|
38
|
+
* - step: "query" 1.5s
|
|
39
|
+
* focus: [API, DB]
|
|
40
|
+
* tween:
|
|
41
|
+
* row_count: 0 -> 20
|
|
42
|
+
* badge: "query"
|
|
43
|
+
*
|
|
44
|
+
* 出力は v0.4 と同じ DslDocument。 既存 compile.ts で CdlDiagram に変換できる。
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
type V05ParseResult = {
|
|
48
|
+
ok: true;
|
|
49
|
+
doc: DslDocument;
|
|
50
|
+
} | {
|
|
51
|
+
ok: false;
|
|
52
|
+
errors: DslError[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* 記法が受ける top-level の項目 (#1190)。
|
|
56
|
+
*
|
|
57
|
+
* 読めない行の案内と、記法一覧が全て載せているかの検査が、どちらもここを見る。 一覧に手で
|
|
58
|
+
* 書くと、項目を足した時に案内か一覧のどちらかが取り残される (実際に `states` / `values` が
|
|
59
|
+
* 一覧に 1 件も無い状態で放置されていた)。
|
|
60
|
+
*/
|
|
61
|
+
declare const TOP_LEVEL_KEYS: readonly ["title", "type", "actors", "flow", "states", "values", "animation", "viewport", "lanes", "groups", "eyebrow", "axes", "readouts", "inputs", "formulas", "events", "scrolls"];
|
|
62
|
+
/** 受け付ける図種。 記法一覧はここを見る。 */
|
|
63
|
+
declare const PRESET_TYPES: ReadonlySet<PresetType>;
|
|
64
|
+
/**
|
|
65
|
+
* 記法だけが持つ種類。 描画側には無いが、 図種ごとの組み立てで意味を持つ。
|
|
66
|
+
*
|
|
67
|
+
* `contract` / `eoa` / `multisig` / `proxy` / `library` / `interface` は Solidity 図の
|
|
68
|
+
* 役割分けに、 `entity` / `state` は ER 図と状態遷移図に使う。
|
|
69
|
+
*
|
|
70
|
+
* **描画側へ渡す前に必ず読み替える** (`compile.ts` の `描ける種別`)。 読み替えを通さずに渡すと
|
|
71
|
+
* 図の組み立てが落ちる = 描画側は知らない種類の大きさを引けない (#1420 で実測、
|
|
72
|
+
* `Cannot read properties of undefined (reading 'h')`)。
|
|
73
|
+
*/
|
|
74
|
+
declare const DSL_ONLY_KINDS: readonly ["entity", "state", "contract", "eoa", "multisig", "proxy", "library", "interface"];
|
|
75
|
+
/** 記法だけが持つ種類。 描画側の `NodeKind` には含まれない */
|
|
76
|
+
type DslOnlyKind = (typeof DSL_ONLY_KINDS)[number];
|
|
77
|
+
/**
|
|
78
|
+
* 受け付ける箱の種類。 描画できる種類 (cdl の `NODE_KINDS`) に、 記法だけが持つ種類を足す。
|
|
79
|
+
*
|
|
80
|
+
* 以前は手書きの 31 種だった。 描画できる 90 種のうち 78 種が記法から書けず、 部品名として
|
|
81
|
+
* 扱われて「そんな部品は無い」 と警告が出るだけだった。 描画側を出所に加えることで
|
|
82
|
+
* 「描画できるものは書ける」 が成立する。
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* 記法が受理する種類の全体。 これに載っていない種類は見本 (パーツ) の候補になる。
|
|
86
|
+
*
|
|
87
|
+
* 画面側が「本文が見本を使っているか」 を判定するのに使う (#1022)。 手書きの一覧を
|
|
88
|
+
* 別に持つと、種類が増えた時にそちらだけ取り残されて余分な読み込みが起きる。
|
|
89
|
+
*/
|
|
90
|
+
declare const NODE_KIND_VALID: ReadonlySet<string>;
|
|
91
|
+
declare function parseTextDslV05(src: string): V05ParseResult;
|
|
92
|
+
/**
|
|
93
|
+
* 対応する引用符だけを外す。
|
|
94
|
+
*
|
|
95
|
+
* 先頭と末尾を別々に外すと、対応しない形 (`'300,200"`) が中身だけ取り出せてしまう。
|
|
96
|
+
* 画面側も同じ関数を使う (#1028) = 別々に持つと、片方だけが読める本文ができる。
|
|
97
|
+
*/
|
|
98
|
+
declare function stripQuotes(s: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* 段に書ける項目の英語名。 `parsePhase` が受け付ける名前の入口でも使う。
|
|
101
|
+
*
|
|
102
|
+
* 誤りの案内で使うほか、**見本が値の名前にこの語を使っていないか** を見るのにも使う
|
|
103
|
+
* (#1330)。 段の項目と値は階層が違うので衝突しないが、同じ語が 2 つの意味で並ぶと
|
|
104
|
+
* 見本を読む人が階層から意味を判断することになる。
|
|
105
|
+
*/
|
|
106
|
+
declare const PHASE_ITEM_WORDS: readonly ["focus", "badge", "body", "description", "tween", "set", "draw"];
|
|
107
|
+
/**
|
|
108
|
+
* `draw:` に書ける語と、その語が効く図種 (#1312 / #1314)。
|
|
109
|
+
*
|
|
110
|
+
* **語と図種の対応をここ 1 箇所で持つ**。 受ける語の一覧 (`DRAW_WORDS`) も、組み立て側が見る
|
|
111
|
+
* 図種の一覧 (`DRAWABLE_DOC_TYPES`) も、この表から導く。 3 つを別々に並べると、語を足した時に
|
|
112
|
+
* どれかが古いまま残る (#1310 / #1304 で 3 度直した形)。
|
|
113
|
+
*
|
|
114
|
+
* | 語 | 図種 | 起点 |
|
|
115
|
+
* |---|---|---|
|
|
116
|
+
* | `line` | `line` | 左端から右へ線が伸びる |
|
|
117
|
+
* | `bar` | `bar` | 横軸から上へ棒が伸びる |
|
|
118
|
+
* | `pie` | `pie` | 12 時から時計回りに扇が開く |
|
|
119
|
+
* | `journey` | `journey` | 左端から右へ気持ちの線が伸びる |
|
|
120
|
+
* | `mind` | `mind` | 中心から外へ枝が伸びる |
|
|
121
|
+
* | `tree` | `tree` | 根から下へ枝が伸びる |
|
|
122
|
+
* | `gantt` | `gantt` | 各帯の始端から右へ帯が伸びる |
|
|
123
|
+
* | `funnel` | `funnel` | 上端から順に段が積まれる |
|
|
124
|
+
*
|
|
125
|
+
* `quadrant` は入れない。 4 つの区画に項目を置く図で **項目に順序が無く**、起点を決められない
|
|
126
|
+
* (順番を書いた順で決めると、動きが図の意味を持たない)。
|
|
127
|
+
*
|
|
128
|
+
* いまは語と図種が同じ綴りだが、**同じものとして扱わない**。 語は書き手が書く名前で、
|
|
129
|
+
* 図種は `type:` が取る値。 片方だけ別名を足したくなった時に、対応が表に残っている形にする。
|
|
130
|
+
*/
|
|
131
|
+
declare const DRAW_TARGETS: ReadonlyMap<string, PresetType>;
|
|
132
|
+
/** `draw:` に書ける語。 表から導く (#1314) */
|
|
133
|
+
declare const DRAW_WORDS: ReadonlySet<string>;
|
|
2
134
|
|
|
3
135
|
/**
|
|
4
136
|
* 位置を他の要素からの相対で書くための解決。
|
|
@@ -82,6 +214,17 @@ declare function orderByDependency(items: ReadonlyArray<{
|
|
|
82
214
|
* docs/cdl/text-dsl-spec.md の文法を AST に変換した中間表現
|
|
83
215
|
*/
|
|
84
216
|
|
|
217
|
+
/**
|
|
218
|
+
* 記法が書ける箱の種類 (#1420)。
|
|
219
|
+
*
|
|
220
|
+
* 描画できる種類 (`NodeKind`) に、**記法だけが持つ種類** (`contract` / `eoa` など) を足す。
|
|
221
|
+
* 後者は図種ごとの役割分け (`solidity` の縦列の並べ替えなど) に使い、描画側へ渡す手前で
|
|
222
|
+
* `compile.ts` の `描ける種別` が読み替える。
|
|
223
|
+
*
|
|
224
|
+
* `NodeKind` だけに縛っていた間、記法が受ける値を型が表せていなかった。
|
|
225
|
+
*/
|
|
226
|
+
type DslNodeKind = NodeKind | DslOnlyKind;
|
|
227
|
+
|
|
85
228
|
/**
|
|
86
229
|
* 箱の中に描く図形 (#1374)。 **描画側の型をそのまま使う**。
|
|
87
230
|
*
|
|
@@ -126,7 +269,7 @@ type DslEventBinding = {
|
|
|
126
269
|
handlerId: string;
|
|
127
270
|
pos: Position;
|
|
128
271
|
};
|
|
129
|
-
type PresetType = "sequence" | "flow" | "swimlane" | "er" | "state" | "topology" | "solidity" | "gantt" | "class" | "pie" | "bar" | "line" | "funnel" | "tree" | "journey" | "quadrant" | "c4" | "mind";
|
|
272
|
+
type PresetType = "sequence" | "flow" | "swimlane" | "er" | "state" | "topology" | "solidity" | "gantt" | "class" | "pie" | "bar" | "line" | "gauge" | "radial" | "stat" | "waffle" | "stacked" | "funnel" | "tree" | "journey" | "quadrant" | "c4" | "mind";
|
|
130
273
|
type Position = {
|
|
131
274
|
line: number;
|
|
132
275
|
column?: number;
|
|
@@ -250,7 +393,7 @@ type DslAxes = {
|
|
|
250
393
|
/** 登場人物 (v0.5+ ... inline option 拡張) */
|
|
251
394
|
type DslActor = {
|
|
252
395
|
name: string;
|
|
253
|
-
kind:
|
|
396
|
+
kind: DslNodeKind;
|
|
254
397
|
/**
|
|
255
398
|
* 著者が種類を書いたか。 書かなかった時 `kind` には既定の `actor` が入るため、
|
|
256
399
|
* `kind` の値だけでは「書いた `actor`」 と「書かなかった」 を区別できない。
|
|
@@ -264,6 +407,16 @@ type DslActor = {
|
|
|
264
407
|
subtitle?: string;
|
|
265
408
|
eyebrow?: string;
|
|
266
409
|
value?: string;
|
|
410
|
+
/**
|
|
411
|
+
* 前の時点の値 (#1450)。
|
|
412
|
+
*
|
|
413
|
+
* 内訳の変化を帯で示す図 (`type: stacked`) が 2 本目の帯として描き、値 1 つを大きく示す図
|
|
414
|
+
* (`type: stat`) が差として出す。 書かない図は 1 本のまま (従来と同じ)。
|
|
415
|
+
*
|
|
416
|
+
* **3 時点以上は持たない**。 描画側が 2 時点で設計されており (`cdl#551`)、足すなら欄の形ごと
|
|
417
|
+
* 決め直すことになる。
|
|
418
|
+
*/
|
|
419
|
+
previous?: string;
|
|
267
420
|
rows?: string[];
|
|
268
421
|
/**
|
|
269
422
|
* 箱の中に描く図形 (`shape:`、 #1374)。 水位や角度を状態で動かせる。
|
|
@@ -584,6 +737,20 @@ type DslPhase = {
|
|
|
584
737
|
* 相手の名前は書かせない = 対象の 8 図種はいずれも図全体を 1 箱で描くため相手が決まる。
|
|
585
738
|
*/
|
|
586
739
|
draw?: string;
|
|
740
|
+
/**
|
|
741
|
+
* 描き終えるまでに段の何割を使うか (#1441)。
|
|
742
|
+
*
|
|
743
|
+
* `draw: line 0.4` のように語の後ろに書く。 0 より大きく 1 以下。
|
|
744
|
+
* 書かなければ段の終わりに描き終わる (従来どおり)。
|
|
745
|
+
*
|
|
746
|
+
* **段の長さと描く速さを切り離すための欄**。 伸び具合は段の進みそのものなので、
|
|
747
|
+
* これが無いと「線はゆっくり引きたいが値の移りは短くしたい」 が書けず、描く速さのために
|
|
748
|
+
* 段の長さを動かすことになる。 段の長さを動かすと同じ段の `tween` まで遅くなる。
|
|
749
|
+
*
|
|
750
|
+
* **`draw` と同じ行に書かせる**。 別の項目にすると「割合だけ書いて `draw` が無い段」 が
|
|
751
|
+
* 書けてしまい、何も起きない指定になる。 同じ行なら書けない。
|
|
752
|
+
*/
|
|
753
|
+
drawRatio?: number;
|
|
587
754
|
/**
|
|
588
755
|
* `draw` を書いた行 (#1312)。 知らせの行番号に使う。
|
|
589
756
|
*
|
|
@@ -861,124 +1028,6 @@ declare function partsGridCenters(baseNodeCount: number, items: ReadonlyArray<{
|
|
|
861
1028
|
cy: number;
|
|
862
1029
|
}>;
|
|
863
1030
|
|
|
864
|
-
/**
|
|
865
|
-
* Text DSL v0.5 parser
|
|
866
|
-
*
|
|
867
|
-
* 設計方針:
|
|
868
|
-
* - keyword は英語のみ (title / type / actors / flow / states / animation / step / focus / tween / set / badge)
|
|
869
|
-
* - 値の日本語は quote 必須 (`title: "API call"` / `step: "request" 1.5s`)
|
|
870
|
-
* - YAML 風 + 短縮 keyword + 箇条書き構造
|
|
871
|
-
* - Mermaid 知ってる人にもゼロ学習、 非エンジニアにも直感的
|
|
872
|
-
*
|
|
873
|
-
* syntax 例:
|
|
874
|
-
*
|
|
875
|
-
* title: "API call"
|
|
876
|
-
* type: sequence
|
|
877
|
-
*
|
|
878
|
-
* actors:
|
|
879
|
-
* - Client
|
|
880
|
-
* - API: function
|
|
881
|
-
* - DB
|
|
882
|
-
*
|
|
883
|
-
* flow:
|
|
884
|
-
* - Client -> API: "GET /items"
|
|
885
|
-
* - API -> DB: "SELECT" (success)
|
|
886
|
-
*
|
|
887
|
-
* states:
|
|
888
|
-
* request_count: 0
|
|
889
|
-
* row_count: 0
|
|
890
|
-
*
|
|
891
|
-
* animation:
|
|
892
|
-
* - step: "request" 1.5s
|
|
893
|
-
* focus: [Client, API]
|
|
894
|
-
* tween:
|
|
895
|
-
* request_count: 0 -> 1
|
|
896
|
-
* badge: "request"
|
|
897
|
-
*
|
|
898
|
-
* - step: "query" 1.5s
|
|
899
|
-
* focus: [API, DB]
|
|
900
|
-
* tween:
|
|
901
|
-
* row_count: 0 -> 20
|
|
902
|
-
* badge: "query"
|
|
903
|
-
*
|
|
904
|
-
* 出力は v0.4 と同じ DslDocument。 既存 compile.ts で CdlDiagram に変換できる。
|
|
905
|
-
*/
|
|
906
|
-
|
|
907
|
-
type V05ParseResult = {
|
|
908
|
-
ok: true;
|
|
909
|
-
doc: DslDocument;
|
|
910
|
-
} | {
|
|
911
|
-
ok: false;
|
|
912
|
-
errors: DslError[];
|
|
913
|
-
};
|
|
914
|
-
/**
|
|
915
|
-
* 記法が受ける top-level の項目 (#1190)。
|
|
916
|
-
*
|
|
917
|
-
* 読めない行の案内と、記法一覧が全て載せているかの検査が、どちらもここを見る。 一覧に手で
|
|
918
|
-
* 書くと、項目を足した時に案内か一覧のどちらかが取り残される (実際に `states` / `values` が
|
|
919
|
-
* 一覧に 1 件も無い状態で放置されていた)。
|
|
920
|
-
*/
|
|
921
|
-
declare const TOP_LEVEL_KEYS: readonly ["title", "type", "actors", "flow", "states", "values", "animation", "viewport", "lanes", "groups", "eyebrow", "axes", "readouts", "inputs", "formulas", "events", "scrolls"];
|
|
922
|
-
/** 受け付ける図種。 記法一覧はここを見る。 */
|
|
923
|
-
declare const PRESET_TYPES: ReadonlySet<PresetType>;
|
|
924
|
-
/**
|
|
925
|
-
* 受け付ける箱の種類。 描画できる種類 (cdl の `NODE_KINDS`) に、 記法だけが持つ種類を足す。
|
|
926
|
-
*
|
|
927
|
-
* 以前は手書きの 31 種だった。 描画できる 90 種のうち 78 種が記法から書けず、 部品名として
|
|
928
|
-
* 扱われて「そんな部品は無い」 と警告が出るだけだった。 描画側を出所に加えることで
|
|
929
|
-
* 「描画できるものは書ける」 が成立する。
|
|
930
|
-
*/
|
|
931
|
-
/**
|
|
932
|
-
* 記法が受理する種類の全体。 これに載っていない種類は見本 (パーツ) の候補になる。
|
|
933
|
-
*
|
|
934
|
-
* 画面側が「本文が見本を使っているか」 を判定するのに使う (#1022)。 手書きの一覧を
|
|
935
|
-
* 別に持つと、種類が増えた時にそちらだけ取り残されて余分な読み込みが起きる。
|
|
936
|
-
*/
|
|
937
|
-
declare const NODE_KIND_VALID: ReadonlySet<string>;
|
|
938
|
-
declare function parseTextDslV05(src: string): V05ParseResult;
|
|
939
|
-
/**
|
|
940
|
-
* 対応する引用符だけを外す。
|
|
941
|
-
*
|
|
942
|
-
* 先頭と末尾を別々に外すと、対応しない形 (`'300,200"`) が中身だけ取り出せてしまう。
|
|
943
|
-
* 画面側も同じ関数を使う (#1028) = 別々に持つと、片方だけが読める本文ができる。
|
|
944
|
-
*/
|
|
945
|
-
declare function stripQuotes(s: string): string;
|
|
946
|
-
/**
|
|
947
|
-
* 段に書ける項目の英語名。 `parsePhase` が受け付ける名前の入口でも使う。
|
|
948
|
-
*
|
|
949
|
-
* 誤りの案内で使うほか、**見本が値の名前にこの語を使っていないか** を見るのにも使う
|
|
950
|
-
* (#1330)。 段の項目と値は階層が違うので衝突しないが、同じ語が 2 つの意味で並ぶと
|
|
951
|
-
* 見本を読む人が階層から意味を判断することになる。
|
|
952
|
-
*/
|
|
953
|
-
declare const PHASE_ITEM_WORDS: readonly ["focus", "badge", "body", "description", "tween", "set", "draw"];
|
|
954
|
-
/**
|
|
955
|
-
* `draw:` に書ける語と、その語が効く図種 (#1312 / #1314)。
|
|
956
|
-
*
|
|
957
|
-
* **語と図種の対応をここ 1 箇所で持つ**。 受ける語の一覧 (`DRAW_WORDS`) も、組み立て側が見る
|
|
958
|
-
* 図種の一覧 (`DRAWABLE_DOC_TYPES`) も、この表から導く。 3 つを別々に並べると、語を足した時に
|
|
959
|
-
* どれかが古いまま残る (#1310 / #1304 で 3 度直した形)。
|
|
960
|
-
*
|
|
961
|
-
* | 語 | 図種 | 起点 |
|
|
962
|
-
* |---|---|---|
|
|
963
|
-
* | `line` | `line` | 左端から右へ線が伸びる |
|
|
964
|
-
* | `bar` | `bar` | 横軸から上へ棒が伸びる |
|
|
965
|
-
* | `pie` | `pie` | 12 時から時計回りに扇が開く |
|
|
966
|
-
* | `journey` | `journey` | 左端から右へ気持ちの線が伸びる |
|
|
967
|
-
* | `mind` | `mind` | 中心から外へ枝が伸びる |
|
|
968
|
-
* | `tree` | `tree` | 根から下へ枝が伸びる |
|
|
969
|
-
* | `gantt` | `gantt` | 各帯の始端から右へ帯が伸びる |
|
|
970
|
-
* | `funnel` | `funnel` | 上端から順に段が積まれる |
|
|
971
|
-
*
|
|
972
|
-
* `quadrant` は入れない。 4 つの区画に項目を置く図で **項目に順序が無く**、起点を決められない
|
|
973
|
-
* (順番を書いた順で決めると、動きが図の意味を持たない)。
|
|
974
|
-
*
|
|
975
|
-
* いまは語と図種が同じ綴りだが、**同じものとして扱わない**。 語は書き手が書く名前で、
|
|
976
|
-
* 図種は `type:` が取る値。 片方だけ別名を足したくなった時に、対応が表に残っている形にする。
|
|
977
|
-
*/
|
|
978
|
-
declare const DRAW_TARGETS: ReadonlyMap<string, PresetType>;
|
|
979
|
-
/** `draw:` に書ける語。 表から導く (#1314) */
|
|
980
|
-
declare const DRAW_WORDS: ReadonlySet<string>;
|
|
981
|
-
|
|
982
1031
|
/**
|
|
983
1032
|
* Text DSL i18n キーワード一覧
|
|
984
1033
|
* 日本語 / 英語両対応 (大文字小文字無視)
|
|
@@ -1486,6 +1535,13 @@ interface JsonActor {
|
|
|
1486
1535
|
subtitle?: string;
|
|
1487
1536
|
eyebrow?: string;
|
|
1488
1537
|
value?: string;
|
|
1538
|
+
/**
|
|
1539
|
+
* 前の時点の値 (#1450)。 記法の `{ value: "320", previous: "280" }` と同じ。
|
|
1540
|
+
*
|
|
1541
|
+
* 内訳の変化を帯で示す図 (`type: stacked`) が 2 本目の帯として描き、
|
|
1542
|
+
* 値 1 つを大きく示す図 (`type: stat`) が差として出す。 書かない図は 1 本のまま。
|
|
1543
|
+
*/
|
|
1544
|
+
previous?: string;
|
|
1489
1545
|
rows?: string[];
|
|
1490
1546
|
lane?: string;
|
|
1491
1547
|
stack?: number;
|
|
@@ -1630,6 +1686,13 @@ interface JsonPhase {
|
|
|
1630
1686
|
* 受ける 8 語は `DRAW_WORDS` が持つ。 語と同じ図種で、その段の間に図が起点から現れる。
|
|
1631
1687
|
*/
|
|
1632
1688
|
draw?: string;
|
|
1689
|
+
/**
|
|
1690
|
+
* 描き終えるまでに段の何割を使うか (#1441)。 記法の `draw: line 0.4` の後半と同じ。
|
|
1691
|
+
*
|
|
1692
|
+
* 0 より大きく 1 以下。 書かなければ段の終わりに描き終わる。 `draw` が無い段に書いても
|
|
1693
|
+
* 何も起きない (描く相手が決まらないため、写す時に外す)。
|
|
1694
|
+
*/
|
|
1695
|
+
drawRatio?: number;
|
|
1633
1696
|
/**
|
|
1634
1697
|
* 段の中で値を動かす (#1186)。 記法の `tween: name 100 -> 90` と同じ。
|
|
1635
1698
|
*
|
|
@@ -1800,6 +1863,10 @@ declare const diagramJsonSchema: {
|
|
|
1800
1863
|
type: string;
|
|
1801
1864
|
description: string;
|
|
1802
1865
|
};
|
|
1866
|
+
previous: {
|
|
1867
|
+
type: string;
|
|
1868
|
+
description: string;
|
|
1869
|
+
};
|
|
1803
1870
|
rows: {
|
|
1804
1871
|
type: string;
|
|
1805
1872
|
items: {
|
|
@@ -2207,6 +2274,12 @@ declare const diagramJsonSchema: {
|
|
|
2207
2274
|
enum: string[];
|
|
2208
2275
|
description: string;
|
|
2209
2276
|
};
|
|
2277
|
+
drawRatio: {
|
|
2278
|
+
type: string;
|
|
2279
|
+
exclusiveMinimum: number;
|
|
2280
|
+
maximum: number;
|
|
2281
|
+
description: string;
|
|
2282
|
+
};
|
|
2210
2283
|
tween: {
|
|
2211
2284
|
type: string;
|
|
2212
2285
|
description: string;
|