// https://d3js.org/d3-brush/ Version 1.0.4. Copyright 2017 Mike Bostock. !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-drag","d3-interpolate","d3-selection","d3-transition"],e):e(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,e,n,r,s,i){"use strict";function a(){s.event.stopImmediatePropagation()}function u(t){return{type:t}}function o(){return!s.event.button}function l(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function c(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function h(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function f(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function p(){return v(M)}function d(){return v(k)}function v(t){function f(e){var n=e.property("__brush",S).selectAll(".overlay").data([u("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",A.overlay).merge(n).each(function(){var t=c(this).extent;s.select(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),e.selectAll(".selection").data([u("selection")]).enter().append("rect").attr("class","selection").attr("cursor",A.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=e.selectAll(".handle").data(t.handles,function(t){return t.type});r.exit().remove(),r.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return A[t.type]}),e.each(p).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",z)}function p(){var t=s.select(this),e=c(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?e[1][0]-D/2:e[0][0]-D/2}).attr("y",function(t){return"s"===t.type[0]?e[1][1]-D/2:e[0][1]-D/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+D:D}).attr("height",function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+D:D})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function d(t,e){return t.__brush.emitter||new v(t,e)}function v(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function z(){function e(){var t=s.mouse(X);!$||N||O||(Math.abs(t[0]-et[0])>Math.abs(t[1]-et[1])?O=!0:N=!0),et=t,G=!0,b(),r()}function r(){var t;switch(D=et[0]-tt[0],I=et[1]-tt[1],B){case g:case w:F&&(D=Math.max(R-f,Math.min(W-z,D)),v=f+D,S=z+D),H&&(I=Math.max(U-m,Math.min(Z-V,I)),y=m+I,C=V+I);break;case x:F<0?(D=Math.max(R-f,Math.min(W-f,D)),v=f+D,S=z):F>0&&(D=Math.max(R-z,Math.min(W-z,D)),v=f,S=z+D),H<0?(I=Math.max(U-m,Math.min(Z-m,I)),y=m+I,C=V):H>0&&(I=Math.max(U-V,Math.min(Z-V,I)),y=m,C=V+I);break;case _:F&&(v=Math.max(R,Math.min(W,f-D*F)),S=Math.max(R,Math.min(W,z+D*F))),H&&(y=Math.max(U,Math.min(Z,m-I*H)),C=Math.max(U,Math.min(Z,V+I*H)))}S0&&(f=v-D),H<0?V=C-I:H>0&&(m=y-I),B=g,st.attr("cursor",A.selection),r());break;default:return}b()}function l(){switch(s.event.keyCode){case 16:$&&(N=O=$=!1,r());break;case 18:B===_&&(F<0?z=S:F>0&&(f=v),H<0?V=C:H>0&&(m=y),B=x,r());break;case 32:B===g&&(s.event.altKey?(F&&(z=S-D*F,f=v+D*F),H&&(V=C-I*H,m=y+I*H),B=_):(F<0?z=S:F>0&&(f=v),H<0?V=C:H>0&&(m=y),B=x),st.attr("cursor",A[Y]),r());break;default:return}b()}if(s.event.touches){if(s.event.changedTouches.length