@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,1385 @@
1
+ /*! Package version @n8n/chat@0.62.0 */
2
+ import { C as _isIterateeCall_default, D as _overRest_default, E as _baseRest_default, N as _setToString_default, P as constant_default, V as isArray_default, j as _baseAssignValue_default, k as _assignValue_default, n as _baseFor_default, p as keysIn_default, v as _baseUnary_default, w as isArrayLike_default, z as identity_default } from "./isArrayLikeObject-BPcFdnyK.mjs";
3
+ import { E as _baseKeys_default, O as _arrayMap_default, a as hasIn_default, f as _getTag_default, i as _baseProperty_default, k as isSymbol_default, r as _baseIteratee_default, t as isUndefined_default, w as toString_default, x as _baseGet_default } from "./isUndefined-BvarJ1wS.mjs";
4
+ import { n as toFinite_default } from "./toInteger-1S_4Byef.mjs";
5
+ import { d as _baseClone_default, i as filter_default, n as reduce_default, o as forEach_default, p as _baseFlatten_default, r as values_default, s as _castFunction_default, u as _baseForOwn_default } from "./_baseUniq-Agc10qFQ.mjs";
6
+ import { a as isString_default, c as _baseMap_default, d as defaults_default, f as flatten_default, i as _baseLt_default, l as find_default, n as min_default, o as has_default, r as _baseExtremum_default, s as map_default, t as _basePickBy_default, u as last_default } from "./_basePickBy-aQilsjEs.mjs";
7
+ import { A as merge_default } from "./chunk-S3R3BYOJ-BhFsv0Go.mjs";
8
+ import { t as now_default } from "./now-DsJMgI1z.mjs";
9
+ import { t as Graph } from "./graphlib-D9eH5icd.mjs";
10
+ function flatRest(d) {
11
+ return _setToString_default(_overRest_default(d, void 0, flatten_default), d + "");
12
+ }
13
+ var _flatRest_default = flatRest, reHasUnicode = RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");
14
+ function hasUnicode(d) {
15
+ return reHasUnicode.test(d);
16
+ }
17
+ var _hasUnicode_default = hasUnicode, CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
18
+ function cloneDeep(d) {
19
+ return _baseClone_default(d, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
20
+ }
21
+ var cloneDeep_default = cloneDeep;
22
+ function forIn(d, B) {
23
+ return d == null ? d : _baseFor_default(d, _castFunction_default(B), keysIn_default);
24
+ }
25
+ var forIn_default = forIn;
26
+ function forOwn(d, B) {
27
+ return d && _baseForOwn_default(d, _castFunction_default(B));
28
+ }
29
+ var forOwn_default = forOwn;
30
+ function baseGt(d, B) {
31
+ return d > B;
32
+ }
33
+ var _baseGt_default = baseGt;
34
+ function mapValues(d, B) {
35
+ var V = {};
36
+ return B = _baseIteratee_default(B, 3), _baseForOwn_default(d, function(d, H, U) {
37
+ _baseAssignValue_default(V, H, B(d, H, U));
38
+ }), V;
39
+ }
40
+ var mapValues_default = mapValues;
41
+ function max(d) {
42
+ return d && d.length ? _baseExtremum_default(d, identity_default, _baseGt_default) : void 0;
43
+ }
44
+ var max_default = max;
45
+ function minBy(d, B) {
46
+ return d && d.length ? _baseExtremum_default(d, _baseIteratee_default(B, 2), _baseLt_default) : void 0;
47
+ }
48
+ var minBy_default = minBy;
49
+ function baseSortBy(d, B) {
50
+ var V = d.length;
51
+ for (d.sort(B); V--;) d[V] = d[V].value;
52
+ return d;
53
+ }
54
+ var _baseSortBy_default = baseSortBy;
55
+ function compareAscending(d, B) {
56
+ if (d !== B) {
57
+ var V = d !== void 0, H = d === null, U = d === d, W = isSymbol_default(d), G = B !== void 0, K = B === null, q = B === B, J = isSymbol_default(B);
58
+ if (!K && !J && !W && d > B || W && G && q && !K && !J || H && G && q || !V && q || !U) return 1;
59
+ if (!H && !W && !J && d < B || J && V && U && !H && !W || K && V && U || !G && U || !q) return -1;
60
+ }
61
+ return 0;
62
+ }
63
+ var _compareAscending_default = compareAscending;
64
+ function compareMultiple(d, B, V) {
65
+ for (var H = -1, U = d.criteria, W = B.criteria, G = U.length, K = V.length; ++H < G;) {
66
+ var q = _compareAscending_default(U[H], W[H]);
67
+ if (q) return H >= K ? q : q * (V[H] == "desc" ? -1 : 1);
68
+ }
69
+ return d.index - B.index;
70
+ }
71
+ var _compareMultiple_default = compareMultiple;
72
+ function baseOrderBy(d, B, V) {
73
+ B = B.length ? _arrayMap_default(B, function(d) {
74
+ return isArray_default(d) ? function(B) {
75
+ return _baseGet_default(B, d.length === 1 ? d[0] : d);
76
+ } : d;
77
+ }) : [identity_default];
78
+ var H = -1;
79
+ return B = _arrayMap_default(B, _baseUnary_default(_baseIteratee_default)), _baseSortBy_default(_baseMap_default(d, function(d, V, U) {
80
+ return {
81
+ criteria: _arrayMap_default(B, function(B) {
82
+ return B(d);
83
+ }),
84
+ index: ++H,
85
+ value: d
86
+ };
87
+ }), function(d, B) {
88
+ return _compareMultiple_default(d, B, V);
89
+ });
90
+ }
91
+ var _baseOrderBy_default = baseOrderBy, _asciiSize_default = _baseProperty_default("length"), rsAstralRange = "\\ud800-\\udfff", rsComboRange = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", rsVarRange = "\\ufe0e\\ufe0f", rsAstral = "[" + rsAstralRange + "]", rsCombo = "[" + rsComboRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsZWJ = "\\u200d", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [
92
+ rsNonAstral,
93
+ rsRegional,
94
+ rsSurrPair
95
+ ].join("|") + ")" + rsOptVar + reOptMod + ")*", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = "(?:" + [
96
+ rsNonAstral + rsCombo + "?",
97
+ rsCombo,
98
+ rsRegional,
99
+ rsSurrPair,
100
+ rsAstral
101
+ ].join("|") + ")", reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
102
+ function unicodeSize(d) {
103
+ for (var B = reUnicode.lastIndex = 0; reUnicode.test(d);) ++B;
104
+ return B;
105
+ }
106
+ var _unicodeSize_default = unicodeSize;
107
+ function stringSize(d) {
108
+ return _hasUnicode_default(d) ? _unicodeSize_default(d) : _asciiSize_default(d);
109
+ }
110
+ var _stringSize_default = stringSize;
111
+ function basePick(d, B) {
112
+ return _basePickBy_default(d, B, function(B, V) {
113
+ return hasIn_default(d, V);
114
+ });
115
+ }
116
+ var _basePick_default = basePick, pick_default = _flatRest_default(function(d, B) {
117
+ return d == null ? {} : _basePick_default(d, B);
118
+ }), nativeCeil = Math.ceil, nativeMax = Math.max;
119
+ function baseRange(d, B, V, H) {
120
+ for (var U = -1, W = nativeMax(nativeCeil((B - d) / (V || 1)), 0), G = Array(W); W--;) G[H ? W : ++U] = d, d += V;
121
+ return G;
122
+ }
123
+ var _baseRange_default = baseRange;
124
+ function createRange(B) {
125
+ return function(V, H, U) {
126
+ return U && typeof U != "number" && _isIterateeCall_default(V, H, U) && (H = U = void 0), V = toFinite_default(V), H === void 0 ? (H = V, V = 0) : H = toFinite_default(H), U = U === void 0 ? V < H ? 1 : -1 : toFinite_default(U), _baseRange_default(V, H, U, B);
127
+ };
128
+ }
129
+ var range_default = createRange(), mapTag = "[object Map]", setTag = "[object Set]";
130
+ function size(d) {
131
+ if (d == null) return 0;
132
+ if (isArrayLike_default(d)) return isString_default(d) ? _stringSize_default(d) : d.length;
133
+ var B = _getTag_default(d);
134
+ return B == mapTag || B == setTag ? d.size : _baseKeys_default(d).length;
135
+ }
136
+ var size_default = size, sortBy_default = _baseRest_default(function(B, V) {
137
+ if (B == null) return [];
138
+ var H = V.length;
139
+ return H > 1 && _isIterateeCall_default(B, V[0], V[1]) ? V = [] : H > 2 && _isIterateeCall_default(V[0], V[1], V[2]) && (V = [V[0]]), _baseOrderBy_default(B, _baseFlatten_default(V, 1), []);
140
+ }), idCounter = 0;
141
+ function uniqueId(d) {
142
+ var B = ++idCounter;
143
+ return toString_default(d) + B;
144
+ }
145
+ var uniqueId_default = uniqueId;
146
+ function baseZipObject(d, B, V) {
147
+ for (var H = -1, U = d.length, W = B.length, G = {}; ++H < U;) {
148
+ var K = H < W ? B[H] : void 0;
149
+ V(G, d[H], K);
150
+ }
151
+ return G;
152
+ }
153
+ var _baseZipObject_default = baseZipObject;
154
+ function zipObject(d, B) {
155
+ return _baseZipObject_default(d || [], B || [], _assignValue_default);
156
+ }
157
+ var zipObject_default = zipObject, List = class {
158
+ constructor() {
159
+ var d = {};
160
+ d._next = d._prev = d, this._sentinel = d;
161
+ }
162
+ dequeue() {
163
+ var d = this._sentinel, B = d._prev;
164
+ if (B !== d) return unlink(B), B;
165
+ }
166
+ enqueue(d) {
167
+ var B = this._sentinel;
168
+ d._prev && d._next && unlink(d), d._next = B._next, B._next._prev = d, B._next = d, d._prev = B;
169
+ }
170
+ toString() {
171
+ for (var d = [], B = this._sentinel, V = B._prev; V !== B;) d.push(JSON.stringify(V, filterOutLinks)), V = V._prev;
172
+ return "[" + d.join(", ") + "]";
173
+ }
174
+ };
175
+ function unlink(d) {
176
+ d._prev._next = d._next, d._next._prev = d._prev, delete d._next, delete d._prev;
177
+ }
178
+ function filterOutLinks(d, B) {
179
+ if (d !== "_next" && d !== "_prev") return B;
180
+ }
181
+ var DEFAULT_WEIGHT_FN = constant_default(1);
182
+ function greedyFAS(d, B) {
183
+ if (d.nodeCount() <= 1) return [];
184
+ var V = buildState(d, B || DEFAULT_WEIGHT_FN);
185
+ return flatten_default(map_default(doGreedyFAS(V.graph, V.buckets, V.zeroIdx), function(B) {
186
+ return d.outEdges(B.v, B.w);
187
+ }));
188
+ }
189
+ function doGreedyFAS(d, B, V) {
190
+ for (var H = [], U = B[B.length - 1], W = B[0], G; d.nodeCount();) {
191
+ for (; G = W.dequeue();) removeNode(d, B, V, G);
192
+ for (; G = U.dequeue();) removeNode(d, B, V, G);
193
+ if (d.nodeCount()) {
194
+ for (var K = B.length - 2; K > 0; --K) if (G = B[K].dequeue(), G) {
195
+ H = H.concat(removeNode(d, B, V, G, !0));
196
+ break;
197
+ }
198
+ }
199
+ }
200
+ return H;
201
+ }
202
+ function removeNode(d, B, V, H, U) {
203
+ var W = U ? [] : void 0;
204
+ return forEach_default(d.inEdges(H.v), function(H) {
205
+ var G = d.edge(H), K = d.node(H.v);
206
+ U && W.push({
207
+ v: H.v,
208
+ w: H.w
209
+ }), K.out -= G, assignBucket(B, V, K);
210
+ }), forEach_default(d.outEdges(H.v), function(H) {
211
+ var U = d.edge(H), W = H.w, G = d.node(W);
212
+ G.in -= U, assignBucket(B, V, G);
213
+ }), d.removeNode(H.v), W;
214
+ }
215
+ function buildState(d, B) {
216
+ var V = new Graph(), H = 0, U = 0;
217
+ forEach_default(d.nodes(), function(d) {
218
+ V.setNode(d, {
219
+ v: d,
220
+ in: 0,
221
+ out: 0
222
+ });
223
+ }), forEach_default(d.edges(), function(d) {
224
+ var W = V.edge(d.v, d.w) || 0, G = B(d), K = W + G;
225
+ V.setEdge(d.v, d.w, K), U = Math.max(U, V.node(d.v).out += G), H = Math.max(H, V.node(d.w).in += G);
226
+ });
227
+ var W = range_default(U + H + 3).map(function() {
228
+ return new List();
229
+ }), G = H + 1;
230
+ return forEach_default(V.nodes(), function(d) {
231
+ assignBucket(W, G, V.node(d));
232
+ }), {
233
+ graph: V,
234
+ buckets: W,
235
+ zeroIdx: G
236
+ };
237
+ }
238
+ function assignBucket(d, B, V) {
239
+ V.out ? V.in ? d[V.out - V.in + B].enqueue(V) : d[d.length - 1].enqueue(V) : d[0].enqueue(V);
240
+ }
241
+ function run$2(d) {
242
+ forEach_default(d.graph().acyclicer === "greedy" ? greedyFAS(d, B(d)) : dfsFAS(d), function(B) {
243
+ var V = d.edge(B);
244
+ d.removeEdge(B), V.forwardName = B.name, V.reversed = !0, d.setEdge(B.w, B.v, V, uniqueId_default("rev"));
245
+ });
246
+ function B(d) {
247
+ return function(B) {
248
+ return d.edge(B).weight;
249
+ };
250
+ }
251
+ }
252
+ function dfsFAS(d) {
253
+ var B = [], V = {}, H = {};
254
+ function U(W) {
255
+ Object.prototype.hasOwnProperty.call(H, W) || (H[W] = !0, V[W] = !0, forEach_default(d.outEdges(W), function(d) {
256
+ Object.prototype.hasOwnProperty.call(V, d.w) ? B.push(d) : U(d.w);
257
+ }), delete V[W]);
258
+ }
259
+ return forEach_default(d.nodes(), U), B;
260
+ }
261
+ function undo$2(d) {
262
+ forEach_default(d.edges(), function(B) {
263
+ var V = d.edge(B);
264
+ if (V.reversed) {
265
+ d.removeEdge(B);
266
+ var H = V.forwardName;
267
+ delete V.reversed, delete V.forwardName, d.setEdge(B.w, B.v, V, H);
268
+ }
269
+ });
270
+ }
271
+ function addDummyNode(d, B, V, H) {
272
+ var U;
273
+ do
274
+ U = uniqueId_default(H);
275
+ while (d.hasNode(U));
276
+ return V.dummy = B, d.setNode(U, V), U;
277
+ }
278
+ function simplify(d) {
279
+ var B = new Graph().setGraph(d.graph());
280
+ return forEach_default(d.nodes(), function(V) {
281
+ B.setNode(V, d.node(V));
282
+ }), forEach_default(d.edges(), function(V) {
283
+ var H = B.edge(V.v, V.w) || {
284
+ weight: 0,
285
+ minlen: 1
286
+ }, U = d.edge(V);
287
+ B.setEdge(V.v, V.w, {
288
+ weight: H.weight + U.weight,
289
+ minlen: Math.max(H.minlen, U.minlen)
290
+ });
291
+ }), B;
292
+ }
293
+ function asNonCompoundGraph(d) {
294
+ var B = new Graph({ multigraph: d.isMultigraph() }).setGraph(d.graph());
295
+ return forEach_default(d.nodes(), function(V) {
296
+ d.children(V).length || B.setNode(V, d.node(V));
297
+ }), forEach_default(d.edges(), function(V) {
298
+ B.setEdge(V, d.edge(V));
299
+ }), B;
300
+ }
301
+ function intersectRect(d, B) {
302
+ var V = d.x, H = d.y, U = B.x - V, W = B.y - H, G = d.width / 2, K = d.height / 2;
303
+ if (!U && !W) throw Error("Not possible to find intersection inside of the rectangle");
304
+ var q, J;
305
+ return Math.abs(W) * G > Math.abs(U) * K ? (W < 0 && (K = -K), q = K * U / W, J = K) : (U < 0 && (G = -G), q = G, J = G * W / U), {
306
+ x: V + q,
307
+ y: H + J
308
+ };
309
+ }
310
+ function buildLayerMatrix(d) {
311
+ var B = map_default(range_default(maxRank(d) + 1), function() {
312
+ return [];
313
+ });
314
+ return forEach_default(d.nodes(), function(V) {
315
+ var H = d.node(V), U = H.rank;
316
+ isUndefined_default(U) || (B[U][H.order] = V);
317
+ }), B;
318
+ }
319
+ function normalizeRanks(d) {
320
+ var B = min_default(map_default(d.nodes(), function(B) {
321
+ return d.node(B).rank;
322
+ }));
323
+ forEach_default(d.nodes(), function(V) {
324
+ var H = d.node(V);
325
+ has_default(H, "rank") && (H.rank -= B);
326
+ });
327
+ }
328
+ function removeEmptyRanks(d) {
329
+ var B = min_default(map_default(d.nodes(), function(B) {
330
+ return d.node(B).rank;
331
+ })), V = [];
332
+ forEach_default(d.nodes(), function(H) {
333
+ var U = d.node(H).rank - B;
334
+ V[U] || (V[U] = []), V[U].push(H);
335
+ });
336
+ var H = 0, U = d.graph().nodeRankFactor;
337
+ forEach_default(V, function(B, V) {
338
+ isUndefined_default(B) && V % U !== 0 ? --H : H && forEach_default(B, function(B) {
339
+ d.node(B).rank += H;
340
+ });
341
+ });
342
+ }
343
+ function addBorderNode$1(d, B, V, H) {
344
+ var U = {
345
+ width: 0,
346
+ height: 0
347
+ };
348
+ return arguments.length >= 4 && (U.rank = V, U.order = H), addDummyNode(d, "border", U, B);
349
+ }
350
+ function maxRank(d) {
351
+ return max_default(map_default(d.nodes(), function(B) {
352
+ var V = d.node(B).rank;
353
+ if (!isUndefined_default(V)) return V;
354
+ }));
355
+ }
356
+ function partition(d, B) {
357
+ var V = {
358
+ lhs: [],
359
+ rhs: []
360
+ };
361
+ return forEach_default(d, function(d) {
362
+ B(d) ? V.lhs.push(d) : V.rhs.push(d);
363
+ }), V;
364
+ }
365
+ function time(d, B) {
366
+ var V = now_default();
367
+ try {
368
+ return B();
369
+ } finally {
370
+ console.log(d + " time: " + (now_default() - V) + "ms");
371
+ }
372
+ }
373
+ function notime(d, B) {
374
+ return B();
375
+ }
376
+ function addBorderSegments(d) {
377
+ function B(V) {
378
+ var H = d.children(V), U = d.node(V);
379
+ if (H.length && forEach_default(H, B), Object.prototype.hasOwnProperty.call(U, "minRank")) {
380
+ U.borderLeft = [], U.borderRight = [];
381
+ for (var W = U.minRank, G = U.maxRank + 1; W < G; ++W) addBorderNode(d, "borderLeft", "_bl", V, U, W), addBorderNode(d, "borderRight", "_br", V, U, W);
382
+ }
383
+ }
384
+ forEach_default(d.children(), B);
385
+ }
386
+ function addBorderNode(d, B, V, H, U, W) {
387
+ var G = {
388
+ width: 0,
389
+ height: 0,
390
+ rank: W,
391
+ borderType: B
392
+ }, K = U[B][W - 1], q = addDummyNode(d, "border", G, V);
393
+ U[B][W] = q, d.setParent(q, H), K && d.setEdge(K, q, { weight: 1 });
394
+ }
395
+ function adjust(d) {
396
+ var B = d.graph().rankdir.toLowerCase();
397
+ (B === "lr" || B === "rl") && swapWidthHeight(d);
398
+ }
399
+ function undo$1(d) {
400
+ var B = d.graph().rankdir.toLowerCase();
401
+ (B === "bt" || B === "rl") && reverseY(d), (B === "lr" || B === "rl") && (swapXY(d), swapWidthHeight(d));
402
+ }
403
+ function swapWidthHeight(d) {
404
+ forEach_default(d.nodes(), function(B) {
405
+ swapWidthHeightOne(d.node(B));
406
+ }), forEach_default(d.edges(), function(B) {
407
+ swapWidthHeightOne(d.edge(B));
408
+ });
409
+ }
410
+ function swapWidthHeightOne(d) {
411
+ var B = d.width;
412
+ d.width = d.height, d.height = B;
413
+ }
414
+ function reverseY(d) {
415
+ forEach_default(d.nodes(), function(B) {
416
+ reverseYOne(d.node(B));
417
+ }), forEach_default(d.edges(), function(B) {
418
+ var V = d.edge(B);
419
+ forEach_default(V.points, reverseYOne), Object.prototype.hasOwnProperty.call(V, "y") && reverseYOne(V);
420
+ });
421
+ }
422
+ function reverseYOne(d) {
423
+ d.y = -d.y;
424
+ }
425
+ function swapXY(d) {
426
+ forEach_default(d.nodes(), function(B) {
427
+ swapXYOne(d.node(B));
428
+ }), forEach_default(d.edges(), function(B) {
429
+ var V = d.edge(B);
430
+ forEach_default(V.points, swapXYOne), Object.prototype.hasOwnProperty.call(V, "x") && swapXYOne(V);
431
+ });
432
+ }
433
+ function swapXYOne(d) {
434
+ var B = d.x;
435
+ d.x = d.y, d.y = B;
436
+ }
437
+ function run$1(d) {
438
+ d.graph().dummyChains = [], forEach_default(d.edges(), function(B) {
439
+ normalizeEdge(d, B);
440
+ });
441
+ }
442
+ function normalizeEdge(d, B) {
443
+ var V = B.v, H = d.node(V).rank, U = B.w, W = d.node(U).rank, G = B.name, K = d.edge(B), q = K.labelRank;
444
+ if (W !== H + 1) {
445
+ d.removeEdge(B);
446
+ var J = void 0, Y, X;
447
+ for (X = 0, ++H; H < W; ++X, ++H) K.points = [], J = {
448
+ width: 0,
449
+ height: 0,
450
+ edgeLabel: K,
451
+ edgeObj: B,
452
+ rank: H
453
+ }, Y = addDummyNode(d, "edge", J, "_d"), H === q && (J.width = K.width, J.height = K.height, J.dummy = "edge-label", J.labelpos = K.labelpos), d.setEdge(V, Y, { weight: K.weight }, G), X === 0 && d.graph().dummyChains.push(Y), V = Y;
454
+ d.setEdge(V, U, { weight: K.weight }, G);
455
+ }
456
+ }
457
+ function undo(d) {
458
+ forEach_default(d.graph().dummyChains, function(B) {
459
+ var V = d.node(B), H = V.edgeLabel, U;
460
+ for (d.setEdge(V.edgeObj, H); V.dummy;) U = d.successors(B)[0], d.removeNode(B), H.points.push({
461
+ x: V.x,
462
+ y: V.y
463
+ }), V.dummy === "edge-label" && (H.x = V.x, H.y = V.y, H.width = V.width, H.height = V.height), B = U, V = d.node(B);
464
+ });
465
+ }
466
+ function longestPath(d) {
467
+ var B = {};
468
+ function V(H) {
469
+ var U = d.node(H);
470
+ if (Object.prototype.hasOwnProperty.call(B, H)) return U.rank;
471
+ B[H] = !0;
472
+ var W = min_default(map_default(d.outEdges(H), function(B) {
473
+ return V(B.w) - d.edge(B).minlen;
474
+ }));
475
+ return (W === Infinity || W == null) && (W = 0), U.rank = W;
476
+ }
477
+ forEach_default(d.sources(), V);
478
+ }
479
+ function slack(d, B) {
480
+ return d.node(B.w).rank - d.node(B.v).rank - d.edge(B).minlen;
481
+ }
482
+ function feasibleTree(d) {
483
+ var B = new Graph({ directed: !1 }), V = d.nodes()[0], H = d.nodeCount();
484
+ B.setNode(V, {});
485
+ for (var U, W; tightTree(B, d) < H;) U = findMinSlackEdge(B, d), W = B.hasNode(U.v) ? slack(d, U) : -slack(d, U), shiftRanks(B, d, W);
486
+ return B;
487
+ }
488
+ function tightTree(d, B) {
489
+ function V(H) {
490
+ forEach_default(B.nodeEdges(H), function(U) {
491
+ var W = U.v, G = H === W ? U.w : W;
492
+ !d.hasNode(G) && !slack(B, U) && (d.setNode(G, {}), d.setEdge(H, G, {}), V(G));
493
+ });
494
+ }
495
+ return forEach_default(d.nodes(), V), d.nodeCount();
496
+ }
497
+ function findMinSlackEdge(d, B) {
498
+ return minBy_default(B.edges(), function(V) {
499
+ if (d.hasNode(V.v) !== d.hasNode(V.w)) return slack(B, V);
500
+ });
501
+ }
502
+ function shiftRanks(d, B, V) {
503
+ forEach_default(d.nodes(), function(d) {
504
+ B.node(d).rank += V;
505
+ });
506
+ }
507
+ constant_default(1), constant_default(1), topsort.CycleException = CycleException;
508
+ function topsort(d) {
509
+ var B = {}, V = {}, H = [];
510
+ function U(W) {
511
+ if (Object.prototype.hasOwnProperty.call(V, W)) throw new CycleException();
512
+ Object.prototype.hasOwnProperty.call(B, W) || (V[W] = !0, B[W] = !0, forEach_default(d.predecessors(W), U), delete V[W], H.push(W));
513
+ }
514
+ if (forEach_default(d.sinks(), U), size_default(B) !== d.nodeCount()) throw new CycleException();
515
+ return H;
516
+ }
517
+ function CycleException() {}
518
+ CycleException.prototype = /* @__PURE__ */ Error();
519
+ function dfs$1(d, B, V) {
520
+ isArray_default(B) || (B = [B]);
521
+ var H = (d.isDirected() ? d.successors : d.neighbors).bind(d), U = [], G = {};
522
+ return forEach_default(B, function(B) {
523
+ if (!d.hasNode(B)) throw Error("Graph does not have node: " + B);
524
+ doDfs(d, B, V === "post", G, H, U);
525
+ }), U;
526
+ }
527
+ function doDfs(d, B, V, H, U, W) {
528
+ Object.prototype.hasOwnProperty.call(H, B) || (H[B] = !0, V || W.push(B), forEach_default(U(B), function(B) {
529
+ doDfs(d, B, V, H, U, W);
530
+ }), V && W.push(B));
531
+ }
532
+ function postorder$1(d, B) {
533
+ return dfs$1(d, B, "post");
534
+ }
535
+ function preorder(d, B) {
536
+ return dfs$1(d, B, "pre");
537
+ }
538
+ networkSimplex.initLowLimValues = initLowLimValues, networkSimplex.initCutValues = initCutValues, networkSimplex.calcCutValue = calcCutValue, networkSimplex.leaveEdge = leaveEdge, networkSimplex.enterEdge = enterEdge, networkSimplex.exchangeEdges = exchangeEdges;
539
+ function networkSimplex(d) {
540
+ d = simplify(d), longestPath(d);
541
+ var B = feasibleTree(d);
542
+ initLowLimValues(B), initCutValues(B, d);
543
+ for (var V, H; V = leaveEdge(B);) H = enterEdge(B, d, V), exchangeEdges(B, d, V, H);
544
+ }
545
+ function initCutValues(d, B) {
546
+ var V = postorder$1(d, d.nodes());
547
+ V = V.slice(0, V.length - 1), forEach_default(V, function(V) {
548
+ assignCutValue(d, B, V);
549
+ });
550
+ }
551
+ function assignCutValue(d, B, V) {
552
+ var H = d.node(V).parent;
553
+ d.edge(V, H).cutvalue = calcCutValue(d, B, V);
554
+ }
555
+ function calcCutValue(d, B, V) {
556
+ var H = d.node(V).parent, U = !0, W = B.edge(V, H), G = 0;
557
+ return W ||= (U = !1, B.edge(H, V)), G = W.weight, forEach_default(B.nodeEdges(V), function(W) {
558
+ var K = W.v === V, q = K ? W.w : W.v;
559
+ if (q !== H) {
560
+ var J = K === U, Y = B.edge(W).weight;
561
+ if (G += J ? Y : -Y, isTreeEdge(d, V, q)) {
562
+ var X = d.edge(V, q).cutvalue;
563
+ G += J ? -X : X;
564
+ }
565
+ }
566
+ }), G;
567
+ }
568
+ function initLowLimValues(d, B) {
569
+ arguments.length < 2 && (B = d.nodes()[0]), dfsAssignLowLim(d, {}, 1, B);
570
+ }
571
+ function dfsAssignLowLim(d, B, V, H, U) {
572
+ var W = V, G = d.node(H);
573
+ return B[H] = !0, forEach_default(d.neighbors(H), function(U) {
574
+ Object.prototype.hasOwnProperty.call(B, U) || (V = dfsAssignLowLim(d, B, V, U, H));
575
+ }), G.low = W, G.lim = V++, U ? G.parent = U : delete G.parent, V;
576
+ }
577
+ function leaveEdge(d) {
578
+ return find_default(d.edges(), function(B) {
579
+ return d.edge(B).cutvalue < 0;
580
+ });
581
+ }
582
+ function enterEdge(d, B, V) {
583
+ var H = V.v, U = V.w;
584
+ B.hasEdge(H, U) || (H = V.w, U = V.v);
585
+ var W = d.node(H), G = d.node(U), K = W, q = !1;
586
+ return W.lim > G.lim && (K = G, q = !0), minBy_default(filter_default(B.edges(), function(B) {
587
+ return q === isDescendant(d, d.node(B.v), K) && q !== isDescendant(d, d.node(B.w), K);
588
+ }), function(d) {
589
+ return slack(B, d);
590
+ });
591
+ }
592
+ function exchangeEdges(d, B, V, H) {
593
+ var U = V.v, W = V.w;
594
+ d.removeEdge(U, W), d.setEdge(H.v, H.w, {}), initLowLimValues(d), initCutValues(d, B), updateRanks(d, B);
595
+ }
596
+ function updateRanks(d, B) {
597
+ var V = preorder(d, find_default(d.nodes(), function(d) {
598
+ return !B.node(d).parent;
599
+ }));
600
+ V = V.slice(1), forEach_default(V, function(V) {
601
+ var H = d.node(V).parent, U = B.edge(V, H), W = !1;
602
+ U || (U = B.edge(H, V), W = !0), B.node(V).rank = B.node(H).rank + (W ? U.minlen : -U.minlen);
603
+ });
604
+ }
605
+ function isTreeEdge(d, B, V) {
606
+ return d.hasEdge(B, V);
607
+ }
608
+ function isDescendant(d, B, V) {
609
+ return V.low <= B.lim && B.lim <= V.lim;
610
+ }
611
+ function rank(d) {
612
+ switch (d.graph().ranker) {
613
+ case "network-simplex":
614
+ networkSimplexRanker(d);
615
+ break;
616
+ case "tight-tree":
617
+ tightTreeRanker(d);
618
+ break;
619
+ case "longest-path":
620
+ longestPathRanker(d);
621
+ break;
622
+ default: networkSimplexRanker(d);
623
+ }
624
+ }
625
+ var longestPathRanker = longestPath;
626
+ function tightTreeRanker(d) {
627
+ longestPath(d), feasibleTree(d);
628
+ }
629
+ function networkSimplexRanker(d) {
630
+ networkSimplex(d);
631
+ }
632
+ function run(d) {
633
+ var B = addDummyNode(d, "root", {}, "_root"), V = treeDepths(d), H = max_default(values_default(V)) - 1, U = 2 * H + 1;
634
+ d.graph().nestingRoot = B, forEach_default(d.edges(), function(B) {
635
+ d.edge(B).minlen *= U;
636
+ });
637
+ var W = sumWeights(d) + 1;
638
+ forEach_default(d.children(), function(G) {
639
+ dfs(d, B, U, W, H, V, G);
640
+ }), d.graph().nodeRankFactor = U;
641
+ }
642
+ function dfs(d, B, V, H, U, W, G) {
643
+ var K = d.children(G);
644
+ if (!K.length) {
645
+ G !== B && d.setEdge(B, G, {
646
+ weight: 0,
647
+ minlen: V
648
+ });
649
+ return;
650
+ }
651
+ var q = addBorderNode$1(d, "_bt"), J = addBorderNode$1(d, "_bb"), Y = d.node(G);
652
+ d.setParent(q, G), Y.borderTop = q, d.setParent(J, G), Y.borderBottom = J, forEach_default(K, function(K) {
653
+ dfs(d, B, V, H, U, W, K);
654
+ var Y = d.node(K), X = Y.borderTop ? Y.borderTop : K, Z = Y.borderBottom ? Y.borderBottom : K, Q = Y.borderTop ? H : 2 * H, $ = X === Z ? U - W[G] + 1 : 1;
655
+ d.setEdge(q, X, {
656
+ weight: Q,
657
+ minlen: $,
658
+ nestingEdge: !0
659
+ }), d.setEdge(Z, J, {
660
+ weight: Q,
661
+ minlen: $,
662
+ nestingEdge: !0
663
+ });
664
+ }), d.parent(G) || d.setEdge(B, q, {
665
+ weight: 0,
666
+ minlen: U + W[G]
667
+ });
668
+ }
669
+ function treeDepths(d) {
670
+ var B = {};
671
+ function V(H, U) {
672
+ var W = d.children(H);
673
+ W && W.length && forEach_default(W, function(d) {
674
+ V(d, U + 1);
675
+ }), B[H] = U;
676
+ }
677
+ return forEach_default(d.children(), function(d) {
678
+ V(d, 1);
679
+ }), B;
680
+ }
681
+ function sumWeights(d) {
682
+ return reduce_default(d.edges(), function(B, V) {
683
+ return B + d.edge(V).weight;
684
+ }, 0);
685
+ }
686
+ function cleanup(d) {
687
+ var B = d.graph();
688
+ d.removeNode(B.nestingRoot), delete B.nestingRoot, forEach_default(d.edges(), function(B) {
689
+ d.edge(B).nestingEdge && d.removeEdge(B);
690
+ });
691
+ }
692
+ function addSubgraphConstraints(d, B, V) {
693
+ var H = {}, U;
694
+ forEach_default(V, function(V) {
695
+ for (var W = d.parent(V), G, K; W;) {
696
+ if (G = d.parent(W), G ? (K = H[G], H[G] = W) : (K = U, U = W), K && K !== W) {
697
+ B.setEdge(K, W);
698
+ return;
699
+ }
700
+ W = G;
701
+ }
702
+ });
703
+ }
704
+ function buildLayerGraph(d, B, V) {
705
+ var H = createRootNode(d), U = new Graph({ compound: !0 }).setGraph({ root: H }).setDefaultNodeLabel(function(B) {
706
+ return d.node(B);
707
+ });
708
+ return forEach_default(d.nodes(), function(W) {
709
+ var G = d.node(W), K = d.parent(W);
710
+ (G.rank === B || G.minRank <= B && B <= G.maxRank) && (U.setNode(W), U.setParent(W, K || H), forEach_default(d[V](W), function(B) {
711
+ var V = B.v === W ? B.w : B.v, H = U.edge(V, W), G = isUndefined_default(H) ? 0 : H.weight;
712
+ U.setEdge(V, W, { weight: d.edge(B).weight + G });
713
+ }), Object.prototype.hasOwnProperty.call(G, "minRank") && U.setNode(W, {
714
+ borderLeft: G.borderLeft[B],
715
+ borderRight: G.borderRight[B]
716
+ }));
717
+ }), U;
718
+ }
719
+ function createRootNode(d) {
720
+ for (var B; d.hasNode(B = uniqueId_default("_root")););
721
+ return B;
722
+ }
723
+ function crossCount(d, B) {
724
+ for (var V = 0, H = 1; H < B.length; ++H) V += twoLayerCrossCount(d, B[H - 1], B[H]);
725
+ return V;
726
+ }
727
+ function twoLayerCrossCount(d, B, V) {
728
+ for (var H = zipObject_default(V, map_default(V, function(d, B) {
729
+ return B;
730
+ })), U = flatten_default(map_default(B, function(B) {
731
+ return sortBy_default(map_default(d.outEdges(B), function(B) {
732
+ return {
733
+ pos: H[B.w],
734
+ weight: d.edge(B).weight
735
+ };
736
+ }), "pos");
737
+ })), W = 1; W < V.length;) W <<= 1;
738
+ var G = 2 * W - 1;
739
+ --W;
740
+ var K = map_default(Array(G), function() {
741
+ return 0;
742
+ }), q = 0;
743
+ return forEach_default(U.forEach(function(d) {
744
+ var B = d.pos + W;
745
+ K[B] += d.weight;
746
+ for (var V = 0; B > 0;) B % 2 && (V += K[B + 1]), B = B - 1 >> 1, K[B] += d.weight;
747
+ q += d.weight * V;
748
+ })), q;
749
+ }
750
+ function initOrder(d) {
751
+ var B = {}, V = filter_default(d.nodes(), function(B) {
752
+ return !d.children(B).length;
753
+ }), H = map_default(range_default(max_default(map_default(V, function(B) {
754
+ return d.node(B).rank;
755
+ })) + 1), function() {
756
+ return [];
757
+ });
758
+ function U(V) {
759
+ has_default(B, V) || (B[V] = !0, H[d.node(V).rank].push(V), forEach_default(d.successors(V), U));
760
+ }
761
+ return forEach_default(sortBy_default(V, function(B) {
762
+ return d.node(B).rank;
763
+ }), U), H;
764
+ }
765
+ function barycenter(d, B) {
766
+ return map_default(B, function(B) {
767
+ var V = d.inEdges(B);
768
+ if (V.length) {
769
+ var H = reduce_default(V, function(B, V) {
770
+ var H = d.edge(V), U = d.node(V.v);
771
+ return {
772
+ sum: B.sum + H.weight * U.order,
773
+ weight: B.weight + H.weight
774
+ };
775
+ }, {
776
+ sum: 0,
777
+ weight: 0
778
+ });
779
+ return {
780
+ v: B,
781
+ barycenter: H.sum / H.weight,
782
+ weight: H.weight
783
+ };
784
+ } else return { v: B };
785
+ });
786
+ }
787
+ function resolveConflicts(d, B) {
788
+ var V = {};
789
+ return forEach_default(d, function(d, B) {
790
+ var H = V[d.v] = {
791
+ indegree: 0,
792
+ in: [],
793
+ out: [],
794
+ vs: [d.v],
795
+ i: B
796
+ };
797
+ isUndefined_default(d.barycenter) || (H.barycenter = d.barycenter, H.weight = d.weight);
798
+ }), forEach_default(B.edges(), function(d) {
799
+ var B = V[d.v], H = V[d.w];
800
+ !isUndefined_default(B) && !isUndefined_default(H) && (H.indegree++, B.out.push(V[d.w]));
801
+ }), doResolveConflicts(filter_default(V, function(d) {
802
+ return !d.indegree;
803
+ }));
804
+ }
805
+ function doResolveConflicts(d) {
806
+ var B = [];
807
+ function V(d) {
808
+ return function(B) {
809
+ B.merged || (isUndefined_default(B.barycenter) || isUndefined_default(d.barycenter) || B.barycenter >= d.barycenter) && mergeEntries(d, B);
810
+ };
811
+ }
812
+ function H(B) {
813
+ return function(V) {
814
+ V.in.push(B), --V.indegree === 0 && d.push(V);
815
+ };
816
+ }
817
+ for (; d.length;) {
818
+ var U = d.pop();
819
+ B.push(U), forEach_default(U.in.reverse(), V(U)), forEach_default(U.out, H(U));
820
+ }
821
+ return map_default(filter_default(B, function(d) {
822
+ return !d.merged;
823
+ }), function(d) {
824
+ return pick_default(d, [
825
+ "vs",
826
+ "i",
827
+ "barycenter",
828
+ "weight"
829
+ ]);
830
+ });
831
+ }
832
+ function mergeEntries(d, B) {
833
+ var V = 0, H = 0;
834
+ d.weight && (V += d.barycenter * d.weight, H += d.weight), B.weight && (V += B.barycenter * B.weight, H += B.weight), d.vs = B.vs.concat(d.vs), d.barycenter = V / H, d.weight = H, d.i = Math.min(B.i, d.i), B.merged = !0;
835
+ }
836
+ function sort(d, B) {
837
+ var V = partition(d, function(d) {
838
+ return Object.prototype.hasOwnProperty.call(d, "barycenter");
839
+ }), H = V.lhs, U = sortBy_default(V.rhs, function(d) {
840
+ return -d.i;
841
+ }), W = [], G = 0, K = 0, q = 0;
842
+ H.sort(compareWithBias(!!B)), q = consumeUnsortable(W, U, q), forEach_default(H, function(d) {
843
+ q += d.vs.length, W.push(d.vs), G += d.barycenter * d.weight, K += d.weight, q = consumeUnsortable(W, U, q);
844
+ });
845
+ var J = { vs: flatten_default(W) };
846
+ return K && (J.barycenter = G / K, J.weight = K), J;
847
+ }
848
+ function consumeUnsortable(d, B, V) {
849
+ for (var H; B.length && (H = last_default(B)).i <= V;) B.pop(), d.push(H.vs), V++;
850
+ return V;
851
+ }
852
+ function compareWithBias(d) {
853
+ return function(B, V) {
854
+ return B.barycenter < V.barycenter ? -1 : B.barycenter > V.barycenter ? 1 : d ? V.i - B.i : B.i - V.i;
855
+ };
856
+ }
857
+ function sortSubgraph(d, B, V, H) {
858
+ var U = d.children(B), W = d.node(B), G = W ? W.borderLeft : void 0, K = W ? W.borderRight : void 0, q = {};
859
+ G && (U = filter_default(U, function(d) {
860
+ return d !== G && d !== K;
861
+ }));
862
+ var J = barycenter(d, U);
863
+ forEach_default(J, function(B) {
864
+ if (d.children(B.v).length) {
865
+ var U = sortSubgraph(d, B.v, V, H);
866
+ q[B.v] = U, Object.prototype.hasOwnProperty.call(U, "barycenter") && mergeBarycenters(B, U);
867
+ }
868
+ });
869
+ var Y = resolveConflicts(J, V);
870
+ expandSubgraphs(Y, q);
871
+ var X = sort(Y, H);
872
+ if (G && (X.vs = flatten_default([
873
+ G,
874
+ X.vs,
875
+ K
876
+ ]), d.predecessors(G).length)) {
877
+ var Z = d.node(d.predecessors(G)[0]), Q = d.node(d.predecessors(K)[0]);
878
+ Object.prototype.hasOwnProperty.call(X, "barycenter") || (X.barycenter = 0, X.weight = 0), X.barycenter = (X.barycenter * X.weight + Z.order + Q.order) / (X.weight + 2), X.weight += 2;
879
+ }
880
+ return X;
881
+ }
882
+ function expandSubgraphs(d, B) {
883
+ forEach_default(d, function(d) {
884
+ d.vs = flatten_default(d.vs.map(function(d) {
885
+ return B[d] ? B[d].vs : d;
886
+ }));
887
+ });
888
+ }
889
+ function mergeBarycenters(d, B) {
890
+ isUndefined_default(d.barycenter) ? (d.barycenter = B.barycenter, d.weight = B.weight) : (d.barycenter = (d.barycenter * d.weight + B.barycenter * B.weight) / (d.weight + B.weight), d.weight += B.weight);
891
+ }
892
+ function order(d) {
893
+ var B = maxRank(d), V = buildLayerGraphs(d, range_default(1, B + 1), "inEdges"), H = buildLayerGraphs(d, range_default(B - 1, -1, -1), "outEdges"), U = initOrder(d);
894
+ assignOrder(d, U);
895
+ for (var W = Infinity, G, K = 0, q = 0; q < 4; ++K, ++q) {
896
+ sweepLayerGraphs(K % 2 ? V : H, K % 4 >= 2), U = buildLayerMatrix(d);
897
+ var J = crossCount(d, U);
898
+ J < W && (q = 0, G = cloneDeep_default(U), W = J);
899
+ }
900
+ assignOrder(d, G);
901
+ }
902
+ function buildLayerGraphs(d, B, V) {
903
+ return map_default(B, function(B) {
904
+ return buildLayerGraph(d, B, V);
905
+ });
906
+ }
907
+ function sweepLayerGraphs(d, B) {
908
+ var V = new Graph();
909
+ forEach_default(d, function(d) {
910
+ var H = d.graph().root, U = sortSubgraph(d, H, V, B);
911
+ forEach_default(U.vs, function(B, V) {
912
+ d.node(B).order = V;
913
+ }), addSubgraphConstraints(d, V, U.vs);
914
+ });
915
+ }
916
+ function assignOrder(d, B) {
917
+ forEach_default(B, function(B) {
918
+ forEach_default(B, function(B, V) {
919
+ d.node(B).order = V;
920
+ });
921
+ });
922
+ }
923
+ function parentDummyChains(d) {
924
+ var B = postorder(d);
925
+ forEach_default(d.graph().dummyChains, function(V) {
926
+ for (var H = d.node(V), U = H.edgeObj, W = findPath(d, B, U.v, U.w), G = W.path, K = W.lca, q = 0, J = G[q], Y = !0; V !== U.w;) {
927
+ if (H = d.node(V), Y) {
928
+ for (; (J = G[q]) !== K && d.node(J).maxRank < H.rank;) q++;
929
+ J === K && (Y = !1);
930
+ }
931
+ if (!Y) {
932
+ for (; q < G.length - 1 && d.node(J = G[q + 1]).minRank <= H.rank;) q++;
933
+ J = G[q];
934
+ }
935
+ d.setParent(V, J), V = d.successors(V)[0];
936
+ }
937
+ });
938
+ }
939
+ function findPath(d, B, V, H) {
940
+ var U = [], W = [], G = Math.min(B[V].low, B[H].low), K = Math.max(B[V].lim, B[H].lim), q = V, J;
941
+ do
942
+ q = d.parent(q), U.push(q);
943
+ while (q && (B[q].low > G || K > B[q].lim));
944
+ for (J = q, q = H; (q = d.parent(q)) !== J;) W.push(q);
945
+ return {
946
+ path: U.concat(W.reverse()),
947
+ lca: J
948
+ };
949
+ }
950
+ function postorder(d) {
951
+ var B = {}, V = 0;
952
+ function H(U) {
953
+ var W = V;
954
+ forEach_default(d.children(U), H), B[U] = {
955
+ low: W,
956
+ lim: V++
957
+ };
958
+ }
959
+ return forEach_default(d.children(), H), B;
960
+ }
961
+ function findType1Conflicts(d, B) {
962
+ var V = {};
963
+ function H(B, H) {
964
+ var U = 0, W = 0, G = B.length, K = last_default(H);
965
+ return forEach_default(H, function(B, q) {
966
+ var J = findOtherInnerSegmentNode(d, B), Y = J ? d.node(J).order : G;
967
+ (J || B === K) && (forEach_default(H.slice(W, q + 1), function(B) {
968
+ forEach_default(d.predecessors(B), function(H) {
969
+ var W = d.node(H), G = W.order;
970
+ (G < U || Y < G) && !(W.dummy && d.node(B).dummy) && addConflict(V, H, B);
971
+ });
972
+ }), W = q + 1, U = Y);
973
+ }), H;
974
+ }
975
+ return reduce_default(B, H), V;
976
+ }
977
+ function findType2Conflicts(d, B) {
978
+ var V = {};
979
+ function H(B, H, U, W, G) {
980
+ var K;
981
+ forEach_default(range_default(H, U), function(H) {
982
+ K = B[H], d.node(K).dummy && forEach_default(d.predecessors(K), function(B) {
983
+ var H = d.node(B);
984
+ H.dummy && (H.order < W || H.order > G) && addConflict(V, B, K);
985
+ });
986
+ });
987
+ }
988
+ function U(B, V) {
989
+ var U = -1, W, G = 0;
990
+ return forEach_default(V, function(K, q) {
991
+ if (d.node(K).dummy === "border") {
992
+ var J = d.predecessors(K);
993
+ J.length && (W = d.node(J[0]).order, H(V, G, q, U, W), G = q, U = W);
994
+ }
995
+ H(V, G, V.length, W, B.length);
996
+ }), V;
997
+ }
998
+ return reduce_default(B, U), V;
999
+ }
1000
+ function findOtherInnerSegmentNode(d, B) {
1001
+ if (d.node(B).dummy) return find_default(d.predecessors(B), function(B) {
1002
+ return d.node(B).dummy;
1003
+ });
1004
+ }
1005
+ function addConflict(d, B, V) {
1006
+ if (B > V) {
1007
+ var H = B;
1008
+ B = V, V = H;
1009
+ }
1010
+ var U = d[B];
1011
+ U || (d[B] = U = {}), U[V] = !0;
1012
+ }
1013
+ function hasConflict(d, B, V) {
1014
+ if (B > V) {
1015
+ var H = B;
1016
+ B = V, V = H;
1017
+ }
1018
+ return !!d[B] && Object.prototype.hasOwnProperty.call(d[B], V);
1019
+ }
1020
+ function verticalAlignment(d, B, V, H) {
1021
+ var U = {}, W = {}, G = {};
1022
+ return forEach_default(B, function(d) {
1023
+ forEach_default(d, function(d, B) {
1024
+ U[d] = d, W[d] = d, G[d] = B;
1025
+ });
1026
+ }), forEach_default(B, function(d) {
1027
+ var B = -1;
1028
+ forEach_default(d, function(d) {
1029
+ var K = H(d);
1030
+ if (K.length) {
1031
+ K = sortBy_default(K, function(d) {
1032
+ return G[d];
1033
+ });
1034
+ for (var q = (K.length - 1) / 2, J = Math.floor(q), Y = Math.ceil(q); J <= Y; ++J) {
1035
+ var X = K[J];
1036
+ W[d] === d && B < G[X] && !hasConflict(V, d, X) && (W[X] = d, W[d] = U[d] = U[X], B = G[X]);
1037
+ }
1038
+ }
1039
+ });
1040
+ }), {
1041
+ root: U,
1042
+ align: W
1043
+ };
1044
+ }
1045
+ function horizontalCompaction(d, B, V, H, U) {
1046
+ var W = {}, G = buildBlockGraph(d, B, V, U), K = U ? "borderLeft" : "borderRight";
1047
+ function q(d, B) {
1048
+ for (var V = G.nodes(), H = V.pop(), U = {}; H;) U[H] ? d(H) : (U[H] = !0, V.push(H), V = V.concat(B(H))), H = V.pop();
1049
+ }
1050
+ function J(d) {
1051
+ W[d] = G.inEdges(d).reduce(function(d, B) {
1052
+ return Math.max(d, W[B.v] + G.edge(B));
1053
+ }, 0);
1054
+ }
1055
+ function Y(B) {
1056
+ var V = G.outEdges(B).reduce(function(d, B) {
1057
+ return Math.min(d, W[B.w] - G.edge(B));
1058
+ }, Infinity), H = d.node(B);
1059
+ V !== Infinity && H.borderType !== K && (W[B] = Math.max(W[B], V));
1060
+ }
1061
+ return q(J, G.predecessors.bind(G)), q(Y, G.successors.bind(G)), forEach_default(H, function(d) {
1062
+ W[d] = W[V[d]];
1063
+ }), W;
1064
+ }
1065
+ function buildBlockGraph(d, B, V, H) {
1066
+ var U = new Graph(), W = d.graph(), G = sep(W.nodesep, W.edgesep, H);
1067
+ return forEach_default(B, function(B) {
1068
+ var H;
1069
+ forEach_default(B, function(B) {
1070
+ var W = V[B];
1071
+ if (U.setNode(W), H) {
1072
+ var K = V[H], q = U.edge(K, W);
1073
+ U.setEdge(K, W, Math.max(G(d, B, H), q || 0));
1074
+ }
1075
+ H = B;
1076
+ });
1077
+ }), U;
1078
+ }
1079
+ function findSmallestWidthAlignment(d, B) {
1080
+ return minBy_default(values_default(B), function(B) {
1081
+ var V = -Infinity, H = Infinity;
1082
+ return forIn_default(B, function(B, U) {
1083
+ var W = width(d, U) / 2;
1084
+ V = Math.max(B + W, V), H = Math.min(B - W, H);
1085
+ }), V - H;
1086
+ });
1087
+ }
1088
+ function alignCoordinates(d, B) {
1089
+ var V = values_default(B), H = min_default(V), U = max_default(V);
1090
+ forEach_default(["u", "d"], function(V) {
1091
+ forEach_default(["l", "r"], function(W) {
1092
+ var G = V + W, K = d[G], q;
1093
+ if (K !== B) {
1094
+ var J = values_default(K);
1095
+ q = W === "l" ? H - min_default(J) : U - max_default(J), q && (d[G] = mapValues_default(K, function(d) {
1096
+ return d + q;
1097
+ }));
1098
+ }
1099
+ });
1100
+ });
1101
+ }
1102
+ function balance(d, B) {
1103
+ return mapValues_default(d.ul, function(V, H) {
1104
+ if (B) return d[B.toLowerCase()][H];
1105
+ var U = sortBy_default(map_default(d, H));
1106
+ return (U[1] + U[2]) / 2;
1107
+ });
1108
+ }
1109
+ function positionX(d) {
1110
+ var B = buildLayerMatrix(d), V = merge_default(findType1Conflicts(d, B), findType2Conflicts(d, B)), H = {}, U;
1111
+ return forEach_default(["u", "d"], function(W) {
1112
+ U = W === "u" ? B : values_default(B).reverse(), forEach_default(["l", "r"], function(B) {
1113
+ B === "r" && (U = map_default(U, function(d) {
1114
+ return values_default(d).reverse();
1115
+ }));
1116
+ var G = (W === "u" ? d.predecessors : d.successors).bind(d), K = verticalAlignment(d, U, V, G), q = horizontalCompaction(d, U, K.root, K.align, B === "r");
1117
+ B === "r" && (q = mapValues_default(q, function(d) {
1118
+ return -d;
1119
+ })), H[W + B] = q;
1120
+ });
1121
+ }), alignCoordinates(H, findSmallestWidthAlignment(d, H)), balance(H, d.graph().align);
1122
+ }
1123
+ function sep(d, B, V) {
1124
+ return function(H, U, W) {
1125
+ var G = H.node(U), K = H.node(W), q = 0, J;
1126
+ if (q += G.width / 2, Object.prototype.hasOwnProperty.call(G, "labelpos")) switch (G.labelpos.toLowerCase()) {
1127
+ case "l":
1128
+ J = -G.width / 2;
1129
+ break;
1130
+ case "r":
1131
+ J = G.width / 2;
1132
+ break;
1133
+ }
1134
+ if (J && (q += V ? J : -J), J = 0, q += (G.dummy ? B : d) / 2, q += (K.dummy ? B : d) / 2, q += K.width / 2, Object.prototype.hasOwnProperty.call(K, "labelpos")) switch (K.labelpos.toLowerCase()) {
1135
+ case "l":
1136
+ J = K.width / 2;
1137
+ break;
1138
+ case "r":
1139
+ J = -K.width / 2;
1140
+ break;
1141
+ }
1142
+ return J && (q += V ? J : -J), J = 0, q;
1143
+ };
1144
+ }
1145
+ function width(d, B) {
1146
+ return d.node(B).width;
1147
+ }
1148
+ function position(d) {
1149
+ d = asNonCompoundGraph(d), positionY(d), forOwn_default(positionX(d), function(B, V) {
1150
+ d.node(V).x = B;
1151
+ });
1152
+ }
1153
+ function positionY(d) {
1154
+ var B = buildLayerMatrix(d), V = d.graph().ranksep, H = 0;
1155
+ forEach_default(B, function(B) {
1156
+ var U = max_default(map_default(B, function(B) {
1157
+ return d.node(B).height;
1158
+ }));
1159
+ forEach_default(B, function(B) {
1160
+ d.node(B).y = H + U / 2;
1161
+ }), H += U + V;
1162
+ });
1163
+ }
1164
+ function layout(d, B) {
1165
+ var V = B && B.debugTiming ? time : notime;
1166
+ V("layout", () => {
1167
+ var B = V(" buildLayoutGraph", () => buildLayoutGraph(d));
1168
+ V(" runLayout", () => runLayout(B, V)), V(" updateInputGraph", () => updateInputGraph(d, B));
1169
+ });
1170
+ }
1171
+ function runLayout(d, B) {
1172
+ B(" makeSpaceForEdgeLabels", () => makeSpaceForEdgeLabels(d)), B(" removeSelfEdges", () => removeSelfEdges(d)), B(" acyclic", () => run$2(d)), B(" nestingGraph.run", () => run(d)), B(" rank", () => rank(asNonCompoundGraph(d))), B(" injectEdgeLabelProxies", () => injectEdgeLabelProxies(d)), B(" removeEmptyRanks", () => removeEmptyRanks(d)), B(" nestingGraph.cleanup", () => cleanup(d)), B(" normalizeRanks", () => normalizeRanks(d)), B(" assignRankMinMax", () => assignRankMinMax(d)), B(" removeEdgeLabelProxies", () => removeEdgeLabelProxies(d)), B(" normalize.run", () => run$1(d)), B(" parentDummyChains", () => parentDummyChains(d)), B(" addBorderSegments", () => addBorderSegments(d)), B(" order", () => order(d)), B(" insertSelfEdges", () => insertSelfEdges(d)), B(" adjustCoordinateSystem", () => adjust(d)), B(" position", () => position(d)), B(" positionSelfEdges", () => positionSelfEdges(d)), B(" removeBorderNodes", () => removeBorderNodes(d)), B(" normalize.undo", () => undo(d)), B(" fixupEdgeLabelCoords", () => fixupEdgeLabelCoords(d)), B(" undoCoordinateSystem", () => undo$1(d)), B(" translateGraph", () => translateGraph(d)), B(" assignNodeIntersects", () => assignNodeIntersects(d)), B(" reversePoints", () => reversePointsForReversedEdges(d)), B(" acyclic.undo", () => undo$2(d));
1173
+ }
1174
+ function updateInputGraph(d, B) {
1175
+ forEach_default(d.nodes(), function(V) {
1176
+ var H = d.node(V), U = B.node(V);
1177
+ H && (H.x = U.x, H.y = U.y, B.children(V).length && (H.width = U.width, H.height = U.height));
1178
+ }), forEach_default(d.edges(), function(V) {
1179
+ var H = d.edge(V), U = B.edge(V);
1180
+ H.points = U.points, Object.prototype.hasOwnProperty.call(U, "x") && (H.x = U.x, H.y = U.y);
1181
+ }), d.graph().width = B.graph().width, d.graph().height = B.graph().height;
1182
+ }
1183
+ var graphNumAttrs = [
1184
+ "nodesep",
1185
+ "edgesep",
1186
+ "ranksep",
1187
+ "marginx",
1188
+ "marginy"
1189
+ ], graphDefaults = {
1190
+ ranksep: 50,
1191
+ edgesep: 20,
1192
+ nodesep: 50,
1193
+ rankdir: "tb"
1194
+ }, graphAttrs = [
1195
+ "acyclicer",
1196
+ "ranker",
1197
+ "rankdir",
1198
+ "align"
1199
+ ], nodeNumAttrs = ["width", "height"], nodeDefaults = {
1200
+ width: 0,
1201
+ height: 0
1202
+ }, edgeNumAttrs = [
1203
+ "minlen",
1204
+ "weight",
1205
+ "width",
1206
+ "height",
1207
+ "labeloffset"
1208
+ ], edgeDefaults = {
1209
+ minlen: 1,
1210
+ weight: 1,
1211
+ width: 0,
1212
+ height: 0,
1213
+ labeloffset: 10,
1214
+ labelpos: "r"
1215
+ }, edgeAttrs = ["labelpos"];
1216
+ function buildLayoutGraph(d) {
1217
+ var B = new Graph({
1218
+ multigraph: !0,
1219
+ compound: !0
1220
+ }), V = canonicalize(d.graph());
1221
+ return B.setGraph(merge_default({}, graphDefaults, selectNumberAttrs(V, graphNumAttrs), pick_default(V, graphAttrs))), forEach_default(d.nodes(), function(V) {
1222
+ var H = canonicalize(d.node(V));
1223
+ B.setNode(V, defaults_default(selectNumberAttrs(H, nodeNumAttrs), nodeDefaults)), B.setParent(V, d.parent(V));
1224
+ }), forEach_default(d.edges(), function(V) {
1225
+ var H = canonicalize(d.edge(V));
1226
+ B.setEdge(V, merge_default({}, edgeDefaults, selectNumberAttrs(H, edgeNumAttrs), pick_default(H, edgeAttrs)));
1227
+ }), B;
1228
+ }
1229
+ function makeSpaceForEdgeLabels(d) {
1230
+ var B = d.graph();
1231
+ B.ranksep /= 2, forEach_default(d.edges(), function(V) {
1232
+ var H = d.edge(V);
1233
+ H.minlen *= 2, H.labelpos.toLowerCase() !== "c" && (B.rankdir === "TB" || B.rankdir === "BT" ? H.width += H.labeloffset : H.height += H.labeloffset);
1234
+ });
1235
+ }
1236
+ function injectEdgeLabelProxies(d) {
1237
+ forEach_default(d.edges(), function(B) {
1238
+ var V = d.edge(B);
1239
+ if (V.width && V.height) {
1240
+ var H = d.node(B.v);
1241
+ addDummyNode(d, "edge-proxy", {
1242
+ rank: (d.node(B.w).rank - H.rank) / 2 + H.rank,
1243
+ e: B
1244
+ }, "_ep");
1245
+ }
1246
+ });
1247
+ }
1248
+ function assignRankMinMax(d) {
1249
+ var B = 0;
1250
+ forEach_default(d.nodes(), function(V) {
1251
+ var H = d.node(V);
1252
+ H.borderTop && (H.minRank = d.node(H.borderTop).rank, H.maxRank = d.node(H.borderBottom).rank, B = max_default(B, H.maxRank));
1253
+ }), d.graph().maxRank = B;
1254
+ }
1255
+ function removeEdgeLabelProxies(d) {
1256
+ forEach_default(d.nodes(), function(B) {
1257
+ var V = d.node(B);
1258
+ V.dummy === "edge-proxy" && (d.edge(V.e).labelRank = V.rank, d.removeNode(B));
1259
+ });
1260
+ }
1261
+ function translateGraph(d) {
1262
+ var B = Infinity, V = 0, H = Infinity, U = 0, W = d.graph(), G = W.marginx || 0, K = W.marginy || 0;
1263
+ function q(d) {
1264
+ var W = d.x, G = d.y, K = d.width, q = d.height;
1265
+ B = Math.min(B, W - K / 2), V = Math.max(V, W + K / 2), H = Math.min(H, G - q / 2), U = Math.max(U, G + q / 2);
1266
+ }
1267
+ forEach_default(d.nodes(), function(B) {
1268
+ q(d.node(B));
1269
+ }), forEach_default(d.edges(), function(B) {
1270
+ var V = d.edge(B);
1271
+ Object.prototype.hasOwnProperty.call(V, "x") && q(V);
1272
+ }), B -= G, H -= K, forEach_default(d.nodes(), function(V) {
1273
+ var U = d.node(V);
1274
+ U.x -= B, U.y -= H;
1275
+ }), forEach_default(d.edges(), function(V) {
1276
+ var U = d.edge(V);
1277
+ forEach_default(U.points, function(d) {
1278
+ d.x -= B, d.y -= H;
1279
+ }), Object.prototype.hasOwnProperty.call(U, "x") && (U.x -= B), Object.prototype.hasOwnProperty.call(U, "y") && (U.y -= H);
1280
+ }), W.width = V - B + G, W.height = U - H + K;
1281
+ }
1282
+ function assignNodeIntersects(d) {
1283
+ forEach_default(d.edges(), function(B) {
1284
+ var V = d.edge(B), H = d.node(B.v), U = d.node(B.w), W, G;
1285
+ V.points ? (W = V.points[0], G = V.points[V.points.length - 1]) : (V.points = [], W = U, G = H), V.points.unshift(intersectRect(H, W)), V.points.push(intersectRect(U, G));
1286
+ });
1287
+ }
1288
+ function fixupEdgeLabelCoords(d) {
1289
+ forEach_default(d.edges(), function(B) {
1290
+ var V = d.edge(B);
1291
+ if (Object.prototype.hasOwnProperty.call(V, "x")) switch ((V.labelpos === "l" || V.labelpos === "r") && (V.width -= V.labeloffset), V.labelpos) {
1292
+ case "l":
1293
+ V.x -= V.width / 2 + V.labeloffset;
1294
+ break;
1295
+ case "r":
1296
+ V.x += V.width / 2 + V.labeloffset;
1297
+ break;
1298
+ }
1299
+ });
1300
+ }
1301
+ function reversePointsForReversedEdges(d) {
1302
+ forEach_default(d.edges(), function(B) {
1303
+ var V = d.edge(B);
1304
+ V.reversed && V.points.reverse();
1305
+ });
1306
+ }
1307
+ function removeBorderNodes(d) {
1308
+ forEach_default(d.nodes(), function(B) {
1309
+ if (d.children(B).length) {
1310
+ var V = d.node(B), H = d.node(V.borderTop), U = d.node(V.borderBottom), W = d.node(last_default(V.borderLeft)), G = d.node(last_default(V.borderRight));
1311
+ V.width = Math.abs(G.x - W.x), V.height = Math.abs(U.y - H.y), V.x = W.x + V.width / 2, V.y = H.y + V.height / 2;
1312
+ }
1313
+ }), forEach_default(d.nodes(), function(B) {
1314
+ d.node(B).dummy === "border" && d.removeNode(B);
1315
+ });
1316
+ }
1317
+ function removeSelfEdges(d) {
1318
+ forEach_default(d.edges(), function(B) {
1319
+ if (B.v === B.w) {
1320
+ var V = d.node(B.v);
1321
+ V.selfEdges ||= [], V.selfEdges.push({
1322
+ e: B,
1323
+ label: d.edge(B)
1324
+ }), d.removeEdge(B);
1325
+ }
1326
+ });
1327
+ }
1328
+ function insertSelfEdges(d) {
1329
+ forEach_default(buildLayerMatrix(d), function(B) {
1330
+ var V = 0;
1331
+ forEach_default(B, function(B, H) {
1332
+ var U = d.node(B);
1333
+ U.order = H + V, forEach_default(U.selfEdges, function(B) {
1334
+ addDummyNode(d, "selfedge", {
1335
+ width: B.label.width,
1336
+ height: B.label.height,
1337
+ rank: U.rank,
1338
+ order: H + ++V,
1339
+ e: B.e,
1340
+ label: B.label
1341
+ }, "_se");
1342
+ }), delete U.selfEdges;
1343
+ });
1344
+ });
1345
+ }
1346
+ function positionSelfEdges(d) {
1347
+ forEach_default(d.nodes(), function(B) {
1348
+ var V = d.node(B);
1349
+ if (V.dummy === "selfedge") {
1350
+ var H = d.node(V.e.v), U = H.x + H.width / 2, W = H.y, G = V.x - U, K = H.height / 2;
1351
+ d.setEdge(V.e, V.label), d.removeNode(B), V.label.points = [
1352
+ {
1353
+ x: U + 2 * G / 3,
1354
+ y: W - K
1355
+ },
1356
+ {
1357
+ x: U + 5 * G / 6,
1358
+ y: W - K
1359
+ },
1360
+ {
1361
+ x: U + G,
1362
+ y: W
1363
+ },
1364
+ {
1365
+ x: U + 5 * G / 6,
1366
+ y: W + K
1367
+ },
1368
+ {
1369
+ x: U + 2 * G / 3,
1370
+ y: W + K
1371
+ }
1372
+ ], V.label.x = V.x, V.label.y = V.y;
1373
+ }
1374
+ });
1375
+ }
1376
+ function selectNumberAttrs(d, B) {
1377
+ return mapValues_default(pick_default(d, B), Number);
1378
+ }
1379
+ function canonicalize(d) {
1380
+ var B = {};
1381
+ return forEach_default(d, function(d, V) {
1382
+ B[V.toLowerCase()] = d;
1383
+ }), B;
1384
+ }
1385
+ export { layout as t };