@n8n-zengchao/chat 0.62.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 +289 -0
- package/dist/App.vue.d.ts +2 -0
- package/dist/__stories__/App.stories.d.ts +18 -0
- package/dist/__tests__/Input.spec.d.ts +1 -0
- package/dist/__tests__/api/generic.spec.d.ts +1 -0
- package/dist/__tests__/api/message.spec.d.ts +1 -0
- package/dist/__tests__/index.spec.d.ts +1 -0
- package/dist/__tests__/plugins/chat.spec.d.ts +1 -0
- package/dist/__tests__/plugins/chat.test.d.ts +1 -0
- package/dist/__tests__/setup.d.ts +0 -0
- package/dist/__tests__/utils/create.d.ts +5 -0
- package/dist/__tests__/utils/fetch.d.ts +13 -0
- package/dist/__tests__/utils/index.d.ts +3 -0
- package/dist/__tests__/utils/selectors.d.ts +12 -0
- package/dist/__tests__/utils/streaming.spec.d.ts +1 -0
- package/dist/__tests__/utils/streamingHandlers.spec.d.ts +1 -0
- package/dist/_basePickBy-aQilsjEs.mjs +106 -0
- package/dist/_baseUniq-Agc10qFQ.mjs +232 -0
- package/dist/api/generic.d.ts +7 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/message.d.ts +11 -0
- package/dist/arc-EhYU_DB1.mjs +79 -0
- package/dist/architecture-U656AL7Q-B1STlXpR.mjs +10 -0
- package/dist/architectureDiagram-VXUJARFQ-DOVAbXSw.mjs +4054 -0
- package/dist/array-B5w981Vk.mjs +5 -0
- package/dist/blockDiagram-VD42YOAC-BsX3Fkg3.mjs +3013 -0
- package/dist/c4Diagram-YG6GDRKO-B5JaLuX6.mjs +2957 -0
- package/dist/channel-CqrIo07y.mjs +4 -0
- package/dist/chat.bundle.es.js +37656 -0
- package/dist/chat.bundle.umd.js +2784 -0
- package/dist/chat.es.js +35738 -0
- package/dist/chat.umd.js +2776 -0
- package/dist/chunk-4BX2VUAB-dn0RXIrC.mjs +7 -0
- package/dist/chunk-55IACEB6-DrIttNoL.mjs +7 -0
- package/dist/chunk-76Q3JFCE-D7DMbWeQ.mjs +20 -0
- package/dist/chunk-ABZYJK2D-_NXv778f.mjs +2516 -0
- package/dist/chunk-ATLVNIR6-CBnG7Ev9.mjs +66 -0
- package/dist/chunk-B4BG7PRW-DElmmAse.mjs +3109 -0
- package/dist/chunk-CVBHYZKI-kPsSw5G9.mjs +11 -0
- package/dist/chunk-DI55MBZ5-Bw6uFFfD.mjs +1995 -0
- package/dist/chunk-DZXZ2BO8.mjs +19 -0
- package/dist/chunk-EXTU4WIE-DWzncOZf.mjs +8 -0
- package/dist/chunk-FMBD7UC4-CQf-nVrj.mjs +4 -0
- package/dist/chunk-FPAJGGOC-HRc6DGju.mjs +12254 -0
- package/dist/chunk-FWNWRKHM-CGiJVNMo.mjs +57 -0
- package/dist/chunk-HN2XXSSU-DMfVdeUE.mjs +75 -0
- package/dist/chunk-JA3XYJ7Z-b0Li4NN8.mjs +1834 -0
- package/dist/chunk-JZLCHNYA-C_4MLySW.mjs +4862 -0
- package/dist/chunk-KS23V3DP-BRKOfbU6.mjs +136 -0
- package/dist/chunk-LBM3YZW2-JIQK8wiH.mjs +20 -0
- package/dist/chunk-LHMN2FUI-PNCyIUgu.mjs +20 -0
- package/dist/chunk-MI3HLSF2-B9GTCmLp.mjs +1146 -0
- package/dist/chunk-N4CR4FBY-CjlmnCPD.mjs +40 -0
- package/dist/chunk-O7ZBX7Z2-DmJUfqJj.mjs +27 -0
- package/dist/chunk-QN33PNHL-nN1zLFSf.mjs +24 -0
- package/dist/chunk-QXUST7PY-CY78Btj9.mjs +487 -0
- package/dist/chunk-QZHKN3VN-BF5N1pfB.mjs +12 -0
- package/dist/chunk-S3R3BYOJ-BhFsv0Go.mjs +1076 -0
- package/dist/chunk-S6J4BHB3-BvrWTdbl.mjs +20 -0
- package/dist/chunk-T53DSG4Q-XzY06amw.mjs +25 -0
- package/dist/chunk-TZMSLE5B-DVmJQ8eg.mjs +57 -0
- package/dist/classDiagram-2ON5EDUG-CKxiEVX9.mjs +33 -0
- package/dist/classDiagram-v2-WZHVMYZB-sAa_2keq.mjs +33 -0
- package/dist/clone-nkGlb0Gn.mjs +8 -0
- package/dist/components/Button.vue.d.ts +17 -0
- package/dist/components/Chat.vue.d.ts +2 -0
- package/dist/components/ChatFile.vue.d.ts +11 -0
- package/dist/components/ChatWindow.vue.d.ts +2 -0
- package/dist/components/GetStarted.vue.d.ts +2 -0
- package/dist/components/GetStartedFooter.vue.d.ts +2 -0
- package/dist/components/Input.vue.d.ts +39 -0
- package/dist/components/Layout.vue.d.ts +23 -0
- package/dist/components/Message.vue.d.ts +39 -0
- package/dist/components/MessageTyping.vue.d.ts +76 -0
- package/dist/components/MessagesList.vue.d.ts +164 -0
- package/dist/components/PoweredBy.vue.d.ts +2 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/composables/index.d.ts +3 -0
- package/dist/composables/useChat.d.ts +2 -0
- package/dist/composables/useI18n.d.ts +4 -0
- package/dist/composables/useOptions.d.ts +4 -0
- package/dist/constants/defaults.d.ts +3 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/localStorage.d.ts +2 -0
- package/dist/constants/symbols.d.ts +4 -0
- package/dist/cose-bilkent-S5V4N54A-1lKG2PUg.mjs +2251 -0
- package/dist/cytoscape.esm-Dls1_mGy.mjs +18108 -0
- package/dist/dagre-6UL2VRFP-CbWFu9xQ.mjs +300 -0
- package/dist/dagre-DEdOheHq.mjs +1385 -0
- package/dist/defaultLocale-CyoQm63E.mjs +178 -0
- package/dist/diagram-PSM6KHXK-CJcHbrJH.mjs +499 -0
- package/dist/diagram-QEK2KX5R-XQ9XOVL4.mjs +228 -0
- package/dist/diagram-S2PKOQOG-CmRfaeSf.mjs +146 -0
- package/dist/dist-BT0fjU7K.mjs +50 -0
- package/dist/erDiagram-Q2GNP2WA-iuoUWHwm.mjs +1603 -0
- package/dist/event-buses/chatEventBus.d.ts +1 -0
- package/dist/event-buses/index.d.ts +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/flowDiagram-NV44I4VS-D3GMS8-G.mjs +4132 -0
- package/dist/ganttDiagram-LVOFAZNH-DMTZVZDR.mjs +2832 -0
- package/dist/gitGraph-F6HP7TQM-CrdUzURw.mjs +10 -0
- package/dist/gitGraphDiagram-NY62KEGX-DipP5Fgt.mjs +636 -0
- package/dist/graphlib-D9eH5icd.mjs +224 -0
- package/dist/index.d.ts +2 -0
- package/dist/info-NVLQJR56-C-93Yf3U.mjs +10 -0
- package/dist/infoDiagram-F6ZHWCRC-jM50s26K.mjs +33 -0
- package/dist/init-CYeu4QfE.mjs +14 -0
- package/dist/isArrayLikeObject-BPcFdnyK.mjs +459 -0
- package/dist/isUndefined-BvarJ1wS.mjs +374 -0
- package/dist/journeyDiagram-XKPGCS4Q-BEEO_0Bh.mjs +885 -0
- package/dist/kanban-definition-3W4ZIXB7-B8u_HDmL.mjs +971 -0
- package/dist/katex-Dc1vXbUC.mjs +22094 -0
- package/dist/line-BJxACIPZ.mjs +31 -0
- package/dist/linear-DHHVI-cj.mjs +251 -0
- package/dist/math-Byg0NvhS.mjs +9 -0
- package/dist/mermaid-parser.core-YT4qvimq.mjs +49 -0
- package/dist/mindmap-definition-VGOIOE7T-ah41V88S.mjs +960 -0
- package/dist/now-DsJMgI1z.mjs +6 -0
- package/dist/ordinal-L0-EVPg8.mjs +62 -0
- package/dist/packet-BFZMPI3H-Cs4kRHct.mjs +10 -0
- package/dist/path-BcDHwjEr.mjs +80 -0
- package/dist/pie-7BOR55EZ-YZ5Xu4o6.mjs +10 -0
- package/dist/pieDiagram-ADFJNKIX-CqI33m1a.mjs +174 -0
- package/dist/plugins/chat.d.ts +3 -0
- package/dist/plugins/index.d.ts +1 -0
- package/dist/quadrantDiagram-AYHSOK5B-DDv2X9c1.mjs +1971 -0
- package/dist/radar-NHE76QYJ-TpirOFtv.mjs +10 -0
- package/dist/requirementDiagram-UZGBJVZJ-DXa77VzO.mjs +2194 -0
- package/dist/sankeyDiagram-TZEHDZUN--B9DInJC.mjs +885 -0
- package/dist/sequenceDiagram-WL72ISMW-Dqn9jJ3g.mjs +3562 -0
- package/dist/src-DdwtiGjk.mjs +1976 -0
- package/dist/stateDiagram-FKZM4ZOC-D3eEcVjS.mjs +226 -0
- package/dist/stateDiagram-v2-4FDKWEC3-dzwJ4caL.mjs +32 -0
- package/dist/style.css +3 -0
- package/dist/timeline-definition-IT6M3QCI-z93ry7RN.mjs +831 -0
- package/dist/toInteger-1S_4Byef.mjs +36 -0
- package/dist/treemap-KMMF4GRG-BlF0Ev1z.mjs +10 -0
- package/dist/types/chat.d.ts +13 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/messages.d.ts +17 -0
- package/dist/types/options.d.ts +33 -0
- package/dist/types/streaming.d.ts +18 -0
- package/dist/types/webhook.d.ts +19 -0
- package/dist/utils/event-bus.d.ts +8 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/mount.d.ts +1 -0
- package/dist/utils/streaming.d.ts +26 -0
- package/dist/utils/streamingHandlers.d.ts +6 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/xychartDiagram-PRI3JC2R-C3aDcgBz.mjs +2022 -0
- package/package.json +78 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/*! Package version @n8n/chat@0.62.0 */
|
|
2
|
+
import "./isArrayLikeObject-BPcFdnyK.mjs";
|
|
3
|
+
import { t as isUndefined_default } from "./isUndefined-BvarJ1wS.mjs";
|
|
4
|
+
import "./toInteger-1S_4Byef.mjs";
|
|
5
|
+
import "./_baseUniq-Agc10qFQ.mjs";
|
|
6
|
+
import { s as map_default } from "./_basePickBy-aQilsjEs.mjs";
|
|
7
|
+
import { t as layout } from "./dagre-DEdOheHq.mjs";
|
|
8
|
+
import "./chunk-S3R3BYOJ-BhFsv0Go.mjs";
|
|
9
|
+
import { t as clone_default } from "./clone-nkGlb0Gn.mjs";
|
|
10
|
+
import "./now-DsJMgI1z.mjs";
|
|
11
|
+
import { t as Graph } from "./graphlib-D9eH5icd.mjs";
|
|
12
|
+
import { g as log, h as __name } from "./src-DdwtiGjk.mjs";
|
|
13
|
+
import { b as getConfig2 } from "./chunk-ABZYJK2D-_NXv778f.mjs";
|
|
14
|
+
import "./path-BcDHwjEr.mjs";
|
|
15
|
+
import "./math-Byg0NvhS.mjs";
|
|
16
|
+
import "./array-B5w981Vk.mjs";
|
|
17
|
+
import "./line-BJxACIPZ.mjs";
|
|
18
|
+
import "./chunk-HN2XXSSU-DMfVdeUE.mjs";
|
|
19
|
+
import { t as getSubGraphTitleMargins } from "./chunk-CVBHYZKI-kPsSw5G9.mjs";
|
|
20
|
+
import "./chunk-ATLVNIR6-CBnG7Ev9.mjs";
|
|
21
|
+
import "./dist-BT0fjU7K.mjs";
|
|
22
|
+
import "./chunk-JA3XYJ7Z-b0Li4NN8.mjs";
|
|
23
|
+
import { a as insertNode, c as positionNode, i as insertCluster, l as setNodeElem, n as clear2, t as clear$1, u as updateNodeBounds } from "./chunk-JZLCHNYA-C_4MLySW.mjs";
|
|
24
|
+
import { a as positionEdgeLabel, i as markers_default, n as insertEdge, r as insertEdgeLabel, t as clear } from "./chunk-QXUST7PY-CY78Btj9.mjs";
|
|
25
|
+
function write(C) {
|
|
26
|
+
var w = {
|
|
27
|
+
options: {
|
|
28
|
+
directed: C.isDirected(),
|
|
29
|
+
multigraph: C.isMultigraph(),
|
|
30
|
+
compound: C.isCompound()
|
|
31
|
+
},
|
|
32
|
+
nodes: writeNodes(C),
|
|
33
|
+
edges: writeEdges(C)
|
|
34
|
+
};
|
|
35
|
+
return isUndefined_default(C.graph()) || (w.value = clone_default(C.graph())), w;
|
|
36
|
+
}
|
|
37
|
+
function writeNodes(w) {
|
|
38
|
+
return map_default(w.nodes(), function(C) {
|
|
39
|
+
var T = w.node(C), E = w.parent(C), D = { v: C };
|
|
40
|
+
return isUndefined_default(T) || (D.value = T), isUndefined_default(E) || (D.parent = E), D;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function writeEdges(w) {
|
|
44
|
+
return map_default(w.edges(), function(C) {
|
|
45
|
+
var T = w.edge(C), E = {
|
|
46
|
+
v: C.v,
|
|
47
|
+
w: C.w
|
|
48
|
+
};
|
|
49
|
+
return isUndefined_default(C.name) || (E.name = C.name), isUndefined_default(T) || (E.value = T), E;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
var clusterDb = /* @__PURE__ */ new Map(), descendants = /* @__PURE__ */ new Map(), parents = /* @__PURE__ */ new Map(), clear4 = /* @__PURE__ */ __name(() => {
|
|
53
|
+
descendants.clear(), parents.clear(), clusterDb.clear();
|
|
54
|
+
}, "clear"), isDescendant = /* @__PURE__ */ __name((r, C) => {
|
|
55
|
+
let w = descendants.get(C) || [];
|
|
56
|
+
return log.trace("In isDescendant", C, " ", r, " = ", w.includes(r)), w.includes(r);
|
|
57
|
+
}, "isDescendant"), edgeInCluster = /* @__PURE__ */ __name((r, C) => {
|
|
58
|
+
let w = descendants.get(C) || [];
|
|
59
|
+
return log.info("Descendants of ", C, " is ", w), log.info("Edge is ", r), r.v === C || r.w === C ? !1 : w ? w.includes(r.v) || isDescendant(r.v, C) || isDescendant(r.w, C) || w.includes(r.w) : (log.debug("Tilt, ", C, ",not in descendants"), !1);
|
|
60
|
+
}, "edgeInCluster"), copy = /* @__PURE__ */ __name((r, C, w, T) => {
|
|
61
|
+
log.warn("Copying children of ", r, "root", T, "data", C.node(r), T);
|
|
62
|
+
let E = C.children(r) || [];
|
|
63
|
+
r !== T && E.push(r), log.warn("Copying (nodes) clusterId", r, "nodes", E), E.forEach((E) => {
|
|
64
|
+
if (C.children(E).length > 0) copy(E, C, w, T);
|
|
65
|
+
else {
|
|
66
|
+
let O = C.node(E);
|
|
67
|
+
log.info("cp ", E, " to ", T, " with parent ", r), w.setNode(E, O), T !== C.parent(E) && (log.warn("Setting parent", E, C.parent(E)), w.setParent(E, C.parent(E))), r !== T && E !== r ? (log.debug("Setting parent", E, r), w.setParent(E, r)) : (log.info("In copy ", r, "root", T, "data", C.node(r), T), log.debug("Not Setting parent for node=", E, "cluster!==rootId", r !== T, "node!==clusterId", E !== r));
|
|
68
|
+
let k = C.edges(E);
|
|
69
|
+
log.debug("Copying Edges", k), k.forEach((E) => {
|
|
70
|
+
log.info("Edge", E);
|
|
71
|
+
let O = C.edge(E.v, E.w, E.name);
|
|
72
|
+
log.info("Edge data", O, T);
|
|
73
|
+
try {
|
|
74
|
+
edgeInCluster(E, T) ? (log.info("Copying as ", E.v, E.w, O, E.name), w.setEdge(E.v, E.w, O, E.name), log.info("newGraph edges ", w.edges(), w.edge(w.edges()[0]))) : log.info("Skipping copy of edge ", E.v, "-->", E.w, " rootId: ", T, " clusterId:", r);
|
|
75
|
+
} catch (r) {
|
|
76
|
+
log.error(r);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
log.debug("Removing node", E), C.removeNode(E);
|
|
81
|
+
});
|
|
82
|
+
}, "copy"), extractDescendants = /* @__PURE__ */ __name((r, C) => {
|
|
83
|
+
let w = C.children(r), T = [...w];
|
|
84
|
+
for (let E of w) parents.set(E, r), T = [...T, ...extractDescendants(E, C)];
|
|
85
|
+
return T;
|
|
86
|
+
}, "extractDescendants"), findCommonEdges = /* @__PURE__ */ __name((r, C, w) => {
|
|
87
|
+
let T = r.edges().filter((r) => r.v === C || r.w === C), E = r.edges().filter((r) => r.v === w || r.w === w), D = T.map((r) => ({
|
|
88
|
+
v: r.v === C ? w : r.v,
|
|
89
|
+
w: r.w === C ? C : r.w
|
|
90
|
+
})), O = E.map((r) => ({
|
|
91
|
+
v: r.v,
|
|
92
|
+
w: r.w
|
|
93
|
+
}));
|
|
94
|
+
return D.filter((r) => O.some((C) => r.v === C.v && r.w === C.w));
|
|
95
|
+
}, "findCommonEdges"), findNonClusterChild = /* @__PURE__ */ __name((r, C, w) => {
|
|
96
|
+
let T = C.children(r);
|
|
97
|
+
if (log.trace("Searching children of id ", r, T), T.length < 1) return r;
|
|
98
|
+
let E;
|
|
99
|
+
for (let r of T) {
|
|
100
|
+
let T = findNonClusterChild(r, C, w), D = findCommonEdges(C, w, T);
|
|
101
|
+
if (T) if (D.length > 0) E = T;
|
|
102
|
+
else return T;
|
|
103
|
+
}
|
|
104
|
+
return E;
|
|
105
|
+
}, "findNonClusterChild"), getAnchorId = /* @__PURE__ */ __name((r) => !clusterDb.has(r) || !clusterDb.get(r).externalConnections ? r : clusterDb.has(r) ? clusterDb.get(r).id : r, "getAnchorId"), adjustClustersAndEdges = /* @__PURE__ */ __name((r, C) => {
|
|
106
|
+
if (!r || C > 10) {
|
|
107
|
+
log.debug("Opting out, no graph ");
|
|
108
|
+
return;
|
|
109
|
+
} else log.debug("Opting in, graph ");
|
|
110
|
+
r.nodes().forEach(function(C) {
|
|
111
|
+
r.children(C).length > 0 && (log.warn("Cluster identified", C, " Replacement id in edges: ", findNonClusterChild(C, r, C)), descendants.set(C, extractDescendants(C, r)), clusterDb.set(C, {
|
|
112
|
+
id: findNonClusterChild(C, r, C),
|
|
113
|
+
clusterData: r.node(C)
|
|
114
|
+
}));
|
|
115
|
+
}), r.nodes().forEach(function(C) {
|
|
116
|
+
let w = r.children(C), T = r.edges();
|
|
117
|
+
w.length > 0 ? (log.debug("Cluster identified", C, descendants), T.forEach((r) => {
|
|
118
|
+
isDescendant(r.v, C) ^ isDescendant(r.w, C) && (log.warn("Edge: ", r, " leaves cluster ", C), log.warn("Descendants of XXX ", C, ": ", descendants.get(C)), clusterDb.get(C).externalConnections = !0);
|
|
119
|
+
})) : log.debug("Not a cluster ", C, descendants);
|
|
120
|
+
});
|
|
121
|
+
for (let C of clusterDb.keys()) {
|
|
122
|
+
let w = clusterDb.get(C).id, T = r.parent(w);
|
|
123
|
+
T !== C && clusterDb.has(T) && !clusterDb.get(T).externalConnections && (clusterDb.get(C).id = T);
|
|
124
|
+
}
|
|
125
|
+
r.edges().forEach(function(C) {
|
|
126
|
+
let w = r.edge(C);
|
|
127
|
+
log.warn("Edge " + C.v + " -> " + C.w + ": " + JSON.stringify(C)), log.warn("Edge " + C.v + " -> " + C.w + ": " + JSON.stringify(r.edge(C)));
|
|
128
|
+
let T = C.v, E = C.w;
|
|
129
|
+
if (log.warn("Fix XXX", clusterDb, "ids:", C.v, C.w, "Translating: ", clusterDb.get(C.v), " --- ", clusterDb.get(C.w)), clusterDb.get(C.v) || clusterDb.get(C.w)) {
|
|
130
|
+
if (log.warn("Fixing and trying - removing XXX", C.v, C.w, C.name), T = getAnchorId(C.v), E = getAnchorId(C.w), r.removeEdge(C.v, C.w, C.name), T !== C.v) {
|
|
131
|
+
let E = r.parent(T);
|
|
132
|
+
clusterDb.get(E).externalConnections = !0, w.fromCluster = C.v;
|
|
133
|
+
}
|
|
134
|
+
if (E !== C.w) {
|
|
135
|
+
let T = r.parent(E);
|
|
136
|
+
clusterDb.get(T).externalConnections = !0, w.toCluster = C.w;
|
|
137
|
+
}
|
|
138
|
+
log.warn("Fix Replacing with XXX", T, E, C.name), r.setEdge(T, E, w, C.name);
|
|
139
|
+
}
|
|
140
|
+
}), log.warn("Adjusted Graph", write(r)), extractor(r, 0), log.trace(clusterDb);
|
|
141
|
+
}, "adjustClustersAndEdges"), extractor = /* @__PURE__ */ __name((r, C) => {
|
|
142
|
+
if (log.warn("extractor - ", C, write(r), r.children("D")), C > 10) {
|
|
143
|
+
log.error("Bailing out");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
let w = r.nodes(), T = !1;
|
|
147
|
+
for (let C of w) {
|
|
148
|
+
let w = r.children(C);
|
|
149
|
+
T ||= w.length > 0;
|
|
150
|
+
}
|
|
151
|
+
if (!T) {
|
|
152
|
+
log.debug("Done, no node has children", r.nodes());
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
log.debug("Nodes = ", w, C);
|
|
156
|
+
for (let T of w) if (log.debug("Extracting node", T, clusterDb, clusterDb.has(T) && !clusterDb.get(T).externalConnections, !r.parent(T), r.node(T), r.children("D"), " Depth ", C), !clusterDb.has(T)) log.debug("Not a cluster", T, C);
|
|
157
|
+
else if (!clusterDb.get(T).externalConnections && r.children(T) && r.children(T).length > 0) {
|
|
158
|
+
log.warn("Cluster without external connections, without a parent and with children", T, C);
|
|
159
|
+
let w = r.graph().rankdir === "TB" ? "LR" : "TB";
|
|
160
|
+
clusterDb.get(T)?.clusterData?.dir && (w = clusterDb.get(T).clusterData.dir, log.warn("Fixing dir", clusterDb.get(T).clusterData.dir, w));
|
|
161
|
+
let O = new Graph({
|
|
162
|
+
multigraph: !0,
|
|
163
|
+
compound: !0
|
|
164
|
+
}).setGraph({
|
|
165
|
+
rankdir: w,
|
|
166
|
+
nodesep: 50,
|
|
167
|
+
ranksep: 50,
|
|
168
|
+
marginx: 8,
|
|
169
|
+
marginy: 8
|
|
170
|
+
}).setDefaultEdgeLabel(function() {
|
|
171
|
+
return {};
|
|
172
|
+
});
|
|
173
|
+
log.warn("Old graph before copy", write(r)), copy(T, r, O, T), r.setNode(T, {
|
|
174
|
+
clusterNode: !0,
|
|
175
|
+
id: T,
|
|
176
|
+
clusterData: clusterDb.get(T).clusterData,
|
|
177
|
+
label: clusterDb.get(T).label,
|
|
178
|
+
graph: O
|
|
179
|
+
}), log.warn("New graph after copy node: (", T, ")", write(O)), log.debug("Old graph after copy", write(r));
|
|
180
|
+
} else log.warn("Cluster ** ", T, " **not meeting the criteria !externalConnections:", !clusterDb.get(T).externalConnections, " no parent: ", !r.parent(T), " children ", r.children(T) && r.children(T).length > 0, r.children("D"), C), log.debug(clusterDb);
|
|
181
|
+
w = r.nodes(), log.warn("New list of nodes", w);
|
|
182
|
+
for (let T of w) {
|
|
183
|
+
let w = r.node(T);
|
|
184
|
+
log.warn(" Now next level", T, w), w?.clusterNode && extractor(w.graph, C + 1);
|
|
185
|
+
}
|
|
186
|
+
}, "extractor"), sorter = /* @__PURE__ */ __name((r, C) => {
|
|
187
|
+
if (C.length === 0) return [];
|
|
188
|
+
let w = Object.assign([], C);
|
|
189
|
+
return C.forEach((C) => {
|
|
190
|
+
let T = sorter(r, r.children(C));
|
|
191
|
+
w = [...w, ...T];
|
|
192
|
+
}), w;
|
|
193
|
+
}, "sorter"), sortNodesByHierarchy = /* @__PURE__ */ __name((r) => sorter(r, r.children()), "sortNodesByHierarchy"), recursiveRender = /* @__PURE__ */ __name(async (r, C, T, E, k, M) => {
|
|
194
|
+
log.warn("Graph in recursive render:XAX", write(C), k);
|
|
195
|
+
let N = C.graph().rankdir;
|
|
196
|
+
log.trace("Dir in recursive render - dir:", N);
|
|
197
|
+
let P = r.insert("g").attr("class", "root");
|
|
198
|
+
C.nodes() ? log.info("Recursive render XXX", C.nodes()) : log.info("No nodes found for", C), C.edges().length > 0 && log.info("Recursive edges", C.edge(C.edges()[0]));
|
|
199
|
+
let F = P.insert("g").attr("class", "clusters"), I = P.insert("g").attr("class", "edgePaths"), L = P.insert("g").attr("class", "edgeLabels"), R = P.insert("g").attr("class", "nodes");
|
|
200
|
+
await Promise.all(C.nodes().map(async function(r) {
|
|
201
|
+
let w = C.node(r);
|
|
202
|
+
if (k !== void 0) {
|
|
203
|
+
let w = JSON.parse(JSON.stringify(k.clusterData));
|
|
204
|
+
log.trace("Setting data for parent cluster XXX\n Node.id = ", r, "\n data=", w.height, "\nParent cluster", k.height), C.setNode(k.id, w), C.parent(r) || (log.trace("Setting parent", r, k.id), C.setParent(r, k.id, w));
|
|
205
|
+
}
|
|
206
|
+
if (log.info("(Insert) Node XXX" + r + ": " + JSON.stringify(C.node(r))), w?.clusterNode) {
|
|
207
|
+
log.info("Cluster identified XBX", r, w.width, C.node(r));
|
|
208
|
+
let { ranksep: O, nodesep: k } = C.graph();
|
|
209
|
+
w.graph.setGraph({
|
|
210
|
+
...w.graph.graph(),
|
|
211
|
+
ranksep: O + 25,
|
|
212
|
+
nodesep: k
|
|
213
|
+
});
|
|
214
|
+
let A = await recursiveRender(R, w.graph, T, E, C.node(r), M), j = A.elem;
|
|
215
|
+
updateNodeBounds(w, j), w.diff = A.diff || 0, log.info("New compound node after recursive render XAX", r, "width", w.width, "height", w.height), setNodeElem(j, w);
|
|
216
|
+
} else C.children(r).length > 0 ? (log.trace("Cluster - the non recursive path XBX", r, w.id, w, w.width, "Graph:", C), log.trace(findNonClusterChild(w.id, C)), clusterDb.set(w.id, {
|
|
217
|
+
id: findNonClusterChild(w.id, C),
|
|
218
|
+
node: w
|
|
219
|
+
})) : (log.trace("Node - the non recursive path XAX", r, R, C.node(r), N), await insertNode(R, C.node(r), {
|
|
220
|
+
config: M,
|
|
221
|
+
dir: N
|
|
222
|
+
}));
|
|
223
|
+
})), await (/* @__PURE__ */ __name(async () => {
|
|
224
|
+
let r = C.edges().map(async function(r) {
|
|
225
|
+
let w = C.edge(r.v, r.w, r.name);
|
|
226
|
+
log.info("Edge " + r.v + " -> " + r.w + ": " + JSON.stringify(r)), log.info("Edge " + r.v + " -> " + r.w + ": ", r, " ", JSON.stringify(C.edge(r))), log.info("Fix", clusterDb, "ids:", r.v, r.w, "Translating: ", clusterDb.get(r.v), clusterDb.get(r.w)), await insertEdgeLabel(L, w);
|
|
227
|
+
});
|
|
228
|
+
await Promise.all(r);
|
|
229
|
+
}, "processEdges"))(), log.info("Graph before layout:", JSON.stringify(write(C))), log.info("############################################# XXX"), log.info("### Layout ### XXX"), log.info("############################################# XXX"), layout(C), log.info("Graph after layout:", JSON.stringify(write(C)));
|
|
230
|
+
let z = 0, { subGraphTitleTotalMargin: B } = getSubGraphTitleMargins(M);
|
|
231
|
+
return await Promise.all(sortNodesByHierarchy(C).map(async function(r) {
|
|
232
|
+
let w = C.node(r);
|
|
233
|
+
if (log.info("Position XBX => " + r + ": (" + w.x, "," + w.y, ") width: ", w.width, " height: ", w.height), w?.clusterNode) w.y += B, log.info("A tainted cluster node XBX1", r, w.id, w.width, w.height, w.x, w.y, C.parent(r)), clusterDb.get(w.id).node = w, positionNode(w);
|
|
234
|
+
else if (C.children(r).length > 0) {
|
|
235
|
+
log.info("A pure cluster node XBX1", r, w.id, w.x, w.y, w.width, w.height, C.parent(r)), w.height += B, C.node(w.parentId);
|
|
236
|
+
let T = w?.padding / 2 || 0, E = w?.labelBBox?.height || 0, O = E - T || 0;
|
|
237
|
+
log.debug("OffsetY", O, "labelHeight", E, "halfPadding", T), await insertCluster(F, w), clusterDb.get(w.id).node = w;
|
|
238
|
+
} else {
|
|
239
|
+
let r = C.node(w.parentId);
|
|
240
|
+
w.y += B / 2, log.info("A regular node XBX1 - using the padding", w.id, "parent", w.parentId, w.width, w.height, w.x, w.y, "offsetY", w.offsetY, "parent", r, r?.offsetY, w), positionNode(w);
|
|
241
|
+
}
|
|
242
|
+
})), C.edges().forEach(function(r) {
|
|
243
|
+
let w = C.edge(r);
|
|
244
|
+
log.info("Edge " + r.v + " -> " + r.w + ": " + JSON.stringify(w), w), w.points.forEach((r) => r.y += B / 2), positionEdgeLabel(w, insertEdge(I, w, clusterDb, T, C.node(r.v), C.node(r.w), E));
|
|
245
|
+
}), C.nodes().forEach(function(r) {
|
|
246
|
+
let w = C.node(r);
|
|
247
|
+
log.info(r, w.type, w.diff), w.isGroup && (z = w.diff);
|
|
248
|
+
}), log.warn("Returning from recursive render XAX", P, z), {
|
|
249
|
+
elem: P,
|
|
250
|
+
diff: z
|
|
251
|
+
};
|
|
252
|
+
}, "recursiveRender"), render = /* @__PURE__ */ __name(async (r, C) => {
|
|
253
|
+
let w = new Graph({
|
|
254
|
+
multigraph: !0,
|
|
255
|
+
compound: !0
|
|
256
|
+
}).setGraph({
|
|
257
|
+
rankdir: r.direction,
|
|
258
|
+
nodesep: r.config?.nodeSpacing || r.config?.flowchart?.nodeSpacing || r.nodeSpacing,
|
|
259
|
+
ranksep: r.config?.rankSpacing || r.config?.flowchart?.rankSpacing || r.rankSpacing,
|
|
260
|
+
marginx: 8,
|
|
261
|
+
marginy: 8
|
|
262
|
+
}).setDefaultEdgeLabel(function() {
|
|
263
|
+
return {};
|
|
264
|
+
}), T = C.select("g");
|
|
265
|
+
markers_default(T, r.markers, r.type, r.diagramId), clear2(), clear(), clear$1(), clear4(), r.nodes.forEach((r) => {
|
|
266
|
+
w.setNode(r.id, { ...r }), r.parentId && w.setParent(r.id, r.parentId);
|
|
267
|
+
}), log.debug("Edges:", r.edges), r.edges.forEach((r) => {
|
|
268
|
+
if (r.start === r.end) {
|
|
269
|
+
let C = r.start, T = C + "---" + C + "---1", E = C + "---" + C + "---2", D = w.node(C);
|
|
270
|
+
w.setNode(T, {
|
|
271
|
+
domId: T,
|
|
272
|
+
id: T,
|
|
273
|
+
parentId: D.parentId,
|
|
274
|
+
labelStyle: "",
|
|
275
|
+
label: "",
|
|
276
|
+
padding: 0,
|
|
277
|
+
shape: "labelRect",
|
|
278
|
+
style: "",
|
|
279
|
+
width: 10,
|
|
280
|
+
height: 10
|
|
281
|
+
}), w.setParent(T, D.parentId), w.setNode(E, {
|
|
282
|
+
domId: E,
|
|
283
|
+
id: E,
|
|
284
|
+
parentId: D.parentId,
|
|
285
|
+
labelStyle: "",
|
|
286
|
+
padding: 0,
|
|
287
|
+
shape: "labelRect",
|
|
288
|
+
label: "",
|
|
289
|
+
style: "",
|
|
290
|
+
width: 10,
|
|
291
|
+
height: 10
|
|
292
|
+
}), w.setParent(E, D.parentId);
|
|
293
|
+
let O = structuredClone(r), k = structuredClone(r), A = structuredClone(r);
|
|
294
|
+
O.label = "", O.arrowTypeEnd = "none", O.id = C + "-cyclic-special-1", k.arrowTypeStart = "none", k.arrowTypeEnd = "none", k.id = C + "-cyclic-special-mid", A.label = "", D.isGroup && (O.fromCluster = C, A.toCluster = C), A.id = C + "-cyclic-special-2", A.arrowTypeStart = "none", w.setEdge(C, T, O, C + "-cyclic-special-0"), w.setEdge(T, E, k, C + "-cyclic-special-1"), w.setEdge(E, C, A, C + "-cyc<lic-special-2");
|
|
295
|
+
} else w.setEdge(r.start, r.end, { ...r }, r.id);
|
|
296
|
+
}), log.warn("Graph at first:", JSON.stringify(write(w))), adjustClustersAndEdges(w), log.warn("Graph after XAX:", JSON.stringify(write(w)));
|
|
297
|
+
let O = getConfig2();
|
|
298
|
+
await recursiveRender(T, w, r.type, r.diagramId, void 0, O);
|
|
299
|
+
}, "render");
|
|
300
|
+
export { render };
|