diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
| commit | b28028ac4082842143b0f528d6bc539da6ccb419 (patch) | |
| tree | 1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js | |
| parent | 676270d21beed31d767a06c89522198c77d5d865 (diff) | |
mega changes, including updates and X
Diffstat (limited to 'www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js')
| -rw-r--r-- | www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js b/www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js new file mode 100644 index 00000000..3ff3025f --- /dev/null +++ b/www/lib/tc-angular-chartjs/dist/tc-angular-chartjs.js @@ -0,0 +1,161 @@ +/** + * tc-angular-chartjs - v1.0.15 - 2016-02-15 + * Copyright (c) 2016 Carl Craig <carlcraig.threeceestudios@gmail.com> + * Dual licensed with the Apache-2.0 or MIT license. + */ +(function() { + "use strict"; + angular.module("tc.chartjs", []).directive("tcChartjs", TcChartjs).directive("tcChartjsLine", TcChartjsLine).directive("tcChartjsBar", TcChartjsBar).directive("tcChartjsRadar", TcChartjsRadar).directive("tcChartjsPolararea", TcChartjsPolararea).directive("tcChartjsPie", TcChartjsPie).directive("tcChartjsDoughnut", TcChartjsDoughnut).directive("tcChartjsLegend", TcChartjsLegend).factory("TcChartjsFactory", TcChartjsFactory); + function TcChartjs(TcChartjsFactory) { + return new TcChartjsFactory(); + } + TcChartjs.$inject = [ "TcChartjsFactory" ]; + function TcChartjsLine(TcChartjsFactory) { + return new TcChartjsFactory("line"); + } + TcChartjsLine.$inject = [ "TcChartjsFactory" ]; + function TcChartjsBar(TcChartjsFactory) { + return new TcChartjsFactory("bar"); + } + TcChartjsBar.$inject = [ "TcChartjsFactory" ]; + function TcChartjsRadar(TcChartjsFactory) { + return new TcChartjsFactory("radar"); + } + TcChartjsRadar.$inject = [ "TcChartjsFactory" ]; + function TcChartjsPolararea(TcChartjsFactory) { + return new TcChartjsFactory("polararea"); + } + TcChartjsPolararea.$inject = [ "TcChartjsFactory" ]; + function TcChartjsPie(TcChartjsFactory) { + return new TcChartjsFactory("pie"); + } + TcChartjsPie.$inject = [ "TcChartjsFactory" ]; + function TcChartjsDoughnut(TcChartjsFactory) { + return new TcChartjsFactory("doughnut"); + } + TcChartjsDoughnut.$inject = [ "TcChartjsFactory" ]; + function TcChartjsFactory() { + return function(chartType) { + return { + restrict: "A", + scope: { + data: "=chartData", + options: "=chartOptions", + type: "@chartType", + legend: "=?chartLegend", + chart: "=?chart", + click: "&chartClick" + }, + link: link + }; + function link($scope, $elem, $attrs) { + var ctx = $elem[0].getContext("2d"); + var chart = new Chart(ctx); + var chartObj; + var showLegend = false; + var autoLegend = false; + var exposeChart = false; + var legendElem = null; + for (var attr in $attrs) { + if (attr === "chartLegend") { + showLegend = true; + } else if (attr === "chart") { + exposeChart = true; + } else if (attr === "autoLegend") { + autoLegend = true; + } + } + $scope.$on("$destroy", function() { + if (chartObj && typeof chartObj.destroy === "function") { + chartObj.destroy(); + } + }); + if ($scope.click) { + $elem[0].onclick = function(evt) { + var segment; + if (chartObj.getSegmentsAtEvent !== undefined) { + segment = chartObj.getSegmentsAtEvent(evt); + } else if (chartObj.getPointsAtEvent !== undefined) { + segment = chartObj.getPointsAtEvent(evt); + } else if (chartObj.getBarsAtEvent !== undefined) { + segment = chartObj.getBarsAtEvent(evt); + } + $scope.click({ + data: segment, + event: evt + }); + }; + } + $scope.$watch("data", function(value) { + if (value) { + if (chartObj && typeof chartObj.destroy === "function") { + chartObj.destroy(); + } + if (chartType) { + chartObj = chart[cleanChartName(chartType)]($scope.data, $scope.options); + } else if ($scope.type) { + chartObj = chart[cleanChartName($scope.type)]($scope.data, $scope.options); + } else { + throw "Error creating chart: Chart type required."; + } + if (showLegend) { + $scope.legend = chartObj.generateLegend(); + } + if (autoLegend) { + if (legendElem) { + legendElem.remove(); + } + angular.element($elem[0]).after(chartObj.generateLegend()); + legendElem = angular.element($elem[0]).next(); + } + if (exposeChart) { + $scope.chart = chartObj; + } + chartObj.resize(); + } + }, true); + } + function cleanChartName(type) { + var typeLowerCase = type.toLowerCase(); + switch (typeLowerCase) { + case "line": + return "Line"; + + case "bar": + return "Bar"; + + case "radar": + return "Radar"; + + case "polararea": + return "PolarArea"; + + case "pie": + return "Pie"; + + case "doughnut": + return "Doughnut"; + + default: + return type; + } + } + }; + } + function TcChartjsLegend() { + return { + restrict: "A", + scope: { + legend: "=?chartLegend" + }, + link: link + }; + function link($scope, $elem) { + $scope.$watch("legend", function(value) { + if (value) { + $elem.html(value); + } + }, true); + } + } +})();
\ No newline at end of file |
