@bkm016/basalt 0.1.4 → 0.1.6
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 +61 -11
- package/{chunk-y648fzx0.js → chunk-0039s4jt.js} +3 -3
- package/{chunk-rmj5b73e.js → chunk-053vb71h.js} +1 -1
- package/{chunk-whvj83b7.js → chunk-063vbmtp.js} +2 -2
- package/{chunk-7tbya5b5.js → chunk-0javrjcm.js} +22 -22
- package/{chunk-y7nma9rk.js → chunk-10p3mb40.js} +2 -2
- package/{chunk-jk25nt60.js → chunk-39vwrg8n.js} +2 -2
- package/chunk-3k627vf2.js +3 -0
- package/{chunk-q7t30zz2.js → chunk-6kdgk70p.js} +5 -5
- package/{chunk-3x94302m.js → chunk-6ptv4g5e.js} +3 -3
- package/chunk-75434aay.js +2 -0
- package/{chunk-2zp1mv3q.js → chunk-7hr6zw2m.js} +1 -1
- package/{chunk-g2t6t8fk.js → chunk-7jezts2n.js} +2 -2
- package/{chunk-y58ygzn9.js → chunk-818nd6s1.js} +3 -3
- package/{chunk-k23t7vhs.js → chunk-8gw5bvh3.js} +5 -5
- package/{chunk-vv7fp27r.js → chunk-8mezk0cb.js} +2 -2
- package/{chunk-zggzfa7j.js → chunk-8saewt61.js} +2 -2
- package/{chunk-362g64pd.js → chunk-8wj32837.js} +1 -1
- package/{chunk-fjtvjrkg.js → chunk-8wv5t0w6.js} +5 -5
- package/{chunk-vk1gxk1t.js → chunk-8x21n7y9.js} +1 -1
- package/chunk-a0c989ky.js +2 -0
- package/{chunk-4w17tzp5.js → chunk-a5apjjcn.js} +12 -12
- package/chunk-a81p46j7.js +2 -0
- package/chunk-agsfy9w7.js +2 -0
- package/{chunk-fw2bpqmw.js → chunk-arcqjt91.js} +1 -1
- package/chunk-bdy4jksd.js +2 -0
- package/{chunk-qe0teyn1.js → chunk-benrzwea.js} +1 -1
- package/{chunk-0y7ne3d0.js → chunk-bwawt15q.js} +2 -2
- package/{chunk-pxsrqrd0.js → chunk-c4qr1f41.js} +2 -2
- package/{chunk-981f9dw8.js → chunk-c7rcw9fb.js} +6 -6
- package/{chunk-cjc90f84.js → chunk-ca982n62.js} +3 -3
- package/chunk-d20p02ny.js +2 -0
- package/{chunk-97rzj7f6.js → chunk-d6p2hgxh.js} +1 -1
- package/{chunk-k6w6y71k.js → chunk-dnx91jrd.js} +2 -2
- package/{chunk-8d46jtbj.js → chunk-dpz4hwqb.js} +2 -2
- package/{chunk-aky4tztg.js → chunk-ebpyvs1d.js} +2 -2
- package/{chunk-m40gxwq4.js → chunk-ecf896fz.js} +3 -3
- package/{chunk-pjyn2s97.js → chunk-ejsneb6f.js} +1 -1
- package/{chunk-pbcy6zdt.js → chunk-ey15ye2h.js} +1 -1
- package/{chunk-kp22kaez.js → chunk-f156y565.js} +2 -2
- package/{chunk-9rmqgc3c.js → chunk-f544p9rh.js} +15 -15
- package/chunk-fmq3zwzk.js +2 -0
- package/{chunk-em187cy3.js → chunk-fx7f4m3c.js} +2 -2
- package/{chunk-r7fpkb49.js → chunk-g0t9c3gv.js} +1 -1
- package/{chunk-mvfsxdx6.js → chunk-gv7wqkey.js} +10 -10
- package/chunk-hksqjts3.js +3884 -0
- package/{chunk-ztsjgssj.js → chunk-j7yvh0ae.js} +1 -1
- package/chunk-kns4kv7b.js +3 -0
- package/{chunk-nmca5h6m.js → chunk-n85qs7cs.js} +1 -1
- package/{chunk-8wc8qdx8.js → chunk-n981vx1t.js} +6 -6
- package/{chunk-3ct2tkr8.js → chunk-npez1492.js} +2 -2
- package/{chunk-t6zs4kw0.js → chunk-peja51xv.js} +2 -2
- package/{chunk-r0scgfwx.js → chunk-pg5nkf1y.js} +2 -2
- package/{chunk-7afmgncg.js → chunk-prgm07j4.js} +1 -1
- package/{chunk-jwdb0ccj.js → chunk-q9dd6fhj.js} +3 -3
- package/{chunk-ykens1hy.js → chunk-r8vvcp6c.js} +1 -1
- package/chunk-rfb85nj7.js +2 -0
- package/{chunk-ev6yvy5y.js → chunk-rfdt992v.js} +15 -15
- package/{chunk-xfvvh1s5.js → chunk-s6dejhfj.js} +1 -1
- package/{chunk-xh3vr5vz.js → chunk-s7skpgm2.js} +1 -1
- package/chunk-tgfbtehh.js +480 -0
- package/{chunk-m8vkwdgr.js → chunk-w67dvqtb.js} +4 -4
- package/{chunk-f3xadvab.js → chunk-whj87h4r.js} +2 -2
- package/{chunk-2hbfk5xd.js → chunk-wnzvnskb.js} +2 -2
- package/{chunk-vexrrw1b.js → chunk-xtq1xpq0.js} +2 -2
- package/{chunk-1vd0f74z.js → chunk-y8dkfpmj.js} +5 -5
- package/{chunk-shadcb9z.js → chunk-z02sj1je.js} +2 -2
- package/{chunk-akr0a8nc.js → chunk-zxkq9m8e.js} +1 -1
- package/compiled.js +12 -12
- package/package.json +1 -1
- package/ui-test-worker.js +32 -32
- package/web/{chunk-t4c8xavd.js → chunk-03dmzvaq.js} +7 -7
- package/web/{chunk-n8sky2q6.js → chunk-07agqp8h.js} +1 -1
- package/web/chunk-0fgaepwm.js +3 -0
- package/web/chunk-0gg00f86.js +292 -0
- package/web/chunk-0pecj6d7.js +1 -0
- package/web/{chunk-ts7zrf5b.js → chunk-0whceqes.js} +2 -2
- package/web/chunk-0wt1dgny.js +1 -0
- package/web/{chunk-sfg2wkhe.js → chunk-12xxh71x.js} +6 -6
- package/web/chunk-1ves7sq5.js +1 -0
- package/web/chunk-1yj79b48.js +1 -0
- package/web/chunk-296hgy6k.js +370 -0
- package/web/{chunk-f4tacm06.js → chunk-2bmq1whf.js} +1 -1
- package/web/chunk-2wqxhqr9.js +1 -0
- package/web/{chunk-2j4m0bh1.js → chunk-30b33r2w.js} +2 -2
- package/web/{chunk-sspfxp5e.js → chunk-30zfw7zg.js} +1 -1
- package/web/chunk-39ng8zwx.css +1 -0
- package/web/chunk-3de552rg.js +70 -0
- package/web/chunk-3nbzj48p.js +36 -0
- package/web/{chunk-0z0y25zf.js → chunk-3zebd9fq.js} +3 -3
- package/web/chunk-4r1n98zx.js +2 -0
- package/web/chunk-59678wmg.js +1 -0
- package/web/{chunk-ds7srg4p.js → chunk-5nda24gv.js} +1 -1
- package/web/chunk-5v44qv67.js +303 -0
- package/web/chunk-5wdk97mk.js +4 -0
- package/web/chunk-64rafq66.js +78 -0
- package/web/chunk-6bwgdvf6.js +1 -0
- package/web/chunk-6kkw9ptc.js +1 -0
- package/web/chunk-718mr5gc.js +2 -0
- package/web/chunk-7hs57qdr.js +1 -0
- package/web/chunk-7kp237t3.js +106 -0
- package/web/chunk-86p42kym.js +1 -0
- package/web/chunk-8n79cqyd.js +1 -0
- package/web/chunk-8r0s8tx7.js +1 -0
- package/web/chunk-96v2avmw.js +40 -0
- package/web/chunk-9an6wcnr.js +1 -0
- package/web/{chunk-5z4jcqct.js → chunk-9c1yt2ex.js} +20 -20
- package/web/chunk-9w5tf22s.js +1 -0
- package/web/{chunk-pws2seas.js → chunk-a7gtb4kg.js} +19 -19
- package/web/chunk-ahztazsg.js +1 -0
- package/web/chunk-b985y17w.js +2 -0
- package/web/chunk-bz2v64xe.js +1 -0
- package/web/{chunk-n1dmrz44.js → chunk-c01176kn.js} +2 -2
- package/web/chunk-c3nn0vvc.js +1 -0
- package/web/chunk-cb2rxtq9.js +2 -0
- package/web/{chunk-b1bgzz66.js → chunk-ck8rr0sr.js} +1 -1
- package/web/{chunk-aqfpnhmt.js → chunk-cktmyc13.js} +19 -19
- package/web/{chunk-rvrf0f3h.js → chunk-cm92fyr3.js} +2 -2
- package/web/chunk-cwtn2kdm.js +1 -0
- package/web/chunk-czq1yz51.js +99 -0
- package/web/chunk-d22wq71s.js +1 -0
- package/web/{chunk-pjkdrgm0.js → chunk-d4z2rgpx.js} +1 -1
- package/web/{chunk-hvw3gn2a.js → chunk-d6tbw8br.js} +20 -20
- package/web/{chunk-cg3jterp.js → chunk-d9wdsjkk.js} +2 -2
- package/web/{chunk-ttg6tbwx.js → chunk-da7m1kva.js} +2 -2
- package/web/chunk-dpkyygej.js +1 -0
- package/web/{chunk-0b47eyrf.js → chunk-dwajwrpk.js} +1 -1
- package/web/chunk-et5ess72.js +1 -0
- package/web/chunk-ez8b6neq.js +1 -0
- package/web/{chunk-bhsaj6qq.js → chunk-f5txt81n.js} +1 -1
- package/web/chunk-fd1kqwe3.js +1 -0
- package/web/chunk-fmthkpff.js +1 -0
- package/web/chunk-fp48zz2e.js +2 -0
- package/web/{chunk-n90cqdvg.js → chunk-fv6vm14n.js} +2 -2
- package/web/chunk-fx0n2g22.js +89 -0
- package/web/{chunk-9cx1be43.js → chunk-fxs4nb93.js} +16 -16
- package/web/chunk-g6k9z8zt.js +1 -0
- package/web/{chunk-42e3b9hv.js → chunk-g81h1e6n.js} +19 -19
- package/web/{chunk-pz9ps2jm.js → chunk-gsh80797.js} +12 -12
- package/web/{chunk-54thej0t.js → chunk-gyp6v7jd.js} +2 -2
- package/web/chunk-h0c42zy3.js +1 -0
- package/web/{chunk-6m69hczt.js → chunk-h6k1x096.js} +2 -2
- package/web/chunk-hs5x78fb.js +1 -0
- package/web/{chunk-zx8zec24.js → chunk-ht1dzftc.js} +56 -56
- package/web/{chunk-d11v5s7w.js → chunk-hy4m34qp.js} +6 -6
- package/web/chunk-hyd5hzpa.js +1 -0
- package/web/chunk-hyt1nkaw.js +1 -0
- package/web/{chunk-24mfx6w1.js → chunk-j1bw5v1g.js} +2 -2
- package/web/chunk-j6a4z530.js +1139 -0
- package/web/{chunk-0pbjgdgp.js → chunk-ja7w629n.js} +2 -2
- package/web/{chunk-zbj1trar.js → chunk-jam45rqg.js} +2 -2
- package/web/chunk-jfvxxp5c.js +1 -0
- package/web/{chunk-kmr7r9xj.js → chunk-jve1zc80.js} +2 -2
- package/web/chunk-kegv14sg.js +2 -0
- package/web/chunk-kw9emsqw.js +1 -0
- package/web/{chunk-df5zx17h.js → chunk-kyawkpv2.js} +1 -1
- package/web/chunk-m2prjwk3.js +4 -0
- package/web/chunk-m9bzz9m0.js +19 -0
- package/web/chunk-mqsyzzgt.js +30 -0
- package/web/chunk-mz9b5bsa.js +1 -0
- package/web/chunk-n1jpg57t.js +169 -0
- package/web/{chunk-ybrf9mhz.js → chunk-nyn9tghz.js} +4 -4
- package/web/{chunk-1eg9sbbt.js → chunk-nywdeb4m.js} +2 -2
- package/web/chunk-prvh9syp.js +324 -0
- package/web/chunk-pxkhm40r.js +2 -0
- package/web/{chunk-6cnek1xh.js → chunk-q9ekgjh6.js} +1 -1
- package/web/{chunk-xzp7jf7e.js → chunk-qcge7d6s.js} +2 -2
- package/web/chunk-r3mj50zs.js +1 -0
- package/web/{chunk-wnskxerq.js → chunk-rf9dt6bg.js} +5 -5
- package/web/{chunk-nvhmq4z5.js → chunk-s2920f21.js} +6 -6
- package/web/chunk-sc0ghp25.js +24 -0
- package/web/{chunk-ydtrc1ay.js → chunk-sd3cdqcm.js} +2 -2
- package/web/{chunk-rykfak98.js → chunk-sf101c23.js} +2 -2
- package/web/{chunk-4gavbw65.js → chunk-sy7e4dmq.js} +1 -1
- package/web/chunk-t74r2n8h.js +1 -0
- package/web/{chunk-0h0vb6gt.js → chunk-t851gdjh.js} +4 -4
- package/web/{chunk-a408enpy.js → chunk-t9mvsgt9.js} +1 -1
- package/web/chunk-thbqwq6b.js +1 -0
- package/web/{chunk-v5cnt7c8.js → chunk-twdy2f67.js} +1 -1
- package/web/chunk-v4yqrx5y.js +140 -0
- package/web/{chunk-b53bfkys.js → chunk-vf4vkcf9.js} +1 -1
- package/web/chunk-vnt34mkb.js +1 -0
- package/web/chunk-vtxw9rmr.js +1 -0
- package/web/{chunk-92ssjk2y.js → chunk-vw1pbv1x.js} +40 -40
- package/web/chunk-x19v2sxv.js +1 -0
- package/web/{chunk-3re8y26v.js → chunk-x5s7zr5f.js} +7 -7
- package/web/chunk-xc2sq3t5.js +2 -0
- package/web/chunk-xce8n339.js +1 -0
- package/web/chunk-xtss82z2.js +1 -0
- package/web/chunk-xvcfp1zh.js +2 -0
- package/web/chunk-y21zy3eh.js +1 -0
- package/web/chunk-ya3ghn3n.js +2 -0
- package/web/chunk-yd74yxzt.js +8 -0
- package/web/{chunk-74j07k8k.js → chunk-z1geewdf.js} +2 -2
- package/web/chunk-z4ha8181.js +1 -0
- package/web/chunk-z8rarqe6.js +1 -0
- package/web/{chunk-kwccs9f6.js → chunk-zp3qrrkb.js} +11 -11
- package/web/chunk-zsxw5fj7.js +39 -0
- package/web/index.html +1 -1
- package/worker.js +1 -1
- package/chunk-06hdzq5n.js +0 -2
- package/chunk-5dfbezv9.js +0 -2
- package/chunk-5x1sankd.js +0 -3753
- package/chunk-71h08f4g.js +0 -2
- package/chunk-7nzhdrv9.js +0 -2
- package/chunk-7q51n619.js +0 -2
- package/chunk-9mmz6wt3.js +0 -2
- package/chunk-fvn32nzj.js +0 -478
- package/chunk-n6e43rvk.js +0 -3
- package/chunk-ry0z4ev6.js +0 -2
- package/chunk-vkpvcxjr.js +0 -2
- package/web/chunk-0rmkpsgp.js +0 -1
- package/web/chunk-0s80zw00.js +0 -1
- package/web/chunk-0xkyryrq.js +0 -1
- package/web/chunk-1gbd61z0.js +0 -2
- package/web/chunk-2s0bmrkv.js +0 -39
- package/web/chunk-2z1rwr28.js +0 -2
- package/web/chunk-344bq59c.js +0 -89
- package/web/chunk-3t0211rw.js +0 -1
- package/web/chunk-44rmrmcn.js +0 -1
- package/web/chunk-4bzqrwr0.js +0 -1139
- package/web/chunk-4d3a7xs2.js +0 -1
- package/web/chunk-4jmazh6x.js +0 -370
- package/web/chunk-4re74xwm.js +0 -140
- package/web/chunk-4rm1vy7w.js +0 -1
- package/web/chunk-59kqahb3.js +0 -1
- package/web/chunk-5qtyq3ce.js +0 -292
- package/web/chunk-5z6x2n5h.js +0 -1
- package/web/chunk-6beqrmtq.js +0 -1
- package/web/chunk-6f5ke0x9.js +0 -1
- package/web/chunk-6xaqxcq8.js +0 -1
- package/web/chunk-7q6wvv2x.js +0 -1
- package/web/chunk-7qsa4p8h.js +0 -1
- package/web/chunk-8nja0ygy.js +0 -1
- package/web/chunk-8y64fkpz.js +0 -24
- package/web/chunk-9ad7v7bm.js +0 -8
- package/web/chunk-9dzxv335.js +0 -4
- package/web/chunk-9t5dnjaz.js +0 -19
- package/web/chunk-a497tykb.js +0 -70
- package/web/chunk-b6k9w215.js +0 -2
- package/web/chunk-cjfssg3m.js +0 -2
- package/web/chunk-cqp1d4p0.js +0 -1
- package/web/chunk-dy2gm1fs.js +0 -1
- package/web/chunk-e0zre35a.js +0 -1
- package/web/chunk-e9twvs9n.js +0 -3
- package/web/chunk-f2kgtyfp.js +0 -1
- package/web/chunk-f8bn5tzf.js +0 -1
- package/web/chunk-f91wzwtk.js +0 -1
- package/web/chunk-fdp9bsj7.js +0 -1
- package/web/chunk-fh2vj0wv.js +0 -2
- package/web/chunk-g1ev11wx.js +0 -1
- package/web/chunk-gmzqdm7v.js +0 -1
- package/web/chunk-hfaffkrh.js +0 -1
- package/web/chunk-j2vt8c8v.js +0 -1
- package/web/chunk-ka3q31t1.js +0 -1
- package/web/chunk-khxcn8tt.js +0 -106
- package/web/chunk-kqqmp1am.js +0 -1
- package/web/chunk-m2d1sp30.js +0 -1
- package/web/chunk-nbgqbxcy.js +0 -1
- package/web/chunk-ncpnpe9w.js +0 -99
- package/web/chunk-ne0v8mfb.js +0 -2
- package/web/chunk-ngx2cp8x.js +0 -2
- package/web/chunk-nxcgf7ec.js +0 -1
- package/web/chunk-p0kvmf28.js +0 -2
- package/web/chunk-p3k7m5nr.js +0 -1
- package/web/chunk-pggaffrh.js +0 -169
- package/web/chunk-pxe3vna4.js +0 -1
- package/web/chunk-qh15dxav.css +0 -1
- package/web/chunk-qpmbxhh6.js +0 -1
- package/web/chunk-r0rctnxz.js +0 -1
- package/web/chunk-rn3dnqm8.js +0 -1
- package/web/chunk-rtf2zzzv.js +0 -1
- package/web/chunk-srrfphes.js +0 -1
- package/web/chunk-tdr6x2xc.js +0 -1
- package/web/chunk-tncvg1nn.js +0 -1
- package/web/chunk-vyp0ns1f.js +0 -2
- package/web/chunk-wvdehm9y.js +0 -303
- package/web/chunk-x7ahcpj7.js +0 -1
- package/web/chunk-y38bf0wm.js +0 -1
- package/web/chunk-y56aaba5.js +0 -2
- package/web/chunk-ye58t45p.js +0 -4
- package/web/chunk-yqbnps3a.js +0 -1
- package/web/chunk-z1h20s8c.js +0 -78
- package/web/chunk-zj4q9jth.js +0 -36
- package/web/chunk-zj5k94dk.js +0 -40
- package/web/chunk-zqch0sc8.js +0 -30
- package/web/install.ps1 +0 -91
- package/web/install.sh +0 -177
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import{e,Y,vr,u,d,D,b,B,C,S,E,T,A,I,L,p,V,U,m}from"./chunk-wvdehm9y.js";var fe=(t,s)=>vr(t,"a",-s),wt=fe;function It(t,s){let i=de(t),n=i.filter((c)=>he(c,t)),r=0,o=0,a=[];if(n.length>1){let c=Kt(n);for(let h=0;h<n.length;++h){let l=n[h];l.angle=Math.atan2(l.x-c.x,l.y-c.y)}n.sort((h,l)=>l.angle-h.angle);let g=n[n.length-1];for(let h=0;h<n.length;++h){let l=n[h];o+=(g.x+l.x)*(l.y-g.y);let M={x:(l.x+g.x)/2,y:(l.y+g.y)/2},y=null;for(let z=0;z<l.parentIndex.length;++z)if(g.parentIndex.includes(l.parentIndex[z])){let w=t[l.parentIndex[z]],j=Math.atan2(l.x-w.x,l.y-w.y),G=Math.atan2(g.x-w.x,g.y-w.y),P=G-j;if(P<0)P+=2*Math.PI;let F=G-P/2,v=at(M,{x:w.x+w.radius*Math.sin(F),y:w.y+w.radius*Math.cos(F)});if(v>w.radius*2)v=w.radius*2;if(y==null||y.width>v)y={circle:w,width:v,p1:l,p2:g,large:v>w.radius,sweep:!0}}if(y!=null)a.push(y),r+=Tt(y.circle.radius,y.width),g=l}}else{let c=t[0];for(let h=1;h<t.length;++h)if(t[h].radius<c.radius)c=t[h];let g=!1;for(let h=0;h<t.length;++h)if(at(t[h],c)>Math.abs(c.radius-t[h].radius)){g=!0;break}if(g)r=o=0;else r=c.radius*c.radius*Math.PI,a.push({circle:c,p1:{x:c.x,y:c.y+c.radius},p2:{x:c.x-0.0000000001,y:c.y+c.radius},width:c.radius*2,large:!0,sweep:!0})}if(o/=2,s)s.area=r+o,s.arcArea=r,s.polygonArea=o,s.arcs=a,s.innerPoints=n,s.intersectionPoints=i;return r+o}function he(t,s){return s.every((i)=>at(t,i)<i.radius+0.0000000001)}function de(t){let s=[];for(let i=0;i<t.length;++i)for(let n=i+1;n<t.length;++n){let r=Wt(t[i],t[n]);for(let o of r)o.parentIndex=[i,n],s.push(o)}return s}function Tt(t,s){return t*t*Math.acos(1-s/t)-(t-s)*Math.sqrt(s*(2*t-s))}function at(t,s){return Math.sqrt((t.x-s.x)*(t.x-s.x)+(t.y-s.y)*(t.y-s.y))}function Nt(t,s,i){if(i>=t+s)return 0;if(i<=Math.abs(t-s))return Math.PI*Math.min(t,s)*Math.min(t,s);let n=t-(i*i-s*s+t*t)/(2*i),r=s-(i*i-t*t+s*s)/(2*i);return Tt(t,n)+Tt(s,r)}function Wt(t,s){let i=at(t,s),n=t.radius,r=s.radius;if(i>=n+r||i<=Math.abs(n-r))return[];let o=(n*n-r*r+i*i)/(2*i),a=Math.sqrt(n*n-o*o),c=t.x+o*(s.x-t.x)/i,g=t.y+o*(s.y-t.y)/i,h=-(s.y-t.y)*(a/i),l=-(s.x-t.x)*(a/i);return[{x:c+h,y:g-l},{x:c-h,y:g+l}]}function Kt(t){let s={x:0,y:0};for(let i of t)s.x+=i.x,s.y+=i.y;return s.x/=t.length,s.y/=t.length,s}function ge(t,s,i,n){n=n||{};let r=n.maxIterations||100,o=n.tolerance||0.0000000001,a=t(s),c=t(i),g=i-s;if(a*c>0)throw"Initial bisect points must have opposite signs";if(a===0)return s;if(c===0)return i;for(let h=0;h<r;++h){g/=2;let l=s+g,M=t(l);if(M*a>=0)s=l;if(Math.abs(g)<o||M===0)return l}return s+g}function zt(t){let s=Array(t);for(let i=0;i<t;++i)s[i]=0;return s}function Ut(t,s){return zt(t).map(()=>zt(s))}function mt(t,s){let i=0;for(let n=0;n<t.length;++n)i+=t[n]*s[n];return i}function At(t){return Math.sqrt(mt(t,t))}function Ct(t,s,i){for(let n=0;n<s.length;++n)t[n]=s[n]*i}function xt(t,s,i,n,r){for(let o=0;o<t.length;++o)t[o]=s*i[o]+n*r[o]}function Ht(t,s,i){i=i||{};let n=i.maxIterations||s.length*200,r=i.nonZeroDelta||1.05,o=i.zeroDelta||0.001,a=i.minErrorDelta||0.000001,c=i.minErrorDelta||0.00001,g=i.rho!==void 0?i.rho:1,h=i.chi!==void 0?i.chi:2,l=i.psi!==void 0?i.psi:-0.5,M=i.sigma!==void 0?i.sigma:0.5,y,z=s.length,w=Array(z+1);w[0]=s,w[0].fx=t(s),w[0].id=0;for(let R=0;R<z;++R){let f=s.slice();f[R]=f[R]?f[R]*r:o,w[R+1]=f,w[R+1].fx=t(f),w[R+1].id=R+1}function j(R){for(let f=0;f<R.length;f++)w[z][f]=R[f];w[z].fx=R.fx}let G=(R,f)=>R.fx-f.fx,P=s.slice(),F=s.slice(),v=s.slice(),_=s.slice();for(let R=0;R<n;++R){if(w.sort(G),i.history){let k=w.map((x)=>{let H=x.slice();return H.fx=x.fx,H.id=x.id,H});k.sort((x,H)=>x.id-H.id),i.history.push({x:w[0].slice(),fx:w[0].fx,simplex:k})}y=0;for(let k=0;k<z;++k)y=Math.max(y,Math.abs(w[0][k]-w[1][k]));if(Math.abs(w[0].fx-w[z].fx)<a&&y<c)break;for(let k=0;k<z;++k){P[k]=0;for(let x=0;x<z;++x)P[k]+=w[x][k];P[k]/=z}let f=w[z];if(xt(F,1+g,P,-g,f),F.fx=t(F),F.fx<w[0].fx)if(xt(_,1+h,P,-h,f),_.fx=t(_),_.fx<F.fx)j(_);else j(F);else if(F.fx>=w[z-1].fx){let k=!1;if(F.fx>f.fx)if(xt(v,1+l,P,-l,f),v.fx=t(v),v.fx<f.fx)j(v);else k=!0;else if(xt(v,1-l*g,P,l*g,f),v.fx=t(v),v.fx<F.fx)j(v);else k=!0;if(k){if(M>=1)break;for(let x=1;x<w.length;++x)xt(w[x],1-M,w[0],M,w[x]),w[x].fx=t(w[x])}}else j(F)}return w.sort(G),{fx:w[0].fx,x:w[0]}}function xe(t,s,i,n,r,o,a){let c=i.fx,g=mt(i.fxprime,s),h=c,l=c,M=g,y=0;r=r||1,o=o||0.000001,a=a||0.1;function z(w,j,G){for(let P=0;P<16;++P)if(r=(w+j)/2,xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),M=mt(n.fxprime,s),h>c+o*r*g||h>=G)j=r;else{if(Math.abs(M)<=-a*g)return r;if(M*(j-w)>=0)j=w;w=r,G=h}return 0}for(let w=0;w<10;++w){if(xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),M=mt(n.fxprime,s),h>c+o*r*g||w&&h>=l)return z(y,r,l);if(Math.abs(M)<=-a*g)return r;if(M>=0)return z(r,y,h);l=h,y=r,r*=2}return r}function ye(t,s,i){let n={x:s.slice(),fx:0,fxprime:s.slice()},r={x:s.slice(),fx:0,fxprime:s.slice()},o=s.slice(),a,c,g=1,h;i=i||{},h=i.maxIterations||s.length*20,n.fx=t(n.x,n.fxprime),a=n.fxprime.slice(),Ct(a,n.fxprime,-1);for(let l=0;l<h;++l){if(g=xe(t,a,n,r,g),i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});if(!g)Ct(a,n.fxprime,-1);else{xt(o,1,r.fxprime,-1,n.fxprime);let M=mt(n.fxprime,n.fxprime),y=Math.max(0,mt(o,r.fxprime)/M);xt(a,y,a,-1,r.fxprime),c=n,n=r,r=c}if(At(n.fxprime)<=0.00001)break}if(i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});return n}function Yt(t,s={}){s.maxIterations=s.maxIterations||500;let i=s.initialLayout||ve,n=s.lossFunction||bt,r=pe(t,s),o=i(r,s),a=Object.keys(o),c=[];for(let l of a)c.push(o[l].x),c.push(o[l].y);let h=Ht((l)=>{let M={};for(let y=0;y<a.length;++y){let z=a[y];M[z]={x:l[2*y],y:l[2*y+1],radius:o[z].radius}}return n(M,r)},c,s).x;for(let l=0;l<a.length;++l){let M=a[l];o[M].x=h[2*l],o[M].y=h[2*l+1]}return o}var Xt=0.0000000001;function Dt(t,s,i){if(Math.min(t,s)*Math.min(t,s)*Math.PI<=i+Xt)return Math.abs(t-s);return ge((n)=>Nt(t,s,n)-i,0,t+s)}function pe(t,s={}){let i=s.distinct,n=t.map((c)=>Object.assign({},c));function r(c){return c.join(";")}if(i){let c=new Map;for(let g of n)for(let h=0;h<g.sets.length;h++){let l=String(g.sets[h]);c.set(l,g.size+(c.get(l)||0));for(let M=h+1;M<g.sets.length;M++){let y=String(g.sets[M]),z=`${l};${y}`,w=`${y};${l}`;c.set(z,g.size+(c.get(z)||0)),c.set(w,g.size+(c.get(w)||0))}}for(let g of n)if(g.sets.length<3)g.size=c.get(r(g.sets))}let o=[],a=new Set;for(let c of n)if(c.sets.length===1)o.push(c.sets[0]);else if(c.sets.length===2){let g=c.sets[0],h=c.sets[1];a.add(r(c.sets)),a.add(r([h,g]))}o.sort((c,g)=>c===g?0:c<g?-1:1);for(let c=0;c<o.length;++c){let g=o[c];for(let h=c+1;h<o.length;++h){let l=o[h];if(!a.has(r([g,l])))n.push({sets:[g,l],size:0})}}return n}function me(t,s,i){let n=Ut(s.length,s.length),r=Ut(s.length,s.length);return t.filter((o)=>o.sets.length===2).forEach((o)=>{let a=i[o.sets[0]],c=i[o.sets[1]],g=Math.sqrt(s[a].size/Math.PI),h=Math.sqrt(s[c].size/Math.PI),l=Dt(g,h,o.size);n[a][c]=n[c][a]=l;let M=0;if(o.size+0.0000000001>=Math.min(s[a].size,s[c].size))M=1;else if(o.size<=0.0000000001)M=-1;r[a][c]=r[c][a]=M}),{distances:n,constraints:r}}function be(t,s,i,n){for(let o=0;o<s.length;++o)s[o]=0;let r=0;for(let o=0;o<i.length;++o){let a=t[2*o],c=t[2*o+1];for(let g=o+1;g<i.length;++g){let h=t[2*g],l=t[2*g+1],M=i[o][g],y=n[o][g],z=(h-a)*(h-a)+(l-c)*(l-c),w=Math.sqrt(z),j=z-M*M;if(y>0&&w<=M||y<0&&w>=M)continue;r+=2*j*j,s[2*o]+=4*j*(a-h),s[2*o+1]+=4*j*(c-l),s[2*g]+=4*j*(h-a),s[2*g+1]+=4*j*(l-c)}}return r}function ve(t,s={}){let i=Ie(t,s),n=s.lossFunction||bt;if(t.length>=8){let r=ke(t,s),o=n(r,t),a=n(i,t);if(o+0.00000001<a)i=r}return i}function ke(t,s={}){let i=s.restarts||10,n=[],r={};for(let y of t)if(y.sets.length===1)r[y.sets[0]]=n.length,n.push(y);let{distances:o,constraints:a}=me(t,n,r),c=At(o.map(At))/o.length;o=o.map((y)=>y.map((z)=>z/c));let g=(y,z)=>be(y,z,o,a),h=null;for(let y=0;y<i;++y){let z=zt(o.length*2).map(Math.random),w=ye(g,z,s);if(!h||w.fx<h.fx)h=w}let l=h.x,M={};for(let y=0;y<n.length;++y){let z=n[y];M[z.sets[0]]={x:l[2*y]*c,y:l[2*y+1]*c,radius:Math.sqrt(z.size/Math.PI)}}if(s.history)for(let y of s.history)Ct(y.x,c);return M}function Ie(t,s){let i=s&&s.lossFunction?s.lossFunction:bt,n={},r={};for(let M of t)if(M.sets.length===1){let y=M.sets[0];n[y]={x:10000000000,y:10000000000,rowid:n.length,size:M.size,radius:Math.sqrt(M.size/Math.PI)},r[y]=[]}t=t.filter((M)=>M.sets.length===2);for(let M of t){let y=M.weight!=null?M.weight:1,z=M.sets[0],w=M.sets[1];if(M.size+Xt>=Math.min(n[z].size,n[w].size))y=0;r[z].push({set:w,size:M.size,weight:y}),r[w].push({set:z,size:M.size,weight:y})}let o=[];Object.keys(r).forEach((M)=>{let y=0;for(let z=0;z<r[M].length;++z)y+=r[M][z].size*r[M][z].weight;o.push({set:M,size:y})});function a(M,y){return y.size-M.size}o.sort(a);let c={};function g(M){return M.set in c}function h(M,y){n[y].x=M.x,n[y].y=M.y,c[y]=!0}h({x:0,y:0},o[0].set);for(let M=1;M<o.length;++M){let y=o[M].set,z=r[y].filter(g),w=n[y];if(z.sort(a),z.length===0)throw"ERROR: missing pairwise overlap information";let j=[];for(var l=0;l<z.length;++l){let F=n[z[l].set],v=Dt(w.radius,F.radius,z[l].size);j.push({x:F.x+v,y:F.y}),j.push({x:F.x-v,y:F.y}),j.push({y:F.y+v,x:F.x}),j.push({y:F.y-v,x:F.x});for(let _=l+1;_<z.length;++_){let R=n[z[_].set],f=Dt(w.radius,R.radius,z[_].size),k=Wt({x:F.x,y:F.y,radius:v},{x:R.x,y:R.y,radius:f});j.push(...k)}}let G=100000000000000000000000000000000000000000000000000,P=j[0];for(let F of j){n[y].x=F.x,n[y].y=F.y;let v=i(n,t);if(v<G)G=v,P=F}h(P,y)}return n}function bt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let a=t[n.sets[0]],c=t[n.sets[1]];r=Nt(a.radius,c.radius,at(a,c))}else r=It(n.sets.map((a)=>t[a]));let o=n.weight!=null?n.weight:1;i+=o*(r-n.size)*(r-n.size)}return i}function Zt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let c=t[n.sets[0]],g=t[n.sets[1]];r=Nt(c.radius,g.radius,at(c,g))}else r=It(n.sets.map((c)=>t[c]));let o=n.weight!=null?n.weight:1,a=Math.log((r+1)/(n.size+1));i+=o*a*a}return i}function Me(t,s,i){if(i==null)t.sort((r,o)=>o.radius-r.radius);else t.sort(i);if(t.length>0){let r=t[0].x,o=t[0].y;for(let a of t)a.x-=r,a.y-=o}if(t.length===2){if(at(t[0],t[1])<Math.abs(t[1].radius-t[0].radius))t[1].x=t[0].x+t[0].radius-t[1].radius-0.0000000001,t[1].y=t[0].y}if(t.length>1){let r=Math.atan2(t[1].x,t[1].y)-s,o=Math.cos(r),a=Math.sin(r);for(let c of t){let{x:g,y:h}=c;c.x=o*g-a*h,c.y=a*g+o*h}}if(t.length>2){let r=Math.atan2(t[2].x,t[2].y)-s;while(r<0)r+=2*Math.PI;while(r>2*Math.PI)r-=2*Math.PI;if(r>Math.PI){let o=t[1].y/(0.0000000001+t[1].x);for(let a of t){var n=(a.x+o*a.y)/(1+o*o);a.x=2*n-a.x,a.y=2*n*o-a.y}}}}function Se(t){t.forEach((r)=>{r.parent=r});function s(r){if(r.parent!==r)r.parent=s(r.parent);return r.parent}function i(r,o){let a=s(r),c=s(o);a.parent=c}for(let r=0;r<t.length;++r)for(let o=r+1;o<t.length;++o){let a=t[r].radius+t[o].radius;if(at(t[r],t[o])+0.0000000001<a)i(t[o],t[r])}let n=new Map;for(let r=0;r<t.length;++r){let o=s(t[r]).parent.setid;if(!n.has(o))n.set(o,[]);n.get(o).push(t[r])}return t.forEach((r)=>{delete r.parent}),Array.from(n.values())}function Rt(t){let s=(i)=>{let n=t.reduce((o,a)=>Math.max(o,a[i]+a.radius),Number.NEGATIVE_INFINITY),r=t.reduce((o,a)=>Math.min(o,a[i]-a.radius),Number.POSITIVE_INFINITY);return{max:n,min:r}};return{xRange:s("x"),yRange:s("y")}}function Jt(t,s,i){if(s==null)s=Math.PI/2;let n=te(t).map((h)=>Object.assign({},h)),r=Se(n);for(let h of r){Me(h,s,i);let l=Rt(h);h.size=(l.xRange.max-l.xRange.min)*(l.yRange.max-l.yRange.min),h.bounds=l}r.sort((h,l)=>l.size-h.size),n=r[0];let o=n.bounds,a=(o.xRange.max-o.xRange.min)/50;function c(h,l,M){if(!h)return;let y=h.bounds,z,w;if(l)z=o.xRange.max-y.xRange.min+a;else{z=o.xRange.max-y.xRange.max;let j=(y.xRange.max-y.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;if(j<0)z+=j}if(M)w=o.yRange.max-y.yRange.min+a;else{w=o.yRange.max-y.yRange.max;let j=(y.yRange.max-y.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;if(j<0)w+=j}for(let j of h)j.x+=z,j.y+=w,n.push(j)}let g=1;while(g<r.length)c(r[g],!0,!1),c(r[g+1],!1,!0),c(r[g+2],!0,!0),g+=3,o=Rt(n);return $t(n)}function Qt(t,s,i,n,r){let o=te(t);s-=2*n,i-=2*n;let{xRange:a,yRange:c}=Rt(o);if(a.max===a.min||c.max===c.min)return console.log("not scaling solution: zero size detected"),t;let g,h;if(r){let z=Math.sqrt(r/Math.PI)*2;g=s/z,h=i/z}else g=s/(a.max-a.min),h=i/(c.max-c.min);let l=Math.min(h,g),M=(s-(a.max-a.min)*l)/2,y=(i-(c.max-c.min)*l)/2;return $t(o.map((z)=>({radius:l*z.radius,x:n+M+(z.x-a.min)*l,y:n+y+(z.y-c.min)*l,setid:z.setid})))}function $t(t){let s={};for(let i of t)s[i.setid]=i;return s}function te(t){return Object.keys(t).map((i)=>Object.assign(t[i],{setid:i}))}function ee(t={}){let s=!1,i=600,n=350,r=15,o=1000,a=Math.PI/2,c=!0,g=null,h=!0,l=!0,M=null,y=null,z=!1,w=null,j=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,G={},P=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],F=0,v=function(k){if(k in G)return G[k];var x=G[k]=P[F];if(F+=1,F>=P.length)F=0;return x},_=Yt,R=bt;function f(k){let x=k.datum(),H=new Set;x.forEach((N)=>{if(N.size==0&&N.sets.length==1)H.add(N.sets[0])}),x=x.filter((N)=>!N.sets.some((Q)=>H.has(Q)));let O={},X={};if(x.length>0){let N=_(x,{lossFunction:R,distinct:z});if(c)N=Jt(N,a,y);O=Qt(N,i,n,r,g),X=se(O,x,j)}let lt={};x.forEach((N)=>{if(N.label)lt[N.sets]=N.label});function st(N){if(N.sets in lt)return lt[N.sets];if(N.sets.length==1)return""+N.sets[0]}k.selectAll("svg").data([O]).enter().append("svg");let J=k.select("svg");if(s)J.attr("viewBox",`0 0 ${i} ${n}`);else J.attr("width",i).attr("height",n);let K={},Z=!1;J.selectAll(".venn-area path").each(function(N){let Q=this.getAttribute("d");if(N.sets.length==1&&Q&&!z)Z=!0,K[N.sets[0]]=Ee(Q)});function q(N){return(Q)=>{let pt=N.sets.map((gt)=>{let dt=K[gt],ot=O[gt];if(!dt)dt={x:i/2,y:n/2,radius:1};if(!ot)ot={x:i/2,y:n/2,radius:1};return{x:dt.x*(1-Q)+ot.x*Q,y:dt.y*(1-Q)+ot.y*Q,radius:dt.radius*(1-Q)+ot.radius*Q}});return Gt(pt,w)}}let tt=J.selectAll(".venn-area").data(x,(N)=>N.sets),it=tt.enter().append("g").attr("class",(N)=>`venn-area venn-${N.sets.length==1?"circle":"intersection"}${N.colour||N.color?" venn-coloured":""}`).attr("data-venn-sets",(N)=>N.sets.join("_")),et=it.append("path"),ct=it.append("text").attr("class","label").text((N)=>st(N)).attr("text-anchor","middle").attr("dy",".35em").attr("x",i/2).attr("y",n/2);if(l)et.style("fill-opacity","0").filter((N)=>N.sets.length==1).style("fill",(N)=>N.colour?N.colour:N.color?N.color:v(N.sets)).style("fill-opacity",".25"),ct.style("fill",(N)=>{if(N.colour||N.color)return"#FFF";if(t.textFill)return t.textFill;return N.sets.length==1?v(N.sets):"#444"});function rt(N){if(typeof N.transition==="function")return N.transition("venn").duration(o);return N}let nt=k;if(Z&&typeof nt.transition==="function")nt=rt(k),nt.selectAll("path").attrTween("d",q);else nt.selectAll("path").attr("d",(N)=>Gt(N.sets.map((Q)=>O[Q])),w);let W=nt.selectAll("text").filter((N)=>(N.sets in X)).text((N)=>st(N)).attr("x",(N)=>Math.floor(X[N.sets].x)).attr("y",(N)=>Math.floor(X[N.sets].y));if(h)if(Z)if("on"in W)W.on("end",_t(O,st));else W.each("end",_t(O,st));else W.each(_t(O,st));let ht=rt(tt.exit()).remove();if(typeof tt.transition==="function")ht.selectAll("path").attrTween("d",q);let ft=ht.selectAll("text").attr("x",i/2).attr("y",n/2);if(M!==null)ct.style("font-size","0px"),W.style("font-size",M),ft.style("font-size","0px");return{circles:O,textCentres:X,nodes:tt,enter:it,update:nt,exit:ht}}return f.wrap=function(k){if(!arguments.length)return h;return h=k,f},f.useViewBox=function(){return s=!0,f},f.width=function(k){if(!arguments.length)return i;return i=k,f},f.height=function(k){if(!arguments.length)return n;return n=k,f},f.padding=function(k){if(!arguments.length)return r;return r=k,f},f.distinct=function(k){if(!arguments.length)return z;return z=k,f},f.colours=function(k){if(!arguments.length)return v;return v=k,f},f.colors=function(k){if(!arguments.length)return v;return v=k,f},f.fontSize=function(k){if(!arguments.length)return M;return M=k,f},f.round=function(k){if(!arguments.length)return w;return w=k,f},f.duration=function(k){if(!arguments.length)return o;return o=k,f},f.layoutFunction=function(k){if(!arguments.length)return _;return _=k,f},f.normalize=function(k){if(!arguments.length)return c;return c=k,f},f.scaleToFit=function(k){if(!arguments.length)return g;return g=k,f},f.styled=function(k){if(!arguments.length)return l;return l=k,f},f.orientation=function(k){if(!arguments.length)return a;return a=k,f},f.orientationOrder=function(k){if(!arguments.length)return y;return y=k,f},f.lossFunction=function(k){if(!arguments.length)return R;return R=k==="default"?bt:k==="logRatio"?Zt:k,f},f}function _t(t,s){return function(i){let n=this,r=t[i.sets[0]].radius||50,o=s(i)||"",a=o.split(/\s+/).reverse(),c=3,g=(o.length+a.length)/3,h=a.pop(),l=[h],M=0,y=1.1;n.textContent=null;let z=[];function w(v){let _=n.ownerDocument.createElementNS(n.namespaceURI,"tspan");return _.textContent=v,z.push(_),n.append(_),_}let j=w(h);while(!0){if(h=a.pop(),!h)break;l.push(h);let v=l.join(" ");if(j.textContent=v,v.length>g&&j.getComputedTextLength()>r)l.pop(),j.textContent=l.join(" "),l=[h],j=w(h),M++}let G=0.35-M*y/2,P=n.getAttribute("x"),F=n.getAttribute("y");z.forEach((v,_)=>{v.setAttribute("x",P),v.setAttribute("y",F),v.setAttribute("dy",`${G+_*y}em`)})}}function Et(t,s,i){let n=s[0].radius-at(s[0],t);for(let r=1;r<s.length;++r){let o=s[r].radius-at(s[r],t);if(o<=n)n=o}for(let r=0;r<i.length;++r){let o=at(i[r],t)-i[r].radius;if(o<=n)n=o}return n}function ne(t,s,i){let n=[];for(let l of t)n.push({x:l.x,y:l.y}),n.push({x:l.x+l.radius/2,y:l.y}),n.push({x:l.x-l.radius/2,y:l.y}),n.push({x:l.x,y:l.y+l.radius/2}),n.push({x:l.x,y:l.y-l.radius/2});let r=n[0],o=Et(n[0],t,s);for(let l=1;l<n.length;++l){let M=Et(n[l],t,s);if(M>=o)r=n[l],o=M}let a=Ht((l)=>-1*Et({x:l[0],y:l[1]},t,s),[r.x,r.y],{maxIterations:500,minErrorDelta:0.0000000001}).x,c={x:i?0:a[0],y:a[1]},g=!0;for(let l of t)if(at(c,l)>l.radius){g=!1;break}for(let l of s)if(at(c,l)<l.radius){g=!1;break}if(g)return c;if(t.length==1)return{x:t[0].x,y:t[0].y};let h={};if(It(t,h),h.arcs.length===0)return{x:0,y:-1000,disjoint:!0};if(h.arcs.length==1)return{x:h.arcs[0].circle.x,y:h.arcs[0].circle.y};if(s.length)return ne(t,[]);return Kt(h.arcs.map((l)=>l.p1))}function we(t){let s={},i=Object.keys(t);for(let n of i)s[n]=[];for(let n=0;n<i.length;n++){let r=i[n],o=t[r];for(let a=n+1;a<i.length;++a){let c=i[a],g=t[c],h=at(o,g);if(h+g.radius<=o.radius+0.0000000001)s[c].push(r);else if(h+o.radius<=g.radius+0.0000000001)s[r].push(c)}}return s}function se(t,s,i){let n={},r=we(t);for(let o=0;o<s.length;++o){let a=s[o].sets,c={},g={};for(let y=0;y<a.length;++y){c[a[y]]=!0;let z=r[a[y]];for(let w=0;w<z.length;++w)g[z[w]]=!0}let h=[],l=[];for(let y in t)if(y in c)h.push(t[y]);else if(!(y in g))l.push(t[y]);let M=ne(h,l,i);if(n[a]=M,M.disjoint&&s[o].size>0)console.log("WARNING: area "+a+" not represented on screen")}return n}function _e(t,s,i){let n=[];return n.push(`
|
|
1
|
+
import{e,Y,br,u,d,D,b,B,C,S,E,T,A,R,L,p,V,U,m}from"./chunk-5v44qv67.js";var fe=(t,s)=>br(t,"a",-s),wt=fe;function It(t,s){let i=de(t),n=i.filter((c)=>he(c,t)),r=0,o=0,a=[];if(n.length>1){let c=Kt(n);for(let h=0;h<n.length;++h){let l=n[h];l.angle=Math.atan2(l.x-c.x,l.y-c.y)}n.sort((h,l)=>l.angle-h.angle);let g=n[n.length-1];for(let h=0;h<n.length;++h){let l=n[h];o+=(g.x+l.x)*(l.y-g.y);let I={x:(l.x+g.x)/2,y:(l.y+g.y)/2},y=null;for(let _=0;_<l.parentIndex.length;++_)if(g.parentIndex.includes(l.parentIndex[_])){let M=t[l.parentIndex[_]],j=Math.atan2(l.x-M.x,l.y-M.y),G=Math.atan2(g.x-M.x,g.y-M.y),P=G-j;if(P<0)P+=2*Math.PI;let F=G-P/2,v=at(I,{x:M.x+M.radius*Math.sin(F),y:M.y+M.radius*Math.cos(F)});if(v>M.radius*2)v=M.radius*2;if(y==null||y.width>v)y={circle:M,width:v,p1:l,p2:g,large:v>M.radius,sweep:!0}}if(y!=null)a.push(y),r+=Tt(y.circle.radius,y.width),g=l}}else{let c=t[0];for(let h=1;h<t.length;++h)if(t[h].radius<c.radius)c=t[h];let g=!1;for(let h=0;h<t.length;++h)if(at(t[h],c)>Math.abs(c.radius-t[h].radius)){g=!0;break}if(g)r=o=0;else r=c.radius*c.radius*Math.PI,a.push({circle:c,p1:{x:c.x,y:c.y+c.radius},p2:{x:c.x-0.0000000001,y:c.y+c.radius},width:c.radius*2,large:!0,sweep:!0})}if(o/=2,s)s.area=r+o,s.arcArea=r,s.polygonArea=o,s.arcs=a,s.innerPoints=n,s.intersectionPoints=i;return r+o}function he(t,s){return s.every((i)=>at(t,i)<i.radius+0.0000000001)}function de(t){let s=[];for(let i=0;i<t.length;++i)for(let n=i+1;n<t.length;++n){let r=Wt(t[i],t[n]);for(let o of r)o.parentIndex=[i,n],s.push(o)}return s}function Tt(t,s){return t*t*Math.acos(1-s/t)-(t-s)*Math.sqrt(s*(2*t-s))}function at(t,s){return Math.sqrt((t.x-s.x)*(t.x-s.x)+(t.y-s.y)*(t.y-s.y))}function Nt(t,s,i){if(i>=t+s)return 0;if(i<=Math.abs(t-s))return Math.PI*Math.min(t,s)*Math.min(t,s);let n=t-(i*i-s*s+t*t)/(2*i),r=s-(i*i-t*t+s*s)/(2*i);return Tt(t,n)+Tt(s,r)}function Wt(t,s){let i=at(t,s),n=t.radius,r=s.radius;if(i>=n+r||i<=Math.abs(n-r))return[];let o=(n*n-r*r+i*i)/(2*i),a=Math.sqrt(n*n-o*o),c=t.x+o*(s.x-t.x)/i,g=t.y+o*(s.y-t.y)/i,h=-(s.y-t.y)*(a/i),l=-(s.x-t.x)*(a/i);return[{x:c+h,y:g-l},{x:c-h,y:g+l}]}function Kt(t){let s={x:0,y:0};for(let i of t)s.x+=i.x,s.y+=i.y;return s.x/=t.length,s.y/=t.length,s}function ge(t,s,i,n){n=n||{};let r=n.maxIterations||100,o=n.tolerance||0.0000000001,a=t(s),c=t(i),g=i-s;if(a*c>0)throw"Initial bisect points must have opposite signs";if(a===0)return s;if(c===0)return i;for(let h=0;h<r;++h){g/=2;let l=s+g,I=t(l);if(I*a>=0)s=l;if(Math.abs(g)<o||I===0)return l}return s+g}function zt(t){let s=Array(t);for(let i=0;i<t;++i)s[i]=0;return s}function Ut(t,s){return zt(t).map(()=>zt(s))}function mt(t,s){let i=0;for(let n=0;n<t.length;++n)i+=t[n]*s[n];return i}function At(t){return Math.sqrt(mt(t,t))}function Ct(t,s,i){for(let n=0;n<s.length;++n)t[n]=s[n]*i}function xt(t,s,i,n,r){for(let o=0;o<t.length;++o)t[o]=s*i[o]+n*r[o]}function Ht(t,s,i){i=i||{};let n=i.maxIterations||s.length*200,r=i.nonZeroDelta||1.05,o=i.zeroDelta||0.001,a=i.minErrorDelta||0.000001,c=i.minErrorDelta||0.00001,g=i.rho!==void 0?i.rho:1,h=i.chi!==void 0?i.chi:2,l=i.psi!==void 0?i.psi:-0.5,I=i.sigma!==void 0?i.sigma:0.5,y,_=s.length,M=Array(_+1);M[0]=s,M[0].fx=t(s),M[0].id=0;for(let z=0;z<_;++z){let f=s.slice();f[z]=f[z]?f[z]*r:o,M[z+1]=f,M[z+1].fx=t(f),M[z+1].id=z+1}function j(z){for(let f=0;f<z.length;f++)M[_][f]=z[f];M[_].fx=z.fx}let G=(z,f)=>z.fx-f.fx,P=s.slice(),F=s.slice(),v=s.slice(),w=s.slice();for(let z=0;z<n;++z){if(M.sort(G),i.history){let k=M.map((x)=>{let H=x.slice();return H.fx=x.fx,H.id=x.id,H});k.sort((x,H)=>x.id-H.id),i.history.push({x:M[0].slice(),fx:M[0].fx,simplex:k})}y=0;for(let k=0;k<_;++k)y=Math.max(y,Math.abs(M[0][k]-M[1][k]));if(Math.abs(M[0].fx-M[_].fx)<a&&y<c)break;for(let k=0;k<_;++k){P[k]=0;for(let x=0;x<_;++x)P[k]+=M[x][k];P[k]/=_}let f=M[_];if(xt(F,1+g,P,-g,f),F.fx=t(F),F.fx<M[0].fx)if(xt(w,1+h,P,-h,f),w.fx=t(w),w.fx<F.fx)j(w);else j(F);else if(F.fx>=M[_-1].fx){let k=!1;if(F.fx>f.fx)if(xt(v,1+l,P,-l,f),v.fx=t(v),v.fx<f.fx)j(v);else k=!0;else if(xt(v,1-l*g,P,l*g,f),v.fx=t(v),v.fx<F.fx)j(v);else k=!0;if(k){if(I>=1)break;for(let x=1;x<M.length;++x)xt(M[x],1-I,M[0],I,M[x]),M[x].fx=t(M[x])}}else j(F)}return M.sort(G),{fx:M[0].fx,x:M[0]}}function xe(t,s,i,n,r,o,a){let c=i.fx,g=mt(i.fxprime,s),h=c,l=c,I=g,y=0;r=r||1,o=o||0.000001,a=a||0.1;function _(M,j,G){for(let P=0;P<16;++P)if(r=(M+j)/2,xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),I=mt(n.fxprime,s),h>c+o*r*g||h>=G)j=r;else{if(Math.abs(I)<=-a*g)return r;if(I*(j-M)>=0)j=M;M=r,G=h}return 0}for(let M=0;M<10;++M){if(xt(n.x,1,i.x,r,s),h=n.fx=t(n.x,n.fxprime),I=mt(n.fxprime,s),h>c+o*r*g||M&&h>=l)return _(y,r,l);if(Math.abs(I)<=-a*g)return r;if(I>=0)return _(r,y,h);l=h,y=r,r*=2}return r}function ye(t,s,i){let n={x:s.slice(),fx:0,fxprime:s.slice()},r={x:s.slice(),fx:0,fxprime:s.slice()},o=s.slice(),a,c,g=1,h;i=i||{},h=i.maxIterations||s.length*20,n.fx=t(n.x,n.fxprime),a=n.fxprime.slice(),Ct(a,n.fxprime,-1);for(let l=0;l<h;++l){if(g=xe(t,a,n,r,g),i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});if(!g)Ct(a,n.fxprime,-1);else{xt(o,1,r.fxprime,-1,n.fxprime);let I=mt(n.fxprime,n.fxprime),y=Math.max(0,mt(o,r.fxprime)/I);xt(a,y,a,-1,r.fxprime),c=n,n=r,r=c}if(At(n.fxprime)<=0.00001)break}if(i.history)i.history.push({x:n.x.slice(),fx:n.fx,fxprime:n.fxprime.slice(),alpha:g});return n}function Yt(t,s={}){s.maxIterations=s.maxIterations||500;let i=s.initialLayout||ve,n=s.lossFunction||bt,r=pe(t,s),o=i(r,s),a=Object.keys(o),c=[];for(let l of a)c.push(o[l].x),c.push(o[l].y);let h=Ht((l)=>{let I={};for(let y=0;y<a.length;++y){let _=a[y];I[_]={x:l[2*y],y:l[2*y+1],radius:o[_].radius}}return n(I,r)},c,s).x;for(let l=0;l<a.length;++l){let I=a[l];o[I].x=h[2*l],o[I].y=h[2*l+1]}return o}var Xt=0.0000000001;function Dt(t,s,i){if(Math.min(t,s)*Math.min(t,s)*Math.PI<=i+Xt)return Math.abs(t-s);return ge((n)=>Nt(t,s,n)-i,0,t+s)}function pe(t,s={}){let i=s.distinct,n=t.map((c)=>Object.assign({},c));function r(c){return c.join(";")}if(i){let c=new Map;for(let g of n)for(let h=0;h<g.sets.length;h++){let l=String(g.sets[h]);c.set(l,g.size+(c.get(l)||0));for(let I=h+1;I<g.sets.length;I++){let y=String(g.sets[I]),_=`${l};${y}`,M=`${y};${l}`;c.set(_,g.size+(c.get(_)||0)),c.set(M,g.size+(c.get(M)||0))}}for(let g of n)if(g.sets.length<3)g.size=c.get(r(g.sets))}let o=[],a=new Set;for(let c of n)if(c.sets.length===1)o.push(c.sets[0]);else if(c.sets.length===2){let g=c.sets[0],h=c.sets[1];a.add(r(c.sets)),a.add(r([h,g]))}o.sort((c,g)=>c===g?0:c<g?-1:1);for(let c=0;c<o.length;++c){let g=o[c];for(let h=c+1;h<o.length;++h){let l=o[h];if(!a.has(r([g,l])))n.push({sets:[g,l],size:0})}}return n}function me(t,s,i){let n=Ut(s.length,s.length),r=Ut(s.length,s.length);return t.filter((o)=>o.sets.length===2).forEach((o)=>{let a=i[o.sets[0]],c=i[o.sets[1]],g=Math.sqrt(s[a].size/Math.PI),h=Math.sqrt(s[c].size/Math.PI),l=Dt(g,h,o.size);n[a][c]=n[c][a]=l;let I=0;if(o.size+0.0000000001>=Math.min(s[a].size,s[c].size))I=1;else if(o.size<=0.0000000001)I=-1;r[a][c]=r[c][a]=I}),{distances:n,constraints:r}}function be(t,s,i,n){for(let o=0;o<s.length;++o)s[o]=0;let r=0;for(let o=0;o<i.length;++o){let a=t[2*o],c=t[2*o+1];for(let g=o+1;g<i.length;++g){let h=t[2*g],l=t[2*g+1],I=i[o][g],y=n[o][g],_=(h-a)*(h-a)+(l-c)*(l-c),M=Math.sqrt(_),j=_-I*I;if(y>0&&M<=I||y<0&&M>=I)continue;r+=2*j*j,s[2*o]+=4*j*(a-h),s[2*o+1]+=4*j*(c-l),s[2*g]+=4*j*(h-a),s[2*g+1]+=4*j*(l-c)}}return r}function ve(t,s={}){let i=Ie(t,s),n=s.lossFunction||bt;if(t.length>=8){let r=ke(t,s),o=n(r,t),a=n(i,t);if(o+0.00000001<a)i=r}return i}function ke(t,s={}){let i=s.restarts||10,n=[],r={};for(let y of t)if(y.sets.length===1)r[y.sets[0]]=n.length,n.push(y);let{distances:o,constraints:a}=me(t,n,r),c=At(o.map(At))/o.length;o=o.map((y)=>y.map((_)=>_/c));let g=(y,_)=>be(y,_,o,a),h=null;for(let y=0;y<i;++y){let _=zt(o.length*2).map(Math.random),M=ye(g,_,s);if(!h||M.fx<h.fx)h=M}let l=h.x,I={};for(let y=0;y<n.length;++y){let _=n[y];I[_.sets[0]]={x:l[2*y]*c,y:l[2*y+1]*c,radius:Math.sqrt(_.size/Math.PI)}}if(s.history)for(let y of s.history)Ct(y.x,c);return I}function Ie(t,s){let i=s&&s.lossFunction?s.lossFunction:bt,n={},r={};for(let I of t)if(I.sets.length===1){let y=I.sets[0];n[y]={x:10000000000,y:10000000000,rowid:n.length,size:I.size,radius:Math.sqrt(I.size/Math.PI)},r[y]=[]}t=t.filter((I)=>I.sets.length===2);for(let I of t){let y=I.weight!=null?I.weight:1,_=I.sets[0],M=I.sets[1];if(I.size+Xt>=Math.min(n[_].size,n[M].size))y=0;r[_].push({set:M,size:I.size,weight:y}),r[M].push({set:_,size:I.size,weight:y})}let o=[];Object.keys(r).forEach((I)=>{let y=0;for(let _=0;_<r[I].length;++_)y+=r[I][_].size*r[I][_].weight;o.push({set:I,size:y})});function a(I,y){return y.size-I.size}o.sort(a);let c={};function g(I){return I.set in c}function h(I,y){n[y].x=I.x,n[y].y=I.y,c[y]=!0}h({x:0,y:0},o[0].set);for(let I=1;I<o.length;++I){let y=o[I].set,_=r[y].filter(g),M=n[y];if(_.sort(a),_.length===0)throw"ERROR: missing pairwise overlap information";let j=[];for(var l=0;l<_.length;++l){let F=n[_[l].set],v=Dt(M.radius,F.radius,_[l].size);j.push({x:F.x+v,y:F.y}),j.push({x:F.x-v,y:F.y}),j.push({y:F.y+v,x:F.x}),j.push({y:F.y-v,x:F.x});for(let w=l+1;w<_.length;++w){let z=n[_[w].set],f=Dt(M.radius,z.radius,_[w].size),k=Wt({x:F.x,y:F.y,radius:v},{x:z.x,y:z.y,radius:f});j.push(...k)}}let G=100000000000000000000000000000000000000000000000000,P=j[0];for(let F of j){n[y].x=F.x,n[y].y=F.y;let v=i(n,t);if(v<G)G=v,P=F}h(P,y)}return n}function bt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let a=t[n.sets[0]],c=t[n.sets[1]];r=Nt(a.radius,c.radius,at(a,c))}else r=It(n.sets.map((a)=>t[a]));let o=n.weight!=null?n.weight:1;i+=o*(r-n.size)*(r-n.size)}return i}function Zt(t,s){let i=0;for(let n of s){if(n.sets.length===1)continue;let r;if(n.sets.length===2){let c=t[n.sets[0]],g=t[n.sets[1]];r=Nt(c.radius,g.radius,at(c,g))}else r=It(n.sets.map((c)=>t[c]));let o=n.weight!=null?n.weight:1,a=Math.log((r+1)/(n.size+1));i+=o*a*a}return i}function Me(t,s,i){if(i==null)t.sort((r,o)=>o.radius-r.radius);else t.sort(i);if(t.length>0){let r=t[0].x,o=t[0].y;for(let a of t)a.x-=r,a.y-=o}if(t.length===2){if(at(t[0],t[1])<Math.abs(t[1].radius-t[0].radius))t[1].x=t[0].x+t[0].radius-t[1].radius-0.0000000001,t[1].y=t[0].y}if(t.length>1){let r=Math.atan2(t[1].x,t[1].y)-s,o=Math.cos(r),a=Math.sin(r);for(let c of t){let{x:g,y:h}=c;c.x=o*g-a*h,c.y=a*g+o*h}}if(t.length>2){let r=Math.atan2(t[2].x,t[2].y)-s;while(r<0)r+=2*Math.PI;while(r>2*Math.PI)r-=2*Math.PI;if(r>Math.PI){let o=t[1].y/(0.0000000001+t[1].x);for(let a of t){var n=(a.x+o*a.y)/(1+o*o);a.x=2*n-a.x,a.y=2*n*o-a.y}}}}function Se(t){t.forEach((r)=>{r.parent=r});function s(r){if(r.parent!==r)r.parent=s(r.parent);return r.parent}function i(r,o){let a=s(r),c=s(o);a.parent=c}for(let r=0;r<t.length;++r)for(let o=r+1;o<t.length;++o){let a=t[r].radius+t[o].radius;if(at(t[r],t[o])+0.0000000001<a)i(t[o],t[r])}let n=new Map;for(let r=0;r<t.length;++r){let o=s(t[r]).parent.setid;if(!n.has(o))n.set(o,[]);n.get(o).push(t[r])}return t.forEach((r)=>{delete r.parent}),Array.from(n.values())}function Rt(t){let s=(i)=>{let n=t.reduce((o,a)=>Math.max(o,a[i]+a.radius),Number.NEGATIVE_INFINITY),r=t.reduce((o,a)=>Math.min(o,a[i]-a.radius),Number.POSITIVE_INFINITY);return{max:n,min:r}};return{xRange:s("x"),yRange:s("y")}}function Jt(t,s,i){if(s==null)s=Math.PI/2;let n=te(t).map((h)=>Object.assign({},h)),r=Se(n);for(let h of r){Me(h,s,i);let l=Rt(h);h.size=(l.xRange.max-l.xRange.min)*(l.yRange.max-l.yRange.min),h.bounds=l}r.sort((h,l)=>l.size-h.size),n=r[0];let o=n.bounds,a=(o.xRange.max-o.xRange.min)/50;function c(h,l,I){if(!h)return;let y=h.bounds,_,M;if(l)_=o.xRange.max-y.xRange.min+a;else{_=o.xRange.max-y.xRange.max;let j=(y.xRange.max-y.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;if(j<0)_+=j}if(I)M=o.yRange.max-y.yRange.min+a;else{M=o.yRange.max-y.yRange.max;let j=(y.yRange.max-y.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;if(j<0)M+=j}for(let j of h)j.x+=_,j.y+=M,n.push(j)}let g=1;while(g<r.length)c(r[g],!0,!1),c(r[g+1],!1,!0),c(r[g+2],!0,!0),g+=3,o=Rt(n);return $t(n)}function Qt(t,s,i,n,r){let o=te(t);s-=2*n,i-=2*n;let{xRange:a,yRange:c}=Rt(o);if(a.max===a.min||c.max===c.min)return console.log("not scaling solution: zero size detected"),t;let g,h;if(r){let _=Math.sqrt(r/Math.PI)*2;g=s/_,h=i/_}else g=s/(a.max-a.min),h=i/(c.max-c.min);let l=Math.min(h,g),I=(s-(a.max-a.min)*l)/2,y=(i-(c.max-c.min)*l)/2;return $t(o.map((_)=>({radius:l*_.radius,x:n+I+(_.x-a.min)*l,y:n+y+(_.y-c.min)*l,setid:_.setid})))}function $t(t){let s={};for(let i of t)s[i.setid]=i;return s}function te(t){return Object.keys(t).map((i)=>Object.assign(t[i],{setid:i}))}function ee(t={}){let s=!1,i=600,n=350,r=15,o=1000,a=Math.PI/2,c=!0,g=null,h=!0,l=!0,I=null,y=null,_=!1,M=null,j=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,G={},P=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],F=0,v=function(k){if(k in G)return G[k];var x=G[k]=P[F];if(F+=1,F>=P.length)F=0;return x},w=Yt,z=bt;function f(k){let x=k.datum(),H=new Set;x.forEach((N)=>{if(N.size==0&&N.sets.length==1)H.add(N.sets[0])}),x=x.filter((N)=>!N.sets.some((Q)=>H.has(Q)));let O={},X={};if(x.length>0){let N=w(x,{lossFunction:z,distinct:_});if(c)N=Jt(N,a,y);O=Qt(N,i,n,r,g),X=se(O,x,j)}let lt={};x.forEach((N)=>{if(N.label)lt[N.sets]=N.label});function st(N){if(N.sets in lt)return lt[N.sets];if(N.sets.length==1)return""+N.sets[0]}k.selectAll("svg").data([O]).enter().append("svg");let J=k.select("svg");if(s)J.attr("viewBox",`0 0 ${i} ${n}`);else J.attr("width",i).attr("height",n);let K={},Z=!1;J.selectAll(".venn-area path").each(function(N){let Q=this.getAttribute("d");if(N.sets.length==1&&Q&&!_)Z=!0,K[N.sets[0]]=Ee(Q)});function q(N){return(Q)=>{let pt=N.sets.map((gt)=>{let dt=K[gt],ot=O[gt];if(!dt)dt={x:i/2,y:n/2,radius:1};if(!ot)ot={x:i/2,y:n/2,radius:1};return{x:dt.x*(1-Q)+ot.x*Q,y:dt.y*(1-Q)+ot.y*Q,radius:dt.radius*(1-Q)+ot.radius*Q}});return Gt(pt,M)}}let tt=J.selectAll(".venn-area").data(x,(N)=>N.sets),it=tt.enter().append("g").attr("class",(N)=>`venn-area venn-${N.sets.length==1?"circle":"intersection"}${N.colour||N.color?" venn-coloured":""}`).attr("data-venn-sets",(N)=>N.sets.join("_")),et=it.append("path"),ct=it.append("text").attr("class","label").text((N)=>st(N)).attr("text-anchor","middle").attr("dy",".35em").attr("x",i/2).attr("y",n/2);if(l)et.style("fill-opacity","0").filter((N)=>N.sets.length==1).style("fill",(N)=>N.colour?N.colour:N.color?N.color:v(N.sets)).style("fill-opacity",".25"),ct.style("fill",(N)=>{if(N.colour||N.color)return"#FFF";if(t.textFill)return t.textFill;return N.sets.length==1?v(N.sets):"#444"});function rt(N){if(typeof N.transition==="function")return N.transition("venn").duration(o);return N}let nt=k;if(Z&&typeof nt.transition==="function")nt=rt(k),nt.selectAll("path").attrTween("d",q);else nt.selectAll("path").attr("d",(N)=>Gt(N.sets.map((Q)=>O[Q])),M);let W=nt.selectAll("text").filter((N)=>(N.sets in X)).text((N)=>st(N)).attr("x",(N)=>Math.floor(X[N.sets].x)).attr("y",(N)=>Math.floor(X[N.sets].y));if(h)if(Z)if("on"in W)W.on("end",_t(O,st));else W.each("end",_t(O,st));else W.each(_t(O,st));let ht=rt(tt.exit()).remove();if(typeof tt.transition==="function")ht.selectAll("path").attrTween("d",q);let ft=ht.selectAll("text").attr("x",i/2).attr("y",n/2);if(I!==null)ct.style("font-size","0px"),W.style("font-size",I),ft.style("font-size","0px");return{circles:O,textCentres:X,nodes:tt,enter:it,update:nt,exit:ht}}return f.wrap=function(k){if(!arguments.length)return h;return h=k,f},f.useViewBox=function(){return s=!0,f},f.width=function(k){if(!arguments.length)return i;return i=k,f},f.height=function(k){if(!arguments.length)return n;return n=k,f},f.padding=function(k){if(!arguments.length)return r;return r=k,f},f.distinct=function(k){if(!arguments.length)return _;return _=k,f},f.colours=function(k){if(!arguments.length)return v;return v=k,f},f.colors=function(k){if(!arguments.length)return v;return v=k,f},f.fontSize=function(k){if(!arguments.length)return I;return I=k,f},f.round=function(k){if(!arguments.length)return M;return M=k,f},f.duration=function(k){if(!arguments.length)return o;return o=k,f},f.layoutFunction=function(k){if(!arguments.length)return w;return w=k,f},f.normalize=function(k){if(!arguments.length)return c;return c=k,f},f.scaleToFit=function(k){if(!arguments.length)return g;return g=k,f},f.styled=function(k){if(!arguments.length)return l;return l=k,f},f.orientation=function(k){if(!arguments.length)return a;return a=k,f},f.orientationOrder=function(k){if(!arguments.length)return y;return y=k,f},f.lossFunction=function(k){if(!arguments.length)return z;return z=k==="default"?bt:k==="logRatio"?Zt:k,f},f}function _t(t,s){return function(i){let n=this,r=t[i.sets[0]].radius||50,o=s(i)||"",a=o.split(/\s+/).reverse(),c=3,g=(o.length+a.length)/3,h=a.pop(),l=[h],I=0,y=1.1;n.textContent=null;let _=[];function M(v){let w=n.ownerDocument.createElementNS(n.namespaceURI,"tspan");return w.textContent=v,_.push(w),n.append(w),w}let j=M(h);while(!0){if(h=a.pop(),!h)break;l.push(h);let v=l.join(" ");if(j.textContent=v,v.length>g&&j.getComputedTextLength()>r)l.pop(),j.textContent=l.join(" "),l=[h],j=M(h),I++}let G=0.35-I*y/2,P=n.getAttribute("x"),F=n.getAttribute("y");_.forEach((v,w)=>{v.setAttribute("x",P),v.setAttribute("y",F),v.setAttribute("dy",`${G+w*y}em`)})}}function Et(t,s,i){let n=s[0].radius-at(s[0],t);for(let r=1;r<s.length;++r){let o=s[r].radius-at(s[r],t);if(o<=n)n=o}for(let r=0;r<i.length;++r){let o=at(i[r],t)-i[r].radius;if(o<=n)n=o}return n}function ne(t,s,i){let n=[];for(let l of t)n.push({x:l.x,y:l.y}),n.push({x:l.x+l.radius/2,y:l.y}),n.push({x:l.x-l.radius/2,y:l.y}),n.push({x:l.x,y:l.y+l.radius/2}),n.push({x:l.x,y:l.y-l.radius/2});let r=n[0],o=Et(n[0],t,s);for(let l=1;l<n.length;++l){let I=Et(n[l],t,s);if(I>=o)r=n[l],o=I}let a=Ht((l)=>-1*Et({x:l[0],y:l[1]},t,s),[r.x,r.y],{maxIterations:500,minErrorDelta:0.0000000001}).x,c={x:i?0:a[0],y:a[1]},g=!0;for(let l of t)if(at(c,l)>l.radius){g=!1;break}for(let l of s)if(at(c,l)<l.radius){g=!1;break}if(g)return c;if(t.length==1)return{x:t[0].x,y:t[0].y};let h={};if(It(t,h),h.arcs.length===0)return{x:0,y:-1000,disjoint:!0};if(h.arcs.length==1)return{x:h.arcs[0].circle.x,y:h.arcs[0].circle.y};if(s.length)return ne(t,[]);return Kt(h.arcs.map((l)=>l.p1))}function we(t){let s={},i=Object.keys(t);for(let n of i)s[n]=[];for(let n=0;n<i.length;n++){let r=i[n],o=t[r];for(let a=n+1;a<i.length;++a){let c=i[a],g=t[c],h=at(o,g);if(h+g.radius<=o.radius+0.0000000001)s[c].push(r);else if(h+o.radius<=g.radius+0.0000000001)s[r].push(c)}}return s}function se(t,s,i){let n={},r=we(t);for(let o=0;o<s.length;++o){let a=s[o].sets,c={},g={};for(let y=0;y<a.length;++y){c[a[y]]=!0;let _=r[a[y]];for(let M=0;M<_.length;++M)g[_[M]]=!0}let h=[],l=[];for(let y in t)if(y in c)h.push(t[y]);else if(!(y in g))l.push(t[y]);let I=ne(h,l,i);if(n[a]=I,I.disjoint&&s[o].size>0)console.log("WARNING: area "+a+" not represented on screen")}return n}function _e(t,s,i){let n=[];return n.push(`
|
|
2
2
|
M`,t,s),n.push(`
|
|
3
3
|
m`,-i,0),n.push(`
|
|
4
4
|
a`,i,i,0,1,0,i*2,0),n.push(`
|
|
5
5
|
a`,i,i,0,1,0,-i*2,0),n.join(" ")}function Ee(t){let s=t.split(" ");return{x:Number.parseFloat(s[1]),y:Number.parseFloat(s[2]),radius:-Number.parseFloat(s[4])}}function ie(t){if(t.length===0)return[];let s={};return It(t,s),s.arcs}function re(t,s){if(t.length===0)return"M 0 0";let i=Math.pow(10,s||0),n=s!=null?(o)=>Math.round(o*i)/i:(o)=>o;if(t.length==1){let o=t[0].circle;return _e(n(o.x),n(o.y),n(o.radius))}let r=[`
|
|
6
6
|
M`,n(t[0].p2.x),n(t[0].p2.y)];for(let o of t){let a=n(o.circle.radius);r.push(`
|
|
7
|
-
A`,a,a,0,o.large?1:0,o.sweep?1:0,n(o.p1.x),n(o.p1.y))}return r.join(" ")}function Gt(t,s){return re(ie(t),s)}function oe(t,s={}){let{lossFunction:i,layoutFunction:n=Yt,normalize:r=!0,orientation:o=Math.PI/2,orientationOrder:a,width:c=600,height:g=350,padding:h=15,scaleToFit:l=!1,symmetricalTextCentre:
|
|
7
|
+
A`,a,a,0,o.large?1:0,o.sweep?1:0,n(o.p1.x),n(o.p1.y))}return r.join(" ")}function Gt(t,s){return re(ie(t),s)}function oe(t,s={}){let{lossFunction:i,layoutFunction:n=Yt,normalize:r=!0,orientation:o=Math.PI/2,orientationOrder:a,width:c=600,height:g=350,padding:h=15,scaleToFit:l=!1,symmetricalTextCentre:I=!1,distinct:y,round:_=2}=s,M=n(t,{lossFunction:i==="default"||!i?bt:i==="logRatio"?Zt:i,distinct:y});if(r)M=Jt(M,o,a);let j=Qt(M,c,g,h,l),G=se(j,t,I),P=new Map(Object.keys(j).map((w)=>[w,{set:w,x:j[w].x,y:j[w].y,radius:j[w].radius}])),F=t.map((w)=>{let z=w.sets.map((x)=>P.get(x)),f=ie(z),k=re(f,_);return{circles:z,arcs:f,path:k,area:w,has:new Set(w.sets)}});function v(w){let z="";for(let f of F)if(f.has.size>w.length&&w.every((k)=>f.has.has(k)))z+=" "+f.path;return z}return F.map(({circles:w,arcs:z,path:f,area:k})=>({data:k,text:G[k.sets],circles:w,arcs:z,path:f,distinctPath:f+v(k.sets)}))}var Ot=function(){var t=e(function(F,v,w,z){for(w=w||{},z=F.length;z--;w[F[z]]=v);return w},"o"),s=[5,8],i=[7,8,11,12,17,19,22,24],n=[1,17],r=[1,18],o=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],a=[1,31],c=[1,39],g=[7,8,11,12,17,19,22,24,27],h=[1,57],l=[1,56],I=[1,58],y=[1,59],_=[1,60],M=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],j={trace:e(function(){},"trace"),yy:{},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},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"},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]],performAction:e(function(v,w,z,f,k,x,H){var O=x.length-1;switch(k){case 1:return x[O-1];case 2:case 3:case 4:this.$=[];break;case 5:x[O-1].push(x[O]),this.$=x[O-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=x[O];break;case 8:f.setDiagramTitle(x[O].substr(6)),this.$=x[O].substr(6);break;case 9:if(f.addSubsetData([x[O]],void 0,void 0),f.setIndentMode)f.setIndentMode(!0);break;case 10:if(f.addSubsetData([x[O-1]],x[O],void 0),f.setIndentMode)f.setIndentMode(!0);break;case 11:if(f.addSubsetData([x[O-2]],void 0,parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 12:if(f.addSubsetData([x[O-3]],x[O-2],parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 13:if(x[O].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O]);if(f.addSubsetData(x[O],void 0,void 0),f.setIndentMode)f.setIndentMode(!0);break;case 14:if(x[O-1].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-1]);if(f.addSubsetData(x[O-1],x[O],void 0),f.setIndentMode)f.setIndentMode(!0);break;case 15:if(x[O-2].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-2]);if(f.addSubsetData(x[O-2],void 0,parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 16:if(x[O-3].length<2)throw Error("union requires multiple identifiers");if(f.validateUnionIdentifiers)f.validateUnionIdentifiers(x[O-3]);if(f.addSubsetData(x[O-3],x[O-2],parseFloat(x[O])),f.setIndentMode)f.setIndentMode(!0);break;case 17:case 18:case 19:f.addTextData(x[O-1],x[O],void 0);break;case 20:case 21:f.addTextData(x[O-2],x[O-1],x[O]);break;case 23:f.addStyleData(x[O-1],x[O]);break;case 24:case 25:case 26:var X=f.getCurrentSets();if(!X)throw Error("text requires set");f.addTextData(X,x[O],void 0);break;case 27:case 28:var X=f.getCurrentSets();if(!X)throw Error("text requires set");f.addTextData(X,x[O-1],x[O]);break;case 29:case 41:this.$=[x[O]];break;case 30:case 42:this.$=[...x[O-2],x[O]];break;case 31:this.$=[x[O-2],x[O]];break;case 33:this.$=x[O].join(" ");break;case 34:this.$=[x[O]];break;case 35:x[O-1].push(x[O]),this.$=x[O-1];break;case 43:case 44:this.$=x[O];break}},"anonymous"),table:[t(s,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(i,[2,4],{6:5}),t(s,[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(i,[2,5]),t(i,[2,6]),t(i,[2,7]),t(i,[2,8]),{13:16,20:n,21:r},{13:20,18:19,20:n,21:r},{13:20,18:21,20:n,21:r},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:n,21:r},t(i,[2,9],{14:[1,27],15:[1,28]}),t(o,[2,43]),t(o,[2,44]),t(i,[2,13],{14:[1,29],15:[1,30],27:a}),t(o,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:a},t(i,[2,22]),t(i,[2,24],{14:[1,35]}),t(i,[2,25],{14:[1,36]}),t(i,[2,26]),{20:c,25:37,26:38,27:a},t(i,[2,10],{15:[1,40]}),{16:[1,41]},t(i,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:n,21:r},t(i,[2,17],{14:[1,45]}),t(i,[2,18],{14:[1,46]}),t(i,[2,19]),t(i,[2,27]),t(i,[2,28]),t(i,[2,23],{27:[1,47]}),t(g,[2,29]),{15:[1,48]},{16:[1,49]},t(i,[2,11]),{16:[1,50]},t(i,[2,15]),t(o,[2,42]),t(i,[2,20]),t(i,[2,21]),{20:c,26:51},{16:h,20:l,21:[1,53],28:52,29:54,30:55,31:I,32:y,33:_},t(i,[2,12]),t(i,[2,16]),t(g,[2,30]),t(g,[2,31]),t(g,[2,32]),t(g,[2,33],{30:61,16:h,20:l,31:I,32:y,33:_}),t(M,[2,34]),t(M,[2,36]),t(M,[2,37]),t(M,[2,38]),t(M,[2,39]),t(M,[2,40]),t(M,[2,35])],defaultActions:{6:[2,1]},parseError:e(function(v,w){if(w.recoverable)this.trace(v);else{var z=Error(v);throw z.hash=w,z}},"parseError"),parse:e(function(v){var w=this,z=[0],f=[],k=[null],x=[],H=this.table,O="",X=0,lt=0,st=0,J=2,K=1,Z=x.slice.call(arguments,1),q=Object.create(this.lexer),tt={yy:{}};for(var it in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,it))tt.yy[it]=this.yy[it];if(q.setInput(v,tt.yy),tt.yy.lexer=q,tt.yy.parser=this,typeof q.yylloc>"u")q.yylloc={};var et=q.yylloc;x.push(et);var ct=q.options&&q.options.ranges;if(typeof tt.yy.parseError==="function")this.parseError=tt.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function rt(ut){z.length=z.length-2*ut,k.length=k.length-ut,x.length=x.length-ut}e(rt,"popStack");function nt(){var ut=f.pop()||q.lex()||K;if(typeof ut!=="number"){if(ut instanceof Array)f=ut,ut=f.pop();ut=w.symbols_[ut]||ut}return ut}e(nt,"lex");var W,ht,ft,N,Q,pt,gt={},dt,ot,qt,kt;while(!0){if(ft=z[z.length-1],this.defaultActions[ft])N=this.defaultActions[ft];else{if(W===null||typeof W>"u")W=nt();N=H[ft]&&H[ft][W]}if(typeof N>"u"||!N.length||!N[0]){var St="";kt=[];for(dt in H[ft])if(this.terminals_[dt]&&dt>J)kt.push("'"+this.terminals_[dt]+"'");if(q.showPosition)St="Parse error on line "+(X+1)+`:
|
|
8
8
|
`+q.showPosition()+`
|
|
9
|
-
Expecting `+kt.join(", ")+", got '"+(this.terminals_[W]||W)+"'";else St="Parse error on line "+(X+1)+": Unexpected "+(W==K?"end of input":"'"+(this.terminals_[W]||W)+"'");this.parseError(St,{text:q.match,token:this.terminals_[W]||W,line:q.yylineno,loc:et,expected:kt})}if(N[0]instanceof Array&&N.length>1)throw Error("Parse Error: multiple actions possible at state: "+ft+", token: "+W);switch(N[0]){case 1:if(
|
|
10
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(v){this.unput(this.match.slice(v))},"less"),pastInput:e(function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var v=this.match;if(v.length<20)v+=this._input.substr(0,20-v.length);return(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var v=this.pastInput(),
|
|
11
|
-
`+
|
|
12
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var
|
|
9
|
+
Expecting `+kt.join(", ")+", got '"+(this.terminals_[W]||W)+"'";else St="Parse error on line "+(X+1)+": Unexpected "+(W==K?"end of input":"'"+(this.terminals_[W]||W)+"'");this.parseError(St,{text:q.match,token:this.terminals_[W]||W,line:q.yylineno,loc:et,expected:kt})}if(N[0]instanceof Array&&N.length>1)throw Error("Parse Error: multiple actions possible at state: "+ft+", token: "+W);switch(N[0]){case 1:if(z.push(W),k.push(q.yytext),x.push(q.yylloc),z.push(N[1]),W=null,!ht){if(lt=q.yyleng,O=q.yytext,X=q.yylineno,et=q.yylloc,st>0)st--}else W=ht,ht=null;break;case 2:if(ot=this.productions_[N[1]][1],gt.$=k[k.length-ot],gt._$={first_line:x[x.length-(ot||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ot||1)].first_column,last_column:x[x.length-1].last_column},ct)gt._$.range=[x[x.length-(ot||1)].range[0],x[x.length-1].range[1]];if(pt=this.performAction.apply(gt,[O,lt,X,tt.yy,N[1],k,x].concat(Z)),typeof pt<"u")return pt;if(ot)z=z.slice(0,-1*ot*2),k=k.slice(0,-1*ot),x=x.slice(0,-1*ot);z.push(this.productions_[N[1]][0]),k.push(gt.$),x.push(gt._$),qt=H[z[z.length-2]][z[z.length-1]],z.push(qt);break;case 3:return!0}}return!0},"parse")},G=function(){var F={EOF:1,parseError:e(function(w,z){if(this.yy.parser)this.yy.parser.parseError(w,z);else throw Error(w)},"parseError"),setInput:e(function(v,w){if(this.yy=w||this.yy||{},this._input=v,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var v=this._input[0];this.yytext+=v,this.yyleng++,this.offset++,this.match+=v,this.matched+=v;var w=v.match(/(?:\r\n?|\n).*/g);if(w)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),v},"input"),unput:e(function(v){var w=v.length,z=v.split(/(?:\r\n?|\n)/g);this._input=v+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var f=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1)this.yylineno-=z.length-1;var k=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===f.length?this.yylloc.first_column:0)+f[f.length-z.length].length-z[0].length:this.yylloc.first_column-w},this.options.ranges)this.yylloc.range=[k[0],k[0]+this.yyleng-w];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else 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).
|
|
10
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(v){this.unput(this.match.slice(v))},"less"),pastInput:e(function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var v=this.match;if(v.length<20)v+=this._input.substr(0,20-v.length);return(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var v=this.pastInput(),w=Array(v.length+1).join("-");return v+this.upcomingInput()+`
|
|
11
|
+
`+w+"^"},"showPosition"),test_match:e(function(v,w){var z,f,k;if(this.options.backtrack_lexer){if(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)k.yylloc.range=this.yylloc.range.slice(0)}if(f=v[0].match(/(?:\r\n?|\n).*/g),f)this.yylineno+=f.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:f?f[f.length-1].length-f[f.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+v[0].length},this.yytext+=v[0],this.match+=v[0],this.matches=v,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(v[0].length),this.matched+=v[0],z=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(z)return z;else if(this._backtrack){for(var x in k)this[x]=k[x];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var v,w,z,f;if(!this._more)this.yytext="",this.match="";var k=this._currentRules();for(var x=0;x<k.length;x++)if(z=this._input.match(this.rules[k[x]]),z&&(!w||z[0].length>w[0].length)){if(w=z,f=x,this.options.backtrack_lexer)if(v=this.test_match(z,k[x]),v!==!1)return v;else if(this._backtrack){w=!1;continue}else return!1;else if(!this.options.flex)break}if(w){if(v=this.test_match(w,k[f]),v!==!1)return v;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
12
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var w=this.next();if(w)return w;else return this.lex()},"lex"),begin:e(function(w){this.conditionStack.push(w)},"begin"),popState:e(function(){var w=this.conditionStack.length-1;if(w>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(w){if(w=this.conditionStack.length-1-Math.abs(w||0),w>=0)return this.conditionStack[w];else return"INITIAL"},"topState"),pushState:e(function(w){this.begin(w)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(w,z,f,k){var x=k;switch(f){case 0:break;case 1:break;case 2:break;case 3:if(w.getIndentMode&&w.getIndentMode())return w.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:if(w.setIndentMode)w.setIndentMode(!1);this.begin("INITIAL"),this.unput(z.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(w.consumeIndentText)w.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return z.yytext=z.yytext.slice(2,-2),14;break;case 17:return z.yytext=z.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),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],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}}};return F}();j.lexer=G;function P(){this.yy={}}return e(P,"Parser"),P.prototype=j,j.Parser=P,new P}();Ot.parser=Ot;var ze=Ot,Lt=[],jt=[],Ft=[],Pt=new Set,Vt,Bt=!1,Ae=e((t,s,i)=>{let n=Mt(t).sort(),r=i??10/Math.pow(t.length,2);if(Vt=n,n.length===1)Pt.add(n[0]);Lt.push({sets:n,size:r,label:s?vt(s):void 0})},"addSubsetData"),Ce=e(()=>Lt,"getSubsetData"),vt=e((t)=>{let s=t.trim();if(s.length>=2&&s.startsWith('"')&&s.endsWith('"'))return s.slice(1,-1);return s},"normalizeText"),De=e((t)=>t?vt(t):t,"normalizeStyleValue"),Re=e((t,s,i)=>{let n=vt(s);jt.push({sets:Mt(t).sort(),id:n,label:i?vt(i):void 0})},"addTextData"),Ne=e((t,s)=>{let i=Mt(t).sort(),n={};for(let[r,o]of s)n[r]=De(o)??o;Ft.push({targets:i,styles:n})},"addStyleData"),Oe=e(()=>Ft,"getStyleData"),Mt=e((t)=>t.map((s)=>vt(s)),"normalizeIdentifierList"),Le=e((t)=>{let i=Mt(t).filter((n)=>!Pt.has(n));if(i.length>0)throw Error(`unknown set identifier: ${i.join(", ")}`)},"validateUnionIdentifiers"),je=e(()=>jt,"getTextData"),Fe=e(()=>Vt,"getCurrentSets"),Pe=e(()=>Bt,"getIndentMode"),Ve=e((t)=>{Bt=t},"setIndentMode"),Be=D.venn;function ae(){return U(Be,b().venn)}e(ae,"getConfig");var qe=e(()=>{C(),Lt.length=0,jt.length=0,Ft.length=0,Pt.clear(),Vt=void 0,Bt=!1},"customClear"),Ue={getConfig:ae,clear:qe,setAccTitle:S,getAccTitle:E,setDiagramTitle:R,getDiagramTitle:L,getAccDescription:A,setAccDescription:T,addSubsetData:Ae,getSubsetData:Ce,addTextData:Re,addStyleData:Ne,validateUnionIdentifiers:Le,getTextData:je,getStyleData:Oe,getCurrentSets:Fe,getIndentMode:Pe,setIndentMode:Ve},Ge=e((t)=>`
|
|
13
13
|
.venn-title {
|
|
14
14
|
font-size: 32px;
|
|
15
15
|
fill: ${t.vennTitleTextColor};
|
|
@@ -31,4 +31,4 @@ Expecting `+kt.join(", ")+", got '"+(this.terminals_[W]||W)+"'";else St="Parse e
|
|
|
31
31
|
font-family: ${t.fontFamily};
|
|
32
32
|
color: ${t.vennSetTextColor};
|
|
33
33
|
}
|
|
34
|
-
`,"getStyles"),We=Ge;function le(t){let s=new Map;for(let i of t){let n=i.targets.join("|"),r=s.get(n);if(r)Object.assign(r,i.styles);else s.set(n,{...i.styles})}return s}e(le,"buildStyleByKey");var Ke=e((t,s,i,n)=>{let r=n.db,o=r.getConfig?.(),{themeVariables:a,look:c,handDrawnSeed:g}=b(),h=c==="handDrawn",l=[a.venn1,a.venn2,a.venn3,a.venn4,a.venn5,a.venn6,a.venn7,a.venn8].filter(Boolean),
|
|
34
|
+
`,"getStyles"),We=Ge;function le(t){let s=new Map;for(let i of t){let n=i.targets.join("|"),r=s.get(n);if(r)Object.assign(r,i.styles);else s.set(n,{...i.styles})}return s}e(le,"buildStyleByKey");var Ke=e((t,s,i,n)=>{let r=n.db,o=r.getConfig?.(),{themeVariables:a,look:c,handDrawnSeed:g}=b(),h=c==="handDrawn",l=[a.venn1,a.venn2,a.venn3,a.venn4,a.venn5,a.venn6,a.venn7,a.venn8].filter(Boolean),I=r.getDiagramTitle?.(),y=r.getSubsetData(),_=r.getTextData(),M=le(r.getStyleData()),j=ue(y),G=o?.width??800,P=o?.height??450,F=1600,v=G/1600,w=I?48*v:0,z=a.primaryTextColor??a.textColor,f=V(s);if(f.attr("viewBox",`0 0 ${G} ${P}`),I)f.append("text").text(I).attr("class","venn-title").attr("font-size",`${32*v}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*v).style("fill",a.vennTitleTextColor||a.titleColor);let k=p(document.createElement("div")),x=ee().width(G).height(P-w);k.datum(j).call(x);let H=h?m.svg(k.select("svg").node()):void 0,O=oe(j,{width:G,height:P-w,padding:o?.padding??15}),X=new Map;for(let K of O){let Z=yt([...K.data.sets].sort());X.set(Z,K)}if(_.length>0)ce(o,X,k,_,v,M);let lt=Y(a.background||"#f4f4f4");if(k.selectAll(".venn-circle").each(function(K,Z){let q=p(this),it=yt([...K.sets].sort()),et=M.get(it),ct=l.length>0?l[Z%l.length]:void 0,rt=et?.fill||ct||a.primaryColor;q.classed(`venn-set-${Z%8}`,!0);let nt=et?.["fill-opacity"]??0.1,W=et?.stroke||rt,ht=et?.["stroke-width"]||`${5*v}`;if(h&&H){let N=X.get(it);if(N&&N.circles.length>0){let Q=N.circles[0],pt=H.circle(Q.x,Q.y,Q.radius*2,{roughness:0.7,seed:g,fill:wt(rt,0.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+Z*60,stroke:W,strokeWidth:parseFloat(String(ht))});q.select("path").remove(),q.node()?.insertBefore(pt,q.select("text").node())}}else q.select("path").style("fill",rt).style("fill-opacity",nt).style("stroke",W).style("stroke-width",ht).style("stroke-opacity",0.95);let ft=et?.color||(lt?u(rt,30):d(rt,30));q.select("text").style("font-size",`${48*v}px`).style("fill",ft)}),h&&H)k.selectAll(".venn-intersection").each(function(K){let Z=p(this),tt=yt([...K.sets].sort()),it=M.get(tt),et=it?.fill;if(et){let ct=Z.select("path"),rt=ct.attr("d");if(rt){let nt=H.path(rt,{roughness:0.7,seed:g,fill:wt(et,0.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),W=ct.node();W?.parentNode?.insertBefore(nt,W),ct.remove()}}else Z.select("path").style("fill-opacity",0);Z.select("text").style("font-size",`${48*v}px`).style("fill",it?.color??a.vennSetTextColor??z)});else k.selectAll(".venn-intersection text").style("font-size",`${48*v}px`).style("fill",(K)=>{let q=yt([...K.sets].sort());return M.get(q)?.color??a.vennSetTextColor??z}),k.selectAll(".venn-intersection path").style("fill-opacity",(K)=>{let q=yt([...K.sets].sort());return M.get(q)?.fill?1:0}).style("fill",(K)=>{let q=yt([...K.sets].sort());return M.get(q)?.fill??"transparent"});let st=f.append("g").attr("transform",`translate(0, ${w})`),J=k.select("svg").node();if(J&&"childNodes"in J)for(let K of[...J.childNodes])st.node()?.appendChild(K);B(f,P,G,o?.useMaxWidth??!0)},"draw");function yt(t){return t.join("|")}e(yt,"stableSetsKey");function ce(t,s,i,n,r,o){let a=t?.useDebugLayout??!1,g=i.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let l of n){let I=yt(l.sets),y=h.get(I);if(y)y.push(l);else h.set(I,[l])}for(let[l,I]of h.entries()){let y=s.get(l);if(!y?.text)continue;let _=y.text.x,M=y.text.y,j=Math.min(...y.circles.map((J)=>J.radius)),G=Math.min(...y.circles.map((J)=>J.radius-Math.hypot(_-J.x,M-J.y))),P=Number.isFinite(G)?Math.max(0,G):0;if(P===0&&Number.isFinite(j))P=j*0.6;let F=g.append("g").attr("class","venn-text-area").attr("font-size",`${40*r}px`);if(a)F.append("circle").attr("class","venn-text-debug-circle").attr("cx",_).attr("cy",M).attr("r",P).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*r).attr("stroke-dasharray",`${6*r} ${4*r}`);let v=Math.max(80*r,P*2*0.95),w=Math.max(60*r,P*2*0.95),k=(y.data.label&&y.data.label.length>0?Math.min(32*r,P*0.25):0)+(I.length<=2?30*r:0),x=_-v/2,H=M-w/2+k,O=Math.max(1,Math.ceil(Math.sqrt(I.length))),X=Math.max(1,Math.ceil(I.length/O)),lt=v/O,st=w/X;for(let[J,K]of I.entries()){let Z=J%O,q=Math.floor(J/O),tt=x+lt*(Z+0.5),it=H+st*(q+0.5);if(a)F.append("rect").attr("class","venn-text-debug-cell").attr("x",x+lt*Z).attr("y",H+st*q).attr("width",lt).attr("height",st).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*r).attr("stroke-dasharray",`${4*r} ${3*r}`);let et=lt*0.9,ct=st*0.9,rt=F.append("foreignObject").attr("class","venn-text-node-fo").attr("width",et).attr("height",ct).attr("x",tt-et/2).attr("y",it-ct/2).attr("overflow","visible"),nt=o.get(K.id)?.color,W=rt.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(K.label??K.id);if(nt)W.style("color",nt)}}}e(ce,"renderTextNodes");function ue(t){let s=new Set(t.map((r)=>[...r.sets].sort().join("|"))),i=new Map(t.filter((r)=>r.sets.length===1&&r.size!==void 0).map((r)=>[r.sets[0],r.size])),n=[];for(let r of t){if(r.sets.length<3)continue;let o=[...r.sets].sort();for(let a=0;a<o.length-1;a++)for(let c=a+1;c<o.length;c++){let g=[o[a],o[c]],h=g.join("|");if(!s.has(h)){s.add(h);let l=i.get(g[0]),I=i.get(g[1]),y=l!==void 0&&I!==void 0?Math.min(l,I)/4:2.5;n.push({sets:g,size:y,label:""})}}}return n.length>0?[...t,...n]:t}e(ue,"ensurePairwiseSubsets");var He={draw:Ke},rn={parser:ze,db:Ue,renderer:He,styles:We};export{rn as diagram};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ot}from"./chunk-h0c42zy3.js";class o extends Map{constructor(e,r=l){super();if(Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(f(this,e))}has(e){return super.has(f(this,e))}set(e,r){return super.set(a(this,e),r)}delete(e){return super.delete(p(this,e))}}function f({_intern:e,_key:r},t){let n=r(t);return e.has(n)?e.get(n):t}function a({_intern:e,_key:r},t){let n=r(t);if(e.has(n))return e.get(n);return e.set(n,t),t}function p({_intern:e,_key:r},t){let n=r(t);if(e.has(n))t=e.get(t),e.delete(n);return t}function l(e){return e!==null&&typeof e==="object"?e.valueOf():e}var c=Symbol("implicit");function Xe(){var e=new o,r=[],t=[],n=c;function s(u){let i=e.get(u);if(i===void 0){if(n!==c)return n;e.set(u,i=r.push(u)-1)}return t[i%t.length]}return s.domain=function(u){if(!arguments.length)return r.slice();r=[],e=new o;for(let i of u){if(e.has(i))continue;e.set(i,r.push(i)-1)}return s},s.range=function(u){return arguments.length?(t=Array.from(u),s):t.slice()},s.unknown=function(u){return arguments.length?(n=u,s):n},s.copy=function(){return Xe(r,t).unknown(n)},Ot.apply(s,arguments),s}
|
|
2
2
|
export{Xe};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{G}from"./chunk-ya3ghn3n.js";import{e,a,D,b,O,C,S,E,T,A,R,L,l,kr,p,Nn,Xr,U}from"./chunk-5v44qv67.js";import{Br,X}from"./chunk-cktmyc13.js";var _="position frame",V="frame positioned",F="position relation",j="relation positioned",pe=e(function(t){a.debug("options str",t)},"setOptions"),ve=e(function(){return{}},"getOptions"),be=e(function(){Y(),C()},"clear");function Y(){M={}}e(Y,"reset");var we=D.eventmodeling,ye=e(()=>U({...we,...b().eventmodeling}),"getConfig"),M={};function z(){let t=Pe,{ast:i}=M,n=I();if(!i)throw Error("No data for EventModel");return i.frames.forEach((r,o)=>{let s=te(r,i.dataEntities,n);t=P(t,{$kind:_,index:o,frame:r,textProps:s});let c=void 0;if(se(r))a.debug("source frame",r.sourceFrames),c=i.frames.filter((m)=>r.sourceFrames.some((u)=>u.$refText===m.name)),c.forEach((m)=>{t=P(t,{$kind:F,index:o,frame:r,sourceFrame:m})});else t=P(t,{$kind:F,index:o,frame:r})}),t={...t,sortedSwimlanesArray:W(t.swimlanes)},t}e(z,"getState");function K(t){M.ast=void 0;let i=new Set;for(let n of t.frames){if(i.has(n.name)){let r=n.$cstNode?.range.start.line,o=r===void 0?"":` on line ${r+1}`;throw Error(`Duplicate event modeling frame ID "${n.name}"${o}`)}i.add(n.name)}M.ast=t}e(K,"setAst");var d={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function I(){return d}e(I,"getDiagramProps");var Pe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function q(t){let i=t.split(".");if(i.length===2)return i[0];return}e(q,"extractNamespace");function J(t){let i=t.split(".");if(i.length===2)return i[1];return t}e(J,"extractName");function Q(t,i){if(!i||i.length===0)return;return Object.values(t).find((n)=>n.namespace===i)}e(Q,"findSwimlaneByNamespace");function y(t,i,n){return Math.max(i,...Object.keys(t).filter((r)=>{let o=Number.parseInt(r);return o>i&&o<n}).map((r)=>Number.parseInt(r)))+1}e(y,"findNextAvailableIndex");function Z(t,i){let n=q(t.entityIdentifier),r=Q(i,n);switch(t.modelEntityType){case"ui":case"pcr":case"processor":if(r)return{index:r.index,label:r.namespace||d.labelUiAutomation};else if(n)return{index:y(i,0,100),label:d.labelUiAutomationPrefix+n};return{index:0,label:d.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(r)return{index:r.index,label:r.namespace||d.labelCommandReadModel};else if(n)return{index:y(i,100,200),label:d.labelCommandReadModelPrefix+n};return{index:100,label:d.labelCommandReadModel};case"evt":case"event":default:if(r)return{index:r.index,label:r.namespace||d.labelEvents};else if(n)return{index:y(i,200,300),label:d.labelEventsPrefix+n};return{index:200,label:d.labelEvents}}}e(Z,"calculateSwimlaneProps");function ee(t){let{themeVariables:i}=b();switch(t.modelEntityType){case"ui":return{fill:i.emUiFill??"white",stroke:i.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:i.emProcessorFill??"#edb3f6",stroke:i.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:i.emReadModelFill??"#d3f1a2",stroke:i.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:i.emCommandFill??"#bcd6fe",stroke:i.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:i.emEventFill??"#ffb778",stroke:i.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}e(ee,"calculateEntityVisualProps");function te(t,i,n){let r=b(),o=O(J(t.entityIdentifier)??"",r),s,c={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},u=`<b>${Nn(o,n.textMaxWidth,c)}</b>`;if(t.dataInlineValue)s=t.dataInlineValue,s=s.substring(s.indexOf("{")+1),s=s.substring(0,s.lastIndexOf("}")-1),s=O(s,r),s=Nn(s,n.textMaxWidth,c),s=s.replaceAll(" "," ");if(t.dataReference){let w=i.find((k)=>k.name===t.dataReference?.$refText);if(w)s=w.dataBlockValue,s=s.substring(s.indexOf(`{
|
|
2
|
+
`)+2),s=s.substring(0,s.lastIndexOf("}")-1),s=O(s,r),s=Nn(s,n.textMaxWidth,c),s=s.replaceAll(" "," "),s+="<br/>"}let x=s!==void 0;if(x)u+=`<br/><br/><code style="text-align: left; display: block;max-width:${n.textMaxWidth}px">${s}</code>`;let g={fontSize:c.fontSize,fontWeight:c.fontWeight,fontFamily:c.fontFamily},f=Xr(u,g),v=x?f.width/3:f.width,h={content:u,width:v,height:f.height};return a.debug(`[${t.name}] ${t.entityIdentifier} text`,h),h}e(te,"calculateTextProps");function ne(t,i){let n=i,r=ee(n.frame),o={width:n.textProps.width+2*d.boxTextPadding,height:n.textProps.height+2*d.boxTextPadding};return[{$kind:V,frame:n.frame,index:n.index,visual:r,dimension:o,textProps:n.textProps}]}e(ne,"decidePositionFrame");function ie(t,i,n){if(i===void 0)return d.contentStartX;if(i.index===t.index&&t.r)return t.r+d.boxPadding;if(n===void 0)return d.contentStartX;return n.r-d.boxOverlap+d.boxPadding}e(ie,"calculateX");function re(t,i){let n=[...t.map((r)=>r.r),i];return Math.max(...n)}e(re,"calculateMaxRight");function W(t){return Object.values(t).sort((i,n)=>i.index-n.index)}e(W,"sortedSwimlanesArray");function ae(t,i){let n=i,r=Z(n.frame,t.swimlanes),o;if(r.index in t.swimlanes)o=t.swimlanes[r.index];else o={index:r.index,label:r.label,r:0,y:r.index*d.swimlaneMinHeight+d.swimlaneGap,height:d.swimlaneMinHeight,maxHeight:d.swimlaneMinHeight};let s=t.boxes.length>0?t.boxes[t.boxes.length-1]:void 0,c=t.previousSwimlaneNumber!==void 0?t.swimlanes[t.previousSwimlaneNumber]:void 0,m={width:Math.max(d.boxMinWidth,Math.min(d.boxMaxWidth,n.dimension.width))+2*d.boxPadding,height:Math.max(d.boxMinHeight,Math.min(d.boxMaxHeight,n.dimension.height))+2*d.boxPadding},u=ie(o,c,s),x=u+m.width+d.boxPadding,g=re(Object.values(t.swimlanes),x);o.r=u+m.width,o.maxHeight=Math.max(o.maxHeight,m.height),o.height=Math.max(d.swimlaneMinHeight,o.maxHeight)+2*d.swimlanePadding;let f={x:u,y:d.swimlanePadding+o.y,r:x,dimension:m,leftSibling:!1,swimlane:o,visual:n.visual,text:n.textProps.content,frame:n.frame,index:n.index},v={...t,boxes:[...t.boxes,f],swimlanes:{...t.swimlanes,[`${o.index}`]:o},previousSwimlaneNumber:r.index,previousFrame:n.frame,maxR:g},h=W(v.swimlanes);if(h.length>0)h[0].y=0;for(let w=1;w<h.length;w++){let k=h[w],H=h[w-1];k.y=H.y+H.height+d.swimlaneGap}return v}e(ae,"evolveFramePositioned");function oe(t,i){if(t===0&&i.sourceFrames.length===0)return!0;return!1}e(oe,"isFirstFrame");function se(t){return t.sourceFrames!==void 0&&t.sourceFrames!==null&&t.sourceFrames.length>0}e(se,"hasSourceFrame");function B(t,i){if(i===void 0||i===null)return;return t.find((n)=>n.frame.name===i.name)}e(B,"findBoxByFrame");function de(t,i,n){if(n<0)return;for(let r=n;r>=0;r--){let o=t[r];if(o.swimlane.index!==i)return o}return}e(de,"findBoxByLineIndex");function le(t,i){let n=i;if(oe(n.index,n.frame))return[];let r=B(t.boxes,n.frame);if(r===void 0)throw Error(`Target box not found for frame ${n.frame.name}`);let o;if(n.sourceFrame)o=B(t.boxes,n.sourceFrame);else{if(Br(n.frame))return[];o=de(t.boxes,r.swimlane.index,n.index-1)}if(o===void 0)return[];return[{$kind:j,frame:n.frame,index:n.index,sourceBox:o,targetBox:r}]}e(le,"decidePositionRelation");function ce(t,i){let n=i,r={visual:{fill:"none",stroke:"#000"},source:{x:n.sourceBox.x,y:n.sourceBox.y},target:{x:n.targetBox.x,y:n.targetBox.y},sourceBox:n.sourceBox,targetBox:n.targetBox};return{...t,relations:[...t.relations,r]}}e(ce,"evolveRelationPositioned");var Se={[_]:ne,[F]:le},Me={[V]:ae,[j]:ce};function me(t,i){let n=Se[i.$kind];if(n===void 0||n===null)return[];let r=n(t,i);return a.debug("decided events",r),r}e(me,"decide");function ue(t,i){let n=i.reduce((r,o)=>{let s=Me[o.$kind];if(s===void 0||s===null)return r;return s(r,o)},t);return a.debug("evolve events",{state:t,newState:n,events:i}),n}e(ue,"evolve");function P(t,i){let n=me(t,i);return ue(t,n)}e(P,"dispatch");var N={getConfig:ye,preserveCommentsWhenParsing:!0,setOptions:pe,getOptions:ve,clear:be,setAccTitle:S,getAccTitle:E,getAccDescription:A,setAccDescription:T,setDiagramTitle:R,getDiagramTitle:L,setAst:K,getDiagramProps:I,getState:z},ke={parse:e(async(t)=>{let i=await X("eventmodeling",t);a.debug(i),N.setAst(i),G(i,N)},"parse")},Fe=l(),Be=Fe?.eventmodeling;function xe(t,i){return(n)=>{let r=n.swimlane.y+i.swimlanePadding,o=t.append("g").attr("class","em-box");o.append("rect").attr("x",n.x).attr("y",r).attr("rx","3").attr("width",n.dimension.width).attr("height",n.dimension.height).attr("stroke",n.visual.stroke).attr("fill",n.visual.fill),o.append("foreignObject").attr("x",n.x+i.boxPadding).attr("y",r+10).attr("width",n.dimension.width-2*i.boxPadding).attr("height",n.dimension.height-2*i.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(n.text)}}e(xe,"renderD3Box");function fe(t,i){return t>i}e(fe,"dirUpwards");function ge(t,i,n,r){return(o)=>{let s=o.sourceBox.swimlane.y+i.swimlanePadding,c=o.targetBox.swimlane.y+i.swimlanePadding,m=fe(s,c),u=o.sourceBox.x+o.sourceBox.dimension.width*2/3,x=o.targetBox.x+o.targetBox.dimension.width/3,g,f;if(a.debug(`rendering relation up=${m} for `,{sourceBox:o.sourceBox,targetBox:o.targetBox}),m)g=s,f=c+o.targetBox.dimension.height;else g=s+o.sourceBox.dimension.height,f=c;let v=r.emRelationStroke??o.visual.stroke;t.append("path").attr("class","em-relation").attr("fill",o.visual.fill).attr("stroke",v).attr("stroke-width","1").attr("marker-end",`url(#${n})`).attr("d",`M${u} ${g} L${x} ${f}`)}}e(ge,"renderD3Relation");function he(t,i,n,r){return(o)=>{let s=t.append("g").attr("class","em-swimlane"),c=r.emSwimlaneBackgroundOdd??"rgb(250,250,250)",m=r.emSwimlaneBackgroundStroke??"rgb(240,240,240)";s.append("rect").attr("x",0).attr("y",o.y).attr("rx","3").attr("width",i+n.swimlanePadding).attr("height",o.height).attr("fill",c).attr("stroke",m),s.append("text").attr("font-weight",n.swimlaneTextFontWeight).attr("x",30).attr("y",o.y+30).text(o.label)}}e(he,"renderD3Swimlane");var Ee=e(function(t,i,n,r){if(a.debug("in eventmodeling renderer",t+`
|
|
3
|
+
`,"id:",i,n),!Be)throw Error("EventModeling config not found");let o=r.db,{themeVariables:s,eventmodeling:c}=l(),m=p(`[id="${i}"]`),u=o.getDiagramProps(),x=o.getState(),g=`em-arrowhead-${i}`,f=s.emArrowhead??"#000000";x.sortedSwimlanesArray.forEach(he(m,x.maxR,u,s)),x.boxes.forEach(xe(m,u)),x.relations.forEach(ge(m,u,g,s)),m.append("defs").append("marker").attr("id",g).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),kr(void 0,m,c?.padding??30,c?.useMaxWidth)},"draw"),Ae={draw:Ee},$e=e((t)=>"","getStyles"),Re=$e,Ue={parser:ke,db:N,renderer:Ae,styles:Re};export{Ue as diagram};
|