d3v4-bullet
Version:
d3 v4 bullet chart.
1 lines • 2.68 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-array"),require("d3-axis"),require("d3-scale"),require("d3-selection"),require("d3-timer"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-axis","d3-scale","d3-selection","d3-timer","d3-transition"],e):e((t=t||self).d3={},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,A,a,F,L,n){"use strict";function i(t){return t.ranges}function s(t){return t.markers}function c(t){return t.measures}function M(e){var r=e(0);return function(t){return Math.abs(e(t)-r)}}t.bullet=function(){var e="left",x=!1,y=!1,_=i,v=s,b=c,k=380,w=30,q=a.axisLeft();function r(t){t.each(function(t,e){var r,a,n=_.call(this,t,e).slice().sort(A.descending),i=v.call(this,t,e).slice().sort(A.descending),s=b.call(this,t,e).slice().sort(A.descending),c=L.select(this),l=c.select("g.wrap");l.empty()&&(l=c.append("g").attr("class","wrap")),y?(r=w,a=k,l.attr("transform","rotate(90)translate(0,"+-k+")")):(r=k,a=w,l.attr("transform",null));var o=F.scaleLinear().domain([0,Math.max(n[0],i[0],s[0])]).range(x?[r,0]:[0,r]),u=this.__chart__||F.scaleLinear().domain([0,1/0]).range(o.range());this.__chart__=o;var d=M(u),h=M(o),f=l.selectAll("rect.range").data(n);f.enter().append("rect").attr("class",function(t,e){return"range s"+e}).attr("width",d).attr("height",a).attr("x",x?u:0).merge(f).transition(f).attr("x",x?o:0).attr("width",h).attr("height",a);var g=l.selectAll("rect.measure").data(s);g.enter().append("rect").attr("class",function(t,e){return"measure s"+e}).attr("width",d).attr("height",a/3).attr("x",x?u:0).attr("y",a/3).merge(g).transition(g).attr("width",h).attr("height",a/3).attr("x",x?o:0).attr("y",a/3);var m=l.selectAll("line.marker").data(i);m.enter().append("line").attr("class","marker").attr("x1",u).attr("x2",u).attr("y1",a/6).attr("y2",5*a/6).merge(m).transition(m).attr("x1",o).attr("x2",o).attr("y1",a/6).attr("y2",5*a/6);var p=c.selectAll("g.axis").data([0]);p.enter().append("g").attr("class","axis"),p.attr("transform",y?null:"translate(0,"+a+")").call(q.scale(o))}),n.timerFlush()}return r.orient=function(t){return arguments.length?(x="right"===(e=t+"")||"bottom"===e,q.orient((y="top"===e||"bottom"===e)?"left":"bottom"),r):e},r.ranges=function(t){return arguments.length?(_=t,r):_},r.markers=function(t){return arguments.length?(v=t,r):v},r.measures=function(t){return arguments.length?(b=t,r):b},r.width=function(t){return arguments.length?(k=+t,r):k},r.height=function(t){return arguments.length?(w=+t,r):w},r.tickFormat=function(t){return arguments.length?(q.tickFormat(t),r):q.tickFormat()},r},Object.defineProperty(t,"__esModule",{value:!0})});