@elmethis/core 1.0.0-alpha.134 → 1.0.0-alpha.136

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.
Files changed (66) hide show
  1. package/dist/{Bash-CH5FqaYP.js → Bash-BGUPOZp7.js} +1 -1
  2. package/dist/{Css-CIfznlc_.js → Css-BCZOJ9TO.js} +1 -1
  3. package/dist/{Rust-CZSAfuWF.js → Rust-BwvKtYCc.js} +1 -1
  4. package/dist/_basePickBy-BjVOtBbf.js +152 -0
  5. package/dist/_baseUniq-DBXEmOed.js +583 -0
  6. package/dist/arc-CpOtc53l.js +83 -0
  7. package/dist/architecture-I3QFYML2-B3piHlUx.js +5 -0
  8. package/dist/architectureDiagram-UYN6MBPD-CIvqBNYd.js +4595 -0
  9. package/dist/blockDiagram-ZHA2E4KO-BJHIBwi6.js +2247 -0
  10. package/dist/c4Diagram-6F5ED5ID-DxXqw6e0.js +1581 -0
  11. package/dist/channel-BgZSmjvA.js +5 -0
  12. package/dist/chunk-5HRBRIJM-CvhBPtHu.js +24 -0
  13. package/dist/chunk-7U56Z5CX-CaWvnXle.js +1215 -0
  14. package/dist/chunk-ASOPGD6M-CQjrO8hd.js +64 -0
  15. package/dist/chunk-KFBOBJHC-DWru5GNu.js +15 -0
  16. package/dist/chunk-T2TOU4HS-DqpYO7rW.js +1303 -0
  17. package/dist/chunk-TMUBEWPD-LmMMNIqt.js +9 -0
  18. package/dist/classDiagram-LNE6IOMH-D5GoOZTJ.js +14 -0
  19. package/dist/classDiagram-v2-MQ7JQ4JX-D5GoOZTJ.js +14 -0
  20. package/dist/clone-DMQ2a__4.js +8 -0
  21. package/dist/{cobol-DZ3yq6J9.js → cobol-DMssKNmC.js} +1 -1
  22. package/dist/components/code/ElmMermaid.stories.d.ts +7 -0
  23. package/dist/components/code/ElmMermaid.vue.d.ts +8 -0
  24. package/dist/cytoscape.esm-CsRvAgYT.js +17639 -0
  25. package/dist/dagre-4EVJKHTY-C7YsHY3S.js +447 -0
  26. package/dist/diagram-QW4FP2JN-iDbrW_yI.js +126 -0
  27. package/dist/elmethis.js +36 -35
  28. package/dist/elmethis.umd.cjs +2272 -41
  29. package/dist/erDiagram-6RL3IURR-LYq0WEw3.js +937 -0
  30. package/dist/flowDiagram-7ASYPVHJ-DRPtjs2_.js +1484 -0
  31. package/dist/ganttDiagram-NTVNEXSI-C-hO_7Lp.js +2494 -0
  32. package/dist/gitGraph-YCYPL57B-BaVhg8eu.js +5 -0
  33. package/dist/gitGraphDiagram-NRZ2UAAF-u52k9qsq.js +712 -0
  34. package/dist/graph-CKV5wesZ.js +247 -0
  35. package/dist/{index-B_eGv85A.js → index-DQdUr-_f.js} +4349 -4241
  36. package/dist/index.d.ts +3 -2
  37. package/dist/info-46DW6VJ7-D5JUpHK_.js +5 -0
  38. package/dist/infoDiagram-A4XQUW5V-D5IcjWQu.js +22 -0
  39. package/dist/init-DjUOC4st.js +16 -0
  40. package/dist/journeyDiagram-G5WM74LC-XHcEaxXL.js +810 -0
  41. package/dist/kanban-definition-QRCXZQQD-BFgu8zXi.js +718 -0
  42. package/dist/layout-Cycesmdu.js +1324 -0
  43. package/dist/linear-CjRkwbhR.js +423 -0
  44. package/dist/mermaid-parser.core-CL_REaxY.js +12479 -0
  45. package/dist/mermaid.core-gtllNrzr.js +14852 -0
  46. package/dist/mindmap-definition-GWI6TPTV-yPOhYeCo.js +3220 -0
  47. package/dist/ordinal-DfAQgscy.js +61 -0
  48. package/dist/packet-W2GHVCYJ-D1drjM5q.js +5 -0
  49. package/dist/pie-BEWT4RHE-B2xFs62T.js +5 -0
  50. package/dist/pieDiagram-YF2LJOPJ-Cnvx0DvF.js +162 -0
  51. package/dist/quadrantDiagram-OS5C2QUG-DBWy6UVd.js +1024 -0
  52. package/dist/{razor-Dl6rcHmj.js → razor-CeqqNtyB.js} +1 -1
  53. package/dist/requirementDiagram-MIRIMTAZ-CfHcsBsO.js +768 -0
  54. package/dist/sankeyDiagram-Y46BX6SQ-C_60tCtv.js +805 -0
  55. package/dist/sass-eCUyDs9S.js +6 -0
  56. package/dist/scala-Cly-fENF.js +6 -0
  57. package/dist/sequenceDiagram-G6AWOVSC-XvgYpHvJ.js +2274 -0
  58. package/dist/stateDiagram-MAYHULR4-Bx48BKG3.js +268 -0
  59. package/dist/stateDiagram-v2-4JROLMXI-pDuBzVSZ.js +14 -0
  60. package/dist/swift-BAWqNR8A.js +6 -0
  61. package/dist/timeline-definition-U7ZMHBDA-EGhtku4S.js +804 -0
  62. package/dist/xychartDiagram-6QU3TZC5-B_OmutYz.js +1304 -0
  63. package/package.json +13 -12
  64. package/dist/sass-iCyS6eP9.js +0 -6
  65. package/dist/scala-BQHTnvwx.js +0 -6
  66. package/dist/swift-OL4r9IGP.js +0 -6
