@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.
Files changed (151) hide show
  1. package/README.md +289 -0
  2. package/dist/App.vue.d.ts +2 -0
  3. package/dist/__stories__/App.stories.d.ts +18 -0
  4. package/dist/__tests__/Input.spec.d.ts +1 -0
  5. package/dist/__tests__/api/generic.spec.d.ts +1 -0
  6. package/dist/__tests__/api/message.spec.d.ts +1 -0
  7. package/dist/__tests__/index.spec.d.ts +1 -0
  8. package/dist/__tests__/plugins/chat.spec.d.ts +1 -0
  9. package/dist/__tests__/plugins/chat.test.d.ts +1 -0
  10. package/dist/__tests__/setup.d.ts +0 -0
  11. package/dist/__tests__/utils/create.d.ts +5 -0
  12. package/dist/__tests__/utils/fetch.d.ts +13 -0
  13. package/dist/__tests__/utils/index.d.ts +3 -0
  14. package/dist/__tests__/utils/selectors.d.ts +12 -0
  15. package/dist/__tests__/utils/streaming.spec.d.ts +1 -0
  16. package/dist/__tests__/utils/streamingHandlers.spec.d.ts +1 -0
  17. package/dist/_basePickBy-aQilsjEs.mjs +106 -0
  18. package/dist/_baseUniq-Agc10qFQ.mjs +232 -0
  19. package/dist/api/generic.d.ts +7 -0
  20. package/dist/api/index.d.ts +2 -0
  21. package/dist/api/message.d.ts +11 -0
  22. package/dist/arc-EhYU_DB1.mjs +79 -0
  23. package/dist/architecture-U656AL7Q-B1STlXpR.mjs +10 -0
  24. package/dist/architectureDiagram-VXUJARFQ-DOVAbXSw.mjs +4054 -0
  25. package/dist/array-B5w981Vk.mjs +5 -0
  26. package/dist/blockDiagram-VD42YOAC-BsX3Fkg3.mjs +3013 -0
  27. package/dist/c4Diagram-YG6GDRKO-B5JaLuX6.mjs +2957 -0
  28. package/dist/channel-CqrIo07y.mjs +4 -0
  29. package/dist/chat.bundle.es.js +37656 -0
  30. package/dist/chat.bundle.umd.js +2784 -0
  31. package/dist/chat.es.js +35738 -0
  32. package/dist/chat.umd.js +2776 -0
  33. package/dist/chunk-4BX2VUAB-dn0RXIrC.mjs +7 -0
  34. package/dist/chunk-55IACEB6-DrIttNoL.mjs +7 -0
  35. package/dist/chunk-76Q3JFCE-D7DMbWeQ.mjs +20 -0
  36. package/dist/chunk-ABZYJK2D-_NXv778f.mjs +2516 -0
  37. package/dist/chunk-ATLVNIR6-CBnG7Ev9.mjs +66 -0
  38. package/dist/chunk-B4BG7PRW-DElmmAse.mjs +3109 -0
  39. package/dist/chunk-CVBHYZKI-kPsSw5G9.mjs +11 -0
  40. package/dist/chunk-DI55MBZ5-Bw6uFFfD.mjs +1995 -0
  41. package/dist/chunk-DZXZ2BO8.mjs +19 -0
  42. package/dist/chunk-EXTU4WIE-DWzncOZf.mjs +8 -0
  43. package/dist/chunk-FMBD7UC4-CQf-nVrj.mjs +4 -0
  44. package/dist/chunk-FPAJGGOC-HRc6DGju.mjs +12254 -0
  45. package/dist/chunk-FWNWRKHM-CGiJVNMo.mjs +57 -0
  46. package/dist/chunk-HN2XXSSU-DMfVdeUE.mjs +75 -0
  47. package/dist/chunk-JA3XYJ7Z-b0Li4NN8.mjs +1834 -0
  48. package/dist/chunk-JZLCHNYA-C_4MLySW.mjs +4862 -0
  49. package/dist/chunk-KS23V3DP-BRKOfbU6.mjs +136 -0
  50. package/dist/chunk-LBM3YZW2-JIQK8wiH.mjs +20 -0
  51. package/dist/chunk-LHMN2FUI-PNCyIUgu.mjs +20 -0
  52. package/dist/chunk-MI3HLSF2-B9GTCmLp.mjs +1146 -0
  53. package/dist/chunk-N4CR4FBY-CjlmnCPD.mjs +40 -0
  54. package/dist/chunk-O7ZBX7Z2-DmJUfqJj.mjs +27 -0
  55. package/dist/chunk-QN33PNHL-nN1zLFSf.mjs +24 -0
  56. package/dist/chunk-QXUST7PY-CY78Btj9.mjs +487 -0
  57. package/dist/chunk-QZHKN3VN-BF5N1pfB.mjs +12 -0
  58. package/dist/chunk-S3R3BYOJ-BhFsv0Go.mjs +1076 -0
  59. package/dist/chunk-S6J4BHB3-BvrWTdbl.mjs +20 -0
  60. package/dist/chunk-T53DSG4Q-XzY06amw.mjs +25 -0
  61. package/dist/chunk-TZMSLE5B-DVmJQ8eg.mjs +57 -0
  62. package/dist/classDiagram-2ON5EDUG-CKxiEVX9.mjs +33 -0
  63. package/dist/classDiagram-v2-WZHVMYZB-sAa_2keq.mjs +33 -0
  64. package/dist/clone-nkGlb0Gn.mjs +8 -0
  65. package/dist/components/Button.vue.d.ts +17 -0
  66. package/dist/components/Chat.vue.d.ts +2 -0
  67. package/dist/components/ChatFile.vue.d.ts +11 -0
  68. package/dist/components/ChatWindow.vue.d.ts +2 -0
  69. package/dist/components/GetStarted.vue.d.ts +2 -0
  70. package/dist/components/GetStartedFooter.vue.d.ts +2 -0
  71. package/dist/components/Input.vue.d.ts +39 -0
  72. package/dist/components/Layout.vue.d.ts +23 -0
  73. package/dist/components/Message.vue.d.ts +39 -0
  74. package/dist/components/MessageTyping.vue.d.ts +76 -0
  75. package/dist/components/MessagesList.vue.d.ts +164 -0
  76. package/dist/components/PoweredBy.vue.d.ts +2 -0
  77. package/dist/components/index.d.ts +10 -0
  78. package/dist/composables/index.d.ts +3 -0
  79. package/dist/composables/useChat.d.ts +2 -0
  80. package/dist/composables/useI18n.d.ts +4 -0
  81. package/dist/composables/useOptions.d.ts +4 -0
  82. package/dist/constants/defaults.d.ts +3 -0
  83. package/dist/constants/index.d.ts +3 -0
  84. package/dist/constants/localStorage.d.ts +2 -0
  85. package/dist/constants/symbols.d.ts +4 -0
  86. package/dist/cose-bilkent-S5V4N54A-1lKG2PUg.mjs +2251 -0
  87. package/dist/cytoscape.esm-Dls1_mGy.mjs +18108 -0
  88. package/dist/dagre-6UL2VRFP-CbWFu9xQ.mjs +300 -0
  89. package/dist/dagre-DEdOheHq.mjs +1385 -0
  90. package/dist/defaultLocale-CyoQm63E.mjs +178 -0
  91. package/dist/diagram-PSM6KHXK-CJcHbrJH.mjs +499 -0
  92. package/dist/diagram-QEK2KX5R-XQ9XOVL4.mjs +228 -0
  93. package/dist/diagram-S2PKOQOG-CmRfaeSf.mjs +146 -0
  94. package/dist/dist-BT0fjU7K.mjs +50 -0
  95. package/dist/erDiagram-Q2GNP2WA-iuoUWHwm.mjs +1603 -0
  96. package/dist/event-buses/chatEventBus.d.ts +1 -0
  97. package/dist/event-buses/index.d.ts +1 -0
  98. package/dist/favicon.ico +0 -0
  99. package/dist/flowDiagram-NV44I4VS-D3GMS8-G.mjs +4132 -0
  100. package/dist/ganttDiagram-LVOFAZNH-DMTZVZDR.mjs +2832 -0
  101. package/dist/gitGraph-F6HP7TQM-CrdUzURw.mjs +10 -0
  102. package/dist/gitGraphDiagram-NY62KEGX-DipP5Fgt.mjs +636 -0
  103. package/dist/graphlib-D9eH5icd.mjs +224 -0
  104. package/dist/index.d.ts +2 -0
  105. package/dist/info-NVLQJR56-C-93Yf3U.mjs +10 -0
  106. package/dist/infoDiagram-F6ZHWCRC-jM50s26K.mjs +33 -0
  107. package/dist/init-CYeu4QfE.mjs +14 -0
  108. package/dist/isArrayLikeObject-BPcFdnyK.mjs +459 -0
  109. package/dist/isUndefined-BvarJ1wS.mjs +374 -0
  110. package/dist/journeyDiagram-XKPGCS4Q-BEEO_0Bh.mjs +885 -0
  111. package/dist/kanban-definition-3W4ZIXB7-B8u_HDmL.mjs +971 -0
  112. package/dist/katex-Dc1vXbUC.mjs +22094 -0
  113. package/dist/line-BJxACIPZ.mjs +31 -0
  114. package/dist/linear-DHHVI-cj.mjs +251 -0
  115. package/dist/math-Byg0NvhS.mjs +9 -0
  116. package/dist/mermaid-parser.core-YT4qvimq.mjs +49 -0
  117. package/dist/mindmap-definition-VGOIOE7T-ah41V88S.mjs +960 -0
  118. package/dist/now-DsJMgI1z.mjs +6 -0
  119. package/dist/ordinal-L0-EVPg8.mjs +62 -0
  120. package/dist/packet-BFZMPI3H-Cs4kRHct.mjs +10 -0
  121. package/dist/path-BcDHwjEr.mjs +80 -0
  122. package/dist/pie-7BOR55EZ-YZ5Xu4o6.mjs +10 -0
  123. package/dist/pieDiagram-ADFJNKIX-CqI33m1a.mjs +174 -0
  124. package/dist/plugins/chat.d.ts +3 -0
  125. package/dist/plugins/index.d.ts +1 -0
  126. package/dist/quadrantDiagram-AYHSOK5B-DDv2X9c1.mjs +1971 -0
  127. package/dist/radar-NHE76QYJ-TpirOFtv.mjs +10 -0
  128. package/dist/requirementDiagram-UZGBJVZJ-DXa77VzO.mjs +2194 -0
  129. package/dist/sankeyDiagram-TZEHDZUN--B9DInJC.mjs +885 -0
  130. package/dist/sequenceDiagram-WL72ISMW-Dqn9jJ3g.mjs +3562 -0
  131. package/dist/src-DdwtiGjk.mjs +1976 -0
  132. package/dist/stateDiagram-FKZM4ZOC-D3eEcVjS.mjs +226 -0
  133. package/dist/stateDiagram-v2-4FDKWEC3-dzwJ4caL.mjs +32 -0
  134. package/dist/style.css +3 -0
  135. package/dist/timeline-definition-IT6M3QCI-z93ry7RN.mjs +831 -0
  136. package/dist/toInteger-1S_4Byef.mjs +36 -0
  137. package/dist/treemap-KMMF4GRG-BlF0Ev1z.mjs +10 -0
  138. package/dist/types/chat.d.ts +13 -0
  139. package/dist/types/index.d.ts +5 -0
  140. package/dist/types/messages.d.ts +17 -0
  141. package/dist/types/options.d.ts +33 -0
  142. package/dist/types/streaming.d.ts +18 -0
  143. package/dist/types/webhook.d.ts +19 -0
  144. package/dist/utils/event-bus.d.ts +8 -0
  145. package/dist/utils/index.d.ts +3 -0
  146. package/dist/utils/mount.d.ts +1 -0
  147. package/dist/utils/streaming.d.ts +26 -0
  148. package/dist/utils/streamingHandlers.d.ts +6 -0
  149. package/dist/utils/utils.d.ts +1 -0
  150. package/dist/xychartDiagram-PRI3JC2R-C3aDcgBz.mjs +2022 -0
  151. 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 };