!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-transition"],r):r(t.venn={},t.d3,t.d3)}(this,function(t,C,r){"use strict";var w=1e-10;function x(r,t){var n,e=function(t){for(var r=[],n=0;nr[n].radius+w)return!1;return!0}(t,r)}),i=0,s=0,u=[];if(12*v.radius&&(M=2*v.radius),(null===c||c.width>M)&&(c={circle:v,width:M,p1:h,p2:l})}null!==c&&(u.push(c),i+=I(c.circle.radius,c.width),l=h)}}else{var z=r[0];for(n=1;nMath.abs(z.radius-r[n].radius)){b=!0;break}b?i=s=0:(i=z.radius*z.radius*Math.PI,u.push({circle:z,p1:{x:z.x,y:z.y+z.radius},p2:{x:z.x-w,y:z.y+z.radius},width:2*z.radius}))}return s/=2,t&&(t.area=i+s,t.arcArea=i,t.polygonArea=s,t.arcs=u,t.innerPoints=a,t.intersectionPoints=e),i+s}function I(t,r){return t*t*Math.acos(1-r/t)-(t-r)*Math.sqrt(r*(2*t-r))}function R(t,r){return Math.sqrt((t.x-r.x)*(t.x-r.x)+(t.y-r.y)*(t.y-r.y))}function o(t,r,n){if(t+r<=n)return 0;if(n<=Math.abs(t-r))return Math.PI*Math.min(t,r)*Math.min(t,r);var e=r-(n*n-t*t+r*r)/(2*n);return I(t,t-(n*n-r*r+t*t)/(2*n))+I(r,e)}function k(t,r){var n=R(t,r),e=t.radius,a=r.radius;if(e+a<=n||n<=Math.abs(e-a))return[];var i=(e*e-a*a+n*n)/(2*n),s=Math.sqrt(e*e-i*i),u=t.x+i*(r.x-t.x)/n,o=t.y+i*(r.y-t.y)/n,f=-(r.y-t.y)*(s/n),l=-(r.x-t.x)*(s/n);return[{x:u+f,y:o-l},{x:u-f,y:o+l}]}function P(t){for(var r={x:0,y:0},n=0;n=g[c-1].fx){var A=!1;if(M.fx>P.fx?(F(z,1+h,m,-h,P),z.fx=t(z),z.fx=Math.min(i[r].size,i[n].size)?a=1:t.size<=1e-10&&(a=-1),o[r][n]=o[n][r]=a}),{distances:u,constraints:o}}(t,a,i),o=u.distances,f=u.constraints,l=M(o.map(M))/o.length;o=o.map(function(t){return t.map(function(t){return t/l})});function h(t,r){return function(t,r,n,e){var a,i=0;for(a=0;a=Math.min(a[l].size,a[h].size)&&(f=0),i[l].push({set:h,size:o.size,weight:f}),i[h].push({set:l,size:o.size,weight:f})}var x=[];for(n in i)if(i.hasOwnProperty(n)){var c=0;for(s=0;s2*Math.PI;)h-=2*Math.PI;if(h>Math.PI){var x=t[1].y/(1e-10+t[1].x);for(e=0;es&&l.node().getComputedTextLength()>e&&(o.pop(),l.text(o.join(" ")),o=[u],l=r.append("tspan").text(u),f++);var h=.35-1.1*f/2,x=r.attr("x"),c=r.attr("y");r.selectAll("tspan").attr("x",x).attr("y",c).attr("dy",function(t,r){return h+1.1*r+"em"})}}function O(t,r,n){var e,a,i=r[0].radius-R(r[0],t);for(e=1;er[t].radius){l=!1;break}for(t=0;tu;a.push("\nA",u,u,0,o?1:0,1,s.p1.x,s.p1.y)}return a.join(" ")}t.intersectionArea=x,t.circleCircleIntersection=k,t.circleOverlap=o,t.circleArea=I,t.distance=R,t.venn=i,t.greedyLayout=s,t.scaleSolution=S,t.normalizeSolution=L,t.bestInitialLayout=l,t.lossFunction=T,t.disjointCluster=d,t.distanceFromIntersectArea=E,t.VennDiagram=function(){var M=600,z=350,b=15,w=1e3,I=Math.PI/2,R=!0,P=!0,A=!0,F=null,O=null,n={},e=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],a=0,q=function(t){if(t in n)return n[t];var r=n[t]=e[a];return e.length<=(a+=1)&&(a=0),r},j=i,k=T;function r(t){var r=t.datum(),n={};r.forEach(function(t){0==t.size&&1==t.sets.length&&(n[t.sets[0]]=1)}),r=r.filter(function(t){return!t.sets.some(function(t){return t in n})});var a={},e={};if(0