highcharts
Version:
JavaScript charting framework
14 lines • 23.7 kB
JavaScript
!/**
* Highcharts JS v13.0.1 (2026-08-17)
* @module highcharts/modules/drilldown
* @requires highcharts
*
* Highcharts Drilldown module
*
* (c) 2009-2026 Highsoft AS
*
* Author: Torstein Hønsi
* A commercial license may be required depending on use,
* see www.highcharts.com/license
*
*/function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Templating):"function"==typeof define&&define.amd?define("highcharts/modules/drilldown",["highcharts/highcharts"],function(e){return t(e,e.Templating)}):"object"==typeof exports?exports["highcharts/modules/drilldown"]=t(e._Highcharts,e._Highcharts.Templating):e.Highcharts=t(e.Highcharts,e.Highcharts.Templating)}("u"<typeof window?this:window,(e,t)=>(()=>{"use strict";var i,o={984(e){e.exports=t},944(t){t.exports=e}};let r={};function l(e){let t=r[e];if(void 0!==t)return t.exports;let i=r[e]={exports:{}};return o[e](i,i.exports,l),i.exports}l.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{if(Array.isArray(t))for(var i=0;i<t.length;){var o=t[i++],r=t[i++];l.o(e,o)?0===r&&i++:0===r?Object.defineProperty(e,o,{enumerable:!0,value:t[i++]}):Object.defineProperty(e,o,{enumerable:!0,get:r})}else for(var o in t)l.o(t,o)&&!l.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let s={};l.d(s,{default:()=>R});var n=l(944),a=l.n(n);let d={mainBreadcrumb:"Main"};var p=l(984);let{format:h}=l.n(p)(),{composed:u}=a();function c(){if(this.breadcrumbs){let e=this.resetZoomButton&&this.resetZoomButton.getBBox(),t=this.breadcrumbs.options;e&&"right"===t.position.align&&"plotBox"===t.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-e.width-t.buttonSpacing)}}function m(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function f(){let e=this.breadcrumbs;if(e&&!e.options.floating&&e.level){let t=e.options,i=t.buttonTheme,o=(i.height||0)+2*(i.padding||0)+t.buttonSpacing,r=t.position.verticalAlign;"bottom"===r?(this.marginBottom=(this.marginBottom||0)+o,e.yOffset=o):"middle"!==r?(this.plotTop+=o,e.yOffset=-o):e.yOffset=void 0}}function g(){this.breadcrumbs&&this.breadcrumbs.redraw()}function w(e){!0===e.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class b{static compose(e,t){(0,n.pushUnique)(u,"Breadcrumbs")&&((0,n.addEvent)(e,"destroy",m),(0,n.addEvent)(e,"afterShowResetZoom",c),(0,n.addEvent)(e,"getMargins",f),(0,n.addEvent)(e,"redraw",g),(0,n.addEvent)(e,"selection",w),(0,n.extend)(t.lang,d))}constructor(e,t){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];const i=(0,n.merge)(e.options.drilldown&&e.options.drilldown.drillUpButton,b.defaultOptions,e.options.navigation&&e.options.navigation.breadcrumbs,t);this.chart=e,this.options=i||{}}updateProperties(e){this.setList(e),this.setLevel(),this.isDirty=!0}setList(e){this.list=e}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(e){let t=this.chart,i=this.options,o=t.options.lang,r=(0,n.pick)(i.format,i.showFullPath?"{level.name}":"← {level.name}"),l=o&&(0,n.pick)(o.drillUpText,o.mainBreadcrumb),s=i.formatter&&i.formatter(e)||h(r,{level:e.levelOptions},t)||"";return((0,n.isString)(s)&&!s.length||"← "===s)&&(0,n.defined)(l)&&(s=i.showFullPath?l:"← "+l),s}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let e=this.chart,t=this.options;!this.group&&t&&(this.group=e.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:t.zIndex}).add()),t.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let e=this.chart,t=this.list,i=this.options.buttonSpacing;this.destroyListElements();let o=this.group?this.group.getBBox().width:i,r=t[t.length-2];!e.drillUpButton&&this.level>0?e.drillUpButton=this.renderButton(r,o,i):e.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(e){if(this.group){let t=this.options,i=t.buttonTheme,o=t.position,r="chart"===t.relativeTo||"spacingBox"===t.relativeTo?void 0:"plotBox",l=this.group.getBBox(),s=2*(i.padding||0)+t.buttonSpacing;o.width=l.width+s,o.height=l.height+s;let a=(0,n.merge)(o);e&&(a.x+=e),this.options.rtl&&(a.x+=o.width),a.y=(0,n.pick)(a.y,this.yOffset,0),this.group.align(a,!0,r)}}renderButton(e,t,i){let o=this,r=this.chart,l=o.options,s=(0,n.merge)(l.buttonTheme),a=r.renderer.button(o.getButtonText(e),t,i,function(t){let i,r=l.events&&l.events.click;r&&(i=r.call(o,t,e,o)),!1!==i&&(l.showFullPath?t.newLevel=e.level:t.newLevel=o.level-1,(0,n.fireEvent)(o,"up",t))},s).addClass("highcharts-breadcrumbs-button").add(o.group);return r.styledMode||a.attr(l.style),a}renderSeparator(e,t){let i=this.chart,o=this.options.separator,r=i.renderer.label(o.text,e,t,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||r.css(o.style),r}update(e){(0,n.merge)(!0,this.options,e),this.destroy(),this.isDirty=!0}updateSingleButton(){let e=this.chart,t=this.list[this.level-1];e.drillUpButton&&e.drillUpButton.attr({text:this.getButtonText(t)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(e){let t=this.elementList;(0,n.objectEach)(t,(i,o)=>{(e||!t[o].updated)&&((i=t[o]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete t[o])}),e&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){(0,n.objectEach)(this.elementList,e=>{e.updated=!1})}updateListElements(){let e=this.elementList,t=this.options.buttonSpacing,i=this.list,o=this.options.rtl,r=o?-1:1,l=function(e,t){return r*e.getBBox().width+r*t},s=function(e,t,i){e.translate(t-e.getBBox().width,i)},n=this.group?l(this.group,t):t,a,d;for(let p=0,h=i.length;p<h;++p){let u,c,m=p===h-1;e[(d=i[p]).level]?(u=(a=e[d.level]).button,a.separator||m?a.separator&&m&&(a.separator.destroy(),delete a.separator):(n+=r*t,a.separator=this.renderSeparator(n,t),o&&s(a.separator,n,t),n+=l(a.separator,t)),e[d.level].updated=!0):(u=this.renderButton(d,n,t),o&&s(u,n,t),n+=l(u,t),m||(c=this.renderSeparator(n,t),o&&s(c,n,t),n+=l(c,t)),e[d.level]={button:u,separator:c,updated:!0}),u&&u.setState(2*!!m)}}}b.defaultOptions={buttonSpacing:5,buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"var(--highcharts-highlight-color-80)"}},floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"var(--highcharts-neutral-color-60)",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7};let v={activeAxisLabelStyle:{cursor:"pointer",color:"var(--highcharts-highlight-color-100)",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer",color:"var(--highcharts-highlight-color-100)",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}},mapZooming:!0};function y(e,t,i,o){e[i?"addClass":"removeClass"]("highcharts-drilldown-point"),o||e.css({cursor:t})}function x(e){let t=this,i=t.chart,{drilldownLevels:o,styledMode:r}=i,l=(0,n.animObject)(i.options.drilldown?.animation),{xAxis:s,yAxis:a}=this;if(!e){let e;o?.forEach(i=>{t.options._ddSeriesId===i.lowerSeriesOptions._ddSeriesId&&(e=i.shapeArgs)&&(e.x=(e.x||0)+(i.plotLeft??s.pos)-s.pos,e.y=(e.y||0)+(i.plotTop??a.pos)-a.pos,r||(e.fill=i.color))}),t.points.forEach(i=>{i.graphic?.attr(e).animate((0,n.extend)(i.shapeArgs,{fill:i.color||t.color}),l)}),this.dataLabelsGroups?.forEach(e=>i.drilldown?.fadeInGroup(e)),delete this.animate}}function D(e){let t=this,i=(0,n.animObject)((t.chart.options.drilldown||{}).animation);t.trackerGroups?.forEach(e=>{"dataLabelsGroup"===e?t.dataLabelsGroups?.forEach(e=>{e?.on("mouseover",()=>{})}):t[e]?.on("mouseover")});let o=t.group,r=o!==t.chart.columnGroup;r&&delete t.group,(this.points||this.data).forEach(l=>{let s=l.graphic,a=e.shapeArgs;if(s&&a){let d=()=>{s.destroy(),o&&r&&(o=o.destroy())};delete l.graphic,t.chart.styledMode||(a.fill=e.color),i.duration?s.animate(a,(0,n.merge)(i,{complete:d})):(s.attr(a),d())}})}function S(e){let t=this,i=t.drilldownLevel,o=(0,n.animObject)(t.chart.options.drilldown?.animation);e||(t.points.forEach(e=>{let t=e.dataLabel;e.graphic&&e.graphic.hide(),t&&(t.hidden="hidden"===t.attr("visibility"),t.hidden||(t.hide(),t.connector?.hide()))}),(0,n.syncTimeout)(()=>{if(t.points){let e=[];t.data.forEach(t=>{e.push(t)}),t.nodes&&(e=e.concat(t.nodes)),e.forEach((e,t)=>{let o=t===(i&&i.pointIndex)?"show":"fadeIn",r=e.dataLabel;e.graphic&&e.visible&&e.graphic[o]("show"===o||void 0),r&&!r.hidden&&(r.fadeIn(),r.connector?.fadeIn())})}},Math.max(o.duration-50,0)),delete this.animate)}function E(e){let t=this,i=t.chart,o=t.group;i&&o&&t.options&&i.options.drilldown?.animation&&(e&&i.mapView?(o.attr({opacity:.01}),i.mapView.allowTransformAnimation=!1,t.options.inactiveOtherPoints=!0,t.options.enableMouseTracking=!1):(o.animate({opacity:1},i.options.drilldown.animation,()=>{t.options&&(t.options.inactiveOtherPoints=!1,t.options.enableMouseTracking=t.userOptions?.enableMouseTracking??!0)}),t.dataLabelsGroups?.forEach(e=>i.drilldown?.fadeInGroup(e))))}function B(){let e=this.chart;e?.mapView&&(e.mapView.allowTransformAnimation=!1),this.options&&(this.options.inactiveOtherPoints=!0)}function L(e){let t=this.chart,i=this.group;t&&i&&(e?(i.attr({opacity:.01}),this.options&&(this.options.inactiveOtherPoints=!0)):(i.animate({opacity:1},(t.options.drilldown||{}).animation),this.dataLabelsGroups?.forEach(e=>t.drilldown?.fadeInGroup(e))))}function O(){return this.drilldown&&!this.unbindDrilldownClick&&(this.unbindDrilldownClick=(0,n.addEvent)(this,"click",A)),this}function T(){let e=this.series,t=e.chart.styledMode;this.drilldown&&e.halo&&"hover"===this.state?y(e.halo,"pointer",!0,t):e.halo&&y(e.halo,"auto",!1,t)}function A(e){let t=this.series;t.xAxis&&!1===(t.chart.options.drilldown||{}).allowPointDrilldown?t.xAxis.drilldownCategory(this.x,e):this.runDrilldown(void 0,void 0,e)}function C(e){let t=e.options||{};t.drilldown&&!this.unbindDrilldownClick?this.unbindDrilldownClick=(0,n.addEvent)(this,"click",A):!t.drilldown&&void 0!==t.drilldown&&this.unbindDrilldownClick&&(this.unbindDrilldownClick=this.unbindDrilldownClick())}function M(){let e=this.chart,t=e.options.drilldown?.activeDataLabelStyle||{},i=e.renderer,o=e.styledMode;for(let e of this.points){let r=(0,n.splat)(e.options.dataLabels)[0]||{},l=e.dlOptions||r.style||{};if(e.drilldown&&e.dataLabel){if("contrast"===t.color&&!o){let t=(0,n.isString)(e.color)&&e.color||(0,n.isString)(this.color)&&this.color;(0,n.isString)(t)&&(l.color=i.getContrast(t))}r&&r.color&&(l.color=r.color),e.dataLabel.addClass("highcharts-drilldown-data-label"),o||e.dataLabel.css(t).css(l)}}}function P(){let e=this.chart.styledMode;for(let t of this.points)t.drilldown&&t.graphic&&y(t.graphic,"pointer",!0,e)}function I(e){let t=this.chart,i=this.points,o=t.drilldownLevels||[],r=o[o.length-1],l=(0,n.animObject)(t.options.drilldown?.animation);if(this.is("item")&&(l.duration=0),this.center){let o=r.shapeArgs||{},s=o.start||0,a=((o.end||0)-s)/this.points.length,d=t.styledMode;if(o.y=(o.y||0)+((r.plotTop??t.plotTop)-t.plotTop)/2,!e){let e,p;for(let t=0,h=i.length;t<h;++t){e=(p=i[t]).shapeArgs||{},d||(o.fill=r.color,e.fill=p.color);let h=(0,n.merge)(o,{start:s+t*a,end:s+(t+1)*a});p.graphic?.attr(h).animate(e,l)}this.dataLabelsGroups?.forEach(e=>t.drilldown?.fadeInGroup(e)),delete this.animate}}}function k(){this.runDrilldown()}function V(e,t,i){let o=this.series,r=o.chart,l=r.options.drilldown||{},s=(l.series||[]).length,a;for(r.ddDupes||(r.ddDupes=[]),r.colorCounter=r.symbolCounter=0;s--&&!a;)l.series&&l.series[s].id===this.drilldown&&this.drilldown&&-1===r.ddDupes.indexOf(this.drilldown)&&(a=l.series[s],r.ddDupes.push(this.drilldown));(0,n.fireEvent)(r,"drilldown",{point:this,seriesOptions:a,category:t,originalEvent:i,points:void 0!==t&&o.xAxis.getDDPoints(t).slice(0)},t=>{let i=t.point.series?.chart,o=t.seriesOptions;i&&o&&(e?i.addSingleSeriesAsDrilldown(t.point,o):i.addSeriesAsDrilldown(t.point,o))})}let _=function(e,t){let i=e.prototype.pointClass,o=i.prototype;if(!o.doDrilldown){let{column:r,map:l,pie:s}=t;if((0,n.addEvent)(i,"afterInit",O),(0,n.addEvent)(i,"afterSetState",T),(0,n.addEvent)(i,"update",C),o.doDrilldown=k,o.runDrilldown=V,(0,n.addEvent)(e,"afterDrawDataLabels",M),(0,n.addEvent)(e,"afterDrawTracker",P),r){let e=r.prototype;e.animateDrilldown=x,e.animateDrillupFrom=D,e.animateDrillupTo=S}if(l){let e=l.prototype;e.animateDrilldown=E,e.animateDrillupFrom=B,e.animateDrillupTo=L}if(s){let e=s.prototype;e.animateDrilldown=I,e.animateDrillupFrom=D,e.animateDrillupTo=S}}},{noop:G}=a(),Z=1;function j(e,t){this.getDDPoints(e).forEach(function(i){(0,n.isObject)(i)&&i.series&&i.series.visible&&i.runDrilldown&&i.runDrilldown(!0,e,t)}),this.chart.applyDrilldown()}function N(e){return this.ddPoints&&this.ddPoints[e]||[]}function U(e){let t=[],i=e.drilldownLevels;return i&&i.length&&(t[0]||t.push({level:0,levelOptions:i[0].seriesOptions}),i.forEach(function(e){let i=t[t.length-1];e.levelNumber+1>i.level&&t.push({level:e.levelNumber+1,levelOptions:(0,n.merge)({name:e.lowerSeries.name},e.pointOptions)})})),t}class F{constructor(e){this.chart=e}addSeriesAsDrilldown(e,t){let i=this.chart||this;if((0,n.fireEvent)(this,"addSeriesAsDrilldown",{seriesOptions:t}),i.mapView){if(e.series.isDrilling=!0,i.series.forEach(e=>{e.options.inactiveOtherPoints=!0,e.dataLabelsGroups?.forEach(e=>e?.destroy()),e.dataLabelsGroups=[],e.points?.forEach(e=>{e.dataLabels&&(e.dataLabels=[])})}),i.options.drilldown&&!i.mapView.projection.hasGeoProjection&&v){let e=(0,n.diffObjects)(i.options.drilldown,v);(0,n.defined)(e.mapZooming)||(i.options.drilldown.mapZooming=!1)}if(i.options.drilldown&&i.options.drilldown.animation&&i.options.drilldown.mapZooming){i.mapView.allowTransformAnimation=!0;let o=(0,n.animObject)(i.options.drilldown.animation);if("boolean"!=typeof o){let r=o.complete,l=function(o){o&&o.applyDrilldown&&i.mapView&&(i.addSingleSeriesAsDrilldown(e,t),i.applyDrilldown(),i.mapView.allowTransformAnimation=!1)};o.complete=function(){r&&r.apply(this,arguments),l.apply(this,arguments)}}e.zoomTo(o)}else i.addSingleSeriesAsDrilldown(e,t),i.applyDrilldown()}else i.addSingleSeriesAsDrilldown(e,t),i.applyDrilldown()}addSingleSeriesAsDrilldown(e,t){let i=this.chart||this,o=e.series,r=o.xAxis,l=o.yAxis,s=r&&i.inverted?l:r,a=r&&i.inverted?r:l,d=i.styledMode?{colorIndex:e.colorIndex??o.colorIndex}:{color:e.color||o.color},p=o.options._levelNumber??0;i.drilldownLevels||(i.drilldownLevels=[]),t=(0,n.extend)((0,n.extend)({_ddSeriesId:Z++,_levelNumber:p+1},d),t);let h=[],u=[],c;(c=i.drilldownLevels[i.drilldownLevels.length-1])&&c.levelNumber!==p&&(c=void 0),o.chart.series.forEach(e=>{var t,i;if(e.xAxis===r)if((t=e.options)._ddSeriesId||(t._ddSeriesId=Z++),e.options.colorIndex=e.colorIndex,(i=e.options)._levelNumber??(i._levelNumber=p),c)h=c.levelSeries,u=c.levelSeriesOptions;else{h.push(e),e.purgedOptions=(0,n.merge)({_ddSeriesId:e.options._ddSeriesId,_levelNumber:e.options._levelNumber,selected:e.options.selected},e.userOptions);let t=e.dataTable.getColumns();e.purgedOptions.dataTable={columns:t},u.push(e.purgedOptions)}}),r?.names&&(r.names.length=0);let m=i.addSeries(t,!1);m.options._levelNumber=p+1,r&&(r.userMin=r.userMax=void 0,l.userMin=l.userMax=void 0),m.isDrilling=!0;let f=(0,n.extend)({levelNumber:p,seriesOptions:o.options,seriesPurgedOptions:o.purgedOptions,levelSeriesOptions:u,levelSeries:h,shapeArgs:e.shapeArgs,bBox:e.graphic?e.graphic.getBBox():{},color:e.isNull?"rgba(0,0,0,0)":d.color,lowerSeries:m,lowerSeriesOptions:t,plotTop:a?.pos??i.plotTop,plotLeft:s?.pos??i.plotLeft,pointOptions:e.options,pointIndex:e.index,oldExtremes:{xMin:r?.userMin,xMax:r?.userMax,yMin:l?.userMin,yMax:l?.userMax},resetZoomButton:c&&c.levelNumber===p?void 0:i.resetZoomButton},d);i.drilldownLevels.push(f),o.type===m.type&&(m.animate=m.animateDrilldown||G,m.options.animation=!0)}applyDrilldown(){let e,t=this.chart||this,i=t.options.drilldown,o=t.drilldownLevels;o&&o.length>0&&(e=o[o.length-1].levelNumber,t.hasCartesianSeries=o.some(e=>e.lowerSeries?.isCartesian),(t.drilldownLevels||[]).forEach(o=>{t.mapView&&i?.mapZooming&&(t.redraw(),o.lowerSeries.isDrilling=!1,t.mapView.fitToBounds(o.lowerSeries.bounds),o.lowerSeries.isDrilling=!0),o.levelNumber===e&&o.levelSeries.forEach(r=>{let l=r.options?._levelNumber;if(t.mapView){if(r.options&&l===e){let e={};i&&(e=i.animation);let l=(0,n.animObject)(e),s=!1,a=()=>{!s&&(s=!0,r.chart&&(r.group&&(0,n.stop)(r.group),r.dataLabelsGroup&&(0,n.stop)(r.dataLabelsGroup),r.dataLabelsGroups?.forEach(e=>{e&&(0,n.stop)(e)}),r.remove(!1)),o.levelSeries.filter(e=>Object.keys(e).length).length||(t.resetZoomButton&&(t.resetZoomButton.hide(),delete t.resetZoomButton),t.pointer?.reset(),(0,n.fireEvent)(t,"afterDrilldown"),t.mapView&&(t.series.forEach(e=>{e.isDirtyData=!0,e.isDrilling=!1}),t.mapView.fitToBounds(void 0,void 0),t.mapView.allowTransformAnimation=!0),(0,n.fireEvent)(t,"afterApplyDrilldown")))};if(r.group?.element){let t;(t=e=>{let t=e?.element;e&&t&&((0,n.stop)(e),t.setAttribute("opacity","0"),t.setAttribute("visibility","hidden"))})(r.dataLabelsGroup),r.dataLabelsGroups?.forEach(t),r.group.animate({opacity:0},e,a),(0,n.syncTimeout)(a,l.defer+l.duration)}else a()}}else r.options&&l===e&&r.remove(!1)})})),t.mapView||(t.resetZoomButton&&(t.resetZoomButton.hide(),delete t.resetZoomButton),t.pointer?.reset(),(0,n.fireEvent)(t,"afterDrilldown"),t.hasCartesianSeries||t.axes.forEach(e=>{e.destroy(!0),e.init(t,(0,n.merge)(e.userOptions,e.options))}),t.redraw(i?.animation),(0,n.fireEvent)(t,"afterApplyDrilldown"))}drillUp(e){let t=this.chart||this;if(!t.drilldownLevels||0===t.drilldownLevels.length)return;(0,n.fireEvent)(t,"beforeDrillUp");let i=t.drilldownLevels,o=i[i.length-1].levelNumber,r=t.series,l=t.drilldownLevels.length,s=t.options.drilldown||{},a=(e,i)=>{let o;if(r.forEach(t=>{t.options._ddSeriesId===e._ddSeriesId&&(o=t)}),(o=o||t.addSeries(e,!1)).type===i.type&&o.animateDrillupTo&&(o.animate=o.animateDrillupTo),e===u.seriesPurgedOptions)return o},d=e=>{e.remove(!1),t.series.forEach(e=>{e.colorAxis&&(e.isDirtyData=!0),e.options.inactiveOtherPoints=!1,e.group&&e.visible&&e.group.attr({opacity:1})}),t.redraw()},p=i.length,h,u,c;for(t.symbolCounter=t.colorCounter=0;p--;){let m,f;if((u=i[p]).levelNumber===o){if(i.pop(),!(m=u.lowerSeries).chart){for(h=r.length;h--;)if(r[h].options.id===u.lowerSeriesOptions.id&&r[h].options._levelNumber===o+1){m=r[h];break}}m.dataTable.setColumn("x",[]),m.xAxis&&m.xAxis.names&&(0===l||p===l-1)&&(m.xAxis.names.length=0),u.levelSeriesOptions.forEach(e=>{let t=a(e,m);t&&(f=t)}),(0,n.fireEvent)(t,"drillup",{seriesOptions:u.seriesPurgedOptions||u.seriesOptions}),f&&(f.type===m.type&&(f.drilldownLevel=u,f.options.animation=s.animation,m.chart&&m.animateDrillupFrom?.(u)),f.options._levelNumber=o);let g=m;if(t.mapView||g.remove(!1),f?.xAxis&&(c=u.oldExtremes,f.xAxis.setExtremes(c.xMin,c.xMax,!1),f.yAxis.setExtremes(c.yMin,c.yMax,!1)),u.resetZoomButton&&(t.resetZoomButton=u.resetZoomButton),t.mapView){let i=u.levelNumber===o&&e,r=s.animation&&s.mapZooming;i?m.remove(!1):(m.dataLabelsGroups?.forEach(e=>{e?.destroy()}),m.dataLabelsGroups=[],t.mapView&&f&&(r&&(m.isDrilling=!0,f.isDrilling=!0,t.redraw(!1),t.mapView.fitToBounds(m.bounds,void 0,!0,!1)),t.mapView.allowTransformAnimation=!0,(0,n.fireEvent)(t,"afterDrillUp",{seriesOptions:f?f.userOptions:void 0}),r?(t.mapView.setView(void 0,t.mapView.minZoom??1,!0,{complete:function(){Object.prototype.hasOwnProperty.call(this,"complete")&&d(m)}}),f._hasTracking=!1):(t.mapView.allowTransformAnimation=!1,m.group?m.group.animate({opacity:0},s.animation,()=>{d(m),t.mapView&&(t.mapView.allowTransformAnimation=!0)}):(d(m),t.mapView.allowTransformAnimation=!0)),f.isDrilling=!1))}else(0,n.fireEvent)(t,"afterDrillUp")}}t.mapView||e||t.redraw(s.animation),t.ddDupes&&(t.ddDupes.length=0),(0,n.fireEvent)(t,"drillupall")}fadeInGroup(e){let t=(0,n.animObject)(this.chart.options.drilldown?.animation);e&&(e.hide(),(0,n.syncTimeout)(()=>{e?.added&&e.fadeIn()},Math.max(t.duration-50,0)))}update(e,t=!0){let i=this.chart;(0,n.merge)(!0,i.options.drilldown,e),t&&i.redraw()}}!function(e){function t(e){let t=this.chart,i=this.getLevel()-e.newLevel,o=i>1;for(let e=0;e<i;e++)e===i-1&&(o=!1),t.drillUp(o)}function i(){let e=this.options.drilldown,t=e&&e.breadcrumbs;this.breadcrumbs||(this.breadcrumbs=new b(this,t)),this.breadcrumbs.updateProperties(U(this))}function o(){this.breadcrumbs&&this.breadcrumbs.updateProperties(U(this))}function r(){this.drilldown=new F(this)}function l(){this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy())}function s(){this.resetZoomButton&&this.showResetZoom()}function a(){(this.xAxis||[]).forEach(e=>{let t={};e.ddPoints=t,e.series.forEach(e=>{let i=e.getColumn("x"),o=e.points;for(let r=0,l=i.length,s;r<l;r++)if(s=e.dataTable.getRowObject(r),(0,n.defined)(s)&&"number"!=typeof s&&(s=e.pointClass.prototype.optionsToObject.call({series:e},s)).drilldown){t[i[r]]||(t[i[r]]=[]);let l=r-(e.cropStart||0);t[i[r]].push(!o||!(l>=0)||!(l<o.length)||o[l])}}),(0,n.objectEach)(e.ticks,e=>e.drillable())})}function d(e){let t=this.breadcrumbs,i=e.options.drilldown&&e.options.drilldown.breadcrumbs;t&&i&&t.update(i)}function p(e){let t=e.options;t&&void 0===t._levelNumber&&void 0!==this.options._levelNumber&&(t._levelNumber=this.options._levelNumber)}function h(e){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:this.newOpacity??1},e||{duration:250})}function u(){let e=this.pos,t=this.label,i=this.axis,o="xAxis"===i.coll&&i.getDDPoints,r=o&&i.getDDPoints(e),l=i.chart.styledMode;o&&(t&&r&&r.length?(t.drillable=!0,t.basicStyles||l||(t.basicStyles=(0,n.merge)(t.styles)),t.addClass("highcharts-drilldown-axis-label"),t.removeOnDrillableClick&&(0,n.removeEvent)(t.element,"click"),t.removeOnDrillableClick=(0,n.addEvent)(t.element,"click",function(t){t.preventDefault(),i.drilldownCategory(e,t)}),!l&&i.chart.options.drilldown&&t.css(i.chart.options.drilldown.activeAxisLabelStyle||{})):t&&t.drillable&&t.removeOnDrillableClick&&(l||(t.styles={},t.element.removeAttribute("style"),t.css(t.basicStyles)),t.removeOnDrillableClick(),t.removeClass("highcharts-drilldown-axis-label")))}e.compose=function(e,c,m,f,g,w,y){_(f,g);let x=c.prototype;if(!x.drillUp){let g=w.prototype.Element,D=F.prototype,S=e.prototype,E=g.prototype,B=y.prototype;S.drilldownCategory=j,S.getDDPoints=N,b.compose(c,m),(0,n.addEvent)(b,"up",t),x.addSeriesAsDrilldown=D.addSeriesAsDrilldown,x.addSingleSeriesAsDrilldown=D.addSingleSeriesAsDrilldown,x.applyDrilldown=D.applyDrilldown,x.drillUp=D.drillUp,(0,n.addEvent)(c,"afterDrilldown",i),(0,n.addEvent)(c,"afterDrillUp",o),(0,n.addEvent)(c,"afterInit",r),(0,n.addEvent)(c,"drillup",l),(0,n.addEvent)(c,"drillupall",s),(0,n.addEvent)(c,"render",a),(0,n.addEvent)(c,"update",d),(0,n.addEvent)(f,"update",p),m.drilldown=v,E.fadeIn=h,B.drillable=u}}}(i||(i={}));let H=i,z=a();z.Breadcrumbs=z.Breadcrumbs||b,H.compose(z.Axis,z.Chart,z.defaultOptions,z.Series,z.seriesTypes,z.SVGRenderer,z.Tick);let R=a();return s.default})());