/** * highcharts-ng * @version v1.1.1-dev - 2017-05-14 * @link https://github.com/pablojim/highcharts-ng * @author Barry Fitzgerald <> * @license MIT License, http://www.opensource.org/licenses/MIT */ "undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="highcharts-ng"),function(){"use strict";function a(a,f){var g=0,h=0,i=0,j=this,k={},l={},m=j.changeDetection||angular.equals;this.$onInit=function(){j.config.getChartObj=function(){return j.chart},k=angular.merge({},j.config),l=b(a,j.config,g),j.chart=new(e[c(l)])(l);var d=a[0].clientWidth,h=a[0].clientHeight;f(function(){a[0].clientWidth===d&&a[0].clientHeight===h||j.chart.reflow()},0,!1)},this.removeItems=function(a,b,c,e){if(a&&Array.isArray(a))for(var f=d(a,c),g=b.length-1;g>=0;g-=1){var h=b[g];e.indexOf(h.options.id)<0&&f.indexOf(h.options.id)<0&&h.remove(!0)}},this.removeUnlinkedObjects=function(a){this.removeItems(a.yAxis,j.chart.yAxis,h,"navigator-y-axis"),this.removeItems(a.xAxis,j.chart.xAxis,i,"navigator-x-axis"),this.removeItems(a.series,j.chart.series,g,"highcharts-navigator-series")},this.addAnyNewAxes=function(a,b,c){a&&Array.isArray(a)&&angular.forEach(a,function(a){b.get(a.id)||b.addAxis(a,c)})},this.$doCheck=function(){m(j.config,k)||(k=angular.merge({},j.config),l=b(a,j.config,g),this.removeUnlinkedObjects(l),this.addAnyNewAxes(l.yAxis,j.chart,!1),this.addAnyNewAxes(l.xAxis,j.chart,!0),l.series&&angular.forEach(j.config.series,function(a){j.chart.get(a.id)||j.chart.addSeries(a)}),j.chart.update(l,!0))},this.$onDestroy=function(){if(j.chart){try{j.chart.destroy()}catch(b){}f(function(){a.remove()},0)}}}function b(a,b,c){var e={},f={chart:{events:{}},title:{},subtitle:{},series:[],credits:{},plotOptions:{},navigator:{}};return b?(b.series&&d(b.series,c),e=angular.merge(f,b)):e=f,e.chart.renderTo=a[0],e}function c(a){return void 0===a||void 0===a.chartType?"Chart":f[(""+a.chartType).toLowerCase()]}function d(a,b){var c=[];return angular.forEach(a,function(a){angular.isDefined(a.id)||(b+=1,a.id="cc-"+b),c.push(a.id)}),c}var e=null;window&&window.Highcharts?e=window.Highcharts:"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&"highcharts-ng"===module.exports&&(e=require("highcharts")),angular.module("highcharts-ng",[]).component("highchart",{bindings:{config:"<",changeDetection:"<"},controller:a}),a.$inject=["$element","$timeout"];var f={stock:"StockChart",map:"Map",chart:"Chart"}}();