@@ -0,0 +1,447 @@
1
+ import { _ as X, av as F, aw as Y, ax as _, ay as H, l as i, d as V, az as z, aA as U, ah as $, am as q, ai as P, ag as K, aB as Q, aC as W, aD as Z } from "./mermaid.core-gtllNrzr.js";
2
+ import { G as B } from "./graph-CKV5wesZ.js";
3
+ import { l as I } from "./layout-Cycesmdu.js";
4
+ import { i as S } from "./_baseUniq-DBXEmOed.js";
5
+ import { c as L } from "./clone-DMQ2a__4.js";
6
+ import { m as A } from "./_basePickBy-BjVOtBbf.js";
7
+ function p(e) {
8
+ var t = {
9
+ options: {
10
+ directed: e.isDirected(),
11
+ multigraph: e.isMultigraph(),
12
+ compound: e.isCompound()
13
+ },
14
+ nodes: ee(e),
15
+ edges: ne(e)
16
+ };
17
+ return S(e.graph()) || (t.value = L(e.graph())), t;
18
+ }
19
+ function ee(e) {
20
+ return A(e.nodes(), function(t) {
21
+ var n = e.node(t), o = e.parent(t), c = { v: t };
22
+ return S(n) || (c.value = n), S(o) || (c.parent = o), c;
23
+ });
24
+ }
25
+ function ne(e) {
26
+ return A(e.edges(), function(t) {
27
+ var n = e.edge(t), o = { v: t.v, w: t.w };
28
+ return S(t.name) || (o.name = t.name), S(n) || (o.value = n), o;
29
+ });
30
+ }
31
+ var f = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), J = /* @__PURE__ */ new Map(), te = /* @__PURE__ */ X(() => {
32
+ b.clear(), J.clear(), f.clear();
33
+ }, "clear"), O = /* @__PURE__ */ X((e, t) => {
34
+ const n = b.get(t) || [];
35
+ return i.trace("In isDescendant", t, " ", e, " = ", n.includes(e)), n.includes(e);
36
+ }, "isDescendant"), se = /* @__PURE__ */ X((e, t) => {
37
+ const n = b.get(t) || [];
38
+ return i.info("Descendants of ", t, " is ", n), i.info("Edge is ", e), e.v === t || e.w === t ? !1 : n ? n.includes(e.v) || O(e.v, t) || O(e.w, t) || n.includes(e.w) : (i.debug("Tilt, ", t, ",not in descendants"), !1);
39
+ }, "edgeInCluster"), G = /* @__PURE__ */ X((e, t, n, o) => {
40
+ i.warn(
41
+ "Copying children of ",
42
+ e,
43
+ "root",
44
+ o,
45
+ "data",
46
+ t.node(e),
47
+ o
48
+ );
49
+ const c = t.children(e) || [];
50
+ e !== o && c.push(e), i.warn("Copying (nodes) clusterId", e, "nodes", c), c.forEach((a) => {
51
+ if (t.children(a).length > 0)
52
+ G(a, t, n, o);
53
+ else {
54
+ const r = t.node(a);
55
+ i.info("cp ", a, " to ", o, " with parent ", e), n.setNode(a, r), o !== t.parent(a) && (i.warn("Setting parent", a, t.parent(a)), n.setParent(a, t.parent(a))), e !== o && a !== e ? (i.debug("Setting parent", a, e), n.setParent(a, e)) : (i.info("In copy ", e, "root", o, "data", t.node(e), o), i.debug(
56
+ "Not Setting parent for node=",
57
+ a,
58
+ "cluster!==rootId",
59
+ e !== o,
60
+ "node!==clusterId",
61
+ a !== e
62
+ ));
63
+ const u = t.edges(a);
64
+ i.debug("Copying Edges", u), u.forEach((l) => {
65
+ i.info("Edge", l);
66
+ const v = t.edge(l.v, l.w, l.name);
67
+ i.info("Edge data", v, o);
68
+ try {
69
+ se(l, o) ? (i.info("Copying as ", l.v, l.w, v, l.name), n.setEdge(l.v, l.w, v, l.name), i.info("newGraph edges ", n.edges(), n.edge(n.edges()[0]))) : i.info(
70
+ "Skipping copy of edge ",
71
+ l.v,
72
+ "-->",
73
+ l.w,
74
+ " rootId: ",
75
+ o,
76
+ " clusterId:",
77
+ e
78
+ );
79
+ } catch (C) {
80
+ i.error(C);
81
+ }
82
+ });
83
+ }
84
+ i.debug("Removing node", a), t.removeNode(a);
85
+ });
86
+ }, "copy"), R = /* @__PURE__ */ X((e, t) => {
87
+ const n = t.children(e);
88
+ let o = [...n];
89
+ for (const c of n)
90
+ J.set(c, e), o = [...o, ...R(c, t)];
91
+ return o;
92
+ }, "extractDescendants"), ie = /* @__PURE__ */ X((e, t, n) => {
93
+ const o = e.edges().filter((l) => l.v === t || l.w === t), c = e.edges().filter((l) => l.v === n || l.w === n), a = o.map((l) => ({ v: l.v === t ? n : l.v, w: l.w === t ? t : l.w })), r = c.map((l) => ({ v: l.v, w: l.w }));
94
+ return a.filter((l) => r.some((v) => l.v === v.v && l.w === v.w));
95
+ }, "findCommonEdges"), D = /* @__PURE__ */ X((e, t, n) => {
96
+ const o = t.children(e);
97
+ if (i.trace("Searching children of id ", e, o), o.length < 1)
98
+ return e;
99
+ let c;
100
+ for (const a of o) {
101
+ const r = D(a, t, n), u = ie(t, n, r);
102
+ if (r)
103
+ if (u.length > 0)
104
+ c = r;
105
+ else
106
+ return r;
107
+ }
108
+ return c;
109
+ }, "findNonClusterChild"), k = /* @__PURE__ */ X((e) => !f.has(e) || !f.get(e).externalConnections ? e : f.has(e) ? f.get(e).id : e, "getAnchorId"), re = /* @__PURE__ */ X((e, t) => {
110
+ if (!e || t > 10) {
111
+ i.debug("Opting out, no graph ");
112
+ return;
113
+ } else
114
+ i.debug("Opting in, graph ");
115
+ e.nodes().forEach(function(n) {
116
+ e.children(n).length > 0 && (i.warn(
117
+ "Cluster identified",
118
+ n,
119
+ " Replacement id in edges: ",
120
+ D(n, e, n)
121
+ ), b.set(n, R(n, e)), f.set(n, { id: D(n, e, n), clusterData: e.node(n) }));
122
+ }), e.nodes().forEach(function(n) {
123
+ const o = e.children(n), c = e.edges();
124
+ o.length > 0 ? (i.debug("Cluster identified", n, b), c.forEach((a) => {
125
+ const r = O(a.v, n), u = O(a.w, n);
126
+ r ^ u && (i.warn("Edge: ", a, " leaves cluster ", n), i.warn("Descendants of XXX ", n, ": ", b.get(n)), f.get(n).externalConnections = !0);
127
+ })) : i.debug("Not a cluster ", n, b);
128
+ });
129
+ for (let n of f.keys()) {
130
+ const o = f.get(n).id, c = e.parent(o);
131
+ c !== n && f.has(c) && !f.get(c).externalConnections && (f.get(n).id = c);
132
+ }
133
+ e.edges().forEach(function(n) {
134
+ const o = e.edge(n);
135
+ i.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(n)), i.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(e.edge(n)));
136
+ let c = n.v, a = n.w;
137
+ if (i.warn(
138
+ "Fix XXX",
139
+ f,
140
+ "ids:",
141
+ n.v,
142
+ n.w,
143
+ "Translating: ",
144
+ f.get(n.v),
145
+ " --- ",
146
+ f.get(n.w)
147
+ ), f.get(n.v) || f.get(n.w)) {
148
+ if (i.warn("Fixing and trying - removing XXX", n.v, n.w, n.name), c = k(n.v), a = k(n.w), e.removeEdge(n.v, n.w, n.name), c !== n.v) {
149
+ const r = e.parent(c);
150
+ f.get(r).externalConnections = !0, o.fromCluster = n.v;
151
+ }
152
+ if (a !== n.w) {
153
+ const r = e.parent(a);
154
+ f.get(r).externalConnections = !0, o.toCluster = n.w;
155
+ }
156
+ i.warn("Fix Replacing with XXX", c, a, n.name), e.setEdge(c, a, o, n.name);
157
+ }
158
+ }), i.warn("Adjusted Graph", p(e)), T(e, 0), i.trace(f);
159
+ }, "adjustClustersAndEdges"), T = /* @__PURE__ */ X((e, t) => {
160
+ var c, a;
161
+ if (i.warn("extractor - ", t, p(e), e.children("D")), t > 10) {
162
+ i.error("Bailing out");
163
+ return;
164
+ }
165
+ let n = e.nodes(), o = !1;
166
+ for (const r of n) {
167
+ const u = e.children(r);
168
+ o = o || u.length > 0;
169
+ }
170
+ if (!o) {
171
+ i.debug("Done, no node has children", e.nodes());
172
+ return;
173
+ }
174
+ i.debug("Nodes = ", n, t);
175
+ for (const r of n)
176
+ if (i.debug(
177
+ "Extracting node",
178
+ r,
179
+ f,
180
+ f.has(r) && !f.get(r).externalConnections,
181
+ !e.parent(r),
182
+ e.node(r),
183
+ e.children("D"),
184
+ " Depth ",
185
+ t
186
+ ), !f.has(r))
187
+ i.debug("Not a cluster", r, t);
188
+ else if (!f.get(r).externalConnections && e.children(r) && e.children(r).length > 0) {
189
+ i.warn(
190
+ "Cluster without external connections, without a parent and with children",
191
+ r,
192
+ t
193
+ );
194
+ let l = e.graph().rankdir === "TB" ? "LR" : "TB";
195
+ (a = (c = f.get(r)) == null ? void 0 : c.clusterData) != null && a.dir && (l = f.get(r).clusterData.dir, i.warn("Fixing dir", f.get(r).clusterData.dir, l));
196
+ const v = new B({
197
+ multigraph: !0,
198
+ compound: !0
199
+ }).setGraph({
200
+ rankdir: l,
201
+ nodesep: 50,
202
+ ranksep: 50,
203
+ marginx: 8,
204
+ marginy: 8
205
+ }).setDefaultEdgeLabel(function() {
206
+ return {};
207
+ });
208
+ i.warn("Old graph before copy", p(e)), G(r, e, v, r), e.setNode(r, {
209
+ clusterNode: !0,
210
+ id: r,
211
+ clusterData: f.get(r).clusterData,
212
+ label: f.get(r).label,
213
+ graph: v
214
+ }), i.warn("New graph after copy node: (", r, ")", p(v)), i.debug("Old graph after copy", p(e));
215
+ } else
216
+ i.warn(
217
+ "Cluster ** ",
218
+ r,
219
+ " **not meeting the criteria !externalConnections:",
220
+ !f.get(r).externalConnections,
221
+ " no parent: ",
222
+ !e.parent(r),
223
+ " children ",
224
+ e.children(r) && e.children(r).length > 0,
225
+ e.children("D"),
226
+ t
227
+ ), i.debug(f);
228
+ n = e.nodes(), i.warn("New list of nodes", n);
229
+ for (const r of n) {
230
+ const u = e.node(r);
231
+ i.warn(" Now next level", r, u), u != null && u.clusterNode && T(u.graph, t + 1);
232
+ }
233
+ }, "extractor"), M = /* @__PURE__ */ X((e, t) => {
234
+ if (t.length === 0)
235
+ return [];
236
+ let n = Object.assign([], t);
237
+ return t.forEach((o) => {
238
+ const c = e.children(o), a = M(e, c);
239
+ n = [...n, ...a];
240
+ }), n;
241
+ }, "sorter"), oe = /* @__PURE__ */ X((e) => M(e, e.children()), "sortNodesByHierarchy"), j = /* @__PURE__ */ X(async (e, t, n, o, c, a) => {
242
+ i.warn("Graph in recursive render:XAX", p(t), c);
243
+ const r = t.graph().rankdir;
244
+ i.trace("Dir in recursive render - dir:", r);
245
+ const u = e.insert("g").attr("class", "root");
246
+ t.nodes() ? i.info("Recursive render XXX", t.nodes()) : i.info("No nodes found for", t), t.edges().length > 0 && i.info("Recursive edges", t.edge(t.edges()[0]));
247
+ const l = u.insert("g").attr("class", "clusters"), v = u.insert("g").attr("class", "edgePaths"), C = u.insert("g").attr("class", "edgeLabels"), g = u.insert("g").attr("class", "nodes");
248
+ await Promise.all(
249
+ t.nodes().map(async function(d) {
250
+ const s = t.node(d);
251
+ if (c !== void 0) {
252
+ const m = JSON.parse(JSON.stringify(c.clusterData));
253
+ i.trace(
254
+ `Setting data for parent cluster XXX
255
+ Node.id = `,
256
+ d,
257
+ `
258
+ data=`,
259
+ m.height,
260
+ `
261
+ Parent cluster`,
262
+ c.height
263
+ ), t.setNode(c.id, m), t.parent(d) || (i.trace("Setting parent", d, c.id), t.setParent(d, c.id, m));
264
+ }
265
+ if (i.info("(Insert) Node XXX" + d + ": " + JSON.stringify(t.node(d))), s != null && s.clusterNode) {
266
+ i.info("Cluster identified XBX", d, s.width, t.node(d));
267
+ const { ranksep: m, nodesep: h } = t.graph();
268
+ s.graph.setGraph({
269
+ ...s.graph.graph(),
270
+ ranksep: m + 25,
271
+ nodesep: h
272
+ });
273
+ const N = await j(
274
+ g,
275
+ s.graph,
276
+ n,
277
+ o,
278
+ t.node(d),
279
+ a
280
+ ), x = N.elem;
281
+ z(s, x), s.diff = N.diff || 0, i.info(
282
+ "New compound node after recursive render XAX",
283
+ d,
284
+ "width",
285
+ // node,
286
+ s.width,
287
+ "height",
288
+ s.height
289
+ // node.x,
290
+ // node.y
291
+ ), U(x, s);
292
+ } else
293
+ t.children(d).length > 0 ? (i.trace(
294
+ "Cluster - the non recursive path XBX",
295
+ d,
296
+ s.id,
297
+ s,
298
+ s.width,
299
+ "Graph:",
300
+ t
301
+ ), i.trace(D(s.id, t)), f.set(s.id, { id: D(s.id, t), node: s })) : (i.trace("Node - the non recursive path XAX", d, g, t.node(d), r), await $(g, t.node(d), { config: a, dir: r }));
302
+ })
303
+ ), await (/* @__PURE__ */ X(async () => {
304
+ const d = t.edges().map(async function(s) {
305
+ const m = t.edge(s.v, s.w, s.name);
306
+ i.info("Edge " + s.v + " -> " + s.w + ": " + JSON.stringify(s)), i.info("Edge " + s.v + " -> " + s.w + ": ", s, " ", JSON.stringify(t.edge(s))), i.info(
307
+ "Fix",
308
+ f,
309
+ "ids:",
310
+ s.v,
311
+ s.w,
312
+ "Translating: ",
313
+ f.get(s.v),
314
+ f.get(s.w)
315
+ ), await Z(C, m);
316
+ });
317
+ await Promise.all(d);
318
+ }, "processEdges"))(), i.info("Graph before layout:", JSON.stringify(p(t))), i.info("############################################# XXX"), i.info("### Layout ### XXX"), i.info("############################################# XXX"), I(t), i.info("Graph after layout:", JSON.stringify(p(t)));
319
+ let E = 0, { subGraphTitleTotalMargin: y } = q(a);
320
+ return await Promise.all(
321
+ oe(t).map(async function(d) {
322
+ var m;
323
+ const s = t.node(d);
324
+ if (i.info(
325
+ "Position XBX => " + d + ": (" + s.x,
326
+ "," + s.y,
327
+ ") width: ",
328
+ s.width,
329
+ " height: ",
330
+ s.height
331
+ ), s != null && s.clusterNode)
332
+ s.y += y, i.info(
333
+ "A tainted cluster node XBX1",
334
+ d,
335
+ s.id,
336
+ s.width,
337
+ s.height,
338
+ s.x,
339
+ s.y,
340
+ t.parent(d)
341
+ ), f.get(s.id).node = s, P(s);
342
+ else if (t.children(d).length > 0) {
343
+ i.info(
344
+ "A pure cluster node XBX1",
345
+ d,
346
+ s.id,
347
+ s.x,
348
+ s.y,
349
+ s.width,
350
+ s.height,
351
+ t.parent(d)
352
+ ), s.height += y, t.node(s.parentId);
353
+ const h = (s == null ? void 0 : s.padding) / 2 || 0, N = ((m = s == null ? void 0 : s.labelBBox) == null ? void 0 : m.height) || 0, x = N - h || 0;
354
+ i.debug("OffsetY", x, "labelHeight", N, "halfPadding", h), await K(l, s), f.get(s.id).node = s;
355
+ } else {
356
+ const h = t.node(s.parentId);
357
+ s.y += y / 2, i.info(
358
+ "A regular node XBX1 - using the padding",
359
+ s.id,
360
+ "parent",
361
+ s.parentId,
362
+ s.width,
363
+ s.height,
364
+ s.x,
365
+ s.y,
366
+ "offsetY",
367
+ s.offsetY,
368
+ "parent",
369
+ h,
370
+ h == null ? void 0 : h.offsetY,
371
+ s
372
+ ), P(s);
373
+ }
374
+ })
375
+ ), t.edges().forEach(function(d) {
376
+ const s = t.edge(d);
377
+ i.info("Edge " + d.v + " -> " + d.w + ": " + JSON.stringify(s), s), s.points.forEach((x) => x.y += y / 2);
378
+ const m = t.node(d.v);
379
+ var h = t.node(d.w);
380
+ const N = Q(v, s, f, n, m, h, o);
381
+ W(s, N);
382
+ }), t.nodes().forEach(function(d) {
383
+ const s = t.node(d);
384
+ i.info(d, s.type, s.diff), s.isGroup && (E = s.diff);
385
+ }), i.warn("Returning from recursive render XAX", u, E), { elem: u, diff: E };
386
+ }, "recursiveRender"), ge = /* @__PURE__ */ X(async (e, t) => {
387
+ var a, r, u, l, v, C;
388
+ const n = new B({
389
+ multigraph: !0,
390
+ compound: !0
391
+ }).setGraph({
392
+ rankdir: e.direction,
393
+ nodesep: ((a = e.config) == null ? void 0 : a.nodeSpacing) || ((u = (r = e.config) == null ? void 0 : r.flowchart) == null ? void 0 : u.nodeSpacing) || e.nodeSpacing,
394
+ ranksep: ((l = e.config) == null ? void 0 : l.rankSpacing) || ((C = (v = e.config) == null ? void 0 : v.flowchart) == null ? void 0 : C.rankSpacing) || e.rankSpacing,
395
+ marginx: 8,
396
+ marginy: 8
397
+ }).setDefaultEdgeLabel(function() {
398
+ return {};
399
+ }), o = t.select("g");
400
+ F(o, e.markers, e.type, e.diagramId), Y(), _(), H(), te(), e.nodes.forEach((g) => {
401
+ n.setNode(g.id, { ...g }), g.parentId && n.setParent(g.id, g.parentId);
402
+ }), i.debug("Edges:", e.edges), e.edges.forEach((g) => {
403
+ if (g.start === g.end) {
404
+ const w = g.start, E = w + "---" + w + "---1", y = w + "---" + w + "---2", d = n.node(w);
405
+ n.setNode(E, {
406
+ domId: E,
407
+ id: E,
408
+ parentId: d.parentId,
409
+ labelStyle: "",
410
+ label: "",
411
+ padding: 0,
412
+ shape: "labelRect",
413
+ // shape: 'rect',
414
+ style: "",
415
+ width: 10,
416
+ height: 10
417
+ }), n.setParent(E, d.parentId), n.setNode(y, {
418
+ domId: y,
419
+ id: y,
420
+ parentId: d.parentId,
421
+ labelStyle: "",
422
+ padding: 0,
423
+ // shape: 'rect',
424
+ shape: "labelRect",
425
+ label: "",
426
+ style: "",
427
+ width: 10,
428
+ height: 10
429
+ }), n.setParent(y, d.parentId);
430
+ const s = structuredClone(g), m = structuredClone(g), h = structuredClone(g);
431
+ s.label = "", s.arrowTypeEnd = "none", s.id = w + "-cyclic-special-1", m.arrowTypeEnd = "none", m.id = w + "-cyclic-special-mid", h.label = "", d.isGroup && (s.fromCluster = w, h.toCluster = w), h.id = w + "-cyclic-special-2", n.setEdge(w, E, s, w + "-cyclic-special-0"), n.setEdge(E, y, m, w + "-cyclic-special-1"), n.setEdge(y, w, h, w + "-cyc<lic-special-2");
432
+ } else
433
+ n.setEdge(g.start, g.end, { ...g }, g.id);
434
+ }), i.warn("Graph at first:", JSON.stringify(p(n))), re(n), i.warn("Graph after XAX:", JSON.stringify(p(n)));
435
+ const c = V();
436
+ await j(
437
+ o,
438
+ n,
439
+ e.type,
440
+ e.diagramId,
441
+ void 0,
442
+ c
443
+ );
444
+ }, "render");
445
+ export {
446
+ ge as render
447
+ };
@@ -0,0 +1,126 @@
1
+ import { p as w } from "./chunk-TMUBEWPD-LmMMNIqt.js";
2
+ import { D as B, s as S, g as F, q as z, r as P, b as W, c as D, _ as n, l as m, E as v, F as T, x as E, I as _, k as A } from "./mermaid.core-gtllNrzr.js";
3
+ import { p as N } from "./mermaid-parser.core-CL_REaxY.js";
4
+ var C = {
5
+ packet: []
6
+ }, x = structuredClone(C), I = B.packet, L = /* @__PURE__ */ n(() => {
7
+ const t = v({
8
+ ...I,
9
+ ...T().packet
10
+ });
11
+ return t.showBits && (t.paddingY += 10), t;
12
+ }, "getConfig"), Y = /* @__PURE__ */ n(() => x.packet, "getPacket"), M = /* @__PURE__ */ n((t) => {
13
+ t.length > 0 && x.packet.push(t);
14
+ }, "pushWord"), O = /* @__PURE__ */ n(() => {
15
+ E(), x = structuredClone(C);
16
+ }, "clear"), h = {
17
+ pushWord: M,
18
+ getPacket: Y,
19
+ getConfig: L,
20
+ clear: O,
21
+ setAccTitle: S,
22
+ getAccTitle: F,
23
+ setDiagramTitle: z,
24
+ getDiagramTitle: P,
25
+ getAccDescription: W,
26
+ setAccDescription: D
27
+ }, q = 1e4, G = /* @__PURE__ */ n((t) => {
28
+ w(t, h);
29
+ let e = -1, o = [], s = 1;
30
+ const { bitsPerRow: i } = h.getConfig();
31
+ for (let { start: a, end: r, label: p } of t.blocks) {
32
+ if (r && r < a)
33
+ throw new Error(`Packet block ${a} - ${r} is invalid. End must be greater than start.`);
34
+ if (a !== e + 1)
35
+ throw new Error(
36
+ `Packet block ${a} - ${r ?? a} is not contiguous. It should start from ${e + 1}.`
37
+ );
38
+ for (e = r ?? a, m.debug(`Packet block ${a} - ${e} with label ${p}`); o.length <= i + 1 && h.getPacket().length < q; ) {
39
+ const [b, c] = H({ start: a, end: r, label: p }, s, i);
40
+ if (o.push(b), b.end + 1 === s * i && (h.pushWord(o), o = [], s++), !c)
41
+ break;
42
+ ({ start: a, end: r, label: p } = c);
43
+ }
44
+ }
45
+ h.pushWord(o);
46
+ }, "populate"), H = /* @__PURE__ */ n((t, e, o) => {
47
+ if (t.end === void 0 && (t.end = t.start), t.start > t.end)
48
+ throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);
49
+ return t.end + 1 <= e * o ? [t, void 0] : [
50
+ {
51
+ start: t.start,
52
+ end: e * o - 1,
53
+ label: t.label
54
+ },
55
+ {
56
+ start: e * o,
57
+ end: t.end,
58
+ label: t.label
59
+ }
60
+ ];
61
+ }, "getNextFittingBlock"), K = {
62
+ parse: /* @__PURE__ */ n(async (t) => {
63
+ const e = await N("packet", t);
64
+ m.debug(e), G(e);
65
+ }, "parse")
66
+ }, R = /* @__PURE__ */ n((t, e, o, s) => {
67
+ const i = s.db, a = i.getConfig(), { rowHeight: r, paddingY: p, bitWidth: b, bitsPerRow: c } = a, u = i.getPacket(), l = i.getDiagramTitle(), g = r + p, d = g * (u.length + 1) - (l ? 0 : r), k = b * c + 2, f = _(e);
68
+ f.attr("viewbox", `0 0 ${k} ${d}`), A(f, d, k, a.useMaxWidth);
69
+ for (const [$, y] of u.entries())
70
+ U(f, y, $, a);
71
+ f.append("text").text(l).attr("x", k / 2).attr("y", d - g / 2).attr("dominant-baseline", "middle").attr("text-anchor", "middle").attr("class", "packetTitle");
72
+ }, "draw"), U = /* @__PURE__ */ n((t, e, o, { rowHeight: s, paddingX: i, paddingY: a, bitWidth: r, bitsPerRow: p, showBits: b }) => {
73
+ const c = t.append("g"), u = o * (s + a) + a;
74
+ for (const l of e) {
75
+ const g = l.start % p * r + 1, d = (l.end - l.start + 1) * r - i;
76
+ if (c.append("rect").attr("x", g).attr("y", u).attr("width", d).attr("height", s).attr("class", "packetBlock"), c.append("text").attr("x", g + d / 2).attr("y", u + s / 2).attr("class", "packetLabel").attr("dominant-baseline", "middle").attr("text-anchor", "middle").text(l.label), !b)
77
+ continue;
78
+ const k = l.end === l.start, f = u - 2;
79
+ c.append("text").attr("x", g + (k ? d / 2 : 0)).attr("y", f).attr("class", "packetByte start").attr("dominant-baseline", "auto").attr("text-anchor", k ? "middle" : "start").text(l.start), k || c.append("text").attr("x", g + d).attr("y", f).attr("class", "packetByte end").attr("dominant-baseline", "auto").attr("text-anchor", "end").text(l.end);
80
+ }
81
+ }, "drawWord"), X = { draw: R }, j = {
82
+ byteFontSize: "10px",
83
+ startByteColor: "black",
84
+ endByteColor: "black",
85
+ labelColor: "black",
86
+ labelFontSize: "12px",
87
+ titleColor: "black",
88
+ titleFontSize: "14px",
89
+ blockStrokeColor: "black",
90
+ blockStrokeWidth: "1",
91
+ blockFillColor: "#efefef"
92
+ }, J = /* @__PURE__ */ n(({ packet: t } = {}) => {
93
+ const e = v(j, t);
94
+ return `
95
+ .packetByte {
96
+ font-size: ${e.byteFontSize};
97
+ }
98
+ .packetByte.start {
99
+ fill: ${e.startByteColor};
100
+ }
101
+ .packetByte.end {
102
+ fill: ${e.endByteColor};
103
+ }
104
+ .packetLabel {
105
+ fill: ${e.labelColor};
106
+ font-size: ${e.labelFontSize};
107
+ }
108
+ .packetTitle {
109
+ fill: ${e.titleColor};
110
+ font-size: ${e.titleFontSize};
111
+ }
112
+ .packetBlock {
113
+ stroke: ${e.blockStrokeColor};
114
+ stroke-width: ${e.blockStrokeWidth};
115
+ fill: ${e.blockFillColor};
116
+ }
117
+ `;
118
+ }, "styles"), tt = {
119
+ parser: K,
120
+ db: h,
121
+ renderer: X,
122
+ styles: J
123
+ };
124
+ export {
125
+ tt as diagram
126
+ };