@belonguniverseai/react-sdk 0.6.2 → 0.6.3

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 (78) hide show
  1. package/dist/api/agent-grants.d.ts +6 -0
  2. package/dist/api/client.d.ts +30 -1
  3. package/dist/app/call-summary.d.ts +30 -0
  4. package/dist/component/abnfDiagram-N423BO3Z-C1O9dfJJ.js +90 -0
  5. package/dist/component/arc-Cpnt_LFj.js +86 -0
  6. package/dist/component/{architectureDiagram-3BPJPVTR-DYcaPx2M.js → architectureDiagram-T3A2C74G-iakL6yUj.js} +1872 -1785
  7. package/dist/component/{blockDiagram-GPEHLZMM-BdjruLO5.js → blockDiagram-VBNYF7ZC-D7t0jIvW.js} +895 -894
  8. package/dist/component/{c4Diagram-AAUBKEIU-Bd2ebSgB.js → c4Diagram-5PPSVZJV-CRX1o0CJ.js} +3 -3
  9. package/dist/component/{channel-CYFijF_t.js → channel-DnM50Ep0.js} +2 -2
  10. package/dist/component/{chunk-ND2GUHAM-OX1-DIU1.js → chunk-2GRJ4B5K-ChTMjM-v.js} +5 -5
  11. package/dist/component/{chunk-QZHKN3VN-DLQ8oUCc.js → chunk-2Q5K7J3B-F2Rpvtwm.js} +2 -2
  12. package/dist/component/{chunk-AQP2D5EJ-D4G4syYu.js → chunk-5RXB4S5H-B1WLx-ex.js} +399 -378
  13. package/dist/component/{chunk-FMBD7UC4-CbRxWx_A.js → chunk-5VM5RSS4-D35VMAuN.js} +2 -2
  14. package/dist/component/chunk-6Q2QTUOP-DGVp_gyk.js +673 -0
  15. package/dist/component/{chunk-727SXJPM-A5r5oL1_.js → chunk-GF5L2VYU-CZOQEv_q.js} +244 -239
  16. package/dist/component/{chunk-4BX2VUAB-DVpS0I_p.js → chunk-JWPE2WC7-BbwyDj9g.js} +2 -2
  17. package/dist/component/{chunk-2J33WTMH-B06Y_xVy.js → chunk-KBJHAD2P-B9qL0VLM.js} +2 -2
  18. package/dist/component/chunk-RYQCIY6F-5eaMbXXL.js +316 -0
  19. package/dist/component/{chunk-55IACEB6-DmZctFkK.js → chunk-XXDRQBXY-XJadTIK5.js} +2 -2
  20. package/dist/component/{classDiagram-4FO5ZUOK-4S9mdFC1.js → classDiagram-JCYQIIEL-DVaEk7uT.js} +3 -3
  21. package/dist/component/{classDiagram-v2-Q7XG4LA2-4S9mdFC1.js → classDiagram-v2-OCEON4UE-DVaEk7uT.js} +3 -3
  22. package/dist/component/{cose-bilkent-S5V4N54A-BIrVaakt.js → cose-bilkent-JH36ORCC-DZA30AqI.js} +2 -2
  23. package/dist/component/{wardley-L42UT6IY-HA1eSIS_.js → cynefin-VYW2F7L2-DAyxamLw.js} +9199 -7918
  24. package/dist/component/cynefinDiagram-MW4NZA55-CutZScTQ.js +302 -0
  25. package/dist/component/dagre-VZM6K2ZE-CelPLP8N.js +343 -0
  26. package/dist/component/diagram-7IWD3JNH-Cr5piwKc.js +353 -0
  27. package/dist/component/{diagram-KO2AKTUF-Da1E68Eo.js → diagram-B4RE2ZJO-DgLNdZkh.js} +24 -24
  28. package/dist/component/{diagram-LMA3HP47-dRbk5sBa.js → diagram-LBJQPF4R-DxeIMTjN.js} +23 -23
  29. package/dist/component/{diagram-OG6HWLK6-CcKT8mhn.js → diagram-Q27KOJAE-WACyk_gr.js} +197 -197
  30. package/dist/component/diagram-UB23O5K3-DbhVYU5T.js +222 -0
  31. package/dist/component/ebnfDiagram-BXEA7PRR-DoGrYW10.js +112 -0
  32. package/dist/component/{erDiagram-TEJ5UH35-3ATYT9J-.js → erDiagram-JOGREHBK-BgewA6fH.js} +142 -131
  33. package/dist/component/{flowDiagram-I6XJVG4X-D9PLm9Od.js → flowDiagram-UKHOOZJN-1YmYJYcE.js} +268 -258
  34. package/dist/component/ganttDiagram-PKOTCBZU-BFAEPYkH.js +2714 -0
  35. package/dist/component/{gitGraphDiagram-PVQCEYII-13gVhAGc.js → gitGraphDiagram-DS77QQ5N-CSiPuE-l.js} +33 -33
  36. package/dist/component/{graph-BZLHvygk.js → graph-CWpEkm4G.js} +35 -35
  37. package/dist/component/{highlighted-body-OFNGDK62-DCxRI4UV.js → highlighted-body-OFNGDK62-CSJNGt18.js} +2 -2
  38. package/dist/component/index.js +2 -2
  39. package/dist/component/{infoDiagram-5YYISTIA-DymxA7AN.js → infoDiagram-6WML65LV-CoMVfONe.js} +4 -4
  40. package/dist/component/{ishikawaDiagram-YF4QCWOH-C3sTn76C.js → ishikawaDiagram-WSZJBQD7-B2YEkQ4b.js} +27 -27
  41. package/dist/component/{journeyDiagram-JHISSGLW-Cq0hOAfJ.js → journeyDiagram-NVQOT4AX-B7b5ZwlF.js} +5 -5
  42. package/dist/component/{kanban-definition-UN3LZRKU-5tBWjkp7.js → kanban-definition-27J2QSJJ-C9GPAsBR.js} +35 -35
  43. package/dist/component/layout-Br2UjHRU.js +1522 -0
  44. package/dist/component/{linear-BT4blD8s.js → linear-Bi0C-9d1.js} +13 -13
  45. package/dist/component/map-CdwokNh2.js +227 -0
  46. package/dist/component/{mermaid-GHXKKRXX-DXPXjnb7.js → mermaid-GHXKKRXX-BaBCeViM.js} +25220 -24784
  47. package/dist/component/{mindmap-definition-RKZ34NQL-DO-OuAQQ.js → mindmap-definition-FAOFIHXS-tHIAo7Ms.js} +26 -26
  48. package/dist/component/pegDiagram-VL7TDLO6-Db_7lLRV.js +98 -0
  49. package/dist/component/pieDiagram-7S7Q4E2Y-C4fs4XCK.js +210 -0
  50. package/dist/component/{quadrantDiagram-W4KKPZXB-CaJWg9ep.js → quadrantDiagram-CIZ2JOQS-Bw7vXO0q.js} +14 -15
  51. package/dist/component/railroadDiagram-AXF67PYL-kY0VoZEg.js +80 -0
  52. package/dist/component/{requirementDiagram-4Y6WPE33-CmZrtZqe.js → requirementDiagram-LRYGKXZP-BkNtSZm5.js} +15 -15
  53. package/dist/component/{sankeyDiagram-5OEKKPKP-Cp95M1aj.js → sankeyDiagram-W5VNT64P-BK_C1BYE.js} +2 -2
  54. package/dist/component/{sequenceDiagram-3UESZ5HK-C0x0WvhR.js → sequenceDiagram-SI44F4Z6-CEmgVZaE.js} +960 -963
  55. package/dist/component/sizeCapture-X5ZJPWSS-J5ZNXT4c.js +49 -0
  56. package/dist/component/{stateDiagram-AJRCARHV-H10vaGL3.js → stateDiagram-OKZ733FA-DrwrNuNs.js} +5 -5
  57. package/dist/component/{stateDiagram-v2-BHNVJYJU-rj7ljkc-.js → stateDiagram-v2-UEYNNEHI-DHD85VTD.js} +3 -3
  58. package/dist/component/swimlanes-SLNWSIFB-FOK5tys1.js +5335 -0
  59. package/dist/component/swimlanesDiagram-ULZ7WXOC-edTvZTge.js +16 -0
  60. package/dist/component/{timeline-definition-PNZ67QCA-Cil1QaqZ.js → timeline-definition-Z64GVDOM-Cc4fTsjY.js} +15 -15
  61. package/dist/component/vennDiagram-T6HMQDX7-DYZl8srI.js +1581 -0
  62. package/dist/component/{wardleyDiagram-YWT4CUSO-Xq5Hnmio.js → wardleyDiagram-T6FBY63Y-BEvv3PjS.js} +15 -15
  63. package/dist/component/{xychartDiagram-2RQKCTM6-dinwR4Zm.js → xychartDiagram-ELKLHX3M-79AgTtk-.js} +464 -418
  64. package/dist/embed/voice/line-slots.d.ts +37 -2
  65. package/dist/embed/voice-call.d.ts +12 -0
  66. package/dist/i18n/messages/en.d.ts +1 -2
  67. package/dist/lib/web-storage.d.ts +8 -0
  68. package/dist/stream/stream-state-store.d.ts +13 -0
  69. package/dist/types/public.d.ts +3 -0
  70. package/package.json +1 -1
  71. package/dist/component/arc-TLcl3N8_.js +0 -86
  72. package/dist/component/dagre-BM42HDAG-BoPUzTvD.js +0 -448
  73. package/dist/component/diagram-2AECGRRQ-PIXCGxIt.js +0 -220
  74. package/dist/component/diagram-5GNKFQAL-CbJxbGBh.js +0 -126
  75. package/dist/component/ganttDiagram-6RSMTGT7-F_XUzD1p.js +0 -2709
  76. package/dist/component/layout-Bu6nRdWm.js +0 -1731
  77. package/dist/component/pieDiagram-4H26LBE5-BkEktPwZ.js +0 -166
  78. package/dist/component/vennDiagram-CIIHVFJN-Dk8PKmfb.js +0 -1560
