@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.js
CHANGED
|
@@ -1994,6 +1994,11 @@ var PRESET_TYPES = /* @__PURE__ */ new Set([
|
|
|
1994
1994
|
"pie",
|
|
1995
1995
|
"bar",
|
|
1996
1996
|
"line",
|
|
1997
|
+
"gauge",
|
|
1998
|
+
"radial",
|
|
1999
|
+
"stat",
|
|
2000
|
+
"waffle",
|
|
2001
|
+
"stacked",
|
|
1997
2002
|
"funnel",
|
|
1998
2003
|
"tree",
|
|
1999
2004
|
"journey",
|
|
@@ -3427,6 +3432,11 @@ function applyContinuationLines(actor, rest, errors) {
|
|
|
3427
3432
|
case "\u5024":
|
|
3428
3433
|
out.value = stripQuotes(raw);
|
|
3429
3434
|
break;
|
|
3435
|
+
// 前の時点の値 (#1450)。 内訳を帯で示す図と値 1 つを大きく示す図が読む
|
|
3436
|
+
case "previous":
|
|
3437
|
+
case "\u524D\u306E\u5024":
|
|
3438
|
+
out.previous = stripQuotes(raw);
|
|
3439
|
+
break;
|
|
3430
3440
|
case "shape":
|
|
3431
3441
|
case "\u56F3\u5F62":
|
|
3432
3442
|
out.shape = \u56F3\u5F62\u3068\u3057\u3066\u8AAD\u3080(raw, ln.no, errors);
|
|
@@ -3574,6 +3584,9 @@ var ACTOR_ITEM_KEYS = /* @__PURE__ */ new Set([
|
|
|
3574
3584
|
"\u88DC\u8DB3",
|
|
3575
3585
|
"value",
|
|
3576
3586
|
"\u5024",
|
|
3587
|
+
// 前の時点の値 (#1450)。 内訳の変化を帯で示す図と、値 1 つを大きく示す図が読む
|
|
3588
|
+
"previous",
|
|
3589
|
+
"\u524D\u306E\u5024",
|
|
3577
3590
|
"rows",
|
|
3578
3591
|
"\u884C",
|
|
3579
3592
|
// 箱の中に描く図形 (#1374)
|
|
@@ -3699,6 +3712,7 @@ var ACTOR_RESERVED_FIELDS = /* @__PURE__ */ new Set([
|
|
|
3699
3712
|
"subtitle",
|
|
3700
3713
|
"eyebrow",
|
|
3701
3714
|
"value",
|
|
3715
|
+
"previous",
|
|
3702
3716
|
"rows",
|
|
3703
3717
|
"lane",
|
|
3704
3718
|
"stack",
|
|
@@ -3801,6 +3815,7 @@ var INLINE_ACTOR_ALIASES = {
|
|
|
3801
3815
|
\u7A2E\u985E: "kind",
|
|
3802
3816
|
\u88DC\u8DB3: "subtitle",
|
|
3803
3817
|
\u5024: "value",
|
|
3818
|
+
\u524D\u306E\u5024: "previous",
|
|
3804
3819
|
\u884C: "rows"
|
|
3805
3820
|
};
|
|
3806
3821
|
function \u4E2D\u62EC\u5F27\u306E\u5225\u540D\u3092\u5BC4\u305B\u308B(opts) {
|
|
@@ -3819,6 +3834,7 @@ var INLINE_ACTOR_KEYS = /* @__PURE__ */ new Set([
|
|
|
3819
3834
|
"subtitle",
|
|
3820
3835
|
"eyebrow",
|
|
3821
3836
|
"value",
|
|
3837
|
+
"previous",
|
|
3822
3838
|
"rows",
|
|
3823
3839
|
"lane",
|
|
3824
3840
|
"stack",
|
|
@@ -3930,6 +3946,7 @@ function parseActor2(line, errors) {
|
|
|
3930
3946
|
owner: isPart ? void 0 : opts.owner,
|
|
3931
3947
|
end: isPart ? void 0 : opts.end,
|
|
3932
3948
|
value: opts.value,
|
|
3949
|
+
previous: opts.previous,
|
|
3933
3950
|
rows: opts.rows ? opts.rows.replace(/^\[|\]$/g, "").split(/,(?![^[]*\])/).map((x) => stripQuotes(x.trim())).filter(Boolean) : void 0,
|
|
3934
3951
|
lane: opts.lane,
|
|
3935
3952
|
// 箱の中に描く図形 (#1374)。 パーツでは状態の上書きとして意味を持つため横取りしない
|
|
@@ -4261,16 +4278,34 @@ function parsePhase(block, errors) {
|
|
|
4261
4278
|
continue;
|
|
4262
4279
|
}
|
|
4263
4280
|
if (key === "draw") {
|
|
4264
|
-
const \u8A9E = stripQuotes(value).trim();
|
|
4281
|
+
const [\u8A9E = "", \u5272\u5408\u306E\u6587\u5B57, ...\u4F59\u308A] = stripQuotes(value).trim().split(/\s+/);
|
|
4265
4282
|
if (!DRAW_WORDS.has(\u8A9E)) {
|
|
4266
4283
|
errors.push({
|
|
4267
4284
|
line: ln.no,
|
|
4268
4285
|
message: `draw \u306B\u66F8\u3051\u306A\u3044\u8A9E\u3067\u3059: "${\u8A9E}"`,
|
|
4269
4286
|
hint: `\u4F7F\u3048\u308B\u8A9E = ${[...DRAW_WORDS].join(", ")}`
|
|
4270
4287
|
});
|
|
4288
|
+
} else if (\u4F59\u308A.length > 0) {
|
|
4289
|
+
errors.push({
|
|
4290
|
+
line: ln.no,
|
|
4291
|
+
message: `draw \u306B\u66F8\u3051\u308B\u9805\u76EE\u306F\u8A9E\u3068\u5272\u5408\u306E 2 \u3064\u307E\u3067\u3067\u3059: "${stripQuotes(value).trim()}"`,
|
|
4292
|
+
hint: "use `draw: line 0.4`"
|
|
4293
|
+
});
|
|
4271
4294
|
} else {
|
|
4272
4295
|
phase.draw = \u8A9E;
|
|
4273
4296
|
phase.drawPos = { line: ln.no };
|
|
4297
|
+
if (\u5272\u5408\u306E\u6587\u5B57 !== void 0) {
|
|
4298
|
+
const \u5272\u5408 = Number(\u5272\u5408\u306E\u6587\u5B57);
|
|
4299
|
+
if (!Number.isFinite(\u5272\u5408) || \u5272\u5408 <= 0 || \u5272\u5408 > 1) {
|
|
4300
|
+
errors.push({
|
|
4301
|
+
line: ln.no,
|
|
4302
|
+
message: `draw \u306E\u5272\u5408\u304C\u7BC4\u56F2\u5916\u3067\u3059: "${\u5272\u5408\u306E\u6587\u5B57}"`,
|
|
4303
|
+
hint: "0 \u3088\u308A\u5927\u304D\u304F 1 \u4EE5\u4E0B\u3067\u66F8\u304D\u307E\u3059 (\u4F8B `draw: line 0.4`)"
|
|
4304
|
+
});
|
|
4305
|
+
} else {
|
|
4306
|
+
phase.drawRatio = \u5272\u5408;
|
|
4307
|
+
}
|
|
4308
|
+
}
|
|
4274
4309
|
}
|
|
4275
4310
|
i += 1;
|
|
4276
4311
|
continue;
|
|
@@ -4752,6 +4787,21 @@ function describeOversizeSource(src) {
|
|
|
4752
4787
|
}
|
|
4753
4788
|
|
|
4754
4789
|
// src/compile.ts
|
|
4790
|
+
var \u8A18\u6CD5\u3060\u3051\u306E\u7A2E\u985E\u306E\u8AAD\u307F\u66FF\u3048 = {
|
|
4791
|
+
entity: "storage",
|
|
4792
|
+
state: "card",
|
|
4793
|
+
contract: "card",
|
|
4794
|
+
proxy: "card",
|
|
4795
|
+
library: "card",
|
|
4796
|
+
interface: "card",
|
|
4797
|
+
eoa: "person",
|
|
4798
|
+
multisig: "signer"
|
|
4799
|
+
};
|
|
4800
|
+
function \u63CF\u3051\u308B\u7A2E\u5225(kind) {
|
|
4801
|
+
if (kind === void 0) return "actor";
|
|
4802
|
+
const \u8AAD\u307F\u66FF\u3048\u5148 = \u8A18\u6CD5\u3060\u3051\u306E\u7A2E\u985E\u306E\u8AAD\u307F\u66FF\u3048[kind];
|
|
4803
|
+
return \u8AAD\u307F\u66FF\u3048\u5148 ?? kind;
|
|
4804
|
+
}
|
|
4755
4805
|
function compileToCdl(doc, opts) {
|
|
4756
4806
|
const oversize = describeOversize({ elements: countDocElements(doc), bytes: 0 });
|
|
4757
4807
|
if (oversize) throw new Error(oversize);
|
|
@@ -4799,6 +4849,21 @@ function compileToCdl(doc, opts) {
|
|
|
4799
4849
|
case "line":
|
|
4800
4850
|
diagram2 = compileValueChart(doc, "line", "chart-line", opts?.onNotice);
|
|
4801
4851
|
break;
|
|
4852
|
+
case "gauge":
|
|
4853
|
+
diagram2 = compileValueChart(doc, "gauge", "chart-gauge", opts?.onNotice);
|
|
4854
|
+
break;
|
|
4855
|
+
case "radial":
|
|
4856
|
+
diagram2 = compileValueChart(doc, "radial", "chart-radial", opts?.onNotice);
|
|
4857
|
+
break;
|
|
4858
|
+
case "stat":
|
|
4859
|
+
diagram2 = compileValueChart(doc, "stat", "chart-stat", opts?.onNotice);
|
|
4860
|
+
break;
|
|
4861
|
+
case "waffle":
|
|
4862
|
+
diagram2 = compileValueChart(doc, "waffle", "chart-waffle", opts?.onNotice);
|
|
4863
|
+
break;
|
|
4864
|
+
case "stacked":
|
|
4865
|
+
diagram2 = compileValueChart(doc, "stacked", "chart-stacked-bar", opts?.onNotice);
|
|
4866
|
+
break;
|
|
4802
4867
|
case "funnel":
|
|
4803
4868
|
diagram2 = compileFunnel(doc, opts?.onNotice);
|
|
4804
4869
|
break;
|
|
@@ -5057,6 +5122,11 @@ var \u56F3\u7A2E\u306E\u4F5C\u308A = {
|
|
|
5057
5122
|
pie: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5058
5123
|
bar: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5059
5124
|
line: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5125
|
+
gauge: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5126
|
+
radial: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5127
|
+
stat: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5128
|
+
waffle: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5129
|
+
stacked: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5060
5130
|
funnel: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5061
5131
|
tree: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
5062
5132
|
journey: "\u56F3\u5168\u4F53\u3092 1 \u7BB1",
|
|
@@ -5215,6 +5285,11 @@ var \u7A7A\u306E\u5F62\u306E\u9003\u3052\u5148 = {
|
|
|
5215
5285
|
pie: [],
|
|
5216
5286
|
bar: [],
|
|
5217
5287
|
line: [],
|
|
5288
|
+
gauge: [],
|
|
5289
|
+
radial: [],
|
|
5290
|
+
stat: [],
|
|
5291
|
+
waffle: [],
|
|
5292
|
+
stacked: [],
|
|
5218
5293
|
funnel: [],
|
|
5219
5294
|
tree: [],
|
|
5220
5295
|
journey: [],
|
|
@@ -7063,10 +7138,13 @@ function \u53C2\u7167\u3059\u308B\u540D\u524D(value) {
|
|
|
7063
7138
|
function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
7064
7139
|
const b = diagram(slugify(doc.title), { topic: doc.title });
|
|
7065
7140
|
const CHART_W = 640;
|
|
7066
|
-
const
|
|
7141
|
+
const \u4F4E\u3044\u578B = \u578B === "pie" || \u578B === "gauge" || \u578B === "radial" || \u578B === "waffle" || \u578B === "stat";
|
|
7142
|
+
const CHART_H = \u4F4E\u3044\u578B ? 320 : 368;
|
|
7067
7143
|
b.lane("chart", { width: CHART_W + 64 });
|
|
7068
7144
|
const data = [];
|
|
7069
7145
|
const \u8AAD\u3081\u306A\u3044 = [];
|
|
7146
|
+
const \u524D\u304C\u8AAD\u3081\u306A\u3044 = [];
|
|
7147
|
+
let \u524D\u304C\u8AAD\u3081\u306A\u3044\u884C = 0;
|
|
7070
7148
|
const \u672A\u5BA3\u8A00 = [];
|
|
7071
7149
|
let \u672A\u5BA3\u8A00\u884C = 0;
|
|
7072
7150
|
const \u53C2\u7167\u3067\u304D\u308B = \u6570\u306E\u6B04\u304B\u3089\u53C2\u7167\u3067\u304D\u308B\u540D\u524D(doc);
|
|
@@ -7084,9 +7162,29 @@ function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
|
7084
7162
|
\u672A\u5BA3\u8A00.push(a.name);
|
|
7085
7163
|
continue;
|
|
7086
7164
|
}
|
|
7087
|
-
|
|
7165
|
+
const \u524D = a.previous === void 0 ? null : parseChartValue(a.previous);
|
|
7166
|
+
if (a.previous !== void 0 && \u524D === null) {
|
|
7167
|
+
if (\u524D\u304C\u8AAD\u3081\u306A\u3044.length === 0) \u524D\u304C\u8AAD\u3081\u306A\u3044\u884C = a.pos?.line ?? 0;
|
|
7168
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044.push(a.name);
|
|
7169
|
+
}
|
|
7170
|
+
data.push({
|
|
7171
|
+
label: \u7BB1\u306E\u984C(a),
|
|
7172
|
+
value,
|
|
7173
|
+
...\u524D === null ? {} : { previous: \u524D },
|
|
7174
|
+
...a.tone !== void 0 ? { tone: a.tone } : {}
|
|
7175
|
+
});
|
|
7088
7176
|
}
|
|
7089
|
-
const \u8A9E
|
|
7177
|
+
const \u8A9E\u306E\u8868 = {
|
|
7178
|
+
pie: { \u91CF: "\u5272\u5408", \u56F3: "\u5186", \u4F8B: '"45%"' },
|
|
7179
|
+
bar: { \u91CF: "\u5024", \u56F3: "\u68D2", \u4F8B: '"420"' },
|
|
7180
|
+
line: { \u91CF: "\u5024", \u56F3: "\u6298\u308C\u7DDA", \u4F8B: '"180"' },
|
|
7181
|
+
gauge: { \u91CF: "\u5024", \u56F3: "\u534A\u5186", \u4F8B: '"680"' },
|
|
7182
|
+
radial: { \u91CF: "\u5024", \u56F3: "\u5F27", \u4F8B: '"72"' },
|
|
7183
|
+
stat: { \u91CF: "\u5024", \u56F3: "\u5927\u304D\u306A\u6570\u5B57", \u4F8B: '"1200"' },
|
|
7184
|
+
waffle: { \u91CF: "\u5272\u5408", \u56F3: "100 \u500B\u306E\u5370", \u4F8B: '"45%"' },
|
|
7185
|
+
stacked: { \u91CF: "\u5185\u8A33\u306E\u5024", \u56F3: "\u5E2F", \u4F8B: '"320"' }
|
|
7186
|
+
};
|
|
7187
|
+
const \u8A9E = \u8A9E\u306E\u8868[\u578B];
|
|
7090
7188
|
const \u4F1D\u3048\u308B = (\u7A2E\u985E, \u540D\u524D, message, line = 0) => {
|
|
7091
7189
|
onNotice?.({ kind: \u7A2E\u985E, actor: \u540D\u524D, line, message });
|
|
7092
7190
|
if (typeof console !== "undefined" && console.warn) console.warn(`[dragon] ${message}`);
|
|
@@ -7107,6 +7205,14 @@ function compileValueChart(doc, \u578B, kind, onNotice) {
|
|
|
7107
7205
|
\u672A\u5BA3\u8A00\u884C
|
|
7108
7206
|
);
|
|
7109
7207
|
}
|
|
7208
|
+
if (\u524D\u304C\u8AAD\u3081\u306A\u3044.length > 0) {
|
|
7209
|
+
\u4F1D\u3048\u308B(
|
|
7210
|
+
"chart-value-unreadable",
|
|
7211
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044[0],
|
|
7212
|
+
`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",
|
|
7213
|
+
\u524D\u304C\u8AAD\u3081\u306A\u3044\u884C
|
|
7214
|
+
);
|
|
7215
|
+
}
|
|
7110
7216
|
if (doc.flow.length > 0) {
|
|
7111
7217
|
\u4F1D\u3048\u308B(
|
|
7112
7218
|
"chart-edge-dropped",
|
|
@@ -7570,7 +7676,7 @@ function compileC4(doc) {
|
|
|
7570
7676
|
b.node(x.id, {
|
|
7571
7677
|
lane: lid,
|
|
7572
7678
|
stack,
|
|
7573
|
-
kind: x.actor.kind,
|
|
7679
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(x.actor.kind),
|
|
7574
7680
|
title: x.actor.name
|
|
7575
7681
|
});
|
|
7576
7682
|
}
|
|
@@ -7602,6 +7708,7 @@ var \u653E\u5C04\u3067\u63CF\u3051\u306A\u3044\u6B04\u306E\u540D\u524D = {
|
|
|
7602
7708
|
stack: "\u7A4D\u3080\u9806",
|
|
7603
7709
|
initial: "\u59CB\u307E\u308A / \u7D42\u308F\u308A \u306E\u5370",
|
|
7604
7710
|
final: "\u59CB\u307E\u308A / \u7D42\u308F\u308A \u306E\u5370",
|
|
7711
|
+
previous: "\u524D\u306E\u6642\u70B9\u306E\u5024",
|
|
7605
7712
|
colorHex: "\u8272\u756A\u53F7",
|
|
7606
7713
|
stateOverride: "\u72B6\u614B\u306E\u4E0A\u66F8\u304D",
|
|
7607
7714
|
// 位置は「登場人物ごとの箱をどこに置くか」 の指定で、 箱が 1 つの図では置く先が無い
|
|
@@ -7969,6 +8076,9 @@ function injectPhasesFallback(diagram2, doc) {
|
|
|
7969
8076
|
body: p.body ?? "",
|
|
7970
8077
|
activate: activateIds,
|
|
7971
8078
|
...drawIds.length > 0 ? { draw: drawIds } : {},
|
|
8079
|
+
// 描く速さ (#1441)。 **描く相手が決まった段にだけ載せる** = 語が効かない図種
|
|
8080
|
+
// (`drawIds` が空) で割合だけ渡すと、描画側が「draw が空なのに割合がある」 と知らせる
|
|
8081
|
+
...drawIds.length > 0 && p.drawRatio !== void 0 ? { drawRatio: p.drawRatio } : {},
|
|
7972
8082
|
tweens: (p.tweens ?? []).map((t) => ({ stateId: t.state, from: t.from, to: t.to })),
|
|
7973
8083
|
sets: (p.sets ?? []).map((s) => ({ stateId: s.state, value: s.value })),
|
|
7974
8084
|
...p.badge ? { badge: p.badge } : {}
|
|
@@ -8154,7 +8264,7 @@ function compileFlow(doc) {
|
|
|
8154
8264
|
flowBuilder.step(
|
|
8155
8265
|
{
|
|
8156
8266
|
id: slugify(a.name),
|
|
8157
|
-
kind: a.kind,
|
|
8267
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8158
8268
|
title: \u7BB1\u306E\u984C(a)
|
|
8159
8269
|
},
|
|
8160
8270
|
edgeLabel
|
|
@@ -8184,7 +8294,7 @@ function compileSwimlane(doc) {
|
|
|
8184
8294
|
swim.node(nodeId, {
|
|
8185
8295
|
lane: laneId,
|
|
8186
8296
|
stack,
|
|
8187
|
-
kind: actor?.kind
|
|
8297
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(actor?.kind),
|
|
8188
8298
|
title: actorName
|
|
8189
8299
|
});
|
|
8190
8300
|
laneStackCount.set(laneId, stack + 1);
|
|
@@ -8206,7 +8316,7 @@ function compileSwimlane(doc) {
|
|
|
8206
8316
|
swim.node(slugify(a.name), {
|
|
8207
8317
|
lane: swim.laneId(a.name),
|
|
8208
8318
|
stack: 0,
|
|
8209
|
-
kind: a.kind
|
|
8319
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8210
8320
|
title: \u7BB1\u306E\u984C(a)
|
|
8211
8321
|
});
|
|
8212
8322
|
});
|
|
@@ -8248,8 +8358,14 @@ function \u59CB\u307E\u308A\u3068\u7D42\u308F\u308A\u306E\u6C7A\u3081\u65B9(doc)
|
|
|
8248
8358
|
\u7D42\u308F\u308A: (a, idx) => \u66F8\u3044\u305F\u7D42\u308F\u308A ? a.final === true : idx === doc.actors.length - 1 && doc.actors.length > 1
|
|
8249
8359
|
};
|
|
8250
8360
|
}
|
|
8361
|
+
var \u72B6\u614B\u306E\u56F3\u306E\u65E2\u5B9A\u306E\u7A2E\u985E = "card";
|
|
8362
|
+
function \u65E2\u5B9A\u3068\u9055\u3046\u7A2E\u985E\u3092\u66F8\u3044\u305F(doc) {
|
|
8363
|
+
return doc.actors.some(
|
|
8364
|
+
(a) => a.kindWritten === true && \u63CF\u3051\u308B\u7A2E\u5225(a.kind) !== \u72B6\u614B\u306E\u56F3\u306E\u65E2\u5B9A\u306E\u7A2E\u985E
|
|
8365
|
+
);
|
|
8366
|
+
}
|
|
8251
8367
|
function compileState(doc) {
|
|
8252
|
-
if (doc.animate && doc.animate.phases.length > 0) {
|
|
8368
|
+
if (doc.animate && doc.animate.phases.length > 0 || \u65E2\u5B9A\u3068\u9055\u3046\u7A2E\u985E\u3092\u66F8\u3044\u305F(doc)) {
|
|
8253
8369
|
return compileGenericWithAnimate(doc, { kind: "state", laneWidth: 360 });
|
|
8254
8370
|
}
|
|
8255
8371
|
const fsm = stateMachine({
|
|
@@ -8295,7 +8411,7 @@ function compileTopology(doc) {
|
|
|
8295
8411
|
for (const a of doc.actors) {
|
|
8296
8412
|
groupBuilder.add({
|
|
8297
8413
|
id: slugify(a.name),
|
|
8298
|
-
kind: a.kind,
|
|
8414
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8299
8415
|
title: \u7BB1\u306E\u984C(a)
|
|
8300
8416
|
});
|
|
8301
8417
|
}
|
|
@@ -8361,7 +8477,12 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8361
8477
|
while (\u96C6\u5408?.has(stack)) stack += 1;
|
|
8362
8478
|
\u57CB\u3081\u308B(lid, stack);
|
|
8363
8479
|
}
|
|
8364
|
-
b.node(id, {
|
|
8480
|
+
b.node(id, {
|
|
8481
|
+
lane: lid,
|
|
8482
|
+
stack,
|
|
8483
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8484
|
+
title: \u7BB1\u306E\u984C(a)
|
|
8485
|
+
});
|
|
8365
8486
|
});
|
|
8366
8487
|
} else if (kind === "flow" || kind === "topology") {
|
|
8367
8488
|
const lid = opts.laneId ?? "main";
|
|
@@ -8373,7 +8494,12 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8373
8494
|
doc.actors.forEach((a, idx) => {
|
|
8374
8495
|
const id = slugify(a.name);
|
|
8375
8496
|
actorToNodeId.set(a.name, id);
|
|
8376
|
-
b.node(id, {
|
|
8497
|
+
b.node(id, {
|
|
8498
|
+
lane: lid,
|
|
8499
|
+
stack: idx,
|
|
8500
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8501
|
+
title: \u7BB1\u306E\u984C(a)
|
|
8502
|
+
});
|
|
8377
8503
|
});
|
|
8378
8504
|
} else {
|
|
8379
8505
|
const \u898B\u51FA\u3057\u3092\u4ED8\u3051\u308B = kind === "swimlane";
|
|
@@ -8388,7 +8514,7 @@ function compileGenericWithAnimate(doc, opts) {
|
|
|
8388
8514
|
b.node(id, {
|
|
8389
8515
|
lane: lid,
|
|
8390
8516
|
stack: 0,
|
|
8391
|
-
kind: a.kind,
|
|
8517
|
+
kind: \u63CF\u3051\u308B\u7A2E\u5225(a.kind),
|
|
8392
8518
|
title: \u7BB1\u306E\u984C(a),
|
|
8393
8519
|
...isInitial ? { eyebrow: "\u521D\u671F" } : {},
|
|
8394
8520
|
...isFinal ? { eyebrow: "\u6700\u7D42" } : {}
|
|
@@ -9110,6 +9236,8 @@ var ACCEPTED_KEYS = {
|
|
|
9110
9236
|
"subtitle",
|
|
9111
9237
|
"eyebrow",
|
|
9112
9238
|
"value",
|
|
9239
|
+
// 前の時点の値 (#1450)。 内訳の変化を帯で示す図と、値 1 つを大きく示す図が読む
|
|
9240
|
+
"previous",
|
|
9113
9241
|
"rows",
|
|
9114
9242
|
"lane",
|
|
9115
9243
|
"stack",
|
|
@@ -9162,7 +9290,7 @@ var ACCEPTED_KEYS = {
|
|
|
9162
9290
|
"overlay",
|
|
9163
9291
|
"pos"
|
|
9164
9292
|
],
|
|
9165
|
-
phase: ["step", "duration", "focus", "body", "badge", "tween", "set", "draw"],
|
|
9293
|
+
phase: ["step", "duration", "focus", "body", "badge", "tween", "set", "draw", "drawRatio"],
|
|
9166
9294
|
viewport: ["width", "height", "scale", "laneWidth", "gap", "laneGap", "nodeGap", "labelMargin"],
|
|
9167
9295
|
lane: ["x", "width", "label", "contain", "lifeline", "pos"],
|
|
9168
9296
|
group: ["label", "lanes"],
|
|
@@ -9202,6 +9330,7 @@ var \u6B04\u306E\u578B\u8868 = {
|
|
|
9202
9330
|
subtitle: "\u6587\u5B57\u5217",
|
|
9203
9331
|
eyebrow: "\u6587\u5B57\u5217",
|
|
9204
9332
|
value: "\u6587\u5B57\u5217",
|
|
9333
|
+
previous: "\u6587\u5B57\u5217",
|
|
9205
9334
|
rows: "\u6587\u5B57\u5217\u306E\u4E26\u3073",
|
|
9206
9335
|
lane: "\u6587\u5B57\u5217",
|
|
9207
9336
|
stack: "\u6570",
|
|
@@ -9262,7 +9391,8 @@ var \u6B04\u306E\u578B\u8868 = {
|
|
|
9262
9391
|
badge: "\u6587\u5B57\u5217",
|
|
9263
9392
|
tween: "object",
|
|
9264
9393
|
set: "object",
|
|
9265
|
-
draw: "\u63CF\u304F\u3082\u306E"
|
|
9394
|
+
draw: "\u63CF\u304F\u3082\u306E",
|
|
9395
|
+
drawRatio: "\u6570"
|
|
9266
9396
|
},
|
|
9267
9397
|
viewport: {
|
|
9268
9398
|
width: "\u6570",
|
|
@@ -10300,6 +10430,7 @@ function jsonToDoc(json) {
|
|
|
10300
10430
|
subtitle: a.subtitle,
|
|
10301
10431
|
eyebrow: a.eyebrow,
|
|
10302
10432
|
value: a.value,
|
|
10433
|
+
previous: a.previous,
|
|
10303
10434
|
rows: a.rows,
|
|
10304
10435
|
lane: a.lane,
|
|
10305
10436
|
stack: a.stack,
|
|
@@ -10400,6 +10531,9 @@ function jsonToDoc(json) {
|
|
|
10400
10531
|
badge: p.badge,
|
|
10401
10532
|
// 書いた段だけが欄を持つ。 空文字を置くと「書いた」 と「書いていない」 が同じ形になる
|
|
10402
10533
|
...p.draw !== void 0 ? { draw: p.draw, drawPos: p0 } : {},
|
|
10534
|
+
// 割合は `draw` がある段にだけ写す。 単独で書いても描く相手が決まらず何も起きないので、
|
|
10535
|
+
// 記法側 (同じ行に書かせる形) と同じ状態に揃える
|
|
10536
|
+
...p.draw !== void 0 && p.drawRatio !== void 0 ? { drawRatio: p.drawRatio } : {},
|
|
10403
10537
|
// 段の中で動かす分 (#1186)。 記法側の `tweens` / `sets` と同じ形に写す。
|
|
10404
10538
|
// 空の配列を置かないのは、記法側が「無ければ field ごと持たない」 形だから
|
|
10405
10539
|
...p.tween && Object.keys(p.tween).length > 0 ? {
|
|
@@ -10495,6 +10629,11 @@ var diagram_default = {
|
|
|
10495
10629
|
"pie",
|
|
10496
10630
|
"bar",
|
|
10497
10631
|
"line",
|
|
10632
|
+
"gauge",
|
|
10633
|
+
"radial",
|
|
10634
|
+
"stat",
|
|
10635
|
+
"waffle",
|
|
10636
|
+
"stacked",
|
|
10498
10637
|
"funnel",
|
|
10499
10638
|
"tree",
|
|
10500
10639
|
"journey",
|
|
@@ -10502,11 +10641,11 @@ var diagram_default = {
|
|
|
10502
10641
|
"c4",
|
|
10503
10642
|
"mind"
|
|
10504
10643
|
],
|
|
10505
|
-
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)'
|
|
10644
|
+
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)'
|
|
10506
10645
|
},
|
|
10507
10646
|
eyebrow: {
|
|
10508
10647
|
type: "string",
|
|
10509
|
-
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"
|
|
10648
|
+
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"
|
|
10510
10649
|
},
|
|
10511
10650
|
axes: {
|
|
10512
10651
|
type: "object",
|
|
@@ -10575,6 +10714,10 @@ var diagram_default = {
|
|
|
10575
10714
|
type: "string",
|
|
10576
10715
|
description: "actor \u6570\u5024\u8868\u793A (kind: actor \u7528)"
|
|
10577
10716
|
},
|
|
10717
|
+
previous: {
|
|
10718
|
+
type: "string",
|
|
10719
|
+
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"
|
|
10720
|
+
},
|
|
10578
10721
|
rows: {
|
|
10579
10722
|
type: "array",
|
|
10580
10723
|
items: {
|
|
@@ -11052,6 +11195,12 @@ var diagram_default = {
|
|
|
11052
11195
|
enum: ["line", "bar", "pie", "journey", "mind", "tree", "gantt", "funnel"],
|
|
11053
11196
|
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"
|
|
11054
11197
|
},
|
|
11198
|
+
drawRatio: {
|
|
11199
|
+
type: "number",
|
|
11200
|
+
exclusiveMinimum: 0,
|
|
11201
|
+
maximum: 1,
|
|
11202
|
+
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)"
|
|
11203
|
+
},
|
|
11055
11204
|
tween: {
|
|
11056
11205
|
type: "object",
|
|
11057
11206
|
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",
|