You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
8.3 KiB
2 lines
8.3 KiB
5 years ago
|
// 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)))}S<v&&(F*=-1,t=f,f=z,z=t,t=v,v=S,S=t,Y in q&&st.attr("cursor",A[Y=q[Y]])),C<y&&(H*=-1,t=m,m=V,V=t,t=y,y=C,C=t,Y in E&&st.attr("cursor",A[Y=E[Y]])),J.selection&&(Q=J.selection),N&&(v=Q[0][0],S=Q[1][0]),O&&(y=Q[0][1],C=Q[1][1]),Q[0][0]===v&&Q[0][1]===y&&Q[1][0]===S&&Q[1][1]===C||(J.selection=[[v,y],[S,C]],p.call(X),nt.brush())}function u(){if(a(),s.event.touches){if(s.event.touches.length)return;T&&clearTimeout(T),T=setTimeout(function(){T=null},500),rt.on("touchmove.brush touchend.brush touchcancel.brush",null)}else n.dragEnable(s.event.view,G),it.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);rt.attr("pointer-events","all"),st.attr("cursor",A.overlay),J.selection&&(Q=J.selection),h(Q)&&(J.selection=null,p.call(X)),nt.end()}function o(){switch(s.event.
|