@zombie-mermaid/svg-renderer 2.2.6 → 3.1.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 +28 -8
- package/dist/index.cjs +37 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +89 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.js +1436 -893
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/__tests__/render-mermaid-svg.test.ts +64 -0
- package/src/class/renderer.ts +65 -62
- package/src/edge-curves.ts +17 -16
- package/src/er/renderer.ts +50 -49
- package/src/index.ts +222 -5
- package/src/layout-engine/from-elk.ts +80 -5
- package/src/registry.ts +351 -0
- package/src/renderer.ts +190 -189
- package/src/sequence/renderer.ts +66 -65
- package/src/layout.ts +0 -8
package/dist/index.js
CHANGED
|
@@ -1,97 +1,98 @@
|
|
|
1
|
-
import e from "
|
|
2
|
-
import
|
|
3
|
-
import { CHART_ACCENT_FALLBACK as
|
|
1
|
+
import { DEFAULTS as e, applyClickStatement as t, buildStyleBlock as n, detectDiagramType as r, escapeAttr as i, escapeXml as a, extractInitConfig as o, f as s, formatCssColor as c, getReadableTextColor as l, isMonospaceFont as u, measureMultilineText as d, measureTextWidth as f, mixSrgb as p, normalizeBrTags as m, parseCssColor as h, parseStyleProps as g, renderMultilineText as _, renderMultilineTextWithBackground as v, resolveNodeStyle as y, safeHref as b, sanitizeClassName as x, setMonospaceMetrics as S, splitStatements as C, splitStatementsByLine as w, styleOpenTag as T, svgOpenTag as E, themeStyleDeclarations as D, toDirection as O, tryApplyClassAssignment as k, tryApplyClassDef as A, tryApplyStyleStatement as j, withDirectionOverride as ee } from "@zombie-mermaid/core";
|
|
2
|
+
import te from "elkjs/lib/elk.bundled.js";
|
|
3
|
+
import { CHART_ACCENT_FALLBACK as ne, formatClassMember as re, getSeriesColor as ie, matchExpandedBlock as ae, parseClassDiagram as oe, parseErDiagram as se, parseExpandedMeta as ce, parseSequenceDiagram as le, parseXYChart as ue, resolveShapeName as de } from "@zombie-mermaid/mermaid-parser";
|
|
4
|
+
import { decodeXML as fe } from "entities";
|
|
4
5
|
//#region packages/svg-renderer/src/edge-curves.ts
|
|
5
|
-
function
|
|
6
|
-
return `M ${e.x} ${e.y}`;
|
|
6
|
+
function pe(e) {
|
|
7
|
+
return s`M ${e.x} ${e.y}`;
|
|
7
8
|
}
|
|
8
|
-
function
|
|
9
|
-
return
|
|
9
|
+
function me(e) {
|
|
10
|
+
return pe(e[0]) + e.slice(1).map((e) => s` L ${e.x} ${e.y}`).join("");
|
|
10
11
|
}
|
|
11
|
-
function
|
|
12
|
-
if (e.length < 3) return
|
|
13
|
-
let t = e[e.length - 1], n = [
|
|
14
|
-
n.push(` L ${(5 * e[0].x + e[1].x) / 6} ${(5 * e[0].y + e[1].y) / 6}`);
|
|
12
|
+
function he(e) {
|
|
13
|
+
if (e.length < 3) return me(e);
|
|
14
|
+
let t = e[e.length - 1], n = [pe(e[0])], r = (e, t, n) => s` C ${(2 * e.x + t.x) / 3} ${(2 * e.y + t.y) / 3},` + s` ${(e.x + 2 * t.x) / 3} ${(e.y + 2 * t.y) / 3},` + s` ${(e.x + 4 * t.x + n.x) / 6} ${(e.y + 4 * t.y + n.y) / 6}`;
|
|
15
|
+
n.push(s` L ${(5 * e[0].x + e[1].x) / 6}` + s` ${(5 * e[0].y + e[1].y) / 6}`);
|
|
15
16
|
for (let t = 2; t < e.length; t++) n.push(r(e[t - 2], e[t - 1], e[t]));
|
|
16
|
-
return n.push(r(e[e.length - 2], t, t)), n.push(` L ${t.x} ${t.y}`), n.join("");
|
|
17
|
+
return n.push(r(e[e.length - 2], t, t)), n.push(s` L ${t.x} ${t.y}`), n.join("");
|
|
17
18
|
}
|
|
18
|
-
function
|
|
19
|
-
if (e.length < 3) return
|
|
20
|
-
let t = [
|
|
19
|
+
function ge(e) {
|
|
20
|
+
if (e.length < 3) return me(e);
|
|
21
|
+
let t = [pe(e[0])];
|
|
21
22
|
for (let n = 1; n < e.length - 1; n++) {
|
|
22
|
-
let r = e[n - 1], i = e[n], a = e[n + 1], o = Math.hypot(i.x - r.x, i.y - r.y),
|
|
23
|
-
if (o === 0 ||
|
|
24
|
-
t.push(` L ${i.x} ${i.y}`);
|
|
23
|
+
let r = e[n - 1], i = e[n], a = e[n + 1], o = Math.hypot(i.x - r.x, i.y - r.y), c = Math.hypot(a.x - i.x, a.y - i.y);
|
|
24
|
+
if (o === 0 || c === 0) {
|
|
25
|
+
t.push(s` L ${i.x} ${i.y}`);
|
|
25
26
|
continue;
|
|
26
27
|
}
|
|
27
|
-
let
|
|
28
|
-
t.push(` L ${
|
|
28
|
+
let l = Math.min(12, o / 2, c / 2), u = i.x - (i.x - r.x) / o * l, d = i.y - (i.y - r.y) / o * l, f = i.x + (a.x - i.x) / c * l, p = i.y + (a.y - i.y) / c * l;
|
|
29
|
+
t.push(s` L ${u} ${d}`), t.push(s` Q ${i.x} ${i.y}, ${f} ${p}`);
|
|
29
30
|
}
|
|
30
31
|
let n = e[e.length - 1];
|
|
31
|
-
return t.push(` L ${n.x} ${n.y}`), t.join("");
|
|
32
|
+
return t.push(s` L ${n.x} ${n.y}`), t.join("");
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
-
let n = [
|
|
34
|
+
function _e(e, t) {
|
|
35
|
+
let n = [pe(e[0])], r = e.length - 1;
|
|
35
36
|
for (let i = 0; i < r; i++) {
|
|
36
37
|
let a = e[i], o = e[i + 1];
|
|
37
38
|
if (i === r - 1) {
|
|
38
|
-
n.push(` L ${o.x} ${o.y}`);
|
|
39
|
+
n.push(s` L ${o.x} ${o.y}`);
|
|
39
40
|
break;
|
|
40
41
|
}
|
|
41
|
-
if (t === "before") n.push(` L ${a.x} ${o.y} L ${o.x} ${o.y}`);
|
|
42
|
-
else if (t === "after") n.push(` L ${o.x} ${a.y} L ${o.x} ${o.y}`);
|
|
42
|
+
if (t === "before") n.push(s` L ${a.x} ${o.y} L ${o.x} ${o.y}`);
|
|
43
|
+
else if (t === "after") n.push(s` L ${o.x} ${a.y} L ${o.x} ${o.y}`);
|
|
43
44
|
else {
|
|
44
45
|
let e = (a.y + o.y) / 2;
|
|
45
|
-
n.push(` L ${a.x} ${e} L ${o.x} ${e} L ${o.x} ${o.y}`);
|
|
46
|
+
n.push(s` L ${a.x} ${e} L ${o.x} ${e} L ${o.x} ${o.y}`);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
return n.join("");
|
|
49
50
|
}
|
|
50
|
-
function
|
|
51
|
+
function ve(e, t = "linear") {
|
|
51
52
|
if (e.length === 0) return "";
|
|
52
|
-
if (e.length === 1) return
|
|
53
|
+
if (e.length === 1) return pe(e[0]);
|
|
53
54
|
switch (t) {
|
|
54
|
-
case "basis": return
|
|
55
|
-
case "natural": return
|
|
56
|
-
case "step": return
|
|
57
|
-
case "stepBefore": return
|
|
58
|
-
case "stepAfter": return
|
|
59
|
-
default: return
|
|
55
|
+
case "basis": return he(e);
|
|
56
|
+
case "natural": return ge(e);
|
|
57
|
+
case "step": return _e(e, "mid");
|
|
58
|
+
case "stepBefore": return _e(e, "before");
|
|
59
|
+
case "stepAfter": return _e(e, "after");
|
|
60
|
+
default: return me(e);
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
//#endregion
|
|
63
64
|
//#region packages/svg-renderer/src/elk-instance.ts
|
|
64
|
-
var
|
|
65
|
-
function
|
|
65
|
+
var ye = null, be = null, xe = 20;
|
|
66
|
+
function Se(e = xe) {
|
|
66
67
|
if (!Number.isInteger(e) || e < 1) throw Error(`createLayoutCache: maxSize must be a positive integer, got ${e}`);
|
|
67
68
|
return {
|
|
68
69
|
map: /* @__PURE__ */ new Map(),
|
|
69
70
|
maxSize: e
|
|
70
71
|
};
|
|
71
72
|
}
|
|
72
|
-
function
|
|
73
|
-
if (Array.isArray(e)) return `[${e.map(
|
|
73
|
+
function Ce(e) {
|
|
74
|
+
if (Array.isArray(e)) return `[${e.map(Ce).join(",")}]`;
|
|
74
75
|
if (typeof e == "object" && e) {
|
|
75
76
|
let t = e;
|
|
76
|
-
return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${
|
|
77
|
+
return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${Ce(t[e])}`).join(",")}}`;
|
|
77
78
|
}
|
|
78
79
|
return JSON.stringify(e);
|
|
79
80
|
}
|
|
80
|
-
function
|
|
81
|
-
if (
|
|
82
|
-
let
|
|
83
|
-
globalThis.setTimeout = (
|
|
84
|
-
let
|
|
85
|
-
if (
|
|
86
|
-
return
|
|
81
|
+
function we() {
|
|
82
|
+
if (ye && be) return be;
|
|
83
|
+
let e = [], t = globalThis.setTimeout;
|
|
84
|
+
globalThis.setTimeout = (n, r) => r === 0 ? (e.push(n), 0) : t(n, r);
|
|
85
|
+
let n = globalThis, r = "self" in n, i = n.self;
|
|
86
|
+
if (r && n.document === void 0 && delete n.self, ye = new te(), !ye) throw Error("ELKBundled construction unexpectedly produced no instance");
|
|
87
|
+
return r && (n.self = i), globalThis.setTimeout = t, e.forEach((e) => e()), be = ye.worker.worker, be;
|
|
87
88
|
}
|
|
88
|
-
function
|
|
89
|
-
let n = t, r = n ?
|
|
89
|
+
function Te(e, t) {
|
|
90
|
+
let n = t, r = n ? Ce(e) : void 0;
|
|
90
91
|
if (n && r !== void 0) {
|
|
91
92
|
let e = n.map.get(r);
|
|
92
93
|
if (e) return n.map.delete(r), n.map.set(r, e), e;
|
|
93
94
|
}
|
|
94
|
-
let i =
|
|
95
|
+
let i = we(), a, o, s = i.onmessage;
|
|
95
96
|
if (i.onmessage = (e) => {
|
|
96
97
|
e.data.error ? o = e.data.error : a = e.data.data;
|
|
97
98
|
}, i.dispatcher.saveDispatch({ data: {
|
|
@@ -108,54 +109,54 @@ function M(e, t) {
|
|
|
108
109
|
}
|
|
109
110
|
//#endregion
|
|
110
111
|
//#region packages/svg-renderer/src/styles.ts
|
|
111
|
-
function
|
|
112
|
-
return
|
|
112
|
+
function M(e, t, n) {
|
|
113
|
+
return f(e, t, n);
|
|
113
114
|
}
|
|
114
|
-
function
|
|
115
|
+
function Ee(e, t) {
|
|
115
116
|
return e.length * t * .6;
|
|
116
117
|
}
|
|
117
|
-
var
|
|
118
|
+
var De = "'JetBrains Mono'", Oe = `${De}, 'SF Mono', 'Fira Code', ui-monospace, monospace`, N = {
|
|
118
119
|
nodeLabel: 13,
|
|
119
120
|
edgeLabel: 11,
|
|
120
121
|
groupHeader: 12
|
|
121
122
|
};
|
|
122
|
-
function
|
|
123
|
+
function P(e) {
|
|
123
124
|
return {
|
|
124
|
-
nodeLabel: e?.nodeLabel ??
|
|
125
|
-
edgeLabel: e?.edgeLabel ??
|
|
126
|
-
groupHeader: e?.groupHeader ??
|
|
125
|
+
nodeLabel: e?.nodeLabel ?? N.nodeLabel,
|
|
126
|
+
edgeLabel: e?.edgeLabel ?? N.edgeLabel,
|
|
127
|
+
groupHeader: e?.groupHeader ?? N.groupHeader
|
|
127
128
|
};
|
|
128
129
|
}
|
|
129
|
-
var
|
|
130
|
+
var F = {
|
|
130
131
|
nodeLabel: 500,
|
|
131
132
|
edgeLabel: 400,
|
|
132
133
|
groupHeader: 600
|
|
133
|
-
},
|
|
134
|
+
}, ke = 12, I = {
|
|
134
135
|
horizontal: 20,
|
|
135
136
|
vertical: 10,
|
|
136
137
|
diamondExtra: 24
|
|
137
|
-
},
|
|
138
|
+
}, L = {
|
|
138
139
|
outerBox: 1,
|
|
139
140
|
innerBox: .75,
|
|
140
141
|
connector: 1
|
|
141
|
-
},
|
|
142
|
+
}, R = "0.35em", z = {
|
|
142
143
|
width: 8,
|
|
143
144
|
height: 5
|
|
144
|
-
},
|
|
145
|
+
}, Ae = {
|
|
145
146
|
font: "Inter",
|
|
146
147
|
padding: 40,
|
|
147
148
|
nodeSpacing: 28,
|
|
148
149
|
layerSpacing: 48,
|
|
149
150
|
mergeEdges: !0,
|
|
150
151
|
thoroughness: 3,
|
|
151
|
-
fontSizes:
|
|
152
|
-
},
|
|
152
|
+
fontSizes: N
|
|
153
|
+
}, je = {
|
|
153
154
|
flowchart: "DOWN",
|
|
154
155
|
state: "DOWN",
|
|
155
156
|
class: "DOWN",
|
|
156
157
|
er: "RIGHT"
|
|
157
158
|
};
|
|
158
|
-
function
|
|
159
|
+
function Me(e, t) {
|
|
159
160
|
switch (e) {
|
|
160
161
|
case "LR": return "RIGHT";
|
|
161
162
|
case "RL": return "LEFT";
|
|
@@ -165,7 +166,7 @@ function ae(e, t) {
|
|
|
165
166
|
default: return t;
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
|
-
function
|
|
169
|
+
function Ne(e) {
|
|
169
170
|
let t = typeof e == "number" ? {
|
|
170
171
|
top: e,
|
|
171
172
|
left: e,
|
|
@@ -174,17 +175,17 @@ function oe(e) {
|
|
|
174
175
|
} : e;
|
|
175
176
|
return `[top=${t.top},left=${t.left},bottom=${t.bottom},right=${t.right}]`;
|
|
176
177
|
}
|
|
177
|
-
function
|
|
178
|
+
function Pe(e) {
|
|
178
179
|
return {
|
|
179
180
|
"elk.algorithm": "layered",
|
|
180
181
|
"elk.direction": e.direction,
|
|
181
182
|
"elk.spacing.nodeNode": String(e.nodeSpacing),
|
|
182
183
|
"elk.layered.spacing.nodeNodeBetweenLayers": String(e.layerSpacing),
|
|
183
|
-
"elk.padding":
|
|
184
|
+
"elk.padding": Ne(e.padding),
|
|
184
185
|
"elk.edgeRouting": "ORTHOGONAL"
|
|
185
186
|
};
|
|
186
187
|
}
|
|
187
|
-
function
|
|
188
|
+
function B(e, t, n) {
|
|
188
189
|
let r = {
|
|
189
190
|
id: e,
|
|
190
191
|
width: t.width,
|
|
@@ -192,34 +193,34 @@ function H(e, t, n) {
|
|
|
192
193
|
};
|
|
193
194
|
return n !== void 0 && (r.labels = [{ text: n }]), r;
|
|
194
195
|
}
|
|
195
|
-
var
|
|
196
|
+
var Fe = {
|
|
196
197
|
"elk.edgeLabels.inline": "true",
|
|
197
198
|
"elk.edgeLabels.placement": "CENTER"
|
|
198
199
|
};
|
|
199
|
-
function
|
|
200
|
-
let n =
|
|
200
|
+
function Ie(e, t) {
|
|
201
|
+
let n = d(e, t.fontSize, F.edgeLabel), r = {
|
|
201
202
|
text: e,
|
|
202
203
|
width: n.width + 8,
|
|
203
204
|
height: n.height + 6
|
|
204
205
|
};
|
|
205
206
|
return t.layoutOptions && (r.layoutOptions = { ...t.layoutOptions }), r;
|
|
206
207
|
}
|
|
207
|
-
function
|
|
208
|
+
function V(e) {
|
|
208
209
|
let t = {
|
|
209
210
|
id: e.id,
|
|
210
211
|
sources: [e.source],
|
|
211
212
|
targets: [e.target]
|
|
212
213
|
};
|
|
213
|
-
return e.label && (t.labels = [
|
|
214
|
+
return e.label && (t.labels = [Ie(e.label, e.labelStyle)]), t;
|
|
214
215
|
}
|
|
215
216
|
//#endregion
|
|
216
217
|
//#region packages/svg-renderer/src/layout-engine/to-elk.ts
|
|
217
|
-
function
|
|
218
|
-
return
|
|
218
|
+
function Le(e) {
|
|
219
|
+
return Me(e, je.flowchart);
|
|
219
220
|
}
|
|
220
|
-
function
|
|
221
|
+
function Re(e) {
|
|
221
222
|
return {
|
|
222
|
-
...
|
|
223
|
+
...Pe(e),
|
|
223
224
|
"elk.spacing.edgeEdge": "12",
|
|
224
225
|
"elk.layered.spacing.edgeEdgeBetweenLayers": "12",
|
|
225
226
|
"elk.layered.spacing.edgeNodeBetweenLayers": "12",
|
|
@@ -227,46 +228,46 @@ function de(e) {
|
|
|
227
228
|
"elk.contentAlignment": "H_CENTER V_CENTER"
|
|
228
229
|
};
|
|
229
230
|
}
|
|
230
|
-
function
|
|
231
|
+
function ze(e) {
|
|
231
232
|
return {
|
|
232
233
|
fontSize: e.fontSizes.edgeLabel,
|
|
233
|
-
layoutOptions:
|
|
234
|
+
layoutOptions: Fe
|
|
234
235
|
};
|
|
235
236
|
}
|
|
236
|
-
function
|
|
237
|
-
let i =
|
|
237
|
+
function Be(e, t, n, r) {
|
|
238
|
+
let i = d(t, r, F.nodeLabel), a = i.width + I.horizontal * 2, o = i.height + I.vertical * 2;
|
|
238
239
|
if (n === "diamond") {
|
|
239
|
-
let e = Math.max(a,
|
|
240
|
-
a = e,
|
|
240
|
+
let e = Math.max(a, o) + I.diamondExtra;
|
|
241
|
+
a = e, o = e;
|
|
241
242
|
}
|
|
242
243
|
if (n === "circle" || n === "doublecircle") {
|
|
243
|
-
let e = Math.ceil(Math.sqrt(a * a +
|
|
244
|
-
a = n === "doublecircle" ? e + 12 : e,
|
|
244
|
+
let e = Math.ceil(Math.sqrt(a * a + o * o)) + 8;
|
|
245
|
+
a = n === "doublecircle" ? e + 12 : e, o = a;
|
|
245
246
|
}
|
|
246
|
-
return n === "hexagon" && (a +=
|
|
247
|
+
return n === "hexagon" && (a += I.horizontal), (n === "trapezoid" || n === "trapezoid-alt" || n === "parallelogram" || n === "parallelogram-alt") && (a += I.horizontal), n === "asymmetric" && (a += 12), n === "cylinder" && (o += 14), n === "state-start" || n === "state-end" ? {
|
|
247
248
|
width: 28,
|
|
248
249
|
height: 28
|
|
249
|
-
} : (a = Math.max(a, 60),
|
|
250
|
+
} : (a = Math.max(a, 60), o = Math.max(o, 36), {
|
|
250
251
|
width: a,
|
|
251
|
-
height:
|
|
252
|
+
height: o
|
|
252
253
|
});
|
|
253
254
|
}
|
|
254
|
-
var
|
|
255
|
-
function
|
|
256
|
-
for (let t of e) if (t.direction !== void 0 ||
|
|
255
|
+
var Ve = " root";
|
|
256
|
+
function He(e) {
|
|
257
|
+
for (let t of e) if (t.direction !== void 0 || He(t.children)) return !0;
|
|
257
258
|
return !1;
|
|
258
259
|
}
|
|
259
|
-
function
|
|
260
|
+
function Ue(e, t) {
|
|
260
261
|
for (let n of e.nodeIds) t.add(n);
|
|
261
|
-
for (let n of e.children)
|
|
262
|
+
for (let n of e.children) Ue(n, t);
|
|
262
263
|
}
|
|
263
|
-
function
|
|
264
|
+
function We(e, t) {
|
|
264
265
|
let n = /* @__PURE__ */ new Set();
|
|
265
|
-
if (
|
|
266
|
+
if (Ue(e, n), n.size === 0) return !0;
|
|
266
267
|
let r = (t) => n.has(t) || t === e.id;
|
|
267
268
|
return !t.edges.some((e) => r(e.source) !== r(e.target));
|
|
268
269
|
}
|
|
269
|
-
function
|
|
270
|
+
function Ge(e) {
|
|
270
271
|
let t = /* @__PURE__ */ new Map();
|
|
271
272
|
function n(e, r) {
|
|
272
273
|
let i = [...r, e.id];
|
|
@@ -276,15 +277,15 @@ function ve(e) {
|
|
|
276
277
|
for (let t of e) n(t, []);
|
|
277
278
|
return t;
|
|
278
279
|
}
|
|
279
|
-
function
|
|
280
|
+
function Ke(e, t) {
|
|
280
281
|
let n = 0;
|
|
281
282
|
for (; n < e.length && n < t.length && e[n] === t[n];) n++;
|
|
282
283
|
return n;
|
|
283
284
|
}
|
|
284
|
-
function
|
|
285
|
+
function qe(e, t) {
|
|
285
286
|
let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
|
|
286
|
-
for (let t of e.subgraphs) r.add(t.id),
|
|
287
|
-
let i =
|
|
287
|
+
for (let t of e.subgraphs) r.add(t.id), Ye(t, n, r);
|
|
288
|
+
let i = Xe(e.subgraphs), a = Ge(e.subgraphs), o = (e) => e ? a.get(e) ?? [] : [], s = /* @__PURE__ */ new Map();
|
|
288
289
|
s.set(null, []);
|
|
289
290
|
let c = [];
|
|
290
291
|
for (let t = 0; t < e.edges.length; t++) {
|
|
@@ -305,14 +306,14 @@ function be(e, t) {
|
|
|
305
306
|
tgtChain: o(a)
|
|
306
307
|
});
|
|
307
308
|
}
|
|
308
|
-
let l =
|
|
309
|
-
...
|
|
310
|
-
direction:
|
|
309
|
+
let l = He(e.subgraphs), u = [], d = [], f = {
|
|
310
|
+
...Re({
|
|
311
|
+
direction: Le(e.direction),
|
|
311
312
|
nodeSpacing: t.nodeSpacing,
|
|
312
313
|
layerSpacing: t.layerSpacing,
|
|
313
314
|
padding: t.padding
|
|
314
315
|
}),
|
|
315
|
-
"elk.layered.thoroughness": String(
|
|
316
|
+
"elk.layered.thoroughness": String(Ae.thoroughness),
|
|
316
317
|
"elk.layered.highDegreeNodes.treatment": "true",
|
|
317
318
|
"elk.layered.highDegreeNodes.threshold": "8",
|
|
318
319
|
"elk.layered.compaction.postCompaction.strategy": "LEFT_RIGHT_CONSTRAINT_LOCKING",
|
|
@@ -329,7 +330,7 @@ function be(e, t) {
|
|
|
329
330
|
m.set(e, n), n.push(t);
|
|
330
331
|
}
|
|
331
332
|
if (l) for (let { index: e, edge: n, srcChain: r, tgtChain: i } of c) {
|
|
332
|
-
let a =
|
|
333
|
+
let a = Ke(r, i), o = n.source;
|
|
333
334
|
if (r.length > a) {
|
|
334
335
|
for (let t = r.length - 1; t >= a; t--) {
|
|
335
336
|
let i = r[t], a = `${i}_out_${e}`;
|
|
@@ -357,33 +358,33 @@ function be(e, t) {
|
|
|
357
358
|
}
|
|
358
359
|
s = `${i[a]}_in_${e}`;
|
|
359
360
|
}
|
|
360
|
-
g(a > 0 ? r[a - 1] :
|
|
361
|
+
g(a > 0 ? r[a - 1] : Ve, V({
|
|
361
362
|
id: `e${e}`,
|
|
362
363
|
source: o,
|
|
363
364
|
target: s,
|
|
364
365
|
label: n.label,
|
|
365
|
-
labelStyle:
|
|
366
|
+
labelStyle: ze(t)
|
|
366
367
|
}));
|
|
367
368
|
}
|
|
368
369
|
for (let [i, a] of e.nodes) if (!n.has(i) && !r.has(i)) {
|
|
369
|
-
let e =
|
|
370
|
-
u.push(
|
|
370
|
+
let e = Be(i, a.label, a.shape, t.fontSizes.nodeLabel);
|
|
371
|
+
u.push(B(i, e, a.label));
|
|
371
372
|
}
|
|
372
|
-
for (let n of [...e.subgraphs].reverse()) u.push(
|
|
373
|
-
for (let { index: e, edge: n } of s.get(null)) n.source !== n.target && d.push(
|
|
373
|
+
for (let n of [...e.subgraphs].reverse()) u.push(Je(n, e, t, s, p, m, e.direction));
|
|
374
|
+
for (let { index: e, edge: n } of s.get(null)) n.source !== n.target && d.push(V({
|
|
374
375
|
id: `e${e}`,
|
|
375
376
|
source: n.source,
|
|
376
377
|
target: n.target,
|
|
377
378
|
label: n.label,
|
|
378
|
-
labelStyle:
|
|
379
|
+
labelStyle: ze(t)
|
|
379
380
|
}));
|
|
380
|
-
if (l) for (let e of m.get(
|
|
381
|
-
else for (let { index: e, edge: n } of c) d.push(
|
|
381
|
+
if (l) for (let e of m.get(Ve) ?? []) d.push(e);
|
|
382
|
+
else for (let { index: e, edge: n } of c) d.push(V({
|
|
382
383
|
id: `e${e}`,
|
|
383
384
|
source: n.source,
|
|
384
385
|
target: n.target,
|
|
385
386
|
label: n.label,
|
|
386
|
-
labelStyle:
|
|
387
|
+
labelStyle: ze(t)
|
|
387
388
|
}));
|
|
388
389
|
return {
|
|
389
390
|
id: "root",
|
|
@@ -392,9 +393,9 @@ function be(e, t) {
|
|
|
392
393
|
edges: d
|
|
393
394
|
};
|
|
394
395
|
}
|
|
395
|
-
function
|
|
396
|
-
let s = e.direction !== void 0 &&
|
|
397
|
-
direction:
|
|
396
|
+
function Je(e, t, n, r, i, a, o) {
|
|
397
|
+
let s = e.direction !== void 0 && We(e, t) ? e.direction : o, c = Re({
|
|
398
|
+
direction: Le(s),
|
|
398
399
|
nodeSpacing: n.nodeSpacing,
|
|
399
400
|
layerSpacing: n.layerSpacing,
|
|
400
401
|
padding: {
|
|
@@ -409,18 +410,18 @@ function xe(e, t, n, r, i, a, o) {
|
|
|
409
410
|
for (let r of e.nodeIds) {
|
|
410
411
|
let e = t.nodes.get(r);
|
|
411
412
|
if (e) {
|
|
412
|
-
let t =
|
|
413
|
-
d.push(
|
|
413
|
+
let t = Be(r, e.label, e.shape, n.fontSizes.nodeLabel);
|
|
414
|
+
d.push(B(r, t, e.label));
|
|
414
415
|
}
|
|
415
416
|
}
|
|
416
|
-
for (let o of [...e.children].reverse()) d.push(
|
|
417
|
+
for (let o of [...e.children].reverse()) d.push(Je(o, t, n, r, i, a, s));
|
|
417
418
|
let f = [], p = r.get(e.id) ?? [];
|
|
418
|
-
for (let { index: e, edge: t } of p) t.source !== t.target && f.push(
|
|
419
|
+
for (let { index: e, edge: t } of p) t.source !== t.target && f.push(V({
|
|
419
420
|
id: `e${e}`,
|
|
420
421
|
source: t.source,
|
|
421
422
|
target: t.target,
|
|
422
423
|
label: t.label,
|
|
423
|
-
labelStyle:
|
|
424
|
+
labelStyle: ze(n)
|
|
424
425
|
}));
|
|
425
426
|
for (let t of a.get(e.id) ?? []) f.push(t);
|
|
426
427
|
return {
|
|
@@ -432,11 +433,11 @@ function xe(e, t, n, r, i, a, o) {
|
|
|
432
433
|
edges: f
|
|
433
434
|
};
|
|
434
435
|
}
|
|
435
|
-
function
|
|
436
|
+
function Ye(e, t, n) {
|
|
436
437
|
for (let n of e.nodeIds) t.add(n);
|
|
437
|
-
for (let r of e.children) n.add(r.id),
|
|
438
|
+
for (let r of e.children) n.add(r.id), Ye(r, t, n);
|
|
438
439
|
}
|
|
439
|
-
function
|
|
440
|
+
function Xe(e) {
|
|
440
441
|
let t = /* @__PURE__ */ new Map();
|
|
441
442
|
function n(e) {
|
|
442
443
|
for (let n of e.nodeIds) t.set(n, e.id);
|
|
@@ -447,19 +448,19 @@ function Ce(e) {
|
|
|
447
448
|
}
|
|
448
449
|
//#endregion
|
|
449
450
|
//#region packages/svg-renderer/src/shape-clipping.ts
|
|
450
|
-
function
|
|
451
|
+
function Ze(e, t, n) {
|
|
451
452
|
if (e.length < 2 || t.shape === "rectangle" || t.shape === "rounded" || t.shape === "stadium") return e;
|
|
452
453
|
let r = [...e];
|
|
453
454
|
if (t.shape === "diamond") {
|
|
454
|
-
if (n) r[0] =
|
|
455
|
+
if (n) r[0] = Qe(e[0], e[1], t);
|
|
455
456
|
else {
|
|
456
457
|
let n = e.length - 1;
|
|
457
|
-
r[n] =
|
|
458
|
+
r[n] = Qe(e[n], e[n - 1], t);
|
|
458
459
|
}
|
|
459
460
|
}
|
|
460
461
|
return r;
|
|
461
462
|
}
|
|
462
|
-
function
|
|
463
|
+
function Qe(e, t, n) {
|
|
463
464
|
let r = n.x + n.width / 2, i = n.y + n.height / 2, a = {
|
|
464
465
|
x: r,
|
|
465
466
|
y: n.y
|
|
@@ -475,14 +476,14 @@ function Te(e, t, n) {
|
|
|
475
476
|
}, l = e.x - t.x, u = e.y - t.y;
|
|
476
477
|
if (Math.abs(l) < Math.abs(u)) {
|
|
477
478
|
let t = e.x;
|
|
478
|
-
return u > 0 ? t <= r ?
|
|
479
|
+
return u > 0 ? t <= r ? et(t, c, a) ?? a : et(t, a, o) ?? a : t <= r ? et(t, s, c) ?? s : et(t, o, s) ?? s;
|
|
479
480
|
}
|
|
480
481
|
{
|
|
481
482
|
let t = e.y;
|
|
482
|
-
return l > 0 ? t <= i ?
|
|
483
|
+
return l > 0 ? t <= i ? $e(t, a, c) ?? c : $e(t, c, s) ?? c : t <= i ? $e(t, a, o) ?? o : $e(t, o, s) ?? o;
|
|
483
484
|
}
|
|
484
485
|
}
|
|
485
|
-
function
|
|
486
|
+
function $e(e, t, n) {
|
|
486
487
|
let r = n.y - t.y;
|
|
487
488
|
if (Math.abs(r) < .001) return null;
|
|
488
489
|
let i = (e - t.y) / r;
|
|
@@ -491,7 +492,7 @@ function Ee(e, t, n) {
|
|
|
491
492
|
y: e
|
|
492
493
|
};
|
|
493
494
|
}
|
|
494
|
-
function
|
|
495
|
+
function et(e, t, n) {
|
|
495
496
|
let r = n.x - t.x;
|
|
496
497
|
if (Math.abs(r) < .001) return null;
|
|
497
498
|
let i = (e - t.x) / r;
|
|
@@ -502,11 +503,11 @@ function De(e, t, n) {
|
|
|
502
503
|
}
|
|
503
504
|
//#endregion
|
|
504
505
|
//#region packages/svg-renderer/src/layout-engine/layer-alignment.ts
|
|
505
|
-
function
|
|
506
|
+
function tt(e, t, n) {
|
|
506
507
|
if (e.length === 0) return;
|
|
507
508
|
let r = n === "LR" || n === "RL", i = /* @__PURE__ */ new Set();
|
|
508
509
|
for (let e of t) i.add(`${e.source}:${e.target}`), i.add(`${e.target}:${e.source}`);
|
|
509
|
-
let a =
|
|
510
|
+
let a = Ae.layerSpacing * .6, o = [...e].sort((e, t) => r ? e.x - t.x : e.y - t.y), s = [], c = [o[0]];
|
|
510
511
|
for (let e = 1; e < o.length; e++) {
|
|
511
512
|
let t = (r ? o[e].x : o[e].y) - (r ? o[e - 1].x : o[e - 1].y), n = c.some((t) => i.has(`${t.id}:${o[e].id}`));
|
|
512
513
|
t <= a && !n ? c.push(o[e]) : (s.push(c), c = [o[e]]);
|
|
@@ -546,28 +547,28 @@ function Oe(e, t, n) {
|
|
|
546
547
|
}
|
|
547
548
|
//#endregion
|
|
548
549
|
//#region packages/svg-renderer/src/layout-engine/edge-bundling.ts
|
|
549
|
-
var
|
|
550
|
-
function
|
|
550
|
+
var nt = .5;
|
|
551
|
+
function rt(e, t, n) {
|
|
551
552
|
for (let r = 0; r < e.length - 1; r++) {
|
|
552
553
|
let i = e[r], a = e[r + 1], o = Math.min(i.x, a.x), s = Math.max(i.x, a.x), c = Math.min(i.y, a.y), l = Math.max(i.y, a.y);
|
|
553
554
|
for (let e of t) {
|
|
554
555
|
if (n.has(e.id)) continue;
|
|
555
|
-
let t = e.x +
|
|
556
|
+
let t = e.x + nt, r = e.x + e.width - nt, i = e.y + nt, a = e.y + e.height - nt;
|
|
556
557
|
if (!(t >= r || i >= a) && o < r && s > t && c < a && l > i) return !1;
|
|
557
558
|
}
|
|
558
559
|
}
|
|
559
560
|
return !0;
|
|
560
561
|
}
|
|
561
|
-
function
|
|
562
|
+
function it(e, t, n) {
|
|
562
563
|
let r = [];
|
|
563
|
-
for (let i of n) e >= i.x && e <= i.x + i.width && t >= i.y && t <= i.y + i.height && (r.push(i), r.push(...
|
|
564
|
+
for (let i of n) e >= i.x && e <= i.x + i.width && t >= i.y && t <= i.y + i.height && (r.push(i), r.push(...it(e, t, i.children)));
|
|
564
565
|
return r;
|
|
565
566
|
}
|
|
566
|
-
function
|
|
567
|
-
let a = i === "LR", o = i === "RL", s = i === "BT", c = a || o, l = new Set(
|
|
567
|
+
function at(e, t, n, r, i) {
|
|
568
|
+
let a = i === "LR", o = i === "RL", s = i === "BT", c = a || o, l = new Set(it(t, n, r).map((e) => e.id)), u = it(c ? e : t, c ? n : e, r).find((e) => !l.has(e.id));
|
|
568
569
|
return u ? a ? u.x - 12 : o ? u.x + u.width + 12 : s ? u.y + u.height + 12 : u.y - 12 : e;
|
|
569
570
|
}
|
|
570
|
-
function
|
|
571
|
+
function ot(e, t, n, r) {
|
|
571
572
|
let i = new Map(t.map((e) => [e.id, e])), a = /* @__PURE__ */ new Set(), o = r === "LR", s = r === "RL", c = r === "BT", l = o || s, u = /* @__PURE__ */ new Map();
|
|
572
573
|
for (let t of e) {
|
|
573
574
|
if (t.source === t.target) continue;
|
|
@@ -592,7 +593,7 @@ function Ne(e, t, n, r) {
|
|
|
592
593
|
let m = f.x + f.width / 2, h = f.y + f.height / 2;
|
|
593
594
|
if (l) {
|
|
594
595
|
let i = o ? f.x + f.width : f.x, s = h, c = i + ((o ? Math.min(...p.map((e) => e.node.x)) : Math.max(...p.map((e) => e.node.x + e.node.width))) - i) / 2;
|
|
595
|
-
c =
|
|
596
|
+
c = at(c, m, h, n, r);
|
|
596
597
|
let l = [];
|
|
597
598
|
for (let { edge: n, node: r } of p) {
|
|
598
599
|
let a = o ? r.x : r.x + r.width, u = r.y + r.height / 2, d = [
|
|
@@ -613,7 +614,7 @@ function Ne(e, t, n, r) {
|
|
|
613
614
|
y: u
|
|
614
615
|
}
|
|
615
616
|
];
|
|
616
|
-
|
|
617
|
+
rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
|
|
617
618
|
edge: n,
|
|
618
619
|
points: d
|
|
619
620
|
});
|
|
@@ -622,7 +623,7 @@ function Ne(e, t, n, r) {
|
|
|
622
623
|
for (let { edge: e, points: t } of l) e.points = t, a.add(e);
|
|
623
624
|
} else {
|
|
624
625
|
let i = m, o = c ? f.y : f.y + f.height, s = o + ((c ? Math.max(...p.map((e) => e.node.y + e.node.height)) : Math.min(...p.map((e) => e.node.y))) - o) / 2;
|
|
625
|
-
s =
|
|
626
|
+
s = at(s, m, h, n, r);
|
|
626
627
|
let l = [];
|
|
627
628
|
for (let { edge: n, node: r } of p) {
|
|
628
629
|
let a = r.x + r.width / 2, u = c ? r.y + r.height : r.y, d = [
|
|
@@ -643,7 +644,7 @@ function Ne(e, t, n, r) {
|
|
|
643
644
|
y: u
|
|
644
645
|
}
|
|
645
646
|
];
|
|
646
|
-
|
|
647
|
+
rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
|
|
647
648
|
edge: n,
|
|
648
649
|
points: d
|
|
649
650
|
});
|
|
@@ -676,7 +677,7 @@ function Ne(e, t, n, r) {
|
|
|
676
677
|
let p = d.x + d.width / 2, m = d.y + d.height / 2;
|
|
677
678
|
if (l) {
|
|
678
679
|
let i = o ? d.x : d.x + d.width, a = m, s = o ? Math.max(...f.map((e) => e.node.x + e.node.width)) : Math.min(...f.map((e) => e.node.x)), c = s + (i - s) / 2;
|
|
679
|
-
c =
|
|
680
|
+
c = at(c, p, m, n, r);
|
|
680
681
|
let l = [];
|
|
681
682
|
for (let { edge: n, node: r } of f) {
|
|
682
683
|
let s = o ? r.x + r.width : r.x, u = r.y + r.height / 2, d = [
|
|
@@ -697,7 +698,7 @@ function Ne(e, t, n, r) {
|
|
|
697
698
|
y: a
|
|
698
699
|
}
|
|
699
700
|
];
|
|
700
|
-
|
|
701
|
+
rt(d, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
|
|
701
702
|
edge: n,
|
|
702
703
|
points: d
|
|
703
704
|
});
|
|
@@ -706,7 +707,7 @@ function Ne(e, t, n, r) {
|
|
|
706
707
|
for (let { edge: e, points: t } of l) e.points = t;
|
|
707
708
|
} else {
|
|
708
709
|
let i = p, a = c ? d.y + d.height : d.y, o = c ? Math.min(...f.map((e) => e.node.y)) : Math.max(...f.map((e) => e.node.y + e.node.height)), s = o + (a - o) / 2;
|
|
709
|
-
s =
|
|
710
|
+
s = at(s, p, m, n, r);
|
|
710
711
|
let l = [];
|
|
711
712
|
for (let { edge: n, node: r } of f) {
|
|
712
713
|
let o = r.x + r.width / 2, u = [
|
|
@@ -727,7 +728,7 @@ function Ne(e, t, n, r) {
|
|
|
727
728
|
y: a
|
|
728
729
|
}
|
|
729
730
|
];
|
|
730
|
-
|
|
731
|
+
rt(u, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
|
|
731
732
|
edge: n,
|
|
732
733
|
points: u
|
|
733
734
|
});
|
|
@@ -739,7 +740,7 @@ function Ne(e, t, n, r) {
|
|
|
739
740
|
}
|
|
740
741
|
//#endregion
|
|
741
742
|
//#region packages/svg-renderer/src/layout-engine/elk-adapter-utils.ts
|
|
742
|
-
function
|
|
743
|
+
function st(e, t = 0, n = 0) {
|
|
743
744
|
let r = [];
|
|
744
745
|
if (!e.sections || e.sections.length === 0) return r;
|
|
745
746
|
let i = e.sections[0];
|
|
@@ -755,7 +756,7 @@ function Pe(e, t = 0, n = 0) {
|
|
|
755
756
|
y: i.endPoint.y + n
|
|
756
757
|
}), r;
|
|
757
758
|
}
|
|
758
|
-
function
|
|
759
|
+
function ct(e, t = 0, n = 0) {
|
|
759
760
|
if (!e.labels || e.labels.length === 0) return;
|
|
760
761
|
let r = e.labels[0];
|
|
761
762
|
if (r.x != null && r.y != null) return {
|
|
@@ -765,11 +766,11 @@ function Fe(e, t = 0, n = 0) {
|
|
|
765
766
|
}
|
|
766
767
|
//#endregion
|
|
767
768
|
//#region packages/svg-renderer/src/layout-engine/from-elk.ts
|
|
768
|
-
var
|
|
769
|
-
function
|
|
770
|
-
let n = e.x + e.width, r = e.y + e.height / 2, i = Math.min(
|
|
771
|
-
for (let e = 0; e <=
|
|
772
|
-
let t = Math.PI * e /
|
|
769
|
+
var lt = 16, ut = 28, dt = 18, ft = 28, pt = 10;
|
|
770
|
+
function mt(e, t) {
|
|
771
|
+
let n = e.x + e.width, r = e.y + e.height / 2, i = Math.min(ft, e.height * .6) / 2, a = ut + t * dt, o = [];
|
|
772
|
+
for (let e = 0; e <= lt; e++) {
|
|
773
|
+
let t = Math.PI * e / lt;
|
|
773
774
|
o.push({
|
|
774
775
|
x: n + a * Math.sin(t),
|
|
775
776
|
y: r - i * Math.cos(t)
|
|
@@ -778,12 +779,12 @@ function Ve(e, t) {
|
|
|
778
779
|
return {
|
|
779
780
|
points: o,
|
|
780
781
|
labelPosition: {
|
|
781
|
-
x: n + a +
|
|
782
|
+
x: n + a + pt,
|
|
782
783
|
y: r
|
|
783
784
|
}
|
|
784
785
|
};
|
|
785
786
|
}
|
|
786
|
-
function
|
|
787
|
+
function ht(e, t, n) {
|
|
787
788
|
let r = /* @__PURE__ */ new Map();
|
|
788
789
|
for (let i = 0; i < e.edges.length; i++) {
|
|
789
790
|
let a = e.edges[i];
|
|
@@ -792,7 +793,7 @@ function He(e, t, n) {
|
|
|
792
793
|
if (!o) continue;
|
|
793
794
|
let s = r.get(o.id) ?? 0;
|
|
794
795
|
r.set(o.id, s + 1);
|
|
795
|
-
let { points: c, labelPosition: l } =
|
|
796
|
+
let { points: c, labelPosition: l } = mt(o, s);
|
|
796
797
|
n.push({
|
|
797
798
|
source: a.source,
|
|
798
799
|
target: a.target,
|
|
@@ -802,38 +803,38 @@ function He(e, t, n) {
|
|
|
802
803
|
hasArrowEnd: a.hasArrowEnd,
|
|
803
804
|
points: c,
|
|
804
805
|
labelPosition: a.label ? l : void 0,
|
|
805
|
-
inlineStyle:
|
|
806
|
+
inlineStyle: Dt(i, e),
|
|
806
807
|
id: a.id,
|
|
807
808
|
animate: a.animate
|
|
808
809
|
});
|
|
809
810
|
}
|
|
810
811
|
}
|
|
811
|
-
function
|
|
812
|
+
function gt(e) {
|
|
812
813
|
let t = [];
|
|
813
814
|
for (let n of e) t.push({
|
|
814
815
|
x: n.x,
|
|
815
816
|
y: n.y,
|
|
816
817
|
right: n.x + n.width,
|
|
817
818
|
bottom: n.y + n.height
|
|
818
|
-
}), t.push(...
|
|
819
|
+
}), t.push(...gt(n.children));
|
|
819
820
|
return t;
|
|
820
821
|
}
|
|
821
|
-
function
|
|
822
|
+
function _t(e, t, n = !1) {
|
|
822
823
|
let r = [], i = [], a = [], o = /* @__PURE__ */ new Set();
|
|
823
|
-
for (let e of t.subgraphs)
|
|
824
|
-
|
|
825
|
-
let s =
|
|
826
|
-
|
|
824
|
+
for (let e of t.subgraphs) Et(e, o);
|
|
825
|
+
vt(e, t, o, r, a, 0, 0);
|
|
826
|
+
let s = gt(a);
|
|
827
|
+
xt(e, t, i, 0, 0, s.length > 0 ? {
|
|
827
828
|
leftX: Math.min(...s.map((e) => e.x)) - 20,
|
|
828
829
|
rightX: Math.max(...s.map((e) => e.right)) + 20
|
|
829
|
-
} : void 0),
|
|
830
|
+
} : void 0), tt(r, i, t.direction);
|
|
830
831
|
let c = new Map(r.map((e) => [e.id, e]));
|
|
831
|
-
|
|
832
|
+
ht(t, c, i), n && ot(i, r, a, t.direction);
|
|
832
833
|
for (let e of i) {
|
|
833
834
|
let t = c.get(e.source), n = c.get(e.target);
|
|
834
|
-
t && (e.points =
|
|
835
|
+
t && (e.points = Ze(e.points, t, !0)), n && (e.points = Ze(e.points, n, !1));
|
|
835
836
|
}
|
|
836
|
-
let l = e.width ?? 800, u = e.height ?? 600, d =
|
|
837
|
+
let l = e.width ?? 800, u = e.height ?? 600, d = z.width, f = Ae.padding;
|
|
837
838
|
for (let e of i) {
|
|
838
839
|
for (let t of e.points) l = Math.max(l, t.x + d + f), u = Math.max(u, t.y + d + f);
|
|
839
840
|
e.labelPosition && (l = Math.max(l, e.labelPosition.x + 60 + f), u = Math.max(u, e.labelPosition.y + 20 + f));
|
|
@@ -846,13 +847,13 @@ function We(e, t, n = !1) {
|
|
|
846
847
|
groups: a
|
|
847
848
|
};
|
|
848
849
|
}
|
|
849
|
-
function
|
|
850
|
+
function vt(e, t, n, r, i, a, o) {
|
|
850
851
|
if (e.children) for (let s of e.children) {
|
|
851
852
|
let e = (s.x ?? 0) + a, c = (s.y ?? 0) + o, l = s.width ?? 0, u = s.height ?? 0;
|
|
852
853
|
if (n.has(s.id)) {
|
|
853
854
|
let a = [];
|
|
854
|
-
|
|
855
|
-
let o =
|
|
855
|
+
vt(s, t, n, r, a, e, c);
|
|
856
|
+
let o = Tt(t.subgraphs, s.id);
|
|
856
857
|
i.push({
|
|
857
858
|
id: s.id,
|
|
858
859
|
label: o?.label ?? "",
|
|
@@ -865,7 +866,7 @@ function Ge(e, t, n, r, i, a, o) {
|
|
|
865
866
|
} else {
|
|
866
867
|
let a = t.nodes.get(s.id);
|
|
867
868
|
if (a) {
|
|
868
|
-
let n =
|
|
869
|
+
let n = y(s.id, t), i = t.classAssignments.get(s.id);
|
|
869
870
|
r.push({
|
|
870
871
|
id: s.id,
|
|
871
872
|
label: a.label,
|
|
@@ -879,11 +880,11 @@ function Ge(e, t, n, r, i, a, o) {
|
|
|
879
880
|
interaction: t.interactions.get(s.id)
|
|
880
881
|
});
|
|
881
882
|
}
|
|
882
|
-
s.children && s.children.length > 0 &&
|
|
883
|
+
s.children && s.children.length > 0 && vt(s, t, n, r, i, e, c);
|
|
883
884
|
}
|
|
884
885
|
}
|
|
885
886
|
}
|
|
886
|
-
function
|
|
887
|
+
function yt(e) {
|
|
887
888
|
let t = /^e(\d+)$/.exec(e);
|
|
888
889
|
if (t) return {
|
|
889
890
|
edgeIndex: parseInt(t[1], 10),
|
|
@@ -896,7 +897,7 @@ function Ke(e) {
|
|
|
896
897
|
level: parseInt(n[3], 10)
|
|
897
898
|
};
|
|
898
899
|
}
|
|
899
|
-
function
|
|
900
|
+
function bt(e) {
|
|
900
901
|
if (e.length === 0) return {
|
|
901
902
|
x: 0,
|
|
902
903
|
y: 0
|
|
@@ -921,24 +922,26 @@ function qe(e) {
|
|
|
921
922
|
}
|
|
922
923
|
return e[e.length - 1];
|
|
923
924
|
}
|
|
924
|
-
function
|
|
925
|
+
function xt(e, t, n, r, i, a) {
|
|
925
926
|
let o = /* @__PURE__ */ new Map();
|
|
926
|
-
|
|
927
|
-
let s =
|
|
928
|
-
|
|
927
|
+
St(e, o, 0, 0);
|
|
928
|
+
let s = /* @__PURE__ */ new Map();
|
|
929
|
+
wt(e, s, 0, 0, o);
|
|
930
|
+
let c = 0;
|
|
931
|
+
for (let [e, r] of s) {
|
|
929
932
|
let i = t.edges[e];
|
|
930
933
|
if (!i) continue;
|
|
931
|
-
let o = [],
|
|
934
|
+
let o = [], s = (e) => {
|
|
932
935
|
!e || e.points.length === 0 || (o.length > 0 ? o.push(...e.points.slice(1)) : o.push(...e.points));
|
|
933
936
|
}, l = [...r.sourceHops.keys()].sort((e, t) => t - e);
|
|
934
|
-
for (let e of l)
|
|
935
|
-
|
|
937
|
+
for (let e of l) s(r.sourceHops.get(e));
|
|
938
|
+
s(r.bridge);
|
|
936
939
|
let u = [...r.targetHops.keys()].sort((e, t) => e - t);
|
|
937
|
-
for (let e of u)
|
|
940
|
+
for (let e of u) s(r.targetHops.get(e));
|
|
938
941
|
let d;
|
|
939
|
-
i.label && o.length >= 2 && (d = r.bridge?.labelPosition ??
|
|
940
|
-
let f =
|
|
941
|
-
f !== o &&
|
|
942
|
+
i.label && o.length >= 2 && (d = r.bridge?.labelPosition ?? bt(o));
|
|
943
|
+
let f = Ct(o, a, c);
|
|
944
|
+
f !== o && c++, i.label && f !== o && f.length >= 2 && (d = bt(f)), n.push({
|
|
942
945
|
source: i.source,
|
|
943
946
|
target: i.target,
|
|
944
947
|
label: i.label,
|
|
@@ -947,13 +950,24 @@ function Je(e, t, n, r, i, a) {
|
|
|
947
950
|
hasArrowEnd: i.hasArrowEnd,
|
|
948
951
|
points: f,
|
|
949
952
|
labelPosition: d,
|
|
950
|
-
inlineStyle:
|
|
953
|
+
inlineStyle: Dt(e, t),
|
|
951
954
|
id: i.id,
|
|
952
955
|
animate: i.animate
|
|
953
956
|
});
|
|
954
957
|
}
|
|
955
958
|
}
|
|
956
|
-
function
|
|
959
|
+
function St(e, t, n, r) {
|
|
960
|
+
t.set(e.id, {
|
|
961
|
+
x: n,
|
|
962
|
+
y: r
|
|
963
|
+
});
|
|
964
|
+
for (let i of e.children ?? []) {
|
|
965
|
+
/* v8 ignore next */
|
|
966
|
+
let e = i.x ?? 0, a = i.y ?? 0;
|
|
967
|
+
St(i, t, n + e, r + a);
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
function Ct(e, t, n = 0) {
|
|
957
971
|
if (e.length < 2) return e;
|
|
958
972
|
let r = !1;
|
|
959
973
|
for (let t = 1; t < e.length; t++) {
|
|
@@ -992,36 +1006,36 @@ function Ye(e, t, n = 0) {
|
|
|
992
1006
|
}
|
|
993
1007
|
return i;
|
|
994
1008
|
}
|
|
995
|
-
function
|
|
996
|
-
if (e.edges) for (let
|
|
997
|
-
let e =
|
|
1009
|
+
function wt(e, t, n, r, i) {
|
|
1010
|
+
if (e.edges) for (let a of e.edges) {
|
|
1011
|
+
let e = yt(a.id);
|
|
998
1012
|
if (!e) continue;
|
|
999
|
-
let { edgeIndex:
|
|
1013
|
+
let { edgeIndex: o } = e, s = a.container, c = s ? i.get(s) : void 0, l = c?.x ?? n, u = c?.y ?? r, d = st(a, l, u), f = ct(a, l, u), p = t.get(o) ?? {
|
|
1000
1014
|
sourceHops: /* @__PURE__ */ new Map(),
|
|
1001
1015
|
targetHops: /* @__PURE__ */ new Map()
|
|
1002
1016
|
};
|
|
1003
|
-
t.set(
|
|
1004
|
-
let
|
|
1005
|
-
edgeIndex:
|
|
1006
|
-
points:
|
|
1007
|
-
labelPosition:
|
|
1017
|
+
t.set(o, p);
|
|
1018
|
+
let m = {
|
|
1019
|
+
edgeIndex: o,
|
|
1020
|
+
points: d,
|
|
1021
|
+
labelPosition: f
|
|
1008
1022
|
};
|
|
1009
|
-
e.role === "bridge" ?
|
|
1023
|
+
e.role === "bridge" ? p.bridge = m : e.role === "source" ? p.sourceHops.set(e.level, m) : p.targetHops.set(e.level, m);
|
|
1010
1024
|
}
|
|
1011
|
-
if (e.children) for (let
|
|
1025
|
+
if (e.children) for (let a of e.children) wt(a, t, n + (a.x ?? 0), r + (a.y ?? 0), i);
|
|
1012
1026
|
}
|
|
1013
|
-
function
|
|
1027
|
+
function Tt(e, t) {
|
|
1014
1028
|
for (let n of e) {
|
|
1015
1029
|
if (n.id === t) return n;
|
|
1016
|
-
let e =
|
|
1030
|
+
let e = Tt(n.children, t);
|
|
1017
1031
|
if (e) return e;
|
|
1018
1032
|
}
|
|
1019
1033
|
}
|
|
1020
|
-
function
|
|
1034
|
+
function Et(e, t) {
|
|
1021
1035
|
t.add(e.id);
|
|
1022
|
-
for (let n of e.children)
|
|
1036
|
+
for (let n of e.children) Et(n, t);
|
|
1023
1037
|
}
|
|
1024
|
-
function
|
|
1038
|
+
function Dt(e, t) {
|
|
1025
1039
|
let n, r = t.linkStyles.get("default");
|
|
1026
1040
|
r && (n = { ...r });
|
|
1027
1041
|
let i = t.linkStyles.get(e);
|
|
@@ -1032,39 +1046,39 @@ function $e(e, t) {
|
|
|
1032
1046
|
}
|
|
1033
1047
|
//#endregion
|
|
1034
1048
|
//#region packages/svg-renderer/src/layout-engine.ts
|
|
1035
|
-
function
|
|
1049
|
+
function Ot(e, t = {}) {
|
|
1036
1050
|
let n = {
|
|
1037
|
-
...
|
|
1051
|
+
...Ae,
|
|
1038
1052
|
...t,
|
|
1039
|
-
fontSizes:
|
|
1053
|
+
fontSizes: P(t.fontSizes)
|
|
1040
1054
|
};
|
|
1041
|
-
return
|
|
1055
|
+
return _t(Te(qe(e, n), t.layoutCache), e, n.mergeEdges);
|
|
1042
1056
|
}
|
|
1043
|
-
function
|
|
1044
|
-
return
|
|
1045
|
-
...
|
|
1057
|
+
function kt(e, t = {}) {
|
|
1058
|
+
return qe(e, {
|
|
1059
|
+
...Ae,
|
|
1046
1060
|
...t,
|
|
1047
|
-
fontSizes:
|
|
1061
|
+
fontSizes: P(t.fontSizes)
|
|
1048
1062
|
});
|
|
1049
1063
|
}
|
|
1050
1064
|
//#endregion
|
|
1051
1065
|
//#region packages/svg-renderer/src/renderer.ts
|
|
1052
|
-
function
|
|
1053
|
-
let
|
|
1054
|
-
|
|
1055
|
-
let
|
|
1056
|
-
for (let t of e.edges) t.inlineStyle?.stroke &&
|
|
1057
|
-
for (let e of
|
|
1058
|
-
|
|
1059
|
-
for (let t of e.groups)
|
|
1060
|
-
for (let t of e.edges)
|
|
1061
|
-
for (let t of e.edges) t.label &&
|
|
1062
|
-
for (let t of e.nodes)
|
|
1063
|
-
return
|
|
1064
|
-
}
|
|
1065
|
-
function
|
|
1066
|
+
function At(e, t, r = "Inter", i = !1, a = N, o = "linear", s, c = !0, l = !0, u, d, f = {}) {
|
|
1067
|
+
let p = [], m = l && e.nodes.some((e) => !!b(e.interaction?.href));
|
|
1068
|
+
p.push(U(E(e.width, e.height, t, i, u, d, m, f.styleAttribute), s)), p.push(n(r, !1, f.nonce)), c && e.edges.some((e) => e.animate) && p.push(jt(f.nonce)), p.push("<defs>"), p.push(Mt());
|
|
1069
|
+
let h = /* @__PURE__ */ new Set();
|
|
1070
|
+
for (let t of e.edges) t.inlineStyle?.stroke && h.add(t.inlineStyle.stroke);
|
|
1071
|
+
for (let e of h) p.push(Nt(e));
|
|
1072
|
+
p.push("</defs>");
|
|
1073
|
+
for (let t of e.groups) p.push(It(t, r, a));
|
|
1074
|
+
for (let t of e.edges) p.push(Lt(t, o, c));
|
|
1075
|
+
for (let t of e.edges) t.label && p.push(zt(t, r, a));
|
|
1076
|
+
for (let t of e.nodes) p.push(Ut(t, r, a, l));
|
|
1077
|
+
return p.push("</svg>"), p.join("\n");
|
|
1078
|
+
}
|
|
1079
|
+
function jt(e) {
|
|
1066
1080
|
return [
|
|
1067
|
-
|
|
1081
|
+
T(e),
|
|
1068
1082
|
" @keyframes zm-edge-dash { to { stroke-dashoffset: -28; } }",
|
|
1069
1083
|
" .edge-animated { animation: zm-edge-dash 1s linear infinite; }",
|
|
1070
1084
|
" @media (prefers-reduced-motion: reduce) {",
|
|
@@ -1073,67 +1087,67 @@ function rt(e) {
|
|
|
1073
1087
|
"</style>"
|
|
1074
1088
|
].join("\n");
|
|
1075
1089
|
}
|
|
1076
|
-
function
|
|
1077
|
-
return
|
|
1090
|
+
function Mt() {
|
|
1091
|
+
return Pt("var(--_arrow)", "");
|
|
1078
1092
|
}
|
|
1079
|
-
function
|
|
1080
|
-
return
|
|
1093
|
+
function Nt(e) {
|
|
1094
|
+
return Pt(i(e), s`-${Ft(e)}`);
|
|
1081
1095
|
}
|
|
1082
|
-
function
|
|
1083
|
-
let n =
|
|
1084
|
-
return s
|
|
1096
|
+
function Pt(e, t) {
|
|
1097
|
+
let n = z.width, r = z.height, i = n - 1, a = s`fill="${e}" stroke="${e}" stroke-width="0.75" stroke-linejoin="round"`, o = s`<polygon points="0 0, ${n} ${r / 2}, 0 ${r}" ${a} />`, c = (e, t) => s` <marker id="${e}" markerWidth="${n}" markerHeight="${r}" refX="${i}" refY="${r / 2}" orient="${t}">` + s`\n ${o}` + "\n </marker>";
|
|
1098
|
+
return c(s`arrowhead${t}`, "auto") + "\n" + c(s`arrowhead-start${t}`, "auto-start-reverse");
|
|
1085
1099
|
}
|
|
1086
|
-
function
|
|
1100
|
+
function Ft(e) {
|
|
1087
1101
|
return e.replace(/[^a-zA-Z0-9]/g, (e) => e.charCodeAt(0).toString(16));
|
|
1088
1102
|
}
|
|
1089
|
-
function
|
|
1090
|
-
let
|
|
1091
|
-
a.push(`<g class="subgraph" data-id="${
|
|
1092
|
-
for (let
|
|
1103
|
+
function It(e, t, n) {
|
|
1104
|
+
let r = n.groupHeader + 16, a = [];
|
|
1105
|
+
a.push(s`<g class="subgraph" data-id="${i(e.id)}" data-label="${i(e.label)}">`), a.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" ` + s`rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), a.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${r}" ` + s`rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), a.push(" " + _(e.label, e.x + 12, e.y + r / 2, n.groupHeader, s`font-size="${n.groupHeader}" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`));
|
|
1106
|
+
for (let r of e.children) a.push(It(r, t, n));
|
|
1093
1107
|
return a.push("</g>"), a.join("\n");
|
|
1094
1108
|
}
|
|
1095
|
-
function
|
|
1109
|
+
function Lt(e, t, n = !0) {
|
|
1096
1110
|
if (e.points.length < 2) return "";
|
|
1097
|
-
let
|
|
1098
|
-
o || (e.hasArrowEnd && (
|
|
1099
|
-
let
|
|
1100
|
-
`class="edge${
|
|
1101
|
-
`data-from="${
|
|
1102
|
-
`data-to="${
|
|
1103
|
-
`data-style="${e.style}"`,
|
|
1104
|
-
`data-arrow-start="${e.hasArrowStart}"`,
|
|
1105
|
-
`data-arrow-end="${e.hasArrowEnd}"`
|
|
1111
|
+
let r = n && (e.animate ?? !1), a = t !== "linear", o = e.style === "invisible", c = e.style === "dotted" ? " stroke-dasharray=\"4 4\"" : "", l = e.style === "thick" ? L.connector * 2 : L.connector, u = o ? "none" : i(e.inlineStyle?.stroke ?? "var(--_line)"), d = i(e.inlineStyle?.["stroke-width"] ?? String(l)), f = e.inlineStyle?.stroke ? s`-${Ft(e.inlineStyle.stroke)}` : "", p = "";
|
|
1112
|
+
o || (e.hasArrowEnd && (p += s` marker-end="url(#arrowhead${f})"`), e.hasArrowStart && (p += s` marker-start="url(#arrowhead-start${f})"`));
|
|
1113
|
+
let m = [
|
|
1114
|
+
s`class="edge${r ? " edge-animated" : ""}"`,
|
|
1115
|
+
s`data-from="${i(e.source)}"`,
|
|
1116
|
+
s`data-to="${i(e.target)}"`,
|
|
1117
|
+
s`data-style="${e.style}"`,
|
|
1118
|
+
s`data-arrow-start="${e.hasArrowStart}"`,
|
|
1119
|
+
s`data-arrow-end="${e.hasArrowEnd}"`
|
|
1106
1120
|
];
|
|
1107
|
-
e.label &&
|
|
1108
|
-
let
|
|
1109
|
-
return `<${a ? "path" : "polyline"} ${
|
|
1121
|
+
e.label && m.push(s`data-label="${i(e.label)}"`), e.id && m.push(s`data-id="${i(e.id)}"`);
|
|
1122
|
+
let h = r && !c ? " stroke-dasharray=\"8 6\"" : "", g = a ? s`d="${ve(e.points, t)}"` : s`points="${Rt(e.points)}"`;
|
|
1123
|
+
return s`<${a ? "path" : "polyline"} ${m.join(" ")} ${g} ` + s`fill="none" stroke="${u}" ` + s`stroke-width="${d}"${c}${h}${p} />`;
|
|
1110
1124
|
}
|
|
1111
|
-
function
|
|
1112
|
-
return e.map((e) => `${e.x},${e.y}`).join(" ");
|
|
1125
|
+
function Rt(e) {
|
|
1126
|
+
return e.map((e) => s`${e.x},${e.y}`).join(" ");
|
|
1113
1127
|
}
|
|
1114
|
-
function
|
|
1128
|
+
function zt(e, t, n) {
|
|
1115
1129
|
if (!e.label) return "";
|
|
1116
|
-
let
|
|
1117
|
-
return `<g class="edge-label" data-from="${
|
|
1130
|
+
let r = e.label, a = e.labelPosition ?? Vt(e.points), o = d(r, n.edgeLabel, F.edgeLabel), c = v(r, a.x, a.y, o.width, o.height, n.edgeLabel, 8, s`text-anchor="middle" font-size="${n.edgeLabel}" font-weight="${F.edgeLabel}" fill="var(--_text-sec)"`, "rx=\"2\" ry=\"2\" fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"1\"");
|
|
1131
|
+
return s`<g class="edge-label" data-from="${i(e.source)}" data-to="${i(e.target)}" data-label="${i(r)}">\n` + s` ${c.replace(/\n/g, "\n ")}\n` + "</g>";
|
|
1118
1132
|
}
|
|
1119
|
-
function
|
|
1133
|
+
function Bt(e, t) {
|
|
1120
1134
|
let n = e[t];
|
|
1121
1135
|
if (!n)
|
|
1122
1136
|
/* v8 ignore next */
|
|
1123
|
-
throw Error(`edgeMidpoint: missing point at index ${t}`);
|
|
1137
|
+
throw Error(s`edgeMidpoint: missing point at index ${t}`);
|
|
1124
1138
|
return n;
|
|
1125
1139
|
}
|
|
1126
|
-
function
|
|
1140
|
+
function Vt(e) {
|
|
1127
1141
|
if (e.length === 0) return {
|
|
1128
1142
|
x: 0,
|
|
1129
1143
|
y: 0
|
|
1130
1144
|
};
|
|
1131
1145
|
if (e.length === 1) return e[0];
|
|
1132
1146
|
let t = 0;
|
|
1133
|
-
for (let n = 1; n < e.length; n++) t +=
|
|
1147
|
+
for (let n = 1; n < e.length; n++) t += Ht(Bt(e, n - 1), Bt(e, n));
|
|
1134
1148
|
let n = t / 2;
|
|
1135
1149
|
for (let t = 1; t < e.length; t++) {
|
|
1136
|
-
let r =
|
|
1150
|
+
let r = Bt(e, t - 1), i = Bt(e, t), a = Ht(r, i);
|
|
1137
1151
|
if (n <= a) {
|
|
1138
1152
|
let e = n / a;
|
|
1139
1153
|
return {
|
|
@@ -1145,281 +1159,287 @@ function pt(e) {
|
|
|
1145
1159
|
}
|
|
1146
1160
|
return e[e.length - 1];
|
|
1147
1161
|
}
|
|
1148
|
-
function
|
|
1162
|
+
function Ht(e, t) {
|
|
1149
1163
|
return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);
|
|
1150
1164
|
}
|
|
1151
|
-
function
|
|
1152
|
-
let o =
|
|
1153
|
-
`class="${
|
|
1154
|
-
`data-id="${
|
|
1155
|
-
`data-label="${
|
|
1156
|
-
`data-shape="${e.shape}"`
|
|
1165
|
+
function Ut(e, t, n, r = !0) {
|
|
1166
|
+
let o = Wt(e), c = Tn(e, t, n), l = [], u = x(e.className), d = u ? s`node ${u}` : "node", f = e.interaction, p = [
|
|
1167
|
+
s`class="${d}"`,
|
|
1168
|
+
s`data-id="${i(e.id)}"`,
|
|
1169
|
+
s`data-label="${i(e.label)}"`,
|
|
1170
|
+
s`data-shape="${e.shape}"`
|
|
1157
1171
|
];
|
|
1158
|
-
|
|
1159
|
-
let
|
|
1160
|
-
if (
|
|
1161
|
-
let e =
|
|
1162
|
-
|
|
1172
|
+
l.push(s`<g ${p.join(" ")}>`);
|
|
1173
|
+
let m = r ? b(f?.href) : void 0, h = m ? " " : " ";
|
|
1174
|
+
if (m) {
|
|
1175
|
+
let e = f?.target ? s` target="${i(f.target)}"` : "";
|
|
1176
|
+
l.push(s` <a href="${i(m)}"${e}>`);
|
|
1163
1177
|
}
|
|
1164
|
-
return
|
|
1178
|
+
return r && f?.tooltip && l.push(s`${h}<title>${a(f.tooltip)}</title>`), l.push(s`${h}${o.replace(/\n/g, s`\n${h}`)}`), c && l.push(s`${h}${c.replace(/\n/g, s`\n${h}`)}`), m && l.push(" </a>"), l.push("</g>"), l.join("\n");
|
|
1165
1179
|
}
|
|
1166
|
-
function
|
|
1167
|
-
let { x: t, y:
|
|
1180
|
+
function Wt(e) {
|
|
1181
|
+
let { x: t, y: n, width: r, height: a, shape: o, inlineStyle: s } = e, c = i(s?.fill ?? "var(--_node-fill)"), l = i(s?.stroke ?? "var(--_node-stroke)"), u = i(s?.["stroke-width"] ?? String(L.innerBox));
|
|
1168
1182
|
switch (o) {
|
|
1169
|
-
case "diamond": return
|
|
1170
|
-
case "rounded": return
|
|
1171
|
-
case "stadium": return
|
|
1172
|
-
case "circle": return
|
|
1173
|
-
case "subroutine": return
|
|
1174
|
-
case "doublecircle": return
|
|
1175
|
-
case "hexagon": return
|
|
1176
|
-
case "cylinder": return
|
|
1177
|
-
case "asymmetric": return
|
|
1178
|
-
case "trapezoid": return
|
|
1179
|
-
case "trapezoid-alt": return
|
|
1180
|
-
case "parallelogram": return
|
|
1181
|
-
case "parallelogram-alt": return
|
|
1182
|
-
case "state-start": return
|
|
1183
|
-
case "state-end": return
|
|
1184
|
-
case "document": return
|
|
1185
|
-
case "stacked-document": return
|
|
1186
|
-
case "stacked-process": return
|
|
1187
|
-
case "card": return
|
|
1188
|
-
case "lined-process": return
|
|
1189
|
-
case "divided-process": return
|
|
1190
|
-
case "window-pane": return
|
|
1191
|
-
case "triangle": return
|
|
1192
|
-
case "flipped-triangle": return
|
|
1193
|
-
case "filled-circle": return
|
|
1194
|
-
case "crossed-circle": return
|
|
1195
|
-
case "fork-join": return
|
|
1196
|
-
case "notched-pentagon": return
|
|
1197
|
-
case "sloped-rectangle": return
|
|
1198
|
-
case "flag": return
|
|
1199
|
-
case "bow-tie-rectangle": return
|
|
1200
|
-
case "half-rounded-rectangle": return
|
|
1201
|
-
case "brace": return
|
|
1202
|
-
case "brace-right": return
|
|
1203
|
-
case "braces": return
|
|
1204
|
-
case "bolt": return
|
|
1183
|
+
case "diamond": return Yt(t, n, r, a, c, l, u);
|
|
1184
|
+
case "rounded": return Kt(t, n, r, a, c, l, u);
|
|
1185
|
+
case "stadium": return qt(t, n, r, a, c, l, u);
|
|
1186
|
+
case "circle": return Jt(t, n, r, a, c, l, u);
|
|
1187
|
+
case "subroutine": return Xt(t, n, r, a, c, l, u);
|
|
1188
|
+
case "doublecircle": return Zt(t, n, r, a, c, l, u);
|
|
1189
|
+
case "hexagon": return Qt(t, n, r, a, c, l, u);
|
|
1190
|
+
case "cylinder": return $t(t, n, r, a, c, l, u);
|
|
1191
|
+
case "asymmetric": return en(t, n, r, a, c, l, u);
|
|
1192
|
+
case "trapezoid": return tn(t, n, r, a, c, l, u);
|
|
1193
|
+
case "trapezoid-alt": return nn(t, n, r, a, c, l, u);
|
|
1194
|
+
case "parallelogram": return rn(t, n, r, a, c, l, u);
|
|
1195
|
+
case "parallelogram-alt": return an(t, n, r, a, c, l, u);
|
|
1196
|
+
case "state-start": return Cn(t, n, r, a);
|
|
1197
|
+
case "state-end": return wn(t, n, r, a);
|
|
1198
|
+
case "document": return on(t, n, r, a, c, l, u);
|
|
1199
|
+
case "stacked-document": return sn(t, n, r, a, c, l, u, !0);
|
|
1200
|
+
case "stacked-process": return sn(t, n, r, a, c, l, u, !1);
|
|
1201
|
+
case "card": return cn(t, n, r, a, c, l, u);
|
|
1202
|
+
case "lined-process": return ln(t, n, r, a, c, l, u);
|
|
1203
|
+
case "divided-process": return un(t, n, r, a, c, l, u);
|
|
1204
|
+
case "window-pane": return dn(t, n, r, a, c, l, u);
|
|
1205
|
+
case "triangle": return fn(t, n, r, a, c, l, u, !1);
|
|
1206
|
+
case "flipped-triangle": return fn(t, n, r, a, c, l, u, !0);
|
|
1207
|
+
case "filled-circle": return pn(t, n, r, a, l);
|
|
1208
|
+
case "crossed-circle": return mn(t, n, r, a, c, l, u);
|
|
1209
|
+
case "fork-join": return hn(t, n, r, a, l);
|
|
1210
|
+
case "notched-pentagon": return gn(t, n, r, a, c, l, u);
|
|
1211
|
+
case "sloped-rectangle": return _n(t, n, r, a, c, l, u);
|
|
1212
|
+
case "flag": return vn(t, n, r, a, c, l, u);
|
|
1213
|
+
case "bow-tie-rectangle": return yn(t, n, r, a, c, l, u);
|
|
1214
|
+
case "half-rounded-rectangle": return bn(t, n, r, a, c, l, u);
|
|
1215
|
+
case "brace": return xn(t, n, r, a, c, l, u, "left");
|
|
1216
|
+
case "brace-right": return xn(t, n, r, a, c, l, u, "right");
|
|
1217
|
+
case "braces": return xn(t, n, r, a, c, l, u, "both");
|
|
1218
|
+
case "bolt": return Sn(t, n, r, a, c, l, u);
|
|
1205
1219
|
case "text":
|
|
1206
1220
|
case "anchor": return "";
|
|
1207
|
-
default: return
|
|
1221
|
+
default: return Gt(t, n, r, a, c, l, u);
|
|
1208
1222
|
}
|
|
1209
1223
|
}
|
|
1210
|
-
function
|
|
1211
|
-
return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1224
|
+
function Gt(e, t, n, r, i, a, o) {
|
|
1225
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1212
1226
|
}
|
|
1213
|
-
function
|
|
1214
|
-
return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="6" ry="6" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1215
|
-
}
|
|
1216
|
-
function
|
|
1217
|
-
let
|
|
1218
|
-
return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="${
|
|
1219
|
-
}
|
|
1220
|
-
function
|
|
1221
|
-
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
`${
|
|
1227
|
-
`${
|
|
1228
|
-
`${
|
|
1229
|
-
`${
|
|
1230
|
-
].join(" ")
|
|
1231
|
-
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
}
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
}
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
`${e +
|
|
1243
|
-
`${e + n -
|
|
1244
|
-
`${e + n},${t + r / 2}`,
|
|
1245
|
-
`${e + n -
|
|
1246
|
-
`${e +
|
|
1247
|
-
`${e},${t + r / 2}`
|
|
1248
|
-
].join(" ")
|
|
1249
|
-
}
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
`${e +
|
|
1258
|
-
`${e + n},${t
|
|
1259
|
-
`${e +
|
|
1260
|
-
`${e},${t + r
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
`${e +
|
|
1268
|
-
`${e + n},${t
|
|
1269
|
-
`${e},${t + r}
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
`${e
|
|
1277
|
-
`${e + n
|
|
1278
|
-
`${e +
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
`${e +
|
|
1286
|
-
`${e + n
|
|
1287
|
-
`${e},${t + r}
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
`${e
|
|
1295
|
-
`${e + n},${t
|
|
1296
|
-
`${e +
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
}
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
}
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
`${e +
|
|
1316
|
-
`${e + n},${t
|
|
1317
|
-
`${e},${t + r}`,
|
|
1318
|
-
`${e},${t +
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
`${e
|
|
1227
|
+
function Kt(e, t, n, r, i, a, o) {
|
|
1228
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="6" ry="6" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1229
|
+
}
|
|
1230
|
+
function qt(e, t, n, r, i, a, o) {
|
|
1231
|
+
let c = r / 2;
|
|
1232
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="${c}" ry="${c}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1233
|
+
}
|
|
1234
|
+
function Jt(e, t, n, r, i, a, o) {
|
|
1235
|
+
let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2;
|
|
1236
|
+
return s`<circle cx="${c}" cy="${l}" r="${u}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1237
|
+
}
|
|
1238
|
+
function Yt(e, t, n, r, i, a, o) {
|
|
1239
|
+
let c = e + n / 2, l = t + r / 2, u = n / 2, d = r / 2, f = [
|
|
1240
|
+
s`${c},${l - d}`,
|
|
1241
|
+
s`${c + u},${l}`,
|
|
1242
|
+
s`${c},${l + d}`,
|
|
1243
|
+
s`${c - u},${l}`
|
|
1244
|
+
].join(" ");
|
|
1245
|
+
return s`<polygon points="${f}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1246
|
+
}
|
|
1247
|
+
function Xt(e, t, n, r, i, a, o) {
|
|
1248
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + 8}" y1="${t}" x2="${e + 8}" y2="${t + r}" ` + s`stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + n - 8}" y1="${t}" x2="${e + n - 8}" y2="${t + r}" ` + s`stroke="${a}" stroke-width="${o}" />`;
|
|
1249
|
+
}
|
|
1250
|
+
function Zt(e, t, n, r, i, a, o) {
|
|
1251
|
+
let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2, d = u - 5;
|
|
1252
|
+
return s`<circle cx="${c}" cy="${l}" r="${u}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<circle cx="${c}" cy="${l}" r="${d}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1253
|
+
}
|
|
1254
|
+
function Qt(e, t, n, r, i, a, o) {
|
|
1255
|
+
let c = r / 4, l = [
|
|
1256
|
+
s`${e + c},${t}`,
|
|
1257
|
+
s`${e + n - c},${t}`,
|
|
1258
|
+
s`${e + n},${t + r / 2}`,
|
|
1259
|
+
s`${e + n - c},${t + r}`,
|
|
1260
|
+
s`${e + c},${t + r}`,
|
|
1261
|
+
s`${e},${t + r / 2}`
|
|
1262
|
+
].join(" ");
|
|
1263
|
+
return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1264
|
+
}
|
|
1265
|
+
function $t(e, t, n, r, i, a, o) {
|
|
1266
|
+
let c = e + n / 2, l = t + 7, u = r - 14;
|
|
1267
|
+
return s`<rect x="${e}" y="${l}" width="${n}" height="${u}" ` + s`fill="${i}" stroke="none" />` + s`\n<line x1="${e}" y1="${l}" x2="${e}" y2="${l + u}" stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + n}" y1="${l}" x2="${e + n}" y2="${l + u}" stroke="${a}" stroke-width="${o}" />` + s`\n<ellipse cx="${c}" cy="${t + r - 7}" rx="${n / 2}" ry="${7}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<ellipse cx="${c}" cy="${l}" rx="${n / 2}" ry="${7}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1268
|
+
}
|
|
1269
|
+
function en(e, t, n, r, i, a, o) {
|
|
1270
|
+
let c = [
|
|
1271
|
+
s`${e + 12},${t}`,
|
|
1272
|
+
s`${e + n},${t}`,
|
|
1273
|
+
s`${e + n},${t + r}`,
|
|
1274
|
+
s`${e + 12},${t + r}`,
|
|
1275
|
+
s`${e},${t + r / 2}`
|
|
1276
|
+
].join(" ");
|
|
1277
|
+
return s`<polygon points="${c}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1278
|
+
}
|
|
1279
|
+
function tn(e, t, n, r, i, a, o) {
|
|
1280
|
+
let c = n * .15, l = [
|
|
1281
|
+
s`${e + c},${t}`,
|
|
1282
|
+
s`${e + n - c},${t}`,
|
|
1283
|
+
s`${e + n},${t + r}`,
|
|
1284
|
+
s`${e},${t + r}`
|
|
1285
|
+
].join(" ");
|
|
1286
|
+
return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1287
|
+
}
|
|
1288
|
+
function nn(e, t, n, r, i, a, o) {
|
|
1289
|
+
let c = n * .15, l = [
|
|
1290
|
+
s`${e},${t}`,
|
|
1291
|
+
s`${e + n},${t}`,
|
|
1292
|
+
s`${e + n - c},${t + r}`,
|
|
1293
|
+
s`${e + c},${t + r}`
|
|
1294
|
+
].join(" ");
|
|
1295
|
+
return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1296
|
+
}
|
|
1297
|
+
function rn(e, t, n, r, i, a, o) {
|
|
1298
|
+
let c = n * .15, l = [
|
|
1299
|
+
s`${e + c},${t}`,
|
|
1300
|
+
s`${e + n},${t}`,
|
|
1301
|
+
s`${e + n - c},${t + r}`,
|
|
1302
|
+
s`${e},${t + r}`
|
|
1303
|
+
].join(" ");
|
|
1304
|
+
return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1305
|
+
}
|
|
1306
|
+
function an(e, t, n, r, i, a, o) {
|
|
1307
|
+
let c = n * .15, l = [
|
|
1308
|
+
s`${e},${t}`,
|
|
1309
|
+
s`${e + n - c},${t}`,
|
|
1310
|
+
s`${e + n},${t + r}`,
|
|
1311
|
+
s`${e + c},${t + r}`
|
|
1312
|
+
].join(" ");
|
|
1313
|
+
return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
|
|
1314
|
+
}
|
|
1315
|
+
function H(e, t, n) {
|
|
1316
|
+
return s`fill="${e}" stroke="${t}" stroke-width="${n}"`;
|
|
1317
|
+
}
|
|
1318
|
+
function on(e, t, n, r, i, a, o) {
|
|
1319
|
+
let c = Math.min(10, r * .16), l = t + r - c, u = s`M ${e} ${t} L ${e + n} ${t} L ${e + n} ${l} ` + s`C ${e + n * .75} ${l + c * 1.8} ${e + n * .25} ${l - c * .8} ${e} ${l} Z`;
|
|
1320
|
+
return s`<path d="${u}" ${H(i, a, o)} />`;
|
|
1321
|
+
}
|
|
1322
|
+
function sn(e, t, n, r, i, a, o, c) {
|
|
1323
|
+
let l = n - 10, u = r - 10, d = [];
|
|
1324
|
+
for (let n = 2; n >= 1; n--) d.push(s`<rect x="${e + 5 * n}" y="${t + 5 * (2 - n)}" width="${l}" height="${u}" ` + s`${H(i, a, o)} />`);
|
|
1325
|
+
return d.push(c ? on(e, t + 10, l, u, i, a, o) : s`<rect x="${e}" y="${t + 10}" width="${l}" height="${u}" ${H(i, a, o)} />`), d.join("\n");
|
|
1326
|
+
}
|
|
1327
|
+
function cn(e, t, n, r, i, a, o) {
|
|
1328
|
+
let c = Math.min(14, n * .12, r * .3), l = [
|
|
1329
|
+
s`${e + c},${t}`,
|
|
1330
|
+
s`${e + n},${t}`,
|
|
1331
|
+
s`${e + n},${t + r}`,
|
|
1332
|
+
s`${e},${t + r}`,
|
|
1333
|
+
s`${e},${t + c}`
|
|
1334
|
+
].join(" ");
|
|
1335
|
+
return s`<polygon points="${l}" ${H(i, a, o)} />`;
|
|
1336
|
+
}
|
|
1337
|
+
function ln(e, t, n, r, i, a, o) {
|
|
1338
|
+
let c = Math.min(12, n * .12);
|
|
1339
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${e + c}" y1="${t}" x2="${e + c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />`;
|
|
1340
|
+
}
|
|
1341
|
+
function un(e, t, n, r, i, a, o) {
|
|
1342
|
+
let c = t + Math.min(16, r * .3);
|
|
1343
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${e}" y1="${c}" x2="${e + n}" y2="${c}" stroke="${a}" stroke-width="${o}" />`;
|
|
1344
|
+
}
|
|
1345
|
+
function dn(e, t, n, r, i, a, o) {
|
|
1346
|
+
let c = e + Math.min(16, n * .16), l = t + Math.min(14, r * .28);
|
|
1347
|
+
return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${c}" y1="${t}" x2="${c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${e}" y1="${l}" x2="${e + n}" y2="${l}" stroke="${a}" stroke-width="${o}" />`;
|
|
1348
|
+
}
|
|
1349
|
+
function fn(e, t, n, r, i, a, o, c) {
|
|
1350
|
+
let l = c ? [
|
|
1351
|
+
s`${e},${t}`,
|
|
1352
|
+
s`${e + n},${t}`,
|
|
1353
|
+
s`${e + n / 2},${t + r}`
|
|
1338
1354
|
] : [
|
|
1339
|
-
`${e + n / 2},${t}`,
|
|
1340
|
-
`${e + n},${t + r}`,
|
|
1341
|
-
`${e},${t + r}`
|
|
1342
|
-
]
|
|
1355
|
+
s`${e + n / 2},${t}`,
|
|
1356
|
+
s`${e + n},${t + r}`,
|
|
1357
|
+
s`${e},${t + r}`
|
|
1358
|
+
];
|
|
1359
|
+
return s`<polygon points="${l.join(" ")}" ${H(i, a, o)} />`;
|
|
1343
1360
|
}
|
|
1344
|
-
function
|
|
1361
|
+
function pn(e, t, n, r, i) {
|
|
1345
1362
|
let a = Math.min(n, r) / 2 - 2;
|
|
1346
|
-
return `<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${a}" fill="${i}" stroke="${i}" />`;
|
|
1363
|
+
return s`<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${a}" fill="${i}" stroke="${i}" />`;
|
|
1347
1364
|
}
|
|
1348
|
-
function
|
|
1349
|
-
let
|
|
1350
|
-
return `<circle cx="${
|
|
1365
|
+
function mn(e, t, n, r, i, a, o) {
|
|
1366
|
+
let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2 - 2, d = u / Math.SQRT2;
|
|
1367
|
+
return s`<circle cx="${c}" cy="${l}" r="${u}" ${H(i, a, o)} />\n` + s`<line x1="${c - d}" y1="${l - d}" x2="${c + d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${c + d}" y1="${l - d}" x2="${c - d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />`;
|
|
1351
1368
|
}
|
|
1352
|
-
function
|
|
1369
|
+
function hn(e, t, n, r, i) {
|
|
1353
1370
|
let a = Math.min(8, r);
|
|
1354
|
-
return `<rect x="${e}" y="${t + (r - a) / 2}" width="${n}" height="${a}" fill="${i}" stroke="${i}" />`;
|
|
1355
|
-
}
|
|
1356
|
-
function
|
|
1357
|
-
let
|
|
1358
|
-
|
|
1359
|
-
`${e +
|
|
1360
|
-
`${e + n
|
|
1361
|
-
`${e + n},${t +
|
|
1362
|
-
`${e
|
|
1363
|
-
`${e},${t +
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
}
|
|
1367
|
-
function
|
|
1368
|
-
|
|
1369
|
-
`${e},${t +
|
|
1370
|
-
`${e + n},${t}`,
|
|
1371
|
-
`${e + n},${t + r}`,
|
|
1372
|
-
`${e},${t + r}`
|
|
1373
|
-
].join(" ")
|
|
1374
|
-
}
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
}
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1371
|
+
return s`<rect x="${e}" y="${t + (r - a) / 2}" width="${n}" height="${a}" fill="${i}" stroke="${i}" />`;
|
|
1372
|
+
}
|
|
1373
|
+
function gn(e, t, n, r, i, a, o) {
|
|
1374
|
+
let c = Math.min(14, n * .12, r * .3), l = [
|
|
1375
|
+
s`${e + c},${t}`,
|
|
1376
|
+
s`${e + n - c},${t}`,
|
|
1377
|
+
s`${e + n},${t + c}`,
|
|
1378
|
+
s`${e + n},${t + r}`,
|
|
1379
|
+
s`${e},${t + r}`,
|
|
1380
|
+
s`${e},${t + c}`
|
|
1381
|
+
].join(" ");
|
|
1382
|
+
return s`<polygon points="${l}" ${H(i, a, o)} />`;
|
|
1383
|
+
}
|
|
1384
|
+
function _n(e, t, n, r, i, a, o) {
|
|
1385
|
+
let c = Math.min(12, r * .3), l = [
|
|
1386
|
+
s`${e},${t + c}`,
|
|
1387
|
+
s`${e + n},${t}`,
|
|
1388
|
+
s`${e + n},${t + r}`,
|
|
1389
|
+
s`${e},${t + r}`
|
|
1390
|
+
].join(" ");
|
|
1391
|
+
return s`<polygon points="${l}" ${H(i, a, o)} />`;
|
|
1392
|
+
}
|
|
1393
|
+
function vn(e, t, n, r, i, a, o) {
|
|
1394
|
+
let c = Math.min(8, r * .14), l = s`M ${e} ${t + c} ` + s`C ${e + n * .25} ${t - c} ${e + n * .75} ${t + c * 2} ${e + n} ${t + c} ` + s`L ${e + n} ${t + r - c} ` + s`C ${e + n * .75} ${t + r + c} ${e + n * .25} ${t + r - c * 2} ${e} ${t + r - c} Z`;
|
|
1395
|
+
return s`<path d="${l}" ${H(i, a, o)} />`;
|
|
1396
|
+
}
|
|
1397
|
+
function yn(e, t, n, r, i, a, o) {
|
|
1398
|
+
let c = Math.min(14, n * .12), l = s`M ${e + c} ${t} L ${e + n} ${t} ` + s`Q ${e + n - c * 1.4} ${t + r / 2} ${e + n} ${t + r} ` + s`L ${e + c} ${t + r} ` + s`Q ${e + c * 1.4} ${t + r / 2} ${e + c} ${t} Z`;
|
|
1399
|
+
return s`<path d="${l}" ${H(i, a, o)} />`;
|
|
1400
|
+
}
|
|
1401
|
+
function bn(e, t, n, r, i, a, o) {
|
|
1402
|
+
let c = r / 2, l = Math.max(0, n - c), u = s`M ${e} ${t} L ${e + l} ${t} ` + s`A ${c} ${c} 0 0 1 ${e + l} ${t + r} ` + s`L ${e} ${t + r} Z`;
|
|
1403
|
+
return s`<path d="${u}" ${H(i, a, o)} />`;
|
|
1404
|
+
}
|
|
1405
|
+
function xn(e, t, n, r, i, a, o, c) {
|
|
1406
|
+
let l = Math.min(10, n * .12), u = [s`<rect x="${e}" y="${t}" width="${n}" height="${r}" fill="none" stroke="none" />`], d = s`M ${e + l} ${t} Q ${e} ${t} ${e} ${t + r * .25} ` + s`Q ${e} ${t + r / 2} ${e - l * .4} ${t + r / 2} ` + s`Q ${e} ${t + r / 2} ${e} ${t + r * .75} ` + s`Q ${e} ${t + r} ${e + l} ${t + r}`, f = s`M ${e + n - l} ${t} Q ${e + n} ${t} ${e + n} ${t + r * .25} ` + s`Q ${e + n} ${t + r / 2} ${e + n + l * .4} ${t + r / 2} ` + s`Q ${e + n} ${t + r / 2} ${e + n} ${t + r * .75} ` + s`Q ${e + n} ${t + r} ${e + n - l} ${t + r}`;
|
|
1407
|
+
return (c === "left" || c === "both") && u.push(s`<path d="${d}" fill="none" stroke="${a}" stroke-width="${o}" />`), (c === "right" || c === "both") && u.push(s`<path d="${f}" fill="none" stroke="${a}" stroke-width="${o}" />`), u.join("\n");
|
|
1408
|
+
}
|
|
1409
|
+
function Sn(e, t, n, r, i, a, o) {
|
|
1410
|
+
let c = [
|
|
1411
|
+
s`${e + n * .42},${t}`,
|
|
1412
|
+
s`${e + n},${t}`,
|
|
1413
|
+
s`${e + n * .62},${t + r * .42}`,
|
|
1414
|
+
s`${e + n},${t + r * .42}`,
|
|
1415
|
+
s`${e + n * .3},${t + r}`,
|
|
1416
|
+
s`${e + n * .5},${t + r * .55}`,
|
|
1417
|
+
s`${e},${t + r * .55}`
|
|
1418
|
+
].join(" ");
|
|
1419
|
+
return s`<polygon points="${c}" ${H(i, a, o)} />`;
|
|
1382
1420
|
}
|
|
1383
|
-
function
|
|
1384
|
-
let
|
|
1385
|
-
return `<
|
|
1421
|
+
function Cn(e, t, n, r) {
|
|
1422
|
+
let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2;
|
|
1423
|
+
return s`<circle cx="${i}" cy="${a}" r="${o}" fill="var(--_text)" stroke="none" />`;
|
|
1386
1424
|
}
|
|
1387
|
-
function
|
|
1388
|
-
let
|
|
1389
|
-
return
|
|
1425
|
+
function wn(e, t, n, r) {
|
|
1426
|
+
let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2, c = o - 4;
|
|
1427
|
+
return s`<circle cx="${i}" cy="${a}" r="${o}" ` + s`fill="none" stroke="var(--_text)" stroke-width="${L.innerBox * 2}" />` + s`\n<circle cx="${i}" cy="${a}" r="${c}" fill="var(--_text)" stroke="none" />`;
|
|
1390
1428
|
}
|
|
1391
|
-
function
|
|
1392
|
-
return `<polygon points="${[
|
|
1393
|
-
`${e + n * .42},${t}`,
|
|
1394
|
-
`${e + n},${t}`,
|
|
1395
|
-
`${e + n * .62},${t + r * .42}`,
|
|
1396
|
-
`${e + n},${t + r * .42}`,
|
|
1397
|
-
`${e + n * .3},${t + r}`,
|
|
1398
|
-
`${e + n * .5},${t + r * .55}`,
|
|
1399
|
-
`${e},${t + r * .55}`
|
|
1400
|
-
].join(" ")}" ${W(i, a, o)} />`;
|
|
1401
|
-
}
|
|
1402
|
-
function Jt(e, t, n, r) {
|
|
1403
|
-
return `<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${Math.min(n, r) / 2 - 2}" fill="var(--_text)" stroke="none" />`;
|
|
1404
|
-
}
|
|
1405
|
-
function Yt(e, t, n, r) {
|
|
1406
|
-
let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2, s = o - 4;
|
|
1407
|
-
return `<circle cx="${i}" cy="${a}" r="${o}" fill="none" stroke="var(--_text)" stroke-width="${z.innerBox * 2}" />\n<circle cx="${i}" cy="${a}" r="${s}" fill="var(--_text)" stroke="none" />`;
|
|
1408
|
-
}
|
|
1409
|
-
function Xt(e, t, r) {
|
|
1429
|
+
function Tn(e, t, n) {
|
|
1410
1430
|
if ((e.shape === "state-start" || e.shape === "state-end") && !e.label) return "";
|
|
1411
|
-
let
|
|
1412
|
-
return
|
|
1431
|
+
let r = e.x + e.width / 2, a = e.y + e.height / 2, o = i(e.inlineStyle?.color ?? l(e.inlineStyle?.fill, "var(--_text)")), c = s`text-anchor="middle" font-size="${n.nodeLabel}" font-weight="${F.nodeLabel}" fill="${o}"`, u = e.inlineStyle?.["font-family"];
|
|
1432
|
+
return u && (c += s` style="font-family: ${i(u)};"`), _(e.label, r, a, n.nodeLabel, c);
|
|
1413
1433
|
}
|
|
1414
|
-
function
|
|
1415
|
-
return
|
|
1434
|
+
function En(e) {
|
|
1435
|
+
return i(e).replace(/\r/g, " ").replace(/\n/g, " ").replace(/\t/g, "	");
|
|
1416
1436
|
}
|
|
1417
|
-
function
|
|
1418
|
-
return t === void 0 ? e : e.replace("<svg ", `<svg data-src="${
|
|
1437
|
+
function U(e, t) {
|
|
1438
|
+
return t === void 0 ? e : e.replace("<svg ", s`<svg data-src="${En(t)}" `);
|
|
1419
1439
|
}
|
|
1420
1440
|
//#endregion
|
|
1421
1441
|
//#region packages/svg-renderer/src/resolve-colors.ts
|
|
1422
|
-
var
|
|
1442
|
+
var Dn = class {
|
|
1423
1443
|
raw = /* @__PURE__ */ new Map();
|
|
1424
1444
|
resolved = /* @__PURE__ */ new Map();
|
|
1425
1445
|
inProgress = /* @__PURE__ */ new Set();
|
|
@@ -1431,13 +1451,13 @@ var Qt = class {
|
|
|
1431
1451
|
let t = this.raw.get(e);
|
|
1432
1452
|
if (t === void 0 || this.inProgress.has(e)) return;
|
|
1433
1453
|
this.inProgress.add(e);
|
|
1434
|
-
let n =
|
|
1454
|
+
let n = Pn(t, this).trim();
|
|
1435
1455
|
this.inProgress.delete(e);
|
|
1436
1456
|
let r = !/\bvar\(|\bcolor-mix\(/.test(n);
|
|
1437
1457
|
return this.resolved.set(e, r ? n : void 0), r ? n : void 0;
|
|
1438
1458
|
}
|
|
1439
1459
|
};
|
|
1440
|
-
function
|
|
1460
|
+
function On(e, t) {
|
|
1441
1461
|
let n = 0;
|
|
1442
1462
|
for (let r = t; r < e.length; r++) {
|
|
1443
1463
|
let t = e[r];
|
|
@@ -1446,7 +1466,7 @@ function $t(e, t) {
|
|
|
1446
1466
|
}
|
|
1447
1467
|
return -1;
|
|
1448
1468
|
}
|
|
1449
|
-
function
|
|
1469
|
+
function kn(e) {
|
|
1450
1470
|
let t = [], n = 0, r = 0;
|
|
1451
1471
|
for (let i = 0; i < e.length; i++) {
|
|
1452
1472
|
let a = e[i];
|
|
@@ -1454,12 +1474,12 @@ function en(e) {
|
|
|
1454
1474
|
}
|
|
1455
1475
|
return t.push(e.slice(r)), t;
|
|
1456
1476
|
}
|
|
1457
|
-
var
|
|
1458
|
-
function
|
|
1459
|
-
let [n, ...r] =
|
|
1477
|
+
var An = "(?<![\\w-])(var|color-mix)\\(";
|
|
1478
|
+
function jn(e, t) {
|
|
1479
|
+
let [n, ...r] = kn(e), i = (n ?? "").trim(), a = t.lookup(i);
|
|
1460
1480
|
return a === void 0 ? r.length > 0 ? r.join(",").trim() : null : a;
|
|
1461
1481
|
}
|
|
1462
|
-
function
|
|
1482
|
+
function Mn(e) {
|
|
1463
1483
|
let t = e.trim().split(/\s+/), n, r;
|
|
1464
1484
|
for (let e of t) if (/^[\d.]+%$/.test(e)) {
|
|
1465
1485
|
if (r !== void 0) return null;
|
|
@@ -1473,61 +1493,61 @@ function rn(e) {
|
|
|
1473
1493
|
pct: r
|
|
1474
1494
|
};
|
|
1475
1495
|
}
|
|
1476
|
-
function
|
|
1477
|
-
let t =
|
|
1496
|
+
function Nn(e) {
|
|
1497
|
+
let t = kn(e);
|
|
1478
1498
|
if (t.length !== 3) return null;
|
|
1479
|
-
let [n, r,
|
|
1480
|
-
if (n === void 0 || r === void 0 ||
|
|
1481
|
-
let
|
|
1482
|
-
if (!
|
|
1483
|
-
let
|
|
1484
|
-
if (!
|
|
1485
|
-
let
|
|
1486
|
-
return
|
|
1487
|
-
}
|
|
1488
|
-
function
|
|
1489
|
-
let n = "", r = 0, i = new RegExp(
|
|
1499
|
+
let [n, r, i] = t;
|
|
1500
|
+
if (n === void 0 || r === void 0 || i === void 0 || !/^\s*in\s+srgb\s*$/i.test(n)) return null;
|
|
1501
|
+
let a = Mn(r), o = Mn(i);
|
|
1502
|
+
if (!a || !o) return null;
|
|
1503
|
+
let s = h(a.color), l = h(o.color);
|
|
1504
|
+
if (!s || !l) return null;
|
|
1505
|
+
let u = p(s, l, a.pct, o.pct);
|
|
1506
|
+
return u ? c(u) : null;
|
|
1507
|
+
}
|
|
1508
|
+
function Pn(e, t) {
|
|
1509
|
+
let n = "", r = 0, i = new RegExp(An, "g"), a;
|
|
1490
1510
|
for (; (a = i.exec(e)) !== null;) {
|
|
1491
1511
|
let o = a[1];
|
|
1492
1512
|
if (o === void 0) continue;
|
|
1493
|
-
let s = a.index, c = s + o.length, l =
|
|
1513
|
+
let s = a.index, c = s + o.length, l = On(e, c);
|
|
1494
1514
|
if (l === -1) break;
|
|
1495
|
-
let u =
|
|
1515
|
+
let u = Pn(e.slice(c + 1, l), t), d = o === "var" ? jn(u, t) : Nn(u);
|
|
1496
1516
|
n += e.slice(r, s), n += d ?? `${o}(${u})`, r = l + 1, i.lastIndex = r;
|
|
1497
1517
|
}
|
|
1498
1518
|
return n + e.slice(r);
|
|
1499
1519
|
}
|
|
1500
|
-
function
|
|
1501
|
-
let n = new
|
|
1520
|
+
function Fn(e, t) {
|
|
1521
|
+
let n = new Dn();
|
|
1502
1522
|
for (let [e, r] of Object.entries(t)) n.declare(e, r);
|
|
1503
|
-
return
|
|
1523
|
+
return Pn(e, n);
|
|
1504
1524
|
}
|
|
1505
|
-
var
|
|
1506
|
-
function
|
|
1507
|
-
|
|
1525
|
+
var In = /(--[\w-]+)\s*:\s*([^;{}]+)/g, Ln = /(\s)([\w:.-]+)(=)("[^"]*"|'[^']*')/g, Rn = /* @__PURE__ */ new Set(["data-src"]);
|
|
1526
|
+
function zn(e, t) {
|
|
1527
|
+
In.lastIndex = 0;
|
|
1508
1528
|
let n;
|
|
1509
|
-
for (; (n =
|
|
1529
|
+
for (; (n = In.exec(e)) !== null;) {
|
|
1510
1530
|
let [, e, r] = n;
|
|
1511
1531
|
e !== void 0 && r !== void 0 && t.declare(e, r.trim());
|
|
1512
1532
|
}
|
|
1513
1533
|
}
|
|
1514
|
-
function
|
|
1515
|
-
return e.replace(
|
|
1516
|
-
if (
|
|
1534
|
+
function Bn(e, t) {
|
|
1535
|
+
return e.replace(Ln, (e, n, r, i, a) => {
|
|
1536
|
+
if (Rn.has(r)) return e;
|
|
1517
1537
|
let o = a[0] ?? "\"";
|
|
1518
|
-
return `${n}${r}${i}${o}${
|
|
1538
|
+
return `${n}${r}${i}${o}${Pn(a.slice(1, -1), t)}${o}`;
|
|
1519
1539
|
});
|
|
1520
1540
|
}
|
|
1521
|
-
function
|
|
1522
|
-
let n = new
|
|
1541
|
+
function Vn(e, t) {
|
|
1542
|
+
let n = new Dn();
|
|
1523
1543
|
n.declare("--bg", t.bg), n.declare("--fg", t.fg), t.line && n.declare("--line", t.line), t.accent && n.declare("--accent", t.accent), t.muted && n.declare("--muted", t.muted), t.surface && n.declare("--surface", t.surface), t.border && n.declare("--border", t.border);
|
|
1524
1544
|
for (let t of e.matchAll(/<style[^>]*>([\s\S]*?)<\/style>/g)) {
|
|
1525
1545
|
let e = t[1];
|
|
1526
|
-
e !== void 0 &&
|
|
1546
|
+
e !== void 0 && zn(e, n);
|
|
1527
1547
|
}
|
|
1528
1548
|
for (let t of e.matchAll(/\sstyle=("[^"]*"|'[^']*')/g)) {
|
|
1529
1549
|
let e = t[1];
|
|
1530
|
-
e !== void 0 &&
|
|
1550
|
+
e !== void 0 && zn(e.slice(1, -1), n);
|
|
1531
1551
|
}
|
|
1532
1552
|
let r = "", i = 0;
|
|
1533
1553
|
for (; i < e.length;) {
|
|
@@ -1536,7 +1556,7 @@ function pn(e, t) {
|
|
|
1536
1556
|
if (r += e.slice(i, t), e.startsWith("<style", t)) {
|
|
1537
1557
|
let a = e.indexOf(">", t), o = e.indexOf("</style>", t);
|
|
1538
1558
|
if (a === -1 || o === -1) break;
|
|
1539
|
-
r += e.slice(t, a + 1), r +=
|
|
1559
|
+
r += e.slice(t, a + 1), r += Pn(e.slice(a + 1, o), n), r += "</style>", i = o + 8;
|
|
1540
1560
|
continue;
|
|
1541
1561
|
}
|
|
1542
1562
|
let a = -1, o = null;
|
|
@@ -1551,13 +1571,13 @@ function pn(e, t) {
|
|
|
1551
1571
|
}
|
|
1552
1572
|
if (a === -1) break;
|
|
1553
1573
|
let s = e.slice(t, a + 1);
|
|
1554
|
-
r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s :
|
|
1574
|
+
r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s : Bn(s, n), i = a + 1;
|
|
1555
1575
|
}
|
|
1556
1576
|
return r + e.slice(i);
|
|
1557
1577
|
}
|
|
1558
1578
|
//#endregion
|
|
1559
1579
|
//#region packages/svg-renderer/src/class/layout.ts
|
|
1560
|
-
var
|
|
1580
|
+
var W = {
|
|
1561
1581
|
padding: 40,
|
|
1562
1582
|
boxPadX: 8,
|
|
1563
1583
|
headerBaseHeight: 32,
|
|
@@ -1573,16 +1593,16 @@ var K = {
|
|
|
1573
1593
|
notePadX: 10,
|
|
1574
1594
|
notePadY: 6
|
|
1575
1595
|
};
|
|
1576
|
-
function
|
|
1596
|
+
function Hn(e) {
|
|
1577
1597
|
return `note ${e}`;
|
|
1578
1598
|
}
|
|
1579
|
-
function
|
|
1599
|
+
function Un(e) {
|
|
1580
1600
|
return `${e} link`;
|
|
1581
1601
|
}
|
|
1582
|
-
function
|
|
1583
|
-
let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i =
|
|
1602
|
+
function Wn(e, t) {
|
|
1603
|
+
let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = P(t.fontSizes);
|
|
1584
1604
|
for (let t of e.classes) {
|
|
1585
|
-
let e = t.annotation ?
|
|
1605
|
+
let e = t.annotation ? W.headerBaseHeight + W.annotationHeight : W.headerBaseHeight, r = t.attributes.length > 0 ? t.attributes.length * W.memberRowHeight + W.sectionPadY : W.emptySectionHeight, a = t.methods.length > 0 ? t.methods.length * W.memberRowHeight + W.sectionPadY : W.emptySectionHeight, o = M(t.label, i.nodeLabel, F.nodeLabel), s = qn(t.attributes), c = qn(t.methods), l = Math.max(W.minWidth, o + W.boxPadX * 2, s + W.boxPadX * 2, c + W.boxPadX * 2), u = e + r + a;
|
|
1586
1606
|
n.set(t.id, {
|
|
1587
1607
|
width: l,
|
|
1588
1608
|
height: u,
|
|
@@ -1592,48 +1612,48 @@ function gn(e, t) {
|
|
|
1592
1612
|
});
|
|
1593
1613
|
}
|
|
1594
1614
|
let a = [];
|
|
1595
|
-
for (let [e, t] of n) a.push(
|
|
1596
|
-
let
|
|
1597
|
-
for (let [t, n] of e.relationships.entries())
|
|
1615
|
+
for (let [e, t] of n) a.push(B(e, t));
|
|
1616
|
+
let o = { fontSize: i.edgeLabel }, s = [];
|
|
1617
|
+
for (let [t, n] of e.relationships.entries()) s.push(V({
|
|
1598
1618
|
id: `e${t}`,
|
|
1599
1619
|
source: n.from,
|
|
1600
1620
|
target: n.to,
|
|
1601
1621
|
label: n.label,
|
|
1602
|
-
labelStyle:
|
|
1622
|
+
labelStyle: o
|
|
1603
1623
|
}));
|
|
1604
|
-
let
|
|
1624
|
+
let c = new Set(n.keys());
|
|
1605
1625
|
for (let [t, n] of e.notes.entries()) {
|
|
1606
|
-
let e =
|
|
1607
|
-
width:
|
|
1608
|
-
height:
|
|
1626
|
+
let e = Hn(t), l = d(n.text, i.edgeLabel, F.edgeLabel), u = {
|
|
1627
|
+
width: l.width + W.notePadX * 2,
|
|
1628
|
+
height: l.height + W.notePadY * 2
|
|
1609
1629
|
};
|
|
1610
|
-
r.set(e,
|
|
1611
|
-
id:
|
|
1630
|
+
r.set(e, u), a.push(B(e, u)), n.forClass !== void 0 && c.has(n.forClass) && s.push(V({
|
|
1631
|
+
id: Un(e),
|
|
1612
1632
|
source: e,
|
|
1613
1633
|
target: n.forClass,
|
|
1614
|
-
labelStyle:
|
|
1634
|
+
labelStyle: o
|
|
1615
1635
|
}));
|
|
1616
1636
|
}
|
|
1617
1637
|
return {
|
|
1618
1638
|
elkGraph: {
|
|
1619
1639
|
id: "root",
|
|
1620
1640
|
layoutOptions: {
|
|
1621
|
-
...
|
|
1622
|
-
direction:
|
|
1623
|
-
nodeSpacing:
|
|
1624
|
-
layerSpacing:
|
|
1625
|
-
padding:
|
|
1641
|
+
...Pe({
|
|
1642
|
+
direction: Me(void 0, je.class),
|
|
1643
|
+
nodeSpacing: W.nodeSpacing,
|
|
1644
|
+
layerSpacing: W.layerSpacing,
|
|
1645
|
+
padding: W.padding
|
|
1626
1646
|
}),
|
|
1627
1647
|
"elk.edgeLabels.placement": "CENTER"
|
|
1628
1648
|
},
|
|
1629
1649
|
children: a,
|
|
1630
|
-
edges:
|
|
1650
|
+
edges: s
|
|
1631
1651
|
},
|
|
1632
1652
|
classSizes: n,
|
|
1633
1653
|
noteSizes: r
|
|
1634
1654
|
};
|
|
1635
1655
|
}
|
|
1636
|
-
function
|
|
1656
|
+
function Gn(e, t, n, r) {
|
|
1637
1657
|
let i = /* @__PURE__ */ new Map();
|
|
1638
1658
|
for (let e of t.classes) i.set(e.id, e);
|
|
1639
1659
|
let a = [];
|
|
@@ -1658,7 +1678,7 @@ function _n(e, t, n, r) {
|
|
|
1658
1678
|
attrHeight: i.attrHeight,
|
|
1659
1679
|
methodHeight: i.methodHeight,
|
|
1660
1680
|
interaction: t.interactions.get(e.id),
|
|
1661
|
-
inlineStyle:
|
|
1681
|
+
inlineStyle: y(e.id, t),
|
|
1662
1682
|
className: t.classAssignments.get(e.id)
|
|
1663
1683
|
});
|
|
1664
1684
|
}
|
|
@@ -1669,7 +1689,7 @@ function _n(e, t, n, r) {
|
|
|
1669
1689
|
if (!t)
|
|
1670
1690
|
/* v8 ignore next */
|
|
1671
1691
|
throw Error(`Missing ELK edge for relationship ${e}`);
|
|
1672
|
-
let r =
|
|
1692
|
+
let r = st(t), i = ct(t);
|
|
1673
1693
|
o.push({
|
|
1674
1694
|
from: n.from,
|
|
1675
1695
|
to: n.to,
|
|
@@ -1688,11 +1708,11 @@ function _n(e, t, n, r) {
|
|
|
1688
1708
|
for (let t of e.children ?? []) l.set(t.id, t);
|
|
1689
1709
|
let u = [];
|
|
1690
1710
|
for (let [e, n] of t.notes.entries()) {
|
|
1691
|
-
let t =
|
|
1711
|
+
let t = Hn(e), i = l.get(t), a = r.get(t);
|
|
1692
1712
|
if (!i || !a)
|
|
1693
1713
|
/* v8 ignore next */
|
|
1694
1714
|
throw Error(`Missing layout for note ${e}`);
|
|
1695
|
-
let o = c.get(
|
|
1715
|
+
let o = c.get(Un(t));
|
|
1696
1716
|
u.push({
|
|
1697
1717
|
id: t,
|
|
1698
1718
|
text: n.text,
|
|
@@ -1701,7 +1721,7 @@ function _n(e, t, n, r) {
|
|
|
1701
1721
|
y: i.y ?? 0,
|
|
1702
1722
|
width: i.width ?? a.width,
|
|
1703
1723
|
height: i.height ?? a.height,
|
|
1704
|
-
...o ? { linkPoints:
|
|
1724
|
+
...o ? { linkPoints: st(o) } : {}
|
|
1705
1725
|
});
|
|
1706
1726
|
}
|
|
1707
1727
|
return {
|
|
@@ -1712,7 +1732,7 @@ function _n(e, t, n, r) {
|
|
|
1712
1732
|
notes: u
|
|
1713
1733
|
};
|
|
1714
1734
|
}
|
|
1715
|
-
function
|
|
1735
|
+
function Kn(e, t = {}) {
|
|
1716
1736
|
if (e.classes.length === 0 && e.notes.length === 0) return {
|
|
1717
1737
|
width: 0,
|
|
1718
1738
|
height: 0,
|
|
@@ -1720,110 +1740,110 @@ function vn(e, t = {}) {
|
|
|
1720
1740
|
relationships: [],
|
|
1721
1741
|
notes: []
|
|
1722
1742
|
};
|
|
1723
|
-
let { elkGraph: n, classSizes: r, noteSizes: i } =
|
|
1724
|
-
return
|
|
1743
|
+
let { elkGraph: n, classSizes: r, noteSizes: i } = Wn(e, t);
|
|
1744
|
+
return Gn(Te(n, t.layoutCache), e, r, i);
|
|
1725
1745
|
}
|
|
1726
|
-
function
|
|
1746
|
+
function qn(e) {
|
|
1727
1747
|
if (e.length === 0) return 0;
|
|
1728
1748
|
let t = 0;
|
|
1729
1749
|
for (let n of e) {
|
|
1730
|
-
let e =
|
|
1750
|
+
let e = Ee(re(n), W.memberFontSize);
|
|
1731
1751
|
e > t && (t = e);
|
|
1732
1752
|
}
|
|
1733
1753
|
return t;
|
|
1734
1754
|
}
|
|
1735
1755
|
//#endregion
|
|
1736
1756
|
//#region packages/svg-renderer/src/class/renderer.ts
|
|
1737
|
-
var
|
|
1757
|
+
var Jn = {
|
|
1738
1758
|
memberSize: 11,
|
|
1739
1759
|
memberWeight: 400,
|
|
1740
1760
|
annotationSize: 10,
|
|
1741
1761
|
annotationWeight: 500
|
|
1742
1762
|
};
|
|
1743
|
-
function
|
|
1744
|
-
let d = [], f = l && e.classes.some((e) => !!
|
|
1745
|
-
d.push(
|
|
1746
|
-
for (let t of e.relationships) d.push(
|
|
1747
|
-
for (let t of e.notes) d.push(
|
|
1748
|
-
for (let t of e.classes) d.push(
|
|
1749
|
-
for (let t of e.notes) d.push(
|
|
1750
|
-
for (let t of e.relationships) d.push(
|
|
1763
|
+
function Yn(e, t, r = "Inter", i = !1, a = N, o, s, c, l = !0, u = {}) {
|
|
1764
|
+
let d = [], f = l && e.classes.some((e) => !!b(e.interaction?.href));
|
|
1765
|
+
d.push(U(E(e.width, e.height, t, i, s, c, f, u.styleAttribute), o)), d.push(n(r, !0, u.nonce)), d.push("<defs>"), d.push(Xn()), d.push("</defs>");
|
|
1766
|
+
for (let t of e.relationships) d.push(tr(t));
|
|
1767
|
+
for (let t of e.notes) d.push(er(t));
|
|
1768
|
+
for (let t of e.classes) d.push(Zn(t, a, l));
|
|
1769
|
+
for (let t of e.notes) d.push($n(t, a));
|
|
1770
|
+
for (let t of e.relationships) d.push(ir(t, a));
|
|
1751
1771
|
return d.push("</svg>"), d.join("\n");
|
|
1752
1772
|
}
|
|
1753
|
-
function
|
|
1773
|
+
function Xn() {
|
|
1754
1774
|
return " <marker id=\"cls-inherit\" markerWidth=\"12\" markerHeight=\"10\" refX=\"12\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"0 0, 12 5, 0 10\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-composition\" markerWidth=\"12\" markerHeight=\"10\" refX=\"0\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"6 0, 12 5, 6 10, 0 5\" fill=\"var(--_arrow)\" stroke=\"var(--_arrow)\" stroke-width=\"1\" />\n </marker>\n <marker id=\"cls-aggregation\" markerWidth=\"12\" markerHeight=\"10\" refX=\"0\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"6 0, 12 5, 6 10, 0 5\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-arrow\" markerWidth=\"8\" markerHeight=\"6\" refX=\"8\" refY=\"3\" orient=\"auto-start-reverse\">\n <polyline points=\"0 0, 8 3, 0 6\" fill=\"none\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>";
|
|
1755
1775
|
}
|
|
1756
|
-
function
|
|
1757
|
-
let { x:
|
|
1758
|
-
`class="${
|
|
1759
|
-
`data-id="${
|
|
1760
|
-
`data-label="${
|
|
1776
|
+
function Zn(e, t, n = !0) {
|
|
1777
|
+
let { x: r, y: a, width: o, height: c, headerHeight: u, attrHeight: d, inlineStyle: f } = e, p = [], m = e.interaction, h = i(f?.fill ?? "var(--_node-fill)"), g = i(f?.stroke ?? "var(--_node-stroke)"), v = i(f?.["stroke-width"] ?? String(L.outerBox)), y = f?.fill ? h : "var(--_group-hdr)", S = f?.color ? i(f.color) : f?.fill ? i(l(f.fill, "var(--_text)")) : void 0, C = e.annotation ? s` data-annotation="${i(e.annotation)}"` : "", w = x(e.className), T = [
|
|
1778
|
+
s`class="${w ? s`class-node ${w}` : "class-node"}"`,
|
|
1779
|
+
s`data-id="${i(e.id)}"`,
|
|
1780
|
+
s`data-label="${i(e.label)}"`
|
|
1761
1781
|
];
|
|
1762
|
-
|
|
1763
|
-
let
|
|
1764
|
-
if (
|
|
1765
|
-
let e =
|
|
1766
|
-
|
|
1767
|
-
}
|
|
1768
|
-
|
|
1769
|
-
let
|
|
1782
|
+
p.push(s`<g ${T.join(" ")}${C}>`);
|
|
1783
|
+
let E = n ? b(m?.href) : void 0;
|
|
1784
|
+
if (E) {
|
|
1785
|
+
let e = m?.target ? s` target="${i(m.target)}"` : "";
|
|
1786
|
+
p.push(s` <a href="${i(E)}"${e}>`);
|
|
1787
|
+
}
|
|
1788
|
+
n && m?.tooltip && p.push(s` <title>${sr(m.tooltip)}</title>`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${c}" ` + s`rx="0" ry="0" fill="${h}" stroke="${g}" stroke-width="${v}" />`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${u}" ` + s`rx="0" ry="0" fill="${y}" stroke="${g}" stroke-width="${v}" />`);
|
|
1789
|
+
let D = a + u / 2;
|
|
1770
1790
|
if (e.annotation) {
|
|
1771
|
-
let t =
|
|
1772
|
-
|
|
1791
|
+
let t = a + 12;
|
|
1792
|
+
p.push(s` <text x="${r + o / 2}" y="${t}" text-anchor="middle" dy="${R}" ` + s`font-size="${Jn.annotationSize}" font-weight="${Jn.annotationWeight}" ` + s`font-style="italic" fill="${S ?? "var(--_text-muted)"}"><<${sr(e.annotation)}>></text>`), D = a + u / 2 + 6;
|
|
1773
1793
|
}
|
|
1774
|
-
|
|
1775
|
-
let
|
|
1776
|
-
|
|
1794
|
+
p.push(" " + _(e.label, r + o / 2, D, t.nodeLabel, s`text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="${S ?? "var(--_text)"}"`));
|
|
1795
|
+
let O = a + u;
|
|
1796
|
+
p.push(s` <line x1="${r}" y1="${O}" x2="${r + o}" y2="${O}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
|
|
1777
1797
|
for (let t = 0; t < e.attributes.length; t++) {
|
|
1778
|
-
let n = e.attributes[t],
|
|
1779
|
-
|
|
1798
|
+
let n = e.attributes[t], i = O + 4 + t * 20 + 10;
|
|
1799
|
+
p.push(" " + Qn(n, r + W.boxPadX, i, S));
|
|
1780
1800
|
}
|
|
1781
|
-
let
|
|
1782
|
-
|
|
1801
|
+
let k = O + d;
|
|
1802
|
+
p.push(s` <line x1="${r}" y1="${k}" x2="${r + o}" y2="${k}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
|
|
1783
1803
|
for (let t = 0; t < e.methods.length; t++) {
|
|
1784
|
-
let n = e.methods[t],
|
|
1785
|
-
|
|
1804
|
+
let n = e.methods[t], i = k + 4 + t * 20 + 10;
|
|
1805
|
+
p.push(" " + Qn(n, r + W.boxPadX, i, S));
|
|
1786
1806
|
}
|
|
1787
|
-
return
|
|
1807
|
+
return E && p.push(" </a>"), p.push("</g>"), p.join("\n");
|
|
1788
1808
|
}
|
|
1789
|
-
function
|
|
1790
|
-
let i = e.isAbstract ? " font-style=\"italic\"" : "", a = e.isStatic ? " text-decoration=\"underline\"" : "", o = r ?? "var(--_text-faint)",
|
|
1791
|
-
e.visibility &&
|
|
1792
|
-
let
|
|
1793
|
-
return
|
|
1794
|
-
}
|
|
1795
|
-
var
|
|
1796
|
-
function
|
|
1797
|
-
let { x:
|
|
1798
|
-
`${
|
|
1799
|
-
`${
|
|
1800
|
-
`${
|
|
1801
|
-
`${
|
|
1802
|
-
`${
|
|
1803
|
-
].join(" "),
|
|
1804
|
-
return `<g class="class-note"${s
|
|
1805
|
-
}
|
|
1806
|
-
function
|
|
1809
|
+
function Qn(e, t, n, r) {
|
|
1810
|
+
let i = e.isAbstract ? " font-style=\"italic\"" : "", a = e.isStatic ? " text-decoration=\"underline\"" : "", o = r ?? "var(--_text-faint)", c = r ?? "var(--_text-sec)", l = r ?? "var(--_text-muted)", u = [];
|
|
1811
|
+
e.visibility && u.push(s`<tspan fill="${o}">${sr(e.visibility)} </tspan>`);
|
|
1812
|
+
let d = e.isMethod ? s`${e.name}(${e.params || ""})` : e.name;
|
|
1813
|
+
return u.push(s`<tspan fill="${c}">${sr(d)}</tspan>`), e.type && (u.push(s`<tspan fill="${o}">: </tspan>`), u.push(s`<tspan fill="${l}">${sr(e.type)}</tspan>`)), s`<text x="${t}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${Jn.memberSize}" font-weight="${Jn.memberWeight}"${i}${a}>` + s`${u.join("")}</text>`;
|
|
1814
|
+
}
|
|
1815
|
+
var G = 6;
|
|
1816
|
+
function $n(e, t) {
|
|
1817
|
+
let { x: n, y: r, width: a, height: o } = e, c = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`, l = [
|
|
1818
|
+
s`${n},${r}`,
|
|
1819
|
+
s`${n + a - G},${r}`,
|
|
1820
|
+
s`${n + a},${r + G}`,
|
|
1821
|
+
s`${n + a},${r + o}`,
|
|
1822
|
+
s`${n},${r + o}`
|
|
1823
|
+
].join(" "), u = s`${n + a - G},${r} ${n + a},${r + G} ` + s`${n + a - G},${r + G}`;
|
|
1824
|
+
return s`<g class="class-note"${c}>` + s`\n <polygon points="${l}" ` + s`fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n <polygon points="${u}" ` + s`fill="var(--_inner-stroke)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n ${_(e.text, n + a / 2, r + o / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`)}` + "\n</g>";
|
|
1825
|
+
}
|
|
1826
|
+
function er(e) {
|
|
1807
1827
|
if (!e.linkPoints || e.linkPoints.length < 2) return "";
|
|
1808
|
-
let t = e.linkPoints.map((e) => `${e.x},${e.y}`).join(" ")
|
|
1809
|
-
return `<polyline class="class-note-link"${
|
|
1828
|
+
let t = e.linkPoints.map((e) => s`${e.x},${e.y}`).join(" "), n = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`;
|
|
1829
|
+
return s`<polyline class="class-note-link"${n} points="${t}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.connector}" stroke-dasharray="2 3" />`;
|
|
1810
1830
|
}
|
|
1811
|
-
function
|
|
1831
|
+
function tr(e) {
|
|
1812
1832
|
if (e.points.length < 2) return "";
|
|
1813
|
-
let t = e.points.map((e) => `${e.x},${e.y}`).join(" "),
|
|
1833
|
+
let t = e.points.map((e) => s`${e.x},${e.y}`).join(" "), n = e.type === "dependency" || e.type === "realization" ? " stroke-dasharray=\"6 4\"" : "", r = nr(e.type, e.markerAt), a = [
|
|
1814
1834
|
"class=\"class-relationship\"",
|
|
1815
|
-
`data-from="${
|
|
1816
|
-
`data-to="${
|
|
1817
|
-
`data-type="${e.type}"`,
|
|
1818
|
-
`data-marker-at="${e.markerAt}"`
|
|
1835
|
+
s`data-from="${i(e.from)}"`,
|
|
1836
|
+
s`data-to="${i(e.to)}"`,
|
|
1837
|
+
s`data-type="${e.type}"`,
|
|
1838
|
+
s`data-marker-at="${e.markerAt}"`
|
|
1819
1839
|
];
|
|
1820
|
-
return e.label && a.push(`data-label="${
|
|
1840
|
+
return e.label && a.push(s`data-label="${i(e.label)}"`), e.fromCardinality && a.push(s`data-from-cardinality="${i(e.fromCardinality)}"`), e.toCardinality && a.push(s`data-to-cardinality="${i(e.toCardinality)}"`), s`<polyline ${a.join(" ")} points="${t}" fill="none" stroke="var(--_line)" ` + s`stroke-width="${L.connector}"${n}${r} />`;
|
|
1821
1841
|
}
|
|
1822
|
-
function
|
|
1823
|
-
let n =
|
|
1824
|
-
return n ? t === "from" ? ` marker-start="url(#${n})"` : ` marker-end="url(#${n})"` : "";
|
|
1842
|
+
function nr(e, t) {
|
|
1843
|
+
let n = rr(e);
|
|
1844
|
+
return n ? t === "from" ? s` marker-start="url(#${n})"` : s` marker-end="url(#${n})"` : "";
|
|
1825
1845
|
}
|
|
1826
|
-
function
|
|
1846
|
+
function rr(e) {
|
|
1827
1847
|
switch (e) {
|
|
1828
1848
|
case "inheritance":
|
|
1829
1849
|
case "realization": return "cls-inherit";
|
|
@@ -1834,30 +1854,30 @@ function An(e) {
|
|
|
1834
1854
|
default: return null;
|
|
1835
1855
|
}
|
|
1836
1856
|
}
|
|
1837
|
-
function
|
|
1857
|
+
function ir(e, t) {
|
|
1838
1858
|
if (!e.label && !e.fromCardinality && !e.toCardinality || e.points.length < 2) return "";
|
|
1839
1859
|
let n = [];
|
|
1840
1860
|
if (e.label) {
|
|
1841
|
-
let r = e.labelPosition ??
|
|
1842
|
-
n.push(
|
|
1861
|
+
let r = e.labelPosition ?? ar(e.points);
|
|
1862
|
+
n.push(_(e.label, r.x, r.y - 8, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
1843
1863
|
}
|
|
1844
1864
|
if (e.fromCardinality && e.points.length >= 2) {
|
|
1845
|
-
let r = e.points[0], i = e.points[1], a =
|
|
1846
|
-
n.push(
|
|
1865
|
+
let r = e.points[0], i = e.points[1], a = or(r, i);
|
|
1866
|
+
n.push(_(e.fromCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
1847
1867
|
}
|
|
1848
1868
|
if (e.toCardinality && e.points.length >= 2) {
|
|
1849
|
-
let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a =
|
|
1850
|
-
n.push(
|
|
1869
|
+
let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a = or(r, i);
|
|
1870
|
+
n.push(_(e.toCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
1851
1871
|
}
|
|
1852
1872
|
return n.join("\n");
|
|
1853
1873
|
}
|
|
1854
|
-
function
|
|
1874
|
+
function ar(e) {
|
|
1855
1875
|
return e.length === 0 ? {
|
|
1856
1876
|
x: 0,
|
|
1857
1877
|
y: 0
|
|
1858
1878
|
} : e[Math.floor(e.length / 2)];
|
|
1859
1879
|
}
|
|
1860
|
-
function
|
|
1880
|
+
function or(e, t) {
|
|
1861
1881
|
let n = t.x - e.x, r = t.y - e.y;
|
|
1862
1882
|
return Math.abs(n) > Math.abs(r) ? {
|
|
1863
1883
|
x: n > 0 ? 14 : -14,
|
|
@@ -1867,7 +1887,7 @@ function Nn(e, t) {
|
|
|
1867
1887
|
y: r > 0 ? 14 : -14
|
|
1868
1888
|
};
|
|
1869
1889
|
}
|
|
1870
|
-
var
|
|
1890
|
+
var sr = a, K = {
|
|
1871
1891
|
padding: 40,
|
|
1872
1892
|
boxPadX: 14,
|
|
1873
1893
|
headerHeight: 34,
|
|
@@ -1878,24 +1898,24 @@ var Pn = r, q = {
|
|
|
1878
1898
|
nodeSpacing: 70,
|
|
1879
1899
|
layerSpacing: 90
|
|
1880
1900
|
};
|
|
1881
|
-
function
|
|
1882
|
-
let n = /* @__PURE__ */ new Map(), r =
|
|
1901
|
+
function cr(e, t) {
|
|
1902
|
+
let n = /* @__PURE__ */ new Map(), r = P(t.fontSizes);
|
|
1883
1903
|
for (let t of e.entities) {
|
|
1884
|
-
let e =
|
|
1904
|
+
let e = M(t.label, r.nodeLabel, F.nodeLabel), i = 0;
|
|
1885
1905
|
for (let e of t.attributes) {
|
|
1886
|
-
let t =
|
|
1906
|
+
let t = Ee(`${e.type} ${e.name}${e.keys.length > 0 ? " " + e.keys.join(",") : ""}`, K.attrFontSize);
|
|
1887
1907
|
t > i && (i = t);
|
|
1888
1908
|
}
|
|
1889
|
-
let a = Math.max(
|
|
1909
|
+
let a = Math.max(K.minWidth, e + K.boxPadX * 2, i + K.boxPadX * 2), o = K.headerHeight + Math.max(t.attributes.length, 1) * K.rowHeight;
|
|
1890
1910
|
n.set(t.id, {
|
|
1891
1911
|
width: a,
|
|
1892
1912
|
height: o
|
|
1893
1913
|
});
|
|
1894
1914
|
}
|
|
1895
1915
|
let i = [];
|
|
1896
|
-
for (let [e, t] of n) i.push(
|
|
1916
|
+
for (let [e, t] of n) i.push(B(e, t));
|
|
1897
1917
|
let a = { fontSize: r.edgeLabel }, o = [];
|
|
1898
|
-
for (let [t, n] of e.relationships.entries()) o.push(
|
|
1918
|
+
for (let [t, n] of e.relationships.entries()) o.push(V({
|
|
1899
1919
|
id: `e${t}`,
|
|
1900
1920
|
source: n.entity1,
|
|
1901
1921
|
target: n.entity2,
|
|
@@ -1906,11 +1926,11 @@ function Fn(e, t) {
|
|
|
1906
1926
|
elkGraph: {
|
|
1907
1927
|
id: "root",
|
|
1908
1928
|
layoutOptions: {
|
|
1909
|
-
...
|
|
1910
|
-
direction:
|
|
1911
|
-
nodeSpacing:
|
|
1912
|
-
layerSpacing:
|
|
1913
|
-
padding:
|
|
1929
|
+
...Pe({
|
|
1930
|
+
direction: Me(e.direction, je.er),
|
|
1931
|
+
nodeSpacing: K.nodeSpacing,
|
|
1932
|
+
layerSpacing: K.layerSpacing,
|
|
1933
|
+
padding: K.padding
|
|
1914
1934
|
}),
|
|
1915
1935
|
"elk.edgeLabels.placement": "CENTER"
|
|
1916
1936
|
},
|
|
@@ -1920,7 +1940,7 @@ function Fn(e, t) {
|
|
|
1920
1940
|
entitySizes: n
|
|
1921
1941
|
};
|
|
1922
1942
|
}
|
|
1923
|
-
function
|
|
1943
|
+
function lr(e, t, n) {
|
|
1924
1944
|
let r = /* @__PURE__ */ new Map();
|
|
1925
1945
|
for (let e of t.entities) r.set(e.id, e);
|
|
1926
1946
|
let i = [];
|
|
@@ -1939,14 +1959,14 @@ function In(e, t, n) {
|
|
|
1939
1959
|
y: t.y ?? 0,
|
|
1940
1960
|
width: t.width ?? r.width,
|
|
1941
1961
|
height: t.height ?? r.height,
|
|
1942
|
-
headerHeight:
|
|
1943
|
-
rowHeight:
|
|
1962
|
+
headerHeight: K.headerHeight,
|
|
1963
|
+
rowHeight: K.rowHeight
|
|
1944
1964
|
});
|
|
1945
1965
|
}
|
|
1946
1966
|
}
|
|
1947
1967
|
let a = [];
|
|
1948
1968
|
for (let [n, r] of (e.edges ?? []).entries()) {
|
|
1949
|
-
let e = t.relationships[n], i =
|
|
1969
|
+
let e = t.relationships[n], i = st(r);
|
|
1950
1970
|
a.push({
|
|
1951
1971
|
entity1: e.entity1,
|
|
1952
1972
|
entity2: e.entity2,
|
|
@@ -1964,101 +1984,101 @@ function In(e, t, n) {
|
|
|
1964
1984
|
relationships: a
|
|
1965
1985
|
};
|
|
1966
1986
|
}
|
|
1967
|
-
function
|
|
1987
|
+
function ur(e, t = {}) {
|
|
1968
1988
|
if (e.entities.length === 0) return {
|
|
1969
1989
|
width: 0,
|
|
1970
1990
|
height: 0,
|
|
1971
1991
|
entities: [],
|
|
1972
1992
|
relationships: []
|
|
1973
1993
|
};
|
|
1974
|
-
let { elkGraph: n, entitySizes: r } =
|
|
1975
|
-
return
|
|
1994
|
+
let { elkGraph: n, entitySizes: r } = cr(e, t);
|
|
1995
|
+
return lr(Te(n, t.layoutCache), e, r);
|
|
1976
1996
|
}
|
|
1977
1997
|
//#endregion
|
|
1978
1998
|
//#region packages/svg-renderer/src/er/renderer.ts
|
|
1979
|
-
var
|
|
1999
|
+
var q = {
|
|
1980
2000
|
attrSize: 11,
|
|
1981
2001
|
attrWeight: 400,
|
|
1982
2002
|
keySize: 9,
|
|
1983
2003
|
keyWeight: 600
|
|
1984
2004
|
};
|
|
1985
|
-
function
|
|
2005
|
+
function dr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
|
|
1986
2006
|
let u = [];
|
|
1987
|
-
u.push(
|
|
1988
|
-
for (let t of e.relationships) u.push(
|
|
1989
|
-
for (let t of e.entities) u.push(
|
|
1990
|
-
for (let t of e.relationships) u.push(
|
|
1991
|
-
for (let t of e.relationships) u.push(
|
|
2007
|
+
u.push(U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !0, l.nonce)), u.push("<defs>"), u.push("</defs>");
|
|
2008
|
+
for (let t of e.relationships) u.push(mr(t));
|
|
2009
|
+
for (let t of e.entities) u.push(fr(t, a));
|
|
2010
|
+
for (let t of e.relationships) u.push(gr(t));
|
|
2011
|
+
for (let t of e.relationships) u.push(hr(t, a));
|
|
1992
2012
|
return u.push("</svg>"), u.join("\n");
|
|
1993
2013
|
}
|
|
1994
|
-
function
|
|
1995
|
-
let { id:
|
|
1996
|
-
p.push(`<g class="entity" data-id="${n
|
|
1997
|
-
let m = a +
|
|
1998
|
-
p.push(` <line x1="${
|
|
2014
|
+
function fr(e, t) {
|
|
2015
|
+
let { id: n, x: r, y: a, width: o, height: c, headerHeight: l, rowHeight: u, label: d, attributes: f } = e, p = [];
|
|
2016
|
+
p.push(s`<g class="entity" data-id="${i(n)}" data-label="${i(d)}">`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${c}" ` + s`rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${l}" ` + s`rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), p.push(" " + _(d, r + o / 2, a + l / 2, t.nodeLabel, s`text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="var(--_text)"`));
|
|
2017
|
+
let m = a + l;
|
|
2018
|
+
p.push(s` <line x1="${r}" y1="${m}" x2="${r + o}" y2="${m}" ` + s`stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`);
|
|
1999
2019
|
for (let e = 0; e < f.length; e++) {
|
|
2000
|
-
let t = f[e], n = m + e *
|
|
2001
|
-
p.push(" " +
|
|
2020
|
+
let t = f[e], n = m + e * u + u / 2;
|
|
2021
|
+
p.push(" " + pr(t, r, n, o).replace(/\n/g, "\n "));
|
|
2002
2022
|
}
|
|
2003
|
-
return f.length === 0 && p.push(` <text x="${
|
|
2023
|
+
return f.length === 0 && p.push(s` <text x="${r + o / 2}" y="${m + u / 2}" text-anchor="middle" dy="${R}" ` + s`font-size="${q.attrSize}" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>`), p.push("</g>"), p.join("\n");
|
|
2004
2024
|
}
|
|
2005
|
-
function
|
|
2025
|
+
function pr(e, t, n, r) {
|
|
2006
2026
|
let i = [], a = e.comment && e.comment.length > 0;
|
|
2007
2027
|
if (e.comment && e.comment.length > 0) {
|
|
2008
2028
|
let t = e.comment.replace(/<br\s*\/?>/gi, "\n");
|
|
2009
|
-
i.push(`<g><title>${
|
|
2029
|
+
i.push(s`<g><title>${yr(t)}</title>`);
|
|
2010
2030
|
}
|
|
2011
2031
|
let o = 0;
|
|
2012
|
-
e.keys.length > 0 && (o =
|
|
2013
|
-
let
|
|
2014
|
-
i.push(`<text x="${
|
|
2015
|
-
let
|
|
2016
|
-
return i.push(`<text x="${
|
|
2032
|
+
e.keys.length > 0 && (o = M(e.keys.join(","), q.keySize, q.keyWeight) + 8, i.push(s`<rect x="${t + 6}" y="${n - 7}" width="${o}" height="14" rx="2" ry="2" ` + "fill=\"var(--_key-badge)\" />"), i.push(s`<text x="${t + 6 + o / 2}" y="${n}" text-anchor="middle" dy="${R}" ` + s`font-size="${q.keySize}" font-weight="${q.keyWeight}" fill="var(--_text-sec)">${e.keys.join(",")}</text>`));
|
|
2033
|
+
let c = t + 8 + (o > 0 ? o + 6 : 0);
|
|
2034
|
+
i.push(s`<text x="${c}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${q.attrSize}" font-weight="${q.attrWeight}">` + s`<tspan fill="var(--_text-muted)">${yr(e.type)}</tspan></text>`);
|
|
2035
|
+
let l = t + r - 8;
|
|
2036
|
+
return i.push(s`<text x="${l}" y="${n}" class="mono" text-anchor="end" dy="${R}" ` + s`font-size="${q.attrSize}" font-weight="${q.attrWeight}">` + s`<tspan fill="var(--_text-sec)">${yr(e.name)}</tspan></text>`), a && i.push("</g>"), i.join("\n");
|
|
2017
2037
|
}
|
|
2018
|
-
function
|
|
2038
|
+
function mr(e) {
|
|
2019
2039
|
if (e.points.length < 2) return "";
|
|
2020
|
-
let t = e.points.map((e) => `${e.x},${e.y}`).join(" "),
|
|
2021
|
-
return `<polyline ${[
|
|
2040
|
+
let t = e.points.map((e) => s`${e.x},${e.y}`).join(" "), n = e.identifying ? "" : " stroke-dasharray=\"6 4\"", r = e.label ? s` data-label="${i(e.label)}"` : "", a = [
|
|
2022
2041
|
"class=\"er-relationship\"",
|
|
2023
|
-
`data-entity1="${
|
|
2024
|
-
`data-entity2="${
|
|
2025
|
-
`data-cardinality1="${e.cardinality1}"`,
|
|
2026
|
-
`data-cardinality2="${e.cardinality2}"`,
|
|
2027
|
-
`data-identifying="${e.identifying}"`
|
|
2028
|
-
]
|
|
2029
|
-
}
|
|
2030
|
-
|
|
2042
|
+
s`data-entity1="${i(e.entity1)}"`,
|
|
2043
|
+
s`data-entity2="${i(e.entity2)}"`,
|
|
2044
|
+
s`data-cardinality1="${e.cardinality1}"`,
|
|
2045
|
+
s`data-cardinality2="${e.cardinality2}"`,
|
|
2046
|
+
s`data-identifying="${e.identifying}"`
|
|
2047
|
+
];
|
|
2048
|
+
return s`<polyline ${a.join(" ")}${r} points="${t}" fill="none" stroke="var(--_line)" ` + s`stroke-width="${L.connector}"${n} />`;
|
|
2049
|
+
}
|
|
2050
|
+
function hr(e, t) {
|
|
2031
2051
|
if (!e.label || e.points.length < 2) return "";
|
|
2032
|
-
let n =
|
|
2033
|
-
return `<rect x="${n.x - i / 2}" y="${n.y - a / 2}" width="${i}" height="${a}" rx="2" ry="2" fill
|
|
2052
|
+
let n = vr(e.points), r = d(e.label, t.edgeLabel, F.edgeLabel), i = r.width + 8, a = r.height + 6;
|
|
2053
|
+
return s`<rect x="${n.x - i / 2}" y="${n.y - a / 2}" width="${i}" height="${a}" rx="2" ry="2" ` + "fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"0.5\" />" + s`\n${_(e.label, n.x, n.y, t.edgeLabel, s`text-anchor="middle" font-size="${t.edgeLabel}" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`)}`;
|
|
2034
2054
|
}
|
|
2035
|
-
function
|
|
2055
|
+
function gr(e) {
|
|
2036
2056
|
if (e.points.length < 2) return "";
|
|
2037
2057
|
let t = [], n = e.points[0], r = e.points[1];
|
|
2038
|
-
t.push(
|
|
2058
|
+
t.push(_r(n, r, e.cardinality1));
|
|
2039
2059
|
let i = e.points[e.points.length - 1], a = e.points[e.points.length - 2];
|
|
2040
|
-
return t.push(
|
|
2060
|
+
return t.push(_r(i, a, e.cardinality2)), t.join("\n");
|
|
2041
2061
|
}
|
|
2042
|
-
function
|
|
2043
|
-
let r = [], i =
|
|
2044
|
-
if (
|
|
2045
|
-
let
|
|
2046
|
-
if (g) {
|
|
2047
|
-
r.push(`<line x1="${f + u * 6}" y1="${p + d * 6}" x2="${f - u * 6}" y2="${p - d * 6}" stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2048
|
-
let e = f - c * 4, t = p - l * 4;
|
|
2049
|
-
r.push(`<line x1="${e + u * 6}" y1="${t + d * 6}" x2="${e - u * 6}" y2="${t - d * 6}" stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2050
|
-
}
|
|
2062
|
+
function _r(e, t, n) {
|
|
2063
|
+
let r = [], i = L.connector + .25, a = e.x - t.x, o = e.y - t.y, c = Math.sqrt(a * a + o * o);
|
|
2064
|
+
if (c === 0) return "";
|
|
2065
|
+
let l = a / c, u = o / c, d = -u, f = l, p = e.x - l * 4, m = e.y - u * 4, h = e.x - l * 16, g = e.y - u * 16, _ = n === "one" || n === "zero-one", v = n === "many" || n === "zero-many", y = n === "zero-one" || n === "zero-many";
|
|
2051
2066
|
if (_) {
|
|
2052
|
-
|
|
2053
|
-
|
|
2067
|
+
r.push(s`<line x1="${p + d * 6}" y1="${m + f * 6}" ` + s`x2="${p - d * 6}" y2="${m - f * 6}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2068
|
+
let e = p - l * 4, t = m - u * 4;
|
|
2069
|
+
r.push(s`<line x1="${e + d * 6}" y1="${t + f * 6}" ` + s`x2="${e - d * 6}" y2="${t - f * 6}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2054
2070
|
}
|
|
2055
2071
|
if (v) {
|
|
2056
|
-
let
|
|
2057
|
-
r.push(`<
|
|
2072
|
+
let e = p, t = m;
|
|
2073
|
+
r.push(s`<line x1="${e + d * 7}" y1="${t + f * 7}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`), r.push(s`<line x1="${e}" y1="${t}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`), r.push(s`<line x1="${e - d * 7}" y1="${t - f * 7}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2074
|
+
}
|
|
2075
|
+
if (y) {
|
|
2076
|
+
let t = v ? 20 : 12, n = e.x - l * t, a = e.y - u * t;
|
|
2077
|
+
r.push(s`<circle cx="${n}" cy="${a}" r="4" ` + s`fill="var(--bg)" stroke="var(--_line)" stroke-width="${i}" />`);
|
|
2058
2078
|
}
|
|
2059
2079
|
return r.join("\n");
|
|
2060
2080
|
}
|
|
2061
|
-
function
|
|
2081
|
+
function vr(e) {
|
|
2062
2082
|
if (e.length === 0) return {
|
|
2063
2083
|
x: 0,
|
|
2064
2084
|
y: 0
|
|
@@ -2084,7 +2104,7 @@ function Gn(e) {
|
|
|
2084
2104
|
}
|
|
2085
2105
|
return e[e.length - 1];
|
|
2086
2106
|
}
|
|
2087
|
-
var
|
|
2107
|
+
var yr = a, J = {
|
|
2088
2108
|
padding: 30,
|
|
2089
2109
|
actorGap: 140,
|
|
2090
2110
|
actorHeight: 40,
|
|
@@ -2106,20 +2126,20 @@ var Kn = r, qn = {
|
|
|
2106
2126
|
noteStackGap: 4,
|
|
2107
2127
|
boxPad: 10
|
|
2108
2128
|
};
|
|
2109
|
-
function
|
|
2129
|
+
function br(e) {
|
|
2110
2130
|
return e + 8;
|
|
2111
2131
|
}
|
|
2112
|
-
function
|
|
2132
|
+
function xr(e) {
|
|
2113
2133
|
return {
|
|
2114
|
-
...
|
|
2115
|
-
actorHeight: e?.actorHeight ??
|
|
2116
|
-
headerGap: e?.headerGap ??
|
|
2117
|
-
messageRowHeight: e?.messageRowHeight ??
|
|
2118
|
-
noteOffsetAfterMessage: e?.noteOffsetAfterMessage ??
|
|
2119
|
-
noteStackGap: e?.noteStackGap ??
|
|
2134
|
+
...J,
|
|
2135
|
+
actorHeight: e?.actorHeight ?? J.actorHeight,
|
|
2136
|
+
headerGap: e?.headerGap ?? J.headerGap,
|
|
2137
|
+
messageRowHeight: e?.messageRowHeight ?? J.messageRowHeight,
|
|
2138
|
+
noteOffsetAfterMessage: e?.noteOffsetAfterMessage ?? J.noteOffsetAfterMessage,
|
|
2139
|
+
noteStackGap: e?.noteStackGap ?? J.noteStackGap
|
|
2120
2140
|
};
|
|
2121
2141
|
}
|
|
2122
|
-
function
|
|
2142
|
+
function Sr(e, t = {}) {
|
|
2123
2143
|
if (e.actors.length === 0) return {
|
|
2124
2144
|
width: 0,
|
|
2125
2145
|
height: 0,
|
|
@@ -2131,8 +2151,8 @@ function Xn(e, t = {}) {
|
|
|
2131
2151
|
notes: [],
|
|
2132
2152
|
boxes: []
|
|
2133
2153
|
};
|
|
2134
|
-
let n =
|
|
2135
|
-
let t =
|
|
2154
|
+
let n = xr(t.sequence), r = P(t.fontSizes), i = e.actors.map((e) => {
|
|
2155
|
+
let t = M(e.label, r.nodeLabel, F.nodeLabel);
|
|
2136
2156
|
return Math.max(t + n.actorPadX * 2, 80);
|
|
2137
2157
|
}), a = [], o = n.padding + i[0] / 2;
|
|
2138
2158
|
for (let t = 0; t < e.actors.length; t++) {
|
|
@@ -2144,7 +2164,7 @@ function Xn(e, t = {}) {
|
|
|
2144
2164
|
}
|
|
2145
2165
|
let s = /* @__PURE__ */ new Map();
|
|
2146
2166
|
for (let t = 0; t < e.actors.length; t++) s.set(e.actors[t].id, t);
|
|
2147
|
-
let c = e.boxes.filter((e) => e.actorIds.length > 0), l = c.some((e) => e.label !== ""), u = c.length === 0 ? 0 : n.boxPad + (l ?
|
|
2167
|
+
let c = e.boxes.filter((e) => e.actorIds.length > 0), l = c.some((e) => e.label !== ""), u = c.length === 0 ? 0 : n.boxPad + (l ? br(r.edgeLabel) : 0), d = n.padding + u, f = e.actors.map((e, t) => ({
|
|
2148
2168
|
id: e.id,
|
|
2149
2169
|
label: e.label,
|
|
2150
2170
|
type: e.type,
|
|
@@ -2179,7 +2199,7 @@ function Xn(e, t = {}) {
|
|
|
2179
2199
|
if (y && y.length > 0) {
|
|
2180
2200
|
let e = m;
|
|
2181
2201
|
for (let t of y) {
|
|
2182
|
-
let o = Math.max(n.noteWidth,
|
|
2202
|
+
let o = Math.max(n.noteWidth, M(t.text, r.edgeLabel, F.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(t.actorIds[0] ?? "") ?? 0, u;
|
|
2183
2203
|
if (t.position === "left") u = a[l] - i[l] / 2 - o - n.noteGap;
|
|
2184
2204
|
else if (t.position === "right") u = a[l] + i[l] / 2 + n.noteGap;
|
|
2185
2205
|
else if (t.actorIds.length > 1) {
|
|
@@ -2254,7 +2274,7 @@ function Xn(e, t = {}) {
|
|
|
2254
2274
|
if (b && b.length > 0) {
|
|
2255
2275
|
let e = u ? n.selfMessageHeight : 0, o = h[t].y + e + n.noteOffsetAfterMessage;
|
|
2256
2276
|
for (let e of b) {
|
|
2257
|
-
let t = Math.max(n.noteWidth,
|
|
2277
|
+
let t = Math.max(n.noteWidth, M(e.text, r.edgeLabel, F.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(e.actorIds[0] ?? "") ?? 0, u;
|
|
2258
2278
|
if (e.position === "left") u = a[l] - i[l] / 2 - t - n.noteGap;
|
|
2259
2279
|
else if (e.position === "right") u = a[l] + i[l] / 2 + n.noteGap;
|
|
2260
2280
|
else if (e.actorIds.length > 1) {
|
|
@@ -2294,7 +2314,7 @@ function Xn(e, t = {}) {
|
|
|
2294
2314
|
let f = Math.min(...d), p = Math.max(...d), g = a[f] - i[f] / 2 - n.blockPadX, _ = a[p] + i[p] / 2 + n.blockPadX, v = t.dividers.map((e) => {
|
|
2295
2315
|
let t = h[e.index], n = t?.y ?? m, i = 28;
|
|
2296
2316
|
if (e.label && t?.label) {
|
|
2297
|
-
let n =
|
|
2317
|
+
let n = M(`[${e.label}]`, r.edgeLabel, F.edgeLabel), a = g + 8, o = a + n, s = M(t.label, r.edgeLabel, F.edgeLabel), c = t.isSelf ? t.x1 + 36 : (t.x1 + t.x2) / 2 - s / 2, l = c + s;
|
|
2298
2318
|
o > c && a < l && (i = 36);
|
|
2299
2319
|
}
|
|
2300
2320
|
return {
|
|
@@ -2317,7 +2337,7 @@ function Xn(e, t = {}) {
|
|
|
2317
2337
|
for (let e of D) k = Math.min(k, e.x), A = Math.max(A, e.x + e.width);
|
|
2318
2338
|
for (let e of p) k = Math.min(k, e.x), A = Math.max(A, e.x + e.width);
|
|
2319
2339
|
for (let e of h) if (e.isSelf && e.label) {
|
|
2320
|
-
let t = e.x1 + 30 + 8, n =
|
|
2340
|
+
let t = e.x1 + 30 + 8, n = M(e.label, r.edgeLabel, F.edgeLabel);
|
|
2321
2341
|
A = Math.max(A, t + n + 8);
|
|
2322
2342
|
}
|
|
2323
2343
|
let j = k < n.padding ? n.padding - k : 0;
|
|
@@ -2334,7 +2354,7 @@ function Xn(e, t = {}) {
|
|
|
2334
2354
|
let r = e.actors[t].createdAt;
|
|
2335
2355
|
r !== void 0 && (f[t].y = (h[r]?.y ?? m) - n.actorHeight / 2);
|
|
2336
2356
|
}
|
|
2337
|
-
let
|
|
2357
|
+
let ee = e.actors.map((e, t) => {
|
|
2338
2358
|
let r = e.destroyedAt, i = {
|
|
2339
2359
|
actorId: e.id,
|
|
2340
2360
|
x: a[t],
|
|
@@ -2344,12 +2364,12 @@ function Xn(e, t = {}) {
|
|
|
2344
2364
|
return r !== void 0 && (i.destroyed = !0), i;
|
|
2345
2365
|
});
|
|
2346
2366
|
for (let e of p) e.height = O - n.padding + n.boxPad - e.y;
|
|
2347
|
-
let
|
|
2367
|
+
let te = A + j + n.padding;
|
|
2348
2368
|
return {
|
|
2349
|
-
width: Math.max(
|
|
2369
|
+
width: Math.max(te, 200),
|
|
2350
2370
|
height: Math.max(O, 100),
|
|
2351
2371
|
actors: f,
|
|
2352
|
-
lifelines:
|
|
2372
|
+
lifelines: ee,
|
|
2353
2373
|
messages: h,
|
|
2354
2374
|
activations: x,
|
|
2355
2375
|
blocks: E,
|
|
@@ -2359,79 +2379,79 @@ function Xn(e, t = {}) {
|
|
|
2359
2379
|
}
|
|
2360
2380
|
//#endregion
|
|
2361
2381
|
//#region packages/svg-renderer/src/sequence/renderer.ts
|
|
2362
|
-
function
|
|
2382
|
+
function Cr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
|
|
2363
2383
|
let u = [];
|
|
2364
|
-
u.push(
|
|
2365
|
-
for (let t of e.boxes) u.push(
|
|
2366
|
-
for (let t of e.blocks) u.push(
|
|
2367
|
-
for (let t of e.lifelines) u.push(
|
|
2368
|
-
for (let t of e.activations) u.push(
|
|
2369
|
-
for (let t of e.messages) u.push(
|
|
2370
|
-
for (let t of e.notes) u.push(
|
|
2371
|
-
for (let t of e.actors) u.push(
|
|
2384
|
+
u.push(U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !1, l.nonce)), u.push("<defs>"), u.push(wr()), u.push("</defs>");
|
|
2385
|
+
for (let t of e.boxes) u.push(Mr(t, a));
|
|
2386
|
+
for (let t of e.blocks) u.push(Nr(t, a));
|
|
2387
|
+
for (let t of e.lifelines) u.push(Er(t));
|
|
2388
|
+
for (let t of e.activations) u.push(Or(t));
|
|
2389
|
+
for (let t of e.messages) u.push(kr(t, a));
|
|
2390
|
+
for (let t of e.notes) u.push(Pr(t, a));
|
|
2391
|
+
for (let t of e.actors) u.push(Tr(t, a));
|
|
2372
2392
|
return u.push("</svg>"), u.join("\n");
|
|
2373
2393
|
}
|
|
2374
|
-
function
|
|
2375
|
-
let e =
|
|
2376
|
-
return ` <marker id="seq-arrow" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse"
|
|
2394
|
+
function wr() {
|
|
2395
|
+
let e = z.width, t = z.height;
|
|
2396
|
+
return s` <marker id="seq-arrow" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">` + s`\n <polygon points="0 0, ${e} ${t / 2}, 0 ${t}" fill="var(--_arrow)" />` + "\n </marker>" + s`\n <marker id="seq-arrow-open" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">` + s`\n <polyline points="0 0, ${e} ${t / 2}, 0 ${t}" fill="none" stroke="var(--_arrow)" stroke-width="1" />` + "\n </marker>";
|
|
2377
2397
|
}
|
|
2378
|
-
function
|
|
2379
|
-
let { id:
|
|
2380
|
-
if (d.push(`<g class="actor" data-id="${n
|
|
2381
|
-
let e =
|
|
2382
|
-
d.push(` <g transform="translate(${n},${
|
|
2398
|
+
function Tr(e, t) {
|
|
2399
|
+
let { id: n, x: r, y: a, width: o, height: c, label: l, type: u } = e, d = [];
|
|
2400
|
+
if (d.push(s`<g class="actor" data-id="${i(n)}" data-label="${i(l)}" data-type="${u}">`), u === "actor") {
|
|
2401
|
+
let e = c / 24 * .9, n = r - 12 * e, i = a + (c - 24 * e) / 2, o = L.outerBox / e, u = "var(--_line)";
|
|
2402
|
+
d.push(s` <g transform="translate(${n},${i}) scale(${e})">` + s`\n <path d="M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" fill="none" stroke="${u}" stroke-width="${o}" />` + s`\n <path d="M15 10C15 11.6569 13.6569 13 12 13C10.3431 13 9 11.6569 9 10C9 8.34315 10.3431 7 12 7C13.6569 7 15 8.34315 15 10Z" fill="none" stroke="${u}" stroke-width="${o}" />` + s`\n <path d="M5.62842 18.3563C7.08963 17.0398 9.39997 16 12 16C14.6 16 16.9104 17.0398 18.3716 18.3563" fill="none" stroke="${u}" stroke-width="${o}" />` + "\n </g>"), d.push(" " + _(l, r, a + c + 14, t.nodeLabel, s`font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${F.nodeLabel}" fill="var(--_text)"`));
|
|
2383
2403
|
} else {
|
|
2384
|
-
let e =
|
|
2385
|
-
d.push(` <rect x="${e}" y="${a}" width="${o}" height="${
|
|
2404
|
+
let e = r - o / 2;
|
|
2405
|
+
d.push(s` <rect x="${e}" y="${a}" width="${o}" height="${c}" rx="4" ry="4" ` + s`fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), d.push(" " + _(l, r, a + c / 2, t.nodeLabel, s`font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${F.nodeLabel}" fill="var(--_text)"`));
|
|
2386
2406
|
}
|
|
2387
2407
|
return d.push("</g>"), d.join("\n");
|
|
2388
2408
|
}
|
|
2389
|
-
function
|
|
2390
|
-
let t = `<line class="lifeline" data-actor="${
|
|
2409
|
+
function Er(e) {
|
|
2410
|
+
let t = s`<line class="lifeline" data-actor="${i(e.actorId)}" ` + s`x1="${e.x}" y1="${e.topY}" x2="${e.x}" y2="${e.bottomY}" ` + "stroke=\"var(--_line)\" stroke-width=\"0.75\" stroke-dasharray=\"6 4\" />";
|
|
2391
2411
|
if (!e.destroyed) return t;
|
|
2392
|
-
let { x:
|
|
2393
|
-
return t + `\n<path class="destroy" data-actor="${
|
|
2412
|
+
let { x: n, bottomY: r } = e, a = Dr;
|
|
2413
|
+
return t + s`\n<path class="destroy" data-actor="${i(e.actorId)}" ` + s`d="M${n - a} ${r - a} L${n + a} ${r + a} M${n + a} ${r - a} L${n - a} ${r + a}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.outerBox}" stroke-linecap="round" />`;
|
|
2394
2414
|
}
|
|
2395
|
-
var
|
|
2396
|
-
function
|
|
2397
|
-
return `<rect class="activation" data-actor="${
|
|
2415
|
+
var Dr = 8;
|
|
2416
|
+
function Or(e) {
|
|
2417
|
+
return s`<rect class="activation" data-actor="${i(e.actorId)}" ` + s`x="${e.x}" y="${e.topY}" width="${e.width}" height="${e.bottomY - e.topY}" ` + s`fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`;
|
|
2398
2418
|
}
|
|
2399
|
-
function
|
|
2400
|
-
let
|
|
2401
|
-
if (
|
|
2419
|
+
function kr(e, t) {
|
|
2420
|
+
let n = [], r = e.lineStyle === "dashed" ? " stroke-dasharray=\"6 4\"" : "", a = e.arrowHead === "filled" ? "seq-arrow" : "seq-arrow-open", o = e.bidirectional ? s` marker-start="url(#${a})"` : "";
|
|
2421
|
+
if (n.push(s`<g class="message" data-from="${i(e.from)}" data-to="${i(e.to)}" ` + s`data-label="${i(e.label)}" data-line-style="${e.lineStyle}" ` + s`data-arrow-head="${e.arrowHead}" data-self="${e.isSelf}" data-bidirectional="${e.bidirectional}">`), e.isSelf) n.push(s` <polyline points="${e.x1},${e.y} ${e.x1 + 30},${e.y} ${e.x1 + 30},${e.y + 20} ${e.x2},${e.y + 20}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.connector}"${r} marker-end="url(#${a})"${o} />`), n.push(" " + _(e.label, e.x1 + 30 + 8, e.y + 10, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="start" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
2402
2422
|
else {
|
|
2403
|
-
|
|
2404
|
-
let
|
|
2405
|
-
|
|
2406
|
-
}
|
|
2407
|
-
return e.seqNumber !== void 0 &&
|
|
2408
|
-
}
|
|
2409
|
-
function
|
|
2410
|
-
let n = Math.max(t.edgeLabel - 2, 8), r = e.bidirectional ? e.x1 + Math.sign(e.x2 - e.x1) * (8 +
|
|
2411
|
-
return
|
|
2412
|
-
}
|
|
2413
|
-
var
|
|
2414
|
-
function
|
|
2415
|
-
let
|
|
2416
|
-
return e.label && o.push(" " +
|
|
2417
|
-
}
|
|
2418
|
-
function
|
|
2419
|
-
let
|
|
2420
|
-
|
|
2421
|
-
let a = `${e.type}${e.label ? ` [${e.label}]` : ""}`, o = a.split("\n")[0],
|
|
2422
|
-
|
|
2423
|
-
for (let
|
|
2424
|
-
return
|
|
2425
|
-
}
|
|
2426
|
-
function
|
|
2427
|
-
let { x:
|
|
2428
|
-
|
|
2429
|
-
`${
|
|
2430
|
-
`${
|
|
2431
|
-
`${
|
|
2432
|
-
`${
|
|
2433
|
-
|
|
2434
|
-
|
|
2423
|
+
n.push(s` <line x1="${e.x1}" y1="${e.y}" x2="${e.x2}" y2="${e.y}" ` + s`stroke="var(--_line)" stroke-width="${L.connector}"${r} marker-end="url(#${a})"${o} />`);
|
|
2424
|
+
let i = (e.x1 + e.x2) / 2;
|
|
2425
|
+
n.push(" " + _(e.label, i, e.y - 10, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
2426
|
+
}
|
|
2427
|
+
return e.seqNumber !== void 0 && n.push(" " + Ar(e, t)), n.push("</g>"), n.join("\n");
|
|
2428
|
+
}
|
|
2429
|
+
function Ar(e, t) {
|
|
2430
|
+
let n = Math.max(t.edgeLabel - 2, 8), r = e.bidirectional ? e.x1 + Math.sign(e.x2 - e.x1) * (8 + z.width) : e.x1;
|
|
2431
|
+
return "<g class=\"seq-number\">" + s`<circle cx="${r}" cy="${e.y}" r="${8}" fill="var(--bg)" stroke="var(--_arrow)" stroke-width="${L.innerBox}" />` + _(String(e.seqNumber), r, e.y, n, s`font-size="${n}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_arrow)"`) + "</g>";
|
|
2432
|
+
}
|
|
2433
|
+
var jr = 35;
|
|
2434
|
+
function Mr(e, t) {
|
|
2435
|
+
let n = e.label ? s` data-label="${i(e.label)}"` : "", r = e.color === void 0 ? "" : s` data-color="${i(e.color)}"`, a = e.color === void 0 ? "none" : s`color-mix(in srgb, ${i(e.color)} ${jr}%, var(--bg))`, o = [s`<g class="participant-box"${n}${r}>`, s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="4" ry="4" ` + s`fill="${a}" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`];
|
|
2436
|
+
return e.label && o.push(" " + _(e.label, e.x + e.width / 2, e.y + br(t.edgeLabel) / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`)), o.push("</g>"), o.join("\n");
|
|
2437
|
+
}
|
|
2438
|
+
function Nr(e, t) {
|
|
2439
|
+
let n = [], r = e.label ? s` data-label="${i(e.label)}"` : "";
|
|
2440
|
+
n.push(s`<g class="block" data-type="${i(e.type)}"${r}>`), n.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" ` + s`rx="0" ry="0" fill="none" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`);
|
|
2441
|
+
let a = s`${e.type}${e.label ? s` [${e.label}]` : ""}`, o = a.split("\n")[0], c = M(o, t.edgeLabel, F.groupHeader) + 16;
|
|
2442
|
+
n.push(s` <rect x="${e.x}" y="${e.y}" width="${c}" height="${18}" ` + s`fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), n.push(" " + _(a, e.x + 6, e.y + 9, t.edgeLabel, s`font-size="${t.edgeLabel}" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`));
|
|
2443
|
+
for (let r of e.dividers) n.push(s` <line x1="${e.x}" y1="${r.y}" x2="${e.x + e.width}" y2="${r.y}" ` + "stroke=\"var(--_line)\" stroke-width=\"0.75\" stroke-dasharray=\"6 4\" />"), r.label && n.push(" " + _(s`[${r.label}]`, e.x + 8, r.y + 14, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="start" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
|
|
2444
|
+
return n.push("</g>"), n.join("\n");
|
|
2445
|
+
}
|
|
2446
|
+
function Pr(e, t) {
|
|
2447
|
+
let { x: n, y: r, width: a, height: o } = e, c = e.actors && e.actors.length > 0 ? s` data-actors="${e.actors.map(i).join(",")}"` : "", l = e.position ? s` data-position="${i(e.position)}"` : "", u = [
|
|
2448
|
+
s`${n},${r}`,
|
|
2449
|
+
s`${n + a - 6},${r}`,
|
|
2450
|
+
s`${n + a},${r + 6}`,
|
|
2451
|
+
s`${n + a},${r + o}`,
|
|
2452
|
+
s`${n},${r + o}`
|
|
2453
|
+
].join(" ");
|
|
2454
|
+
return s`<g class="note"${l}${c}>` + s`\n <polygon points="${u}" ` + s`fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n <polygon points="${n + a - 6},${r} ${n + a},${r + 6} ${n + a - 6},${r + 6}" ` + s`fill="var(--_inner-stroke)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n ${_(e.text, n + a / 2, r + o / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`)}` + "\n</g>";
|
|
2435
2455
|
}
|
|
2436
2456
|
//#endregion
|
|
2437
2457
|
//#region packages/svg-renderer/src/xychart/layout.ts
|
|
@@ -2462,24 +2482,24 @@ var Y = {
|
|
|
2462
2482
|
legendGap: 6,
|
|
2463
2483
|
legendItemGap: 16
|
|
2464
2484
|
};
|
|
2465
|
-
function
|
|
2466
|
-
return e.horizontal ?
|
|
2485
|
+
function Fr(e, t = {}) {
|
|
2486
|
+
return e.horizontal ? Lr(e) : Ir(e);
|
|
2467
2487
|
}
|
|
2468
|
-
function
|
|
2488
|
+
function Ir(e) {
|
|
2469
2489
|
let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
|
|
2470
2490
|
if (!a)
|
|
2471
2491
|
/* v8 ignore next */
|
|
2472
2492
|
throw Error("XY chart: y-axis range was not set by the parser");
|
|
2473
|
-
let o =
|
|
2493
|
+
let o = Ur(a.min, a.max), s = Math.max(...o.map((e) => M(Wr(e), Y.axisLabelFontSize, Y.axisLabelFontWeight)), Y.yLabelWidth), c = Y.padding + (t ? Y.titleHeight : 0) + (i ? Y.legendHeight : 0), l = Y.padding + Y.xLabelHeight + (n ? Y.axisTitlePad : 0), u = Y.padding + s + Y.yLabelGap + (r ? Y.axisTitlePad : 0), d = Y.padding, f = Y.plotWidth, p = Y.plotHeight, m = u + f + d, h = c + p + l, g = {
|
|
2474
2494
|
x: u,
|
|
2475
2495
|
y: c,
|
|
2476
2496
|
width: f,
|
|
2477
2497
|
height: p
|
|
2478
|
-
}, _ =
|
|
2498
|
+
}, _ = Rr(e), v = (e) => u + (e + .5) * (f / _), y = f / _, b = (e) => {
|
|
2479
2499
|
let t = (e - a.min) / (a.max - a.min || 1);
|
|
2480
2500
|
return c + p - t * p;
|
|
2481
|
-
}, x =
|
|
2482
|
-
label:
|
|
2501
|
+
}, x = Br(e, v, c + p, y), S = o.map((e) => ({
|
|
2502
|
+
label: Wr(e),
|
|
2483
2503
|
x: u,
|
|
2484
2504
|
y: b(e),
|
|
2485
2505
|
tx: u - Y.tickLength,
|
|
@@ -2492,7 +2512,7 @@ function ur(e) {
|
|
|
2492
2512
|
y1: b(e),
|
|
2493
2513
|
x2: u + f,
|
|
2494
2514
|
y2: b(e)
|
|
2495
|
-
})), w =
|
|
2515
|
+
})), w = zr(e, _), T = e.series.map((e, t) => t), E = Vr(e, v, b, y, a.min, w, T), D = Hr(e, v, b, w, T), O = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2, k = i ? Gr(e, m / 2, O, T) : [], A = {
|
|
2496
2516
|
x1: u,
|
|
2497
2517
|
y1: c + p,
|
|
2498
2518
|
x2: u + f,
|
|
@@ -2502,7 +2522,7 @@ function ur(e) {
|
|
|
2502
2522
|
y1: c,
|
|
2503
2523
|
x2: u,
|
|
2504
2524
|
y2: c + p
|
|
2505
|
-
},
|
|
2525
|
+
}, ee = {
|
|
2506
2526
|
ticks: x,
|
|
2507
2527
|
line: A,
|
|
2508
2528
|
...e.xAxis.title ? { title: {
|
|
@@ -2510,7 +2530,7 @@ function ur(e) {
|
|
|
2510
2530
|
x: u + f / 2,
|
|
2511
2531
|
y: h - Y.padding
|
|
2512
2532
|
} } : {}
|
|
2513
|
-
},
|
|
2533
|
+
}, te = {
|
|
2514
2534
|
ticks: S,
|
|
2515
2535
|
line: j,
|
|
2516
2536
|
...e.yAxis.title ? { title: {
|
|
@@ -2528,8 +2548,8 @@ function ur(e) {
|
|
|
2528
2548
|
x: m / 2,
|
|
2529
2549
|
y: Y.padding + Y.titleFontSize
|
|
2530
2550
|
} : void 0,
|
|
2531
|
-
xAxis:
|
|
2532
|
-
yAxis:
|
|
2551
|
+
xAxis: ee,
|
|
2552
|
+
yAxis: te,
|
|
2533
2553
|
plotArea: g,
|
|
2534
2554
|
bars: E,
|
|
2535
2555
|
lines: D,
|
|
@@ -2537,12 +2557,12 @@ function ur(e) {
|
|
|
2537
2557
|
legend: k
|
|
2538
2558
|
};
|
|
2539
2559
|
}
|
|
2540
|
-
function
|
|
2560
|
+
function Lr(e) {
|
|
2541
2561
|
let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
|
|
2542
2562
|
if (!a)
|
|
2543
2563
|
/* v8 ignore next */
|
|
2544
2564
|
throw Error("XY chart: y-axis range was not set by the parser");
|
|
2545
|
-
let o =
|
|
2565
|
+
let o = Ur(a.min, a.max), s = Rr(e), c = zr(e, s), l = Math.max(...c.map((e) => M(e, Y.axisLabelFontSize, Y.axisLabelFontWeight)), 40), u = Y.padding + (t ? Y.titleHeight : 0) + (i ? Y.legendHeight : 0), d = Y.padding + Y.xLabelHeight + (r ? Y.axisTitlePad : 0), f = Y.padding + l + Y.yLabelGap + (n ? Y.axisTitlePad : 0), p = Y.padding, m = Y.plotWidth, h = Y.plotHeight, g = f + m + p, _ = u + h + d, v = {
|
|
2546
2566
|
x: f,
|
|
2547
2567
|
y: u,
|
|
2548
2568
|
width: m,
|
|
@@ -2551,7 +2571,7 @@ function dr(e) {
|
|
|
2551
2571
|
let t = (e - a.min) / (a.max - a.min || 1);
|
|
2552
2572
|
return f + t * m;
|
|
2553
2573
|
}, b = h / s, x = (e) => u + (e + .5) * b, S = o.map((e) => ({
|
|
2554
|
-
label:
|
|
2574
|
+
label: Wr(e),
|
|
2555
2575
|
x: y(e),
|
|
2556
2576
|
y: u + h,
|
|
2557
2577
|
tx: y(e),
|
|
@@ -2620,12 +2640,12 @@ function dr(e) {
|
|
|
2620
2640
|
y1: u + h,
|
|
2621
2641
|
x2: f + m,
|
|
2622
2642
|
y2: u + h
|
|
2623
|
-
},
|
|
2643
|
+
}, ee = {
|
|
2624
2644
|
x1: f,
|
|
2625
2645
|
y1: u,
|
|
2626
2646
|
x2: f,
|
|
2627
2647
|
y2: u + h
|
|
2628
|
-
},
|
|
2648
|
+
}, te = {
|
|
2629
2649
|
ticks: S,
|
|
2630
2650
|
line: j,
|
|
2631
2651
|
...e.yAxis.title ? { title: {
|
|
@@ -2633,49 +2653,49 @@ function dr(e) {
|
|
|
2633
2653
|
x: f + m / 2,
|
|
2634
2654
|
y: _ - Y.padding
|
|
2635
2655
|
} } : {}
|
|
2636
|
-
},
|
|
2656
|
+
}, ne = {
|
|
2637
2657
|
ticks: C,
|
|
2638
|
-
line:
|
|
2658
|
+
line: ee,
|
|
2639
2659
|
...e.xAxis.title ? { title: {
|
|
2640
2660
|
text: e.xAxis.title,
|
|
2641
2661
|
x: Y.padding + 4,
|
|
2642
2662
|
y: u + h / 2,
|
|
2643
2663
|
rotate: -90
|
|
2644
2664
|
} } : {}
|
|
2645
|
-
},
|
|
2665
|
+
}, re = e.title ? {
|
|
2646
2666
|
text: e.title,
|
|
2647
2667
|
x: g / 2,
|
|
2648
2668
|
y: Y.padding + Y.titleFontSize
|
|
2649
|
-
} : void 0,
|
|
2669
|
+
} : void 0, ie = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2;
|
|
2650
2670
|
return {
|
|
2651
2671
|
width: g,
|
|
2652
2672
|
height: _,
|
|
2653
2673
|
horizontal: !0,
|
|
2654
|
-
title:
|
|
2655
|
-
xAxis:
|
|
2656
|
-
yAxis:
|
|
2674
|
+
title: re,
|
|
2675
|
+
xAxis: te,
|
|
2676
|
+
yAxis: ne,
|
|
2657
2677
|
plotArea: v,
|
|
2658
2678
|
bars: D,
|
|
2659
2679
|
lines: O,
|
|
2660
2680
|
gridLines: w,
|
|
2661
|
-
legend: i ?
|
|
2681
|
+
legend: i ? Gr(e, g / 2, ie, T) : []
|
|
2662
2682
|
};
|
|
2663
2683
|
}
|
|
2664
|
-
function
|
|
2684
|
+
function Rr(e) {
|
|
2665
2685
|
if (e.xAxis.categories) return e.xAxis.categories.length;
|
|
2666
2686
|
for (let t of e.series) if (t.data.length > 0) return t.data.length;
|
|
2667
2687
|
return 1;
|
|
2668
2688
|
}
|
|
2669
|
-
function
|
|
2689
|
+
function zr(e, t) {
|
|
2670
2690
|
if (e.xAxis.categories) return e.xAxis.categories;
|
|
2671
2691
|
if (e.xAxis.range) {
|
|
2672
2692
|
let { min: n, max: r } = e.xAxis.range, i = t > 1 ? (r - n) / (t - 1) : 0;
|
|
2673
|
-
return Array.from({ length: t }, (e, t) =>
|
|
2693
|
+
return Array.from({ length: t }, (e, t) => Wr(n + i * t));
|
|
2674
2694
|
}
|
|
2675
2695
|
return Array.from({ length: t }, (e, t) => String(t + 1));
|
|
2676
2696
|
}
|
|
2677
|
-
function
|
|
2678
|
-
return
|
|
2697
|
+
function Br(e, t, n, r) {
|
|
2698
|
+
return zr(e, Rr(e)).map((e, r) => ({
|
|
2679
2699
|
label: e,
|
|
2680
2700
|
x: t(r),
|
|
2681
2701
|
y: n,
|
|
@@ -2686,7 +2706,7 @@ function mr(e, t, n, r) {
|
|
|
2686
2706
|
textAnchor: "middle"
|
|
2687
2707
|
}));
|
|
2688
2708
|
}
|
|
2689
|
-
function
|
|
2709
|
+
function Vr(e, t, n, r, i, a, o) {
|
|
2690
2710
|
let s = e.series.filter((e) => e.type === "bar").length;
|
|
2691
2711
|
if (s === 0) return [];
|
|
2692
2712
|
let c = r * (1 - Y.barPadRatio), l = s > 1 ? (c - (s - 1) * Y.barGroupGap) / s : c, u = Math.min(l, Y.maxBarWidth), d = s > 1 ? u * s + Y.barGroupGap * (s - 1) : u, f = [], p = 0, m = 0;
|
|
@@ -2712,7 +2732,7 @@ function hr(e, t, n, r, i, a, o) {
|
|
|
2712
2732
|
}
|
|
2713
2733
|
return f;
|
|
2714
2734
|
}
|
|
2715
|
-
function
|
|
2735
|
+
function Hr(e, t, n, r, i) {
|
|
2716
2736
|
let a = [], o = 0, s = 0;
|
|
2717
2737
|
for (let c of e.series) {
|
|
2718
2738
|
if (c.type !== "line") {
|
|
@@ -2733,7 +2753,7 @@ function gr(e, t, n, r, i) {
|
|
|
2733
2753
|
}
|
|
2734
2754
|
return a;
|
|
2735
2755
|
}
|
|
2736
|
-
function
|
|
2756
|
+
function Ur(e, t) {
|
|
2737
2757
|
let n = t - e;
|
|
2738
2758
|
if (n <= 0) return [e];
|
|
2739
2759
|
let r = n / 6, i = 10 ** Math.floor(Math.log10(r)), a = r / i, o;
|
|
@@ -2742,10 +2762,10 @@ function _r(e, t) {
|
|
|
2742
2762
|
for (let e = s; e <= t + o * .001; e += o) c.push(Math.round(e * 1e10) / 1e10);
|
|
2743
2763
|
return c;
|
|
2744
2764
|
}
|
|
2745
|
-
function
|
|
2765
|
+
function Wr(e) {
|
|
2746
2766
|
return Number.isInteger(e) ? String(e) : e.toFixed(+(Math.abs(e) < 10));
|
|
2747
2767
|
}
|
|
2748
|
-
function
|
|
2768
|
+
function Gr(e, t, n, r) {
|
|
2749
2769
|
let i = [], a = 0, o = 0;
|
|
2750
2770
|
for (let t = 0; t < e.series.length; t++) {
|
|
2751
2771
|
let s = e.series[t], c = s.type === "bar" ? `Bar ${a + 1}` : `Line ${o + 1}`;
|
|
@@ -2759,7 +2779,7 @@ function yr(e, t, n, r) {
|
|
|
2759
2779
|
}), s.type === "bar" ? a++ : o++;
|
|
2760
2780
|
}
|
|
2761
2781
|
let s = i.map((e) => {
|
|
2762
|
-
let t =
|
|
2782
|
+
let t = M(e.label, Y.legendFontSize, Y.legendFontWeight);
|
|
2763
2783
|
return Y.legendSwatchW + Y.legendGap + t;
|
|
2764
2784
|
}), c = t - (s.reduce((e, t) => e + t, 0) + (i.length - 1) * Y.legendItemGap) / 2;
|
|
2765
2785
|
for (let e = 0; e < i.length; e++) i[e].x = c, c += s[e] + Y.legendItemGap;
|
|
@@ -2789,24 +2809,24 @@ var X = {
|
|
|
2789
2809
|
minY: 4,
|
|
2790
2810
|
pointerSize: 6
|
|
2791
2811
|
};
|
|
2792
|
-
function
|
|
2793
|
-
let u = [], d = Math.max(0, ...e.bars.map((e) => e.colorIndex), ...e.lines.map((e) => e.colorIndex)), f =
|
|
2794
|
-
u.push(f), u.push(
|
|
2795
|
-
let p = Math.max(...e.lines.map((e) => e.points.length), 0), m = p > 0 && p <= 12, { style: h, defs:
|
|
2796
|
-
u.push(h),
|
|
2797
|
-
let { plotArea:
|
|
2798
|
-
for (let e = O; e <=
|
|
2812
|
+
function Kr(e, t, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
|
|
2813
|
+
let u = [], d = Math.max(0, ...e.bars.map((e) => e.colorIndex), ...e.lines.map((e) => e.colorIndex)), f = U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute).replace("<svg ", `<svg data-xychart-colors="${d}" `), o);
|
|
2814
|
+
u.push(f), u.push(n(r, !1, l.nonce));
|
|
2815
|
+
let p = Math.max(...e.lines.map((e) => e.points.length), 0), m = p > 0 && p <= 12, { style: h, defs: g } = qr(e, a, m, t.accent, t.bg, l.nonce);
|
|
2816
|
+
u.push(h), g && u.push(g);
|
|
2817
|
+
let { plotArea: _ } = e, v = e.xAxis.ticks.map((e) => e.x), y = e.horizontal ? e.yAxis.ticks.map((e) => e.y) : e.gridLines.map((e) => e.y1), b = v.length > 1 ? Math.abs(v[1] - v[0]) : _.width / 6, x = y.length > 1 ? Math.abs(y[1] - y[0]) : _.height / 6, S = b / Math.max(1, Math.round(b / 20)), C = x / Math.max(1, Math.round(x / 20)), w = v[0] ?? _.x, T = y[0] ?? _.y, D = w - Math.ceil((w - _.x) / S) * S, O = T - Math.ceil((T - _.y) / C) * C;
|
|
2818
|
+
for (let e = O; e <= _.y + _.height + .5; e += C) for (let t = D; t <= _.x + _.width + .5; t += S) u.push(`<circle cx="${Q(t)}" cy="${Q(e)}" r="1.5" class="xychart-grid"/>`);
|
|
2799
2819
|
let k = [];
|
|
2800
2820
|
for (let t of e.bars) {
|
|
2801
|
-
let n = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, r = e.horizontal ?
|
|
2821
|
+
let n = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, r = e.horizontal ? Yr(t.x, t.y, t.width, t.height, X.barRadius) : Jr(t.x, t.y, t.width, t.height, X.barRadius);
|
|
2802
2822
|
if (u.push(`<path d="${r}" class="xychart-bar xychart-color-${t.colorIndex}"${n}/>`), a) {
|
|
2803
|
-
let e =
|
|
2823
|
+
let e = $r(t.value), n = t.label ? `${t.label}: ${e}` : e, r = Qr(t.x + t.width / 2, t.y, e);
|
|
2804
2824
|
k.push(`<g class="xychart-bar-group"><rect x="${Q(t.x)}" y="${Q(t.y)}" width="${Q(t.width)}" height="${Q(t.height)}" fill="transparent"/><title>${$(n)}</title>` + r + "</g>");
|
|
2805
2825
|
}
|
|
2806
2826
|
}
|
|
2807
2827
|
for (let t of e.lines) {
|
|
2808
2828
|
if (t.points.length === 0) continue;
|
|
2809
|
-
let e =
|
|
2829
|
+
let e = Xr(t.points);
|
|
2810
2830
|
u.push(`<path d="${e}" class="xychart-line-shadow xychart-color-${t.colorIndex}" transform="translate(0,2)"/>`), u.push(`<path d="${e}" class="xychart-line xychart-color-${t.colorIndex}"/>`);
|
|
2811
2831
|
}
|
|
2812
2832
|
let A = [];
|
|
@@ -2829,16 +2849,16 @@ function br(e, n, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
|
|
|
2829
2849
|
let n = e[0].x, r = e[0].label || "";
|
|
2830
2850
|
if (a && e.length > 1) {
|
|
2831
2851
|
let i = Math.min(...e.map((e) => e.y)), a = Math.max(...e.map((e) => e.y)), o = X.dotRadius * 3, s = `<rect x="${Q(n - o)}" y="${Q(i - o)}" width="${Q(o * 2)}" height="${Q(a - i + o * 2)}" fill="transparent" class="xychart-hit"/>`, c = e.map((e) => ({
|
|
2832
|
-
text:
|
|
2852
|
+
text: $r(e.value),
|
|
2833
2853
|
legendLabel: t.get(e.seriesIndex) || `Line ${e.seriesIndex + 1}`
|
|
2834
|
-
})), l =
|
|
2854
|
+
})), l = Zr(n, i - X.dotRadius, r, c), u = c.map((e) => e.text), d = r ? `${r}: ${u.join(" · ")}` : u.join(" · "), f = `<g class="xychart-dot-group">${s}`;
|
|
2835
2855
|
for (let t of e) {
|
|
2836
2856
|
let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
|
|
2837
2857
|
f += `<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`;
|
|
2838
2858
|
}
|
|
2839
2859
|
f += `<title>${$(d)}</title>${l}</g>`, A.push(f);
|
|
2840
2860
|
} else if (a) {
|
|
2841
|
-
let t = e[0], r = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, i =
|
|
2861
|
+
let t = e[0], r = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, i = $r(t.value), a = t.label ? `${t.label}: ${i}` : i, o = Qr(n, t.y - X.dotRadius, i), s = m ? `<circle cx="${Q(n)}" cy="${Q(t.y)}" r="${X.dotRadius * 3}" fill="transparent" class="xychart-hit"/>` : "";
|
|
2842
2862
|
A.push(`<g class="xychart-dot-group">${s}<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${r}/><title>${$(a)}</title>${o}</g>`);
|
|
2843
2863
|
} else for (let t of e) {
|
|
2844
2864
|
let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
|
|
@@ -2846,36 +2866,36 @@ function br(e, n, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
|
|
|
2846
2866
|
}
|
|
2847
2867
|
}
|
|
2848
2868
|
}
|
|
2849
|
-
for (let t of e.xAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${
|
|
2850
|
-
for (let t of e.yAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${
|
|
2869
|
+
for (let t of e.xAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
|
|
2870
|
+
for (let t of e.yAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
|
|
2851
2871
|
if (e.xAxis.title) {
|
|
2852
2872
|
let t = e.xAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
|
|
2853
|
-
u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${
|
|
2873
|
+
u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${$(t.text)}</text>`);
|
|
2854
2874
|
}
|
|
2855
2875
|
if (e.yAxis.title) {
|
|
2856
2876
|
let t = e.yAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
|
|
2857
|
-
u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${
|
|
2877
|
+
u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${$(t.text)}</text>`);
|
|
2858
2878
|
}
|
|
2859
|
-
e.title && u.push(`<text x="${e.title.x}" y="${e.title.y}" text-anchor="middle" font-size="${X.titleSize}" font-weight="${X.titleWeight}" dy="${
|
|
2879
|
+
e.title && u.push(`<text x="${e.title.x}" y="${e.title.y}" text-anchor="middle" font-size="${X.titleSize}" font-weight="${X.titleWeight}" dy="${R}" class="xychart-title">${$(e.title.text)}</text>`);
|
|
2860
2880
|
for (let t of e.legend) {
|
|
2861
2881
|
if (t.type === "bar") u.push(`<rect x="${t.x}" y="${t.y - 7}" width="14" height="14" rx="3" class="xychart-bar xychart-color-${t.colorIndex}"/>`);
|
|
2862
2882
|
else {
|
|
2863
2883
|
let e = t.y;
|
|
2864
2884
|
u.push(`<line x1="${t.x}" y1="${e}" x2="${t.x + 14}" y2="${e}" stroke-width="${X.lineWidth}" stroke-linecap="round" class="xychart-legend-line xychart-color-${t.colorIndex}"/>`);
|
|
2865
2885
|
}
|
|
2866
|
-
u.push(`<text x="${t.x + 14 + 6}" y="${t.y}" text-anchor="start" font-size="${X.legendSize}" font-weight="${X.legendWeight}" dy="${
|
|
2886
|
+
u.push(`<text x="${t.x + 14 + 6}" y="${t.y}" text-anchor="start" font-size="${X.legendSize}" font-weight="${X.legendWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
|
|
2867
2887
|
}
|
|
2868
2888
|
for (let e of k) u.push(e);
|
|
2869
2889
|
for (let e of A) u.push(e);
|
|
2870
2890
|
return u.push("</svg>"), u.join("\n");
|
|
2871
2891
|
}
|
|
2872
|
-
function
|
|
2873
|
-
let o = r ??
|
|
2892
|
+
function qr(e, t, n, r, i, a) {
|
|
2893
|
+
let o = r ?? ne, s = /* @__PURE__ */ new Set();
|
|
2874
2894
|
for (let t of e.bars) s.add(t.colorIndex);
|
|
2875
2895
|
for (let t of e.lines) s.add(t.colorIndex);
|
|
2876
2896
|
let c = [];
|
|
2877
2897
|
for (let e of [...s].sort((e, t) => e - t)) {
|
|
2878
|
-
let t = e === 0 ? `var(--accent, ${
|
|
2898
|
+
let t = e === 0 ? `var(--accent, ${ne})` : ie(e, o, i);
|
|
2879
2899
|
c.push(` --xychart-color-${e}: ${t};`), c.push(` --xychart-bar-fill-${e}: color-mix(in srgb, var(--bg) 75%, var(--xychart-color-${e}) 25%);`);
|
|
2880
2900
|
}
|
|
2881
2901
|
let l = [];
|
|
@@ -2891,7 +2911,7 @@ function xr(e, t, n, r, i, a) {
|
|
|
2891
2911
|
.xychart-bar-group:hover .xychart-tip,
|
|
2892
2912
|
.xychart-dot-group:hover .xychart-tip { opacity: 1; }` : "", d = c.length > 0 ? `\n svg {\n${c.join("\n")}\n }` : "";
|
|
2893
2913
|
return {
|
|
2894
|
-
style: `${
|
|
2914
|
+
style: `${T(a)}
|
|
2895
2915
|
.xychart-grid { fill: var(--_inner-stroke); stroke: none; opacity: 0.65; }
|
|
2896
2916
|
.xychart-bar { stroke-width: 1.5; }
|
|
2897
2917
|
.xychart-line { fill: none; stroke-width: ${X.lineWidth}; stroke-linecap: round; stroke-linejoin: round; }
|
|
@@ -2905,7 +2925,7 @@ ${l.join("\n")}${u}
|
|
|
2905
2925
|
defs: ""
|
|
2906
2926
|
};
|
|
2907
2927
|
}
|
|
2908
|
-
function
|
|
2928
|
+
function Jr(e, t, n, r, i) {
|
|
2909
2929
|
let a = Math.min(i, n / 2, r / 2);
|
|
2910
2930
|
return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
|
|
2911
2931
|
`M${Q(e)},${Q(t + a)}`,
|
|
@@ -2919,7 +2939,7 @@ function Sr(e, t, n, r, i) {
|
|
|
2919
2939
|
"Z"
|
|
2920
2940
|
].join(" ");
|
|
2921
2941
|
}
|
|
2922
|
-
function
|
|
2942
|
+
function Yr(e, t, n, r, i) {
|
|
2923
2943
|
let a = Math.min(i, n / 2, r / 2);
|
|
2924
2944
|
return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
|
|
2925
2945
|
`M${Q(e + a)},${Q(t)}`,
|
|
@@ -2934,7 +2954,7 @@ function Cr(e, t, n, r, i) {
|
|
|
2934
2954
|
"Z"
|
|
2935
2955
|
].join(" ");
|
|
2936
2956
|
}
|
|
2937
|
-
function
|
|
2957
|
+
function Xr(e) {
|
|
2938
2958
|
if (e.length === 0) return "";
|
|
2939
2959
|
if (e.length === 1) return `M${Q(e[0].x)},${Q(e[0].y)}`;
|
|
2940
2960
|
if (e.length === 2) return `M${Q(e[0].x)},${Q(e[0].y)} L${Q(e[1].x)},${Q(e[1].y)}`;
|
|
@@ -2963,23 +2983,23 @@ function wr(e) {
|
|
|
2963
2983
|
}
|
|
2964
2984
|
return o;
|
|
2965
2985
|
}
|
|
2966
|
-
function
|
|
2967
|
-
let i =
|
|
2968
|
-
let t =
|
|
2986
|
+
function Zr(e, t, n, r) {
|
|
2987
|
+
let i = M(n, Z.fontSize, 600), a = Math.max(...r.map((e) => {
|
|
2988
|
+
let t = M(e.legendLabel, Z.fontSize, Z.fontWeight), n = M(e.text, Z.fontSize, Z.fontWeight);
|
|
2969
2989
|
return t + 10 + n;
|
|
2970
2990
|
})), o = Math.max(i, a) + Z.padX * 2, s = 26 + r.length * 20 + 6, c = Math.max(Z.minY, t - Z.offsetY - s - Z.pointerSize), l = e - o / 2, u = e, d = c + s, f = Z.pointerSize, p = `<polygon points="${Q(u - f)},${Q(d)} ${Q(u + f)},${Q(d)} ${Q(u)},${Q(d + f)}" class="xychart-tip xychart-tip-ptr"/>`, m = `<rect x="${Q(l)}" y="${Q(c)}" width="${Q(o)}" height="${s}" rx="${Z.rx}" class="xychart-tip xychart-tip-bg"/>`;
|
|
2971
2991
|
m += p;
|
|
2972
2992
|
let h = c + 6 + 10;
|
|
2973
|
-
m += `<text x="${Q(e)}" y="${Q(h)}" text-anchor="middle" font-weight="600" font-size="${Z.fontSize}" dy="${
|
|
2993
|
+
m += `<text x="${Q(e)}" y="${Q(h)}" text-anchor="middle" font-weight="600" font-size="${Z.fontSize}" dy="${R}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
|
|
2974
2994
|
let g = l + Z.padX, _ = l + o - Z.padX;
|
|
2975
|
-
for (let e of r) h += 20, m += `<text x="${Q(g)}" y="${Q(h)}" text-anchor="start" font-size="${Z.fontSize}" font-weight="${Z.fontWeight}" dy="${
|
|
2995
|
+
for (let e of r) h += 20, m += `<text x="${Q(g)}" y="${Q(h)}" text-anchor="start" font-size="${Z.fontSize}" font-weight="${Z.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${$(e.legendLabel)}</text>`, m += `<text x="${Q(_)}" y="${Q(h)}" text-anchor="end" font-size="${Z.fontSize}" font-weight="${Z.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${$(e.text)}</text>`;
|
|
2976
2996
|
return m;
|
|
2977
2997
|
}
|
|
2978
|
-
function
|
|
2979
|
-
let r =
|
|
2980
|
-
return `<rect x="${Q(o)}" y="${Q(a)}" width="${Q(r)}" height="${i}" rx="${Z.rx}" class="xychart-tip xychart-tip-bg"/>` + f + `<text x="${Q(s)}" y="${Q(c)}" text-anchor="middle" dy="${
|
|
2998
|
+
function Qr(e, t, n) {
|
|
2999
|
+
let r = M(n, Z.fontSize, Z.fontWeight) + Z.padX * 2, i = Z.height, a = Math.max(Z.minY, t - Z.offsetY - i - Z.pointerSize), o = e - r / 2, s = e, c = a + i / 2, l = e, u = a + i, d = Z.pointerSize, f = `<polygon points="${Q(l - d)},${Q(u)} ${Q(l + d)},${Q(u)} ${Q(l)},${Q(u + d)}" class="xychart-tip xychart-tip-ptr"/>`;
|
|
3000
|
+
return `<rect x="${Q(o)}" y="${Q(a)}" width="${Q(r)}" height="${i}" rx="${Z.rx}" class="xychart-tip xychart-tip-bg"/>` + f + `<text x="${Q(s)}" y="${Q(c)}" text-anchor="middle" dy="${R}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
|
|
2981
3001
|
}
|
|
2982
|
-
function
|
|
3002
|
+
function $r(e) {
|
|
2983
3003
|
return Number.isInteger(e) ? e.toLocaleString("en-US") : e.toFixed(+(Math.abs(e) < 10));
|
|
2984
3004
|
}
|
|
2985
3005
|
function Q(e) {
|
|
@@ -2989,6 +3009,529 @@ function $(e) {
|
|
|
2989
3009
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
2990
3010
|
}
|
|
2991
3011
|
//#endregion
|
|
2992
|
-
|
|
3012
|
+
//#region src/parser.ts
|
|
3013
|
+
function ei(e) {
|
|
3014
|
+
let t = e.trim();
|
|
3015
|
+
return t.length >= 2 && (t[0] === "\"" && t[t.length - 1] === "\"" || t[0] === "'" && t[t.length - 1] === "'") ? t.slice(1, -1) : t;
|
|
3016
|
+
}
|
|
3017
|
+
var ti = "\"graph <dir>\"/\"flowchart <dir>\" (dir: TD, TB, LR, BT, RL), \"stateDiagram-v2\", \"sequenceDiagram\", \"classDiagram\", \"erDiagram\", \"xychart-beta\"";
|
|
3018
|
+
function ni(e) {
|
|
3019
|
+
let t = e.trim().toLowerCase();
|
|
3020
|
+
if (/^sequence/.test(t)) return "sequenceDiagram";
|
|
3021
|
+
if (/^class/.test(t)) return "classDiagram";
|
|
3022
|
+
if (/^er/.test(t)) return "erDiagram";
|
|
3023
|
+
if (/^xychart/.test(t)) return "xychart-beta";
|
|
3024
|
+
if (/^state/.test(t)) return "stateDiagram-v2";
|
|
3025
|
+
}
|
|
3026
|
+
var ri = /^(?:[\w-]+@)?<?(?:-{2,}|={2,}|-\.+-?|~{3,})/;
|
|
3027
|
+
function ii(e) {
|
|
3028
|
+
let t = [];
|
|
3029
|
+
for (let n of e) n.forEach((e, n) => {
|
|
3030
|
+
if (n === 0 && t.length > 0 && ri.test(e.text)) {
|
|
3031
|
+
let n = t[t.length - 1];
|
|
3032
|
+
t[t.length - 1] = {
|
|
3033
|
+
text: `${n.text} ${e.text}`,
|
|
3034
|
+
line: n.line
|
|
3035
|
+
};
|
|
3036
|
+
} else t.push(e);
|
|
3037
|
+
});
|
|
3038
|
+
return t;
|
|
3039
|
+
}
|
|
3040
|
+
function ai(e) {
|
|
3041
|
+
let t = o(e.split("\n").map((e) => e.trim())), n = ii(w(e));
|
|
3042
|
+
if (n.length === 0) throw Error("Empty mermaid diagram");
|
|
3043
|
+
let r = n[0], i = /^stateDiagram(-v2)?\s*$/i.test(r.text) ? si(n) : oi(n);
|
|
3044
|
+
return i.initConfig = t, i;
|
|
3045
|
+
}
|
|
3046
|
+
function oi(e) {
|
|
3047
|
+
let t = e[0];
|
|
3048
|
+
if (t === void 0)
|
|
3049
|
+
/* v8 ignore next */
|
|
3050
|
+
throw Error("parseFlowchart called with no lines");
|
|
3051
|
+
let n = t.text, r = n.match(/^(?:graph|flowchart)\s+(TD|TB|LR|BT|RL)\s*$/i);
|
|
3052
|
+
if (!r) {
|
|
3053
|
+
let e = n.match(/^(?:graph|flowchart)\b\s*(.*)$/i);
|
|
3054
|
+
if (e) {
|
|
3055
|
+
let r = e[1].trim();
|
|
3056
|
+
throw Error(r.length > 0 ? `Line ${t.line}: Invalid direction "${r}" in header "${n}". Expected one of: TD, TB, LR, BT, RL.` : `Line ${t.line}: Missing direction in header "${n}". Expected e.g. "graph TD" or "flowchart LR" — one of: TD, TB, LR, BT, RL.`);
|
|
3057
|
+
}
|
|
3058
|
+
let r = ni(n), i = r && r.toLowerCase() !== n.trim().toLowerCase() ? ` Did you mean "${r}"?` : "";
|
|
3059
|
+
throw Error(`Line ${t.line}: Invalid mermaid header: "${n}".${i} Supported headers: ${ti}.`);
|
|
3060
|
+
}
|
|
3061
|
+
let i = {
|
|
3062
|
+
direction: O(r[1]),
|
|
3063
|
+
nodes: /* @__PURE__ */ new Map(),
|
|
3064
|
+
edges: [],
|
|
3065
|
+
subgraphs: [],
|
|
3066
|
+
classDefs: /* @__PURE__ */ new Map(),
|
|
3067
|
+
classAssignments: /* @__PURE__ */ new Map(),
|
|
3068
|
+
nodeStyles: /* @__PURE__ */ new Map(),
|
|
3069
|
+
linkStyles: /* @__PURE__ */ new Map(),
|
|
3070
|
+
interactions: /* @__PURE__ */ new Map()
|
|
3071
|
+
}, a = [];
|
|
3072
|
+
for (let t = 1; t < e.length; t++) {
|
|
3073
|
+
let n = e[t].text;
|
|
3074
|
+
if (A(n, i) || k(n, i) || j(n, i)) continue;
|
|
3075
|
+
if (/^click\s+/i.test(n)) {
|
|
3076
|
+
yi(n, i);
|
|
3077
|
+
continue;
|
|
3078
|
+
}
|
|
3079
|
+
if (xi(n, i)) continue;
|
|
3080
|
+
let r = n.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);
|
|
3081
|
+
if (r) {
|
|
3082
|
+
let e = r[1].trim(), t = g(r[2]);
|
|
3083
|
+
if (e === "default") i.linkStyles.set("default", {
|
|
3084
|
+
...i.linkStyles.get("default"),
|
|
3085
|
+
...t
|
|
3086
|
+
});
|
|
3087
|
+
else {
|
|
3088
|
+
let n = e.split(",").map((e) => parseInt(e.trim(), 10));
|
|
3089
|
+
for (let e of n) isNaN(e) || i.linkStyles.set(e, {
|
|
3090
|
+
...i.linkStyles.get(e),
|
|
3091
|
+
...t
|
|
3092
|
+
});
|
|
3093
|
+
}
|
|
3094
|
+
continue;
|
|
3095
|
+
}
|
|
3096
|
+
let o = n.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);
|
|
3097
|
+
if (o && a.length > 0) {
|
|
3098
|
+
a[a.length - 1].direction = O(o[1]);
|
|
3099
|
+
continue;
|
|
3100
|
+
}
|
|
3101
|
+
let s = n.match(/^subgraph\s+(.+)$/);
|
|
3102
|
+
if (s) {
|
|
3103
|
+
let e = s[1].trim(), t = e.match(/^([^\s[]+)\s*\[(.+)\]$/), n, r;
|
|
3104
|
+
t ? (n = t[1], r = m(ei(t[2]))) : (r = m(ei(e)), n = r.replace(/\s+/g, "_").replace(/[^\p{L}\p{N}_-]/gu, ""));
|
|
3105
|
+
let i = {
|
|
3106
|
+
id: n,
|
|
3107
|
+
label: r,
|
|
3108
|
+
nodeIds: [],
|
|
3109
|
+
children: []
|
|
3110
|
+
};
|
|
3111
|
+
a.push(i);
|
|
3112
|
+
continue;
|
|
3113
|
+
}
|
|
3114
|
+
if (n === "end") {
|
|
3115
|
+
let e = a.pop();
|
|
3116
|
+
e && (a.length > 0 ? a[a.length - 1].children.push(e) : i.subgraphs.push(e));
|
|
3117
|
+
continue;
|
|
3118
|
+
}
|
|
3119
|
+
Ti(n, i, a);
|
|
3120
|
+
}
|
|
3121
|
+
return i;
|
|
3122
|
+
}
|
|
3123
|
+
function si(e) {
|
|
3124
|
+
let t = {
|
|
3125
|
+
direction: "TD",
|
|
3126
|
+
nodes: /* @__PURE__ */ new Map(),
|
|
3127
|
+
edges: [],
|
|
3128
|
+
subgraphs: [],
|
|
3129
|
+
classDefs: /* @__PURE__ */ new Map(),
|
|
3130
|
+
classAssignments: /* @__PURE__ */ new Map(),
|
|
3131
|
+
nodeStyles: /* @__PURE__ */ new Map(),
|
|
3132
|
+
linkStyles: /* @__PURE__ */ new Map(),
|
|
3133
|
+
interactions: /* @__PURE__ */ new Map()
|
|
3134
|
+
}, n = [], r = /* @__PURE__ */ new Set(), i = 0, a = 0;
|
|
3135
|
+
for (let o = 1; o < e.length; o++) {
|
|
3136
|
+
let s = e[o].text, c = s.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);
|
|
3137
|
+
if (c) {
|
|
3138
|
+
n.length > 0 ? n[n.length - 1].direction = O(c[1]) : t.direction = O(c[1]);
|
|
3139
|
+
continue;
|
|
3140
|
+
}
|
|
3141
|
+
let l = s.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);
|
|
3142
|
+
if (l) {
|
|
3143
|
+
let e = l[1].trim(), n = g(l[2]);
|
|
3144
|
+
if (e === "default") t.linkStyles.set("default", {
|
|
3145
|
+
...t.linkStyles.get("default"),
|
|
3146
|
+
...n
|
|
3147
|
+
});
|
|
3148
|
+
else {
|
|
3149
|
+
let r = e.split(",").map((e) => parseInt(e.trim(), 10));
|
|
3150
|
+
for (let e of r) isNaN(e) || t.linkStyles.set(e, {
|
|
3151
|
+
...t.linkStyles.get(e),
|
|
3152
|
+
...n
|
|
3153
|
+
});
|
|
3154
|
+
}
|
|
3155
|
+
continue;
|
|
3156
|
+
}
|
|
3157
|
+
if (xi(s, t)) continue;
|
|
3158
|
+
let u = s.match(/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}]+)\s*\{$/u);
|
|
3159
|
+
if (u) {
|
|
3160
|
+
let e = u[1] ?? u[2], i = u[2], a = {
|
|
3161
|
+
id: i,
|
|
3162
|
+
label: e,
|
|
3163
|
+
nodeIds: [],
|
|
3164
|
+
children: []
|
|
3165
|
+
};
|
|
3166
|
+
n.push(a), r.add(i), t.nodes.delete(i);
|
|
3167
|
+
continue;
|
|
3168
|
+
}
|
|
3169
|
+
if (s === "}") {
|
|
3170
|
+
let e = n.pop();
|
|
3171
|
+
e && (n.length > 0 ? n[n.length - 1].children.push(e) : t.subgraphs.push(e));
|
|
3172
|
+
continue;
|
|
3173
|
+
}
|
|
3174
|
+
let d = s.match(/^state\s+"([^"]+)"\s+as\s+([\w\p{L}]+)\s*$/u);
|
|
3175
|
+
if (d) {
|
|
3176
|
+
let e = m(d[1]), r = d[2];
|
|
3177
|
+
ci(t, n, {
|
|
3178
|
+
id: r,
|
|
3179
|
+
label: e,
|
|
3180
|
+
shape: "rounded"
|
|
3181
|
+
});
|
|
3182
|
+
continue;
|
|
3183
|
+
}
|
|
3184
|
+
let f = s.match(/^(\[\*\]|[\w\p{L}-]+)\s*(?:([\w-]+)@)?-->\s*(\[\*\]|[\w\p{L}-]+)(?:\s*:\s*(.+))?$/u);
|
|
3185
|
+
if (f) {
|
|
3186
|
+
let e = f[1], o = f[2], s = f[3], c = f[4]?.trim(), l = c ? m(c) : void 0;
|
|
3187
|
+
e === "[*]" ? (i++, e = `_start${i > 1 ? i : ""}`, ci(t, n, {
|
|
3188
|
+
id: e,
|
|
3189
|
+
label: "",
|
|
3190
|
+
shape: "state-start"
|
|
3191
|
+
})) : r.has(e) || li(t, n, e), s === "[*]" ? (a++, s = `_end${a > 1 ? a : ""}`, ci(t, n, {
|
|
3192
|
+
id: s,
|
|
3193
|
+
label: "",
|
|
3194
|
+
shape: "state-end"
|
|
3195
|
+
})) : r.has(s) || li(t, n, s), t.edges.push({
|
|
3196
|
+
source: e,
|
|
3197
|
+
target: s,
|
|
3198
|
+
label: l,
|
|
3199
|
+
style: "solid",
|
|
3200
|
+
hasArrowStart: !1,
|
|
3201
|
+
hasArrowEnd: !0,
|
|
3202
|
+
...o === void 0 ? {} : { id: o }
|
|
3203
|
+
});
|
|
3204
|
+
continue;
|
|
3205
|
+
}
|
|
3206
|
+
let p = s.match(/^([\w\p{L}-]+)\s*:\s*(.+)$/u);
|
|
3207
|
+
if (p) {
|
|
3208
|
+
let e = p[1];
|
|
3209
|
+
ci(t, n, {
|
|
3210
|
+
id: e,
|
|
3211
|
+
label: m(p[2].trim()),
|
|
3212
|
+
shape: "rounded"
|
|
3213
|
+
});
|
|
3214
|
+
continue;
|
|
3215
|
+
}
|
|
3216
|
+
}
|
|
3217
|
+
return t;
|
|
3218
|
+
}
|
|
3219
|
+
function ci(e, t, n) {
|
|
3220
|
+
if (e.nodes.has(n.id) || e.nodes.set(n.id, n), t.length > 0) {
|
|
3221
|
+
let e = t[t.length - 1];
|
|
3222
|
+
e.nodeIds.includes(n.id) || e.nodeIds.push(n.id);
|
|
3223
|
+
}
|
|
3224
|
+
}
|
|
3225
|
+
function li(e, t, n) {
|
|
3226
|
+
if (!e.nodes.has(n)) ci(e, t, {
|
|
3227
|
+
id: n,
|
|
3228
|
+
label: n,
|
|
3229
|
+
shape: "rounded"
|
|
3230
|
+
});
|
|
3231
|
+
else if (t.length > 0) {
|
|
3232
|
+
let e = t[t.length - 1];
|
|
3233
|
+
e.nodeIds.includes(n) || e.nodeIds.push(n);
|
|
3234
|
+
}
|
|
3235
|
+
}
|
|
3236
|
+
var ui = /^(<|o|x)?(-{2,}|={2,}|-\.+-|~{3,})(>|o|x)?(?:\|([^|]*)\|)?/, di = /* @__PURE__ */ new Set(["--", "=="]);
|
|
3237
|
+
function fi(e) {
|
|
3238
|
+
if (e === "o") return "circle";
|
|
3239
|
+
if (e === "x") return "cross";
|
|
3240
|
+
}
|
|
3241
|
+
var pi = /^(<|o|x)?(--|-\.|==)\s+(.+?)\s+(-{2,}[>ox]|={2,}[>ox]|\.+-[>ox]|-{3,}|={3,}|-\.+-)/, mi = [
|
|
3242
|
+
{
|
|
3243
|
+
regex: /^([\w\p{L}-]+)\(\(\(((?:"[^"]*"|(?!\)\)\)).)+)\)\)\)/u,
|
|
3244
|
+
shape: "doublecircle"
|
|
3245
|
+
},
|
|
3246
|
+
{
|
|
3247
|
+
regex: /^([\w\p{L}-]+)\(\[((?:"[^"]*"|(?!\]\)).)+)\]\)/u,
|
|
3248
|
+
shape: "stadium"
|
|
3249
|
+
},
|
|
3250
|
+
{
|
|
3251
|
+
regex: /^([\w\p{L}-]+)\(\(((?:"[^"]*"|(?!\)\)).)+)\)\)/u,
|
|
3252
|
+
shape: "circle"
|
|
3253
|
+
},
|
|
3254
|
+
{
|
|
3255
|
+
regex: /^([\w\p{L}-]+)\[\[((?:"[^"]*"|(?!\]\]).)+)\]\]/u,
|
|
3256
|
+
shape: "subroutine"
|
|
3257
|
+
},
|
|
3258
|
+
{
|
|
3259
|
+
regex: /^([\w\p{L}-]+)\[\(((?:"[^"]*"|(?!\)\]).)+)\)\]/u,
|
|
3260
|
+
shape: "cylinder"
|
|
3261
|
+
},
|
|
3262
|
+
{
|
|
3263
|
+
regex: /^([\w\p{L}-]+)\[\/((?:"[^"]*"|(?![\\/]\]).)+)([\\/])\]/u,
|
|
3264
|
+
shape: (e) => e === "\\" ? "trapezoid" : "parallelogram"
|
|
3265
|
+
},
|
|
3266
|
+
{
|
|
3267
|
+
regex: /^([\w\p{L}-]+)\[\\((?:"[^"]*"|(?![\\/]\]).)+)([\\/])\]/u,
|
|
3268
|
+
shape: (e) => e === "/" ? "trapezoid-alt" : "parallelogram-alt"
|
|
3269
|
+
},
|
|
3270
|
+
{
|
|
3271
|
+
regex: /^([\w\p{L}-]+)>((?:"[^"]*"|(?!\]).)+)\]/u,
|
|
3272
|
+
shape: "asymmetric"
|
|
3273
|
+
},
|
|
3274
|
+
{
|
|
3275
|
+
regex: /^([\w\p{L}-]+)\{\{((?:"[^"]*"|(?!\}\}).)+)\}\}/u,
|
|
3276
|
+
shape: "hexagon"
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
regex: /^([\w\p{L}-]+)\[((?:"[^"]*"|(?!\]).)+)\]/u,
|
|
3280
|
+
shape: "rectangle"
|
|
3281
|
+
},
|
|
3282
|
+
{
|
|
3283
|
+
regex: /^([\w\p{L}-]+)\(((?:"[^"]*"|(?!\)).)+)\)/u,
|
|
3284
|
+
shape: "rounded"
|
|
3285
|
+
},
|
|
3286
|
+
{
|
|
3287
|
+
regex: /^([\w\p{L}-]+)\{((?:"[^"]*"|(?!\}).)+)\}/u,
|
|
3288
|
+
shape: "diamond"
|
|
3289
|
+
}
|
|
3290
|
+
], hi = /^([\w\p{L}]+(?:-[\w\p{L}]+)*)/u, gi = /^([\w\p{L}-]+)(?=@\{)/u;
|
|
3291
|
+
function _i(e) {
|
|
3292
|
+
if (e.shape) return de(e.shape) ?? "rectangle";
|
|
3293
|
+
if (e.icon !== void 0 || e.img !== void 0) switch (e.form?.toLowerCase()) {
|
|
3294
|
+
case "circle": return "circle";
|
|
3295
|
+
case "rounded": return "rounded";
|
|
3296
|
+
default: return "rectangle";
|
|
3297
|
+
}
|
|
3298
|
+
return "rectangle";
|
|
3299
|
+
}
|
|
3300
|
+
function vi(e, t) {
|
|
3301
|
+
return t.label !== void 0 && t.label.length > 0 ? t.label : t.icon ? t.icon : t.img ? t.img : e;
|
|
3302
|
+
}
|
|
3303
|
+
function yi(e, n) {
|
|
3304
|
+
t(e, n.interactions);
|
|
3305
|
+
}
|
|
3306
|
+
var bi = /^([\w-]+)(?=@\{)/;
|
|
3307
|
+
function xi(e, t) {
|
|
3308
|
+
let n = e.match(bi);
|
|
3309
|
+
if (!n || !t.edges.some((e) => e.id === n[1])) return !1;
|
|
3310
|
+
let r = ae(e.slice(n[1].length));
|
|
3311
|
+
return r ? (Si(t, n[1], ce(r.body)), !0) : !1;
|
|
3312
|
+
}
|
|
3313
|
+
function Si(e, t, n) {
|
|
3314
|
+
for (let r of e.edges) r.id === t && (n.animate !== void 0 && (r.animate = n.animate.toLowerCase() !== "false"), n.animation !== void 0 && (r.animate = !0));
|
|
3315
|
+
}
|
|
3316
|
+
var Ci = /^:::([\w][\w-]*)/, wi = /^([\w\p{L}-]+):::([\w][\w-]*)/u;
|
|
3317
|
+
function Ti(e, t, n) {
|
|
3318
|
+
let r = e.trim(), i = Ei(r, t, n);
|
|
3319
|
+
if (!i || i.ids.length === 0) return;
|
|
3320
|
+
r = i.remaining.trim();
|
|
3321
|
+
let a = i.ids;
|
|
3322
|
+
for (; r.length > 0;) {
|
|
3323
|
+
let e, i, o, s, c, l, u, d = r.match(/^([\w-]+)@(?=[-=<~ox])/);
|
|
3324
|
+
d && (u = d[1], r = r.slice(d[0].length));
|
|
3325
|
+
let f = r.match(ui), p = f?.[2], h = f?.[1], g = f?.[3];
|
|
3326
|
+
if (f && p !== void 0 && !(h === void 0 && g === void 0 && di.has(p))) {
|
|
3327
|
+
e = h !== void 0, c = fi(h);
|
|
3328
|
+
let t = f[4]?.trim();
|
|
3329
|
+
s = t ? m(t) : void 0, r = r.slice(f[0].length).trim(), i = Ai(p), o = g !== void 0, l = fi(g);
|
|
3330
|
+
} else {
|
|
3331
|
+
let t = r.match(pi);
|
|
3332
|
+
if (!t) break;
|
|
3333
|
+
e = !!t[1], c = fi(t[1]);
|
|
3334
|
+
let n = t[3].trim();
|
|
3335
|
+
s = n ? m(n) : void 0;
|
|
3336
|
+
let a = t[2], u = t[4];
|
|
3337
|
+
r = r.slice(t[0].length).trim(), i = ji(a, u), l = fi(u.slice(-1)), o = u.endsWith(">") || l !== void 0;
|
|
3338
|
+
}
|
|
3339
|
+
let _ = Ei(r, t, n);
|
|
3340
|
+
if (!_ || _.ids.length === 0) break;
|
|
3341
|
+
r = _.remaining.trim();
|
|
3342
|
+
for (let n of a) for (let r of _.ids) t.edges.push({
|
|
3343
|
+
source: n,
|
|
3344
|
+
target: r,
|
|
3345
|
+
label: s,
|
|
3346
|
+
style: i,
|
|
3347
|
+
hasArrowStart: e,
|
|
3348
|
+
hasArrowEnd: o,
|
|
3349
|
+
...c === void 0 ? {} : { startMarker: c },
|
|
3350
|
+
...l === void 0 ? {} : { endMarker: l },
|
|
3351
|
+
...u === void 0 ? {} : { id: u }
|
|
3352
|
+
});
|
|
3353
|
+
a = _.ids;
|
|
3354
|
+
}
|
|
3355
|
+
}
|
|
3356
|
+
function Ei(e, t, n) {
|
|
3357
|
+
let r = Di(e, t, n);
|
|
3358
|
+
if (!r) return null;
|
|
3359
|
+
let i = [r.id], a = r.remaining.trim();
|
|
3360
|
+
for (; a.startsWith("&");) {
|
|
3361
|
+
a = a.slice(1).trim();
|
|
3362
|
+
let e = Di(a, t, n);
|
|
3363
|
+
if (!e) break;
|
|
3364
|
+
i.push(e.id), a = e.remaining.trim();
|
|
3365
|
+
}
|
|
3366
|
+
return {
|
|
3367
|
+
ids: i,
|
|
3368
|
+
remaining: a
|
|
3369
|
+
};
|
|
3370
|
+
}
|
|
3371
|
+
function Di(e, t, n) {
|
|
3372
|
+
let r = null, i = e, a, o = i.match(wi);
|
|
3373
|
+
o && (a = o[2], i = o[1] + i.slice(o[0].length));
|
|
3374
|
+
let s = i.match(gi);
|
|
3375
|
+
if (s) {
|
|
3376
|
+
let e = s[1], a = ae(i.slice(e.length));
|
|
3377
|
+
if (a) {
|
|
3378
|
+
let o = ce(a.body);
|
|
3379
|
+
Oi(t, n, {
|
|
3380
|
+
id: e,
|
|
3381
|
+
label: m(vi(e, o)),
|
|
3382
|
+
shape: _i(o)
|
|
3383
|
+
}), r = e, i = i.slice(e.length + a.length);
|
|
3384
|
+
}
|
|
3385
|
+
}
|
|
3386
|
+
if (r === null) for (let { regex: e, shape: a } of mi) {
|
|
3387
|
+
let o = i.match(e);
|
|
3388
|
+
if (o) {
|
|
3389
|
+
r = o[1];
|
|
3390
|
+
let e = m(o[2]), s = typeof a == "function" ? a(o[3] ?? "") : a;
|
|
3391
|
+
Oi(t, n, {
|
|
3392
|
+
id: r,
|
|
3393
|
+
label: e,
|
|
3394
|
+
shape: s
|
|
3395
|
+
}), i = i.slice(o[0].length);
|
|
3396
|
+
break;
|
|
3397
|
+
}
|
|
3398
|
+
}
|
|
3399
|
+
if (r === null) {
|
|
3400
|
+
let e = i.match(hi);
|
|
3401
|
+
e && (r = e[1], t.nodes.has(r) || Oi(t, n, {
|
|
3402
|
+
id: r,
|
|
3403
|
+
label: r,
|
|
3404
|
+
shape: "rectangle"
|
|
3405
|
+
}), i = i.slice(e[0].length));
|
|
3406
|
+
}
|
|
3407
|
+
if (r === null) return null;
|
|
3408
|
+
a && t.classAssignments.set(r, a);
|
|
3409
|
+
let c = i.match(Ci);
|
|
3410
|
+
return c && (t.classAssignments.set(r, c[1]), i = i.slice(c[0].length)), {
|
|
3411
|
+
id: r,
|
|
3412
|
+
remaining: i
|
|
3413
|
+
};
|
|
3414
|
+
}
|
|
3415
|
+
function Oi(e, t, n) {
|
|
3416
|
+
e.nodes.has(n.id) || e.nodes.set(n.id, n), ki(t, n.id);
|
|
3417
|
+
}
|
|
3418
|
+
function ki(e, t) {
|
|
3419
|
+
if (e.length > 0) {
|
|
3420
|
+
let n = e[e.length - 1];
|
|
3421
|
+
n.nodeIds.includes(t) || n.nodeIds.push(t);
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
function Ai(e) {
|
|
3425
|
+
return e.startsWith("~") ? "invisible" : e.includes(".") ? "dotted" : e.startsWith("=") ? "thick" : "solid";
|
|
3426
|
+
}
|
|
3427
|
+
function ji(e, t) {
|
|
3428
|
+
return e.includes(".") || t.includes(".") ? "dotted" : e.startsWith("=") || t.startsWith("=") ? "thick" : "solid";
|
|
3429
|
+
}
|
|
3430
|
+
//#endregion
|
|
3431
|
+
//#region packages/svg-renderer/src/registry.ts
|
|
3432
|
+
var Mi = {
|
|
3433
|
+
type: "xychart",
|
|
3434
|
+
parse: ue,
|
|
3435
|
+
layoutForSvg: Fr,
|
|
3436
|
+
renderSvg(e, t, n) {
|
|
3437
|
+
let r = n.interactivity === void 0 ? n.interactive ?? !1 : n.interactivity === "full";
|
|
3438
|
+
return Kr(e, t.colors, t.font, t.transparent, r, t.embedSource, t.title, t.decorative, t.emit);
|
|
3439
|
+
}
|
|
3440
|
+
}, Ni = {
|
|
3441
|
+
type: "sequence",
|
|
3442
|
+
parse: le,
|
|
3443
|
+
layoutForSvg: Sr,
|
|
3444
|
+
renderSvg(e, t) {
|
|
3445
|
+
return Cr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
|
|
3446
|
+
}
|
|
3447
|
+
};
|
|
3448
|
+
function Pi(e) {
|
|
3449
|
+
return (e.interactivity ?? "static") !== "none";
|
|
3450
|
+
}
|
|
3451
|
+
function Fi(e) {
|
|
3452
|
+
return (e.interactivity ?? "static") === "full";
|
|
3453
|
+
}
|
|
3454
|
+
var Ii = {
|
|
3455
|
+
xychart: Mi,
|
|
3456
|
+
er: {
|
|
3457
|
+
type: "er",
|
|
3458
|
+
parse: se,
|
|
3459
|
+
layoutForSvg(e, t) {
|
|
3460
|
+
return ur(ee(e, t.direction), t);
|
|
3461
|
+
},
|
|
3462
|
+
renderSvg(e, t) {
|
|
3463
|
+
return dr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
|
|
3464
|
+
}
|
|
3465
|
+
},
|
|
3466
|
+
sequence: Ni,
|
|
3467
|
+
class: {
|
|
3468
|
+
type: "class",
|
|
3469
|
+
parse: oe,
|
|
3470
|
+
layoutForSvg: Kn,
|
|
3471
|
+
renderSvg(e, t, n) {
|
|
3472
|
+
return Yn(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, Pi(n), t.emit);
|
|
3473
|
+
}
|
|
3474
|
+
},
|
|
3475
|
+
flowchart: {
|
|
3476
|
+
type: "flowchart",
|
|
3477
|
+
parse: (e, t) => ai(t),
|
|
3478
|
+
layoutForSvg(e, t) {
|
|
3479
|
+
return {
|
|
3480
|
+
graph: Ot(ee(e, t.direction), t),
|
|
3481
|
+
curve: t.curve ?? e.initConfig?.curve ?? "linear"
|
|
3482
|
+
};
|
|
3483
|
+
},
|
|
3484
|
+
renderSvg(e, t, n) {
|
|
3485
|
+
return At(e.graph, t.colors, t.font, t.transparent, t.fontSizes, e.curve, t.embedSource, Fi(n), Pi(n), t.title, t.decorative, t.emit);
|
|
3486
|
+
}
|
|
3487
|
+
}
|
|
3488
|
+
};
|
|
3489
|
+
//#endregion
|
|
3490
|
+
//#region packages/svg-renderer/src/index.ts
|
|
3491
|
+
function Li(t) {
|
|
3492
|
+
return {
|
|
3493
|
+
bg: t.bg ?? e.bg,
|
|
3494
|
+
fg: t.fg ?? e.fg,
|
|
3495
|
+
line: t.line,
|
|
3496
|
+
accent: t.accent,
|
|
3497
|
+
muted: t.muted,
|
|
3498
|
+
surface: t.surface,
|
|
3499
|
+
border: t.border
|
|
3500
|
+
};
|
|
3501
|
+
}
|
|
3502
|
+
function Ri(e = {}) {
|
|
3503
|
+
return D(Li(e), e.transparent);
|
|
3504
|
+
}
|
|
3505
|
+
function zi(e) {
|
|
3506
|
+
return {
|
|
3507
|
+
nonce: e.nonce,
|
|
3508
|
+
styleAttribute: e.styleAttribute
|
|
3509
|
+
};
|
|
3510
|
+
}
|
|
3511
|
+
function Bi(e, t = {}) {
|
|
3512
|
+
let n = Vi(e, t);
|
|
3513
|
+
return t.resolveColors ? Vn(n, Li(t)) : n;
|
|
3514
|
+
}
|
|
3515
|
+
function Vi(e, t) {
|
|
3516
|
+
let n = fe(e), i = Li(t), a = t.font ?? "Inter";
|
|
3517
|
+
S(u(a));
|
|
3518
|
+
let o = t.transparent ?? !1, s = P(t.fontSizes), c = r(n), l = t.embedSource ? e : void 0, d = t.title, f = t.decorative, p = zi(t), m = C(n), h = Ii[c], g = h.parse(m, n), _ = h.layoutForSvg(g, t), v = {
|
|
3519
|
+
colors: i,
|
|
3520
|
+
font: a,
|
|
3521
|
+
transparent: o,
|
|
3522
|
+
fontSizes: s,
|
|
3523
|
+
embedSource: l,
|
|
3524
|
+
title: d,
|
|
3525
|
+
decorative: f,
|
|
3526
|
+
emit: p
|
|
3527
|
+
};
|
|
3528
|
+
return h.renderSvg(_, v, t);
|
|
3529
|
+
}
|
|
3530
|
+
async function Hi(e, t = {}) {
|
|
3531
|
+
return Bi(e, t);
|
|
3532
|
+
}
|
|
3533
|
+
var Ui = Bi, Wi = Hi;
|
|
3534
|
+
//#endregion
|
|
3535
|
+
export { z as ARROW_HEAD, W as CLS, je as ELK_DIRECTION_FALLBACK, N as FONT_SIZES, F as FONT_WEIGHTS, ke as GROUP_HEADER_CONTENT_PAD, Fe as INLINE_CENTERED_EDGE_LABEL, De as MONO_FONT, Oe as MONO_FONT_STACK, I as NODE_PADDING, L as STROKE_WIDTHS, R as TEXT_BASELINE_SHIFT, Pe as baseElkLayoutOptions, br as boxLabelHeight, V as buildElkEdge, Ie as buildElkEdgeLabel, B as buildElkLeafNode, Hn as classNoteId, Ze as clipEdgeToShape, kt as convertToElkFormat, Se as createLayoutCache, Me as directionToElk, Te as elkLayoutSync, Ne as elkPadding, Ee as estimateMonoTextWidth, M as estimateTextWidth, Fn as evaluateCssColorValue, ct as extractEdgeLabelPosition, st as extractEdgePoints, Kn as layoutClassDiagramSync, ur as layoutErDiagramSync, Ot as layoutGraphSync, Sr as layoutSequenceDiagram, Fr as layoutXYChart, ve as pointsToPath, Yn as renderClassSvg, dr as renderErSvg, Wi as renderMermaid, Bi as renderMermaidSVG, Hi as renderMermaidSVGAsync, Ui as renderMermaidSync, Cr as renderSequenceSvg, At as renderSvg, Kr as renderXYChartSvg, Vn as resolveCssColors, P as resolveFontSizes, Ri as themeCssVariables, U as withDataSrc };
|
|
2993
3536
|
|
|
2994
3537
|
//# sourceMappingURL=index.js.map
|