@@ -0,0 +1,1581 @@
1
+ import { b7 as Wt, s as Kt, g as Ht, p as Yt, o as Xt, a as Zt, b as Jt, _ as w, z as wt, G as Qt, d as ot, ao as $t, ad as te, ae as ee, af as ne, e as se, q as ie, D as oe, E as re } from "./mermaid-GHXKKRXX-BaBCeViM.js";
2
+ globalThis.process = globalThis.process || { env: {} };
3
+ globalThis.global = globalThis.global || globalThis;
4
+ const kt = (t, n) => Wt(t, "a", -n), _t = 1e-10;
5
+ function st(t, n) {
6
+ const s = le(t), e = s.filter((l) => ae(l, t));
7
+ let i = 0, o = 0;
8
+ const r = [];
9
+ if (e.length > 1) {
10
+ const l = Et(e);
11
+ for (let u = 0; u < e.length; ++u) {
12
+ const a = e[u];
13
+ a.angle = Math.atan2(a.x - l.x, a.y - l.y);
14
+ }
15
+ e.sort((u, a) => a.angle - u.angle);
16
+ let f = e[e.length - 1];
17
+ for (let u = 0; u < e.length; ++u) {
18
+ const a = e[u];
19
+ o += (f.x + a.x) * (a.y - f.y);
20
+ const y = { x: (a.x + f.x) / 2, y: (a.y + f.y) / 2 };
21
+ let h = null;
22
+ for (let b = 0; b < a.parentIndex.length; ++b)
23
+ if (f.parentIndex.includes(a.parentIndex[b])) {
24
+ const p = t[a.parentIndex[b]], M = Math.atan2(a.x - p.x, a.y - p.y), E = Math.atan2(f.x - p.x, f.y - p.y);
25
+ let _ = E - M;
26
+ _ < 0 && (_ += 2 * Math.PI);
27
+ const S = E - _ / 2;
28
+ let g = q(y, {
29
+ x: p.x + p.radius * Math.sin(S),
30
+ y: p.y + p.radius * Math.cos(S)
31
+ });
32
+ g > p.radius * 2 && (g = p.radius * 2), (h == null || h.width > g) && (h = { circle: p, width: g, p1: a, p2: f, large: g > p.radius, sweep: !0 });
33
+ }
34
+ h != null && (r.push(h), i += lt(h.circle.radius, h.width), f = a);
35
+ }
36
+ } else {
37
+ let l = t[0];
38
+ for (let u = 1; u < t.length; ++u)
39
+ t[u].radius < l.radius && (l = t[u]);
40
+ let f = !1;
41
+ for (let u = 0; u < t.length; ++u)
42
+ if (q(t[u], l) > Math.abs(l.radius - t[u].radius)) {
43
+ f = !0;
44
+ break;
45
+ }
46
+ f ? i = o = 0 : (i = l.radius * l.radius * Math.PI, r.push({
47
+ circle: l,
48
+ p1: { x: l.x, y: l.y + l.radius },
49
+ p2: { x: l.x - _t, y: l.y + l.radius },
50
+ width: l.radius * 2,
51
+ large: !0,
52
+ sweep: !0
53
+ }));
54
+ }
55
+ return o /= 2, n && (n.area = i + o, n.arcArea = i, n.polygonArea = o, n.arcs = r, n.innerPoints = e, n.intersectionPoints = s), i + o;
56
+ }
57
+ function ae(t, n) {
58
+ return n.every((s) => q(t, s) < s.radius + _t);
59
+ }
60
+ function le(t) {
61
+ const n = [];
62
+ for (let s = 0; s < t.length; ++s)
63
+ for (let e = s + 1; e < t.length; ++e) {
64
+ const i = Tt(t[s], t[e]);
65
+ for (const o of i)
66
+ o.parentIndex = [s, e], n.push(o);
67
+ }
68
+ return n;
69
+ }
70
+ function lt(t, n) {
71
+ return t * t * Math.acos(1 - n / t) - (t - n) * Math.sqrt(n * (2 * t - n));
72
+ }
73
+ function q(t, n) {
74
+ return Math.sqrt((t.x - n.x) * (t.x - n.x) + (t.y - n.y) * (t.y - n.y));
75
+ }
76
+ function xt(t, n, s) {
77
+ if (s >= t + n)
78
+ return 0;
79
+ if (s <= Math.abs(t - n))
80
+ return Math.PI * Math.min(t, n) * Math.min(t, n);
81
+ const e = t - (s * s - n * n + t * t) / (2 * s), i = n - (s * s - t * t + n * n) / (2 * s);
82
+ return lt(t, e) + lt(n, i);
83
+ }
84
+ function Tt(t, n) {
85
+ const s = q(t, n), e = t.radius, i = n.radius;
86
+ if (s >= e + i || s <= Math.abs(e - i))
87
+ return [];
88
+ const o = (e * e - i * i + s * s) / (2 * s), r = Math.sqrt(e * e - o * o), l = t.x + o * (n.x - t.x) / s, f = t.y + o * (n.y - t.y) / s, u = -(n.y - t.y) * (r / s), a = -(n.x - t.x) * (r / s);
89
+ return [
90
+ { x: l + u, y: f - a },
91
+ { x: l - u, y: f + a }
92
+ ];
93
+ }
94
+ function Et(t) {
95
+ const n = { x: 0, y: 0 };
96
+ for (const s of t)
97
+ n.x += s.x, n.y += s.y;
98
+ return n.x /= t.length, n.y /= t.length, n;
99
+ }
100
+ function ce(t, n, s, e) {
101
+ e = e || {};
102
+ const i = e.maxIterations || 100, o = e.tolerance || 1e-10, r = t(n), l = t(s);
103
+ let f = s - n;
104
+ if (r * l > 0)
105
+ throw "Initial bisect points must have opposite signs";
106
+ if (r === 0) return n;
107
+ if (l === 0) return s;
108
+ for (let u = 0; u < i; ++u) {
109
+ f /= 2;
110
+ const a = n + f, y = t(a);
111
+ if (y * r >= 0 && (n = a), Math.abs(f) < o || y === 0)
112
+ return a;
113
+ }
114
+ return n + f;
115
+ }
116
+ function ct(t) {
117
+ const n = new Array(t);
118
+ for (let s = 0; s < t; ++s)
119
+ n[s] = 0;
120
+ return n;
121
+ }
122
+ function Mt(t, n) {
123
+ return ct(t).map(() => ct(n));
124
+ }
125
+ function $(t, n) {
126
+ let s = 0;
127
+ for (let e = 0; e < t.length; ++e)
128
+ s += t[e] * n[e];
129
+ return s;
130
+ }
131
+ function ut(t) {
132
+ return Math.sqrt($(t, t));
133
+ }
134
+ function ft(t, n, s) {
135
+ for (let e = 0; e < n.length; ++e)
136
+ t[e] = n[e] * s;
137
+ }
138
+ function J(t, n, s, e, i) {
139
+ for (let o = 0; o < t.length; ++o)
140
+ t[o] = n * s[o] + e * i[o];
141
+ }
142
+ function zt(t, n, s) {
143
+ s = s || {};
144
+ const e = s.maxIterations || n.length * 200, i = s.nonZeroDelta || 1.05, o = s.zeroDelta || 1e-3, r = s.minErrorDelta || 1e-6, l = s.minErrorDelta || 1e-5, f = s.rho !== void 0 ? s.rho : 1, u = s.chi !== void 0 ? s.chi : 2, a = s.psi !== void 0 ? s.psi : -0.5, y = s.sigma !== void 0 ? s.sigma : 0.5;
145
+ let h;
146
+ const b = n.length, p = new Array(b + 1);
147
+ p[0] = n, p[0].fx = t(n), p[0].id = 0;
148
+ for (let v = 0; v < b; ++v) {
149
+ const c = n.slice();
150
+ c[v] = c[v] ? c[v] * i : o, p[v + 1] = c, p[v + 1].fx = t(c), p[v + 1].id = v + 1;
151
+ }
152
+ function M(v) {
153
+ for (let c = 0; c < v.length; c++)
154
+ p[b][c] = v[c];
155
+ p[b].fx = v.fx;
156
+ }
157
+ const E = (v, c) => v.fx - c.fx, _ = n.slice(), S = n.slice(), g = n.slice(), m = n.slice();
158
+ for (let v = 0; v < e; ++v) {
159
+ if (p.sort(E), s.history) {
160
+ const x = p.map((d) => {
161
+ const D = d.slice();
162
+ return D.fx = d.fx, D.id = d.id, D;
163
+ });
164
+ x.sort((d, D) => d.id - D.id), s.history.push({
165
+ x: p[0].slice(),
166
+ fx: p[0].fx,
167
+ simplex: x
168
+ });
169
+ }
170
+ h = 0;
171
+ for (let x = 0; x < b; ++x)
172
+ h = Math.max(h, Math.abs(p[0][x] - p[1][x]));
173
+ if (Math.abs(p[0].fx - p[b].fx) < r && h < l)
174
+ break;
175
+ for (let x = 0; x < b; ++x) {
176
+ _[x] = 0;
177
+ for (let d = 0; d < b; ++d)
178
+ _[x] += p[d][x];
179
+ _[x] /= b;
180
+ }
181
+ const c = p[b];
182
+ if (J(S, 1 + f, _, -f, c), S.fx = t(S), S.fx < p[0].fx)
183
+ J(m, 1 + u, _, -u, c), m.fx = t(m), m.fx < S.fx ? M(m) : M(S);
184
+ else if (S.fx >= p[b - 1].fx) {
185
+ let x = !1;
186
+ if (S.fx > c.fx ? (J(g, 1 + a, _, -a, c), g.fx = t(g), g.fx < c.fx ? M(g) : x = !0) : (J(g, 1 - a * f, _, a * f, c), g.fx = t(g), g.fx < S.fx ? M(g) : x = !0), x) {
187
+ if (y >= 1) break;
188
+ for (let d = 1; d < p.length; ++d)
189
+ J(p[d], 1 - y, p[0], y, p[d]), p[d].fx = t(p[d]);
190
+ }
191
+ } else
192
+ M(S);
193
+ }
194
+ return p.sort(E), { fx: p[0].fx, x: p[0] };
195
+ }
196
+ function ue(t, n, s, e, i, o, r) {
197
+ const l = s.fx, f = $(s.fxprime, n);
198
+ let u = l, a = l, y = f, h = 0;
199
+ i = i || 1, o = o || 1e-6, r = r || 0.1;
200
+ function b(p, M, E) {
201
+ for (let _ = 0; _ < 16; ++_)
202
+ if (i = (p + M) / 2, J(e.x, 1, s.x, i, n), u = e.fx = t(e.x, e.fxprime), y = $(e.fxprime, n), u > l + o * i * f || u >= E)
203
+ M = i;
204
+ else {
205
+ if (Math.abs(y) <= -r * f)
206
+ return i;
207
+ y * (M - p) >= 0 && (M = p), p = i, E = u;
208
+ }
209
+ return 0;
210
+ }
211
+ for (let p = 0; p < 10; ++p) {
212
+ if (J(e.x, 1, s.x, i, n), u = e.fx = t(e.x, e.fxprime), y = $(e.fxprime, n), u > l + o * i * f || p && u >= a)
213
+ return b(h, i, a);
214
+ if (Math.abs(y) <= -r * f)
215
+ return i;
216
+ if (y >= 0)
217
+ return b(i, h, u);
218
+ a = u, h = i, i *= 2;
219
+ }
220
+ return i;
221
+ }
222
+ function fe(t, n, s) {
223
+ let e = { x: n.slice(), fx: 0, fxprime: n.slice() }, i = { x: n.slice(), fx: 0, fxprime: n.slice() };
224
+ const o = n.slice();
225
+ let r, l, f = 1, u;
226
+ s = s || {}, u = s.maxIterations || n.length * 20, e.fx = t(e.x, e.fxprime), r = e.fxprime.slice(), ft(r, e.fxprime, -1);
227
+ for (let a = 0; a < u; ++a) {
228
+ if (f = ue(t, r, e, i, f), s.history && s.history.push({
229
+ x: e.x.slice(),
230
+ fx: e.fx,
231
+ fxprime: e.fxprime.slice(),
232
+ alpha: f
233
+ }), !f)
234
+ ft(r, e.fxprime, -1);
235
+ else {
236
+ J(o, 1, i.fxprime, -1, e.fxprime);
237
+ const y = $(e.fxprime, e.fxprime), h = Math.max(0, $(o, i.fxprime) / y);
238
+ J(r, h, r, -1, i.fxprime), l = e, e = i, i = l;
239
+ }
240
+ if (ut(e.fxprime) <= 1e-5)
241
+ break;
242
+ }
243
+ return s.history && s.history.push({
244
+ x: e.x.slice(),
245
+ fx: e.fx,
246
+ fxprime: e.fxprime.slice(),
247
+ alpha: f
248
+ }), e;
249
+ }
250
+ function At(t, n = {}) {
251
+ n.maxIterations = n.maxIterations || 500;
252
+ const s = n.initialLayout || xe, e = n.lossFunction || tt, i = he(t, n), o = s(i, n), r = Object.keys(o), l = [];
253
+ for (const a of r)
254
+ l.push(o[a].x), l.push(o[a].y);
255
+ const u = zt(
256
+ (a) => {
257
+ const y = {};
258
+ for (let h = 0; h < r.length; ++h) {
259
+ const b = r[h];
260
+ y[b] = {
261
+ x: a[2 * h],
262
+ y: a[2 * h + 1],
263
+ radius: o[b].radius
264
+ // size : circles[setid].size
265
+ };
266
+ }
267
+ return e(y, i);
268
+ },
269
+ l,
270
+ n
271
+ ).x;
272
+ for (let a = 0; a < r.length; ++a) {
273
+ const y = r[a];
274
+ o[y].x = u[2 * a], o[y].y = u[2 * a + 1];
275
+ }
276
+ return o;
277
+ }
278
+ const Rt = 1e-10;
279
+ function ht(t, n, s) {
280
+ return Math.min(t, n) * Math.min(t, n) * Math.PI <= s + Rt ? Math.abs(t - n) : ce((e) => xt(t, n, e) - s, 0, t + n);
281
+ }
282
+ function he(t, n = {}) {
283
+ const s = n.distinct, e = t.map((l) => Object.assign({}, l));
284
+ function i(l) {
285
+ return l.join(";");
286
+ }
287
+ if (s) {
288
+ const l = /* @__PURE__ */ new Map();
289
+ for (const f of e)
290
+ for (let u = 0; u < f.sets.length; u++) {
291
+ const a = String(f.sets[u]);
292
+ l.set(a, f.size + (l.get(a) || 0));
293
+ for (let y = u + 1; y < f.sets.length; y++) {
294
+ const h = String(f.sets[y]), b = `${a};${h}`, p = `${h};${a}`;
295
+ l.set(b, f.size + (l.get(b) || 0)), l.set(p, f.size + (l.get(p) || 0));
296
+ }
297
+ }
298
+ for (const f of e)
299
+ f.sets.length < 3 && (f.size = l.get(i(f.sets)));
300
+ }
301
+ const o = [], r = /* @__PURE__ */ new Set();
302
+ for (const l of e)
303
+ if (l.sets.length === 1)
304
+ o.push(l.sets[0]);
305
+ else if (l.sets.length === 2) {
306
+ const f = l.sets[0], u = l.sets[1];
307
+ r.add(i(l.sets)), r.add(i([u, f]));
308
+ }
309
+ o.sort((l, f) => l === f ? 0 : l < f ? -1 : 1);
310
+ for (let l = 0; l < o.length; ++l) {
311
+ const f = o[l];
312
+ for (let u = l + 1; u < o.length; ++u) {
313
+ const a = o[u];
314
+ r.has(i([f, a])) || e.push({ sets: [f, a], size: 0 });
315
+ }
316
+ }
317
+ return e;
318
+ }
319
+ function de(t, n, s) {
320
+ const e = Mt(n.length, n.length), i = Mt(n.length, n.length);
321
+ return t.filter((o) => o.sets.length === 2).forEach((o) => {
322
+ const r = s[o.sets[0]], l = s[o.sets[1]], f = Math.sqrt(n[r].size / Math.PI), u = Math.sqrt(n[l].size / Math.PI), a = ht(f, u, o.size);
323
+ e[r][l] = e[l][r] = a;
324
+ let y = 0;
325
+ o.size + 1e-10 >= Math.min(n[r].size, n[l].size) ? y = 1 : o.size <= 1e-10 && (y = -1), i[r][l] = i[l][r] = y;
326
+ }), { distances: e, constraints: i };
327
+ }
328
+ function ge(t, n, s, e) {
329
+ for (let o = 0; o < n.length; ++o)
330
+ n[o] = 0;
331
+ let i = 0;
332
+ for (let o = 0; o < s.length; ++o) {
333
+ const r = t[2 * o], l = t[2 * o + 1];
334
+ for (let f = o + 1; f < s.length; ++f) {
335
+ const u = t[2 * f], a = t[2 * f + 1], y = s[o][f], h = e[o][f], b = (u - r) * (u - r) + (a - l) * (a - l), p = Math.sqrt(b), M = b - y * y;
336
+ h > 0 && p <= y || h < 0 && p >= y || (i += 2 * M * M, n[2 * o] += 4 * M * (r - u), n[2 * o + 1] += 4 * M * (l - a), n[2 * f] += 4 * M * (u - r), n[2 * f + 1] += 4 * M * (a - l));
337
+ }
338
+ }
339
+ return i;
340
+ }
341
+ function xe(t, n = {}) {
342
+ let s = pe(t, n);
343
+ const e = n.lossFunction || tt;
344
+ if (t.length >= 8) {
345
+ const i = ye(t, n), o = e(i, t), r = e(s, t);
346
+ o + 1e-8 < r && (s = i);
347
+ }
348
+ return s;
349
+ }
350
+ function ye(t, n = {}) {
351
+ const s = n.restarts || 10, e = [], i = {};
352
+ for (const h of t)
353
+ h.sets.length === 1 && (i[h.sets[0]] = e.length, e.push(h));
354
+ let { distances: o, constraints: r } = de(t, e, i);
355
+ const l = ut(o.map(ut)) / o.length;
356
+ o = o.map((h) => h.map((b) => b / l));
357
+ const f = (h, b) => ge(h, b, o, r);
358
+ let u = null;
359
+ for (let h = 0; h < s; ++h) {
360
+ const b = ct(o.length * 2).map(Math.random), p = fe(f, b, n);
361
+ (!u || p.fx < u.fx) && (u = p);
362
+ }
363
+ const a = u.x, y = {};
364
+ for (let h = 0; h < e.length; ++h) {
365
+ const b = e[h];
366
+ y[b.sets[0]] = {
367
+ x: a[2 * h] * l,
368
+ y: a[2 * h + 1] * l,
369
+ radius: Math.sqrt(b.size / Math.PI)
370
+ };
371
+ }
372
+ if (n.history)
373
+ for (const h of n.history)
374
+ ft(h.x, l);
375
+ return y;
376
+ }
377
+ function pe(t, n) {
378
+ const s = n && n.lossFunction ? n.lossFunction : tt, e = {}, i = {};
379
+ for (const y of t)
380
+ if (y.sets.length === 1) {
381
+ const h = y.sets[0];
382
+ e[h] = {
383
+ x: 1e10,
384
+ y: 1e10,
385
+ rowid: e.length,
386
+ size: y.size,
387
+ radius: Math.sqrt(y.size / Math.PI)
388
+ }, i[h] = [];
389
+ }
390
+ t = t.filter((y) => y.sets.length === 2);
391
+ for (const y of t) {
392
+ let h = y.weight != null ? y.weight : 1;
393
+ const b = y.sets[0], p = y.sets[1];
394
+ y.size + Rt >= Math.min(e[b].size, e[p].size) && (h = 0), i[b].push({ set: p, size: y.size, weight: h }), i[p].push({ set: b, size: y.size, weight: h });
395
+ }
396
+ const o = [];
397
+ Object.keys(i).forEach((y) => {
398
+ let h = 0;
399
+ for (let b = 0; b < i[y].length; ++b)
400
+ h += i[y][b].size * i[y][b].weight;
401
+ o.push({ set: y, size: h });
402
+ });
403
+ function r(y, h) {
404
+ return h.size - y.size;
405
+ }
406
+ o.sort(r);
407
+ const l = {};
408
+ function f(y) {
409
+ return y.set in l;
410
+ }
411
+ function u(y, h) {
412
+ e[h].x = y.x, e[h].y = y.y, l[h] = !0;
413
+ }
414
+ u({ x: 0, y: 0 }, o[0].set);
415
+ for (let y = 1; y < o.length; ++y) {
416
+ const h = o[y].set, b = i[h].filter(f), p = e[h];
417
+ if (b.sort(r), b.length === 0)
418
+ throw "ERROR: missing pairwise overlap information";
419
+ const M = [];
420
+ for (var a = 0; a < b.length; ++a) {
421
+ const S = e[b[a].set], g = ht(p.radius, S.radius, b[a].size);
422
+ M.push({ x: S.x + g, y: S.y }), M.push({ x: S.x - g, y: S.y }), M.push({ y: S.y + g, x: S.x }), M.push({ y: S.y - g, x: S.x });
423
+ for (let m = a + 1; m < b.length; ++m) {
424
+ const v = e[b[m].set], c = ht(p.radius, v.radius, b[m].size), x = Tt(
425
+ { x: S.x, y: S.y, radius: g },
426
+ { x: v.x, y: v.y, radius: c }
427
+ );
428
+ M.push(...x);
429
+ }
430
+ }
431
+ let E = 1e50, _ = M[0];
432
+ for (const S of M) {
433
+ e[h].x = S.x, e[h].y = S.y;
434
+ const g = s(e, t);
435
+ g < E && (E = g, _ = S);
436
+ }
437
+ u(_, h);
438
+ }
439
+ return e;
440
+ }
441
+ function tt(t, n) {
442
+ let s = 0;
443
+ for (const e of n) {
444
+ if (e.sets.length === 1)
445
+ continue;
446
+ let i;
447
+ if (e.sets.length === 2) {
448
+ const r = t[e.sets[0]], l = t[e.sets[1]];
449
+ i = xt(r.radius, l.radius, q(r, l));
450
+ } else
451
+ i = st(e.sets.map((r) => t[r]));
452
+ const o = e.weight != null ? e.weight : 1;
453
+ s += o * (i - e.size) * (i - e.size);
454
+ }
455
+ return s;
456
+ }
457
+ function Dt(t, n) {
458
+ let s = 0;
459
+ for (const e of n) {
460
+ if (e.sets.length === 1)
461
+ continue;
462
+ let i;
463
+ if (e.sets.length === 2) {
464
+ const l = t[e.sets[0]], f = t[e.sets[1]];
465
+ i = xt(l.radius, f.radius, q(l, f));
466
+ } else
467
+ i = st(e.sets.map((l) => t[l]));
468
+ const o = e.weight != null ? e.weight : 1, r = Math.log((i + 1) / (e.size + 1));
469
+ s += o * r * r;
470
+ }
471
+ return s;
472
+ }
473
+ function me(t, n, s) {
474
+ if (s == null ? t.sort((i, o) => o.radius - i.radius) : t.sort(s), t.length > 0) {
475
+ const i = t[0].x, o = t[0].y;
476
+ for (const r of t)
477
+ r.x -= i, r.y -= o;
478
+ }
479
+ if (t.length === 2 && q(t[0], t[1]) < Math.abs(t[1].radius - t[0].radius) && (t[1].x = t[0].x + t[0].radius - t[1].radius - 1e-10, t[1].y = t[0].y), t.length > 1) {
480
+ const i = Math.atan2(t[1].x, t[1].y) - n, o = Math.cos(i), r = Math.sin(i);
481
+ for (const l of t) {
482
+ const f = l.x, u = l.y;
483
+ l.x = o * f - r * u, l.y = r * f + o * u;
484
+ }
485
+ }
486
+ if (t.length > 2) {
487
+ let i = Math.atan2(t[2].x, t[2].y) - n;
488
+ for (; i < 0; )
489
+ i += 2 * Math.PI;
490
+ for (; i > 2 * Math.PI; )
491
+ i -= 2 * Math.PI;
492
+ if (i > Math.PI) {
493
+ const o = t[1].y / (1e-10 + t[1].x);
494
+ for (const r of t) {
495
+ var e = (r.x + o * r.y) / (1 + o * o);
496
+ r.x = 2 * e - r.x, r.y = 2 * e * o - r.y;
497
+ }
498
+ }
499
+ }
500
+ }
501
+ function be(t) {
502
+ t.forEach((i) => {
503
+ i.parent = i;
504
+ });
505
+ function n(i) {
506
+ return i.parent !== i && (i.parent = n(i.parent)), i.parent;
507
+ }
508
+ function s(i, o) {
509
+ const r = n(i), l = n(o);
510
+ r.parent = l;
511
+ }
512
+ for (let i = 0; i < t.length; ++i)
513
+ for (let o = i + 1; o < t.length; ++o) {
514
+ const r = t[i].radius + t[o].radius;
515
+ q(t[i], t[o]) + 1e-10 < r && s(t[o], t[i]);
516
+ }
517
+ const e = /* @__PURE__ */ new Map();
518
+ for (let i = 0; i < t.length; ++i) {
519
+ const o = n(t[i]).parent.setid;
520
+ e.has(o) || e.set(o, []), e.get(o).push(t[i]);
521
+ }
522
+ return t.forEach((i) => {
523
+ delete i.parent;
524
+ }), Array.from(e.values());
525
+ }
526
+ function dt(t) {
527
+ const n = (s) => {
528
+ const e = t.reduce((o, r) => Math.max(o, r[s] + r.radius), Number.NEGATIVE_INFINITY), i = t.reduce((o, r) => Math.min(o, r[s] - r.radius), Number.POSITIVE_INFINITY);
529
+ return { max: e, min: i };
530
+ };
531
+ return { xRange: n("x"), yRange: n("y") };
532
+ }
533
+ function Ct(t, n, s) {
534
+ n == null && (n = Math.PI / 2);
535
+ let e = Ft(t).map((u) => Object.assign({}, u));
536
+ const i = be(e);
537
+ for (const u of i) {
538
+ me(u, n, s);
539
+ const a = dt(u);
540
+ u.size = (a.xRange.max - a.xRange.min) * (a.yRange.max - a.yRange.min), u.bounds = a;
541
+ }
542
+ i.sort((u, a) => a.size - u.size), e = i[0];
543
+ let o = e.bounds;
544
+ const r = (o.xRange.max - o.xRange.min) / 50;
545
+ function l(u, a, y) {
546
+ if (!u)
547
+ return;
548
+ const h = u.bounds;
549
+ let b, p;
550
+ if (a)
551
+ b = o.xRange.max - h.xRange.min + r;
552
+ else {
553
+ b = o.xRange.max - h.xRange.max;
554
+ const M = (h.xRange.max - h.xRange.min) / 2 - (o.xRange.max - o.xRange.min) / 2;
555
+ M < 0 && (b += M);
556
+ }
557
+ if (y)
558
+ p = o.yRange.max - h.yRange.min + r;
559
+ else {
560
+ p = o.yRange.max - h.yRange.max;
561
+ const M = (h.yRange.max - h.yRange.min) / 2 - (o.yRange.max - o.yRange.min) / 2;
562
+ M < 0 && (p += M);
563
+ }
564
+ for (const M of u)
565
+ M.x += b, M.y += p, e.push(M);
566
+ }
567
+ let f = 1;
568
+ for (; f < i.length; )
569
+ l(i[f], !0, !1), l(i[f + 1], !1, !0), l(i[f + 2], !0, !0), f += 3, o = dt(e);
570
+ return Ot(e);
571
+ }
572
+ function Nt(t, n, s, e, i) {
573
+ const o = Ft(t);
574
+ n -= 2 * e, s -= 2 * e;
575
+ const { xRange: r, yRange: l } = dt(o);
576
+ if (r.max === r.min || l.max === l.min)
577
+ return console.log("not scaling solution: zero size detected"), t;
578
+ let f, u;
579
+ if (i) {
580
+ const b = Math.sqrt(i / Math.PI) * 2;
581
+ f = n / b, u = s / b;
582
+ } else
583
+ f = n / (r.max - r.min), u = s / (l.max - l.min);
584
+ const a = Math.min(u, f), y = (n - (r.max - r.min) * a) / 2, h = (s - (l.max - l.min) * a) / 2;
585
+ return Ot(
586
+ o.map((b) => ({
587
+ radius: a * b.radius,
588
+ x: e + y + (b.x - r.min) * a,
589
+ y: e + h + (b.y - l.min) * a,
590
+ setid: b.setid
591
+ }))
592
+ );
593
+ }
594
+ function Ot(t) {
595
+ const n = {};
596
+ for (const s of t)
597
+ n[s.setid] = s;
598
+ return n;
599
+ }
600
+ function Ft(t) {
601
+ return Object.keys(t).map((s) => Object.assign(t[s], { setid: s }));
602
+ }
603
+ function ve(t = {}) {
604
+ let n = !1, s = 600, e = 350, i = 15, o = 1e3, r = Math.PI / 2, l = !0, f = null, u = !0, a = !0, y = null, h = null, b = !1, p = null, M = t && t.symmetricalTextCentre ? t.symmetricalTextCentre : !1, E = {}, _ = t && t.colourScheme ? t.colourScheme : t && t.colorScheme ? t.colorScheme : [
605
+ "#1f77b4",
606
+ "#ff7f0e",
607
+ "#2ca02c",
608
+ "#d62728",
609
+ "#9467bd",
610
+ "#8c564b",
611
+ "#e377c2",
612
+ "#7f7f7f",
613
+ "#bcbd22",
614
+ "#17becf"
615
+ ], S = 0, g = function(x) {
616
+ if (x in E)
617
+ return E[x];
618
+ var d = E[x] = _[S];
619
+ return S += 1, S >= _.length && (S = 0), d;
620
+ }, m = At, v = tt;
621
+ function c(x) {
622
+ let d = x.datum();
623
+ const D = /* @__PURE__ */ new Set();
624
+ d.forEach((k) => {
625
+ k.size == 0 && k.sets.length == 1 && D.add(k.sets[0]);
626
+ }), d = d.filter((k) => !k.sets.some((F) => D.has(F)));
627
+ let I = {}, C = {};
628
+ if (d.length > 0) {
629
+ let k = m(d, { lossFunction: v, distinct: b });
630
+ l && (k = Ct(k, r, h)), I = Nt(k, s, e, i, f), C = Lt(I, d, M);
631
+ }
632
+ const U = {};
633
+ d.forEach((k) => {
634
+ k.label && (U[k.sets] = k.label);
635
+ });
636
+ function V(k) {
637
+ if (k.sets in U)
638
+ return U[k.sets];
639
+ if (k.sets.length == 1)
640
+ return "" + k.sets[0];
641
+ }
642
+ x.selectAll("svg").data([I]).enter().append("svg");
643
+ const O = x.select("svg");
644
+ n ? O.attr("viewBox", `0 0 ${s} ${e}`) : O.attr("width", s).attr("height", e);
645
+ const R = {};
646
+ let T = !1;
647
+ O.selectAll(".venn-area path").each(function(k) {
648
+ const F = this.getAttribute("d");
649
+ k.sets.length == 1 && F && !b && (T = !0, R[k.sets[0]] = Me(F));
650
+ });
651
+ function A(k) {
652
+ return (F) => {
653
+ const H = k.sets.map((et) => {
654
+ let Y = R[et], Z = I[et];
655
+ return Y || (Y = { x: s / 2, y: e / 2, radius: 1 }), Z || (Z = { x: s / 2, y: e / 2, radius: 1 }), {
656
+ x: Y.x * (1 - F) + Z.x * F,
657
+ y: Y.y * (1 - F) + Z.y * F,
658
+ radius: Y.radius * (1 - F) + Z.radius * F
659
+ };
660
+ });
661
+ return St(H, p);
662
+ };
663
+ }
664
+ const G = O.selectAll(".venn-area").data(d, (k) => k.sets), P = G.enter().append("g").attr(
665
+ "class",
666
+ (k) => `venn-area venn-${k.sets.length == 1 ? "circle" : "intersection"}${k.colour || k.color ? " venn-coloured" : ""}`
667
+ ).attr("data-venn-sets", (k) => k.sets.join("_")), B = P.append("path"), L = P.append("text").attr("class", "label").text((k) => V(k)).attr("text-anchor", "middle").attr("dy", ".35em").attr("x", s / 2).attr("y", e / 2);
668
+ a && (B.style("fill-opacity", "0").filter((k) => k.sets.length == 1).style("fill", (k) => k.colour ? k.colour : k.color ? k.color : g(k.sets)).style("fill-opacity", ".25"), L.style("fill", (k) => k.colour || k.color ? "#FFF" : t.textFill ? t.textFill : k.sets.length == 1 ? g(k.sets) : "#444"));
669
+ function K(k) {
670
+ return typeof k.transition == "function" ? k.transition("venn").duration(o) : k;
671
+ }
672
+ let z = x;
673
+ T && typeof z.transition == "function" ? (z = K(x), z.selectAll("path").attrTween("d", A)) : z.selectAll("path").attr("d", (k) => St(k.sets.map((F) => I[F])), p);
674
+ const N = z.selectAll("text").filter((k) => k.sets in C).text((k) => V(k)).attr("x", (k) => Math.floor(C[k.sets].x)).attr("y", (k) => Math.floor(C[k.sets].y));
675
+ u && (T ? "on" in N ? N.on("end", rt(I, V)) : N.each("end", rt(I, V)) : N.each(rt(I, V)));
676
+ const j = K(G.exit()).remove();
677
+ typeof G.transition == "function" && j.selectAll("path").attrTween("d", A);
678
+ const X = j.selectAll("text").attr("x", s / 2).attr("y", e / 2);
679
+ return y !== null && (L.style("font-size", "0px"), N.style("font-size", y), X.style("font-size", "0px")), { circles: I, textCentres: C, nodes: G, enter: P, update: z, exit: j };
680
+ }
681
+ return c.wrap = function(x) {
682
+ return arguments.length ? (u = x, c) : u;
683
+ }, c.useViewBox = function() {
684
+ return n = !0, c;
685
+ }, c.width = function(x) {
686
+ return arguments.length ? (s = x, c) : s;
687
+ }, c.height = function(x) {
688
+ return arguments.length ? (e = x, c) : e;
689
+ }, c.padding = function(x) {
690
+ return arguments.length ? (i = x, c) : i;
691
+ }, c.distinct = function(x) {
692
+ return arguments.length ? (b = x, c) : b;
693
+ }, c.colours = function(x) {
694
+ return arguments.length ? (g = x, c) : g;
695
+ }, c.colors = function(x) {
696
+ return arguments.length ? (g = x, c) : g;
697
+ }, c.fontSize = function(x) {
698
+ return arguments.length ? (y = x, c) : y;
699
+ }, c.round = function(x) {
700
+ return arguments.length ? (p = x, c) : p;
701
+ }, c.duration = function(x) {
702
+ return arguments.length ? (o = x, c) : o;
703
+ }, c.layoutFunction = function(x) {
704
+ return arguments.length ? (m = x, c) : m;
705
+ }, c.normalize = function(x) {
706
+ return arguments.length ? (l = x, c) : l;
707
+ }, c.scaleToFit = function(x) {
708
+ return arguments.length ? (f = x, c) : f;
709
+ }, c.styled = function(x) {
710
+ return arguments.length ? (a = x, c) : a;
711
+ }, c.orientation = function(x) {
712
+ return arguments.length ? (r = x, c) : r;
713
+ }, c.orientationOrder = function(x) {
714
+ return arguments.length ? (h = x, c) : h;
715
+ }, c.lossFunction = function(x) {
716
+ return arguments.length ? (v = x === "default" ? tt : x === "logRatio" ? Dt : x, c) : v;
717
+ }, c;
718
+ }
719
+ function rt(t, n) {
720
+ return function(s) {
721
+ const e = this, i = t[s.sets[0]].radius || 50, o = n(s) || "", r = o.split(/\s+/).reverse(), f = (o.length + r.length) / 3;
722
+ let u = r.pop(), a = [u], y = 0;
723
+ const h = 1.1;
724
+ e.textContent = null;
725
+ const b = [];
726
+ function p(g) {
727
+ const m = e.ownerDocument.createElementNS(e.namespaceURI, "tspan");
728
+ return m.textContent = g, b.push(m), e.append(m), m;
729
+ }
730
+ let M = p(u);
731
+ for (; u = r.pop(), !!u; ) {
732
+ a.push(u);
733
+ const g = a.join(" ");
734
+ M.textContent = g, g.length > f && M.getComputedTextLength() > i && (a.pop(), M.textContent = a.join(" "), a = [u], M = p(u), y++);
735
+ }
736
+ const E = 0.35 - y * h / 2, _ = e.getAttribute("x"), S = e.getAttribute("y");
737
+ b.forEach((g, m) => {
738
+ g.setAttribute("x", _), g.setAttribute("y", S), g.setAttribute("dy", `${E + m * h}em`);
739
+ });
740
+ };
741
+ }
742
+ function at(t, n, s) {
743
+ let e = n[0].radius - q(n[0], t);
744
+ for (let i = 1; i < n.length; ++i) {
745
+ const o = n[i].radius - q(n[i], t);
746
+ o <= e && (e = o);
747
+ }
748
+ for (let i = 0; i < s.length; ++i) {
749
+ const o = q(s[i], t) - s[i].radius;
750
+ o <= e && (e = o);
751
+ }
752
+ return e;
753
+ }
754
+ function jt(t, n, s) {
755
+ const e = [];
756
+ for (const a of t)
757
+ e.push({ x: a.x, y: a.y }), e.push({ x: a.x + a.radius / 2, y: a.y }), e.push({ x: a.x - a.radius / 2, y: a.y }), e.push({ x: a.x, y: a.y + a.radius / 2 }), e.push({ x: a.x, y: a.y - a.radius / 2 });
758
+ let i = e[0], o = at(e[0], t, n);
759
+ for (let a = 1; a < e.length; ++a) {
760
+ const y = at(e[a], t, n);
761
+ y >= o && (i = e[a], o = y);
762
+ }
763
+ const r = zt(
764
+ (a) => -1 * at({ x: a[0], y: a[1] }, t, n),
765
+ [i.x, i.y],
766
+ { maxIterations: 500, minErrorDelta: 1e-10 }
767
+ ).x, l = { x: s ? 0 : r[0], y: r[1] };
768
+ let f = !0;
769
+ for (const a of t)
770
+ if (q(l, a) > a.radius) {
771
+ f = !1;
772
+ break;
773
+ }
774
+ for (const a of n)
775
+ if (q(l, a) < a.radius) {
776
+ f = !1;
777
+ break;
778
+ }
779
+ if (f)
780
+ return l;
781
+ if (t.length == 1)
782
+ return { x: t[0].x, y: t[0].y };
783
+ const u = {};
784
+ return st(t, u), u.arcs.length === 0 ? { x: 0, y: -1e3, disjoint: !0 } : u.arcs.length == 1 ? { x: u.arcs[0].circle.x, y: u.arcs[0].circle.y } : n.length ? jt(t, []) : Et(u.arcs.map((a) => a.p1));
785
+ }
786
+ function Ie(t) {
787
+ const n = {}, s = Object.keys(t);
788
+ for (const e of s)
789
+ n[e] = [];
790
+ for (let e = 0; e < s.length; e++) {
791
+ const i = s[e], o = t[i];
792
+ for (let r = e + 1; r < s.length; ++r) {
793
+ const l = s[r], f = t[l], u = q(o, f);
794
+ u + f.radius <= o.radius + 1e-10 ? n[l].push(i) : u + o.radius <= f.radius + 1e-10 && n[i].push(l);
795
+ }
796
+ }
797
+ return n;
798
+ }
799
+ function Lt(t, n, s) {
800
+ const e = {}, i = Ie(t);
801
+ for (let o = 0; o < n.length; ++o) {
802
+ const r = n[o].sets, l = {}, f = {};
803
+ for (let h = 0; h < r.length; ++h) {
804
+ l[r[h]] = !0;
805
+ const b = i[r[h]];
806
+ for (let p = 0; p < b.length; ++p)
807
+ f[b[p]] = !0;
808
+ }
809
+ const u = [], a = [];
810
+ for (let h in t)
811
+ h in l ? u.push(t[h]) : h in f || a.push(t[h]);
812
+ const y = jt(u, a, s);
813
+ e[r] = y, y.disjoint && n[o].size > 0 && console.log("WARNING: area " + r + " not represented on screen");
814
+ }
815
+ return e;
816
+ }
817
+ function ke(t, n, s) {
818
+ const e = [];
819
+ return e.push(`
820
+ M`, t, n), e.push(`
821
+ m`, -s, 0), e.push(`
822
+ a`, s, s, 0, 1, 0, s * 2, 0), e.push(`
823
+ a`, s, s, 0, 1, 0, -s * 2, 0), e.join(" ");
824
+ }
825
+ function Me(t) {
826
+ const n = t.split(" ");
827
+ return { x: Number.parseFloat(n[1]), y: Number.parseFloat(n[2]), radius: -Number.parseFloat(n[4]) };
828
+ }
829
+ function Pt(t) {
830
+ if (t.length === 0)
831
+ return [];
832
+ const n = {};
833
+ return st(t, n), n.arcs;
834
+ }
835
+ function Bt(t, n) {
836
+ if (t.length === 0)
837
+ return "M 0 0";
838
+ const s = Math.pow(10, n || 0), e = n != null ? (o) => Math.round(o * s) / s : (o) => o;
839
+ if (t.length == 1) {
840
+ const o = t[0].circle;
841
+ return ke(e(o.x), e(o.y), e(o.radius));
842
+ }
843
+ const i = [`
844
+ M`, e(t[0].p2.x), e(t[0].p2.y)];
845
+ for (const o of t) {
846
+ const r = e(o.circle.radius);
847
+ i.push(`
848
+ A`, r, r, 0, o.large ? 1 : 0, o.sweep ? 1 : 0, e(o.p1.x), e(o.p1.y));
849
+ }
850
+ return i.join(" ");
851
+ }
852
+ function St(t, n) {
853
+ return Bt(Pt(t), n);
854
+ }
855
+ function Se(t, n = {}) {
856
+ const {
857
+ lossFunction: s,
858
+ layoutFunction: e = At,
859
+ normalize: i = !0,
860
+ orientation: o = Math.PI / 2,
861
+ orientationOrder: r,
862
+ width: l = 600,
863
+ height: f = 350,
864
+ padding: u = 15,
865
+ scaleToFit: a = !1,
866
+ symmetricalTextCentre: y = !1,
867
+ distinct: h,
868
+ round: b = 2
869
+ } = n;
870
+ let p = e(t, {
871
+ lossFunction: s === "default" || !s ? tt : s === "logRatio" ? Dt : s,
872
+ distinct: h
873
+ });
874
+ i && (p = Ct(p, o, r));
875
+ const M = Nt(p, l, f, u, a), E = Lt(M, t, y), _ = new Map(
876
+ Object.keys(M).map((m) => [
877
+ m,
878
+ {
879
+ set: m,
880
+ x: M[m].x,
881
+ y: M[m].y,
882
+ radius: M[m].radius
883
+ }
884
+ ])
885
+ ), S = t.map((m) => {
886
+ const v = m.sets.map((d) => _.get(d)), c = Pt(v), x = Bt(c, b);
887
+ return { circles: v, arcs: c, path: x, area: m, has: new Set(m.sets) };
888
+ });
889
+ function g(m) {
890
+ let v = "";
891
+ for (const c of S)
892
+ c.has.size > m.length && m.every((x) => c.has.has(x)) && (v += " " + c.path);
893
+ return v;
894
+ }
895
+ return S.map(({ circles: m, arcs: v, path: c, area: x }) => ({
896
+ data: x,
897
+ text: E[x.sets],
898
+ circles: m,
899
+ arcs: v,
900
+ path: c,
901
+ distinctPath: c + g(x.sets)
902
+ }));
903
+ }
904
+ var gt = (function() {
905
+ var t = /* @__PURE__ */ w(function(S, g, m, v) {
906
+ for (m = m || {}, v = S.length; v--; m[S[v]] = g) ;
907
+ return m;
908
+ }, "o"), n = [5, 8], s = [7, 8, 11, 12, 17, 19, 22, 24], e = [1, 17], i = [1, 18], o = [7, 8, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27], r = [1, 31], l = [1, 39], f = [7, 8, 11, 12, 17, 19, 22, 24, 27], u = [1, 57], a = [1, 56], y = [1, 58], h = [1, 59], b = [1, 60], p = [7, 8, 11, 12, 16, 17, 19, 20, 22, 24, 27, 31, 32, 33], M = {
909
+ trace: /* @__PURE__ */ w(function() {
910
+ }, "trace"),
911
+ yy: {},
912
+ symbols_: { error: 2, start: 3, optNewlines: 4, VENN: 5, document: 6, EOF: 7, NEWLINE: 8, line: 9, statement: 10, TITLE: 11, SET: 12, identifier: 13, BRACKET_LABEL: 14, COLON: 15, NUMERIC: 16, UNION: 17, identifierList: 18, TEXT: 19, IDENTIFIER: 20, STRING: 21, INDENT_TEXT: 22, indentedTextTail: 23, STYLE: 24, stylesOpt: 25, styleField: 26, COMMA: 27, styleValue: 28, valueTokens: 29, valueToken: 30, HEXCOLOR: 31, RGBCOLOR: 32, RGBACOLOR: 33, $accept: 0, $end: 1 },
913
+ terminals_: { 2: "error", 5: "VENN", 7: "EOF", 8: "NEWLINE", 11: "TITLE", 12: "SET", 14: "BRACKET_LABEL", 15: "COLON", 16: "NUMERIC", 17: "UNION", 19: "TEXT", 20: "IDENTIFIER", 21: "STRING", 22: "INDENT_TEXT", 24: "STYLE", 27: "COMMA", 31: "HEXCOLOR", 32: "RGBCOLOR", 33: "RGBACOLOR" },
914
+ productions_: [0, [3, 4], [4, 0], [4, 2], [6, 0], [6, 2], [9, 1], [9, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 5], [10, 2], [10, 3], [10, 4], [10, 5], [10, 3], [10, 3], [10, 3], [10, 4], [10, 4], [10, 2], [10, 3], [23, 1], [23, 1], [23, 1], [23, 2], [23, 2], [25, 1], [25, 3], [26, 3], [28, 1], [28, 1], [29, 1], [29, 2], [30, 1], [30, 1], [30, 1], [30, 1], [30, 1], [18, 1], [18, 3], [13, 1], [13, 1]],
915
+ performAction: /* @__PURE__ */ w(function(g, m, v, c, x, d, D) {
916
+ var I = d.length - 1;
917
+ switch (x) {
918
+ case 1:
919
+ return d[I - 1];
920
+ case 2:
921
+ case 3:
922
+ case 4:
923
+ this.$ = [];
924
+ break;
925
+ case 5:
926
+ d[I - 1].push(d[I]), this.$ = d[I - 1];
927
+ break;
928
+ case 6:
929
+ this.$ = [];
930
+ break;
931
+ case 7:
932
+ case 22:
933
+ case 32:
934
+ case 36:
935
+ case 37:
936
+ case 38:
937
+ case 39:
938
+ case 40:
939
+ this.$ = d[I];
940
+ break;
941
+ case 8:
942
+ c.setDiagramTitle(d[I].substr(6)), this.$ = d[I].substr(6);
943
+ break;
944
+ case 9:
945
+ c.addSubsetData([d[I]], void 0, void 0), c.setIndentMode && c.setIndentMode(!0);
946
+ break;
947
+ case 10:
948
+ c.addSubsetData([d[I - 1]], d[I], void 0), c.setIndentMode && c.setIndentMode(!0);
949
+ break;
950
+ case 11:
951
+ c.addSubsetData([d[I - 2]], void 0, parseFloat(d[I])), c.setIndentMode && c.setIndentMode(!0);
952
+ break;
953
+ case 12:
954
+ c.addSubsetData([d[I - 3]], d[I - 2], parseFloat(d[I])), c.setIndentMode && c.setIndentMode(!0);
955
+ break;
956
+ case 13:
957
+ if (d[I].length < 2)
958
+ throw new Error("union requires multiple identifiers");
959
+ c.validateUnionIdentifiers && c.validateUnionIdentifiers(d[I]), c.addSubsetData(d[I], void 0, void 0), c.setIndentMode && c.setIndentMode(!0);
960
+ break;
961
+ case 14:
962
+ if (d[I - 1].length < 2)
963
+ throw new Error("union requires multiple identifiers");
964
+ c.validateUnionIdentifiers && c.validateUnionIdentifiers(d[I - 1]), c.addSubsetData(d[I - 1], d[I], void 0), c.setIndentMode && c.setIndentMode(!0);
965
+ break;
966
+ case 15:
967
+ if (d[I - 2].length < 2)
968
+ throw new Error("union requires multiple identifiers");
969
+ c.validateUnionIdentifiers && c.validateUnionIdentifiers(d[I - 2]), c.addSubsetData(d[I - 2], void 0, parseFloat(d[I])), c.setIndentMode && c.setIndentMode(!0);
970
+ break;
971
+ case 16:
972
+ if (d[I - 3].length < 2)
973
+ throw new Error("union requires multiple identifiers");
974
+ c.validateUnionIdentifiers && c.validateUnionIdentifiers(d[I - 3]), c.addSubsetData(d[I - 3], d[I - 2], parseFloat(d[I])), c.setIndentMode && c.setIndentMode(!0);
975
+ break;
976
+ case 17:
977
+ case 18:
978
+ case 19:
979
+ c.addTextData(d[I - 1], d[I], void 0);
980
+ break;
981
+ case 20:
982
+ case 21:
983
+ c.addTextData(d[I - 2], d[I - 1], d[I]);
984
+ break;
985
+ case 23:
986
+ c.addStyleData(d[I - 1], d[I]);
987
+ break;
988
+ case 24:
989
+ case 25:
990
+ case 26:
991
+ var C = c.getCurrentSets();
992
+ if (!C) throw new Error("text requires set");
993
+ c.addTextData(C, d[I], void 0);
994
+ break;
995
+ case 27:
996
+ case 28:
997
+ var C = c.getCurrentSets();
998
+ if (!C) throw new Error("text requires set");
999
+ c.addTextData(C, d[I - 1], d[I]);
1000
+ break;
1001
+ case 29:
1002
+ case 41:
1003
+ this.$ = [d[I]];
1004
+ break;
1005
+ case 30:
1006
+ case 42:
1007
+ this.$ = [...d[I - 2], d[I]];
1008
+ break;
1009
+ case 31:
1010
+ this.$ = [d[I - 2], d[I]];
1011
+ break;
1012
+ case 33:
1013
+ this.$ = d[I].join(" ");
1014
+ break;
1015
+ case 34:
1016
+ this.$ = [d[I]];
1017
+ break;
1018
+ case 35:
1019
+ d[I - 1].push(d[I]), this.$ = d[I - 1];
1020
+ break;
1021
+ case 43:
1022
+ case 44:
1023
+ this.$ = d[I];
1024
+ break;
1025
+ }
1026
+ }, "anonymous"),
1027
+ table: [t(n, [2, 2], { 3: 1, 4: 2 }), { 1: [3] }, { 5: [1, 3], 8: [1, 4] }, t(s, [2, 4], { 6: 5 }), t(n, [2, 3]), { 7: [1, 6], 8: [1, 8], 9: 7, 10: 9, 11: [1, 10], 12: [1, 11], 17: [1, 12], 19: [1, 13], 22: [1, 14], 24: [1, 15] }, { 1: [2, 1] }, t(s, [2, 5]), t(s, [2, 6]), t(s, [2, 7]), t(s, [2, 8]), { 13: 16, 20: e, 21: i }, { 13: 20, 18: 19, 20: e, 21: i }, { 13: 20, 18: 21, 20: e, 21: i }, { 16: [1, 25], 20: [1, 23], 21: [1, 24], 23: 22 }, { 13: 20, 18: 26, 20: e, 21: i }, t(s, [2, 9], { 14: [1, 27], 15: [1, 28] }), t(o, [2, 43]), t(o, [2, 44]), t(s, [2, 13], { 14: [1, 29], 15: [1, 30], 27: r }), t(o, [2, 41]), { 16: [1, 34], 20: [1, 32], 21: [1, 33], 27: r }, t(s, [2, 22]), t(s, [2, 24], { 14: [1, 35] }), t(s, [2, 25], { 14: [1, 36] }), t(s, [2, 26]), { 20: l, 25: 37, 26: 38, 27: r }, t(s, [2, 10], { 15: [1, 40] }), { 16: [1, 41] }, t(s, [2, 14], { 15: [1, 42] }), { 16: [1, 43] }, { 13: 44, 20: e, 21: i }, t(s, [2, 17], { 14: [1, 45] }), t(s, [2, 18], { 14: [1, 46] }), t(s, [2, 19]), t(s, [2, 27]), t(s, [2, 28]), t(s, [2, 23], { 27: [1, 47] }), t(f, [2, 29]), { 15: [1, 48] }, { 16: [1, 49] }, t(s, [2, 11]), { 16: [1, 50] }, t(s, [2, 15]), t(o, [2, 42]), t(s, [2, 20]), t(s, [2, 21]), { 20: l, 26: 51 }, { 16: u, 20: a, 21: [1, 53], 28: 52, 29: 54, 30: 55, 31: y, 32: h, 33: b }, t(s, [2, 12]), t(s, [2, 16]), t(f, [2, 30]), t(f, [2, 31]), t(f, [2, 32]), t(f, [2, 33], { 30: 61, 16: u, 20: a, 31: y, 32: h, 33: b }), t(p, [2, 34]), t(p, [2, 36]), t(p, [2, 37]), t(p, [2, 38]), t(p, [2, 39]), t(p, [2, 40]), t(p, [2, 35])],
1028
+ defaultActions: { 6: [2, 1] },
1029
+ parseError: /* @__PURE__ */ w(function(g, m) {
1030
+ if (m.recoverable)
1031
+ this.trace(g);
1032
+ else {
1033
+ var v = new Error(g);
1034
+ throw v.hash = m, v;
1035
+ }
1036
+ }, "parseError"),
1037
+ parse: /* @__PURE__ */ w(function(g) {
1038
+ var m = this, v = [0], c = [], x = [null], d = [], D = this.table, I = "", C = 0, U = 0, V = 2, O = 1, R = d.slice.call(arguments, 1), T = Object.create(this.lexer), A = { yy: {} };
1039
+ for (var G in this.yy)
1040
+ Object.prototype.hasOwnProperty.call(this.yy, G) && (A.yy[G] = this.yy[G]);
1041
+ T.setInput(g, A.yy), A.yy.lexer = T, A.yy.parser = this, typeof T.yylloc > "u" && (T.yylloc = {});
1042
+ var P = T.yylloc;
1043
+ d.push(P);
1044
+ var B = T.options && T.options.ranges;
1045
+ typeof A.yy.parseError == "function" ? this.parseError = A.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
1046
+ function L(W) {
1047
+ v.length = v.length - 2 * W, x.length = x.length - W, d.length = d.length - W;
1048
+ }
1049
+ w(L, "popStack");
1050
+ function K() {
1051
+ var W;
1052
+ return W = c.pop() || T.lex() || O, typeof W != "number" && (W instanceof Array && (c = W, W = c.pop()), W = m.symbols_[W] || W), W;
1053
+ }
1054
+ w(K, "lex");
1055
+ for (var z, N, j, X, k = {}, F, H, et, Y; ; ) {
1056
+ if (N = v[v.length - 1], this.defaultActions[N] ? j = this.defaultActions[N] : ((z === null || typeof z > "u") && (z = K()), j = D[N] && D[N][z]), typeof j > "u" || !j.length || !j[0]) {
1057
+ var Z = "";
1058
+ Y = [];
1059
+ for (F in D[N])
1060
+ this.terminals_[F] && F > V && Y.push("'" + this.terminals_[F] + "'");
1061
+ T.showPosition ? Z = "Parse error on line " + (C + 1) + `:
1062
+ ` + T.showPosition() + `
1063
+ Expecting ` + Y.join(", ") + ", got '" + (this.terminals_[z] || z) + "'" : Z = "Parse error on line " + (C + 1) + ": Unexpected " + (z == O ? "end of input" : "'" + (this.terminals_[z] || z) + "'"), this.parseError(Z, {
1064
+ text: T.match,
1065
+ token: this.terminals_[z] || z,
1066
+ line: T.yylineno,
1067
+ loc: P,
1068
+ expected: Y
1069
+ });
1070
+ }
1071
+ if (j[0] instanceof Array && j.length > 1)
1072
+ throw new Error("Parse Error: multiple actions possible at state: " + N + ", token: " + z);
1073
+ switch (j[0]) {
1074
+ case 1:
1075
+ v.push(z), x.push(T.yytext), d.push(T.yylloc), v.push(j[1]), z = null, U = T.yyleng, I = T.yytext, C = T.yylineno, P = T.yylloc;
1076
+ break;
1077
+ case 2:
1078
+ if (H = this.productions_[j[1]][1], k.$ = x[x.length - H], k._$ = {
1079
+ first_line: d[d.length - (H || 1)].first_line,
1080
+ last_line: d[d.length - 1].last_line,
1081
+ first_column: d[d.length - (H || 1)].first_column,
1082
+ last_column: d[d.length - 1].last_column
1083
+ }, B && (k._$.range = [
1084
+ d[d.length - (H || 1)].range[0],
1085
+ d[d.length - 1].range[1]
1086
+ ]), X = this.performAction.apply(k, [
1087
+ I,
1088
+ U,
1089
+ C,
1090
+ A.yy,
1091
+ j[1],
1092
+ x,
1093
+ d
1094
+ ].concat(R)), typeof X < "u")
1095
+ return X;
1096
+ H && (v = v.slice(0, -1 * H * 2), x = x.slice(0, -1 * H), d = d.slice(0, -1 * H)), v.push(this.productions_[j[1]][0]), x.push(k.$), d.push(k._$), et = D[v[v.length - 2]][v[v.length - 1]], v.push(et);
1097
+ break;
1098
+ case 3:
1099
+ return !0;
1100
+ }
1101
+ }
1102
+ return !0;
1103
+ }, "parse")
1104
+ }, E = /* @__PURE__ */ (function() {
1105
+ var S = {
1106
+ EOF: 1,
1107
+ parseError: /* @__PURE__ */ w(function(m, v) {
1108
+ if (this.yy.parser)
1109
+ this.yy.parser.parseError(m, v);
1110
+ else
1111
+ throw new Error(m);
1112
+ }, "parseError"),
1113
+ // resets the lexer, sets new input
1114
+ setInput: /* @__PURE__ */ w(function(g, m) {
1115
+ return this.yy = m || this.yy || {}, this._input = g, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
1116
+ first_line: 1,
1117
+ first_column: 0,
1118
+ last_line: 1,
1119
+ last_column: 0
1120
+ }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
1121
+ }, "setInput"),
1122
+ // consumes and returns one char from the input
1123
+ input: /* @__PURE__ */ w(function() {
1124
+ var g = this._input[0];
1125
+ this.yytext += g, this.yyleng++, this.offset++, this.match += g, this.matched += g;
1126
+ var m = g.match(/(?:\r\n?|\n).*/g);
1127
+ return m ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), g;
1128
+ }, "input"),
1129
+ // unshifts one char (or a string) into the input
1130
+ unput: /* @__PURE__ */ w(function(g) {
1131
+ var m = g.length, v = g.split(/(?:\r\n?|\n)/g);
1132
+ this._input = g + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - m), this.offset -= m;
1133
+ var c = this.match.split(/(?:\r\n?|\n)/g);
1134
+ this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), v.length - 1 && (this.yylineno -= v.length - 1);
1135
+ var x = this.yylloc.range;
1136
+ return this.yylloc = {
1137
+ first_line: this.yylloc.first_line,
1138
+ last_line: this.yylineno + 1,
1139
+ first_column: this.yylloc.first_column,
1140
+ last_column: v ? (v.length === c.length ? this.yylloc.first_column : 0) + c[c.length - v.length].length - v[0].length : this.yylloc.first_column - m
1141
+ }, this.options.ranges && (this.yylloc.range = [x[0], x[0] + this.yyleng - m]), this.yyleng = this.yytext.length, this;
1142
+ }, "unput"),
1143
+ // When called from action, caches matched text and appends it on next action
1144
+ more: /* @__PURE__ */ w(function() {
1145
+ return this._more = !0, this;
1146
+ }, "more"),
1147
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
1148
+ reject: /* @__PURE__ */ w(function() {
1149
+ if (this.options.backtrack_lexer)
1150
+ this._backtrack = !0;
1151
+ else
1152
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
1153
+ ` + this.showPosition(), {
1154
+ text: "",
1155
+ token: null,
1156
+ line: this.yylineno
1157
+ });
1158
+ return this;
1159
+ }, "reject"),
1160
+ // retain first n characters of the match
1161
+ less: /* @__PURE__ */ w(function(g) {
1162
+ this.unput(this.match.slice(g));
1163
+ }, "less"),
1164
+ // displays already matched input, i.e. for error messages
1165
+ pastInput: /* @__PURE__ */ w(function() {
1166
+ var g = this.matched.substr(0, this.matched.length - this.match.length);
1167
+ return (g.length > 20 ? "..." : "") + g.substr(-20).replace(/\n/g, "");
1168
+ }, "pastInput"),
1169
+ // displays upcoming input, i.e. for error messages
1170
+ upcomingInput: /* @__PURE__ */ w(function() {
1171
+ var g = this.match;
1172
+ return g.length < 20 && (g += this._input.substr(0, 20 - g.length)), (g.substr(0, 20) + (g.length > 20 ? "..." : "")).replace(/\n/g, "");
1173
+ }, "upcomingInput"),
1174
+ // displays the character position where the lexing error occurred, i.e. for error messages
1175
+ showPosition: /* @__PURE__ */ w(function() {
1176
+ var g = this.pastInput(), m = new Array(g.length + 1).join("-");
1177
+ return g + this.upcomingInput() + `
1178
+ ` + m + "^";
1179
+ }, "showPosition"),
1180
+ // test the lexed token: return FALSE when not a match, otherwise return token
1181
+ test_match: /* @__PURE__ */ w(function(g, m) {
1182
+ var v, c, x;
1183
+ if (this.options.backtrack_lexer && (x = {
1184
+ yylineno: this.yylineno,
1185
+ yylloc: {
1186
+ first_line: this.yylloc.first_line,
1187
+ last_line: this.last_line,
1188
+ first_column: this.yylloc.first_column,
1189
+ last_column: this.yylloc.last_column
1190
+ },
1191
+ yytext: this.yytext,
1192
+ match: this.match,
1193
+ matches: this.matches,
1194
+ matched: this.matched,
1195
+ yyleng: this.yyleng,
1196
+ offset: this.offset,
1197
+ _more: this._more,
1198
+ _input: this._input,
1199
+ yy: this.yy,
1200
+ conditionStack: this.conditionStack.slice(0),
1201
+ done: this.done
1202
+ }, this.options.ranges && (x.yylloc.range = this.yylloc.range.slice(0))), c = g[0].match(/(?:\r\n?|\n).*/g), c && (this.yylineno += c.length), this.yylloc = {
1203
+ first_line: this.yylloc.last_line,
1204
+ last_line: this.yylineno + 1,
1205
+ first_column: this.yylloc.last_column,
1206
+ last_column: c ? c[c.length - 1].length - c[c.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + g[0].length
1207
+ }, this.yytext += g[0], this.match += g[0], this.matches = g, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(g[0].length), this.matched += g[0], v = this.performAction.call(this, this.yy, this, m, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), v)
1208
+ return v;
1209
+ if (this._backtrack) {
1210
+ for (var d in x)
1211
+ this[d] = x[d];
1212
+ return !1;
1213
+ }
1214
+ return !1;
1215
+ }, "test_match"),
1216
+ // return next match in input
1217
+ next: /* @__PURE__ */ w(function() {
1218
+ if (this.done)
1219
+ return this.EOF;
1220
+ this._input || (this.done = !0);
1221
+ var g, m, v, c;
1222
+ this._more || (this.yytext = "", this.match = "");
1223
+ for (var x = this._currentRules(), d = 0; d < x.length; d++)
1224
+ if (v = this._input.match(this.rules[x[d]]), v && (!m || v[0].length > m[0].length)) {
1225
+ if (m = v, c = d, this.options.backtrack_lexer) {
1226
+ if (g = this.test_match(v, x[d]), g !== !1)
1227
+ return g;
1228
+ if (this._backtrack) {
1229
+ m = !1;
1230
+ continue;
1231
+ } else
1232
+ return !1;
1233
+ } else if (!this.options.flex)
1234
+ break;
1235
+ }
1236
+ return m ? (g = this.test_match(m, x[c]), g !== !1 ? g : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
1237
+ ` + this.showPosition(), {
1238
+ text: "",
1239
+ token: null,
1240
+ line: this.yylineno
1241
+ });
1242
+ }, "next"),
1243
+ // return next match that has a token
1244
+ lex: /* @__PURE__ */ w(function() {
1245
+ var m = this.next();
1246
+ return m || this.lex();
1247
+ }, "lex"),
1248
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
1249
+ begin: /* @__PURE__ */ w(function(m) {
1250
+ this.conditionStack.push(m);
1251
+ }, "begin"),
1252
+ // pop the previously active lexer condition state off the condition stack
1253
+ popState: /* @__PURE__ */ w(function() {
1254
+ var m = this.conditionStack.length - 1;
1255
+ return m > 0 ? this.conditionStack.pop() : this.conditionStack[0];
1256
+ }, "popState"),
1257
+ // produce the lexer rule set which is active for the currently active lexer condition state
1258
+ _currentRules: /* @__PURE__ */ w(function() {
1259
+ return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
1260
+ }, "_currentRules"),
1261
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
1262
+ topState: /* @__PURE__ */ w(function(m) {
1263
+ return m = this.conditionStack.length - 1 - Math.abs(m || 0), m >= 0 ? this.conditionStack[m] : "INITIAL";
1264
+ }, "topState"),
1265
+ // alias for begin(condition)
1266
+ pushState: /* @__PURE__ */ w(function(m) {
1267
+ this.begin(m);
1268
+ }, "pushState"),
1269
+ // return the number of states currently on the stack
1270
+ stateStackSize: /* @__PURE__ */ w(function() {
1271
+ return this.conditionStack.length;
1272
+ }, "stateStackSize"),
1273
+ options: { "case-insensitive": !0 },
1274
+ performAction: /* @__PURE__ */ w(function(m, v, c, x) {
1275
+ switch (c) {
1276
+ case 0:
1277
+ break;
1278
+ case 1:
1279
+ break;
1280
+ case 2:
1281
+ break;
1282
+ case 3:
1283
+ if (m.getIndentMode && m.getIndentMode())
1284
+ return m.consumeIndentText = !0, this.begin("INITIAL"), 22;
1285
+ break;
1286
+ case 4:
1287
+ break;
1288
+ case 5:
1289
+ m.setIndentMode && m.setIndentMode(!1), this.begin("INITIAL"), this.unput(v.yytext);
1290
+ break;
1291
+ case 6:
1292
+ return this.begin("bol"), 8;
1293
+ case 7:
1294
+ break;
1295
+ case 8:
1296
+ break;
1297
+ case 9:
1298
+ return 7;
1299
+ case 10:
1300
+ return 11;
1301
+ case 11:
1302
+ return 5;
1303
+ case 12:
1304
+ return 12;
1305
+ case 13:
1306
+ return 17;
1307
+ case 14:
1308
+ if (m.consumeIndentText)
1309
+ m.consumeIndentText = !1;
1310
+ else
1311
+ return 19;
1312
+ break;
1313
+ case 15:
1314
+ return 24;
1315
+ case 16:
1316
+ return v.yytext = v.yytext.slice(2, -2), 14;
1317
+ case 17:
1318
+ return v.yytext = v.yytext.slice(1, -1).trim(), 14;
1319
+ case 18:
1320
+ return 16;
1321
+ case 19:
1322
+ return 31;
1323
+ case 20:
1324
+ return 33;
1325
+ case 21:
1326
+ return 32;
1327
+ case 22:
1328
+ return 20;
1329
+ case 23:
1330
+ return 21;
1331
+ case 24:
1332
+ return 27;
1333
+ case 25:
1334
+ return 15;
1335
+ }
1336
+ }, "anonymous"),
1337
+ rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[ \t]+(?=[\n\r]))/i, /^(?:[ \t]+(?=text\b))/i, /^(?:[ \t]+)/i, /^(?:[^ \t\n\r])/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[ \t]+)/i, /^(?:$)/i, /^(?:title\s[^#\n;]+)/i, /^(?:venn-beta\b)/i, /^(?:set\b)/i, /^(?:union\b)/i, /^(?:text\b)/i, /^(?:style\b)/i, /^(?:\["[^\"]*"\])/i, /^(?:\[[^\]\"]+\])/i, /^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i, /^(?:#[0-9a-fA-F]{3,8})/i, /^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i, /^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:"[^\"]*")/i, /^(?:,)/i, /^(?::)/i],
1338
+ conditions: { bol: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], inclusive: !0 }, INITIAL: { rules: [0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], inclusive: !0 } }
1339
+ };
1340
+ return S;
1341
+ })();
1342
+ M.lexer = E;
1343
+ function _() {
1344
+ this.yy = {};
1345
+ }
1346
+ return w(_, "Parser"), _.prototype = M, M.Parser = _, new _();
1347
+ })();
1348
+ gt.parser = gt;
1349
+ var we = gt, yt = [], pt = [], mt = [], bt = /* @__PURE__ */ new Set(), vt, It = !1, _e = /* @__PURE__ */ w((t, n, s) => {
1350
+ const e = it(t).sort(), i = s ?? 10 / Math.pow(t.length, 2);
1351
+ vt = e, e.length === 1 && bt.add(e[0]), yt.push({
1352
+ sets: e,
1353
+ size: i,
1354
+ label: n ? nt(n) : void 0
1355
+ });
1356
+ }, "addSubsetData"), Te = /* @__PURE__ */ w(() => yt, "getSubsetData"), nt = /* @__PURE__ */ w((t) => {
1357
+ const n = t.trim();
1358
+ return n.length >= 2 && n.startsWith('"') && n.endsWith('"') ? n.slice(1, -1) : n;
1359
+ }, "normalizeText"), Ee = /* @__PURE__ */ w((t) => t && nt(t), "normalizeStyleValue"), ze = /* @__PURE__ */ w((t, n, s) => {
1360
+ const e = nt(n);
1361
+ pt.push({
1362
+ sets: it(t).sort(),
1363
+ id: e,
1364
+ label: s ? nt(s) : void 0
1365
+ });
1366
+ }, "addTextData"), Ae = /* @__PURE__ */ w((t, n) => {
1367
+ const s = it(t).sort(), e = {};
1368
+ for (const [i, o] of n)
1369
+ e[i] = Ee(o) ?? o;
1370
+ mt.push({ targets: s, styles: e });
1371
+ }, "addStyleData"), Re = /* @__PURE__ */ w(() => mt, "getStyleData"), it = /* @__PURE__ */ w((t) => t.map((n) => nt(n)), "normalizeIdentifierList"), De = /* @__PURE__ */ w((t) => {
1372
+ const s = it(t).filter((e) => !bt.has(e));
1373
+ if (s.length > 0)
1374
+ throw new Error(`unknown set identifier: ${s.join(", ")}`);
1375
+ }, "validateUnionIdentifiers"), Ce = /* @__PURE__ */ w(() => pt, "getTextData"), Ne = /* @__PURE__ */ w(() => vt, "getCurrentSets"), Oe = /* @__PURE__ */ w(() => It, "getIndentMode"), Fe = /* @__PURE__ */ w((t) => {
1376
+ It = t;
1377
+ }, "setIndentMode"), je = re.venn;
1378
+ function Vt() {
1379
+ return oe(je, wt().venn);
1380
+ }
1381
+ w(Vt, "getConfig");
1382
+ var Le = /* @__PURE__ */ w(() => {
1383
+ ie(), yt.length = 0, pt.length = 0, mt.length = 0, bt.clear(), vt = void 0, It = !1;
1384
+ }, "customClear"), Pe = {
1385
+ getConfig: Vt,
1386
+ clear: Le,
1387
+ setAccTitle: Jt,
1388
+ getAccTitle: Zt,
1389
+ setDiagramTitle: Xt,
1390
+ getDiagramTitle: Yt,
1391
+ getAccDescription: Ht,
1392
+ setAccDescription: Kt,
1393
+ addSubsetData: _e,
1394
+ getSubsetData: Te,
1395
+ addTextData: ze,
1396
+ addStyleData: Ae,
1397
+ validateUnionIdentifiers: De,
1398
+ getTextData: Ce,
1399
+ getStyleData: Re,
1400
+ getCurrentSets: Ne,
1401
+ getIndentMode: Oe,
1402
+ setIndentMode: Fe
1403
+ }, Be = /* @__PURE__ */ w((t) => `
1404
+ .venn-title {
1405
+ font-size: 32px;
1406
+ fill: ${t.vennTitleTextColor};
1407
+ font-family: ${t.fontFamily};
1408
+ }
1409
+
1410
+ .venn-circle text {
1411
+ font-size: 48px;
1412
+ font-family: ${t.fontFamily};
1413
+ }
1414
+
1415
+ .venn-intersection text {
1416
+ font-size: 48px;
1417
+ fill: ${t.vennSetTextColor};
1418
+ font-family: ${t.fontFamily};
1419
+ }
1420
+
1421
+ .venn-text-node {
1422
+ font-family: ${t.fontFamily};
1423
+ color: ${t.vennSetTextColor};
1424
+ }
1425
+ `, "getStyles"), Ve = Be;
1426
+ function qt(t) {
1427
+ const n = /* @__PURE__ */ new Map();
1428
+ for (const s of t) {
1429
+ const e = s.targets.join("|"), i = n.get(e);
1430
+ i ? Object.assign(i, s.styles) : n.set(e, { ...s.styles });
1431
+ }
1432
+ return n;
1433
+ }
1434
+ w(qt, "buildStyleByKey");
1435
+ var qe = /* @__PURE__ */ w((t, n, s, e) => {
1436
+ const i = e.db, o = i.getConfig?.(), { themeVariables: r, look: l, handDrawnSeed: f } = wt(), u = l === "handDrawn", a = [
1437
+ r.venn1,
1438
+ r.venn2,
1439
+ r.venn3,
1440
+ r.venn4,
1441
+ r.venn5,
1442
+ r.venn6,
1443
+ r.venn7,
1444
+ r.venn8
1445
+ ].filter(Boolean), y = i.getDiagramTitle?.(), h = i.getSubsetData(), b = i.getTextData(), p = qt(i.getStyleData()), M = Gt(h), E = o?.width ?? 800, _ = o?.height ?? 450, g = E / 1600, m = y ? 48 * g : 0, v = r.primaryTextColor ?? r.textColor, c = Qt(n);
1446
+ c.attr("viewBox", `0 0 ${E} ${_}`), y && c.append("text").text(y).attr("class", "venn-title").attr("font-size", `${32 * g}px`).attr("text-anchor", "middle").attr("dominant-baseline", "middle").attr("x", "50%").attr("y", 32 * g).style("fill", r.vennTitleTextColor || r.titleColor);
1447
+ const x = ot(document.createElement("div")), d = ve().width(E).height(_ - m);
1448
+ x.datum(M).call(d);
1449
+ const D = u ? $t.svg(x.select("svg").node()) : void 0, I = Se(M, {
1450
+ width: E,
1451
+ height: _ - m,
1452
+ padding: o?.padding ?? 15
1453
+ }), C = /* @__PURE__ */ new Map();
1454
+ for (const R of I) {
1455
+ const T = Q([...R.data.sets].sort());
1456
+ C.set(T, R);
1457
+ }
1458
+ b.length > 0 && Ut(o, C, x, b, g, p);
1459
+ const U = te(r.background || "#f4f4f4");
1460
+ x.selectAll(".venn-circle").each(function(R, T) {
1461
+ const A = ot(this), P = Q([...R.sets].sort()), B = p.get(P), L = B?.fill || a[T % a.length] || r.primaryColor;
1462
+ A.classed(`venn-set-${T % 8}`, !0);
1463
+ const K = B?.["fill-opacity"] ?? 0.1, z = B?.stroke || L, N = B?.["stroke-width"] || `${5 * g}`;
1464
+ if (u && D) {
1465
+ const X = C.get(P);
1466
+ if (X && X.circles.length > 0) {
1467
+ const k = X.circles[0], F = D.circle(k.x, k.y, k.radius * 2, {
1468
+ roughness: 0.7,
1469
+ seed: f,
1470
+ fill: kt(L, 0.7),
1471
+ fillStyle: "hachure",
1472
+ fillWeight: 2,
1473
+ hachureGap: 8,
1474
+ hachureAngle: -41 + T * 60,
1475
+ stroke: z,
1476
+ strokeWidth: parseFloat(String(N))
1477
+ });
1478
+ A.select("path").remove(), A.node()?.insertBefore(F, A.select("text").node());
1479
+ }
1480
+ } else
1481
+ A.select("path").style("fill", L).style("fill-opacity", K).style("stroke", z).style("stroke-width", N).style("stroke-opacity", 0.95);
1482
+ const j = B?.color || (U ? ee(L, 30) : ne(L, 30));
1483
+ A.select("text").style("font-size", `${48 * g}px`).style("fill", j);
1484
+ }), u && D ? x.selectAll(".venn-intersection").each(function(R) {
1485
+ const T = ot(this), G = Q([...R.sets].sort()), P = p.get(G), B = P?.fill;
1486
+ if (B) {
1487
+ const L = T.select("path"), K = L.attr("d");
1488
+ if (K) {
1489
+ const z = D.path(K, {
1490
+ roughness: 0.7,
1491
+ seed: f,
1492
+ fill: kt(B, 0.3),
1493
+ fillStyle: "cross-hatch",
1494
+ fillWeight: 2,
1495
+ hachureGap: 6,
1496
+ hachureAngle: 60,
1497
+ stroke: "none"
1498
+ }), N = L.node();
1499
+ N?.parentNode?.insertBefore(z, N), L.remove();
1500
+ }
1501
+ } else
1502
+ T.select("path").style("fill-opacity", 0);
1503
+ T.select("text").style("font-size", `${48 * g}px`).style("fill", P?.color ?? r.vennSetTextColor ?? v);
1504
+ }) : (x.selectAll(".venn-intersection text").style("font-size", `${48 * g}px`).style("fill", (R) => {
1505
+ const A = Q([...R.sets].sort());
1506
+ return p.get(A)?.color ?? r.vennSetTextColor ?? v;
1507
+ }), x.selectAll(".venn-intersection path").style("fill-opacity", (R) => {
1508
+ const A = Q([...R.sets].sort());
1509
+ return p.get(A)?.fill ? 1 : 0;
1510
+ }).style("fill", (R) => {
1511
+ const A = Q([...R.sets].sort());
1512
+ return p.get(A)?.fill ?? "transparent";
1513
+ }));
1514
+ const V = c.append("g").attr("transform", `translate(0, ${m})`), O = x.select("svg").node();
1515
+ if (O && "childNodes" in O)
1516
+ for (const R of [...O.childNodes])
1517
+ V.node()?.appendChild(R);
1518
+ se(c, _, E, o?.useMaxWidth ?? !0);
1519
+ }, "draw");
1520
+ function Q(t) {
1521
+ return t.join("|");
1522
+ }
1523
+ w(Q, "stableSetsKey");
1524
+ function Ut(t, n, s, e, i, o) {
1525
+ const r = t?.useDebugLayout ?? !1, f = s.select("svg").append("g").attr("class", "venn-text-nodes"), u = /* @__PURE__ */ new Map();
1526
+ for (const a of e) {
1527
+ const y = Q(a.sets), h = u.get(y);
1528
+ h ? h.push(a) : u.set(y, [a]);
1529
+ }
1530
+ for (const [a, y] of u.entries()) {
1531
+ const h = n.get(a);
1532
+ if (!h?.text)
1533
+ continue;
1534
+ const b = h.text.x, p = h.text.y, M = Math.min(...h.circles.map((O) => O.radius)), E = Math.min(
1535
+ ...h.circles.map((O) => O.radius - Math.hypot(b - O.x, p - O.y))
1536
+ );
1537
+ let _ = Number.isFinite(E) ? Math.max(0, E) : 0;
1538
+ _ === 0 && Number.isFinite(M) && (_ = M * 0.6);
1539
+ const S = f.append("g").attr("class", "venn-text-area").attr("font-size", `${40 * i}px`);
1540
+ r && S.append("circle").attr("class", "venn-text-debug-circle").attr("cx", b).attr("cy", p).attr("r", _).attr("fill", "none").attr("stroke", "purple").attr("stroke-width", 1.5 * i).attr("stroke-dasharray", `${6 * i} ${4 * i}`);
1541
+ const g = Math.max(80 * i, _ * 2 * 0.95), m = Math.max(60 * i, _ * 2 * 0.95), x = (h.data.label && h.data.label.length > 0 ? Math.min(32 * i, _ * 0.25) : 0) + (y.length <= 2 ? 30 * i : 0), d = b - g / 2, D = p - m / 2 + x, I = Math.max(1, Math.ceil(Math.sqrt(y.length))), C = Math.max(1, Math.ceil(y.length / I)), U = g / I, V = m / C;
1542
+ for (const [O, R] of y.entries()) {
1543
+ const T = O % I, A = Math.floor(O / I), G = d + U * (T + 0.5), P = D + V * (A + 0.5);
1544
+ r && S.append("rect").attr("class", "venn-text-debug-cell").attr("x", d + U * T).attr("y", D + V * A).attr("width", U).attr("height", V).attr("fill", "none").attr("stroke", "teal").attr("stroke-width", 1 * i).attr("stroke-dasharray", `${4 * i} ${3 * i}`);
1545
+ const B = U * 0.9, L = V * 0.9, K = S.append("foreignObject").attr("class", "venn-text-node-fo").attr("width", B).attr("height", L).attr("x", G - B / 2).attr("y", P - L / 2).attr("overflow", "visible"), z = o.get(R.id)?.color, N = K.append("xhtml:span").attr("class", "venn-text-node").style("display", "flex").style("width", "100%").style("height", "100%").style("white-space", "normal").style("align-items", "center").style("justify-content", "center").style("text-align", "center").style("overflow-wrap", "normal").style("word-break", "normal").text(R.label ?? R.id);
1546
+ z && N.style("color", z);
1547
+ }
1548
+ }
1549
+ }
1550
+ w(Ut, "renderTextNodes");
1551
+ function Gt(t) {
1552
+ const n = new Set(t.map((i) => [...i.sets].sort().join("|"))), s = new Map(
1553
+ t.filter((i) => i.sets.length === 1 && i.size !== void 0).map((i) => [i.sets[0], i.size])
1554
+ ), e = [];
1555
+ for (const i of t) {
1556
+ if (i.sets.length < 3)
1557
+ continue;
1558
+ const o = [...i.sets].sort();
1559
+ for (let r = 0; r < o.length - 1; r++)
1560
+ for (let l = r + 1; l < o.length; l++) {
1561
+ const f = [o[r], o[l]], u = f.join("|");
1562
+ if (!n.has(u)) {
1563
+ n.add(u);
1564
+ const a = s.get(f[0]), y = s.get(f[1]), h = a !== void 0 && y !== void 0 ? Math.min(a, y) / 4 : 2.5;
1565
+ e.push({ sets: f, size: h, label: "" });
1566
+ }
1567
+ }
1568
+ }
1569
+ return e.length > 0 ? [...t, ...e] : t;
1570
+ }
1571
+ w(Gt, "ensurePairwiseSubsets");
1572
+ var Ue = { draw: qe }, We = {
1573
+ parser: we,
1574
+ db: Pe,
1575
+ renderer: Ue,
1576
+ styles: Ve
1577
+ };
1578
+ export {
1579
+ We as diagram
1580
+ };
1581
+ //# sourceMappingURL=vennDiagram-T6HMQDX7-DYZl8srI.js.map