(function(n){"object"==typeof module&&module.exports?(n["default"]=n,module.exports=n):"function"==typeof define&&define.amd?define("highcharts/modules/drilldown",["highcharts"],function(t){return n(t),n.Highcharts=t,n}):n("undefined"!=typeof Highcharts?Highcharts:void 0)})(function(n){function t(n,t,i,r){n.hasOwnProperty(t)||(n[t]=r.apply(null,i))}n=n?n._modules:{};t(n,"modules/drilldown.src.js",[n["parts/Chart.js"],n["parts/Color.js"],n["parts/Globals.js"],n["parts/Options.js"],n["parts/Point.js"],n["parts/SVGRenderer.js"],n["parts/Tick.js"],n["parts/Utilities.js"]],function(n,t,i,r,u,f,e,o){var p,y;r=r.defaultOptions;var s=o.addEvent,k=o.removeEvent,w=o.animObject,c=o.extend,v=o.fireEvent,d=o.format,l=o.merge,b=o.objectEach,a=o.pick,g=o.syncTimeout,nt=i.noop,h=i.seriesTypes;o=h.pie;h=h.column;p=1;c(r.lang,{drillUpText:"◁ Back to {series.name}"});r.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#003399",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer",color:"#003399",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};f.prototype.Element.prototype.fadeIn=function(n){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:a(this.newOpacity,1)},n||{duration:250})};n.prototype.addSeriesAsDrilldown=function(n,t){this.addSingleSeriesAsDrilldown(n,t);this.applyDrilldown()};n.prototype.addSingleSeriesAsDrilldown=function(n,i){var u=n.series,r=u.xAxis,f=u.yAxis,h=[],v=[],e,s=this.styledMode?{colorIndex:a(n.colorIndex,u.colorIndex)}:{color:n.color||u.color},o,y;this.drilldownLevels||(this.drilldownLevels=[]);o=u.options._levelNumber||0;(e=this.drilldownLevels[this.drilldownLevels.length-1])&&e.levelNumber!==o&&(e=void 0);i=c(c({_ddSeriesId:p++},s),i);y=u.points.indexOf(n);u.chart.series.forEach(function(n){n.xAxis!==r||n.isDrilling||(n.options._ddSeriesId=n.options._ddSeriesId||p++,n.options._colorIndex=n.userOptions._colorIndex,n.options._levelNumber=n.options._levelNumber||o,e?(h=e.levelSeries,v=e.levelSeriesOptions):(h.push(n),n.purgedOptions=l({_ddSeriesId:n.options._ddSeriesId,_levelNumber:n.options._levelNumber,selected:n.options.selected},n.userOptions),v.push(n.purgedOptions)))});n=c({levelNumber:o,seriesOptions:u.options,seriesPurgedOptions:u.purgedOptions,levelSeriesOptions:v,levelSeries:h,shapeArgs:n.shapeArgs,bBox:n.graphic?n.graphic.getBBox():{},color:n.isNull?new t(s.color).setOpacity(0).get():s.color,lowerSeriesOptions:i,pointOptions:u.options.data[y],pointIndex:y,oldExtremes:{xMin:r&&r.userMin,xMax:r&&r.userMax,yMin:f&&f.userMin,yMax:f&&f.userMax},resetZoomButton:this.resetZoomButton},s);this.drilldownLevels.push(n);r&&r.names&&(r.names.length=0);i=n.lowerSeries=this.addSeries(i,!1);i.options._levelNumber=o+1;r&&(r.oldPos=r.pos,r.userMin=r.userMax=null,f.userMin=f.userMax=null);u.type===i.type&&(i.animate=i.animateDrilldown||nt,i.options.animation=!0)};n.prototype.applyDrilldown=function(){var n=this.drilldownLevels,t;n&&0<n.length&&(t=n[n.length-1].levelNumber,this.drilldownLevels.forEach(function(n){n.levelNumber===t&&n.levelSeries.forEach(function(n){n.options&&n.options._levelNumber===t&&n.remove(!1)})}));this.resetZoomButton&&(this.resetZoomButton.hide(),delete this.resetZoomButton);this.pointer.reset();this.redraw();this.showDrillUpButton();v(this,"afterDrilldown")};n.prototype.getDrilldownBackText=function(){var n=this.drilldownLevels;if(n&&0<n.length)return n=n[n.length-1],n.series=n.seriesOptions,d(this.options.lang.drillUpText,n)};n.prototype.showDrillUpButton=function(){var r=this,u=this.getDrilldownBackText(),t=r.options.drilldown.drillUpButton,i,n;this.drillUpButton?this.drillUpButton.attr({text:u}).align():(n=(i=t.theme)&&i.states,this.drillUpButton=this.renderer.button(u,null,null,function(){r.drillUp()},i,n&&n.hover,n&&n.select).addClass("highcharts-drillup-button").attr({align:t.position.align,zIndex:7}).add().align(t.position,!1,t.relativeTo||"plotBox"))};n.prototype.drillUp=function(){if(this.drilldownLevels&&0!==this.drilldownLevels.length){for(var r=this,f=r.drilldownLevels,o=f[f.length-1].levelNumber,s=f.length,e=r.series,t,n,i,u,h=function(t){e.forEach(function(n){n.options._ddSeriesId===t._ddSeriesId&&(f=n)});var f=f||r.addSeries(t,!1);f.type===i.type&&f.animateDrillupTo&&(f.animate=f.animateDrillupTo);t===n.seriesPurgedOptions&&(u=f)};s--;)if(n=f[s],n.levelNumber===o){if(f.pop(),i=n.lowerSeries,!i.chart)for(t=e.length;t--;)if(e[t].options.id===n.lowerSeriesOptions.id&&e[t].options._levelNumber===o+1){i=e[t];break}i.xData=[];n.levelSeriesOptions.forEach(h);v(r,"drillup",{seriesOptions:n.seriesPurgedOptions||n.seriesOptions});u.type===i.type&&(u.drilldownLevel=n,u.options.animation=r.options.drilldown.animation,i.animateDrillupFrom&&i.chart&&i.animateDrillupFrom(n));u.options._levelNumber=o;i.remove(!1);u.xAxis&&(t=n.oldExtremes,u.xAxis.setExtremes(t.xMin,t.xMax,!1),u.yAxis.setExtremes(t.yMin,t.yMax,!1));n.resetZoomButton&&(r.resetZoomButton=n.resetZoomButton,r.resetZoomButton.show())}this.redraw();0===this.drilldownLevels.length?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[];v(r,"drillupall")}};s(n,"afterInit",function(){var n=this;n.drilldown={update:function(t,i){l(!0,n.options.drilldown,t);a(i,!0)&&n.redraw()}}});s(n,"beforeShowResetZoom",function(){if(this.drillUpButton)return!1});s(n,"render",function(){(this.xAxis||[]).forEach(function(n){n.ddPoints={};n.series.forEach(function(t){for(var u=t.xData||[],f=t.points,r,i=0;i<u.length;i++)r=t.options.data[i],"number"!=typeof r&&(r=t.pointClass.prototype.optionsToObject.call({series:t},r),r.drilldown&&(n.ddPoints[u[i]]||(n.ddPoints[u[i]]=[]),n.ddPoints[u[i]].push(f?f[i]:!0)))});b(n.ticks,e.prototype.drillable)})});h.prototype.animateDrillupTo=function(n){if(!n){var t=this,i=t.drilldownLevel;this.points.forEach(function(n){var t=n.dataLabel;n.graphic&&n.graphic.hide();t&&(t.hidden="hidden"===t.attr("visibility"),t.hidden||(t.hide(),n.connector&&n.connector.hide()))});g(function(){t.points&&t.points.forEach(function(n,t){t=t===(i&&i.pointIndex)?"show":"fadeIn";var u="show"===t?!0:void 0,r=n.dataLabel;n.graphic&&n.graphic[t](u);r&&!r.hidden&&(r.fadeIn(),n.connector&&n.connector.fadeIn())})},Math.max(this.chart.options.drilldown.animation.duration-50,0));delete this.animate}};h.prototype.animateDrilldown=function(n){var u=this,i=this.chart,o=i.drilldownLevels,t,f=w(i.options.drilldown.animation),r=this.xAxis,e=i.styledMode;n||(o.forEach(function(n){u.options._ddSeriesId===n.lowerSeriesOptions._ddSeriesId&&(t=n.shapeArgs,e||(t.fill=n.color))}),t.x+=a(r.oldPos,r.pos)-r.pos,this.points.forEach(function(n){var i=n.shapeArgs;e||(i.fill=n.color);n.graphic&&n.graphic.attr(t).animate(c(n.shapeArgs,{fill:n.color||u.color}),f);n.dataLabel&&n.dataLabel.fadeIn(f)}),delete this.animate)};h.prototype.animateDrillupFrom=function(n){var r=w(this.chart.options.drilldown.animation),t=this.group,u=t!==this.chart.columnGroup,i=this;i.trackerGroups.forEach(function(n){if(i[n])i[n].on("mouseover")});u&&delete this.group;this.points.forEach(function(f){var e=f.graphic,o=n.shapeArgs,s=function(){e.destroy();t&&u&&(t=t.destroy())};e&&o&&(delete f.graphic,i.chart.styledMode||(o.fill=n.color),r.duration?e.animate(o,l(r,{complete:s})):(e.attr(o),s()))})};o&&c(o.prototype,{animateDrillupTo:h.prototype.animateDrillupTo,animateDrillupFrom:h.prototype.animateDrillupFrom,animateDrilldown:function(n){var u=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],i=this.chart.options.drilldown.animation;if(this.is("item")&&(i.duration=0),this.center){var t=u.shapeArgs,r=t.start,f=(t.end-r)/this.points.length,e=this.chart.styledMode;n||(this.points.forEach(function(n,o){var s=n.shapeArgs;e||(t.fill=u.color,s.fill=n.color);n.graphic&&n.graphic.attr(l(t,{start:r+o*f,end:r+(o+1)*f}))[i?"animate":"attr"](s,i)}),delete this.animate)}}});u.prototype.doDrilldown=function(n,t,i){var r=this.series.chart,u=r.options.drilldown,f=(u.series||[]).length,e;for(r.ddDupes||(r.ddDupes=[]);f--&&!e;)u.series[f].id===this.drilldown&&-1===r.ddDupes.indexOf(this.drilldown)&&(e=u.series[f],r.ddDupes.push(this.drilldown));v(r,"drilldown",{point:this,seriesOptions:e,category:t,originalEvent:i,points:"undefined"!=typeof t&&this.series.xAxis.getDDPoints(t).slice(0)},function(t){var i=t.point.series&&t.point.series.chart,r=t.seriesOptions;i&&r&&(n?i.addSingleSeriesAsDrilldown(t.point,r):i.addSeriesAsDrilldown(t.point,r))})};i.Axis.prototype.drilldownCategory=function(n,t){b(this.getDDPoints(n),function(i){i&&i.series&&i.series.visible&&i.doDrilldown&&i.doDrilldown(!0,n,t)});this.chart.applyDrilldown()};i.Axis.prototype.getDDPoints=function(n){return this.ddPoints&&this.ddPoints[n]};e.prototype.drillable=function(){var r=this.pos,n=this.label,t=this.axis,u="xAxis"===t.coll&&t.getDDPoints,f=u&&t.getDDPoints(r),i=t.chart.styledMode;u&&(n&&f&&f.length?(n.drillable=!0,n.basicStyles||i||(n.basicStyles=l(n.styles)),n.addClass("highcharts-drilldown-axis-label"),n.removeOnDrillableClick&&k(n.element,"click"),n.removeOnDrillableClick=s(n.element,"click",function(n){n.preventDefault();t.drilldownCategory(r,n)}),i||n.css(t.chart.options.drilldown.activeAxisLabelStyle)):n&&n.drillable&&n.removeOnDrillableClick&&(i||(n.styles={},n.css(n.basicStyles)),n.removeOnDrillableClick(),n.removeClass("highcharts-drilldown-axis-label")))};s(u,"afterInit",function(){var n=this,t=n.series;return n.drilldown&&s(n,"click",function(i){t.xAxis&&!1===t.chart.options.drilldown.allowPointDrilldown?t.xAxis.drilldownCategory(n.x,i):n.doDrilldown(void 0,void 0,i)}),n});s(i.Series,"afterDrawDataLabels",function(){var n=this.chart.options.drilldown.activeDataLabelStyle,i=this.chart.renderer,t=this.chart.styledMode;this.points.forEach(function(r){var u=r.options.dataLabels,f=a(r.dlOptions,u&&u.style,{});r.drilldown&&r.dataLabel&&("contrast"!==n.color||t||(f.color=i.getContrast(r.color||this.color)),u&&u.color&&(f.color=u.color),r.dataLabel.addClass("highcharts-drilldown-data-label"),t||r.dataLabel.css(n).css(f))},this)});y=function(n,t,i,r){n[i?"addClass":"removeClass"]("highcharts-drilldown-point");r||n.css({cursor:t})};s(i.Series,"afterDrawTracker",function(){var n=this.chart.styledMode;this.points.forEach(function(t){t.drilldown&&t.graphic&&y(t.graphic,"pointer",!0,n)})});s(u,"afterSetState",function(){var n=this.series.chart.styledMode;this.drilldown&&this.series.halo&&"hover"===this.state?y(this.series.halo,"pointer",!0,n):this.series.halo&&y(this.series.halo,"auto",!1,n)})});t(n,"masters/modules/drilldown.src.js",[],function(){})})