angular-chartist.js
Version:
Angular directive for Chartist.js
3 lines (2 loc) • 2.38 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("angular"),require("chartist")):"function"==typeof define&&define.amd?define(["angular","chartist"],e):t["angular-chartist"]=e(t.angular,t.Chartist)}(this,function(i,a){"use strict";function r(t,e){for(var n=0;n<e.length;n++){var s=e[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}i=i&&i.hasOwnProperty("default")?i.default:i,a=a&&a.hasOwnProperty("default")?a.default:a;var t=i.module("angular-chartist",[]),e=function(){function s(t,e){"ngInject";var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),this.data=t.data,this.chartType=t.chartType,this.events=t.events()||{},this.options=t.chartOptions()||null,this.responsiveOptions=t.responsiveOptions()||null,this.element=e[0],this.renderChart(),t.$watch(function(){return{data:t.data,chartType:t.chartType,chartOptions:t.chartOptions()||null,responsiveOptions:t.responsiveOptions()||null,events:t.events()||{}}},this.update.bind(this),!0),t.$on("$destroy",function(){n.chart&&n.chart.detach()})}var t,e,n;return s.$inject=["$scope","$element"],t=s,(e=[{key:"bindEvents",value:function(){var e=this;Object.keys(this.events).forEach(function(t){e.chart.on(t,e.events[t])})}},{key:"unbindEvents",value:function(e){var n=this;Object.keys(e).forEach(function(t){n.chart.off(t,e[t])})}},{key:"renderChart",value:function(){if(this.data)return this.chart=a[this.chartType](this.element,this.data,this.options,this.responsiveOptions),this.bindEvents(),this.chart}},{key:"update",value:function(t,e){this.chartType=t.chartType,this.data=t.data,this.options=t.chartOptions,this.responsiveOptions=t.responsiveOptions,this.events=t.events,this.chart&&t.chartType===e.chartType?(i.equals(t.events,e.events)||(this.unbindEvents(e.events),this.bindEvents()),this.chart.update(this.data,this.options)):this.renderChart()}}])&&r(t.prototype,e),n&&r(t,n),s}();return t.controller("AngularChartistCtrl",e).directive("chartist",function(){"ngInject";return{restrict:"EA",scope:{data:"=chartistData",chartType:"@chartistChartType",events:"&chartistEvents",chartOptions:"&chartistChartOptions",responsiveOptions:"&chartistResponsiveOptions"},controller:"AngularChartistCtrl"}}),t.name});
//# sourceMappingURL=angular-chartist.js.map