@aiquants/markdown 11.0.1 → 11.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -1
- package/dist/{abnfDiagram-VRR7QNED-Cgd_ClOa.js → abnfDiagram-VRR7QNED-B9EKZZCe.js} +3 -3
- package/dist/{abnfDiagram-VRR7QNED-CGbpxxTZ.cjs → abnfDiagram-VRR7QNED-BUUUWvsh.cjs} +1 -1
- package/dist/{arc-B6YeA1yq.js → arc-BWBxoAtH.js} +20 -20
- package/dist/{arc-83PgiFkI.cjs → arc-BdyZzyRm.cjs} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-CbKT84Qu.cjs → architectureDiagram-ZJ3FMSHR-C-j7rcTN.cjs} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-DUyxO_OT.js → architectureDiagram-ZJ3FMSHR-C82P-Or8.js} +2 -2
- package/dist/{blockDiagram-677ZJIJ3-KhRxVKIG.cjs → blockDiagram-677ZJIJ3-B28l1266.cjs} +1 -1
- package/dist/{blockDiagram-677ZJIJ3-BGRgY0Jq.js → blockDiagram-677ZJIJ3-DQwdwRWd.js} +3 -3
- package/dist/{c4Diagram-LMCZKHZV-DKwEMXl5.cjs → c4Diagram-LMCZKHZV-BHj3qRWp.cjs} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-DNyEsvRI.js → c4Diagram-LMCZKHZV-BKS-5aGN.js} +2 -2
- package/dist/{channel-CPuos4DK.js → channel-CItIM75V.js} +1 -1
- package/dist/{channel-BwAxLUKJ.cjs → channel-C_cP5iR1.cjs} +1 -1
- package/dist/{chunk-2Q5K7J3B-ueL9YXgS.cjs → chunk-2Q5K7J3B-B0pXO2t7.cjs} +1 -1
- package/dist/{chunk-2Q5K7J3B-CwNIIf2z.js → chunk-2Q5K7J3B-D52R-aDh.js} +1 -1
- package/dist/{chunk-32BRIVSS-4GH9FvG2.js → chunk-32BRIVSS-DUlLCGoQ.js} +1 -1
- package/dist/{chunk-32BRIVSS-CyqPFuo9.cjs → chunk-32BRIVSS-e82Hm1LK.cjs} +1 -1
- package/dist/{chunk-5VM5RSS4-B9y1bN8p.cjs → chunk-5VM5RSS4-DmYNlEib.cjs} +1 -1
- package/dist/{chunk-5VM5RSS4-C5Js9nxl.js → chunk-5VM5RSS4-WjZ3Kfp-.js} +1 -1
- package/dist/{chunk-EX3LRPZG-BZcvojz_.js → chunk-EX3LRPZG-CZeIl-CM.js} +4 -4
- package/dist/{chunk-EX3LRPZG-CmfR2Me0.cjs → chunk-EX3LRPZG-VOMDBd7V.cjs} +1 -1
- package/dist/{chunk-JWPE2WC7-C-ypCY3I.cjs → chunk-JWPE2WC7-DqZGyZxO.cjs} +1 -1
- package/dist/{chunk-JWPE2WC7-CtaWl_b_.js → chunk-JWPE2WC7-XtdP0lPA.js} +1 -1
- package/dist/{chunk-MOJQB5TN-01G2RIVR.js → chunk-MOJQB5TN-BGmMcnEb.js} +10 -10
- package/dist/{chunk-MOJQB5TN-BwSAskm8.cjs → chunk-MOJQB5TN-C-I6Np3F.cjs} +1 -1
- package/dist/{chunk-PUDLZKDR-D2o-M0Rj.cjs → chunk-PUDLZKDR-BU0xXgGZ.cjs} +1 -1
- package/dist/{chunk-PUDLZKDR-CnpC3xcz.js → chunk-PUDLZKDR-CVDCE8CQ.js} +6 -6
- package/dist/{chunk-RYQCIY6F-BJxwuEX_.js → chunk-RYQCIY6F-CazlBHVq.js} +12 -12
- package/dist/{chunk-RYQCIY6F-sv402gFf.cjs → chunk-RYQCIY6F-CzgqsQUG.cjs} +1 -1
- package/dist/{chunk-V7JOEXUC-gP3tRqcD.cjs → chunk-V7JOEXUC-BHcjsh4X.cjs} +1 -1
- package/dist/{chunk-V7JOEXUC-CAVk2pKT.js → chunk-V7JOEXUC-DjZLR1xm.js} +15 -15
- package/dist/{chunk-VR4S4FIN-BVOrMLGd.js → chunk-VR4S4FIN-BdHVIRqw.js} +3 -3
- package/dist/{chunk-VR4S4FIN-N9b38pB9.cjs → chunk-VR4S4FIN-DKCdFxYZ.cjs} +1 -1
- package/dist/{chunk-XXDRQBXY-rk2BF2-a.cjs → chunk-XXDRQBXY-DqQWFq5n.cjs} +1 -1
- package/dist/{chunk-XXDRQBXY-QR32cWjB.js → chunk-XXDRQBXY-Z_rLeBGt.js} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-CiKDmY89.cjs → classDiagram-OUVF2IWQ-HX7id7VH.cjs} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-DWLi6mnu.js → classDiagram-OUVF2IWQ-x_3zaG1u.js} +2 -2
- package/dist/{classDiagram-v2-EOCWNBFH-CiKDmY89.cjs → classDiagram-v2-EOCWNBFH-HX7id7VH.cjs} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-DWLi6mnu.js → classDiagram-v2-EOCWNBFH-x_3zaG1u.js} +2 -2
- package/dist/components/BlockBoundary.d.ts +19 -0
- package/dist/components/MarkdownRenderer.d.ts +6 -1
- package/dist/components/MarkdownViewer.d.ts +3 -1
- package/dist/components/SvgImageBlock.d.ts +25 -0
- package/dist/components/blockFailureLabels.d.ts +2 -0
- package/dist/components/mdastNodes/CodeNode.d.ts +1 -0
- package/dist/components/rawHtml.d.ts +1 -0
- package/dist/components/spreadsheetModel.d.ts +2 -0
- package/dist/components/svgImageLabels.d.ts +16 -0
- package/dist/components/viewerLabels.d.ts +7 -1
- package/dist/converter.wasm +0 -0
- package/dist/{cose-bilkent-JH36ORCC-DLL-HoNB.cjs → cose-bilkent-JH36ORCC-CWD_TQFn.cjs} +1 -1
- package/dist/{cose-bilkent-JH36ORCC-Ndnjy2V_.js → cose-bilkent-JH36ORCC-Cyz8e4tp.js} +5 -5
- package/dist/{cynefinDiagram-TSTJHNR4-BLc8lpj_.cjs → cynefinDiagram-TSTJHNR4-DEFr3c5a.cjs} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-CzQeK-ei.js → cynefinDiagram-TSTJHNR4-uBcUSDG3.js} +47 -47
- package/dist/{dagre-VKFMJZFB-BDWsqPrH.js → dagre-VKFMJZFB-Bbd2N7Iu.js} +20 -20
- package/dist/{dagre-VKFMJZFB-CpOLJSPF.cjs → dagre-VKFMJZFB-DByE8-C9.cjs} +1 -1
- package/dist/{diagram-FQU43EPY-DomkDZpC.js → diagram-FQU43EPY-CgQwvhUg.js} +2 -2
- package/dist/{diagram-FQU43EPY-BYwso-90.cjs → diagram-FQU43EPY-DPEX0cuZ.cjs} +1 -1
- package/dist/{diagram-G47NLZAW-CJvutqnO.cjs → diagram-G47NLZAW-50nFSHRv.cjs} +1 -1
- package/dist/{diagram-G47NLZAW-B88unx9N.js → diagram-G47NLZAW-BZsnXoS1.js} +38 -38
- package/dist/{diagram-NH7WQ7WH-B7_b2WAg.cjs → diagram-NH7WQ7WH-TShr7BQh.cjs} +1 -1
- package/dist/{diagram-NH7WQ7WH-c9X1ONTP.js → diagram-NH7WQ7WH-eHSJPLfa.js} +20 -20
- package/dist/{diagram-OA4YK3LP-ClopZbjk.js → diagram-OA4YK3LP-Dphe8PdD.js} +58 -58
- package/dist/{diagram-OA4YK3LP-Dgf5KLVb.cjs → diagram-OA4YK3LP-r5leQ0jD.cjs} +1 -1
- package/dist/{diagram-WEI45ONY-CFk-zdkR.cjs → diagram-WEI45ONY-BaT3chSs.cjs} +1 -1
- package/dist/{diagram-WEI45ONY-Ps4TgzF1.js → diagram-WEI45ONY-pgeZBaVl.js} +10 -10
- package/dist/{ebnfDiagram-CCIWWBDH-CQCWsevA.cjs → ebnfDiagram-CCIWWBDH-D3EvTRKP.cjs} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-Cj_QjqN9.js → ebnfDiagram-CCIWWBDH-Hf655Cjt.js} +5 -5
- package/dist/{erDiagram-Q63AITRT-B8HuBKwU.js → erDiagram-Q63AITRT-YkVu4ce1.js} +9 -9
- package/dist/{erDiagram-Q63AITRT-BzYknHNb.cjs → erDiagram-Q63AITRT-fnT4vBqH.cjs} +1 -1
- package/dist/{extractHeadings-Crd19E9z.js → extractHeadings-B8u8yqfC.js} +6670 -6480
- package/dist/{extractHeadings-CbjPphbm.cjs → extractHeadings-DLNXUqAG.cjs} +86 -86
- package/dist/flowDiagram-23GEKE2U-B5AFLHup.js +7 -0
- package/dist/flowDiagram-23GEKE2U-BaQLONgC.cjs +1 -0
- package/dist/{ganttDiagram-NO4QXBWP-ssf7C_OK.js → ganttDiagram-NO4QXBWP-D-SkIoPg.js} +2 -2
- package/dist/{ganttDiagram-NO4QXBWP-DmOJTDey.cjs → ganttDiagram-NO4QXBWP-DC3d7PwO.cjs} +1 -1
- package/dist/{gitGraphDiagram-IHSO6WYX-DO-7gHh9.js → gitGraphDiagram-IHSO6WYX-CjYttPlh.js} +10 -10
- package/dist/{gitGraphDiagram-IHSO6WYX-BXw0xce8.cjs → gitGraphDiagram-IHSO6WYX-DFUHvrlM.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.client.cjs +1 -1
- package/dist/index.client.d.ts +3 -1
- package/dist/index.client.js +32 -31
- package/dist/index.js +32 -31
- package/dist/{infoDiagram-FWYZ7A6U-C_qI_jda.cjs → infoDiagram-FWYZ7A6U-CM_qocjy.cjs} +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-D9CHdCHO.js → infoDiagram-FWYZ7A6U-DpELmEdt.js} +1 -1
- package/dist/{ishikawaDiagram-FXEZZL3T-B-P0YpVr.js → ishikawaDiagram-FXEZZL3T-doZ6ry1Q.js} +25 -25
- package/dist/{ishikawaDiagram-FXEZZL3T-BsAmXBFz.cjs → ishikawaDiagram-FXEZZL3T-uPR_QB-P.cjs} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-BReIo-v3.js → journeyDiagram-5HDEW3XC-B3Gvqmgz.js} +4 -4
- package/dist/{journeyDiagram-5HDEW3XC-3vpGGLSR.cjs → journeyDiagram-5HDEW3XC-DKxRZGZY.cjs} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-CgVNbmAG.cjs → kanban-definition-HUTT4EX6-CmEtZdgP.cjs} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-DKqZmd21.js → kanban-definition-HUTT4EX6-XEl_CQHs.js} +52 -52
- package/dist/{linear-C6Pl8W7F.cjs → linear-BJeuATkk.cjs} +1 -1
- package/dist/{linear-BZclxiW5.js → linear-CJwjH-8_.js} +5 -5
- package/dist/{mindmap-definition-LN4V7U3C-CRGWlSrN.cjs → mindmap-definition-LN4V7U3C-B9zpExvk.cjs} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-suiDe0CR.js → mindmap-definition-LN4V7U3C-Cd2v2Y8Z.js} +16 -16
- package/dist/{pegDiagram-2B236MQR-CNg0sJ5j.js → pegDiagram-2B236MQR-DFYHpIqe.js} +3 -3
- package/dist/{pegDiagram-2B236MQR-DXTBiaER.cjs → pegDiagram-2B236MQR-DWCHB7kd.cjs} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-BjxQd0El.js → pieDiagram-ENE6RG2P-CD581vqD.js} +51 -51
- package/dist/{pieDiagram-ENE6RG2P-Pm5hFcS9.cjs → pieDiagram-ENE6RG2P-LLQzK8bv.cjs} +1 -1
- package/dist/{quadrantDiagram-ABIIQ3AL-CbhdFi8L.js → quadrantDiagram-ABIIQ3AL-BhzJSnax.js} +43 -43
- package/dist/{quadrantDiagram-ABIIQ3AL-Cn9jg0Nj.cjs → quadrantDiagram-ABIIQ3AL-DjC_l1Fw.cjs} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-BsgUwAcz.cjs → railroadDiagram-RFXS5EU6-C1tKXwxN.cjs} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-DQZDzmuH.js → railroadDiagram-RFXS5EU6-DmVOfohB.js} +7 -7
- package/dist/{requirementDiagram-TGXJPOKE-B6qkEWAq.js → requirementDiagram-TGXJPOKE-DDpRa8G1.js} +18 -18
- package/dist/{requirementDiagram-TGXJPOKE-Bb7-fVzh.cjs → requirementDiagram-TGXJPOKE-DkGh_vLW.cjs} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-B0lfTQm7.js → sankeyDiagram-HTMAVEWB-3UuuubkA.js} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-D_i8qvPc.cjs → sankeyDiagram-HTMAVEWB-CkCLaKDd.cjs} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-hK_KsgkL.js → sequenceDiagram-DBY2YBRQ-CRC__bVC.js} +3 -3
- package/dist/{sequenceDiagram-DBY2YBRQ-Cis-Rynd.cjs → sequenceDiagram-DBY2YBRQ-DcWj7JMz.cjs} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-CmMBsApW.js → sizeCapture-X5ZJPWSS-DuxhTDeu.js} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-63py1Km1.cjs → sizeCapture-X5ZJPWSS-Wb9vgGKU.cjs} +1 -1
- package/dist/{stateDiagram-2N3HPSRC-DunX61Hp.cjs → stateDiagram-2N3HPSRC-CMBwcQE6.cjs} +1 -1
- package/dist/{stateDiagram-2N3HPSRC-iHHDXYiT.js → stateDiagram-2N3HPSRC-DGfmIJEN.js} +10 -10
- package/dist/{stateDiagram-v2-6OUMAXLB-Cm5Vjes-.cjs → stateDiagram-v2-6OUMAXLB-7UPtJqUO.cjs} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-BGf7WS-h.js → stateDiagram-v2-6OUMAXLB-ZyMZ4vTG.js} +2 -2
- package/dist/styles/markdown.css +1 -1
- package/dist/styles/markdown.standalone.css +1 -1
- package/dist/{swimlanes-5IMT3BWC-BJ1u6dlg.cjs → swimlanes-5IMT3BWC-CZzTj7hi.cjs} +1 -1
- package/dist/{swimlanes-5IMT3BWC-Dlxdol7t.js → swimlanes-5IMT3BWC-CpPHvYma.js} +313 -313
- package/dist/{swimlanesDiagram-G3AALYLV-BJUZ0yd-.cjs → swimlanesDiagram-G3AALYLV-By4sYWRa.cjs} +1 -1
- package/dist/{swimlanesDiagram-G3AALYLV-DhG6vFeB.js → swimlanesDiagram-G3AALYLV-ISXX19Uv.js} +2 -2
- package/dist/{timeline-definition-FHXFAJF6-CC5nYPoS.cjs → timeline-definition-FHXFAJF6-CLuuXV7h.cjs} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-BpNpgP_f.js → timeline-definition-FHXFAJF6-YNTe1gIW.js} +108 -108
- package/dist/{vennDiagram-L72KCM5P-BUO57UaZ.js → vennDiagram-L72KCM5P-B2jRtjMe.js} +101 -101
- package/dist/{vennDiagram-L72KCM5P-B3PoRUuk.cjs → vennDiagram-L72KCM5P-DFt6CSPi.cjs} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-BF8VCIge.cjs → wardleyDiagram-EHGQE667-B1RAAbXU.cjs} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-Bp6gS0HT.js → wardleyDiagram-EHGQE667-ZOmJLYv5.js} +85 -85
- package/dist/{xychartDiagram-FW5EYKEG-C15kZN0r.cjs → xychartDiagram-FW5EYKEG-D1mJfFkC.cjs} +1 -1
- package/dist/{xychartDiagram-FW5EYKEG-CBQgXLz_.js → xychartDiagram-FW5EYKEG-JwURYtLn.js} +40 -40
- package/package.json +11 -11
- package/dist/flowDiagram-23GEKE2U-BIiIKtPl.cjs +0 -1
- package/dist/flowDiagram-23GEKE2U-CL3q35kI.js +0 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bL as Kt, G as Wt, J as Ht, a9 as Yt, a8 as Xt, K as Zt, O as Jt, _ as w, ai as wt, an as Qt, R as ot, b0 as $t, aA as te, aB as ee, aC as ne, V as se, ae as ie, ak as oe, al as re } from "./extractHeadings-B8u8yqfC.js";
|
|
2
2
|
const It = (t, n) => Kt(t, "a", -n), _t = 1e-10;
|
|
3
3
|
function st(t, n) {
|
|
4
4
|
const s = le(t), e = s.filter((l) => ae(l, t));
|
|
@@ -23,7 +23,7 @@ function st(t, n) {
|
|
|
23
23
|
let _ = E - M;
|
|
24
24
|
_ < 0 && (_ += 2 * Math.PI);
|
|
25
25
|
const S = E - _ / 2;
|
|
26
|
-
let g =
|
|
26
|
+
let g = q(y, {
|
|
27
27
|
x: p.x + p.radius * Math.sin(S),
|
|
28
28
|
y: p.y + p.radius * Math.cos(S)
|
|
29
29
|
});
|
|
@@ -37,7 +37,7 @@ function st(t, n) {
|
|
|
37
37
|
t[u].radius < l.radius && (l = t[u]);
|
|
38
38
|
let f = !1;
|
|
39
39
|
for (let u = 0; u < t.length; ++u)
|
|
40
|
-
if (
|
|
40
|
+
if (q(t[u], l) > Math.abs(l.radius - t[u].radius)) {
|
|
41
41
|
f = !0;
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
@@ -53,7 +53,7 @@ function st(t, n) {
|
|
|
53
53
|
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;
|
|
54
54
|
}
|
|
55
55
|
function ae(t, n) {
|
|
56
|
-
return n.every((s) =>
|
|
56
|
+
return n.every((s) => q(t, s) < s.radius + _t);
|
|
57
57
|
}
|
|
58
58
|
function le(t) {
|
|
59
59
|
const n = [];
|
|
@@ -68,7 +68,7 @@ function le(t) {
|
|
|
68
68
|
function lt(t, n) {
|
|
69
69
|
return t * t * Math.acos(1 - n / t) - (t - n) * Math.sqrt(n * (2 * t - n));
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function q(t, n) {
|
|
72
72
|
return Math.sqrt((t.x - n.x) * (t.x - n.x) + (t.y - n.y) * (t.y - n.y));
|
|
73
73
|
}
|
|
74
74
|
function xt(t, n, s) {
|
|
@@ -80,7 +80,7 @@ function xt(t, n, s) {
|
|
|
80
80
|
return lt(t, e) + lt(n, i);
|
|
81
81
|
}
|
|
82
82
|
function Tt(t, n) {
|
|
83
|
-
const s =
|
|
83
|
+
const s = q(t, n), e = t.radius, i = n.radius;
|
|
84
84
|
if (s >= e + i || s <= Math.abs(e - i))
|
|
85
85
|
return [];
|
|
86
86
|
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);
|
|
@@ -444,7 +444,7 @@ function tt(t, n) {
|
|
|
444
444
|
let i;
|
|
445
445
|
if (e.sets.length === 2) {
|
|
446
446
|
const r = t[e.sets[0]], l = t[e.sets[1]];
|
|
447
|
-
i = xt(r.radius, l.radius,
|
|
447
|
+
i = xt(r.radius, l.radius, q(r, l));
|
|
448
448
|
} else
|
|
449
449
|
i = st(e.sets.map((r) => t[r]));
|
|
450
450
|
const o = e.weight != null ? e.weight : 1;
|
|
@@ -460,7 +460,7 @@ function Ct(t, n) {
|
|
|
460
460
|
let i;
|
|
461
461
|
if (e.sets.length === 2) {
|
|
462
462
|
const l = t[e.sets[0]], f = t[e.sets[1]];
|
|
463
|
-
i = xt(l.radius, f.radius,
|
|
463
|
+
i = xt(l.radius, f.radius, q(l, f));
|
|
464
464
|
} else
|
|
465
465
|
i = st(e.sets.map((l) => t[l]));
|
|
466
466
|
const o = e.weight != null ? e.weight : 1, r = Math.log((i + 1) / (e.size + 1));
|
|
@@ -474,7 +474,7 @@ function me(t, n, s) {
|
|
|
474
474
|
for (const r of t)
|
|
475
475
|
r.x -= i, r.y -= o;
|
|
476
476
|
}
|
|
477
|
-
if (t.length === 2 &&
|
|
477
|
+
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) {
|
|
478
478
|
const i = Math.atan2(t[1].x, t[1].y) - n, o = Math.cos(i), r = Math.sin(i);
|
|
479
479
|
for (const l of t) {
|
|
480
480
|
const f = l.x, u = l.y;
|
|
@@ -510,7 +510,7 @@ function be(t) {
|
|
|
510
510
|
for (let i = 0; i < t.length; ++i)
|
|
511
511
|
for (let o = i + 1; o < t.length; ++o) {
|
|
512
512
|
const r = t[i].radius + t[o].radius;
|
|
513
|
-
|
|
513
|
+
q(t[i], t[o]) + 1e-10 < r && s(t[o], t[i]);
|
|
514
514
|
}
|
|
515
515
|
const e = /* @__PURE__ */ new Map();
|
|
516
516
|
for (let i = 0; i < t.length; ++i) {
|
|
@@ -530,7 +530,7 @@ function dt(t) {
|
|
|
530
530
|
}
|
|
531
531
|
function Dt(t, n, s) {
|
|
532
532
|
n == null && (n = Math.PI / 2);
|
|
533
|
-
let e =
|
|
533
|
+
let e = Ft(t).map((u) => Object.assign({}, u));
|
|
534
534
|
const i = be(e);
|
|
535
535
|
for (const u of i) {
|
|
536
536
|
me(u, n, s);
|
|
@@ -565,10 +565,10 @@ function Dt(t, n, s) {
|
|
|
565
565
|
let f = 1;
|
|
566
566
|
for (; f < i.length; )
|
|
567
567
|
l(i[f], !0, !1), l(i[f + 1], !1, !0), l(i[f + 2], !0, !0), f += 3, o = dt(e);
|
|
568
|
-
return
|
|
568
|
+
return Nt(e);
|
|
569
569
|
}
|
|
570
|
-
function
|
|
571
|
-
const o =
|
|
570
|
+
function Ot(t, n, s, e, i) {
|
|
571
|
+
const o = Ft(t);
|
|
572
572
|
n -= 2 * e, s -= 2 * e;
|
|
573
573
|
const { xRange: r, yRange: l } = dt(o);
|
|
574
574
|
if (r.max === r.min || l.max === l.min)
|
|
@@ -580,7 +580,7 @@ function Nt(t, n, s, e, i) {
|
|
|
580
580
|
} else
|
|
581
581
|
f = n / (r.max - r.min), u = s / (l.max - l.min);
|
|
582
582
|
const a = Math.min(u, f), y = (n - (r.max - r.min) * a) / 2, h = (s - (l.max - l.min) * a) / 2;
|
|
583
|
-
return
|
|
583
|
+
return Nt(
|
|
584
584
|
o.map((b) => ({
|
|
585
585
|
radius: a * b.radius,
|
|
586
586
|
x: e + y + (b.x - r.min) * a,
|
|
@@ -589,13 +589,13 @@ function Nt(t, n, s, e, i) {
|
|
|
589
589
|
}))
|
|
590
590
|
);
|
|
591
591
|
}
|
|
592
|
-
function
|
|
592
|
+
function Nt(t) {
|
|
593
593
|
const n = {};
|
|
594
594
|
for (const s of t)
|
|
595
595
|
n[s.setid] = s;
|
|
596
596
|
return n;
|
|
597
597
|
}
|
|
598
|
-
function
|
|
598
|
+
function Ft(t) {
|
|
599
599
|
return Object.keys(t).map((s) => Object.assign(t[s], { setid: s }));
|
|
600
600
|
}
|
|
601
601
|
function ve(t = {}) {
|
|
@@ -621,45 +621,45 @@ function ve(t = {}) {
|
|
|
621
621
|
const C = /* @__PURE__ */ new Set();
|
|
622
622
|
d.forEach((I) => {
|
|
623
623
|
I.size == 0 && I.sets.length == 1 && C.add(I.sets[0]);
|
|
624
|
-
}), d = d.filter((I) => !I.sets.some((
|
|
624
|
+
}), d = d.filter((I) => !I.sets.some((F) => C.has(F)));
|
|
625
625
|
let k = {}, D = {};
|
|
626
626
|
if (d.length > 0) {
|
|
627
627
|
let I = m(d, { lossFunction: v, distinct: b });
|
|
628
|
-
l && (I = Dt(I, r, h)), k =
|
|
628
|
+
l && (I = Dt(I, r, h)), k = Ot(I, s, e, i, f), D = Lt(k, d, M);
|
|
629
629
|
}
|
|
630
|
-
const
|
|
630
|
+
const U = {};
|
|
631
631
|
d.forEach((I) => {
|
|
632
|
-
I.label && (
|
|
632
|
+
I.label && (U[I.sets] = I.label);
|
|
633
633
|
});
|
|
634
634
|
function V(I) {
|
|
635
|
-
if (I.sets in
|
|
636
|
-
return
|
|
635
|
+
if (I.sets in U)
|
|
636
|
+
return U[I.sets];
|
|
637
637
|
if (I.sets.length == 1)
|
|
638
638
|
return "" + I.sets[0];
|
|
639
639
|
}
|
|
640
640
|
x.selectAll("svg").data([k]).enter().append("svg");
|
|
641
|
-
const
|
|
642
|
-
n ?
|
|
641
|
+
const N = x.select("svg");
|
|
642
|
+
n ? N.attr("viewBox", `0 0 ${s} ${e}`) : N.attr("width", s).attr("height", e);
|
|
643
643
|
const R = {};
|
|
644
644
|
let T = !1;
|
|
645
|
-
|
|
646
|
-
const
|
|
647
|
-
I.sets.length == 1 &&
|
|
645
|
+
N.selectAll(".venn-area path").each(function(I) {
|
|
646
|
+
const F = this.getAttribute("d");
|
|
647
|
+
I.sets.length == 1 && F && !b && (T = !0, R[I.sets[0]] = Me(F));
|
|
648
648
|
});
|
|
649
649
|
function A(I) {
|
|
650
|
-
return (
|
|
650
|
+
return (F) => {
|
|
651
651
|
const H = I.sets.map((et) => {
|
|
652
652
|
let Y = R[et], Z = k[et];
|
|
653
653
|
return Y || (Y = { x: s / 2, y: e / 2, radius: 1 }), Z || (Z = { x: s / 2, y: e / 2, radius: 1 }), {
|
|
654
|
-
x: Y.x * (1 -
|
|
655
|
-
y: Y.y * (1 -
|
|
656
|
-
radius: Y.radius * (1 -
|
|
654
|
+
x: Y.x * (1 - F) + Z.x * F,
|
|
655
|
+
y: Y.y * (1 - F) + Z.y * F,
|
|
656
|
+
radius: Y.radius * (1 - F) + Z.radius * F
|
|
657
657
|
};
|
|
658
658
|
});
|
|
659
659
|
return St(H, p);
|
|
660
660
|
};
|
|
661
661
|
}
|
|
662
|
-
const G =
|
|
662
|
+
const G = N.selectAll(".venn-area").data(d, (I) => I.sets), P = G.enter().append("g").attr(
|
|
663
663
|
"class",
|
|
664
664
|
(I) => `venn-area venn-${I.sets.length == 1 ? "circle" : "intersection"}${I.colour || I.color ? " venn-coloured" : ""}`
|
|
665
665
|
).attr("data-venn-sets", (I) => I.sets.join("_")), B = P.append("path"), L = P.append("text").attr("class", "label").text((I) => V(I)).attr("text-anchor", "middle").attr("dy", ".35em").attr("x", s / 2).attr("y", e / 2);
|
|
@@ -668,13 +668,13 @@ function ve(t = {}) {
|
|
|
668
668
|
return typeof I.transition == "function" ? I.transition("venn").duration(o) : I;
|
|
669
669
|
}
|
|
670
670
|
let z = x;
|
|
671
|
-
T && typeof z.transition == "function" ? (z = W(x), z.selectAll("path").attrTween("d", A)) : z.selectAll("path").attr("d", (I) => St(I.sets.map((
|
|
672
|
-
const
|
|
673
|
-
u && (T ? "on" in
|
|
674
|
-
const
|
|
675
|
-
typeof G.transition == "function" &&
|
|
676
|
-
const X =
|
|
677
|
-
return y !== null && (L.style("font-size", "0px"),
|
|
671
|
+
T && typeof z.transition == "function" ? (z = W(x), z.selectAll("path").attrTween("d", A)) : z.selectAll("path").attr("d", (I) => St(I.sets.map((F) => k[F])), p);
|
|
672
|
+
const O = z.selectAll("text").filter((I) => I.sets in D).text((I) => V(I)).attr("x", (I) => Math.floor(D[I.sets].x)).attr("y", (I) => Math.floor(D[I.sets].y));
|
|
673
|
+
u && (T ? "on" in O ? O.on("end", rt(k, V)) : O.each("end", rt(k, V)) : O.each(rt(k, V)));
|
|
674
|
+
const j = W(G.exit()).remove();
|
|
675
|
+
typeof G.transition == "function" && j.selectAll("path").attrTween("d", A);
|
|
676
|
+
const X = j.selectAll("text").attr("x", s / 2).attr("y", e / 2);
|
|
677
|
+
return y !== null && (L.style("font-size", "0px"), O.style("font-size", y), X.style("font-size", "0px")), { circles: k, textCentres: D, nodes: G, enter: P, update: z, exit: j };
|
|
678
678
|
}
|
|
679
679
|
return c.wrap = function(x) {
|
|
680
680
|
return arguments.length ? (u = x, c) : u;
|
|
@@ -738,18 +738,18 @@ function rt(t, n) {
|
|
|
738
738
|
};
|
|
739
739
|
}
|
|
740
740
|
function at(t, n, s) {
|
|
741
|
-
let e = n[0].radius -
|
|
741
|
+
let e = n[0].radius - q(n[0], t);
|
|
742
742
|
for (let i = 1; i < n.length; ++i) {
|
|
743
|
-
const o = n[i].radius -
|
|
743
|
+
const o = n[i].radius - q(n[i], t);
|
|
744
744
|
o <= e && (e = o);
|
|
745
745
|
}
|
|
746
746
|
for (let i = 0; i < s.length; ++i) {
|
|
747
|
-
const o =
|
|
747
|
+
const o = q(s[i], t) - s[i].radius;
|
|
748
748
|
o <= e && (e = o);
|
|
749
749
|
}
|
|
750
750
|
return e;
|
|
751
751
|
}
|
|
752
|
-
function
|
|
752
|
+
function jt(t, n, s) {
|
|
753
753
|
const e = [];
|
|
754
754
|
for (const a of t)
|
|
755
755
|
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 });
|
|
@@ -765,12 +765,12 @@ function Ft(t, n, s) {
|
|
|
765
765
|
).x, l = { x: s ? 0 : r[0], y: r[1] };
|
|
766
766
|
let f = !0;
|
|
767
767
|
for (const a of t)
|
|
768
|
-
if (
|
|
768
|
+
if (q(l, a) > a.radius) {
|
|
769
769
|
f = !1;
|
|
770
770
|
break;
|
|
771
771
|
}
|
|
772
772
|
for (const a of n)
|
|
773
|
-
if (
|
|
773
|
+
if (q(l, a) < a.radius) {
|
|
774
774
|
f = !1;
|
|
775
775
|
break;
|
|
776
776
|
}
|
|
@@ -779,7 +779,7 @@ function Ft(t, n, s) {
|
|
|
779
779
|
if (t.length == 1)
|
|
780
780
|
return { x: t[0].x, y: t[0].y };
|
|
781
781
|
const u = {};
|
|
782
|
-
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 ?
|
|
782
|
+
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));
|
|
783
783
|
}
|
|
784
784
|
function ke(t) {
|
|
785
785
|
const n = {}, s = Object.keys(t);
|
|
@@ -788,7 +788,7 @@ function ke(t) {
|
|
|
788
788
|
for (let e = 0; e < s.length; e++) {
|
|
789
789
|
const i = s[e], o = t[i];
|
|
790
790
|
for (let r = e + 1; r < s.length; ++r) {
|
|
791
|
-
const l = s[r], f = t[l], u =
|
|
791
|
+
const l = s[r], f = t[l], u = q(o, f);
|
|
792
792
|
u + f.radius <= o.radius + 1e-10 ? n[l].push(i) : u + o.radius <= f.radius + 1e-10 && n[i].push(l);
|
|
793
793
|
}
|
|
794
794
|
}
|
|
@@ -807,7 +807,7 @@ function Lt(t, n, s) {
|
|
|
807
807
|
const u = [], a = [];
|
|
808
808
|
for (let h in t)
|
|
809
809
|
h in l ? u.push(t[h]) : h in f || a.push(t[h]);
|
|
810
|
-
const y =
|
|
810
|
+
const y = jt(u, a, s);
|
|
811
811
|
e[r] = y, y.disjoint && n[o].size > 0 && console.log("WARNING: area " + r + " not represented on screen");
|
|
812
812
|
}
|
|
813
813
|
return e;
|
|
@@ -870,7 +870,7 @@ function Se(t, n = {}) {
|
|
|
870
870
|
distinct: h
|
|
871
871
|
});
|
|
872
872
|
i && (p = Dt(p, o, r));
|
|
873
|
-
const M =
|
|
873
|
+
const M = Ot(p, l, f, u, a), E = Lt(M, t, y), _ = new Map(
|
|
874
874
|
Object.keys(M).map((m) => [
|
|
875
875
|
m,
|
|
876
876
|
{
|
|
@@ -1033,7 +1033,7 @@ var gt = (function() {
|
|
|
1033
1033
|
}
|
|
1034
1034
|
}, "parseError"),
|
|
1035
1035
|
parse: /* @__PURE__ */ w(function(g) {
|
|
1036
|
-
var m = this, v = [0], c = [], x = [null], d = [], C = this.table, k = "", D = 0,
|
|
1036
|
+
var m = this, v = [0], c = [], x = [null], d = [], C = this.table, k = "", D = 0, U = 0, V = 2, N = 1, R = d.slice.call(arguments, 1), T = Object.create(this.lexer), A = { yy: {} };
|
|
1037
1037
|
for (var G in this.yy)
|
|
1038
1038
|
Object.prototype.hasOwnProperty.call(this.yy, G) && (A.yy[G] = this.yy[G]);
|
|
1039
1039
|
T.setInput(g, A.yy), A.yy.lexer = T, A.yy.parser = this, typeof T.yylloc > "u" && (T.yylloc = {});
|
|
@@ -1047,18 +1047,18 @@ var gt = (function() {
|
|
|
1047
1047
|
w(L, "popStack");
|
|
1048
1048
|
function W() {
|
|
1049
1049
|
var K;
|
|
1050
|
-
return K = c.pop() || T.lex() ||
|
|
1050
|
+
return K = c.pop() || T.lex() || N, typeof K != "number" && (K instanceof Array && (c = K, K = c.pop()), K = m.symbols_[K] || K), K;
|
|
1051
1051
|
}
|
|
1052
1052
|
w(W, "lex");
|
|
1053
|
-
for (var z,
|
|
1054
|
-
if (
|
|
1053
|
+
for (var z, O, j, X, I = {}, F, H, et, Y; ; ) {
|
|
1054
|
+
if (O = v[v.length - 1], this.defaultActions[O] ? j = this.defaultActions[O] : ((z === null || typeof z > "u") && (z = W()), j = C[O] && C[O][z]), typeof j > "u" || !j.length || !j[0]) {
|
|
1055
1055
|
var Z = "";
|
|
1056
1056
|
Y = [];
|
|
1057
|
-
for (
|
|
1058
|
-
this.terminals_[
|
|
1057
|
+
for (F in C[O])
|
|
1058
|
+
this.terminals_[F] && F > V && Y.push("'" + this.terminals_[F] + "'");
|
|
1059
1059
|
T.showPosition ? Z = "Parse error on line " + (D + 1) + `:
|
|
1060
1060
|
` + T.showPosition() + `
|
|
1061
|
-
Expecting ` + Y.join(", ") + ", got '" + (this.terminals_[z] || z) + "'" : Z = "Parse error on line " + (D + 1) + ": Unexpected " + (z ==
|
|
1061
|
+
Expecting ` + Y.join(", ") + ", got '" + (this.terminals_[z] || z) + "'" : Z = "Parse error on line " + (D + 1) + ": Unexpected " + (z == N ? "end of input" : "'" + (this.terminals_[z] || z) + "'"), this.parseError(Z, {
|
|
1062
1062
|
text: T.match,
|
|
1063
1063
|
token: this.terminals_[z] || z,
|
|
1064
1064
|
line: T.yylineno,
|
|
@@ -1066,14 +1066,14 @@ Expecting ` + Y.join(", ") + ", got '" + (this.terminals_[z] || z) + "'" : Z = "
|
|
|
1066
1066
|
expected: Y
|
|
1067
1067
|
});
|
|
1068
1068
|
}
|
|
1069
|
-
if (
|
|
1070
|
-
throw new Error("Parse Error: multiple actions possible at state: " +
|
|
1071
|
-
switch (
|
|
1069
|
+
if (j[0] instanceof Array && j.length > 1)
|
|
1070
|
+
throw new Error("Parse Error: multiple actions possible at state: " + O + ", token: " + z);
|
|
1071
|
+
switch (j[0]) {
|
|
1072
1072
|
case 1:
|
|
1073
|
-
v.push(z), x.push(T.yytext), d.push(T.yylloc), v.push(
|
|
1073
|
+
v.push(z), x.push(T.yytext), d.push(T.yylloc), v.push(j[1]), z = null, U = T.yyleng, k = T.yytext, D = T.yylineno, P = T.yylloc;
|
|
1074
1074
|
break;
|
|
1075
1075
|
case 2:
|
|
1076
|
-
if (H = this.productions_[
|
|
1076
|
+
if (H = this.productions_[j[1]][1], I.$ = x[x.length - H], I._$ = {
|
|
1077
1077
|
first_line: d[d.length - (H || 1)].first_line,
|
|
1078
1078
|
last_line: d[d.length - 1].last_line,
|
|
1079
1079
|
first_column: d[d.length - (H || 1)].first_column,
|
|
@@ -1083,15 +1083,15 @@ Expecting ` + Y.join(", ") + ", got '" + (this.terminals_[z] || z) + "'" : Z = "
|
|
|
1083
1083
|
d[d.length - 1].range[1]
|
|
1084
1084
|
]), X = this.performAction.apply(I, [
|
|
1085
1085
|
k,
|
|
1086
|
-
|
|
1086
|
+
U,
|
|
1087
1087
|
D,
|
|
1088
1088
|
A.yy,
|
|
1089
|
-
|
|
1089
|
+
j[1],
|
|
1090
1090
|
x,
|
|
1091
1091
|
d
|
|
1092
1092
|
].concat(R)), typeof X < "u")
|
|
1093
1093
|
return X;
|
|
1094
|
-
H && (v = v.slice(0, -1 * H * 2), x = x.slice(0, -1 * H), d = d.slice(0, -1 * H)), v.push(this.productions_[
|
|
1094
|
+
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(I.$), d.push(I._$), et = C[v[v.length - 2]][v[v.length - 1]], v.push(et);
|
|
1095
1095
|
break;
|
|
1096
1096
|
case 3:
|
|
1097
1097
|
return !0;
|
|
@@ -1370,11 +1370,11 @@ var we = gt, yt = [], pt = [], mt = [], bt = /* @__PURE__ */ new Set(), vt, kt =
|
|
|
1370
1370
|
const s = it(t).filter((e) => !bt.has(e));
|
|
1371
1371
|
if (s.length > 0)
|
|
1372
1372
|
throw new Error(`unknown set identifier: ${s.join(", ")}`);
|
|
1373
|
-
}, "validateUnionIdentifiers"), De = /* @__PURE__ */ w(() => pt, "getTextData"),
|
|
1373
|
+
}, "validateUnionIdentifiers"), De = /* @__PURE__ */ w(() => pt, "getTextData"), Oe = /* @__PURE__ */ w(() => vt, "getCurrentSets"), Ne = /* @__PURE__ */ w(() => kt, "getIndentMode"), Fe = /* @__PURE__ */ w((t) => {
|
|
1374
1374
|
kt = t;
|
|
1375
|
-
}, "setIndentMode"),
|
|
1375
|
+
}, "setIndentMode"), je = re.venn;
|
|
1376
1376
|
function Vt() {
|
|
1377
|
-
return oe(
|
|
1377
|
+
return oe(je, wt().venn);
|
|
1378
1378
|
}
|
|
1379
1379
|
w(Vt, "getConfig");
|
|
1380
1380
|
var Le = /* @__PURE__ */ w(() => {
|
|
@@ -1395,9 +1395,9 @@ var Le = /* @__PURE__ */ w(() => {
|
|
|
1395
1395
|
validateUnionIdentifiers: Ce,
|
|
1396
1396
|
getTextData: De,
|
|
1397
1397
|
getStyleData: Re,
|
|
1398
|
-
getCurrentSets:
|
|
1399
|
-
getIndentMode:
|
|
1400
|
-
setIndentMode:
|
|
1398
|
+
getCurrentSets: Oe,
|
|
1399
|
+
getIndentMode: Ne,
|
|
1400
|
+
setIndentMode: Fe
|
|
1401
1401
|
}, Be = /* @__PURE__ */ w((t) => `
|
|
1402
1402
|
.venn-title {
|
|
1403
1403
|
font-size: 32px;
|
|
@@ -1421,7 +1421,7 @@ var Le = /* @__PURE__ */ w(() => {
|
|
|
1421
1421
|
color: ${t.vennSetTextColor};
|
|
1422
1422
|
}
|
|
1423
1423
|
`, "getStyles"), Ve = Be;
|
|
1424
|
-
function
|
|
1424
|
+
function qt(t) {
|
|
1425
1425
|
const n = /* @__PURE__ */ new Map();
|
|
1426
1426
|
for (const s of t) {
|
|
1427
1427
|
const e = s.targets.join("|"), i = n.get(e);
|
|
@@ -1429,8 +1429,8 @@ function Ut(t) {
|
|
|
1429
1429
|
}
|
|
1430
1430
|
return n;
|
|
1431
1431
|
}
|
|
1432
|
-
w(
|
|
1433
|
-
var
|
|
1432
|
+
w(qt, "buildStyleByKey");
|
|
1433
|
+
var qe = /* @__PURE__ */ w((t, n, s, e) => {
|
|
1434
1434
|
const i = e.db, o = i.getConfig?.(), { themeVariables: r, look: l, handDrawnSeed: f } = wt(), u = l === "handDrawn", a = [
|
|
1435
1435
|
r.venn1,
|
|
1436
1436
|
r.venn2,
|
|
@@ -1440,7 +1440,7 @@ var Ue = /* @__PURE__ */ w((t, n, s, e) => {
|
|
|
1440
1440
|
r.venn6,
|
|
1441
1441
|
r.venn7,
|
|
1442
1442
|
r.venn8
|
|
1443
|
-
].filter(Boolean), y = i.getDiagramTitle?.(), h = i.getSubsetData(), b = i.getTextData(), p =
|
|
1443
|
+
].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);
|
|
1444
1444
|
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);
|
|
1445
1445
|
const x = ot(document.createElement("div")), d = ve().width(E).height(_ - m);
|
|
1446
1446
|
x.datum(M).call(d);
|
|
@@ -1453,16 +1453,16 @@ var Ue = /* @__PURE__ */ w((t, n, s, e) => {
|
|
|
1453
1453
|
const T = Q([...R.data.sets].sort());
|
|
1454
1454
|
D.set(T, R);
|
|
1455
1455
|
}
|
|
1456
|
-
b.length > 0 &&
|
|
1457
|
-
const
|
|
1456
|
+
b.length > 0 && Ut(o, D, x, b, g, p);
|
|
1457
|
+
const U = te(r.background || "#f4f4f4");
|
|
1458
1458
|
x.selectAll(".venn-circle").each(function(R, T) {
|
|
1459
1459
|
const A = ot(this), P = Q([...R.sets].sort()), B = p.get(P), L = B?.fill || a[T % a.length] || r.primaryColor;
|
|
1460
1460
|
A.classed(`venn-set-${T % 8}`, !0);
|
|
1461
|
-
const W = B?.["fill-opacity"] ?? 0.1, z = B?.stroke || L,
|
|
1461
|
+
const W = B?.["fill-opacity"] ?? 0.1, z = B?.stroke || L, O = B?.["stroke-width"] || `${5 * g}`;
|
|
1462
1462
|
if (u && C) {
|
|
1463
1463
|
const X = D.get(P);
|
|
1464
1464
|
if (X && X.circles.length > 0) {
|
|
1465
|
-
const I = X.circles[0],
|
|
1465
|
+
const I = X.circles[0], F = C.circle(I.x, I.y, I.radius * 2, {
|
|
1466
1466
|
roughness: 0.7,
|
|
1467
1467
|
seed: f,
|
|
1468
1468
|
fill: It(L, 0.7),
|
|
@@ -1471,14 +1471,14 @@ var Ue = /* @__PURE__ */ w((t, n, s, e) => {
|
|
|
1471
1471
|
hachureGap: 8,
|
|
1472
1472
|
hachureAngle: -41 + T * 60,
|
|
1473
1473
|
stroke: z,
|
|
1474
|
-
strokeWidth: parseFloat(String(
|
|
1474
|
+
strokeWidth: parseFloat(String(O))
|
|
1475
1475
|
});
|
|
1476
|
-
A.select("path").remove(), A.node()?.insertBefore(
|
|
1476
|
+
A.select("path").remove(), A.node()?.insertBefore(F, A.select("text").node());
|
|
1477
1477
|
}
|
|
1478
1478
|
} else
|
|
1479
|
-
A.select("path").style("fill", L).style("fill-opacity", W).style("stroke", z).style("stroke-width",
|
|
1480
|
-
const
|
|
1481
|
-
A.select("text").style("font-size", `${48 * g}px`).style("fill",
|
|
1479
|
+
A.select("path").style("fill", L).style("fill-opacity", W).style("stroke", z).style("stroke-width", O).style("stroke-opacity", 0.95);
|
|
1480
|
+
const j = B?.color || (U ? ee(L, 30) : ne(L, 30));
|
|
1481
|
+
A.select("text").style("font-size", `${48 * g}px`).style("fill", j);
|
|
1482
1482
|
}), u && C ? x.selectAll(".venn-intersection").each(function(R) {
|
|
1483
1483
|
const T = ot(this), G = Q([...R.sets].sort()), P = p.get(G), B = P?.fill;
|
|
1484
1484
|
if (B) {
|
|
@@ -1493,8 +1493,8 @@ var Ue = /* @__PURE__ */ w((t, n, s, e) => {
|
|
|
1493
1493
|
hachureGap: 6,
|
|
1494
1494
|
hachureAngle: 60,
|
|
1495
1495
|
stroke: "none"
|
|
1496
|
-
}),
|
|
1497
|
-
|
|
1496
|
+
}), O = L.node();
|
|
1497
|
+
O?.parentNode?.insertBefore(z, O), L.remove();
|
|
1498
1498
|
}
|
|
1499
1499
|
} else
|
|
1500
1500
|
T.select("path").style("fill-opacity", 0);
|
|
@@ -1509,9 +1509,9 @@ var Ue = /* @__PURE__ */ w((t, n, s, e) => {
|
|
|
1509
1509
|
const A = Q([...R.sets].sort());
|
|
1510
1510
|
return p.get(A)?.fill ?? "transparent";
|
|
1511
1511
|
}));
|
|
1512
|
-
const V = c.append("g").attr("transform", `translate(0, ${m})`),
|
|
1513
|
-
if (
|
|
1514
|
-
for (const R of [...
|
|
1512
|
+
const V = c.append("g").attr("transform", `translate(0, ${m})`), N = x.select("svg").node();
|
|
1513
|
+
if (N && "childNodes" in N)
|
|
1514
|
+
for (const R of [...N.childNodes])
|
|
1515
1515
|
V.node()?.appendChild(R);
|
|
1516
1516
|
se(c, _, E, o?.useMaxWidth ?? !0);
|
|
1517
1517
|
}, "draw");
|
|
@@ -1519,7 +1519,7 @@ function Q(t) {
|
|
|
1519
1519
|
return t.join("|");
|
|
1520
1520
|
}
|
|
1521
1521
|
w(Q, "stableSetsKey");
|
|
1522
|
-
function
|
|
1522
|
+
function Ut(t, n, s, e, i, o) {
|
|
1523
1523
|
const r = t?.useDebugLayout ?? !1, f = s.select("svg").append("g").attr("class", "venn-text-nodes"), u = /* @__PURE__ */ new Map();
|
|
1524
1524
|
for (const a of e) {
|
|
1525
1525
|
const y = Q(a.sets), h = u.get(y);
|
|
@@ -1529,23 +1529,23 @@ function qt(t, n, s, e, i, o) {
|
|
|
1529
1529
|
const h = n.get(a);
|
|
1530
1530
|
if (!h?.text)
|
|
1531
1531
|
continue;
|
|
1532
|
-
const b = h.text.x, p = h.text.y, M = Math.min(...h.circles.map((
|
|
1533
|
-
...h.circles.map((
|
|
1532
|
+
const b = h.text.x, p = h.text.y, M = Math.min(...h.circles.map((N) => N.radius)), E = Math.min(
|
|
1533
|
+
...h.circles.map((N) => N.radius - Math.hypot(b - N.x, p - N.y))
|
|
1534
1534
|
);
|
|
1535
1535
|
let _ = Number.isFinite(E) ? Math.max(0, E) : 0;
|
|
1536
1536
|
_ === 0 && Number.isFinite(M) && (_ = M * 0.6);
|
|
1537
1537
|
const S = f.append("g").attr("class", "venn-text-area").attr("font-size", `${40 * i}px`);
|
|
1538
1538
|
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}`);
|
|
1539
|
-
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, C = p - m / 2 + x, k = Math.max(1, Math.ceil(Math.sqrt(y.length))), D = Math.max(1, Math.ceil(y.length / k)),
|
|
1540
|
-
for (const [
|
|
1541
|
-
const T =
|
|
1542
|
-
r && S.append("rect").attr("class", "venn-text-debug-cell").attr("x", d +
|
|
1543
|
-
const B =
|
|
1544
|
-
z &&
|
|
1539
|
+
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, C = p - m / 2 + x, k = Math.max(1, Math.ceil(Math.sqrt(y.length))), D = Math.max(1, Math.ceil(y.length / k)), U = g / k, V = m / D;
|
|
1540
|
+
for (const [N, R] of y.entries()) {
|
|
1541
|
+
const T = N % k, A = Math.floor(N / k), G = d + U * (T + 0.5), P = C + V * (A + 0.5);
|
|
1542
|
+
r && S.append("rect").attr("class", "venn-text-debug-cell").attr("x", d + U * T).attr("y", C + 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}`);
|
|
1543
|
+
const B = U * 0.9, L = V * 0.9, W = 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, O = W.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);
|
|
1544
|
+
z && O.style("color", z);
|
|
1545
1545
|
}
|
|
1546
1546
|
}
|
|
1547
1547
|
}
|
|
1548
|
-
w(
|
|
1548
|
+
w(Ut, "renderTextNodes");
|
|
1549
1549
|
function Gt(t) {
|
|
1550
1550
|
const n = new Set(t.map((i) => [...i.sets].sort().join("|"))), s = new Map(
|
|
1551
1551
|
t.filter((i) => i.sets.length === 1 && i.size !== void 0).map((i) => [i.sets[0], i.size])
|
|
@@ -1567,10 +1567,10 @@ function Gt(t) {
|
|
|
1567
1567
|
return e.length > 0 ? [...t, ...e] : t;
|
|
1568
1568
|
}
|
|
1569
1569
|
w(Gt, "ensurePairwiseSubsets");
|
|
1570
|
-
var
|
|
1570
|
+
var Ue = { draw: qe }, Ke = {
|
|
1571
1571
|
parser: we,
|
|
1572
1572
|
db: Pe,
|
|
1573
|
-
renderer:
|
|
1573
|
+
renderer: Ue,
|
|
1574
1574
|
styles: Ve
|
|
1575
1575
|
};
|
|
1576
1576
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./extractHeadings-CbjPphbm.cjs"),vt=(t,n)=>k.adjustChannel(t,"a",-n),Mt=1e-10;function st(t,n){const s=Gt(t),e=s.filter(l=>Ut(l,t));let i=0,o=0;const r=[];if(e.length>1){const l=wt(e);for(let u=0;u<e.length;++u){const a=e[u];a.angle=Math.atan2(a.x-l.x,a.y-l.y)}e.sort((u,a)=>a.angle-u.angle);let f=e[e.length-1];for(let u=0;u<e.length;++u){const a=e[u];o+=(f.x+a.x)*(a.y-f.y);const x={x:(a.x+f.x)/2,y:(a.y+f.y)/2};let h=null;for(let b=0;b<a.parentIndex.length;++b)if(f.parentIndex.includes(a.parentIndex[b])){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);let w=E-M;w<0&&(w+=2*Math.PI);const S=E-w/2;let g=q(x,{x:p.x+p.radius*Math.sin(S),y:p.y+p.radius*Math.cos(S)});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})}h!=null&&(r.push(h),i+=at(h.circle.radius,h.width),f=a)}}else{let l=t[0];for(let u=1;u<t.length;++u)t[u].radius<l.radius&&(l=t[u]);let f=!1;for(let u=0;u<t.length;++u)if(q(t[u],l)>Math.abs(l.radius-t[u].radius)){f=!0;break}f?i=o=0:(i=l.radius*l.radius*Math.PI,r.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-Mt,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}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}function Ut(t,n){return n.every(s=>q(t,s)<s.radius+Mt)}function Gt(t){const n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){const i=St(t[s],t[e]);for(const o of i)o.parentIndex=[s,e],n.push(o)}return n}function at(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function q(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function gt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return at(t,e)+at(n,i)}function St(t,n){const s=q(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];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);return[{x:l+u,y:f-a},{x:l-u,y:f+a}]}function wt(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function Wt(t,n,s,e){e=e||{};const i=e.maxIterations||100,o=e.tolerance||1e-10,r=t(n),l=t(s);let f=s-n;if(r*l>0)throw"Initial bisect points must have opposite signs";if(r===0)return n;if(l===0)return s;for(let u=0;u<i;++u){f/=2;const a=n+f,x=t(a);if(x*r>=0&&(n=a),Math.abs(f)<o||x===0)return a}return n+f}function lt(t){const n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function It(t,n){return lt(t).map(()=>lt(n))}function $(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function ct(t){return Math.sqrt($(t,t))}function ut(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function J(t,n,s,e,i){for(let o=0;o<t.length;++o)t[o]=n*s[o]+e*i[o]}function Tt(t,n,s){s=s||{};const e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,o=s.zeroDelta||.001,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:-.5,x=s.sigma!==void 0?s.sigma:.5;let h;const b=n.length,p=new Array(b+1);p[0]=n,p[0].fx=t(n),p[0].id=0;for(let _=0;_<b;++_){const c=n.slice();c[_]=c[_]?c[_]*i:o,p[_+1]=c,p[_+1].fx=t(c),p[_+1].id=_+1}function M(_){for(let c=0;c<_.length;c++)p[b][c]=_[c];p[b].fx=_.fx}const E=(_,c)=>_.fx-c.fx,w=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let _=0;_<e;++_){if(p.sort(E),s.history){const y=p.map(d=>{const R=d.slice();return R.fx=d.fx,R.id=d.id,R});y.sort((d,R)=>d.id-R.id),s.history.push({x:p[0].slice(),fx:p[0].fx,simplex:y})}h=0;for(let y=0;y<b;++y)h=Math.max(h,Math.abs(p[0][y]-p[1][y]));if(Math.abs(p[0].fx-p[b].fx)<r&&h<l)break;for(let y=0;y<b;++y){w[y]=0;for(let d=0;d<b;++d)w[y]+=p[d][y];w[y]/=b}const c=p[b];if(J(S,1+f,w,-f,c),S.fx=t(S),S.fx<p[0].fx)J(m,1+u,w,-u,c),m.fx=t(m),m.fx<S.fx?M(m):M(S);else if(S.fx>=p[b-1].fx){let y=!1;if(S.fx>c.fx?(J(g,1+a,w,-a,c),g.fx=t(g),g.fx<c.fx?M(g):y=!0):(J(g,1-a*f,w,a*f,c),g.fx=t(g),g.fx<S.fx?M(g):y=!0),y){if(x>=1)break;for(let d=1;d<p.length;++d)J(p[d],1-x,p[0],x,p[d]),p[d].fx=t(p[d])}}else M(S)}return p.sort(E),{fx:p[0].fx,x:p[0]}}function Kt(t,n,s,e,i,o,r){const l=s.fx,f=$(s.fxprime,n);let u=l,a=l,x=f,h=0;i=i||1,o=o||1e-6,r=r||.1;function b(p,M,E){for(let w=0;w<16;++w)if(i=(p+M)/2,J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),x=$(e.fxprime,n),u>l+o*i*f||u>=E)M=i;else{if(Math.abs(x)<=-r*f)return i;x*(M-p)>=0&&(M=p),p=i,E=u}return 0}for(let p=0;p<10;++p){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),x=$(e.fxprime,n),u>l+o*i*f||p&&u>=a)return b(h,i,a);if(Math.abs(x)<=-r*f)return i;if(x>=0)return b(i,h,u);a=u,h=i,i*=2}return i}function Ht(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const o=n.slice();let r,l,f=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),r=e.fxprime.slice(),ut(r,e.fxprime,-1);for(let a=0;a<u;++a){if(f=Kt(t,r,e,i,f),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),!f)ut(r,e.fxprime,-1);else{J(o,1,i.fxprime,-1,e.fxprime);const x=$(e.fxprime,e.fxprime),h=Math.max(0,$(o,i.fxprime)/x);J(r,h,r,-1,i.fxprime),l=e,e=i,i=l}if(ct(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),e}function Et(t,n={}){n.maxIterations=n.maxIterations||500;const s=n.initialLayout||Jt,e=n.lossFunction||tt,i=Yt(t,n),o=s(i,n),r=Object.keys(o),l=[];for(const a of r)l.push(o[a].x),l.push(o[a].y);const u=Tt(a=>{const x={};for(let h=0;h<r.length;++h){const b=r[h];x[b]={x:a[2*h],y:a[2*h+1],radius:o[b].radius}}return e(x,i)},l,n).x;for(let a=0;a<r.length;++a){const x=r[a];o[x].x=u[2*a],o[x].y=u[2*a+1]}return o}const zt=1e-10;function ft(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+zt?Math.abs(t-n):Wt(e=>gt(t,n,e)-s,0,t+n)}function Yt(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const f of e)for(let u=0;u<f.sets.length;u++){const a=String(f.sets[u]);l.set(a,f.size+(l.get(a)||0));for(let x=u+1;x<f.sets.length;x++){const h=String(f.sets[x]),b=`${a};${h}`,p=`${h};${a}`;l.set(b,f.size+(l.get(b)||0)),l.set(p,f.size+(l.get(p)||0))}}for(const f of e)f.sets.length<3&&(f.size=l.get(i(f.sets)))}const o=[],r=new Set;for(const l of e)if(l.sets.length===1)o.push(l.sets[0]);else if(l.sets.length===2){const f=l.sets[0],u=l.sets[1];r.add(i(l.sets)),r.add(i([u,f]))}o.sort((l,f)=>l===f?0:l<f?-1:1);for(let l=0;l<o.length;++l){const f=o[l];for(let u=l+1;u<o.length;++u){const a=o[u];r.has(i([f,a]))||e.push({sets:[f,a],size:0})}}return e}function Xt(t,n,s){const e=It(n.length,n.length),i=It(n.length,n.length);return t.filter(o=>o.sets.length===2).forEach(o=>{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=ft(f,u,o.size);e[r][l]=e[l][r]=a;let x=0;o.size+1e-10>=Math.min(n[r].size,n[l].size)?x=1:o.size<=1e-10&&(x=-1),i[r][l]=i[l][r]=x}),{distances:e,constraints:i}}function Zt(t,n,s,e){for(let o=0;o<n.length;++o)n[o]=0;let i=0;for(let o=0;o<s.length;++o){const r=t[2*o],l=t[2*o+1];for(let f=o+1;f<s.length;++f){const u=t[2*f],a=t[2*f+1],x=s[o][f],h=e[o][f],b=(u-r)*(u-r)+(a-l)*(a-l),p=Math.sqrt(b),M=b-x*x;h>0&&p<=x||h<0&&p>=x||(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))}}return i}function Jt(t,n={}){let s=$t(t,n);const e=n.lossFunction||tt;if(t.length>=8){const i=Qt(t,n),o=e(i,t),r=e(s,t);o+1e-8<r&&(s=i)}return s}function Qt(t,n={}){const s=n.restarts||10,e=[],i={};for(const h of t)h.sets.length===1&&(i[h.sets[0]]=e.length,e.push(h));let{distances:o,constraints:r}=Xt(t,e,i);const l=ct(o.map(ct))/o.length;o=o.map(h=>h.map(b=>b/l));const f=(h,b)=>Zt(h,b,o,r);let u=null;for(let h=0;h<s;++h){const b=lt(o.length*2).map(Math.random),p=Ht(f,b,n);(!u||p.fx<u.fx)&&(u=p)}const a=u.x,x={};for(let h=0;h<e.length;++h){const b=e[h];x[b.sets[0]]={x:a[2*h]*l,y:a[2*h+1]*l,radius:Math.sqrt(b.size/Math.PI)}}if(n.history)for(const h of n.history)ut(h.x,l);return x}function $t(t,n){const s=n&&n.lossFunction?n.lossFunction:tt,e={},i={};for(const x of t)if(x.sets.length===1){const h=x.sets[0];e[h]={x:1e10,y:1e10,rowid:e.length,size:x.size,radius:Math.sqrt(x.size/Math.PI)},i[h]=[]}t=t.filter(x=>x.sets.length===2);for(const x of t){let h=x.weight!=null?x.weight:1;const b=x.sets[0],p=x.sets[1];x.size+zt>=Math.min(e[b].size,e[p].size)&&(h=0),i[b].push({set:p,size:x.size,weight:h}),i[p].push({set:b,size:x.size,weight:h})}const o=[];Object.keys(i).forEach(x=>{let h=0;for(let b=0;b<i[x].length;++b)h+=i[x][b].size*i[x][b].weight;o.push({set:x,size:h})});function r(x,h){return h.size-x.size}o.sort(r);const l={};function f(x){return x.set in l}function u(x,h){e[h].x=x.x,e[h].y=x.y,l[h]=!0}u({x:0,y:0},o[0].set);for(let x=1;x<o.length;++x){const h=o[x].set,b=i[h].filter(f),p=e[h];if(b.sort(r),b.length===0)throw"ERROR: missing pairwise overlap information";const M=[];for(var a=0;a<b.length;++a){const S=e[b[a].set],g=ft(p.radius,S.radius,b[a].size);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});for(let m=a+1;m<b.length;++m){const _=e[b[m].set],c=ft(p.radius,_.radius,b[m].size),y=St({x:S.x,y:S.y,radius:g},{x:_.x,y:_.y,radius:c});M.push(...y)}}let E=1e50,w=M[0];for(const S of M){e[h].x=S.x,e[h].y=S.y;const g=s(e,t);g<E&&(E=g,w=S)}u(w,h)}return e}function tt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const r=t[e.sets[0]],l=t[e.sets[1]];i=gt(r.radius,l.radius,q(r,l))}else i=st(e.sets.map(r=>t[r]));const o=e.weight!=null?e.weight:1;s+=o*(i-e.size)*(i-e.size)}return s}function At(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],f=t[e.sets[1]];i=gt(l.radius,f.radius,q(l,f))}else i=st(e.sets.map(l=>t[l]));const o=e.weight!=null?e.weight:1,r=Math.log((i+1)/(e.size+1));s+=o*r*r}return s}function te(t,n,s){if(s==null?t.sort((i,o)=>o.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,o=t[0].y;for(const r of t)r.x-=i,r.y-=o}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){const i=Math.atan2(t[1].x,t[1].y)-n,o=Math.cos(i),r=Math.sin(i);for(const l of t){const f=l.x,u=l.y;l.x=o*f-r*u,l.y=r*f+o*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const o=t[1].y/(1e-10+t[1].x);for(const r of t){var e=(r.x+o*r.y)/(1+o*o);r.x=2*e-r.x,r.y=2*e*o-r.y}}}}function ee(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,o){const r=n(i),l=n(o);r.parent=l}for(let i=0;i<t.length;++i)for(let o=i+1;o<t.length;++o){const r=t[i].radius+t[o].radius;q(t[i],t[o])+1e-10<r&&s(t[o],t[i])}const e=new Map;for(let i=0;i<t.length;++i){const o=n(t[i]).parent.setid;e.has(o)||e.set(o,[]),e.get(o).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function ht(t){const n=s=>{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);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Dt(t,n,s){n==null&&(n=Math.PI/2);let e=Ot(t).map(u=>Object.assign({},u));const i=ee(e);for(const u of i){te(u,n,s);const a=ht(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let o=e.bounds;const r=(o.xRange.max-o.xRange.min)/50;function l(u,a,x){if(!u)return;const h=u.bounds;let b,p;if(a)b=o.xRange.max-h.xRange.min+r;else{b=o.xRange.max-h.xRange.max;const M=(h.xRange.max-h.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;M<0&&(b+=M)}if(x)p=o.yRange.max-h.yRange.min+r;else{p=o.yRange.max-h.yRange.max;const M=(h.yRange.max-h.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;M<0&&(p+=M)}for(const M of u)M.x+=b,M.y+=p,e.push(M)}let f=1;for(;f<i.length;)l(i[f],!0,!1),l(i[f+1],!1,!0),l(i[f+2],!0,!0),f+=3,o=ht(e);return Ct(e)}function Rt(t,n,s,e,i){const o=Ot(t);n-=2*e,s-=2*e;const{xRange:r,yRange:l}=ht(o);if(r.max===r.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),t;let f,u;if(i){const b=Math.sqrt(i/Math.PI)*2;f=n/b,u=s/b}else f=n/(r.max-r.min),u=s/(l.max-l.min);const a=Math.min(u,f),x=(n-(r.max-r.min)*a)/2,h=(s-(l.max-l.min)*a)/2;return Ct(o.map(b=>({radius:a*b.radius,x:e+x+(b.x-r.min)*a,y:e+h+(b.y-l.min)*a,setid:b.setid})))}function Ct(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ot(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ne(t={}){let n=!1,s=600,e=350,i=15,o=1e3,r=Math.PI/2,l=!0,f=null,u=!0,a=!0,x=null,h=null,b=!1,p=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},w=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(y){if(y in E)return E[y];var d=E[y]=w[S];return S+=1,S>=w.length&&(S=0),d},m=Et,_=tt;function c(y){let d=y.datum();const R=new Set;d.forEach(I=>{I.size==0&&I.sets.length==1&&R.add(I.sets[0])}),d=d.filter(I=>!I.sets.some(j=>R.has(j)));let v={},C={};if(d.length>0){let I=m(d,{lossFunction:_,distinct:b});l&&(I=Dt(I,r,h)),v=Rt(I,s,e,i,f),C=jt(v,d,M)}const U={};d.forEach(I=>{I.label&&(U[I.sets]=I.label)});function V(I){if(I.sets in U)return U[I.sets];if(I.sets.length==1)return""+I.sets[0]}y.selectAll("svg").data([v]).enter().append("svg");const N=y.select("svg");n?N.attr("viewBox",`0 0 ${s} ${e}`):N.attr("width",s).attr("height",e);const D={};let T=!1;N.selectAll(".venn-area path").each(function(I){const j=this.getAttribute("d");I.sets.length==1&&j&&!b&&(T=!0,D[I.sets[0]]=oe(j))});function A(I){return j=>{const H=I.sets.map(et=>{let Y=D[et],Z=v[et];return Y||(Y={x:s/2,y:e/2,radius:1}),Z||(Z={x:s/2,y:e/2,radius:1}),{x:Y.x*(1-j)+Z.x*j,y:Y.y*(1-j)+Z.y*j,radius:Y.radius*(1-j)+Z.radius*j}});return kt(H,p)}}const G=N.selectAll(".venn-area").data(d,I=>I.sets),L=G.enter().append("g").attr("class",I=>`venn-area venn-${I.sets.length==1?"circle":"intersection"}${I.colour||I.color?" venn-coloured":""}`).attr("data-venn-sets",I=>I.sets.join("_")),B=L.append("path"),P=L.append("text").attr("class","label").text(I=>V(I)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(B.style("fill-opacity","0").filter(I=>I.sets.length==1).style("fill",I=>I.colour?I.colour:I.color?I.color:g(I.sets)).style("fill-opacity",".25"),P.style("fill",I=>I.colour||I.color?"#FFF":t.textFill?t.textFill:I.sets.length==1?g(I.sets):"#444"));function K(I){return typeof I.transition=="function"?I.transition("venn").duration(o):I}let z=y;T&&typeof z.transition=="function"?(z=K(y),z.selectAll("path").attrTween("d",A)):z.selectAll("path").attr("d",I=>kt(I.sets.map(j=>v[j])),p);const O=z.selectAll("text").filter(I=>I.sets in C).text(I=>V(I)).attr("x",I=>Math.floor(C[I.sets].x)).attr("y",I=>Math.floor(C[I.sets].y));u&&(T?"on"in O?O.on("end",ot(v,V)):O.each("end",ot(v,V)):O.each(ot(v,V)));const F=K(G.exit()).remove();typeof G.transition=="function"&&F.selectAll("path").attrTween("d",A);const X=F.selectAll("text").attr("x",s/2).attr("y",e/2);return x!==null&&(P.style("font-size","0px"),O.style("font-size",x),X.style("font-size","0px")),{circles:v,textCentres:C,nodes:G,enter:L,update:z,exit:F}}return c.wrap=function(y){return arguments.length?(u=y,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(y){return arguments.length?(s=y,c):s},c.height=function(y){return arguments.length?(e=y,c):e},c.padding=function(y){return arguments.length?(i=y,c):i},c.distinct=function(y){return arguments.length?(b=y,c):b},c.colours=function(y){return arguments.length?(g=y,c):g},c.colors=function(y){return arguments.length?(g=y,c):g},c.fontSize=function(y){return arguments.length?(x=y,c):x},c.round=function(y){return arguments.length?(p=y,c):p},c.duration=function(y){return arguments.length?(o=y,c):o},c.layoutFunction=function(y){return arguments.length?(m=y,c):m},c.normalize=function(y){return arguments.length?(l=y,c):l},c.scaleToFit=function(y){return arguments.length?(f=y,c):f},c.styled=function(y){return arguments.length?(a=y,c):a},c.orientation=function(y){return arguments.length?(r=y,c):r},c.orientationOrder=function(y){return arguments.length?(h=y,c):h},c.lossFunction=function(y){return arguments.length?(_=y==="default"?tt:y==="logRatio"?At:y,c):_},c}function ot(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,o=n(s)||"",r=o.split(/\s+/).reverse(),f=(o.length+r.length)/3;let u=r.pop(),a=[u],x=0;const h=1.1;e.textContent=null;const b=[];function p(g){const m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=p(u);for(;u=r.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>f&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=p(u),x++)}const E=.35-x*h/2,w=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",w),g.setAttribute("y",S),g.setAttribute("dy",`${E+m*h}em`)})}}function rt(t,n,s){let e=n[0].radius-q(n[0],t);for(let i=1;i<n.length;++i){const o=n[i].radius-q(n[i],t);o<=e&&(e=o)}for(let i=0;i<s.length;++i){const o=q(s[i],t)-s[i].radius;o<=e&&(e=o)}return e}function Nt(t,n,s){const e=[];for(const a of t)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});let i=e[0],o=rt(e[0],t,n);for(let a=1;a<e.length;++a){const x=rt(e[a],t,n);x>=o&&(i=e[a],o=x)}const r=Tt(a=>-1*rt({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:r[0],y:r[1]};let f=!0;for(const a of t)if(q(l,a)>a.radius){f=!1;break}for(const a of n)if(q(l,a)<a.radius){f=!1;break}if(f)return l;if(t.length==1)return{x:t[0].x,y:t[0].y};const u={};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?Nt(t,[]):wt(u.arcs.map(a=>a.p1))}function se(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e<s.length;e++){const i=s[e],o=t[i];for(let r=e+1;r<s.length;++r){const l=s[r],f=t[l],u=q(o,f);u+f.radius<=o.radius+1e-10?n[l].push(i):u+o.radius<=f.radius+1e-10&&n[i].push(l)}}return n}function jt(t,n,s){const e={},i=se(t);for(let o=0;o<n.length;++o){const r=n[o].sets,l={},f={};for(let h=0;h<r.length;++h){l[r[h]]=!0;const b=i[r[h]];for(let p=0;p<b.length;++p)f[b[p]]=!0}const u=[],a=[];for(let h in t)h in l?u.push(t[h]):h in f||a.push(t[h]);const x=Nt(u,a,s);e[r]=x,x.disjoint&&n[o].size>0&&console.log("WARNING: area "+r+" not represented on screen")}return e}function ie(t,n,s){const e=[];return e.push(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./extractHeadings-DLNXUqAG.cjs"),vt=(t,n)=>k.adjustChannel(t,"a",-n),Mt=1e-10;function st(t,n){const s=Gt(t),e=s.filter(l=>Ut(l,t));let i=0,o=0;const r=[];if(e.length>1){const l=wt(e);for(let u=0;u<e.length;++u){const a=e[u];a.angle=Math.atan2(a.x-l.x,a.y-l.y)}e.sort((u,a)=>a.angle-u.angle);let f=e[e.length-1];for(let u=0;u<e.length;++u){const a=e[u];o+=(f.x+a.x)*(a.y-f.y);const x={x:(a.x+f.x)/2,y:(a.y+f.y)/2};let h=null;for(let b=0;b<a.parentIndex.length;++b)if(f.parentIndex.includes(a.parentIndex[b])){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);let w=E-M;w<0&&(w+=2*Math.PI);const S=E-w/2;let g=q(x,{x:p.x+p.radius*Math.sin(S),y:p.y+p.radius*Math.cos(S)});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})}h!=null&&(r.push(h),i+=at(h.circle.radius,h.width),f=a)}}else{let l=t[0];for(let u=1;u<t.length;++u)t[u].radius<l.radius&&(l=t[u]);let f=!1;for(let u=0;u<t.length;++u)if(q(t[u],l)>Math.abs(l.radius-t[u].radius)){f=!0;break}f?i=o=0:(i=l.radius*l.radius*Math.PI,r.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-Mt,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}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}function Ut(t,n){return n.every(s=>q(t,s)<s.radius+Mt)}function Gt(t){const n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){const i=St(t[s],t[e]);for(const o of i)o.parentIndex=[s,e],n.push(o)}return n}function at(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function q(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function gt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return at(t,e)+at(n,i)}function St(t,n){const s=q(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];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);return[{x:l+u,y:f-a},{x:l-u,y:f+a}]}function wt(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function Wt(t,n,s,e){e=e||{};const i=e.maxIterations||100,o=e.tolerance||1e-10,r=t(n),l=t(s);let f=s-n;if(r*l>0)throw"Initial bisect points must have opposite signs";if(r===0)return n;if(l===0)return s;for(let u=0;u<i;++u){f/=2;const a=n+f,x=t(a);if(x*r>=0&&(n=a),Math.abs(f)<o||x===0)return a}return n+f}function lt(t){const n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function It(t,n){return lt(t).map(()=>lt(n))}function $(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function ct(t){return Math.sqrt($(t,t))}function ut(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function J(t,n,s,e,i){for(let o=0;o<t.length;++o)t[o]=n*s[o]+e*i[o]}function Tt(t,n,s){s=s||{};const e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,o=s.zeroDelta||.001,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:-.5,x=s.sigma!==void 0?s.sigma:.5;let h;const b=n.length,p=new Array(b+1);p[0]=n,p[0].fx=t(n),p[0].id=0;for(let _=0;_<b;++_){const c=n.slice();c[_]=c[_]?c[_]*i:o,p[_+1]=c,p[_+1].fx=t(c),p[_+1].id=_+1}function M(_){for(let c=0;c<_.length;c++)p[b][c]=_[c];p[b].fx=_.fx}const E=(_,c)=>_.fx-c.fx,w=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let _=0;_<e;++_){if(p.sort(E),s.history){const y=p.map(d=>{const R=d.slice();return R.fx=d.fx,R.id=d.id,R});y.sort((d,R)=>d.id-R.id),s.history.push({x:p[0].slice(),fx:p[0].fx,simplex:y})}h=0;for(let y=0;y<b;++y)h=Math.max(h,Math.abs(p[0][y]-p[1][y]));if(Math.abs(p[0].fx-p[b].fx)<r&&h<l)break;for(let y=0;y<b;++y){w[y]=0;for(let d=0;d<b;++d)w[y]+=p[d][y];w[y]/=b}const c=p[b];if(J(S,1+f,w,-f,c),S.fx=t(S),S.fx<p[0].fx)J(m,1+u,w,-u,c),m.fx=t(m),m.fx<S.fx?M(m):M(S);else if(S.fx>=p[b-1].fx){let y=!1;if(S.fx>c.fx?(J(g,1+a,w,-a,c),g.fx=t(g),g.fx<c.fx?M(g):y=!0):(J(g,1-a*f,w,a*f,c),g.fx=t(g),g.fx<S.fx?M(g):y=!0),y){if(x>=1)break;for(let d=1;d<p.length;++d)J(p[d],1-x,p[0],x,p[d]),p[d].fx=t(p[d])}}else M(S)}return p.sort(E),{fx:p[0].fx,x:p[0]}}function Kt(t,n,s,e,i,o,r){const l=s.fx,f=$(s.fxprime,n);let u=l,a=l,x=f,h=0;i=i||1,o=o||1e-6,r=r||.1;function b(p,M,E){for(let w=0;w<16;++w)if(i=(p+M)/2,J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),x=$(e.fxprime,n),u>l+o*i*f||u>=E)M=i;else{if(Math.abs(x)<=-r*f)return i;x*(M-p)>=0&&(M=p),p=i,E=u}return 0}for(let p=0;p<10;++p){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),x=$(e.fxprime,n),u>l+o*i*f||p&&u>=a)return b(h,i,a);if(Math.abs(x)<=-r*f)return i;if(x>=0)return b(i,h,u);a=u,h=i,i*=2}return i}function Ht(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const o=n.slice();let r,l,f=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),r=e.fxprime.slice(),ut(r,e.fxprime,-1);for(let a=0;a<u;++a){if(f=Kt(t,r,e,i,f),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),!f)ut(r,e.fxprime,-1);else{J(o,1,i.fxprime,-1,e.fxprime);const x=$(e.fxprime,e.fxprime),h=Math.max(0,$(o,i.fxprime)/x);J(r,h,r,-1,i.fxprime),l=e,e=i,i=l}if(ct(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),e}function Et(t,n={}){n.maxIterations=n.maxIterations||500;const s=n.initialLayout||Jt,e=n.lossFunction||tt,i=Yt(t,n),o=s(i,n),r=Object.keys(o),l=[];for(const a of r)l.push(o[a].x),l.push(o[a].y);const u=Tt(a=>{const x={};for(let h=0;h<r.length;++h){const b=r[h];x[b]={x:a[2*h],y:a[2*h+1],radius:o[b].radius}}return e(x,i)},l,n).x;for(let a=0;a<r.length;++a){const x=r[a];o[x].x=u[2*a],o[x].y=u[2*a+1]}return o}const zt=1e-10;function ft(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+zt?Math.abs(t-n):Wt(e=>gt(t,n,e)-s,0,t+n)}function Yt(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const f of e)for(let u=0;u<f.sets.length;u++){const a=String(f.sets[u]);l.set(a,f.size+(l.get(a)||0));for(let x=u+1;x<f.sets.length;x++){const h=String(f.sets[x]),b=`${a};${h}`,p=`${h};${a}`;l.set(b,f.size+(l.get(b)||0)),l.set(p,f.size+(l.get(p)||0))}}for(const f of e)f.sets.length<3&&(f.size=l.get(i(f.sets)))}const o=[],r=new Set;for(const l of e)if(l.sets.length===1)o.push(l.sets[0]);else if(l.sets.length===2){const f=l.sets[0],u=l.sets[1];r.add(i(l.sets)),r.add(i([u,f]))}o.sort((l,f)=>l===f?0:l<f?-1:1);for(let l=0;l<o.length;++l){const f=o[l];for(let u=l+1;u<o.length;++u){const a=o[u];r.has(i([f,a]))||e.push({sets:[f,a],size:0})}}return e}function Xt(t,n,s){const e=It(n.length,n.length),i=It(n.length,n.length);return t.filter(o=>o.sets.length===2).forEach(o=>{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=ft(f,u,o.size);e[r][l]=e[l][r]=a;let x=0;o.size+1e-10>=Math.min(n[r].size,n[l].size)?x=1:o.size<=1e-10&&(x=-1),i[r][l]=i[l][r]=x}),{distances:e,constraints:i}}function Zt(t,n,s,e){for(let o=0;o<n.length;++o)n[o]=0;let i=0;for(let o=0;o<s.length;++o){const r=t[2*o],l=t[2*o+1];for(let f=o+1;f<s.length;++f){const u=t[2*f],a=t[2*f+1],x=s[o][f],h=e[o][f],b=(u-r)*(u-r)+(a-l)*(a-l),p=Math.sqrt(b),M=b-x*x;h>0&&p<=x||h<0&&p>=x||(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))}}return i}function Jt(t,n={}){let s=$t(t,n);const e=n.lossFunction||tt;if(t.length>=8){const i=Qt(t,n),o=e(i,t),r=e(s,t);o+1e-8<r&&(s=i)}return s}function Qt(t,n={}){const s=n.restarts||10,e=[],i={};for(const h of t)h.sets.length===1&&(i[h.sets[0]]=e.length,e.push(h));let{distances:o,constraints:r}=Xt(t,e,i);const l=ct(o.map(ct))/o.length;o=o.map(h=>h.map(b=>b/l));const f=(h,b)=>Zt(h,b,o,r);let u=null;for(let h=0;h<s;++h){const b=lt(o.length*2).map(Math.random),p=Ht(f,b,n);(!u||p.fx<u.fx)&&(u=p)}const a=u.x,x={};for(let h=0;h<e.length;++h){const b=e[h];x[b.sets[0]]={x:a[2*h]*l,y:a[2*h+1]*l,radius:Math.sqrt(b.size/Math.PI)}}if(n.history)for(const h of n.history)ut(h.x,l);return x}function $t(t,n){const s=n&&n.lossFunction?n.lossFunction:tt,e={},i={};for(const x of t)if(x.sets.length===1){const h=x.sets[0];e[h]={x:1e10,y:1e10,rowid:e.length,size:x.size,radius:Math.sqrt(x.size/Math.PI)},i[h]=[]}t=t.filter(x=>x.sets.length===2);for(const x of t){let h=x.weight!=null?x.weight:1;const b=x.sets[0],p=x.sets[1];x.size+zt>=Math.min(e[b].size,e[p].size)&&(h=0),i[b].push({set:p,size:x.size,weight:h}),i[p].push({set:b,size:x.size,weight:h})}const o=[];Object.keys(i).forEach(x=>{let h=0;for(let b=0;b<i[x].length;++b)h+=i[x][b].size*i[x][b].weight;o.push({set:x,size:h})});function r(x,h){return h.size-x.size}o.sort(r);const l={};function f(x){return x.set in l}function u(x,h){e[h].x=x.x,e[h].y=x.y,l[h]=!0}u({x:0,y:0},o[0].set);for(let x=1;x<o.length;++x){const h=o[x].set,b=i[h].filter(f),p=e[h];if(b.sort(r),b.length===0)throw"ERROR: missing pairwise overlap information";const M=[];for(var a=0;a<b.length;++a){const S=e[b[a].set],g=ft(p.radius,S.radius,b[a].size);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});for(let m=a+1;m<b.length;++m){const _=e[b[m].set],c=ft(p.radius,_.radius,b[m].size),y=St({x:S.x,y:S.y,radius:g},{x:_.x,y:_.y,radius:c});M.push(...y)}}let E=1e50,w=M[0];for(const S of M){e[h].x=S.x,e[h].y=S.y;const g=s(e,t);g<E&&(E=g,w=S)}u(w,h)}return e}function tt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const r=t[e.sets[0]],l=t[e.sets[1]];i=gt(r.radius,l.radius,q(r,l))}else i=st(e.sets.map(r=>t[r]));const o=e.weight!=null?e.weight:1;s+=o*(i-e.size)*(i-e.size)}return s}function At(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],f=t[e.sets[1]];i=gt(l.radius,f.radius,q(l,f))}else i=st(e.sets.map(l=>t[l]));const o=e.weight!=null?e.weight:1,r=Math.log((i+1)/(e.size+1));s+=o*r*r}return s}function te(t,n,s){if(s==null?t.sort((i,o)=>o.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,o=t[0].y;for(const r of t)r.x-=i,r.y-=o}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){const i=Math.atan2(t[1].x,t[1].y)-n,o=Math.cos(i),r=Math.sin(i);for(const l of t){const f=l.x,u=l.y;l.x=o*f-r*u,l.y=r*f+o*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const o=t[1].y/(1e-10+t[1].x);for(const r of t){var e=(r.x+o*r.y)/(1+o*o);r.x=2*e-r.x,r.y=2*e*o-r.y}}}}function ee(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,o){const r=n(i),l=n(o);r.parent=l}for(let i=0;i<t.length;++i)for(let o=i+1;o<t.length;++o){const r=t[i].radius+t[o].radius;q(t[i],t[o])+1e-10<r&&s(t[o],t[i])}const e=new Map;for(let i=0;i<t.length;++i){const o=n(t[i]).parent.setid;e.has(o)||e.set(o,[]),e.get(o).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function ht(t){const n=s=>{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);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Dt(t,n,s){n==null&&(n=Math.PI/2);let e=Ot(t).map(u=>Object.assign({},u));const i=ee(e);for(const u of i){te(u,n,s);const a=ht(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let o=e.bounds;const r=(o.xRange.max-o.xRange.min)/50;function l(u,a,x){if(!u)return;const h=u.bounds;let b,p;if(a)b=o.xRange.max-h.xRange.min+r;else{b=o.xRange.max-h.xRange.max;const M=(h.xRange.max-h.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;M<0&&(b+=M)}if(x)p=o.yRange.max-h.yRange.min+r;else{p=o.yRange.max-h.yRange.max;const M=(h.yRange.max-h.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;M<0&&(p+=M)}for(const M of u)M.x+=b,M.y+=p,e.push(M)}let f=1;for(;f<i.length;)l(i[f],!0,!1),l(i[f+1],!1,!0),l(i[f+2],!0,!0),f+=3,o=ht(e);return Ct(e)}function Rt(t,n,s,e,i){const o=Ot(t);n-=2*e,s-=2*e;const{xRange:r,yRange:l}=ht(o);if(r.max===r.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),t;let f,u;if(i){const b=Math.sqrt(i/Math.PI)*2;f=n/b,u=s/b}else f=n/(r.max-r.min),u=s/(l.max-l.min);const a=Math.min(u,f),x=(n-(r.max-r.min)*a)/2,h=(s-(l.max-l.min)*a)/2;return Ct(o.map(b=>({radius:a*b.radius,x:e+x+(b.x-r.min)*a,y:e+h+(b.y-l.min)*a,setid:b.setid})))}function Ct(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ot(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ne(t={}){let n=!1,s=600,e=350,i=15,o=1e3,r=Math.PI/2,l=!0,f=null,u=!0,a=!0,x=null,h=null,b=!1,p=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},w=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(y){if(y in E)return E[y];var d=E[y]=w[S];return S+=1,S>=w.length&&(S=0),d},m=Et,_=tt;function c(y){let d=y.datum();const R=new Set;d.forEach(I=>{I.size==0&&I.sets.length==1&&R.add(I.sets[0])}),d=d.filter(I=>!I.sets.some(j=>R.has(j)));let v={},C={};if(d.length>0){let I=m(d,{lossFunction:_,distinct:b});l&&(I=Dt(I,r,h)),v=Rt(I,s,e,i,f),C=jt(v,d,M)}const U={};d.forEach(I=>{I.label&&(U[I.sets]=I.label)});function V(I){if(I.sets in U)return U[I.sets];if(I.sets.length==1)return""+I.sets[0]}y.selectAll("svg").data([v]).enter().append("svg");const N=y.select("svg");n?N.attr("viewBox",`0 0 ${s} ${e}`):N.attr("width",s).attr("height",e);const D={};let T=!1;N.selectAll(".venn-area path").each(function(I){const j=this.getAttribute("d");I.sets.length==1&&j&&!b&&(T=!0,D[I.sets[0]]=oe(j))});function A(I){return j=>{const H=I.sets.map(et=>{let Y=D[et],Z=v[et];return Y||(Y={x:s/2,y:e/2,radius:1}),Z||(Z={x:s/2,y:e/2,radius:1}),{x:Y.x*(1-j)+Z.x*j,y:Y.y*(1-j)+Z.y*j,radius:Y.radius*(1-j)+Z.radius*j}});return kt(H,p)}}const G=N.selectAll(".venn-area").data(d,I=>I.sets),L=G.enter().append("g").attr("class",I=>`venn-area venn-${I.sets.length==1?"circle":"intersection"}${I.colour||I.color?" venn-coloured":""}`).attr("data-venn-sets",I=>I.sets.join("_")),B=L.append("path"),P=L.append("text").attr("class","label").text(I=>V(I)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(B.style("fill-opacity","0").filter(I=>I.sets.length==1).style("fill",I=>I.colour?I.colour:I.color?I.color:g(I.sets)).style("fill-opacity",".25"),P.style("fill",I=>I.colour||I.color?"#FFF":t.textFill?t.textFill:I.sets.length==1?g(I.sets):"#444"));function K(I){return typeof I.transition=="function"?I.transition("venn").duration(o):I}let z=y;T&&typeof z.transition=="function"?(z=K(y),z.selectAll("path").attrTween("d",A)):z.selectAll("path").attr("d",I=>kt(I.sets.map(j=>v[j])),p);const O=z.selectAll("text").filter(I=>I.sets in C).text(I=>V(I)).attr("x",I=>Math.floor(C[I.sets].x)).attr("y",I=>Math.floor(C[I.sets].y));u&&(T?"on"in O?O.on("end",ot(v,V)):O.each("end",ot(v,V)):O.each(ot(v,V)));const F=K(G.exit()).remove();typeof G.transition=="function"&&F.selectAll("path").attrTween("d",A);const X=F.selectAll("text").attr("x",s/2).attr("y",e/2);return x!==null&&(P.style("font-size","0px"),O.style("font-size",x),X.style("font-size","0px")),{circles:v,textCentres:C,nodes:G,enter:L,update:z,exit:F}}return c.wrap=function(y){return arguments.length?(u=y,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(y){return arguments.length?(s=y,c):s},c.height=function(y){return arguments.length?(e=y,c):e},c.padding=function(y){return arguments.length?(i=y,c):i},c.distinct=function(y){return arguments.length?(b=y,c):b},c.colours=function(y){return arguments.length?(g=y,c):g},c.colors=function(y){return arguments.length?(g=y,c):g},c.fontSize=function(y){return arguments.length?(x=y,c):x},c.round=function(y){return arguments.length?(p=y,c):p},c.duration=function(y){return arguments.length?(o=y,c):o},c.layoutFunction=function(y){return arguments.length?(m=y,c):m},c.normalize=function(y){return arguments.length?(l=y,c):l},c.scaleToFit=function(y){return arguments.length?(f=y,c):f},c.styled=function(y){return arguments.length?(a=y,c):a},c.orientation=function(y){return arguments.length?(r=y,c):r},c.orientationOrder=function(y){return arguments.length?(h=y,c):h},c.lossFunction=function(y){return arguments.length?(_=y==="default"?tt:y==="logRatio"?At:y,c):_},c}function ot(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,o=n(s)||"",r=o.split(/\s+/).reverse(),f=(o.length+r.length)/3;let u=r.pop(),a=[u],x=0;const h=1.1;e.textContent=null;const b=[];function p(g){const m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=p(u);for(;u=r.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>f&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=p(u),x++)}const E=.35-x*h/2,w=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",w),g.setAttribute("y",S),g.setAttribute("dy",`${E+m*h}em`)})}}function rt(t,n,s){let e=n[0].radius-q(n[0],t);for(let i=1;i<n.length;++i){const o=n[i].radius-q(n[i],t);o<=e&&(e=o)}for(let i=0;i<s.length;++i){const o=q(s[i],t)-s[i].radius;o<=e&&(e=o)}return e}function Nt(t,n,s){const e=[];for(const a of t)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});let i=e[0],o=rt(e[0],t,n);for(let a=1;a<e.length;++a){const x=rt(e[a],t,n);x>=o&&(i=e[a],o=x)}const r=Tt(a=>-1*rt({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:r[0],y:r[1]};let f=!0;for(const a of t)if(q(l,a)>a.radius){f=!1;break}for(const a of n)if(q(l,a)<a.radius){f=!1;break}if(f)return l;if(t.length==1)return{x:t[0].x,y:t[0].y};const u={};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?Nt(t,[]):wt(u.arcs.map(a=>a.p1))}function se(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e<s.length;e++){const i=s[e],o=t[i];for(let r=e+1;r<s.length;++r){const l=s[r],f=t[l],u=q(o,f);u+f.radius<=o.radius+1e-10?n[l].push(i):u+o.radius<=f.radius+1e-10&&n[i].push(l)}}return n}function jt(t,n,s){const e={},i=se(t);for(let o=0;o<n.length;++o){const r=n[o].sets,l={},f={};for(let h=0;h<r.length;++h){l[r[h]]=!0;const b=i[r[h]];for(let p=0;p<b.length;++p)f[b[p]]=!0}const u=[],a=[];for(let h in t)h in l?u.push(t[h]):h in f||a.push(t[h]);const x=Nt(u,a,s);e[r]=x,x.disjoint&&n[o].size>0&&console.log("WARNING: area "+r+" not represented on screen")}return e}function ie(t,n,s){const e=[];return e.push(`
|
|
2
2
|
M`,t,n),e.push(`
|
|
3
3
|
m`,-s,0),e.push(`
|
|
4
4
|
a`,s,s,0,1,0,s*2,0),e.push(`
|