From 4053969998fa38bab3d9f0b9845d57398e86ab9a Mon Sep 17 00:00:00 2001 From: Chinmay Kulkarni Date: Wed, 10 Sep 2014 22:37:36 -0700 Subject: [PATCH] release 0.2.4 --- dist/angular-charts.js | 57 ++++++++++++-------------------------- dist/angular-charts.min.js | 2 +- 2 files changed, 19 insertions(+), 40 deletions(-) diff --git a/dist/angular-charts.js b/dist/angular-charts.js index ce968fa..71f723c 100644 --- a/dist/angular-charts.js +++ b/dist/angular-charts.js @@ -13,19 +13,6 @@ angular.module('angularCharts').directive('acChart', [ '$timeout', '$sce', function ($templateCache, $compile, $rootElement, $window, $timeout, $sce) { - /** - * Initialize some constants - * @type Array - */ - var tooltip = [ - 'display:block;', - 'position:absolute;', - 'border:1px solid #333;', - 'background-color:#161616;', - 'border-radius:5px;', - 'padding:5px;', - 'color:#fff;' - ].join(''); var defaultColors = [ 'steelBlue', 'rgb(255,153,0)', @@ -163,15 +150,7 @@ angular.module('angularCharts').directive('acChart', [ series = data ? data.series || [] : []; points = data ? data.data || [] : []; if (scope.acConfig) { - var arr = []; - if (scope.acConfig.colors) { - ; - [].push.apply(arr, scope.acConfig.colors); - } - ; - [].push.apply(arr, defaultColors); angular.extend(config, scope.acConfig); - config.colors = arr; } } /** @@ -310,7 +289,7 @@ angular.module('angularCharts').directive('acChart', [ config.mouseout(d, d3.event); scope.$apply(); }).on('mousemove', function (d) { - updateToolTip(d3.event); + updateToolTip(d, d3.event); }).on('click', function (d) { config.click.call(d, d3.event); scope.$apply(); @@ -368,7 +347,7 @@ angular.module('angularCharts').directive('acChart', [ var yData = [0]; var linedata = []; points.forEach(function (d) { - d.y.map(function (e, i) { + d.y.map(function (e) { yData.push(e); }); }); @@ -402,11 +381,11 @@ angular.module('angularCharts').directive('acChart', [ svg.append('g').attr('class', 'x axis').attr('transform', 'translate(0,' + height + ')').call(xAxis); svg.append('g').attr('class', 'y axis').call(yAxis); var point = svg.selectAll('.points').data(linedata).enter().append('g'); - path = point.attr('points', 'points').append('path').attr('class', 'ac-line').style('stroke', function (d, i) { - return getColor(i); - }).attr('d', function (d) { - return line(d.values); - }).attr('stroke-width', '2').attr('fill', 'none'); + var path = point.attr('points', 'points').append('path').attr('class', 'ac-line').style('stroke', function (d, i) { + return getColor(i); + }).attr('d', function (d) { + return line(d.values); + }).attr('stroke-width', '2').attr('fill', 'none'); /** Animation function * [last description] * @type {[type]} @@ -521,7 +500,7 @@ angular.module('angularCharts').directive('acChart', [ var yData = [0]; var linedata = []; points.forEach(function (d) { - d.y.map(function (e, i) { + d.y.map(function (e) { yData.push(e); }); }); @@ -560,7 +539,7 @@ angular.module('angularCharts').directive('acChart', [ var point = svg.selectAll('.points').data(linedata).enter().append('g'); var area = d3.svg.area().interpolate('basis').x(function (d) { return getX(d.x); - }).y0(function (d) { + }).y0(function () { return y(0); }).y1(function (d) { return y(0 + d.y); @@ -619,7 +598,7 @@ angular.module('angularCharts').directive('acChart', [ config.mouseout(d, d3.event); scope.$apply(); }).on('mousemove', function (d) { - updateToolTip(d3.event); + updateToolTip(d, d3.event); }).on('click', function (d) { config.click(d, d3.event); scope.$apply(); @@ -761,16 +740,16 @@ angular.module('angularCharts').directive('acChart', [ if (!config.tooltips) { return; } - if (typeof config.tooltips == 'function') { + if (typeof config.tooltips === 'function') { data = config.tooltips(data); } else { data = data.value; } - var el = angular.element('

').html(data).css({ + var el = angular.element('

').html(data).css({ left: event.pageX + 20 + 'px', top: event.pageY - 30 + 'px' }); - angular.element('.ac-tooltip').remove(); + angular.element(document.querySelector('.ac-tooltip')).remove(); angular.element(document.body).append(el); scope.$tooltip = el; } @@ -797,7 +776,7 @@ angular.module('angularCharts').directive('acChart', [ */ function drawLegend() { scope.legends = []; - if (chartType == 'pie') { + if (chartType === 'pie') { angular.forEach(points, function (value, key) { scope.legends.push({ color: config.colors[key], @@ -805,7 +784,7 @@ angular.module('angularCharts').directive('acChart', [ }); }); } - if (chartType == 'bar' || chartType == 'area' || chartType == 'point' || chartType == 'line' && config.lineLegend === 'traditional') { + if (chartType === 'bar' || chartType === 'area' || chartType === 'point' || chartType === 'line' && config.lineLegend === 'traditional') { angular.forEach(series, function (value, key) { scope.legends.push({ color: config.colors[key], @@ -889,7 +868,7 @@ angular.module('angularCharts').directive('acChart', [ (function () { // styles.min.css var cssText = "" + -".angular-charts-template .axis path,.angular-charts-template .axis line{fill:none;stroke:#333}.angular-charts-template .ac-title{font-weight:700;font-size:1.2em}.angular-charts-template .ac-chart{float:left;width:75%}.angular-charts-template .ac-line{fill:none;stroke-width:2px}.angular-charts-template table{float:left;max-width:25%;list-style:none;margin:0;padding:0}.angular-charts-template td[ng-bind]{display:inline-block}.angular-charts-template .ac-tooltip{display:block;position:absolute;border:1px solid #333;background-color:#161616;border-radius:5px;padding:5px;color:#fff}"; +".angular-charts-template .axis path,.angular-charts-template .axis line{fill:none;stroke:#333}.angular-charts-template .ac-title{font-weight:700;font-size:1.2em}.angular-charts-template .ac-chart{float:left;width:75%}.angular-charts-template .ac-line{fill:none;stroke-width:2px}.angular-charts-template table{float:left;max-width:25%;list-style:none;margin:0;padding:0}.angular-charts-template td[ng-bind]{display:inline-block}.angular-charts-template .ac-legend-box{border-radius:5px;height:15px;width:15px}.ac-tooltip{display:block;position:absolute;border:2px solid rgba(51,51,51,.9);background-color:rgba(22,22,22,.7);border-radius:5px;padding:5px;color:#fff}"; // cssText end var styleEl = document.createElement("style"); @@ -911,10 +890,10 @@ angular.module('angularChartsTemplates', ['angularChartsTemplate_left', 'angular angular.module("angularChartsTemplate_left", []).run(["$templateCache", function($templateCache) { $templateCache.put("angularChartsTemplate_left", - "
{{acConfig.title}}
"); + "
{{acConfig.title}}
"); }]); angular.module("angularChartsTemplate_right", []).run(["$templateCache", function($templateCache) { $templateCache.put("angularChartsTemplate_right", - "
{{acConfig.title}}
"); + "
{{acConfig.title}}
"); }]); diff --git a/dist/angular-charts.min.js b/dist/angular-charts.min.js index 4b3b05e..22911e6 100644 --- a/dist/angular-charts.min.js +++ b/dist/angular-charts.min.js @@ -1 +1 @@ -angular.module("angularCharts",["angularChartsTemplates"]),angular.module("angularCharts").directive("acChart",["$templateCache","$compile","$rootElement","$window","$timeout","$sce",function(a,b,c,d,e,f){function g(){for(var a="0123456789ABCDEF".split(""),b="#",c=0;6>c;c++)b+=a[Math.round(15*Math.random())];return b}function h(a,b){var c=null;for(var d in a)if(angular.isElement(a[d])&&(c=angular.element(a[d]),c.hasClass(b)))return c;return c}function i(c,i){function l(){o(),m(),n();var a=p(N);a(),z()}function m(){if(!D.legend.display)return J=F,void(K=E);switch(D.legend.position){case"top":case"bottom":J=.75*F,K=E;break;case"left":case"right":J=F,K=.75*E}}function n(){var d=a.get("angularChartsTemplate_"+D.legend.position);i.html(d),b(i.contents())(c);var e=i.find("div");L=h(e,"ac-chart"),M=h(e,"ac-legend"),J-=h(e,"ac-title")[0].clientHeight}function o(){if(G=c.acData,N=c.acChart,H=G?G.series||[]:[],I=G?G.data||[]:[],c.acConfig){var a=[];c.acConfig.colors&&[].push.apply(a,c.acConfig.colors),[].push.apply(a,k),angular.extend(D,c.acConfig),D.colors=a}}function p(a){var b={pie:u,bar:r,line:s,area:t,point:v};return b[a]}function q(a,b){var c=b.domain();if(D.xAxisMaxTicks&&c.length>D.xAxisMaxTicks){var d=Math.ceil(c.length/D.xAxisMaxTicks);a.tickValues(c.filter(function(a,b){return b%d===0}))}}function r(){var a={top:0,right:20,bottom:30,left:40};K-=a.left+a.right,J-=a.top+a.bottom;var b=d3.scale.ordinal().rangeRoundBands([0,K],.1),d=d3.scale.linear().range([J,10]),e=d3.scale.ordinal().rangeRoundBands([0,K],.1),f=[0];I.forEach(function(a){a.nicedata=a.y.map(function(b,c){return f.push(b),{x:a.x,y:b,s:c,tooltip:angular.isArray(a.tooltip)?a.tooltip[c]:a.tooltip}})});var g=d3.max(I.map(function(a){return a.y.length}));c.yMaxData=g,b.domain(I.map(function(a){return a.x}));var h=.2*d3.max(f);d.domain([d3.min(f),d3.max(f)+h]),e.domain(d3.range(g)).rangeRoundBands([0,b.rangeBand()]);var i=d3.svg.axis().scale(b).orient("bottom");q(i,b);var j=d3.svg.axis().scale(d).orient("left").ticks(10).tickFormat(d3.format("s")),k=d3.select(L[0]).append("svg").attr("width",K+a.left+a.right).attr("height",J+a.top+a.bottom).append("g").attr("transform","translate("+a.left+","+a.top+")");k.append("g").attr("class","x axis").attr("transform","translate(0,"+J+")").call(i),k.append("g").attr("class","y axis").call(j);var l=k.selectAll(".state").data(I).enter().append("g").attr("class","g").attr("transform",function(a){return"translate("+b(a.x)+",0)"}),m=l.selectAll("rect").data(function(a){return a.nicedata}).enter().append("rect");m.attr("width",e.rangeBand()),m.attr("x",function(a,b){return e(b)}).attr("y",J).style("fill",function(a){return C(a.s)}).attr("height",0).transition().ease("cubic-in-out").duration(D.isAnimate?1e3:0).attr("y",function(a){return d(Math.max(0,a.y))}).attr("height",function(a){return Math.abs(d(a.y)-d(0))}),m.on("mouseover",function(a){w({index:a.x,value:a.tooltip?a.tooltip:a.y,series:H[a.s]},d3.event),D.mouseover(a,d3.event),c.$apply()}).on("mouseleave",function(a){x(),D.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){y(d3.event)}).on("click",function(a){D.click.call(a,d3.event),c.$apply()}),D.labels&&l.selectAll("not-a-class").data(function(a){return a.nicedata}).enter().append("text").attr("x",function(a,b){return e(b)}).attr("y",function(a){return J-Math.abs(d(a.y)-d(0))}).text(function(a){return a.y}),k.append("line").attr("x1",K).attr("y1",d(0)).attr("y2",d(0)).style("stroke","silver")}function s(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};K-=b.left+b.right,J-=b.top+b.bottom;var d=d3.scale.ordinal().domain(I.map(function(a){return a.x})).rangeRoundBands([0,K]),e=d3.scale.linear().range([J,10]),f=d3.svg.axis().scale(d).orient("bottom");q(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s")),h=d3.svg.line().interpolate(D.lineCurveType).x(function(b){return a(b.x)}).y(function(a){return e(a.y)}),i=[0],j=[];I.forEach(function(a){a.y.map(function(a){i.push(a)})});var k=d3.max(I.map(function(a){return a.y.length}));c.yMaxData=k,H.slice(0,k).forEach(function(a,b){var c={};c.series=a,c.values=I.map(function(a){return a.y.map(function(b){return{x:a.x,y:b,tooltip:a.tooltip}})[b]||{x:I[b].x,y:0}}),j.push(c)});var l=d3.select(L[0]).append("svg").attr("width",K+b.left+b.right).attr("height",J+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),m=.2*d3.max(i);e.domain([d3.min(i),d3.max(i)+m]),l.append("g").attr("class","x axis").attr("transform","translate(0,"+J+")").call(f),l.append("g").attr("class","y axis").call(g);var n=l.selectAll(".points").data(j).enter().append("g");if(path=n.attr("points","points").append("path").attr("class","ac-line").style("stroke",function(a,b){return C(b)}).attr("d",function(a){return h(a.values)}).attr("stroke-width","2").attr("fill","none"),j.length>0){var o=j[j.length-1].values;if(o.length>0){var p=path.node().getTotalLength()+a(o[o.length-1].x);path.attr("stroke-dasharray",p+" "+p).attr("stroke-dashoffset",p).transition().duration(D.isAnimate?1500:0).ease("linear").attr("stroke-dashoffset",0).attr("d",function(a){return h(a.values)})}}return angular.forEach(j,function(b){var d=l.selectAll(".circle").data(b.values).enter();d.append("circle").attr("cx",function(b){return a(b.x)}).attr("cy",function(a){return e(a.y)}).attr("r",3).style("fill",C(j.indexOf(b))).style("stroke",C(j.indexOf(b))).on("mouseover",function(a){return function(b){w({index:b.x,value:b.tooltip?b.tooltip:b.y,series:a},d3.event),D.mouseover(b,d3.event),c.$apply()}}(b.series)).on("mouseleave",function(a){x(),D.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){y(d3.event)}).on("click",function(a){D.click(a,d3.event),c.$apply()}),D.labels&&d.append("text").attr("x",function(b){return a(b.x)}).attr("y",function(a){return e(a.y)}).text(function(a){return a.y})}),"lineEnd"===D.lineLegend&&n.append("text").datum(function(a){return{name:a.series,value:a.values[a.values.length-1]}}).attr("transform",function(b){return"translate("+a(b.value.x)+","+e(b.value.y)+")"}).attr("x",3).text(function(a){return a.name}),j}function t(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};K-=b.left+b.right,J-=b.top+b.bottom;var d=d3.scale.ordinal().domain(I.map(function(a){return a.x})).rangePoints([0,K]),e=d3.scale.linear().range([J,10]),f=d3.svg.axis().scale(d).orient("bottom");q(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s"));d3.svg.line().interpolate(D.lineCurveType).x(function(b){return a(b.x)}).y(function(a){return e(a.y)});var h=[0],i=[];I.forEach(function(a){a.y.map(function(a){h.push(a)})});var j=d3.max(I.map(function(a){return a.y.length}));c.yMaxData=j,H.slice(0,j).forEach(function(a,b){var c={};c.series=a,c.values=I.map(function(a){return a.y.map(function(b){return{x:a.x,y:b}})[b]||{x:I[b].x,y:0}}),i.push(c)});var k=d3.select(L[0]).append("svg").attr("width",K+b.left+b.right).attr("height",J+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),l=.2*d3.max(h);e.domain([d3.min(h),d3.max(h)+l]),k.append("g").attr("class","x axis").attr("transform","translate(0,"+J+")").call(f),k.append("g").attr("class","y axis").call(g);var m=k.selectAll(".points").data(i).enter().append("g"),n=d3.svg.area().interpolate("basis").x(function(b){return a(b.x)}).y0(function(){return e(0)}).y1(function(a){return e(0+a.y)});m.append("path").attr("class","area").attr("d",function(a){return n(a.values)}).style("fill",function(a,b){return C(b)}).style("opacity","0.7")}function u(){function a(a){a.innerRadius=0;var b=d3.interpolate({startAngle:0,endAngle:0},a);return function(a){return g(b(a))}}var b=Math.min(K,J)/2,d=d3.select(L[0]).append("svg").attr("width",K).attr("height",J).append("g").attr("transform","translate("+K/2+","+J/2+")"),e=0;if(D.innerRadius){var f=D.innerRadius;f="string"==typeof f&&f.indexOf("%")>0?.01*b*parseFloat(f):Number(f),f>=0&&(e=f)}c.yMaxData=I.length;var g=d3.svg.arc().outerRadius(b-10).innerRadius(e);d3.svg.arc().outerRadius(b+5).innerRadius(0);var h=d3.layout.pie().sort(null).value(function(a){return a.y[0]}),i=d.selectAll(".arc").data(h(I)).enter().append("g"),j=!1;i.append("path").style("fill",function(a,b){return C(b)}).transition().ease("linear").duration(D.isAnimate?500:0).attrTween("d",a).attr("class","arc").each("end",function(){j||(j=!0,i.on("mouseover",function(a){w({value:a.data.tooltip?a.data.tooltip:a.data.y[0]},d3.event),d3.select(this).select("path").transition().duration(200).style("stroke","white").style("stroke-width","2px"),D.mouseover(a,d3.event),c.$apply()}).on("mouseleave",function(a){d3.select(this).select("path").transition().duration(200).style("stroke","").style("stroke-width",""),x(),D.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){y(d3.event)}).on("click",function(a){D.click(a,d3.event),c.$apply()}))}),D.labels&&i.append("text").attr("transform",function(a){return"translate("+g.centroid(a)+")"}).attr("dy",".35em").style("text-anchor","middle").text(function(a){return a.data.y[0]})}function v(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};K-=b.left-b.right,J-=b.top-b.bottom;var d=d3.scale.ordinal().domain(I.map(function(a){return a.x})).rangeRoundBands([0,K]),e=d3.scale.linear().range([J,10]),f=d3.svg.axis().scale(d).orient("bottom");q(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s")),h=[0],i=[];I.forEach(function(a){a.y.map(function(a){h.push(a)})});var j=d3.max(I.map(function(a){return a.y.length}));c.yMaxPoints=j,H.slice(0,j).forEach(function(a,b){var c={};c.series=a,c.values=I.map(function(a){return a.y.map(function(b){return{x:a.x,y:b}})[b]||{x:I[b].x,y:0}}),i.push(c)});var k=d3.select(L[0]).append("svg").attr("width",K+b.left+b.right).attr("height",J+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),l=.2*d3.max(h);e.domain([d3.min(h),d3.max(h)+l]),k.append("g").attr("class","x axis").attr("transform","translate(0,"+J+")").call(f),k.append("g").attr("class","y axis").call(g),k.selectAll(".points").data(i).enter().append("g"),angular.forEach(i,function(b){var d=k.selectAll(".circle").data(b.values).enter();d.append("circle").attr("cx",function(b){return a(b.x)}).attr("cy",function(a){return e(a.y)}).attr("r",3).style("fill",C(i.indexOf(b))).style("stroke",C(i.indexOf(b))).on("mouseover",function(a){return function(b){w({index:b.x,value:b.tooltip?b.tooltip:b.y,series:a},d3.event),D.mouseover(b,d3.event),c.$apply()}}(b.series)).on("mouseleave",function(a){x(),D.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){y(d3.event)}).on("click",function(a){D.click(a,d3.event),c.$apply()}),D.labels&&d.append("text").attr("x",function(b){return a(b.x)}).attr("y",function(a){return e(a.y)}).text(function(a){return a.y})})}function w(a,b){if(D.tooltips){a="function"==typeof D.tooltips?D.tooltips(a):a.value;var d=angular.element('

').html(a).css({left:b.pageX+20+"px",top:b.pageY-30+"px"});angular.element(".ac-tooltip").remove(),angular.element(document.body).append(d),c.$tooltip=d}}function x(){c.$tooltip&&c.$tooltip.remove()}function y(a){c.$tooltip&&c.$tooltip.css({left:a.pageX+20+"px",top:a.pageY-30+"px"})}function z(){c.legends=[],"pie"==N&&angular.forEach(I,function(a,b){c.legends.push({color:D.colors[b],title:B(a.x)})}),("bar"==N||"area"==N||"point"==N||"line"==N&&"traditional"===D.lineLegend)&&angular.forEach(H,function(a,b){c.legends.push({color:D.colors[b],title:B(a)})})}function A(a){return String(a).replace(/[&<>"'\/]/g,function(a){return O[a]})}function B(a){return f.trustAsHtml(D.legend.htmlEnabled?a:A(a))}function C(a){if(a":">",'"':""","'":"'","/":"/"},P=angular.element(d),Q=null;P.bind("resize",function(){Q&&e.cancel(Q),Q=e(function(){E=i[0].clientWidth,F=i[0].clientHeight,l()},100)}),c.getWindowDimensions=function(){return{h:P[0].clientHeight,w:P[0].clientWidth}},c.$watch("[acChart, acData, acConfig]",l,!0),c.$watch(function(){return{w:i[0].clientWidth,h:i[0].clientHeight}},function(a){E=a.w,F=a.h,l()},!0)}var j=["display:block;","position:absolute;","border:1px solid #333;","background-color:#161616;","border-radius:5px;","padding:5px;","color:#fff;"].join(""),k=["steelBlue","rgb(255,153,0)","rgb(220,57,18)","rgb(70,132,238)","rgb(73,66,204)","rgb(0,128,0)"];return{restrict:"EA",link:i,transclude:"true",scope:{acChart:"=",acData:"=",acConfig:"="}}}]),function(){var a=".angular-charts-template .axis path,.angular-charts-template .axis line{fill:none;stroke:#333}.angular-charts-template .ac-title{font-weight:700;font-size:1.2em}.angular-charts-template .ac-chart{float:left;width:75%}.angular-charts-template .ac-line{fill:none;stroke-width:2px}.angular-charts-template table{float:left;max-width:25%;list-style:none;margin:0;padding:0}.angular-charts-template td[ng-bind]{display:inline-block}.angular-charts-template .ac-tooltip{display:block;position:absolute;border:1px solid #333;background-color:#161616;border-radius:5px;padding:5px;color:#fff}",b=document.createElement("style");if(document.getElementsByTagName("head")[0].appendChild(b),b.styleSheet)b.styleSheet.disabled||(b.styleSheet.cssText=a);else try{b.innerHTML=a}catch(c){b.innerText=a}}(),angular.module("angularChartsTemplates",["angularChartsTemplate_left","angularChartsTemplate_right"]),angular.module("angularChartsTemplate_left",[]).run(["$templateCache",function(a){a.put("angularChartsTemplate_left",'
{{acConfig.title}}
')}]),angular.module("angularChartsTemplate_right",[]).run(["$templateCache",function(a){a.put("angularChartsTemplate_right",'
{{acConfig.title}}
')}]); \ No newline at end of file +angular.module("angularCharts",["angularChartsTemplates"]),angular.module("angularCharts").directive("acChart",["$templateCache","$compile","$rootElement","$window","$timeout","$sce",function(a,b,c,d,e,f){function g(){for(var a="0123456789ABCDEF".split(""),b="#",c=0;6>c;c++)b+=a[Math.round(15*Math.random())];return b}function h(a,b){var c=null;for(var d in a)if(angular.isElement(a[d])&&(c=angular.element(a[d]),c.hasClass(b)))return c;return c}function i(c,i){function j(){m(),k(),l();var a=n(L);a(),x()}function k(){if(!B.legend.display)return H=D,void(I=C);switch(B.legend.position){case"top":case"bottom":H=.75*D,I=C;break;case"left":case"right":H=D,I=.75*C}}function l(){var d=a.get("angularChartsTemplate_"+B.legend.position);i.html(d),b(i.contents())(c);var e=i.find("div");J=h(e,"ac-chart"),K=h(e,"ac-legend"),H-=h(e,"ac-title")[0].clientHeight}function m(){E=c.acData,L=c.acChart,F=E?E.series||[]:[],G=E?E.data||[]:[],c.acConfig&&angular.extend(B,c.acConfig)}function n(a){var b={pie:s,bar:p,line:q,area:r,point:t};return b[a]}function o(a,b){var c=b.domain();if(B.xAxisMaxTicks&&c.length>B.xAxisMaxTicks){var d=Math.ceil(c.length/B.xAxisMaxTicks);a.tickValues(c.filter(function(a,b){return b%d===0}))}}function p(){var a={top:0,right:20,bottom:30,left:40};I-=a.left+a.right,H-=a.top+a.bottom;var b=d3.scale.ordinal().rangeRoundBands([0,I],.1),d=d3.scale.linear().range([H,10]),e=d3.scale.ordinal().rangeRoundBands([0,I],.1),f=[0];G.forEach(function(a){a.nicedata=a.y.map(function(b,c){return f.push(b),{x:a.x,y:b,s:c,tooltip:angular.isArray(a.tooltip)?a.tooltip[c]:a.tooltip}})});var g=d3.max(G.map(function(a){return a.y.length}));c.yMaxData=g,b.domain(G.map(function(a){return a.x}));var h=.2*d3.max(f);d.domain([d3.min(f),d3.max(f)+h]),e.domain(d3.range(g)).rangeRoundBands([0,b.rangeBand()]);var i=d3.svg.axis().scale(b).orient("bottom");o(i,b);var j=d3.svg.axis().scale(d).orient("left").ticks(10).tickFormat(d3.format("s")),k=d3.select(J[0]).append("svg").attr("width",I+a.left+a.right).attr("height",H+a.top+a.bottom).append("g").attr("transform","translate("+a.left+","+a.top+")");k.append("g").attr("class","x axis").attr("transform","translate(0,"+H+")").call(i),k.append("g").attr("class","y axis").call(j);var l=k.selectAll(".state").data(G).enter().append("g").attr("class","g").attr("transform",function(a){return"translate("+b(a.x)+",0)"}),m=l.selectAll("rect").data(function(a){return a.nicedata}).enter().append("rect");m.attr("width",e.rangeBand()),m.attr("x",function(a,b){return e(b)}).attr("y",H).style("fill",function(a){return A(a.s)}).attr("height",0).transition().ease("cubic-in-out").duration(B.isAnimate?1e3:0).attr("y",function(a){return d(Math.max(0,a.y))}).attr("height",function(a){return Math.abs(d(a.y)-d(0))}),m.on("mouseover",function(a){u({index:a.x,value:a.tooltip?a.tooltip:a.y,series:F[a.s]},d3.event),B.mouseover(a,d3.event),c.$apply()}).on("mouseleave",function(a){v(),B.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(a){w(a,d3.event)}).on("click",function(a){B.click.call(a,d3.event),c.$apply()}),B.labels&&l.selectAll("not-a-class").data(function(a){return a.nicedata}).enter().append("text").attr("x",function(a,b){return e(b)}).attr("y",function(a){return H-Math.abs(d(a.y)-d(0))}).text(function(a){return a.y}),k.append("line").attr("x1",I).attr("y1",d(0)).attr("y2",d(0)).style("stroke","silver")}function q(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};I-=b.left+b.right,H-=b.top+b.bottom;var d=d3.scale.ordinal().domain(G.map(function(a){return a.x})).rangeRoundBands([0,I]),e=d3.scale.linear().range([H,10]),f=d3.svg.axis().scale(d).orient("bottom");o(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s")),h=d3.svg.line().interpolate(B.lineCurveType).x(function(b){return a(b.x)}).y(function(a){return e(a.y)}),i=[0],j=[];G.forEach(function(a){a.y.map(function(a){i.push(a)})});var k=d3.max(G.map(function(a){return a.y.length}));c.yMaxData=k,F.slice(0,k).forEach(function(a,b){var c={};c.series=a,c.values=G.map(function(a){return a.y.map(function(b){return{x:a.x,y:b,tooltip:a.tooltip}})[b]||{x:G[b].x,y:0}}),j.push(c)});var l=d3.select(J[0]).append("svg").attr("width",I+b.left+b.right).attr("height",H+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),m=.2*d3.max(i);e.domain([d3.min(i),d3.max(i)+m]),l.append("g").attr("class","x axis").attr("transform","translate(0,"+H+")").call(f),l.append("g").attr("class","y axis").call(g);var n=l.selectAll(".points").data(j).enter().append("g"),p=n.attr("points","points").append("path").attr("class","ac-line").style("stroke",function(a,b){return A(b)}).attr("d",function(a){return h(a.values)}).attr("stroke-width","2").attr("fill","none");if(j.length>0){var q=j[j.length-1].values;if(q.length>0){var r=p.node().getTotalLength()+a(q[q.length-1].x);p.attr("stroke-dasharray",r+" "+r).attr("stroke-dashoffset",r).transition().duration(B.isAnimate?1500:0).ease("linear").attr("stroke-dashoffset",0).attr("d",function(a){return h(a.values)})}}return angular.forEach(j,function(b){var d=l.selectAll(".circle").data(b.values).enter();d.append("circle").attr("cx",function(b){return a(b.x)}).attr("cy",function(a){return e(a.y)}).attr("r",3).style("fill",A(j.indexOf(b))).style("stroke",A(j.indexOf(b))).on("mouseover",function(a){return function(b){u({index:b.x,value:b.tooltip?b.tooltip:b.y,series:a},d3.event),B.mouseover(b,d3.event),c.$apply()}}(b.series)).on("mouseleave",function(a){v(),B.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){w(d3.event)}).on("click",function(a){B.click(a,d3.event),c.$apply()}),B.labels&&d.append("text").attr("x",function(b){return a(b.x)}).attr("y",function(a){return e(a.y)}).text(function(a){return a.y})}),"lineEnd"===B.lineLegend&&n.append("text").datum(function(a){return{name:a.series,value:a.values[a.values.length-1]}}).attr("transform",function(b){return"translate("+a(b.value.x)+","+e(b.value.y)+")"}).attr("x",3).text(function(a){return a.name}),j}function r(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};I-=b.left+b.right,H-=b.top+b.bottom;var d=d3.scale.ordinal().domain(G.map(function(a){return a.x})).rangePoints([0,I]),e=d3.scale.linear().range([H,10]),f=d3.svg.axis().scale(d).orient("bottom");o(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s"));d3.svg.line().interpolate(B.lineCurveType).x(function(b){return a(b.x)}).y(function(a){return e(a.y)});var h=[0],i=[];G.forEach(function(a){a.y.map(function(a){h.push(a)})});var j=d3.max(G.map(function(a){return a.y.length}));c.yMaxData=j,F.slice(0,j).forEach(function(a,b){var c={};c.series=a,c.values=G.map(function(a){return a.y.map(function(b){return{x:a.x,y:b}})[b]||{x:G[b].x,y:0}}),i.push(c)});var k=d3.select(J[0]).append("svg").attr("width",I+b.left+b.right).attr("height",H+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),l=.2*d3.max(h);e.domain([d3.min(h),d3.max(h)+l]),k.append("g").attr("class","x axis").attr("transform","translate(0,"+H+")").call(f),k.append("g").attr("class","y axis").call(g);var m=k.selectAll(".points").data(i).enter().append("g"),n=d3.svg.area().interpolate("basis").x(function(b){return a(b.x)}).y0(function(){return e(0)}).y1(function(a){return e(0+a.y)});m.append("path").attr("class","area").attr("d",function(a){return n(a.values)}).style("fill",function(a,b){return A(b)}).style("opacity","0.7")}function s(){function a(a){a.innerRadius=0;var b=d3.interpolate({startAngle:0,endAngle:0},a);return function(a){return g(b(a))}}var b=Math.min(I,H)/2,d=d3.select(J[0]).append("svg").attr("width",I).attr("height",H).append("g").attr("transform","translate("+I/2+","+H/2+")"),e=0;if(B.innerRadius){var f=B.innerRadius;f="string"==typeof f&&f.indexOf("%")>0?.01*b*parseFloat(f):Number(f),f>=0&&(e=f)}c.yMaxData=G.length;var g=d3.svg.arc().outerRadius(b-10).innerRadius(e);d3.svg.arc().outerRadius(b+5).innerRadius(0);var h=d3.layout.pie().sort(null).value(function(a){return a.y[0]}),i=d.selectAll(".arc").data(h(G)).enter().append("g"),j=!1;i.append("path").style("fill",function(a,b){return A(b)}).transition().ease("linear").duration(B.isAnimate?500:0).attrTween("d",a).attr("class","arc").each("end",function(){j||(j=!0,i.on("mouseover",function(a){u({value:a.data.tooltip?a.data.tooltip:a.data.y[0]},d3.event),d3.select(this).select("path").transition().duration(200).style("stroke","white").style("stroke-width","2px"),B.mouseover(a,d3.event),c.$apply()}).on("mouseleave",function(a){d3.select(this).select("path").transition().duration(200).style("stroke","").style("stroke-width",""),v(),B.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(a){w(a,d3.event)}).on("click",function(a){B.click(a,d3.event),c.$apply()}))}),B.labels&&i.append("text").attr("transform",function(a){return"translate("+g.centroid(a)+")"}).attr("dy",".35em").style("text-anchor","middle").text(function(a){return a.data.y[0]})}function t(){function a(a){return Math.round(d(a))+d.rangeBand()/2}var b={top:0,right:40,bottom:20,left:40};I-=b.left-b.right,H-=b.top-b.bottom;var d=d3.scale.ordinal().domain(G.map(function(a){return a.x})).rangeRoundBands([0,I]),e=d3.scale.linear().range([H,10]),f=d3.svg.axis().scale(d).orient("bottom");o(f,d);var g=d3.svg.axis().scale(e).orient("left").ticks(5).tickFormat(d3.format("s")),h=[0],i=[];G.forEach(function(a){a.y.map(function(a){h.push(a)})});var j=d3.max(G.map(function(a){return a.y.length}));c.yMaxPoints=j,F.slice(0,j).forEach(function(a,b){var c={};c.series=a,c.values=G.map(function(a){return a.y.map(function(b){return{x:a.x,y:b}})[b]||{x:G[b].x,y:0}}),i.push(c)});var k=d3.select(J[0]).append("svg").attr("width",I+b.left+b.right).attr("height",H+b.top+b.bottom).append("g").attr("transform","translate("+b.left+","+b.top+")"),l=.2*d3.max(h);e.domain([d3.min(h),d3.max(h)+l]),k.append("g").attr("class","x axis").attr("transform","translate(0,"+H+")").call(f),k.append("g").attr("class","y axis").call(g),k.selectAll(".points").data(i).enter().append("g"),angular.forEach(i,function(b){var d=k.selectAll(".circle").data(b.values).enter();d.append("circle").attr("cx",function(b){return a(b.x)}).attr("cy",function(a){return e(a.y)}).attr("r",3).style("fill",A(i.indexOf(b))).style("stroke",A(i.indexOf(b))).on("mouseover",function(a){return function(b){u({index:b.x,value:b.tooltip?b.tooltip:b.y,series:a},d3.event),B.mouseover(b,d3.event),c.$apply()}}(b.series)).on("mouseleave",function(a){v(),B.mouseout(a,d3.event),c.$apply()}).on("mousemove",function(){w(d3.event)}).on("click",function(a){B.click(a,d3.event),c.$apply()}),B.labels&&d.append("text").attr("x",function(b){return a(b.x)}).attr("y",function(a){return e(a.y)}).text(function(a){return a.y})})}function u(a,b){if(B.tooltips){a="function"==typeof B.tooltips?B.tooltips(a):a.value;var d=angular.element('

').html(a).css({left:b.pageX+20+"px",top:b.pageY-30+"px"});angular.element(document.querySelector(".ac-tooltip")).remove(),angular.element(document.body).append(d),c.$tooltip=d}}function v(){c.$tooltip&&c.$tooltip.remove()}function w(a){c.$tooltip&&c.$tooltip.css({left:a.pageX+20+"px",top:a.pageY-30+"px"})}function x(){c.legends=[],"pie"===L&&angular.forEach(G,function(a,b){c.legends.push({color:B.colors[b],title:z(a.x)})}),("bar"===L||"area"===L||"point"===L||"line"===L&&"traditional"===B.lineLegend)&&angular.forEach(F,function(a,b){c.legends.push({color:B.colors[b],title:z(a)})})}function y(a){return String(a).replace(/[&<>"'\/]/g,function(a){return M[a]})}function z(a){return f.trustAsHtml(B.legend.htmlEnabled?a:y(a))}function A(a){if(a":">",'"':""","'":"'","/":"/"},N=angular.element(d),O=null;N.bind("resize",function(){O&&e.cancel(O),O=e(function(){C=i[0].clientWidth,D=i[0].clientHeight,j()},100)}),c.getWindowDimensions=function(){return{h:N[0].clientHeight,w:N[0].clientWidth}},c.$watch("[acChart, acData, acConfig]",j,!0),c.$watch(function(){return{w:i[0].clientWidth,h:i[0].clientHeight}},function(a){C=a.w,D=a.h,j()},!0)}return{restrict:"EA",link:i,transclude:"true",scope:{acChart:"=",acData:"=",acConfig:"="}}}]),function(){var a=".angular-charts-template .axis path,.angular-charts-template .axis line{fill:none;stroke:#333}.angular-charts-template .ac-title{font-weight:700;font-size:1.2em}.angular-charts-template .ac-chart{float:left;width:75%}.angular-charts-template .ac-line{fill:none;stroke-width:2px}.angular-charts-template table{float:left;max-width:25%;list-style:none;margin:0;padding:0}.angular-charts-template td[ng-bind]{display:inline-block}.angular-charts-template .ac-legend-box{border-radius:5px;height:15px;width:15px}.ac-tooltip{display:block;position:absolute;border:2px solid rgba(51,51,51,.9);background-color:rgba(22,22,22,.7);border-radius:5px;padding:5px;color:#fff}",b=document.createElement("style");if(document.getElementsByTagName("head")[0].appendChild(b),b.styleSheet)b.styleSheet.disabled||(b.styleSheet.cssText=a);else try{b.innerHTML=a}catch(c){b.innerText=a}}(),angular.module("angularChartsTemplates",["angularChartsTemplate_left","angularChartsTemplate_right"]),angular.module("angularChartsTemplate_left",[]).run(["$templateCache",function(a){a.put("angularChartsTemplate_left",'
{{acConfig.title}}
')}]),angular.module("angularChartsTemplate_right",[]).run(["$templateCache",function(a){a.put("angularChartsTemplate_right",'
{{acConfig.title}}
')}]); \ No newline at end of file