!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-selection"),require("d3-drag")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-drag"],n):n(t.d3=t.d3||{},t.d3,t.d3)}(this,(function(t,n,e){"use strict";function r(t,n){return t(n={exports:{}},n.exports),n.exports}var o=r((function(t){t.exports=function(t,e,r){var o=t*e,a=n*t,s=a-(a-t),i=t-s,u=n*e,l=u-(u-e),f=e-l,c=i*f-(o-s*l-i*l-s*f);return r?(r[0]=c,r[1]=o,r):[c,o]};var n=+(Math.pow(2,27)+1)})),a=r((function(t){t.exports=function(t,n){var e=0|t.length,r=0|n.length;if(1===e&&1===r)return function(t,n){var e=t+n,r=e-t,o=t-(e-r)+(n-r);return o?[o,e]:[e]}(t[0],n[0]);var o,a,s=new Array(e+r),i=0,u=0,l=0,f=Math.abs,c=t[u],h=f(c),d=n[l],p=f(d);h<p?(a=c,(u+=1)<e&&(h=f(c=t[u]))):(a=d,(l+=1)<r&&(p=f(d=n[l]))),u<e&&h<p||l>=r?(o=c,(u+=1)<e&&(h=f(c=t[u]))):(o=d,(l+=1)<r&&(p=f(d=n[l])));for(var v,g,_=o+a,m=_-o,b=a-m,M=b,y=_;u<e&&l<r;)h<p?(o=c,(u+=1)<e&&(h=f(c=t[u]))):(o=d,(l+=1)<r&&(p=f(d=n[l]))),(b=(a=M)-(m=(_=o+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v;for(;u<e;)(b=(a=M)-(m=(_=(o=c)+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v,(u+=1)<e&&(c=t[u]);for(;l<r;)(b=(a=M)-(m=(_=(o=d)+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v,(l+=1)<r&&(d=n[l]);return M&&(s[i++]=M),y&&(s[i++]=y),i||(s[i++]=0),s.length=i,s}})),s=r((function(t){t.exports=function(t,n,e){var r=t+n,o=r-t,a=n-o,s=t-(r-o);return e?(e[0]=s+a,e[1]=r,e):[s+a,r]}})),i=r((function(t){var n=o,e=s;t.exports=function(t,r){var o=t.length;if(1===o){var a=n(t[0],r);return a[0]?a:[a[1]]}var s=new Array(2*o),i=[.1,.1],u=[.1,.1],l=0;n(t[0],r,i),i[0]&&(s[l++]=i[0]);for(var f=1;f<o;++f){n(t[f],r,u);var c=i[1];e(c,u[0],i),i[0]&&(s[l++]=i[0]);var h=u[1],d=i[1],p=h+d,v=d-(p-h);i[1]=p,v&&(s[l++]=v)}return i[1]&&(s[l++]=i[1]),0===l&&(s[l++]=0),s.length=l,s}})),u=r((function(t){t.exports=function(t,n){var e=0|t.length,r=0|n.length;if(1===e&&1===r)return function(t,n){var e=t+n,r=e-t,o=t-(e-r)+(n-r);return o?[o,e]:[e]}(t[0],-n[0]);var o,a,s=new Array(e+r),i=0,u=0,l=0,f=Math.abs,c=t[u],h=f(c),d=-n[l],p=f(d);h<p?(a=c,(u+=1)<e&&(h=f(c=t[u]))):(a=d,(l+=1)<r&&(p=f(d=-n[l]))),u<e&&h<p||l>=r?(o=c,(u+=1)<e&&(h=f(c=t[u]))):(o=d,(l+=1)<r&&(p=f(d=-n[l])));for(var v,g,_=o+a,m=_-o,b=a-m,M=b,y=_;u<e&&l<r;)h<p?(o=c,(u+=1)<e&&(h=f(c=t[u]))):(o=d,(l+=1)<r&&(p=f(d=-n[l]))),(b=(a=M)-(m=(_=o+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v;for(;u<e;)(b=(a=M)-(m=(_=(o=c)+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v,(u+=1)<e&&(c=t[u]);for(;l<r;)(b=(a=M)-(m=(_=(o=d)+a)-o))&&(s[i++]=b),M=y-((v=y+_)-(g=v-y))+(_-g),y=v,(l+=1)<r&&(d=-n[l]);return M&&(s[i++]=M),y&&(s[i++]=y),i||(s[i++]=0),s.length=i,s}})),l=r((function(t){function n(t,n){for(var e=new Array(t.length-1),r=1;r<t.length;++r)for(var o=e[r-1]=new Array(t.length-1),a=0,s=0;a<t.length;++a)a!==n&&(o[s++]=t[r][a]);return e}function e(t){return 1&t?"-":""}function r(t){if(1===t.length)return t[0];if(2===t.length)return["sum(",t[0],",",t[1],")"].join("");var n=t.length>>1;return["sum(",r(t.slice(0,n)),",",r(t.slice(n)),")"].join("")}function s(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var o=[],a=0;a<t.length;++a)o.push(["scale(",r(s(n(t,a))),",",e(a),t[0][a],")"].join(""));return o}function l(t){for(var e=[],o=[],a=function(t){for(var n=new Array(t),e=0;e<t;++e){n[e]=new Array(t);for(var r=0;r<t;++r)n[e][r]=["m",r,"[",t-e-1,"]"].join("")}return n}(t),i=[],u=0;u<t;++u)1&u?o.push.apply(o,s(n(a,u))):e.push.apply(e,s(n(a,u))),i.push("m"+u);var l=r(e),f=r(o),v="orientation"+t+"Exact",g=["function ",v,"(",i.join(),"){var p=",l,",n=",f,",d=sub(p,n);return d[d.length-1];};return ",v].join("");return new Function("sum","prod","scale","sub",g)(h,c,d,p)}function f(t){var n=M[t.length];return n||(n=M[t.length]=l(t.length)),n.apply(void 0,t)}var c=o,h=a,d=i,p=u,v=11102230246251565e-32,g=(3+16*v)*v,_=(7+56*v)*v,m=l(3),b=l(4),M=[function(){return 0},function(){return 0},function(t,n){return n[0]-t[0]},function(t,n,e){var r,o=(t[1]-e[1])*(n[0]-e[0]),a=(t[0]-e[0])*(n[1]-e[1]),s=o-a;if(o>0){if(a<=0)return s;r=o+a}else{if(!(o<0))return s;if(a>=0)return s;r=-(o+a)}var i=g*r;return s>=i||s<=-i?s:m(t,n,e)},function(t,n,e,r){var o=t[0]-r[0],a=n[0]-r[0],s=e[0]-r[0],i=t[1]-r[1],u=n[1]-r[1],l=e[1]-r[1],f=t[2]-r[2],c=n[2]-r[2],h=e[2]-r[2],d=a*l,p=s*u,v=s*i,g=o*l,m=o*u,M=a*i,y=f*(d-p)+c*(v-g)+h*(m-M),w=(Math.abs(d)+Math.abs(p))*Math.abs(f)+(Math.abs(v)+Math.abs(g))*Math.abs(c)+(Math.abs(m)+Math.abs(M))*Math.abs(h),x=_*w;return y>x||-y>x?y:b(t,n,e,r)}];!function(){for(;M.length<=5;)M.push(l(M.length));for(var n=[],e=["slow"],r=0;r<=5;++r)n.push("a"+r),e.push("o"+r);var o=["function getOrientation(",n.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(r=2;r<=5;++r)o.push("case ",r,":return o",r,"(",n.slice(0,r).join(),");");o.push("}var s=new Array(arguments.length);for(var i=0;i<arguments.length;++i){s[i]=arguments[i]};return slow(s);}return getOrientation"),e.push(o.join(""));var a=Function.apply(void 0,e);for(t.exports=a.apply(void 0,[f].concat(M)),r=0;r<=5;++r)t.exports[r]=M[r]}()})),f=r((function(t){t.exports=function(t,e){for(var r=e[0],o=e[1],a=t.length,s=1,i=a,u=0,l=a-1;u<i;l=u++){var f=t[u],c=t[l],h=f[1],d=c[1];if(d<h){if(d<o&&o<h){if(0===(p=n(f,c,e)))return 0;s^=0<p|0}else if(o===h&&h<t[(u+1)%a][1]){if(0===(p=n(f,c,e)))return 0;s^=0<p|0}}else if(h<d){if(h<o&&o<d){if(0===(p=n(f,c,e)))return 0;s^=p<0|0}else if(o===h&&t[(u+1)%a][1]<h){var p;if(0===(p=n(f,c,e)))return 0;s^=p<0|0}}else if(o===h){var v=Math.min(f[0],c[0]),g=Math.max(f[0],c[0]);if(0===u){for(;l>0;){var _=(l+a-1)%a;if((M=t[_])[1]!==o)break;var m=M[0];v=Math.min(v,m),g=Math.max(g,m),l=_}if(0===l)return v<=r&&r<=g?0:1;i=l+1}for(var b=t[(l+a-1)%a][1];u+1<i;){var M;if((M=t[u+1])[1]!==o)break;m=M[0],v=Math.min(v,m),g=Math.max(g,m),u+=1}if(v<=r&&r<=g)return 0;var y=t[(u+1)%a][1];r<v&&b<o!=y<o&&(s^=1)}}return 2*s-1};var n=l}));t.lasso=function(){function t(t){var u,l,c,h,d=t.append("g").attr("class","lasso"),p=d.append("path").attr("class","drawn"),v=d.append("path").attr("class","loop_close"),g=d.append("circle").attr("class","origin"),_=d3.drag().on("start",(function(){h=[],u="",p.attr("d",null),v.attr("d",null),e.nodes().forEach((function(t){t.__lasso.possible=!1,t.__lasso.selected=!1,t.__lasso.hoverSelect=!1,t.__lasso.loopSelect=!1;var n=t.getBoundingClientRect();t.__lasso.lassoPoint=[Math.round(n.left+n.width/2),Math.round(n.top+n.height/2)]})),s&&e.on("mouseover.lasso",(function(){this.__lasso.hoverSelect=!0})),i.start()})).on("drag",(function(){var t,n;"touchmove"===d3.event.sourceEvent.type?(t=d3.event.sourceEvent.touches[0].clientX,n=d3.event.sourceEvent.touches[0].clientY):(t=d3.event.sourceEvent.clientX,n=d3.event.sourceEvent.clientY);var s=d3.mouse(this)[0],d=d3.mouse(this)[1];""===u?(u=u+"M "+s+" "+d,l=[t,n],c=[s,d],g.attr("cx",s).attr("cy",d).attr("r",7).attr("display",null)):u=u+" L "+s+" "+d,h.push([t,n]);var _=Math.sqrt(Math.pow(t-l[0],2)+Math.pow(n-l[1],2)),m="M "+s+" "+d+" L "+c[0]+" "+c[1];p.attr("d",u),v.attr("d",m),(a=_<=r)&&o?v.attr("display",null):v.attr("display","none"),e.nodes().forEach((function(t){t.__lasso.loopSelect=!(!a||!o)&&f(h,t.__lasso.lassoPoint)<1,t.__lasso.possible=t.__lasso.hoverSelect||t.__lasso.loopSelect})),i.draw()})).on("end",(function(){e.on("mouseover.lasso",null),e.nodes().forEach((function(t){t.__lasso.selected=t.__lasso.possible,t.__lasso.possible=!1})),p.attr("d",null),v.attr("d",null),g.attr("display","none"),i.end()}));n.call(_)}var n,e=[],r=75,o=!0,a=!1,s=!0,i={start:function(){},draw:function(){},end:function(){}};return t.items=function(n){return arguments.length?((e=n).nodes().forEach((function(t){t.__lasso={possible:!1,selected:!1}})),t):e},t.possibleItems=function(){return e.filter((function(){return this.__lasso.possible}))},t.selectedItems=function(){return e.filter((function(){return this.__lasso.selected}))},t.notPossibleItems=function(){return e.filter((function(){return!this.__lasso.possible}))},t.notSelectedItems=function(){return e.filter((function(){return!this.__lasso.selected}))},t.closePathDistance=function(n){return arguments.length?(r=n,t):r},t.closePathSelect=function(n){return arguments.length?(o=!0===n,t):o},t.isPathClosed=function(n){return arguments.length?(a=!0===n,t):a},t.hoverSelect=function(n){return arguments.length?(s=!0===n,t):s},t.on=function(n,e){return arguments.length?1===arguments.length?i[n]:(["start","draw","end"].indexOf(n)>-1&&(i[n]=e),t):i},t.targetArea=function(e){return arguments.length?(n=e,t):n},t},Object.defineProperty(t,"__esModule",{value:!0})}));