@cardenelabs/dragon 0.12.0 → 0.13.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 +74 -58
- package/dist/index.cjs +2863 -119
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +544 -2
- package/dist/index.d.ts +544 -2
- package/dist/index.js +2863 -119
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/compile.ts +457 -188
- package/src/input-size.ts +9 -1
- package/src/json-parser.ts +259 -1
- package/src/schemas/diagram.json +985 -3
- package/src/types.ts +39 -1
- package/src/v05/parser-types.ts +17 -0
- package/src/v05/parser.ts +544 -20
- package/src/v05/readout-table.generated.ts +1088 -0
package/src/types.ts
CHANGED
|
@@ -3,9 +3,19 @@
|
|
|
3
3
|
* docs/cdl/text-dsl-spec.md の文法を AST に変換した中間表現
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { NodeKind, Tone, EdgeStyle } from "@cardenelabs/cdl";
|
|
6
|
+
import type { CdlDiagram, NodeKind, Tone, EdgeStyle } from "@cardenelabs/cdl";
|
|
7
7
|
import type { RelativePos } from "./relative-pos";
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* 箱の中に描く図形 (#1374)。 **描画側の型をそのまま使う**。
|
|
11
|
+
*
|
|
12
|
+
* 写して持つと欄が増えた時にずれる。 指した先が変われば型検査が教える。
|
|
13
|
+
*/
|
|
14
|
+
export type DslDynShape = NonNullable<CdlDiagram["nodes"][number]["shape"]>;
|
|
15
|
+
|
|
16
|
+
/** 値を見せる部品 (#1374)。 図形と同じ理由で描画側の型をそのまま使う */
|
|
17
|
+
export type DslReadout = NonNullable<CdlDiagram["readouts"]>[number];
|
|
18
|
+
|
|
9
19
|
export type PresetType =
|
|
10
20
|
| "sequence"
|
|
11
21
|
| "flow"
|
|
@@ -96,6 +106,12 @@ export type DslDocument = {
|
|
|
96
106
|
viewport?: DslViewport;
|
|
97
107
|
lanes?: Record<string, DslLane>;
|
|
98
108
|
groups?: Record<string, DslGroup>;
|
|
109
|
+
/**
|
|
110
|
+
* 値を見せる部品 (`readouts:`、 #1374)。 割合の輪や数え上げを図の脇に出す。
|
|
111
|
+
*
|
|
112
|
+
* 箱ではないので縦列に載らない。 図全体に 1 つの並びとして持つ。
|
|
113
|
+
*/
|
|
114
|
+
readouts?: DslReadout[];
|
|
99
115
|
/**
|
|
100
116
|
* canvas pivot (CAR-1693 Phase 1) diagram-level layout mode。 未指定は "auto" default で
|
|
101
117
|
* catalog 100+ backward compat。 "manual" は Phase 4 で drag → pos: 保存の完全 manual mode。
|
|
@@ -128,6 +144,26 @@ export type DslActor = {
|
|
|
128
144
|
eyebrow?: string;
|
|
129
145
|
value?: string;
|
|
130
146
|
rows?: string[];
|
|
147
|
+
/**
|
|
148
|
+
* 箱の中に描く図形 (`shape:`、 #1374)。 水位や角度を状態で動かせる。
|
|
149
|
+
*
|
|
150
|
+
* 種類ごとに書ける欄が違う (`図形の表`)。 知らない種類と欄は読み取りが知らせる。
|
|
151
|
+
*/
|
|
152
|
+
shape?: DslDynShape;
|
|
153
|
+
/**
|
|
154
|
+
* 箱に出す題 (`title:`、 #1381)。 書かなければ名前がそのまま題になる。
|
|
155
|
+
*
|
|
156
|
+
* 名前は図の中で 1 つに決まる必要がある (`focus:` と `flow:` が名前で指すため) 一方、
|
|
157
|
+
* 題は重なってよい。 同じ題の箱を並べる図と、題を持たない箱を、名前と切り離して書ける。
|
|
158
|
+
*/
|
|
159
|
+
title?: string;
|
|
160
|
+
/**
|
|
161
|
+
* その箱を出すかどうかの条件 (`visibleIf:`、 #1381)。
|
|
162
|
+
*
|
|
163
|
+
* 状態を差し込める文字列で、描画側が真偽を判定する。 `"0"` / `"false"` / 空文字が偽で、
|
|
164
|
+
* それ以外は真。 値だけを見せる図が、場所を空けるためだけの見えない箱を置くのに使う。
|
|
165
|
+
*/
|
|
166
|
+
visibleIf?: string;
|
|
131
167
|
/**
|
|
132
168
|
* 工程の並び (`type: gantt`) で、その工程の担当 (#1251)。
|
|
133
169
|
*
|
|
@@ -261,6 +297,8 @@ export type DslStep = {
|
|
|
261
297
|
/** v0.5+ inline option */
|
|
262
298
|
guard?: string;
|
|
263
299
|
cardinality?: string;
|
|
300
|
+
/** 矢印がどの辺から出るか (#1385)。 書かなければ描画側が自動で選ぶ */
|
|
301
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
264
302
|
labelOffsetX?: number;
|
|
265
303
|
labelOffsetY?: number;
|
|
266
304
|
/** true で説明文を矢印の線の上に重ねる。 分岐図の条件ラベル用。 */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 中括弧の中身を表で読むための型 (#1385 で `parser.ts` から切り出した)。
|
|
3
|
+
*
|
|
4
|
+
* **生成した表 (`readout-table.generated.ts`) がこの型を使う**。 `parser.ts` に置いたままだと
|
|
5
|
+
* 生成した表 → `parser.ts` → 生成した表 の輪ができる。 型だけを別に置けば輪が消える。
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 欄に書ける値の形。
|
|
10
|
+
*
|
|
11
|
+
* `真偽` は #1385 で足した。 描画側の部品に `boolean` の欄が 2 つあり、それまでの 5 形では
|
|
12
|
+
* 書けなかった。
|
|
13
|
+
*/
|
|
14
|
+
export type 欄の形 = "数" | "文字列" | "数か文字列" | "文字列の並び" | "向き" | "組の並び" | "真偽";
|
|
15
|
+
|
|
16
|
+
/** 1 つの種類が受ける、必須の欄と全欄の形 */
|
|
17
|
+
export type 図形の定義 = { 必須: readonly string[]; 欄: Record<string, 欄の形> };
|