@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/README.md
CHANGED
|
@@ -84,6 +84,7 @@ flow:
|
|
|
84
84
|
| `subtitle` | 題の下の補足 (`補足` とも書ける) |
|
|
85
85
|
| `eyebrow` | 題の上の小見出し |
|
|
86
86
|
| `value` | 箱に出す値 (`値` とも書ける) |
|
|
87
|
+
| `previous` | 前の時点の値 (`前の値` とも書ける)。 `type: stacked` が 2 本目の帯として描く |
|
|
87
88
|
| `rows` | 箱の中に並べる行 (`行` とも書ける) |
|
|
88
89
|
| `lane` | どの縦列に置くか |
|
|
89
90
|
| `stack` | 縦列の中の何段目に置くか |
|
package/dist/index.cjs
CHANGED
|
@@ -1996,6 +1996,11 @@ var PRESET_TYPES = /* @__PURE__ */ new Set([
|
|
|
1996
1996
|
"pie",
|
|
1997
1997
|
"bar",
|
|
1998
1998
|
"line",
|
|
1999
|
+
"gauge",
|
|
2000
|
+
"radial",
|
|
2001
|
+
"stat",
|
|
2002
|
+
"waffle",
|
|
2003
|
+
"stacked",
|
|
1999
2004
|
"funnel",
|
|
2000
2005
|
"tree",
|
|
2001
2006
|
"journey",
|
|
@@ -3429,6 +3434,11 @@ function applyContinuationLines(actor, rest, errors) {
|
|
|
3429
3434
|
case "\u5024":
|
|
3430
3435
|
out.value = stripQuotes(raw);
|
|
3431
3436
|
break;
|
|
3437
|
+
// 前の時点の値 (#1450)。 内訳を帯で示す図と値 1 つを大きく示す図が読む
|
|
3438
|
+
case "previous":
|
|
3439
|
+
case "\u524D\u306E\u5024":
|
|
3440
|
+
out.previous = stripQuotes(raw);
|
|
3441
|
+
break;
|
|
3432
3442
|
case "shape":
|
|
3433
3443
|
case "\u56F3\u5F62":
|
|
3434
3444
|
out.shape = \u56F3\u5F62\u3068\u3057\u3066\u8AAD\u3080(raw, ln.no, errors);
|
|
@@ -3576,6 +3586,9 @@ var ACTOR_ITEM_KEYS = /* @__PURE__ */ new Set([
|
|
|
3576
3586
|
"\u88DC\u8DB3",
|
|
3577
3587
|
"value",
|
|
3578
3588
|
"\u5024",
|
|
3589
|
+
// 前の時点の値 (#1450)。 内訳の変化を帯で示す図と、値 1 つを大きく示す図が読む
|
|
3590
|
+
"previous",
|
|
3591
|
+
"\u524D\u306E\u5024",
|
|
3579
3592
|
"rows",
|
|
3580
3593
|
"\u884C",
|
|
3581
3594
|
// 箱の中に描く図形 (#1374)
|
|
@@ -3701,6 +3714,7 @@ var ACTOR_RESERVED_FIELDS = /* @__PURE__ */ new Set([
|
|
|
3701
3714
|
"subtitle",
|
|
3702
3715
|
"eyebrow",
|
|
3703
3716
|
"value",
|
|
3717
|
+
"previous",
|
|
3704
3718
|
"rows",
|
|
3705
3719
|
"lane",
|
|
3706
3720
|
"stack",
|
|
@@ -3803,6 +3817,7 @@ var INLINE_ACTOR_ALIASES = {
|
|
|
3803
3817
|
\u7A2E\u985E: "kind",
|
|
3804
3818
|
\u88DC\u8DB3: "subtitle",
|
|
3805
3819
|
\u5024: "value",
|
|
3820
|
+
\u524D\u306E\u5024: "previous",
|
|
3806
3821
|
\u884C: "rows"
|
|
3807
3822
|
};
|
|
3808
3823
|
function \u4E2D\u62EC\u5F27\u306E\u5225\u540D\u3092\u5BC4\u305B\u308B(opts) {
|
|
@@ -3821,6 +3836,7 @@ var INLINE_ACTOR_KEYS = /* @__PURE__ */ new Set([
|
|
|
3821
3836
|
"subtitle",
|
|
3822
3837
|
"eyebrow",
|
|
3823
3838
|
"value",
|
|
3839
|
+
"previous",
|
|
3824
3840
|
"rows",
|
|
3825
3841
|
"lane",
|
|
3826
3842
|
"stack",
|
|
@@ -3932,6 +3948,7 @@ function parseActor2(line, errors) {
|
|
|
3932
3948
|
owner: isPart ? void 0 : opts.owner,
|
|
3933
3949
|
end: isPart ? void 0 : opts.end,
|
|
3934
3950
|
value: opts.value,
|
|
3951
|
+
previous: opts.previous,
|
|
3935
3952
|
rows: opts.rows ? opts.rows.replace(/^\[|\]$/g, "").split(/,(?![^[]*\])/).map((x) => stripQuotes(x.trim())).filter(Boolean) : void 0,
|
|
3936
3953
|
lane: opts.lane,
|
|
3937
3954
|
// 箱の中に描く図形 (#1374)。 パーツでは状態の上書きとして意味を持つため横取りしない
|
|
@@ -4263,16 +4280,34 @@ function parsePhase(block, errors) {
|
|
|
4263
4280
|
continue;
|
|
4264
4281
|
}
|
|
4265
4282
|
if (key === "draw") {
|
|
4266
|
-
const \u8A9E = stripQuotes(value).trim();
|
|
4283
|
+
const [\u8A9E = "", \u5272\u5408\u306E\u6587\u5B57, ...\u4F59\u308A] = stripQuotes(value).trim().split(/\s+/);
|
|
4267
4284
|
if (!DRAW_WORDS.has(\u8A9E)) {
|
|
4268
4285
|
errors.push({
|
|
4269
4286
|
line: ln.no,
|
|
4270
4287
|
message: `draw \u306B\u66F8\u3051\u306A\u3044\u8A9E\u3067\u3059: "${\u8A9E}"`,
|
|
4271
4288
|
hint: `\u4F7F\u3048\u308B\u8A9E = ${[...DRAW_WORDS].join(", ")}`
|
|
4272
4289
|
});
|
|
4290
|
+
} else if (\u4F59\u308A.length > 0) {
|
|
4291
|
+
errors.push({
|
|
4292
|
+
line: ln.no,
|
|
4293
|
+
message: `draw \u306B\u66F8\u3051\u308B\u9805\u76EE\u306F\u8A9E\u3068\u5272\u5408\u306E 2 \u3064\u307E\u3067\u3067\u3059: "${stripQuotes(value).trim()}"`,
|
|
4294
|
+
hint: "use `draw: line 0.4`"
|
|
4295
|
+
});
|
|
4273
4296
|
} else {
|
|
4274
4297
|
phase.draw = \u8A9E;
|
|
4275
4298
|
phase.drawPos = { line: ln.no };
|
|
4299
|
+
if (\u5272\u5408\u306E\u6587\u5B57 !== void 0) {
|
|
4300
|
+
const \u5272\u5408 = Number(\u5272\u5408\u306E\u6587\u5B57);
|
|
4301
|
+
if (!Number.isFinite(\u5272\u5408) || \u5272\u5408 <= 0 || \u5272\u5408 > 1) {
|
|
4302
|
+
errors.push({
|
|
4303
|
+
line: ln.no,
|
|
4304
|
+
message: `draw \u306E\u5272\u5408\u304C\u7BC4\u56F2\u5916\u3067\u3059: "${\u5272\u5408\u306E\u6587\u5B57}"`,
|
|
4305
|
+
hint: "0 \u3088\u308A\u5927\u304D\u304F 1 \u4EE5\u4E0B\u3067\u66F8\u304D\u307E\u3059 (\u4F8B `draw: line 0.4`)"
|
|
4306
|
+
});
|
|
4307
|
+
} else {
|
|
4308
|
+
phase.drawRatio = \u5272\u5408;
|
|
4309
|
+
}
|
|
4310
|
+
}
|
|
4276
4311
|
}
|
|
4277
4312
|
i += 1;
|
|
4278
4313
|
continue;
|
|
@@ -4754,6 +4789,21 @@ function describeOversizeSource(src) {
|
|
|
4754
4789
|
}
|
|
4755
4790
|
|
|
4756
4791
|
// src/compile.ts
|
|
4792
|
+
var \u8A18\u6CD5\u3060\u3051\u306E\u7A2E\u985E\u306E\u8AAD\u307F\u66FF\u3048 = {
|
|
4793
|
+
entity: "storage",
|
|
4794
|
+
state: "card",
|
|
4795
|
+
contract: "card",
|
|
4796
|
+
proxy: "card",
|
|
4797
|
+
library: "card",
|
|
4798
|
+
interface: "card",
|
|
4799
|
+
eoa: "person",
|
|
4800
|
+
multisig: "signer"
|
|
4801
|
+
};
|
|
4802
|
+
function \u63CF\u3051\u308B\u7A2E\u5225(kind) {
|
|
4803
|
+
if (kind === void 0) return "actor";
|
|
4804
|
+
const \u8AAD\u307F\u66FF\u3048\u5148 = \u8A18\u6CD5\u3060\u3051\u306E\u7A2E\u985E\u306E\u8AAD\u307F\u66FF\u3048[kind];
|
|
4805
|
+
return \u8AAD\u307F\u66FF\u3048\u5148 ?? kind;
|
|
4806
|
+
}
|
|
4757
4807
|
function compileToCdl(doc, opts) {
|
|
4758
4808
|
const oversize = describeOversize({ elements: countDocElements(doc), bytes: 0 });
|
|
4759
4809
|
if (oversize) throw new Error(oversize);
|
|
@@ -4801,6 +4851,21 @@ function compileToCdl(doc, opts) {
|
|
|
4801
4851
|
case "line":
|
|
4802
4852
|
diagram2 = compileValueChart(doc, "line", "chart-line", opts?.onNotice);
|
|
4803
4853
|
break;
|
|
4854
|
+
case "gauge":
|
|
4855
|
+
diagram2 = compileValueChart(doc, "gauge", "chart-gauge", opts?.onNotice);
|
|
4856
|
+
break;
|
|
4857
|
+
case "radial":
|
|
4858
|
+
diagram2 = compileValueChart(doc, "radial", "chart-radial", opts?.onNotice);
|
|
4859
|
+
break;
|
|
4860
|
+
case "stat":
|
|
4861
|
+
diagram2 = compileValueChart(doc, "stat", "chart-stat", opts?.onNotice);
|
|
4862
|
+
break;
|
|
4863
|
+
case "waffle":
|
|
4864
|
+
diagram2 = compileValueChart(doc, "waffle", "chart-waffle", opts?.onNotice);
|
|
4865
|
+
break;
|
|
4866
|
+
case "stacked":
|
|
4867
|
+
diagram2 = compileValueChart(doc, "stacked", "chart-stacked-bar", opts?.onNotice);
|
|
4868
|
+
break;
|
|
4804
4869
|
case "funnel":
|
|
4805
4870
|
diagram2 = compileFunnel(doc, opts?.onNotice);
|
|
4806
4871
|
break;
|
|
@@ -5059,6 +5124,11 @@ var \u56F3\u7A2E\u306E\u4F5C\u308A = {
|
|
|
5059
5124
|
pie: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5060
5125
|
bar: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5061
5126
|
line: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5127
|
+
gauge: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5128
|
+
radial: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5129
|
+
stat: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5130
|
+
waffle: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5131
|
+
stacked: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5062
5132
|
funnel: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5063
5133
|
tree: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5064
5134
|
journey: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
@@ -5217,6 +5287,11 @@ var \u7A7A\u306E\u5F62\u306E\u9003\u3052\u5148 = {
|
|
|
5217
5287
|
pie: [],
|
|
5218
5288
|
bar: [],
|
|
5219
5289
|
line: [],
|
|
5290
|
+
gauge: [],
|
|
5291
|
+
radial: [],
|
|
5292
|
+
stat: [],
|
|
5293
|
+
waffle: [],
|
|
5294
|
+
stacked: [],
|
|
5220
5295
|
funnel: [],
|
|
5221
5296
|
tree: [],
|
|
5222
5297
|
journey: [],
|
|
@@ -7065,10 +7140,13 @@ function \u53C2\u7167\u3059\u308B\u540D\u524D(value) {
|
|
|
7065
7140
|
function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
7066
7141
|
const b = cdl.diagram(slugify(doc.title), { topic: doc.title });
|
|
7067
7142
|
const CHART_W = 640;
|
|
7068
|
-
const
|
|
7143
|
+
const \u4F4E\u3044\u578B = \u578B === "pie" || \u578B === "gauge" || \u578B === "radial" || \u578B === "waffle" || \u578B === "stat";
|
|
7144
|
+
const CHART_H = \u4F4E\u3044\u578B ? 320 : 368;
|
|
7069
7145
|
b.lane("chart", { width: CHART_W + 64 });
|
|
7070
7146
|
const data = [];
|
|
7071
7147
|
const \u8AAD\u3081\u306A\u3044 = [];
|
|
7148
|
+
const \u524D\u304C\u8AAD\u3081\u306A\u3044 = [];
|
|
7149
|
+
let \u524D\u304C\u8AAD\u3081\u306A\u3044\u884C = 0;
|
|
7072
7150
|
const \u672A\u5BA3\u8A00 = [];
|
|
7073
7151
|
let \u672A\u5BA3\u8A00\u884C = 0;
|
|
7074
7152
|
const \u53C2\u7167\u3067\u304D\u308B = \u6570\u306E\u6B04\u304B\u3089\u53C2\u7167\u3067\u304D\u308B\u540D\u524D(doc);
|
|
@@ -7086,9 +7164,29 @@ function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
|
7086
7164
|
\u672A\u5BA3\u8A00.push(a.name);
|
|
7087
7165
|
continue;
|
|
7088
7166
|
}
|
|
7089
|
-
|
|
7167
|
+
const \u524D = a.previous === void 0 ? null : parseChartValue(a.previous);
|
|
7168
|
+
if (a.previous !== void 0 && \u524D === null) {
|
|
7169
|
+
if (\u524D\u304C\u8AAD\u3081\u306A\u3044.length === 0) \u524D\u304C\u8AAD\u3081\u306A\u3044\u884C = a.pos?.line ?? 0;
|
|
7170
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044.push(a.name);
|
|
7171
|
+
}
|
|
7172
|
+
data.push({
|
|
7173
|
+
label: \u7BB1\u306E\u984C(a),
|
|
7174
|
+
value,
|
|
7175
|
+
...\u524D === null ? {} : { previous: \u524D },
|
|
7176
|
+
...a.tone !== void 0 ? { tone: a.tone } : {}
|
|
7177
|
+
});
|
|
7090
7178
|
}
|
|
7091
|
-
const \u8A9E
|
|
7179
|
+
const \u8A9E\u306E\u8868 = {
|
|
7180
|
+
pie: { \u91CF: "\u5272\u5408", \u56F3: "\u5186", \u4F8B: '"45%"' },
|
|
7181
|
+
bar: { \u91CF: "\u5024", \u56F3: "\u68D2", \u4F8B: '"420"' },
|
|
7182
|
+
line: { \u91CF: "\u5024", \u56F3: "\u6298\u308C\u7DDA", \u4F8B: '"180"' },
|
|
7183
|
+
gauge: { \u91CF: "\u5024", \u56F3: "\u534A\u5186", \u4F8B: '"680"' },
|
|
7184
|
+
radial: { \u91CF: "\u5024", \u56F3: "\u5F27", \u4F8B: '"72"' },
|
|
7185
|
+
stat: { \u91CF: "\u5024", \u56F3: "\u5927\u304D\u306A\u6570\u5B57", \u4F8B: '"1200"' },
|
|
7186
|
+
waffle: { \u91CF: "\u5272\u5408", \u56F3: "100 \u500B\u306E\u5370", \u4F8B: '"45%"' },
|
|
7187
|
+
stacked: { \u91CF: "\u5185\u8A33\u306E\u5024", \u56F3: "\u5E2F", \u4F8B: '"320"' }
|
|
7188
|
+
};
|
|
7189
|
+
const \u8A9E = \u8A9E\u306E\u8868[\u578B];
|
|
7092
7190
|
const \u4F1D\u3048\u308B = (\u7A2E\u985E, \u540D\u524D, message, line = 0) => {
|
|
7093
7191
|
onNotice?.({ kind: \u7A2E\u985E, actor: \u540D\u524D, line, message });
|
|
7094
7192
|
if (typeof console !== "undefined" && console.warn) console.warn(`[dragon] ${message}`);
|
|
@@ -7109,6 +7207,14 @@ function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
|
7109
7207
|
\u672A\u5BA3\u8A00\u884C
|
|
7110
7208
|
);
|
|
7111
7209
|
}
|
|
7210
|
+
if (\u524D\u304C\u8AAD\u3081\u306A\u3044.length > 0) {
|
|
7211
|
+
\u4F1D\u3048\u308B(
|
|
7212
|
+
"chart-value-unreadable",
|
|
7213
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044[0],
|
|
7214
|
+
`type: ${\u578B} \u3067\u524D\u306E\u6642\u70B9\u306E\u5024\u3092\u8AAD\u3081\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059 (\u524D\u306E\u5024\u3092\u4F7F\u3044\u307E\u305B\u3093): ${\u524D\u304C\u8AAD\u3081\u306A\u3044.join(", ")}\u3002 \`- \u540D\u524D: { value: ` + \u8A9E.\u4F8B + ", previous: " + \u8A9E.\u4F8B + " }` \u306E\u5F62\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044",
|
|
7215
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044\u884C
|
|
7216
|
+
);
|
|
7217
|
+
}
|
|
7112
7218
|
if (doc.flow.length > 0) {
|
|
7113
7219
|
\u4F1D\u3048\u308B(
|
|
7114
7220
|
"chart-edge-dropped",
|
|
@@ -7572,7 +7678,7 @@ function compileC4(doc) {
|
|
|
7572
7678
|
b.node(x.id, {
|
|
7573
7679
|
lane: lid,
|
|
7574
7680
|
stack,
|
|
7575
|
-
kind: x.actor.kind,
|
|
7681
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(x.actor.kind),
|
|
7576
7682
|
title: x.actor.name
|
|
7577
7683
|
});
|
|
7578
7684
|
}
|
|
@@ -7604,6 +7710,7 @@ var \u653E\u5C04\u3067\u63CF\u3051\u306A\u3044\u6B04\u306E\u540D\u524D = {
|
|
|
7604
7710
|
stack: "\u7A4D\u3080\u9806",
|
|
7605
7711
|
initial: "\u59CB\u307E\u308A / \u7D42\u308F\u308A \u306E\u5370",
|
|
7606
7712
|
final: "\u59CB\u307E\u308A / \u7D42\u308F\u308A \u306E\u5370",
|
|
7713
|
+
previous: "\u524D\u306E\u6642\u70B9\u306E\u5024",
|
|
7607
7714
|
colorHex: "\u8272\u756A\u53F7",
|
|
7608
7715
|
stateOverride: "\u72B6\u614B\u306E\u4E0A\u66F8\u304D",
|
|
7609
7716
|
// 位置は「登場人物ごとの箱をどこに置くか」 の指定で、 箱が 1 つの図では置く先が無い
|
|
@@ -7971,6 +8078,9 @@ function injectPhasesFallback(diagram2, doc) {
|
|
|
7971
8078
|
body: p.body ?? "",
|
|
7972
8079
|
activate: activateIds,
|
|
7973
8080
|
...drawIds.length > 0 ? { draw: drawIds } : {},
|
|
8081
|
+
// 描く速さ (#1441)。 **描く相手が決まった段にだけ載せる** = 語が効かない図種
|
|
8082
|
+
// (`drawIds` が空) で割合だけ渡すと、描画側が「draw が空なのに割合がある」 と知らせる
|
|
8083
|
+
...drawIds.length > 0 && p.drawRatio !== void 0 ? { drawRatio: p.drawRatio } : {},
|
|
7974
8084
|
tweens: (p.tweens ?? []).map((t) => ({ stateId: t.state, from: t.from, to: t.to })),
|
|
7975
8085
|
sets: (p.sets ?? []).map((s) => ({ stateId: s.state, value: s.value })),
|
|
7976
8086
|
...p.badge ? { badge: p.badge } : {}
|
|
@@ -8156,7 +8266,7 @@ function compileFlow(doc) {
|
|
|
8156
8266
|
flowBuilder.step(
|
|
8157
8267
|
{
|
|
8158
8268
|
id: slugify(a.name),
|
|
8159
|
-
kind: a.kind,
|
|
8269
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8160
8270
|
title: \u7BB1\u306E\u984C(a)
|
|
8161
8271
|
},
|
|
8162
8272
|
edgeLabel
|
|
@@ -8186,7 +8296,7 @@ function compileSwimlane(doc) {
|
|
|
8186
8296
|
swim.node(nodeId, {
|
|
8187
8297
|
lane: laneId,
|
|
8188
8298
|
stack,
|
|
8189
|
-
kind: actor?.kind
|
|
8299
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(actor?.kind),
|
|
8190
8300
|
title: actorName
|
|
8191
8301
|
});
|
|
8192
8302
|
laneStackCount.set(laneId, stack + 1);
|
|
@@ -8208,7 +8318,7 @@ function compileSwimlane(doc) {
|
|
|
8208
8318
|
swim.node(slugify(a.name), {
|
|
8209
8319
|
lane: swim.laneId(a.name),
|
|
8210
8320
|
stack: 0,
|
|
8211
|
-
kind: a.kind
|
|
8321
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8212
8322
|
title: \u7BB1\u306E\u984C(a)
|
|
8213
8323
|
});
|
|
8214
8324
|
});
|
|
@@ -8250,8 +8360,14 @@ function \u59CB\u307E\u308A\u3068\u7D42\u308F\u308A\u306E\u6C7A\u3081\u65B9(doc)
|
|
|
8250
8360
|
\u7D42\u308F\u308A: (a, idx) => \u66F8\u3044\u305F\u7D42\u308F\u308A ? a.final === true : idx === doc.actors.length - 1 && doc.actors.length > 1
|
|
8251
8361
|
};
|
|
8252
8362
|
}
|
|
8363
|
+
var \u72B6\u614B\u306E\u56F3\u306E\u65E2\u5B9A\u306E\u7A2E\u985E = "card";
|
|
8364
|
+
function \u65E2\u5B9A\u3068\u9055\u3046\u7A2E\u985E\u3092\u66F8\u3044\u305F(doc) {
|
|
8365
|
+
return doc.actors.some(
|
|
8366
|
+
(a) => a.kindWritten === true && \u63CF\u3051\u308B\u7A2E\u5225(a.kind) !== \u72B6\u614B\u306E\u56F3\u306E\u65E2\u5B9A\u306E\u7A2E\u985E
|
|
8367
|
+
);
|
|
8368
|
+
}
|
|
8253
8369
|
function compileState(doc) {
|
|
8254
|
-
if (doc.animate && doc.animate.phases.length > 0) {
|
|
8370
|
+
if (doc.animate && doc.animate.phases.length > 0 || \u65E2\u5B9A\u3068\u9055\u3046\u7A2E\u985E\u3092\u66F8\u3044\u305F(doc)) {
|
|
8255
8371
|
return compileGenericWithAnimate(doc, { kind: "state", laneWidth: 360 });
|
|
8256
8372
|
}
|
|
8257
8373
|
const fsm = cdl.stateMachine({
|
|
@@ -8297,7 +8413,7 @@ function compileTopology(doc) {
|
|
|
8297
8413
|
for (const a of doc.actors) {
|
|
8298
8414
|
groupBuilder.add({
|
|
8299
8415
|
id: slugify(a.name),
|
|
8300
|
-
kind: a.kind,
|
|
8416
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8301
8417
|
title: \u7BB1\u306E\u984C(a)
|
|
8302
8418
|
});
|
|
8303
8419
|
}
|
|
@@ -8363,7 +8479,12 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8363
8479
|
while (\u96C6\u5408?.has(stack)) stack += 1;
|
|
8364
8480
|
\u57CB\u3081\u308B(lid, stack);
|
|
8365
8481
|
}
|
|
8366
|
-
b.node(id, {
|
|
8482
|
+
b.node(id, {
|
|
8483
|
+
lane: lid,
|
|
8484
|
+
stack,
|
|
8485
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8486
|
+
title: \u7BB1\u306E\u984C(a)
|
|
8487
|
+
});
|
|
8367
8488
|
});
|
|
8368
8489
|
} else if (kind === "flow" || kind === "topology") {
|
|
8369
8490
|
const lid = opts.laneId ?? "main";
|
|
@@ -8375,7 +8496,12 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8375
8496
|
doc.actors.forEach((a, idx) => {
|
|
8376
8497
|
const id = slugify(a.name);
|
|
8377
8498
|
actorToNodeId.set(a.name, id);
|
|
8378
|
-
b.node(id, {
|
|
8499
|
+
b.node(id, {
|
|
8500
|
+
lane: lid,
|
|
8501
|
+
stack: idx,
|
|
8502
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8503
|
+
title: \u7BB1\u306E\u984C(a)
|
|
8504
|
+
});
|
|
8379
8505
|
});
|
|
8380
8506
|
} else {
|
|
8381
8507
|
const \u898B\u51FA\u3057\u3092\u4ED8\u3051\u308B = kind === "swimlane";
|
|
@@ -8390,7 +8516,7 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8390
8516
|
b.node(id, {
|
|
8391
8517
|
lane: lid,
|
|
8392
8518
|
stack: 0,
|
|
8393
|
-
kind: a.kind,
|
|
8519
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8394
8520
|
title: \u7BB1\u306E\u984C(a),
|
|
8395
8521
|
...isInitial ? { eyebrow: "\u521D\u671F" } : {},
|
|
8396
8522
|
...isFinal ? { eyebrow: "\u6700\u7D42" } : {}
|
|
@@ -9112,6 +9238,8 @@ var ACCEPTED_KEYS = {
|
|
|
9112
9238
|
"subtitle",
|
|
9113
9239
|
"eyebrow",
|
|
9114
9240
|
"value",
|
|
9241
|
+
// 前の時点の値 (#1450)。 内訳の変化を帯で示す図と、値 1 つを大きく示す図が読む
|
|
9242
|
+
"previous",
|
|
9115
9243
|
"rows",
|
|
9116
9244
|
"lane",
|
|
9117
9245
|
"stack",
|
|
@@ -9164,7 +9292,7 @@ var ACCEPTED_KEYS = {
|
|
|
9164
9292
|
"overlay",
|
|
9165
9293
|
"pos"
|
|
9166
9294
|
],
|
|
9167
|
-
phase: ["step", "duration", "focus", "body", "badge", "tween", "set", "draw"],
|
|
9295
|
+
phase: ["step", "duration", "focus", "body", "badge", "tween", "set", "draw", "drawRatio"],
|
|
9168
9296
|
viewport: ["width", "height", "scale", "laneWidth", "gap", "laneGap", "nodeGap", "labelMargin"],
|
|
9169
9297
|
lane: ["x", "width", "label", "contain", "lifeline", "pos"],
|
|
9170
9298
|
group: ["label", "lanes"],
|
|
@@ -9204,6 +9332,7 @@ var \u6B04\u306E\u578B\u8868 = {
|
|
|
9204
9332
|
subtitle: "\u6587\u5B57\u5217",
|
|
9205
9333
|
eyebrow: "\u6587\u5B57\u5217",
|
|
9206
9334
|
value: "\u6587\u5B57\u5217",
|
|
9335
|
+
previous: "\u6587\u5B57\u5217",
|
|
9207
9336
|
rows: "\u6587\u5B57\u5217\u306E\u4E26\u3073",
|
|
9208
9337
|
lane: "\u6587\u5B57\u5217",
|
|
9209
9338
|
stack: "\u6570",
|
|
@@ -9264,7 +9393,8 @@ var \u6B04\u306E\u578B\u8868 = {
|
|
|
9264
9393
|
badge: "\u6587\u5B57\u5217",
|
|
9265
9394
|
tween: "object",
|
|
9266
9395
|
set: "object",
|
|
9267
|
-
draw: "\u63CF\u304F\u3082\u306E"
|
|
9396
|
+
draw: "\u63CF\u304F\u3082\u306E",
|
|
9397
|
+
drawRatio: "\u6570"
|
|
9268
9398
|
},
|
|
9269
9399
|
viewport: {
|
|
9270
9400
|
width: "\u6570",
|
|
@@ -10302,6 +10432,7 @@ function jsonToDoc(json) {
|
|
|
10302
10432
|
subtitle: a.subtitle,
|
|
10303
10433
|
eyebrow: a.eyebrow,
|
|
10304
10434
|
value: a.value,
|
|
10435
|
+
previous: a.previous,
|
|
10305
10436
|
rows: a.rows,
|
|
10306
10437
|
lane: a.lane,
|
|
10307
10438
|
stack: a.stack,
|
|
@@ -10402,6 +10533,9 @@ function jsonToDoc(json) {
|
|
|
10402
10533
|
badge: p.badge,
|
|
10403
10534
|
// 書いた段だけが欄を持つ。 空文字を置くと「書いた」 と「書いていない」 が同じ形になる
|
|
10404
10535
|
...p.draw !== void 0 ? { draw: p.draw, drawPos: p0 } : {},
|
|
10536
|
+
// 割合は `draw` がある段にだけ写す。 単独で書いても描く相手が決まらず何も起きないので、
|
|
10537
|
+
// 記法側 (同じ行に書かせる形) と同じ状態に揃える
|
|
10538
|
+
...p.draw !== void 0 && p.drawRatio !== void 0 ? { drawRatio: p.drawRatio } : {},
|
|
10405
10539
|
// 段の中で動かす分 (#1186)。 記法側の `tweens` / `sets` と同じ形に写す。
|
|
10406
10540
|
// 空の配列を置かないのは、記法側が「無ければ field ごと持たない」 形だから
|
|
10407
10541
|
...p.tween && Object.keys(p.tween).length > 0 ? {
|
|
@@ -10497,6 +10631,11 @@ var diagram_default = {
|
|
|
10497
10631
|
"pie",
|
|
10498
10632
|
"bar",
|
|
10499
10633
|
"line",
|
|
10634
|
+
"gauge",
|
|
10635
|
+
"radial",
|
|
10636
|
+
"stat",
|
|
10637
|
+
"waffle",
|
|
10638
|
+
"stacked",
|
|
10500
10639
|
"funnel",
|
|
10501
10640
|
"tree",
|
|
10502
10641
|
"journey",
|
|
@@ -10504,11 +10643,11 @@ var diagram_default = {
|
|
|
10504
10643
|
"c4",
|
|
10505
10644
|
"mind"
|
|
10506
10645
|
],
|
|
10507
|
-
description: '\u56F3\u306E\u7A2E\u985E\u3002 \u578B\u3054\u3068\u306B actors \u306E\u66F8\u304D\u65B9\u304C\u9055\u3046\u3002 [\u95A2\u4FC2\u3092\u63CF\u304F] sequence (\u6642\u7CFB\u5217\u306E\u547C\u3073\u51FA\u3057) / flow (\u51E6\u7406\u306E\u6D41\u308C) / swimlane (\u8CAC\u52D9\u3054\u3068\u306E\u6D41\u308C) / er (DB \u306E schema) / state (\u72B6\u614B\u306E\u9077\u79FB) / topology (network) / solidity (contract) / class (UML \u306E class) / c4 (architecture) / mind (\u767A\u60F3\u306E\u679D\u5206\u304B\u308C) \u306F actors \u306B\u540D\u524D\u3092\u4E26\u3079 flow \u306B\u77E2\u5370\u3092\u66F8\u304F\u3002 [\u5024\u3092\u63CF\u304F] pie (\u5272\u5408) / bar (\u68D2\u306E\u9AD8\u3055) / line (\u7DDA\u306E\u9AD8\u3055\u3001 \u66F8\u3044\u305F\u9806\u306B\u4E26\u3076) \u306F actors \u306B `- \u540D\u524D: "45"` \u306E\u5F62\u3067\u6570\u3092\u66F8\u304F\u3002 funnel (\u6BB5\u3054\u3068\u306B\u6E1B\u308B\u6570) \u3082\u540C\u3058\u5F62\u3002 [\u8A9E\u3092\u63CF\u304F] journey (\u4F53\u9A13\u306E\u8D77\u4F0F) \u306F `- \u767B\u9332: "\u4E0D\u6E80"` \u306E\u5F62\u3067 \u6700\u9AD8 / \u6E80\u8DB3 / \u666E\u901A / \u4E0D\u6E80 / \u6012\u308A \u306E\u3069\u308C\u304B\u3092\u66F8\u304F\u3002 quadrant (2 \u8EF8\u306E\u4ED5\u5206\u3051) \u306F `- \u91CD\u8907\u524A\u9664: "\u5DE6\u4E0A"` \u306E\u5F62\u3067 \u5DE6\u4E0A / \u53F3\u4E0A / \u5DE6\u4E0B / \u53F3\u4E0B \u306E\u3069\u308C\u304B\u3092\u66F8\u304F\u3002 [\u6642\u671F\u3092\u63CF\u304F] gantt (\u5DE5\u7A0B\u306E\u4E26\u3073) \u306F `- \u8A2D\u8A08: "1\u6708"` \u306E\u5F62\u3067\u59CB\u307E\u308A\u306E\u6642\u671F\u3092\u66F8\u304D\u3001 flow \u306E\u77E2\u5370\u3067\u524D\u5F8C\u95A2\u4FC2\u3092\u66F8\u304F\u3002 [\u89AA\u5B50\u3092\u63CF\u304F] tree (\u89AA\u5B50\u306E\u5165\u308C\u5B50) \u306F actors \u306B\u540D\u524D\u3092\u4E26\u3079 flow \u306E\u77E2\u5370\u3067\u89AA\u5B50\u3092\u66F8\u304F (\u77E2\u5370\u306E\u5148\u304C\u5B50)'
|
|
10646
|
+
description: '\u56F3\u306E\u7A2E\u985E\u3002 \u578B\u3054\u3068\u306B actors \u306E\u66F8\u304D\u65B9\u304C\u9055\u3046\u3002 [\u95A2\u4FC2\u3092\u63CF\u304F] sequence (\u6642\u7CFB\u5217\u306E\u547C\u3073\u51FA\u3057) / flow (\u51E6\u7406\u306E\u6D41\u308C) / swimlane (\u8CAC\u52D9\u3054\u3068\u306E\u6D41\u308C) / er (DB \u306E schema) / state (\u72B6\u614B\u306E\u9077\u79FB) / topology (network) / solidity (contract) / class (UML \u306E class) / c4 (architecture) / mind (\u767A\u60F3\u306E\u679D\u5206\u304B\u308C) \u306F actors \u306B\u540D\u524D\u3092\u4E26\u3079 flow \u306B\u77E2\u5370\u3092\u66F8\u304F\u3002 [\u5024\u3092\u63CF\u304F] pie (\u5272\u5408) / bar (\u68D2\u306E\u9AD8\u3055) / line (\u7DDA\u306E\u9AD8\u3055\u3001 \u66F8\u3044\u305F\u9806\u306B\u4E26\u3076) / gauge (\u5408\u8A08\u3092\u534A\u5186\u3067\u793A\u3059) / radial (\u5F27\u306E\u9577\u3055\u3067\u6BD4\u3079\u308B) / stat (\u5024 1 \u3064\u3092\u5927\u304D\u304F\u793A\u3059) / waffle (\u5272\u5408\u3092 100 \u500B\u306E\u5370\u3067\u793A\u3059) / stacked (\u5185\u8A33\u3092\u5E2F\u3067\u793A\u3059) \u306F actors \u306B `- \u540D\u524D: "45"` \u306E\u5F62\u3067\u6570\u3092\u66F8\u304F\u3002 stat \u3068 stacked \u306F `- \u540D\u524D: { value: "320", previous: "280" }` \u306E\u5F62\u3067\u524D\u306E\u6642\u70B9\u306E\u5024\u3082\u66F8\u3051\u308B\u3002 funnel (\u6BB5\u3054\u3068\u306B\u6E1B\u308B\u6570) \u3082\u540C\u3058\u5F62\u3002 [\u8A9E\u3092\u63CF\u304F] journey (\u4F53\u9A13\u306E\u8D77\u4F0F) \u306F `- \u767B\u9332: "\u4E0D\u6E80"` \u306E\u5F62\u3067 \u6700\u9AD8 / \u6E80\u8DB3 / \u666E\u901A / \u4E0D\u6E80 / \u6012\u308A \u306E\u3069\u308C\u304B\u3092\u66F8\u304F\u3002 quadrant (2 \u8EF8\u306E\u4ED5\u5206\u3051) \u306F `- \u91CD\u8907\u524A\u9664: "\u5DE6\u4E0A"` \u306E\u5F62\u3067 \u5DE6\u4E0A / \u53F3\u4E0A / \u5DE6\u4E0B / \u53F3\u4E0B \u306E\u3069\u308C\u304B\u3092\u66F8\u304F\u3002 [\u6642\u671F\u3092\u63CF\u304F] gantt (\u5DE5\u7A0B\u306E\u4E26\u3073) \u306F `- \u8A2D\u8A08: "1\u6708"` \u306E\u5F62\u3067\u59CB\u307E\u308A\u306E\u6642\u671F\u3092\u66F8\u304D\u3001 flow \u306E\u77E2\u5370\u3067\u524D\u5F8C\u95A2\u4FC2\u3092\u66F8\u304F\u3002 [\u89AA\u5B50\u3092\u63CF\u304F] tree (\u89AA\u5B50\u306E\u5165\u308C\u5B50) \u306F actors \u306B\u540D\u524D\u3092\u4E26\u3079 flow \u306E\u77E2\u5370\u3067\u89AA\u5B50\u3092\u66F8\u304F (\u77E2\u5370\u306E\u5148\u304C\u5B50)'
|
|
10508
10647
|
},
|
|
10509
10648
|
eyebrow: {
|
|
10510
10649
|
type: "string",
|
|
10511
|
-
description: "\u56F3\u8868\u306E\u7BB1\u306E\u4E0A\u306B\u51FA\u3059\u5C0F\u898B\u51FA\u3057 (\u7701\u7565\u53EF)\u3002 \u52B9\u304F\u306E\u306F\u56F3\u5168\u4F53\u3092 1 \u7BB1\u306B\u3059\u308B\u578B (pie / bar / line / funnel / tree / journey / quadrant / mind / gantt) \u3060\u3051\u3002 \u7BB1\u3054\u3068\u306B\u5206\u304B\u308C\u308B\u578B\u3067\u306F\u76F8\u624B\u304C\u6C7A\u307E\u3089\u306A\u3044\u305F\u3081\u3001 actors[].eyebrow \u306B\u66F8\u304F"
|
|
10650
|
+
description: "\u56F3\u8868\u306E\u7BB1\u306E\u4E0A\u306B\u51FA\u3059\u5C0F\u898B\u51FA\u3057 (\u7701\u7565\u53EF)\u3002 \u52B9\u304F\u306E\u306F\u56F3\u5168\u4F53\u3092 1 \u7BB1\u306B\u3059\u308B\u578B (pie / bar / line / gauge / radial / stat / waffle / stacked / funnel / tree / journey / quadrant / mind / gantt) \u3060\u3051\u3002 \u7BB1\u3054\u3068\u306B\u5206\u304B\u308C\u308B\u578B\u3067\u306F\u76F8\u624B\u304C\u6C7A\u307E\u3089\u306A\u3044\u305F\u3081\u3001 actors[].eyebrow \u306B\u66F8\u304F"
|
|
10512
10651
|
},
|
|
10513
10652
|
axes: {
|
|
10514
10653
|
type: "object",
|
|
@@ -10577,6 +10716,10 @@ var diagram_default = {
|
|
|
10577
10716
|
type: "string",
|
|
10578
10717
|
description: "actor \u6570\u5024\u8868\u793A (kind: actor \u7528)"
|
|
10579
10718
|
},
|
|
10719
|
+
previous: {
|
|
10720
|
+
type: "string",
|
|
10721
|
+
description: "\u524D\u306E\u6642\u70B9\u306E\u5024\u3002 type: stacked \u304C 2 \u672C\u76EE\u306E\u5E2F\u3068\u3057\u3066\u63CF\u304D\u3001type: stat \u304C\u5DEE\u3068\u3057\u3066\u51FA\u3059\u3002 \u66F8\u304B\u306A\u3044\u56F3\u306F 1 \u672C\u306E\u307E\u307E"
|
|
10722
|
+
},
|
|
10580
10723
|
rows: {
|
|
10581
10724
|
type: "array",
|
|
10582
10725
|
items: {
|
|
@@ -11054,6 +11197,12 @@ var diagram_default = {
|
|
|
11054
11197
|
enum: ["line", "bar", "pie", "journey", "mind", "tree", "gantt", "funnel"],
|
|
11055
11198
|
description: "\u3053\u306E phase \u3067\u8D77\u70B9\u304B\u3089\u63CF\u304F\u3082\u306E\u3002 \u8A9E\u306F\u56F3\u7A2E\u3068\u63C3\u3048\u308B\u3002 line / journey = \u7DDA\u304C\u5DE6\u7AEF\u304B\u3089\u53F3\u3078\u4F38\u3073\u308B / bar = \u68D2\u304C\u6A2A\u8EF8\u304B\u3089\u4E0A\u3078\u4F38\u3073\u308B / pie = \u6247\u304C 12 \u6642\u304B\u3089\u6642\u8A08\u56DE\u308A\u306B\u958B\u304F / mind = \u679D\u304C\u4E2D\u5FC3\u304B\u3089\u5916\u3078\u4F38\u3073\u308B / tree = \u679D\u304C\u6839\u304B\u3089\u4E0B\u3078\u4F38\u3073\u308B / gantt = \u5E2F\u304C\u5404\u59CB\u7AEF\u304B\u3089\u53F3\u3078\u4F38\u3073\u308B / funnel = \u6BB5\u304C\u4E0A\u7AEF\u304B\u3089\u9806\u306B\u7A4D\u307E\u308C\u308B"
|
|
11056
11199
|
},
|
|
11200
|
+
drawRatio: {
|
|
11201
|
+
type: "number",
|
|
11202
|
+
exclusiveMinimum: 0,
|
|
11203
|
+
maximum: 1,
|
|
11204
|
+
description: "\u63CF\u304D\u7D42\u3048\u308B\u307E\u3067\u306B phase \u306E\u4F55\u5272\u3092\u4F7F\u3046\u304B\u3002 0.4 \u306A\u3089\u9032\u307F\u304C 0.4 \u306B\u9054\u3057\u305F\u6642\u70B9\u3067\u63CF\u304D\u7D42\u308F\u308A\u3001\u6B8B\u308A\u306F\u63CF\u304D\u7D42\u308F\u3063\u305F\u59FF\u306E\u307E\u307E\u5024\u3060\u3051\u304C\u52D5\u304F\u3002 \u66F8\u304B\u306A\u3051\u308C\u3070 phase \u306E\u7D42\u308F\u308A\u306B\u63CF\u304D\u7D42\u308F\u308B\u3002 draw \u3068\u4E00\u7DD2\u306B\u66F8\u304F (draw \u304C\u7121\u3044\u3068\u4F55\u3082\u8D77\u304D\u306A\u3044)"
|
|
11205
|
+
},
|
|
11057
11206
|
tween: {
|
|
11058
11207
|
type: "object",
|
|
11059
11208
|
description: "\u3053\u306E phase \u3067\u88DC\u9593\u3059\u308B\u72B6\u614B\u3002 \u72B6\u614B\u540D -> [\u958B\u59CB\u5024, \u7D42\u4E86\u5024]\u3002 \u540D\u524D\u306F\u82F1\u5B57\u304B _ \u3067\u59CB\u3081\u3001 \u82F1\u6570\u5B57\u3068 _ \u3060\u3051\u3092\u4F7F\u3046",
|