@schmitech/chatbot-widget 0.5.3 → 0.5.4
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/dist/Tableau10-D7jGxypv-BNlEL2G_.js +9 -0
- package/dist/arc-D-ZI5fuh-CvDHBzlN.js +84 -0
- package/dist/blockDiagram-c4efeb88-DUnNxfIR-Bhh-x1q6.js +1221 -0
- package/dist/c4Diagram-c83219d4-cC4OxfBG-DRTO_jy5.js +1580 -0
- package/dist/channel-hcYozyrT-BSOc2Hp-.js +6 -0
- package/dist/chatbot-widget.bundle.js +3881 -1586
- package/dist/chatbot-widget.css +1 -1
- package/dist/chatbot-widget.es.js +12 -63659
- package/dist/chatbot-widget.umd.js +3880 -1585
- package/dist/classDiagram-beda092f-BLYhf5Mr-vk4Ko58U.js +218 -0
- package/dist/classDiagram-v2-2358418a-VBkbF8mr-Ca0l1fEs.js +201 -0
- package/dist/clone-BZIkCMuw-B9owNq6E.js +9 -0
- package/dist/config/index.d.ts +2 -2
- package/dist/createText-1719965b-UejsQ47k-B1DYw0WW.js +2955 -0
- package/dist/edges-96097737-1M5QvjOd-BpQVVoQN.js +1088 -0
- package/dist/erDiagram-0228fc6a-CjBNxHoC-DXDVlH55.js +929 -0
- package/dist/flowDb-c6c81e3f-Q2aoOxdz-DfrfI3H1.js +1127 -0
- package/dist/flowDiagram-50d868cf-zizL6ppE-BAH-_juu.js +788 -0
- package/dist/flowDiagram-v2-4f6560a1-DVx_vlO5-bkcRE0UW.js +18 -0
- package/dist/flowchart-elk-definition-6af322e1-Eyez36go-B_lk3oHt.js +48132 -0
- package/dist/ganttDiagram-a2739b55-C82Jv-TO-DoS-s1Yu.js +1743 -0
- package/dist/gitGraphDiagram-82fe8481-D9o_9-U8-DJF-ZeR8.js +1265 -0
- package/dist/graph-BjmGDpTe-DgbYS1Ie.js +848 -0
- package/dist/index-5325376f-CJL5w-Sw-BXp44Ej5.js +374 -0
- package/dist/index-s6Yb6o1D.js +116386 -0
- package/dist/infoDiagram-8eee0895-FpS-TLK_-BnvO_wUe.js +320 -0
- package/dist/journeyDiagram-c64418c1-CMj1efQ9-CshcRDhm.js +802 -0
- package/dist/layout-D_6hdlf3-B7guhEBN.js +1470 -0
- package/dist/mindmap-definition-8da855dc-D4SxHjUd-jFZFomnk.js +21924 -0
- package/dist/pieDiagram-a8764435-BF5ZqOjB-Mqzg2J4Q.js +498 -0
- package/dist/quadrantDiagram-1e28029f-GtQb80VU-DCy1QjzW.js +903 -0
- package/dist/requirementDiagram-08caed73-CHtPj3FO-AHEP0cIt.js +767 -0
- package/dist/sankeyDiagram-a04cb91d-CBlXzOgd-CWJTc5AX.js +802 -0
- package/dist/sequenceDiagram-c5b8d532-Cs1iyw97-oayOJE8v.js +2235 -0
- package/dist/shared/styles.d.ts +1 -1
- package/dist/stateDiagram-1ecb1508-CpRKICMQ-C5OFJeRZ.js +266 -0
- package/dist/stateDiagram-v2-c2b004d7-BtkhFyQ5-DxzE8Je5.js +185 -0
- package/dist/styles-b4e223ce-D0oeHeKH-BmNvk4NR.js +1090 -0
- package/dist/styles-ca3715f6-BouNgl-L-_qXsPDP3.js +961 -0
- package/dist/styles-d45a18b0-Cvhb8Ltu-43I3Cd_I.js +437 -0
- package/dist/svgDrawCommon-b86b1483-mg-1NjZY-DrmnILcc.js +65 -0
- package/dist/timeline-definition-faaaa080-3olbep_P-BqKpgsPZ.js +793 -0
- package/dist/ui/Message.d.ts +1 -5
- package/dist/ui/MessagesList.d.ts +1 -5
- package/dist/xychartDiagram-f5964ef8-BN6HXpmW-C-g_F1w2.js +1238 -0
- package/package.json +3 -3
- package/dist/ui/TypingEffect.d.ts +0 -18
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { P as E, K as j } from "./graph-BjmGDpTe-DgbYS1Ie.js";
|
|
2
|
+
import { A, w as J } from "./layout-D_6hdlf3-B7guhEBN.js";
|
|
3
|
+
import { a as K } from "./clone-BZIkCMuw-B9owNq6E.js";
|
|
4
|
+
import { c as z, m as H, o as W, h as q, x as Q, t as T, p as D, g as U, d as V, E as O, R, y as Y, f as Z } from "./edges-96097737-1M5QvjOd-BpQVVoQN.js";
|
|
5
|
+
import { O as i, g as B, f as C, P as G } from "./index-s6Yb6o1D.js";
|
|
6
|
+
import { $ as _ } from "./createText-1719965b-UejsQ47k-B1DYw0WW.js";
|
|
7
|
+
typeof window < "u" && (window.global = window);
|
|
8
|
+
function y(r) {
|
|
9
|
+
var e = {
|
|
10
|
+
options: {
|
|
11
|
+
directed: r.isDirected(),
|
|
12
|
+
multigraph: r.isMultigraph(),
|
|
13
|
+
compound: r.isCompound()
|
|
14
|
+
},
|
|
15
|
+
nodes: ee(r),
|
|
16
|
+
edges: te(r)
|
|
17
|
+
};
|
|
18
|
+
return E(r.graph()) || (e.value = K(r.graph())), e;
|
|
19
|
+
}
|
|
20
|
+
function ee(r) {
|
|
21
|
+
return J(r.nodes(), function(e) {
|
|
22
|
+
var t = r.node(e), a = r.parent(e), n = { v: e };
|
|
23
|
+
return E(t) || (n.value = t), E(a) || (n.parent = a), n;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function te(r) {
|
|
27
|
+
return J(r.edges(), function(e) {
|
|
28
|
+
var t = r.edge(e), a = { v: e.v, w: e.w };
|
|
29
|
+
return E(e.name) || (a.name = e.name), E(t) || (a.value = t), a;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let l = {}, u = {}, P = {};
|
|
33
|
+
const re = () => {
|
|
34
|
+
u = {}, P = {}, l = {};
|
|
35
|
+
}, S = (r, e) => (i.trace("In isDescendant", e, " ", r, " = ", u[e].includes(r)), !!u[e].includes(r)), ne = (r, e) => (i.info("Descendants of ", e, " is ", u[e]), i.info("Edge is ", r), r.v === e || r.w === e ? !1 : u[e] ? u[e].includes(r.v) || S(r.v, e) || S(r.w, e) || u[e].includes(r.w) : (i.debug("Tilt, ", e, ",not in descendants"), !1)), $ = (r, e, t, a) => {
|
|
36
|
+
i.warn(
|
|
37
|
+
"Copying children of ",
|
|
38
|
+
r,
|
|
39
|
+
"root",
|
|
40
|
+
a,
|
|
41
|
+
"data",
|
|
42
|
+
e.node(r),
|
|
43
|
+
a
|
|
44
|
+
);
|
|
45
|
+
const n = e.children(r) || [];
|
|
46
|
+
r !== a && n.push(r), i.warn("Copying (nodes) clusterId", r, "nodes", n), n.forEach((o) => {
|
|
47
|
+
if (e.children(o).length > 0)
|
|
48
|
+
$(o, e, t, a);
|
|
49
|
+
else {
|
|
50
|
+
const c = e.node(o);
|
|
51
|
+
i.info("cp ", o, " to ", a, " with parent ", r), t.setNode(o, c), a !== e.parent(o) && (i.warn("Setting parent", o, e.parent(o)), t.setParent(o, e.parent(o))), r !== a && o !== r ? (i.debug("Setting parent", o, r), t.setParent(o, r)) : (i.info("In copy ", r, "root", a, "data", e.node(r), a), i.debug(
|
|
52
|
+
"Not Setting parent for node=",
|
|
53
|
+
o,
|
|
54
|
+
"cluster!==rootId",
|
|
55
|
+
r !== a,
|
|
56
|
+
"node!==clusterId",
|
|
57
|
+
o !== r
|
|
58
|
+
));
|
|
59
|
+
const g = e.edges(o);
|
|
60
|
+
i.debug("Copying Edges", g), g.forEach((h) => {
|
|
61
|
+
i.info("Edge", h);
|
|
62
|
+
const f = e.edge(h.v, h.w, h.name);
|
|
63
|
+
i.info("Edge data", f, a);
|
|
64
|
+
try {
|
|
65
|
+
ne(h, a) ? (i.info("Copying as ", h.v, h.w, f, h.name), t.setEdge(h.v, h.w, f, h.name), i.info("newGraph edges ", t.edges(), t.edge(t.edges()[0]))) : i.info(
|
|
66
|
+
"Skipping copy of edge ",
|
|
67
|
+
h.v,
|
|
68
|
+
"-->",
|
|
69
|
+
h.w,
|
|
70
|
+
" rootId: ",
|
|
71
|
+
a,
|
|
72
|
+
" clusterId:",
|
|
73
|
+
r
|
|
74
|
+
);
|
|
75
|
+
} catch (w) {
|
|
76
|
+
i.error(w);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
i.debug("Removing node", o), e.removeNode(o);
|
|
81
|
+
});
|
|
82
|
+
}, I = (r, e) => {
|
|
83
|
+
const t = e.children(r);
|
|
84
|
+
let a = [...t];
|
|
85
|
+
for (const n of t)
|
|
86
|
+
P[n] = r, a = [...a, ...I(n, e)];
|
|
87
|
+
return a;
|
|
88
|
+
}, X = (r, e) => {
|
|
89
|
+
i.trace("Searching", r);
|
|
90
|
+
const t = e.children(r);
|
|
91
|
+
if (i.trace("Searching children of id ", r, t), t.length < 1)
|
|
92
|
+
return i.trace("This is a valid node", r), r;
|
|
93
|
+
for (const a of t) {
|
|
94
|
+
const n = X(a, e);
|
|
95
|
+
if (n)
|
|
96
|
+
return i.trace("Found replacement for", r, " => ", n), n;
|
|
97
|
+
}
|
|
98
|
+
}, N = (r) => !l[r] || !l[r].externalConnections ? r : l[r] ? l[r].id : r, ie = (r, e) => {
|
|
99
|
+
if (!r || e > 10) {
|
|
100
|
+
i.debug("Opting out, no graph ");
|
|
101
|
+
return;
|
|
102
|
+
} else
|
|
103
|
+
i.debug("Opting in, graph ");
|
|
104
|
+
r.nodes().forEach(function(t) {
|
|
105
|
+
r.children(t).length > 0 && (i.warn(
|
|
106
|
+
"Cluster identified",
|
|
107
|
+
t,
|
|
108
|
+
" Replacement id in edges: ",
|
|
109
|
+
X(t, r)
|
|
110
|
+
), u[t] = I(t, r), l[t] = { id: X(t, r), clusterData: r.node(t) });
|
|
111
|
+
}), r.nodes().forEach(function(t) {
|
|
112
|
+
const a = r.children(t), n = r.edges();
|
|
113
|
+
a.length > 0 ? (i.debug("Cluster identified", t, u), n.forEach((o) => {
|
|
114
|
+
if (o.v !== t && o.w !== t) {
|
|
115
|
+
const c = S(o.v, t), g = S(o.w, t);
|
|
116
|
+
c ^ g && (i.warn("Edge: ", o, " leaves cluster ", t), i.warn("Descendants of XXX ", t, ": ", u[t]), l[t].externalConnections = !0);
|
|
117
|
+
}
|
|
118
|
+
})) : i.debug("Not a cluster ", t, u);
|
|
119
|
+
});
|
|
120
|
+
for (let t of Object.keys(l)) {
|
|
121
|
+
const a = l[t].id, n = r.parent(a);
|
|
122
|
+
n !== t && l[n] && !l[n].externalConnections && (l[t].id = n);
|
|
123
|
+
}
|
|
124
|
+
r.edges().forEach(function(t) {
|
|
125
|
+
const a = r.edge(t);
|
|
126
|
+
i.warn("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(t)), i.warn("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(r.edge(t)));
|
|
127
|
+
let n = t.v, o = t.w;
|
|
128
|
+
if (i.warn(
|
|
129
|
+
"Fix XXX",
|
|
130
|
+
l,
|
|
131
|
+
"ids:",
|
|
132
|
+
t.v,
|
|
133
|
+
t.w,
|
|
134
|
+
"Translating: ",
|
|
135
|
+
l[t.v],
|
|
136
|
+
" --- ",
|
|
137
|
+
l[t.w]
|
|
138
|
+
), l[t.v] && l[t.w] && l[t.v] === l[t.w]) {
|
|
139
|
+
i.warn("Fixing and trixing link to self - removing XXX", t.v, t.w, t.name), i.warn("Fixing and trixing - removing XXX", t.v, t.w, t.name), n = N(t.v), o = N(t.w), r.removeEdge(t.v, t.w, t.name);
|
|
140
|
+
const c = t.w + "---" + t.v;
|
|
141
|
+
r.setNode(c, {
|
|
142
|
+
domId: c,
|
|
143
|
+
id: c,
|
|
144
|
+
labelStyle: "",
|
|
145
|
+
labelText: a.label,
|
|
146
|
+
padding: 0,
|
|
147
|
+
shape: "labelRect",
|
|
148
|
+
style: ""
|
|
149
|
+
});
|
|
150
|
+
const g = structuredClone(a), h = structuredClone(a);
|
|
151
|
+
g.label = "", g.arrowTypeEnd = "none", h.label = "", g.fromCluster = t.v, h.toCluster = t.v, r.setEdge(n, c, g, t.name + "-cyclic-special"), r.setEdge(c, o, h, t.name + "-cyclic-special");
|
|
152
|
+
} else if (l[t.v] || l[t.w]) {
|
|
153
|
+
if (i.warn("Fixing and trixing - removing XXX", t.v, t.w, t.name), n = N(t.v), o = N(t.w), r.removeEdge(t.v, t.w, t.name), n !== t.v) {
|
|
154
|
+
const c = r.parent(n);
|
|
155
|
+
l[c].externalConnections = !0, a.fromCluster = t.v;
|
|
156
|
+
}
|
|
157
|
+
if (o !== t.w) {
|
|
158
|
+
const c = r.parent(o);
|
|
159
|
+
l[c].externalConnections = !0, a.toCluster = t.w;
|
|
160
|
+
}
|
|
161
|
+
i.warn("Fix Replacing with XXX", n, o, t.name), r.setEdge(n, o, a, t.name);
|
|
162
|
+
}
|
|
163
|
+
}), i.warn("Adjusted Graph", y(r)), k(r, 0), i.trace(l);
|
|
164
|
+
}, k = (r, e) => {
|
|
165
|
+
if (i.warn("extractor - ", e, y(r), r.children("D")), e > 10) {
|
|
166
|
+
i.error("Bailing out");
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
let t = r.nodes(), a = !1;
|
|
170
|
+
for (const n of t) {
|
|
171
|
+
const o = r.children(n);
|
|
172
|
+
a = a || o.length > 0;
|
|
173
|
+
}
|
|
174
|
+
if (!a) {
|
|
175
|
+
i.debug("Done, no node has children", r.nodes());
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
i.debug("Nodes = ", t, e);
|
|
179
|
+
for (const n of t)
|
|
180
|
+
if (i.debug(
|
|
181
|
+
"Extracting node",
|
|
182
|
+
n,
|
|
183
|
+
l,
|
|
184
|
+
l[n] && !l[n].externalConnections,
|
|
185
|
+
!r.parent(n),
|
|
186
|
+
r.node(n),
|
|
187
|
+
r.children("D"),
|
|
188
|
+
" Depth ",
|
|
189
|
+
e
|
|
190
|
+
), !l[n])
|
|
191
|
+
i.debug("Not a cluster", n, e);
|
|
192
|
+
else if (!l[n].externalConnections && // !graph.parent(node) &&
|
|
193
|
+
r.children(n) && r.children(n).length > 0) {
|
|
194
|
+
i.warn(
|
|
195
|
+
"Cluster without external connections, without a parent and with children",
|
|
196
|
+
n,
|
|
197
|
+
e
|
|
198
|
+
);
|
|
199
|
+
let o = r.graph().rankdir === "TB" ? "LR" : "TB";
|
|
200
|
+
l[n] && l[n].clusterData && l[n].clusterData.dir && (o = l[n].clusterData.dir, i.warn("Fixing dir", l[n].clusterData.dir, o));
|
|
201
|
+
const c = new j({
|
|
202
|
+
multigraph: !0,
|
|
203
|
+
compound: !0
|
|
204
|
+
}).setGraph({
|
|
205
|
+
rankdir: o,
|
|
206
|
+
// Todo: set proper spacing
|
|
207
|
+
nodesep: 50,
|
|
208
|
+
ranksep: 50,
|
|
209
|
+
marginx: 8,
|
|
210
|
+
marginy: 8
|
|
211
|
+
}).setDefaultEdgeLabel(function() {
|
|
212
|
+
return {};
|
|
213
|
+
});
|
|
214
|
+
i.warn("Old graph before copy", y(r)), $(n, r, c, n), r.setNode(n, {
|
|
215
|
+
clusterNode: !0,
|
|
216
|
+
id: n,
|
|
217
|
+
clusterData: l[n].clusterData,
|
|
218
|
+
labelText: l[n].labelText,
|
|
219
|
+
graph: c
|
|
220
|
+
}), i.warn("New graph after copy node: (", n, ")", y(c)), i.debug("Old graph after copy", y(r));
|
|
221
|
+
} else
|
|
222
|
+
i.warn(
|
|
223
|
+
"Cluster ** ",
|
|
224
|
+
n,
|
|
225
|
+
" **not meeting the criteria !externalConnections:",
|
|
226
|
+
!l[n].externalConnections,
|
|
227
|
+
" no parent: ",
|
|
228
|
+
!r.parent(n),
|
|
229
|
+
" children ",
|
|
230
|
+
r.children(n) && r.children(n).length > 0,
|
|
231
|
+
r.children("D"),
|
|
232
|
+
e
|
|
233
|
+
), i.debug(l);
|
|
234
|
+
t = r.nodes(), i.warn("New list of nodes", t);
|
|
235
|
+
for (const n of t) {
|
|
236
|
+
const o = r.node(n);
|
|
237
|
+
i.warn(" Now next level", n, o), o.clusterNode && k(o.graph, e + 1);
|
|
238
|
+
}
|
|
239
|
+
}, F = (r, e) => {
|
|
240
|
+
if (e.length === 0)
|
|
241
|
+
return [];
|
|
242
|
+
let t = Object.assign(e);
|
|
243
|
+
return e.forEach((a) => {
|
|
244
|
+
const n = r.children(a), o = F(r, n);
|
|
245
|
+
t = [...t, ...o];
|
|
246
|
+
}), t;
|
|
247
|
+
}, ae = (r) => F(r, r.children()), oe = (r, e) => {
|
|
248
|
+
i.info("Creating subgraph rect for ", e.id, e);
|
|
249
|
+
const t = B(), a = r.insert("g").attr("class", "cluster" + (e.class ? " " + e.class : "")).attr("id", e.id), n = a.insert("rect", ":first-child"), o = C(t.flowchart.htmlLabels), c = a.insert("g").attr("class", "cluster-label"), g = e.labelType === "markdown" ? _(c, e.labelText, { style: e.labelStyle, useHtmlLabels: o }) : c.node().appendChild(R(e.labelText, e.labelStyle, void 0, !0));
|
|
250
|
+
let h = g.getBBox();
|
|
251
|
+
if (C(t.flowchart.htmlLabels)) {
|
|
252
|
+
const d = g.children[0], s = G(g);
|
|
253
|
+
h = d.getBoundingClientRect(), s.attr("width", h.width), s.attr("height", h.height);
|
|
254
|
+
}
|
|
255
|
+
const f = 0 * e.padding, w = f / 2, p = e.width <= h.width + f ? h.width + f : e.width;
|
|
256
|
+
e.width <= h.width + f ? e.diff = (h.width - e.width) / 2 - e.padding / 2 : e.diff = -e.padding / 2, i.trace("Data ", e, JSON.stringify(e)), n.attr("style", e.style).attr("rx", e.rx).attr("ry", e.ry).attr("x", e.x - p / 2).attr("y", e.y - e.height / 2 - w).attr("width", p).attr("height", e.height + f);
|
|
257
|
+
const { subGraphTitleTopMargin: x } = T(t);
|
|
258
|
+
o ? c.attr(
|
|
259
|
+
"transform",
|
|
260
|
+
// This puts the label on top of the box instead of inside it
|
|
261
|
+
`translate(${e.x - h.width / 2}, ${e.y - e.height / 2 + x})`
|
|
262
|
+
) : c.attr(
|
|
263
|
+
"transform",
|
|
264
|
+
// This puts the label on top of the box instead of inside it
|
|
265
|
+
`translate(${e.x}, ${e.y - e.height / 2 + x})`
|
|
266
|
+
);
|
|
267
|
+
const v = n.node().getBBox();
|
|
268
|
+
return e.width = v.width, e.height = v.height, e.intersect = function(d) {
|
|
269
|
+
return O(e, d);
|
|
270
|
+
}, a;
|
|
271
|
+
}, de = (r, e) => {
|
|
272
|
+
const t = r.insert("g").attr("class", "note-cluster").attr("id", e.id), a = t.insert("rect", ":first-child"), n = 0 * e.padding, o = n / 2;
|
|
273
|
+
a.attr("rx", e.rx).attr("ry", e.ry).attr("x", e.x - e.width / 2 - o).attr("y", e.y - e.height / 2 - o).attr("width", e.width + n).attr("height", e.height + n).attr("fill", "none");
|
|
274
|
+
const c = a.node().getBBox();
|
|
275
|
+
return e.width = c.width, e.height = c.height, e.intersect = function(g) {
|
|
276
|
+
return O(e, g);
|
|
277
|
+
}, t;
|
|
278
|
+
}, se = (r, e) => {
|
|
279
|
+
const t = B(), a = r.insert("g").attr("class", e.classes).attr("id", e.id), n = a.insert("rect", ":first-child"), o = a.insert("g").attr("class", "cluster-label"), c = a.append("rect"), g = o.node().appendChild(R(e.labelText, e.labelStyle, void 0, !0));
|
|
280
|
+
let h = g.getBBox();
|
|
281
|
+
if (C(t.flowchart.htmlLabels)) {
|
|
282
|
+
const d = g.children[0], s = G(g);
|
|
283
|
+
h = d.getBoundingClientRect(), s.attr("width", h.width), s.attr("height", h.height);
|
|
284
|
+
}
|
|
285
|
+
h = g.getBBox();
|
|
286
|
+
const f = 0 * e.padding, w = f / 2, p = e.width <= h.width + e.padding ? h.width + e.padding : e.width;
|
|
287
|
+
e.width <= h.width + e.padding ? e.diff = (h.width + e.padding * 0 - e.width) / 2 : e.diff = -e.padding / 2, n.attr("class", "outer").attr("x", e.x - p / 2 - w).attr("y", e.y - e.height / 2 - w).attr("width", p + f).attr("height", e.height + f), c.attr("class", "inner").attr("x", e.x - p / 2 - w).attr("y", e.y - e.height / 2 - w + h.height - 1).attr("width", p + f).attr("height", e.height + f - h.height - 3);
|
|
288
|
+
const { subGraphTitleTopMargin: x } = T(t);
|
|
289
|
+
o.attr(
|
|
290
|
+
"transform",
|
|
291
|
+
`translate(${e.x - h.width / 2}, ${e.y - e.height / 2 - e.padding / 3 + (C(t.flowchart.htmlLabels) ? 5 : 3) + x})`
|
|
292
|
+
);
|
|
293
|
+
const v = n.node().getBBox();
|
|
294
|
+
return e.height = v.height, e.intersect = function(d) {
|
|
295
|
+
return O(e, d);
|
|
296
|
+
}, a;
|
|
297
|
+
}, le = (r, e) => {
|
|
298
|
+
const t = r.insert("g").attr("class", e.classes).attr("id", e.id), a = t.insert("rect", ":first-child"), n = 0 * e.padding, o = n / 2;
|
|
299
|
+
a.attr("class", "divider").attr("x", e.x - e.width / 2 - o).attr("y", e.y - e.height / 2).attr("width", e.width + n).attr("height", e.height + n);
|
|
300
|
+
const c = a.node().getBBox();
|
|
301
|
+
return e.width = c.width, e.height = c.height, e.diff = -e.padding / 2, e.intersect = function(g) {
|
|
302
|
+
return O(e, g);
|
|
303
|
+
}, t;
|
|
304
|
+
}, he = { rect: oe, roundedWithTitle: se, noteGroup: de, divider: le };
|
|
305
|
+
let L = {};
|
|
306
|
+
const ce = (r, e) => {
|
|
307
|
+
i.trace("Inserting cluster");
|
|
308
|
+
const t = e.shape || "rect";
|
|
309
|
+
L[e.id] = he[t](r, e);
|
|
310
|
+
}, ge = () => {
|
|
311
|
+
L = {};
|
|
312
|
+
}, M = async (r, e, t, a, n, o) => {
|
|
313
|
+
i.info("Graph in recursive render: XXX", y(e), n);
|
|
314
|
+
const c = e.graph().rankdir;
|
|
315
|
+
i.trace("Dir in recursive render - dir:", c);
|
|
316
|
+
const g = r.insert("g").attr("class", "root");
|
|
317
|
+
e.nodes() ? i.info("Recursive render XXX", e.nodes()) : i.info("No nodes found for", e), e.edges().length > 0 && i.trace("Recursive edges", e.edge(e.edges()[0]));
|
|
318
|
+
const h = g.insert("g").attr("class", "clusters"), f = g.insert("g").attr("class", "edgePaths"), w = g.insert("g").attr("class", "edgeLabels"), p = g.insert("g").attr("class", "nodes");
|
|
319
|
+
await Promise.all(
|
|
320
|
+
e.nodes().map(async function(d) {
|
|
321
|
+
const s = e.node(d);
|
|
322
|
+
if (n !== void 0) {
|
|
323
|
+
const m = JSON.parse(JSON.stringify(n.clusterData));
|
|
324
|
+
i.info("Setting data for cluster XXX (", d, ") ", m, n), e.setNode(n.id, m), e.parent(d) || (i.trace("Setting parent", d, n.id), e.setParent(d, n.id, m));
|
|
325
|
+
}
|
|
326
|
+
if (i.info("(Insert) Node XXX" + d + ": " + JSON.stringify(e.node(d))), s && s.clusterNode) {
|
|
327
|
+
i.info("Cluster identified", d, s.width, e.node(d));
|
|
328
|
+
const m = await M(
|
|
329
|
+
p,
|
|
330
|
+
s.graph,
|
|
331
|
+
t,
|
|
332
|
+
a,
|
|
333
|
+
e.node(d),
|
|
334
|
+
o
|
|
335
|
+
), b = m.elem;
|
|
336
|
+
H(s, b), s.diff = m.diff || 0, i.info("Node bounds (abc123)", d, s, s.width, s.x, s.y), W(b, s), i.warn("Recursive render complete ", b, s);
|
|
337
|
+
} else
|
|
338
|
+
e.children(d).length > 0 ? (i.info("Cluster - the non recursive path XXX", d, s.id, s, e), i.info(X(s.id, e)), l[s.id] = { id: X(s.id, e), node: s }) : (i.info("Node - the non recursive path", d, s.id, s), await q(p, e.node(d), c));
|
|
339
|
+
})
|
|
340
|
+
), e.edges().forEach(function(d) {
|
|
341
|
+
const s = e.edge(d.v, d.w, d.name);
|
|
342
|
+
i.info("Edge " + d.v + " -> " + d.w + ": " + JSON.stringify(d)), i.info("Edge " + d.v + " -> " + d.w + ": ", d, " ", JSON.stringify(e.edge(d))), i.info("Fix", l, "ids:", d.v, d.w, "Translating: ", l[d.v], l[d.w]), Q(w, s);
|
|
343
|
+
}), e.edges().forEach(function(d) {
|
|
344
|
+
i.info("Edge " + d.v + " -> " + d.w + ": " + JSON.stringify(d));
|
|
345
|
+
}), i.info("#############################################"), i.info("### Layout ###"), i.info("#############################################"), i.info(e), A(e), i.info("Graph after layout:", y(e));
|
|
346
|
+
let x = 0;
|
|
347
|
+
const { subGraphTitleTotalMargin: v } = T(o);
|
|
348
|
+
return ae(e).forEach(function(d) {
|
|
349
|
+
const s = e.node(d);
|
|
350
|
+
i.info("Position " + d + ": " + JSON.stringify(e.node(d))), i.info(
|
|
351
|
+
"Position " + d + ": (" + s.x,
|
|
352
|
+
"," + s.y,
|
|
353
|
+
") width: ",
|
|
354
|
+
s.width,
|
|
355
|
+
" height: ",
|
|
356
|
+
s.height
|
|
357
|
+
), s && s.clusterNode ? (s.y += v, D(s)) : e.children(d).length > 0 ? (s.height += v, ce(h, s), l[s.id].node = s) : (s.y += v / 2, D(s));
|
|
358
|
+
}), e.edges().forEach(function(d) {
|
|
359
|
+
const s = e.edge(d);
|
|
360
|
+
i.info("Edge " + d.v + " -> " + d.w + ": " + JSON.stringify(s), s), s.points.forEach((b) => b.y += v / 2);
|
|
361
|
+
const m = U(f, d, s, l, t, e, a);
|
|
362
|
+
V(s, m);
|
|
363
|
+
}), e.nodes().forEach(function(d) {
|
|
364
|
+
const s = e.node(d);
|
|
365
|
+
i.info(d, s.type, s.diff), s.type === "group" && (x = s.diff);
|
|
366
|
+
}), { elem: g, diff: x };
|
|
367
|
+
}, me = async (r, e, t, a, n) => {
|
|
368
|
+
z(r, t, a, n), Y(), Z(), ge(), re(), i.warn("Graph at first:", JSON.stringify(y(e))), ie(e), i.warn("Graph after:", JSON.stringify(y(e)));
|
|
369
|
+
const o = B();
|
|
370
|
+
await M(r, e, a, n, void 0, o);
|
|
371
|
+
};
|
|
372
|
+
export {
|
|
373
|
+
me as b
|
|
374
|
+
};
|