forked from WealthBar/angular-d3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathangularD3.min.js
More file actions
1 lines (1 loc) · 13.8 KB
/
angularD3.min.js
File metadata and controls
1 lines (1 loc) · 13.8 KB
1
!function(){angular.module("ad3",[])}.call(this),function(){angular.module("ad3").directive("d3Arc",function(){var a;return a=function(){return{x:0,y:1,innerRadius:0,labelRadius:0,transition:"cubic-in-out",transitionDuration:1e3,value:"value",label:"label"}},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k,l,m;return l=angular.extend(a(),d),i=e.getChart(),j=parseFloat(l.innerRadius),k=parseFloat(l.labelRadius),h=null,g=null,f=null,m=function(a){var b,c,d,i;return h||(h=e.getChart().append("g").attr("class","arc")),g||(g=h.append("path")),f||(f=h.append("text").attr("class","arc-label").attr("dy","0.35em").style("text-anchor","middle")),null!=a&&0!==a.length?(i=Math.min(e.innerWidth,e.innerHeight)/2,h.attr("transform","translate("+i+","+i+")"),b=d3.svg.arc().outerRadius(i).innerRadius(i*j).startAngle(0).endAngle(function(a){return 2*(a/100)*Math.PI}),c=function(a){var c;return null==this._current&&(this._current=0),c=d3.interpolate(this._current,a),this._current=a,function(a){return b(c(a))}},d=d3.svg.arc().outerRadius(i*k).innerRadius(i*k),g.datum(a[l.value]).transition().ease(l.transition).duration(l.transitionDuration).attrTween("d",c),f.text(a[l.label])):void 0},e.registerElement(m,l.order)}}})}.call(this),function(){angular.module("ad3").directive("d3Area",function(){var a;return a=function(){return{}},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k,l;return i=angular.extend(a(),d),k=e.getScale(i.xscale||i.x),l=e.getScale(i.yscale||i.y),i.vertical?(f=d3.svg.area().y(function(a){return k(a.x)}).x0(0).x1(function(a){return l(a.y)}),h=d3.svg.area().y(function(a){return k(a.x)}).x0(function(a){return l(a.y0)}).x1(function(a){return l(a.y+a.y0)})):(f=d3.svg.area().x(function(a){return k(a.x)}).y0(function(){return e.innerHeight}).y1(function(a){return l(a.y)}),h=d3.svg.area().x(function(a){return k(a.x)}).y0(function(a){return l(a.y0)}).y1(function(a){return l(a.y+a.y0)})),g=null,j=function(a){var c,d,j,k,l,m,n;return g||(g=e.getChart().append("g").attr("class","area")),null!=a&&0!==a.length&&(null!=i.y&&(d=i.y),null!=i.columns&&(d=b.$eval(i.columns)),null!=d&&(angular.isString(d)&&(d=d.split(",").map(function(a){return a.trim()})),0!==d.length))?(j=function(){var b,c,e;for(e=[],b=0,c=d.length;c>b;b++)k=d[b],e.push({name:k,values:function(){var b,c,d;for(d=[],b=0,c=a.length;c>b;b++)n=a[b],d.push({x:n[i.x],y:n[k]});return d}()});return e}(),l=d3.layout.stack().values(function(a){return a.values}),null!=i.offset&&l.offset(i.offset),m=l(j),c=g.selectAll("path.area").data(m),c.enter().append("path"),c.attr("class",function(a){return"area "+a.name}).transition().duration(500).attr("d",function(a,b){return 0===b?f(a.values):h(a.values)}),c.exit().attr("d",function(a,b){return 0===b?f(a.values):h(a.values)}).remove()):void 0},null!=i.columns&&b.$watch(i.columns,e.redraw,!0),e.registerElement(j,i.order)}}})}.call(this),function(){angular.module("ad3").directive("d3Axis",function(){var a;return a=function(){return{orientation:"bottom",ticks:"5",extent:!1}},{priority:1,restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;return l=angular.extend(a(),d),n=function(){return"top"===l.orientation||"bottom"===l.orientation?null!=l.reverse?[e.innerWidth,0]:[0,e.innerWidth]:null!=l.reverse?[0,e.innerHeight]:[e.innerHeight,0]},q=function(){return"bottom"===l.orientation?"translate(0, "+e.innerHeight+")":"top"===l.orientation?"translate(0, 0)":"left"===l.orientation?"translate(0, 0)":"right"===l.orientation?"translate("+e.innerWidth+", 0)":void 0},p="time"===l.scale?d3.time.scale():l.scale?d3.scale[l.scale]():d3.scale.linear(),i=function(){var a,c,d;return a=d3.svg.axis().scale(p).orient(l.orientation),l.ticks&&a.ticks(l.ticks),l.timeScale&&a.ticks(d3.time[l.timeScale],l.timeInterval),l.tickValues&&a.tickValues(b.$eval(l.tickValues)),l.tickSize&&(d=l.tickSize.split(","),a.innerTickSize(d[0]),a.outerTickSize(d[1])),null!=l.format&&(c=d3.format(l.format),a.tickFormat(c)),null!=l.timeFormat&&(c=d3.time.format(l.timeFormat),a.tickFormat(function(a){return c(new Date(a))})),a},m=function(a){return"bottom"===l.orientation?a.attr("x",""+e.innerWidth/2).attr("dy",""+e.margin.bottom).attr("style","text-anchor: middle;"):"top"===l.orientation?a.attr("x",""+e.innerWidth/2).attr("dy",""+-e.margin.top).attr("style","text-anchor: middle;"):"left"===l.orientation?a.attr("x","-"+e.innerHeight/2).attr("dy",""+(-e.margin.left+18)).attr("style","text-anchor: middle;").attr("transform","rotate(-90)"):"right"===l.orientation?a.attr("x",""+e.innerHeight/2).attr("dy",""+(-e.margin.right+18)).attr("style","text-anchor: middle;").attr("transform","rotate(90)"):void 0},h=function(a){return"bottom"===l.orientation?a.call(i().tickSize(e.innerHeight,0,0).tickFormat("")):"top"===l.orientation?a.attr("transform","translate(0, "+e.innerHeight+")").call(i().tickSize(e.innerHeight,0,0).tickFormat("")):"left"===l.orientation?a.attr("transform","translate("+e.innerWidth+", 0)").call(i().tickSize(e.innerWidth,0,0).tickFormat("")):"right"===l.orientation?a.call(i().tickSize(e.innerWidth,0,0).tickFormat("")):void 0},f=function(a){var b,c,d;return d=a.selectAll(".tick text"),l.tickDy&&d.attr("dy",l.tickDy),l.tickDx&&d.attr("dx",l.tickDx),l.tickAnchor&&d.style("text-anchor",l.tickAnchor),c=d3.select(d[0].slice(-1)[0]),l.lastTickDy&&c.attr("dy",l.lastTickDy),l.lastTickDx&&c.attr("dx",l.lastTickDx),l.lastTickAnchor&&c.style("text-anchor",l.lastTickAnchor),b=d3.select(d[0][0]),l.firstTickDy&&b.attr("dy",l.firstTickDy),l.firstTickDx&&b.attr("dx",l.firstTickDx),l.listTickAnchor?b.style("text-anchor",l.firstTickAnchor):void 0},g=null,j=null,k=null,o=function(a){var b;return g||(g=e.getChart().append("g").attr("class","axis axis-"+l.orientation+" axis-"+l.name).attr("transform",q())),l.label&&(k||(k=g.append("text").attr("class","axis-label").text(l.label))),l.grid&&(j||(j=e.getChart().append("g").attr("class","axis-grid axis-grid-"+l.name))),null!=a&&0!==a.length?(k&&m(k.transition().duration(500)),g.transition().duration(500).attr("transform",q()).call(i()).selectAll("tick text").tween("attr.dx",null).tween("attr.dy",null).tween("style.text-anchor",null),null!=j&&h(j.transition().duration(500)),b=g.selectAll(".tick text"),g.call(f)):void 0},r=function(a){var c,d;if(null!=a&&0!==a.length)return p.range(n()),l.domain,d=l.filter?b.$eval(""+l.filter+"(data)",{data:a}):function(){var b,d,e;for(e=[],b=0,d=a.length;d>b;b++)c=a[b],e.push(c[l.name]);return e}(),l.extent?p.domain(d3.extent(d)):p.domain([0,d3.max(d)])},e.addScale(l.name,p,r),e.registerElement(o,l.order),null!=l.tickValues?b.$watch(l.tickValues,e.redraw,!0):void 0}}})}.call(this),function(){angular.module("ad3").directive("d3Bars",function(){var a;return a=function(){return{x:0,y:1,width:15}},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k,l,m;return i=angular.extend(a(),d),l=e.getScale(i.xscale||i.x),m=e.getScale(i.yscale||i.y),g=e.getChart(),h=e.innerHeight,k=i.width,f=null,j=function(a){var b;return f||(f=e.getChart().append("g").attr("class","bars")),null!=a&&0!==a.length?(b=f.selectAll("rect.bar").data(a),b.exit().transition().duration(500).attr("y",function(){return e.innerHeight}).attr("height",0).remove(),b.transition().duration(500).attr("x",function(a){return l(a[i.x])-k/2}).attr("y",function(a){return m(a[i.y])}).attr("height",function(a){return e.innerHeight-m(a[i.y])}).attr("width",k),b.enter().append("rect").attr("class",function(a,b){return"bar bar-"+b}).attr("x",function(a){return l(a[i.x])-k/2}).attr("width",k).attr("y",function(){return e.innerHeight}).attr("height",0).transition().duration(500).attr("y",function(a){return m(a[i.y])}).attr("height",function(a){return e.innerHeight-m(a[i.y])})):void 0},e.registerElement(j,i.order)}}})}.call(this),function(){angular.module("ad3").directive("d3Chart",function(){return{restrict:"EA",scope:!0,controller:["$scope","$element","$attrs","$window","$timeout",function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p=this;k=a.scales={},i=a.elements=[],f=a.binding=c.data,this.margin=a.$eval(c.margin)||{top:10,right:10,bottom:10,left:10},m=d3.select(b[0]).append("svg").attr("class","d3").attr("width","100%").attr("height","100%"),o=function(){return b[0].offsetWidth},j=function(){return b[0].offsetHeight},g=m.append("g").attr("transform","translate("+this.margin.left+","+this.margin.top+")"),this.getSvg=function(){return m},this.getChart=function(){return g},this.addScale=function(a,b,c){return k[a]={scale:b,update:c}},this.getScale=function(a){return k[a].scale},this.registerElement=function(a,b){return null==b&&(b=0),i.push({redraw:a,order:Number(b)})},n=function(){return p.width!==o()||p.height!==j()?(p.width=o(),p.height=j(),p.innerWidth=p.width-p.margin.left-p.margin.right,p.innerHeight=p.height-p.margin.top-p.margin.bottom,p.redraw()):void 0},l=function(a,b){return a.order-b.order},h=null,this.redraw=function(){return h||0===p.width||0===p.height?void 0:h=e(function(){var b,c,d,e,g,j,m,n;h=null,b=a.$eval(f);for(d in k)e=k[d],e.update(b);for(m=i.sort(l),n=[],g=0,j=m.length;j>g;g++)c=m[g],n.push(c.redraw(b));return n},c.updateInterval||200)},d.addEventListener("resize",n),"deep"===c.watch?a.$watch(f,this.redraw,!0):a.$watch(f,this.redraw),a.$watch(n),n()}]}})}.call(this),function(){angular.module("ad3").directive("d3Data",["d3Service",function(a){return{restrict:"E",scope:!1,link:function(b,c,d){var e,f,g,h;return h=d.src,f=d.data,d.accessor&&(e=b.$eval(d.accessor)),d.callback&&(g=b.$eval(d.callback)),a.csv(h,e,g).then(function(a){return b[f]=a},function(){throw"Error loading CSV via D3"})}}}])}.call(this),function(){angular.module("ad3").directive("d3Gradient",function(){var a;return a={transition:500},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h;return g=e.getSvg(),f=g.insert("defs","g").append("linearGradient").attr("id",d.ref),["x1","x2","y1","y2"].forEach(function(a){return d.$observe(a,function(b){return f.attr(a,b)})}),h=a.transition,d.$observe("transition",function(a){return null!=a?h=a:void 0}),b.$watch(d.stops,function(a){return null!=a?(a=f.selectAll("stop").data(a),a.enter().append("stop"),a.attr("offset",function(a){return a.offset}).attr("stop-color",function(a){return a.color}).attr("stop-opacity",function(a){return null!=a.opacity?a.opacity:1}),a.exit().remove()):void 0})}}})}.call(this),function(){angular.module("ad3").directive("d3Include",function(){return{restrict:"E",require:"^d3Chart",link:function(a,b,c,d){var e,f;return e=d.getChart(),f=e.append("g").attr("class","includes"),f.html(b.html())}}})}.call(this),function(){angular.module("ad3").directive("d3Line",function(){var a;return a=function(){return{x:0,y:1}},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k;return h=angular.extend(a(),d),j=e.getScale(h.xscale||h.x),k=e.getScale(h.yscale||h.y),f=d3.svg.line().x(function(a){return j(a[h.x])}).y(function(a){return k(a[h.y])}),g=null,i=function(a){return g||(g=e.getChart().append("path").attr("class","line line-"+(h.name||h.y)).style("fill","none").style("stroke",h.stroke)),null!=a&&0!==a.length?g.datum(a).transition().duration(500).attr("d",f):void 0},e.registerElement(i,h.order)}}})}.call(this),function(){angular.module("ad3").directive("d3Pie",function(){var a;return a=function(){return{x:0,y:1,innerRadius:0,labelRadius:.7,transition:"cubic-in-out",transitionDuration:800,minOffset:12,value:"value"}},{restrict:"E",require:"^d3Chart",link:function(b,c,d,e){var f,g,h,i,j,k,l,m,n;return k=angular.extend(a(),d),g=e.getChart(),i=parseFloat(k.innerRadius),j=parseFloat(k.labelRadius),d.colors&&(h=function(){switch(d.colors){case"category20":return d3.scale.category20();case"category20b":return d3.scale.category20b();case"category20c":return d3.scale.category20c()}}()),l=d3.layout.pie().sort(null).value(function(a){return a[k.value]}),n=null,f=null,m=function(a){var b,c,g,m,n,o,p,q,r;return f||(f=e.getChart().append("g").attr("class","pie")),null!=a&&0!==a.length?(q=Math.min(e.innerWidth,e.innerHeight)/2,f.attr("transform","translate("+q+","+q+")"),b=d3.svg.arc().outerRadius(q).innerRadius(q*i),c=function(a){var c;return c=d3.interpolate(this._current,a),this._current=c(0),function(a){return b(c(a))}},n=d3.svg.arc().outerRadius(q*j).innerRadius(q*j),r=f.selectAll(".pie").data(l(a)),r.enter().append("path").attr("class",function(a,b){return"pie pie-"+b}).attr("d",b).each(function(a){return this._current=a}),d.colors&&r.style("fill",function(a,b){return h?h(b):a[d.color]}),r.exit().remove(),r.transition().ease(k.transition).duration(k.transitionDuration).attrTween("d",c),k.label?(p=null,o=+k.minOffset,g=function(a){var b,c,d,e,f,g,h,i,l;return h=n.centroid(a),k.avoidCollisions&&(i=[h[0],h[1]],this._position&&(i[0]-=this._position[0],i[1]-=this._position[1]),l=_.transform(this.getBoundingClientRect(),function(a,b,c){switch(c){case"left":return a[c]=b-o+i[0];case"top":return a[c]=b-o+i[1];case"right":return a[c]=b+o+i[0];case"bottom":return a[c]=b+o+i[1]}}),!p||l.right<p.left||l.left>p.right||l.bottom<p.top||l.top>p.bottom||(d=l.left+(l.right-l.left)/2,e=l.top+(l.bottom-l.top)/2,b=p.left+(p.right-p.left)/2,c=p.top+(p.bottom-p.top)/2,f=Math.sqrt(Math.pow(d-b,2)+Math.pow(e-c,2))/2,g=d3.svg.arc().outerRadius(q*j+f).innerRadius(q*j+f),h=g.centroid(a)),this._position=h,p=l),"translate("+h+")"},m=f.selectAll("text").data(l(a)),m.enter().append("text").style("text-anchor","middle").attr("class",function(a,b){return"pie-label pie-label-"+b}),m.exit().remove(),m.text(function(b,c){return a[c][k.label]}),m.transition().ease(k.transition).duration(k.transitionDuration).attr("transform",g)):void 0):void 0},e.registerElement(m,k.order)}}})}.call(this),function(){angular.module("ad3").provider("d3Service",function(){var a;return a=this.defaults={},this.$get=["$cacheFactory","$rootScope","$q",function(b,c,d){var e;return e=a.cache||b("d3Service"),{csv:function(a,b,f){var g,h;return h=d.defer(),g=e.get(a),g&&(f&&f(rows),h.resolve(g)),d3.csv(a,b,function(b){return c.$apply(function(){return f&&f(b),b?(e.put(a,b),h.resolve(b)):h.reject()})}),h.promise}}}],this})}.call(this);